zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commoncontrols.h (38394B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/commoncontrols.idl - Do not edit ***/
      2 
      3 #ifdef _WIN32
      4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      6 #endif
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 #endif
     10 
     11 #ifndef COM_NO_WINDOWS_H
     12 #include <windows.h>
     13 #include <ole2.h>
     14 #endif
     15 
     16 #ifndef __commoncontrols_h__
     17 #define __commoncontrols_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __IImageList_FWD_DEFINED__
     22 #define __IImageList_FWD_DEFINED__
     23 typedef interface IImageList IImageList;
     24 #ifdef __cplusplus
     25 interface IImageList;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __IImageList2_FWD_DEFINED__
     30 #define __IImageList2_FWD_DEFINED__
     31 typedef interface IImageList2 IImageList2;
     32 #ifdef __cplusplus
     33 interface IImageList2;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __ImageList_FWD_DEFINED__
     38 #define __ImageList_FWD_DEFINED__
     39 #ifdef __cplusplus
     40 typedef class ImageList ImageList;
     41 #else
     42 typedef struct ImageList ImageList;
     43 #endif /* defined __cplusplus */
     44 #endif /* defined __ImageList_FWD_DEFINED__ */
     45 
     46 /* Headers for imported files */
     47 
     48 #include <oaidl.h>
     49 #include <ocidl.h>
     50 
     51 #ifdef __cplusplus
     52 extern "C" {
     53 #endif
     54 
     55 /**
     56  * This file is part of the mingw-w64 runtime package.
     57  * No warranty is given; refer to the file DISCLAIMER within this package.
     58  */
     59 #include <winapifamily.h>
     60 
     61 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
     62 #ifndef WINCOMMCTRLAPI
     63 #ifndef _COMCTL32_
     64 #define WINCOMMCTRLAPI DECLSPEC_IMPORT
     65 #else
     66 #define WINCOMMCTRLAPI
     67 #endif
     68 #endif
     69 
     70 #ifdef __WIDL__
     71 typedef DWORD RGBQUAD;
     72 typedef IUnknown *HIMAGELIST;
     73 typedef struct _IMAGELIST *HIMAGELIST;
     74 typedef struct _IMAGELISTDRAWPARAMS {
     75     DWORD cbSize;
     76     HIMAGELIST himl;
     77     int i;
     78     HDC hdcDst;
     79     int x;
     80     int y;
     81     int cx;
     82     int cy;
     83     int xBitmap;
     84     int yBitmap;
     85     COLORREF rgbBk;
     86     COLORREF rgbFg;
     87     UINT fStyle;
     88     DWORD dwRop;
     89     DWORD fState;
     90     DWORD Frame;
     91     COLORREF crEffect;
     92 } IMAGELISTDRAWPARAMS;
     93 typedef IMAGELISTDRAWPARAMS *LPIMAGELISTDRAWPARAMS;
     94 typedef struct tagIMAGEINFO {
     95     HBITMAP hbmImage;
     96     HBITMAP hbmMask;
     97     int Unused1;
     98     int Unused2;
     99     RECT rcImage;
    100 } IMAGEINFO;
    101 typedef IMAGEINFO *LPIMAGEINFO;
    102 #endif
    103 
    104 #define ILIF_ALPHA 0x1
    105 #define ILIF_LOWQUALITY 0x2
    106 
    107 #define ILDRF_IMAGELOWQUALITY 0x1
    108 #define ILDRF_OVERLAYLOWQUALITY 0x10
    109 
    110 #define ILR_DEFAULT 0x0
    111 #define ILR_HORIZONTAL_LEFT  0x0
    112 #define ILR_HORIZONTAL_CENTER 0x1
    113 #define ILR_HORIZONTAL_RIGHT 0x2
    114 #define ILR_VERTICAL_TOP 0x0
    115 #define ILR_VERTICAL_CENTER 0x10
    116 #define ILR_VERTICAL_BOTTOM 0x20
    117 #define ILR_SCALE_CLIP               0x0
    118 #define ILR_SCALE_ASPECTRATIO        0x100
    119 
    120 #define ILGOS_ALWAYS 0x0
    121 #define ILGOS_FROMSTANDBY 0x1
    122 
    123 #define ILFIP_ALWAYS 0x0
    124 #define ILFIP_FROMSTANDBY 0x1
    125 
    126 #define ILDI_PURGE 0x1
    127 #define ILDI_STANDBY 0x2
    128 #define ILDI_RESETACCESS 0x4
    129 #define ILDI_QUERYACCESS 0x8
    130 
    131 #if NTDDI_VERSION >= 0x06000000
    132 WINCOMMCTRLAPI HRESULT WINAPI ImageList_CoCreateInstance (REFCLSID rclsid, const IUnknown *punkOuter, REFIID riid, void **ppv);
    133 #endif
    134 typedef struct tagIMAGELISTSTATS {
    135     DWORD cbSize;
    136     int cAlloc;
    137     int cUsed;
    138     int cStandby;
    139 } IMAGELISTSTATS;
    140 /*****************************************************************************
    141  * IImageList interface
    142  */
    143 #ifndef __IImageList_INTERFACE_DEFINED__
    144 #define __IImageList_INTERFACE_DEFINED__
    145 
    146 DEFINE_GUID(IID_IImageList, 0x46eb5926, 0x582e, 0x4017, 0x9f,0xdf, 0xe8,0x99,0x8d,0xaa,0x09,0x50);
    147 #if defined(__cplusplus) && !defined(CINTERFACE)
    148 MIDL_INTERFACE("46eb5926-582e-4017-9fdf-e8998daa0950")
    149 IImageList : public IUnknown
    150 {
    151     virtual HRESULT STDMETHODCALLTYPE Add(
    152         HBITMAP hbmImage,
    153         HBITMAP hbmMask,
    154         int *pi) = 0;
    155 
    156     virtual HRESULT STDMETHODCALLTYPE ReplaceIcon(
    157         int i,
    158         HICON hicon,
    159         int *pi) = 0;
    160 
    161     virtual HRESULT STDMETHODCALLTYPE SetOverlayImage(
    162         int iImage,
    163         int iOverlay) = 0;
    164 
    165     virtual HRESULT STDMETHODCALLTYPE Replace(
    166         int i,
    167         HBITMAP hbmImage,
    168         HBITMAP hbmMask) = 0;
    169 
    170     virtual HRESULT STDMETHODCALLTYPE AddMasked(
    171         HBITMAP hbmImage,
    172         COLORREF crMask,
    173         int *pi) = 0;
    174 
    175     virtual HRESULT STDMETHODCALLTYPE Draw(
    176         IMAGELISTDRAWPARAMS *pimldp) = 0;
    177 
    178     virtual HRESULT STDMETHODCALLTYPE Remove(
    179         int i) = 0;
    180 
    181     virtual HRESULT STDMETHODCALLTYPE GetIcon(
    182         int i,
    183         UINT flags,
    184         HICON *picon) = 0;
    185 
    186     virtual HRESULT STDMETHODCALLTYPE GetImageInfo(
    187         int i,
    188         IMAGEINFO *pImageInfo) = 0;
    189 
    190     virtual HRESULT STDMETHODCALLTYPE Copy(
    191         int iDst,
    192         IUnknown *punkSrc,
    193         int iSrc,
    194         UINT uFlags) = 0;
    195 
    196     virtual HRESULT STDMETHODCALLTYPE Merge(
    197         int i1,
    198         IUnknown *punk2,
    199         int i2,
    200         int dx,
    201         int dy,
    202         REFIID riid,
    203         void **ppv) = 0;
    204 
    205     virtual HRESULT STDMETHODCALLTYPE Clone(
    206         REFIID riid,
    207         void **ppv) = 0;
    208 
    209     virtual HRESULT STDMETHODCALLTYPE GetImageRect(
    210         int i,
    211         RECT *prc) = 0;
    212 
    213     virtual HRESULT STDMETHODCALLTYPE GetIconSize(
    214         int *cx,
    215         int *cy) = 0;
    216 
    217     virtual HRESULT STDMETHODCALLTYPE SetIconSize(
    218         int cx,
    219         int cy) = 0;
    220 
    221     virtual HRESULT STDMETHODCALLTYPE GetImageCount(
    222         int *pi) = 0;
    223 
    224     virtual HRESULT STDMETHODCALLTYPE SetImageCount(
    225         UINT uNewCount) = 0;
    226 
    227     virtual HRESULT STDMETHODCALLTYPE SetBkColor(
    228         COLORREF clrBk,
    229         COLORREF *pclr) = 0;
    230 
    231     virtual HRESULT STDMETHODCALLTYPE GetBkColor(
    232         COLORREF *pclr) = 0;
    233 
    234     virtual HRESULT STDMETHODCALLTYPE BeginDrag(
    235         int iTrack,
    236         int dxHotspot,
    237         int dyHotspot) = 0;
    238 
    239     virtual HRESULT STDMETHODCALLTYPE EndDrag(
    240         ) = 0;
    241 
    242     virtual HRESULT STDMETHODCALLTYPE DragEnter(
    243         HWND hwndLock,
    244         int x,
    245         int y) = 0;
    246 
    247     virtual HRESULT STDMETHODCALLTYPE DragLeave(
    248         HWND hwndLock) = 0;
    249 
    250     virtual HRESULT STDMETHODCALLTYPE DragMove(
    251         int x,
    252         int y) = 0;
    253 
    254     virtual HRESULT STDMETHODCALLTYPE SetDragCursorImage(
    255         IUnknown *punk,
    256         int iDrag,
    257         int dxHotspot,
    258         int dyHotspot) = 0;
    259 
    260     virtual HRESULT STDMETHODCALLTYPE DragShowNolock(
    261         WINBOOL fShow) = 0;
    262 
    263     virtual HRESULT STDMETHODCALLTYPE GetDragImage(
    264         POINT *ppt,
    265         POINT *pptHotspot,
    266         REFIID riid,
    267         void **ppv) = 0;
    268 
    269     virtual HRESULT STDMETHODCALLTYPE GetItemFlags(
    270         int i,
    271         DWORD *dwFlags) = 0;
    272 
    273     virtual HRESULT STDMETHODCALLTYPE GetOverlayImage(
    274         int iOverlay,
    275         int *piIndex) = 0;
    276 
    277 };
    278 #ifdef __CRT_UUID_DECL
    279 __CRT_UUID_DECL(IImageList, 0x46eb5926, 0x582e, 0x4017, 0x9f,0xdf, 0xe8,0x99,0x8d,0xaa,0x09,0x50)
    280 #endif
    281 #else
    282 typedef struct IImageListVtbl {
    283     BEGIN_INTERFACE
    284 
    285     /*** IUnknown methods ***/
    286     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    287         IImageList *This,
    288         REFIID riid,
    289         void **ppvObject);
    290 
    291     ULONG (STDMETHODCALLTYPE *AddRef)(
    292         IImageList *This);
    293 
    294     ULONG (STDMETHODCALLTYPE *Release)(
    295         IImageList *This);
    296 
    297     /*** IImageList methods ***/
    298     HRESULT (STDMETHODCALLTYPE *Add)(
    299         IImageList *This,
    300         HBITMAP hbmImage,
    301         HBITMAP hbmMask,
    302         int *pi);
    303 
    304     HRESULT (STDMETHODCALLTYPE *ReplaceIcon)(
    305         IImageList *This,
    306         int i,
    307         HICON hicon,
    308         int *pi);
    309 
    310     HRESULT (STDMETHODCALLTYPE *SetOverlayImage)(
    311         IImageList *This,
    312         int iImage,
    313         int iOverlay);
    314 
    315     HRESULT (STDMETHODCALLTYPE *Replace)(
    316         IImageList *This,
    317         int i,
    318         HBITMAP hbmImage,
    319         HBITMAP hbmMask);
    320 
    321     HRESULT (STDMETHODCALLTYPE *AddMasked)(
    322         IImageList *This,
    323         HBITMAP hbmImage,
    324         COLORREF crMask,
    325         int *pi);
    326 
    327     HRESULT (STDMETHODCALLTYPE *Draw)(
    328         IImageList *This,
    329         IMAGELISTDRAWPARAMS *pimldp);
    330 
    331     HRESULT (STDMETHODCALLTYPE *Remove)(
    332         IImageList *This,
    333         int i);
    334 
    335     HRESULT (STDMETHODCALLTYPE *GetIcon)(
    336         IImageList *This,
    337         int i,
    338         UINT flags,
    339         HICON *picon);
    340 
    341     HRESULT (STDMETHODCALLTYPE *GetImageInfo)(
    342         IImageList *This,
    343         int i,
    344         IMAGEINFO *pImageInfo);
    345 
    346     HRESULT (STDMETHODCALLTYPE *Copy)(
    347         IImageList *This,
    348         int iDst,
    349         IUnknown *punkSrc,
    350         int iSrc,
    351         UINT uFlags);
    352 
    353     HRESULT (STDMETHODCALLTYPE *Merge)(
    354         IImageList *This,
    355         int i1,
    356         IUnknown *punk2,
    357         int i2,
    358         int dx,
    359         int dy,
    360         REFIID riid,
    361         void **ppv);
    362 
    363     HRESULT (STDMETHODCALLTYPE *Clone)(
    364         IImageList *This,
    365         REFIID riid,
    366         void **ppv);
    367 
    368     HRESULT (STDMETHODCALLTYPE *GetImageRect)(
    369         IImageList *This,
    370         int i,
    371         RECT *prc);
    372 
    373     HRESULT (STDMETHODCALLTYPE *GetIconSize)(
    374         IImageList *This,
    375         int *cx,
    376         int *cy);
    377 
    378     HRESULT (STDMETHODCALLTYPE *SetIconSize)(
    379         IImageList *This,
    380         int cx,
    381         int cy);
    382 
    383     HRESULT (STDMETHODCALLTYPE *GetImageCount)(
    384         IImageList *This,
    385         int *pi);
    386 
    387     HRESULT (STDMETHODCALLTYPE *SetImageCount)(
    388         IImageList *This,
    389         UINT uNewCount);
    390 
    391     HRESULT (STDMETHODCALLTYPE *SetBkColor)(
    392         IImageList *This,
    393         COLORREF clrBk,
    394         COLORREF *pclr);
    395 
    396     HRESULT (STDMETHODCALLTYPE *GetBkColor)(
    397         IImageList *This,
    398         COLORREF *pclr);
    399 
    400     HRESULT (STDMETHODCALLTYPE *BeginDrag)(
    401         IImageList *This,
    402         int iTrack,
    403         int dxHotspot,
    404         int dyHotspot);
    405 
    406     HRESULT (STDMETHODCALLTYPE *EndDrag)(
    407         IImageList *This);
    408 
    409     HRESULT (STDMETHODCALLTYPE *DragEnter)(
    410         IImageList *This,
    411         HWND hwndLock,
    412         int x,
    413         int y);
    414 
    415     HRESULT (STDMETHODCALLTYPE *DragLeave)(
    416         IImageList *This,
    417         HWND hwndLock);
    418 
    419     HRESULT (STDMETHODCALLTYPE *DragMove)(
    420         IImageList *This,
    421         int x,
    422         int y);
    423 
    424     HRESULT (STDMETHODCALLTYPE *SetDragCursorImage)(
    425         IImageList *This,
    426         IUnknown *punk,
    427         int iDrag,
    428         int dxHotspot,
    429         int dyHotspot);
    430 
    431     HRESULT (STDMETHODCALLTYPE *DragShowNolock)(
    432         IImageList *This,
    433         WINBOOL fShow);
    434 
    435     HRESULT (STDMETHODCALLTYPE *GetDragImage)(
    436         IImageList *This,
    437         POINT *ppt,
    438         POINT *pptHotspot,
    439         REFIID riid,
    440         void **ppv);
    441 
    442     HRESULT (STDMETHODCALLTYPE *GetItemFlags)(
    443         IImageList *This,
    444         int i,
    445         DWORD *dwFlags);
    446 
    447     HRESULT (STDMETHODCALLTYPE *GetOverlayImage)(
    448         IImageList *This,
    449         int iOverlay,
    450         int *piIndex);
    451 
    452     END_INTERFACE
    453 } IImageListVtbl;
    454 
    455 interface IImageList {
    456     CONST_VTBL IImageListVtbl* lpVtbl;
    457 };
    458 
    459 #ifdef COBJMACROS
    460 #ifndef WIDL_C_INLINE_WRAPPERS
    461 /*** IUnknown methods ***/
    462 #define IImageList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    463 #define IImageList_AddRef(This) (This)->lpVtbl->AddRef(This)
    464 #define IImageList_Release(This) (This)->lpVtbl->Release(This)
    465 /*** IImageList methods ***/
    466 #define IImageList_Add(This,hbmImage,hbmMask,pi) (This)->lpVtbl->Add(This,hbmImage,hbmMask,pi)
    467 #define IImageList_ReplaceIcon(This,i,hicon,pi) (This)->lpVtbl->ReplaceIcon(This,i,hicon,pi)
    468 #define IImageList_SetOverlayImage(This,iImage,iOverlay) (This)->lpVtbl->SetOverlayImage(This,iImage,iOverlay)
    469 #define IImageList_Replace(This,i,hbmImage,hbmMask) (This)->lpVtbl->Replace(This,i,hbmImage,hbmMask)
    470 #define IImageList_AddMasked(This,hbmImage,crMask,pi) (This)->lpVtbl->AddMasked(This,hbmImage,crMask,pi)
    471 #define IImageList_Draw(This,pimldp) (This)->lpVtbl->Draw(This,pimldp)
    472 #define IImageList_Remove(This,i) (This)->lpVtbl->Remove(This,i)
    473 #define IImageList_GetIcon(This,i,flags,picon) (This)->lpVtbl->GetIcon(This,i,flags,picon)
    474 #define IImageList_GetImageInfo(This,i,pImageInfo) (This)->lpVtbl->GetImageInfo(This,i,pImageInfo)
    475 #define IImageList_Copy(This,iDst,punkSrc,iSrc,uFlags) (This)->lpVtbl->Copy(This,iDst,punkSrc,iSrc,uFlags)
    476 #define IImageList_Merge(This,i1,punk2,i2,dx,dy,riid,ppv) (This)->lpVtbl->Merge(This,i1,punk2,i2,dx,dy,riid,ppv)
    477 #define IImageList_Clone(This,riid,ppv) (This)->lpVtbl->Clone(This,riid,ppv)
    478 #define IImageList_GetImageRect(This,i,prc) (This)->lpVtbl->GetImageRect(This,i,prc)
    479 #define IImageList_GetIconSize(This,cx,cy) (This)->lpVtbl->GetIconSize(This,cx,cy)
    480 #define IImageList_SetIconSize(This,cx,cy) (This)->lpVtbl->SetIconSize(This,cx,cy)
    481 #define IImageList_GetImageCount(This,pi) (This)->lpVtbl->GetImageCount(This,pi)
    482 #define IImageList_SetImageCount(This,uNewCount) (This)->lpVtbl->SetImageCount(This,uNewCount)
    483 #define IImageList_SetBkColor(This,clrBk,pclr) (This)->lpVtbl->SetBkColor(This,clrBk,pclr)
    484 #define IImageList_GetBkColor(This,pclr) (This)->lpVtbl->GetBkColor(This,pclr)
    485 #define IImageList_BeginDrag(This,iTrack,dxHotspot,dyHotspot) (This)->lpVtbl->BeginDrag(This,iTrack,dxHotspot,dyHotspot)
    486 #define IImageList_EndDrag(This) (This)->lpVtbl->EndDrag(This)
    487 #define IImageList_DragEnter(This,hwndLock,x,y) (This)->lpVtbl->DragEnter(This,hwndLock,x,y)
    488 #define IImageList_DragLeave(This,hwndLock) (This)->lpVtbl->DragLeave(This,hwndLock)
    489 #define IImageList_DragMove(This,x,y) (This)->lpVtbl->DragMove(This,x,y)
    490 #define IImageList_SetDragCursorImage(This,punk,iDrag,dxHotspot,dyHotspot) (This)->lpVtbl->SetDragCursorImage(This,punk,iDrag,dxHotspot,dyHotspot)
    491 #define IImageList_DragShowNolock(This,fShow) (This)->lpVtbl->DragShowNolock(This,fShow)
    492 #define IImageList_GetDragImage(This,ppt,pptHotspot,riid,ppv) (This)->lpVtbl->GetDragImage(This,ppt,pptHotspot,riid,ppv)
    493 #define IImageList_GetItemFlags(This,i,dwFlags) (This)->lpVtbl->GetItemFlags(This,i,dwFlags)
    494 #define IImageList_GetOverlayImage(This,iOverlay,piIndex) (This)->lpVtbl->GetOverlayImage(This,iOverlay,piIndex)
    495 #else
    496 /*** IUnknown methods ***/
    497 static inline HRESULT IImageList_QueryInterface(IImageList* This,REFIID riid,void **ppvObject) {
    498     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    499 }
    500 static inline ULONG IImageList_AddRef(IImageList* This) {
    501     return This->lpVtbl->AddRef(This);
    502 }
    503 static inline ULONG IImageList_Release(IImageList* This) {
    504     return This->lpVtbl->Release(This);
    505 }
    506 /*** IImageList methods ***/
    507 static inline HRESULT IImageList_Add(IImageList* This,HBITMAP hbmImage,HBITMAP hbmMask,int *pi) {
    508     return This->lpVtbl->Add(This,hbmImage,hbmMask,pi);
    509 }
    510 static inline HRESULT IImageList_ReplaceIcon(IImageList* This,int i,HICON hicon,int *pi) {
    511     return This->lpVtbl->ReplaceIcon(This,i,hicon,pi);
    512 }
    513 static inline HRESULT IImageList_SetOverlayImage(IImageList* This,int iImage,int iOverlay) {
    514     return This->lpVtbl->SetOverlayImage(This,iImage,iOverlay);
    515 }
    516 static inline HRESULT IImageList_Replace(IImageList* This,int i,HBITMAP hbmImage,HBITMAP hbmMask) {
    517     return This->lpVtbl->Replace(This,i,hbmImage,hbmMask);
    518 }
    519 static inline HRESULT IImageList_AddMasked(IImageList* This,HBITMAP hbmImage,COLORREF crMask,int *pi) {
    520     return This->lpVtbl->AddMasked(This,hbmImage,crMask,pi);
    521 }
    522 static inline HRESULT IImageList_Draw(IImageList* This,IMAGELISTDRAWPARAMS *pimldp) {
    523     return This->lpVtbl->Draw(This,pimldp);
    524 }
    525 static inline HRESULT IImageList_Remove(IImageList* This,int i) {
    526     return This->lpVtbl->Remove(This,i);
    527 }
    528 static inline HRESULT IImageList_GetIcon(IImageList* This,int i,UINT flags,HICON *picon) {
    529     return This->lpVtbl->GetIcon(This,i,flags,picon);
    530 }
    531 static inline HRESULT IImageList_GetImageInfo(IImageList* This,int i,IMAGEINFO *pImageInfo) {
    532     return This->lpVtbl->GetImageInfo(This,i,pImageInfo);
    533 }
    534 static inline HRESULT IImageList_Copy(IImageList* This,int iDst,IUnknown *punkSrc,int iSrc,UINT uFlags) {
    535     return This->lpVtbl->Copy(This,iDst,punkSrc,iSrc,uFlags);
    536 }
    537 static inline HRESULT IImageList_Merge(IImageList* This,int i1,IUnknown *punk2,int i2,int dx,int dy,REFIID riid,void **ppv) {
    538     return This->lpVtbl->Merge(This,i1,punk2,i2,dx,dy,riid,ppv);
    539 }
    540 static inline HRESULT IImageList_Clone(IImageList* This,REFIID riid,void **ppv) {
    541     return This->lpVtbl->Clone(This,riid,ppv);
    542 }
    543 static inline HRESULT IImageList_GetImageRect(IImageList* This,int i,RECT *prc) {
    544     return This->lpVtbl->GetImageRect(This,i,prc);
    545 }
    546 static inline HRESULT IImageList_GetIconSize(IImageList* This,int *cx,int *cy) {
    547     return This->lpVtbl->GetIconSize(This,cx,cy);
    548 }
    549 static inline HRESULT IImageList_SetIconSize(IImageList* This,int cx,int cy) {
    550     return This->lpVtbl->SetIconSize(This,cx,cy);
    551 }
    552 static inline HRESULT IImageList_GetImageCount(IImageList* This,int *pi) {
    553     return This->lpVtbl->GetImageCount(This,pi);
    554 }
    555 static inline HRESULT IImageList_SetImageCount(IImageList* This,UINT uNewCount) {
    556     return This->lpVtbl->SetImageCount(This,uNewCount);
    557 }
    558 static inline HRESULT IImageList_SetBkColor(IImageList* This,COLORREF clrBk,COLORREF *pclr) {
    559     return This->lpVtbl->SetBkColor(This,clrBk,pclr);
    560 }
    561 static inline HRESULT IImageList_GetBkColor(IImageList* This,COLORREF *pclr) {
    562     return This->lpVtbl->GetBkColor(This,pclr);
    563 }
    564 static inline HRESULT IImageList_BeginDrag(IImageList* This,int iTrack,int dxHotspot,int dyHotspot) {
    565     return This->lpVtbl->BeginDrag(This,iTrack,dxHotspot,dyHotspot);
    566 }
    567 static inline HRESULT IImageList_EndDrag(IImageList* This) {
    568     return This->lpVtbl->EndDrag(This);
    569 }
    570 static inline HRESULT IImageList_DragEnter(IImageList* This,HWND hwndLock,int x,int y) {
    571     return This->lpVtbl->DragEnter(This,hwndLock,x,y);
    572 }
    573 static inline HRESULT IImageList_DragLeave(IImageList* This,HWND hwndLock) {
    574     return This->lpVtbl->DragLeave(This,hwndLock);
    575 }
    576 static inline HRESULT IImageList_DragMove(IImageList* This,int x,int y) {
    577     return This->lpVtbl->DragMove(This,x,y);
    578 }
    579 static inline HRESULT IImageList_SetDragCursorImage(IImageList* This,IUnknown *punk,int iDrag,int dxHotspot,int dyHotspot) {
    580     return This->lpVtbl->SetDragCursorImage(This,punk,iDrag,dxHotspot,dyHotspot);
    581 }
    582 static inline HRESULT IImageList_DragShowNolock(IImageList* This,WINBOOL fShow) {
    583     return This->lpVtbl->DragShowNolock(This,fShow);
    584 }
    585 static inline HRESULT IImageList_GetDragImage(IImageList* This,POINT *ppt,POINT *pptHotspot,REFIID riid,void **ppv) {
    586     return This->lpVtbl->GetDragImage(This,ppt,pptHotspot,riid,ppv);
    587 }
    588 static inline HRESULT IImageList_GetItemFlags(IImageList* This,int i,DWORD *dwFlags) {
    589     return This->lpVtbl->GetItemFlags(This,i,dwFlags);
    590 }
    591 static inline HRESULT IImageList_GetOverlayImage(IImageList* This,int iOverlay,int *piIndex) {
    592     return This->lpVtbl->GetOverlayImage(This,iOverlay,piIndex);
    593 }
    594 #endif
    595 #endif
    596 
    597 #endif
    598 
    599 
    600 #endif  /* __IImageList_INTERFACE_DEFINED__ */
    601 
    602 /*****************************************************************************
    603  * IImageList2 interface
    604  */
    605 #ifndef __IImageList2_INTERFACE_DEFINED__
    606 #define __IImageList2_INTERFACE_DEFINED__
    607 
    608 DEFINE_GUID(IID_IImageList2, 0x192b9d83, 0x50fc, 0x457b, 0x90,0xa0, 0x2b,0x82,0xa8,0xb5,0xda,0xe1);
    609 #if defined(__cplusplus) && !defined(CINTERFACE)
    610 MIDL_INTERFACE("192b9d83-50fc-457b-90a0-2b82a8b5dae1")
    611 IImageList2 : public IImageList
    612 {
    613     virtual HRESULT STDMETHODCALLTYPE Resize(
    614         int cxNewIconSize,
    615         int cyNewIconSize) = 0;
    616 
    617     virtual HRESULT STDMETHODCALLTYPE GetOriginalSize(
    618         int iImage,
    619         DWORD dwFlags,
    620         int *pcx,
    621         int *pcy) = 0;
    622 
    623     virtual HRESULT STDMETHODCALLTYPE SetOriginalSize(
    624         int iImage,
    625         int cx,
    626         int cy) = 0;
    627 
    628     virtual HRESULT STDMETHODCALLTYPE SetCallback(
    629         IUnknown *punk) = 0;
    630 
    631     virtual HRESULT STDMETHODCALLTYPE GetCallback(
    632         REFIID riid,
    633         void **ppv) = 0;
    634 
    635     virtual HRESULT STDMETHODCALLTYPE ForceImagePresent(
    636         int iImage,
    637         DWORD dwFlags) = 0;
    638 
    639     virtual HRESULT STDMETHODCALLTYPE DiscardImages(
    640         int iFirstImage,
    641         int iLastImage,
    642         DWORD dwFlags) = 0;
    643 
    644     virtual HRESULT STDMETHODCALLTYPE PreloadImages(
    645         IMAGELISTDRAWPARAMS *pimldp) = 0;
    646 
    647     virtual HRESULT STDMETHODCALLTYPE GetStatistics(
    648         IMAGELISTSTATS *pils) = 0;
    649 
    650     virtual HRESULT STDMETHODCALLTYPE Initialize(
    651         int cx,
    652         int cy,
    653         UINT flags,
    654         int cInitial,
    655         int cGrow) = 0;
    656 
    657     virtual HRESULT STDMETHODCALLTYPE Replace2(
    658         int i,
    659         HBITMAP hbmImage,
    660         HBITMAP hbmMask,
    661         IUnknown *punk,
    662         DWORD dwFlags) = 0;
    663 
    664     virtual HRESULT STDMETHODCALLTYPE ReplaceFromImageList(
    665         int i,
    666         IImageList *pil,
    667         int iSrc,
    668         IUnknown *punk,
    669         DWORD dwFlags) = 0;
    670 
    671 };
    672 #ifdef __CRT_UUID_DECL
    673 __CRT_UUID_DECL(IImageList2, 0x192b9d83, 0x50fc, 0x457b, 0x90,0xa0, 0x2b,0x82,0xa8,0xb5,0xda,0xe1)
    674 #endif
    675 #else
    676 typedef struct IImageList2Vtbl {
    677     BEGIN_INTERFACE
    678 
    679     /*** IUnknown methods ***/
    680     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    681         IImageList2 *This,
    682         REFIID riid,
    683         void **ppvObject);
    684 
    685     ULONG (STDMETHODCALLTYPE *AddRef)(
    686         IImageList2 *This);
    687 
    688     ULONG (STDMETHODCALLTYPE *Release)(
    689         IImageList2 *This);
    690 
    691     /*** IImageList methods ***/
    692     HRESULT (STDMETHODCALLTYPE *Add)(
    693         IImageList2 *This,
    694         HBITMAP hbmImage,
    695         HBITMAP hbmMask,
    696         int *pi);
    697 
    698     HRESULT (STDMETHODCALLTYPE *ReplaceIcon)(
    699         IImageList2 *This,
    700         int i,
    701         HICON hicon,
    702         int *pi);
    703 
    704     HRESULT (STDMETHODCALLTYPE *SetOverlayImage)(
    705         IImageList2 *This,
    706         int iImage,
    707         int iOverlay);
    708 
    709     HRESULT (STDMETHODCALLTYPE *Replace)(
    710         IImageList2 *This,
    711         int i,
    712         HBITMAP hbmImage,
    713         HBITMAP hbmMask);
    714 
    715     HRESULT (STDMETHODCALLTYPE *AddMasked)(
    716         IImageList2 *This,
    717         HBITMAP hbmImage,
    718         COLORREF crMask,
    719         int *pi);
    720 
    721     HRESULT (STDMETHODCALLTYPE *Draw)(
    722         IImageList2 *This,
    723         IMAGELISTDRAWPARAMS *pimldp);
    724 
    725     HRESULT (STDMETHODCALLTYPE *Remove)(
    726         IImageList2 *This,
    727         int i);
    728 
    729     HRESULT (STDMETHODCALLTYPE *GetIcon)(
    730         IImageList2 *This,
    731         int i,
    732         UINT flags,
    733         HICON *picon);
    734 
    735     HRESULT (STDMETHODCALLTYPE *GetImageInfo)(
    736         IImageList2 *This,
    737         int i,
    738         IMAGEINFO *pImageInfo);
    739 
    740     HRESULT (STDMETHODCALLTYPE *Copy)(
    741         IImageList2 *This,
    742         int iDst,
    743         IUnknown *punkSrc,
    744         int iSrc,
    745         UINT uFlags);
    746 
    747     HRESULT (STDMETHODCALLTYPE *Merge)(
    748         IImageList2 *This,
    749         int i1,
    750         IUnknown *punk2,
    751         int i2,
    752         int dx,
    753         int dy,
    754         REFIID riid,
    755         void **ppv);
    756 
    757     HRESULT (STDMETHODCALLTYPE *Clone)(
    758         IImageList2 *This,
    759         REFIID riid,
    760         void **ppv);
    761 
    762     HRESULT (STDMETHODCALLTYPE *GetImageRect)(
    763         IImageList2 *This,
    764         int i,
    765         RECT *prc);
    766 
    767     HRESULT (STDMETHODCALLTYPE *GetIconSize)(
    768         IImageList2 *This,
    769         int *cx,
    770         int *cy);
    771 
    772     HRESULT (STDMETHODCALLTYPE *SetIconSize)(
    773         IImageList2 *This,
    774         int cx,
    775         int cy);
    776 
    777     HRESULT (STDMETHODCALLTYPE *GetImageCount)(
    778         IImageList2 *This,
    779         int *pi);
    780 
    781     HRESULT (STDMETHODCALLTYPE *SetImageCount)(
    782         IImageList2 *This,
    783         UINT uNewCount);
    784 
    785     HRESULT (STDMETHODCALLTYPE *SetBkColor)(
    786         IImageList2 *This,
    787         COLORREF clrBk,
    788         COLORREF *pclr);
    789 
    790     HRESULT (STDMETHODCALLTYPE *GetBkColor)(
    791         IImageList2 *This,
    792         COLORREF *pclr);
    793 
    794     HRESULT (STDMETHODCALLTYPE *BeginDrag)(
    795         IImageList2 *This,
    796         int iTrack,
    797         int dxHotspot,
    798         int dyHotspot);
    799 
    800     HRESULT (STDMETHODCALLTYPE *EndDrag)(
    801         IImageList2 *This);
    802 
    803     HRESULT (STDMETHODCALLTYPE *DragEnter)(
    804         IImageList2 *This,
    805         HWND hwndLock,
    806         int x,
    807         int y);
    808 
    809     HRESULT (STDMETHODCALLTYPE *DragLeave)(
    810         IImageList2 *This,
    811         HWND hwndLock);
    812 
    813     HRESULT (STDMETHODCALLTYPE *DragMove)(
    814         IImageList2 *This,
    815         int x,
    816         int y);
    817 
    818     HRESULT (STDMETHODCALLTYPE *SetDragCursorImage)(
    819         IImageList2 *This,
    820         IUnknown *punk,
    821         int iDrag,
    822         int dxHotspot,
    823         int dyHotspot);
    824 
    825     HRESULT (STDMETHODCALLTYPE *DragShowNolock)(
    826         IImageList2 *This,
    827         WINBOOL fShow);
    828 
    829     HRESULT (STDMETHODCALLTYPE *GetDragImage)(
    830         IImageList2 *This,
    831         POINT *ppt,
    832         POINT *pptHotspot,
    833         REFIID riid,
    834         void **ppv);
    835 
    836     HRESULT (STDMETHODCALLTYPE *GetItemFlags)(
    837         IImageList2 *This,
    838         int i,
    839         DWORD *dwFlags);
    840 
    841     HRESULT (STDMETHODCALLTYPE *GetOverlayImage)(
    842         IImageList2 *This,
    843         int iOverlay,
    844         int *piIndex);
    845 
    846     /*** IImageList2 methods ***/
    847     HRESULT (STDMETHODCALLTYPE *Resize)(
    848         IImageList2 *This,
    849         int cxNewIconSize,
    850         int cyNewIconSize);
    851 
    852     HRESULT (STDMETHODCALLTYPE *GetOriginalSize)(
    853         IImageList2 *This,
    854         int iImage,
    855         DWORD dwFlags,
    856         int *pcx,
    857         int *pcy);
    858 
    859     HRESULT (STDMETHODCALLTYPE *SetOriginalSize)(
    860         IImageList2 *This,
    861         int iImage,
    862         int cx,
    863         int cy);
    864 
    865     HRESULT (STDMETHODCALLTYPE *SetCallback)(
    866         IImageList2 *This,
    867         IUnknown *punk);
    868 
    869     HRESULT (STDMETHODCALLTYPE *GetCallback)(
    870         IImageList2 *This,
    871         REFIID riid,
    872         void **ppv);
    873 
    874     HRESULT (STDMETHODCALLTYPE *ForceImagePresent)(
    875         IImageList2 *This,
    876         int iImage,
    877         DWORD dwFlags);
    878 
    879     HRESULT (STDMETHODCALLTYPE *DiscardImages)(
    880         IImageList2 *This,
    881         int iFirstImage,
    882         int iLastImage,
    883         DWORD dwFlags);
    884 
    885     HRESULT (STDMETHODCALLTYPE *PreloadImages)(
    886         IImageList2 *This,
    887         IMAGELISTDRAWPARAMS *pimldp);
    888 
    889     HRESULT (STDMETHODCALLTYPE *GetStatistics)(
    890         IImageList2 *This,
    891         IMAGELISTSTATS *pils);
    892 
    893     HRESULT (STDMETHODCALLTYPE *Initialize)(
    894         IImageList2 *This,
    895         int cx,
    896         int cy,
    897         UINT flags,
    898         int cInitial,
    899         int cGrow);
    900 
    901     HRESULT (STDMETHODCALLTYPE *Replace2)(
    902         IImageList2 *This,
    903         int i,
    904         HBITMAP hbmImage,
    905         HBITMAP hbmMask,
    906         IUnknown *punk,
    907         DWORD dwFlags);
    908 
    909     HRESULT (STDMETHODCALLTYPE *ReplaceFromImageList)(
    910         IImageList2 *This,
    911         int i,
    912         IImageList *pil,
    913         int iSrc,
    914         IUnknown *punk,
    915         DWORD dwFlags);
    916 
    917     END_INTERFACE
    918 } IImageList2Vtbl;
    919 
    920 interface IImageList2 {
    921     CONST_VTBL IImageList2Vtbl* lpVtbl;
    922 };
    923 
    924 #ifdef COBJMACROS
    925 #ifndef WIDL_C_INLINE_WRAPPERS
    926 /*** IUnknown methods ***/
    927 #define IImageList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    928 #define IImageList2_AddRef(This) (This)->lpVtbl->AddRef(This)
    929 #define IImageList2_Release(This) (This)->lpVtbl->Release(This)
    930 /*** IImageList methods ***/
    931 #define IImageList2_Add(This,hbmImage,hbmMask,pi) (This)->lpVtbl->Add(This,hbmImage,hbmMask,pi)
    932 #define IImageList2_ReplaceIcon(This,i,hicon,pi) (This)->lpVtbl->ReplaceIcon(This,i,hicon,pi)
    933 #define IImageList2_SetOverlayImage(This,iImage,iOverlay) (This)->lpVtbl->SetOverlayImage(This,iImage,iOverlay)
    934 #define IImageList2_Replace(This,i,hbmImage,hbmMask) (This)->lpVtbl->Replace(This,i,hbmImage,hbmMask)
    935 #define IImageList2_AddMasked(This,hbmImage,crMask,pi) (This)->lpVtbl->AddMasked(This,hbmImage,crMask,pi)
    936 #define IImageList2_Draw(This,pimldp) (This)->lpVtbl->Draw(This,pimldp)
    937 #define IImageList2_Remove(This,i) (This)->lpVtbl->Remove(This,i)
    938 #define IImageList2_GetIcon(This,i,flags,picon) (This)->lpVtbl->GetIcon(This,i,flags,picon)
    939 #define IImageList2_GetImageInfo(This,i,pImageInfo) (This)->lpVtbl->GetImageInfo(This,i,pImageInfo)
    940 #define IImageList2_Copy(This,iDst,punkSrc,iSrc,uFlags) (This)->lpVtbl->Copy(This,iDst,punkSrc,iSrc,uFlags)
    941 #define IImageList2_Merge(This,i1,punk2,i2,dx,dy,riid,ppv) (This)->lpVtbl->Merge(This,i1,punk2,i2,dx,dy,riid,ppv)
    942 #define IImageList2_Clone(This,riid,ppv) (This)->lpVtbl->Clone(This,riid,ppv)
    943 #define IImageList2_GetImageRect(This,i,prc) (This)->lpVtbl->GetImageRect(This,i,prc)
    944 #define IImageList2_GetIconSize(This,cx,cy) (This)->lpVtbl->GetIconSize(This,cx,cy)
    945 #define IImageList2_SetIconSize(This,cx,cy) (This)->lpVtbl->SetIconSize(This,cx,cy)
    946 #define IImageList2_GetImageCount(This,pi) (This)->lpVtbl->GetImageCount(This,pi)
    947 #define IImageList2_SetImageCount(This,uNewCount) (This)->lpVtbl->SetImageCount(This,uNewCount)
    948 #define IImageList2_SetBkColor(This,clrBk,pclr) (This)->lpVtbl->SetBkColor(This,clrBk,pclr)
    949 #define IImageList2_GetBkColor(This,pclr) (This)->lpVtbl->GetBkColor(This,pclr)
    950 #define IImageList2_BeginDrag(This,iTrack,dxHotspot,dyHotspot) (This)->lpVtbl->BeginDrag(This,iTrack,dxHotspot,dyHotspot)
    951 #define IImageList2_EndDrag(This) (This)->lpVtbl->EndDrag(This)
    952 #define IImageList2_DragEnter(This,hwndLock,x,y) (This)->lpVtbl->DragEnter(This,hwndLock,x,y)
    953 #define IImageList2_DragLeave(This,hwndLock) (This)->lpVtbl->DragLeave(This,hwndLock)
    954 #define IImageList2_DragMove(This,x,y) (This)->lpVtbl->DragMove(This,x,y)
    955 #define IImageList2_SetDragCursorImage(This,punk,iDrag,dxHotspot,dyHotspot) (This)->lpVtbl->SetDragCursorImage(This,punk,iDrag,dxHotspot,dyHotspot)
    956 #define IImageList2_DragShowNolock(This,fShow) (This)->lpVtbl->DragShowNolock(This,fShow)
    957 #define IImageList2_GetDragImage(This,ppt,pptHotspot,riid,ppv) (This)->lpVtbl->GetDragImage(This,ppt,pptHotspot,riid,ppv)
    958 #define IImageList2_GetItemFlags(This,i,dwFlags) (This)->lpVtbl->GetItemFlags(This,i,dwFlags)
    959 #define IImageList2_GetOverlayImage(This,iOverlay,piIndex) (This)->lpVtbl->GetOverlayImage(This,iOverlay,piIndex)
    960 /*** IImageList2 methods ***/
    961 #define IImageList2_Resize(This,cxNewIconSize,cyNewIconSize) (This)->lpVtbl->Resize(This,cxNewIconSize,cyNewIconSize)
    962 #define IImageList2_GetOriginalSize(This,iImage,dwFlags,pcx,pcy) (This)->lpVtbl->GetOriginalSize(This,iImage,dwFlags,pcx,pcy)
    963 #define IImageList2_SetOriginalSize(This,iImage,cx,cy) (This)->lpVtbl->SetOriginalSize(This,iImage,cx,cy)
    964 #define IImageList2_SetCallback(This,punk) (This)->lpVtbl->SetCallback(This,punk)
    965 #define IImageList2_GetCallback(This,riid,ppv) (This)->lpVtbl->GetCallback(This,riid,ppv)
    966 #define IImageList2_ForceImagePresent(This,iImage,dwFlags) (This)->lpVtbl->ForceImagePresent(This,iImage,dwFlags)
    967 #define IImageList2_DiscardImages(This,iFirstImage,iLastImage,dwFlags) (This)->lpVtbl->DiscardImages(This,iFirstImage,iLastImage,dwFlags)
    968 #define IImageList2_PreloadImages(This,pimldp) (This)->lpVtbl->PreloadImages(This,pimldp)
    969 #define IImageList2_GetStatistics(This,pils) (This)->lpVtbl->GetStatistics(This,pils)
    970 #define IImageList2_Initialize(This,cx,cy,flags,cInitial,cGrow) (This)->lpVtbl->Initialize(This,cx,cy,flags,cInitial,cGrow)
    971 #define IImageList2_Replace2(This,i,hbmImage,hbmMask,punk,dwFlags) (This)->lpVtbl->Replace2(This,i,hbmImage,hbmMask,punk,dwFlags)
    972 #define IImageList2_ReplaceFromImageList(This,i,pil,iSrc,punk,dwFlags) (This)->lpVtbl->ReplaceFromImageList(This,i,pil,iSrc,punk,dwFlags)
    973 #else
    974 /*** IUnknown methods ***/
    975 static inline HRESULT IImageList2_QueryInterface(IImageList2* This,REFIID riid,void **ppvObject) {
    976     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    977 }
    978 static inline ULONG IImageList2_AddRef(IImageList2* This) {
    979     return This->lpVtbl->AddRef(This);
    980 }
    981 static inline ULONG IImageList2_Release(IImageList2* This) {
    982     return This->lpVtbl->Release(This);
    983 }
    984 /*** IImageList methods ***/
    985 static inline HRESULT IImageList2_Add(IImageList2* This,HBITMAP hbmImage,HBITMAP hbmMask,int *pi) {
    986     return This->lpVtbl->Add(This,hbmImage,hbmMask,pi);
    987 }
    988 static inline HRESULT IImageList2_ReplaceIcon(IImageList2* This,int i,HICON hicon,int *pi) {
    989     return This->lpVtbl->ReplaceIcon(This,i,hicon,pi);
    990 }
    991 static inline HRESULT IImageList2_SetOverlayImage(IImageList2* This,int iImage,int iOverlay) {
    992     return This->lpVtbl->SetOverlayImage(This,iImage,iOverlay);
    993 }
    994 static inline HRESULT IImageList2_Replace(IImageList2* This,int i,HBITMAP hbmImage,HBITMAP hbmMask) {
    995     return This->lpVtbl->Replace(This,i,hbmImage,hbmMask);
    996 }
    997 static inline HRESULT IImageList2_AddMasked(IImageList2* This,HBITMAP hbmImage,COLORREF crMask,int *pi) {
    998     return This->lpVtbl->AddMasked(This,hbmImage,crMask,pi);
    999 }
   1000 static inline HRESULT IImageList2_Draw(IImageList2* This,IMAGELISTDRAWPARAMS *pimldp) {
   1001     return This->lpVtbl->Draw(This,pimldp);
   1002 }
   1003 static inline HRESULT IImageList2_Remove(IImageList2* This,int i) {
   1004     return This->lpVtbl->Remove(This,i);
   1005 }
   1006 static inline HRESULT IImageList2_GetIcon(IImageList2* This,int i,UINT flags,HICON *picon) {
   1007     return This->lpVtbl->GetIcon(This,i,flags,picon);
   1008 }
   1009 static inline HRESULT IImageList2_GetImageInfo(IImageList2* This,int i,IMAGEINFO *pImageInfo) {
   1010     return This->lpVtbl->GetImageInfo(This,i,pImageInfo);
   1011 }
   1012 static inline HRESULT IImageList2_Copy(IImageList2* This,int iDst,IUnknown *punkSrc,int iSrc,UINT uFlags) {
   1013     return This->lpVtbl->Copy(This,iDst,punkSrc,iSrc,uFlags);
   1014 }
   1015 static inline HRESULT IImageList2_Merge(IImageList2* This,int i1,IUnknown *punk2,int i2,int dx,int dy,REFIID riid,void **ppv) {
   1016     return This->lpVtbl->Merge(This,i1,punk2,i2,dx,dy,riid,ppv);
   1017 }
   1018 static inline HRESULT IImageList2_Clone(IImageList2* This,REFIID riid,void **ppv) {
   1019     return This->lpVtbl->Clone(This,riid,ppv);
   1020 }
   1021 static inline HRESULT IImageList2_GetImageRect(IImageList2* This,int i,RECT *prc) {
   1022     return This->lpVtbl->GetImageRect(This,i,prc);
   1023 }
   1024 static inline HRESULT IImageList2_GetIconSize(IImageList2* This,int *cx,int *cy) {
   1025     return This->lpVtbl->GetIconSize(This,cx,cy);
   1026 }
   1027 static inline HRESULT IImageList2_SetIconSize(IImageList2* This,int cx,int cy) {
   1028     return This->lpVtbl->SetIconSize(This,cx,cy);
   1029 }
   1030 static inline HRESULT IImageList2_GetImageCount(IImageList2* This,int *pi) {
   1031     return This->lpVtbl->GetImageCount(This,pi);
   1032 }
   1033 static inline HRESULT IImageList2_SetImageCount(IImageList2* This,UINT uNewCount) {
   1034     return This->lpVtbl->SetImageCount(This,uNewCount);
   1035 }
   1036 static inline HRESULT IImageList2_SetBkColor(IImageList2* This,COLORREF clrBk,COLORREF *pclr) {
   1037     return This->lpVtbl->SetBkColor(This,clrBk,pclr);
   1038 }
   1039 static inline HRESULT IImageList2_GetBkColor(IImageList2* This,COLORREF *pclr) {
   1040     return This->lpVtbl->GetBkColor(This,pclr);
   1041 }
   1042 static inline HRESULT IImageList2_BeginDrag(IImageList2* This,int iTrack,int dxHotspot,int dyHotspot) {
   1043     return This->lpVtbl->BeginDrag(This,iTrack,dxHotspot,dyHotspot);
   1044 }
   1045 static inline HRESULT IImageList2_EndDrag(IImageList2* This) {
   1046     return This->lpVtbl->EndDrag(This);
   1047 }
   1048 static inline HRESULT IImageList2_DragEnter(IImageList2* This,HWND hwndLock,int x,int y) {
   1049     return This->lpVtbl->DragEnter(This,hwndLock,x,y);
   1050 }
   1051 static inline HRESULT IImageList2_DragLeave(IImageList2* This,HWND hwndLock) {
   1052     return This->lpVtbl->DragLeave(This,hwndLock);
   1053 }
   1054 static inline HRESULT IImageList2_DragMove(IImageList2* This,int x,int y) {
   1055     return This->lpVtbl->DragMove(This,x,y);
   1056 }
   1057 static inline HRESULT IImageList2_SetDragCursorImage(IImageList2* This,IUnknown *punk,int iDrag,int dxHotspot,int dyHotspot) {
   1058     return This->lpVtbl->SetDragCursorImage(This,punk,iDrag,dxHotspot,dyHotspot);
   1059 }
   1060 static inline HRESULT IImageList2_DragShowNolock(IImageList2* This,WINBOOL fShow) {
   1061     return This->lpVtbl->DragShowNolock(This,fShow);
   1062 }
   1063 static inline HRESULT IImageList2_GetDragImage(IImageList2* This,POINT *ppt,POINT *pptHotspot,REFIID riid,void **ppv) {
   1064     return This->lpVtbl->GetDragImage(This,ppt,pptHotspot,riid,ppv);
   1065 }
   1066 static inline HRESULT IImageList2_GetItemFlags(IImageList2* This,int i,DWORD *dwFlags) {
   1067     return This->lpVtbl->GetItemFlags(This,i,dwFlags);
   1068 }
   1069 static inline HRESULT IImageList2_GetOverlayImage(IImageList2* This,int iOverlay,int *piIndex) {
   1070     return This->lpVtbl->GetOverlayImage(This,iOverlay,piIndex);
   1071 }
   1072 /*** IImageList2 methods ***/
   1073 static inline HRESULT IImageList2_Resize(IImageList2* This,int cxNewIconSize,int cyNewIconSize) {
   1074     return This->lpVtbl->Resize(This,cxNewIconSize,cyNewIconSize);
   1075 }
   1076 static inline HRESULT IImageList2_GetOriginalSize(IImageList2* This,int iImage,DWORD dwFlags,int *pcx,int *pcy) {
   1077     return This->lpVtbl->GetOriginalSize(This,iImage,dwFlags,pcx,pcy);
   1078 }
   1079 static inline HRESULT IImageList2_SetOriginalSize(IImageList2* This,int iImage,int cx,int cy) {
   1080     return This->lpVtbl->SetOriginalSize(This,iImage,cx,cy);
   1081 }
   1082 static inline HRESULT IImageList2_SetCallback(IImageList2* This,IUnknown *punk) {
   1083     return This->lpVtbl->SetCallback(This,punk);
   1084 }
   1085 static inline HRESULT IImageList2_GetCallback(IImageList2* This,REFIID riid,void **ppv) {
   1086     return This->lpVtbl->GetCallback(This,riid,ppv);
   1087 }
   1088 static inline HRESULT IImageList2_ForceImagePresent(IImageList2* This,int iImage,DWORD dwFlags) {
   1089     return This->lpVtbl->ForceImagePresent(This,iImage,dwFlags);
   1090 }
   1091 static inline HRESULT IImageList2_DiscardImages(IImageList2* This,int iFirstImage,int iLastImage,DWORD dwFlags) {
   1092     return This->lpVtbl->DiscardImages(This,iFirstImage,iLastImage,dwFlags);
   1093 }
   1094 static inline HRESULT IImageList2_PreloadImages(IImageList2* This,IMAGELISTDRAWPARAMS *pimldp) {
   1095     return This->lpVtbl->PreloadImages(This,pimldp);
   1096 }
   1097 static inline HRESULT IImageList2_GetStatistics(IImageList2* This,IMAGELISTSTATS *pils) {
   1098     return This->lpVtbl->GetStatistics(This,pils);
   1099 }
   1100 static inline HRESULT IImageList2_Initialize(IImageList2* This,int cx,int cy,UINT flags,int cInitial,int cGrow) {
   1101     return This->lpVtbl->Initialize(This,cx,cy,flags,cInitial,cGrow);
   1102 }
   1103 static inline HRESULT IImageList2_Replace2(IImageList2* This,int i,HBITMAP hbmImage,HBITMAP hbmMask,IUnknown *punk,DWORD dwFlags) {
   1104     return This->lpVtbl->Replace2(This,i,hbmImage,hbmMask,punk,dwFlags);
   1105 }
   1106 static inline HRESULT IImageList2_ReplaceFromImageList(IImageList2* This,int i,IImageList *pil,int iSrc,IUnknown *punk,DWORD dwFlags) {
   1107     return This->lpVtbl->ReplaceFromImageList(This,i,pil,iSrc,punk,dwFlags);
   1108 }
   1109 #endif
   1110 #endif
   1111 
   1112 #endif
   1113 
   1114 
   1115 #endif  /* __IImageList2_INTERFACE_DEFINED__ */
   1116 
   1117 #ifndef __CommonControlObjects_LIBRARY_DEFINED__
   1118 #define __CommonControlObjects_LIBRARY_DEFINED__
   1119 
   1120 DEFINE_GUID(LIBID_CommonControlObjects, 0xbcada15b, 0xb428, 0x420c, 0x8d,0x28, 0x02,0x35,0x90,0x92,0x4c,0x9f);
   1121 
   1122 /*****************************************************************************
   1123  * ImageList coclass
   1124  */
   1125 
   1126 DEFINE_GUID(CLSID_ImageList, 0x7c476ba2, 0x02b1, 0x48f4, 0x80,0x48, 0xb2,0x46,0x19,0xdd,0xc0,0x58);
   1127 
   1128 #ifdef __cplusplus
   1129 class DECLSPEC_UUID("7c476ba2-02b1-48f4-8048-b24619ddc058") ImageList;
   1130 #ifdef __CRT_UUID_DECL
   1131 __CRT_UUID_DECL(ImageList, 0x7c476ba2, 0x02b1, 0x48f4, 0x80,0x48, 0xb2,0x46,0x19,0xdd,0xc0,0x58)
   1132 #endif
   1133 #endif
   1134 
   1135 #endif /* __CommonControlObjects_LIBRARY_DEFINED__ */
   1136 #endif
   1137 /* Begin additional prototypes for all interfaces */
   1138 
   1139 
   1140 /* End additional prototypes */
   1141 
   1142 #ifdef __cplusplus
   1143 }
   1144 #endif
   1145 
   1146 #endif /* __commoncontrols_h__ */