[PSDK] Add missing DI_WRITEPROTECT and DIPROP_PRODUCTNAME.
[reactos.git] / reactos / sdk / include / psdk / 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 #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 ]
33 library 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 };