gdi32: Add CreateFontIndirectEx implementation.
[wine] / include / 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 }