[PATCH] shell32: Older shell32 doesn't support CSIDL_PROGRAM_FILES

Andrew Eikum aeikum at codeweavers.com
Wed Jan 29 11:18:41 CST 2014


---
This should fix the failing NT4 tests.

These tests are _really_ old, like 2005. I'm surprised they haven't
been fixed by now. Is there something I'm missing?

 dlls/shell32/tests/shlfolder.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/dlls/shell32/tests/shlfolder.c b/dlls/shell32/tests/shlfolder.c
index f692837..aa18415 100644
--- a/dlls/shell32/tests/shlfolder.c
+++ b/dlls/shell32/tests/shlfolder.c
@@ -1348,12 +1348,16 @@ static void test_SHGetPathFromIDList(void)
 
     /* Test if we can get the path from the start menu "program files" PIDL. */
     hr = pSHGetSpecialFolderLocation(NULL, CSIDL_PROGRAM_FILES, &pidlPrograms);
-    ok(hr == S_OK, "SHGetFolderLocation failed: 0x%08x\n", hr);
+    ok(hr == S_OK ||
+            broken(hr == E_INVALIDARG) /* NT4 */,
+            "SHGetFolderLocation failed: 0x%08x\n", hr);
 
-    SetLastError(0xdeadbeef);
-    result = pSHGetPathFromIDListW(pidlPrograms, wszPath);
-	IMalloc_Free(ppM, pidlPrograms);
-    ok(result, "SHGetPathFromIDListW failed\n");
+    if(hr == S_OK){
+        SetLastError(0xdeadbeef);
+        result = pSHGetPathFromIDListW(pidlPrograms, wszPath);
+        IMalloc_Free(ppM, pidlPrograms);
+        ok(result, "SHGetPathFromIDListW failed\n");
+    }
 }
 
 static void test_EnumObjects_and_CompareIDs(void)
-- 
1.8.5.3




More information about the wine-patches mailing list