[PATCH 3/7] shell32: Return S_OK only if the flags matches the result exactly

David Hedberg david.hedberg at gmail.com
Wed Jul 30 13:43:22 CDT 2014


---
 dlls/shell32/shellitem.c       | 5 +++++
 dlls/shell32/tests/shlfolder.c | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/dlls/shell32/shellitem.c b/dlls/shell32/shellitem.c
index 21bf8a5..8236975 100644
--- a/dlls/shell32/shellitem.c
+++ b/dlls/shell32/shellitem.c
@@ -271,6 +271,11 @@ static HRESULT WINAPI ShellItem_GetAttributes(IShellItem2 *iface, SFGAOF sfgaoMa
         ret = IShellFolder_GetAttributesOf(parent_folder, 1, (LPCITEMIDLIST*)&child_pidl, psfgaoAttribs);
         *psfgaoAttribs &= sfgaoMask;
         IShellFolder_Release(parent_folder);
+
+        if(sfgaoMask == *psfgaoAttribs)
+            return S_OK;
+        else
+            return S_FALSE;
     }
 
     return ret;
diff --git a/dlls/shell32/tests/shlfolder.c b/dlls/shell32/tests/shlfolder.c
index fa7219c..4e20251 100644
--- a/dlls/shell32/tests/shlfolder.c
+++ b/dlls/shell32/tests/shlfolder.c
@@ -3792,7 +3792,7 @@ static void test_ShellItemGetAttributes(void)
 
     sfgao = 0xdeadbeef;
     hr = IShellItem_GetAttributes(psi_file1, SFGAO_FOLDER, &sfgao);
-    todo_wine ok(hr == S_FALSE, "Got 0x%08x\n", hr);
+    ok(hr == S_FALSE, "Got 0x%08x\n", hr);
     ok(sfgao == 0, "Got 0x%08x\n", sfgao);
 
     IShellItem_Release(psi_folder1);
-- 
2.0.1




More information about the wine-patches mailing list