kernelbase: Move FlsAlloc() implementation to ntdll.RtlFlsAlloc().
[wine/zf.git] / include / commoncontrols.idl
blob407274994ef1626a0e0d4d0ccba729dbce259bd5
1 /*
2 * Common controls v6 interface definitions
4 * Copyright 2009 Owen Rudge for CodeWeavers
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.
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.
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
21 import "oaidl.idl";
22 import "ocidl.idl";
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;
29 typedef struct
31 HBITMAP hbmImage;
32 HBITMAP hbmMask;
33 int Unused1;
34 int Unused2;
35 RECT rcImage;
36 } IMAGEINFO;
38 typedef IMAGEINFO* LPIMAGEINFO;
40 typedef struct
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;
61 typedef IMAGELISTDRAWPARAMS* LPIMAGELISTDRAWPARAMS;
62 cpp_quote("#endif")
64 cpp_quote("HRESULT WINAPI ImageList_CoCreateInstance(REFCLSID,const IUnknown *, REFIID,void **);")
66 cpp_quote("#define ILIF_ALPHA 0x00000001")
67 cpp_quote("#define ILIF_LOWQUALITY 0x00000002")
70 uuid(46eb5926-582e-4017-9fdf-e8998daa0950),
71 local
73 interface IImageList : IUnknown
75 HRESULT Add(
76 [in] HBITMAP hbmImage,
77 [in] HBITMAP hbmMask,
78 [out] int* pi);
80 HRESULT ReplaceIcon(
81 [in] int i,
82 [in] HICON hicon,
83 [out] int* pi);
85 HRESULT SetOverlayImage(
86 [in] int iImage,
87 [in] int iOverlay);
89 HRESULT Replace(
90 [in] int i,
91 [in] HBITMAP hbmImage,
92 [in] HBITMAP hbmMask);
94 HRESULT AddMasked(
95 [in] HBITMAP hbmImage,
96 [in] COLORREF crMask,
97 [out] int* pi);
99 HRESULT Draw(
100 [in] IMAGELISTDRAWPARAMS* pimldp);
102 HRESULT Remove(
103 [in] int i);
105 HRESULT GetIcon(
106 [in] int i,
107 [in] UINT flags,
108 [out] HICON* picon);
110 HRESULT GetImageInfo(
111 [in] int i,
112 [out] IMAGEINFO* pImageInfo);
114 HRESULT Copy(
115 [in] int iDst,
116 [in] IUnknown* punkSrc,
117 [in] int iSrc,
118 [in] UINT uFlags);
120 HRESULT Merge(
121 [in] int i1,
122 [in] IUnknown* punk2,
123 [in] int i2,
124 [in] int dx,
125 [in] int dy,
126 [out] REFIID riid,
127 [out] PVOID* ppv);
129 HRESULT Clone(
130 [in] REFIID riid,
131 [out] PVOID* ppv);
133 HRESULT GetImageRect(
134 [in] int i,
135 [out] RECT* prc);
137 HRESULT GetIconSize(
138 [out] int* cx,
139 [out] int* cy);
141 HRESULT SetIconSize(
142 [in] int cx,
143 [in] int cy);
145 HRESULT GetImageCount(
146 [out] int* pi);
148 HRESULT SetImageCount(
149 [in] UINT uNewCount);
151 HRESULT SetBkColor(
152 [in] COLORREF clrBk,
153 [out] COLORREF* pclr);
155 HRESULT GetBkColor(
156 [out] COLORREF* pclr);
158 HRESULT BeginDrag(
159 [in] int iTrack,
160 [in] int dxHotspot,
161 [in] int dyHotspot);
163 HRESULT EndDrag();
165 HRESULT DragEnter(
166 [in] HWND hwndLock,
167 [in] int x,
168 [in] int y);
170 HRESULT DragLeave(
171 [in] HWND hwndLock);
173 HRESULT DragMove(
174 [in] int x,
175 [in] int y);
177 HRESULT SetDragCursorImage(
178 [in] IUnknown* punk,
179 [in] int iDrag,
180 [in] int dxHotspot,
181 [in] int dyHotspot);
183 HRESULT DragShowNolock(
184 [in] BOOL fShow);
186 HRESULT GetDragImage(
187 [out] POINT * ppt,
188 [out] POINT * pptHotspot,
189 [out] REFIID riid,
190 [out] PVOID* ppv);
192 HRESULT GetItemFlags(
193 [in] int i,
194 [out] DWORD *dwFlags);
196 HRESULT GetOverlayImage(
197 [in] int iOverlay,
198 [out] int* piIndex);
202 uuid(192b9d83-50fc-457b-90a0-2b82a8b5dae1),
203 local
205 interface IImageList2 : IImageList
207 typedef struct tagIMAGELISTSTATS
209 DWORD cbSize;
210 INT cAlloc;
211 INT cUsed;
212 INT cStandby;
213 } IMAGELISTSTATS;
215 HRESULT Resize(INT x_size, INT y_size);
216 HRESULT GetOriginalSize([in] INT image, [in] DWORD flags, [out] INT *cx, [out] INT *cy);
217 HRESULT SetOriginalSize([in] INT image, [in] INT cx, [in] INT cy);
218 HRESULT SetCallback([in, unique] IUnknown *callback);
219 HRESULT GetCallback([in] REFIID riid, [out, iid_is(riid)] void** ppv);
220 HRESULT ForceImagePresent([in] INT image, DWORD flags);
221 HRESULT DiscardImages([in] INT first_image, [in] INT last_image, [in] DWORD flags);
222 HRESULT PreloadImages([in] IMAGELISTDRAWPARAMS *params);
223 HRESULT GetStatistics([in, out] IMAGELISTSTATS *stats);
224 HRESULT Initialize([in] INT cx, [in] INT cy, [in] UINT flags, [in] INT initial, [in] INT grow);
225 HRESULT Replace2([in] INT i, [in] HBITMAP image, [in, unique] HBITMAP mask, [in, unique] IUnknown *unk, [in] DWORD flags);
226 HRESULT ReplaceFromImageList([in] INT i, [in] IImageList *imagelist, [in] INT src, [in, unique] IUnknown *unk, [in] DWORD flags);
230 uuid(bcada15B-b428-420c-8d28-023590924c9f)
232 library CommonControlObjects
235 uuid(7c476ba2-02b1-48f4-8048-b24619ddc058)
237 coclass ImageList
239 interface IImageList;
240 interface IImageList2;