DIB Engine: implement most engine functions
[wine/hacks.git] / include / commoncontrols.idl
blob6e0083766a85a28c4b8e52f13f4b1ddb0f1f5810
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 const UINT ILIF_ALPHA = 1;
69 object,
70 uuid(46EB5926-582E-4017-9FDF-E8998DAA0950),
71 helpstring("Image List"),
72 local
74 interface IImageList : IUnknown
76 HRESULT Add(
77 [in] HBITMAP hbmImage,
78 [in] HBITMAP hbmMask,
79 [out] int* pi);
81 HRESULT ReplaceIcon(
82 [in] int i,
83 [in] HICON hicon,
84 [out] int* pi);
86 HRESULT SetOverlayImage(
87 [in] int iImage,
88 [in] int iOverlay);
90 HRESULT Replace(
91 [in] int i,
92 [in] HBITMAP hbmImage,
93 [in] HBITMAP hbmMask);
95 HRESULT AddMasked(
96 [in] HBITMAP hbmImage,
97 [in] COLORREF crMask,
98 [out] int* pi);
100 HRESULT Draw(
101 [in] IMAGELISTDRAWPARAMS* pimldp);
103 HRESULT Remove(
104 [in] int i);
106 HRESULT GetIcon(
107 [in] int i,
108 [in] UINT flags,
109 [out] HICON* picon);
111 HRESULT GetImageInfo(
112 [in] int i,
113 [out] IMAGEINFO* pImageInfo);
115 HRESULT Copy(
116 [in] int iDst,
117 [in] IUnknown* punkSrc,
118 [in] int iSrc,
119 [in] UINT uFlags);
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);
130 HRESULT Clone(
131 [in] REFIID riid,
132 [out] PVOID* ppv);
134 HRESULT GetImageRect(
135 [in] int i,
136 [out] RECT* prc);
138 HRESULT GetIconSize(
139 [out] int* cx,
140 [out] int* cy);
142 HRESULT SetIconSize(
143 [in] int cx,
144 [in] int cy);
146 HRESULT GetImageCount(
147 [out] int* pi);
149 HRESULT SetImageCount(
150 [in] UINT uNewCount);
152 HRESULT SetBkColor(
153 [in] COLORREF clrBk,
154 [out] COLORREF* pclr);
156 HRESULT GetBkColor(
157 [out] COLORREF* pclr);
159 HRESULT BeginDrag(
160 [in] int iTrack,
161 [in] int dxHotspot,
162 [in] int dyHotspot);
164 HRESULT EndDrag();
166 HRESULT DragEnter(
167 [in] HWND hwndLock,
168 [in] int x,
169 [in] int y);
171 HRESULT DragLeave(
172 [in] HWND hwndLock);
174 HRESULT DragMove(
175 [in] int x,
176 [in] int y);
178 HRESULT SetDragCursorImage(
179 [in] IUnknown* punk,
180 [in] int iDrag,
181 [in] int dxHotspot,
182 [in] int dyHotspot);
184 HRESULT DragShowNolock(
185 [in] BOOL fShow);
187 HRESULT GetDragImage(
188 [out] POINT * ppt,
189 [out] POINT * pptHotspot,
190 [out] REFIID riid,
191 [out] PVOID* ppv);
193 HRESULT GetItemFlags(
194 [in] int i,
195 [out] DWORD *dwFlags);
197 HRESULT GetOverlayImage(
198 [in] int iOverlay,
199 [out] int* piIndex);
203 uuid(BCADA15B-B428-420c-8D28-023590924C9F)
205 library CommonControlObjects
208 uuid(7C476BA2-02B1-48f4-8048-B24619DDC058)
210 coclass ImageList
212 interface IImageList;