More named pipes tests.
[wine/multimedia.git] / include / oaidl.h
bloba454414cf5e89b983c7ecd293eeca5b6dc650301
1 /*** Autogenerated by WIDL 0.1 from oaidl.idl - Do not edit ***/
2 #include "rpc.h"
3 #include "rpcndr.h"
5 #ifndef __WIDL_OAIDL_H
6 #define __WIDL_OAIDL_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include "objidl.h"
11 typedef struct IDispatch IDispatch;
12 typedef struct ITypeInfo ITypeInfo;
13 typedef struct ITypeLib ITypeLib;
14 typedef struct IRecordInfo IRecordInfo;
15 typedef CY CURRENCY;
17 typedef struct tagSAFEARRAYBOUND {
18 ULONG cElements;
19 LONG lLbound;
20 } SAFEARRAYBOUND, *LPSAFEARRAYBOUND;
22 typedef struct _wireVARIANT *wireVARIANT;
24 typedef struct _wireBRECORD *wireBRECORD;
26 typedef struct _wireSAFEARR_BSTR {
27 ULONG Size;
28 wireBSTR *aBstr;
29 } SAFEARR_BSTR;
31 typedef struct _wireSAFEARR_UNKNOWN {
32 ULONG Size;
33 IUnknown **apUnknown;
34 } SAFEARR_UNKNOWN;
36 typedef struct _wireSAFEARR_DISPATCH {
37 ULONG Size;
38 IDispatch **apDispatch;
39 } SAFEARR_DISPATCH;
41 typedef struct _wireSAFEARR_VARIANT {
42 ULONG Size;
43 wireVARIANT *aVariant;
44 } SAFEARR_VARIANT;
46 typedef struct _wireSAFEARR_BRECORD {
47 ULONG Size;
48 wireBRECORD *aRecord;
49 } SAFEARR_BRECORD;
51 typedef struct _wireSAFEARR_HAVEIID {
52 ULONG Size;
53 IUnknown **apUnknown;
54 IID iid;
55 } SAFEARR_HAVEIID;
57 typedef enum tagSF_TYPE {
58 SF_ERROR = VT_ERROR,
59 SF_I1 = VT_I1,
60 SF_I2 = VT_I2,
61 SF_I4 = VT_I4,
62 SF_I8 = VT_I8,
63 SF_BSTR = VT_BSTR,
64 SF_UNKNOWN = VT_UNKNOWN,
65 SF_DISPATCH = VT_DISPATCH,
66 SF_VARIANT = VT_VARIANT,
67 SF_RECORD = VT_RECORD,
68 SF_HAVEIID = VT_UNKNOWN | VT_RESERVED
69 } SF_TYPE;
71 typedef struct _wireSAFEARRAY_UNION {
72 ULONG sfType;
73 union {
74 SAFEARR_BSTR BstrStr;
75 SAFEARR_UNKNOWN UnknownStr;
76 SAFEARR_DISPATCH DispatchStr;
77 SAFEARR_VARIANT VariantStr;
78 SAFEARR_BRECORD RecordStr;
79 SAFEARR_HAVEIID HaveIidStr;
80 BYTE_SIZEDARR ByteStr;
81 WORD_SIZEDARR WordStr;
82 DWORD_SIZEDARR LongStr;
83 HYPER_SIZEDARR HyperStr;
84 } u;
85 } SAFEARRAYUNION;
87 typedef struct _wireSAFEARRAY {
88 USHORT cDims;
89 USHORT fFeatures;
90 ULONG cbElements;
91 ULONG cLocks;
92 SAFEARRAYUNION uArrayStructs;
93 SAFEARRAYBOUND rgsabound[1];
94 } *wireSAFEARRAY;
96 typedef wireSAFEARRAY *wirePSAFEARRAY;
98 typedef struct tagSAFEARRAY {
99 USHORT cDims;
100 USHORT fFeatures;
101 ULONG cbElements;
102 ULONG cLocks;
103 PVOID pvData;
104 SAFEARRAYBOUND rgsabound[1];
105 } SAFEARRAY;
107 typedef SAFEARRAY *LPSAFEARRAY;
108 unsigned long __RPC_USER LPSAFEARRAY_UserSize (unsigned long *, unsigned long, LPSAFEARRAY *);
109 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal (unsigned long *, unsigned char *, LPSAFEARRAY *);
110 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(unsigned long *, unsigned char *, LPSAFEARRAY *);
111 void __RPC_USER LPSAFEARRAY_UserFree (unsigned long *, LPSAFEARRAY *);
113 #define FADF_AUTO (0x1)
115 #define FADF_STATIC (0x2)
117 #define FADF_EMBEDDED (0x4)
119 #define FADF_FIXEDSIZE (0x10)
121 #define FADF_RECORD (0x20)
123 #define FADF_HAVEIID (0x40)
125 #define FADF_HAVEVARTYPE (0x80)
127 #define FADF_BSTR (0x100)
129 #define FADF_UNKNOWN (0x200)
131 #define FADF_DISPATCH (0x400)
133 #define FADF_VARIANT (0x800)
135 #define FADF_RESERVED (0xf008)
137 #define FADF_CREATEVECTOR (0x2000)
139 #if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION)
140 #define __VARIANT_NAME_1 n1
141 #define __VARIANT_NAME_2 n2
142 #define __VARIANT_NAME_3 n3
143 #define __VARIANT_NAME_4 brecVal
144 #else
145 #define __tagVARIANT
146 #define __VARIANT_NAME_1
147 #define __VARIANT_NAME_2
148 #define __VARIANT_NAME_3
149 #define __tagBRECORD
150 #define __VARIANT_NAME_4
151 #endif
152 typedef struct tagVARIANT VARIANT;
153 unsigned long __RPC_USER VARIANT_UserSize (unsigned long *, unsigned long, VARIANT *);
154 unsigned char * __RPC_USER VARIANT_UserMarshal (unsigned long *, unsigned char *, VARIANT *);
155 unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT *);
156 void __RPC_USER VARIANT_UserFree (unsigned long *, VARIANT *);
158 struct tagVARIANT {
159 union {
160 struct __tagVARIANT {
161 VARTYPE vt;
162 WORD wReserved1;
163 WORD wReserved2;
164 WORD wReserved3;
165 union {
166 CHAR cVal;
167 USHORT uiVal;
168 ULONG ulVal;
169 INT intVal;
170 UINT uintVal;
171 BYTE bVal;
172 SHORT iVal;
173 LONG lVal;
174 FLOAT fltVal;
175 DOUBLE dblVal;
176 VARIANT_BOOL boolVal;
177 SCODE scode;
178 DATE date;
179 BSTR bstrVal;
180 CY cyVal;
181 IUnknown *punkVal;
182 IDispatch *pdispVal;
183 SAFEARRAY *parray;
184 CHAR *pcVal;
185 USHORT *puiVal;
186 ULONG *pulVal;
187 INT *pintVal;
188 UINT *puintVal;
189 BYTE *pbVal;
190 SHORT *piVal;
191 LONG *plVal;
192 FLOAT *pfltVal;
193 DOUBLE *pdblVal;
194 VARIANT_BOOL *pboolVal;
195 SCODE *pscode;
196 DATE *pdate;
197 BSTR *pbstrVal;
198 VARIANT *pvarVal;
199 PVOID byref;
200 CY *pcyVal;
201 DECIMAL *pdecVal;
202 IUnknown **ppunkVal;
203 IDispatch **ppdispVal;
204 SAFEARRAY **pparray;
205 struct __tagBRECORD {
206 PVOID pvRecord;
207 IRecordInfo *pRecInfo;
208 } __VARIANT_NAME_4;
209 } __VARIANT_NAME_3;
210 } __VARIANT_NAME_2;
211 DECIMAL decVal;
212 } __VARIANT_NAME_1;
215 typedef VARIANT *LPVARIANT;
217 typedef VARIANT VARIANTARG;
219 typedef VARIANTARG *LPVARIANTARG;
221 struct _wireBRECORD {
222 ULONG fFlags;
223 ULONG clSize;
224 IRecordInfo *pRecInfo;
225 byte *pRecord;
228 struct _wireVARIANT {
229 DWORD clSize;
230 DWORD rpcReserved;
231 USHORT vt;
232 USHORT wReserved1;
233 USHORT wReserved2;
234 USHORT wReserved3;
235 union {
236 CHAR cVal;
237 USHORT uiVal;
238 ULONG ulVal;
239 INT intVal;
240 UINT uintVal;
241 BYTE bVal;
242 SHORT iVal;
243 LONG lVal;
244 FLOAT fltVal;
245 DOUBLE dblVal;
246 VARIANT_BOOL boolVal;
247 SCODE scode;
248 DATE date;
249 wireBSTR bstrVal;
250 CY cyVal;
251 DECIMAL decVal;
252 IUnknown *punkVal;
253 IDispatch *pdispVal;
254 wireSAFEARRAY parray;
255 CHAR *pcVal;
256 USHORT *puiVal;
257 ULONG *pulVal;
258 INT *pintVal;
259 UINT *puintVal;
260 BYTE *pbVal;
261 SHORT *piVal;
262 LONG *plVal;
263 FLOAT *pfltVal;
264 DOUBLE *pdblVal;
265 VARIANT_BOOL *pboolVal;
266 SCODE *pscode;
267 DATE *pdate;
268 wireBSTR *pbstrVal;
269 wireVARIANT *pvarVal;
270 CY *pcyVal;
271 DECIMAL *pdecVal;
272 IUnknown **ppunkVal;
273 IDispatch **ppdispVal;
274 wireSAFEARRAY *pparray;
275 wireBRECORD brecVal;
276 } DUMMYUNIONNAME;
279 typedef LONG DISPID;
281 typedef DWORD HREFTYPE;
283 typedef DISPID MEMBERID;
285 typedef enum tagTYPEKIND {
286 TKIND_ENUM = 0,
287 TKIND_RECORD,
288 TKIND_MODULE,
289 TKIND_INTERFACE,
290 TKIND_DISPATCH,
291 TKIND_COCLASS,
292 TKIND_ALIAS,
293 TKIND_UNION,
294 TKIND_MAX
295 } TYPEKIND;
297 typedef struct tagTYPEDESC {
298 union {
299 struct tagTYPEDESC *lptdesc;
300 struct tagARRAYDESC *lpadesc;
301 HREFTYPE hreftype;
302 } DUMMYUNIONNAME;
303 VARTYPE vt;
304 } TYPEDESC;
306 typedef struct tagARRAYDESC {
307 TYPEDESC tdescElem;
308 USHORT cDims;
309 SAFEARRAYBOUND rgbounds[1];
310 } ARRAYDESC;
312 typedef struct tagPARAMDESCEX {
313 ULONG cBytes;
314 VARIANTARG varDefaultValue;
315 } PARAMDESCEX, *LPPARAMDESCEX;
317 typedef struct tagPARAMDESC {
318 LPPARAMDESCEX pparamdescex;
319 USHORT wParamFlags;
320 } PARAMDESC, *LPPARAMDESC;
322 #define PARAMFLAG_NONE (0x0)
324 #define PARAMFLAG_FIN (0x1)
326 #define PARAMFLAG_FOUT (0x2)
328 #define PARAMFLAG_FLCID (0x4)
330 #define PARAMFLAG_FRETVAL (0x8)
332 #define PARAMFLAG_FOPT (0x10)
334 #define PARAMFLAG_FHASDEFAULT (0x20)
336 #define PARAMFLAG_FHASCUSTDATA (0x40)
338 typedef struct tagIDLDESC {
339 ULONG dwReserved;
340 USHORT wIDLFlags;
341 } IDLDESC, *LPIDLDESC;
343 #define IDLFLAG_NONE (PARAMFLAG_NONE)
345 #define IDLFLAG_FIN (PARAMFLAG_FIN)
347 #define IDLFLAG_FOUT (PARAMFLAG_FOUT)
349 #define IDLFLAG_FLCID (PARAMFLAG_FLCID)
351 #define IDLFLAG_FRETVAL (PARAMFLAG_FRETVAL)
353 #if 0
354 typedef struct tagELEMDESC {
355 TYPEDESC tdesc;
356 PARAMDESC paramdesc;
357 } ELEMDESC;
359 #else
360 typedef struct tagELEMDESC {
361 TYPEDESC tdesc;
362 union {
363 IDLDESC idldesc;
364 PARAMDESC paramdesc;
365 } DUMMYUNIONNAME;
366 } ELEMDESC, *LPELEMDESC;
367 #endif
368 typedef struct tagTYPEATTR {
369 GUID guid;
370 LCID lcid;
371 DWORD dwReserved;
372 MEMBERID memidConstructor;
373 MEMBERID memidDestructor;
374 LPOLESTR lpstrSchema;
375 ULONG cbSizeInstance;
376 TYPEKIND typekind;
377 WORD cFuncs;
378 WORD cVars;
379 WORD cImplTypes;
380 WORD cbSizeVft;
381 WORD cbAlignment;
382 WORD wTypeFlags;
383 WORD wMajorVerNum;
384 WORD wMinorVerNum;
385 TYPEDESC tdescAlias;
386 IDLDESC idldescType;
387 } TYPEATTR, *LPTYPEATTR;
389 typedef struct tagDISPPARAMS {
390 VARIANTARG *rgvarg;
391 DISPID *rgdispidNamedArgs;
392 UINT cArgs;
393 UINT cNamedArgs;
394 } DISPPARAMS;
396 #if 0
397 typedef struct tagEXCEPINFO {
398 WORD wCode;
399 WORD wReserved;
400 BSTR bstrSource;
401 BSTR bstrDescription;
402 BSTR bstrHelpFile;
403 DWORD dwHelpContext;
404 ULONG pvReserved;
405 ULONG pfnDeferredFillIn;
406 SCODE scode;
407 } EXCEPINFO;
409 #else
410 typedef struct tagEXCEPINFO {
411 WORD wCode;
412 WORD wReserved;
413 BSTR bstrSource;
414 BSTR bstrDescription;
415 BSTR bstrHelpFile;
416 DWORD dwHelpContext;
417 PVOID pvReserved;
418 HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);
419 SCODE scode;
420 } EXCEPINFO, *LPEXCEPINFO;
421 #endif
422 typedef enum tagCALLCONV {
423 CC_FASTCALL = 0,
424 CC_CDECL = 1,
425 CC_MSCPASCAL,
426 CC_PASCAL = CC_MSCPASCAL,
427 CC_MACPASCAL,
428 CC_STDCALL,
429 CC_FPFASTCALL,
430 CC_SYSCALL,
431 CC_MPWCDECL,
432 CC_MPWPASCAL,
433 CC_MAX
434 } CALLCONV;
436 typedef enum tagFUNCKIND {
437 FUNC_VIRTUAL,
438 FUNC_PUREVIRTUAL,
439 FUNC_NONVIRTUAL,
440 FUNC_STATIC,
441 FUNC_DISPATCH
442 } FUNCKIND;
444 typedef enum tagINVOKEKIND {
445 INVOKE_FUNC = 1,
446 INVOKE_PROPERTYGET = 2,
447 INVOKE_PROPERTYPUT = 4,
448 INVOKE_PROPERTYPUTREF = 8
449 } INVOKEKIND;
451 typedef struct tagFUNCDESC {
452 MEMBERID memid;
453 SCODE *lprgscode;
454 ELEMDESC *lprgelemdescParam;
455 FUNCKIND funckind;
456 INVOKEKIND invkind;
457 CALLCONV callconv;
458 SHORT cParams;
459 SHORT cParamsOpt;
460 SHORT oVft;
461 SHORT cScodes;
462 ELEMDESC elemdescFunc;
463 WORD wFuncFlags;
464 } FUNCDESC, *LPFUNCDESC;
466 typedef enum tagVARKIND {
467 VAR_PERINSTANCE,
468 VAR_STATIC,
469 VAR_CONST,
470 VAR_DISPATCH
471 } VARKIND;
473 #define IMPLTYPEFLAG_FDEFAULT (0x1)
475 #define IMPLTYPEFLAG_FSOURCE (0x2)
477 #define IMPLTYPEFLAG_FRESTRICTED (0x4)
479 #define IMPLTYPEFLAG_FDEFAULTVTABLE (0x8)
481 typedef struct tagVARDESC {
482 MEMBERID memid;
483 LPOLESTR lpstrSchema;
484 union {
485 ULONG oInst;
486 VARIANT *lpvarValue;
487 } DUMMYUNIONNAME;
488 ELEMDESC elemdescVar;
489 WORD wVarFlags;
490 VARKIND varkind;
491 } VARDESC, *LPVARDESC;
493 typedef enum tagTYPEFLAGS {
494 TYPEFLAG_FAPPOBJECT = 0x1,
495 TYPEFLAG_FCANCREATE = 0x2,
496 TYPEFLAG_FLICENSED = 0x4,
497 TYPEFLAG_FPREDECLID = 0x8,
498 TYPEFLAG_FHIDDEN = 0x10,
499 TYPEFLAG_FCONTROL = 0x20,
500 TYPEFLAG_FDUAL = 0x40,
501 TYPEFLAG_FNONEXTENSIBLE = 0x80,
502 TYPEFLAG_FOLEAUTOMATION = 0x100,
503 TYPEFLAG_FRESTRICTED = 0x200,
504 TYPEFLAG_FAGGREGATABLE = 0x400,
505 TYPEFLAG_FREPLACEABLE = 0x800,
506 TYPEFLAG_FDISPATCHABLE = 0x1000,
507 TYPEFLAG_FREVERSEBIND = 0x2000,
508 TYPEFLAG_FPROXY = 0x4000
509 } TYPEFLAGS;
511 typedef enum tagFUNCFLAGS {
512 FUNCFLAG_FRESTRICTED = 0x1,
513 FUNCFLAG_FSOURCE = 0x2,
514 FUNCFLAG_FBINDABLE = 0x4,
515 FUNCFLAG_FREQUESTEDIT = 0x8,
516 FUNCFLAG_FDISPLAYBIND = 0x10,
517 FUNCFLAG_FDEFAULTBIND = 0x20,
518 FUNCFLAG_FHIDDEN = 0x40,
519 FUNCFLAG_FUSESGETLASTERROR = 0x80,
520 FUNCFLAG_FDEFAULTCOLLELEM = 0x100,
521 FUNCFLAG_FUIDEFAULT = 0x200,
522 FUNCFLAG_FNONBROWSABLE = 0x400,
523 FUNCFLAG_FREPLACEABLE = 0x800,
524 FUNCFLAG_FIMMEDIATEBIND = 0x1000
525 } FUNCFLAGS;
527 typedef enum tagVARFLAGS {
528 VARFLAG_FREADONLY = 0x1,
529 VARFLAG_FSOURCE = 0x2,
530 VARFLAG_FBINDABLE = 0x4,
531 VARFLAG_FREQUESTEDIT = 0x8,
532 VARFLAG_FDISPLAYBIND = 0x10,
533 VARFLAG_FDEFAULTBIND = 0x20,
534 VARFLAG_FHIDDEN = 0x40,
535 VARFLAG_FRESTRICTED = 0x80,
536 VARFLAG_FDEFAULTCOLLELEM = 0x100,
537 VARFLAG_FUIDEFAULT = 0x200,
538 VARFLAG_FNONBROWSABLE = 0x400,
539 VARFLAG_FREPLACEABLE = 0x800,
540 VARFLAG_FIMMEDIATEBIND = 0x1000
541 } VARFLAGS;
543 typedef struct tagCLEANLOCALSTORAGE {
544 IUnknown *pInterface;
545 PVOID pStorage;
546 DWORD flags;
547 } CLEANLOCALSTORAGE;
548 unsigned long __RPC_USER CLEANLOCALSTORAGE_UserSize (unsigned long *, unsigned long, CLEANLOCALSTORAGE *);
549 unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserMarshal (unsigned long *, unsigned char *, CLEANLOCALSTORAGE *);
550 unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserUnmarshal(unsigned long *, unsigned char *, CLEANLOCALSTORAGE *);
551 void __RPC_USER CLEANLOCALSTORAGE_UserFree (unsigned long *, CLEANLOCALSTORAGE *);
553 typedef struct tagCUSTDATAITEM {
554 GUID guid;
555 VARIANTARG varValue;
556 } CUSTDATAITEM, *LPCUSTDATAITEM;
558 typedef struct tagCUSTDATA {
559 DWORD cCustData;
560 LPCUSTDATAITEM prgCustData;
561 } CUSTDATA, *LPCUSTDATA;
563 typedef IDispatch *LPDISPATCH;
565 #define DISPID_UNKNOWN (-1)
567 #define DISPID_VALUE (0)
569 #define DISPID_PROPERTYPUT (-3)
571 #define DISPID_NEWENUM (-4)
573 #define DISPID_EVALUATE (-5)
575 #define DISPID_CONSTRUCTOR (-6)
577 #define DISPID_DESTRUCTOR (-7)
579 #define DISPID_COLLECT (-8)
581 /*****************************************************************************
582 * IDispatch interface
584 DEFINE_GUID(IID_IDispatch, 0x00020400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
585 #if defined(__cplusplus) && !defined(CINTERFACE)
586 struct IDispatch : public IUnknown
588 virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(
589 UINT* pctinfo) = 0;
591 virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
592 UINT iTInfo,
593 LCID lcid,
594 ITypeInfo** ppTInfo) = 0;
596 virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(
597 REFIID riid,
598 LPOLESTR* rgszNames,
599 UINT cNames,
600 LCID lcid,
601 DISPID* rgDispId) = 0;
603 virtual HRESULT STDMETHODCALLTYPE Invoke(
604 DISPID dispIdMember,
605 REFIID riid,
606 LCID lcid,
607 WORD wFlags,
608 DISPPARAMS* pDispParams,
609 VARIANT* pVarResult,
610 EXCEPINFO* pExcepInfo,
611 UINT* puArgErr) = 0;
614 #else
615 typedef struct IDispatchVtbl IDispatchVtbl;
616 struct IDispatch {
617 const IDispatchVtbl* lpVtbl;
619 struct IDispatchVtbl {
620 ICOM_MSVTABLE_COMPAT_FIELDS
622 /*** IUnknown methods ***/
623 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
624 IDispatch* This,
625 REFIID riid,
626 void** ppvObject);
628 ULONG (STDMETHODCALLTYPE *AddRef)(
629 IDispatch* This);
631 ULONG (STDMETHODCALLTYPE *Release)(
632 IDispatch* This);
634 /*** IDispatch methods ***/
635 HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
636 IDispatch* This,
637 UINT* pctinfo);
639 HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
640 IDispatch* This,
641 UINT iTInfo,
642 LCID lcid,
643 ITypeInfo** ppTInfo);
645 HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
646 IDispatch* This,
647 REFIID riid,
648 LPOLESTR* rgszNames,
649 UINT cNames,
650 LCID lcid,
651 DISPID* rgDispId);
653 HRESULT (STDMETHODCALLTYPE *Invoke)(
654 IDispatch* This,
655 DISPID dispIdMember,
656 REFIID riid,
657 LCID lcid,
658 WORD wFlags,
659 DISPPARAMS* pDispParams,
660 VARIANT* pVarResult,
661 EXCEPINFO* pExcepInfo,
662 UINT* puArgErr);
666 /*** IUnknown methods ***/
667 #define IDispatch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
668 #define IDispatch_AddRef(p) (p)->lpVtbl->AddRef(p)
669 #define IDispatch_Release(p) (p)->lpVtbl->Release(p)
670 /*** IDispatch methods ***/
671 #define IDispatch_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
672 #define IDispatch_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
673 #define IDispatch_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
674 #define IDispatch_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
676 #endif
678 #define IDispatch_METHODS \
679 ICOM_MSVTABLE_COMPAT_FIELDS \
680 /*** IUnknown methods ***/ \
681 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
682 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
683 STDMETHOD_(ULONG,Release)(THIS) PURE; \
684 /*** IDispatch methods ***/ \
685 STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ UINT* pctinfo) PURE; \
686 STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) PURE; \
687 STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) PURE; \
688 STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) PURE;
690 HRESULT CALLBACK IDispatch_GetTypeInfoCount_Proxy(
691 IDispatch* This,
692 UINT* pctinfo);
693 void __RPC_STUB IDispatch_GetTypeInfoCount_Stub(
694 struct IRpcStubBuffer* This,
695 struct IRpcChannelBuffer* pRpcChannelBuffer,
696 PRPC_MESSAGE pRpcMessage,
697 DWORD* pdwStubPhase);
698 HRESULT CALLBACK IDispatch_GetTypeInfo_Proxy(
699 IDispatch* This,
700 UINT iTInfo,
701 LCID lcid,
702 ITypeInfo** ppTInfo);
703 void __RPC_STUB IDispatch_GetTypeInfo_Stub(
704 struct IRpcStubBuffer* This,
705 struct IRpcChannelBuffer* pRpcChannelBuffer,
706 PRPC_MESSAGE pRpcMessage,
707 DWORD* pdwStubPhase);
708 HRESULT CALLBACK IDispatch_GetIDsOfNames_Proxy(
709 IDispatch* This,
710 REFIID riid,
711 LPOLESTR* rgszNames,
712 UINT cNames,
713 LCID lcid,
714 DISPID* rgDispId);
715 void __RPC_STUB IDispatch_GetIDsOfNames_Stub(
716 struct IRpcStubBuffer* This,
717 struct IRpcChannelBuffer* pRpcChannelBuffer,
718 PRPC_MESSAGE pRpcMessage,
719 DWORD* pdwStubPhase);
720 HRESULT CALLBACK IDispatch_RemoteInvoke_Proxy(
721 IDispatch* This,
722 DISPID dispIdMember,
723 REFIID riid,
724 LCID lcid,
725 DWORD dwFlags,
726 DISPPARAMS* pDispParams,
727 VARIANT* pVarResult,
728 EXCEPINFO* pExcepInfo,
729 UINT* pArgErr,
730 UINT cVarRef,
731 UINT* rgVarRefIdx,
732 VARIANTARG* rgVarRef);
733 void __RPC_STUB IDispatch_RemoteInvoke_Stub(
734 struct IRpcStubBuffer* This,
735 struct IRpcChannelBuffer* pRpcChannelBuffer,
736 PRPC_MESSAGE pRpcMessage,
737 DWORD* pdwStubPhase);
738 HRESULT CALLBACK IDispatch_Invoke_Proxy(
739 IDispatch* This,
740 DISPID dispIdMember,
741 REFIID riid,
742 LCID lcid,
743 WORD wFlags,
744 DISPPARAMS* pDispParams,
745 VARIANT* pVarResult,
746 EXCEPINFO* pExcepInfo,
747 UINT* puArgErr);
748 HRESULT __RPC_STUB IDispatch_Invoke_Stub(
749 IDispatch* This,
750 DISPID dispIdMember,
751 REFIID riid,
752 LCID lcid,
753 DWORD dwFlags,
754 DISPPARAMS* pDispParams,
755 VARIANT* pVarResult,
756 EXCEPINFO* pExcepInfo,
757 UINT* pArgErr,
758 UINT cVarRef,
759 UINT* rgVarRefIdx,
760 VARIANTARG* rgVarRef);
762 typedef struct IEnumVARIANT IEnumVARIANT;
763 typedef IEnumVARIANT *LPENUMVARIANT;
765 /*****************************************************************************
766 * IEnumVARIANT interface
768 DEFINE_GUID(IID_IEnumVARIANT, 0x00020404, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
769 #if defined(__cplusplus) && !defined(CINTERFACE)
770 struct IEnumVARIANT : public IUnknown
772 virtual HRESULT STDMETHODCALLTYPE Next(
773 ULONG celt,
774 VARIANT* rgVar,
775 ULONG* pCeltFetched) = 0;
777 virtual HRESULT STDMETHODCALLTYPE Skip(
778 ULONG celt) = 0;
780 virtual HRESULT STDMETHODCALLTYPE Reset(
781 ) = 0;
783 virtual HRESULT STDMETHODCALLTYPE Clone(
784 IEnumVARIANT** ppEnum) = 0;
787 #else
788 typedef struct IEnumVARIANTVtbl IEnumVARIANTVtbl;
789 struct IEnumVARIANT {
790 const IEnumVARIANTVtbl* lpVtbl;
792 struct IEnumVARIANTVtbl {
793 ICOM_MSVTABLE_COMPAT_FIELDS
795 /*** IUnknown methods ***/
796 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
797 IEnumVARIANT* This,
798 REFIID riid,
799 void** ppvObject);
801 ULONG (STDMETHODCALLTYPE *AddRef)(
802 IEnumVARIANT* This);
804 ULONG (STDMETHODCALLTYPE *Release)(
805 IEnumVARIANT* This);
807 /*** IEnumVARIANT methods ***/
808 HRESULT (STDMETHODCALLTYPE *Next)(
809 IEnumVARIANT* This,
810 ULONG celt,
811 VARIANT* rgVar,
812 ULONG* pCeltFetched);
814 HRESULT (STDMETHODCALLTYPE *Skip)(
815 IEnumVARIANT* This,
816 ULONG celt);
818 HRESULT (STDMETHODCALLTYPE *Reset)(
819 IEnumVARIANT* This);
821 HRESULT (STDMETHODCALLTYPE *Clone)(
822 IEnumVARIANT* This,
823 IEnumVARIANT** ppEnum);
827 /*** IUnknown methods ***/
828 #define IEnumVARIANT_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
829 #define IEnumVARIANT_AddRef(p) (p)->lpVtbl->AddRef(p)
830 #define IEnumVARIANT_Release(p) (p)->lpVtbl->Release(p)
831 /*** IEnumVARIANT methods ***/
832 #define IEnumVARIANT_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
833 #define IEnumVARIANT_Skip(p,a) (p)->lpVtbl->Skip(p,a)
834 #define IEnumVARIANT_Reset(p) (p)->lpVtbl->Reset(p)
835 #define IEnumVARIANT_Clone(p,a) (p)->lpVtbl->Clone(p,a)
837 #endif
839 #define IEnumVARIANT_METHODS \
840 ICOM_MSVTABLE_COMPAT_FIELDS \
841 /*** IUnknown methods ***/ \
842 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
843 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
844 STDMETHOD_(ULONG,Release)(THIS) PURE; \
845 /*** IEnumVARIANT methods ***/ \
846 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, VARIANT* rgVar, ULONG* pCeltFetched) PURE; \
847 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
848 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
849 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumVARIANT** ppEnum) PURE;
851 HRESULT CALLBACK IEnumVARIANT_RemoteNext_Proxy(
852 IEnumVARIANT* This,
853 ULONG celt,
854 VARIANT* rgVar,
855 ULONG* pCeltFetched);
856 void __RPC_STUB IEnumVARIANT_RemoteNext_Stub(
857 struct IRpcStubBuffer* This,
858 struct IRpcChannelBuffer* pRpcChannelBuffer,
859 PRPC_MESSAGE pRpcMessage,
860 DWORD* pdwStubPhase);
861 HRESULT CALLBACK IEnumVARIANT_Next_Proxy(
862 IEnumVARIANT* This,
863 ULONG celt,
864 VARIANT* rgVar,
865 ULONG* pCeltFetched);
866 HRESULT __RPC_STUB IEnumVARIANT_Next_Stub(
867 IEnumVARIANT* This,
868 ULONG celt,
869 VARIANT* rgVar,
870 ULONG* pCeltFetched);
871 HRESULT CALLBACK IEnumVARIANT_Skip_Proxy(
872 IEnumVARIANT* This,
873 ULONG celt);
874 void __RPC_STUB IEnumVARIANT_Skip_Stub(
875 struct IRpcStubBuffer* This,
876 struct IRpcChannelBuffer* pRpcChannelBuffer,
877 PRPC_MESSAGE pRpcMessage,
878 DWORD* pdwStubPhase);
879 HRESULT CALLBACK IEnumVARIANT_Reset_Proxy(
880 IEnumVARIANT* This);
881 void __RPC_STUB IEnumVARIANT_Reset_Stub(
882 struct IRpcStubBuffer* This,
883 struct IRpcChannelBuffer* pRpcChannelBuffer,
884 PRPC_MESSAGE pRpcMessage,
885 DWORD* pdwStubPhase);
886 HRESULT CALLBACK IEnumVARIANT_Clone_Proxy(
887 IEnumVARIANT* This,
888 IEnumVARIANT** ppEnum);
889 void __RPC_STUB IEnumVARIANT_Clone_Stub(
890 struct IRpcStubBuffer* This,
891 struct IRpcChannelBuffer* pRpcChannelBuffer,
892 PRPC_MESSAGE pRpcMessage,
893 DWORD* pdwStubPhase);
895 typedef struct ITypeComp ITypeComp;
896 typedef ITypeComp *LPTYPECOMP;
898 typedef enum tagDESCKIND {
899 DESCKIND_NONE = 0,
900 DESCKIND_FUNCDESC,
901 DESCKIND_VARDESC,
902 DESCKIND_TYPECOMP,
903 DESCKIND_IMPLICITAPPOBJ,
904 DESCKIND_MAX
905 } DESCKIND;
907 typedef union tagBINDPTR {
908 FUNCDESC *lpfuncdesc;
909 VARDESC *lpvardesc;
910 ITypeComp *lptcomp;
911 } BINDPTR, *LPBINDPTR;
913 /*****************************************************************************
914 * ITypeComp interface
916 DEFINE_GUID(IID_ITypeComp, 0x00020403, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
917 #if defined(__cplusplus) && !defined(CINTERFACE)
918 struct ITypeComp : public IUnknown
920 virtual HRESULT STDMETHODCALLTYPE Bind(
921 LPOLESTR szName,
922 ULONG lHashVal,
923 WORD wFlags,
924 ITypeInfo** ppTInfo,
925 DESCKIND* pDescKind,
926 BINDPTR* pBindPtr) = 0;
928 virtual HRESULT STDMETHODCALLTYPE BindType(
929 LPOLESTR szName,
930 ULONG lHashVal,
931 ITypeInfo** ppTInfo,
932 ITypeComp** ppTComp) = 0;
935 #else
936 typedef struct ITypeCompVtbl ITypeCompVtbl;
937 struct ITypeComp {
938 const ITypeCompVtbl* lpVtbl;
940 struct ITypeCompVtbl {
941 ICOM_MSVTABLE_COMPAT_FIELDS
943 /*** IUnknown methods ***/
944 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
945 ITypeComp* This,
946 REFIID riid,
947 void** ppvObject);
949 ULONG (STDMETHODCALLTYPE *AddRef)(
950 ITypeComp* This);
952 ULONG (STDMETHODCALLTYPE *Release)(
953 ITypeComp* This);
955 /*** ITypeComp methods ***/
956 HRESULT (STDMETHODCALLTYPE *Bind)(
957 ITypeComp* This,
958 LPOLESTR szName,
959 ULONG lHashVal,
960 WORD wFlags,
961 ITypeInfo** ppTInfo,
962 DESCKIND* pDescKind,
963 BINDPTR* pBindPtr);
965 HRESULT (STDMETHODCALLTYPE *BindType)(
966 ITypeComp* This,
967 LPOLESTR szName,
968 ULONG lHashVal,
969 ITypeInfo** ppTInfo,
970 ITypeComp** ppTComp);
974 /*** IUnknown methods ***/
975 #define ITypeComp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
976 #define ITypeComp_AddRef(p) (p)->lpVtbl->AddRef(p)
977 #define ITypeComp_Release(p) (p)->lpVtbl->Release(p)
978 /*** ITypeComp methods ***/
979 #define ITypeComp_Bind(p,a,b,c,d,e,f) (p)->lpVtbl->Bind(p,a,b,c,d,e,f)
980 #define ITypeComp_BindType(p,a,b,c,d) (p)->lpVtbl->BindType(p,a,b,c,d)
982 #endif
984 #define ITypeComp_METHODS \
985 ICOM_MSVTABLE_COMPAT_FIELDS \
986 /*** IUnknown methods ***/ \
987 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
988 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
989 STDMETHOD_(ULONG,Release)(THIS) PURE; \
990 /*** ITypeComp methods ***/ \
991 STDMETHOD_(HRESULT,Bind)(THIS_ LPOLESTR szName, ULONG lHashVal, WORD wFlags, ITypeInfo** ppTInfo, DESCKIND* pDescKind, BINDPTR* pBindPtr) PURE; \
992 STDMETHOD_(HRESULT,BindType)(THIS_ LPOLESTR szName, ULONG lHashVal, ITypeInfo** ppTInfo, ITypeComp** ppTComp) PURE;
994 HRESULT CALLBACK ITypeComp_RemoteBind_Proxy(
995 ITypeComp* This,
996 LPOLESTR szName,
997 ULONG lHashVal,
998 WORD wFlags,
999 ITypeInfo** ppTInfo,
1000 DESCKIND* pDescKind,
1001 LPFUNCDESC* ppFuncDesc,
1002 LPVARDESC* ppVarDesc,
1003 ITypeComp** ppTypeComp,
1004 CLEANLOCALSTORAGE* pDummy);
1005 void __RPC_STUB ITypeComp_RemoteBind_Stub(
1006 struct IRpcStubBuffer* This,
1007 struct IRpcChannelBuffer* pRpcChannelBuffer,
1008 PRPC_MESSAGE pRpcMessage,
1009 DWORD* pdwStubPhase);
1010 HRESULT CALLBACK ITypeComp_Bind_Proxy(
1011 ITypeComp* This,
1012 LPOLESTR szName,
1013 ULONG lHashVal,
1014 WORD wFlags,
1015 ITypeInfo** ppTInfo,
1016 DESCKIND* pDescKind,
1017 BINDPTR* pBindPtr);
1018 HRESULT __RPC_STUB ITypeComp_Bind_Stub(
1019 ITypeComp* This,
1020 LPOLESTR szName,
1021 ULONG lHashVal,
1022 WORD wFlags,
1023 ITypeInfo** ppTInfo,
1024 DESCKIND* pDescKind,
1025 LPFUNCDESC* ppFuncDesc,
1026 LPVARDESC* ppVarDesc,
1027 ITypeComp** ppTypeComp,
1028 CLEANLOCALSTORAGE* pDummy);
1029 HRESULT CALLBACK ITypeComp_RemoteBindType_Proxy(
1030 ITypeComp* This,
1031 LPOLESTR szName,
1032 ULONG lHashVal,
1033 ITypeInfo** ppTInfo);
1034 void __RPC_STUB ITypeComp_RemoteBindType_Stub(
1035 struct IRpcStubBuffer* This,
1036 struct IRpcChannelBuffer* pRpcChannelBuffer,
1037 PRPC_MESSAGE pRpcMessage,
1038 DWORD* pdwStubPhase);
1039 HRESULT CALLBACK ITypeComp_BindType_Proxy(
1040 ITypeComp* This,
1041 LPOLESTR szName,
1042 ULONG lHashVal,
1043 ITypeInfo** ppTInfo,
1044 ITypeComp** ppTComp);
1045 HRESULT __RPC_STUB ITypeComp_BindType_Stub(
1046 ITypeComp* This,
1047 LPOLESTR szName,
1048 ULONG lHashVal,
1049 ITypeInfo** ppTInfo);
1051 typedef ITypeInfo *LPTYPEINFO;
1053 /*****************************************************************************
1054 * ITypeInfo interface
1056 DEFINE_GUID(IID_ITypeInfo, 0x00020401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1057 #if defined(__cplusplus) && !defined(CINTERFACE)
1058 struct ITypeInfo : public IUnknown
1060 virtual HRESULT STDMETHODCALLTYPE GetTypeAttr(
1061 TYPEATTR** ppTypeAttr) = 0;
1063 virtual HRESULT STDMETHODCALLTYPE GetTypeComp(
1064 ITypeComp** ppTComp) = 0;
1066 virtual HRESULT STDMETHODCALLTYPE GetFuncDesc(
1067 UINT index,
1068 FUNCDESC** ppFuncDesc) = 0;
1070 virtual HRESULT STDMETHODCALLTYPE GetVarDesc(
1071 UINT index,
1072 VARDESC** ppVarDesc) = 0;
1074 virtual HRESULT STDMETHODCALLTYPE GetNames(
1075 MEMBERID memid,
1076 BSTR* rgBstrNames,
1077 UINT cMaxNames,
1078 UINT* pcNames) = 0;
1080 virtual HRESULT STDMETHODCALLTYPE GetRefTypeOfImplType(
1081 UINT index,
1082 HREFTYPE* pRefType) = 0;
1084 virtual HRESULT STDMETHODCALLTYPE GetImplTypeFlags(
1085 UINT index,
1086 INT* pImplTypeFlags) = 0;
1088 virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(
1089 LPOLESTR* rgszNames,
1090 UINT cNames,
1091 MEMBERID* pMemId) = 0;
1093 virtual HRESULT STDMETHODCALLTYPE Invoke(
1094 PVOID pvInstance,
1095 MEMBERID memid,
1096 WORD wFlags,
1097 DISPPARAMS* pDispParams,
1098 VARIANT* pVarResult,
1099 EXCEPINFO* pExcepInfo,
1100 UINT* puArgErr) = 0;
1102 virtual HRESULT STDMETHODCALLTYPE GetDocumentation(
1103 MEMBERID memid,
1104 BSTR* pBstrName,
1105 BSTR* pBstrDocString,
1106 DWORD* pdwHelpContext,
1107 BSTR* pBstrHelpFile) = 0;
1109 virtual HRESULT STDMETHODCALLTYPE GetDllEntry(
1110 MEMBERID memid,
1111 INVOKEKIND invKind,
1112 BSTR* pBstrDllName,
1113 BSTR* pBstrName,
1114 WORD* pwOrdinal) = 0;
1116 virtual HRESULT STDMETHODCALLTYPE GetRefTypeInfo(
1117 HREFTYPE hRefType,
1118 ITypeInfo** ppTInfo) = 0;
1120 virtual HRESULT STDMETHODCALLTYPE AddressOfMember(
1121 MEMBERID memid,
1122 INVOKEKIND invKind,
1123 PVOID* ppv) = 0;
1125 virtual HRESULT STDMETHODCALLTYPE CreateInstance(
1126 IUnknown* pUnkOuter,
1127 REFIID riid,
1128 PVOID* ppvObj) = 0;
1130 virtual HRESULT STDMETHODCALLTYPE GetMops(
1131 MEMBERID memid,
1132 BSTR* pBstrMops) = 0;
1134 virtual HRESULT STDMETHODCALLTYPE GetContainingTypeLib(
1135 ITypeLib** ppTLib,
1136 UINT* pIndex) = 0;
1138 virtual void STDMETHODCALLTYPE ReleaseTypeAttr(
1139 TYPEATTR* pTypeAttr) = 0;
1141 virtual void STDMETHODCALLTYPE ReleaseFuncDesc(
1142 FUNCDESC* pFuncDesc) = 0;
1144 virtual void STDMETHODCALLTYPE ReleaseVarDesc(
1145 VARDESC* pVarDesc) = 0;
1148 #else
1149 typedef struct ITypeInfoVtbl ITypeInfoVtbl;
1150 struct ITypeInfo {
1151 const ITypeInfoVtbl* lpVtbl;
1153 struct ITypeInfoVtbl {
1154 ICOM_MSVTABLE_COMPAT_FIELDS
1156 /*** IUnknown methods ***/
1157 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1158 ITypeInfo* This,
1159 REFIID riid,
1160 void** ppvObject);
1162 ULONG (STDMETHODCALLTYPE *AddRef)(
1163 ITypeInfo* This);
1165 ULONG (STDMETHODCALLTYPE *Release)(
1166 ITypeInfo* This);
1168 /*** ITypeInfo methods ***/
1169 HRESULT (STDMETHODCALLTYPE *GetTypeAttr)(
1170 ITypeInfo* This,
1171 TYPEATTR** ppTypeAttr);
1173 HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
1174 ITypeInfo* This,
1175 ITypeComp** ppTComp);
1177 HRESULT (STDMETHODCALLTYPE *GetFuncDesc)(
1178 ITypeInfo* This,
1179 UINT index,
1180 FUNCDESC** ppFuncDesc);
1182 HRESULT (STDMETHODCALLTYPE *GetVarDesc)(
1183 ITypeInfo* This,
1184 UINT index,
1185 VARDESC** ppVarDesc);
1187 HRESULT (STDMETHODCALLTYPE *GetNames)(
1188 ITypeInfo* This,
1189 MEMBERID memid,
1190 BSTR* rgBstrNames,
1191 UINT cMaxNames,
1192 UINT* pcNames);
1194 HRESULT (STDMETHODCALLTYPE *GetRefTypeOfImplType)(
1195 ITypeInfo* This,
1196 UINT index,
1197 HREFTYPE* pRefType);
1199 HRESULT (STDMETHODCALLTYPE *GetImplTypeFlags)(
1200 ITypeInfo* This,
1201 UINT index,
1202 INT* pImplTypeFlags);
1204 HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1205 ITypeInfo* This,
1206 LPOLESTR* rgszNames,
1207 UINT cNames,
1208 MEMBERID* pMemId);
1210 HRESULT (STDMETHODCALLTYPE *Invoke)(
1211 ITypeInfo* This,
1212 PVOID pvInstance,
1213 MEMBERID memid,
1214 WORD wFlags,
1215 DISPPARAMS* pDispParams,
1216 VARIANT* pVarResult,
1217 EXCEPINFO* pExcepInfo,
1218 UINT* puArgErr);
1220 HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
1221 ITypeInfo* This,
1222 MEMBERID memid,
1223 BSTR* pBstrName,
1224 BSTR* pBstrDocString,
1225 DWORD* pdwHelpContext,
1226 BSTR* pBstrHelpFile);
1228 HRESULT (STDMETHODCALLTYPE *GetDllEntry)(
1229 ITypeInfo* This,
1230 MEMBERID memid,
1231 INVOKEKIND invKind,
1232 BSTR* pBstrDllName,
1233 BSTR* pBstrName,
1234 WORD* pwOrdinal);
1236 HRESULT (STDMETHODCALLTYPE *GetRefTypeInfo)(
1237 ITypeInfo* This,
1238 HREFTYPE hRefType,
1239 ITypeInfo** ppTInfo);
1241 HRESULT (STDMETHODCALLTYPE *AddressOfMember)(
1242 ITypeInfo* This,
1243 MEMBERID memid,
1244 INVOKEKIND invKind,
1245 PVOID* ppv);
1247 HRESULT (STDMETHODCALLTYPE *CreateInstance)(
1248 ITypeInfo* This,
1249 IUnknown* pUnkOuter,
1250 REFIID riid,
1251 PVOID* ppvObj);
1253 HRESULT (STDMETHODCALLTYPE *GetMops)(
1254 ITypeInfo* This,
1255 MEMBERID memid,
1256 BSTR* pBstrMops);
1258 HRESULT (STDMETHODCALLTYPE *GetContainingTypeLib)(
1259 ITypeInfo* This,
1260 ITypeLib** ppTLib,
1261 UINT* pIndex);
1263 void (STDMETHODCALLTYPE *ReleaseTypeAttr)(
1264 ITypeInfo* This,
1265 TYPEATTR* pTypeAttr);
1267 void (STDMETHODCALLTYPE *ReleaseFuncDesc)(
1268 ITypeInfo* This,
1269 FUNCDESC* pFuncDesc);
1271 void (STDMETHODCALLTYPE *ReleaseVarDesc)(
1272 ITypeInfo* This,
1273 VARDESC* pVarDesc);
1277 /*** IUnknown methods ***/
1278 #define ITypeInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1279 #define ITypeInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
1280 #define ITypeInfo_Release(p) (p)->lpVtbl->Release(p)
1281 /*** ITypeInfo methods ***/
1282 #define ITypeInfo_GetTypeAttr(p,a) (p)->lpVtbl->GetTypeAttr(p,a)
1283 #define ITypeInfo_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
1284 #define ITypeInfo_GetFuncDesc(p,a,b) (p)->lpVtbl->GetFuncDesc(p,a,b)
1285 #define ITypeInfo_GetVarDesc(p,a,b) (p)->lpVtbl->GetVarDesc(p,a,b)
1286 #define ITypeInfo_GetNames(p,a,b,c,d) (p)->lpVtbl->GetNames(p,a,b,c,d)
1287 #define ITypeInfo_GetRefTypeOfImplType(p,a,b) (p)->lpVtbl->GetRefTypeOfImplType(p,a,b)
1288 #define ITypeInfo_GetImplTypeFlags(p,a,b) (p)->lpVtbl->GetImplTypeFlags(p,a,b)
1289 #define ITypeInfo_GetIDsOfNames(p,a,b,c) (p)->lpVtbl->GetIDsOfNames(p,a,b,c)
1290 #define ITypeInfo_Invoke(p,a,b,c,d,e,f,g) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g)
1291 #define ITypeInfo_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
1292 #define ITypeInfo_GetDllEntry(p,a,b,c,d,e) (p)->lpVtbl->GetDllEntry(p,a,b,c,d,e)
1293 #define ITypeInfo_GetRefTypeInfo(p,a,b) (p)->lpVtbl->GetRefTypeInfo(p,a,b)
1294 #define ITypeInfo_AddressOfMember(p,a,b,c) (p)->lpVtbl->AddressOfMember(p,a,b,c)
1295 #define ITypeInfo_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
1296 #define ITypeInfo_GetMops(p,a,b) (p)->lpVtbl->GetMops(p,a,b)
1297 #define ITypeInfo_GetContainingTypeLib(p,a,b) (p)->lpVtbl->GetContainingTypeLib(p,a,b)
1298 #define ITypeInfo_ReleaseTypeAttr(p,a) (p)->lpVtbl->ReleaseTypeAttr(p,a)
1299 #define ITypeInfo_ReleaseFuncDesc(p,a) (p)->lpVtbl->ReleaseFuncDesc(p,a)
1300 #define ITypeInfo_ReleaseVarDesc(p,a) (p)->lpVtbl->ReleaseVarDesc(p,a)
1302 #endif
1304 #define ITypeInfo_METHODS \
1305 ICOM_MSVTABLE_COMPAT_FIELDS \
1306 /*** IUnknown methods ***/ \
1307 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1308 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1309 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1310 /*** ITypeInfo methods ***/ \
1311 STDMETHOD_(HRESULT,GetTypeAttr)(THIS_ TYPEATTR** ppTypeAttr) PURE; \
1312 STDMETHOD_(HRESULT,GetTypeComp)(THIS_ ITypeComp** ppTComp) PURE; \
1313 STDMETHOD_(HRESULT,GetFuncDesc)(THIS_ UINT index, FUNCDESC** ppFuncDesc) PURE; \
1314 STDMETHOD_(HRESULT,GetVarDesc)(THIS_ UINT index, VARDESC** ppVarDesc) PURE; \
1315 STDMETHOD_(HRESULT,GetNames)(THIS_ MEMBERID memid, BSTR* rgBstrNames, UINT cMaxNames, UINT* pcNames) PURE; \
1316 STDMETHOD_(HRESULT,GetRefTypeOfImplType)(THIS_ UINT index, HREFTYPE* pRefType) PURE; \
1317 STDMETHOD_(HRESULT,GetImplTypeFlags)(THIS_ UINT index, INT* pImplTypeFlags) PURE; \
1318 STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ LPOLESTR* rgszNames, UINT cNames, MEMBERID* pMemId) PURE; \
1319 STDMETHOD_(HRESULT,Invoke)(THIS_ PVOID pvInstance, MEMBERID memid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) PURE; \
1320 STDMETHOD_(HRESULT,GetDocumentation)(THIS_ MEMBERID memid, BSTR* pBstrName, BSTR* pBstrDocString, DWORD* pdwHelpContext, BSTR* pBstrHelpFile) PURE; \
1321 STDMETHOD_(HRESULT,GetDllEntry)(THIS_ MEMBERID memid, INVOKEKIND invKind, BSTR* pBstrDllName, BSTR* pBstrName, WORD* pwOrdinal) PURE; \
1322 STDMETHOD_(HRESULT,GetRefTypeInfo)(THIS_ HREFTYPE hRefType, ITypeInfo** ppTInfo) PURE; \
1323 STDMETHOD_(HRESULT,AddressOfMember)(THIS_ MEMBERID memid, INVOKEKIND invKind, PVOID* ppv) PURE; \
1324 STDMETHOD_(HRESULT,CreateInstance)(THIS_ IUnknown* pUnkOuter, REFIID riid, PVOID* ppvObj) PURE; \
1325 STDMETHOD_(HRESULT,GetMops)(THIS_ MEMBERID memid, BSTR* pBstrMops) PURE; \
1326 STDMETHOD_(HRESULT,GetContainingTypeLib)(THIS_ ITypeLib** ppTLib, UINT* pIndex) PURE; \
1327 STDMETHOD_(void,ReleaseTypeAttr)(THIS_ TYPEATTR* pTypeAttr) PURE; \
1328 STDMETHOD_(void,ReleaseFuncDesc)(THIS_ FUNCDESC* pFuncDesc) PURE; \
1329 STDMETHOD_(void,ReleaseVarDesc)(THIS_ VARDESC* pVarDesc) PURE;
1331 HRESULT CALLBACK ITypeInfo_RemoteGetTypeAttr_Proxy(
1332 ITypeInfo* This,
1333 LPTYPEATTR* ppTypeAttr,
1334 CLEANLOCALSTORAGE* pDummy);
1335 void __RPC_STUB ITypeInfo_RemoteGetTypeAttr_Stub(
1336 struct IRpcStubBuffer* This,
1337 struct IRpcChannelBuffer* pRpcChannelBuffer,
1338 PRPC_MESSAGE pRpcMessage,
1339 DWORD* pdwStubPhase);
1340 HRESULT CALLBACK ITypeInfo_GetTypeAttr_Proxy(
1341 ITypeInfo* This,
1342 TYPEATTR** ppTypeAttr);
1343 HRESULT __RPC_STUB ITypeInfo_GetTypeAttr_Stub(
1344 ITypeInfo* This,
1345 LPTYPEATTR* ppTypeAttr,
1346 CLEANLOCALSTORAGE* pDummy);
1347 HRESULT CALLBACK ITypeInfo_GetTypeComp_Proxy(
1348 ITypeInfo* This,
1349 ITypeComp** ppTComp);
1350 void __RPC_STUB ITypeInfo_GetTypeComp_Stub(
1351 struct IRpcStubBuffer* This,
1352 struct IRpcChannelBuffer* pRpcChannelBuffer,
1353 PRPC_MESSAGE pRpcMessage,
1354 DWORD* pdwStubPhase);
1355 HRESULT CALLBACK ITypeInfo_RemoteGetFuncDesc_Proxy(
1356 ITypeInfo* This,
1357 UINT index,
1358 LPFUNCDESC* ppFuncDesc,
1359 CLEANLOCALSTORAGE* pDummy);
1360 void __RPC_STUB ITypeInfo_RemoteGetFuncDesc_Stub(
1361 struct IRpcStubBuffer* This,
1362 struct IRpcChannelBuffer* pRpcChannelBuffer,
1363 PRPC_MESSAGE pRpcMessage,
1364 DWORD* pdwStubPhase);
1365 HRESULT CALLBACK ITypeInfo_GetFuncDesc_Proxy(
1366 ITypeInfo* This,
1367 UINT index,
1368 FUNCDESC** ppFuncDesc);
1369 HRESULT __RPC_STUB ITypeInfo_GetFuncDesc_Stub(
1370 ITypeInfo* This,
1371 UINT index,
1372 LPFUNCDESC* ppFuncDesc,
1373 CLEANLOCALSTORAGE* pDummy);
1374 HRESULT CALLBACK ITypeInfo_RemoteGetVarDesc_Proxy(
1375 ITypeInfo* This,
1376 UINT index,
1377 LPVARDESC* ppVarDesc,
1378 CLEANLOCALSTORAGE* pDummy);
1379 void __RPC_STUB ITypeInfo_RemoteGetVarDesc_Stub(
1380 struct IRpcStubBuffer* This,
1381 struct IRpcChannelBuffer* pRpcChannelBuffer,
1382 PRPC_MESSAGE pRpcMessage,
1383 DWORD* pdwStubPhase);
1384 HRESULT CALLBACK ITypeInfo_GetVarDesc_Proxy(
1385 ITypeInfo* This,
1386 UINT index,
1387 VARDESC** ppVarDesc);
1388 HRESULT __RPC_STUB ITypeInfo_GetVarDesc_Stub(
1389 ITypeInfo* This,
1390 UINT index,
1391 LPVARDESC* ppVarDesc,
1392 CLEANLOCALSTORAGE* pDummy);
1393 HRESULT CALLBACK ITypeInfo_RemoteGetNames_Proxy(
1394 ITypeInfo* This,
1395 MEMBERID memid,
1396 BSTR* rgBstrNames,
1397 UINT cMaxNames,
1398 UINT* pcNames);
1399 void __RPC_STUB ITypeInfo_RemoteGetNames_Stub(
1400 struct IRpcStubBuffer* This,
1401 struct IRpcChannelBuffer* pRpcChannelBuffer,
1402 PRPC_MESSAGE pRpcMessage,
1403 DWORD* pdwStubPhase);
1404 HRESULT CALLBACK ITypeInfo_GetNames_Proxy(
1405 ITypeInfo* This,
1406 MEMBERID memid,
1407 BSTR* rgBstrNames,
1408 UINT cMaxNames,
1409 UINT* pcNames);
1410 HRESULT __RPC_STUB ITypeInfo_GetNames_Stub(
1411 ITypeInfo* This,
1412 MEMBERID memid,
1413 BSTR* rgBstrNames,
1414 UINT cMaxNames,
1415 UINT* pcNames);
1416 HRESULT CALLBACK ITypeInfo_GetRefTypeOfImplType_Proxy(
1417 ITypeInfo* This,
1418 UINT index,
1419 HREFTYPE* pRefType);
1420 void __RPC_STUB ITypeInfo_GetRefTypeOfImplType_Stub(
1421 struct IRpcStubBuffer* This,
1422 struct IRpcChannelBuffer* pRpcChannelBuffer,
1423 PRPC_MESSAGE pRpcMessage,
1424 DWORD* pdwStubPhase);
1425 HRESULT CALLBACK ITypeInfo_GetImplTypeFlags_Proxy(
1426 ITypeInfo* This,
1427 UINT index,
1428 INT* pImplTypeFlags);
1429 void __RPC_STUB ITypeInfo_GetImplTypeFlags_Stub(
1430 struct IRpcStubBuffer* This,
1431 struct IRpcChannelBuffer* pRpcChannelBuffer,
1432 PRPC_MESSAGE pRpcMessage,
1433 DWORD* pdwStubPhase);
1434 HRESULT CALLBACK ITypeInfo_LocalGetIDsOfNames_Proxy(
1435 ITypeInfo* This);
1436 void __RPC_STUB ITypeInfo_LocalGetIDsOfNames_Stub(
1437 struct IRpcStubBuffer* This,
1438 struct IRpcChannelBuffer* pRpcChannelBuffer,
1439 PRPC_MESSAGE pRpcMessage,
1440 DWORD* pdwStubPhase);
1441 HRESULT CALLBACK ITypeInfo_GetIDsOfNames_Proxy(
1442 ITypeInfo* This,
1443 LPOLESTR* rgszNames,
1444 UINT cNames,
1445 MEMBERID* pMemId);
1446 HRESULT __RPC_STUB ITypeInfo_GetIDsOfNames_Stub(
1447 ITypeInfo* This);
1448 HRESULT CALLBACK ITypeInfo_LocalInvoke_Proxy(
1449 ITypeInfo* This);
1450 void __RPC_STUB ITypeInfo_LocalInvoke_Stub(
1451 struct IRpcStubBuffer* This,
1452 struct IRpcChannelBuffer* pRpcChannelBuffer,
1453 PRPC_MESSAGE pRpcMessage,
1454 DWORD* pdwStubPhase);
1455 HRESULT CALLBACK ITypeInfo_Invoke_Proxy(
1456 ITypeInfo* This,
1457 PVOID pvInstance,
1458 MEMBERID memid,
1459 WORD wFlags,
1460 DISPPARAMS* pDispParams,
1461 VARIANT* pVarResult,
1462 EXCEPINFO* pExcepInfo,
1463 UINT* puArgErr);
1464 HRESULT __RPC_STUB ITypeInfo_Invoke_Stub(
1465 ITypeInfo* This);
1466 HRESULT CALLBACK ITypeInfo_RemoteGetDocumentation_Proxy(
1467 ITypeInfo* This,
1468 MEMBERID memid,
1469 DWORD refPtrFlags,
1470 BSTR* pBstrName,
1471 BSTR* pBstrDocString,
1472 DWORD* pdwHelpContext,
1473 BSTR* pBstrHelpFile);
1474 void __RPC_STUB ITypeInfo_RemoteGetDocumentation_Stub(
1475 struct IRpcStubBuffer* This,
1476 struct IRpcChannelBuffer* pRpcChannelBuffer,
1477 PRPC_MESSAGE pRpcMessage,
1478 DWORD* pdwStubPhase);
1479 HRESULT CALLBACK ITypeInfo_GetDocumentation_Proxy(
1480 ITypeInfo* This,
1481 MEMBERID memid,
1482 BSTR* pBstrName,
1483 BSTR* pBstrDocString,
1484 DWORD* pdwHelpContext,
1485 BSTR* pBstrHelpFile);
1486 HRESULT __RPC_STUB ITypeInfo_GetDocumentation_Stub(
1487 ITypeInfo* This,
1488 MEMBERID memid,
1489 DWORD refPtrFlags,
1490 BSTR* pBstrName,
1491 BSTR* pBstrDocString,
1492 DWORD* pdwHelpContext,
1493 BSTR* pBstrHelpFile);
1494 HRESULT CALLBACK ITypeInfo_RemoteGetDllEntry_Proxy(
1495 ITypeInfo* This,
1496 MEMBERID memid,
1497 INVOKEKIND invKind,
1498 DWORD refPtrFlags,
1499 BSTR* pBstrDllName,
1500 BSTR* pBstrName,
1501 WORD* pwOrdinal);
1502 void __RPC_STUB ITypeInfo_RemoteGetDllEntry_Stub(
1503 struct IRpcStubBuffer* This,
1504 struct IRpcChannelBuffer* pRpcChannelBuffer,
1505 PRPC_MESSAGE pRpcMessage,
1506 DWORD* pdwStubPhase);
1507 HRESULT CALLBACK ITypeInfo_GetDllEntry_Proxy(
1508 ITypeInfo* This,
1509 MEMBERID memid,
1510 INVOKEKIND invKind,
1511 BSTR* pBstrDllName,
1512 BSTR* pBstrName,
1513 WORD* pwOrdinal);
1514 HRESULT __RPC_STUB ITypeInfo_GetDllEntry_Stub(
1515 ITypeInfo* This,
1516 MEMBERID memid,
1517 INVOKEKIND invKind,
1518 DWORD refPtrFlags,
1519 BSTR* pBstrDllName,
1520 BSTR* pBstrName,
1521 WORD* pwOrdinal);
1522 HRESULT CALLBACK ITypeInfo_GetRefTypeInfo_Proxy(
1523 ITypeInfo* This,
1524 HREFTYPE hRefType,
1525 ITypeInfo** ppTInfo);
1526 void __RPC_STUB ITypeInfo_GetRefTypeInfo_Stub(
1527 struct IRpcStubBuffer* This,
1528 struct IRpcChannelBuffer* pRpcChannelBuffer,
1529 PRPC_MESSAGE pRpcMessage,
1530 DWORD* pdwStubPhase);
1531 HRESULT CALLBACK ITypeInfo_LocalAddressOfMember_Proxy(
1532 ITypeInfo* This);
1533 void __RPC_STUB ITypeInfo_LocalAddressOfMember_Stub(
1534 struct IRpcStubBuffer* This,
1535 struct IRpcChannelBuffer* pRpcChannelBuffer,
1536 PRPC_MESSAGE pRpcMessage,
1537 DWORD* pdwStubPhase);
1538 HRESULT CALLBACK ITypeInfo_AddressOfMember_Proxy(
1539 ITypeInfo* This,
1540 MEMBERID memid,
1541 INVOKEKIND invKind,
1542 PVOID* ppv);
1543 HRESULT __RPC_STUB ITypeInfo_AddressOfMember_Stub(
1544 ITypeInfo* This);
1545 HRESULT CALLBACK ITypeInfo_RemoteCreateInstance_Proxy(
1546 ITypeInfo* This,
1547 REFIID riid,
1548 IUnknown** ppvObj);
1549 void __RPC_STUB ITypeInfo_RemoteCreateInstance_Stub(
1550 struct IRpcStubBuffer* This,
1551 struct IRpcChannelBuffer* pRpcChannelBuffer,
1552 PRPC_MESSAGE pRpcMessage,
1553 DWORD* pdwStubPhase);
1554 HRESULT CALLBACK ITypeInfo_CreateInstance_Proxy(
1555 ITypeInfo* This,
1556 IUnknown* pUnkOuter,
1557 REFIID riid,
1558 PVOID* ppvObj);
1559 HRESULT __RPC_STUB ITypeInfo_CreateInstance_Stub(
1560 ITypeInfo* This,
1561 REFIID riid,
1562 IUnknown** ppvObj);
1563 HRESULT CALLBACK ITypeInfo_GetMops_Proxy(
1564 ITypeInfo* This,
1565 MEMBERID memid,
1566 BSTR* pBstrMops);
1567 void __RPC_STUB ITypeInfo_GetMops_Stub(
1568 struct IRpcStubBuffer* This,
1569 struct IRpcChannelBuffer* pRpcChannelBuffer,
1570 PRPC_MESSAGE pRpcMessage,
1571 DWORD* pdwStubPhase);
1572 HRESULT CALLBACK ITypeInfo_RemoteGetContainingTypeLib_Proxy(
1573 ITypeInfo* This,
1574 ITypeLib** ppTLib,
1575 UINT* pIndex);
1576 void __RPC_STUB ITypeInfo_RemoteGetContainingTypeLib_Stub(
1577 struct IRpcStubBuffer* This,
1578 struct IRpcChannelBuffer* pRpcChannelBuffer,
1579 PRPC_MESSAGE pRpcMessage,
1580 DWORD* pdwStubPhase);
1581 HRESULT CALLBACK ITypeInfo_GetContainingTypeLib_Proxy(
1582 ITypeInfo* This,
1583 ITypeLib** ppTLib,
1584 UINT* pIndex);
1585 HRESULT __RPC_STUB ITypeInfo_GetContainingTypeLib_Stub(
1586 ITypeInfo* This,
1587 ITypeLib** ppTLib,
1588 UINT* pIndex);
1589 HRESULT CALLBACK ITypeInfo_LocalReleaseTypeAttr_Proxy(
1590 ITypeInfo* This);
1591 void __RPC_STUB ITypeInfo_LocalReleaseTypeAttr_Stub(
1592 struct IRpcStubBuffer* This,
1593 struct IRpcChannelBuffer* pRpcChannelBuffer,
1594 PRPC_MESSAGE pRpcMessage,
1595 DWORD* pdwStubPhase);
1596 void CALLBACK ITypeInfo_ReleaseTypeAttr_Proxy(
1597 ITypeInfo* This,
1598 TYPEATTR* pTypeAttr);
1599 HRESULT __RPC_STUB ITypeInfo_ReleaseTypeAttr_Stub(
1600 ITypeInfo* This);
1601 HRESULT CALLBACK ITypeInfo_LocalReleaseFuncDesc_Proxy(
1602 ITypeInfo* This);
1603 void __RPC_STUB ITypeInfo_LocalReleaseFuncDesc_Stub(
1604 struct IRpcStubBuffer* This,
1605 struct IRpcChannelBuffer* pRpcChannelBuffer,
1606 PRPC_MESSAGE pRpcMessage,
1607 DWORD* pdwStubPhase);
1608 void CALLBACK ITypeInfo_ReleaseFuncDesc_Proxy(
1609 ITypeInfo* This,
1610 FUNCDESC* pFuncDesc);
1611 HRESULT __RPC_STUB ITypeInfo_ReleaseFuncDesc_Stub(
1612 ITypeInfo* This);
1613 HRESULT CALLBACK ITypeInfo_LocalReleaseVarDesc_Proxy(
1614 ITypeInfo* This);
1615 void __RPC_STUB ITypeInfo_LocalReleaseVarDesc_Stub(
1616 struct IRpcStubBuffer* This,
1617 struct IRpcChannelBuffer* pRpcChannelBuffer,
1618 PRPC_MESSAGE pRpcMessage,
1619 DWORD* pdwStubPhase);
1620 void CALLBACK ITypeInfo_ReleaseVarDesc_Proxy(
1621 ITypeInfo* This,
1622 VARDESC* pVarDesc);
1623 HRESULT __RPC_STUB ITypeInfo_ReleaseVarDesc_Stub(
1624 ITypeInfo* This);
1626 typedef struct ITypeInfo2 ITypeInfo2;
1627 typedef ITypeInfo2 *LPTYPEINFO2;
1629 /*****************************************************************************
1630 * ITypeInfo2 interface
1632 DEFINE_GUID(IID_ITypeInfo2, 0x00020412, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1633 #if defined(__cplusplus) && !defined(CINTERFACE)
1634 struct ITypeInfo2 : public ITypeInfo
1636 virtual HRESULT STDMETHODCALLTYPE GetTypeKind(
1637 TYPEKIND* pTypeKind) = 0;
1639 virtual HRESULT STDMETHODCALLTYPE GetTypeFlags(
1640 ULONG* pTypeFlags) = 0;
1642 virtual HRESULT STDMETHODCALLTYPE GetFuncIndexOfMemId(
1643 MEMBERID memid,
1644 INVOKEKIND invKind,
1645 UINT* pFuncIndex) = 0;
1647 virtual HRESULT STDMETHODCALLTYPE GetVarIndexOfMemId(
1648 MEMBERID memid,
1649 UINT* pVarIndex) = 0;
1651 virtual HRESULT STDMETHODCALLTYPE GetCustData(
1652 REFGUID guid,
1653 VARIANT* pVarVal) = 0;
1655 virtual HRESULT STDMETHODCALLTYPE GetFuncCustData(
1656 UINT index,
1657 REFGUID guid,
1658 VARIANT* pVarVal) = 0;
1660 virtual HRESULT STDMETHODCALLTYPE GetParamCustData(
1661 UINT indexFunc,
1662 UINT indexParam,
1663 REFGUID guid,
1664 VARIANT* pVarVal) = 0;
1666 virtual HRESULT STDMETHODCALLTYPE GetVarCustData(
1667 UINT index,
1668 REFGUID guid,
1669 VARIANT* pVarVal) = 0;
1671 virtual HRESULT STDMETHODCALLTYPE GetImplTypeCustData(
1672 UINT index,
1673 REFGUID guid,
1674 VARIANT* pVarVal) = 0;
1676 virtual HRESULT STDMETHODCALLTYPE GetDocumentation2(
1677 MEMBERID memid,
1678 LCID lcid,
1679 BSTR* pbstrHelpString,
1680 DWORD* pdwHelpStringContext,
1681 BSTR* pbstrHelpStringDll) = 0;
1683 virtual HRESULT STDMETHODCALLTYPE GetAllCustData(
1684 CUSTDATA* pCustData) = 0;
1686 virtual HRESULT STDMETHODCALLTYPE GetAllFuncCustData(
1687 UINT index,
1688 CUSTDATA* pCustData) = 0;
1690 virtual HRESULT STDMETHODCALLTYPE GetAllParamCustData(
1691 UINT indexFunc,
1692 UINT indexParam,
1693 CUSTDATA* pCustData) = 0;
1695 virtual HRESULT STDMETHODCALLTYPE GetAllVarCustData(
1696 UINT index,
1697 CUSTDATA* pCustData) = 0;
1699 virtual HRESULT STDMETHODCALLTYPE GetAllImplTypeCustData(
1700 UINT index,
1701 CUSTDATA* pCustData) = 0;
1704 #else
1705 typedef struct ITypeInfo2Vtbl ITypeInfo2Vtbl;
1706 struct ITypeInfo2 {
1707 const ITypeInfo2Vtbl* lpVtbl;
1709 struct ITypeInfo2Vtbl {
1710 ICOM_MSVTABLE_COMPAT_FIELDS
1712 /*** IUnknown methods ***/
1713 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1714 ITypeInfo2* This,
1715 REFIID riid,
1716 void** ppvObject);
1718 ULONG (STDMETHODCALLTYPE *AddRef)(
1719 ITypeInfo2* This);
1721 ULONG (STDMETHODCALLTYPE *Release)(
1722 ITypeInfo2* This);
1724 /*** ITypeInfo methods ***/
1725 HRESULT (STDMETHODCALLTYPE *GetTypeAttr)(
1726 ITypeInfo2* This,
1727 TYPEATTR** ppTypeAttr);
1729 HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
1730 ITypeInfo2* This,
1731 ITypeComp** ppTComp);
1733 HRESULT (STDMETHODCALLTYPE *GetFuncDesc)(
1734 ITypeInfo2* This,
1735 UINT index,
1736 FUNCDESC** ppFuncDesc);
1738 HRESULT (STDMETHODCALLTYPE *GetVarDesc)(
1739 ITypeInfo2* This,
1740 UINT index,
1741 VARDESC** ppVarDesc);
1743 HRESULT (STDMETHODCALLTYPE *GetNames)(
1744 ITypeInfo2* This,
1745 MEMBERID memid,
1746 BSTR* rgBstrNames,
1747 UINT cMaxNames,
1748 UINT* pcNames);
1750 HRESULT (STDMETHODCALLTYPE *GetRefTypeOfImplType)(
1751 ITypeInfo2* This,
1752 UINT index,
1753 HREFTYPE* pRefType);
1755 HRESULT (STDMETHODCALLTYPE *GetImplTypeFlags)(
1756 ITypeInfo2* This,
1757 UINT index,
1758 INT* pImplTypeFlags);
1760 HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1761 ITypeInfo2* This,
1762 LPOLESTR* rgszNames,
1763 UINT cNames,
1764 MEMBERID* pMemId);
1766 HRESULT (STDMETHODCALLTYPE *Invoke)(
1767 ITypeInfo2* This,
1768 PVOID pvInstance,
1769 MEMBERID memid,
1770 WORD wFlags,
1771 DISPPARAMS* pDispParams,
1772 VARIANT* pVarResult,
1773 EXCEPINFO* pExcepInfo,
1774 UINT* puArgErr);
1776 HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
1777 ITypeInfo2* This,
1778 MEMBERID memid,
1779 BSTR* pBstrName,
1780 BSTR* pBstrDocString,
1781 DWORD* pdwHelpContext,
1782 BSTR* pBstrHelpFile);
1784 HRESULT (STDMETHODCALLTYPE *GetDllEntry)(
1785 ITypeInfo2* This,
1786 MEMBERID memid,
1787 INVOKEKIND invKind,
1788 BSTR* pBstrDllName,
1789 BSTR* pBstrName,
1790 WORD* pwOrdinal);
1792 HRESULT (STDMETHODCALLTYPE *GetRefTypeInfo)(
1793 ITypeInfo2* This,
1794 HREFTYPE hRefType,
1795 ITypeInfo** ppTInfo);
1797 HRESULT (STDMETHODCALLTYPE *AddressOfMember)(
1798 ITypeInfo2* This,
1799 MEMBERID memid,
1800 INVOKEKIND invKind,
1801 PVOID* ppv);
1803 HRESULT (STDMETHODCALLTYPE *CreateInstance)(
1804 ITypeInfo2* This,
1805 IUnknown* pUnkOuter,
1806 REFIID riid,
1807 PVOID* ppvObj);
1809 HRESULT (STDMETHODCALLTYPE *GetMops)(
1810 ITypeInfo2* This,
1811 MEMBERID memid,
1812 BSTR* pBstrMops);
1814 HRESULT (STDMETHODCALLTYPE *GetContainingTypeLib)(
1815 ITypeInfo2* This,
1816 ITypeLib** ppTLib,
1817 UINT* pIndex);
1819 void (STDMETHODCALLTYPE *ReleaseTypeAttr)(
1820 ITypeInfo2* This,
1821 TYPEATTR* pTypeAttr);
1823 void (STDMETHODCALLTYPE *ReleaseFuncDesc)(
1824 ITypeInfo2* This,
1825 FUNCDESC* pFuncDesc);
1827 void (STDMETHODCALLTYPE *ReleaseVarDesc)(
1828 ITypeInfo2* This,
1829 VARDESC* pVarDesc);
1831 /*** ITypeInfo2 methods ***/
1832 HRESULT (STDMETHODCALLTYPE *GetTypeKind)(
1833 ITypeInfo2* This,
1834 TYPEKIND* pTypeKind);
1836 HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
1837 ITypeInfo2* This,
1838 ULONG* pTypeFlags);
1840 HRESULT (STDMETHODCALLTYPE *GetFuncIndexOfMemId)(
1841 ITypeInfo2* This,
1842 MEMBERID memid,
1843 INVOKEKIND invKind,
1844 UINT* pFuncIndex);
1846 HRESULT (STDMETHODCALLTYPE *GetVarIndexOfMemId)(
1847 ITypeInfo2* This,
1848 MEMBERID memid,
1849 UINT* pVarIndex);
1851 HRESULT (STDMETHODCALLTYPE *GetCustData)(
1852 ITypeInfo2* This,
1853 REFGUID guid,
1854 VARIANT* pVarVal);
1856 HRESULT (STDMETHODCALLTYPE *GetFuncCustData)(
1857 ITypeInfo2* This,
1858 UINT index,
1859 REFGUID guid,
1860 VARIANT* pVarVal);
1862 HRESULT (STDMETHODCALLTYPE *GetParamCustData)(
1863 ITypeInfo2* This,
1864 UINT indexFunc,
1865 UINT indexParam,
1866 REFGUID guid,
1867 VARIANT* pVarVal);
1869 HRESULT (STDMETHODCALLTYPE *GetVarCustData)(
1870 ITypeInfo2* This,
1871 UINT index,
1872 REFGUID guid,
1873 VARIANT* pVarVal);
1875 HRESULT (STDMETHODCALLTYPE *GetImplTypeCustData)(
1876 ITypeInfo2* This,
1877 UINT index,
1878 REFGUID guid,
1879 VARIANT* pVarVal);
1881 HRESULT (STDMETHODCALLTYPE *GetDocumentation2)(
1882 ITypeInfo2* This,
1883 MEMBERID memid,
1884 LCID lcid,
1885 BSTR* pbstrHelpString,
1886 DWORD* pdwHelpStringContext,
1887 BSTR* pbstrHelpStringDll);
1889 HRESULT (STDMETHODCALLTYPE *GetAllCustData)(
1890 ITypeInfo2* This,
1891 CUSTDATA* pCustData);
1893 HRESULT (STDMETHODCALLTYPE *GetAllFuncCustData)(
1894 ITypeInfo2* This,
1895 UINT index,
1896 CUSTDATA* pCustData);
1898 HRESULT (STDMETHODCALLTYPE *GetAllParamCustData)(
1899 ITypeInfo2* This,
1900 UINT indexFunc,
1901 UINT indexParam,
1902 CUSTDATA* pCustData);
1904 HRESULT (STDMETHODCALLTYPE *GetAllVarCustData)(
1905 ITypeInfo2* This,
1906 UINT index,
1907 CUSTDATA* pCustData);
1909 HRESULT (STDMETHODCALLTYPE *GetAllImplTypeCustData)(
1910 ITypeInfo2* This,
1911 UINT index,
1912 CUSTDATA* pCustData);
1916 /*** IUnknown methods ***/
1917 #define ITypeInfo2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1918 #define ITypeInfo2_AddRef(p) (p)->lpVtbl->AddRef(p)
1919 #define ITypeInfo2_Release(p) (p)->lpVtbl->Release(p)
1920 /*** ITypeInfo methods ***/
1921 #define ITypeInfo2_GetTypeAttr(p,a) (p)->lpVtbl->GetTypeAttr(p,a)
1922 #define ITypeInfo2_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
1923 #define ITypeInfo2_GetFuncDesc(p,a,b) (p)->lpVtbl->GetFuncDesc(p,a,b)
1924 #define ITypeInfo2_GetVarDesc(p,a,b) (p)->lpVtbl->GetVarDesc(p,a,b)
1925 #define ITypeInfo2_GetNames(p,a,b,c,d) (p)->lpVtbl->GetNames(p,a,b,c,d)
1926 #define ITypeInfo2_GetRefTypeOfImplType(p,a,b) (p)->lpVtbl->GetRefTypeOfImplType(p,a,b)
1927 #define ITypeInfo2_GetImplTypeFlags(p,a,b) (p)->lpVtbl->GetImplTypeFlags(p,a,b)
1928 #define ITypeInfo2_GetIDsOfNames(p,a,b,c) (p)->lpVtbl->GetIDsOfNames(p,a,b,c)
1929 #define ITypeInfo2_Invoke(p,a,b,c,d,e,f,g) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g)
1930 #define ITypeInfo2_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
1931 #define ITypeInfo2_GetDllEntry(p,a,b,c,d,e) (p)->lpVtbl->GetDllEntry(p,a,b,c,d,e)
1932 #define ITypeInfo2_GetRefTypeInfo(p,a,b) (p)->lpVtbl->GetRefTypeInfo(p,a,b)
1933 #define ITypeInfo2_AddressOfMember(p,a,b,c) (p)->lpVtbl->AddressOfMember(p,a,b,c)
1934 #define ITypeInfo2_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
1935 #define ITypeInfo2_GetMops(p,a,b) (p)->lpVtbl->GetMops(p,a,b)
1936 #define ITypeInfo2_GetContainingTypeLib(p,a,b) (p)->lpVtbl->GetContainingTypeLib(p,a,b)
1937 #define ITypeInfo2_ReleaseTypeAttr(p,a) (p)->lpVtbl->ReleaseTypeAttr(p,a)
1938 #define ITypeInfo2_ReleaseFuncDesc(p,a) (p)->lpVtbl->ReleaseFuncDesc(p,a)
1939 #define ITypeInfo2_ReleaseVarDesc(p,a) (p)->lpVtbl->ReleaseVarDesc(p,a)
1940 /*** ITypeInfo2 methods ***/
1941 #define ITypeInfo2_GetTypeKind(p,a) (p)->lpVtbl->GetTypeKind(p,a)
1942 #define ITypeInfo2_GetTypeFlags(p,a) (p)->lpVtbl->GetTypeFlags(p,a)
1943 #define ITypeInfo2_GetFuncIndexOfMemId(p,a,b,c) (p)->lpVtbl->GetFuncIndexOfMemId(p,a,b,c)
1944 #define ITypeInfo2_GetVarIndexOfMemId(p,a,b) (p)->lpVtbl->GetVarIndexOfMemId(p,a,b)
1945 #define ITypeInfo2_GetCustData(p,a,b) (p)->lpVtbl->GetCustData(p,a,b)
1946 #define ITypeInfo2_GetFuncCustData(p,a,b,c) (p)->lpVtbl->GetFuncCustData(p,a,b,c)
1947 #define ITypeInfo2_GetParamCustData(p,a,b,c,d) (p)->lpVtbl->GetParamCustData(p,a,b,c,d)
1948 #define ITypeInfo2_GetVarCustData(p,a,b,c) (p)->lpVtbl->GetVarCustData(p,a,b,c)
1949 #define ITypeInfo2_GetImplTypeCustData(p,a,b,c) (p)->lpVtbl->GetImplTypeCustData(p,a,b,c)
1950 #define ITypeInfo2_GetDocumentation2(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation2(p,a,b,c,d,e)
1951 #define ITypeInfo2_GetAllCustData(p,a) (p)->lpVtbl->GetAllCustData(p,a)
1952 #define ITypeInfo2_GetAllFuncCustData(p,a,b) (p)->lpVtbl->GetAllFuncCustData(p,a,b)
1953 #define ITypeInfo2_GetAllParamCustData(p,a,b,c) (p)->lpVtbl->GetAllParamCustData(p,a,b,c)
1954 #define ITypeInfo2_GetAllVarCustData(p,a,b) (p)->lpVtbl->GetAllVarCustData(p,a,b)
1955 #define ITypeInfo2_GetAllImplTypeCustData(p,a,b) (p)->lpVtbl->GetAllImplTypeCustData(p,a,b)
1957 #endif
1959 #define ITypeInfo2_METHODS \
1960 ICOM_MSVTABLE_COMPAT_FIELDS \
1961 /*** IUnknown methods ***/ \
1962 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1963 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1964 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1965 /*** ITypeInfo methods ***/ \
1966 STDMETHOD_(HRESULT,GetTypeAttr)(THIS_ TYPEATTR** ppTypeAttr) PURE; \
1967 STDMETHOD_(HRESULT,GetTypeComp)(THIS_ ITypeComp** ppTComp) PURE; \
1968 STDMETHOD_(HRESULT,GetFuncDesc)(THIS_ UINT index, FUNCDESC** ppFuncDesc) PURE; \
1969 STDMETHOD_(HRESULT,GetVarDesc)(THIS_ UINT index, VARDESC** ppVarDesc) PURE; \
1970 STDMETHOD_(HRESULT,GetNames)(THIS_ MEMBERID memid, BSTR* rgBstrNames, UINT cMaxNames, UINT* pcNames) PURE; \
1971 STDMETHOD_(HRESULT,GetRefTypeOfImplType)(THIS_ UINT index, HREFTYPE* pRefType) PURE; \
1972 STDMETHOD_(HRESULT,GetImplTypeFlags)(THIS_ UINT index, INT* pImplTypeFlags) PURE; \
1973 STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ LPOLESTR* rgszNames, UINT cNames, MEMBERID* pMemId) PURE; \
1974 STDMETHOD_(HRESULT,Invoke)(THIS_ PVOID pvInstance, MEMBERID memid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) PURE; \
1975 STDMETHOD_(HRESULT,GetDocumentation)(THIS_ MEMBERID memid, BSTR* pBstrName, BSTR* pBstrDocString, DWORD* pdwHelpContext, BSTR* pBstrHelpFile) PURE; \
1976 STDMETHOD_(HRESULT,GetDllEntry)(THIS_ MEMBERID memid, INVOKEKIND invKind, BSTR* pBstrDllName, BSTR* pBstrName, WORD* pwOrdinal) PURE; \
1977 STDMETHOD_(HRESULT,GetRefTypeInfo)(THIS_ HREFTYPE hRefType, ITypeInfo** ppTInfo) PURE; \
1978 STDMETHOD_(HRESULT,AddressOfMember)(THIS_ MEMBERID memid, INVOKEKIND invKind, PVOID* ppv) PURE; \
1979 STDMETHOD_(HRESULT,CreateInstance)(THIS_ IUnknown* pUnkOuter, REFIID riid, PVOID* ppvObj) PURE; \
1980 STDMETHOD_(HRESULT,GetMops)(THIS_ MEMBERID memid, BSTR* pBstrMops) PURE; \
1981 STDMETHOD_(HRESULT,GetContainingTypeLib)(THIS_ ITypeLib** ppTLib, UINT* pIndex) PURE; \
1982 STDMETHOD_(void,ReleaseTypeAttr)(THIS_ TYPEATTR* pTypeAttr) PURE; \
1983 STDMETHOD_(void,ReleaseFuncDesc)(THIS_ FUNCDESC* pFuncDesc) PURE; \
1984 STDMETHOD_(void,ReleaseVarDesc)(THIS_ VARDESC* pVarDesc) PURE; \
1985 /*** ITypeInfo2 methods ***/ \
1986 STDMETHOD_(HRESULT,GetTypeKind)(THIS_ TYPEKIND* pTypeKind) PURE; \
1987 STDMETHOD_(HRESULT,GetTypeFlags)(THIS_ ULONG* pTypeFlags) PURE; \
1988 STDMETHOD_(HRESULT,GetFuncIndexOfMemId)(THIS_ MEMBERID memid, INVOKEKIND invKind, UINT* pFuncIndex) PURE; \
1989 STDMETHOD_(HRESULT,GetVarIndexOfMemId)(THIS_ MEMBERID memid, UINT* pVarIndex) PURE; \
1990 STDMETHOD_(HRESULT,GetCustData)(THIS_ REFGUID guid, VARIANT* pVarVal) PURE; \
1991 STDMETHOD_(HRESULT,GetFuncCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
1992 STDMETHOD_(HRESULT,GetParamCustData)(THIS_ UINT indexFunc, UINT indexParam, REFGUID guid, VARIANT* pVarVal) PURE; \
1993 STDMETHOD_(HRESULT,GetVarCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
1994 STDMETHOD_(HRESULT,GetImplTypeCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
1995 STDMETHOD_(HRESULT,GetDocumentation2)(THIS_ MEMBERID memid, LCID lcid, BSTR* pbstrHelpString, DWORD* pdwHelpStringContext, BSTR* pbstrHelpStringDll) PURE; \
1996 STDMETHOD_(HRESULT,GetAllCustData)(THIS_ CUSTDATA* pCustData) PURE; \
1997 STDMETHOD_(HRESULT,GetAllFuncCustData)(THIS_ UINT index, CUSTDATA* pCustData) PURE; \
1998 STDMETHOD_(HRESULT,GetAllParamCustData)(THIS_ UINT indexFunc, UINT indexParam, CUSTDATA* pCustData) PURE; \
1999 STDMETHOD_(HRESULT,GetAllVarCustData)(THIS_ UINT index, CUSTDATA* pCustData) PURE; \
2000 STDMETHOD_(HRESULT,GetAllImplTypeCustData)(THIS_ UINT index, CUSTDATA* pCustData) PURE;
2002 HRESULT CALLBACK ITypeInfo2_GetTypeKind_Proxy(
2003 ITypeInfo2* This,
2004 TYPEKIND* pTypeKind);
2005 void __RPC_STUB ITypeInfo2_GetTypeKind_Stub(
2006 struct IRpcStubBuffer* This,
2007 struct IRpcChannelBuffer* pRpcChannelBuffer,
2008 PRPC_MESSAGE pRpcMessage,
2009 DWORD* pdwStubPhase);
2010 HRESULT CALLBACK ITypeInfo2_GetTypeFlags_Proxy(
2011 ITypeInfo2* This,
2012 ULONG* pTypeFlags);
2013 void __RPC_STUB ITypeInfo2_GetTypeFlags_Stub(
2014 struct IRpcStubBuffer* This,
2015 struct IRpcChannelBuffer* pRpcChannelBuffer,
2016 PRPC_MESSAGE pRpcMessage,
2017 DWORD* pdwStubPhase);
2018 HRESULT CALLBACK ITypeInfo2_GetFuncIndexOfMemId_Proxy(
2019 ITypeInfo2* This,
2020 MEMBERID memid,
2021 INVOKEKIND invKind,
2022 UINT* pFuncIndex);
2023 void __RPC_STUB ITypeInfo2_GetFuncIndexOfMemId_Stub(
2024 struct IRpcStubBuffer* This,
2025 struct IRpcChannelBuffer* pRpcChannelBuffer,
2026 PRPC_MESSAGE pRpcMessage,
2027 DWORD* pdwStubPhase);
2028 HRESULT CALLBACK ITypeInfo2_GetVarIndexOfMemId_Proxy(
2029 ITypeInfo2* This,
2030 MEMBERID memid,
2031 UINT* pVarIndex);
2032 void __RPC_STUB ITypeInfo2_GetVarIndexOfMemId_Stub(
2033 struct IRpcStubBuffer* This,
2034 struct IRpcChannelBuffer* pRpcChannelBuffer,
2035 PRPC_MESSAGE pRpcMessage,
2036 DWORD* pdwStubPhase);
2037 HRESULT CALLBACK ITypeInfo2_GetCustData_Proxy(
2038 ITypeInfo2* This,
2039 REFGUID guid,
2040 VARIANT* pVarVal);
2041 void __RPC_STUB ITypeInfo2_GetCustData_Stub(
2042 struct IRpcStubBuffer* This,
2043 struct IRpcChannelBuffer* pRpcChannelBuffer,
2044 PRPC_MESSAGE pRpcMessage,
2045 DWORD* pdwStubPhase);
2046 HRESULT CALLBACK ITypeInfo2_GetFuncCustData_Proxy(
2047 ITypeInfo2* This,
2048 UINT index,
2049 REFGUID guid,
2050 VARIANT* pVarVal);
2051 void __RPC_STUB ITypeInfo2_GetFuncCustData_Stub(
2052 struct IRpcStubBuffer* This,
2053 struct IRpcChannelBuffer* pRpcChannelBuffer,
2054 PRPC_MESSAGE pRpcMessage,
2055 DWORD* pdwStubPhase);
2056 HRESULT CALLBACK ITypeInfo2_GetParamCustData_Proxy(
2057 ITypeInfo2* This,
2058 UINT indexFunc,
2059 UINT indexParam,
2060 REFGUID guid,
2061 VARIANT* pVarVal);
2062 void __RPC_STUB ITypeInfo2_GetParamCustData_Stub(
2063 struct IRpcStubBuffer* This,
2064 struct IRpcChannelBuffer* pRpcChannelBuffer,
2065 PRPC_MESSAGE pRpcMessage,
2066 DWORD* pdwStubPhase);
2067 HRESULT CALLBACK ITypeInfo2_GetVarCustData_Proxy(
2068 ITypeInfo2* This,
2069 UINT index,
2070 REFGUID guid,
2071 VARIANT* pVarVal);
2072 void __RPC_STUB ITypeInfo2_GetVarCustData_Stub(
2073 struct IRpcStubBuffer* This,
2074 struct IRpcChannelBuffer* pRpcChannelBuffer,
2075 PRPC_MESSAGE pRpcMessage,
2076 DWORD* pdwStubPhase);
2077 HRESULT CALLBACK ITypeInfo2_GetImplTypeCustData_Proxy(
2078 ITypeInfo2* This,
2079 UINT index,
2080 REFGUID guid,
2081 VARIANT* pVarVal);
2082 void __RPC_STUB ITypeInfo2_GetImplTypeCustData_Stub(
2083 struct IRpcStubBuffer* This,
2084 struct IRpcChannelBuffer* pRpcChannelBuffer,
2085 PRPC_MESSAGE pRpcMessage,
2086 DWORD* pdwStubPhase);
2087 HRESULT CALLBACK ITypeInfo2_RemoteGetDocumentation2_Proxy(
2088 ITypeInfo2* This,
2089 MEMBERID memid,
2090 LCID lcid,
2091 DWORD refPtrFlags,
2092 BSTR* pbstrHelpString,
2093 DWORD* pdwHelpStringContext,
2094 BSTR* pbstrHelpStringDll);
2095 void __RPC_STUB ITypeInfo2_RemoteGetDocumentation2_Stub(
2096 struct IRpcStubBuffer* This,
2097 struct IRpcChannelBuffer* pRpcChannelBuffer,
2098 PRPC_MESSAGE pRpcMessage,
2099 DWORD* pdwStubPhase);
2100 HRESULT CALLBACK ITypeInfo2_GetDocumentation2_Proxy(
2101 ITypeInfo2* This,
2102 MEMBERID memid,
2103 LCID lcid,
2104 BSTR* pbstrHelpString,
2105 DWORD* pdwHelpStringContext,
2106 BSTR* pbstrHelpStringDll);
2107 HRESULT __RPC_STUB ITypeInfo2_GetDocumentation2_Stub(
2108 ITypeInfo2* This,
2109 MEMBERID memid,
2110 LCID lcid,
2111 DWORD refPtrFlags,
2112 BSTR* pbstrHelpString,
2113 DWORD* pdwHelpStringContext,
2114 BSTR* pbstrHelpStringDll);
2115 HRESULT CALLBACK ITypeInfo2_GetAllCustData_Proxy(
2116 ITypeInfo2* This,
2117 CUSTDATA* pCustData);
2118 void __RPC_STUB ITypeInfo2_GetAllCustData_Stub(
2119 struct IRpcStubBuffer* This,
2120 struct IRpcChannelBuffer* pRpcChannelBuffer,
2121 PRPC_MESSAGE pRpcMessage,
2122 DWORD* pdwStubPhase);
2123 HRESULT CALLBACK ITypeInfo2_GetAllFuncCustData_Proxy(
2124 ITypeInfo2* This,
2125 UINT index,
2126 CUSTDATA* pCustData);
2127 void __RPC_STUB ITypeInfo2_GetAllFuncCustData_Stub(
2128 struct IRpcStubBuffer* This,
2129 struct IRpcChannelBuffer* pRpcChannelBuffer,
2130 PRPC_MESSAGE pRpcMessage,
2131 DWORD* pdwStubPhase);
2132 HRESULT CALLBACK ITypeInfo2_GetAllParamCustData_Proxy(
2133 ITypeInfo2* This,
2134 UINT indexFunc,
2135 UINT indexParam,
2136 CUSTDATA* pCustData);
2137 void __RPC_STUB ITypeInfo2_GetAllParamCustData_Stub(
2138 struct IRpcStubBuffer* This,
2139 struct IRpcChannelBuffer* pRpcChannelBuffer,
2140 PRPC_MESSAGE pRpcMessage,
2141 DWORD* pdwStubPhase);
2142 HRESULT CALLBACK ITypeInfo2_GetAllVarCustData_Proxy(
2143 ITypeInfo2* This,
2144 UINT index,
2145 CUSTDATA* pCustData);
2146 void __RPC_STUB ITypeInfo2_GetAllVarCustData_Stub(
2147 struct IRpcStubBuffer* This,
2148 struct IRpcChannelBuffer* pRpcChannelBuffer,
2149 PRPC_MESSAGE pRpcMessage,
2150 DWORD* pdwStubPhase);
2151 HRESULT CALLBACK ITypeInfo2_GetAllImplTypeCustData_Proxy(
2152 ITypeInfo2* This,
2153 UINT index,
2154 CUSTDATA* pCustData);
2155 void __RPC_STUB ITypeInfo2_GetAllImplTypeCustData_Stub(
2156 struct IRpcStubBuffer* This,
2157 struct IRpcChannelBuffer* pRpcChannelBuffer,
2158 PRPC_MESSAGE pRpcMessage,
2159 DWORD* pdwStubPhase);
2161 typedef ITypeLib *LPTYPELIB;
2163 typedef enum tagSYSKIND {
2164 SYS_WIN16 = 0,
2165 SYS_WIN32,
2166 SYS_MAC
2167 } SYSKIND;
2169 typedef enum tagLIBFLAGS {
2170 LIBFLAG_FRESTRICTED = 0x1,
2171 LIBFLAG_FCONTROL = 0x2,
2172 LIBFLAG_FHIDDEN = 0x4,
2173 LIBFLAG_FHASDISKIMAGE = 0x8
2174 } LIBFLAGS;
2176 typedef struct tagTLIBATTR {
2177 GUID guid;
2178 LCID lcid;
2179 SYSKIND syskind;
2180 WORD wMajorVerNum;
2181 WORD wMinorVerNum;
2182 WORD wLibFlags;
2183 } TLIBATTR, *LPTLIBATTR;
2185 /*****************************************************************************
2186 * ITypeLib interface
2188 DEFINE_GUID(IID_ITypeLib, 0x00020402, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2189 #if defined(__cplusplus) && !defined(CINTERFACE)
2190 struct ITypeLib : public IUnknown
2192 virtual UINT STDMETHODCALLTYPE GetTypeInfoCount(
2193 ) = 0;
2195 virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
2196 UINT index,
2197 ITypeInfo** ppTInfo) = 0;
2199 virtual HRESULT STDMETHODCALLTYPE GetTypeInfoType(
2200 UINT index,
2201 TYPEKIND* pTKind) = 0;
2203 virtual HRESULT STDMETHODCALLTYPE GetTypeInfoOfGuid(
2204 REFGUID guid,
2205 ITypeInfo** ppTinfo) = 0;
2207 virtual HRESULT STDMETHODCALLTYPE GetLibAttr(
2208 TLIBATTR** ppTLibAttr) = 0;
2210 virtual HRESULT STDMETHODCALLTYPE GetTypeComp(
2211 ITypeComp** ppTComp) = 0;
2213 virtual HRESULT STDMETHODCALLTYPE GetDocumentation(
2214 INT index,
2215 BSTR* pBstrName,
2216 BSTR* pBstrDocString,
2217 DWORD* pdwHelpContext,
2218 BSTR* pBstrHelpFile) = 0;
2220 virtual HRESULT STDMETHODCALLTYPE IsName(
2221 LPOLESTR szNameBuf,
2222 ULONG lHashVal,
2223 BOOL* pfName) = 0;
2225 virtual HRESULT STDMETHODCALLTYPE FindName(
2226 LPOLESTR szNameBuf,
2227 ULONG lHashVal,
2228 ITypeInfo** ppTInfo,
2229 MEMBERID* rgMemId,
2230 USHORT* pcFound) = 0;
2232 virtual void STDMETHODCALLTYPE ReleaseTLibAttr(
2233 TLIBATTR* pTLibAttr) = 0;
2236 #else
2237 typedef struct ITypeLibVtbl ITypeLibVtbl;
2238 struct ITypeLib {
2239 const ITypeLibVtbl* lpVtbl;
2241 struct ITypeLibVtbl {
2242 ICOM_MSVTABLE_COMPAT_FIELDS
2244 /*** IUnknown methods ***/
2245 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2246 ITypeLib* This,
2247 REFIID riid,
2248 void** ppvObject);
2250 ULONG (STDMETHODCALLTYPE *AddRef)(
2251 ITypeLib* This);
2253 ULONG (STDMETHODCALLTYPE *Release)(
2254 ITypeLib* This);
2256 /*** ITypeLib methods ***/
2257 UINT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2258 ITypeLib* This);
2260 HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2261 ITypeLib* This,
2262 UINT index,
2263 ITypeInfo** ppTInfo);
2265 HRESULT (STDMETHODCALLTYPE *GetTypeInfoType)(
2266 ITypeLib* This,
2267 UINT index,
2268 TYPEKIND* pTKind);
2270 HRESULT (STDMETHODCALLTYPE *GetTypeInfoOfGuid)(
2271 ITypeLib* This,
2272 REFGUID guid,
2273 ITypeInfo** ppTinfo);
2275 HRESULT (STDMETHODCALLTYPE *GetLibAttr)(
2276 ITypeLib* This,
2277 TLIBATTR** ppTLibAttr);
2279 HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
2280 ITypeLib* This,
2281 ITypeComp** ppTComp);
2283 HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
2284 ITypeLib* This,
2285 INT index,
2286 BSTR* pBstrName,
2287 BSTR* pBstrDocString,
2288 DWORD* pdwHelpContext,
2289 BSTR* pBstrHelpFile);
2291 HRESULT (STDMETHODCALLTYPE *IsName)(
2292 ITypeLib* This,
2293 LPOLESTR szNameBuf,
2294 ULONG lHashVal,
2295 BOOL* pfName);
2297 HRESULT (STDMETHODCALLTYPE *FindName)(
2298 ITypeLib* This,
2299 LPOLESTR szNameBuf,
2300 ULONG lHashVal,
2301 ITypeInfo** ppTInfo,
2302 MEMBERID* rgMemId,
2303 USHORT* pcFound);
2305 void (STDMETHODCALLTYPE *ReleaseTLibAttr)(
2306 ITypeLib* This,
2307 TLIBATTR* pTLibAttr);
2311 /*** IUnknown methods ***/
2312 #define ITypeLib_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2313 #define ITypeLib_AddRef(p) (p)->lpVtbl->AddRef(p)
2314 #define ITypeLib_Release(p) (p)->lpVtbl->Release(p)
2315 /*** ITypeLib methods ***/
2316 #define ITypeLib_GetTypeInfoCount(p) (p)->lpVtbl->GetTypeInfoCount(p)
2317 #define ITypeLib_GetTypeInfo(p,a,b) (p)->lpVtbl->GetTypeInfo(p,a,b)
2318 #define ITypeLib_GetTypeInfoType(p,a,b) (p)->lpVtbl->GetTypeInfoType(p,a,b)
2319 #define ITypeLib_GetTypeInfoOfGuid(p,a,b) (p)->lpVtbl->GetTypeInfoOfGuid(p,a,b)
2320 #define ITypeLib_GetLibAttr(p,a) (p)->lpVtbl->GetLibAttr(p,a)
2321 #define ITypeLib_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
2322 #define ITypeLib_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
2323 #define ITypeLib_IsName(p,a,b,c) (p)->lpVtbl->IsName(p,a,b,c)
2324 #define ITypeLib_FindName(p,a,b,c,d,e) (p)->lpVtbl->FindName(p,a,b,c,d,e)
2325 #define ITypeLib_ReleaseTLibAttr(p,a) (p)->lpVtbl->ReleaseTLibAttr(p,a)
2327 #endif
2329 #define ITypeLib_METHODS \
2330 ICOM_MSVTABLE_COMPAT_FIELDS \
2331 /*** IUnknown methods ***/ \
2332 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2333 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2334 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2335 /*** ITypeLib methods ***/ \
2336 STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE; \
2337 STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ UINT index, ITypeInfo** ppTInfo) PURE; \
2338 STDMETHOD_(HRESULT,GetTypeInfoType)(THIS_ UINT index, TYPEKIND* pTKind) PURE; \
2339 STDMETHOD_(HRESULT,GetTypeInfoOfGuid)(THIS_ REFGUID guid, ITypeInfo** ppTinfo) PURE; \
2340 STDMETHOD_(HRESULT,GetLibAttr)(THIS_ TLIBATTR** ppTLibAttr) PURE; \
2341 STDMETHOD_(HRESULT,GetTypeComp)(THIS_ ITypeComp** ppTComp) PURE; \
2342 STDMETHOD_(HRESULT,GetDocumentation)(THIS_ INT index, BSTR* pBstrName, BSTR* pBstrDocString, DWORD* pdwHelpContext, BSTR* pBstrHelpFile) PURE; \
2343 STDMETHOD_(HRESULT,IsName)(THIS_ LPOLESTR szNameBuf, ULONG lHashVal, BOOL* pfName) PURE; \
2344 STDMETHOD_(HRESULT,FindName)(THIS_ LPOLESTR szNameBuf, ULONG lHashVal, ITypeInfo** ppTInfo, MEMBERID* rgMemId, USHORT* pcFound) PURE; \
2345 STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR* pTLibAttr) PURE;
2347 HRESULT CALLBACK ITypeLib_RemoteGetTypeInfoCount_Proxy(
2348 ITypeLib* This,
2349 UINT* pcTInfo);
2350 void __RPC_STUB ITypeLib_RemoteGetTypeInfoCount_Stub(
2351 struct IRpcStubBuffer* This,
2352 struct IRpcChannelBuffer* pRpcChannelBuffer,
2353 PRPC_MESSAGE pRpcMessage,
2354 DWORD* pdwStubPhase);
2355 UINT CALLBACK ITypeLib_GetTypeInfoCount_Proxy(
2356 ITypeLib* This);
2357 HRESULT __RPC_STUB ITypeLib_GetTypeInfoCount_Stub(
2358 ITypeLib* This,
2359 UINT* pcTInfo);
2360 HRESULT CALLBACK ITypeLib_GetTypeInfo_Proxy(
2361 ITypeLib* This,
2362 UINT index,
2363 ITypeInfo** ppTInfo);
2364 void __RPC_STUB ITypeLib_GetTypeInfo_Stub(
2365 struct IRpcStubBuffer* This,
2366 struct IRpcChannelBuffer* pRpcChannelBuffer,
2367 PRPC_MESSAGE pRpcMessage,
2368 DWORD* pdwStubPhase);
2369 HRESULT CALLBACK ITypeLib_GetTypeInfoType_Proxy(
2370 ITypeLib* This,
2371 UINT index,
2372 TYPEKIND* pTKind);
2373 void __RPC_STUB ITypeLib_GetTypeInfoType_Stub(
2374 struct IRpcStubBuffer* This,
2375 struct IRpcChannelBuffer* pRpcChannelBuffer,
2376 PRPC_MESSAGE pRpcMessage,
2377 DWORD* pdwStubPhase);
2378 HRESULT CALLBACK ITypeLib_GetTypeInfoOfGuid_Proxy(
2379 ITypeLib* This,
2380 REFGUID guid,
2381 ITypeInfo** ppTinfo);
2382 void __RPC_STUB ITypeLib_GetTypeInfoOfGuid_Stub(
2383 struct IRpcStubBuffer* This,
2384 struct IRpcChannelBuffer* pRpcChannelBuffer,
2385 PRPC_MESSAGE pRpcMessage,
2386 DWORD* pdwStubPhase);
2387 HRESULT CALLBACK ITypeLib_RemoteGetLibAttr_Proxy(
2388 ITypeLib* This,
2389 LPTLIBATTR* ppTLibAttr,
2390 CLEANLOCALSTORAGE* pDummy);
2391 void __RPC_STUB ITypeLib_RemoteGetLibAttr_Stub(
2392 struct IRpcStubBuffer* This,
2393 struct IRpcChannelBuffer* pRpcChannelBuffer,
2394 PRPC_MESSAGE pRpcMessage,
2395 DWORD* pdwStubPhase);
2396 HRESULT CALLBACK ITypeLib_GetLibAttr_Proxy(
2397 ITypeLib* This,
2398 TLIBATTR** ppTLibAttr);
2399 HRESULT __RPC_STUB ITypeLib_GetLibAttr_Stub(
2400 ITypeLib* This,
2401 LPTLIBATTR* ppTLibAttr,
2402 CLEANLOCALSTORAGE* pDummy);
2403 HRESULT CALLBACK ITypeLib_GetTypeComp_Proxy(
2404 ITypeLib* This,
2405 ITypeComp** ppTComp);
2406 void __RPC_STUB ITypeLib_GetTypeComp_Stub(
2407 struct IRpcStubBuffer* This,
2408 struct IRpcChannelBuffer* pRpcChannelBuffer,
2409 PRPC_MESSAGE pRpcMessage,
2410 DWORD* pdwStubPhase);
2411 HRESULT CALLBACK ITypeLib_RemoteGetDocumentation_Proxy(
2412 ITypeLib* This,
2413 INT index,
2414 DWORD refPtrFlags,
2415 BSTR* pBstrName,
2416 BSTR* pBstrDocString,
2417 DWORD* pdwHelpContext,
2418 BSTR* pBstrHelpFile);
2419 void __RPC_STUB ITypeLib_RemoteGetDocumentation_Stub(
2420 struct IRpcStubBuffer* This,
2421 struct IRpcChannelBuffer* pRpcChannelBuffer,
2422 PRPC_MESSAGE pRpcMessage,
2423 DWORD* pdwStubPhase);
2424 HRESULT CALLBACK ITypeLib_GetDocumentation_Proxy(
2425 ITypeLib* This,
2426 INT index,
2427 BSTR* pBstrName,
2428 BSTR* pBstrDocString,
2429 DWORD* pdwHelpContext,
2430 BSTR* pBstrHelpFile);
2431 HRESULT __RPC_STUB ITypeLib_GetDocumentation_Stub(
2432 ITypeLib* This,
2433 INT index,
2434 DWORD refPtrFlags,
2435 BSTR* pBstrName,
2436 BSTR* pBstrDocString,
2437 DWORD* pdwHelpContext,
2438 BSTR* pBstrHelpFile);
2439 HRESULT CALLBACK ITypeLib_RemoteIsName_Proxy(
2440 ITypeLib* This,
2441 LPOLESTR szNameBuf,
2442 ULONG lHashVal,
2443 BOOL* pfName,
2444 BSTR* pBstrLibName);
2445 void __RPC_STUB ITypeLib_RemoteIsName_Stub(
2446 struct IRpcStubBuffer* This,
2447 struct IRpcChannelBuffer* pRpcChannelBuffer,
2448 PRPC_MESSAGE pRpcMessage,
2449 DWORD* pdwStubPhase);
2450 HRESULT CALLBACK ITypeLib_IsName_Proxy(
2451 ITypeLib* This,
2452 LPOLESTR szNameBuf,
2453 ULONG lHashVal,
2454 BOOL* pfName);
2455 HRESULT __RPC_STUB ITypeLib_IsName_Stub(
2456 ITypeLib* This,
2457 LPOLESTR szNameBuf,
2458 ULONG lHashVal,
2459 BOOL* pfName,
2460 BSTR* pBstrLibName);
2461 HRESULT CALLBACK ITypeLib_RemoteFindName_Proxy(
2462 ITypeLib* This,
2463 LPOLESTR szNameBuf,
2464 ULONG lHashVal,
2465 ITypeInfo** ppTInfo,
2466 MEMBERID* rgMemId,
2467 USHORT* pcFound,
2468 BSTR* pBstrLibName);
2469 void __RPC_STUB ITypeLib_RemoteFindName_Stub(
2470 struct IRpcStubBuffer* This,
2471 struct IRpcChannelBuffer* pRpcChannelBuffer,
2472 PRPC_MESSAGE pRpcMessage,
2473 DWORD* pdwStubPhase);
2474 HRESULT CALLBACK ITypeLib_FindName_Proxy(
2475 ITypeLib* This,
2476 LPOLESTR szNameBuf,
2477 ULONG lHashVal,
2478 ITypeInfo** ppTInfo,
2479 MEMBERID* rgMemId,
2480 USHORT* pcFound);
2481 HRESULT __RPC_STUB ITypeLib_FindName_Stub(
2482 ITypeLib* This,
2483 LPOLESTR szNameBuf,
2484 ULONG lHashVal,
2485 ITypeInfo** ppTInfo,
2486 MEMBERID* rgMemId,
2487 USHORT* pcFound,
2488 BSTR* pBstrLibName);
2489 HRESULT CALLBACK ITypeLib_LocalReleaseTLibAttr_Proxy(
2490 ITypeLib* This);
2491 void __RPC_STUB ITypeLib_LocalReleaseTLibAttr_Stub(
2492 struct IRpcStubBuffer* This,
2493 struct IRpcChannelBuffer* pRpcChannelBuffer,
2494 PRPC_MESSAGE pRpcMessage,
2495 DWORD* pdwStubPhase);
2496 void CALLBACK ITypeLib_ReleaseTLibAttr_Proxy(
2497 ITypeLib* This,
2498 TLIBATTR* pTLibAttr);
2499 HRESULT __RPC_STUB ITypeLib_ReleaseTLibAttr_Stub(
2500 ITypeLib* This);
2502 typedef struct ITypeLib2 ITypeLib2;
2503 typedef ITypeLib2 *LPTYPELIB2;
2505 /*****************************************************************************
2506 * ITypeLib2 interface
2508 DEFINE_GUID(IID_ITypeLib2, 0x00020411, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2509 #if defined(__cplusplus) && !defined(CINTERFACE)
2510 struct ITypeLib2 : public ITypeLib
2512 virtual HRESULT STDMETHODCALLTYPE GetCustData(
2513 REFGUID guid,
2514 VARIANT* pVarVal) = 0;
2516 virtual HRESULT STDMETHODCALLTYPE GetLibStatistics(
2517 ULONG* pcUniqueNames,
2518 ULONG* pcchUniqueNames) = 0;
2520 virtual HRESULT STDMETHODCALLTYPE GetDocumentation2(
2521 INT index,
2522 LCID lcid,
2523 BSTR* pbstrHelpString,
2524 DWORD* pdwHelpStringContext,
2525 BSTR* pbstrHelpStringDll) = 0;
2527 virtual HRESULT STDMETHODCALLTYPE GetAllCustData(
2528 CUSTDATA* pCustData) = 0;
2531 #else
2532 typedef struct ITypeLib2Vtbl ITypeLib2Vtbl;
2533 struct ITypeLib2 {
2534 const ITypeLib2Vtbl* lpVtbl;
2536 struct ITypeLib2Vtbl {
2537 ICOM_MSVTABLE_COMPAT_FIELDS
2539 /*** IUnknown methods ***/
2540 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2541 ITypeLib2* This,
2542 REFIID riid,
2543 void** ppvObject);
2545 ULONG (STDMETHODCALLTYPE *AddRef)(
2546 ITypeLib2* This);
2548 ULONG (STDMETHODCALLTYPE *Release)(
2549 ITypeLib2* This);
2551 /*** ITypeLib methods ***/
2552 UINT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2553 ITypeLib2* This);
2555 HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2556 ITypeLib2* This,
2557 UINT index,
2558 ITypeInfo** ppTInfo);
2560 HRESULT (STDMETHODCALLTYPE *GetTypeInfoType)(
2561 ITypeLib2* This,
2562 UINT index,
2563 TYPEKIND* pTKind);
2565 HRESULT (STDMETHODCALLTYPE *GetTypeInfoOfGuid)(
2566 ITypeLib2* This,
2567 REFGUID guid,
2568 ITypeInfo** ppTinfo);
2570 HRESULT (STDMETHODCALLTYPE *GetLibAttr)(
2571 ITypeLib2* This,
2572 TLIBATTR** ppTLibAttr);
2574 HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
2575 ITypeLib2* This,
2576 ITypeComp** ppTComp);
2578 HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
2579 ITypeLib2* This,
2580 INT index,
2581 BSTR* pBstrName,
2582 BSTR* pBstrDocString,
2583 DWORD* pdwHelpContext,
2584 BSTR* pBstrHelpFile);
2586 HRESULT (STDMETHODCALLTYPE *IsName)(
2587 ITypeLib2* This,
2588 LPOLESTR szNameBuf,
2589 ULONG lHashVal,
2590 BOOL* pfName);
2592 HRESULT (STDMETHODCALLTYPE *FindName)(
2593 ITypeLib2* This,
2594 LPOLESTR szNameBuf,
2595 ULONG lHashVal,
2596 ITypeInfo** ppTInfo,
2597 MEMBERID* rgMemId,
2598 USHORT* pcFound);
2600 void (STDMETHODCALLTYPE *ReleaseTLibAttr)(
2601 ITypeLib2* This,
2602 TLIBATTR* pTLibAttr);
2604 /*** ITypeLib2 methods ***/
2605 HRESULT (STDMETHODCALLTYPE *GetCustData)(
2606 ITypeLib2* This,
2607 REFGUID guid,
2608 VARIANT* pVarVal);
2610 HRESULT (STDMETHODCALLTYPE *GetLibStatistics)(
2611 ITypeLib2* This,
2612 ULONG* pcUniqueNames,
2613 ULONG* pcchUniqueNames);
2615 HRESULT (STDMETHODCALLTYPE *GetDocumentation2)(
2616 ITypeLib2* This,
2617 INT index,
2618 LCID lcid,
2619 BSTR* pbstrHelpString,
2620 DWORD* pdwHelpStringContext,
2621 BSTR* pbstrHelpStringDll);
2623 HRESULT (STDMETHODCALLTYPE *GetAllCustData)(
2624 ITypeLib2* This,
2625 CUSTDATA* pCustData);
2629 /*** IUnknown methods ***/
2630 #define ITypeLib2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2631 #define ITypeLib2_AddRef(p) (p)->lpVtbl->AddRef(p)
2632 #define ITypeLib2_Release(p) (p)->lpVtbl->Release(p)
2633 /*** ITypeLib methods ***/
2634 #define ITypeLib2_GetTypeInfoCount(p) (p)->lpVtbl->GetTypeInfoCount(p)
2635 #define ITypeLib2_GetTypeInfo(p,a,b) (p)->lpVtbl->GetTypeInfo(p,a,b)
2636 #define ITypeLib2_GetTypeInfoType(p,a,b) (p)->lpVtbl->GetTypeInfoType(p,a,b)
2637 #define ITypeLib2_GetTypeInfoOfGuid(p,a,b) (p)->lpVtbl->GetTypeInfoOfGuid(p,a,b)
2638 #define ITypeLib2_GetLibAttr(p,a) (p)->lpVtbl->GetLibAttr(p,a)
2639 #define ITypeLib2_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
2640 #define ITypeLib2_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
2641 #define ITypeLib2_IsName(p,a,b,c) (p)->lpVtbl->IsName(p,a,b,c)
2642 #define ITypeLib2_FindName(p,a,b,c,d,e) (p)->lpVtbl->FindName(p,a,b,c,d,e)
2643 #define ITypeLib2_ReleaseTLibAttr(p,a) (p)->lpVtbl->ReleaseTLibAttr(p,a)
2644 /*** ITypeLib2 methods ***/
2645 #define ITypeLib2_GetCustData(p,a,b) (p)->lpVtbl->GetCustData(p,a,b)
2646 #define ITypeLib2_GetLibStatistics(p,a,b) (p)->lpVtbl->GetLibStatistics(p,a,b)
2647 #define ITypeLib2_GetDocumentation2(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation2(p,a,b,c,d,e)
2648 #define ITypeLib2_GetAllCustData(p,a) (p)->lpVtbl->GetAllCustData(p,a)
2650 #endif
2652 #define ITypeLib2_METHODS \
2653 ICOM_MSVTABLE_COMPAT_FIELDS \
2654 /*** IUnknown methods ***/ \
2655 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2656 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2657 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2658 /*** ITypeLib methods ***/ \
2659 STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE; \
2660 STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ UINT index, ITypeInfo** ppTInfo) PURE; \
2661 STDMETHOD_(HRESULT,GetTypeInfoType)(THIS_ UINT index, TYPEKIND* pTKind) PURE; \
2662 STDMETHOD_(HRESULT,GetTypeInfoOfGuid)(THIS_ REFGUID guid, ITypeInfo** ppTinfo) PURE; \
2663 STDMETHOD_(HRESULT,GetLibAttr)(THIS_ TLIBATTR** ppTLibAttr) PURE; \
2664 STDMETHOD_(HRESULT,GetTypeComp)(THIS_ ITypeComp** ppTComp) PURE; \
2665 STDMETHOD_(HRESULT,GetDocumentation)(THIS_ INT index, BSTR* pBstrName, BSTR* pBstrDocString, DWORD* pdwHelpContext, BSTR* pBstrHelpFile) PURE; \
2666 STDMETHOD_(HRESULT,IsName)(THIS_ LPOLESTR szNameBuf, ULONG lHashVal, BOOL* pfName) PURE; \
2667 STDMETHOD_(HRESULT,FindName)(THIS_ LPOLESTR szNameBuf, ULONG lHashVal, ITypeInfo** ppTInfo, MEMBERID* rgMemId, USHORT* pcFound) PURE; \
2668 STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR* pTLibAttr) PURE; \
2669 /*** ITypeLib2 methods ***/ \
2670 STDMETHOD_(HRESULT,GetCustData)(THIS_ REFGUID guid, VARIANT* pVarVal) PURE; \
2671 STDMETHOD_(HRESULT,GetLibStatistics)(THIS_ ULONG* pcUniqueNames, ULONG* pcchUniqueNames) PURE; \
2672 STDMETHOD_(HRESULT,GetDocumentation2)(THIS_ INT index, LCID lcid, BSTR* pbstrHelpString, DWORD* pdwHelpStringContext, BSTR* pbstrHelpStringDll) PURE; \
2673 STDMETHOD_(HRESULT,GetAllCustData)(THIS_ CUSTDATA* pCustData) PURE;
2675 HRESULT CALLBACK ITypeLib2_GetCustData_Proxy(
2676 ITypeLib2* This,
2677 REFGUID guid,
2678 VARIANT* pVarVal);
2679 void __RPC_STUB ITypeLib2_GetCustData_Stub(
2680 struct IRpcStubBuffer* This,
2681 struct IRpcChannelBuffer* pRpcChannelBuffer,
2682 PRPC_MESSAGE pRpcMessage,
2683 DWORD* pdwStubPhase);
2684 HRESULT CALLBACK ITypeLib2_RemoteGetLibStatistics_Proxy(
2685 ITypeLib2* This,
2686 ULONG* pcUniqueNames,
2687 ULONG* pcchUniqueNames);
2688 void __RPC_STUB ITypeLib2_RemoteGetLibStatistics_Stub(
2689 struct IRpcStubBuffer* This,
2690 struct IRpcChannelBuffer* pRpcChannelBuffer,
2691 PRPC_MESSAGE pRpcMessage,
2692 DWORD* pdwStubPhase);
2693 HRESULT CALLBACK ITypeLib2_GetLibStatistics_Proxy(
2694 ITypeLib2* This,
2695 ULONG* pcUniqueNames,
2696 ULONG* pcchUniqueNames);
2697 HRESULT __RPC_STUB ITypeLib2_GetLibStatistics_Stub(
2698 ITypeLib2* This,
2699 ULONG* pcUniqueNames,
2700 ULONG* pcchUniqueNames);
2701 HRESULT CALLBACK ITypeLib2_RemoteGetDocumentation2_Proxy(
2702 ITypeLib2* This,
2703 INT index,
2704 LCID lcid,
2705 DWORD refPtrFlags,
2706 BSTR* pbstrHelpString,
2707 DWORD* pdwHelpStringContext,
2708 BSTR* pbstrHelpStringDll);
2709 void __RPC_STUB ITypeLib2_RemoteGetDocumentation2_Stub(
2710 struct IRpcStubBuffer* This,
2711 struct IRpcChannelBuffer* pRpcChannelBuffer,
2712 PRPC_MESSAGE pRpcMessage,
2713 DWORD* pdwStubPhase);
2714 HRESULT CALLBACK ITypeLib2_GetDocumentation2_Proxy(
2715 ITypeLib2* This,
2716 INT index,
2717 LCID lcid,
2718 BSTR* pbstrHelpString,
2719 DWORD* pdwHelpStringContext,
2720 BSTR* pbstrHelpStringDll);
2721 HRESULT __RPC_STUB ITypeLib2_GetDocumentation2_Stub(
2722 ITypeLib2* This,
2723 INT index,
2724 LCID lcid,
2725 DWORD refPtrFlags,
2726 BSTR* pbstrHelpString,
2727 DWORD* pdwHelpStringContext,
2728 BSTR* pbstrHelpStringDll);
2729 HRESULT CALLBACK ITypeLib2_GetAllCustData_Proxy(
2730 ITypeLib2* This,
2731 CUSTDATA* pCustData);
2732 void __RPC_STUB ITypeLib2_GetAllCustData_Stub(
2733 struct IRpcStubBuffer* This,
2734 struct IRpcChannelBuffer* pRpcChannelBuffer,
2735 PRPC_MESSAGE pRpcMessage,
2736 DWORD* pdwStubPhase);
2738 typedef struct ITypeChangeEvents ITypeChangeEvents;
2739 typedef ITypeChangeEvents *LPTYPECHANGEEVENTS;
2741 typedef enum tagCHANGEKIND {
2742 CHANGEKIND_ADDMEMBER,
2743 CHANGEKIND_DELETEMEMBER,
2744 CHANGEKIND_SETNAMES,
2745 CHANGEKIND_SETDOCUMENTATION,
2746 CHANGEKIND_GENERAL,
2747 CHANGEKIND_INVALIDATE,
2748 CHANGEKIND_CHANGEFAILED,
2749 CHANGEKIND_MAX
2750 } CHANGEKIND;
2752 /*****************************************************************************
2753 * ITypeChangeEvents interface
2755 DEFINE_GUID(IID_ITypeChangeEvents, 0x00020410, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2756 #if defined(__cplusplus) && !defined(CINTERFACE)
2757 struct ITypeChangeEvents : public IUnknown
2759 virtual HRESULT STDMETHODCALLTYPE RequestTypeChange(
2760 CHANGEKIND changeKind,
2761 ITypeInfo* pTInfoBefore,
2762 LPOLESTR pStrName,
2763 INT* pfCancel) = 0;
2765 virtual HRESULT STDMETHODCALLTYPE AfterTypeChange(
2766 CHANGEKIND changeKind,
2767 ITypeInfo* pTInfoAfter,
2768 LPOLESTR pStrName) = 0;
2771 #else
2772 typedef struct ITypeChangeEventsVtbl ITypeChangeEventsVtbl;
2773 struct ITypeChangeEvents {
2774 const ITypeChangeEventsVtbl* lpVtbl;
2776 struct ITypeChangeEventsVtbl {
2777 ICOM_MSVTABLE_COMPAT_FIELDS
2779 /*** IUnknown methods ***/
2780 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2781 ITypeChangeEvents* This,
2782 REFIID riid,
2783 void** ppvObject);
2785 ULONG (STDMETHODCALLTYPE *AddRef)(
2786 ITypeChangeEvents* This);
2788 ULONG (STDMETHODCALLTYPE *Release)(
2789 ITypeChangeEvents* This);
2791 /*** ITypeChangeEvents methods ***/
2792 HRESULT (STDMETHODCALLTYPE *RequestTypeChange)(
2793 ITypeChangeEvents* This,
2794 CHANGEKIND changeKind,
2795 ITypeInfo* pTInfoBefore,
2796 LPOLESTR pStrName,
2797 INT* pfCancel);
2799 HRESULT (STDMETHODCALLTYPE *AfterTypeChange)(
2800 ITypeChangeEvents* This,
2801 CHANGEKIND changeKind,
2802 ITypeInfo* pTInfoAfter,
2803 LPOLESTR pStrName);
2807 /*** IUnknown methods ***/
2808 #define ITypeChangeEvents_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2809 #define ITypeChangeEvents_AddRef(p) (p)->lpVtbl->AddRef(p)
2810 #define ITypeChangeEvents_Release(p) (p)->lpVtbl->Release(p)
2811 /*** ITypeChangeEvents methods ***/
2812 #define ITypeChangeEvents_RequestTypeChange(p,a,b,c,d) (p)->lpVtbl->RequestTypeChange(p,a,b,c,d)
2813 #define ITypeChangeEvents_AfterTypeChange(p,a,b,c) (p)->lpVtbl->AfterTypeChange(p,a,b,c)
2815 #endif
2817 #define ITypeChangeEvents_METHODS \
2818 ICOM_MSVTABLE_COMPAT_FIELDS \
2819 /*** IUnknown methods ***/ \
2820 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2821 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2822 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2823 /*** ITypeChangeEvents methods ***/ \
2824 STDMETHOD_(HRESULT,RequestTypeChange)(THIS_ CHANGEKIND changeKind, ITypeInfo* pTInfoBefore, LPOLESTR pStrName, INT* pfCancel) PURE; \
2825 STDMETHOD_(HRESULT,AfterTypeChange)(THIS_ CHANGEKIND changeKind, ITypeInfo* pTInfoAfter, LPOLESTR pStrName) PURE;
2827 HRESULT CALLBACK ITypeChangeEvents_RequestTypeChange_Proxy(
2828 ITypeChangeEvents* This,
2829 CHANGEKIND changeKind,
2830 ITypeInfo* pTInfoBefore,
2831 LPOLESTR pStrName,
2832 INT* pfCancel);
2833 void __RPC_STUB ITypeChangeEvents_RequestTypeChange_Stub(
2834 struct IRpcStubBuffer* This,
2835 struct IRpcChannelBuffer* pRpcChannelBuffer,
2836 PRPC_MESSAGE pRpcMessage,
2837 DWORD* pdwStubPhase);
2838 HRESULT CALLBACK ITypeChangeEvents_AfterTypeChange_Proxy(
2839 ITypeChangeEvents* This,
2840 CHANGEKIND changeKind,
2841 ITypeInfo* pTInfoAfter,
2842 LPOLESTR pStrName);
2843 void __RPC_STUB ITypeChangeEvents_AfterTypeChange_Stub(
2844 struct IRpcStubBuffer* This,
2845 struct IRpcChannelBuffer* pRpcChannelBuffer,
2846 PRPC_MESSAGE pRpcMessage,
2847 DWORD* pdwStubPhase);
2849 typedef struct IErrorInfo IErrorInfo;
2850 typedef IErrorInfo *LPERRORINFO;
2852 /*****************************************************************************
2853 * IErrorInfo interface
2855 DEFINE_GUID(IID_IErrorInfo, 0x1cf2b120, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
2856 #if defined(__cplusplus) && !defined(CINTERFACE)
2857 struct IErrorInfo : public IUnknown
2859 virtual HRESULT STDMETHODCALLTYPE GetGUID(
2860 GUID* pGUID) = 0;
2862 virtual HRESULT STDMETHODCALLTYPE GetSource(
2863 BSTR* pBstrSource) = 0;
2865 virtual HRESULT STDMETHODCALLTYPE GetDescription(
2866 BSTR* pBstrDescription) = 0;
2868 virtual HRESULT STDMETHODCALLTYPE GetHelpFile(
2869 BSTR* pBstrHelpFile) = 0;
2871 virtual HRESULT STDMETHODCALLTYPE GetHelpContext(
2872 DWORD* pdwHelpContext) = 0;
2875 #else
2876 typedef struct IErrorInfoVtbl IErrorInfoVtbl;
2877 struct IErrorInfo {
2878 const IErrorInfoVtbl* lpVtbl;
2880 struct IErrorInfoVtbl {
2881 ICOM_MSVTABLE_COMPAT_FIELDS
2883 /*** IUnknown methods ***/
2884 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2885 IErrorInfo* This,
2886 REFIID riid,
2887 void** ppvObject);
2889 ULONG (STDMETHODCALLTYPE *AddRef)(
2890 IErrorInfo* This);
2892 ULONG (STDMETHODCALLTYPE *Release)(
2893 IErrorInfo* This);
2895 /*** IErrorInfo methods ***/
2896 HRESULT (STDMETHODCALLTYPE *GetGUID)(
2897 IErrorInfo* This,
2898 GUID* pGUID);
2900 HRESULT (STDMETHODCALLTYPE *GetSource)(
2901 IErrorInfo* This,
2902 BSTR* pBstrSource);
2904 HRESULT (STDMETHODCALLTYPE *GetDescription)(
2905 IErrorInfo* This,
2906 BSTR* pBstrDescription);
2908 HRESULT (STDMETHODCALLTYPE *GetHelpFile)(
2909 IErrorInfo* This,
2910 BSTR* pBstrHelpFile);
2912 HRESULT (STDMETHODCALLTYPE *GetHelpContext)(
2913 IErrorInfo* This,
2914 DWORD* pdwHelpContext);
2918 /*** IUnknown methods ***/
2919 #define IErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2920 #define IErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
2921 #define IErrorInfo_Release(p) (p)->lpVtbl->Release(p)
2922 /*** IErrorInfo methods ***/
2923 #define IErrorInfo_GetGUID(p,a) (p)->lpVtbl->GetGUID(p,a)
2924 #define IErrorInfo_GetSource(p,a) (p)->lpVtbl->GetSource(p,a)
2925 #define IErrorInfo_GetDescription(p,a) (p)->lpVtbl->GetDescription(p,a)
2926 #define IErrorInfo_GetHelpFile(p,a) (p)->lpVtbl->GetHelpFile(p,a)
2927 #define IErrorInfo_GetHelpContext(p,a) (p)->lpVtbl->GetHelpContext(p,a)
2929 #endif
2931 #define IErrorInfo_METHODS \
2932 ICOM_MSVTABLE_COMPAT_FIELDS \
2933 /*** IUnknown methods ***/ \
2934 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2935 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2936 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2937 /*** IErrorInfo methods ***/ \
2938 STDMETHOD_(HRESULT,GetGUID)(THIS_ GUID* pGUID) PURE; \
2939 STDMETHOD_(HRESULT,GetSource)(THIS_ BSTR* pBstrSource) PURE; \
2940 STDMETHOD_(HRESULT,GetDescription)(THIS_ BSTR* pBstrDescription) PURE; \
2941 STDMETHOD_(HRESULT,GetHelpFile)(THIS_ BSTR* pBstrHelpFile) PURE; \
2942 STDMETHOD_(HRESULT,GetHelpContext)(THIS_ DWORD* pdwHelpContext) PURE;
2944 HRESULT CALLBACK IErrorInfo_GetGUID_Proxy(
2945 IErrorInfo* This,
2946 GUID* pGUID);
2947 void __RPC_STUB IErrorInfo_GetGUID_Stub(
2948 struct IRpcStubBuffer* This,
2949 struct IRpcChannelBuffer* pRpcChannelBuffer,
2950 PRPC_MESSAGE pRpcMessage,
2951 DWORD* pdwStubPhase);
2952 HRESULT CALLBACK IErrorInfo_GetSource_Proxy(
2953 IErrorInfo* This,
2954 BSTR* pBstrSource);
2955 void __RPC_STUB IErrorInfo_GetSource_Stub(
2956 struct IRpcStubBuffer* This,
2957 struct IRpcChannelBuffer* pRpcChannelBuffer,
2958 PRPC_MESSAGE pRpcMessage,
2959 DWORD* pdwStubPhase);
2960 HRESULT CALLBACK IErrorInfo_GetDescription_Proxy(
2961 IErrorInfo* This,
2962 BSTR* pBstrDescription);
2963 void __RPC_STUB IErrorInfo_GetDescription_Stub(
2964 struct IRpcStubBuffer* This,
2965 struct IRpcChannelBuffer* pRpcChannelBuffer,
2966 PRPC_MESSAGE pRpcMessage,
2967 DWORD* pdwStubPhase);
2968 HRESULT CALLBACK IErrorInfo_GetHelpFile_Proxy(
2969 IErrorInfo* This,
2970 BSTR* pBstrHelpFile);
2971 void __RPC_STUB IErrorInfo_GetHelpFile_Stub(
2972 struct IRpcStubBuffer* This,
2973 struct IRpcChannelBuffer* pRpcChannelBuffer,
2974 PRPC_MESSAGE pRpcMessage,
2975 DWORD* pdwStubPhase);
2976 HRESULT CALLBACK IErrorInfo_GetHelpContext_Proxy(
2977 IErrorInfo* This,
2978 DWORD* pdwHelpContext);
2979 void __RPC_STUB IErrorInfo_GetHelpContext_Stub(
2980 struct IRpcStubBuffer* This,
2981 struct IRpcChannelBuffer* pRpcChannelBuffer,
2982 PRPC_MESSAGE pRpcMessage,
2983 DWORD* pdwStubPhase);
2985 typedef struct ICreateErrorInfo ICreateErrorInfo;
2986 typedef ICreateErrorInfo *LPCREATEERRORINFO;
2988 /*****************************************************************************
2989 * ICreateErrorInfo interface
2991 DEFINE_GUID(IID_ICreateErrorInfo, 0x22f03340, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
2992 #if defined(__cplusplus) && !defined(CINTERFACE)
2993 struct ICreateErrorInfo : public IUnknown
2995 virtual HRESULT STDMETHODCALLTYPE SetGUID(
2996 REFGUID rguid) = 0;
2998 virtual HRESULT STDMETHODCALLTYPE SetSource(
2999 LPOLESTR szSource) = 0;
3001 virtual HRESULT STDMETHODCALLTYPE SetDescription(
3002 LPOLESTR szDescription) = 0;
3004 virtual HRESULT STDMETHODCALLTYPE SetHelpFile(
3005 LPOLESTR szHelpFile) = 0;
3007 virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
3008 DWORD dwHelpContext) = 0;
3011 #else
3012 typedef struct ICreateErrorInfoVtbl ICreateErrorInfoVtbl;
3013 struct ICreateErrorInfo {
3014 const ICreateErrorInfoVtbl* lpVtbl;
3016 struct ICreateErrorInfoVtbl {
3017 ICOM_MSVTABLE_COMPAT_FIELDS
3019 /*** IUnknown methods ***/
3020 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3021 ICreateErrorInfo* This,
3022 REFIID riid,
3023 void** ppvObject);
3025 ULONG (STDMETHODCALLTYPE *AddRef)(
3026 ICreateErrorInfo* This);
3028 ULONG (STDMETHODCALLTYPE *Release)(
3029 ICreateErrorInfo* This);
3031 /*** ICreateErrorInfo methods ***/
3032 HRESULT (STDMETHODCALLTYPE *SetGUID)(
3033 ICreateErrorInfo* This,
3034 REFGUID rguid);
3036 HRESULT (STDMETHODCALLTYPE *SetSource)(
3037 ICreateErrorInfo* This,
3038 LPOLESTR szSource);
3040 HRESULT (STDMETHODCALLTYPE *SetDescription)(
3041 ICreateErrorInfo* This,
3042 LPOLESTR szDescription);
3044 HRESULT (STDMETHODCALLTYPE *SetHelpFile)(
3045 ICreateErrorInfo* This,
3046 LPOLESTR szHelpFile);
3048 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
3049 ICreateErrorInfo* This,
3050 DWORD dwHelpContext);
3054 /*** IUnknown methods ***/
3055 #define ICreateErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3056 #define ICreateErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
3057 #define ICreateErrorInfo_Release(p) (p)->lpVtbl->Release(p)
3058 /*** ICreateErrorInfo methods ***/
3059 #define ICreateErrorInfo_SetGUID(p,a) (p)->lpVtbl->SetGUID(p,a)
3060 #define ICreateErrorInfo_SetSource(p,a) (p)->lpVtbl->SetSource(p,a)
3061 #define ICreateErrorInfo_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
3062 #define ICreateErrorInfo_SetHelpFile(p,a) (p)->lpVtbl->SetHelpFile(p,a)
3063 #define ICreateErrorInfo_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
3065 #endif
3067 #define ICreateErrorInfo_METHODS \
3068 ICOM_MSVTABLE_COMPAT_FIELDS \
3069 /*** IUnknown methods ***/ \
3070 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3071 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3072 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3073 /*** ICreateErrorInfo methods ***/ \
3074 STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID rguid) PURE; \
3075 STDMETHOD_(HRESULT,SetSource)(THIS_ LPOLESTR szSource) PURE; \
3076 STDMETHOD_(HRESULT,SetDescription)(THIS_ LPOLESTR szDescription) PURE; \
3077 STDMETHOD_(HRESULT,SetHelpFile)(THIS_ LPOLESTR szHelpFile) PURE; \
3078 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE;
3080 HRESULT CALLBACK ICreateErrorInfo_SetGUID_Proxy(
3081 ICreateErrorInfo* This,
3082 REFGUID rguid);
3083 void __RPC_STUB ICreateErrorInfo_SetGUID_Stub(
3084 struct IRpcStubBuffer* This,
3085 struct IRpcChannelBuffer* pRpcChannelBuffer,
3086 PRPC_MESSAGE pRpcMessage,
3087 DWORD* pdwStubPhase);
3088 HRESULT CALLBACK ICreateErrorInfo_SetSource_Proxy(
3089 ICreateErrorInfo* This,
3090 LPOLESTR szSource);
3091 void __RPC_STUB ICreateErrorInfo_SetSource_Stub(
3092 struct IRpcStubBuffer* This,
3093 struct IRpcChannelBuffer* pRpcChannelBuffer,
3094 PRPC_MESSAGE pRpcMessage,
3095 DWORD* pdwStubPhase);
3096 HRESULT CALLBACK ICreateErrorInfo_SetDescription_Proxy(
3097 ICreateErrorInfo* This,
3098 LPOLESTR szDescription);
3099 void __RPC_STUB ICreateErrorInfo_SetDescription_Stub(
3100 struct IRpcStubBuffer* This,
3101 struct IRpcChannelBuffer* pRpcChannelBuffer,
3102 PRPC_MESSAGE pRpcMessage,
3103 DWORD* pdwStubPhase);
3104 HRESULT CALLBACK ICreateErrorInfo_SetHelpFile_Proxy(
3105 ICreateErrorInfo* This,
3106 LPOLESTR szHelpFile);
3107 void __RPC_STUB ICreateErrorInfo_SetHelpFile_Stub(
3108 struct IRpcStubBuffer* This,
3109 struct IRpcChannelBuffer* pRpcChannelBuffer,
3110 PRPC_MESSAGE pRpcMessage,
3111 DWORD* pdwStubPhase);
3112 HRESULT CALLBACK ICreateErrorInfo_SetHelpContext_Proxy(
3113 ICreateErrorInfo* This,
3114 DWORD dwHelpContext);
3115 void __RPC_STUB ICreateErrorInfo_SetHelpContext_Stub(
3116 struct IRpcStubBuffer* This,
3117 struct IRpcChannelBuffer* pRpcChannelBuffer,
3118 PRPC_MESSAGE pRpcMessage,
3119 DWORD* pdwStubPhase);
3121 typedef struct ISupportErrorInfo ISupportErrorInfo;
3122 typedef ISupportErrorInfo *LPSUPPORTERRORINFO;
3124 /*****************************************************************************
3125 * ISupportErrorInfo interface
3127 DEFINE_GUID(IID_ISupportErrorInfo, 0xdf0b3d60, 0x548f, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
3128 #if defined(__cplusplus) && !defined(CINTERFACE)
3129 struct ISupportErrorInfo : public IUnknown
3131 virtual HRESULT STDMETHODCALLTYPE InterfaceSupportsErrorInfo(
3132 REFIID riid) = 0;
3135 #else
3136 typedef struct ISupportErrorInfoVtbl ISupportErrorInfoVtbl;
3137 struct ISupportErrorInfo {
3138 const ISupportErrorInfoVtbl* lpVtbl;
3140 struct ISupportErrorInfoVtbl {
3141 ICOM_MSVTABLE_COMPAT_FIELDS
3143 /*** IUnknown methods ***/
3144 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3145 ISupportErrorInfo* This,
3146 REFIID riid,
3147 void** ppvObject);
3149 ULONG (STDMETHODCALLTYPE *AddRef)(
3150 ISupportErrorInfo* This);
3152 ULONG (STDMETHODCALLTYPE *Release)(
3153 ISupportErrorInfo* This);
3155 /*** ISupportErrorInfo methods ***/
3156 HRESULT (STDMETHODCALLTYPE *InterfaceSupportsErrorInfo)(
3157 ISupportErrorInfo* This,
3158 REFIID riid);
3162 /*** IUnknown methods ***/
3163 #define ISupportErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3164 #define ISupportErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
3165 #define ISupportErrorInfo_Release(p) (p)->lpVtbl->Release(p)
3166 /*** ISupportErrorInfo methods ***/
3167 #define ISupportErrorInfo_InterfaceSupportsErrorInfo(p,a) (p)->lpVtbl->InterfaceSupportsErrorInfo(p,a)
3169 #endif
3171 #define ISupportErrorInfo_METHODS \
3172 ICOM_MSVTABLE_COMPAT_FIELDS \
3173 /*** IUnknown methods ***/ \
3174 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3175 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3176 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3177 /*** ISupportErrorInfo methods ***/ \
3178 STDMETHOD_(HRESULT,InterfaceSupportsErrorInfo)(THIS_ REFIID riid) PURE;
3180 HRESULT CALLBACK ISupportErrorInfo_InterfaceSupportsErrorInfo_Proxy(
3181 ISupportErrorInfo* This,
3182 REFIID riid);
3183 void __RPC_STUB ISupportErrorInfo_InterfaceSupportsErrorInfo_Stub(
3184 struct IRpcStubBuffer* This,
3185 struct IRpcChannelBuffer* pRpcChannelBuffer,
3186 PRPC_MESSAGE pRpcMessage,
3187 DWORD* pdwStubPhase);
3189 typedef struct ITypeFactory ITypeFactory;
3190 /*****************************************************************************
3191 * ITypeFactory interface
3193 DEFINE_GUID(IID_ITypeFactory, 0x0000002e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3194 #if defined(__cplusplus) && !defined(CINTERFACE)
3195 struct ITypeFactory : public IUnknown
3197 virtual HRESULT STDMETHODCALLTYPE CreateFromTypeInfo(
3198 ITypeInfo* pTypeInfo,
3199 REFIID riid,
3200 IUnknown** ppv) = 0;
3203 #else
3204 typedef struct ITypeFactoryVtbl ITypeFactoryVtbl;
3205 struct ITypeFactory {
3206 const ITypeFactoryVtbl* lpVtbl;
3208 struct ITypeFactoryVtbl {
3209 ICOM_MSVTABLE_COMPAT_FIELDS
3211 /*** IUnknown methods ***/
3212 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3213 ITypeFactory* This,
3214 REFIID riid,
3215 void** ppvObject);
3217 ULONG (STDMETHODCALLTYPE *AddRef)(
3218 ITypeFactory* This);
3220 ULONG (STDMETHODCALLTYPE *Release)(
3221 ITypeFactory* This);
3223 /*** ITypeFactory methods ***/
3224 HRESULT (STDMETHODCALLTYPE *CreateFromTypeInfo)(
3225 ITypeFactory* This,
3226 ITypeInfo* pTypeInfo,
3227 REFIID riid,
3228 IUnknown** ppv);
3232 /*** IUnknown methods ***/
3233 #define ITypeFactory_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3234 #define ITypeFactory_AddRef(p) (p)->lpVtbl->AddRef(p)
3235 #define ITypeFactory_Release(p) (p)->lpVtbl->Release(p)
3236 /*** ITypeFactory methods ***/
3237 #define ITypeFactory_CreateFromTypeInfo(p,a,b,c) (p)->lpVtbl->CreateFromTypeInfo(p,a,b,c)
3239 #endif
3241 #define ITypeFactory_METHODS \
3242 ICOM_MSVTABLE_COMPAT_FIELDS \
3243 /*** IUnknown methods ***/ \
3244 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3245 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3246 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3247 /*** ITypeFactory methods ***/ \
3248 STDMETHOD_(HRESULT,CreateFromTypeInfo)(THIS_ ITypeInfo* pTypeInfo, REFIID riid, IUnknown** ppv) PURE;
3250 HRESULT CALLBACK ITypeFactory_CreateFromTypeInfo_Proxy(
3251 ITypeFactory* This,
3252 ITypeInfo* pTypeInfo,
3253 REFIID riid,
3254 IUnknown** ppv);
3255 void __RPC_STUB ITypeFactory_CreateFromTypeInfo_Stub(
3256 struct IRpcStubBuffer* This,
3257 struct IRpcChannelBuffer* pRpcChannelBuffer,
3258 PRPC_MESSAGE pRpcMessage,
3259 DWORD* pdwStubPhase);
3261 typedef struct ITypeMarshal ITypeMarshal;
3262 /*****************************************************************************
3263 * ITypeMarshal interface
3265 DEFINE_GUID(IID_ITypeMarshal, 0x0000002d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3266 #if defined(__cplusplus) && !defined(CINTERFACE)
3267 struct ITypeMarshal : public IUnknown
3269 virtual HRESULT STDMETHODCALLTYPE Size(
3270 PVOID pvType,
3271 DWORD dwDestContext,
3272 PVOID pvDestContext,
3273 ULONG* pSize) = 0;
3275 virtual HRESULT STDMETHODCALLTYPE Marshal(
3276 PVOID pvType,
3277 DWORD dwDestContext,
3278 PVOID pvDestContext,
3279 ULONG cbBufferLength,
3280 BYTE* pBuffer,
3281 ULONG* pcbWritten) = 0;
3283 virtual HRESULT STDMETHODCALLTYPE Unmarshal(
3284 PVOID pvType,
3285 DWORD dwFlags,
3286 ULONG cbBufferLength,
3287 BYTE* pBuffer,
3288 ULONG* pcbRead) = 0;
3290 virtual HRESULT STDMETHODCALLTYPE Free(
3291 PVOID pvType) = 0;
3294 #else
3295 typedef struct ITypeMarshalVtbl ITypeMarshalVtbl;
3296 struct ITypeMarshal {
3297 const ITypeMarshalVtbl* lpVtbl;
3299 struct ITypeMarshalVtbl {
3300 ICOM_MSVTABLE_COMPAT_FIELDS
3302 /*** IUnknown methods ***/
3303 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3304 ITypeMarshal* This,
3305 REFIID riid,
3306 void** ppvObject);
3308 ULONG (STDMETHODCALLTYPE *AddRef)(
3309 ITypeMarshal* This);
3311 ULONG (STDMETHODCALLTYPE *Release)(
3312 ITypeMarshal* This);
3314 /*** ITypeMarshal methods ***/
3315 HRESULT (STDMETHODCALLTYPE *Size)(
3316 ITypeMarshal* This,
3317 PVOID pvType,
3318 DWORD dwDestContext,
3319 PVOID pvDestContext,
3320 ULONG* pSize);
3322 HRESULT (STDMETHODCALLTYPE *Marshal)(
3323 ITypeMarshal* This,
3324 PVOID pvType,
3325 DWORD dwDestContext,
3326 PVOID pvDestContext,
3327 ULONG cbBufferLength,
3328 BYTE* pBuffer,
3329 ULONG* pcbWritten);
3331 HRESULT (STDMETHODCALLTYPE *Unmarshal)(
3332 ITypeMarshal* This,
3333 PVOID pvType,
3334 DWORD dwFlags,
3335 ULONG cbBufferLength,
3336 BYTE* pBuffer,
3337 ULONG* pcbRead);
3339 HRESULT (STDMETHODCALLTYPE *Free)(
3340 ITypeMarshal* This,
3341 PVOID pvType);
3345 /*** IUnknown methods ***/
3346 #define ITypeMarshal_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3347 #define ITypeMarshal_AddRef(p) (p)->lpVtbl->AddRef(p)
3348 #define ITypeMarshal_Release(p) (p)->lpVtbl->Release(p)
3349 /*** ITypeMarshal methods ***/
3350 #define ITypeMarshal_Size(p,a,b,c,d) (p)->lpVtbl->Size(p,a,b,c,d)
3351 #define ITypeMarshal_Marshal(p,a,b,c,d,e,f) (p)->lpVtbl->Marshal(p,a,b,c,d,e,f)
3352 #define ITypeMarshal_Unmarshal(p,a,b,c,d,e) (p)->lpVtbl->Unmarshal(p,a,b,c,d,e)
3353 #define ITypeMarshal_Free(p,a) (p)->lpVtbl->Free(p,a)
3355 #endif
3357 #define ITypeMarshal_METHODS \
3358 ICOM_MSVTABLE_COMPAT_FIELDS \
3359 /*** IUnknown methods ***/ \
3360 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3361 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3362 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3363 /*** ITypeMarshal methods ***/ \
3364 STDMETHOD_(HRESULT,Size)(THIS_ PVOID pvType, DWORD dwDestContext, PVOID pvDestContext, ULONG* pSize) PURE; \
3365 STDMETHOD_(HRESULT,Marshal)(THIS_ PVOID pvType, DWORD dwDestContext, PVOID pvDestContext, ULONG cbBufferLength, BYTE* pBuffer, ULONG* pcbWritten) PURE; \
3366 STDMETHOD_(HRESULT,Unmarshal)(THIS_ PVOID pvType, DWORD dwFlags, ULONG cbBufferLength, BYTE* pBuffer, ULONG* pcbRead) PURE; \
3367 STDMETHOD_(HRESULT,Free)(THIS_ PVOID pvType) PURE;
3369 HRESULT CALLBACK ITypeMarshal_Size_Proxy(
3370 ITypeMarshal* This,
3371 PVOID pvType,
3372 DWORD dwDestContext,
3373 PVOID pvDestContext,
3374 ULONG* pSize);
3375 void __RPC_STUB ITypeMarshal_Size_Stub(
3376 struct IRpcStubBuffer* This,
3377 struct IRpcChannelBuffer* pRpcChannelBuffer,
3378 PRPC_MESSAGE pRpcMessage,
3379 DWORD* pdwStubPhase);
3380 HRESULT CALLBACK ITypeMarshal_Marshal_Proxy(
3381 ITypeMarshal* This,
3382 PVOID pvType,
3383 DWORD dwDestContext,
3384 PVOID pvDestContext,
3385 ULONG cbBufferLength,
3386 BYTE* pBuffer,
3387 ULONG* pcbWritten);
3388 void __RPC_STUB ITypeMarshal_Marshal_Stub(
3389 struct IRpcStubBuffer* This,
3390 struct IRpcChannelBuffer* pRpcChannelBuffer,
3391 PRPC_MESSAGE pRpcMessage,
3392 DWORD* pdwStubPhase);
3393 HRESULT CALLBACK ITypeMarshal_Unmarshal_Proxy(
3394 ITypeMarshal* This,
3395 PVOID pvType,
3396 DWORD dwFlags,
3397 ULONG cbBufferLength,
3398 BYTE* pBuffer,
3399 ULONG* pcbRead);
3400 void __RPC_STUB ITypeMarshal_Unmarshal_Stub(
3401 struct IRpcStubBuffer* This,
3402 struct IRpcChannelBuffer* pRpcChannelBuffer,
3403 PRPC_MESSAGE pRpcMessage,
3404 DWORD* pdwStubPhase);
3405 HRESULT CALLBACK ITypeMarshal_Free_Proxy(
3406 ITypeMarshal* This,
3407 PVOID pvType);
3408 void __RPC_STUB ITypeMarshal_Free_Stub(
3409 struct IRpcStubBuffer* This,
3410 struct IRpcChannelBuffer* pRpcChannelBuffer,
3411 PRPC_MESSAGE pRpcMessage,
3412 DWORD* pdwStubPhase);
3414 typedef IRecordInfo *LPRECORDINFO;
3416 /*****************************************************************************
3417 * IRecordInfo interface
3419 DEFINE_GUID(IID_IRecordInfo, 0x0000002f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3420 #if defined(__cplusplus) && !defined(CINTERFACE)
3421 struct IRecordInfo : public IUnknown
3423 virtual HRESULT STDMETHODCALLTYPE RecordInit(
3424 PVOID pvNew) = 0;
3426 virtual HRESULT STDMETHODCALLTYPE RecordClear(
3427 PVOID pvExisting) = 0;
3429 virtual HRESULT STDMETHODCALLTYPE RecordCopy(
3430 PVOID pvExisting,
3431 PVOID pvNew) = 0;
3433 virtual HRESULT STDMETHODCALLTYPE GetGuid(
3434 GUID* pguid) = 0;
3436 virtual HRESULT STDMETHODCALLTYPE GetName(
3437 BSTR* pbstrName) = 0;
3439 virtual HRESULT STDMETHODCALLTYPE GetSize(
3440 ULONG* pcbSize) = 0;
3442 virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
3443 ITypeInfo** ppTypeInfo) = 0;
3445 virtual HRESULT STDMETHODCALLTYPE GetField(
3446 PVOID pvData,
3447 LPCOLESTR szFieldName,
3448 VARIANT* pvarField) = 0;
3450 virtual HRESULT STDMETHODCALLTYPE GetFieldNoCopy(
3451 PVOID pvData,
3452 LPCOLESTR szFieldName,
3453 VARIANT* pvarField,
3454 PVOID* ppvDataCArray) = 0;
3456 virtual HRESULT STDMETHODCALLTYPE PutField(
3457 ULONG wFlags,
3458 PVOID pvData,
3459 LPCOLESTR szFieldName,
3460 VARIANT* pvarField) = 0;
3462 virtual HRESULT STDMETHODCALLTYPE PutFieldNoCopy(
3463 ULONG wFlags,
3464 PVOID pvData,
3465 LPCOLESTR szFieldName,
3466 VARIANT* pvarField) = 0;
3468 virtual HRESULT STDMETHODCALLTYPE GetFieldNames(
3469 ULONG* pcNames,
3470 BSTR* rgBstrNames) = 0;
3472 virtual BOOL STDMETHODCALLTYPE IsMatchingType(
3473 IRecordInfo* pRecordInfo) = 0;
3475 virtual PVOID STDMETHODCALLTYPE RecordCreate(
3476 ) = 0;
3478 virtual HRESULT STDMETHODCALLTYPE RecordCreateCopy(
3479 PVOID pvSource,
3480 PVOID* ppvDest) = 0;
3482 virtual HRESULT STDMETHODCALLTYPE RecordDestroy(
3483 PVOID pvRecord) = 0;
3486 #else
3487 typedef struct IRecordInfoVtbl IRecordInfoVtbl;
3488 struct IRecordInfo {
3489 const IRecordInfoVtbl* lpVtbl;
3491 struct IRecordInfoVtbl {
3492 ICOM_MSVTABLE_COMPAT_FIELDS
3494 /*** IUnknown methods ***/
3495 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3496 IRecordInfo* This,
3497 REFIID riid,
3498 void** ppvObject);
3500 ULONG (STDMETHODCALLTYPE *AddRef)(
3501 IRecordInfo* This);
3503 ULONG (STDMETHODCALLTYPE *Release)(
3504 IRecordInfo* This);
3506 /*** IRecordInfo methods ***/
3507 HRESULT (STDMETHODCALLTYPE *RecordInit)(
3508 IRecordInfo* This,
3509 PVOID pvNew);
3511 HRESULT (STDMETHODCALLTYPE *RecordClear)(
3512 IRecordInfo* This,
3513 PVOID pvExisting);
3515 HRESULT (STDMETHODCALLTYPE *RecordCopy)(
3516 IRecordInfo* This,
3517 PVOID pvExisting,
3518 PVOID pvNew);
3520 HRESULT (STDMETHODCALLTYPE *GetGuid)(
3521 IRecordInfo* This,
3522 GUID* pguid);
3524 HRESULT (STDMETHODCALLTYPE *GetName)(
3525 IRecordInfo* This,
3526 BSTR* pbstrName);
3528 HRESULT (STDMETHODCALLTYPE *GetSize)(
3529 IRecordInfo* This,
3530 ULONG* pcbSize);
3532 HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
3533 IRecordInfo* This,
3534 ITypeInfo** ppTypeInfo);
3536 HRESULT (STDMETHODCALLTYPE *GetField)(
3537 IRecordInfo* This,
3538 PVOID pvData,
3539 LPCOLESTR szFieldName,
3540 VARIANT* pvarField);
3542 HRESULT (STDMETHODCALLTYPE *GetFieldNoCopy)(
3543 IRecordInfo* This,
3544 PVOID pvData,
3545 LPCOLESTR szFieldName,
3546 VARIANT* pvarField,
3547 PVOID* ppvDataCArray);
3549 HRESULT (STDMETHODCALLTYPE *PutField)(
3550 IRecordInfo* This,
3551 ULONG wFlags,
3552 PVOID pvData,
3553 LPCOLESTR szFieldName,
3554 VARIANT* pvarField);
3556 HRESULT (STDMETHODCALLTYPE *PutFieldNoCopy)(
3557 IRecordInfo* This,
3558 ULONG wFlags,
3559 PVOID pvData,
3560 LPCOLESTR szFieldName,
3561 VARIANT* pvarField);
3563 HRESULT (STDMETHODCALLTYPE *GetFieldNames)(
3564 IRecordInfo* This,
3565 ULONG* pcNames,
3566 BSTR* rgBstrNames);
3568 BOOL (STDMETHODCALLTYPE *IsMatchingType)(
3569 IRecordInfo* This,
3570 IRecordInfo* pRecordInfo);
3572 PVOID (STDMETHODCALLTYPE *RecordCreate)(
3573 IRecordInfo* This);
3575 HRESULT (STDMETHODCALLTYPE *RecordCreateCopy)(
3576 IRecordInfo* This,
3577 PVOID pvSource,
3578 PVOID* ppvDest);
3580 HRESULT (STDMETHODCALLTYPE *RecordDestroy)(
3581 IRecordInfo* This,
3582 PVOID pvRecord);
3586 /*** IUnknown methods ***/
3587 #define IRecordInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3588 #define IRecordInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
3589 #define IRecordInfo_Release(p) (p)->lpVtbl->Release(p)
3590 /*** IRecordInfo methods ***/
3591 #define IRecordInfo_RecordInit(p,a) (p)->lpVtbl->RecordInit(p,a)
3592 #define IRecordInfo_RecordClear(p,a) (p)->lpVtbl->RecordClear(p,a)
3593 #define IRecordInfo_RecordCopy(p,a,b) (p)->lpVtbl->RecordCopy(p,a,b)
3594 #define IRecordInfo_GetGuid(p,a) (p)->lpVtbl->GetGuid(p,a)
3595 #define IRecordInfo_GetName(p,a) (p)->lpVtbl->GetName(p,a)
3596 #define IRecordInfo_GetSize(p,a) (p)->lpVtbl->GetSize(p,a)
3597 #define IRecordInfo_GetTypeInfo(p,a) (p)->lpVtbl->GetTypeInfo(p,a)
3598 #define IRecordInfo_GetField(p,a,b,c) (p)->lpVtbl->GetField(p,a,b,c)
3599 #define IRecordInfo_GetFieldNoCopy(p,a,b,c,d) (p)->lpVtbl->GetFieldNoCopy(p,a,b,c,d)
3600 #define IRecordInfo_PutField(p,a,b,c,d) (p)->lpVtbl->PutField(p,a,b,c,d)
3601 #define IRecordInfo_PutFieldNoCopy(p,a,b,c,d) (p)->lpVtbl->PutFieldNoCopy(p,a,b,c,d)
3602 #define IRecordInfo_GetFieldNames(p,a,b) (p)->lpVtbl->GetFieldNames(p,a,b)
3603 #define IRecordInfo_IsMatchingType(p,a) (p)->lpVtbl->IsMatchingType(p,a)
3604 #define IRecordInfo_RecordCreate(p) (p)->lpVtbl->RecordCreate(p)
3605 #define IRecordInfo_RecordCreateCopy(p,a,b) (p)->lpVtbl->RecordCreateCopy(p,a,b)
3606 #define IRecordInfo_RecordDestroy(p,a) (p)->lpVtbl->RecordDestroy(p,a)
3608 #endif
3610 #define IRecordInfo_METHODS \
3611 ICOM_MSVTABLE_COMPAT_FIELDS \
3612 /*** IUnknown methods ***/ \
3613 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3614 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3615 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3616 /*** IRecordInfo methods ***/ \
3617 STDMETHOD_(HRESULT,RecordInit)(THIS_ PVOID pvNew) PURE; \
3618 STDMETHOD_(HRESULT,RecordClear)(THIS_ PVOID pvExisting) PURE; \
3619 STDMETHOD_(HRESULT,RecordCopy)(THIS_ PVOID pvExisting, PVOID pvNew) PURE; \
3620 STDMETHOD_(HRESULT,GetGuid)(THIS_ GUID* pguid) PURE; \
3621 STDMETHOD_(HRESULT,GetName)(THIS_ BSTR* pbstrName) PURE; \
3622 STDMETHOD_(HRESULT,GetSize)(THIS_ ULONG* pcbSize) PURE; \
3623 STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ ITypeInfo** ppTypeInfo) PURE; \
3624 STDMETHOD_(HRESULT,GetField)(THIS_ PVOID pvData, LPCOLESTR szFieldName, VARIANT* pvarField) PURE; \
3625 STDMETHOD_(HRESULT,GetFieldNoCopy)(THIS_ PVOID pvData, LPCOLESTR szFieldName, VARIANT* pvarField, PVOID* ppvDataCArray) PURE; \
3626 STDMETHOD_(HRESULT,PutField)(THIS_ ULONG wFlags, PVOID pvData, LPCOLESTR szFieldName, VARIANT* pvarField) PURE; \
3627 STDMETHOD_(HRESULT,PutFieldNoCopy)(THIS_ ULONG wFlags, PVOID pvData, LPCOLESTR szFieldName, VARIANT* pvarField) PURE; \
3628 STDMETHOD_(HRESULT,GetFieldNames)(THIS_ ULONG* pcNames, BSTR* rgBstrNames) PURE; \
3629 STDMETHOD_(BOOL,IsMatchingType)(THIS_ IRecordInfo* pRecordInfo) PURE; \
3630 STDMETHOD_(PVOID,RecordCreate)(THIS) PURE; \
3631 STDMETHOD_(HRESULT,RecordCreateCopy)(THIS_ PVOID pvSource, PVOID* ppvDest) PURE; \
3632 STDMETHOD_(HRESULT,RecordDestroy)(THIS_ PVOID pvRecord) PURE;
3634 HRESULT CALLBACK IRecordInfo_RecordInit_Proxy(
3635 IRecordInfo* This,
3636 PVOID pvNew);
3637 void __RPC_STUB IRecordInfo_RecordInit_Stub(
3638 struct IRpcStubBuffer* This,
3639 struct IRpcChannelBuffer* pRpcChannelBuffer,
3640 PRPC_MESSAGE pRpcMessage,
3641 DWORD* pdwStubPhase);
3642 HRESULT CALLBACK IRecordInfo_RecordClear_Proxy(
3643 IRecordInfo* This,
3644 PVOID pvExisting);
3645 void __RPC_STUB IRecordInfo_RecordClear_Stub(
3646 struct IRpcStubBuffer* This,
3647 struct IRpcChannelBuffer* pRpcChannelBuffer,
3648 PRPC_MESSAGE pRpcMessage,
3649 DWORD* pdwStubPhase);
3650 HRESULT CALLBACK IRecordInfo_RecordCopy_Proxy(
3651 IRecordInfo* This,
3652 PVOID pvExisting,
3653 PVOID pvNew);
3654 void __RPC_STUB IRecordInfo_RecordCopy_Stub(
3655 struct IRpcStubBuffer* This,
3656 struct IRpcChannelBuffer* pRpcChannelBuffer,
3657 PRPC_MESSAGE pRpcMessage,
3658 DWORD* pdwStubPhase);
3659 HRESULT CALLBACK IRecordInfo_GetGuid_Proxy(
3660 IRecordInfo* This,
3661 GUID* pguid);
3662 void __RPC_STUB IRecordInfo_GetGuid_Stub(
3663 struct IRpcStubBuffer* This,
3664 struct IRpcChannelBuffer* pRpcChannelBuffer,
3665 PRPC_MESSAGE pRpcMessage,
3666 DWORD* pdwStubPhase);
3667 HRESULT CALLBACK IRecordInfo_GetName_Proxy(
3668 IRecordInfo* This,
3669 BSTR* pbstrName);
3670 void __RPC_STUB IRecordInfo_GetName_Stub(
3671 struct IRpcStubBuffer* This,
3672 struct IRpcChannelBuffer* pRpcChannelBuffer,
3673 PRPC_MESSAGE pRpcMessage,
3674 DWORD* pdwStubPhase);
3675 HRESULT CALLBACK IRecordInfo_GetSize_Proxy(
3676 IRecordInfo* This,
3677 ULONG* pcbSize);
3678 void __RPC_STUB IRecordInfo_GetSize_Stub(
3679 struct IRpcStubBuffer* This,
3680 struct IRpcChannelBuffer* pRpcChannelBuffer,
3681 PRPC_MESSAGE pRpcMessage,
3682 DWORD* pdwStubPhase);
3683 HRESULT CALLBACK IRecordInfo_GetTypeInfo_Proxy(
3684 IRecordInfo* This,
3685 ITypeInfo** ppTypeInfo);
3686 void __RPC_STUB IRecordInfo_GetTypeInfo_Stub(
3687 struct IRpcStubBuffer* This,
3688 struct IRpcChannelBuffer* pRpcChannelBuffer,
3689 PRPC_MESSAGE pRpcMessage,
3690 DWORD* pdwStubPhase);
3691 HRESULT CALLBACK IRecordInfo_GetField_Proxy(
3692 IRecordInfo* This,
3693 PVOID pvData,
3694 LPCOLESTR szFieldName,
3695 VARIANT* pvarField);
3696 void __RPC_STUB IRecordInfo_GetField_Stub(
3697 struct IRpcStubBuffer* This,
3698 struct IRpcChannelBuffer* pRpcChannelBuffer,
3699 PRPC_MESSAGE pRpcMessage,
3700 DWORD* pdwStubPhase);
3701 HRESULT CALLBACK IRecordInfo_GetFieldNoCopy_Proxy(
3702 IRecordInfo* This,
3703 PVOID pvData,
3704 LPCOLESTR szFieldName,
3705 VARIANT* pvarField,
3706 PVOID* ppvDataCArray);
3707 void __RPC_STUB IRecordInfo_GetFieldNoCopy_Stub(
3708 struct IRpcStubBuffer* This,
3709 struct IRpcChannelBuffer* pRpcChannelBuffer,
3710 PRPC_MESSAGE pRpcMessage,
3711 DWORD* pdwStubPhase);
3712 HRESULT CALLBACK IRecordInfo_PutField_Proxy(
3713 IRecordInfo* This,
3714 ULONG wFlags,
3715 PVOID pvData,
3716 LPCOLESTR szFieldName,
3717 VARIANT* pvarField);
3718 void __RPC_STUB IRecordInfo_PutField_Stub(
3719 struct IRpcStubBuffer* This,
3720 struct IRpcChannelBuffer* pRpcChannelBuffer,
3721 PRPC_MESSAGE pRpcMessage,
3722 DWORD* pdwStubPhase);
3723 HRESULT CALLBACK IRecordInfo_PutFieldNoCopy_Proxy(
3724 IRecordInfo* This,
3725 ULONG wFlags,
3726 PVOID pvData,
3727 LPCOLESTR szFieldName,
3728 VARIANT* pvarField);
3729 void __RPC_STUB IRecordInfo_PutFieldNoCopy_Stub(
3730 struct IRpcStubBuffer* This,
3731 struct IRpcChannelBuffer* pRpcChannelBuffer,
3732 PRPC_MESSAGE pRpcMessage,
3733 DWORD* pdwStubPhase);
3734 HRESULT CALLBACK IRecordInfo_GetFieldNames_Proxy(
3735 IRecordInfo* This,
3736 ULONG* pcNames,
3737 BSTR* rgBstrNames);
3738 void __RPC_STUB IRecordInfo_GetFieldNames_Stub(
3739 struct IRpcStubBuffer* This,
3740 struct IRpcChannelBuffer* pRpcChannelBuffer,
3741 PRPC_MESSAGE pRpcMessage,
3742 DWORD* pdwStubPhase);
3743 BOOL CALLBACK IRecordInfo_IsMatchingType_Proxy(
3744 IRecordInfo* This,
3745 IRecordInfo* pRecordInfo);
3746 void __RPC_STUB IRecordInfo_IsMatchingType_Stub(
3747 struct IRpcStubBuffer* This,
3748 struct IRpcChannelBuffer* pRpcChannelBuffer,
3749 PRPC_MESSAGE pRpcMessage,
3750 DWORD* pdwStubPhase);
3751 PVOID CALLBACK IRecordInfo_RecordCreate_Proxy(
3752 IRecordInfo* This);
3753 void __RPC_STUB IRecordInfo_RecordCreate_Stub(
3754 struct IRpcStubBuffer* This,
3755 struct IRpcChannelBuffer* pRpcChannelBuffer,
3756 PRPC_MESSAGE pRpcMessage,
3757 DWORD* pdwStubPhase);
3758 HRESULT CALLBACK IRecordInfo_RecordCreateCopy_Proxy(
3759 IRecordInfo* This,
3760 PVOID pvSource,
3761 PVOID* ppvDest);
3762 void __RPC_STUB IRecordInfo_RecordCreateCopy_Stub(
3763 struct IRpcStubBuffer* This,
3764 struct IRpcChannelBuffer* pRpcChannelBuffer,
3765 PRPC_MESSAGE pRpcMessage,
3766 DWORD* pdwStubPhase);
3767 HRESULT CALLBACK IRecordInfo_RecordDestroy_Proxy(
3768 IRecordInfo* This,
3769 PVOID pvRecord);
3770 void __RPC_STUB IRecordInfo_RecordDestroy_Stub(
3771 struct IRpcStubBuffer* This,
3772 struct IRpcChannelBuffer* pRpcChannelBuffer,
3773 PRPC_MESSAGE pRpcMessage,
3774 DWORD* pdwStubPhase);
3776 typedef struct ICreateTypeInfo ICreateTypeInfo;
3777 typedef ICreateTypeInfo *LPCREATETYPEINFO;
3779 /*****************************************************************************
3780 * ICreateTypeInfo interface
3782 DEFINE_GUID(IID_ICreateTypeInfo, 0x00020405, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3783 #if defined(__cplusplus) && !defined(CINTERFACE)
3784 struct ICreateTypeInfo : public IUnknown
3786 virtual HRESULT STDMETHODCALLTYPE SetGuid(
3787 REFGUID guid) = 0;
3789 virtual HRESULT STDMETHODCALLTYPE SetTypeFlags(
3790 UINT uTypeFlags) = 0;
3792 virtual HRESULT STDMETHODCALLTYPE SetDocString(
3793 LPOLESTR pStrDoc) = 0;
3795 virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
3796 DWORD dwHelpContext) = 0;
3798 virtual HRESULT STDMETHODCALLTYPE SetVersion(
3799 WORD wMajorVerNum,
3800 WORD wMinorVerNum) = 0;
3802 virtual HRESULT STDMETHODCALLTYPE AddRefTypeInfo(
3803 ITypeInfo* pTInfo,
3804 HREFTYPE* phRefType) = 0;
3806 virtual HRESULT STDMETHODCALLTYPE AddFuncDesc(
3807 UINT index,
3808 FUNCDESC* pFuncDesc) = 0;
3810 virtual HRESULT STDMETHODCALLTYPE AddImplType(
3811 UINT index,
3812 HREFTYPE hRefType) = 0;
3814 virtual HRESULT STDMETHODCALLTYPE SetImplTypeFlags(
3815 UINT index,
3816 INT implTypeFlags) = 0;
3818 virtual HRESULT STDMETHODCALLTYPE SetAlignment(
3819 WORD cbAlignment) = 0;
3821 virtual HRESULT STDMETHODCALLTYPE SetSchema(
3822 LPOLESTR pStrSchema) = 0;
3824 virtual HRESULT STDMETHODCALLTYPE AddVarDesc(
3825 UINT index,
3826 VARDESC* pVarDesc) = 0;
3828 virtual HRESULT STDMETHODCALLTYPE SetFuncAndParamNames(
3829 UINT index,
3830 LPOLESTR* rgszNames,
3831 UINT cNames) = 0;
3833 virtual HRESULT STDMETHODCALLTYPE SetVarName(
3834 UINT index,
3835 LPOLESTR szName) = 0;
3837 virtual HRESULT STDMETHODCALLTYPE SetTypeDescAlias(
3838 TYPEDESC* pTDescAlias) = 0;
3840 virtual HRESULT STDMETHODCALLTYPE DefineFuncAsDllEntry(
3841 UINT index,
3842 LPOLESTR szDllName,
3843 LPOLESTR szProcName) = 0;
3845 virtual HRESULT STDMETHODCALLTYPE SetFuncDocString(
3846 UINT index,
3847 LPOLESTR szDocString) = 0;
3849 virtual HRESULT STDMETHODCALLTYPE SetVarDocString(
3850 UINT index,
3851 LPOLESTR szDocString) = 0;
3853 virtual HRESULT STDMETHODCALLTYPE SetFuncHelpContext(
3854 UINT index,
3855 DWORD dwHelpContext) = 0;
3857 virtual HRESULT STDMETHODCALLTYPE SetVarHelpContext(
3858 UINT index,
3859 DWORD dwHelpContext) = 0;
3861 virtual HRESULT STDMETHODCALLTYPE SetMops(
3862 UINT index,
3863 BSTR bstrMops) = 0;
3865 virtual HRESULT STDMETHODCALLTYPE SetTypeIdldesc(
3866 IDLDESC* pIdlDesc) = 0;
3868 virtual HRESULT STDMETHODCALLTYPE LayOut(
3869 ) = 0;
3872 #else
3873 typedef struct ICreateTypeInfoVtbl ICreateTypeInfoVtbl;
3874 struct ICreateTypeInfo {
3875 const ICreateTypeInfoVtbl* lpVtbl;
3877 struct ICreateTypeInfoVtbl {
3878 ICOM_MSVTABLE_COMPAT_FIELDS
3880 /*** IUnknown methods ***/
3881 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3882 ICreateTypeInfo* This,
3883 REFIID riid,
3884 void** ppvObject);
3886 ULONG (STDMETHODCALLTYPE *AddRef)(
3887 ICreateTypeInfo* This);
3889 ULONG (STDMETHODCALLTYPE *Release)(
3890 ICreateTypeInfo* This);
3892 /*** ICreateTypeInfo methods ***/
3893 HRESULT (STDMETHODCALLTYPE *SetGuid)(
3894 ICreateTypeInfo* This,
3895 REFGUID guid);
3897 HRESULT (STDMETHODCALLTYPE *SetTypeFlags)(
3898 ICreateTypeInfo* This,
3899 UINT uTypeFlags);
3901 HRESULT (STDMETHODCALLTYPE *SetDocString)(
3902 ICreateTypeInfo* This,
3903 LPOLESTR pStrDoc);
3905 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
3906 ICreateTypeInfo* This,
3907 DWORD dwHelpContext);
3909 HRESULT (STDMETHODCALLTYPE *SetVersion)(
3910 ICreateTypeInfo* This,
3911 WORD wMajorVerNum,
3912 WORD wMinorVerNum);
3914 HRESULT (STDMETHODCALLTYPE *AddRefTypeInfo)(
3915 ICreateTypeInfo* This,
3916 ITypeInfo* pTInfo,
3917 HREFTYPE* phRefType);
3919 HRESULT (STDMETHODCALLTYPE *AddFuncDesc)(
3920 ICreateTypeInfo* This,
3921 UINT index,
3922 FUNCDESC* pFuncDesc);
3924 HRESULT (STDMETHODCALLTYPE *AddImplType)(
3925 ICreateTypeInfo* This,
3926 UINT index,
3927 HREFTYPE hRefType);
3929 HRESULT (STDMETHODCALLTYPE *SetImplTypeFlags)(
3930 ICreateTypeInfo* This,
3931 UINT index,
3932 INT implTypeFlags);
3934 HRESULT (STDMETHODCALLTYPE *SetAlignment)(
3935 ICreateTypeInfo* This,
3936 WORD cbAlignment);
3938 HRESULT (STDMETHODCALLTYPE *SetSchema)(
3939 ICreateTypeInfo* This,
3940 LPOLESTR pStrSchema);
3942 HRESULT (STDMETHODCALLTYPE *AddVarDesc)(
3943 ICreateTypeInfo* This,
3944 UINT index,
3945 VARDESC* pVarDesc);
3947 HRESULT (STDMETHODCALLTYPE *SetFuncAndParamNames)(
3948 ICreateTypeInfo* This,
3949 UINT index,
3950 LPOLESTR* rgszNames,
3951 UINT cNames);
3953 HRESULT (STDMETHODCALLTYPE *SetVarName)(
3954 ICreateTypeInfo* This,
3955 UINT index,
3956 LPOLESTR szName);
3958 HRESULT (STDMETHODCALLTYPE *SetTypeDescAlias)(
3959 ICreateTypeInfo* This,
3960 TYPEDESC* pTDescAlias);
3962 HRESULT (STDMETHODCALLTYPE *DefineFuncAsDllEntry)(
3963 ICreateTypeInfo* This,
3964 UINT index,
3965 LPOLESTR szDllName,
3966 LPOLESTR szProcName);
3968 HRESULT (STDMETHODCALLTYPE *SetFuncDocString)(
3969 ICreateTypeInfo* This,
3970 UINT index,
3971 LPOLESTR szDocString);
3973 HRESULT (STDMETHODCALLTYPE *SetVarDocString)(
3974 ICreateTypeInfo* This,
3975 UINT index,
3976 LPOLESTR szDocString);
3978 HRESULT (STDMETHODCALLTYPE *SetFuncHelpContext)(
3979 ICreateTypeInfo* This,
3980 UINT index,
3981 DWORD dwHelpContext);
3983 HRESULT (STDMETHODCALLTYPE *SetVarHelpContext)(
3984 ICreateTypeInfo* This,
3985 UINT index,
3986 DWORD dwHelpContext);
3988 HRESULT (STDMETHODCALLTYPE *SetMops)(
3989 ICreateTypeInfo* This,
3990 UINT index,
3991 BSTR bstrMops);
3993 HRESULT (STDMETHODCALLTYPE *SetTypeIdldesc)(
3994 ICreateTypeInfo* This,
3995 IDLDESC* pIdlDesc);
3997 HRESULT (STDMETHODCALLTYPE *LayOut)(
3998 ICreateTypeInfo* This);
4002 /*** IUnknown methods ***/
4003 #define ICreateTypeInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4004 #define ICreateTypeInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
4005 #define ICreateTypeInfo_Release(p) (p)->lpVtbl->Release(p)
4006 /*** ICreateTypeInfo methods ***/
4007 #define ICreateTypeInfo_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
4008 #define ICreateTypeInfo_SetTypeFlags(p,a) (p)->lpVtbl->SetTypeFlags(p,a)
4009 #define ICreateTypeInfo_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
4010 #define ICreateTypeInfo_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
4011 #define ICreateTypeInfo_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
4012 #define ICreateTypeInfo_AddRefTypeInfo(p,a,b) (p)->lpVtbl->AddRefTypeInfo(p,a,b)
4013 #define ICreateTypeInfo_AddFuncDesc(p,a,b) (p)->lpVtbl->AddFuncDesc(p,a,b)
4014 #define ICreateTypeInfo_AddImplType(p,a,b) (p)->lpVtbl->AddImplType(p,a,b)
4015 #define ICreateTypeInfo_SetImplTypeFlags(p,a,b) (p)->lpVtbl->SetImplTypeFlags(p,a,b)
4016 #define ICreateTypeInfo_SetAlignment(p,a) (p)->lpVtbl->SetAlignment(p,a)
4017 #define ICreateTypeInfo_SetSchema(p,a) (p)->lpVtbl->SetSchema(p,a)
4018 #define ICreateTypeInfo_AddVarDesc(p,a,b) (p)->lpVtbl->AddVarDesc(p,a,b)
4019 #define ICreateTypeInfo_SetFuncAndParamNames(p,a,b,c) (p)->lpVtbl->SetFuncAndParamNames(p,a,b,c)
4020 #define ICreateTypeInfo_SetVarName(p,a,b) (p)->lpVtbl->SetVarName(p,a,b)
4021 #define ICreateTypeInfo_SetTypeDescAlias(p,a) (p)->lpVtbl->SetTypeDescAlias(p,a)
4022 #define ICreateTypeInfo_DefineFuncAsDllEntry(p,a,b,c) (p)->lpVtbl->DefineFuncAsDllEntry(p,a,b,c)
4023 #define ICreateTypeInfo_SetFuncDocString(p,a,b) (p)->lpVtbl->SetFuncDocString(p,a,b)
4024 #define ICreateTypeInfo_SetVarDocString(p,a,b) (p)->lpVtbl->SetVarDocString(p,a,b)
4025 #define ICreateTypeInfo_SetFuncHelpContext(p,a,b) (p)->lpVtbl->SetFuncHelpContext(p,a,b)
4026 #define ICreateTypeInfo_SetVarHelpContext(p,a,b) (p)->lpVtbl->SetVarHelpContext(p,a,b)
4027 #define ICreateTypeInfo_SetMops(p,a,b) (p)->lpVtbl->SetMops(p,a,b)
4028 #define ICreateTypeInfo_SetTypeIdldesc(p,a) (p)->lpVtbl->SetTypeIdldesc(p,a)
4029 #define ICreateTypeInfo_LayOut(p) (p)->lpVtbl->LayOut(p)
4031 #endif
4033 #define ICreateTypeInfo_METHODS \
4034 ICOM_MSVTABLE_COMPAT_FIELDS \
4035 /*** IUnknown methods ***/ \
4036 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4037 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4038 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4039 /*** ICreateTypeInfo methods ***/ \
4040 STDMETHOD_(HRESULT,SetGuid)(THIS_ REFGUID guid) PURE; \
4041 STDMETHOD_(HRESULT,SetTypeFlags)(THIS_ UINT uTypeFlags) PURE; \
4042 STDMETHOD_(HRESULT,SetDocString)(THIS_ LPOLESTR pStrDoc) PURE; \
4043 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE; \
4044 STDMETHOD_(HRESULT,SetVersion)(THIS_ WORD wMajorVerNum, WORD wMinorVerNum) PURE; \
4045 STDMETHOD_(HRESULT,AddRefTypeInfo)(THIS_ ITypeInfo* pTInfo, HREFTYPE* phRefType) PURE; \
4046 STDMETHOD_(HRESULT,AddFuncDesc)(THIS_ UINT index, FUNCDESC* pFuncDesc) PURE; \
4047 STDMETHOD_(HRESULT,AddImplType)(THIS_ UINT index, HREFTYPE hRefType) PURE; \
4048 STDMETHOD_(HRESULT,SetImplTypeFlags)(THIS_ UINT index, INT implTypeFlags) PURE; \
4049 STDMETHOD_(HRESULT,SetAlignment)(THIS_ WORD cbAlignment) PURE; \
4050 STDMETHOD_(HRESULT,SetSchema)(THIS_ LPOLESTR pStrSchema) PURE; \
4051 STDMETHOD_(HRESULT,AddVarDesc)(THIS_ UINT index, VARDESC* pVarDesc) PURE; \
4052 STDMETHOD_(HRESULT,SetFuncAndParamNames)(THIS_ UINT index, LPOLESTR* rgszNames, UINT cNames) PURE; \
4053 STDMETHOD_(HRESULT,SetVarName)(THIS_ UINT index, LPOLESTR szName) PURE; \
4054 STDMETHOD_(HRESULT,SetTypeDescAlias)(THIS_ TYPEDESC* pTDescAlias) PURE; \
4055 STDMETHOD_(HRESULT,DefineFuncAsDllEntry)(THIS_ UINT index, LPOLESTR szDllName, LPOLESTR szProcName) PURE; \
4056 STDMETHOD_(HRESULT,SetFuncDocString)(THIS_ UINT index, LPOLESTR szDocString) PURE; \
4057 STDMETHOD_(HRESULT,SetVarDocString)(THIS_ UINT index, LPOLESTR szDocString) PURE; \
4058 STDMETHOD_(HRESULT,SetFuncHelpContext)(THIS_ UINT index, DWORD dwHelpContext) PURE; \
4059 STDMETHOD_(HRESULT,SetVarHelpContext)(THIS_ UINT index, DWORD dwHelpContext) PURE; \
4060 STDMETHOD_(HRESULT,SetMops)(THIS_ UINT index, BSTR bstrMops) PURE; \
4061 STDMETHOD_(HRESULT,SetTypeIdldesc)(THIS_ IDLDESC* pIdlDesc) PURE; \
4062 STDMETHOD_(HRESULT,LayOut)(THIS) PURE;
4064 HRESULT CALLBACK ICreateTypeInfo_SetGuid_Proxy(
4065 ICreateTypeInfo* This,
4066 REFGUID guid);
4067 void __RPC_STUB ICreateTypeInfo_SetGuid_Stub(
4068 struct IRpcStubBuffer* This,
4069 struct IRpcChannelBuffer* pRpcChannelBuffer,
4070 PRPC_MESSAGE pRpcMessage,
4071 DWORD* pdwStubPhase);
4072 HRESULT CALLBACK ICreateTypeInfo_SetTypeFlags_Proxy(
4073 ICreateTypeInfo* This,
4074 UINT uTypeFlags);
4075 void __RPC_STUB ICreateTypeInfo_SetTypeFlags_Stub(
4076 struct IRpcStubBuffer* This,
4077 struct IRpcChannelBuffer* pRpcChannelBuffer,
4078 PRPC_MESSAGE pRpcMessage,
4079 DWORD* pdwStubPhase);
4080 HRESULT CALLBACK ICreateTypeInfo_SetDocString_Proxy(
4081 ICreateTypeInfo* This,
4082 LPOLESTR pStrDoc);
4083 void __RPC_STUB ICreateTypeInfo_SetDocString_Stub(
4084 struct IRpcStubBuffer* This,
4085 struct IRpcChannelBuffer* pRpcChannelBuffer,
4086 PRPC_MESSAGE pRpcMessage,
4087 DWORD* pdwStubPhase);
4088 HRESULT CALLBACK ICreateTypeInfo_SetHelpContext_Proxy(
4089 ICreateTypeInfo* This,
4090 DWORD dwHelpContext);
4091 void __RPC_STUB ICreateTypeInfo_SetHelpContext_Stub(
4092 struct IRpcStubBuffer* This,
4093 struct IRpcChannelBuffer* pRpcChannelBuffer,
4094 PRPC_MESSAGE pRpcMessage,
4095 DWORD* pdwStubPhase);
4096 HRESULT CALLBACK ICreateTypeInfo_SetVersion_Proxy(
4097 ICreateTypeInfo* This,
4098 WORD wMajorVerNum,
4099 WORD wMinorVerNum);
4100 void __RPC_STUB ICreateTypeInfo_SetVersion_Stub(
4101 struct IRpcStubBuffer* This,
4102 struct IRpcChannelBuffer* pRpcChannelBuffer,
4103 PRPC_MESSAGE pRpcMessage,
4104 DWORD* pdwStubPhase);
4105 HRESULT CALLBACK ICreateTypeInfo_AddRefTypeInfo_Proxy(
4106 ICreateTypeInfo* This,
4107 ITypeInfo* pTInfo,
4108 HREFTYPE* phRefType);
4109 void __RPC_STUB ICreateTypeInfo_AddRefTypeInfo_Stub(
4110 struct IRpcStubBuffer* This,
4111 struct IRpcChannelBuffer* pRpcChannelBuffer,
4112 PRPC_MESSAGE pRpcMessage,
4113 DWORD* pdwStubPhase);
4114 HRESULT CALLBACK ICreateTypeInfo_AddFuncDesc_Proxy(
4115 ICreateTypeInfo* This,
4116 UINT index,
4117 FUNCDESC* pFuncDesc);
4118 void __RPC_STUB ICreateTypeInfo_AddFuncDesc_Stub(
4119 struct IRpcStubBuffer* This,
4120 struct IRpcChannelBuffer* pRpcChannelBuffer,
4121 PRPC_MESSAGE pRpcMessage,
4122 DWORD* pdwStubPhase);
4123 HRESULT CALLBACK ICreateTypeInfo_AddImplType_Proxy(
4124 ICreateTypeInfo* This,
4125 UINT index,
4126 HREFTYPE hRefType);
4127 void __RPC_STUB ICreateTypeInfo_AddImplType_Stub(
4128 struct IRpcStubBuffer* This,
4129 struct IRpcChannelBuffer* pRpcChannelBuffer,
4130 PRPC_MESSAGE pRpcMessage,
4131 DWORD* pdwStubPhase);
4132 HRESULT CALLBACK ICreateTypeInfo_SetImplTypeFlags_Proxy(
4133 ICreateTypeInfo* This,
4134 UINT index,
4135 INT implTypeFlags);
4136 void __RPC_STUB ICreateTypeInfo_SetImplTypeFlags_Stub(
4137 struct IRpcStubBuffer* This,
4138 struct IRpcChannelBuffer* pRpcChannelBuffer,
4139 PRPC_MESSAGE pRpcMessage,
4140 DWORD* pdwStubPhase);
4141 HRESULT CALLBACK ICreateTypeInfo_SetAlignment_Proxy(
4142 ICreateTypeInfo* This,
4143 WORD cbAlignment);
4144 void __RPC_STUB ICreateTypeInfo_SetAlignment_Stub(
4145 struct IRpcStubBuffer* This,
4146 struct IRpcChannelBuffer* pRpcChannelBuffer,
4147 PRPC_MESSAGE pRpcMessage,
4148 DWORD* pdwStubPhase);
4149 HRESULT CALLBACK ICreateTypeInfo_SetSchema_Proxy(
4150 ICreateTypeInfo* This,
4151 LPOLESTR pStrSchema);
4152 void __RPC_STUB ICreateTypeInfo_SetSchema_Stub(
4153 struct IRpcStubBuffer* This,
4154 struct IRpcChannelBuffer* pRpcChannelBuffer,
4155 PRPC_MESSAGE pRpcMessage,
4156 DWORD* pdwStubPhase);
4157 HRESULT CALLBACK ICreateTypeInfo_AddVarDesc_Proxy(
4158 ICreateTypeInfo* This,
4159 UINT index,
4160 VARDESC* pVarDesc);
4161 void __RPC_STUB ICreateTypeInfo_AddVarDesc_Stub(
4162 struct IRpcStubBuffer* This,
4163 struct IRpcChannelBuffer* pRpcChannelBuffer,
4164 PRPC_MESSAGE pRpcMessage,
4165 DWORD* pdwStubPhase);
4166 HRESULT CALLBACK ICreateTypeInfo_SetFuncAndParamNames_Proxy(
4167 ICreateTypeInfo* This,
4168 UINT index,
4169 LPOLESTR* rgszNames,
4170 UINT cNames);
4171 void __RPC_STUB ICreateTypeInfo_SetFuncAndParamNames_Stub(
4172 struct IRpcStubBuffer* This,
4173 struct IRpcChannelBuffer* pRpcChannelBuffer,
4174 PRPC_MESSAGE pRpcMessage,
4175 DWORD* pdwStubPhase);
4176 HRESULT CALLBACK ICreateTypeInfo_SetVarName_Proxy(
4177 ICreateTypeInfo* This,
4178 UINT index,
4179 LPOLESTR szName);
4180 void __RPC_STUB ICreateTypeInfo_SetVarName_Stub(
4181 struct IRpcStubBuffer* This,
4182 struct IRpcChannelBuffer* pRpcChannelBuffer,
4183 PRPC_MESSAGE pRpcMessage,
4184 DWORD* pdwStubPhase);
4185 HRESULT CALLBACK ICreateTypeInfo_SetTypeDescAlias_Proxy(
4186 ICreateTypeInfo* This,
4187 TYPEDESC* pTDescAlias);
4188 void __RPC_STUB ICreateTypeInfo_SetTypeDescAlias_Stub(
4189 struct IRpcStubBuffer* This,
4190 struct IRpcChannelBuffer* pRpcChannelBuffer,
4191 PRPC_MESSAGE pRpcMessage,
4192 DWORD* pdwStubPhase);
4193 HRESULT CALLBACK ICreateTypeInfo_DefineFuncAsDllEntry_Proxy(
4194 ICreateTypeInfo* This,
4195 UINT index,
4196 LPOLESTR szDllName,
4197 LPOLESTR szProcName);
4198 void __RPC_STUB ICreateTypeInfo_DefineFuncAsDllEntry_Stub(
4199 struct IRpcStubBuffer* This,
4200 struct IRpcChannelBuffer* pRpcChannelBuffer,
4201 PRPC_MESSAGE pRpcMessage,
4202 DWORD* pdwStubPhase);
4203 HRESULT CALLBACK ICreateTypeInfo_SetFuncDocString_Proxy(
4204 ICreateTypeInfo* This,
4205 UINT index,
4206 LPOLESTR szDocString);
4207 void __RPC_STUB ICreateTypeInfo_SetFuncDocString_Stub(
4208 struct IRpcStubBuffer* This,
4209 struct IRpcChannelBuffer* pRpcChannelBuffer,
4210 PRPC_MESSAGE pRpcMessage,
4211 DWORD* pdwStubPhase);
4212 HRESULT CALLBACK ICreateTypeInfo_SetVarDocString_Proxy(
4213 ICreateTypeInfo* This,
4214 UINT index,
4215 LPOLESTR szDocString);
4216 void __RPC_STUB ICreateTypeInfo_SetVarDocString_Stub(
4217 struct IRpcStubBuffer* This,
4218 struct IRpcChannelBuffer* pRpcChannelBuffer,
4219 PRPC_MESSAGE pRpcMessage,
4220 DWORD* pdwStubPhase);
4221 HRESULT CALLBACK ICreateTypeInfo_SetFuncHelpContext_Proxy(
4222 ICreateTypeInfo* This,
4223 UINT index,
4224 DWORD dwHelpContext);
4225 void __RPC_STUB ICreateTypeInfo_SetFuncHelpContext_Stub(
4226 struct IRpcStubBuffer* This,
4227 struct IRpcChannelBuffer* pRpcChannelBuffer,
4228 PRPC_MESSAGE pRpcMessage,
4229 DWORD* pdwStubPhase);
4230 HRESULT CALLBACK ICreateTypeInfo_SetVarHelpContext_Proxy(
4231 ICreateTypeInfo* This,
4232 UINT index,
4233 DWORD dwHelpContext);
4234 void __RPC_STUB ICreateTypeInfo_SetVarHelpContext_Stub(
4235 struct IRpcStubBuffer* This,
4236 struct IRpcChannelBuffer* pRpcChannelBuffer,
4237 PRPC_MESSAGE pRpcMessage,
4238 DWORD* pdwStubPhase);
4239 HRESULT CALLBACK ICreateTypeInfo_SetMops_Proxy(
4240 ICreateTypeInfo* This,
4241 UINT index,
4242 BSTR bstrMops);
4243 void __RPC_STUB ICreateTypeInfo_SetMops_Stub(
4244 struct IRpcStubBuffer* This,
4245 struct IRpcChannelBuffer* pRpcChannelBuffer,
4246 PRPC_MESSAGE pRpcMessage,
4247 DWORD* pdwStubPhase);
4248 HRESULT CALLBACK ICreateTypeInfo_SetTypeIdldesc_Proxy(
4249 ICreateTypeInfo* This,
4250 IDLDESC* pIdlDesc);
4251 void __RPC_STUB ICreateTypeInfo_SetTypeIdldesc_Stub(
4252 struct IRpcStubBuffer* This,
4253 struct IRpcChannelBuffer* pRpcChannelBuffer,
4254 PRPC_MESSAGE pRpcMessage,
4255 DWORD* pdwStubPhase);
4256 HRESULT CALLBACK ICreateTypeInfo_LayOut_Proxy(
4257 ICreateTypeInfo* This);
4258 void __RPC_STUB ICreateTypeInfo_LayOut_Stub(
4259 struct IRpcStubBuffer* This,
4260 struct IRpcChannelBuffer* pRpcChannelBuffer,
4261 PRPC_MESSAGE pRpcMessage,
4262 DWORD* pdwStubPhase);
4264 typedef struct ICreateTypeInfo2 ICreateTypeInfo2;
4265 typedef ICreateTypeInfo2 *LPCREATETYPEINFO2;
4267 /*****************************************************************************
4268 * ICreateTypeInfo2 interface
4270 DEFINE_GUID(IID_ICreateTypeInfo2, 0x0002040e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4271 #if defined(__cplusplus) && !defined(CINTERFACE)
4272 struct ICreateTypeInfo2 : public ICreateTypeInfo
4274 virtual HRESULT STDMETHODCALLTYPE DeleteFuncDesc(
4275 UINT index) = 0;
4277 virtual HRESULT STDMETHODCALLTYPE DeleteFuncDescByMemId(
4278 MEMBERID memid,
4279 INVOKEKIND invKind) = 0;
4281 virtual HRESULT STDMETHODCALLTYPE DeleteVarDesc(
4282 UINT index) = 0;
4284 virtual HRESULT STDMETHODCALLTYPE DeleteVarDescByMemId(
4285 MEMBERID memid) = 0;
4287 virtual HRESULT STDMETHODCALLTYPE DeleteImplType(
4288 UINT index) = 0;
4290 virtual HRESULT STDMETHODCALLTYPE SetCustData(
4291 REFGUID guid,
4292 VARIANT* pVarVal) = 0;
4294 virtual HRESULT STDMETHODCALLTYPE SetFuncCustData(
4295 UINT index,
4296 REFGUID guid,
4297 VARIANT* pVarVal) = 0;
4299 virtual HRESULT STDMETHODCALLTYPE SetParamCustData(
4300 UINT indexFunc,
4301 UINT indexParam,
4302 REFGUID guid,
4303 VARIANT* pVarVal) = 0;
4305 virtual HRESULT STDMETHODCALLTYPE SetVarCustData(
4306 UINT index,
4307 REFGUID guid,
4308 VARIANT* pVarVal) = 0;
4310 virtual HRESULT STDMETHODCALLTYPE SetImplTypeCustData(
4311 UINT index,
4312 REFGUID guid,
4313 VARIANT* pVarVal) = 0;
4315 virtual HRESULT STDMETHODCALLTYPE SetHelpStringContext(
4316 ULONG dwHelpStringContext) = 0;
4318 virtual HRESULT STDMETHODCALLTYPE SetFuncHelpStringContext(
4319 UINT index,
4320 ULONG dwHelpStringContext) = 0;
4322 virtual HRESULT STDMETHODCALLTYPE SetVarHelpStringContext(
4323 UINT index,
4324 ULONG dwHelpStringContext) = 0;
4326 virtual HRESULT STDMETHODCALLTYPE Invalidate(
4327 ) = 0;
4329 virtual HRESULT STDMETHODCALLTYPE SetName(
4330 LPOLESTR szName) = 0;
4333 #else
4334 typedef struct ICreateTypeInfo2Vtbl ICreateTypeInfo2Vtbl;
4335 struct ICreateTypeInfo2 {
4336 const ICreateTypeInfo2Vtbl* lpVtbl;
4338 struct ICreateTypeInfo2Vtbl {
4339 ICOM_MSVTABLE_COMPAT_FIELDS
4341 /*** IUnknown methods ***/
4342 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4343 ICreateTypeInfo2* This,
4344 REFIID riid,
4345 void** ppvObject);
4347 ULONG (STDMETHODCALLTYPE *AddRef)(
4348 ICreateTypeInfo2* This);
4350 ULONG (STDMETHODCALLTYPE *Release)(
4351 ICreateTypeInfo2* This);
4353 /*** ICreateTypeInfo methods ***/
4354 HRESULT (STDMETHODCALLTYPE *SetGuid)(
4355 ICreateTypeInfo2* This,
4356 REFGUID guid);
4358 HRESULT (STDMETHODCALLTYPE *SetTypeFlags)(
4359 ICreateTypeInfo2* This,
4360 UINT uTypeFlags);
4362 HRESULT (STDMETHODCALLTYPE *SetDocString)(
4363 ICreateTypeInfo2* This,
4364 LPOLESTR pStrDoc);
4366 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
4367 ICreateTypeInfo2* This,
4368 DWORD dwHelpContext);
4370 HRESULT (STDMETHODCALLTYPE *SetVersion)(
4371 ICreateTypeInfo2* This,
4372 WORD wMajorVerNum,
4373 WORD wMinorVerNum);
4375 HRESULT (STDMETHODCALLTYPE *AddRefTypeInfo)(
4376 ICreateTypeInfo2* This,
4377 ITypeInfo* pTInfo,
4378 HREFTYPE* phRefType);
4380 HRESULT (STDMETHODCALLTYPE *AddFuncDesc)(
4381 ICreateTypeInfo2* This,
4382 UINT index,
4383 FUNCDESC* pFuncDesc);
4385 HRESULT (STDMETHODCALLTYPE *AddImplType)(
4386 ICreateTypeInfo2* This,
4387 UINT index,
4388 HREFTYPE hRefType);
4390 HRESULT (STDMETHODCALLTYPE *SetImplTypeFlags)(
4391 ICreateTypeInfo2* This,
4392 UINT index,
4393 INT implTypeFlags);
4395 HRESULT (STDMETHODCALLTYPE *SetAlignment)(
4396 ICreateTypeInfo2* This,
4397 WORD cbAlignment);
4399 HRESULT (STDMETHODCALLTYPE *SetSchema)(
4400 ICreateTypeInfo2* This,
4401 LPOLESTR pStrSchema);
4403 HRESULT (STDMETHODCALLTYPE *AddVarDesc)(
4404 ICreateTypeInfo2* This,
4405 UINT index,
4406 VARDESC* pVarDesc);
4408 HRESULT (STDMETHODCALLTYPE *SetFuncAndParamNames)(
4409 ICreateTypeInfo2* This,
4410 UINT index,
4411 LPOLESTR* rgszNames,
4412 UINT cNames);
4414 HRESULT (STDMETHODCALLTYPE *SetVarName)(
4415 ICreateTypeInfo2* This,
4416 UINT index,
4417 LPOLESTR szName);
4419 HRESULT (STDMETHODCALLTYPE *SetTypeDescAlias)(
4420 ICreateTypeInfo2* This,
4421 TYPEDESC* pTDescAlias);
4423 HRESULT (STDMETHODCALLTYPE *DefineFuncAsDllEntry)(
4424 ICreateTypeInfo2* This,
4425 UINT index,
4426 LPOLESTR szDllName,
4427 LPOLESTR szProcName);
4429 HRESULT (STDMETHODCALLTYPE *SetFuncDocString)(
4430 ICreateTypeInfo2* This,
4431 UINT index,
4432 LPOLESTR szDocString);
4434 HRESULT (STDMETHODCALLTYPE *SetVarDocString)(
4435 ICreateTypeInfo2* This,
4436 UINT index,
4437 LPOLESTR szDocString);
4439 HRESULT (STDMETHODCALLTYPE *SetFuncHelpContext)(
4440 ICreateTypeInfo2* This,
4441 UINT index,
4442 DWORD dwHelpContext);
4444 HRESULT (STDMETHODCALLTYPE *SetVarHelpContext)(
4445 ICreateTypeInfo2* This,
4446 UINT index,
4447 DWORD dwHelpContext);
4449 HRESULT (STDMETHODCALLTYPE *SetMops)(
4450 ICreateTypeInfo2* This,
4451 UINT index,
4452 BSTR bstrMops);
4454 HRESULT (STDMETHODCALLTYPE *SetTypeIdldesc)(
4455 ICreateTypeInfo2* This,
4456 IDLDESC* pIdlDesc);
4458 HRESULT (STDMETHODCALLTYPE *LayOut)(
4459 ICreateTypeInfo2* This);
4461 /*** ICreateTypeInfo2 methods ***/
4462 HRESULT (STDMETHODCALLTYPE *DeleteFuncDesc)(
4463 ICreateTypeInfo2* This,
4464 UINT index);
4466 HRESULT (STDMETHODCALLTYPE *DeleteFuncDescByMemId)(
4467 ICreateTypeInfo2* This,
4468 MEMBERID memid,
4469 INVOKEKIND invKind);
4471 HRESULT (STDMETHODCALLTYPE *DeleteVarDesc)(
4472 ICreateTypeInfo2* This,
4473 UINT index);
4475 HRESULT (STDMETHODCALLTYPE *DeleteVarDescByMemId)(
4476 ICreateTypeInfo2* This,
4477 MEMBERID memid);
4479 HRESULT (STDMETHODCALLTYPE *DeleteImplType)(
4480 ICreateTypeInfo2* This,
4481 UINT index);
4483 HRESULT (STDMETHODCALLTYPE *SetCustData)(
4484 ICreateTypeInfo2* This,
4485 REFGUID guid,
4486 VARIANT* pVarVal);
4488 HRESULT (STDMETHODCALLTYPE *SetFuncCustData)(
4489 ICreateTypeInfo2* This,
4490 UINT index,
4491 REFGUID guid,
4492 VARIANT* pVarVal);
4494 HRESULT (STDMETHODCALLTYPE *SetParamCustData)(
4495 ICreateTypeInfo2* This,
4496 UINT indexFunc,
4497 UINT indexParam,
4498 REFGUID guid,
4499 VARIANT* pVarVal);
4501 HRESULT (STDMETHODCALLTYPE *SetVarCustData)(
4502 ICreateTypeInfo2* This,
4503 UINT index,
4504 REFGUID guid,
4505 VARIANT* pVarVal);
4507 HRESULT (STDMETHODCALLTYPE *SetImplTypeCustData)(
4508 ICreateTypeInfo2* This,
4509 UINT index,
4510 REFGUID guid,
4511 VARIANT* pVarVal);
4513 HRESULT (STDMETHODCALLTYPE *SetHelpStringContext)(
4514 ICreateTypeInfo2* This,
4515 ULONG dwHelpStringContext);
4517 HRESULT (STDMETHODCALLTYPE *SetFuncHelpStringContext)(
4518 ICreateTypeInfo2* This,
4519 UINT index,
4520 ULONG dwHelpStringContext);
4522 HRESULT (STDMETHODCALLTYPE *SetVarHelpStringContext)(
4523 ICreateTypeInfo2* This,
4524 UINT index,
4525 ULONG dwHelpStringContext);
4527 HRESULT (STDMETHODCALLTYPE *Invalidate)(
4528 ICreateTypeInfo2* This);
4530 HRESULT (STDMETHODCALLTYPE *SetName)(
4531 ICreateTypeInfo2* This,
4532 LPOLESTR szName);
4536 /*** IUnknown methods ***/
4537 #define ICreateTypeInfo2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4538 #define ICreateTypeInfo2_AddRef(p) (p)->lpVtbl->AddRef(p)
4539 #define ICreateTypeInfo2_Release(p) (p)->lpVtbl->Release(p)
4540 /*** ICreateTypeInfo methods ***/
4541 #define ICreateTypeInfo2_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
4542 #define ICreateTypeInfo2_SetTypeFlags(p,a) (p)->lpVtbl->SetTypeFlags(p,a)
4543 #define ICreateTypeInfo2_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
4544 #define ICreateTypeInfo2_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
4545 #define ICreateTypeInfo2_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
4546 #define ICreateTypeInfo2_AddRefTypeInfo(p,a,b) (p)->lpVtbl->AddRefTypeInfo(p,a,b)
4547 #define ICreateTypeInfo2_AddFuncDesc(p,a,b) (p)->lpVtbl->AddFuncDesc(p,a,b)
4548 #define ICreateTypeInfo2_AddImplType(p,a,b) (p)->lpVtbl->AddImplType(p,a,b)
4549 #define ICreateTypeInfo2_SetImplTypeFlags(p,a,b) (p)->lpVtbl->SetImplTypeFlags(p,a,b)
4550 #define ICreateTypeInfo2_SetAlignment(p,a) (p)->lpVtbl->SetAlignment(p,a)
4551 #define ICreateTypeInfo2_SetSchema(p,a) (p)->lpVtbl->SetSchema(p,a)
4552 #define ICreateTypeInfo2_AddVarDesc(p,a,b) (p)->lpVtbl->AddVarDesc(p,a,b)
4553 #define ICreateTypeInfo2_SetFuncAndParamNames(p,a,b,c) (p)->lpVtbl->SetFuncAndParamNames(p,a,b,c)
4554 #define ICreateTypeInfo2_SetVarName(p,a,b) (p)->lpVtbl->SetVarName(p,a,b)
4555 #define ICreateTypeInfo2_SetTypeDescAlias(p,a) (p)->lpVtbl->SetTypeDescAlias(p,a)
4556 #define ICreateTypeInfo2_DefineFuncAsDllEntry(p,a,b,c) (p)->lpVtbl->DefineFuncAsDllEntry(p,a,b,c)
4557 #define ICreateTypeInfo2_SetFuncDocString(p,a,b) (p)->lpVtbl->SetFuncDocString(p,a,b)
4558 #define ICreateTypeInfo2_SetVarDocString(p,a,b) (p)->lpVtbl->SetVarDocString(p,a,b)
4559 #define ICreateTypeInfo2_SetFuncHelpContext(p,a,b) (p)->lpVtbl->SetFuncHelpContext(p,a,b)
4560 #define ICreateTypeInfo2_SetVarHelpContext(p,a,b) (p)->lpVtbl->SetVarHelpContext(p,a,b)
4561 #define ICreateTypeInfo2_SetMops(p,a,b) (p)->lpVtbl->SetMops(p,a,b)
4562 #define ICreateTypeInfo2_SetTypeIdldesc(p,a) (p)->lpVtbl->SetTypeIdldesc(p,a)
4563 #define ICreateTypeInfo2_LayOut(p) (p)->lpVtbl->LayOut(p)
4564 /*** ICreateTypeInfo2 methods ***/
4565 #define ICreateTypeInfo2_DeleteFuncDesc(p,a) (p)->lpVtbl->DeleteFuncDesc(p,a)
4566 #define ICreateTypeInfo2_DeleteFuncDescByMemId(p,a,b) (p)->lpVtbl->DeleteFuncDescByMemId(p,a,b)
4567 #define ICreateTypeInfo2_DeleteVarDesc(p,a) (p)->lpVtbl->DeleteVarDesc(p,a)
4568 #define ICreateTypeInfo2_DeleteVarDescByMemId(p,a) (p)->lpVtbl->DeleteVarDescByMemId(p,a)
4569 #define ICreateTypeInfo2_DeleteImplType(p,a) (p)->lpVtbl->DeleteImplType(p,a)
4570 #define ICreateTypeInfo2_SetCustData(p,a,b) (p)->lpVtbl->SetCustData(p,a,b)
4571 #define ICreateTypeInfo2_SetFuncCustData(p,a,b,c) (p)->lpVtbl->SetFuncCustData(p,a,b,c)
4572 #define ICreateTypeInfo2_SetParamCustData(p,a,b,c,d) (p)->lpVtbl->SetParamCustData(p,a,b,c,d)
4573 #define ICreateTypeInfo2_SetVarCustData(p,a,b,c) (p)->lpVtbl->SetVarCustData(p,a,b,c)
4574 #define ICreateTypeInfo2_SetImplTypeCustData(p,a,b,c) (p)->lpVtbl->SetImplTypeCustData(p,a,b,c)
4575 #define ICreateTypeInfo2_SetHelpStringContext(p,a) (p)->lpVtbl->SetHelpStringContext(p,a)
4576 #define ICreateTypeInfo2_SetFuncHelpStringContext(p,a,b) (p)->lpVtbl->SetFuncHelpStringContext(p,a,b)
4577 #define ICreateTypeInfo2_SetVarHelpStringContext(p,a,b) (p)->lpVtbl->SetVarHelpStringContext(p,a,b)
4578 #define ICreateTypeInfo2_Invalidate(p) (p)->lpVtbl->Invalidate(p)
4579 #define ICreateTypeInfo2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
4581 #endif
4583 #define ICreateTypeInfo2_METHODS \
4584 ICOM_MSVTABLE_COMPAT_FIELDS \
4585 /*** IUnknown methods ***/ \
4586 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4587 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4588 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4589 /*** ICreateTypeInfo methods ***/ \
4590 STDMETHOD_(HRESULT,SetGuid)(THIS_ REFGUID guid) PURE; \
4591 STDMETHOD_(HRESULT,SetTypeFlags)(THIS_ UINT uTypeFlags) PURE; \
4592 STDMETHOD_(HRESULT,SetDocString)(THIS_ LPOLESTR pStrDoc) PURE; \
4593 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE; \
4594 STDMETHOD_(HRESULT,SetVersion)(THIS_ WORD wMajorVerNum, WORD wMinorVerNum) PURE; \
4595 STDMETHOD_(HRESULT,AddRefTypeInfo)(THIS_ ITypeInfo* pTInfo, HREFTYPE* phRefType) PURE; \
4596 STDMETHOD_(HRESULT,AddFuncDesc)(THIS_ UINT index, FUNCDESC* pFuncDesc) PURE; \
4597 STDMETHOD_(HRESULT,AddImplType)(THIS_ UINT index, HREFTYPE hRefType) PURE; \
4598 STDMETHOD_(HRESULT,SetImplTypeFlags)(THIS_ UINT index, INT implTypeFlags) PURE; \
4599 STDMETHOD_(HRESULT,SetAlignment)(THIS_ WORD cbAlignment) PURE; \
4600 STDMETHOD_(HRESULT,SetSchema)(THIS_ LPOLESTR pStrSchema) PURE; \
4601 STDMETHOD_(HRESULT,AddVarDesc)(THIS_ UINT index, VARDESC* pVarDesc) PURE; \
4602 STDMETHOD_(HRESULT,SetFuncAndParamNames)(THIS_ UINT index, LPOLESTR* rgszNames, UINT cNames) PURE; \
4603 STDMETHOD_(HRESULT,SetVarName)(THIS_ UINT index, LPOLESTR szName) PURE; \
4604 STDMETHOD_(HRESULT,SetTypeDescAlias)(THIS_ TYPEDESC* pTDescAlias) PURE; \
4605 STDMETHOD_(HRESULT,DefineFuncAsDllEntry)(THIS_ UINT index, LPOLESTR szDllName, LPOLESTR szProcName) PURE; \
4606 STDMETHOD_(HRESULT,SetFuncDocString)(THIS_ UINT index, LPOLESTR szDocString) PURE; \
4607 STDMETHOD_(HRESULT,SetVarDocString)(THIS_ UINT index, LPOLESTR szDocString) PURE; \
4608 STDMETHOD_(HRESULT,SetFuncHelpContext)(THIS_ UINT index, DWORD dwHelpContext) PURE; \
4609 STDMETHOD_(HRESULT,SetVarHelpContext)(THIS_ UINT index, DWORD dwHelpContext) PURE; \
4610 STDMETHOD_(HRESULT,SetMops)(THIS_ UINT index, BSTR bstrMops) PURE; \
4611 STDMETHOD_(HRESULT,SetTypeIdldesc)(THIS_ IDLDESC* pIdlDesc) PURE; \
4612 STDMETHOD_(HRESULT,LayOut)(THIS) PURE; \
4613 /*** ICreateTypeInfo2 methods ***/ \
4614 STDMETHOD_(HRESULT,DeleteFuncDesc)(THIS_ UINT index) PURE; \
4615 STDMETHOD_(HRESULT,DeleteFuncDescByMemId)(THIS_ MEMBERID memid, INVOKEKIND invKind) PURE; \
4616 STDMETHOD_(HRESULT,DeleteVarDesc)(THIS_ UINT index) PURE; \
4617 STDMETHOD_(HRESULT,DeleteVarDescByMemId)(THIS_ MEMBERID memid) PURE; \
4618 STDMETHOD_(HRESULT,DeleteImplType)(THIS_ UINT index) PURE; \
4619 STDMETHOD_(HRESULT,SetCustData)(THIS_ REFGUID guid, VARIANT* pVarVal) PURE; \
4620 STDMETHOD_(HRESULT,SetFuncCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
4621 STDMETHOD_(HRESULT,SetParamCustData)(THIS_ UINT indexFunc, UINT indexParam, REFGUID guid, VARIANT* pVarVal) PURE; \
4622 STDMETHOD_(HRESULT,SetVarCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
4623 STDMETHOD_(HRESULT,SetImplTypeCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
4624 STDMETHOD_(HRESULT,SetHelpStringContext)(THIS_ ULONG dwHelpStringContext) PURE; \
4625 STDMETHOD_(HRESULT,SetFuncHelpStringContext)(THIS_ UINT index, ULONG dwHelpStringContext) PURE; \
4626 STDMETHOD_(HRESULT,SetVarHelpStringContext)(THIS_ UINT index, ULONG dwHelpStringContext) PURE; \
4627 STDMETHOD_(HRESULT,Invalidate)(THIS) PURE; \
4628 STDMETHOD_(HRESULT,SetName)(THIS_ LPOLESTR szName) PURE;
4630 HRESULT CALLBACK ICreateTypeInfo2_DeleteFuncDesc_Proxy(
4631 ICreateTypeInfo2* This,
4632 UINT index);
4633 void __RPC_STUB ICreateTypeInfo2_DeleteFuncDesc_Stub(
4634 struct IRpcStubBuffer* This,
4635 struct IRpcChannelBuffer* pRpcChannelBuffer,
4636 PRPC_MESSAGE pRpcMessage,
4637 DWORD* pdwStubPhase);
4638 HRESULT CALLBACK ICreateTypeInfo2_DeleteFuncDescByMemId_Proxy(
4639 ICreateTypeInfo2* This,
4640 MEMBERID memid,
4641 INVOKEKIND invKind);
4642 void __RPC_STUB ICreateTypeInfo2_DeleteFuncDescByMemId_Stub(
4643 struct IRpcStubBuffer* This,
4644 struct IRpcChannelBuffer* pRpcChannelBuffer,
4645 PRPC_MESSAGE pRpcMessage,
4646 DWORD* pdwStubPhase);
4647 HRESULT CALLBACK ICreateTypeInfo2_DeleteVarDesc_Proxy(
4648 ICreateTypeInfo2* This,
4649 UINT index);
4650 void __RPC_STUB ICreateTypeInfo2_DeleteVarDesc_Stub(
4651 struct IRpcStubBuffer* This,
4652 struct IRpcChannelBuffer* pRpcChannelBuffer,
4653 PRPC_MESSAGE pRpcMessage,
4654 DWORD* pdwStubPhase);
4655 HRESULT CALLBACK ICreateTypeInfo2_DeleteVarDescByMemId_Proxy(
4656 ICreateTypeInfo2* This,
4657 MEMBERID memid);
4658 void __RPC_STUB ICreateTypeInfo2_DeleteVarDescByMemId_Stub(
4659 struct IRpcStubBuffer* This,
4660 struct IRpcChannelBuffer* pRpcChannelBuffer,
4661 PRPC_MESSAGE pRpcMessage,
4662 DWORD* pdwStubPhase);
4663 HRESULT CALLBACK ICreateTypeInfo2_DeleteImplType_Proxy(
4664 ICreateTypeInfo2* This,
4665 UINT index);
4666 void __RPC_STUB ICreateTypeInfo2_DeleteImplType_Stub(
4667 struct IRpcStubBuffer* This,
4668 struct IRpcChannelBuffer* pRpcChannelBuffer,
4669 PRPC_MESSAGE pRpcMessage,
4670 DWORD* pdwStubPhase);
4671 HRESULT CALLBACK ICreateTypeInfo2_SetCustData_Proxy(
4672 ICreateTypeInfo2* This,
4673 REFGUID guid,
4674 VARIANT* pVarVal);
4675 void __RPC_STUB ICreateTypeInfo2_SetCustData_Stub(
4676 struct IRpcStubBuffer* This,
4677 struct IRpcChannelBuffer* pRpcChannelBuffer,
4678 PRPC_MESSAGE pRpcMessage,
4679 DWORD* pdwStubPhase);
4680 HRESULT CALLBACK ICreateTypeInfo2_SetFuncCustData_Proxy(
4681 ICreateTypeInfo2* This,
4682 UINT index,
4683 REFGUID guid,
4684 VARIANT* pVarVal);
4685 void __RPC_STUB ICreateTypeInfo2_SetFuncCustData_Stub(
4686 struct IRpcStubBuffer* This,
4687 struct IRpcChannelBuffer* pRpcChannelBuffer,
4688 PRPC_MESSAGE pRpcMessage,
4689 DWORD* pdwStubPhase);
4690 HRESULT CALLBACK ICreateTypeInfo2_SetParamCustData_Proxy(
4691 ICreateTypeInfo2* This,
4692 UINT indexFunc,
4693 UINT indexParam,
4694 REFGUID guid,
4695 VARIANT* pVarVal);
4696 void __RPC_STUB ICreateTypeInfo2_SetParamCustData_Stub(
4697 struct IRpcStubBuffer* This,
4698 struct IRpcChannelBuffer* pRpcChannelBuffer,
4699 PRPC_MESSAGE pRpcMessage,
4700 DWORD* pdwStubPhase);
4701 HRESULT CALLBACK ICreateTypeInfo2_SetVarCustData_Proxy(
4702 ICreateTypeInfo2* This,
4703 UINT index,
4704 REFGUID guid,
4705 VARIANT* pVarVal);
4706 void __RPC_STUB ICreateTypeInfo2_SetVarCustData_Stub(
4707 struct IRpcStubBuffer* This,
4708 struct IRpcChannelBuffer* pRpcChannelBuffer,
4709 PRPC_MESSAGE pRpcMessage,
4710 DWORD* pdwStubPhase);
4711 HRESULT CALLBACK ICreateTypeInfo2_SetImplTypeCustData_Proxy(
4712 ICreateTypeInfo2* This,
4713 UINT index,
4714 REFGUID guid,
4715 VARIANT* pVarVal);
4716 void __RPC_STUB ICreateTypeInfo2_SetImplTypeCustData_Stub(
4717 struct IRpcStubBuffer* This,
4718 struct IRpcChannelBuffer* pRpcChannelBuffer,
4719 PRPC_MESSAGE pRpcMessage,
4720 DWORD* pdwStubPhase);
4721 HRESULT CALLBACK ICreateTypeInfo2_SetHelpStringContext_Proxy(
4722 ICreateTypeInfo2* This,
4723 ULONG dwHelpStringContext);
4724 void __RPC_STUB ICreateTypeInfo2_SetHelpStringContext_Stub(
4725 struct IRpcStubBuffer* This,
4726 struct IRpcChannelBuffer* pRpcChannelBuffer,
4727 PRPC_MESSAGE pRpcMessage,
4728 DWORD* pdwStubPhase);
4729 HRESULT CALLBACK ICreateTypeInfo2_SetFuncHelpStringContext_Proxy(
4730 ICreateTypeInfo2* This,
4731 UINT index,
4732 ULONG dwHelpStringContext);
4733 void __RPC_STUB ICreateTypeInfo2_SetFuncHelpStringContext_Stub(
4734 struct IRpcStubBuffer* This,
4735 struct IRpcChannelBuffer* pRpcChannelBuffer,
4736 PRPC_MESSAGE pRpcMessage,
4737 DWORD* pdwStubPhase);
4738 HRESULT CALLBACK ICreateTypeInfo2_SetVarHelpStringContext_Proxy(
4739 ICreateTypeInfo2* This,
4740 UINT index,
4741 ULONG dwHelpStringContext);
4742 void __RPC_STUB ICreateTypeInfo2_SetVarHelpStringContext_Stub(
4743 struct IRpcStubBuffer* This,
4744 struct IRpcChannelBuffer* pRpcChannelBuffer,
4745 PRPC_MESSAGE pRpcMessage,
4746 DWORD* pdwStubPhase);
4747 HRESULT CALLBACK ICreateTypeInfo2_Invalidate_Proxy(
4748 ICreateTypeInfo2* This);
4749 void __RPC_STUB ICreateTypeInfo2_Invalidate_Stub(
4750 struct IRpcStubBuffer* This,
4751 struct IRpcChannelBuffer* pRpcChannelBuffer,
4752 PRPC_MESSAGE pRpcMessage,
4753 DWORD* pdwStubPhase);
4754 HRESULT CALLBACK ICreateTypeInfo2_SetName_Proxy(
4755 ICreateTypeInfo2* This,
4756 LPOLESTR szName);
4757 void __RPC_STUB ICreateTypeInfo2_SetName_Stub(
4758 struct IRpcStubBuffer* This,
4759 struct IRpcChannelBuffer* pRpcChannelBuffer,
4760 PRPC_MESSAGE pRpcMessage,
4761 DWORD* pdwStubPhase);
4763 typedef struct ICreateTypeLib ICreateTypeLib;
4764 typedef ICreateTypeLib *LPCREATETYPELIB;
4766 /*****************************************************************************
4767 * ICreateTypeLib interface
4769 DEFINE_GUID(IID_ICreateTypeLib, 0x00020406, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4770 #if defined(__cplusplus) && !defined(CINTERFACE)
4771 struct ICreateTypeLib : public IUnknown
4773 virtual HRESULT STDMETHODCALLTYPE CreateTypeInfo(
4774 LPOLESTR szName,
4775 TYPEKIND tkind,
4776 ICreateTypeInfo** ppCTInfo) = 0;
4778 virtual HRESULT STDMETHODCALLTYPE SetName(
4779 LPOLESTR szName) = 0;
4781 virtual HRESULT STDMETHODCALLTYPE SetVersion(
4782 WORD wMajorVerNum,
4783 WORD wMinorVerNum) = 0;
4785 virtual HRESULT STDMETHODCALLTYPE SetGuid(
4786 REFGUID guid) = 0;
4788 virtual HRESULT STDMETHODCALLTYPE SetDocString(
4789 LPOLESTR szDoc) = 0;
4791 virtual HRESULT STDMETHODCALLTYPE SetHelpFileName(
4792 LPOLESTR szHelpFileName) = 0;
4794 virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
4795 DWORD dwHelpContext) = 0;
4797 virtual HRESULT STDMETHODCALLTYPE SetLcid(
4798 LCID lcid) = 0;
4800 virtual HRESULT STDMETHODCALLTYPE SetLibFlags(
4801 UINT uLibFlags) = 0;
4803 virtual HRESULT STDMETHODCALLTYPE SaveAllChanges(
4804 ) = 0;
4807 #else
4808 typedef struct ICreateTypeLibVtbl ICreateTypeLibVtbl;
4809 struct ICreateTypeLib {
4810 const ICreateTypeLibVtbl* lpVtbl;
4812 struct ICreateTypeLibVtbl {
4813 ICOM_MSVTABLE_COMPAT_FIELDS
4815 /*** IUnknown methods ***/
4816 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4817 ICreateTypeLib* This,
4818 REFIID riid,
4819 void** ppvObject);
4821 ULONG (STDMETHODCALLTYPE *AddRef)(
4822 ICreateTypeLib* This);
4824 ULONG (STDMETHODCALLTYPE *Release)(
4825 ICreateTypeLib* This);
4827 /*** ICreateTypeLib methods ***/
4828 HRESULT (STDMETHODCALLTYPE *CreateTypeInfo)(
4829 ICreateTypeLib* This,
4830 LPOLESTR szName,
4831 TYPEKIND tkind,
4832 ICreateTypeInfo** ppCTInfo);
4834 HRESULT (STDMETHODCALLTYPE *SetName)(
4835 ICreateTypeLib* This,
4836 LPOLESTR szName);
4838 HRESULT (STDMETHODCALLTYPE *SetVersion)(
4839 ICreateTypeLib* This,
4840 WORD wMajorVerNum,
4841 WORD wMinorVerNum);
4843 HRESULT (STDMETHODCALLTYPE *SetGuid)(
4844 ICreateTypeLib* This,
4845 REFGUID guid);
4847 HRESULT (STDMETHODCALLTYPE *SetDocString)(
4848 ICreateTypeLib* This,
4849 LPOLESTR szDoc);
4851 HRESULT (STDMETHODCALLTYPE *SetHelpFileName)(
4852 ICreateTypeLib* This,
4853 LPOLESTR szHelpFileName);
4855 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
4856 ICreateTypeLib* This,
4857 DWORD dwHelpContext);
4859 HRESULT (STDMETHODCALLTYPE *SetLcid)(
4860 ICreateTypeLib* This,
4861 LCID lcid);
4863 HRESULT (STDMETHODCALLTYPE *SetLibFlags)(
4864 ICreateTypeLib* This,
4865 UINT uLibFlags);
4867 HRESULT (STDMETHODCALLTYPE *SaveAllChanges)(
4868 ICreateTypeLib* This);
4872 /*** IUnknown methods ***/
4873 #define ICreateTypeLib_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4874 #define ICreateTypeLib_AddRef(p) (p)->lpVtbl->AddRef(p)
4875 #define ICreateTypeLib_Release(p) (p)->lpVtbl->Release(p)
4876 /*** ICreateTypeLib methods ***/
4877 #define ICreateTypeLib_CreateTypeInfo(p,a,b,c) (p)->lpVtbl->CreateTypeInfo(p,a,b,c)
4878 #define ICreateTypeLib_SetName(p,a) (p)->lpVtbl->SetName(p,a)
4879 #define ICreateTypeLib_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
4880 #define ICreateTypeLib_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
4881 #define ICreateTypeLib_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
4882 #define ICreateTypeLib_SetHelpFileName(p,a) (p)->lpVtbl->SetHelpFileName(p,a)
4883 #define ICreateTypeLib_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
4884 #define ICreateTypeLib_SetLcid(p,a) (p)->lpVtbl->SetLcid(p,a)
4885 #define ICreateTypeLib_SetLibFlags(p,a) (p)->lpVtbl->SetLibFlags(p,a)
4886 #define ICreateTypeLib_SaveAllChanges(p) (p)->lpVtbl->SaveAllChanges(p)
4888 #endif
4890 #define ICreateTypeLib_METHODS \
4891 ICOM_MSVTABLE_COMPAT_FIELDS \
4892 /*** IUnknown methods ***/ \
4893 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4894 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4895 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4896 /*** ICreateTypeLib methods ***/ \
4897 STDMETHOD_(HRESULT,CreateTypeInfo)(THIS_ LPOLESTR szName, TYPEKIND tkind, ICreateTypeInfo** ppCTInfo) PURE; \
4898 STDMETHOD_(HRESULT,SetName)(THIS_ LPOLESTR szName) PURE; \
4899 STDMETHOD_(HRESULT,SetVersion)(THIS_ WORD wMajorVerNum, WORD wMinorVerNum) PURE; \
4900 STDMETHOD_(HRESULT,SetGuid)(THIS_ REFGUID guid) PURE; \
4901 STDMETHOD_(HRESULT,SetDocString)(THIS_ LPOLESTR szDoc) PURE; \
4902 STDMETHOD_(HRESULT,SetHelpFileName)(THIS_ LPOLESTR szHelpFileName) PURE; \
4903 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE; \
4904 STDMETHOD_(HRESULT,SetLcid)(THIS_ LCID lcid) PURE; \
4905 STDMETHOD_(HRESULT,SetLibFlags)(THIS_ UINT uLibFlags) PURE; \
4906 STDMETHOD_(HRESULT,SaveAllChanges)(THIS) PURE;
4908 HRESULT CALLBACK ICreateTypeLib_CreateTypeInfo_Proxy(
4909 ICreateTypeLib* This,
4910 LPOLESTR szName,
4911 TYPEKIND tkind,
4912 ICreateTypeInfo** ppCTInfo);
4913 void __RPC_STUB ICreateTypeLib_CreateTypeInfo_Stub(
4914 struct IRpcStubBuffer* This,
4915 struct IRpcChannelBuffer* pRpcChannelBuffer,
4916 PRPC_MESSAGE pRpcMessage,
4917 DWORD* pdwStubPhase);
4918 HRESULT CALLBACK ICreateTypeLib_SetName_Proxy(
4919 ICreateTypeLib* This,
4920 LPOLESTR szName);
4921 void __RPC_STUB ICreateTypeLib_SetName_Stub(
4922 struct IRpcStubBuffer* This,
4923 struct IRpcChannelBuffer* pRpcChannelBuffer,
4924 PRPC_MESSAGE pRpcMessage,
4925 DWORD* pdwStubPhase);
4926 HRESULT CALLBACK ICreateTypeLib_SetVersion_Proxy(
4927 ICreateTypeLib* This,
4928 WORD wMajorVerNum,
4929 WORD wMinorVerNum);
4930 void __RPC_STUB ICreateTypeLib_SetVersion_Stub(
4931 struct IRpcStubBuffer* This,
4932 struct IRpcChannelBuffer* pRpcChannelBuffer,
4933 PRPC_MESSAGE pRpcMessage,
4934 DWORD* pdwStubPhase);
4935 HRESULT CALLBACK ICreateTypeLib_SetGuid_Proxy(
4936 ICreateTypeLib* This,
4937 REFGUID guid);
4938 void __RPC_STUB ICreateTypeLib_SetGuid_Stub(
4939 struct IRpcStubBuffer* This,
4940 struct IRpcChannelBuffer* pRpcChannelBuffer,
4941 PRPC_MESSAGE pRpcMessage,
4942 DWORD* pdwStubPhase);
4943 HRESULT CALLBACK ICreateTypeLib_SetDocString_Proxy(
4944 ICreateTypeLib* This,
4945 LPOLESTR szDoc);
4946 void __RPC_STUB ICreateTypeLib_SetDocString_Stub(
4947 struct IRpcStubBuffer* This,
4948 struct IRpcChannelBuffer* pRpcChannelBuffer,
4949 PRPC_MESSAGE pRpcMessage,
4950 DWORD* pdwStubPhase);
4951 HRESULT CALLBACK ICreateTypeLib_SetHelpFileName_Proxy(
4952 ICreateTypeLib* This,
4953 LPOLESTR szHelpFileName);
4954 void __RPC_STUB ICreateTypeLib_SetHelpFileName_Stub(
4955 struct IRpcStubBuffer* This,
4956 struct IRpcChannelBuffer* pRpcChannelBuffer,
4957 PRPC_MESSAGE pRpcMessage,
4958 DWORD* pdwStubPhase);
4959 HRESULT CALLBACK ICreateTypeLib_SetHelpContext_Proxy(
4960 ICreateTypeLib* This,
4961 DWORD dwHelpContext);
4962 void __RPC_STUB ICreateTypeLib_SetHelpContext_Stub(
4963 struct IRpcStubBuffer* This,
4964 struct IRpcChannelBuffer* pRpcChannelBuffer,
4965 PRPC_MESSAGE pRpcMessage,
4966 DWORD* pdwStubPhase);
4967 HRESULT CALLBACK ICreateTypeLib_SetLcid_Proxy(
4968 ICreateTypeLib* This,
4969 LCID lcid);
4970 void __RPC_STUB ICreateTypeLib_SetLcid_Stub(
4971 struct IRpcStubBuffer* This,
4972 struct IRpcChannelBuffer* pRpcChannelBuffer,
4973 PRPC_MESSAGE pRpcMessage,
4974 DWORD* pdwStubPhase);
4975 HRESULT CALLBACK ICreateTypeLib_SetLibFlags_Proxy(
4976 ICreateTypeLib* This,
4977 UINT uLibFlags);
4978 void __RPC_STUB ICreateTypeLib_SetLibFlags_Stub(
4979 struct IRpcStubBuffer* This,
4980 struct IRpcChannelBuffer* pRpcChannelBuffer,
4981 PRPC_MESSAGE pRpcMessage,
4982 DWORD* pdwStubPhase);
4983 HRESULT CALLBACK ICreateTypeLib_SaveAllChanges_Proxy(
4984 ICreateTypeLib* This);
4985 void __RPC_STUB ICreateTypeLib_SaveAllChanges_Stub(
4986 struct IRpcStubBuffer* This,
4987 struct IRpcChannelBuffer* pRpcChannelBuffer,
4988 PRPC_MESSAGE pRpcMessage,
4989 DWORD* pdwStubPhase);
4991 typedef struct ICreateTypeLib2 ICreateTypeLib2;
4992 typedef ICreateTypeLib2 *LPCREATETYPELIB2;
4994 /*****************************************************************************
4995 * ICreateTypeLib2 interface
4997 DEFINE_GUID(IID_ICreateTypeLib2, 0x0002040f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4998 #if defined(__cplusplus) && !defined(CINTERFACE)
4999 struct ICreateTypeLib2 : public ICreateTypeLib
5001 virtual HRESULT STDMETHODCALLTYPE DeleteTypeInfo(
5002 LPOLESTR szName) = 0;
5004 virtual HRESULT STDMETHODCALLTYPE SetCustData(
5005 REFGUID guid,
5006 VARIANT* pVarVal) = 0;
5008 virtual HRESULT STDMETHODCALLTYPE SetHelpStringContext(
5009 ULONG dwHelpStringContext) = 0;
5011 virtual HRESULT STDMETHODCALLTYPE SetHelpStringDll(
5012 LPOLESTR szFileName) = 0;
5015 #else
5016 typedef struct ICreateTypeLib2Vtbl ICreateTypeLib2Vtbl;
5017 struct ICreateTypeLib2 {
5018 const ICreateTypeLib2Vtbl* lpVtbl;
5020 struct ICreateTypeLib2Vtbl {
5021 ICOM_MSVTABLE_COMPAT_FIELDS
5023 /*** IUnknown methods ***/
5024 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5025 ICreateTypeLib2* This,
5026 REFIID riid,
5027 void** ppvObject);
5029 ULONG (STDMETHODCALLTYPE *AddRef)(
5030 ICreateTypeLib2* This);
5032 ULONG (STDMETHODCALLTYPE *Release)(
5033 ICreateTypeLib2* This);
5035 /*** ICreateTypeLib methods ***/
5036 HRESULT (STDMETHODCALLTYPE *CreateTypeInfo)(
5037 ICreateTypeLib2* This,
5038 LPOLESTR szName,
5039 TYPEKIND tkind,
5040 ICreateTypeInfo** ppCTInfo);
5042 HRESULT (STDMETHODCALLTYPE *SetName)(
5043 ICreateTypeLib2* This,
5044 LPOLESTR szName);
5046 HRESULT (STDMETHODCALLTYPE *SetVersion)(
5047 ICreateTypeLib2* This,
5048 WORD wMajorVerNum,
5049 WORD wMinorVerNum);
5051 HRESULT (STDMETHODCALLTYPE *SetGuid)(
5052 ICreateTypeLib2* This,
5053 REFGUID guid);
5055 HRESULT (STDMETHODCALLTYPE *SetDocString)(
5056 ICreateTypeLib2* This,
5057 LPOLESTR szDoc);
5059 HRESULT (STDMETHODCALLTYPE *SetHelpFileName)(
5060 ICreateTypeLib2* This,
5061 LPOLESTR szHelpFileName);
5063 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
5064 ICreateTypeLib2* This,
5065 DWORD dwHelpContext);
5067 HRESULT (STDMETHODCALLTYPE *SetLcid)(
5068 ICreateTypeLib2* This,
5069 LCID lcid);
5071 HRESULT (STDMETHODCALLTYPE *SetLibFlags)(
5072 ICreateTypeLib2* This,
5073 UINT uLibFlags);
5075 HRESULT (STDMETHODCALLTYPE *SaveAllChanges)(
5076 ICreateTypeLib2* This);
5078 /*** ICreateTypeLib2 methods ***/
5079 HRESULT (STDMETHODCALLTYPE *DeleteTypeInfo)(
5080 ICreateTypeLib2* This,
5081 LPOLESTR szName);
5083 HRESULT (STDMETHODCALLTYPE *SetCustData)(
5084 ICreateTypeLib2* This,
5085 REFGUID guid,
5086 VARIANT* pVarVal);
5088 HRESULT (STDMETHODCALLTYPE *SetHelpStringContext)(
5089 ICreateTypeLib2* This,
5090 ULONG dwHelpStringContext);
5092 HRESULT (STDMETHODCALLTYPE *SetHelpStringDll)(
5093 ICreateTypeLib2* This,
5094 LPOLESTR szFileName);
5098 /*** IUnknown methods ***/
5099 #define ICreateTypeLib2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5100 #define ICreateTypeLib2_AddRef(p) (p)->lpVtbl->AddRef(p)
5101 #define ICreateTypeLib2_Release(p) (p)->lpVtbl->Release(p)
5102 /*** ICreateTypeLib methods ***/
5103 #define ICreateTypeLib2_CreateTypeInfo(p,a,b,c) (p)->lpVtbl->CreateTypeInfo(p,a,b,c)
5104 #define ICreateTypeLib2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
5105 #define ICreateTypeLib2_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
5106 #define ICreateTypeLib2_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
5107 #define ICreateTypeLib2_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
5108 #define ICreateTypeLib2_SetHelpFileName(p,a) (p)->lpVtbl->SetHelpFileName(p,a)
5109 #define ICreateTypeLib2_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
5110 #define ICreateTypeLib2_SetLcid(p,a) (p)->lpVtbl->SetLcid(p,a)
5111 #define ICreateTypeLib2_SetLibFlags(p,a) (p)->lpVtbl->SetLibFlags(p,a)
5112 #define ICreateTypeLib2_SaveAllChanges(p) (p)->lpVtbl->SaveAllChanges(p)
5113 /*** ICreateTypeLib2 methods ***/
5114 #define ICreateTypeLib2_DeleteTypeInfo(p,a) (p)->lpVtbl->DeleteTypeInfo(p,a)
5115 #define ICreateTypeLib2_SetCustData(p,a,b) (p)->lpVtbl->SetCustData(p,a,b)
5116 #define ICreateTypeLib2_SetHelpStringContext(p,a) (p)->lpVtbl->SetHelpStringContext(p,a)
5117 #define ICreateTypeLib2_SetHelpStringDll(p,a) (p)->lpVtbl->SetHelpStringDll(p,a)
5119 #endif
5121 #define ICreateTypeLib2_METHODS \
5122 ICOM_MSVTABLE_COMPAT_FIELDS \
5123 /*** IUnknown methods ***/ \
5124 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5125 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5126 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5127 /*** ICreateTypeLib methods ***/ \
5128 STDMETHOD_(HRESULT,CreateTypeInfo)(THIS_ LPOLESTR szName, TYPEKIND tkind, ICreateTypeInfo** ppCTInfo) PURE; \
5129 STDMETHOD_(HRESULT,SetName)(THIS_ LPOLESTR szName) PURE; \
5130 STDMETHOD_(HRESULT,SetVersion)(THIS_ WORD wMajorVerNum, WORD wMinorVerNum) PURE; \
5131 STDMETHOD_(HRESULT,SetGuid)(THIS_ REFGUID guid) PURE; \
5132 STDMETHOD_(HRESULT,SetDocString)(THIS_ LPOLESTR szDoc) PURE; \
5133 STDMETHOD_(HRESULT,SetHelpFileName)(THIS_ LPOLESTR szHelpFileName) PURE; \
5134 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE; \
5135 STDMETHOD_(HRESULT,SetLcid)(THIS_ LCID lcid) PURE; \
5136 STDMETHOD_(HRESULT,SetLibFlags)(THIS_ UINT uLibFlags) PURE; \
5137 STDMETHOD_(HRESULT,SaveAllChanges)(THIS) PURE; \
5138 /*** ICreateTypeLib2 methods ***/ \
5139 STDMETHOD_(HRESULT,DeleteTypeInfo)(THIS_ LPOLESTR szName) PURE; \
5140 STDMETHOD_(HRESULT,SetCustData)(THIS_ REFGUID guid, VARIANT* pVarVal) PURE; \
5141 STDMETHOD_(HRESULT,SetHelpStringContext)(THIS_ ULONG dwHelpStringContext) PURE; \
5142 STDMETHOD_(HRESULT,SetHelpStringDll)(THIS_ LPOLESTR szFileName) PURE;
5144 HRESULT CALLBACK ICreateTypeLib2_DeleteTypeInfo_Proxy(
5145 ICreateTypeLib2* This,
5146 LPOLESTR szName);
5147 void __RPC_STUB ICreateTypeLib2_DeleteTypeInfo_Stub(
5148 struct IRpcStubBuffer* This,
5149 struct IRpcChannelBuffer* pRpcChannelBuffer,
5150 PRPC_MESSAGE pRpcMessage,
5151 DWORD* pdwStubPhase);
5152 HRESULT CALLBACK ICreateTypeLib2_SetCustData_Proxy(
5153 ICreateTypeLib2* This,
5154 REFGUID guid,
5155 VARIANT* pVarVal);
5156 void __RPC_STUB ICreateTypeLib2_SetCustData_Stub(
5157 struct IRpcStubBuffer* This,
5158 struct IRpcChannelBuffer* pRpcChannelBuffer,
5159 PRPC_MESSAGE pRpcMessage,
5160 DWORD* pdwStubPhase);
5161 HRESULT CALLBACK ICreateTypeLib2_SetHelpStringContext_Proxy(
5162 ICreateTypeLib2* This,
5163 ULONG dwHelpStringContext);
5164 void __RPC_STUB ICreateTypeLib2_SetHelpStringContext_Stub(
5165 struct IRpcStubBuffer* This,
5166 struct IRpcChannelBuffer* pRpcChannelBuffer,
5167 PRPC_MESSAGE pRpcMessage,
5168 DWORD* pdwStubPhase);
5169 HRESULT CALLBACK ICreateTypeLib2_SetHelpStringDll_Proxy(
5170 ICreateTypeLib2* This,
5171 LPOLESTR szFileName);
5172 void __RPC_STUB ICreateTypeLib2_SetHelpStringDll_Stub(
5173 struct IRpcStubBuffer* This,
5174 struct IRpcChannelBuffer* pRpcChannelBuffer,
5175 PRPC_MESSAGE pRpcMessage,
5176 DWORD* pdwStubPhase);
5178 #ifdef __cplusplus
5180 #endif
5181 #endif /* __WIDL_OAIDL_H */