Start anew
[git/jnareb-git.git] / mingw / include / oaidl.h
blob8aecd1bde6e053bb8f8c59282a7abb7ada1243b5
1 #ifndef _OAIDL_H
2 #define _OAIDL_H
3 #if __GNUC__ >=3
4 #pragma GCC system_header
5 #endif
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #ifdef NONAMELESSUNION
11 #define __VARIANT_NAME_1 n1
12 #define __VARIANT_NAME_2 n2
13 #define __VARIANT_NAME_3 n3
14 #define __VARIANT_NAME_4 n4
15 #else
16 #define __tagVARIANT
17 #define __VARIANT_NAME_1
18 #define __VARIANT_NAME_2
19 #define __VARIANT_NAME_3
20 #define __VARIANT_NAME_4
21 #endif
22 #define DISPID_UNKNOWN (-1)
23 #define DISPID_VALUE (0)
24 #define DISPID_PROPERTYPUT (-3)
25 #define DISPID_NEWENUM (-4)
26 #define DISPID_EVALUATE (-5)
27 #define DISPID_CONSTRUCTOR (-6)
28 #define DISPID_DESTRUCTOR (-7)
29 #define DISPID_COLLECT (-8)
30 #define FADF_AUTO (1)
31 #define FADF_STATIC (2)
32 #define FADF_EMBEDDED (4)
33 #define FADF_FIXEDSIZE (16)
34 #define FADF_RECORD (32)
35 #define FADF_HAVEIID (64)
36 #define FADF_HAVEVARTYPE (128)
37 #define FADF_BSTR (256)
38 #define FADF_UNKNOWN (512)
39 #define FADF_DISPATCH (1024)
40 #define FADF_VARIANT (2048)
41 #define FADF_RESERVED (0xf0e8)
42 #define FADF_DATADELETED (0x1000)
43 #define FADF_CREATEVECTOR (0x2000)
44 #define PARAMFLAG_NONE (0)
45 #define PARAMFLAG_FIN (1)
46 #define PARAMFLAG_FOUT (2)
47 #define PARAMFLAG_FLCID (4)
48 #define PARAMFLAG_FRETVAL (8)
49 #define PARAMFLAG_FOPT (16)
50 #define PARAMFLAG_FHASDEFAULT (32)
51 #define IDLFLAG_NONE PARAMFLAG_NONE
52 #define IDLFLAG_FIN PARAMFLAG_FIN
53 #define IDLFLAG_FOUT PARAMFLAG_FOUT
54 #define IDLFLAG_FLCID PARAMFLAG_FLCID
55 #define IDLFLAG_FRETVAL PARAMFLAG_FRETVAL
56 #define IMPLTYPEFLAG_FDEFAULT 1
57 #define IMPLTYPEFLAG_FSOURCE 2
58 #define IMPLTYPEFLAG_FRESTRICTED 4
59 #define IMPLTYPEFLAG_FDEFAULTVTABLE 8
61 typedef _COM_interface ITypeLib *LPTYPELIB;
62 typedef _COM_interface ITypeLib2 *LPTYPELIB2;
63 typedef _COM_interface ICreateTypeInfo *LPCREATETYPEINFO;
64 typedef _COM_interface ICreateTypeInfo2 *LPCREATETYPEINFO2;
65 typedef _COM_interface ICreateTypeLib *LPCREATETYPELIB;
66 typedef _COM_interface ICreateTypeLib2 *LPCREATETYPELIB2;
67 typedef _COM_interface ITypeComp *LPTYPECOMP;
68 typedef _COM_interface ITypeInfo *LPTYPEINFO;
69 typedef _COM_interface ITypeInfo2 *LPTYPEINFO2;
70 typedef _COM_interface IErrorInfo *LPERRORINFO;
71 typedef _COM_interface IDispatch *LPDISPATCH;
72 typedef _COM_interface IEnumVARIANT *LPENUMVARIANT;
73 typedef _COM_interface ICreateErrorInfo *LPCREATEERRORINFO;
74 typedef _COM_interface ISupportErrorInfo *LPSUPPORTERRORINFO;
75 typedef _COM_interface IRecordInfo *LPRECORDINFO;
77 extern const IID IID_ITypeLib;
78 extern const IID IID_ITypeLib2;
79 extern const IID IID_ICreateTypeInfo;
80 extern const IID IID_ICreateTypeInfo2;
81 extern const IID IID_ICreateTypeLib;
82 extern const IID IID_ICreateTypeLib2;
83 extern const IID IID_ITypeInfo;
84 extern const IID IID_ITypeInfo2;
85 extern const IID IID_IErrorInfo;
86 extern const IID IID_IDispatch;
87 extern const IID IID_IEnumVARIANT;
88 extern const IID IID_ICreateErrorInfo;
89 extern const IID IID_ISupportErrorInfo;
90 extern const IID IID_IRecordInfo;
91 extern const IID IID_ITypeMarshal;
93 typedef enum tagSYSKIND {
94 SYS_WIN16,SYS_WIN32,SYS_MAC
95 } SYSKIND;
96 typedef enum tagLIBFLAGS {
97 LIBFLAG_FRESTRICTED=1,LIBFLAG_FCONTROL=2,LIBFLAG_FHIDDEN=4,
98 LIBFLAG_FHASDISKIMAGE=8
99 } LIBFLAGS;
100 typedef struct tagTLIBATTR {
101 GUID guid;
102 LCID lcid;
103 SYSKIND syskind;
104 WORD wMajorVerNum;
105 WORD wMinorVerNum;
106 WORD wLibFlags;
107 } TLIBATTR,*LPTLIBATTR;
108 typedef CY CURRENCY;
109 typedef struct tagSAFEARRAYBOUND {
110 ULONG cElements;
111 LONG lLbound;
112 }SAFEARRAYBOUND,*LPSAFEARRAYBOUND;
113 typedef struct _wireSAFEARR_BSTR
115 ULONG Size;
116 wireBSTR *aBstr;
117 }SAFEARR_BSTR;
118 typedef struct _wireSAFEARR_UNKNOWN {
119 ULONG Size;
120 IUnknown **apUnknown;
121 }SAFEARR_UNKNOWN;
122 typedef struct _wireSAFEARR_DISPATCH {
123 ULONG Size;
124 LPDISPATCH *apDispatch;
125 }SAFEARR_DISPATCH;
126 typedef struct _wireSAFEARR_VARIANT {
127 ULONG Size;
128 struct _wireVARIANT *aVariant;
129 }SAFEARR_VARIANT;
130 typedef enum tagSF_TYPE {
131 SF_ERROR=VT_ERROR,
132 SF_I1=VT_I1,
133 SF_I2=VT_I2,
134 SF_I4=VT_I4,
135 SF_I8=VT_I8,
136 SF_BSTR=VT_BSTR,
137 SF_UNKNOWN=VT_UNKNOWN,
138 SF_DISPATCH=VT_DISPATCH,
139 SF_VARIANT=VT_VARIANT
140 }SF_TYPE;
141 typedef struct _wireBRECORD {
142 ULONG fFlags;
143 ULONG clSize;
144 LPRECORDINFO* pRecInfo;
145 byte* pRecord;
146 } *wireBRECORD;
147 typedef struct _wireSAFEARR_BRECORD {
148 ULONG Size;
149 wireBRECORD* aRecord;
150 } SAFEARR_BRECORD;
151 typedef struct _wireSAFEARR_HAVEIID {
152 ULONG Size;
153 IUnknown** apUnknown;
154 IID iid;
155 } SAFEARR_HAVEIID;
156 typedef struct _wireSAFEARRAY_UNION {
157 ULONG sfType;
158 union {
159 SAFEARR_BSTR BstrStr;
160 SAFEARR_UNKNOWN UnknownStr;
161 SAFEARR_DISPATCH DispatchStr;
162 SAFEARR_VARIANT VariantStr;
163 SAFEARR_BRECORD RecordStr;
164 SAFEARR_HAVEIID HaveIidStr;
165 BYTE_SIZEDARR ByteStr;
166 WORD_SIZEDARR WordStr;
167 DWORD_SIZEDARR LongStr;
168 HYPER_SIZEDARR HyperStr;
170 }SAFEARRAYUNION;
171 typedef struct _wireSAFEARRAY {
172 USHORT cDims;
173 USHORT fFeatures;
174 ULONG cbElements;
175 ULONG cLocks;
176 SAFEARRAYUNION uArrayStructs;
177 SAFEARRAYBOUND rgsabound[1];
178 }*wireSAFEARRAY;
179 typedef wireSAFEARRAY *wirePSAFEARRAY;
180 typedef struct tagSAFEARRAY {
181 USHORT cDims;
182 USHORT fFeatures;
183 ULONG cbElements;
184 ULONG cLocks;
185 PVOID pvData;
186 SAFEARRAYBOUND rgsabound[1];
187 }SAFEARRAY,*LPSAFEARRAY;
188 #if defined (__GNUC__) && !defined (NONAMELESSUNION)
189 __extension__ /* no named members */
190 #endif
191 typedef struct tagVARIANT {
192 _ANONYMOUS_UNION union {
193 struct __tagVARIANT {
194 VARTYPE vt;
195 WORD wReserved1;
196 WORD wReserved2;
197 WORD wReserved3;
198 _ANONYMOUS_UNION union {
199 long lVal;
200 LONGLONG llVal;
201 unsigned char bVal;
202 short iVal;
203 float fltVal;
204 double dblVal;
205 VARIANT_BOOL boolVal;
206 SCODE scode;
207 CY cyVal;
208 DATE date;
209 BSTR bstrVal;
210 IUnknown *punkVal;
211 LPDISPATCH pdispVal;
212 SAFEARRAY *parray;
213 unsigned char *pbVal;
214 short *piVal;
215 long *plVal;
216 float *pfltVal;
217 double *pdblVal;
218 VARIANT_BOOL *pboolVal;
219 _VARIANT_BOOL *pbool;
220 SCODE *pscode;
221 CY *pcyVal;
222 DATE *pdate;
223 BSTR *pbstrVal;
224 IUnknown **ppunkVal;
225 LPDISPATCH *ppdispVal;
226 SAFEARRAY **pparray;
227 struct tagVARIANT *pvarVal;
228 void *byref;
229 CHAR cVal;
230 USHORT uiVal;
231 ULONG ulVal;
232 ULONGLONG ullVal;
233 INT intVal;
234 UINT uintVal;
235 DECIMAL *pdecVal;
236 CHAR *pcVal;
237 USHORT *puiVal;
238 ULONG *pulVal;
239 INT *pintVal;
240 UINT *puintVal;
241 _ANONYMOUS_STRUCT struct {
242 PVOID pvRecord;
243 struct IRecordInfo *pRecInfo;
244 } __VARIANT_NAME_4;
245 } __VARIANT_NAME_3;
246 } __VARIANT_NAME_2;
247 DECIMAL decVal;
248 } __VARIANT_NAME_1;
249 } VARIANT,*LPVARIANT;
250 typedef VARIANT VARIANTARG;
251 typedef VARIANT *LPVARIANTARG;
252 typedef struct _wireVARIANT {
253 DWORD clSize;
254 DWORD rpcReserved;
255 USHORT vt;
256 USHORT wReserved1;
257 USHORT wReserved2;
258 USHORT wReserved3;
259 _ANONYMOUS_UNION union {
260 LONG lVal;
261 LONGLONG llVal;
262 BYTE bVal;
263 SHORT iVal;
264 FLOAT fltVal;
265 DOUBLE dblVal;
266 VARIANT_BOOL boolVal;
267 SCODE scode;
268 CY cyVal;
269 DATE date;
270 wireBSTR bstrVal;
271 IUnknown *punkVal;
272 LPDISPATCH pdispVal;
273 wirePSAFEARRAY parray;
274 wireBRECORD brecVal;
275 BYTE *pbVal;
276 SHORT *piVal;
277 LONG *plVal;
278 FLOAT *pfltVal;
279 DOUBLE *pdblVal;
280 VARIANT_BOOL *pboolVal;
281 SCODE *pscode;
282 CY *pcyVal;
283 DATE *pdate;
284 wireBSTR *pbstrVal;
285 IUnknown **ppunkVal;
286 LPDISPATCH *ppdispVal;
287 wirePSAFEARRAY *pparray;
288 struct _wireVARIANT *pvarVal;
289 CHAR cVal;
290 USHORT uiVal;
291 ULONG ulVal;
292 ULONGLONG ullVal;
293 INT intVal;
294 UINT uintVal;
295 DECIMAL decVal;
296 DECIMAL *pdecVal;
297 CHAR *pcVal;
298 USHORT *puiVal;
299 ULONG *pulVal;
300 INT *pintVal;
301 UINT *puintVal;
302 } DUMMYUNIONNAME;
303 } *wireVARIANT;
304 typedef LONG DISPID;
305 typedef DISPID MEMBERID;
306 typedef DWORD HREFTYPE;
307 typedef enum tagTYPEKIND {
308 TKIND_ENUM,TKIND_RECORD,TKIND_MODULE,TKIND_INTERFACE,TKIND_DISPATCH,
309 TKIND_COCLASS,TKIND_ALIAS,TKIND_UNION,TKIND_MAX
310 }TYPEKIND;
311 typedef struct tagTYPEDESC {
312 _ANONYMOUS_UNION union {
313 struct tagTYPEDESC *lptdesc;
314 struct tagARRAYDESC *lpadesc;
315 HREFTYPE hreftype;
316 } DUMMYUNIONNAME;
317 VARTYPE vt;
318 }TYPEDESC;
319 typedef struct tagARRAYDESC {
320 TYPEDESC tdescElem;
321 USHORT cDims;
322 SAFEARRAYBOUND rgbounds[1];
323 }ARRAYDESC;
324 typedef struct tagPARAMDESCEX {
325 ULONG cBytes;
326 VARIANTARG varDefaultValue;
327 }PARAMDESCEX,*LPPARAMDESCEX;
328 typedef struct tagPARAMDESC {
329 LPPARAMDESCEX pparamdescex;
330 USHORT wParamFlags;
331 }PARAMDESC,*LPPARAMDESC;
332 typedef struct tagIDLDESC {
333 ULONG dwReserved;
334 USHORT wIDLFlags;
335 }IDLDESC,*LPIDLDESC;
336 typedef struct tagELEMDESC {
337 TYPEDESC tdesc;
338 _ANONYMOUS_UNION union {
339 IDLDESC idldesc;
340 PARAMDESC paramdesc;
341 } DUMMYUNIONNAME;
342 } ELEMDESC,*LPELEMDESC;
343 typedef struct tagTYPEATTR {
344 GUID guid;
345 LCID lcid;
346 DWORD dwReserved;
347 MEMBERID memidConstructor;
348 MEMBERID memidDestructor;
349 LPOLESTR lpstrSchema;
350 ULONG cbSizeInstance;
351 TYPEKIND typekind;
352 WORD cFuncs;
353 WORD cVars;
354 WORD cImplTypes;
355 WORD cbSizeVft;
356 WORD cbAlignment;
357 WORD wTypeFlags;
358 WORD wMajorVerNum;
359 WORD wMinorVerNum;
360 TYPEDESC tdescAlias;
361 IDLDESC idldescType;
362 }TYPEATTR,*LPTYPEATTR;
363 typedef struct tagDISPPARAMS {
364 VARIANTARG *rgvarg;
365 DISPID *rgdispidNamedArgs;
366 UINT cArgs;
367 UINT cNamedArgs;
368 }DISPPARAMS;
369 typedef struct tagEXCEPINFO {
370 WORD wCode;
371 WORD wReserved;
372 BSTR bstrSource;
373 BSTR bstrDescription;
374 BSTR bstrHelpFile;
375 DWORD dwHelpContext;
376 PVOID pvReserved;
377 HRESULT(__stdcall * pfnDeferredFillIn)(struct tagEXCEPINFO*);
378 SCODE scode;
379 } EXCEPINFO,*LPEXCEPINFO;
380 typedef enum tagCALLCONV {
381 CC_FASTCALL,CC_CDECL,CC_MSCPASCAL,CC_PASCAL=CC_MSCPASCAL,
382 CC_MACPASCAL,CC_STDCALL,CC_FPFASTCALL,CC_SYSCALL,CC_MPWCDECL,
383 CC_MPWPASCAL,CC_MAX=CC_MPWPASCAL
384 }CALLCONV;
385 typedef enum tagFUNCKIND {
386 FUNC_VIRTUAL,FUNC_PUREVIRTUAL,FUNC_NONVIRTUAL,
387 FUNC_STATIC,FUNC_DISPATCH
388 }FUNCKIND;
389 typedef enum tagINVOKEKIND {
390 INVOKE_FUNC=1,INVOKE_PROPERTYGET,INVOKE_PROPERTYPUT=4,
391 INVOKE_PROPERTYPUTREF=8
392 }INVOKEKIND;
393 typedef struct tagFUNCDESC {
394 MEMBERID memid;
395 SCODE *lprgscode;
396 ELEMDESC *lprgelemdescParam;
397 FUNCKIND funckind;
398 INVOKEKIND invkind;
399 CALLCONV callconv;
400 SHORT cParams;
401 SHORT cParamsOpt;
402 SHORT oVft;
403 SHORT cScodes;
404 ELEMDESC elemdescFunc;
405 WORD wFuncFlags;
406 }FUNCDESC,*LPFUNCDESC;
407 typedef enum tagVARKIND {
408 VAR_PERINSTANCE,VAR_STATIC,VAR_CONST,VAR_DISPATCH
409 } VARKIND;
410 typedef struct tagVARDESC {
411 MEMBERID memid;
412 LPOLESTR lpstrSchema;
413 _ANONYMOUS_UNION union {
414 ULONG oInst;
415 VARIANT *lpvarValue;
416 } DUMMYUNIONNAME;
417 ELEMDESC elemdescVar;
418 WORD wVarFlags;
419 VARKIND varkind;
420 } VARDESC,*LPVARDESC;
421 typedef enum tagTYPEFLAGS {
422 TYPEFLAG_FAPPOBJECT=1,TYPEFLAG_FCANCREATE=2,TYPEFLAG_FLICENSED=4,
423 TYPEFLAG_FPREDECLID=8,TYPEFLAG_FHIDDEN=16,TYPEFLAG_FCONTROL=32,
424 TYPEFLAG_FDUAL=64,TYPEFLAG_FNONEXTENSIBLE=128,
425 TYPEFLAG_FOLEAUTOMATION=256,TYPEFLAG_FRESTRICTED=512,
426 TYPEFLAG_FAGGREGATABLE=1024,TYPEFLAG_FREPLACEABLE=2048,
427 TYPEFLAG_FDISPATCHABLE=4096,TYPEFLAG_FREVERSEBIND=8192
428 } TYPEFLAGS;
429 typedef enum tagFUNCFLAGS {
430 FUNCFLAG_FRESTRICTED=1,FUNCFLAG_FSOURCE=2,FUNCFLAG_FBINDABLE=4,
431 FUNCFLAG_FREQUESTEDIT=8,FUNCFLAG_FDISPLAYBIND=16,FUNCFLAG_FDEFAULTBIND=32,
432 FUNCFLAG_FHIDDEN=64,FUNCFLAG_FUSESGETLASTERROR=128,FUNCFLAG_FDEFAULTCOLLELEM=256,
433 FUNCFLAG_FUIDEFAULT=512,FUNCFLAG_FNONBROWSABLE=1024,FUNCFLAG_FREPLACEABLE=2048,
434 FUNCFLAG_FIMMEDIATEBIND=4096
435 } FUNCFLAGS;
436 typedef enum tagVARFLAGS {
437 VARFLAG_FREADONLY=1,VARFLAG_FSOURCE=2,VARFLAG_FBINDABLE=4,VARFLAG_FREQUESTEDIT=8,
438 VARFLAG_FDISPLAYBIND=16,VARFLAG_FDEFAULTBIND=32,VARFLAG_FHIDDEN=64,VARFLAG_FRESTRICTED=128,
439 VARFLAG_FDEFAULTCOLLELEM=256,VARFLAG_FUIDEFAULT=512,VARFLAG_FNONBROWSABLE=1024,
440 VARFLAG_FREPLACEABLE=2048,VARFLAG_FIMMEDIATEBIND=4096
441 } VARFLAGS;
442 typedef struct tagCLEANLOCALSTORAGE {
443 IUnknown *pInterface;
444 PVOID pStorage;
445 DWORD flags;
446 } CLEANLOCALSTORAGE;
447 typedef struct tagCUSTDATAITEM {
448 GUID guid;
449 VARIANTARG varValue;
450 } CUSTDATAITEM,*LPCUSTDATAITEM;
451 typedef struct tagCUSTDATA {
452 DWORD cCustData;
453 LPCUSTDATAITEM prgCustData;
454 } CUSTDATA,*LPCUSTDATA;
456 typedef enum tagDESCKIND {
457 DESCKIND_NONE=0,DESCKIND_FUNCDESC=DESCKIND_NONE+1,
458 DESCKIND_VARDESC=DESCKIND_FUNCDESC+1,DESCKIND_TYPECOMP=DESCKIND_VARDESC+1,
459 DESCKIND_IMPLICITAPPOBJ=DESCKIND_TYPECOMP+1,
460 DESCKIND_MAX=DESCKIND_IMPLICITAPPOBJ+1
461 } DESCKIND;
463 typedef union tagBINDPTR {
464 LPFUNCDESC lpfuncdesc;
465 LPVARDESC lpvardesc;
466 LPTYPECOMP lptcomp;
467 } BINDPTR,*LPBINDPTR;
469 #define INTERFACE IDispatch
470 DECLARE_INTERFACE_(IDispatch,IUnknown)
472 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
473 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
474 STDMETHOD_(ULONG,Release)(THIS) PURE;
475 STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
476 STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
477 STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
478 STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
480 #undef INTERFACE
482 #ifdef COBJMACROS
483 #define IDispatch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
484 #define IDispatch_AddRef(p) (p)->lpVtbl->AddRef(p)
485 #define IDispatch_Release(p) (p)->lpVtbl->Release(p)
486 #define IDispatch_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
487 #define IDispatch_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
488 #define IDispatch_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
489 #define IDispatch_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
490 #endif
492 #define INTERFACE IEnumVARIANT
493 DECLARE_INTERFACE_(IEnumVARIANT,IUnknown)
495 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
496 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
497 STDMETHOD_(ULONG,Release)(THIS) PURE;
498 STDMETHOD(Next)(THIS_ ULONG,VARIANT*,ULONG*) PURE;
499 STDMETHOD(Skip)(THIS_ ULONG) PURE;
500 STDMETHOD(Reset)(THIS) PURE;
501 STDMETHOD(Clone)(THIS_ IEnumVARIANT**) PURE;
503 #undef INTERFACE
505 #define INTERFACE ITypeComp
506 DECLARE_INTERFACE_(ITypeComp,IUnknown)
508 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
509 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
510 STDMETHOD_(ULONG,Release)(THIS) PURE;
511 STDMETHOD(Bind)(THIS_ LPOLESTR,ULONG,WORD,LPTYPEINFO*,DESCKIND*,LPBINDPTR) PURE;
512 STDMETHOD(BindType)(THIS_ LPOLESTR,ULONG,LPTYPEINFO*,LPTYPECOMP*) PURE;
514 #undef INTERFACE
516 #define INTERFACE ITypeInfo
517 DECLARE_INTERFACE_(ITypeInfo,IUnknown)
519 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
520 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
521 STDMETHOD_(ULONG,Release)(THIS) PURE;
522 STDMETHOD(GetTypeAttr)(THIS_ LPTYPEATTR*) PURE;
523 STDMETHOD(GetTypeComp)(THIS_ LPTYPECOMP*) PURE;
524 STDMETHOD(GetFuncDesc)(THIS_ UINT,LPFUNCDESC*) PURE;
525 STDMETHOD(GetVarDesc)(THIS_ UINT,LPVARDESC*) PURE;
526 STDMETHOD(GetNames)(THIS_ MEMBERID,BSTR*,UINT,UINT*) PURE;
527 STDMETHOD(GetRefTypeOfImplType)(THIS_ UINT,HREFTYPE*) PURE;
528 STDMETHOD(GetImplTypeFlags)(THIS_ UINT,INT*) PURE;
529 STDMETHOD(GetIDsOfNames)(THIS_ LPOLESTR*,UINT,MEMBERID*) PURE;
530 STDMETHOD(Invoke)(THIS_ PVOID,MEMBERID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
531 STDMETHOD(GetDocumentation)(THIS_ MEMBERID,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
532 STDMETHOD(GetDllEntry)(THIS_ MEMBERID,INVOKEKIND,BSTR*,BSTR*,WORD*) PURE;
533 STDMETHOD(GetRefTypeInfo)(THIS_ HREFTYPE,LPTYPEINFO*) PURE;
534 STDMETHOD(AddressOfMember)(THIS_ MEMBERID,INVOKEKIND,PVOID*) PURE;
535 STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
536 STDMETHOD(GetMops)(THIS_ MEMBERID,BSTR*) PURE;
537 STDMETHOD(GetContainingTypeLib)(THIS_ LPTYPELIB*,UINT*) PURE;
538 STDMETHOD_(void,ReleaseTypeAttr)(THIS_ LPTYPEATTR) PURE;
539 STDMETHOD_(void,ReleaseFuncDesc)(THIS_ LPFUNCDESC) PURE;
540 STDMETHOD_(void,ReleaseVarDesc)(THIS_ LPVARDESC) PURE;
542 #undef INTERFACE
544 #ifdef COBJMACROS
545 #define ITypeInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
546 #define ITypeInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
547 #define ITypeInfo_Release(p) (p)->lpVtbl->Release(p)
548 #define ITypeInfo_GetTypeAttr(p,a) (p)->lpVtbl->GetTypeAttr(p,a)
549 #define ITypeInfo_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
550 #define ITypeInfo_GetFuncDesc(p,a,b) (p)->lpVtbl->GetFuncDesc(p,a,b)
551 #define ITypeInfo_GetVarDesc(p,a,b) (p)->lpVtbl->GetVarDesc(p,a,b)
552 #define ITypeInfo_GetNames(p,a,b,c,d) (p)->lpVtbl->GetNames(p,a,b,c,d)
553 #define ITypeInfo_GetRefTypeOfImplType(p,a,b) (p)->lpVtbl->GetRefTypeOfImplType(p,a,b)
554 #define ITypeInfo_GetImplTypeFlags(p,a,b) (p)->lpVtbl->GetImplTypeFlags(p,a,b)
555 #define ITypeInfo_GetIDsOfNames(p,a,b,c) (p)->lpVtbl->GetIDsOfNames(p,a,b,c)
556 #define ITypeInfo_Invoke(p,a,b,c,d,e,f,g) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g)
557 #define ITypeInfo_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
558 #define ITypeInfo_GetDllEntry(p,a,b,c,d,e) (p)->lpVtbl->GetDllEntry(p,a,b,c,d,e)
559 #define ITypeInfo_GetRefTypeInfo(p,a,b) (p)->lpVtbl->GetRefTypeInfo(p,a,b)
560 #define ITypeInfo_AddressOfMember(p,a,b,c) (p)->lpVtbl->AddressOfMember(p,a,b,c)
561 #define ITypeInfo_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
562 #define ITypeInfo_GetMops(p,a,b) (p)->lpVtbl->GetMops(p,a,b)
563 #define ITypeInfo_GetContainingTypeLib(p,a,b) (p)->lpVtbl->GetContainingTypeLib(p,a,b)
564 #define ITypeInfo_ReleaseTypeAttr(p,a) (p)->lpVtbl->ReleaseTypeAttr(p,a)
565 #define ITypeInfo_ReleaseFuncDesc(p,a) (p)->lpVtbl->ReleaseFuncDesc(p,a)
566 #define ITypeInfo_ReleaseVarDesc(p,a) (p)->lpVtbl->ReleaseVarDesc(p,a)
567 #endif
569 #define INTERFACE ITypeInfo2
570 DECLARE_INTERFACE_(ITypeInfo2,ITypeInfo)
572 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
573 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
574 STDMETHOD_(ULONG,Release)(THIS) PURE;
575 STDMETHOD(GetTypeAttr)(THIS_ LPTYPEATTR*) PURE;
576 STDMETHOD(GetTypeComp)(THIS_ LPTYPECOMP*) PURE;
577 STDMETHOD(GetFuncDesc)(THIS_ UINT,LPFUNCDESC*) PURE;
578 STDMETHOD(GetVarDesc)(THIS_ UINT,LPVARDESC*) PURE;
579 STDMETHOD(GetNames)(THIS_ MEMBERID,BSTR*,UINT,UINT*) PURE;
580 STDMETHOD(GetRefTypeOfImplType)(THIS_ UINT,HREFTYPE*) PURE;
581 STDMETHOD(GetImplTypeFlags)(THIS_ UINT,INT*) PURE;
582 STDMETHOD(GetIDsOfNames)(THIS_ LPOLESTR*,UINT,MEMBERID*) PURE;
583 STDMETHOD(Invoke)(THIS_ PVOID,MEMBERID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
584 STDMETHOD(GetDocumentation)(THIS_ MEMBERID,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
585 STDMETHOD(GetDllEntry)(THIS_ MEMBERID,INVOKEKIND,BSTR*,BSTR*,WORD*) PURE;
586 STDMETHOD(GetRefTypeInfo)(THIS_ HREFTYPE,LPTYPEINFO*) PURE;
587 STDMETHOD(AddressOfMember)(THIS_ MEMBERID,INVOKEKIND,PVOID*) PURE;
588 STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
589 STDMETHOD(GetMops)(THIS_ MEMBERID,BSTR*) PURE;
590 STDMETHOD(GetContainingTypeLib)(THIS_ LPTYPELIB*,UINT*) PURE;
591 STDMETHOD_(void,ReleaseTypeAttr)(THIS_ LPTYPEATTR) PURE;
592 STDMETHOD_(void,ReleaseFuncDesc)(THIS_ LPFUNCDESC) PURE;
593 STDMETHOD_(void,ReleaseVarDesc)(THIS_ LPVARDESC) PURE;
594 STDMETHOD(GetTypeKind)(THIS_ TYPEKIND*) PURE;
595 STDMETHOD(GetTypeFlags)(THIS_ ULONG*) PURE;
596 STDMETHOD(GetFuncIndexOfMemId)(THIS_ MEMBERID,INVOKEKIND,UINT*) PURE;
597 STDMETHOD(GetVarIndexOfMemId)(THIS_ MEMBERID,UINT*) PURE;
598 STDMETHOD(GetCustData)(THIS_ REFGUID,VARIANT*) PURE;
599 STDMETHOD(GetFuncCustData)(THIS_ UINT,REFGUID,VARIANT*) PURE;
600 STDMETHOD(GetParamCustData)(THIS_ UINT,UINT,REFGUID,VARIANT*) PURE;
601 STDMETHOD(GetVarCustData)(THIS_ UINT,REFGUID,VARIANT*) PURE;
602 STDMETHOD(GetImplTypeCustData)(THIS_ UINT,REFGUID,VARIANT*) PURE;
603 STDMETHOD(GetDocumentation2)(THIS_ MEMBERID,LCID,BSTR*,DWORD*,BSTR*) PURE;
604 STDMETHOD(GetAllCustData)(THIS_ CUSTDATA*) PURE;
605 STDMETHOD(GetAllFuncCustData)(THIS_ UINT,CUSTDATA*) PURE;
606 STDMETHOD(GetAllParamCustData)(THIS_ UINT,UINT,CUSTDATA*) PURE;
607 STDMETHOD(GetAllVarCustData)(THIS_ UINT,CUSTDATA*) PURE;
608 STDMETHOD(GetAllImplTypeCustData)(THIS_ UINT,CUSTDATA*) PURE;
610 #undef INTERFACE
612 #define INTERFACE ITypeLib
613 DECLARE_INTERFACE_(ITypeLib,IUnknown)
615 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
616 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
617 STDMETHOD_(ULONG,Release)(THIS) PURE;
618 STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE;
619 STDMETHOD(GetTypeInfo)(THIS_ UINT,ITypeInfo**) PURE;
620 STDMETHOD(GetTypeInfoType)(THIS_ UINT,TYPEKIND*) PURE;
621 STDMETHOD(GetTypeInfoOfGuid)(THIS_ REFGUID,ITypeInfo**) PURE;
622 STDMETHOD(GetLibAttr)(THIS_ TLIBATTR**) PURE;
623 STDMETHOD(GetTypeComp)(THIS_ ITypeComp*) PURE;
624 STDMETHOD(GetDocumentation)(THIS_ INT,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
625 STDMETHOD(IsName)(THIS_ LPOLESTR,ULONG,BOOL*) PURE;
626 STDMETHOD(FindName)(THIS_ LPOLESTR,ULONG,ITypeInfo**,MEMBERID*,USHORT*) PURE;
627 STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR*) PURE;
629 #undef INTERFACE
631 #define INTERFACE ITypeLib2
632 DECLARE_INTERFACE_(ITypeLib2,ITypeLib)
634 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
635 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
636 STDMETHOD_(ULONG,Release)(THIS) PURE;
637 STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE;
638 STDMETHOD(GetTypeInfo)(THIS_ UINT,ITypeInfo**) PURE;
639 STDMETHOD(GetTypeInfoType)(THIS_ UINT,TYPEKIND*) PURE;
640 STDMETHOD(GetTypeInfoOfGuid)(THIS_ REFGUID,ITypeInfo**) PURE;
641 STDMETHOD(GetLibAttr)(THIS_ TLIBATTR**) PURE;
642 STDMETHOD(GetTypeComp)(THIS_ ITypeComp*) PURE;
643 STDMETHOD(GetDocumentation)(THIS_ INT,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
644 STDMETHOD(IsName)(THIS_ LPOLESTR,ULONG,BOOL*) PURE;
645 STDMETHOD(FindName)(THIS_ LPOLESTR,ULONG,ITypeInfo**,MEMBERID*,USHORT*) PURE;
646 STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR*) PURE;
647 STDMETHOD(GetCustData)(THIS_ REFGUID,VARIANT*) PURE;
648 STDMETHOD(GetLibStatistics)(THIS_ ULONG*,ULONG*) PURE;
649 STDMETHOD(GetDocumentation2)(THIS_ INT,LCID,BSTR*,DWORD*,BSTR*) PURE;
650 STDMETHOD(GetAllCustData)(THIS_ CUSTDATA*) PURE;
652 #undef INTERFACE
654 EXTERN_C const IID IID_IErrorInfo;
655 #define INTERFACE IErrorInfo
656 DECLARE_INTERFACE_(IErrorInfo, IUnknown)
658 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
659 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
660 STDMETHOD_(ULONG,Release)(THIS) PURE;
661 STDMETHOD(GetGUID)(THIS_ GUID*) PURE;
662 STDMETHOD(GetSource)(THIS_ BSTR*) PURE;
663 STDMETHOD(GetDescription)(THIS_ BSTR*) PURE;
664 STDMETHOD(GetHelpFile)(THIS_ BSTR*) PURE;
665 STDMETHOD(GetHelpContext)(THIS_ DWORD*) PURE;
667 #undef INTERFACE
669 #ifdef COBJMACROS
670 #define IErrorInfo_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
671 #define IErrorInfo_AddRef(T) (T)->lpVtbl->AddRef(T)
672 #define IErrorInfo_Release(T) (T)->lpVtbl->Release(T)
673 #define IErrorInfo_GetGUID(T,a) (T)->lpVtbl->GetGUID(T,a)
674 #define IErrorInfo_GetSource(T,a) (T)->lpVtbl->GetSource(T,a)
675 #define IErrorInfo_GetDescription(T,a) (T)->lpVtbl->GetDescription(T,a)
676 #define IErrorInfo_GetHelpFile(T,a) (T)->lpVtbl->GetHelpFile(T,a)
677 #define IErrorInfo_GetHelpContext(T,a) (T)->lpVtbl->GetHelpContext(T,a)
678 #endif
680 EXTERN_C const IID IID_ICreateErrorInfo;
681 #define INTERFACE ICreateErrorInfo
682 DECLARE_INTERFACE_(ICreateErrorInfo, IUnknown)
684 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*)PURE;
685 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
686 STDMETHOD_(ULONG,Release)(THIS) PURE;
687 STDMETHOD(SetGUID)(THIS_ REFGUID) PURE;
688 STDMETHOD(SetSource)(THIS_ LPOLESTR) PURE;
689 STDMETHOD(SetDescription)(THIS_ LPOLESTR) PURE;
690 STDMETHOD(SetHelpFile)(THIS_ LPOLESTR) PURE;
691 STDMETHOD(SetHelpContext)(THIS_ DWORD) PURE;
693 #undef INTERFACE
695 EXTERN_C const IID IID_ISupportErrorInfo;
696 #define INTERFACE ISupportErrorInfo
697 DECLARE_INTERFACE_(ISupportErrorInfo, IUnknown)
699 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
700 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
701 STDMETHOD_(ULONG,Release)(THIS) PURE;
702 STDMETHOD(InterfaceSupportsErrorInfo)(THIS_ REFIID) PURE;
704 #undef INTERFACE
706 EXTERN_C const IID IID_IRecordInfo;
707 #define INTERFACE IRecordInfo
708 DECLARE_INTERFACE_(IRecordInfo, IUnknown)
710 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
711 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
712 STDMETHOD_(ULONG,Release)(THIS) PURE;
713 STDMETHOD(RecordInit)(THIS_ PVOID) PURE;
714 STDMETHOD(RecordClear)(THIS_ PVOID) PURE;
715 STDMETHOD(RecordCopy)(THIS_ PVOID, PVOID) PURE;
716 STDMETHOD(GetGuid)(THIS_ GUID*) PURE;
717 STDMETHOD(GetName)(THIS_ BSTR*) PURE;
718 STDMETHOD(GetSize)(THIS_ ULONG*) PURE;
719 STDMETHOD(GetTypeInfo)(THIS_ ITypeInfo**) PURE;
720 STDMETHOD(GetField)(THIS_ PVOID,LPCOLESTR,VARIANT*) PURE;
721 STDMETHOD(GetFieldNoCopy)(THIS_ PVOID,LPCOLESTR,VARIANT*,PVOID*) PURE;
722 STDMETHOD(PutField )(THIS_ ULONG,PVOID,LPCOLESTR, VARIANT*) PURE;
723 STDMETHOD(PutFieldNoCopy)(THIS_ ULONG,PVOID,LPCOLESTR,VARIANT*) PURE;
724 STDMETHOD(GetFieldNames)(THIS_ ULONG*,BSTR*) PURE;
725 STDMETHOD_(BOOL,IsMatchingType)(THIS_ THIS) PURE;
726 STDMETHOD_(PVOID,RecordCreate)(THIS) PURE;
727 STDMETHOD(RecordCreateCopy)(THIS_ PVOID,PVOID*) PURE;
728 STDMETHOD(RecordDestroy )(THIS_ PVOID) PURE;
730 #undef INTERFACE
732 #ifdef COBJMACROS
733 #define IRecordInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
734 #define IRecordInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
735 #define IRecordInfo_Release(p) (p)->lpVtbl->Release(p)
736 #define IRecordInfo_RecordInit(p,a) (p)->lpVtbl->RecordInit(p,a)
737 #define IRecordInfo_RecordClear(p,a) (p)->lpVtbl->RecordClear(p,a)
738 #define IRecordInfo_RecordCopy(p,a,b) (p)->lpVtbl->RecordCopy(p,a,b)
739 #define IRecordInfo_GetGuid(p,a) (p)->lpVtbl->GetGuid(p,a)
740 #define IRecordInfo_GetName(p,a) (p)->lpVtbl->GetName(p,a)
741 #define IRecordInfo_GetSize(p,a) (p)->lpVtbl->GetSize(p,a)
742 #define IRecordInfo_GetTypeInfo(p,a) (p)->lpVtbl->GetTypeInfo(p,a)
743 #define IRecordInfo_GetField(p,a,b,c) (p)->lpVtbl->GetField(p,a,b,c)
744 #define IRecordInfo_GetFieldNoCopy(p,a,b,c,d) (p)->lpVtbl->GetFieldNoCopy(p,a,b,c,d)
745 #define IRecordInfo_PutField(p,a,b,c,d) (p)->lpVtbl->PutField(p,a,b,c,d)
746 #define IRecordInfo_PutFieldNoCopy(p,a,b,c,d) (p)->lpVtbl->PutFieldNoCopy(p,a,b,c,d)
747 #define IRecordInfo_GetFieldNames(p,a,b) (p)->lpVtbl->GetFieldNames(p,a,b)
748 #define IRecordInfo_IsMatchingType(p,a) (p)->lpVtbl->IsMatchingType(p,a)
749 #define IRecordInfo_RecordCreate(p) (p)->lpVtbl->RecordCreate(p)
750 #define IRecordInfo_RecordCreateCopy(p,a,b) (p)->lpVtbl->RecordCreateCopy(p,a,b)
751 #define IRecordInfo_RecordDestroy(p,a) (p)->lpVtbl->RecordDestroy(p,a)
752 #endif
754 EXTERN_C const IID IID_ITypeMarshal;
755 #define INTERFACE ITypeMarshal
756 DECLARE_INTERFACE_(ITypeMarshal, IUnknown)
758 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
759 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
760 STDMETHOD_(ULONG,Release)(THIS) PURE;
761 STDMETHOD(Size)(THIS_ PVOID,DWORD,PVOID,ULONG*) PURE;
762 STDMETHOD(Marshal)(THIS_ PVOID,DWORD,PVOID,ULONG,BYTE*,ULONG*) PURE;
763 STDMETHOD(Unmarshal)(THIS_ PVOID,DWORD,ULONG,BYTE*,ULONG*) PURE;
764 STDMETHOD(Free)(THIS_ PVOID) PURE;
766 #undef INTERFACE
768 #ifdef __cplusplus
770 #endif
771 #endif