Module: wine Branch: master Commit: 3e20458acafcf2c92cce4dfb30dafb28bb6dc99f URL: http://source.winehq.org/git/wine.git/?a=commit;h=3e20458acafcf2c92cce4dfb30...
Author: Nikolay Sivov bunglehead@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