source: vendor/w32api/current/include/oaidl.h

Last change on this file was 2720, checked in by bird, 19 years ago

w32api v3.6

File size: 24.9 KB
Line 
1#ifndef _OAIDL_H
2#define _OAIDL_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "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
60
61typedef interface ITypeLib *LPTYPELIB;
62typedef interface ITypeLib2 *LPTYPELIB2;
63typedef interface ICreateTypeInfo *LPCREATETYPEINFO;
64typedef interface ICreateTypeInfo2 *LPCREATETYPEINFO2;
65typedef interface ICreateTypeLib *LPCREATETYPELIB;
66typedef interface ICreateTypeLib2 *LPCREATETYPELIB2;
67typedef interface ITypeComp *LPTYPECOMP;
68typedef interface ITypeInfo *LPTYPEINFO;
69typedef interface ITypeInfo2 *LPTYPEINFO2;
70typedef interface IErrorInfo *LPERRORINFO;
71typedef interface IDispatch *LPDISPATCH;
72typedef interface IEnumVARIANT *LPENUMVARIANT;
73typedef interface ICreateErrorInfo *LPCREATEERRORINFO;
74typedef interface ISupportErrorInfo *LPSUPPORTERRORINFO;
75typedef interface IRecordInfo *LPRECORDINFO;
76
77extern const IID IID_ITypeLib;
78extern const IID IID_ITypeLib2;
79extern const IID IID_ICreateTypeInfo;
80extern const IID IID_ICreateTypeInfo2;
81extern const IID IID_ICreateTypeLib;
82extern const IID IID_ICreateTypeLib2;
83extern const IID IID_ITypeInfo;
84extern const IID IID_ITypeInfo2;
85extern const IID IID_IErrorInfo;
86extern const IID IID_IDispatch;
87extern const IID IID_IEnumVARIANT;
88extern const IID IID_ICreateErrorInfo;
89extern const IID IID_ISupportErrorInfo;
90extern const IID IID_IRecordInfo;
91extern const IID IID_ITypeMarshal;
92
93typedef enum tagSYSKIND {
94 SYS_WIN16,SYS_WIN32,SYS_MAC
95} SYSKIND;
96typedef enum tagLIBFLAGS {
97 LIBFLAG_FRESTRICTED=1,LIBFLAG_FCONTROL=2,LIBFLAG_FHIDDEN=4,
98 LIBFLAG_FHASDISKIMAGE=8
99} LIBFLAGS;
100typedef struct tagTLIBATTR {
101 GUID guid;
102 LCID lcid;
103 SYSKIND syskind;
104 WORD wMajorVerNum;
105 WORD wMinorVerNum;
106 WORD wLibFlags;
107} TLIBATTR,*LPTLIBATTR;
108typedef CY CURRENCY;
109typedef struct tagSAFEARRAYBOUND {
110 ULONG cElements;
111 LONG lLbound;
112}SAFEARRAYBOUND,*LPSAFEARRAYBOUND;
113typedef struct _wireSAFEARR_BSTR
114{
115 ULONG Size;
116 wireBSTR *aBstr;
117}SAFEARR_BSTR;
118typedef struct _wireSAFEARR_UNKNOWN {
119 ULONG Size;
120 IUnknown **apUnknown;
121}SAFEARR_UNKNOWN;
122typedef struct _wireSAFEARR_DISPATCH {
123 ULONG Size;
124 LPDISPATCH *apDispatch;
125}SAFEARR_DISPATCH;
126typedef struct _wireSAFEARR_VARIANT {
127 ULONG Size;
128 struct _wireVARIANT *aVariant;
129}SAFEARR_VARIANT;
130typedef 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;
141typedef struct _wireBRECORD {
142 ULONG fFlags;
143 ULONG clSize;
144 LPRECORDINFO* pRecInfo;
145 byte* pRecord;
146} *wireBRECORD;
147typedef struct _wireSAFEARR_BRECORD {
148 ULONG Size;
149 wireBRECORD* aRecord;
150 } SAFEARR_BRECORD;
151typedef struct _wireSAFEARR_HAVEIID {
152 ULONG Size;
153 IUnknown** apUnknown;
154 IID iid;
155 } SAFEARR_HAVEIID;
156typedef 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;
169 }u;
170}SAFEARRAYUNION;
171typedef struct _wireSAFEARRAY {
172 USHORT cDims;
173 USHORT fFeatures;
174 ULONG cbElements;
175 ULONG cLocks;
176 SAFEARRAYUNION uArrayStructs;
177 SAFEARRAYBOUND rgsabound[1];
178}*wireSAFEARRAY;
179typedef wireSAFEARRAY *wirePSAFEARRAY;
180typedef 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
191typedef 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;
250typedef VARIANT VARIANTARG;
251typedef VARIANT *LPVARIANTARG;
252typedef 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;
304typedef LONG DISPID;
305typedef DISPID MEMBERID;
306typedef DWORD HREFTYPE;
307typedef enum tagTYPEKIND {
308 TKIND_ENUM,TKIND_RECORD,TKIND_MODULE,TKIND_INTERFACE,TKIND_DISPATCH,
309 TKIND_COCLASS,TKIND_ALIAS,TKIND_UNION,TKIND_MAX
310}TYPEKIND;
311typedef struct tagTYPEDESC {
312 _ANONYMOUS_UNION union {
313 struct tagTYPEDESC *lptdesc;
314 struct tagARRAYDESC *lpadesc;
315 HREFTYPE hreftype;
316 } DUMMYUNIONNAME;
317 VARTYPE vt;
318}TYPEDESC;
319typedef struct tagARRAYDESC {
320 TYPEDESC tdescElem;
321 USHORT cDims;
322 SAFEARRAYBOUND rgbounds[1];
323}ARRAYDESC;
324typedef struct tagPARAMDESCEX {
325 ULONG cBytes;
326 VARIANTARG varDefaultValue;
327}PARAMDESCEX,*LPPARAMDESCEX;
328typedef struct tagPARAMDESC {
329 LPPARAMDESCEX pparamdescex;
330 USHORT wParamFlags;
331}PARAMDESC,*LPPARAMDESC;
332typedef struct tagIDLDESC {
333 ULONG dwReserved;
334 USHORT wIDLFlags;
335}IDLDESC,*LPIDLDESC;
336typedef struct tagELEMDESC {
337 TYPEDESC tdesc;
338 _ANONYMOUS_UNION union {
339 IDLDESC idldesc;
340 PARAMDESC paramdesc;
341 } DUMMYUNIONNAME;
342} ELEMDESC,*LPELEMDESC;
343typedef 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;
363typedef struct tagDISPPARAMS {
364 VARIANTARG *rgvarg;
365 DISPID *rgdispidNamedArgs;
366 UINT cArgs;
367 UINT cNamedArgs;
368}DISPPARAMS;
369typedef 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;
380typedef 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;
385typedef enum tagFUNCKIND {
386 FUNC_VIRTUAL,FUNC_PUREVIRTUAL,FUNC_NONVIRTUAL,
387 FUNC_STATIC,FUNC_DISPATCH
388}FUNCKIND;
389typedef enum tagINVOKEKIND {
390 INVOKE_FUNC=1,INVOKE_PROPERTYGET,INVOKE_PROPERTYPUT=4,
391 INVOKE_PROPERTYPUTREF=8
392}INVOKEKIND;
393typedef 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;
407typedef enum tagVARKIND {
408 VAR_PERINSTANCE,VAR_STATIC,VAR_CONST,VAR_DISPATCH
409} VARKIND;
410typedef 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;
421typedef 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;
429typedef 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;
436typedef 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;
442typedef struct tagCLEANLOCALSTORAGE {
443 IUnknown *pInterface;
444 PVOID pStorage;
445 DWORD flags;
446} CLEANLOCALSTORAGE;
447typedef struct tagCUSTDATAITEM {
448 GUID guid;
449 VARIANTARG varValue;
450} CUSTDATAITEM,*LPCUSTDATAITEM;
451typedef struct tagCUSTDATA {
452 DWORD cCustData;
453 LPCUSTDATAITEM prgCustData;
454} CUSTDATA,*LPCUSTDATA;
455
456typedef 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;
462
463typedef union tagBINDPTR {
464 LPFUNCDESC lpfuncdesc;
465 LPVARDESC lpvardesc;
466 LPTYPECOMP lptcomp;
467} BINDPTR,*LPBINDPTR;
468
469#undef INTERFACE
470#define INTERFACE IDispatch
471DECLARE_INTERFACE_(IDispatch,IUnknown)
472{
473 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
474 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
475 STDMETHOD_(ULONG,Release)(THIS) PURE;
476 STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
477 STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
478 STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
479 STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
480};
481
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
491
492#undef INTERFACE
493#define INTERFACE IEnumVARIANT
494DECLARE_INTERFACE_(IEnumVARIANT,IUnknown)
495{
496 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
497 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
498 STDMETHOD_(ULONG,Release)(THIS) PURE;
499 STDMETHOD(Next)(THIS_ ULONG,VARIANT*,ULONG*) PURE;
500 STDMETHOD(Skip)(THIS_ ULONG) PURE;
501 STDMETHOD(Reset)(THIS) PURE;
502 STDMETHOD(Clone)(THIS_ IEnumVARIANT**) PURE;
503};
504
505#undef INTERFACE
506#define INTERFACE ITypeComp
507DECLARE_INTERFACE_(ITypeComp,IUnknown)
508{
509 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
510 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
511 STDMETHOD_(ULONG,Release)(THIS) PURE;
512 STDMETHOD(Bind)(THIS_ LPOLESTR,ULONG,WORD,LPTYPEINFO*,DESCKIND*,LPBINDPTR) PURE;
513 STDMETHOD(BindType)(THIS_ LPOLESTR,ULONG,LPTYPEINFO*,LPTYPECOMP*) PURE;
514};
515
516#undef INTERFACE
517#define INTERFACE ITypeInfo
518DECLARE_INTERFACE_(ITypeInfo,IUnknown)
519{
520 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
521 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
522 STDMETHOD_(ULONG,Release)(THIS) PURE;
523 STDMETHOD(GetTypeAttr)(THIS_ LPTYPEATTR*) PURE;
524 STDMETHOD(GetTypeComp)(THIS_ LPTYPECOMP*) PURE;
525 STDMETHOD(GetFuncDesc)(THIS_ UINT,LPFUNCDESC*) PURE;
526 STDMETHOD(GetVarDesc)(THIS_ UINT,LPVARDESC*) PURE;
527 STDMETHOD(GetNames)(THIS_ MEMBERID,BSTR*,UINT,UINT*) PURE;
528 STDMETHOD(GetRefTypeOfImplType)(THIS_ UINT,HREFTYPE*) PURE;
529 STDMETHOD(GetImplTypeFlags)(THIS_ UINT,INT*) PURE;
530 STDMETHOD(GetIDsOfNames)(THIS_ LPOLESTR*,UINT,MEMBERID*) PURE;
531 STDMETHOD(Invoke)(THIS_ PVOID,MEMBERID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
532 STDMETHOD(GetDocumentation)(THIS_ MEMBERID,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
533 STDMETHOD(GetDllEntry)(THIS_ MEMBERID,INVOKEKIND,BSTR*,BSTR*,WORD*) PURE;
534 STDMETHOD(GetRefTypeInfo)(THIS_ HREFTYPE,LPTYPEINFO*) PURE;
535 STDMETHOD(AddressOfMember)(THIS_ MEMBERID,INVOKEKIND,PVOID*) PURE;
536 STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
537 STDMETHOD(GetMops)(THIS_ MEMBERID,BSTR*) PURE;
538 STDMETHOD(GetContainingTypeLib)(THIS_ LPTYPELIB*,UINT*) PURE;
539 STDMETHOD_(void,ReleaseTypeAttr)(THIS_ LPTYPEATTR) PURE;
540 STDMETHOD_(void,ReleaseFuncDesc)(THIS_ LPFUNCDESC) PURE;
541 STDMETHOD_(void,ReleaseVarDesc)(THIS_ LPVARDESC) PURE;
542};
543
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
568
569#undef INTERFACE
570#define INTERFACE ITypeInfo2
571DECLARE_INTERFACE_(ITypeInfo2,ITypeInfo)
572{
573 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
574 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
575 STDMETHOD_(ULONG,Release)(THIS) PURE;
576 STDMETHOD(GetTypeAttr)(THIS_ LPTYPEATTR*) PURE;
577 STDMETHOD(GetTypeComp)(THIS_ LPTYPECOMP*) PURE;
578 STDMETHOD(GetFuncDesc)(THIS_ UINT,LPFUNCDESC*) PURE;
579 STDMETHOD(GetVarDesc)(THIS_ UINT,LPVARDESC*) PURE;
580 STDMETHOD(GetNames)(THIS_ MEMBERID,BSTR*,UINT,UINT*) PURE;
581 STDMETHOD(GetRefTypeOfImplType)(THIS_ UINT,HREFTYPE*) PURE;
582 STDMETHOD(GetImplTypeFlags)(THIS_ UINT,INT*) PURE;
583 STDMETHOD(GetIDsOfNames)(THIS_ LPOLESTR*,UINT,MEMBERID*) PURE;
584 STDMETHOD(Invoke)(THIS_ PVOID,MEMBERID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
585 STDMETHOD(GetDocumentation)(THIS_ MEMBERID,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
586 STDMETHOD(GetDllEntry)(THIS_ MEMBERID,INVOKEKIND,BSTR*,BSTR*,WORD*) PURE;
587 STDMETHOD(GetRefTypeInfo)(THIS_ HREFTYPE,LPTYPEINFO*) PURE;
588 STDMETHOD(AddressOfMember)(THIS_ MEMBERID,INVOKEKIND,PVOID*) PURE;
589 STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
590 STDMETHOD(GetMops)(THIS_ MEMBERID,BSTR*) PURE;
591 STDMETHOD(GetContainingTypeLib)(THIS_ LPTYPELIB*,UINT*) PURE;
592 STDMETHOD_(void,ReleaseTypeAttr)(THIS_ LPTYPEATTR) PURE;
593 STDMETHOD_(void,ReleaseFuncDesc)(THIS_ LPFUNCDESC) PURE;
594 STDMETHOD_(void,ReleaseVarDesc)(THIS_ LPVARDESC) PURE;
595 STDMETHOD(GetTypeKind)(THIS_ TYPEKIND*) PURE;
596 STDMETHOD(GetTypeFlags)(THIS_ ULONG*) PURE;
597 STDMETHOD(GetFuncIndexOfMemId)(THIS_ MEMBERID,INVOKEKIND,UINT*) PURE;
598 STDMETHOD(GetVarIndexOfMemId)(THIS_ MEMBERID,UINT*) PURE;
599 STDMETHOD(GetCustData)(THIS_ REFGUID,VARIANT*) PURE;
600 STDMETHOD(GetFuncCustData)(THIS_ UINT,REFGUID,VARIANT*) PURE;
601 STDMETHOD(GetParamCustData)(THIS_ UINT,UINT,REFGUID,VARIANT*) PURE;
602 STDMETHOD(GetVarCustData)(THIS_ UINT,REFGUID,VARIANT*) PURE;
603 STDMETHOD(GetImplTypeCustData)(THIS_ UINT,REFGUID,VARIANT*) PURE;
604 STDMETHOD(GetDocumentation2)(THIS_ MEMBERID,LCID,BSTR*,DWORD*,BSTR*) PURE;
605 STDMETHOD(GetAllCustData)(THIS_ CUSTDATA*) PURE;
606 STDMETHOD(GetAllFuncCustData)(THIS_ UINT,CUSTDATA*) PURE;
607 STDMETHOD(GetAllParamCustData)(THIS_ UINT,UINT,CUSTDATA*) PURE;
608 STDMETHOD(GetAllVarCustData)(THIS_ UINT,CUSTDATA*) PURE;
609 STDMETHOD(GetAllImplTypeCustData)(THIS_ UINT,CUSTDATA*) PURE;
610};
611
612#undef INTERFACE
613#define INTERFACE ITypeLib
614DECLARE_INTERFACE_(ITypeLib,IUnknown)
615{
616 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
617 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
618 STDMETHOD_(ULONG,Release)(THIS) PURE;
619 STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE;
620 STDMETHOD(GetTypeInfo)(THIS_ UINT,ITypeInfo**) PURE;
621 STDMETHOD(GetTypeInfoType)(THIS_ UINT,TYPEKIND*) PURE;
622 STDMETHOD(GetTypeInfoOfGuid)(THIS_ REFGUID,ITypeInfo**) PURE;
623 STDMETHOD(GetLibAttr)(THIS_ TLIBATTR**) PURE;
624 STDMETHOD(GetTypeComp)(THIS_ ITypeComp*) PURE;
625 STDMETHOD(GetDocumentation)(THIS_ INT,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
626 STDMETHOD(IsName)(THIS_ LPOLESTR,ULONG,BOOL*) PURE;
627 STDMETHOD(FindName)(THIS_ LPOLESTR,ULONG,ITypeInfo**,MEMBERID*,USHORT*) PURE;
628 STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR*) PURE;
629};
630
631#undef INTERFACE
632#define INTERFACE ITypeLib2
633DECLARE_INTERFACE_(ITypeLib2,ITypeLib)
634{
635 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
636 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
637 STDMETHOD_(ULONG,Release)(THIS) PURE;
638 STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE;
639 STDMETHOD(GetTypeInfo)(THIS_ UINT,ITypeInfo**) PURE;
640 STDMETHOD(GetTypeInfoType)(THIS_ UINT,TYPEKIND*) PURE;
641 STDMETHOD(GetTypeInfoOfGuid)(THIS_ REFGUID,ITypeInfo**) PURE;
642 STDMETHOD(GetLibAttr)(THIS_ TLIBATTR**) PURE;
643 STDMETHOD(GetTypeComp)(THIS_ ITypeComp*) PURE;
644 STDMETHOD(GetDocumentation)(THIS_ INT,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
645 STDMETHOD(IsName)(THIS_ LPOLESTR,ULONG,BOOL*) PURE;
646 STDMETHOD(FindName)(THIS_ LPOLESTR,ULONG,ITypeInfo**,MEMBERID*,USHORT*) PURE;
647 STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR*) PURE;
648 STDMETHOD(GetCustData)(THIS_ REFGUID,VARIANT*) PURE;
649 STDMETHOD(GetLibStatistics)(THIS_ ULONG*,ULONG*) PURE;
650 STDMETHOD(GetDocumentation2)(THIS_ INT,LCID,BSTR*,DWORD*,BSTR*) PURE;
651 STDMETHOD(GetAllCustData)(THIS_ CUSTDATA*) PURE;
652};
653
654EXTERN_C const IID IID_IErrorInfo;
655#undef INTERFACE
656#define INTERFACE IErrorInfo
657DECLARE_INTERFACE_(IErrorInfo, IUnknown)
658{
659 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
660 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
661 STDMETHOD_(ULONG,Release)(THIS) PURE;
662 STDMETHOD(GetGUID)(THIS_ GUID*) PURE;
663 STDMETHOD(GetSource)(THIS_ BSTR*) PURE;
664 STDMETHOD(GetDescription)(THIS_ BSTR*) PURE;
665 STDMETHOD(GetHelpFile)(THIS_ BSTR*) PURE;
666 STDMETHOD(GetHelpContext)(THIS_ DWORD*) PURE;
667};
668
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
679
680EXTERN_C const IID IID_ICreateErrorInfo;
681#undef INTERFACE
682#define INTERFACE ICreateErrorInfo
683DECLARE_INTERFACE_(ICreateErrorInfo, IUnknown)
684{
685 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*)PURE;
686 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
687 STDMETHOD_(ULONG,Release)(THIS) PURE;
688 STDMETHOD(SetGUID)(THIS_ REFGUID) PURE;
689 STDMETHOD(SetSource)(THIS_ LPOLESTR) PURE;
690 STDMETHOD(SetDescription)(THIS_ LPOLESTR) PURE;
691 STDMETHOD(SetHelpFile)(THIS_ LPOLESTR) PURE;
692 STDMETHOD(SetHelpContext)(THIS_ DWORD) PURE;
693};
694
695EXTERN_C const IID IID_ISupportErrorInfo;
696#undef INTERFACE
697#define INTERFACE ISupportErrorInfo
698DECLARE_INTERFACE_(ISupportErrorInfo, IUnknown)
699{
700 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
701 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
702 STDMETHOD_(ULONG,Release)(THIS) PURE;
703 STDMETHOD(InterfaceSupportsErrorInfo)(THIS_ REFIID) PURE;
704};
705
706EXTERN_C const IID IID_IRecordInfo;
707#undef INTERFACE
708#define INTERFACE IRecordInfo
709DECLARE_INTERFACE_(IRecordInfo, IUnknown)
710{
711 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
712 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
713 STDMETHOD_(ULONG,Release)(THIS) PURE;
714 STDMETHOD(RecordInit)(THIS_ PVOID) PURE;
715 STDMETHOD(RecordClear)(THIS_ PVOID) PURE;
716 STDMETHOD(RecordCopy)(THIS_ PVOID, PVOID) PURE;
717 STDMETHOD(GetGuid)(THIS_ GUID*) PURE;
718 STDMETHOD(GetName)(THIS_ BSTR*) PURE;
719 STDMETHOD(GetSize)(THIS_ ULONG*) PURE;
720 STDMETHOD(GetTypeInfo)(THIS_ ITypeInfo**) PURE;
721 STDMETHOD(GetField)(THIS_ PVOID,LPCOLESTR,VARIANT*) PURE;
722 STDMETHOD(GetFieldNoCopy)(THIS_ PVOID,LPCOLESTR,VARIANT*,PVOID*) PURE;
723 STDMETHOD(PutField )(THIS_ ULONG,PVOID,LPCOLESTR, VARIANT*) PURE;
724 STDMETHOD(PutFieldNoCopy)(THIS_ ULONG,PVOID,LPCOLESTR,VARIANT*) PURE;
725 STDMETHOD(GetFieldNames)(THIS_ ULONG*,BSTR*) PURE;
726 STDMETHOD_(BOOL,IsMatchingType)(THIS_ THIS) PURE;
727 STDMETHOD_(PVOID,RecordCreate)(THIS) PURE;
728 STDMETHOD(RecordCreateCopy)(THIS_ PVOID,PVOID*) PURE;
729 STDMETHOD(RecordDestroy )(THIS_ PVOID) PURE;
730};
731
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
753
754EXTERN_C const IID IID_ITypeMarshal;
755#undef INTERFACE
756#define INTERFACE ITypeMarshal
757DECLARE_INTERFACE_(ITypeMarshal, IUnknown)
758{
759 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
760 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
761 STDMETHOD_(ULONG,Release)(THIS) PURE;
762 STDMETHOD(Size)(THIS_ PVOID,DWORD,PVOID,ULONG*) PURE;
763 STDMETHOD(Marshal)(THIS_ PVOID,DWORD,PVOID,ULONG,BYTE*,ULONG*) PURE;
764 STDMETHOD(Unmarshal)(THIS_ PVOID,DWORD,ULONG,BYTE*,ULONG*) PURE;
765 STDMETHOD(Free)(THIS_ PVOID) PURE;
766};
767
768#ifdef __cplusplus
769}
770#endif
771#endif
Note: See TracBrowser for help on using the repository browser.