[PATCH v4 2/4] shell32/tests: Add tests for IShellItemImageFactory.
Jinoh Kang
jinoh.kang.kr at gmail.com
Sat Apr 23 12:53:48 CDT 2022
Signed-off-by: Jinoh Kang <jinoh.kang.kr at gmail.com>
---
Notes:
v1 -> v2: mark test broken on Windows 7
v2 -> v3: remove erroneous todo_wine
v3 -> v4: no changes
dlls/shell32/tests/shlfolder.c | 46 ++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/dlls/shell32/tests/shlfolder.c b/dlls/shell32/tests/shlfolder.c
index f99045c33d5..6c3d9721ef7 100644
--- a/dlls/shell32/tests/shlfolder.c
+++ b/dlls/shell32/tests/shlfolder.c
@@ -4481,6 +4481,51 @@ static void test_GetUIObject(void)
Cleanup();
}
+static void test_IShellItemImageFactory(void)
+{
+ HRESULT ret;
+ IShellItem *shellitem;
+ LPITEMIDLIST pidl_desktop = NULL;
+
+ if (!pSHCreateShellItem)
+ {
+ win_skip("SHCreateShellItem isn't available\n");
+ return;
+ }
+
+ ret = SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pidl_desktop);
+ ok(ret == S_OK, "Got 0x%08lx\n", ret);
+ if (SUCCEEDED(ret))
+ {
+ ret = pSHCreateShellItem(NULL, NULL, pidl_desktop, &shellitem);
+ ok(SUCCEEDED(ret), "SHCreateShellItem returned %lx\n", ret);
+ if (SUCCEEDED(ret))
+ {
+ IShellItemImageFactory *siif;
+ ret = IShellItem_QueryInterface(shellitem, &IID_IShellItemImageFactory, (void **)&siif);
+ todo_wine ok(ret == S_OK, "QueryInterface returned %lx\n", ret);
+ if (SUCCEEDED(ret))
+ {
+ HBITMAP hbm = NULL;
+ SIZE size = {32, 32};
+
+ ret = IShellItemImageFactory_GetImage(siif, size, SIIGBF_BIGGERSIZEOK, &hbm);
+ todo_wine ok(ret == S_OK || broken(ret == E_PENDING /* win7 */), "GetImage returned %lx\n", ret);
+ ok(FAILED(ret) == !hbm, "result = %lx but bitmap = %p\n", ret, hbm);
+ if (SUCCEEDED(ret) && hbm)
+ {
+ DWORD objtype = GetObjectType(hbm);
+ ok(objtype == OBJ_BITMAP, "Expected type OBJ_BITMAP, got %lu\n", objtype);
+ DeleteObject(hbm);
+ }
+ IShellItemImageFactory_Release(siif);
+ }
+ IShellItem_Release(shellitem);
+ }
+ ILFree(pidl_desktop);
+ }
+}
+
static void test_CreateViewObject_contextmenu(void)
{
IShellFolder *desktop;
@@ -5386,6 +5431,7 @@ START_TEST(shlfolder)
test_ShellItemArrayEnumItems();
test_desktop_IPersist();
test_GetUIObject();
+ test_IShellItemImageFactory();
test_CreateViewObject_contextmenu();
test_SHSimpleIDListFromPath();
test_ParseDisplayNamePBC();
--
2.34.1
More information about the wine-devel
mailing list