From 2bb042177e74ac6d2e7fc8ac295ff3d15b620bbf Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Wed, 15 May 2024 15:11:23 +0900 Subject: [PATCH] improve --- .../shell32/SHSimpleIDListFromPath.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/modules/rostests/apitests/shell32/SHSimpleIDListFromPath.cpp b/modules/rostests/apitests/shell32/SHSimpleIDListFromPath.cpp index c43a06a0a6f..e8ab2de5ab4 100644 --- a/modules/rostests/apitests/shell32/SHSimpleIDListFromPath.cpp +++ b/modules/rostests/apitests/shell32/SHSimpleIDListFromPath.cpp @@ -14,35 +14,31 @@ START_TEST(SHSimpleIDListFromPath) WCHAR szPath[MAX_PATH]; GetWindowsDirectoryW(szPath, _countof(szPath)); - LPITEMIDLIST pidl1 = SHSimpleIDListFromPath(szPath); - LPITEMIDLIST pidl2 = ILCreateFromPathW(szPath); + // We will compare pidl1 and pidl2 + CComHeapPtr pidl1(SHSimpleIDListFromPath(szPath)); + CComHeapPtr pidl2(ILCreateFromPathW(szPath)); + LPITEMIDLIST pidl1Last = ILFindLastID(pidl1); LPITEMIDLIST pidl2Last = ILFindLastID(pidl2); ok_int(ILIsEqual(pidl1, pidl2), TRUE); ok_int(ILIsEqual(pidl1Last, pidl2Last), TRUE); - IShellFolder *psf1 = NULL; - IShellFolder *psf2 = NULL; + CComPtr psf1, psf2; hr = SHBindToParent(pidl1, IID_PPV_ARG(IShellFolder, &psf1), NULL); ok_long(hr, S_OK); hr = SHBindToParent(pidl2, IID_PPV_ARG(IShellFolder, &psf2), NULL); ok_long(hr, S_OK); - DWORD attrs1 = SFGAO_FOLDER; - DWORD attrs2 = SFGAO_FOLDER; - + DWORD attrs1 = SFGAO_FOLDER, attrs2 = SFGAO_FOLDER; hr = (psf1 ? psf1->GetAttributesOf(1, &pidl1Last, &attrs1) : E_UNEXPECTED); ok_long(hr, S_OK); hr = (psf2 ? psf2->GetAttributesOf(1, &pidl2Last, &attrs2) : E_UNEXPECTED); ok_long(hr, S_OK); + // This fact is important: ok_long((attrs1 & SFGAO_FOLDER), 0); ok_long((attrs2 & SFGAO_FOLDER), SFGAO_FOLDER); ILFree(pidl1); ILFree(pidl2); - if (psf1) - psf1->Release(); - if (psf2) - psf2->Release(); }