stdole2.tlb: Move stdole2.tlb generation to include to allow importlib from other...
[wine] / include / stdole2.idl
1 /*
2  * Copyright (C) 2003 Robert Shearman
3  *               2005 Huw Davies
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18  *
19  */
20
21 [
22   uuid(00020430-0000-0000-C000-000000000046),
23   version(2.0),
24   helpstring("OLE Automation")
25 ]
26 library stdole
27 {
28         /* typedefs aren't stored in the type library.
29            These type names are known by the type compiler so it
30            doesn't really matter what we define them as. */
31
32     typedef short VARIANT_BOOL;
33     typedef long BSTR;
34     typedef double CURRENCY;
35     typedef unsigned long HRESULT;
36     typedef void *VARIANT;
37     typedef unsigned long SCODE;
38     
39     typedef struct GUID {
40         unsigned long  Data1;
41         unsigned short Data2;
42         unsigned short Data3;
43         unsigned char  Data4[ 8 ];
44     } GUID;
45
46     typedef struct DISPPARAMS {
47         VARIANT *rgvarg;
48         long *rgdispidNamedArgs;
49         unsigned int cArgs;
50         unsigned int cNamedArgs;
51     } DISPPARAMS;
52
53     typedef struct EXCEPINFO {
54         unsigned short wCode;
55         unsigned short wReserved;
56         BSTR  bstrSource;
57         BSTR  bstrDescription;
58         BSTR  bstrHelpFile;
59         unsigned long dwHelpContext;
60         void *pvReserved;
61         void *pfnDeferredFillIn;
62         SCODE scode;
63     } EXCEPINFO;
64
65     [
66         odl,
67         uuid(00000000-0000-0000-C000-000000000046)
68     ]
69     interface IUnknown
70     {
71         [restricted]
72         HRESULT QueryInterface(
73                                [in] GUID *riid,
74                                [out] void **ppvObj);
75
76         [restricted]
77         unsigned long AddRef();
78
79         [restricted]
80         unsigned long Release();
81     }
82
83     [
84         odl,
85         uuid(00020400-0000-0000-C000-000000000046)
86     ]
87     interface IDispatch : IUnknown
88     {
89         [restricted]
90         HRESULT GetTypeInfoCount(
91                                  [out] unsigned int *pctinfo);
92
93         [restricted]
94         HRESULT GetTypeInfo(
95                             [in] unsigned int itinfo,
96                             [in] unsigned long lcid,
97                             [out] void **pptinfo);
98
99         [restricted]
100         HRESULT GetIDsOfNames(
101                               [in] GUID *riid,
102                               [in] char **rgszNames,
103                               [in] unsigned int cNames,
104                               [in] unsigned long lcid,
105                               [out] long *rgdispid);
106
107         [restricted]
108         HRESULT Invoke(
109                        [in] long dispidMember,
110                        [in] GUID *riid,
111                        [in] unsigned long lcid,
112                        [in] unsigned short wFlags,
113                        [in] DISPPARAMS *pdispparams,
114                        [out] VARIANT *pvarResult,
115                        [out] EXCEPINFO *pexcepinfo,
116                        [out] unsigned int *puArgErr);
117
118     }
119
120     [
121         odl,
122         uuid(00020404-0000-0000-C000-000000000046)
123     ]
124     interface IEnumVARIANT : IUnknown
125     {
126         HRESULT Next(
127                      [in] unsigned long celt,
128                      [in] VARIANT *rgvar,
129                      [out] unsigned long *pceltFetched);
130
131         HRESULT Skip(
132                      [in] unsigned long celt);
133
134         HRESULT Reset();
135
136         HRESULT Clone(
137                       [out] IEnumVARIANT **ppenum);
138     }
139
140     typedef [uuid(66504301-BE0F-101A-8BBB-00AA00300CAB), public]
141         unsigned long OLE_COLOR;
142
143     typedef [uuid(66504302-BE0F-101A-8BBB-00AA00300CAB), public]
144         long OLE_XPOS_PIXELS;
145
146     typedef [uuid(66504303-BE0F-101A-8BBB-00AA00300CAB), public]
147         long OLE_YPOS_PIXELS;
148
149     typedef [uuid(66504304-BE0F-101A-8BBB-00AA00300CAB), public]
150         long OLE_XSIZE_PIXELS;
151
152     typedef [uuid(66504305-BE0F-101A-8BBB-00AA00300CAB), public]
153         long OLE_YSIZE_PIXELS;
154
155     typedef [uuid(66504306-BE0F-101A-8BBB-00AA00300CAB), public]
156         long OLE_XPOS_HIMETRIC;
157
158     typedef [uuid(66504307-BE0F-101A-8BBB-00AA00300CAB), public]
159         long OLE_YPOS_HIMETRIC;
160
161     typedef [uuid(66504308-BE0F-101A-8BBB-00AA00300CAB), public]
162         long OLE_XSIZE_HIMETRIC;
163
164     typedef [uuid(66504309-BE0F-101A-8BBB-00AA00300CAB), public]
165         long OLE_YSIZE_HIMETRIC;
166
167     typedef [uuid(BF030640-9069-101B-AE2D-08002B2EC713), public]
168         float OLE_XPOS_CONTAINER;
169
170     typedef [uuid(BF030641-9069-101B-AE2D-08002B2EC713), public]
171         float OLE_YPOS_CONTAINER;
172
173     typedef [uuid(BF030642-9069-101B-AE2D-08002B2EC713), public]
174         float OLE_XSIZE_CONTAINER;
175
176     typedef [uuid(BF030643-9069-101B-AE2D-08002B2EC713), public]
177         float OLE_YSIZE_CONTAINER;
178
179     typedef [uuid(66504313-BE0F-101A-8BBB-00AA00300CAB), public]
180         int OLE_HANDLE;
181
182     typedef [uuid(6650430B-BE0F-101A-8BBB-00AA00300CAB), public]
183         VARIANT_BOOL OLE_OPTEXCLUSIVE;
184
185     typedef [uuid(BF030644-9069-101B-AE2D-08002B2EC713), public]
186         VARIANT_BOOL OLE_CANCELBOOL;
187
188     typedef [uuid(BF030645-9069-101B-AE2D-08002B2EC713), public]
189         VARIANT_BOOL OLE_ENABLEDEFAULTBOOL;
190
191     /* FIXME: widl can't cope with enum attributes yet */
192     /*
193     [
194      uuid(6650430A-BE0F-101A-8BBB-00AA00300CAB)
195     ]
196     */
197     enum OLE_TRISTATE {
198         Unchecked = 0,
199         Checked = 1,
200         Gray = 2
201     };
202
203     typedef [uuid(6650430D-BE0F-101A-8BBB-00AA00300CAB), public]
204         BSTR FONTNAME;
205
206     typedef [uuid(6650430E-BE0F-101A-8BBB-00AA00300CAB), public]
207         CURRENCY FONTSIZE;
208
209     typedef [uuid(6650430F-BE0F-101A-8BBB-00AA00300CAB), public]
210         VARIANT_BOOL FONTBOLD;
211
212     typedef [uuid(66504310-BE0F-101A-8BBB-00AA00300CAB), public]
213         VARIANT_BOOL FONTITALIC;
214
215     typedef [uuid(66504311-BE0F-101A-8BBB-00AA00300CAB), public]
216         VARIANT_BOOL FONTUNDERSCORE;
217
218     typedef [uuid(66504312-BE0F-101A-8BBB-00AA00300CAB), public]
219         VARIANT_BOOL FONTSTRIKETHROUGH;
220
221
222     [
223      odl,
224      uuid(BEF6E002-A874-101A-8BBA-00AA00300CAB),
225      helpstring("Font Object"),
226      hidden
227     ]
228     interface IFont {
229         [propget] HRESULT Name([out, retval] BSTR *pname);
230         [propput] HRESULT Name([in] BSTR pname);
231
232         [propget] HRESULT Size([out, retval] CURRENCY *psize);
233         [propput] HRESULT Size([in] BSTR psize);
234
235         [propget] HRESULT Bold([out, retval] VARIANT_BOOL *pbold);
236         [propput] HRESULT Bold([in] VARIANT_BOOL pbold);
237
238         [propget] HRESULT Italic([out, retval] VARIANT_BOOL *pitalic);
239         [propput] HRESULT Italic([in] VARIANT_BOOL pitalic);
240
241         [propget] HRESULT Underline([out, retval] VARIANT_BOOL *punderline);
242         [propput] HRESULT Underline([in] VARIANT_BOOL punderline);
243
244         [propget] HRESULT Strikethrough([out, retval] VARIANT_BOOL *pstrikethrough);
245         [propput] HRESULT Strikethrough([in] VARIANT_BOOL pstrikethrough);
246
247         [propget] HRESULT Weight([out, retval] short *pweight);
248         [propput] HRESULT Weight([in] short pweight);
249
250         [propget] HRESULT Charset([out, retval] short *pcharset);
251         [propput] HRESULT Charset([in] short pcharset);
252
253         [propget] HRESULT hFont([out, retval] OLE_HANDLE *phfont);
254         
255         HRESULT Clone([out] IFont **ppfont);
256
257         HRESULT IsEqual([in] IFont *pfontOther);
258
259         HRESULT SetRatio([in] long cyLogical, [in] long cyHimetric);
260
261         HRESULT AddRefHfont([in] OLE_HANDLE hFont);
262
263         HRESULT ReleaseHfont([in] OLE_HANDLE hFont);
264     };
265
266
267     [
268      odl,
269      uuid(BEF6E003-A874-101A-8BBA-00AA00300CAB)
270     ]
271     dispinterface Font {
272     properties:
273         [id(0x0)] BSTR Name;
274         [id(0x2)] CURRENCY Size;
275         [id(0x3)] VARIANT_BOOL Bold;
276         [id(0x4)] VARIANT_BOOL Italic;
277         [id(0x5)] VARIANT_BOOL Underline;
278         [id(0x6)] VARIANT_BOOL Strikethrough;
279         [id(0x7)] short Weight;
280         [id(0x8)] short Charset;
281     methods:
282     }
283
284     typedef [public] Font IFontDisp;
285
286     [
287      uuid(0BE35203-8F91-11CE-9DE3-00AA004BB851)
288     ]
289     coclass StdFont {
290         [default] dispinterface Font;
291         /* FIXME: We can't reference dispinterface FontEvents here because we need it to
292            appear at the end of the typelib. */
293 /*      [default, source] dispinterface FontEvents;*/
294         interface IFont;
295     };
296
297     [
298      odl,
299      uuid(7BF80980-BF32-101A-8BBB-00AA00300CAB),
300      helpstring("Picture Object"),
301      hidden
302     ]
303         interface IPicture /*: IUnknown*/ {
304         [propget] HRESULT Handle([out, retval] OLE_HANDLE *phandle);
305
306         [propget] HRESULT hPal([out, retval] OLE_HANDLE *phpal);
307         
308         [propget] HRESULT Type([out, retval] short *ptype);
309
310         [propget] HRESULT Width([out, retval] OLE_XSIZE_HIMETRIC *pwidth);
311
312         [propget] HRESULT Height([out, retval] OLE_YSIZE_HIMETRIC *pheight);
313
314         HRESULT Render([in] int hdc,
315                        [in] long x,
316                        [in] long y,
317                        [in] long cx,
318                        [in] long cy,
319                        [in] OLE_XPOS_HIMETRIC xSrc,
320                        [in] OLE_YPOS_HIMETRIC ySrc,
321                        [in] OLE_XSIZE_HIMETRIC cxSrc,
322                        [in] OLE_YSIZE_HIMETRIC cySrc,
323                        [in] void *prcWBounds);
324
325         [propput] HRESULT hPal([in] OLE_HANDLE phpal);
326
327         [propget] HRESULT CurDC([out, retval] int *phdcOut);
328
329         HRESULT SelectPicture([in] int hdcIn,
330                               [out] int *phdcOut,
331                               [out] OLE_HANDLE *phbmpOut);
332         
333         [propget] HRESULT KeepOriginalFormat([out, retval] VARIANT_BOOL *pfkeep);
334         [propput] HRESULT KeepOriginalFormat([in] VARIANT_BOOL pfkeep);
335
336         HRESULT PictureChanged();
337
338         HRESULT SaveAsFile([in] void *pstm,
339                            [in] VARIANT_BOOL fSaveMemCopy,
340                            [out] long *pcbSize);
341
342         [propget] HRESULT Attributes([out, retval] long *pdwAttr);
343
344         HRESULT SetHdc([in] OLE_HANDLE hdc);
345     };
346
347     [
348      uuid(7BF80981-BF32-101A-8BBB-00AA00300CAB)
349     ]
350     dispinterface Picture {
351     properties:
352         [id(0x0), readonly] OLE_HANDLE Handle;
353         [id(0x2)] OLE_HANDLE hPal;
354         [id(0x3), readonly] short Type; 
355         [id(0x4), readonly] OLE_XSIZE_HIMETRIC Width;
356         [id(0x5), readonly] OLE_XSIZE_HIMETRIC Height;
357     methods:
358         [id(0x6)] void Render(int hdc,
359                               long x,
360                               long y,
361                               long cx,
362                               long cy,
363                               OLE_XPOS_HIMETRIC xSrc,
364                               OLE_YPOS_HIMETRIC ySrc,
365                               OLE_XSIZE_HIMETRIC cxSrc,
366                               OLE_YSIZE_HIMETRIC cySrc,
367                               void *prcWBounds);
368     };
369     
370     typedef [public] Picture IPictureDisp;
371
372     [
373      uuid(0BE35204-8F91-11CE-9DE3-00AA004BB851)
374     ]
375     coclass StdPicture {
376         [default] dispinterface Picture;
377         interface IPicture;
378     };
379
380     /* FIXME: widl can't cope with enum attributes yet */
381     /*
382     [
383      uuid(E6C8FA08-BD9F-11D0-985E-00C04FC29993)
384     ]
385     */
386     enum LoadPictureConstants {
387         Default = 0,
388         Monochrome = 1,
389         VgaColor = 2,
390         Color = 4
391     };
392
393     [
394      dllname("oleaut32.dll"),
395      uuid(91209AC0-60F6-11CF-9C5D-00AA00C1489E),
396      helpstring("Functions for Standard OLE Objects"),
397      helpcontext(0x2775)
398     ]
399     module StdFunctions{
400         [
401          entry("OleLoadPictureFileEx"),
402          helpstring("Loads a picture from a file"),
403          helpcontext(0x2775)
404         ]
405         HRESULT LoadPicture([in, optional] VARIANT filename,
406                             [in, optional, defaultvalue(0)] int widthDesired,
407                             [in, optional, defaultvalue(0)] int heightDesired,
408                             [in, optional, defaultvalue(Default)] enum LoadPictureConstants flags,
409                             [out, retval] IPictureDisp **retval);
410         [
411          entry("OleSavePictureFile"),
412          helpstring("Saves a picture to a file"),
413          helpcontext(0x2775)
414         ]
415         HRESULT SavePicture([in] IPictureDisp *Picture,
416                             [in] BSTR filename);
417     };
418
419
420     [
421      uuid(4EF6100A-AF88-11D0-9846-00C04FC29993),
422      helpstring("Event Interface for the Font Object"),
423      hidden
424     ]
425     dispinterface FontEvents {
426     properties:
427     methods:
428         [id(0x9)] void FontChanged([in] BSTR PropertyName);
429     };
430
431     typedef [public] FontEvents IFontEventsDisp;
432
433
434 };