Owen Rudge orudge@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.