Merge pull request #195 from dolmen/msys-perl--use-update-lib
[msysgit.git] / include / oaidl.h
blob4e66e54ae0f9489f01a6c14bcd877d16aacd7b40
1 #ifndef _OAIDL_H
2 #define _OAIDL_H
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
6 #ifdef NONAMELESSUNION
7 #define __VARIANT_NAME_1 n1
8 #define __VARIANT_NAME_2 n2
9 #define __VARIANT_NAME_3 n3
10 #define __VARIANT_NAME_4 n4
11 #else
12 #define __tagVARIANT
13 #define __VARIANT_NAME_1
14 #define __VARIANT_NAME_2
15 #define __VARIANT_NAME_3
16 #define __VARIANT_NAME_4
17 #endif
18 #define DISPID_UNKNOWN (-1)
19 #define DISPID_VALUE (0)
20 #define DISPID_PROPERTYPUT (-3)
21 #define DISPID_NEWENUM (-4)
22 #define DISPID_EVALUATE (-5)
23 #define DISPID_CONSTRUCTOR (-6)
24 #define DISPID_DESTRUCTOR (-7)
25 #define DISPID_COLLECT (-8)
26 #define FADF_AUTO (1)
27 #define FADF_STATIC (2)
28 #define FADF_EMBEDDED (4)
29 #define FADF_FIXEDSIZE (16)
30 #define FADF_BSTR (256)
31 #define FADF_UNKNOWN (512)
32 #define FADF_DISPATCH (1024)
33 #define FADF_VARIANT (2048)
34 #define FADF_RESERVED (0xf0e8)
35 #define PARAMFLAG_NONE (0)
36 #define PARAMFLAG_FIN (1)
37 #define PARAMFLAG_FOUT (2)
38 #define PARAMFLAG_FLCID (4)
39 #define PARAMFLAG_FRETVAL (8)
40 #define PARAMFLAG_FOPT (16)
41 #define PARAMFLAG_FHASDEFAULT (32)
42 #define IDLFLAG_NONE PARAMFLAG_NONE
43 #define IDLFLAG_FIN PARAMFLAG_FIN
44 #define IDLFLAG_FOUT PARAMFLAG_FOUT
45 #define IDLFLAG_FLCID PARAMFLAG_FLCID
46 #define IDLFLAG_FRETVAL PARAMFLAG_FRETVAL
47 #define IMPLTYPEFLAG_FDEFAULT 1
48 #define IMPLTYPEFLAG_FSOURCE 2
49 #define IMPLTYPEFLAG_FRESTRICTED 4
50 #define IMPLTYPEFLAG_FDEFAULTVTABLE 8
52 typedef interface ITypeLib *LPTYPELIB;
53 typedef interface ICreateTypeInfo *LPCREATETYPEINFO;
54 typedef interface ICreateTypeInfo2 *LPCREATETYPEINFO2;
55 typedef interface ICreateTypeLib *LPCREATETYPELIB;
56 typedef interface ICreateTypeLib2 *LPCREATETYPELIB2;
57 typedef interface ITypeComp *LPTYPECOMP;
58 typedef interface ITypeInfo *LPTYPEINFO;
59 typedef interface IErrorInfo *LPERRORINFO;
60 typedef interface IDispatch *LPDISPATCH;
61 typedef interface IEnumVARIANT *LPENUMVARIANT;
62 typedef interface ICreateErrorInfo *LPCREATEERRORINFO;
63 typedef interface ISupportErrorInfo *LPSUPPORTERRORINFO;
64 typedef interface IRecordInfo *LPRECORDINFO;
66 extern const IID IID_ITypeLib;
67 extern const IID IID_ICreateTypeInfo;
68 extern const IID IID_ICreateTypeInfo2;
69 extern const IID IID_ICreateTypeLib;
70 extern const IID IID_ICreateTypeLib2;
71 extern const IID IID_ITypeInfo;
72 extern const IID IID_IErrorInfo;
73 extern const IID IID_IDispatch;
74 extern const IID IID_IEnumVARIANT;
75 extern const IID IID_ICreateErrorInfo;
76 extern const IID IID_ISupportErrorInfo;
77 extern const IID IID_IRecordInfo;
79 typedef enum tagSYSKIND {
80 SYS_WIN16,SYS_WIN32,SYS_MAC
81 } SYSKIND;
82 typedef enum tagLIBFLAGS {
83 LIBFLAG_FRESTRICTED=1,LIBFLAG_FCONTROL=2,LIBFLAG_FHIDDEN=4,
84 LIBFLAG_FHASDISKIMAGE=8
85 } LIBFLAGS;
86 typedef struct tagTLIBATTR {
87 GUID guid;
88 LCID lcid;
89 SYSKIND syskind;
90 WORD wMajorVerNum;
91 WORD wMinorVerNum;
92 WORD wLibFlags;
93 } TLIBATTR,*LPTLIBATTR;
94 typedef CY CURRENCY;
95 typedef struct tagSAFEARRAYBOUND {
96 ULONG cElements;
97 LONG lLbound;
98 }SAFEARRAYBOUND,*LPSAFEARRAYBOUND;
99 typedef struct _wireSAFEARR_BSTR
101 ULONG Size;
102 wireBSTR *aBstr;
103 }SAFEARR_BSTR;
104 typedef struct _wireSAFEARR_UNKNOWN {
105 ULONG Size;
106 IUnknown **apUnknown;
107 }SAFEARR_UNKNOWN;
108 typedef struct _wireSAFEARR_DISPATCH {
109 ULONG Size;
110 LPDISPATCH *apDispatch;
111 }SAFEARR_DISPATCH;
112 typedef struct _wireSAFEARR_VARIANT {
113 ULONG Size;
114 struct _wireVARIANT *aVariant;
115 }SAFEARR_VARIANT;
116 typedef enum tagSF_TYPE {
117 SF_ERROR=VT_ERROR,
118 SF_I1=VT_I1,
119 SF_I2=VT_I2,
120 SF_I4=VT_I4,
121 SF_I8=VT_I8,
122 SF_BSTR=VT_BSTR,
123 SF_UNKNOWN=VT_UNKNOWN,
124 SF_DISPATCH=VT_DISPATCH,
125 SF_VARIANT=VT_VARIANT
126 }SF_TYPE;
127 typedef struct _wireBRECORD {
128 ULONG fFlags;
129 ULONG clSize;
130 LPRECORDINFO* pRecInfo;
131 byte* pRecord;
132 } *wireBRECORD;
133 typedef struct _wireSAFEARR_BRECORD {
134 ULONG Size;
135 wireBRECORD* aRecord;
136 } SAFEARR_BRECORD;
137 typedef struct _wireSAFEARR_HAVEIID {
138 ULONG Size;
139 IUnknown** apUnknown;
140 IID iid;
141 } SAFEARR_HAVEIID;
142 typedef struct _wireSAFEARRAY_UNION {
143 ULONG sfType;
144 union {
145 SAFEARR_BSTR BstrStr;
146 SAFEARR_UNKNOWN UnknownStr;
147 SAFEARR_DISPATCH DispatchStr;
148 SAFEARR_VARIANT VariantStr;
149 SAFEARR_BRECORD RecordStr;
150 SAFEARR_HAVEIID HaveIidStr;
151 BYTE_SIZEDARR ByteStr;
152 WORD_SIZEDARR WordStr;
153 DWORD_SIZEDARR LongStr;
154 HYPER_SIZEDARR HyperStr;
156 }SAFEARRAYUNION;
157 typedef struct _wireSAFEARRAY {
158 USHORT cDims;
159 USHORT fFeatures;
160 ULONG cbElements;
161 ULONG cLocks;
162 SAFEARRAYUNION uArrayStructs;
163 SAFEARRAYBOUND rgsabound[1];
164 }*wireSAFEARRAY;
165 typedef wireSAFEARRAY *wirePSAFEARRAY;
166 typedef struct tagSAFEARRAY {
167 USHORT cDims;
168 USHORT fFeatures;
169 ULONG cbElements;
170 ULONG cLocks;
171 PVOID pvData;
172 SAFEARRAYBOUND rgsabound[1];
173 }SAFEARRAY,*LPSAFEARRAY;
174 #if defined (__GNUC__) && !defined (NONAMELESSUNION)
175 __extension__ /* no named members */
176 #endif
177 typedef struct tagVARIANT {
178 _ANONYMOUS_UNION union {
179 struct __tagVARIANT {
180 VARTYPE vt;
181 WORD wReserved1;
182 WORD wReserved2;
183 WORD wReserved3;
184 _ANONYMOUS_UNION union {
185 long lVal;
186 unsigned char bVal;
187 short iVal;
188 float fltVal;
189 double dblVal;
190 VARIANT_BOOL boolVal;
191 SCODE scode;
192 CY cyVal;
193 DATE date;
194 BSTR bstrVal;
195 IUnknown *punkVal;
196 LPDISPATCH pdispVal;
197 SAFEARRAY *parray;
198 unsigned char *pbVal;
199 short *piVal;
200 long *plVal;
201 float *pfltVal;
202 double *pdblVal;
203 VARIANT_BOOL *pboolVal;
204 _VARIANT_BOOL *pbool;
205 SCODE *pscode;
206 CY *pcyVal;
207 DATE *pdate;
208 BSTR *pbstrVal;
209 IUnknown **ppunkVal;
210 LPDISPATCH *ppdispVal;
211 SAFEARRAY **pparray;
212 struct tagVARIANT *pvarVal;
213 void *byref;
214 CHAR cVal;
215 USHORT uiVal;
216 ULONG ulVal;
217 INT intVal;
218 UINT uintVal;
219 DECIMAL *pdecVal;
220 CHAR *pcVal;
221 USHORT *puiVal;
222 ULONG *pulVal;
223 INT *pintVal;
224 UINT *puintVal;
225 _ANONYMOUS_STRUCT struct {
226 PVOID pvRecord;
227 struct IRecordInfo *pRecInfo;
228 } __VARIANT_NAME_4;
229 } __VARIANT_NAME_3;
230 } __VARIANT_NAME_2;
231 DECIMAL decVal;
232 } __VARIANT_NAME_1;
233 } VARIANT,*LPVARIANT;
234 typedef VARIANT VARIANTARG;
235 typedef VARIANT *LPVARIANTARG;
236 typedef struct _wireVARIANT {
237 DWORD clSize;
238 DWORD rpcReserved;
239 USHORT vt;
240 USHORT wReserved1;
241 USHORT wReserved2;
242 USHORT wReserved3;
243 _ANONYMOUS_UNION union {
244 LONG lVal;
245 BYTE bVal;
246 SHORT iVal;
247 FLOAT fltVal;
248 DOUBLE dblVal;
249 VARIANT_BOOL boolVal;
250 SCODE scode;
251 CY cyVal;
252 DATE date;
253 wireBSTR bstrVal;
254 IUnknown *punkVal;
255 LPDISPATCH pdispVal;
256 wirePSAFEARRAY parray;
257 wireBRECORD brecVal;
258 BYTE *pbVal;
259 SHORT *piVal;
260 LONG *plVal;
261 FLOAT *pfltVal;
262 DOUBLE *pdblVal;
263 VARIANT_BOOL *pboolVal;
264 SCODE *pscode;
265 CY *pcyVal;
266 DATE *pdate;
267 wireBSTR *pbstrVal;
268 IUnknown **ppunkVal;
269 LPDISPATCH *ppdispVal;
270 wirePSAFEARRAY *pparray;
271 struct _wireVARIANT *pvarVal;
272 CHAR cVal;
273 USHORT uiVal;
274 ULONG ulVal;
275 INT intVal;
276 UINT uintVal;
277 DECIMAL decVal;
278 DECIMAL *pdecVal;
279 CHAR *pcVal;
280 USHORT *puiVal;
281 ULONG *pulVal;
282 INT *pintVal;
283 UINT *puintVal;
284 } DUMMYUNIONNAME;
285 } *wireVARIANT;
286 typedef LONG DISPID;
287 typedef DISPID MEMBERID;
288 typedef DWORD HREFTYPE;
289 typedef enum tagTYPEKIND {
290 TKIND_ENUM,TKIND_RECORD,TKIND_MODULE,TKIND_INTERFACE,TKIND_DISPATCH,
291 TKIND_COCLASS,TKIND_ALIAS,TKIND_UNION,TKIND_MAX
292 }TYPEKIND;
293 typedef struct tagTYPEDESC {
294 _ANONYMOUS_UNION union {
295 struct tagTYPEDESC *lptdesc;
296 struct tagARRAYDESC *lpadesc;
297 HREFTYPE hreftype;
298 } DUMMYUNIONNAME;
299 VARTYPE vt;
300 }TYPEDESC;
301 typedef struct tagARRAYDESC {
302 TYPEDESC tdescElem;
303 USHORT cDims;
304 SAFEARRAYBOUND rgbounds[1];
305 }ARRAYDESC;
306 typedef struct tagPARAMDESCEX {
307 ULONG cBytes;
308 VARIANTARG varDefaultValue;
309 }PARAMDESCEX,*LPPARAMDESCEX;
310 typedef struct tagPARAMDESC {
311 LPPARAMDESCEX pparamdescex;
312 USHORT wParamFlags;
313 }PARAMDESC,*LPPARAMDESC;
314 typedef struct tagIDLDESC {
315 ULONG dwReserved;
316 USHORT wIDLFlags;
317 }IDLDESC,*LPIDLDESC;
318 typedef struct tagELEMDESC {
319 TYPEDESC tdesc;
320 _ANONYMOUS_UNION union {
321 IDLDESC idldesc;
322 PARAMDESC paramdesc;
323 } DUMMYUNIONNAME;
324 } ELEMDESC,*LPELEMDESC;
325 typedef struct tagTYPEATTR {
326 GUID guid;
327 LCID lcid;
328 DWORD dwReserved;
329 MEMBERID memidConstructor;
330 MEMBERID memidDestructor;
331 LPOLESTR lpstrSchema;
332 ULONG cbSizeInstance;
333 TYPEKIND typekind;
334 WORD cFuncs;
335 WORD cVars;
336 WORD cImplTypes;
337 WORD cbSizeVft;
338 WORD cbAlignment;
339 WORD wTypeFlags;
340 WORD wMajorVerNum;
341 WORD wMinorVerNum;
342 TYPEDESC tdescAlias;
343 IDLDESC idldescType;
344 }TYPEATTR,*LPTYPEATTR;
345 typedef struct tagDISPPARAMS {
346 VARIANTARG *rgvarg;
347 DISPID *rgdispidNamedArgs;
348 UINT cArgs;
349 UINT cNamedArgs;
350 }DISPPARAMS;
351 typedef struct tagEXCEPINFO {
352 WORD wCode;
353 WORD wReserved;
354 BSTR bstrSource;
355 BSTR bstrDescription;
356 BSTR bstrHelpFile;
357 DWORD dwHelpContext;
358 PVOID pvReserved;
359 HRESULT(__stdcall * pfnDeferredFillIn)(struct tagEXCEPINFO*);
360 SCODE scode;
361 } EXCEPINFO,*LPEXCEPINFO;
362 typedef enum tagCALLCONV {
363 CC_FASTCALL,CC_CDECL,CC_MSCPASCAL,CC_PASCAL=CC_MSCPASCAL,
364 CC_MACPASCAL,CC_STDCALL,CC_FPFASTCALL,CC_SYSCALL,CC_MPWCDECL,
365 CC_MPWPASCAL,CC_MAX=CC_MPWPASCAL
366 }CALLCONV;
367 typedef enum tagFUNCKIND {
368 FUNC_VIRTUAL,FUNC_PUREVIRTUAL,FUNC_NONVIRTUAL,
369 FUNC_STATIC,FUNC_DISPATCH
370 }FUNCKIND;
371 typedef enum tagINVOKEKIND {
372 INVOKE_FUNC=1,INVOKE_PROPERTYGET,INVOKE_PROPERTYPUT=4,
373 INVOKE_PROPERTYPUTREF=8
374 }INVOKEKIND;
375 typedef struct tagFUNCDESC {
376 MEMBERID memid;
377 SCODE *lprgscode;
378 ELEMDESC *lprgelemdescParam;
379 FUNCKIND funckind;
380 INVOKEKIND invkind;
381 CALLCONV callconv;
382 SHORT cParams;
383 SHORT cParamsOpt;
384 SHORT oVft;
385 SHORT cScodes;
386 ELEMDESC elemdescFunc;
387 WORD wFuncFlags;
388 }FUNCDESC,*LPFUNCDESC;
389 typedef enum tagVARKIND {
390 VAR_PERINSTANCE,VAR_STATIC,VAR_CONST,VAR_DISPATCH
391 } VARKIND;
392 typedef struct tagVARDESC {
393 MEMBERID memid;
394 LPOLESTR lpstrSchema;
395 _ANONYMOUS_UNION union {
396 ULONG oInst;
397 VARIANT *lpvarValue;
398 } DUMMYUNIONNAME;
399 ELEMDESC elemdescVar;
400 WORD wVarFlags;
401 VARKIND varkind;
402 } VARDESC,*LPVARDESC;
403 typedef enum tagTYPEFLAGS {
404 TYPEFLAG_FAPPOBJECT=1,TYPEFLAG_FCANCREATE=2,TYPEFLAG_FLICENSED=4,
405 TYPEFLAG_FPREDECLID=8,TYPEFLAG_FHIDDEN=16,TYPEFLAG_FCONTROL=32,
406 TYPEFLAG_FDUAL=64,TYPEFLAG_FNONEXTENSIBLE=128,
407 TYPEFLAG_FOLEAUTOMATION=256,TYPEFLAG_FRESTRICTED=512,
408 TYPEFLAG_FAGGREGATABLE=1024,TYPEFLAG_FREPLACEABLE=2048,
409 TYPEFLAG_FDISPATCHABLE=4096,TYPEFLAG_FREVERSEBIND=8192
410 } TYPEFLAGS;
411 typedef enum tagFUNCFLAGS {
412 FUNCFLAG_FRESTRICTED=1,FUNCFLAG_FSOURCE=2,FUNCFLAG_FBINDABLE=4,
413 FUNCFLAG_FREQUESTEDIT=8,FUNCFLAG_FDISPLAYBIND=16,FUNCFLAG_FDEFAULTBIND=32,
414 FUNCFLAG_FHIDDEN=64,FUNCFLAG_FUSESGETLASTERROR=128,FUNCFLAG_FDEFAULTCOLLELEM=256,
415 FUNCFLAG_FUIDEFAULT=512,FUNCFLAG_FNONBROWSABLE=1024,FUNCFLAG_FREPLACEABLE=2048,
416 FUNCFLAG_FIMMEDIATEBIND=4096
417 } FUNCFLAGS;
418 typedef enum tagVARFLAGS {
419 VARFLAG_FREADONLY=1,VARFLAG_FSOURCE=2,VARFLAG_FBINDABLE=4,VARFLAG_FREQUESTEDIT=8,
420 VARFLAG_FDISPLAYBIND=16,VARFLAG_FDEFAULTBIND=32,VARFLAG_FHIDDEN=64,VARFLAG_FRESTRICTED=128,
421 VARFLAG_FDEFAULTCOLLELEM=256,VARFLAG_FUIDEFAULT=512,VARFLAG_FNONBROWSABLE=1024,
422 VARFLAG_FREPLACEABLE=2048,VARFLAG_FIMMEDIATEBIND=4096
423 } VARFLAGS;
424 typedef struct tagCLEANLOCALSTORAGE {
425 IUnknown *pInterface;
426 PVOID pStorage;
427 DWORD flags;
428 } CLEANLOCALSTORAGE;
429 typedef struct tagCUSTDATAITEM {
430 GUID guid;
431 VARIANTARG varValue;
432 } CUSTDATAITEM,*LPCUSTDATAITEM;
433 typedef struct tagCUSTDATA {
434 DWORD cCustData;
435 LPCUSTDATAITEM prgCustData;
436 } CUSTDATA,*LPCUSTDATA;
438 typedef enum tagDESCKIND {
439 DESCKIND_NONE=0,DESCKIND_FUNCDESC=DESCKIND_NONE+1,
440 DESCKIND_VARDESC=DESCKIND_FUNCDESC+1,DESCKIND_TYPECOMP=DESCKIND_VARDESC+1,
441 DESCKIND_IMPLICITAPPOBJ=DESCKIND_TYPECOMP+1,
442 DESCKIND_MAX=DESCKIND_IMPLICITAPPOBJ+1
443 } DESCKIND;
445 typedef union tagBINDPTR {
446 LPFUNCDESC lpfuncdesc;
447 LPVARDESC lpvardesc;
448 LPTYPECOMP lptcomp;
449 } BINDPTR,*LPBINDPTR;
451 #undef INTERFACE
452 #define INTERFACE IDispatch
453 DECLARE_INTERFACE_(IDispatch,IUnknown)
455 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
456 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
457 STDMETHOD_(ULONG,Release)(THIS) PURE;
458 STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
459 STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
460 STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
461 STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
464 #undef INTERFACE
465 #define INTERFACE IEnumVARIANT
466 DECLARE_INTERFACE_(IEnumVARIANT,IUnknown)
468 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
469 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
470 STDMETHOD_(ULONG,Release)(THIS) PURE;
471 STDMETHOD(Next)(THIS_ ULONG,VARIANT*,ULONG*) PURE;
472 STDMETHOD(Skip)(THIS_ ULONG) PURE;
473 STDMETHOD(Reset)(THIS) PURE;
474 STDMETHOD(Clone)(THIS_ IEnumVARIANT**) PURE;
477 #undef INTERFACE
478 #define INTERFACE ITypeComp
479 DECLARE_INTERFACE_(ITypeComp,IUnknown)
481 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
482 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
483 STDMETHOD_(ULONG,Release)(THIS) PURE;
484 STDMETHOD(Bind)(THIS_ LPOLESTR,ULONG,WORD,LPTYPEINFO*,DESCKIND*,LPBINDPTR) PURE;
485 STDMETHOD(BindType)(THIS_ LPOLESTR,ULONG,LPTYPEINFO*,LPTYPECOMP*) PURE;
488 #undef INTERFACE
489 #define INTERFACE ITypeInfo
490 DECLARE_INTERFACE_(ITypeInfo,IUnknown)
492 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
493 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
494 STDMETHOD_(ULONG,Release)(THIS) PURE;
495 STDMETHOD(GetTypeAttr)(THIS_ LPTYPEATTR*) PURE;
496 STDMETHOD(GetTypeComp)(THIS_ LPTYPECOMP*) PURE;
497 STDMETHOD(GetFuncDesc)(THIS_ UINT,LPFUNCDESC*) PURE;
498 STDMETHOD(GetVarDesc)(THIS_ UINT,LPVARDESC*) PURE;
499 STDMETHOD(GetNames)(THIS_ MEMBERID,BSTR*,UINT,UINT*) PURE;
500 STDMETHOD(GetRefTypeOfImplType)(THIS_ UINT,HREFTYPE*) PURE;
501 STDMETHOD(GetImplTypeFlags)(THIS_ UINT,INT*) PURE;
502 STDMETHOD(GetIDsOfNames)(THIS_ LPOLESTR*,UINT,MEMBERID*) PURE;
503 STDMETHOD(Invoke)(THIS_ PVOID,MEMBERID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
504 STDMETHOD(GetDocumentation)(THIS_ MEMBERID,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
505 STDMETHOD(GetDllEntry)(THIS_ MEMBERID,INVOKEKIND,BSTR*,BSTR*,WORD*) PURE;
506 STDMETHOD(GetRefTypeInfo)(THIS_ HREFTYPE,LPTYPEINFO*) PURE;
507 STDMETHOD(AddressOfMember)(THIS_ MEMBERID,INVOKEKIND,PVOID*) PURE;
508 STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
509 STDMETHOD(GetMops)(THIS_ MEMBERID,BSTR*) PURE;
510 STDMETHOD(GetContainingTypeLib)(THIS_ LPTYPELIB*,UINT*) PURE;
511 STDMETHOD_(void,ReleaseTypeAttr)(THIS_ LPTYPEATTR) PURE;
512 STDMETHOD_(void,ReleaseFuncDesc)(THIS_ LPFUNCDESC) PURE;
513 STDMETHOD_(void,ReleaseVarDesc)(THIS_ LPVARDESC) PURE;
516 #undef INTERFACE
517 #define INTERFACE ITypeLib
518 DECLARE_INTERFACE_(ITypeLib,IUnknown)
520 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
521 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
522 STDMETHOD_(ULONG,Release)(THIS) PURE;
523 STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE;
524 STDMETHOD(GetTypeInfo)(THIS_ UINT,ITypeInfo**) PURE;
525 STDMETHOD(GetTypeInfoType)(THIS_ UINT,TYPEKIND*) PURE;
526 STDMETHOD(GetTypeInfoOfGuid)(THIS_ REFGUID,ITypeInfo**) PURE;
527 STDMETHOD(GetLibAttr)(THIS_ TLIBATTR**) PURE;
528 STDMETHOD(GetTypeComp)(THIS_ ITypeComp*) PURE;
529 STDMETHOD(GetDocumentation)(THIS_ INT,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
530 STDMETHOD(IsName)(THIS_ LPOLESTR,ULONG,BOOL*) PURE;
531 STDMETHOD(FindName)(THIS_ LPOLESTR,ULONG,ITypeInfo**,MEMBERID*,USHORT*) PURE;
532 STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR*) PURE;
535 EXTERN_C const IID IID_IErrorInfo;
536 #undef INTERFACE
537 #define INTERFACE IErrorInfo
538 DECLARE_INTERFACE_(IErrorInfo, IUnknown)
540 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
541 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
542 STDMETHOD_(ULONG,Release)(THIS) PURE;
543 STDMETHOD(GetGUID)(THIS_ GUID*) PURE;
544 STDMETHOD(GetSource)(THIS_ BSTR*) PURE;
545 STDMETHOD(GetDescription)(THIS_ BSTR*) PURE;
546 STDMETHOD(GetHelpFile)(THIS_ BSTR*) PURE;
547 STDMETHOD(GetHelpContext)(THIS_ DWORD*) PURE;
550 EXTERN_C const IID IID_ICreateErrorInfo;
551 #undef INTERFACE
552 #define INTERFACE ICreateErrorInfo
553 DECLARE_INTERFACE_(ICreateErrorInfo, IUnknown)
555 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*)PURE;
556 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
557 STDMETHOD_(ULONG,Release)(THIS) PURE;
558 STDMETHOD(SetGUID)(THIS_ REFGUID) PURE;
559 STDMETHOD(SetSource)(THIS_ LPOLESTR) PURE;
560 STDMETHOD(SetDescription)(THIS_ LPOLESTR) PURE;
561 STDMETHOD(SetHelpFile)(THIS_ LPOLESTR) PURE;
562 STDMETHOD(SetHelpContext)(THIS_ DWORD) PURE;
565 EXTERN_C const IID IID_ISupportErrorInfo;
566 #undef INTERFACE
567 #define INTERFACE ISupportErrorInfo
568 DECLARE_INTERFACE_(ISupportErrorInfo, IUnknown)
570 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
571 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
572 STDMETHOD_(ULONG,Release)(THIS) PURE;
573 STDMETHOD(InterfaceSupportsErrorInfo)(THIS_ REFIID) PURE;
576 EXTERN_C const IID IID_IRecordInfo;
577 #undef INTERFACE
578 #define INTERFACE IRecordInfo
579 DECLARE_INTERFACE_(IRecordInfo, IUnknown)
581 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
582 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
583 STDMETHOD_(ULONG,Release)(THIS) PURE;
584 STDMETHOD(RecordInit)(THIS_ PVOID) PURE;
585 STDMETHOD(RecordClear)(THIS_ PVOID) PURE;
586 STDMETHOD(RecordCopy)(THIS_ PVOID, PVOID) PURE;
587 STDMETHOD(GetGuid)(THIS_ GUID*) PURE;
588 STDMETHOD(GetName)(THIS_ BSTR*) PURE;
589 STDMETHOD(GetSize)(THIS_ ULONG*) PURE;
590 STDMETHOD(GetTypeInfo)(THIS_ ITypeInfo**) PURE;
591 STDMETHOD(GetField)(THIS_ PVOID,LPCOLESTR,VARIANT*) PURE;
592 STDMETHOD(GetFieldNoCopy)(THIS_ PVOID,LPCOLESTR,VARIANT*,PVOID*) PURE;
593 STDMETHOD(PutField )(THIS_ ULONG,PVOID,LPCOLESTR, VARIANT*) PURE;
594 STDMETHOD(PutFieldNoCopy)(THIS_ ULONG,PVOID,LPCOLESTR,VARIANT*) PURE;
595 STDMETHOD(GetFieldNames)(THIS_ ULONG*,BSTR*) PURE;
596 STDMETHOD_(BOOL,IsMatchingType)(THIS_ THIS) PURE;
597 STDMETHOD_(PVOID,RecordCreate)(THIS) PURE;
598 STDMETHOD(RecordCreateCopy)(THIS_ PVOID,PVOID*) PURE;
599 STDMETHOD(RecordDestroy )(THIS_ PVOID) PURE;
602 #ifdef __cplusplus
604 #endif
605 #endif