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