source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/oaidl.idl@ 1194

Last change on this file since 1194 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 37.0 KB
RevLine 
[1166]1cpp_quote("/**")
2cpp_quote(" * This file is part of the mingw-w64 runtime package.")
3cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
4cpp_quote(" */")
5cpp_quote("")
6cpp_quote("#include <winapifamily.h>")
7
8#ifndef DO_NO_IMPORTS
9import "objidl.idl";
10#endif
11
12cpp_quote("")
13cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
14
15interface ICreateTypeInfo;
16interface ICreateTypeInfo2;
17interface ICreateTypeLib;
18interface ICreateTypeLib2;
19cpp_quote("#endif")
20cpp_quote("")
21cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
22interface IDispatch;
23interface IEnumVARIANT;
24interface ITypeComp;
25cpp_quote("#endif")
26cpp_quote("")
27cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
28interface ITypeInfo;
29interface ITypeInfo2;
30interface ITypeLib;
31interface ITypeLib2;
32interface ITypeChangeEvents;
33interface IErrorInfo;
34interface ICreateErrorInfo;
35interface ISupportErrorInfo;
36interface ITypeFactory;
37interface ITypeMarshal;
38interface IRecordInfo;
39cpp_quote("#endif")
40cpp_quote("")
41cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
42[version (1.0), pointer_default (unique)]
43interface IOleAutomationTypes {
44 typedef CY CURRENCY;
45 typedef struct tagSAFEARRAYBOUND {
46 ULONG cElements;
47 LONG lLbound;
48 } SAFEARRAYBOUND,*LPSAFEARRAYBOUND;
49
50cpp_quote("")
51 typedef [unique] struct _wireVARIANT *wireVARIANT;
52 typedef [unique] struct _wireBRECORD *wireBRECORD;
53cpp_quote("")
54 typedef struct _wireSAFEARR_BSTR {
55 ULONG Size;
56 [size_is (Size), ref] wireBSTR *aBstr;
57 } SAFEARR_BSTR;
58
59cpp_quote("")
60 typedef struct _wireSAFEARR_UNKNOWN {
61 ULONG Size;
62 [size_is (Size), ref] IUnknown **apUnknown;
63 } SAFEARR_UNKNOWN;
64
65cpp_quote("")
66 typedef struct _wireSAFEARR_DISPATCH {
67 ULONG Size;
68 [size_is (Size), ref] IDispatch **apDispatch;
69 } SAFEARR_DISPATCH;
70
71cpp_quote("")
72 typedef struct _wireSAFEARR_VARIANT {
73 ULONG Size;
74 [size_is (Size), ref] wireVARIANT *aVariant;
75 } SAFEARR_VARIANT;
76
77cpp_quote("")
78 typedef struct _wireSAFEARR_BRECORD {
79 ULONG Size;
80 [size_is (Size), ref] wireBRECORD *aRecord;
81 } SAFEARR_BRECORD;
82
83cpp_quote("")
84 typedef struct _wireSAFEARR_HAVEIID {
85 ULONG Size;
86 [size_is (Size), ref] IUnknown **apUnknown;
87 IID iid;
88 } SAFEARR_HAVEIID;
89
90cpp_quote("")
91 typedef [v1_enum] enum tagSF_TYPE {
92 SF_ERROR = VT_ERROR,
93 SF_I1 = VT_I1,
94 SF_I2 = VT_I2,
95 SF_I4 = VT_I4,
96 SF_I8 = VT_I8,
97 SF_BSTR = VT_BSTR,
98 SF_UNKNOWN = VT_UNKNOWN,
99 SF_DISPATCH = VT_DISPATCH,
100 SF_VARIANT = VT_VARIANT,
101 SF_RECORD = VT_RECORD,
102 SF_HAVEIID = VT_UNKNOWN | VT_RESERVED
103 } SF_TYPE;
104
105cpp_quote("")
106 typedef union _wireSAFEARRAY_UNION switch (ULONG sfType) u {
107 case SF_BSTR: SAFEARR_BSTR BstrStr;
108 case SF_UNKNOWN: SAFEARR_UNKNOWN UnknownStr;
109 case SF_DISPATCH: SAFEARR_DISPATCH DispatchStr;
110 case SF_VARIANT: SAFEARR_VARIANT VariantStr;
111 case SF_RECORD: SAFEARR_BRECORD RecordStr;
112 case SF_HAVEIID: SAFEARR_HAVEIID HaveIidStr;
113 case SF_I1: BYTE_SIZEDARR ByteStr;
114 case SF_I2: WORD_SIZEDARR WordStr;
115 case SF_I4: DWORD_SIZEDARR LongStr;
116 case SF_I8: HYPER_SIZEDARR HyperStr;
117 } SAFEARRAYUNION;
118
119cpp_quote("")
120 typedef [unique] struct _wireSAFEARRAY {
121 USHORT cDims;
122 USHORT fFeatures;
123 ULONG cbElements;
124 ULONG cLocks;
125 SAFEARRAYUNION uArrayStructs;
126 [size_is (cDims)] SAFEARRAYBOUND rgsabound[];
127 } *wireSAFEARRAY;
128 typedef [unique] wireSAFEARRAY *wirePSAFEARRAY;
129
130cpp_quote("")
131 typedef struct tagSAFEARRAY {
132 USHORT cDims;
133 USHORT fFeatures;
134 ULONG cbElements;
135 ULONG cLocks;
136 PVOID pvData;
137 SAFEARRAYBOUND rgsabound[];
138 } SAFEARRAY;
139 typedef [wire_marshal (wirePSAFEARRAY)] SAFEARRAY *LPSAFEARRAY;
140
141cpp_quote("")
142 const USHORT FADF_AUTO = 0x0001;
143 const USHORT FADF_STATIC = 0x0002;
144 const USHORT FADF_EMBEDDED = 0x0004;
145 const USHORT FADF_FIXEDSIZE = 0x0010;
146 const USHORT FADF_RECORD = 0x0020;
147 const USHORT FADF_HAVEIID = 0x0040;
148 const USHORT FADF_HAVEVARTYPE= 0x0080;
149 const USHORT FADF_BSTR = 0x0100;
150 const USHORT FADF_UNKNOWN = 0x0200;
151 const USHORT FADF_DISPATCH = 0x0400;
152 const USHORT FADF_VARIANT = 0x0800;
153 const USHORT FADF_RESERVED = 0xf008;
154
155cpp_quote("")
156cpp_quote("/* Kludge for 3.0 release to disable new default-behavior.")
157cpp_quote(" * For now we define _FORCENAMELESSUNION. For 4.0 this define")
158cpp_quote(" * will be removed. */")
159cpp_quote("#ifndef _FORCENAMELESSUNION")
160cpp_quote("#define _FORCENAMELESSUNION 1")
161cpp_quote("#endif")
162cpp_quote("")
163cpp_quote("#if (__STDC__ && !defined(__cplusplus) && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION) || (defined (_MSC_VER) && !defined(_MSC_EXTENSIONS) && !defined(_FORCENAMELESSUNION))")
164cpp_quote("#define __VARIANT_NAME_1 n1")
165cpp_quote("#define __VARIANT_NAME_2 n2")
166cpp_quote("#define __VARIANT_NAME_3 n3")
167cpp_quote("#define __VARIANT_NAME_4 brecVal")
168cpp_quote("#else")
169cpp_quote("#define __tagVARIANT")
170cpp_quote("#define __VARIANT_NAME_1")
171cpp_quote("#define __VARIANT_NAME_2")
172cpp_quote("#define __VARIANT_NAME_3")
173cpp_quote("#define __tagBRECORD")
174cpp_quote("#define __VARIANT_NAME_4")
175cpp_quote("#endif")
176
177cpp_quote("")
178 typedef [wire_marshal (wireVARIANT)] struct tagVARIANT VARIANT;
179
180cpp_quote("")
181 struct tagVARIANT {
182 union {
183 struct __tagVARIANT {
184 VARTYPE vt;
185 WORD wReserved1;
186 WORD wReserved2;
187 WORD wReserved3;
188 union {
189 LONGLONG llVal;
190 LONG lVal;
191 BYTE bVal;
192 SHORT iVal;
193 FLOAT fltVal;
194 DOUBLE dblVal;
195 VARIANT_BOOL boolVal;
196 /* Removed due conflict with bool and gcc's inablity to express a macro expanding to a comment.
197 _VARIANT_BOOL bool; */
198 SCODE scode;
199 CY cyVal;
200 DATE date;
201 BSTR bstrVal;
202 IUnknown *punkVal;
203 IDispatch *pdispVal;
204 SAFEARRAY *parray;
205 BYTE *pbVal;
206 SHORT *piVal;
207 LONG *plVal;
208 LONGLONG *pllVal;
209 FLOAT *pfltVal;
210 DOUBLE *pdblVal;
211 VARIANT_BOOL *pboolVal;
212 /* Removed due conflict with bool and gcc's inablity to express a macro expanding to a comment.
213 _VARIANT_BOOL *pbool; */
214 SCODE *pscode;
215 CY *pcyVal;
216 DATE *pdate;
217 BSTR *pbstrVal;
218 IUnknown **ppunkVal;
219 IDispatch **ppdispVal;
220 SAFEARRAY **pparray;
221 VARIANT *pvarVal;
222 PVOID byref;
223 CHAR cVal;
224 USHORT uiVal;
225 ULONG ulVal;
226 ULONGLONG ullVal;
227 INT intVal;
228 UINT uintVal;
229 DECIMAL *pdecVal;
230 CHAR *pcVal;
231 USHORT *puiVal;
232 ULONG *pulVal;
233 ULONGLONG *pullVal;
234 INT *pintVal;
235 UINT *puintVal;
236 struct __tagBRECORD {
237 PVOID pvRecord;
238 IRecordInfo *pRecInfo;
239 } __VARIANT_NAME_4;
240 } __VARIANT_NAME_3;
241 } __VARIANT_NAME_2;
242 DECIMAL decVal;
243 } __VARIANT_NAME_1;
244 };
245
246cpp_quote("")
247 typedef VARIANT *LPVARIANT;
248 typedef VARIANT VARIANTARG;
249 typedef VARIANT *LPVARIANTARG;
250 cpp_quote("#if 0")
251 typedef const VARIANT *REFVARIANT;
252 cpp_quote("#else")
253 cpp_quote("")
254 cpp_quote("#ifndef _REFVARIANT_DEFINED")
255 cpp_quote("#define _REFVARIANT_DEFINED")
256 cpp_quote("#ifdef __cplusplus")
257 cpp_quote("#define REFVARIANT const VARIANT &")
258 cpp_quote("#else")
259 cpp_quote("#define REFVARIANT const VARIANT * __MIDL_CONST")
260 cpp_quote("#endif")
261 cpp_quote("#endif")
262 cpp_quote("#endif")
263
264cpp_quote("")
265 struct _wireBRECORD {
266 ULONG fFlags;
267 ULONG clSize;
268 IRecordInfo *pRecInfo;
269 [size_is (clSize)] byte *pRecord;
270 };
271
272cpp_quote("")
273 struct _wireVARIANT {
274 DWORD clSize;
275 DWORD rpcReserved;
276 USHORT vt;
277 USHORT wReserved1;
278 USHORT wReserved2;
279 USHORT wReserved3;
280 [switch_type (ULONG), switch_is (vt)] union {
281 [case (VT_I8)] LONGLONG llVal;
282 [case (VT_I4)] LONG lVal;
283 [case (VT_UI1)] BYTE bVal;
284 [case (VT_I2)] SHORT iVal;
285 [case (VT_R4)] FLOAT fltVal;
286 [case (VT_R8)] DOUBLE dblVal;
287 [case (VT_BOOL)] VARIANT_BOOL boolVal;
288 [case (VT_ERROR)] SCODE scode;
289 [case (VT_CY)] CY cyVal;
290 [case (VT_DATE)] DATE date;
291 [case (VT_BSTR)] wireBSTR bstrVal;
292 [case (VT_UNKNOWN)] IUnknown *punkVal;
293 [case (VT_DISPATCH)] IDispatch *pdispVal;
294 [case (VT_ARRAY)] wirePSAFEARRAY parray;
295 [case (VT_RECORD, VT_RECORD|VT_BYREF)]
296 wireBRECORD brecVal;
297 [case (VT_UI1|VT_BYREF)]
298 BYTE *pbVal;
299 [case (VT_I2|VT_BYREF)]
300 SHORT *piVal;
301 [case (VT_I4|VT_BYREF)]
302 LONG *plVal;
303 [case (VT_I8|VT_BYREF)]
304 LONGLONG *pllVal;
305 [case (VT_R4|VT_BYREF)]
306 FLOAT *pfltVal;
307 [case (VT_R8|VT_BYREF)]
308 DOUBLE *pdblVal;
309 [case (VT_BOOL|VT_BYREF)]
310 VARIANT_BOOL *pboolVal;
311 [case (VT_ERROR|VT_BYREF)]
312 SCODE *pscode;
313 [case (VT_CY|VT_BYREF)]
314 CY *pcyVal;
315 [case (VT_DATE|VT_BYREF)]
316 DATE *pdate;
317 [case (VT_BSTR|VT_BYREF)]
318 wireBSTR *pbstrVal;
319 [case (VT_UNKNOWN|VT_BYREF)]
320 IUnknown **ppunkVal;
321 [case (VT_DISPATCH|VT_BYREF)]
322 IDispatch **ppdispVal;
323 [case (VT_ARRAY|VT_BYREF)]
324 wirePSAFEARRAY *pparray;
325 [case (VT_VARIANT|VT_BYREF)]
326 wireVARIANT *pvarVal;
327 [case (VT_I1)] CHAR cVal;
328 [case (VT_UI2)] USHORT uiVal;
329 [case (VT_UI4)] ULONG ulVal;
330 [case (VT_UI8)] ULONGLONG ullVal;
331 [case (VT_INT)] INT intVal;
332 [case (VT_UINT)] UINT uintVal;
333 [case (VT_DECIMAL)] DECIMAL decVal;
334 [case (VT_BYREF|VT_DECIMAL)]
335 DECIMAL *pdecVal;
336 [case (VT_BYREF|VT_I1)]
337 CHAR *pcVal;
338 [case (VT_BYREF|VT_UI2)]
339 USHORT *puiVal;
340 [case (VT_BYREF|VT_UI4)]
341 ULONG *pulVal;
342 [case (VT_BYREF|VT_UI8)]
343 ULONGLONG *pullVal;
344 [case (VT_BYREF|VT_INT)]
345 INT *pintVal;
346 [case (VT_BYREF|VT_UINT)]
347 UINT *puintVal;
348 [case (VT_EMPTY)];
349 [case (VT_NULL)];
350 };
351 };
352
353cpp_quote("")
354 typedef LONG DISPID;
355 typedef DISPID MEMBERID;
356 typedef DWORD HREFTYPE;
357 typedef [v1_enum] enum tagTYPEKIND {
358 TKIND_ENUM = 0,
359 TKIND_RECORD,
360 TKIND_MODULE,
361 TKIND_INTERFACE,
362 TKIND_DISPATCH,
363 TKIND_COCLASS,
364 TKIND_ALIAS,
365 TKIND_UNION,
366 TKIND_MAX
367 } TYPEKIND;
368
369cpp_quote("")
370 typedef struct tagTYPEDESC {
371 [switch_type (VARTYPE), switch_is (vt)] union {
372 [case (VT_PTR, VT_SAFEARRAY)] struct tagTYPEDESC *lptdesc;
373 [case (VT_CARRAY)] struct tagARRAYDESC *lpadesc;
374 [case (VT_USERDEFINED)] HREFTYPE hreftype;
375 [default];
376 };
377 VARTYPE vt;
378 } TYPEDESC;
379
380cpp_quote("")
381 typedef struct tagARRAYDESC {
382 TYPEDESC tdescElem;
383 USHORT cDims;
384 [size_is (cDims)] SAFEARRAYBOUND rgbounds[];
385 } ARRAYDESC;
386
387cpp_quote("")
388 typedef struct tagPARAMDESCEX {
389 ULONG cBytes;
390 VARIANTARG varDefaultValue;
391 } PARAMDESCEX,*LPPARAMDESCEX;
392
393cpp_quote("")
394 typedef struct tagPARAMDESC {
395 LPPARAMDESCEX pparamdescex;
396 USHORT wParamFlags;
397 } PARAMDESC,*LPPARAMDESC;
398
399cpp_quote("")
400 const USHORT PARAMFLAG_NONE = 0x00;
401 const USHORT PARAMFLAG_FIN = 0x01;
402 const USHORT PARAMFLAG_FOUT = 0x02;
403 const USHORT PARAMFLAG_FLCID = 0x04;
404 const USHORT PARAMFLAG_FRETVAL = 0x08;
405 const USHORT PARAMFLAG_FOPT = 0x10;
406 const USHORT PARAMFLAG_FHASDEFAULT = 0x20;
407 const USHORT PARAMFLAG_FHASCUSTDATA = 0x40;
408
409cpp_quote("")
410 typedef struct tagIDLDESC {
411 ULONG_PTR dwReserved;
412 USHORT wIDLFlags;
413 } IDLDESC,*LPIDLDESC;
414
415cpp_quote("")
416 const USHORT IDLFLAG_NONE = PARAMFLAG_NONE;
417 const USHORT IDLFLAG_FIN = PARAMFLAG_FIN;
418 const USHORT IDLFLAG_FOUT = PARAMFLAG_FOUT;
419 const USHORT IDLFLAG_FLCID = PARAMFLAG_FLCID;
420 const USHORT IDLFLAG_FRETVAL = PARAMFLAG_FRETVAL;
421 cpp_quote("")
422 cpp_quote("#if 0")
423 typedef struct tagELEMDESC {
424 TYPEDESC tdesc;
425 PARAMDESC paramdesc;
426 } ELEMDESC;
427 cpp_quote("#else")
428 cpp_quote("")
429 cpp_quote(" typedef struct tagELEMDESC {")
430 cpp_quote(" TYPEDESC tdesc;")
431 cpp_quote(" __C89_NAMELESS union {")
432 cpp_quote(" IDLDESC idldesc;")
433 cpp_quote(" PARAMDESC paramdesc;")
434 cpp_quote(" } DUMMYUNIONNAME;")
435 cpp_quote(" } ELEMDESC,*LPELEMDESC;")
436 cpp_quote("#endif")
437
438cpp_quote("")
439 typedef struct tagTYPEATTR {
440 GUID guid;
441 LCID lcid;
442 DWORD dwReserved;
443 MEMBERID memidConstructor;
444 MEMBERID memidDestructor;
445 LPOLESTR lpstrSchema;
446 ULONG cbSizeInstance;
447 TYPEKIND typekind;
448 WORD cFuncs;
449 WORD cVars;
450 WORD cImplTypes;
451 WORD cbSizeVft;
452 WORD cbAlignment;
453 WORD wTypeFlags;
454 WORD wMajorVerNum;
455 WORD wMinorVerNum;
456 TYPEDESC tdescAlias;
457 IDLDESC idldescType;
458 } TYPEATTR,*LPTYPEATTR;
459
460cpp_quote("")
461 typedef struct tagDISPPARAMS {
462 [size_is (cArgs)] VARIANTARG *rgvarg;
463 [size_is (cNamedArgs)] DISPID *rgdispidNamedArgs;
464 UINT cArgs;
465 UINT cNamedArgs;
466 } DISPPARAMS;
467 cpp_quote("")
468 cpp_quote("#if 0")
469 typedef struct tagEXCEPINFO {
470 WORD wCode;
471 WORD wReserved;
472 BSTR bstrSource;
473 BSTR bstrDescription;
474 BSTR bstrHelpFile;
475 DWORD dwHelpContext;
476 ULONG_PTR pvReserved;
477 ULONG_PTR pfnDeferredFillIn;
478 SCODE scode;
479 } EXCEPINFO;
480 cpp_quote("#else")
481 cpp_quote(" typedef struct tagEXCEPINFO {")
482 cpp_quote(" WORD wCode;")
483 cpp_quote(" WORD wReserved;")
484 cpp_quote(" BSTR bstrSource;")
485 cpp_quote(" BSTR bstrDescription;")
486 cpp_quote(" BSTR bstrHelpFile;")
487 cpp_quote(" DWORD dwHelpContext;")
488 cpp_quote(" PVOID pvReserved;")
489 cpp_quote(" HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);")
490 cpp_quote(" SCODE scode;")
491 cpp_quote(" } EXCEPINFO, *LPEXCEPINFO;")
492 cpp_quote("#endif")
493
494cpp_quote("")
495 typedef [v1_enum] enum tagCALLCONV {
496 CC_FASTCALL = 0,
497 CC_CDECL = 1,
498 CC_MSCPASCAL,
499 CC_PASCAL = CC_MSCPASCAL,
500 CC_MACPASCAL,
501 CC_STDCALL,
502 CC_FPFASTCALL,
503 CC_SYSCALL,
504 CC_MPWCDECL,
505 CC_MPWPASCAL,
506 CC_MAX
507 } CALLCONV;
508
509cpp_quote("")
510 typedef [v1_enum] enum tagFUNCKIND {
511 FUNC_VIRTUAL,
512 FUNC_PUREVIRTUAL,
513 FUNC_NONVIRTUAL,
514 FUNC_STATIC,
515 FUNC_DISPATCH
516 } FUNCKIND;
517
518cpp_quote("")
519 typedef [v1_enum] enum tagINVOKEKIND {
520 INVOKE_FUNC = 1,
521 INVOKE_PROPERTYGET = 2,
522 INVOKE_PROPERTYPUT = 4,
523 INVOKE_PROPERTYPUTREF = 8
524 } INVOKEKIND;
525
526cpp_quote("")
527 typedef struct tagFUNCDESC {
528 MEMBERID memid;
529 [size_is (cScodes)] SCODE *lprgscode;
530 [size_is (cParams)] ELEMDESC *lprgelemdescParam;
531 FUNCKIND funckind;
532 INVOKEKIND invkind;
533 CALLCONV callconv;
534 SHORT cParams;
535 SHORT cParamsOpt;
536 SHORT oVft;
537 SHORT cScodes;
538 ELEMDESC elemdescFunc;
539 WORD wFuncFlags;
540 } FUNCDESC,*LPFUNCDESC;
541
542cpp_quote("")
543 typedef [v1_enum] enum tagVARKIND {
544 VAR_PERINSTANCE,
545 VAR_STATIC,
546 VAR_CONST,
547 VAR_DISPATCH
548 } VARKIND;
549
550cpp_quote("")
551 const USHORT IMPLTYPEFLAG_FDEFAULT = 0x1;
552 const USHORT IMPLTYPEFLAG_FSOURCE = 0x2;
553 const USHORT IMPLTYPEFLAG_FRESTRICTED = 0x4;
554 const USHORT IMPLTYPEFLAG_FDEFAULTVTABLE= 0x8;
555
556cpp_quote("")
557 typedef struct tagVARDESC {
558 MEMBERID memid;
559 LPOLESTR lpstrSchema;
560 [switch_type (VARKIND), switch_is (varkind)] union {
561 [case (VAR_PERINSTANCE, VAR_DISPATCH, VAR_STATIC)] ULONG oInst;
562 [case (VAR_CONST)] VARIANT *lpvarValue;
563 };
564 ELEMDESC elemdescVar;
565 WORD wVarFlags;
566 VARKIND varkind;
567 } VARDESC,*LPVARDESC;
568
569cpp_quote("")
570 typedef enum tagTYPEFLAGS {
571 TYPEFLAG_FAPPOBJECT = 0x01,
572 TYPEFLAG_FCANCREATE = 0x02,
573 TYPEFLAG_FLICENSED = 0x04,
574 TYPEFLAG_FPREDECLID = 0x08,
575 TYPEFLAG_FHIDDEN = 0x10,
576 TYPEFLAG_FCONTROL = 0x20,
577 TYPEFLAG_FDUAL = 0x40,
578 TYPEFLAG_FNONEXTENSIBLE = 0x80,
579 TYPEFLAG_FOLEAUTOMATION = 0x100,
580 TYPEFLAG_FRESTRICTED = 0x200,
581 TYPEFLAG_FAGGREGATABLE = 0x400,
582 TYPEFLAG_FREPLACEABLE = 0x800,
583 TYPEFLAG_FDISPATCHABLE = 0x1000,
584 TYPEFLAG_FREVERSEBIND = 0x2000,
585 TYPEFLAG_FPROXY = 0x4000
586 } TYPEFLAGS;
587
588cpp_quote("")
589 typedef enum tagFUNCFLAGS {
590 FUNCFLAG_FRESTRICTED = 0x1,
591 FUNCFLAG_FSOURCE = 0x2,
592 FUNCFLAG_FBINDABLE = 0x4,
593 FUNCFLAG_FREQUESTEDIT = 0x8,
594 FUNCFLAG_FDISPLAYBIND = 0x10,
595 FUNCFLAG_FDEFAULTBIND = 0x20,
596 FUNCFLAG_FHIDDEN = 0x40,
597 FUNCFLAG_FUSESGETLASTERROR = 0x80,
598 FUNCFLAG_FDEFAULTCOLLELEM = 0x100,
599 FUNCFLAG_FUIDEFAULT = 0x200,
600 FUNCFLAG_FNONBROWSABLE = 0x400,
601 FUNCFLAG_FREPLACEABLE = 0x800,
602 FUNCFLAG_FIMMEDIATEBIND = 0x1000
603 } FUNCFLAGS;
604
605cpp_quote("")
606 typedef enum tagVARFLAGS {
607 VARFLAG_FREADONLY = 0x1,
608 VARFLAG_FSOURCE = 0x2,
609 VARFLAG_FBINDABLE = 0x4,
610 VARFLAG_FREQUESTEDIT = 0x8,
611 VARFLAG_FDISPLAYBIND = 0x10,
612 VARFLAG_FDEFAULTBIND = 0x20,
613 VARFLAG_FHIDDEN = 0x40,
614 VARFLAG_FRESTRICTED = 0x80,
615 VARFLAG_FDEFAULTCOLLELEM = 0x100,
616 VARFLAG_FUIDEFAULT = 0x200,
617 VARFLAG_FNONBROWSABLE = 0x400,
618 VARFLAG_FREPLACEABLE = 0x800,
619 VARFLAG_FIMMEDIATEBIND = 0x1000
620 } VARFLAGS;
621
622cpp_quote("")
623 typedef [wire_marshal (DWORD)] struct tagCLEANLOCALSTORAGE {
624 IUnknown *pInterface;
625 PVOID pStorage;
626 DWORD flags;
627 } CLEANLOCALSTORAGE;
628
629cpp_quote("")
630 typedef struct tagCUSTDATAITEM {
631 GUID guid;
632 VARIANTARG varValue;
633 } CUSTDATAITEM,*LPCUSTDATAITEM;
634
635cpp_quote("")
636 typedef struct tagCUSTDATA {
637 DWORD cCustData;
638 [size_is (cCustData)] LPCUSTDATAITEM prgCustData;
639 } CUSTDATA,*LPCUSTDATA;
640}
641cpp_quote("#endif")
642cpp_quote("")
643cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
644[object, uuid (00020405-0000-0000-C000-000000000046), pointer_default (unique), local]
645interface ICreateTypeInfo: IUnknown {
646 typedef [unique] ICreateTypeInfo *LPCREATETYPEINFO;
647cpp_quote("")
648 HRESULT SetGuid ([in] REFGUID guid);
649 HRESULT SetTypeFlags ([in] UINT uTypeFlags);
650 HRESULT SetDocString ([in] LPOLESTR pStrDoc);
651 HRESULT SetHelpContext ([in] DWORD dwHelpContext);
652 HRESULT SetVersion ([in] WORD wMajorVerNum,[in] WORD wMinorVerNum);
653 HRESULT AddRefTypeInfo ([in] ITypeInfo *pTInfo,[in] HREFTYPE *phRefType);
654 HRESULT AddFuncDesc ([in] UINT index,[in] FUNCDESC *pFuncDesc);
655 HRESULT AddImplType ([in] UINT index,[in] HREFTYPE hRefType);
656 HRESULT SetImplTypeFlags ([in] UINT index,[in] INT implTypeFlags);
657 HRESULT SetAlignment ([in] WORD cbAlignment);
658 HRESULT SetSchema ([in] LPOLESTR pStrSchema);
659 HRESULT AddVarDesc ([in] UINT index,[in] VARDESC *pVarDesc);
660 HRESULT SetFuncAndParamNames ([in] UINT index,[in, size_is ((UINT) cNames)] LPOLESTR *rgszNames,[in] UINT cNames);
661 HRESULT SetVarName ([in] UINT index,[in] LPOLESTR szName);
662 HRESULT SetTypeDescAlias ([in] TYPEDESC *pTDescAlias);
663 HRESULT DefineFuncAsDllEntry ([in] UINT index,[in] LPOLESTR szDllName,[in] LPOLESTR szProcName);
664 HRESULT SetFuncDocString ([in] UINT index,[in] LPOLESTR szDocString);
665 HRESULT SetVarDocString ([in] UINT index,[in] LPOLESTR szDocString);
666 HRESULT SetFuncHelpContext ([in] UINT index,[in] DWORD dwHelpContext);
667 HRESULT SetVarHelpContext ([in] UINT index,[in] DWORD dwHelpContext);
668 HRESULT SetMops ([in] UINT index,[in] BSTR bstrMops);
669 HRESULT SetTypeIdldesc ([in] IDLDESC *pIdlDesc);
670 HRESULT LayOut (void);
671}
672
673cpp_quote("")
674[object, uuid (0002040e-0000-0000-C000-000000000046), pointer_default (unique), local]
675interface ICreateTypeInfo2: ICreateTypeInfo {
676 typedef [unique] ICreateTypeInfo2 *LPCREATETYPEINFO2;
677cpp_quote("")
678 HRESULT DeleteFuncDesc ([in] UINT index);
679 HRESULT DeleteFuncDescByMemId ([in] MEMBERID memid,[in] INVOKEKIND invKind);
680 HRESULT DeleteVarDesc ([in] UINT index);
681 HRESULT DeleteVarDescByMemId ([in] MEMBERID memid);
682 HRESULT DeleteImplType ([in] UINT index);
683 HRESULT SetCustData ([in] REFGUID guid,[in] VARIANT *pVarVal);
684 HRESULT SetFuncCustData ([in] UINT index,[in] REFGUID guid,[in] VARIANT *pVarVal);
685 HRESULT SetParamCustData ([in] UINT indexFunc,[in] UINT indexParam,[in] REFGUID guid,[in] VARIANT *pVarVal);
686 HRESULT SetVarCustData ([in] UINT index,[in] REFGUID guid,[in] VARIANT *pVarVal);
687 HRESULT SetImplTypeCustData ([in] UINT index,[in] REFGUID guid,[in] VARIANT *pVarVal);
688 HRESULT SetHelpStringContext ([in] ULONG dwHelpStringContext);
689 HRESULT SetFuncHelpStringContext ([in] UINT index,[in] ULONG dwHelpStringContext);
690 HRESULT SetVarHelpStringContext ([in] UINT index,[in] ULONG dwHelpStringContext);
691 HRESULT Invalidate (void);
692 HRESULT SetName ([in] LPOLESTR szName);
693}
694cpp_quote("")
695[object, uuid (00020406-0000-0000-C000-000000000046), pointer_default (unique), local]
696interface ICreateTypeLib : IUnknown {
697 typedef [unique] ICreateTypeLib *LPCREATETYPELIB;
698cpp_quote("")
699 HRESULT CreateTypeInfo ([in] LPOLESTR szName,[in] TYPEKIND tkind,[out] ICreateTypeInfo **ppCTInfo);
700 HRESULT SetName ([in] LPOLESTR szName);
701 HRESULT SetVersion ([in] WORD wMajorVerNum,[in] WORD wMinorVerNum);
702 HRESULT SetGuid ([in] REFGUID guid);
703 HRESULT SetDocString ([in] LPOLESTR szDoc);
704 HRESULT SetHelpFileName ([in] LPOLESTR szHelpFileName);
705 HRESULT SetHelpContext ([in] DWORD dwHelpContext);
706 HRESULT SetLcid ([in] LCID lcid);
707 HRESULT SetLibFlags ([in] UINT uLibFlags);
708 HRESULT SaveAllChanges (void);
709}
710cpp_quote("")
711[object, uuid (0002040f-0000-0000-C000-000000000046), pointer_default (unique), local]
712interface ICreateTypeLib2 : ICreateTypeLib {
713 typedef [unique] ICreateTypeLib2 *LPCREATETYPELIB2;
714 HRESULT DeleteTypeInfo ([in] LPOLESTR szName);
715 HRESULT SetCustData ([in] REFGUID guid,[in] VARIANT *pVarVal);
716 HRESULT SetHelpStringContext ([in] ULONG dwHelpStringContext);
717 HRESULT SetHelpStringDll ([in] LPOLESTR szFileName);
718}
719cpp_quote("#endif")
720cpp_quote("")
721cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
722[object, uuid (00020400-0000-0000-C000-000000000046), pointer_default (unique)]
723interface IDispatch : IUnknown {
724 typedef [unique] IDispatch *LPDISPATCH;
725cpp_quote("")
726 HRESULT GetTypeInfoCount ([out] UINT *pctinfo);
727 HRESULT GetTypeInfo ([in] UINT iTInfo,[in] LCID lcid,[out] ITypeInfo **ppTInfo);
728 HRESULT GetIDsOfNames ([in] REFIID riid,[in, size_is (cNames)] LPOLESTR *rgszNames,[in, range (0, 16384)] UINT cNames,[in] LCID lcid,[out, size_is (cNames)] DISPID *rgDispId);
729 [local] HRESULT Invoke ([in] DISPID dispIdMember,[in] REFIID riid,[in] LCID lcid,[in] WORD wFlags,[in, out] DISPPARAMS *pDispParams,[out] VARIANT *pVarResult,[out] EXCEPINFO *pExcepInfo,[out] UINT *puArgErr);
730 [call_as (Invoke)] HRESULT RemoteInvoke ([in] DISPID dispIdMember,[in] REFIID riid,[in] LCID lcid,[in] DWORD dwFlags,[in] DISPPARAMS *pDispParams,[out] VARIANT *pVarResult,[out] EXCEPINFO *pExcepInfo,[out] UINT *pArgErr,[in] UINT cVarRef,[in, size_is (cVarRef)] UINT *rgVarRefIdx,[in, out, size_is (cVarRef)] VARIANTARG *rgVarRef);
731 cpp_quote("")
732 const DISPID DISPID_UNKNOWN = -1;
733 const DISPID DISPID_VALUE = 0;
734 const DISPID DISPID_PROPERTYPUT = -3;
735 const DISPID DISPID_NEWENUM = -4;
736 const DISPID DISPID_EVALUATE = -5;
737 const DISPID DISPID_CONSTRUCTOR = -6;
738 const DISPID DISPID_DESTRUCTOR = -7;
739 const DISPID DISPID_COLLECT = -8;
740 cpp_quote("")
741}
742
743cpp_quote("")
744[object, uuid (00020404-0000-0000-C000-000000000046), pointer_default (unique)]
745interface IEnumVARIANT : IUnknown {
746 typedef [unique] IEnumVARIANT *LPENUMVARIANT;
747cpp_quote("")
748 [local] HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pCeltFetched)] VARIANT *rgVar,[out] ULONG *pCeltFetched);
749 [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pCeltFetched)] VARIANT *rgVar,[out] ULONG *pCeltFetched);
750 HRESULT Skip ([in] ULONG celt);
751 HRESULT Reset ();
752 HRESULT Clone ([out] IEnumVARIANT **ppEnum);
753}
754
755cpp_quote("")
756[object, uuid (00020403-0000-0000-C000-000000000046), pointer_default (unique)]
757interface ITypeComp : IUnknown {
758 typedef [unique] ITypeComp *LPTYPECOMP;
759cpp_quote("")
760 typedef [v1_enum] enum tagDESCKIND {
761 DESCKIND_NONE = 0,
762 DESCKIND_FUNCDESC,
763 DESCKIND_VARDESC,
764 DESCKIND_TYPECOMP,
765 DESCKIND_IMPLICITAPPOBJ,
766 DESCKIND_MAX
767 } DESCKIND;
768cpp_quote("")
769 typedef union tagBINDPTR {
770 FUNCDESC *lpfuncdesc;
771 VARDESC *lpvardesc;
772 ITypeComp *lptcomp;
773 } BINDPTR,*LPBINDPTR;
774cpp_quote("")
775 [local] HRESULT Bind ([in] LPOLESTR szName,[in] ULONG lHashVal,[in] WORD wFlags,[out] ITypeInfo **ppTInfo,[out] DESCKIND *pDescKind,[out] BINDPTR *pBindPtr);
776 [call_as (Bind)] HRESULT RemoteBind ([in] LPOLESTR szName,[in] ULONG lHashVal,[in] WORD wFlags,[out] ITypeInfo **ppTInfo,[out] DESCKIND *pDescKind,[out] LPFUNCDESC *ppFuncDesc,[out] LPVARDESC *ppVarDesc,[out] ITypeComp **ppTypeComp,[out] CLEANLOCALSTORAGE *pDummy);
777 [local] HRESULT BindType ([in] LPOLESTR szName,[in] ULONG lHashVal,[out] ITypeInfo **ppTInfo,[out] ITypeComp **ppTComp);
778 [call_as (BindType)] HRESULT RemoteBindType ([in] LPOLESTR szName,[in] ULONG lHashVal,[out] ITypeInfo **ppTInfo);
779}
780cpp_quote("#endif")
781cpp_quote("")
782cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
783[object, uuid (00020401-0000-0000-C000-000000000046), pointer_default (unique)]
784interface ITypeInfo : IUnknown {
785 typedef [unique] ITypeInfo *LPTYPEINFO;
786cpp_quote("")
787 [local] HRESULT GetTypeAttr ([out] TYPEATTR **ppTypeAttr);
788 [call_as (GetTypeAttr)] HRESULT RemoteGetTypeAttr ([out] LPTYPEATTR *ppTypeAttr,[out] CLEANLOCALSTORAGE *pDummy);
789 HRESULT GetTypeComp ([out] ITypeComp **ppTComp);
790 [local] HRESULT GetFuncDesc ([in] UINT index,[out] FUNCDESC **ppFuncDesc);
791 [call_as (GetFuncDesc)] HRESULT RemoteGetFuncDesc ([in] UINT index,[out] LPFUNCDESC *ppFuncDesc,[out] CLEANLOCALSTORAGE *pDummy);
792 [local] HRESULT GetVarDesc ([in] UINT index,[out] VARDESC **ppVarDesc);
793 [call_as (GetVarDesc)] HRESULT RemoteGetVarDesc ([in] UINT index,[out] LPVARDESC *ppVarDesc,[out] CLEANLOCALSTORAGE *pDummy);
794 [local] HRESULT GetNames ([in] MEMBERID memid,[out, size_is (cMaxNames), length_is (*pcNames)] BSTR *rgBstrNames,[in] UINT cMaxNames,[out] UINT *pcNames);
795 [call_as (GetNames)] HRESULT RemoteGetNames ([in] MEMBERID memid,[out, size_is (cMaxNames), length_is (*pcNames)] BSTR *rgBstrNames,[in] UINT cMaxNames,[out] UINT *pcNames);
796 HRESULT GetRefTypeOfImplType ([in] UINT index,[out] HREFTYPE *pRefType);
797 HRESULT GetImplTypeFlags ([in] UINT index,[out] INT *pImplTypeFlags);
798 [local] HRESULT GetIDsOfNames ([in, size_is (cNames)] LPOLESTR *rgszNames,[in] UINT cNames,[out, size_is (cNames)] MEMBERID *pMemId);
799 [call_as (GetIDsOfNames)] HRESULT LocalGetIDsOfNames (void);
800 [local] HRESULT Invoke ([in] PVOID pvInstance,[in] MEMBERID memid,[in] WORD wFlags,[in, out] DISPPARAMS *pDispParams,[out] VARIANT *pVarResult,[out] EXCEPINFO *pExcepInfo,[out] UINT *puArgErr);
801 [call_as (Invoke)] HRESULT LocalInvoke (void);
802 [local] HRESULT GetDocumentation ([in] MEMBERID memid,[out] BSTR *pBstrName,[out] BSTR *pBstrDocString,[out] DWORD *pdwHelpContext,[out] BSTR *pBstrHelpFile);
803 [call_as (GetDocumentation)] HRESULT RemoteGetDocumentation ([in] MEMBERID memid,[in] DWORD refPtrFlags,[out] BSTR *pBstrName,[out] BSTR *pBstrDocString,[out] DWORD *pdwHelpContext,[out] BSTR *pBstrHelpFile);
804 [local]
805 HRESULT GetDllEntry ([in] MEMBERID memid,[in] INVOKEKIND invKind,[out] BSTR *pBstrDllName,[out] BSTR *pBstrName,[out] WORD *pwOrdinal);
806 [call_as (GetDllEntry)]
807 HRESULT RemoteGetDllEntry ([in] MEMBERID memid,[in] INVOKEKIND invKind,[in] DWORD refPtrFlags,[out] BSTR *pBstrDllName,[out] BSTR *pBstrName,[out] WORD *pwOrdinal);
808 HRESULT GetRefTypeInfo ([in] HREFTYPE hRefType,[out] ITypeInfo **ppTInfo);
809 [local] HRESULT AddressOfMember ([in] MEMBERID memid,[in] INVOKEKIND invKind,[out] PVOID *ppv);
810 [call_as (AddressOfMember)] HRESULT LocalAddressOfMember (void);
811 [local] HRESULT CreateInstance ([in] IUnknown *pUnkOuter,[in] REFIID riid,[out, iid_is (riid)] PVOID *ppvObj);
812 [call_as (CreateInstance)] HRESULT RemoteCreateInstance ([in] REFIID riid,[out, iid_is (riid)] IUnknown **ppvObj);
813 HRESULT GetMops ([in] MEMBERID memid,[out] BSTR *pBstrMops);
814 [local] HRESULT GetContainingTypeLib ([out] ITypeLib **ppTLib,[out] UINT *pIndex);
815 [call_as (GetContainingTypeLib)] HRESULT RemoteGetContainingTypeLib ([out] ITypeLib **ppTLib,[out] UINT *pIndex);
816 [local] void ReleaseTypeAttr ([in] TYPEATTR *pTypeAttr);
817 [call_as (ReleaseTypeAttr)] HRESULT LocalReleaseTypeAttr (void);
818 [local] void ReleaseFuncDesc ([in] FUNCDESC *pFuncDesc);
819 [call_as (ReleaseFuncDesc)] HRESULT LocalReleaseFuncDesc (void);
820 [local] void ReleaseVarDesc ([in] VARDESC *pVarDesc);
821 [call_as (ReleaseVarDesc)] HRESULT LocalReleaseVarDesc (void);
822}
823
824cpp_quote("")
825[object, uuid (00020412-0000-0000-C000-000000000046), pointer_default (unique)]
826interface ITypeInfo2 : ITypeInfo {
827 typedef [unique] ITypeInfo2 *LPTYPEINFO2;
828cpp_quote("")
829 HRESULT GetTypeKind ([out] TYPEKIND *pTypeKind);
830 HRESULT GetTypeFlags ([out] ULONG *pTypeFlags);
831 HRESULT GetFuncIndexOfMemId ([in] MEMBERID memid,[in] INVOKEKIND invKind,[out] UINT *pFuncIndex);
832 HRESULT GetVarIndexOfMemId ([in] MEMBERID memid,[out] UINT *pVarIndex);
833 HRESULT GetCustData ([in] REFGUID guid,[out] VARIANT *pVarVal);
834 HRESULT GetFuncCustData ([in] UINT index,[in] REFGUID guid,[out] VARIANT *pVarVal);
835 HRESULT GetParamCustData ([in] UINT indexFunc,[in] UINT indexParam,[in] REFGUID guid,[out] VARIANT *pVarVal);
836 HRESULT GetVarCustData ([in] UINT index,[in] REFGUID guid,[out] VARIANT *pVarVal);
837 HRESULT GetImplTypeCustData ([in] UINT index,[in] REFGUID guid,[out] VARIANT *pVarVal);
838 [local] HRESULT GetDocumentation2 ([in] MEMBERID memid,[in] LCID lcid,[out] BSTR *pbstrHelpString,[out] DWORD *pdwHelpStringContext,[out] BSTR *pbstrHelpStringDll);
839 [call_as (GetDocumentation2)] HRESULT RemoteGetDocumentation2 ([in] MEMBERID memid,[in] LCID lcid,[in] DWORD refPtrFlags,[out] BSTR *pbstrHelpString,[out] DWORD *pdwHelpStringContext,[out] BSTR *pbstrHelpStringDll);
840 HRESULT GetAllCustData ([out] CUSTDATA *pCustData);
841 HRESULT GetAllFuncCustData ([in] UINT index,[out] CUSTDATA *pCustData);
842 HRESULT GetAllParamCustData ([in] UINT indexFunc,[in] UINT indexParam,[out] CUSTDATA *pCustData);
843 HRESULT GetAllVarCustData ([in] UINT index,[out] CUSTDATA *pCustData);
844 HRESULT GetAllImplTypeCustData ([in] UINT index,[out] CUSTDATA *pCustData);
845}
846cpp_quote("#endif")
847cpp_quote("")
848cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
849[object, uuid (00020402-0000-0000-C000-000000000046), pointer_default (unique)]
850interface ITypeLib : IUnknown {
851 typedef [v1_enum] enum tagSYSKIND {
852 SYS_WIN16 = 0,
853 SYS_WIN32,
854 SYS_MAC,
855 SYS_WIN64
856 } SYSKIND;
857cpp_quote("")
858 typedef [v1_enum] enum tagLIBFLAGS {
859 LIBFLAG_FRESTRICTED = 0x01,
860 LIBFLAG_FCONTROL = 0x02,
861 LIBFLAG_FHIDDEN = 0x04,
862 LIBFLAG_FHASDISKIMAGE = 0x08
863 } LIBFLAGS;
864cpp_quote("")
865 typedef [unique] ITypeLib *LPTYPELIB;
866cpp_quote("")
867 typedef struct tagTLIBATTR {
868 GUID guid;
869 LCID lcid;
870 SYSKIND syskind;
871 WORD wMajorVerNum;
872 WORD wMinorVerNum;
873 WORD wLibFlags;
874 } TLIBATTR,*LPTLIBATTR;
875cpp_quote("")
876 [local] UINT GetTypeInfoCount (void);
877 [call_as (GetTypeInfoCount)] HRESULT RemoteGetTypeInfoCount ([out] UINT *pcTInfo);
878 HRESULT GetTypeInfo ([in] UINT index,[out] ITypeInfo **ppTInfo);
879 HRESULT GetTypeInfoType ([in] UINT index,[out] TYPEKIND *pTKind);
880 HRESULT GetTypeInfoOfGuid ([in] REFGUID guid,[out] ITypeInfo **ppTinfo);
881 [local] HRESULT GetLibAttr ([out] TLIBATTR **ppTLibAttr);
882 [call_as (GetLibAttr)] HRESULT RemoteGetLibAttr ([out] LPTLIBATTR *ppTLibAttr,[out] CLEANLOCALSTORAGE *pDummy);
883 HRESULT GetTypeComp ([out] ITypeComp **ppTComp);
884 [local] HRESULT GetDocumentation ([in] INT index,[out] BSTR *pBstrName,[out] BSTR *pBstrDocString,[out] DWORD *pdwHelpContext,[out] BSTR *pBstrHelpFile);
885 [call_as (GetDocumentation)] HRESULT RemoteGetDocumentation ([in] INT index,[in] DWORD refPtrFlags,[out] BSTR *pBstrName,[out] BSTR *pBstrDocString,[out] DWORD *pdwHelpContext,[out] BSTR *pBstrHelpFile);
886 [local] HRESULT IsName ([in, out] LPOLESTR szNameBuf,[in] ULONG lHashVal,[out] BOOL *pfName);
887 [call_as (IsName)] HRESULT RemoteIsName ([in] LPOLESTR szNameBuf,[in] ULONG lHashVal,[out] BOOL *pfName,[out] BSTR *pBstrLibName);
888 [local] HRESULT FindName ([in, out] LPOLESTR szNameBuf,[in] ULONG lHashVal,[out, size_is (*pcFound), length_is (*pcFound)] ITypeInfo **ppTInfo,[out, size_is (*pcFound), length_is (*pcFound)] MEMBERID *rgMemId,[in, out] USHORT *pcFound);
889 [call_as (FindName)] HRESULT RemoteFindName ([in] LPOLESTR szNameBuf,[in] ULONG lHashVal,[out, size_is (*pcFound), length_is (*pcFound)] ITypeInfo **ppTInfo,[out, size_is (*pcFound), length_is (*pcFound)] MEMBERID *rgMemId,[in, out] USHORT *pcFound,[out] BSTR *pBstrLibName);
890 [local] void ReleaseTLibAttr ([in] TLIBATTR *pTLibAttr);
891 [call_as (ReleaseTLibAttr)] HRESULT LocalReleaseTLibAttr (void);
892}
893cpp_quote("#endif")
894cpp_quote("")
895cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
896[object, uuid (00020411-0000-0000-C000-000000000046), pointer_default (unique)]
897interface ITypeLib2 : ITypeLib {
898 typedef [unique] ITypeLib2 *LPTYPELIB2;
899cpp_quote("")
900 HRESULT GetCustData ([in] REFGUID guid,[out] VARIANT *pVarVal);
901 [local] HRESULT GetLibStatistics ([out] ULONG *pcUniqueNames,[out] ULONG *pcchUniqueNames);
902 [call_as (GetLibStatistics)] HRESULT RemoteGetLibStatistics ([out] ULONG *pcUniqueNames,[out] ULONG *pcchUniqueNames);
903 [local] HRESULT GetDocumentation2 ([in] INT index,[in] LCID lcid,[out] BSTR *pbstrHelpString,[out] DWORD *pdwHelpStringContext,[out] BSTR *pbstrHelpStringDll);
904 [call_as (GetDocumentation2)] HRESULT RemoteGetDocumentation2 ([in] INT index,[in] LCID lcid,[in] DWORD refPtrFlags,[out] BSTR *pbstrHelpString,[out] DWORD *pdwHelpStringContext,[out] BSTR *pbstrHelpStringDll);
905 HRESULT GetAllCustData ([out] CUSTDATA *pCustData);
906}
907
908cpp_quote("")
909[object, uuid (00020410-0000-0000-C000-000000000046), pointer_default (unique), local]
910interface ITypeChangeEvents: IUnknown {
911 typedef [unique] ITypeChangeEvents *LPTYPECHANGEEVENTS;
912cpp_quote("")
913 typedef enum tagCHANGEKIND {
914 CHANGEKIND_ADDMEMBER,
915 CHANGEKIND_DELETEMEMBER,
916 CHANGEKIND_SETNAMES,
917 CHANGEKIND_SETDOCUMENTATION,
918 CHANGEKIND_GENERAL,
919 CHANGEKIND_INVALIDATE,
920 CHANGEKIND_CHANGEFAILED,
921 CHANGEKIND_MAX
922 } CHANGEKIND;
923cpp_quote("")
924 HRESULT RequestTypeChange ([in] CHANGEKIND changeKind,[in] ITypeInfo *pTInfoBefore,[in] LPOLESTR pStrName,[out] INT *pfCancel);
925 HRESULT AfterTypeChange ([in] CHANGEKIND changeKind,[in] ITypeInfo *pTInfoAfter,[in] LPOLESTR pStrName);
926}
927
928cpp_quote("")
929[object, uuid (1cf2b120-547d-101b-8e65-08002b2bd119), pointer_default (unique)]
930interface IErrorInfo: IUnknown {
931 typedef [unique] IErrorInfo *LPERRORINFO;
932cpp_quote("")
933 HRESULT GetGUID ([out] GUID *pGUID);
934 HRESULT GetSource ([out] BSTR *pBstrSource);
935 HRESULT GetDescription ([out] BSTR *pBstrDescription);
936 HRESULT GetHelpFile ([out] BSTR *pBstrHelpFile);
937 HRESULT GetHelpContext ([out] DWORD *pdwHelpContext);
938}
939
940cpp_quote("")
941[object, uuid (22f03340-547d-101b-8e65-08002b2bd119), pointer_default (unique)]
942interface ICreateErrorInfo: IUnknown {
943 typedef [unique] ICreateErrorInfo *LPCREATEERRORINFO;
944cpp_quote("")
945 HRESULT SetGUID ([in] REFGUID rguid);
946 HRESULT SetSource ([in] LPOLESTR szSource);
947 HRESULT SetDescription ([in] LPOLESTR szDescription);
948 HRESULT SetHelpFile ([in] LPOLESTR szHelpFile);
949 HRESULT SetHelpContext ([in] DWORD dwHelpContext);
950}
951
952cpp_quote("")
953[object, uuid (DF0B3D60-548f-101b-8e65-08002b2bd119), pointer_default (unique)]
954interface ISupportErrorInfo: IUnknown {
955 typedef [unique] ISupportErrorInfo *LPSUPPORTERRORINFO;
956cpp_quote("")
957 HRESULT InterfaceSupportsErrorInfo ([in] REFIID riid);
958}
959
960cpp_quote("")
961[object, uuid (0000002e-0000-0000-C000-000000000046)]
962interface ITypeFactory : IUnknown {
963 HRESULT CreateFromTypeInfo ([in] ITypeInfo *pTypeInfo,[in] REFIID riid,[out, iid_is (riid)] IUnknown **ppv);
964}
965
966cpp_quote("")
967[local, object, uuid (0000002d-0000-0000-C000-000000000046)]
968interface ITypeMarshal : IUnknown {
969 HRESULT Size ([in] PVOID pvType,[in] DWORD dwDestContext,[in] PVOID pvDestContext,[out] ULONG *pSize);
970 HRESULT Marshal ([in] PVOID pvType,[in] DWORD dwDestContext,[in] PVOID pvDestContext,[in] ULONG cbBufferLength,[out] BYTE *pBuffer,[out] ULONG *pcbWritten);
971 HRESULT Unmarshal ([out] PVOID pvType,[in] DWORD dwFlags,[in] ULONG cbBufferLength,[in] BYTE *pBuffer,[out] ULONG *pcbRead);
972 HRESULT Free ([in] PVOID pvType);
973}
974
975cpp_quote("")
976[local, object, uuid (0000002f-0000-0000-C000-000000000046)]
977interface IRecordInfo: IUnknown {
978 typedef [unique] IRecordInfo *LPRECORDINFO;
979cpp_quote("")
980 HRESULT RecordInit ([out] PVOID pvNew);
981 HRESULT RecordClear ([in] PVOID pvExisting);
982 HRESULT RecordCopy ([in] PVOID pvExisting,[out] PVOID pvNew);
983 HRESULT GetGuid ([out] GUID *pguid);
984 HRESULT GetName ([out] BSTR *pbstrName);
985 HRESULT GetSize ([out] ULONG *pcbSize);
986 HRESULT GetTypeInfo ([out] ITypeInfo **ppTypeInfo);
987 HRESULT GetField ([in] PVOID pvData,[in] LPCOLESTR szFieldName,[out] VARIANT *pvarField);
988 HRESULT GetFieldNoCopy ([in] PVOID pvData,[in] LPCOLESTR szFieldName,[out] VARIANT *pvarField,[out] PVOID *ppvDataCArray);
989 HRESULT PutField ([in] ULONG wFlags,[in, out] PVOID pvData,[in] LPCOLESTR szFieldName,[in] VARIANT *pvarField);
990 HRESULT PutFieldNoCopy ([in] ULONG wFlags,[in, out] PVOID pvData,[in] LPCOLESTR szFieldName,[in] VARIANT *pvarField);
991 HRESULT GetFieldNames ([in, out] ULONG *pcNames,[out, size_is (*pcNames), length_is (*pcNames)] BSTR *rgBstrNames);
992 BOOL IsMatchingType ([in] IRecordInfo *pRecordInfo);
993 PVOID RecordCreate ();
994 HRESULT RecordCreateCopy ([in] PVOID pvSource,[out] PVOID *ppvDest);
995 HRESULT RecordDestroy ([in] PVOID pvRecord);
996}
997
998cpp_quote("")
999[object, uuid (3127ca40-446e-11ce-8135-00aa004bb851), pointer_default (unique)]
1000interface IErrorLog : IUnknown {
1001 typedef IErrorLog *LPERRORLOG;
1002cpp_quote("")
1003 HRESULT AddError ([in] LPCOLESTR pszPropName,[in] EXCEPINFO *pExcepInfo);
1004}
1005
1006cpp_quote("")
1007[object, uuid (55272a00-42cb-11ce-8135-00aa004bb851), pointer_default (unique)]
1008interface IPropertyBag : IUnknown {
1009 typedef IPropertyBag *LPPROPERTYBAG;
1010cpp_quote("")
1011 [local] HRESULT Read ([in] LPCOLESTR pszPropName,[in, out] VARIANT *pVar,[in, unique] IErrorLog *pErrorLog);
1012 [call_as (Read)] HRESULT RemoteRead ([in] LPCOLESTR pszPropName,[out] VARIANT *pVar,[in, unique] IErrorLog *pErrorLog,[in] DWORD varType,[in] IUnknown *pUnkObj);
1013 HRESULT Write ([in] LPCOLESTR pszPropName,[in] VARIANT *pVar);
1014}
1015cpp_quote("#endif")
Note: See TracBrowser for help on using the repository browser.