Owen Rudge : comctl32/tests: Add IImageList creation test.

Alexandre Julliard julliard at winehq.org
Fri Nov 13 09:37:06 CST 2009


Module: wine
Branch: master
Commit: 856dda32882f08a63c0456759c5af506d9de9c4a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=856dda32882f08a63c0456759c5af506d9de9c4a

Author: Owen Rudge <orudge at codeweavers.com>
Date:   Thu Nov 12 10:27:44 2009 -0600

comctl32/tests: Add IImageList creation test.

---

 dlls/comctl32/tests/imagelist.c |   42 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/dlls/comctl32/tests/imagelist.c b/dlls/comctl32/tests/imagelist.c
index 944e4ec..dd02c33 100644
--- a/dlls/comctl32/tests/imagelist.c
+++ b/dlls/comctl32/tests/imagelist.c
@@ -74,6 +74,9 @@ static HIMAGELIST (WINAPI *pImageList_Create)(int, int, UINT, int, int);
 static int (WINAPI *pImageList_Add)(HIMAGELIST, HBITMAP, HBITMAP);
 static BOOL (WINAPI *pImageList_DrawIndirect)(IMAGELISTDRAWPARAMS*);
 static BOOL (WINAPI *pImageList_SetImageCount)(HIMAGELIST,UINT);
+static HRESULT (WINAPI *pImageList_CoCreateInstance)(REFCLSID,const IUnknown *,
+    REFIID,void **);
+static HRESULT (WINAPI *pHIMAGELIST_QueryInterface)(HIMAGELIST,REFIID,void **);
 
 static HDC desktopDC;
 static HINSTANCE hinst;
@@ -1244,6 +1247,38 @@ cleanup:
     }
 }
 
+static void test_iimagelist(void)
+{
+    IImageList *imgl;
+    HIMAGELIST himl;
+    HRESULT hr;
+
+    if (!pImageList_CoCreateInstance || !pHIMAGELIST_QueryInterface)
+    {
+        win_skip("Vista imagelist functions not available\n");
+        return;
+    }
+
+    hr = pImageList_CoCreateInstance(&CLSID_ImageList, NULL, &IID_IImageList, (void **) &imgl);
+    ok(SUCCEEDED(hr), "ImageList_CoCreateInstance failed, hr=%x\n", hr);
+
+    if (hr == S_OK)
+        IImageList_Release(imgl);
+
+    himl = createImageList(32, 32);
+
+    if (!himl)
+        return;
+
+    hr = (pHIMAGELIST_QueryInterface)(himl, &IID_IImageList, (void **) &imgl);
+    ok(SUCCEEDED(hr), "HIMAGELIST_QueryInterface failed, hr=%x\n", hr);
+
+    if (hr == S_OK)
+        IImageList_Release(imgl);
+
+    ImageList_Destroy(himl);
+}
+
 START_TEST(imagelist)
 {
     ULONG_PTR ctx_cookie;
@@ -1280,10 +1315,17 @@ START_TEST(imagelist)
     pImageList_Add = (void*)GetProcAddress(hComCtl32, "ImageList_Add");
     pImageList_DrawIndirect = (void*)GetProcAddress(hComCtl32, "ImageList_DrawIndirect");
     pImageList_SetImageCount = (void*)GetProcAddress(hComCtl32, "ImageList_SetImageCount");
+    pImageList_CoCreateInstance = (void*)GetProcAddress(hComCtl32, "ImageList_CoCreateInstance");
+    pHIMAGELIST_QueryInterface = (void*)GetProcAddress(hComCtl32, "HIMAGELIST_QueryInterface");
+
+    CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
 
     /* Do v6.0 tests */
     test_ImageList_DrawIndirect();
     test_shell_imagelist();
+    test_iimagelist();
+
+    CoUninitialize();
 
     unload_v6_module(ctx_cookie, hCtx);
 }




More information about the wine-cvs mailing list