fix compile with gcc
[reactos.git] / reactos / w32api / include / oaidl.h
1 #ifndef _OAIDL_H
2 #define _OAIDL_H
3 #if __GNUC__ >=3
4 #pragma GCC system_header
5 #endif
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION)
11 #define __VARIANT_NAME_1 n1
12 #define __VARIANT_NAME_2 n2
13 #define __VARIANT_NAME_3 n3
14 #define __VARIANT_NAME_4 brecVal
15 #else
16 #define __tagVARIANT
17 #define __tagBRECORD
18 #define __VARIANT_NAME_1
19 #define __VARIANT_NAME_2
20 #define __VARIANT_NAME_3
21 #define __VARIANT_NAME_4
22 #endif
23 #define DISPID_UNKNOWN (-1)
24 #define DISPID_VALUE (0)
25 #define DISPID_PROPERTYPUT (-3)
26 #define DISPID_NEWENUM (-4)
27 #define DISPID_EVALUATE (-5)
28 #define DISPID_CONSTRUCTOR (-6)
29 #define DISPID_DESTRUCTOR (-7)
30 #define DISPID_COLLECT (-8)
31 #define FADF_AUTO (1)
32 #define FADF_STATIC (2)
33 #define FADF_EMBEDDED (4)
34 #define FADF_FIXEDSIZE (16)
35 #define FADF_RECORD (32)
36 #define FADF_HAVEIID (64)
37 #define FADF_HAVEVARTYPE (128)
38 #define FADF_BSTR (256)
39 #define FADF_UNKNOWN (512)
40 #define FADF_DISPATCH (1024)
41 #define FADF_VARIANT (2048)
42 #define FADF_RESERVED (0xf0e8)
43 #define FADF_DATADELETED (0x1000)
44 #define FADF_CREATEVECTOR (0x2000)
45 #define PARAMFLAG_NONE (0)
46 #define PARAMFLAG_FIN (1)
47 #define PARAMFLAG_FOUT (2)
48 #define PARAMFLAG_FLCID (4)
49 #define PARAMFLAG_FRETVAL (8)
50 #define PARAMFLAG_FOPT (16)
51 #define PARAMFLAG_FHASDEFAULT (32)
52 #define IDLFLAG_NONE PARAMFLAG_NONE
53 #define IDLFLAG_FIN PARAMFLAG_FIN
54 #define IDLFLAG_FOUT PARAMFLAG_FOUT
55 #define IDLFLAG_FLCID PARAMFLAG_FLCID
56 #define IDLFLAG_FRETVAL PARAMFLAG_FRETVAL
57 #define IMPLTYPEFLAG_FDEFAULT 1
58 #define IMPLTYPEFLAG_FSOURCE 2
59 #define IMPLTYPEFLAG_FRESTRICTED 4
60 #define IMPLTYPEFLAG_FDEFAULTVTABLE 8
61
62 typedef interface ITypeLib *LPTYPELIB;
63 typedef interface ITypeLib2 *LPTYPELIB2;
64 typedef interface ICreateTypeInfo *LPCREATETYPEINFO;
65 typedef interface ICreateTypeInfo2 *LPCREATETYPEINFO2;
66 typedef interface ICreateTypeLib *LPCREATETYPELIB;
67 typedef interface ICreateTypeLib2 *LPCREATETYPELIB2;
68 typedef interface ITypeComp *LPTYPECOMP;
69 typedef interface ITypeInfo *LPTYPEINFO;
70 typedef interface ITypeInfo2 *LPTYPEINFO2;
71 typedef interface IErrorInfo *LPERRORINFO;
72 typedef interface IDispatch *LPDISPATCH;
73 typedef interface IEnumVARIANT *LPENUMVARIANT;
74 typedef interface ICreateErrorInfo *LPCREATEERRORINFO;
75 typedef interface ISupportErrorInfo *LPSUPPORTERRORINFO;
76 typedef interface IRecordInfo *LPRECORDINFO;
77
78 extern const IID IID_ITypeLib;
79 extern const IID IID_ITypeLib2;
80 extern const IID IID_ICreateTypeInfo;
81 extern const IID IID_ICreateTypeInfo2;
82 extern const IID IID_ICreateTypeLib;
83 extern const IID IID_ICreateTypeLib2;
84 extern const IID IID_ITypeInfo;
85 extern const IID IID_ITypeInfo2;
86 extern const IID IID_IErrorInfo;
87 extern const IID IID_IDispatch;
88 extern const IID IID_IEnumVARIANT;
89 extern const IID IID_ICreateErrorInfo;
90 extern const IID IID_ISupportErrorInfo;
91 extern const IID IID_IRecordInfo;
92 extern const IID IID_ITypeMarshal;
93
94 typedef enum tagSYSKIND {
95 SYS_WIN16,SYS_WIN32,SYS_MAC
96 } SYSKIND;
97 typedef enum tagLIBFLAGS {
98 LIBFLAG_FRESTRICTED=1,LIBFLAG_FCONTROL=2,LIBFLAG_FHIDDEN=4,
99 LIBFLAG_FHASDISKIMAGE=8
100 } LIBFLAGS;
101 typedef struct tagTLIBATTR {
102 GUID guid;
103 LCID lcid;
104 SYSKIND syskind;
105 WORD wMajorVerNum;
106 WORD wMinorVerNum;
107 WORD wLibFlags;
108 } TLIBATTR,*LPTLIBATTR;
109 typedef CY CURRENCY;
110 typedef struct tagSAFEARRAYBOUND {
111 ULONG cElements;
112 LONG lLbound;
113 }SAFEARRAYBOUND,*LPSAFEARRAYBOUND;
114 typedef struct _wireSAFEARR_BSTR
115 {
116 ULONG Size;
117 wireBSTR *aBstr;
118 }SAFEARR_BSTR;
119 typedef struct _wireSAFEARR_UNKNOWN {
120 ULONG Size;
121 IUnknown **apUnknown;
122 }SAFEARR_UNKNOWN;
123 typedef struct _wireSAFEARR_DISPATCH {
124 ULONG Size;
125 LPDISPATCH *apDispatch;
126 }SAFEARR_DISPATCH;
127 typedef struct _wireSAFEARR_VARIANT {
128 ULONG Size;
129 struct _wireVARIANT *aVariant;
130 }SAFEARR_VARIANT;
131 typedef enum tagSF_TYPE {
132 SF_ERROR=VT_ERROR,
133 SF_I1=VT_I1,
134 SF_I2=VT_I2,
135 SF_I4=VT_I4,
136 SF_I8=VT_I8,
137 SF_BSTR=VT_BSTR,
138 SF_UNKNOWN=VT_UNKNOWN,
139 SF_DISPATCH=VT_DISPATCH,
140 SF_VARIANT=VT_VARIANT
141 }SF_TYPE;
142 typedef struct _wireBRECORD {
143 ULONG fFlags;
144 ULONG clSize;
145 LPRECORDINFO* pRecInfo;
146 byte* pRecord;
147 } *wireBRECORD;
148 typedef struct _wireSAFEARR_BRECORD {
149 ULONG Size;
150 wireBRECORD* aRecord;
151 } SAFEARR_BRECORD;
152 typedef struct _wireSAFEARR_HAVEIID {
153 ULONG Size;
154 IUnknown** apUnknown;
155 IID iid;
156 } SAFEARR_HAVEIID;
157 typedef struct _wireSAFEARRAY_UNION {
158 ULONG sfType;
159 union {
160 SAFEARR_BSTR BstrStr;
161 SAFEARR_UNKNOWN UnknownStr;
162 SAFEARR_DISPATCH DispatchStr;
163 SAFEARR_VARIANT VariantStr;
164 SAFEARR_BRECORD RecordStr;
165 SAFEARR_HAVEIID HaveIidStr;
166 BYTE_SIZEDARR ByteStr;
167 WORD_SIZEDARR WordStr;
168 DWORD_SIZEDARR LongStr;
169 HYPER_SIZEDARR HyperStr;
170 }u;
171 }SAFEARRAYUNION;
172 typedef struct _wireSAFEARRAY {
173 USHORT cDims;
174 USHORT fFeatures;
175 ULONG cbElements;
176 ULONG cLocks;
177 SAFEARRAYUNION uArrayStructs;
178 SAFEARRAYBOUND rgsabound[1];
179 }*wireSAFEARRAY;
180 typedef wireSAFEARRAY *wirePSAFEARRAY;
181 typedef struct tagSAFEARRAY {
182 USHORT cDims;
183 USHORT fFeatures;
184 ULONG cbElements;
185 ULONG cLocks;
186 PVOID pvData;
187 SAFEARRAYBOUND rgsabound[1];
188 }SAFEARRAY,*LPSAFEARRAY;
189 #if defined (__GNUC__) && !defined (NONAMELESSUNION)
190 __extension__ /* no named members */
191 #endif
192 typedef struct tagVARIANT {
193 _ANONYMOUS_UNION union {
194 struct __tagVARIANT {
195 VARTYPE vt;
196 WORD wReserved1;
197 WORD wReserved2;
198 WORD wReserved3;
199 _ANONYMOUS_UNION union {
200 long lVal;
201 LONGLONG llVal;
202 unsigned char bVal;
203 short iVal;
204 float fltVal;
205 double dblVal;
206 VARIANT_BOOL boolVal;
207 SCODE scode;
208 CY cyVal;
209 DATE date;
210 BSTR bstrVal;
211 IUnknown *punkVal;
212 LPDISPATCH pdispVal;
213 SAFEARRAY *parray;
214 unsigned char *pbVal;
215 short *piVal;
216 long *plVal;
217 float *pfltVal;
218 double *pdblVal;
219 VARIANT_BOOL *pboolVal;
220 _VARIANT_BOOL *pbool;
221 SCODE *pscode;
222 CY *pcyVal;
223 DATE *pdate;
224 BSTR *pbstrVal;
225 IUnknown **ppunkVal;
226 LPDISPATCH *ppdispVal;
227 SAFEARRAY **pparray;
228 struct tagVARIANT *pvarVal;
229 void *byref;
230 CHAR cVal;
231 USHORT uiVal;
232 ULONG ulVal;
233 ULONGLONG ullVal;
234 INT intVal;
235 UINT uintVal;
236 DECIMAL *pdecVal;
237 CHAR *pcVal;
238 USHORT *puiVal;
239 ULONG *pulVal;
240 INT *pintVal;
241 UINT *puintVal;
242 _ANONYMOUS_STRUCT struct __tagBRECORD {
243 PVOID pvRecord;
244 struct IRecordInfo *pRecInfo;
245 } __VARIANT_NAME_4;
246 } __VARIANT_NAME_3;
247 } __VARIANT_NAME_2;
248 DECIMAL decVal;
249 } __VARIANT_NAME_1;
250 } VARIANT,*LPVARIANT;
251 typedef VARIANT VARIANTARG;
252 typedef VARIANT *LPVARIANTARG;
253 typedef struct _wireVARIANT {
254 DWORD clSize;
255 DWORD rpcReserved;
256 USHORT vt;
257 USHORT wReserved1;
258 USHORT wReserved2;
259 USHORT wReserved3;
260 _ANONYMOUS_UNION union {
261 LONG lVal;
262 LONGLONG llVal;
263 BYTE bVal;
264 SHORT iVal;
265 FLOAT fltVal;
266 DOUBLE dblVal;
267 VARIANT_BOOL boolVal;
268 SCODE scode;
269 CY cyVal;
270 DATE date;
271 wireBSTR bstrVal;
272 IUnknown *punkVal;
273 LPDISPATCH pdispVal;
274 wirePSAFEARRAY parray;
275 wireBRECORD brecVal;
276 BYTE *pbVal;
277 SHORT *piVal;
278 LONG *plVal;
279 FLOAT *pfltVal;
280 DOUBLE *pdblVal;
281 VARIANT_BOOL *pboolVal;
282 SCODE *pscode;
283 CY *pcyVal;
284 DATE *pdate;
285 wireBSTR *pbstrVal;
286 IUnknown **ppunkVal;
287 LPDISPATCH *ppdispVal;
288 wirePSAFEARRAY *pparray;
289 struct _wireVARIANT *pvarVal;
290 CHAR cVal;
291 USHORT uiVal;
292 ULONG ulVal;
293 ULONGLONG ullVal;
294 INT intVal;
295 UINT uintVal;
296 DECIMAL decVal;
297 DECIMAL *pdecVal;
298 CHAR *pcVal;
299 USHORT *puiVal;
300 ULONG *pulVal;
301 INT *pintVal;
302 UINT *puintVal;
303 } DUMMYUNIONNAME;
304 } *wireVARIANT;
305 typedef LONG DISPID;
306 typedef DISPID MEMBERID;
307 typedef DWORD HREFTYPE;
308 typedef enum tagTYPEKIND {
309 TKIND_ENUM,TKIND_RECORD,TKIND_MODULE,TKIND_INTERFACE,TKIND_DISPATCH,
310 TKIND_COCLASS,TKIND_ALIAS,TKIND_UNION,TKIND_MAX
311 }TYPEKIND;
312 typedef struct tagTYPEDESC {
313 _ANONYMOUS_UNION union {
314 struct tagTYPEDESC *lptdesc;
315 struct tagARRAYDESC *lpadesc;
316 HREFTYPE hreftype;
317 } DUMMYUNIONNAME;
318 VARTYPE vt;
319 }TYPEDESC;
320 typedef struct tagARRAYDESC {
321 TYPEDESC tdescElem;
322 USHORT cDims;
323 SAFEARRAYBOUND rgbounds[1];
324 }ARRAYDESC;
325 typedef struct tagPARAMDESCEX {
326 ULONG cBytes;
327 VARIANTARG varDefaultValue;
328 }PARAMDESCEX,*LPPARAMDESCEX;
329 typedef struct tagPARAMDESC {
330 LPPARAMDESCEX pparamdescex;
331 USHORT wParamFlags;
332 }PARAMDESC,*LPPARAMDESC;
333 typedef struct tagIDLDESC {
334 ULONG dwReserved;
335 USHORT wIDLFlags;
336 }IDLDESC,*LPIDLDESC;
337 typedef struct tagELEMDESC {
338 TYPEDESC tdesc;
339 _ANONYMOUS_UNION union {
340 IDLDESC idldesc;
341 PARAMDESC paramdesc;
342 } DUMMYUNIONNAME;
343 } ELEMDESC,*LPELEMDESC;
344 typedef struct tagTYPEATTR {
345 GUID guid;
346 LCID lcid;
347 DWORD dwReserved;
348 MEMBERID memidConstructor;
349 MEMBERID memidDestructor;
350 LPOLESTR lpstrSchema;
351 ULONG cbSizeInstance;
352 TYPEKIND typekind;
353 WORD cFuncs;
354 WORD cVars;
355 WORD cImplTypes;
356 WORD cbSizeVft;
357 WORD cbAlignment;
358 WORD wTypeFlags;
359 WORD wMajorVerNum;
360 WORD wMinorVerNum;
361 TYPEDESC tdescAlias;
362 IDLDESC idldescType;
363 }TYPEATTR,*LPTYPEATTR;
364 typedef struct tagDISPPARAMS {
365 VARIANTARG *rgvarg;
366 DISPID *rgdispidNamedArgs;
367 UINT cArgs;
368 UINT cNamedArgs;
369 }DISPPARAMS;
370 typedef struct tagEXCEPINFO {
371 WORD wCode;
372 WORD wReserved;
373 BSTR bstrSource;
374 BSTR bstrDescription;
375 BSTR bstrHelpFile;
376 DWORD dwHelpContext;
377 PVOID pvReserved;
378 HRESULT(__stdcall * pfnDeferredFillIn)(struct tagEXCEPINFO*);
379 SCODE scode;
380 } EXCEPINFO,*LPEXCEPINFO;
381 typedef enum tagCALLCONV {
382 CC_FASTCALL,CC_CDECL,CC_MSCPASCAL,CC_PASCAL=CC_MSCPASCAL,
383 CC_MACPASCAL,CC_STDCALL,CC_FPFASTCALL,CC_SYSCALL,CC_MPWCDECL,
384 CC_MPWPASCAL,CC_MAX=CC_MPWPASCAL
385 }CALLCONV;
386 typedef enum tagFUNCKIND {
387 FUNC_VIRTUAL,FUNC_PUREVIRTUAL,FUNC_NONVIRTUAL,
388 FUNC_STATIC,FUNC_DISPATCH
389 }FUNCKIND;
390 typedef enum tagINVOKEKIND {
391 INVOKE_FUNC=1,INVOKE_PROPERTYGET,INVOKE_PROPERTYPUT=4,
392 INVOKE_PROPERTYPUTREF=8
393 }INVOKEKIND;
394 typedef struct tagFUNCDESC {
395 MEMBERID memid;
396 SCODE *lprgscode;
397 ELEMDESC *lprgelemdescParam;
398 FUNCKIND funckind;
399 INVOKEKIND invkind;
400 CALLCONV callconv;
401 SHORT cParams;
402 SHORT cParamsOpt;
403 SHORT oVft;
404 SHORT cScodes;
405 ELEMDESC elemdescFunc;
406 WORD wFuncFlags;
407 }FUNCDESC,*LPFUNCDESC;
408 typedef enum tagVARKIND {
409 VAR_PERINSTANCE,VAR_STATIC,VAR_CONST,VAR_DISPATCH
410 } VARKIND;
411 typedef struct tagVARDESC {
412 MEMBERID memid;
413 LPOLESTR lpstrSchema;
414 _ANONYMOUS_UNION union {
415 ULONG oInst;
416 VARIANT *lpvarValue;
417 } DUMMYUNIONNAME;
418 ELEMDESC elemdescVar;
419 WORD wVarFlags;
420 VARKIND varkind;
421 } VARDESC,*LPVARDESC;
422 typedef enum tagTYPEFLAGS {
423 TYPEFLAG_FAPPOBJECT=1,TYPEFLAG_FCANCREATE=2,TYPEFLAG_FLICENSED=4,
424 TYPEFLAG_FPREDECLID=8,TYPEFLAG_FHIDDEN=16,TYPEFLAG_FCONTROL=32,
425 TYPEFLAG_FDUAL=64,TYPEFLAG_FNONEXTENSIBLE=128,
426 TYPEFLAG_FOLEAUTOMATION=256,TYPEFLAG_FRESTRICTED=512,
427 TYPEFLAG_FAGGREGATABLE=1024,TYPEFLAG_FREPLACEABLE=2048,
428 TYPEFLAG_FDISPATCHABLE=4096,TYPEFLAG_FREVERSEBIND=8192,
429 TYPEFLAG_FPROXY=16384
430 } TYPEFLAGS;
431 typedef enum tagFUNCFLAGS {
432 FUNCFLAG_FRESTRICTED=1,FUNCFLAG_FSOURCE=2,FUNCFLAG_FBINDABLE=4,
433 FUNCFLAG_FREQUESTEDIT=8,FUNCFLAG_FDISPLAYBIND=16,FUNCFLAG_FDEFAULTBIND=32,
434 FUNCFLAG_FHIDDEN=64,FUNCFLAG_FUSESGETLASTERROR=128,FUNCFLAG_FDEFAULTCOLLELEM=256,
435 FUNCFLAG_FUIDEFAULT=512,FUNCFLAG_FNONBROWSABLE=1024,FUNCFLAG_FREPLACEABLE=2048,
436 FUNCFLAG_FIMMEDIATEBIND=4096
437 } FUNCFLAGS;
438 typedef enum tagVARFLAGS {
439 VARFLAG_FREADONLY=1,VARFLAG_FSOURCE=2,VARFLAG_FBINDABLE=4,VARFLAG_FREQUESTEDIT=8,
440 VARFLAG_FDISPLAYBIND=16,VARFLAG_FDEFAULTBIND=32,VARFLAG_FHIDDEN=64,VARFLAG_FRESTRICTED=128,
441 VARFLAG_FDEFAULTCOLLELEM=256,VARFLAG_FUIDEFAULT=512,VARFLAG_FNONBROWSABLE=1024,
442 VARFLAG_FREPLACEABLE=2048,VARFLAG_FIMMEDIATEBIND=4096
443 } VARFLAGS;
444 typedef struct tagCLEANLOCALSTORAGE {
445 IUnknown *pInterface;
446 PVOID pStorage;
447 DWORD flags;
448 } CLEANLOCALSTORAGE;
449 typedef struct tagCUSTDATAITEM {
450 GUID guid;
451 VARIANTARG varValue;
452 } CUSTDATAITEM,*LPCUSTDATAITEM;
453 typedef struct tagCUSTDATA {
454 DWORD cCustData;
455 LPCUSTDATAITEM prgCustData;
456 } CUSTDATA,*LPCUSTDATA;
457
458 typedef enum tagDESCKIND {
459 DESCKIND_NONE=0,DESCKIND_FUNCDESC=DESCKIND_NONE+1,
460 DESCKIND_VARDESC=DESCKIND_FUNCDESC+1,DESCKIND_TYPECOMP=DESCKIND_VARDESC+1,
461 DESCKIND_IMPLICITAPPOBJ=DESCKIND_TYPECOMP+1,
462 DESCKIND_MAX=DESCKIND_IMPLICITAPPOBJ+1
463 } DESCKIND;
464
465 typedef union tagBINDPTR {
466 LPFUNCDESC lpfuncdesc;
467 LPVARDESC lpvardesc;
468 LPTYPECOMP lptcomp;
469 } BINDPTR,*LPBINDPTR;
470
471 #define INTERFACE IDispatch
472 DECLARE_INTERFACE_(IDispatch,IUnknown)
473 {
474 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
475 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
476 STDMETHOD_(ULONG,Release)(THIS) PURE;
477 STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
478 STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
479 STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
480 STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
481 };
482 #undef INTERFACE
483
484 #ifdef COBJMACROS
485 #define IDispatch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
486 #define IDispatch_AddRef(p) (p)->lpVtbl->AddRef(p)
487 #define IDispatch_Release(p) (p)->lpVtbl->Release(p)
488 #define IDispatch_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
489 #define IDispatch_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
490 #define IDispatch_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
491 #define IDispatch_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
492 #endif
493
494 #define INTERFACE IEnumVARIANT
495 DECLARE_INTERFACE_(IEnumVARIANT,IUnknown)
496 {
497 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
498 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
499 STDMETHOD_(ULONG,Release)(THIS) PURE;
500 STDMETHOD(Next)(THIS_ ULONG,VARIANT*,ULONG*) PURE;
501 STDMETHOD(Skip)(THIS_ ULONG) PURE;
502 STDMETHOD(Reset)(THIS) PURE;
503 STDMETHOD(Clone)(THIS_ IEnumVARIANT**) PURE;
504 };
505 #undef INTERFACE
506
507 #ifdef COBJMACROS
508 #define IEnumVARIANT_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
509 #define IEnumVARIANT_AddRef(p) (p)->lpVtbl->AddRef(p)
510 #define IEnumVARIANT_Release(p) (p)->lpVtbl->Release(p)
511 #define IEnumVARIANT_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
512 #define IEnumVARIANT_Skip(p,a) (p)->lpVtbl->Skip(p,a)
513 #define IEnumVARIANT_Reset(p) (p)->lpVtbl->Reset(p)
514 #define IEnumVARIANT_Clone(p,a) (p)->lpVtbl->Clone(p,a)
515 #endif
516
517 #define INTERFACE ITypeComp
518 DECLARE_INTERFACE_(ITypeComp,IUnknown)
519 {
520 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
521 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
522 STDMETHOD_(ULONG,Release)(THIS) PURE;
523 STDMETHOD(Bind)(THIS_ LPOLESTR,ULONG,WORD,LPTYPEINFO*,DESCKIND*,LPBINDPTR) PURE;
524 STDMETHOD(BindType)(THIS_ LPOLESTR,ULONG,LPTYPEINFO*,LPTYPECOMP*) PURE;
525 };
526 #undef INTERFACE
527
528 #ifdef COBJMACROS
529 #define ITypeComp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
530 #define ITypeComp_AddRef(p) (p)->lpVtbl->AddRef(p)
531 #define ITypeComp_Release(p) (p)->lpVtbl->Release(p)
532 #define ITypeComp_Bind(p,a,b,c,d,e,f) (p)->lpVtbl->Bind(p,a,b,c,d,e,f)
533 #define ITypeComp_BindType(p,a,b,c,d) (p)->lpVtbl->BindType(p,a,b,c,d)
534 #endif
535
536 #define INTERFACE ITypeInfo
537 DECLARE_INTERFACE_(ITypeInfo,IUnknown)
538 {
539 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
540 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
541 STDMETHOD_(ULONG,Release)(THIS) PURE;
542 STDMETHOD(GetTypeAttr)(THIS_ LPTYPEATTR*) PURE;
543 STDMETHOD(GetTypeComp)(THIS_ LPTYPECOMP*) PURE;
544 STDMETHOD(GetFuncDesc)(THIS_ UINT,LPFUNCDESC*) PURE;
545 STDMETHOD(GetVarDesc)(THIS_ UINT,LPVARDESC*) PURE;
546 STDMETHOD(GetNames)(THIS_ MEMBERID,BSTR*,UINT,UINT*) PURE;
547 STDMETHOD(GetRefTypeOfImplType)(THIS_ UINT,HREFTYPE*) PURE;
548 STDMETHOD(GetImplTypeFlags)(THIS_ UINT,INT*) PURE;
549 STDMETHOD(GetIDsOfNames)(THIS_ LPOLESTR*,UINT,MEMBERID*) PURE;
550 STDMETHOD(Invoke)(THIS_ PVOID,MEMBERID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
551 STDMETHOD(GetDocumentation)(THIS_ MEMBERID,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
552 STDMETHOD(GetDllEntry)(THIS_ MEMBERID,INVOKEKIND,BSTR*,BSTR*,WORD*) PURE;
553 STDMETHOD(GetRefTypeInfo)(THIS_ HREFTYPE,LPTYPEINFO*) PURE;
554 STDMETHOD(AddressOfMember)(THIS_ MEMBERID,INVOKEKIND,PVOID*) PURE;
555 STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
556 STDMETHOD(GetMops)(THIS_ MEMBERID,BSTR*) PURE;
557 STDMETHOD(GetContainingTypeLib)(THIS_ LPTYPELIB*,UINT*) PURE;
558 STDMETHOD_(void,ReleaseTypeAttr)(THIS_ LPTYPEATTR) PURE;
559 STDMETHOD_(void,ReleaseFuncDesc)(THIS_ LPFUNCDESC) PURE;
560 STDMETHOD_(void,ReleaseVarDesc)(THIS_ LPVARDESC) PURE;
561 };
562 #undef INTERFACE
563
564 #ifdef COBJMACROS
565 #define ITypeInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
566 #define ITypeInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
567 #define ITypeInfo_Release(p) (p)->lpVtbl->Release(p)
568 #define ITypeInfo_GetTypeAttr(p,a) (p)->lpVtbl->GetTypeAttr(p,a)
569 #define ITypeInfo_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
570 #define ITypeInfo_GetFuncDesc(p,a,b) (p)->lpVtbl->GetFuncDesc(p,a,b)
571 #define ITypeInfo_GetVarDesc(p,a,b) (p)->lpVtbl->GetVarDesc(p,a,b)
572 #define ITypeInfo_GetNames(p,a,b,c,d) (p)->lpVtbl->GetNames(p,a,b,c,d)
573 #define ITypeInfo_GetRefTypeOfImplType(p,a,b) (p)->lpVtbl->GetRefTypeOfImplType(p,a,b)
574 #define ITypeInfo_GetImplTypeFlags(p,a,b) (p)->lpVtbl->GetImplTypeFlags(p,a,b)
575 #define ITypeInfo_GetIDsOfNames(p,a,b,c) (p)->lpVtbl->GetIDsOfNames(p,a,b,c)
576 #define ITypeInfo_Invoke(p,a,b,c,d,e,f,g) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g)
577 #define ITypeInfo_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
578 #define ITypeInfo_GetDllEntry(p,a,b,c,d,e) (p)->lpVtbl->GetDllEntry(p,a,b,c,d,e)
579 #define ITypeInfo_GetRefTypeInfo(p,a,b) (p)->lpVtbl->GetRefTypeInfo(p,a,b)
580 #define ITypeInfo_AddressOfMember(p,a,b,c) (p)->lpVtbl->AddressOfMember(p,a,b,c)
581 #define ITypeInfo_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
582 #define ITypeInfo_GetMops(p,a,b) (p)->lpVtbl->GetMops(p,a,b)
583 #define ITypeInfo_GetContainingTypeLib(p,a,b) (p)->lpVtbl->GetContainingTypeLib(p,a,b)
584 #define ITypeInfo_ReleaseTypeAttr(p,a) (p)->lpVtbl->ReleaseTypeAttr(p,a)
585 #define ITypeInfo_ReleaseFuncDesc(p,a) (p)->lpVtbl->ReleaseFuncDesc(p,a)
586 #define ITypeInfo_ReleaseVarDesc(p,a) (p)->lpVtbl->ReleaseVarDesc(p,a)
587 #endif
588
589 #define INTERFACE ITypeInfo2
590 DECLARE_INTERFACE_(ITypeInfo2,ITypeInfo)
591 {
592 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
593 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
594 STDMETHOD_(ULONG,Release)(THIS) PURE;
595 STDMETHOD(GetTypeAttr)(THIS_ LPTYPEATTR*) PURE;
596 STDMETHOD(GetTypeComp)(THIS_ LPTYPECOMP*) PURE;
597 STDMETHOD(GetFuncDesc)(THIS_ UINT,LPFUNCDESC*) PURE;
598 STDMETHOD(GetVarDesc)(THIS_ UINT,LPVARDESC*) PURE;
599 STDMETHOD(GetNames)(THIS_ MEMBERID,BSTR*,UINT,UINT*) PURE;
600 STDMETHOD(GetRefTypeOfImplType)(THIS_ UINT,HREFTYPE*) PURE;
601 STDMETHOD(GetImplTypeFlags)(THIS_ UINT,INT*) PURE;
602 STDMETHOD(GetIDsOfNames)(THIS_ LPOLESTR*,UINT,MEMBERID*) PURE;
603 STDMETHOD(Invoke)(THIS_ PVOID,MEMBERID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
604 STDMETHOD(GetDocumentation)(THIS_ MEMBERID,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
605 STDMETHOD(GetDllEntry)(THIS_ MEMBERID,INVOKEKIND,BSTR*,BSTR*,WORD*) PURE;
606 STDMETHOD(GetRefTypeInfo)(THIS_ HREFTYPE,LPTYPEINFO*) PURE;
607 STDMETHOD(AddressOfMember)(THIS_ MEMBERID,INVOKEKIND,PVOID*) PURE;
608 STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
609 STDMETHOD(GetMops)(THIS_ MEMBERID,BSTR*) PURE;
610 STDMETHOD(GetContainingTypeLib)(THIS_ LPTYPELIB*,UINT*) PURE;
611 STDMETHOD_(void,ReleaseTypeAttr)(THIS_ LPTYPEATTR) PURE;
612 STDMETHOD_(void,ReleaseFuncDesc)(THIS_ LPFUNCDESC) PURE;
613 STDMETHOD_(void,ReleaseVarDesc)(THIS_ LPVARDESC) PURE;
614 STDMETHOD(GetTypeKind)(THIS_ TYPEKIND*) PURE;
615 STDMETHOD(GetTypeFlags)(THIS_ ULONG*) PURE;
616 STDMETHOD(GetFuncIndexOfMemId)(THIS_ MEMBERID,INVOKEKIND,UINT*) PURE;
617 STDMETHOD(GetVarIndexOfMemId)(THIS_ MEMBERID,UINT*) PURE;
618 STDMETHOD(GetCustData)(THIS_ REFGUID,VARIANT*) PURE;
619 STDMETHOD(GetFuncCustData)(THIS_ UINT,REFGUID,VARIANT*) PURE;
620 STDMETHOD(GetParamCustData)(THIS_ UINT,UINT,REFGUID,VARIANT*) PURE;
621 STDMETHOD(GetVarCustData)(THIS_ UINT,REFGUID,VARIANT*) PURE;
622 STDMETHOD(GetImplTypeCustData)(THIS_ UINT,REFGUID,VARIANT*) PURE;
623 STDMETHOD(GetDocumentation2)(THIS_ MEMBERID,LCID,BSTR*,DWORD*,BSTR*) PURE;
624 STDMETHOD(GetAllCustData)(THIS_ CUSTDATA*) PURE;
625 STDMETHOD(GetAllFuncCustData)(THIS_ UINT,CUSTDATA*) PURE;
626 STDMETHOD(GetAllParamCustData)(THIS_ UINT,UINT,CUSTDATA*) PURE;
627 STDMETHOD(GetAllVarCustData)(THIS_ UINT,CUSTDATA*) PURE;
628 STDMETHOD(GetAllImplTypeCustData)(THIS_ UINT,CUSTDATA*) PURE;
629 };
630 #undef INTERFACE
631
632 #ifdef COBJMACROS
633 #define ITypeInfo2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
634 #define ITypeInfo2_AddRef(p) (p)->lpVtbl->AddRef(p)
635 #define ITypeInfo2_Release(p) (p)->lpVtbl->Release(p)
636 #define ITypeInfo2_GetTypeAttr(p,a) (p)->lpVtbl->GetTypeAttr(p,a)
637 #define ITypeInfo2_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
638 #define ITypeInfo2_GetFuncDesc(p,a,b) (p)->lpVtbl->GetFuncDesc(p,a,b)
639 #define ITypeInfo2_GetVarDesc(p,a,b) (p)->lpVtbl->GetVarDesc(p,a,b)
640 #define ITypeInfo2_GetNames(p,a,b,c,d) (p)->lpVtbl->GetNames(p,a,b,c,d)
641 #define ITypeInfo2_GetRefTypeOfImplType(p,a,b) (p)->lpVtbl->GetRefTypeOfImplType(p,a,b)
642 #define ITypeInfo2_GetImplTypeFlags(p,a,b) (p)->lpVtbl->GetImplTypeFlags(p,a,b)
643 #define ITypeInfo2_GetIDsOfNames(p,a,b,c) (p)->lpVtbl->GetIDsOfNames(p,a,b,c)
644 #define ITypeInfo2_Invoke(p,a,b,c,d,e,f,g) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g)
645 #define ITypeInfo2_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
646 #define ITypeInfo2_GetDllEntry(p,a,b,c,d,e) (p)->lpVtbl->GetDllEntry(p,a,b,c,d,e)
647 #define ITypeInfo2_GetRefTypeInfo(p,a,b) (p)->lpVtbl->GetRefTypeInfo(p,a,b)
648 #define ITypeInfo2_AddressOfMember(p,a,b,c) (p)->lpVtbl->AddressOfMember(p,a,b,c)
649 #define ITypeInfo2_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
650 #define ITypeInfo2_GetMops(p,a,b) (p)->lpVtbl->GetMops(p,a,b)
651 #define ITypeInfo2_GetContainingTypeLib(p,a,b) (p)->lpVtbl->GetContainingTypeLib(p,a,b)
652 #define ITypeInfo2_ReleaseTypeAttr(p,a) (p)->lpVtbl->ReleaseTypeAttr(p,a)
653 #define ITypeInfo2_ReleaseFuncDesc(p,a) (p)->lpVtbl->ReleaseFuncDesc(p,a)
654 #define ITypeInfo2_ReleaseVarDesc(p,a) (p)->lpVtbl->ReleaseVarDesc(p,a)
655 #define ITypeInfo2_GetTypeKind(p,a) (p)->lpVtbl->GetTypeKind(p,a)
656 #define ITypeInfo2_GetTypeFlags(p,a) (p)->lpVtbl->GetTypeFlags(p,a)
657 #define ITypeInfo2_GetFuncIndexOfMemId(p,a,b,c) (p)->lpVtbl->GetFuncIndexOfMemId(p,a,b,c)
658 #define ITypeInfo2_GetVarIndexOfMemId(p,a,b) (p)->lpVtbl->GetVarIndexOfMemId(p,a,b)
659 #define ITypeInfo2_GetCustData(p,a,b) (p)->lpVtbl->GetCustData(p,a,b)
660 #define ITypeInfo2_GetFuncCustData(p,a,b,c) (p)->lpVtbl->GetFuncCustData(p,a,b,c)
661 #define ITypeInfo2_GetParamCustData(p,a,b,c,d) (p)->lpVtbl->GetParamCustData(p,a,b,c,d)
662 #define ITypeInfo2_GetVarCustData(p,a,b,c) (p)->lpVtbl->GetVarCustData(p,a,b,c)
663 #define ITypeInfo2_GetImplTypeCustData(p,a,b,c) (p)->lpVtbl->GetImplTypeCustData(p,a,b,c)
664 #define ITypeInfo2_GetDocumentation2(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation2(p,a,b,c,d,e)
665 #define ITypeInfo2_GetAllCustData(p,a) (p)->lpVtbl->GetAllCustData(p,a)
666 #define ITypeInfo2_GetAllFuncCustData(p,a,b) (p)->lpVtbl->GetAllFuncCustData(p,a,b)
667 #define ITypeInfo2_GetAllParamCustData(p,a,b,c) (p)->lpVtbl->GetAllParamCustData(p,a,b,c)
668 #define ITypeInfo2_GetAllVarCustData(p,a,b) (p)->lpVtbl->GetAllVarCustData(p,a,b)
669 #define ITypeInfo2_GetAllImplTypeCustData(p,a,b) (p)->lpVtbl->GetAllImplTypeCustData(p,a,b)
670 #endif
671
672 #define INTERFACE ITypeLib
673 DECLARE_INTERFACE_(ITypeLib,IUnknown)
674 {
675 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
676 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
677 STDMETHOD_(ULONG,Release)(THIS) PURE;
678 STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE;
679 STDMETHOD(GetTypeInfo)(THIS_ UINT,ITypeInfo**) PURE;
680 STDMETHOD(GetTypeInfoType)(THIS_ UINT,TYPEKIND*) PURE;
681 STDMETHOD(GetTypeInfoOfGuid)(THIS_ REFGUID,ITypeInfo**) PURE;
682 STDMETHOD(GetLibAttr)(THIS_ TLIBATTR**) PURE;
683 STDMETHOD(GetTypeComp)(THIS_ LPTYPECOMP*) PURE;
684 STDMETHOD(GetDocumentation)(THIS_ INT,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
685 STDMETHOD(IsName)(THIS_ LPOLESTR,ULONG,BOOL*) PURE;
686 STDMETHOD(FindName)(THIS_ LPOLESTR,ULONG,ITypeInfo**,MEMBERID*,USHORT*) PURE;
687 STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR*) PURE;
688 };
689 #undef INTERFACE
690
691 #ifdef COBJMACROS
692 #define ITypeLib_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
693 #define ITypeLib_AddRef(p) (p)->lpVtbl->AddRef(p)
694 #define ITypeLib_Release(p) (p)->lpVtbl->Release(p)
695 #define ITypeLib_GetTypeInfoCount(p) (p)->lpVtbl->GetTypeInfoCount(p)
696 #define ITypeLib_GetTypeInfo(p,a,b) (p)->lpVtbl->GetTypeInfo(p,a,b)
697 #define ITypeLib_GetTypeInfoType(p,a,b) (p)->lpVtbl->GetTypeInfoType(p,a,b)
698 #define ITypeLib_GetTypeInfoOfGuid(p,a,b) (p)->lpVtbl->GetTypeInfoOfGuid(p,a,b)
699 #define ITypeLib_GetLibAttr(p,a) (p)->lpVtbl->GetLibAttr(p,a)
700 #define ITypeLib_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
701 #define ITypeLib_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
702 #define ITypeLib_IsName(p,a,b,c) (p)->lpVtbl->IsName(p,a,b,c)
703 #define ITypeLib_FindName(p,a,b,c,d,e) (p)->lpVtbl->FindName(p,a,b,c,d,e)
704 #define ITypeLib_ReleaseTLibAttr(p,a) (p)->lpVtbl->ReleaseTLibAttr(p,a)
705 #endif
706
707 #define INTERFACE ITypeLib2
708 DECLARE_INTERFACE_(ITypeLib2,ITypeLib)
709 {
710 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
711 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
712 STDMETHOD_(ULONG,Release)(THIS) PURE;
713 STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE;
714 STDMETHOD(GetTypeInfo)(THIS_ UINT,ITypeInfo**) PURE;
715 STDMETHOD(GetTypeInfoType)(THIS_ UINT,TYPEKIND*) PURE;
716 STDMETHOD(GetTypeInfoOfGuid)(THIS_ REFGUID,ITypeInfo**) PURE;
717 STDMETHOD(GetLibAttr)(THIS_ TLIBATTR**) PURE;
718 STDMETHOD(GetTypeComp)(THIS_ LPTYPECOMP*) PURE;
719 STDMETHOD(GetDocumentation)(THIS_ INT,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
720 STDMETHOD(IsName)(THIS_ LPOLESTR,ULONG,BOOL*) PURE;
721 STDMETHOD(FindName)(THIS_ LPOLESTR,ULONG,ITypeInfo**,MEMBERID*,USHORT*) PURE;
722 STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR*) PURE;
723 STDMETHOD(GetCustData)(THIS_ REFGUID,VARIANT*) PURE;
724 STDMETHOD(GetLibStatistics)(THIS_ ULONG*,ULONG*) PURE;
725 STDMETHOD(GetDocumentation2)(THIS_ INT,LCID,BSTR*,DWORD*,BSTR*) PURE;
726 STDMETHOD(GetAllCustData)(THIS_ CUSTDATA*) PURE;
727 };
728 #undef INTERFACE
729
730 #ifdef COBJMACROS
731 #define ITypeLib2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
732 #define ITypeLib2_AddRef(p) (p)->lpVtbl->AddRef(p)
733 #define ITypeLib2_Release(p) (p)->lpVtbl->Release(p)
734 #define ITypeLib2_GetTypeInfoCount(p) (p)->lpVtbl->GetTypeInfoCount(p)
735 #define ITypeLib2_GetTypeInfo(p,a,b) (p)->lpVtbl->GetTypeInfo(p,a,b)
736 #define ITypeLib2_GetTypeInfoType(p,a,b) (p)->lpVtbl->GetTypeInfoType(p,a,b)
737 #define ITypeLib2_GetTypeInfoOfGuid(p,a,b) (p)->lpVtbl->GetTypeInfoOfGuid(p,a,b)
738 #define ITypeLib2_GetLibAttr(p,a) (p)->lpVtbl->GetLibAttr(p,a)
739 #define ITypeLib2_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
740 #define ITypeLib2_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
741 #define ITypeLib2_IsName(p,a,b,c) (p)->lpVtbl->IsName(p,a,b,c)
742 #define ITypeLib2_FindName(p,a,b,c,d,e) (p)->lpVtbl->FindName(p,a,b,c,d,e)
743 #define ITypeLib2_ReleaseTLibAttr(p,a) (p)->lpVtbl->ReleaseTLibAttr(p,a)
744 #define ITypeLib2_GetCustData(p,a,b) (p)->lpVtbl->GetCustData(p,a,b)
745 #define ITypeLib2_GetLibStatistics(p,a,b) (p)->lpVtbl->GetLibStatistics(p,a,b)
746 #define ITypeLib2_GetDocumentation2(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation2(p,a,b,c,d,e)
747 #define ITypeLib2_GetAllCustData(p,a) (p)->lpVtbl->GetAllCustData(p,a)
748 #endif
749
750 #define INTERFACE ITypeFactory
751 DECLARE_INTERFACE_(ITypeFactory,IUnknown)
752 {
753 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
754 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
755 STDMETHOD_(ULONG,Release)(THIS) PURE;
756 STDMETHOD(GetAllCustData)(THIS_ CUSTDATA*) PURE;
757 STDMETHOD(CreateFromTypeInfo)(THIS_ LPTYPEINFO,REFIID,LPUNKNOWN*);
758 };
759 #undef INTERFACE
760
761 #ifdef COBJMACROS
762 #define ITypeFactory_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
763 #define ITypeFactory_AddRef(p) (p)->lpVtbl->AddRef(p)
764 #define ITypeFactory_Release(p) (p)->lpVtbl->Release(p)
765 #define ITypeFactory_CreateFromTypeInfo(p,a,b,c) (p)->lpVtbl->CreateFromTypeInfo(p,a,b,c)
766 #endif
767
768 #define INTERFACE ICreateTypeInfo
769 DECLARE_INTERFACE_(ICreateTypeInfo,IUnknown)
770 {
771 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
772 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
773 STDMETHOD_(ULONG,Release)(THIS) PURE;
774 STDMETHOD(SetGuid)(THIS_ REFGUID) PURE;
775 STDMETHOD(SetTypeFlags)(THIS_ UINT) PURE;
776 STDMETHOD(SetDocString)(THIS_ LPOLESTR) PURE;
777 STDMETHOD(SetHelpContext)(THIS_ DWORD) PURE;
778 STDMETHOD(SetVersion)(THIS_ WORD,WORD) PURE;
779 STDMETHOD(AddRefTypeInfo)(THIS_ ITypeInfo*,HREFTYPE*) PURE;
780 STDMETHOD(AddFuncDesc)(THIS_ UINT,FUNCDESC*) PURE;
781 STDMETHOD(AddImplType)(THIS_ UINT,HREFTYPE) PURE;
782 STDMETHOD(SetImplTypeFlags)(THIS_ UINT,INT) PURE;
783 STDMETHOD(SetAlignment)(THIS_ WORD) PURE;
784 STDMETHOD(SetSchema)(THIS_ LPOLESTR) PURE;
785 STDMETHOD(AddVarDesc)(THIS_ UINT,VARDESC*) PURE;
786 STDMETHOD(SetFuncAndParamNames)(THIS_ UINT,LPOLESTR*,UINT) PURE;
787 STDMETHOD(SetVarName)(THIS_ UINT,LPOLESTR) PURE;
788 STDMETHOD(SetTypeDescAlias)(THIS_ TYPEDESC*) PURE;
789 STDMETHOD(DefineFuncAsDllEntry)(THIS_ UINT,LPOLESTR,LPOLESTR) PURE;
790 STDMETHOD(SetFuncDocString)(THIS_ UINT,LPOLESTR) PURE;
791 STDMETHOD(SetVarDocString)(THIS_ UINT,LPOLESTR) PURE;
792 STDMETHOD(SetFuncHelpContext)(THIS_ UINT,DWORD) PURE;
793 STDMETHOD(SetVarHelpContext)(THIS_ UINT,DWORD) PURE;
794 STDMETHOD(SetMops)(THIS_ UINT,BSTR) PURE;
795 STDMETHOD(SetTypeIdldesc)(THIS_ IDLDESC*) PURE;
796 STDMETHOD(LayOut)(THIS) PURE;
797 };
798 #undef INTERFACE
799
800 #ifdef COBJMACROS
801 #define ICreateTypeInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
802 #define ICreateTypeInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
803 #define ICreateTypeInfo_Release(p) (p)->lpVtbl->Release(p)
804 #define ICreateTypeInfo_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
805 #define ICreateTypeInfo_SetTypeFlags(p,a) (p)->lpVtbl->SetTypeFlags(p,a)
806 #define ICreateTypeInfo_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
807 #define ICreateTypeInfo_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
808 #define ICreateTypeInfo_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
809 #define ICreateTypeInfo_AddRefTypeInfo(p,a,b) (p)->lpVtbl->AddRefTypeInfo(p,a,b)
810 #define ICreateTypeInfo_AddFuncDesc(p,a,b) (p)->lpVtbl->AddFuncDesc(p,a,b)
811 #define ICreateTypeInfo_AddImplType(p,a,b) (p)->lpVtbl->AddImplType(p,a,b)
812 #define ICreateTypeInfo_SetImplTypeFlags(p,a,b) (p)->lpVtbl->SetImplTypeFlags(p,a,b)
813 #define ICreateTypeInfo_SetAlignment(p,a) (p)->lpVtbl->SetAlignment(p,a)
814 #define ICreateTypeInfo_SetSchema(p,a) (p)->lpVtbl->SetSchema(p,a)
815 #define ICreateTypeInfo_AddVarDesc(p,a,b) (p)->lpVtbl->AddVarDesc(p,a,b)
816 #define ICreateTypeInfo_SetFuncAndParamNames(p,a,b,c) (p)->lpVtbl->SetFuncAndParamNames(p,a,b,c)
817 #define ICreateTypeInfo_SetVarName(p,a,b) (p)->lpVtbl->SetVarName(p,a,b)
818 #define ICreateTypeInfo_SetTypeDescAlias(p,a) (p)->lpVtbl->SetTypeDescAlias(p,a)
819 #define ICreateTypeInfo_DefineFuncAsDllEntry(p,a,b,c) (p)->lpVtbl->DefineFuncAsDllEntry(p,a,b,c)
820 #define ICreateTypeInfo_SetFuncDocString(p,a,b) (p)->lpVtbl->SetFuncDocString(p,a,b)
821 #define ICreateTypeInfo_SetVarDocString(p,a,b) (p)->lpVtbl->SetVarDocString(p,a,b)
822 #define ICreateTypeInfo_SetFuncHelpContext(p,a,b) (p)->lpVtbl->SetFuncHelpContext(p,a,b)
823 #define ICreateTypeInfo_SetVarHelpContext(p,a,b) (p)->lpVtbl->SetVarHelpContext(p,a,b)
824 #define ICreateTypeInfo_SetMops(p,a,b) (p)->lpVtbl->SetMops(p,a,b)
825 #define ICreateTypeInfo_SetTypeIdldesc(p,a) (p)->lpVtbl->SetTypeIdldesc(p,a)
826 #define ICreateTypeInfo_LayOut(p) (p)->lpVtbl->LayOut(p)
827 #endif
828
829 #define INTERFACE ICreateTypeInfo2
830 DECLARE_INTERFACE_(ICreateTypeInfo2,IUnknown)
831 {
832 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
833 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
834 STDMETHOD_(ULONG,Release)(THIS) PURE;
835 STDMETHOD(SetGuid)(THIS_ REFGUID) PURE;
836 STDMETHOD(SetTypeFlags)(THIS_ UINT) PURE;
837 STDMETHOD(SetDocString)(THIS_ LPOLESTR) PURE;
838 STDMETHOD(SetHelpContext)(THIS_ DWORD) PURE;
839 STDMETHOD(SetVersion)(THIS_ WORD,WORD) PURE;
840 STDMETHOD(AddRefTypeInfo)(THIS_ ITypeInfo*,HREFTYPE*) PURE;
841 STDMETHOD(AddFuncDesc)(THIS_ UINT,FUNCDESC*) PURE;
842 STDMETHOD(AddImplType)(THIS_ UINT,HREFTYPE) PURE;
843 STDMETHOD(SetImplTypeFlags)(THIS_ UINT,INT) PURE;
844 STDMETHOD(SetAlignment)(THIS_ WORD) PURE;
845 STDMETHOD(SetSchema)(THIS_ LPOLESTR) PURE;
846 STDMETHOD(AddVarDesc)(THIS_ UINT,VARDESC*) PURE;
847 STDMETHOD(SetFuncAndParamNames)(THIS_ UINT,LPOLESTR*,UINT) PURE;
848 STDMETHOD(SetVarName)(THIS_ UINT,LPOLESTR) PURE;
849 STDMETHOD(SetTypeDescAlias)(THIS_ TYPEDESC*) PURE;
850 STDMETHOD(DefineFuncAsDllEntry)(THIS_ UINT,LPOLESTR,LPOLESTR) PURE;
851 STDMETHOD(SetFuncDocString)(THIS_ UINT,LPOLESTR) PURE;
852 STDMETHOD(SetVarDocString)(THIS_ UINT,LPOLESTR) PURE;
853 STDMETHOD(SetFuncHelpContext)(THIS_ UINT,DWORD) PURE;
854 STDMETHOD(SetVarHelpContext)(THIS_ UINT,DWORD) PURE;
855 STDMETHOD(SetMops)(THIS_ UINT,BSTR) PURE;
856 STDMETHOD(SetTypeIdldesc)(THIS_ IDLDESC*) PURE;
857 STDMETHOD(LayOut)(THIS) PURE;
858 STDMETHOD(DeleteFuncDesc)(THIS_ UINT) PURE;
859 STDMETHOD(DeleteFuncDescByMemId)(THIS_ MEMBERID, INVOKEKIND) PURE;
860 STDMETHOD(DeleteVarDesc)(THIS_ UINT) PURE;
861 STDMETHOD(DeleteVarDescByMemId)(THIS_ MEMBERID) PURE;
862 STDMETHOD(DeleteImplType)(THIS_ UINT) PURE;
863 STDMETHOD(SetCustData)(THIS_ REFGUID, VARIANT*) PURE;
864 STDMETHOD(SetFuncCustData)(THIS_ UINT, REFGUID, VARIANT*) PURE;
865 STDMETHOD(SetParamCustData)(THIS_ UINT, UINT, REFGUID, VARIANT*) PURE;
866 STDMETHOD(SetVarCustData)(THIS_ UINT, REFGUID, VARIANT*) PURE;
867 STDMETHOD(SetImplTypeCustData)(THIS_ UINT, REFGUID, VARIANT*) PURE;
868 STDMETHOD(SetHelpStringContext)(THIS_ ULONG) PURE;
869 STDMETHOD(SetFuncHelpStringContext)(THIS_ UINT, ULONG) PURE;
870 STDMETHOD(SetVarHelpStringContext)(THIS_ UINT, ULONG) PURE;
871 STDMETHOD(Invalidate)(THIS) PURE;
872 STDMETHOD(SetName)(THIS_ LPOLESTR) PURE;
873 };
874 #undef INTERFACE
875
876 #ifdef COBJMACROS
877 #define ICreateTypeInfo2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
878 #define ICreateTypeInfo2_AddRef(p) (p)->lpVtbl->AddRef(p)
879 #define ICreateTypeInfo2_Release(p) (p)->lpVtbl->Release(p)
880 #define ICreateTypeInfo2_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
881 #define ICreateTypeInfo2_SetTypeFlags(p,a) (p)->lpVtbl->SetTypeFlags(p,a)
882 #define ICreateTypeInfo2_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
883 #define ICreateTypeInfo2_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
884 #define ICreateTypeInfo2_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
885 #define ICreateTypeInfo2_AddRefTypeInfo(p,a,b) (p)->lpVtbl->AddRefTypeInfo(p,a,b)
886 #define ICreateTypeInfo2_AddFuncDesc(p,a,b) (p)->lpVtbl->AddFuncDesc(p,a,b)
887 #define ICreateTypeInfo2_AddImplType(p,a,b) (p)->lpVtbl->AddImplType(p,a,b)
888 #define ICreateTypeInfo2_SetImplTypeFlags(p,a,b) (p)->lpVtbl->SetImplTypeFlags(p,a,b)
889 #define ICreateTypeInfo2_SetAlignment(p,a) (p)->lpVtbl->SetAlignment(p,a)
890 #define ICreateTypeInfo2_SetSchema(p,a) (p)->lpVtbl->SetSchema(p,a)
891 #define ICreateTypeInfo2_AddVarDesc(p,a,b) (p)->lpVtbl->AddVarDesc(p,a,b)
892 #define ICreateTypeInfo2_SetFuncAndParamNames(p,a,b,c) (p)->lpVtbl->SetFuncAndParamNames(p,a,b,c)
893 #define ICreateTypeInfo2_SetVarName(p,a,b) (p)->lpVtbl->SetVarName(p,a,b)
894 #define ICreateTypeInfo2_SetTypeDescAlias(p,a) (p)->lpVtbl->SetTypeDescAlias(p,a)
895 #define ICreateTypeInfo2_DefineFuncAsDllEntry(p,a,b,c) (p)->lpVtbl->DefineFuncAsDllEntry(p,a,b,c)
896 #define ICreateTypeInfo2_SetFuncDocString(p,a,b) (p)->lpVtbl->SetFuncDocString(p,a,b)
897 #define ICreateTypeInfo2_SetVarDocString(p,a,b) (p)->lpVtbl->SetVarDocString(p,a,b)
898 #define ICreateTypeInfo2_SetFuncHelpContext(p,a,b) (p)->lpVtbl->SetFuncHelpContext(p,a,b)
899 #define ICreateTypeInfo2_SetVarHelpContext(p,a,b) (p)->lpVtbl->SetVarHelpContext(p,a,b)
900 #define ICreateTypeInfo2_SetMops(p,a,b) (p)->lpVtbl->SetMops(p,a,b)
901 #define ICreateTypeInfo2_SetTypeIdldesc(p,a) (p)->lpVtbl->SetTypeIdldesc(p,a)
902 #define ICreateTypeInfo2_LayOut(p) (p)->lpVtbl->LayOut(p)
903 #define ICreateTypeInfo2_DeleteFuncDesc(p,a) (p)->lpVtbl->DeleteFuncDesc(p,a)
904 #define ICreateTypeInfo2_DeleteFuncDescByMemId(p,a,b) (p)->lpVtbl->DeleteFuncDescByMemId(p,a,b)
905 #define ICreateTypeInfo2_DeleteVarDesc(p,a) (p)->lpVtbl->DeleteVarDesc(p,a)
906 #define ICreateTypeInfo2_DeleteVarDescByMemId(p,a) (p)->lpVtbl->DeleteVarDescByMemId(p,a)
907 #define ICreateTypeInfo2_DeleteImplType(p,a) (p)->lpVtbl->DeleteImplType(p,a)
908 #define ICreateTypeInfo2_SetCustData(p,a,b) (p)->lpVtbl->SetCustData(p,a,b)
909 #define ICreateTypeInfo2_SetFuncCustData(p,a,b,c) (p)->lpVtbl->SetFuncCustData(p,a,b,c)
910 #define ICreateTypeInfo2_SetParamCustData(p,a,b,c,d) (p)->lpVtbl->SetParamCustData(p,a,b,c,d)
911 #define ICreateTypeInfo2_SetVarCustData(p,a,b,c) (p)->lpVtbl->SetVarCustData(p,a,b,c)
912 #define ICreateTypeInfo2_SetImplTypeCustData(p,a,b,c) (p)->lpVtbl->SetImplTypeCustData(p,a,b,c)
913 #define ICreateTypeInfo2_SetHelpStringContext(p,a) (p)->lpVtbl->SetHelpStringContext(p,a)
914 #define ICreateTypeInfo2_SetFuncHelpStringContext(p,a,b) (p)->lpVtbl->SetFuncHelpStringContext(p,a,b)
915 #define ICreateTypeInfo2_SetVarHelpStringContext(p,a,b) (p)->lpVtbl->SetVarHelpStringContext(p,a,b)
916 #define ICreateTypeInfo2_Invalidate(p) (p)->lpVtbl->Invalidate(p)
917 #define ICreateTypeInfo2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
918 #endif
919
920 #define INTERFACE ICreateTypeLib
921 DECLARE_INTERFACE_(ICreateTypeLib,IUnknown)
922 {
923 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
924 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
925 STDMETHOD_(ULONG,Release)(THIS) PURE;
926 STDMETHOD(CreateTypeInfo)(THIS_ LPOLESTR,TYPEKIND,ICreateTypeInfo**) PURE;
927 STDMETHOD(SetName)(THIS_ LPOLESTR) PURE;
928 STDMETHOD(SetVersion)(THIS_ WORD,WORD) PURE;
929 STDMETHOD(SetGuid)(THIS_ REFGUID) PURE;
930 STDMETHOD(SetDocString)(THIS_ LPOLESTR) PURE;
931 STDMETHOD(SetHelpFileName)(THIS_ LPOLESTR) PURE;
932 STDMETHOD(SetHelpContext)(THIS_ DWORD) PURE;
933 STDMETHOD(SetLcid)(THIS_ LCID) PURE;
934 STDMETHOD(SetLibFlags)(THIS_ UINT) PURE;
935 STDMETHOD(SaveAllChanges)(THIS) PURE;
936 };
937 #undef INTERFACE
938
939 #ifdef COBJMACROS
940 #define ICreateTypeLib_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
941 #define ICreateTypeLib_AddRef(p) (p)->lpVtbl->AddRef(p)
942 #define ICreateTypeLib_Release(p) (p)->lpVtbl->Release(p)
943 #define ICreateTypeLib_CreateTypeInfo(p,a,b,c) (p)->lpVtbl->CreateTypeInfo(p,a,b,c)
944 #define ICreateTypeLib_SetName(p,a) (p)->lpVtbl->SetName(p,a)
945 #define ICreateTypeLib_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
946 #define ICreateTypeLib_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
947 #define ICreateTypeLib_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
948 #define ICreateTypeLib_SetHelpFileName(p,a) (p)->lpVtbl->SetHelpFileName(p,a)
949 #define ICreateTypeLib_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
950 #define ICreateTypeLib_SetLcid(p,a) (p)->lpVtbl->SetLcid(p,a)
951 #define ICreateTypeLib_SetLibFlags(p,a) (p)->lpVtbl->SetLibFlags(p,a)
952 #define ICreateTypeLib_SaveAllChanges(p) (p)->lpVtbl->SaveAllChanges(p)
953 #endif
954
955 #define INTERFACE ICreateTypeLib2
956 DECLARE_INTERFACE_(ICreateTypeLib2,IUnknown)
957 {
958 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
959 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
960 STDMETHOD_(ULONG,Release)(THIS) PURE;
961 STDMETHOD(CreateTypeInfo)(THIS_ LPOLESTR,TYPEKIND,ICreateTypeInfo**) PURE;
962 STDMETHOD(SetName)(THIS_ LPOLESTR) PURE;
963 STDMETHOD(SetVersion)(THIS_ WORD,WORD) PURE;
964 STDMETHOD(SetGuid)(THIS_ REFGUID) PURE;
965 STDMETHOD(SetDocString)(THIS_ LPOLESTR) PURE;
966 STDMETHOD(SetHelpFileName)(THIS_ LPOLESTR) PURE;
967 STDMETHOD(SetHelpContext)(THIS_ DWORD) PURE;
968 STDMETHOD(SetLcid)(THIS_ LCID) PURE;
969 STDMETHOD(SetLibFlags)(THIS_ UINT) PURE;
970 STDMETHOD(SaveAllChanges)(THIS) PURE;
971 STDMETHOD(DeleteTypeInfo)(THIS_ LPOLESTR) PURE;
972 STDMETHOD(SetCustData)(THIS_ REFGUID, VARIANT*) PURE;
973 STDMETHOD(SetHelpStringContext)(THIS_ ULONG) PURE;
974 STDMETHOD(SetHelpStringDll)(THIS_ LPOLESTR) PURE;
975 };
976 #undef INTERFACE
977
978 #ifdef COBJMACROS
979 #define ICreateTypeLib2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
980 #define ICreateTypeLib2_AddRef(p) (p)->lpVtbl->AddRef(p)
981 #define ICreateTypeLib2_Release(p) (p)->lpVtbl->Release(p)
982 #define ICreateTypeLib2_CreateTypeInfo(p,a,b,c) (p)->lpVtbl->CreateTypeInfo(p,a,b,c)
983 #define ICreateTypeLib2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
984 #define ICreateTypeLib2_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
985 #define ICreateTypeLib2_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
986 #define ICreateTypeLib2_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
987 #define ICreateTypeLib2_SetHelpFileName(p,a) (p)->lpVtbl->SetHelpFileName(p,a)
988 #define ICreateTypeLib2_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
989 #define ICreateTypeLib2_SetLcid(p,a) (p)->lpVtbl->SetLcid(p,a)
990 #define ICreateTypeLib2_SetLibFlags(p,a) (p)->lpVtbl->SetLibFlags(p,a)
991 #define ICreateTypeLib2_SaveAllChanges(p) (p)->lpVtbl->SaveAllChanges(p)
992 #define ICreateTypeLib2_DeleteTypeInfo(p,a) (p)->lpVtbl->DeleteTypeInfo(p,a)
993 #define ICreateTypeLib2_SetCustData(p,a,b) (p)->lpVtbl->SetCustData(p,a,b)
994 #define ICreateTypeLib2_SetHelpStringContext(p,a) (p)->lpVtbl->SetHelpStringContext(p,a)
995 #define ICreateTypeLib2_SetHelpStringDll(p,a) (p)->lpVtbl->SetHelpStringDll(p,a)
996 #endif
997
998 EXTERN_C const IID IID_IErrorInfo;
999 #define INTERFACE IErrorInfo
1000 DECLARE_INTERFACE_(IErrorInfo, IUnknown)
1001 {
1002 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
1003 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1004 STDMETHOD_(ULONG,Release)(THIS) PURE;
1005 STDMETHOD(GetGUID)(THIS_ GUID*) PURE;
1006 STDMETHOD(GetSource)(THIS_ BSTR*) PURE;
1007 STDMETHOD(GetDescription)(THIS_ BSTR*) PURE;
1008 STDMETHOD(GetHelpFile)(THIS_ BSTR*) PURE;
1009 STDMETHOD(GetHelpContext)(THIS_ DWORD*) PURE;
1010 };
1011 #undef INTERFACE
1012
1013 #ifdef COBJMACROS
1014 #define IErrorInfo_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1015 #define IErrorInfo_AddRef(T) (T)->lpVtbl->AddRef(T)
1016 #define IErrorInfo_Release(T) (T)->lpVtbl->Release(T)
1017 #define IErrorInfo_GetGUID(T,a) (T)->lpVtbl->GetGUID(T,a)
1018 #define IErrorInfo_GetSource(T,a) (T)->lpVtbl->GetSource(T,a)
1019 #define IErrorInfo_GetDescription(T,a) (T)->lpVtbl->GetDescription(T,a)
1020 #define IErrorInfo_GetHelpFile(T,a) (T)->lpVtbl->GetHelpFile(T,a)
1021 #define IErrorInfo_GetHelpContext(T,a) (T)->lpVtbl->GetHelpContext(T,a)
1022 #endif
1023
1024 EXTERN_C const IID IID_ICreateErrorInfo;
1025 #define INTERFACE ICreateErrorInfo
1026 DECLARE_INTERFACE_(ICreateErrorInfo, IUnknown)
1027 {
1028 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*)PURE;
1029 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1030 STDMETHOD_(ULONG,Release)(THIS) PURE;
1031 STDMETHOD(SetGUID)(THIS_ REFGUID) PURE;
1032 STDMETHOD(SetSource)(THIS_ LPOLESTR) PURE;
1033 STDMETHOD(SetDescription)(THIS_ LPOLESTR) PURE;
1034 STDMETHOD(SetHelpFile)(THIS_ LPOLESTR) PURE;
1035 STDMETHOD(SetHelpContext)(THIS_ DWORD) PURE;
1036 };
1037 #undef INTERFACE
1038
1039 EXTERN_C const IID IID_ISupportErrorInfo;
1040 #define INTERFACE ISupportErrorInfo
1041 DECLARE_INTERFACE_(ISupportErrorInfo, IUnknown)
1042 {
1043 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
1044 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1045 STDMETHOD_(ULONG,Release)(THIS) PURE;
1046 STDMETHOD(InterfaceSupportsErrorInfo)(THIS_ REFIID) PURE;
1047 };
1048 #undef INTERFACE
1049
1050 EXTERN_C const IID IID_IRecordInfo;
1051 #define INTERFACE IRecordInfo
1052 DECLARE_INTERFACE_(IRecordInfo, IUnknown)
1053 {
1054 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
1055 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1056 STDMETHOD_(ULONG,Release)(THIS) PURE;
1057 STDMETHOD(RecordInit)(THIS_ PVOID) PURE;
1058 STDMETHOD(RecordClear)(THIS_ PVOID) PURE;
1059 STDMETHOD(RecordCopy)(THIS_ PVOID, PVOID) PURE;
1060 STDMETHOD(GetGuid)(THIS_ GUID*) PURE;
1061 STDMETHOD(GetName)(THIS_ BSTR*) PURE;
1062 STDMETHOD(GetSize)(THIS_ ULONG*) PURE;
1063 STDMETHOD(GetTypeInfo)(THIS_ ITypeInfo**) PURE;
1064 STDMETHOD(GetField)(THIS_ PVOID,LPCOLESTR,VARIANT*) PURE;
1065 STDMETHOD(GetFieldNoCopy)(THIS_ PVOID,LPCOLESTR,VARIANT*,PVOID*) PURE;
1066 STDMETHOD(PutField )(THIS_ ULONG,PVOID,LPCOLESTR, VARIANT*) PURE;
1067 STDMETHOD(PutFieldNoCopy)(THIS_ ULONG,PVOID,LPCOLESTR,VARIANT*) PURE;
1068 STDMETHOD(GetFieldNames)(THIS_ ULONG*,BSTR*) PURE;
1069 STDMETHOD_(BOOL,IsMatchingType)(THIS_ THIS) PURE;
1070 STDMETHOD_(PVOID,RecordCreate)(THIS) PURE;
1071 STDMETHOD(RecordCreateCopy)(THIS_ PVOID,PVOID*) PURE;
1072 STDMETHOD(RecordDestroy )(THIS_ PVOID) PURE;
1073 };
1074 #undef INTERFACE
1075
1076 #ifdef COBJMACROS
1077 #define IRecordInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1078 #define IRecordInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
1079 #define IRecordInfo_Release(p) (p)->lpVtbl->Release(p)
1080 #define IRecordInfo_RecordInit(p,a) (p)->lpVtbl->RecordInit(p,a)
1081 #define IRecordInfo_RecordClear(p,a) (p)->lpVtbl->RecordClear(p,a)
1082 #define IRecordInfo_RecordCopy(p,a,b) (p)->lpVtbl->RecordCopy(p,a,b)
1083 #define IRecordInfo_GetGuid(p,a) (p)->lpVtbl->GetGuid(p,a)
1084 #define IRecordInfo_GetName(p,a) (p)->lpVtbl->GetName(p,a)
1085 #define IRecordInfo_GetSize(p,a) (p)->lpVtbl->GetSize(p,a)
1086 #define IRecordInfo_GetTypeInfo(p,a) (p)->lpVtbl->GetTypeInfo(p,a)
1087 #define IRecordInfo_GetField(p,a,b,c) (p)->lpVtbl->GetField(p,a,b,c)
1088 #define IRecordInfo_GetFieldNoCopy(p,a,b,c,d) (p)->lpVtbl->GetFieldNoCopy(p,a,b,c,d)
1089 #define IRecordInfo_PutField(p,a,b,c,d) (p)->lpVtbl->PutField(p,a,b,c,d)
1090 #define IRecordInfo_PutFieldNoCopy(p,a,b,c,d) (p)->lpVtbl->PutFieldNoCopy(p,a,b,c,d)
1091 #define IRecordInfo_GetFieldNames(p,a,b) (p)->lpVtbl->GetFieldNames(p,a,b)
1092 #define IRecordInfo_IsMatchingType(p,a) (p)->lpVtbl->IsMatchingType(p,a)
1093 #define IRecordInfo_RecordCreate(p) (p)->lpVtbl->RecordCreate(p)
1094 #define IRecordInfo_RecordCreateCopy(p,a,b) (p)->lpVtbl->RecordCreateCopy(p,a,b)
1095 #define IRecordInfo_RecordDestroy(p,a) (p)->lpVtbl->RecordDestroy(p,a)
1096 #endif
1097
1098 EXTERN_C const IID IID_ITypeMarshal;
1099 #define INTERFACE ITypeMarshal
1100 DECLARE_INTERFACE_(ITypeMarshal, IUnknown)
1101 {
1102 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
1103 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1104 STDMETHOD_(ULONG,Release)(THIS) PURE;
1105 STDMETHOD(Size)(THIS_ PVOID,DWORD,PVOID,ULONG*) PURE;
1106 STDMETHOD(Marshal)(THIS_ PVOID,DWORD,PVOID,ULONG,BYTE*,ULONG*) PURE;
1107 STDMETHOD(Unmarshal)(THIS_ PVOID,DWORD,ULONG,BYTE*,ULONG*) PURE;
1108 STDMETHOD(Free)(THIS_ PVOID) PURE;
1109 };
1110 #undef INTERFACE
1111
1112 unsigned long __RPC_USER BSTR_UserSize(unsigned long*,unsigned long,LPBSTR);
1113 unsigned char* __RPC_USER BSTR_UserMarshal(unsigned long*,unsigned char*,LPBSTR);
1114 unsigned char* __RPC_USER BSTR_UserUnmarshal(unsigned long*,unsigned char*,LPBSTR);
1115 void __RPC_USER BSTR_UserFree(unsigned long*,LPBSTR);
1116 unsigned long __RPC_USER CLEANLOCALSTORAGE_UserSize(unsigned long*,unsigned long,CLEANLOCALSTORAGE*);
1117 unsigned char* __RPC_USER CLEANLOCALSTORAGE_UserMarshal(unsigned long*,unsigned char*,CLEANLOCALSTORAGE*);
1118 unsigned char* __RPC_USER CLEANLOCALSTORAGE_UserUnmarshal(unsigned long*,unsigned char*,CLEANLOCALSTORAGE*);
1119 void __RPC_USER CLEANLOCALSTORAGE_UserFree(unsigned long*,CLEANLOCALSTORAGE*);
1120 unsigned long __RPC_USER VARIANT_UserSize(unsigned long*,unsigned long,LPVARIANT);
1121 unsigned char* __RPC_USER VARIANT_UserMarshal(unsigned long*,unsigned char*,LPVARIANT);
1122 unsigned char* __RPC_USER VARIANT_UserUnmarshal(unsigned long*,unsigned char*,LPVARIANT);
1123 void __RPC_USER VARIANT_UserFree(unsigned long*,LPVARIANT);
1124 HRESULT STDMETHODCALLTYPE IDispatch_Invoke_Proxy(LPDISPATCH,DISPID,REFIID,LCID,WORD,DISPPARAMS*,LPVARIANT,LPEXCEPINFO,LPUINT);
1125 HRESULT STDMETHODCALLTYPE IDispatch_Invoke_Stub(LPDISPATCH,DISPID,REFIID,LCID,DWORD,DISPPARAMS*,LPVARIANT,LPEXCEPINFO,LPUINT,UINT,LPUINT,LPVARIANTARG);
1126 HRESULT STDMETHODCALLTYPE IDispatch_RemoteInvoke_Proxy(LPDISPATCH,DISPID,REFIID,LCID,DWORD,DISPPARAMS*,LPVARIANT,LPEXCEPINFO,LPUINT,UINT,LPUINT,LPVARIANTARG);
1127 HRESULT STDMETHODCALLTYPE IEnumVARIANT_Next_Proxy(LPENUMVARIANT,ULONG,LPVARIANT,PULONG);
1128 HRESULT STDMETHODCALLTYPE IEnumVARIANT_Next_Stub(LPENUMVARIANT,ULONG,LPVARIANT,PULONG);
1129 HRESULT STDMETHODCALLTYPE IEnumVARIANT_RemoteNext_Proxy(LPENUMVARIANT,ULONG,LPVARIANT,PULONG);
1130 HRESULT STDMETHODCALLTYPE ITypeComp_Bind_Proxy(LPTYPECOMP,LPOLESTR,ULONG,WORD,LPTYPEINFO*,DESCKIND*,BINDPTR*);
1131 HRESULT STDMETHODCALLTYPE ITypeComp_Bind_Stub(LPTYPECOMP,LPOLESTR,ULONG,WORD,LPTYPEINFO*,DESCKIND*,LPFUNCDESC*,LPVARDESC*,LPTYPECOMP*,CLEANLOCALSTORAGE*);
1132 HRESULT STDMETHODCALLTYPE ITypeComp_BindType_Proxy(LPTYPECOMP,LPOLESTR,ULONG,LPTYPEINFO*,LPTYPECOMP*);
1133 HRESULT STDMETHODCALLTYPE ITypeComp_BindType_Stub(LPTYPECOMP,LPOLESTR,ULONG,LPTYPEINFO*);
1134 HRESULT STDMETHODCALLTYPE ITypeInfo_GetTypeAttr_Proxy(LPTYPEINFO,LPTYPEATTR*);
1135 HRESULT STDMETHODCALLTYPE ITypeInfo_GetTypeAttr_Stub(LPTYPEINFO,LPTYPEATTR*,CLEANLOCALSTORAGE*);
1136 HRESULT STDMETHODCALLTYPE ITypeInfo_GetFuncDesc_Proxy(LPTYPEINFO,UINT,FUNCDESC**);
1137 HRESULT STDMETHODCALLTYPE ITypeInfo_GetFuncDesc_Stub(LPTYPEINFO,UINT,LPFUNCDESC*,CLEANLOCALSTORAGE*);
1138 HRESULT STDMETHODCALLTYPE ITypeInfo_GetVarDesc_Proxy(LPTYPEINFO,UINT,LPVARDESC*);
1139 HRESULT STDMETHODCALLTYPE ITypeInfo_GetVarDesc_Stub(LPTYPEINFO,UINT,LPVARDESC*,CLEANLOCALSTORAGE*);
1140 HRESULT STDMETHODCALLTYPE ITypeInfo_GetNames_Proxy(LPTYPEINFO,MEMBERID,LPBSTR,UINT,LPUINT);
1141 HRESULT STDMETHODCALLTYPE ITypeInfo_GetNames_Stub(LPTYPEINFO,MEMBERID,LPBSTR,UINT,LPUINT);
1142 HRESULT STDMETHODCALLTYPE ITypeInfo_GetIDsOfNames_Proxy(LPTYPEINFO,LPOLESTR*,UINT,MEMBERID*);
1143 HRESULT STDMETHODCALLTYPE ITypeInfo_GetIDsOfNames_Stub(LPTYPEINFO);
1144 HRESULT STDMETHODCALLTYPE ITypeInfo_Invoke_Proxy(LPTYPEINFO,PVOID,MEMBERID,WORD,DISPPARAMS*,LPVARIANT,LPEXCEPINFO,LPUINT);
1145 HRESULT STDMETHODCALLTYPE ITypeInfo_Invoke_Stub(LPTYPEINFO);
1146 HRESULT STDMETHODCALLTYPE ITypeInfo_GetDocumentation_Proxy(LPTYPEINFO,MEMBERID,LPBSTR,LPBSTR,LPDWORD,LPBSTR);
1147 HRESULT STDMETHODCALLTYPE ITypeInfo_GetDocumentation_Stub(LPTYPEINFO,MEMBERID,DWORD,LPBSTR,LPBSTR,LPDWORD,LPBSTR);
1148 HRESULT STDMETHODCALLTYPE ITypeInfo_GetDllEntry_Proxy(LPTYPEINFO,MEMBERID,INVOKEKIND,LPBSTR,LPBSTR,LPWORD);
1149 HRESULT STDMETHODCALLTYPE ITypeInfo_GetDllEntry_Stub(LPTYPEINFO,MEMBERID,INVOKEKIND,DWORD,LPBSTR,LPBSTR,LPWORD);
1150 HRESULT STDMETHODCALLTYPE ITypeInfo_AddressOfMember_Proxy(LPTYPEINFO,MEMBERID,INVOKEKIND,PVOID*);
1151 HRESULT STDMETHODCALLTYPE ITypeInfo_AddressOfMember_Stub(LPTYPEINFO);
1152 HRESULT STDMETHODCALLTYPE ITypeInfo_CreateInstance_Proxy(LPTYPEINFO,LPUNKNOWN,REFIID,PVOID*);
1153 HRESULT STDMETHODCALLTYPE ITypeInfo_CreateInstance_Stub(LPTYPEINFO,REFIID,LPUNKNOWN*);
1154 HRESULT STDMETHODCALLTYPE ITypeInfo_GetContainingTypeLib_Proxy(LPTYPEINFO,LPTYPELIB*,PUINT);
1155 HRESULT STDMETHODCALLTYPE ITypeInfo_GetContainingTypeLib_Stub(LPTYPEINFO,LPTYPELIB*,PUINT);
1156 void STDMETHODCALLTYPE ITypeInfo_ReleaseTypeAttr_Proxy(LPTYPEINFO,LPTYPEATTR);
1157 HRESULT STDMETHODCALLTYPE ITypeInfo_ReleaseTypeAttr_Stub(LPTYPEINFO);
1158 void STDMETHODCALLTYPE ITypeInfo_ReleaseFuncDesc_Proxy(LPTYPEINFO,LPFUNCDESC);
1159 HRESULT STDMETHODCALLTYPE ITypeInfo_ReleaseFuncDesc_Stub(LPTYPEINFO);
1160 void STDMETHODCALLTYPE ITypeInfo_ReleaseVarDesc_Proxy(LPTYPEINFO,VARDESC*);
1161 HRESULT STDMETHODCALLTYPE ITypeInfo_ReleaseVarDesc_Stub(LPTYPEINFO);
1162 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetDocumentation2_Proxy(LPTYPEINFO2,MEMBERID,LCID,LPBSTR,LPDWORD,LPBSTR);
1163 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetDocumentation2_Stub(LPTYPEINFO2,MEMBERID,LCID,DWORD,LPBSTR,LPDWORD,LPBSTR);
1164 UINT STDMETHODCALLTYPE ITypeLib_GetTypeInfoCount_Proxy(LPTYPELIB);
1165 HRESULT STDMETHODCALLTYPE ITypeLib_GetTypeInfoCount_Stub(LPTYPELIB,PUINT);
1166 HRESULT STDMETHODCALLTYPE ITypeLib_GetLibAttr_Proxy(LPTYPELIB,LPTLIBATTR*);
1167 HRESULT STDMETHODCALLTYPE ITypeLib_GetLibAttr_Stub(LPTYPELIB,LPTLIBATTR*,CLEANLOCALSTORAGE*);
1168 HRESULT STDMETHODCALLTYPE ITypeLib_GetDocumentation_Proxy(LPTYPELIB,INT,LPBSTR,LPBSTR,LPDWORD,LPBSTR);
1169 HRESULT STDMETHODCALLTYPE ITypeLib_GetDocumentation_Stub(LPTYPELIB,INT,DWORD,LPBSTR,LPBSTR,LPDWORD,LPBSTR);
1170 HRESULT STDMETHODCALLTYPE ITypeLib_IsName_Proxy(LPTYPELIB,LPOLESTR,ULONG,LPBOOL);
1171 HRESULT STDMETHODCALLTYPE ITypeLib_IsName_Stub(LPTYPELIB,LPOLESTR,ULONG,LPBOOL,LPBSTR);
1172 HRESULT STDMETHODCALLTYPE ITypeLib_FindName_Proxy(LPTYPELIB,LPOLESTR,ULONG,LPTYPEINFO*,MEMBERID*,PUSHORT);
1173 HRESULT STDMETHODCALLTYPE ITypeLib_FindName_Stub(LPTYPELIB,LPOLESTR,ULONG,LPTYPEINFO*,MEMBERID*,PUSHORT,LPBSTR);
1174 void STDMETHODCALLTYPE ITypeLib_ReleaseTLibAttr_Proxy(LPTYPELIB,LPTLIBATTR);
1175 HRESULT STDMETHODCALLTYPE ITypeLib_ReleaseTLibAttr_Stub(LPTYPELIB);
1176 HRESULT STDMETHODCALLTYPE ITypeLib2_GetLibStatistics_Proxy(LPTYPELIB2,PULONG,PULONG);
1177 HRESULT STDMETHODCALLTYPE ITypeLib2_GetLibStatistics_Stub(LPTYPELIB2,PULONG,PULONG);
1178 HRESULT STDMETHODCALLTYPE ITypeLib2_GetDocumentation2_Proxy(LPTYPELIB2,INT,LCID,LPBSTR,LPDWORD,LPBSTR);
1179 HRESULT STDMETHODCALLTYPE ITypeLib2_GetDocumentation2_Stub(LPTYPELIB2,INT,LCID,DWORD,LPBSTR,LPDWORD,LPBSTR);
1180
1181 #ifdef __cplusplus
1182 }
1183 #endif
1184 #endif