Re: [try 2] [PATCH 01/12] comctl32: Add basic structure for IImageList interface
Owen Rudge <orudge(a)codeweavers.com> writes:
@@ -2926,10 +2927,295 @@ ImageList_SetColorTable (HIMAGELIST himl, UINT uStartIndex, UINT cEntries, CONST HRESULT WINAPI ImageList_CoCreateInstance (REFCLSID rclsid, const IUnknown *punkOuter, REFIID riid, void **ppv) { - FIXME("STUB: %s %p %s %p\n", debugstr_guid(rclsid), punkOuter, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + TRACE("(%s,%p,%s,%p)\n", debugstr_guid(rclsid), punkOuter, debugstr_guid(riid), ppv); + + if (!IsEqualIID(&IID_IImageList, riid)) + return E_NOINTERFACE;
You should be checking the clsid here. The iid is checked in QueryInterface.
@@ -2948,6 +3234,38 @@ ImageList_CoCreateInstance (REFCLSID rclsid, const IUnknown *punkOuter, REFIID r HRESULT WINAPI HIMAGELIST_QueryInterface (HIMAGELIST himl, REFIID riid, void **ppv) { - FIXME("STUB: %p %s %p\n", himl, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + TRACE("(%p,%s,%p)\n", himl, debugstr_guid(riid), ppv); + + *ppv = NULL; + + /* TODO: IID_IImageList2 support */ + if (!IsEqualIID(&IID_IImageList, riid)) + return E_NOINTERFACE;
This one is redundant too.
@@ -30,6 +30,9 @@ /* the ones with offsets at the end are the same as in Windows */ struct _IMAGELIST { + const struct IImageListVtbl *lpVtbl;/* IImageList vtable */ + LONG ref; /* reference count */ + DWORD magic; /* 00: 'SAMX' */ INT cCurImage; /* 04: ImageCount */ INT cMaxImage; /* 08: maximages */
Please update the comment since the offsets no longer match Windows. -- Alexandre Julliard julliard(a)winehq.org
participants (1)
-
Alexandre Julliard