[8/21] comctl32: Add basic structure for IImageList interface

Nikolay Sivov bunglehead at gmail.com
Wed Aug 12 16:23:27 CDT 2009


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.*
---









More information about the wine-devel mailing list