1cpp_quote("/**") 2cpp_quote(" * This file is part of the mingw-w64 runtime package.") 3cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.") 4cpp_quote(" */") 5 6import "oaidl.idl"; 7import "ocidl.idl"; 8 9cpp_quote("#include <winapifamily.h>") 10cpp_quote("") 11cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 12cpp_quote("#ifndef WINCOMMCTRLAPI") 13cpp_quote("#ifndef _COMCTL32_") 14cpp_quote("#define WINCOMMCTRLAPI DECLSPEC_IMPORT") 15cpp_quote("#else") 16cpp_quote("#define WINCOMMCTRLAPI") 17cpp_quote("#endif") 18cpp_quote("#endif") 19cpp_quote("") 20cpp_quote("#ifdef __WIDL__") 21 22typedef DWORD RGBQUAD; 23typedef IUnknown *HIMAGELIST; 24cpp_quote("typedef struct _IMAGELIST *HIMAGELIST;") 25 26typedef struct _IMAGELISTDRAWPARAMS { 27 DWORD cbSize; 28 HIMAGELIST himl; 29 int i; 30 HDC hdcDst; 31 int x; 32 int y; 33 int cx; 34 int cy; 35 int xBitmap; 36 int yBitmap; 37 COLORREF rgbBk; 38 COLORREF rgbFg; 39 UINT fStyle; 40 DWORD dwRop; 41 DWORD fState; 42 DWORD Frame; 43 COLORREF crEffect; 44} IMAGELISTDRAWPARAMS; 45 46typedef IMAGELISTDRAWPARAMS *LPIMAGELISTDRAWPARAMS; 47 48typedef struct tagIMAGEINFO { 49 HBITMAP hbmImage; 50 HBITMAP hbmMask; 51 int Unused1; 52 int Unused2; 53 RECT rcImage; 54} IMAGEINFO; 55 56typedef IMAGEINFO *LPIMAGEINFO; 57cpp_quote("#endif") 58cpp_quote("") 59cpp_quote("#define ILIF_ALPHA 0x1") 60cpp_quote("#define ILIF_LOWQUALITY 0x2") 61cpp_quote("") 62cpp_quote("#define ILDRF_IMAGELOWQUALITY 0x1") 63cpp_quote("#define ILDRF_OVERLAYLOWQUALITY 0x10") 64cpp_quote("") 65cpp_quote("#define ILR_DEFAULT 0x0") 66cpp_quote("#define ILR_HORIZONTAL_LEFT 0x0") 67cpp_quote("#define ILR_HORIZONTAL_CENTER 0x1") 68cpp_quote("#define ILR_HORIZONTAL_RIGHT 0x2") 69cpp_quote("#define ILR_VERTICAL_TOP 0x0") 70cpp_quote("#define ILR_VERTICAL_CENTER 0x10") 71cpp_quote("#define ILR_VERTICAL_BOTTOM 0x20") 72cpp_quote("#define ILR_SCALE_CLIP 0x0") 73cpp_quote("#define ILR_SCALE_ASPECTRATIO 0x100") 74cpp_quote("") 75cpp_quote("#define ILGOS_ALWAYS 0x0") 76cpp_quote("#define ILGOS_FROMSTANDBY 0x1") 77cpp_quote("") 78cpp_quote("#define ILFIP_ALWAYS 0x0") 79cpp_quote("#define ILFIP_FROMSTANDBY 0x1") 80cpp_quote("") 81cpp_quote("#define ILDI_PURGE 0x1") 82cpp_quote("#define ILDI_STANDBY 0x2") 83cpp_quote("#define ILDI_RESETACCESS 0x4") 84cpp_quote("#define ILDI_QUERYACCESS 0x8") 85 86cpp_quote("") 87cpp_quote("#if NTDDI_VERSION >= 0x06000000") 88cpp_quote("WINCOMMCTRLAPI HRESULT WINAPI ImageList_CoCreateInstance (REFCLSID rclsid, const IUnknown *punkOuter, REFIID riid, void **ppv);") 89cpp_quote("#endif") 90 91typedef struct tagIMAGELISTSTATS { 92 DWORD cbSize; 93 int cAlloc; 94 int cUsed; 95 int cStandby; 96} IMAGELISTSTATS; 97 98[local, uuid (46eb5926-582e-4017-9fdf-E8998DAA0950)] 99interface IImageList : IUnknown { 100 HRESULT Add ([in] HBITMAP hbmImage,[in, unique] HBITMAP hbmMask,[out] int *pi); 101 HRESULT ReplaceIcon (int i,[in] HICON hicon,[out] int *pi); 102 HRESULT SetOverlayImage (int iImage, int iOverlay); 103 HRESULT Replace (int i,[in] HBITMAP hbmImage,[in, unique] HBITMAP hbmMask); 104 HRESULT AddMasked ([in] HBITMAP hbmImage, COLORREF crMask,[out] int *pi); 105 HRESULT Draw ([in] IMAGELISTDRAWPARAMS *pimldp); 106 HRESULT Remove (int i); 107 HRESULT GetIcon (int i, UINT flags,[out] HICON *picon); 108 HRESULT GetImageInfo (int i,[out] IMAGEINFO *pImageInfo); 109 HRESULT Copy (int iDst,[in] IUnknown *punkSrc, int iSrc, UINT uFlags); 110 HRESULT Merge (int i1,[in] IUnknown *punk2, int i2, int dx, int dy, REFIID riid,[out, iid_is (riid)] void **ppv); 111 HRESULT Clone (REFIID riid,[out, iid_is (riid)] void **ppv); 112 HRESULT GetImageRect (int i,[out] RECT *prc); 113 HRESULT GetIconSize ([out] int *cx,[out] int *cy); 114 HRESULT SetIconSize (int cx, int cy); 115 HRESULT GetImageCount ([out] int *pi); 116 HRESULT SetImageCount (UINT uNewCount); 117 HRESULT SetBkColor (COLORREF clrBk,[out] COLORREF *pclr); 118 HRESULT GetBkColor ([out] COLORREF *pclr); 119 HRESULT BeginDrag (int iTrack, int dxHotspot, int dyHotspot); 120 HRESULT EndDrag (); 121 HRESULT DragEnter ([in, unique] HWND hwndLock, int x, int y); 122 HRESULT DragLeave ([in, unique] HWND hwndLock); 123 HRESULT DragMove (int x, int y); 124 HRESULT SetDragCursorImage ([in] IUnknown *punk, int iDrag, int dxHotspot, int dyHotspot); 125 HRESULT DragShowNolock (WINBOOL fShow); 126 HRESULT GetDragImage ([out] POINT *ppt,[out] POINT *pptHotspot, REFIID riid,[out, iid_is (riid)] void **ppv); 127 HRESULT GetItemFlags (int i,[out] DWORD *dwFlags); 128 HRESULT GetOverlayImage (int iOverlay,[out] int *piIndex); 129}; 130 131[local, uuid (192b9d83-50fc-457b-90a0-2b82a8b5dae1)] 132interface IImageList2 : IImageList { 133 HRESULT Resize (int cxNewIconSize, int cyNewIconSize); 134 HRESULT GetOriginalSize ([in] int iImage,[in] DWORD dwFlags,[out] int *pcx,[out] int *pcy); 135 HRESULT SetOriginalSize ([in] int iImage,[in] int cx,[in] int cy); 136 HRESULT SetCallback ([in, unique] IUnknown *punk); 137 HRESULT GetCallback ([in] REFIID riid,[out, iid_is (riid)] void **ppv); 138 HRESULT ForceImagePresent ([in] int iImage, DWORD dwFlags); 139 HRESULT DiscardImages ([in] int iFirstImage,[in] int iLastImage,[in] DWORD dwFlags); 140 HRESULT PreloadImages ([in] IMAGELISTDRAWPARAMS *pimldp); 141 HRESULT GetStatistics ([in, out] IMAGELISTSTATS *pils); 142 HRESULT Initialize ([in] int cx,[in] int cy,[in] UINT flags,[in] int cInitial,[in] int cGrow); 143 HRESULT Replace2 ([in] int i,[in] HBITMAP hbmImage,[in, unique] HBITMAP hbmMask,[in, unique] IUnknown *punk,[in] DWORD dwFlags); 144 HRESULT ReplaceFromImageList ([in] int i,[in] IImageList *pil,[in] int iSrc,[in, unique] IUnknown *punk,[in] DWORD dwFlags); 145}; 146 147[uuid (BCADA15B-B428-420c-8d28-023590924c9f)] 148library CommonControlObjects { 149 [uuid (7c476ba2-02b1-48f4-8048-B24619DDC058)] 150 coclass ImageList { 151 interface IImageList; 152 interface IImageList2; 153 } 154}; 155cpp_quote("#endif") 156