From: David Hedberg Subject: [PATCH 3/7] shell32: Return S_OK only if the flags matches the result exactly Message-Id: <1406745806-17144-3-git-send-email-david.hedberg@gmail.com> Date: Wed, 30 Jul 2014 20:43:22 +0200 --- 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