Nikolay Sivov : comctl32/imagelist: Get rid of magic field, use vtable pointer instead. Keep original layout.
Alexandre Julliard
julliard at winehq.org
Mon Nov 16 11:44:00 CST 2009
Module: wine
Branch: master
Commit: 3e20458acafcf2c92cce4dfb30dafb28bb6dc99f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3e20458acafcf2c92cce4dfb30dafb28bb6dc99f
Author: Nikolay Sivov <bunglehead at gmail.com>
Date: Sun Nov 15 07:57:11 2009 +0300
comctl32/imagelist: Get rid of magic field, use vtable pointer instead. Keep original layout.
---
dlls/comctl32/imagelist.c | 12 ++++++------
dlls/comctl32/imagelist.h | 30 +++++++++++++++---------------
2 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/dlls/comctl32/imagelist.c b/dlls/comctl32/imagelist.c
index 71f77b0..a49622c 100644
--- a/dlls/comctl32/imagelist.c
+++ b/dlls/comctl32/imagelist.c
@@ -81,11 +81,7 @@ static INTERNALDRAG InternalDrag = { 0, 0, 0, 0, 0, 0, FALSE, 0 };
static HBITMAP ImageList_CreateImage(HDC hdc, HIMAGELIST himl, UINT count, UINT width);
static HRESULT ImageListImpl_CreateInstance(const IUnknown *pUnkOuter, REFIID iid, void** ppv);
-
-static inline BOOL is_valid(HIMAGELIST himl)
-{
- return himl && himl->magic == IMAGELIST_MAGIC;
-}
+static inline BOOL is_valid(HIMAGELIST himl);
/*
* An imagelist with N images is tiled like this:
@@ -607,7 +603,6 @@ ImageList_Create (INT cx, INT cy, UINT flags,
cGrow = (cGrow < 4) ? 4 : (cGrow + 3) & ~3;
- himl->magic = IMAGELIST_MAGIC;
himl->cx = cx;
himl->cy = cy;
himl->flags = flags;
@@ -3320,6 +3315,11 @@ static const IImageListVtbl ImageListImpl_Vtbl = {
ImageListImpl_GetOverlayImage
};
+static inline BOOL is_valid(HIMAGELIST himl)
+{
+ return himl && himl->lpVtbl == &ImageListImpl_Vtbl;
+}
+
/*************************************************************************
* HIMAGELIST_QueryInterface [COMCTL32.@]
*
diff --git a/dlls/comctl32/imagelist.h b/dlls/comctl32/imagelist.h
index efcd1b0..a979ebf 100644
--- a/dlls/comctl32/imagelist.h
+++ b/dlls/comctl32/imagelist.h
@@ -30,31 +30,31 @@
struct _IMAGELIST
{
const struct IImageListVtbl *lpVtbl; /* 00: IImageList vtable */
- LONG ref; /* 04: reference count */
- DWORD magic; /* 08: 'SAMX' */
- INT cCurImage; /* 0C: ImageCount */
- INT cMaxImage; /* 10: maximages */
- INT cGrow; /* 14: cGrow */
- INT cx; /* 18: cx */
- INT cy; /* 1C: cy */
+ INT cCurImage; /* 04: ImageCount */
+ INT cMaxImage; /* 08: maximages */
+ INT cGrow; /* 0C: cGrow */
+ INT cx; /* 10: cx */
+ INT cy; /* 14: cy */
DWORD x4;
- UINT flags; /* 24: flags */
- COLORREF clrFg; /* 28: foreground color */
- COLORREF clrBk; /* 2C: background color */
+ UINT flags; /* 1C: flags */
+ COLORREF clrFg; /* 20: foreground color */
+ COLORREF clrBk; /* 24: background color */
- HBITMAP hbmImage; /* 30: images Bitmap */
- HBITMAP hbmMask; /* 34: masks Bitmap */
- HDC hdcImage; /* 38: images MemDC */
- HDC hdcMask; /* 3C: masks MemDC */
- INT nOvlIdx[15]; /* 40: overlay images index */
+ HBITMAP hbmImage; /* 28: images Bitmap */
+ HBITMAP hbmMask; /* 2C: masks Bitmap */
+ HDC hdcImage; /* 30: images MemDC */
+ HDC hdcMask; /* 34: masks MemDC */
+ INT nOvlIdx[15]; /* 38: overlay images index */
/* not yet found out */
HBRUSH hbrBlend25;
HBRUSH hbrBlend50;
INT cInitial;
UINT uBitsPixel;
+
+ LONG ref; /* reference count */
};
#define IMAGELIST_MAGIC 0x53414D58
More information about the wine-cvs
mailing list