• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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