VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/shaderlib/wine/include/propidl.idl

Last change on this file was 53206, checked in by vboxsync, 10 years ago

Devices/vmsvga: header fixes

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 16.2 KB
Line 
1/*
2 * Copyright 2002 Ove Kaaven
3 * Copyright 2004 Francois Gouget
4 * Copyright 2005 Juan Lang
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/*
22 * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
23 * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
24 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
25 * a choice of LGPL license versions is made available with the language indicating
26 * that LGPLv2 or any later version may be used, or where a choice of which version
27 * of the LGPL is applied is otherwise unspecified.
28 */
29
30#ifndef DO_NO_IMPORTS
31import "objidl.idl";
32import "oaidl.idl";
33#endif
34
35/*
36 * Windows SDK braindamage alert
37 *
38 * PID_DICTIONARY and PID_CODEPAGE are defined by msidefs.h too
39 * PID_SECURITY is defined in msidefs.h with a different value!
40 * So these need to be undefined first.
41 */
42cpp_quote("#ifdef PID_DICTIONARY")
43cpp_quote("#undef PID_DICTIONARY")
44cpp_quote("#endif")
45
46cpp_quote("#ifdef PID_CODEPAGE")
47cpp_quote("#undef PID_CODEPAGE")
48cpp_quote("#endif")
49
50cpp_quote("#ifdef PID_SECURITY")
51cpp_quote("#undef PID_SECURITY")
52cpp_quote("#endif")
53
54/******************** Property Storage ********************/
55
56interface IEnumSTATPROPSTG;
57interface IEnumSTATPROPSETSTG;
58
59[
60 object,
61 uuid(00000138-0000-0000-C000-000000000046),
62 pointer_default(unique)
63]
64interface IPropertyStorage : IUnknown
65{
66 typedef [unique] IPropertyStorage *LPPROPERTYSTORAGE;
67
68 const DWORD PROPSETFLAG_DEFAULT = 0;
69 const DWORD PROPSETFLAG_NONSIMPLE = 1;
70 const DWORD PROPSETFLAG_ANSI = 2;
71 const DWORD PROPSETFLAG_UNBUFFERED = 4;
72 const DWORD PROPSETFLAG_CASE_SENSITIVE = 8;
73
74 const DWORD PROPSET_BEHAVIOR_CASE_SENSITIVE = 1;
75
76 const PROPID PID_DICTIONARY = 0x00000000;
77 const PROPID PID_CODEPAGE = 0x00000001;
78 const PROPID PID_FIRST_USABLE = 0x00000002;
79 const PROPID PID_FIRST_NAME_DEFAULT = 0x00000fff;
80 const PROPID PID_LOCALE = 0x80000000;
81 const PROPID PID_MODIFY_TIME = 0x80000001;
82 const PROPID PID_SECURITY = 0x80000002;
83 const PROPID PID_BEHAVIOR = 0x80000003;
84 const PROPID PID_ILLEGAL = 0xffffffff;
85 const PROPID PID_MIN_READONLY = 0x80000000;
86 const PROPID PID_MAX_READONLY = 0xbfffffff;
87
88 typedef struct tagPROPVARIANT PROPVARIANT;
89
90#define TYPEDEF_CA(type, name) \
91 typedef struct tag##name { \
92 ULONG cElems; \
93 [size_is(cElems)] \
94 type *pElems; \
95 } name
96
97 TYPEDEF_CA(unsigned char, CAUB);
98 TYPEDEF_CA(short, CAI);
99 TYPEDEF_CA(USHORT, CAUI);
100 TYPEDEF_CA(long, CAL);
101 TYPEDEF_CA(ULONG, CAUL);
102 TYPEDEF_CA(float, CAFLT);
103 TYPEDEF_CA(double, CADBL);
104 TYPEDEF_CA(CY, CACY);
105 TYPEDEF_CA(DATE, CADATE);
106 TYPEDEF_CA(BSTR, CABSTR);
107 TYPEDEF_CA(BSTRBLOB, CABSTRBLOB);
108 TYPEDEF_CA(VARIANT_BOOL, CABOOL);
109 TYPEDEF_CA(SCODE, CASCODE);
110 TYPEDEF_CA(PROPVARIANT, CAPROPVARIANT);
111 TYPEDEF_CA(LARGE_INTEGER, CAH);
112 TYPEDEF_CA(ULARGE_INTEGER, CAUH);
113 TYPEDEF_CA(LPSTR, CALPSTR);
114 TYPEDEF_CA(LPWSTR, CALPWSTR);
115 TYPEDEF_CA(FILETIME, CAFILETIME);
116 TYPEDEF_CA(CLIPDATA, CACLIPDATA);
117 TYPEDEF_CA(CLSID, CACLSID);
118
119 struct tagPROPVARIANT {
120 VARTYPE vt;
121 WORD wReserved1;
122 WORD wReserved2;
123 WORD wReserved3;
124 [switch_is(vt & 0x1fff)] union {
125 [case(VT_EMPTY, VT_NULL)] ;
126 [case(VT_I1)] char cVal;
127 [case(VT_UI1)] UCHAR bVal;
128 [case(VT_I2)] short iVal;
129 [case(VT_UI2)] USHORT uiVal;
130 [case(VT_BOOL)] VARIANT_BOOL boolVal;
131#if 0 /* illegal in C++ */
132 [case(VT_ILLEGAL)] _VARIANT_BOOL bool;
133#endif
134 [case(VT_I4)] long lVal;
135 [case(VT_UI4)] ULONG ulVal;
136 [case(VT_R4)] float fltVal;
137 [case(VT_ERROR)] SCODE scode;
138 [case(VT_I8)] LARGE_INTEGER hVal;
139 [case(VT_UI8)] ULARGE_INTEGER uhVal;
140 [case(VT_R8)] double dblVal;
141 [case(VT_CY)] CY cyVal;
142 [case(VT_DATE)] DATE date;
143 [case(VT_FILETIME)] FILETIME filetime;
144 [case(VT_CLSID)] CLSID *puuid;
145 [case(VT_BLOB, VT_BLOB_OBJECT)] BLOB blob;
146 [case(VT_CF)] CLIPDATA *pclipdata;
147 [case(VT_STREAM, VT_STREAMED_OBJECT)] IStream *pStream;
148 [case(VT_STORAGE, VT_STORED_OBJECT)] IStorage *pStorage;
149 [case(VT_BSTR)] BSTR bstrVal;
150 [case(VT_BSTR_BLOB)] BSTRBLOB bstrblobVal;
151 [case(VT_LPSTR)] LPSTR pszVal;
152 [case(VT_LPWSTR)] LPWSTR pwszVal;
153 [case(VT_UI1|VT_VECTOR)] CAUB caub;
154 [case(VT_I2|VT_VECTOR)] CAI cai;
155 [case(VT_UI2|VT_VECTOR)] CAUI caui;
156 [case(VT_BOOL|VT_VECTOR)] CABOOL cabool;
157 [case(VT_I4|VT_VECTOR)] CAL cal;
158 [case(VT_UI4|VT_VECTOR)] CAUL caul;
159 [case(VT_R4|VT_VECTOR)] CAFLT caflt;
160 [case(VT_ERROR|VT_VECTOR)] CASCODE cascode;
161 [case(VT_I8|VT_VECTOR)] CAH cah;
162 [case(VT_UI8|VT_VECTOR)] CAUH cauh;
163 [case(VT_R8|VT_VECTOR)] CADBL cadbl;
164 [case(VT_CY|VT_VECTOR)] CACY cacy;
165 [case(VT_DATE|VT_VECTOR)] CADATE cadate;
166 [case(VT_FILETIME|VT_VECTOR)] CAFILETIME cafiletime;
167 [case(VT_CLSID|VT_VECTOR)] CACLSID cauuid;
168 [case(VT_CF|VT_VECTOR)] CACLIPDATA caclipdata;
169 [case(VT_BSTR|VT_VECTOR)] CABSTR cabstr;
170 [case(VT_BSTR_BLOB|VT_VECTOR)] CABSTRBLOB cabstrblob;
171 [case(VT_LPSTR|VT_VECTOR)] CALPSTR calpstr;
172 [case(VT_LPWSTR|VT_VECTOR)] CALPWSTR calpwstr;
173 [case(VT_VARIANT|VT_VECTOR)] CAPROPVARIANT capropvar;
174 [case(VT_ARRAY|VT_I1,
175 VT_ARRAY|VT_UI1,
176 VT_ARRAY|VT_I2,
177 VT_ARRAY|VT_UI2,
178 VT_ARRAY|VT_I4,
179 VT_ARRAY|VT_UI4,
180 VT_ARRAY|VT_INT,
181 VT_ARRAY|VT_UINT,
182 VT_ARRAY|VT_R4,
183 VT_ARRAY|VT_R8,
184 VT_ARRAY|VT_CY,
185 VT_ARRAY|VT_DATE,
186 VT_ARRAY|VT_BSTR,
187 VT_ARRAY|VT_BOOL,
188 VT_ARRAY|VT_DECIMAL,
189 VT_ARRAY|VT_DISPATCH,
190 VT_ARRAY|VT_UNKNOWN,
191 VT_ARRAY|VT_ERROR,
192 VT_ARRAY|VT_VARIANT)] LPSAFEARRAY parray;
193 [case(VT_BYREF|VT_I1)] CHAR *pcVal;
194 [case(VT_BYREF|VT_UI1)] UCHAR *pbVal;
195 [case(VT_BYREF|VT_I2)] SHORT *piVal;
196 [case(VT_BYREF|VT_UI2)] USHORT *puiVal;
197 [case(VT_BYREF|VT_I4)] LONG *plVal;
198 [case(VT_BYREF|VT_UI4)] ULONG *pulVal;
199 [case(VT_BYREF|VT_INT)] INT *pintVal;
200 [case(VT_BYREF|VT_UINT)] UINT *puintVal;
201 [case(VT_BYREF|VT_R4)] FLOAT *pfltVal;
202 [case(VT_BYREF|VT_R8)] DOUBLE *pdblVal;
203 [case(VT_BYREF|VT_BOOL)] VARIANT_BOOL *pboolVal;
204 [case(VT_BYREF|VT_DECIMAL)] DECIMAL *pdecVal;
205 [case(VT_BYREF|VT_ERROR)] SCODE *pscode;
206 [case(VT_BYREF|VT_CY)] CY *pcyVal;
207 [case(VT_BYREF|VT_DATE)] DATE *pdate;
208 [case(VT_BYREF|VT_BSTR)] BSTR *pbstrVal;
209 [case(VT_BYREF|VT_UNKNOWN)] IUnknown **ppunkVal;
210 [case(VT_BYREF|VT_DISPATCH)] IDispatch **ppdispVal;
211 [case(VT_BYREF|VT_ARRAY)] LPSAFEARRAY *pparray;
212 [case(VT_BYREF|VT_VARIANT)] PROPVARIANT *pvarVal;
213 };
214 };
215
216 typedef struct tagPROPVARIANT *LPPROPVARIANT;
217
218 cpp_quote("#if 0")
219 typedef const PROPVARIANT * REFPROPVARIANT;
220 cpp_quote("#endif")
221 cpp_quote("#ifndef _REFPROPVARIANT_DEFINED")
222 cpp_quote("#define _REFPROPVARIANT_DEFINED")
223 cpp_quote("#ifdef __cplusplus")
224 cpp_quote("#define REFPROPVARIANT const PROPVARIANT &")
225 cpp_quote("#else")
226 cpp_quote("#define REFPROPVARIANT const PROPVARIANT * __MIDL_CONST")
227 cpp_quote("#endif")
228 cpp_quote("#endif")
229
230 cpp_quote("#define PIDDI_THUMBNAIL 0x00000002L /* VT_BLOB */")
231 cpp_quote("")
232 cpp_quote("#define PIDSI_TITLE 0x00000002L /* VT_LPSTR */")
233 cpp_quote("#define PIDSI_SUBJECT 0x00000003L /* VT_LPSTR */")
234 cpp_quote("#define PIDSI_AUTHOR 0x00000004L /* VT_LPSTR */")
235 cpp_quote("#define PIDSI_KEYWORDS 0x00000005L /* VT_LPSTR */")
236 cpp_quote("#define PIDSI_COMMENTS 0x00000006L /* VT_LPSTR */")
237 cpp_quote("#define PIDSI_TEMPLATE 0x00000007L /* VT_LPSTR */")
238 cpp_quote("#define PIDSI_LASTAUTHOR 0x00000008L /* VT_LPSTR */")
239 cpp_quote("#define PIDSI_REVNUMBER 0x00000009L /* VT_LPSTR */")
240 cpp_quote("#define PIDSI_EDITTIME 0x0000000AL /* VT_FILETIME (UTC) */")
241 cpp_quote("#define PIDSI_LASTPRINTED 0x0000000BL /* VT_FILETIME (UTC) */")
242 cpp_quote("#define PIDSI_CREATE_DTM 0x0000000CL /* VT_FILETIME (UTC) */")
243 cpp_quote("#define PIDSI_LASTSAVE_DTM 0x0000000DL /* VT_FILETIME (UTC) */")
244 cpp_quote("#define PIDSI_PAGECOUNT 0x0000000EL /* VT_I4 */")
245 cpp_quote("#define PIDSI_WORDCOUNT 0x0000000FL /* VT_I4 */")
246 cpp_quote("#define PIDSI_CHARCOUNT 0x00000010L /* VT_I4 */")
247 cpp_quote("#define PIDSI_THUMBNAIL 0x00000011L /* VT_CF */")
248 cpp_quote("#define PIDSI_APPNAME 0x00000012L /* VT_LPSTR */")
249 cpp_quote("#define PIDSI_DOC_SECURITY 0x00000013L /* VT_I4 */")
250 cpp_quote("")
251 cpp_quote("#define PIDDSI_CATEGORY 0x00000002L /* VT_LPSTR */")
252 cpp_quote("#define PIDDSI_PRESFORMAT 0x00000003L /* VT_LPSTR */")
253 cpp_quote("#define PIDDSI_BYTECOUNT 0x00000004L /* VT_I4 */")
254 cpp_quote("#define PIDDSI_LINECOUNT 0x00000005L /* VT_I4 */")
255 cpp_quote("#define PIDDSI_PARCOUNT 0x00000006L /* VT_I4 */")
256 cpp_quote("#define PIDDSI_SLIDECOUNT 0x00000007L /* VT_I4 */")
257 cpp_quote("#define PIDDSI_NOTECOUNT 0x00000008L /* VT_I4 */")
258 cpp_quote("#define PIDDSI_HIDDENCOUNT 0x00000009L /* VT_I4 */")
259 cpp_quote("#define PIDDSI_MMCLIPCOUNT 0x0000000AL /* VT_I4 */")
260 cpp_quote("#define PIDDSI_SCALE 0x0000000BL /* VT_BOOL */")
261 cpp_quote("#define PIDDSI_HEADINGPAIR 0x0000000CL /* VT_VARIANT|VT_VECTOR */")
262 cpp_quote("#define PIDDSI_DOCPARTS 0x0000000DL /* VT_LPSTR|VT_VECTOR */")
263 cpp_quote("#define PIDDSI_MANAGER 0x0000000EL /* VT_LPSTR */")
264 cpp_quote("#define PIDDSI_COMPANY 0x0000000FL /* VT_LPSTR */")
265 cpp_quote("#define PIDDSI_LINKSDIRTY 0x00000010L /* VT_B0OL */")
266
267 const ULONG PRSPEC_INVALID = 0xffffffff;
268 const ULONG PRSPEC_LPWSTR = 0;
269 const ULONG PRSPEC_PROPID = 1;
270
271 typedef struct tagPROPSPEC {
272 ULONG ulKind;
273 [switch_is(ulKind)] union {
274 [case(PRSPEC_PROPID)] PROPID propid;
275 [case(PRSPEC_LPWSTR)] LPOLESTR lpwstr;
276 [default] ;
277 } DUMMYUNIONNAME;
278 } PROPSPEC;
279
280 typedef struct tagSTATPROPSTG {
281 LPOLESTR lpwstrName;
282 PROPID propid;
283 VARTYPE vt;
284 } STATPROPSTG;
285
286 cpp_quote("/* Macros for dwOSVersion member of STATPROPSETSTG */")
287 cpp_quote("#define PROPSETHDR_OSVER_KIND(dwOSVer) HIWORD((dwOSVer))")
288 cpp_quote("#define PROPSETHDR_OSVER_MAJOR(dwOSVer) LOBYTE(LOWORD((dwOSVer)))")
289 cpp_quote("#define PROPSETHDR_OSVER_MINOR(dwOSVer) HIBYTE(LOWORD((dwOSVer)))")
290 cpp_quote("#define PROPSETHDR_OSVERSION_UNKNOWN 0xffffffff")
291
292 typedef struct tagSTATPROPSETSTG {
293 FMTID fmtid;
294 CLSID clsid;
295 DWORD grfFlags;
296 FILETIME mtime;
297 FILETIME ctime;
298 FILETIME atime;
299 DWORD dwOSVersion;
300 } STATPROPSETSTG;
301
302 HRESULT ReadMultiple(
303 [in] ULONG cpspec,
304 [in, size_is(cpspec)] const PROPSPEC rgpspec[],
305 [out, size_is(cpspec)] PROPVARIANT rgpropvar[]);
306
307 HRESULT WriteMultiple(
308 [in] ULONG cpspec,
309 [in, size_is(cpspec)] const PROPSPEC rgpspec[],
310 [in, size_is(cpspec)] const PROPVARIANT rgpropvar[],
311 [in] PROPID propidNameFirst);
312
313 HRESULT DeleteMultiple(
314 [in] ULONG cpspec,
315 [in, size_is(cpspec)] const PROPSPEC rgpspec[]);
316
317 HRESULT ReadPropertyNames(
318 [in] ULONG cpropid,
319 [in, size_is(cpropid)] const PROPID rgpropid[],
320 [out, size_is(cpropid)] LPOLESTR rglpwstrName[]);
321
322 HRESULT WritePropertyNames(
323 [in] ULONG cpropid,
324 [in, size_is(cpropid)] const PROPID rgpropid[],
325 [in, size_is(cpropid)] const LPOLESTR rglpwstrName[]);
326
327 HRESULT DeletePropertyNames(
328 [in] ULONG cpropid,
329 [in, size_is(cpropid)] const PROPID rgpropid[]);
330
331 HRESULT Commit(
332 [in] DWORD grfCommitFlags);
333
334 HRESULT Revert();
335
336 HRESULT Enum(
337 [out] IEnumSTATPROPSTG **ppenum);
338
339 HRESULT SetTimes(
340 [in] const FILETIME *pctime,
341 [in] const FILETIME *patime,
342 [in] const FILETIME *pmtime);
343
344 HRESULT SetClass(
345 [in] REFCLSID clsid);
346
347 HRESULT Stat(
348 [out] STATPROPSETSTG *statpsstg);
349}
350
351[
352 object,
353 uuid(0000013A-0000-0000-C000-000000000046),
354 pointer_default(unique)
355]
356interface IPropertySetStorage : IUnknown
357{
358 typedef [unique] IPropertySetStorage *LPPROPERTYSETSTORAGE;
359
360 HRESULT Create(
361 [in] REFFMTID rfmtid,
362 [in, unique] const CLSID *pclsid,
363 [in] DWORD grfFlags,
364 [in] DWORD grfMode,
365 [out] IPropertyStorage **ppprstg);
366
367 HRESULT Open(
368 [in] REFFMTID rfmtid,
369 [in] DWORD grfMode,
370 [out] IPropertyStorage **ppprstg);
371
372 HRESULT Delete(
373 [in] REFFMTID rfmtid);
374
375 HRESULT Enum(
376 [out] IEnumSTATPROPSETSTG **ppenum);
377}
378
379[
380 object,
381 uuid(00000139-0000-0000-C000-000000000046),
382 pointer_default(unique)
383]
384interface IEnumSTATPROPSTG : IUnknown
385{
386 typedef [unique] IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
387
388 [local]
389 HRESULT Next(
390 [in] ULONG celt,
391 [out, size_is(celt), length_is(*pceltFetched)]
392 STATPROPSTG *rgelt,
393 [out] ULONG *pceltFetched);
394
395 [call_as(Next)]
396 HRESULT RemoteNext(
397 [in] ULONG celt,
398 [out, size_is(celt), length_is(*pceltFetched)]
399 STATPROPSTG *rgelt,
400 [out] ULONG *pceltFetched);
401
402 HRESULT Skip(
403 [in] ULONG celt);
404
405 HRESULT Reset();
406
407 HRESULT Clone(
408 [out] IEnumSTATPROPSTG **ppenum);
409}
410
411[
412 object,
413 uuid(0000013B-0000-0000-C000-000000000046),
414 pointer_default(unique)
415]
416interface IEnumSTATPROPSETSTG : IUnknown
417{
418 typedef [unique] IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
419
420 [local]
421 HRESULT Next(
422 [in] ULONG celt,
423 [out, size_is(celt), length_is(*pceltFetched)]
424 STATPROPSETSTG *rgelt,
425 [out] ULONG *pceltFetched);
426
427 [call_as(Next)]
428 HRESULT RemoteNext(
429 [in] ULONG celt,
430 [out, size_is(celt), length_is(*pceltFetched)]
431 STATPROPSETSTG *rgelt,
432 [out] ULONG *pceltFetched);
433
434 HRESULT Skip(
435 [in] ULONG celt);
436
437 HRESULT Reset();
438
439 HRESULT Clone(
440 [out] IEnumSTATPROPSETSTG **ppenum);
441}
442
443typedef struct SERIALIZEDPROPERTYVALUE {
444 DWORD dwType;
445 BYTE rgb[1];
446} SERIALIZEDPROPERTYVALUE;
447
448cpp_quote("HRESULT WINAPI FreePropVariantArray(ULONG,PROPVARIANT*);")
449cpp_quote("HRESULT WINAPI PropVariantClear(PROPVARIANT*);")
450cpp_quote("HRESULT WINAPI PropVariantCopy(PROPVARIANT*,const PROPVARIANT*);")
451cpp_quote("")
452cpp_quote("#define _PROPVARIANT_INIT_DEFINED_")
453cpp_quote("#define PropVariantInit(p) memset((p), 0, sizeof(PROPVARIANT))")
454cpp_quote("")
455cpp_quote("#ifndef _STGCREATEPROPSTG_DEFINED_")
456cpp_quote("#define _STGCREATEPROPSTG_DEFINED_")
457cpp_quote("HRESULT WINAPI StgCreatePropStg(IUnknown *, REFFMTID, const CLSID *, DWORD, DWORD, IPropertyStorage **);")
458cpp_quote("HRESULT WINAPI StgOpenPropStg(IUnknown *, REFFMTID, DWORD, DWORD, IPropertyStorage **);")
459cpp_quote("HRESULT WINAPI StgCreatePropSetStg(IStorage *, DWORD, IPropertySetStorage **);")
460cpp_quote("#define CCH_MAX_PROPSTG_NAME 31")
461cpp_quote("HRESULT WINAPI FmtIdToPropStgName(const FMTID *, LPOLESTR);")
462cpp_quote("HRESULT WINAPI PropStgNameToFmtId(const LPOLESTR, FMTID *);")
463cpp_quote("#endif /* _STGCREATEPROPSTG_DEFINED_ */")
464cpp_quote("")
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette