[CMAKE]: Add wmc to host tools, and export it as native-wmc.
[reactos.git] / include / psdk / commoncontrols.idl
1 /*
2 * Common controls v6 interface definitions
3 *
4 * Copyright 2009 Owen Rudge for CodeWeavers
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21 import "oaidl.idl";
22 import "ocidl.idl";
23
24 /* Definitions required for widl, but already defined in commctrl.h for C */
25 cpp_quote("#if 0")
26 typedef DWORD RGBQUAD;
27 typedef IUnknown* HIMAGELIST;
28
29 typedef struct
30 {
31 HBITMAP hbmImage;
32 HBITMAP hbmMask;
33 int Unused1;
34 int Unused2;
35 RECT rcImage;
36 } IMAGEINFO;
37
38 typedef IMAGEINFO* LPIMAGEINFO;
39
40 typedef struct
41 {
42 DWORD cbSize;
43 HIMAGELIST himl;
44 int i;
45 HDC hdcDst;
46 int x;
47 int y;
48 int cx;
49 int cy;
50 int xBitmap;
51 int yBitmap;
52 COLORREF rgbBk;
53 COLORREF rgbFg;
54 UINT fStyle;
55 DWORD dwRop;
56 DWORD fState;
57 DWORD Frame;
58 COLORREF crEffect;
59 } IMAGELISTDRAWPARAMS;
60
61 typedef IMAGELISTDRAWPARAMS* LPIMAGELISTDRAWPARAMS;
62 cpp_quote("#endif")
63
64 cpp_quote("HRESULT WINAPI ImageList_CoCreateInstance(REFCLSID,const IUnknown *, REFIID,void **);")
65
66 const UINT ILIF_ALPHA = 1;
67
68 [
69 object,
70 uuid(46EB5926-582E-4017-9FDF-E8998DAA0950),
71 helpstring("Image List"),
72 local
73 ]
74 interface IImageList : IUnknown
75 {
76 HRESULT Add(
77 [in] HBITMAP hbmImage,
78 [in] HBITMAP hbmMask,
79 [out] int* pi);
80
81 HRESULT ReplaceIcon(
82 [in] int i,
83 [in] HICON hicon,
84 [out] int* pi);
85
86 HRESULT SetOverlayImage(
87 [in] int iImage,
88 [in] int iOverlay);
89
90 HRESULT Replace(
91 [in] int i,
92 [in] HBITMAP hbmImage,
93 [in] HBITMAP hbmMask);
94
95 HRESULT AddMasked(
96 [in] HBITMAP hbmImage,
97 [in] COLORREF crMask,
98 [out] int* pi);
99
100 HRESULT Draw(
101 [in] IMAGELISTDRAWPARAMS* pimldp);
102
103 HRESULT Remove(
104 [in] int i);
105
106 HRESULT GetIcon(
107 [in] int i,
108 [in] UINT flags,
109 [out] HICON* picon);
110
111 HRESULT GetImageInfo(
112 [in] int i,
113 [out] IMAGEINFO* pImageInfo);
114
115 HRESULT Copy(
116 [in] int iDst,
117 [in] IUnknown* punkSrc,
118 [in] int iSrc,
119 [in] UINT uFlags);
120
121 HRESULT Merge(
122 [in] int i1,
123 [in] IUnknown* punk2,
124 [in] int i2,
125 [in] int dx,
126 [in] int dy,
127 [out] REFIID riid,
128 [out] PVOID* ppv);
129
130 HRESULT Clone(
131 [in] REFIID riid,
132 [out] PVOID* ppv);
133
134 HRESULT GetImageRect(
135 [in] int i,
136 [out] RECT* prc);
137
138 HRESULT GetIconSize(
139 [out] int* cx,
140 [out] int* cy);
141
142 HRESULT SetIconSize(
143 [in] int cx,
144 [in] int cy);
145
146 HRESULT GetImageCount(
147 [out] int* pi);
148
149 HRESULT SetImageCount(
150 [in] UINT uNewCount);
151
152 HRESULT SetBkColor(
153 [in] COLORREF clrBk,
154 [out] COLORREF* pclr);
155
156 HRESULT GetBkColor(
157 [out] COLORREF* pclr);
158
159 HRESULT BeginDrag(
160 [in] int iTrack,
161 [in] int dxHotspot,
162 [in] int dyHotspot);
163
164 HRESULT EndDrag();
165
166 HRESULT DragEnter(
167 [in] HWND hwndLock,
168 [in] int x,
169 [in] int y);
170
171 HRESULT DragLeave(
172 [in] HWND hwndLock);
173
174 HRESULT DragMove(
175 [in] int x,
176 [in] int y);
177
178 HRESULT SetDragCursorImage(
179 [in] IUnknown* punk,
180 [in] int iDrag,
181 [in] int dxHotspot,
182 [in] int dyHotspot);
183
184 HRESULT DragShowNolock(
185 [in] BOOL fShow);
186
187 HRESULT GetDragImage(
188 [out] POINT * ppt,
189 [out] POINT * pptHotspot,
190 [out] REFIID riid,
191 [out] PVOID* ppv);
192
193 HRESULT GetItemFlags(
194 [in] int i,
195 [out] DWORD *dwFlags);
196
197 HRESULT GetOverlayImage(
198 [in] int iOverlay,
199 [out] int* piIndex);
200 }
201
202 [
203 uuid(BCADA15B-B428-420c-8D28-023590924C9F)
204 ]
205 library CommonControlObjects
206 {
207 [
208 uuid(7C476BA2-02B1-48f4-8048-B24619DDC058)
209 ]
210 coclass ImageList
211 {
212 interface IImageList;
213 }
214 }