explorerframe: Clear pointer when nothing is selected

André Hentschel nerv at dawncrow.de
Wed Apr 3 17:10:37 CDT 2013


---
 dlls/explorerframe/nstc.c       |    3 +++
 dlls/explorerframe/tests/nstc.c |    2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/dlls/explorerframe/nstc.c b/dlls/explorerframe/nstc.c
index d5e78e7..a881cc4 100644
--- a/dlls/explorerframe/nstc.c
+++ b/dlls/explorerframe/nstc.c
@@ -1240,7 +1240,10 @@ static HRESULT WINAPI NSTC2_fnGetSelectedItems(INameSpaceTreeControl2* iface,
 
     psiselected = get_selected_shellitem(This);
     if(!psiselected)
+    {
+        *psiaItems = NULL;
         return E_FAIL;
+    }
 
     hr = SHCreateShellItemArrayFromShellItem(psiselected, &IID_IShellItemArray,
                                              (void**)psiaItems);
diff --git a/dlls/explorerframe/tests/nstc.c b/dlls/explorerframe/tests/nstc.c
index 6287078..ab6a0ce 100644
--- a/dlls/explorerframe/tests/nstc.c
+++ b/dlls/explorerframe/tests/nstc.c
@@ -1366,7 +1366,7 @@ static void test_basics(void)
     psia = (void*)0xdeadbeef;
     hr = INameSpaceTreeControl_GetSelectedItems(pnstc, &psia);
     ok(hr == E_FAIL, "Got 0x%08x\n", hr);
-    ok(psia == (void*)0xdeadbeef, "Got %p\n", psia);
+    ok(!psia || broken(psia == (void*)0xdeadbeef /* before Win8 */), "Got %p\n", psia);
 
     hr = INameSpaceTreeControl_AppendRoot(pnstc, psitestdir2, SHCONTF_FOLDERS, 0, NULL);
     ok(hr == S_OK, "Got (0x%08x)\n", hr);
-- 
1.7.10.4



More information about the wine-patches mailing list