Owen Rudge wrote:
dlls/comctl32/imagelist.c | 318 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 317 insertions(+), 1 deletions(-)
Hi.
+/************************************************************************* + * IImageList implementation + */ + +typedef struct { + const IImageListVtbl *lpVtbl; + LONG ref; + HIMAGELIST hImageList; +} ImageListImpl; +
You can't do that. HIMAGELIST should be the same thing as IImageList. See here:
1) from commctrl.h
--- #ifdef __cplusplus FORCEINLINE HIMAGELIST IImageListToHIMAGELIST(struct IImageList *himl) { return reinterpret_cast<HIMAGELIST>(himl); } #else #define IImageListToHIMAGELIST(himl) ((HIMAGELIST)(himl)) #endif ---
2) SHGetImageList docs from http://msdn.microsoft.com/en-us/library/bb762185%28VS.85%29.aspx ---* Remarks*
The *IImageList* pointer type, such as that returned in the /ppv/ parameter, can be cast as an HIMAGELIST as needed; for example, for use in a list view. Conversely, an HIMAGELIST can be cast as a pointer to an *IImageList.* ---