stdint.h should be included for compiling on NetBSD.
[wine/multimedia.git] / include / oaidl.h
blob03141830aa2d1b8575ce344862f2114483dc9a4a
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: IUnknown {
588 virtual HRESULT CALLBACK GetTypeInfoCount(
589 UINT* pctinfo) = 0;
591 virtual HRESULT CALLBACK GetTypeInfo(
592 UINT iTInfo,
593 LCID lcid,
594 ITypeInfo** ppTInfo) = 0;
596 virtual HRESULT CALLBACK GetIDsOfNames(
597 REFIID riid,
598 LPOLESTR* rgszNames,
599 UINT cNames,
600 LCID lcid,
601 DISPID* rgDispId) = 0;
603 virtual HRESULT CALLBACK 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;
613 } ICOM_COM_INTERFACE_ATTRIBUTE;
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 (CALLBACK *QueryInterface)(
624 IDispatch* This,
625 REFIID riid,
626 void** ppvObject);
628 ULONG (CALLBACK *AddRef)(
629 IDispatch* This);
631 ULONG (CALLBACK *Release)(
632 IDispatch* This);
634 /*** IDispatch methods ***/
635 HRESULT (CALLBACK *GetTypeInfoCount)(
636 IDispatch* This,
637 UINT* pctinfo);
639 HRESULT (CALLBACK *GetTypeInfo)(
640 IDispatch* This,
641 UINT iTInfo,
642 LCID lcid,
643 ITypeInfo** ppTInfo);
645 HRESULT (CALLBACK *GetIDsOfNames)(
646 IDispatch* This,
647 REFIID riid,
648 LPOLESTR* rgszNames,
649 UINT cNames,
650 LCID lcid,
651 DISPID* rgDispId);
653 HRESULT (CALLBACK *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 #define IDispatch_IMETHODS \
667 IUnknown_IMETHODS \
668 ICOM_METHOD1 (HRESULT,GetTypeInfoCount,UINT*,pctinfo) \
669 ICOM_METHOD3 (HRESULT,GetTypeInfo,UINT,iTInfo,LCID,lcid,ITypeInfo**,ppTInfo) \
670 ICOM_METHOD5 (HRESULT,GetIDsOfNames,REFIID,riid,LPOLESTR*,rgszNames,UINT,cNames,LCID,lcid,DISPID*,rgDispId) \
671 ICOM_METHOD8 (HRESULT,Invoke,DISPID,dispIdMember,REFIID,riid,LCID,lcid,WORD,wFlags,DISPPARAMS*,pDispParams,VARIANT*,pVarResult,EXCEPINFO*,pExcepInfo,UINT*,puArgErr)
673 /*** IUnknown methods ***/
674 #define IDispatch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
675 #define IDispatch_AddRef(p) (p)->lpVtbl->AddRef(p)
676 #define IDispatch_Release(p) (p)->lpVtbl->Release(p)
677 /*** IDispatch methods ***/
678 #define IDispatch_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
679 #define IDispatch_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
680 #define IDispatch_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
681 #define IDispatch_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
683 #endif
685 HRESULT CALLBACK IDispatch_GetTypeInfoCount_Proxy(
686 IDispatch* This,
687 UINT* pctinfo);
688 void __RPC_STUB IDispatch_GetTypeInfoCount_Stub(
689 struct IRpcStubBuffer* This,
690 struct IRpcChannelBuffer* pRpcChannelBuffer,
691 PRPC_MESSAGE pRpcMessage,
692 DWORD* pdwStubPhase);
693 HRESULT CALLBACK IDispatch_GetTypeInfo_Proxy(
694 IDispatch* This,
695 UINT iTInfo,
696 LCID lcid,
697 ITypeInfo** ppTInfo);
698 void __RPC_STUB IDispatch_GetTypeInfo_Stub(
699 struct IRpcStubBuffer* This,
700 struct IRpcChannelBuffer* pRpcChannelBuffer,
701 PRPC_MESSAGE pRpcMessage,
702 DWORD* pdwStubPhase);
703 HRESULT CALLBACK IDispatch_GetIDsOfNames_Proxy(
704 IDispatch* This,
705 REFIID riid,
706 LPOLESTR* rgszNames,
707 UINT cNames,
708 LCID lcid,
709 DISPID* rgDispId);
710 void __RPC_STUB IDispatch_GetIDsOfNames_Stub(
711 struct IRpcStubBuffer* This,
712 struct IRpcChannelBuffer* pRpcChannelBuffer,
713 PRPC_MESSAGE pRpcMessage,
714 DWORD* pdwStubPhase);
715 HRESULT CALLBACK IDispatch_RemoteInvoke_Proxy(
716 IDispatch* This,
717 DISPID dispIdMember,
718 REFIID riid,
719 LCID lcid,
720 DWORD dwFlags,
721 DISPPARAMS* pDispParams,
722 VARIANT* pVarResult,
723 EXCEPINFO* pExcepInfo,
724 UINT* pArgErr,
725 UINT cVarRef,
726 UINT* rgVarRefIdx,
727 VARIANTARG* rgVarRef);
728 void __RPC_STUB IDispatch_RemoteInvoke_Stub(
729 struct IRpcStubBuffer* This,
730 struct IRpcChannelBuffer* pRpcChannelBuffer,
731 PRPC_MESSAGE pRpcMessage,
732 DWORD* pdwStubPhase);
733 HRESULT CALLBACK IDispatch_Invoke_Proxy(
734 IDispatch* This,
735 DISPID dispIdMember,
736 REFIID riid,
737 LCID lcid,
738 WORD wFlags,
739 DISPPARAMS* pDispParams,
740 VARIANT* pVarResult,
741 EXCEPINFO* pExcepInfo,
742 UINT* puArgErr);
743 HRESULT __RPC_STUB IDispatch_Invoke_Stub(
744 IDispatch* This,
745 DISPID dispIdMember,
746 REFIID riid,
747 LCID lcid,
748 DWORD dwFlags,
749 DISPPARAMS* pDispParams,
750 VARIANT* pVarResult,
751 EXCEPINFO* pExcepInfo,
752 UINT* pArgErr,
753 UINT cVarRef,
754 UINT* rgVarRefIdx,
755 VARIANTARG* rgVarRef);
757 typedef struct IEnumVARIANT IEnumVARIANT;
758 typedef IEnumVARIANT *LPENUMVARIANT;
760 /*****************************************************************************
761 * IEnumVARIANT interface
763 DEFINE_GUID(IID_IEnumVARIANT, 0x00020404, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
764 #if defined(__cplusplus) && !defined(CINTERFACE)
765 struct IEnumVARIANT: IUnknown {
767 virtual HRESULT CALLBACK Next(
768 ULONG celt,
769 VARIANT* rgVar,
770 ULONG* pCeltFetched) = 0;
772 virtual HRESULT CALLBACK Skip(
773 ULONG celt) = 0;
775 virtual HRESULT CALLBACK Reset(
776 ) = 0;
778 virtual HRESULT CALLBACK Clone(
779 IEnumVARIANT** ppEnum) = 0;
781 } ICOM_COM_INTERFACE_ATTRIBUTE;
782 #else
783 typedef struct IEnumVARIANTVtbl IEnumVARIANTVtbl;
784 struct IEnumVARIANT {
785 const IEnumVARIANTVtbl* lpVtbl;
787 struct IEnumVARIANTVtbl {
788 ICOM_MSVTABLE_COMPAT_FIELDS
790 /*** IUnknown methods ***/
791 HRESULT (CALLBACK *QueryInterface)(
792 IEnumVARIANT* This,
793 REFIID riid,
794 void** ppvObject);
796 ULONG (CALLBACK *AddRef)(
797 IEnumVARIANT* This);
799 ULONG (CALLBACK *Release)(
800 IEnumVARIANT* This);
802 /*** IEnumVARIANT methods ***/
803 HRESULT (CALLBACK *Next)(
804 IEnumVARIANT* This,
805 ULONG celt,
806 VARIANT* rgVar,
807 ULONG* pCeltFetched);
809 HRESULT (CALLBACK *Skip)(
810 IEnumVARIANT* This,
811 ULONG celt);
813 HRESULT (CALLBACK *Reset)(
814 IEnumVARIANT* This);
816 HRESULT (CALLBACK *Clone)(
817 IEnumVARIANT* This,
818 IEnumVARIANT** ppEnum);
822 #define IEnumVARIANT_IMETHODS \
823 IUnknown_IMETHODS \
824 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,VARIANT*,rgVar,ULONG*,pCeltFetched) \
825 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
826 ICOM_METHOD (HRESULT,Reset) \
827 ICOM_METHOD1 (HRESULT,Clone,IEnumVARIANT**,ppEnum)
829 /*** IUnknown methods ***/
830 #define IEnumVARIANT_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
831 #define IEnumVARIANT_AddRef(p) (p)->lpVtbl->AddRef(p)
832 #define IEnumVARIANT_Release(p) (p)->lpVtbl->Release(p)
833 /*** IEnumVARIANT methods ***/
834 #define IEnumVARIANT_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
835 #define IEnumVARIANT_Skip(p,a) (p)->lpVtbl->Skip(p,a)
836 #define IEnumVARIANT_Reset(p) (p)->lpVtbl->Reset(p)
837 #define IEnumVARIANT_Clone(p,a) (p)->lpVtbl->Clone(p,a)
839 #endif
841 HRESULT CALLBACK IEnumVARIANT_RemoteNext_Proxy(
842 IEnumVARIANT* This,
843 ULONG celt,
844 VARIANT* rgVar,
845 ULONG* pCeltFetched);
846 void __RPC_STUB IEnumVARIANT_RemoteNext_Stub(
847 struct IRpcStubBuffer* This,
848 struct IRpcChannelBuffer* pRpcChannelBuffer,
849 PRPC_MESSAGE pRpcMessage,
850 DWORD* pdwStubPhase);
851 HRESULT CALLBACK IEnumVARIANT_Next_Proxy(
852 IEnumVARIANT* This,
853 ULONG celt,
854 VARIANT* rgVar,
855 ULONG* pCeltFetched);
856 HRESULT __RPC_STUB IEnumVARIANT_Next_Stub(
857 IEnumVARIANT* This,
858 ULONG celt,
859 VARIANT* rgVar,
860 ULONG* pCeltFetched);
861 HRESULT CALLBACK IEnumVARIANT_Skip_Proxy(
862 IEnumVARIANT* This,
863 ULONG celt);
864 void __RPC_STUB IEnumVARIANT_Skip_Stub(
865 struct IRpcStubBuffer* This,
866 struct IRpcChannelBuffer* pRpcChannelBuffer,
867 PRPC_MESSAGE pRpcMessage,
868 DWORD* pdwStubPhase);
869 HRESULT CALLBACK IEnumVARIANT_Reset_Proxy(
870 IEnumVARIANT* This);
871 void __RPC_STUB IEnumVARIANT_Reset_Stub(
872 struct IRpcStubBuffer* This,
873 struct IRpcChannelBuffer* pRpcChannelBuffer,
874 PRPC_MESSAGE pRpcMessage,
875 DWORD* pdwStubPhase);
876 HRESULT CALLBACK IEnumVARIANT_Clone_Proxy(
877 IEnumVARIANT* This,
878 IEnumVARIANT** ppEnum);
879 void __RPC_STUB IEnumVARIANT_Clone_Stub(
880 struct IRpcStubBuffer* This,
881 struct IRpcChannelBuffer* pRpcChannelBuffer,
882 PRPC_MESSAGE pRpcMessage,
883 DWORD* pdwStubPhase);
885 typedef struct ITypeComp ITypeComp;
886 typedef ITypeComp *LPTYPECOMP;
888 typedef enum tagDESCKIND {
889 DESCKIND_NONE = 0,
890 DESCKIND_FUNCDESC,
891 DESCKIND_VARDESC,
892 DESCKIND_TYPECOMP,
893 DESCKIND_IMPLICITAPPOBJ,
894 DESCKIND_MAX
895 } DESCKIND;
897 typedef union tagBINDPTR {
898 FUNCDESC *lpfuncdesc;
899 VARDESC *lpvardesc;
900 ITypeComp *lptcomp;
901 } BINDPTR, *LPBINDPTR;
903 /*****************************************************************************
904 * ITypeComp interface
906 DEFINE_GUID(IID_ITypeComp, 0x00020403, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
907 #if defined(__cplusplus) && !defined(CINTERFACE)
908 struct ITypeComp: IUnknown {
910 virtual HRESULT CALLBACK Bind(
911 LPOLESTR szName,
912 ULONG lHashVal,
913 WORD wFlags,
914 ITypeInfo** ppTInfo,
915 DESCKIND* pDescKind,
916 BINDPTR* pBindPtr) = 0;
918 virtual HRESULT CALLBACK BindType(
919 LPOLESTR szName,
920 ULONG lHashVal,
921 ITypeInfo** ppTInfo,
922 ITypeComp** ppTComp) = 0;
924 } ICOM_COM_INTERFACE_ATTRIBUTE;
925 #else
926 typedef struct ITypeCompVtbl ITypeCompVtbl;
927 struct ITypeComp {
928 const ITypeCompVtbl* lpVtbl;
930 struct ITypeCompVtbl {
931 ICOM_MSVTABLE_COMPAT_FIELDS
933 /*** IUnknown methods ***/
934 HRESULT (CALLBACK *QueryInterface)(
935 ITypeComp* This,
936 REFIID riid,
937 void** ppvObject);
939 ULONG (CALLBACK *AddRef)(
940 ITypeComp* This);
942 ULONG (CALLBACK *Release)(
943 ITypeComp* This);
945 /*** ITypeComp methods ***/
946 HRESULT (CALLBACK *Bind)(
947 ITypeComp* This,
948 LPOLESTR szName,
949 ULONG lHashVal,
950 WORD wFlags,
951 ITypeInfo** ppTInfo,
952 DESCKIND* pDescKind,
953 BINDPTR* pBindPtr);
955 HRESULT (CALLBACK *BindType)(
956 ITypeComp* This,
957 LPOLESTR szName,
958 ULONG lHashVal,
959 ITypeInfo** ppTInfo,
960 ITypeComp** ppTComp);
964 #define ITypeComp_IMETHODS \
965 IUnknown_IMETHODS \
966 ICOM_METHOD6 (HRESULT,Bind,LPOLESTR,szName,ULONG,lHashVal,WORD,wFlags,ITypeInfo**,ppTInfo,DESCKIND*,pDescKind,BINDPTR*,pBindPtr) \
967 ICOM_METHOD4 (HRESULT,BindType,LPOLESTR,szName,ULONG,lHashVal,ITypeInfo**,ppTInfo,ITypeComp**,ppTComp)
969 /*** IUnknown methods ***/
970 #define ITypeComp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
971 #define ITypeComp_AddRef(p) (p)->lpVtbl->AddRef(p)
972 #define ITypeComp_Release(p) (p)->lpVtbl->Release(p)
973 /*** ITypeComp methods ***/
974 #define ITypeComp_Bind(p,a,b,c,d,e,f) (p)->lpVtbl->Bind(p,a,b,c,d,e,f)
975 #define ITypeComp_BindType(p,a,b,c,d) (p)->lpVtbl->BindType(p,a,b,c,d)
977 #endif
979 HRESULT CALLBACK ITypeComp_RemoteBind_Proxy(
980 ITypeComp* This,
981 LPOLESTR szName,
982 ULONG lHashVal,
983 WORD wFlags,
984 ITypeInfo** ppTInfo,
985 DESCKIND* pDescKind,
986 LPFUNCDESC* ppFuncDesc,
987 LPVARDESC* ppVarDesc,
988 ITypeComp** ppTypeComp,
989 CLEANLOCALSTORAGE* pDummy);
990 void __RPC_STUB ITypeComp_RemoteBind_Stub(
991 struct IRpcStubBuffer* This,
992 struct IRpcChannelBuffer* pRpcChannelBuffer,
993 PRPC_MESSAGE pRpcMessage,
994 DWORD* pdwStubPhase);
995 HRESULT CALLBACK ITypeComp_Bind_Proxy(
996 ITypeComp* This,
997 LPOLESTR szName,
998 ULONG lHashVal,
999 WORD wFlags,
1000 ITypeInfo** ppTInfo,
1001 DESCKIND* pDescKind,
1002 BINDPTR* pBindPtr);
1003 HRESULT __RPC_STUB ITypeComp_Bind_Stub(
1004 ITypeComp* This,
1005 LPOLESTR szName,
1006 ULONG lHashVal,
1007 WORD wFlags,
1008 ITypeInfo** ppTInfo,
1009 DESCKIND* pDescKind,
1010 LPFUNCDESC* ppFuncDesc,
1011 LPVARDESC* ppVarDesc,
1012 ITypeComp** ppTypeComp,
1013 CLEANLOCALSTORAGE* pDummy);
1014 HRESULT CALLBACK ITypeComp_RemoteBindType_Proxy(
1015 ITypeComp* This,
1016 LPOLESTR szName,
1017 ULONG lHashVal,
1018 ITypeInfo** ppTInfo);
1019 void __RPC_STUB ITypeComp_RemoteBindType_Stub(
1020 struct IRpcStubBuffer* This,
1021 struct IRpcChannelBuffer* pRpcChannelBuffer,
1022 PRPC_MESSAGE pRpcMessage,
1023 DWORD* pdwStubPhase);
1024 HRESULT CALLBACK ITypeComp_BindType_Proxy(
1025 ITypeComp* This,
1026 LPOLESTR szName,
1027 ULONG lHashVal,
1028 ITypeInfo** ppTInfo,
1029 ITypeComp** ppTComp);
1030 HRESULT __RPC_STUB ITypeComp_BindType_Stub(
1031 ITypeComp* This,
1032 LPOLESTR szName,
1033 ULONG lHashVal,
1034 ITypeInfo** ppTInfo);
1036 typedef ITypeInfo *LPTYPEINFO;
1038 /*****************************************************************************
1039 * ITypeInfo interface
1041 DEFINE_GUID(IID_ITypeInfo, 0x00020401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1042 #if defined(__cplusplus) && !defined(CINTERFACE)
1043 struct ITypeInfo: IUnknown {
1045 virtual HRESULT CALLBACK GetTypeAttr(
1046 TYPEATTR** ppTypeAttr) = 0;
1048 virtual HRESULT CALLBACK GetTypeComp(
1049 ITypeComp** ppTComp) = 0;
1051 virtual HRESULT CALLBACK GetFuncDesc(
1052 UINT index,
1053 FUNCDESC** ppFuncDesc) = 0;
1055 virtual HRESULT CALLBACK GetVarDesc(
1056 UINT index,
1057 VARDESC** ppVarDesc) = 0;
1059 virtual HRESULT CALLBACK GetNames(
1060 MEMBERID memid,
1061 BSTR* rgBstrNames,
1062 UINT cMaxNames,
1063 UINT* pcNames) = 0;
1065 virtual HRESULT CALLBACK GetRefTypeOfImplType(
1066 UINT index,
1067 HREFTYPE* pRefType) = 0;
1069 virtual HRESULT CALLBACK GetImplTypeFlags(
1070 UINT index,
1071 INT* pImplTypeFlags) = 0;
1073 virtual HRESULT CALLBACK GetIDsOfNames(
1074 LPOLESTR* rgszNames,
1075 UINT cNames,
1076 MEMBERID* pMemId) = 0;
1078 virtual HRESULT CALLBACK Invoke(
1079 PVOID pvInstance,
1080 MEMBERID memid,
1081 WORD wFlags,
1082 DISPPARAMS* pDispParams,
1083 VARIANT* pVarResult,
1084 EXCEPINFO* pExcepInfo,
1085 UINT* puArgErr) = 0;
1087 virtual HRESULT CALLBACK GetDocumentation(
1088 MEMBERID memid,
1089 BSTR* pBstrName,
1090 BSTR* pBstrDocString,
1091 DWORD* pdwHelpContext,
1092 BSTR* pBstrHelpFile) = 0;
1094 virtual HRESULT CALLBACK GetDllEntry(
1095 MEMBERID memid,
1096 INVOKEKIND invKind,
1097 BSTR* pBstrDllName,
1098 BSTR* pBstrName,
1099 WORD* pwOrdinal) = 0;
1101 virtual HRESULT CALLBACK GetRefTypeInfo(
1102 HREFTYPE hRefType,
1103 ITypeInfo** ppTInfo) = 0;
1105 virtual HRESULT CALLBACK AddressOfMember(
1106 MEMBERID memid,
1107 INVOKEKIND invKind,
1108 PVOID* ppv) = 0;
1110 virtual HRESULT CALLBACK CreateInstance(
1111 IUnknown* pUnkOuter,
1112 REFIID riid,
1113 PVOID* ppvObj) = 0;
1115 virtual HRESULT CALLBACK GetMops(
1116 MEMBERID memid,
1117 BSTR* pBstrMops) = 0;
1119 virtual HRESULT CALLBACK GetContainingTypeLib(
1120 ITypeLib** ppTLib,
1121 UINT* pIndex) = 0;
1123 virtual void CALLBACK ReleaseTypeAttr(
1124 TYPEATTR* pTypeAttr) = 0;
1126 virtual void CALLBACK ReleaseFuncDesc(
1127 FUNCDESC* pFuncDesc) = 0;
1129 virtual void CALLBACK ReleaseVarDesc(
1130 VARDESC* pVarDesc) = 0;
1132 } ICOM_COM_INTERFACE_ATTRIBUTE;
1133 #else
1134 typedef struct ITypeInfoVtbl ITypeInfoVtbl;
1135 struct ITypeInfo {
1136 const ITypeInfoVtbl* lpVtbl;
1138 struct ITypeInfoVtbl {
1139 ICOM_MSVTABLE_COMPAT_FIELDS
1141 /*** IUnknown methods ***/
1142 HRESULT (CALLBACK *QueryInterface)(
1143 ITypeInfo* This,
1144 REFIID riid,
1145 void** ppvObject);
1147 ULONG (CALLBACK *AddRef)(
1148 ITypeInfo* This);
1150 ULONG (CALLBACK *Release)(
1151 ITypeInfo* This);
1153 /*** ITypeInfo methods ***/
1154 HRESULT (CALLBACK *GetTypeAttr)(
1155 ITypeInfo* This,
1156 TYPEATTR** ppTypeAttr);
1158 HRESULT (CALLBACK *GetTypeComp)(
1159 ITypeInfo* This,
1160 ITypeComp** ppTComp);
1162 HRESULT (CALLBACK *GetFuncDesc)(
1163 ITypeInfo* This,
1164 UINT index,
1165 FUNCDESC** ppFuncDesc);
1167 HRESULT (CALLBACK *GetVarDesc)(
1168 ITypeInfo* This,
1169 UINT index,
1170 VARDESC** ppVarDesc);
1172 HRESULT (CALLBACK *GetNames)(
1173 ITypeInfo* This,
1174 MEMBERID memid,
1175 BSTR* rgBstrNames,
1176 UINT cMaxNames,
1177 UINT* pcNames);
1179 HRESULT (CALLBACK *GetRefTypeOfImplType)(
1180 ITypeInfo* This,
1181 UINT index,
1182 HREFTYPE* pRefType);
1184 HRESULT (CALLBACK *GetImplTypeFlags)(
1185 ITypeInfo* This,
1186 UINT index,
1187 INT* pImplTypeFlags);
1189 HRESULT (CALLBACK *GetIDsOfNames)(
1190 ITypeInfo* This,
1191 LPOLESTR* rgszNames,
1192 UINT cNames,
1193 MEMBERID* pMemId);
1195 HRESULT (CALLBACK *Invoke)(
1196 ITypeInfo* This,
1197 PVOID pvInstance,
1198 MEMBERID memid,
1199 WORD wFlags,
1200 DISPPARAMS* pDispParams,
1201 VARIANT* pVarResult,
1202 EXCEPINFO* pExcepInfo,
1203 UINT* puArgErr);
1205 HRESULT (CALLBACK *GetDocumentation)(
1206 ITypeInfo* This,
1207 MEMBERID memid,
1208 BSTR* pBstrName,
1209 BSTR* pBstrDocString,
1210 DWORD* pdwHelpContext,
1211 BSTR* pBstrHelpFile);
1213 HRESULT (CALLBACK *GetDllEntry)(
1214 ITypeInfo* This,
1215 MEMBERID memid,
1216 INVOKEKIND invKind,
1217 BSTR* pBstrDllName,
1218 BSTR* pBstrName,
1219 WORD* pwOrdinal);
1221 HRESULT (CALLBACK *GetRefTypeInfo)(
1222 ITypeInfo* This,
1223 HREFTYPE hRefType,
1224 ITypeInfo** ppTInfo);
1226 HRESULT (CALLBACK *AddressOfMember)(
1227 ITypeInfo* This,
1228 MEMBERID memid,
1229 INVOKEKIND invKind,
1230 PVOID* ppv);
1232 HRESULT (CALLBACK *CreateInstance)(
1233 ITypeInfo* This,
1234 IUnknown* pUnkOuter,
1235 REFIID riid,
1236 PVOID* ppvObj);
1238 HRESULT (CALLBACK *GetMops)(
1239 ITypeInfo* This,
1240 MEMBERID memid,
1241 BSTR* pBstrMops);
1243 HRESULT (CALLBACK *GetContainingTypeLib)(
1244 ITypeInfo* This,
1245 ITypeLib** ppTLib,
1246 UINT* pIndex);
1248 void (CALLBACK *ReleaseTypeAttr)(
1249 ITypeInfo* This,
1250 TYPEATTR* pTypeAttr);
1252 void (CALLBACK *ReleaseFuncDesc)(
1253 ITypeInfo* This,
1254 FUNCDESC* pFuncDesc);
1256 void (CALLBACK *ReleaseVarDesc)(
1257 ITypeInfo* This,
1258 VARDESC* pVarDesc);
1262 #define ITypeInfo_IMETHODS \
1263 IUnknown_IMETHODS \
1264 ICOM_METHOD1 (HRESULT,GetTypeAttr,TYPEATTR**,ppTypeAttr) \
1265 ICOM_METHOD1 (HRESULT,GetTypeComp,ITypeComp**,ppTComp) \
1266 ICOM_METHOD2 (HRESULT,GetFuncDesc,UINT,index,FUNCDESC**,ppFuncDesc) \
1267 ICOM_METHOD2 (HRESULT,GetVarDesc,UINT,index,VARDESC**,ppVarDesc) \
1268 ICOM_METHOD4 (HRESULT,GetNames,MEMBERID,memid,BSTR*,rgBstrNames,UINT,cMaxNames,UINT*,pcNames) \
1269 ICOM_METHOD2 (HRESULT,GetRefTypeOfImplType,UINT,index,HREFTYPE*,pRefType) \
1270 ICOM_METHOD2 (HRESULT,GetImplTypeFlags,UINT,index,INT*,pImplTypeFlags) \
1271 ICOM_METHOD3 (HRESULT,GetIDsOfNames,LPOLESTR*,rgszNames,UINT,cNames,MEMBERID*,pMemId) \
1272 ICOM_METHOD7 (HRESULT,Invoke,PVOID,pvInstance,MEMBERID,memid,WORD,wFlags,DISPPARAMS*,pDispParams,VARIANT*,pVarResult,EXCEPINFO*,pExcepInfo,UINT*,puArgErr) \
1273 ICOM_METHOD5 (HRESULT,GetDocumentation,MEMBERID,memid,BSTR*,pBstrName,BSTR*,pBstrDocString,DWORD*,pdwHelpContext,BSTR*,pBstrHelpFile) \
1274 ICOM_METHOD5 (HRESULT,GetDllEntry,MEMBERID,memid,INVOKEKIND,invKind,BSTR*,pBstrDllName,BSTR*,pBstrName,WORD*,pwOrdinal) \
1275 ICOM_METHOD2 (HRESULT,GetRefTypeInfo,HREFTYPE,hRefType,ITypeInfo**,ppTInfo) \
1276 ICOM_METHOD3 (HRESULT,AddressOfMember,MEMBERID,memid,INVOKEKIND,invKind,PVOID*,ppv) \
1277 ICOM_METHOD3 (HRESULT,CreateInstance,IUnknown*,pUnkOuter,REFIID,riid,PVOID*,ppvObj) \
1278 ICOM_METHOD2 (HRESULT,GetMops,MEMBERID,memid,BSTR*,pBstrMops) \
1279 ICOM_METHOD2 (HRESULT,GetContainingTypeLib,ITypeLib**,ppTLib,UINT*,pIndex) \
1280 ICOM_VMETHOD1(ReleaseTypeAttr,TYPEATTR*,pTypeAttr) \
1281 ICOM_VMETHOD1(ReleaseFuncDesc,FUNCDESC*,pFuncDesc) \
1282 ICOM_VMETHOD1(ReleaseVarDesc,VARDESC*,pVarDesc)
1284 /*** IUnknown methods ***/
1285 #define ITypeInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1286 #define ITypeInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
1287 #define ITypeInfo_Release(p) (p)->lpVtbl->Release(p)
1288 /*** ITypeInfo methods ***/
1289 #define ITypeInfo_GetTypeAttr(p,a) (p)->lpVtbl->GetTypeAttr(p,a)
1290 #define ITypeInfo_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
1291 #define ITypeInfo_GetFuncDesc(p,a,b) (p)->lpVtbl->GetFuncDesc(p,a,b)
1292 #define ITypeInfo_GetVarDesc(p,a,b) (p)->lpVtbl->GetVarDesc(p,a,b)
1293 #define ITypeInfo_GetNames(p,a,b,c,d) (p)->lpVtbl->GetNames(p,a,b,c,d)
1294 #define ITypeInfo_GetRefTypeOfImplType(p,a,b) (p)->lpVtbl->GetRefTypeOfImplType(p,a,b)
1295 #define ITypeInfo_GetImplTypeFlags(p,a,b) (p)->lpVtbl->GetImplTypeFlags(p,a,b)
1296 #define ITypeInfo_GetIDsOfNames(p,a,b,c) (p)->lpVtbl->GetIDsOfNames(p,a,b,c)
1297 #define ITypeInfo_Invoke(p,a,b,c,d,e,f,g) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g)
1298 #define ITypeInfo_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
1299 #define ITypeInfo_GetDllEntry(p,a,b,c,d,e) (p)->lpVtbl->GetDllEntry(p,a,b,c,d,e)
1300 #define ITypeInfo_GetRefTypeInfo(p,a,b) (p)->lpVtbl->GetRefTypeInfo(p,a,b)
1301 #define ITypeInfo_AddressOfMember(p,a,b,c) (p)->lpVtbl->AddressOfMember(p,a,b,c)
1302 #define ITypeInfo_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
1303 #define ITypeInfo_GetMops(p,a,b) (p)->lpVtbl->GetMops(p,a,b)
1304 #define ITypeInfo_GetContainingTypeLib(p,a,b) (p)->lpVtbl->GetContainingTypeLib(p,a,b)
1305 #define ITypeInfo_ReleaseTypeAttr(p,a) (p)->lpVtbl->ReleaseTypeAttr(p,a)
1306 #define ITypeInfo_ReleaseFuncDesc(p,a) (p)->lpVtbl->ReleaseFuncDesc(p,a)
1307 #define ITypeInfo_ReleaseVarDesc(p,a) (p)->lpVtbl->ReleaseVarDesc(p,a)
1309 #endif
1311 HRESULT CALLBACK ITypeInfo_RemoteGetTypeAttr_Proxy(
1312 ITypeInfo* This,
1313 LPTYPEATTR* ppTypeAttr,
1314 CLEANLOCALSTORAGE* pDummy);
1315 void __RPC_STUB ITypeInfo_RemoteGetTypeAttr_Stub(
1316 struct IRpcStubBuffer* This,
1317 struct IRpcChannelBuffer* pRpcChannelBuffer,
1318 PRPC_MESSAGE pRpcMessage,
1319 DWORD* pdwStubPhase);
1320 HRESULT CALLBACK ITypeInfo_GetTypeAttr_Proxy(
1321 ITypeInfo* This,
1322 TYPEATTR** ppTypeAttr);
1323 HRESULT __RPC_STUB ITypeInfo_GetTypeAttr_Stub(
1324 ITypeInfo* This,
1325 LPTYPEATTR* ppTypeAttr,
1326 CLEANLOCALSTORAGE* pDummy);
1327 HRESULT CALLBACK ITypeInfo_GetTypeComp_Proxy(
1328 ITypeInfo* This,
1329 ITypeComp** ppTComp);
1330 void __RPC_STUB ITypeInfo_GetTypeComp_Stub(
1331 struct IRpcStubBuffer* This,
1332 struct IRpcChannelBuffer* pRpcChannelBuffer,
1333 PRPC_MESSAGE pRpcMessage,
1334 DWORD* pdwStubPhase);
1335 HRESULT CALLBACK ITypeInfo_RemoteGetFuncDesc_Proxy(
1336 ITypeInfo* This,
1337 UINT index,
1338 LPFUNCDESC* ppFuncDesc,
1339 CLEANLOCALSTORAGE* pDummy);
1340 void __RPC_STUB ITypeInfo_RemoteGetFuncDesc_Stub(
1341 struct IRpcStubBuffer* This,
1342 struct IRpcChannelBuffer* pRpcChannelBuffer,
1343 PRPC_MESSAGE pRpcMessage,
1344 DWORD* pdwStubPhase);
1345 HRESULT CALLBACK ITypeInfo_GetFuncDesc_Proxy(
1346 ITypeInfo* This,
1347 UINT index,
1348 FUNCDESC** ppFuncDesc);
1349 HRESULT __RPC_STUB ITypeInfo_GetFuncDesc_Stub(
1350 ITypeInfo* This,
1351 UINT index,
1352 LPFUNCDESC* ppFuncDesc,
1353 CLEANLOCALSTORAGE* pDummy);
1354 HRESULT CALLBACK ITypeInfo_RemoteGetVarDesc_Proxy(
1355 ITypeInfo* This,
1356 UINT index,
1357 LPVARDESC* ppVarDesc,
1358 CLEANLOCALSTORAGE* pDummy);
1359 void __RPC_STUB ITypeInfo_RemoteGetVarDesc_Stub(
1360 struct IRpcStubBuffer* This,
1361 struct IRpcChannelBuffer* pRpcChannelBuffer,
1362 PRPC_MESSAGE pRpcMessage,
1363 DWORD* pdwStubPhase);
1364 HRESULT CALLBACK ITypeInfo_GetVarDesc_Proxy(
1365 ITypeInfo* This,
1366 UINT index,
1367 VARDESC** ppVarDesc);
1368 HRESULT __RPC_STUB ITypeInfo_GetVarDesc_Stub(
1369 ITypeInfo* This,
1370 UINT index,
1371 LPVARDESC* ppVarDesc,
1372 CLEANLOCALSTORAGE* pDummy);
1373 HRESULT CALLBACK ITypeInfo_RemoteGetNames_Proxy(
1374 ITypeInfo* This,
1375 MEMBERID memid,
1376 BSTR* rgBstrNames,
1377 UINT cMaxNames,
1378 UINT* pcNames);
1379 void __RPC_STUB ITypeInfo_RemoteGetNames_Stub(
1380 struct IRpcStubBuffer* This,
1381 struct IRpcChannelBuffer* pRpcChannelBuffer,
1382 PRPC_MESSAGE pRpcMessage,
1383 DWORD* pdwStubPhase);
1384 HRESULT CALLBACK ITypeInfo_GetNames_Proxy(
1385 ITypeInfo* This,
1386 MEMBERID memid,
1387 BSTR* rgBstrNames,
1388 UINT cMaxNames,
1389 UINT* pcNames);
1390 HRESULT __RPC_STUB ITypeInfo_GetNames_Stub(
1391 ITypeInfo* This,
1392 MEMBERID memid,
1393 BSTR* rgBstrNames,
1394 UINT cMaxNames,
1395 UINT* pcNames);
1396 HRESULT CALLBACK ITypeInfo_GetRefTypeOfImplType_Proxy(
1397 ITypeInfo* This,
1398 UINT index,
1399 HREFTYPE* pRefType);
1400 void __RPC_STUB ITypeInfo_GetRefTypeOfImplType_Stub(
1401 struct IRpcStubBuffer* This,
1402 struct IRpcChannelBuffer* pRpcChannelBuffer,
1403 PRPC_MESSAGE pRpcMessage,
1404 DWORD* pdwStubPhase);
1405 HRESULT CALLBACK ITypeInfo_GetImplTypeFlags_Proxy(
1406 ITypeInfo* This,
1407 UINT index,
1408 INT* pImplTypeFlags);
1409 void __RPC_STUB ITypeInfo_GetImplTypeFlags_Stub(
1410 struct IRpcStubBuffer* This,
1411 struct IRpcChannelBuffer* pRpcChannelBuffer,
1412 PRPC_MESSAGE pRpcMessage,
1413 DWORD* pdwStubPhase);
1414 HRESULT CALLBACK ITypeInfo_LocalGetIDsOfNames_Proxy(
1415 ITypeInfo* This);
1416 void __RPC_STUB ITypeInfo_LocalGetIDsOfNames_Stub(
1417 struct IRpcStubBuffer* This,
1418 struct IRpcChannelBuffer* pRpcChannelBuffer,
1419 PRPC_MESSAGE pRpcMessage,
1420 DWORD* pdwStubPhase);
1421 HRESULT CALLBACK ITypeInfo_GetIDsOfNames_Proxy(
1422 ITypeInfo* This,
1423 LPOLESTR* rgszNames,
1424 UINT cNames,
1425 MEMBERID* pMemId);
1426 HRESULT __RPC_STUB ITypeInfo_GetIDsOfNames_Stub(
1427 ITypeInfo* This);
1428 HRESULT CALLBACK ITypeInfo_LocalInvoke_Proxy(
1429 ITypeInfo* This);
1430 void __RPC_STUB ITypeInfo_LocalInvoke_Stub(
1431 struct IRpcStubBuffer* This,
1432 struct IRpcChannelBuffer* pRpcChannelBuffer,
1433 PRPC_MESSAGE pRpcMessage,
1434 DWORD* pdwStubPhase);
1435 HRESULT CALLBACK ITypeInfo_Invoke_Proxy(
1436 ITypeInfo* This,
1437 PVOID pvInstance,
1438 MEMBERID memid,
1439 WORD wFlags,
1440 DISPPARAMS* pDispParams,
1441 VARIANT* pVarResult,
1442 EXCEPINFO* pExcepInfo,
1443 UINT* puArgErr);
1444 HRESULT __RPC_STUB ITypeInfo_Invoke_Stub(
1445 ITypeInfo* This);
1446 HRESULT CALLBACK ITypeInfo_RemoteGetDocumentation_Proxy(
1447 ITypeInfo* This,
1448 MEMBERID memid,
1449 DWORD refPtrFlags,
1450 BSTR* pBstrName,
1451 BSTR* pBstrDocString,
1452 DWORD* pdwHelpContext,
1453 BSTR* pBstrHelpFile);
1454 void __RPC_STUB ITypeInfo_RemoteGetDocumentation_Stub(
1455 struct IRpcStubBuffer* This,
1456 struct IRpcChannelBuffer* pRpcChannelBuffer,
1457 PRPC_MESSAGE pRpcMessage,
1458 DWORD* pdwStubPhase);
1459 HRESULT CALLBACK ITypeInfo_GetDocumentation_Proxy(
1460 ITypeInfo* This,
1461 MEMBERID memid,
1462 BSTR* pBstrName,
1463 BSTR* pBstrDocString,
1464 DWORD* pdwHelpContext,
1465 BSTR* pBstrHelpFile);
1466 HRESULT __RPC_STUB ITypeInfo_GetDocumentation_Stub(
1467 ITypeInfo* This,
1468 MEMBERID memid,
1469 DWORD refPtrFlags,
1470 BSTR* pBstrName,
1471 BSTR* pBstrDocString,
1472 DWORD* pdwHelpContext,
1473 BSTR* pBstrHelpFile);
1474 HRESULT CALLBACK ITypeInfo_RemoteGetDllEntry_Proxy(
1475 ITypeInfo* This,
1476 MEMBERID memid,
1477 INVOKEKIND invKind,
1478 DWORD refPtrFlags,
1479 BSTR* pBstrDllName,
1480 BSTR* pBstrName,
1481 WORD* pwOrdinal);
1482 void __RPC_STUB ITypeInfo_RemoteGetDllEntry_Stub(
1483 struct IRpcStubBuffer* This,
1484 struct IRpcChannelBuffer* pRpcChannelBuffer,
1485 PRPC_MESSAGE pRpcMessage,
1486 DWORD* pdwStubPhase);
1487 HRESULT CALLBACK ITypeInfo_GetDllEntry_Proxy(
1488 ITypeInfo* This,
1489 MEMBERID memid,
1490 INVOKEKIND invKind,
1491 BSTR* pBstrDllName,
1492 BSTR* pBstrName,
1493 WORD* pwOrdinal);
1494 HRESULT __RPC_STUB ITypeInfo_GetDllEntry_Stub(
1495 ITypeInfo* This,
1496 MEMBERID memid,
1497 INVOKEKIND invKind,
1498 DWORD refPtrFlags,
1499 BSTR* pBstrDllName,
1500 BSTR* pBstrName,
1501 WORD* pwOrdinal);
1502 HRESULT CALLBACK ITypeInfo_GetRefTypeInfo_Proxy(
1503 ITypeInfo* This,
1504 HREFTYPE hRefType,
1505 ITypeInfo** ppTInfo);
1506 void __RPC_STUB ITypeInfo_GetRefTypeInfo_Stub(
1507 struct IRpcStubBuffer* This,
1508 struct IRpcChannelBuffer* pRpcChannelBuffer,
1509 PRPC_MESSAGE pRpcMessage,
1510 DWORD* pdwStubPhase);
1511 HRESULT CALLBACK ITypeInfo_LocalAddressOfMember_Proxy(
1512 ITypeInfo* This);
1513 void __RPC_STUB ITypeInfo_LocalAddressOfMember_Stub(
1514 struct IRpcStubBuffer* This,
1515 struct IRpcChannelBuffer* pRpcChannelBuffer,
1516 PRPC_MESSAGE pRpcMessage,
1517 DWORD* pdwStubPhase);
1518 HRESULT CALLBACK ITypeInfo_AddressOfMember_Proxy(
1519 ITypeInfo* This,
1520 MEMBERID memid,
1521 INVOKEKIND invKind,
1522 PVOID* ppv);
1523 HRESULT __RPC_STUB ITypeInfo_AddressOfMember_Stub(
1524 ITypeInfo* This);
1525 HRESULT CALLBACK ITypeInfo_RemoteCreateInstance_Proxy(
1526 ITypeInfo* This,
1527 REFIID riid,
1528 IUnknown** ppvObj);
1529 void __RPC_STUB ITypeInfo_RemoteCreateInstance_Stub(
1530 struct IRpcStubBuffer* This,
1531 struct IRpcChannelBuffer* pRpcChannelBuffer,
1532 PRPC_MESSAGE pRpcMessage,
1533 DWORD* pdwStubPhase);
1534 HRESULT CALLBACK ITypeInfo_CreateInstance_Proxy(
1535 ITypeInfo* This,
1536 IUnknown* pUnkOuter,
1537 REFIID riid,
1538 PVOID* ppvObj);
1539 HRESULT __RPC_STUB ITypeInfo_CreateInstance_Stub(
1540 ITypeInfo* This,
1541 REFIID riid,
1542 IUnknown** ppvObj);
1543 HRESULT CALLBACK ITypeInfo_GetMops_Proxy(
1544 ITypeInfo* This,
1545 MEMBERID memid,
1546 BSTR* pBstrMops);
1547 void __RPC_STUB ITypeInfo_GetMops_Stub(
1548 struct IRpcStubBuffer* This,
1549 struct IRpcChannelBuffer* pRpcChannelBuffer,
1550 PRPC_MESSAGE pRpcMessage,
1551 DWORD* pdwStubPhase);
1552 HRESULT CALLBACK ITypeInfo_RemoteGetContainingTypeLib_Proxy(
1553 ITypeInfo* This,
1554 ITypeLib** ppTLib,
1555 UINT* pIndex);
1556 void __RPC_STUB ITypeInfo_RemoteGetContainingTypeLib_Stub(
1557 struct IRpcStubBuffer* This,
1558 struct IRpcChannelBuffer* pRpcChannelBuffer,
1559 PRPC_MESSAGE pRpcMessage,
1560 DWORD* pdwStubPhase);
1561 HRESULT CALLBACK ITypeInfo_GetContainingTypeLib_Proxy(
1562 ITypeInfo* This,
1563 ITypeLib** ppTLib,
1564 UINT* pIndex);
1565 HRESULT __RPC_STUB ITypeInfo_GetContainingTypeLib_Stub(
1566 ITypeInfo* This,
1567 ITypeLib** ppTLib,
1568 UINT* pIndex);
1569 HRESULT CALLBACK ITypeInfo_LocalReleaseTypeAttr_Proxy(
1570 ITypeInfo* This);
1571 void __RPC_STUB ITypeInfo_LocalReleaseTypeAttr_Stub(
1572 struct IRpcStubBuffer* This,
1573 struct IRpcChannelBuffer* pRpcChannelBuffer,
1574 PRPC_MESSAGE pRpcMessage,
1575 DWORD* pdwStubPhase);
1576 void CALLBACK ITypeInfo_ReleaseTypeAttr_Proxy(
1577 ITypeInfo* This,
1578 TYPEATTR* pTypeAttr);
1579 HRESULT __RPC_STUB ITypeInfo_ReleaseTypeAttr_Stub(
1580 ITypeInfo* This);
1581 HRESULT CALLBACK ITypeInfo_LocalReleaseFuncDesc_Proxy(
1582 ITypeInfo* This);
1583 void __RPC_STUB ITypeInfo_LocalReleaseFuncDesc_Stub(
1584 struct IRpcStubBuffer* This,
1585 struct IRpcChannelBuffer* pRpcChannelBuffer,
1586 PRPC_MESSAGE pRpcMessage,
1587 DWORD* pdwStubPhase);
1588 void CALLBACK ITypeInfo_ReleaseFuncDesc_Proxy(
1589 ITypeInfo* This,
1590 FUNCDESC* pFuncDesc);
1591 HRESULT __RPC_STUB ITypeInfo_ReleaseFuncDesc_Stub(
1592 ITypeInfo* This);
1593 HRESULT CALLBACK ITypeInfo_LocalReleaseVarDesc_Proxy(
1594 ITypeInfo* This);
1595 void __RPC_STUB ITypeInfo_LocalReleaseVarDesc_Stub(
1596 struct IRpcStubBuffer* This,
1597 struct IRpcChannelBuffer* pRpcChannelBuffer,
1598 PRPC_MESSAGE pRpcMessage,
1599 DWORD* pdwStubPhase);
1600 void CALLBACK ITypeInfo_ReleaseVarDesc_Proxy(
1601 ITypeInfo* This,
1602 VARDESC* pVarDesc);
1603 HRESULT __RPC_STUB ITypeInfo_ReleaseVarDesc_Stub(
1604 ITypeInfo* This);
1606 typedef struct ITypeInfo2 ITypeInfo2;
1607 typedef ITypeInfo2 *LPTYPEINFO2;
1609 /*****************************************************************************
1610 * ITypeInfo2 interface
1612 DEFINE_GUID(IID_ITypeInfo2, 0x00020412, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1613 #if defined(__cplusplus) && !defined(CINTERFACE)
1614 struct ITypeInfo2: ITypeInfo {
1616 virtual HRESULT CALLBACK GetTypeKind(
1617 TYPEKIND* pTypeKind) = 0;
1619 virtual HRESULT CALLBACK GetTypeFlags(
1620 ULONG* pTypeFlags) = 0;
1622 virtual HRESULT CALLBACK GetFuncIndexOfMemId(
1623 MEMBERID memid,
1624 INVOKEKIND invKind,
1625 UINT* pFuncIndex) = 0;
1627 virtual HRESULT CALLBACK GetVarIndexOfMemId(
1628 MEMBERID memid,
1629 UINT* pVarIndex) = 0;
1631 virtual HRESULT CALLBACK GetCustData(
1632 REFGUID guid,
1633 VARIANT* pVarVal) = 0;
1635 virtual HRESULT CALLBACK GetFuncCustData(
1636 UINT index,
1637 REFGUID guid,
1638 VARIANT* pVarVal) = 0;
1640 virtual HRESULT CALLBACK GetParamCustData(
1641 UINT indexFunc,
1642 UINT indexParam,
1643 REFGUID guid,
1644 VARIANT* pVarVal) = 0;
1646 virtual HRESULT CALLBACK GetVarCustData(
1647 UINT index,
1648 REFGUID guid,
1649 VARIANT* pVarVal) = 0;
1651 virtual HRESULT CALLBACK GetImplTypeCustData(
1652 UINT index,
1653 REFGUID guid,
1654 VARIANT* pVarVal) = 0;
1656 virtual HRESULT CALLBACK GetDocumentation2(
1657 MEMBERID memid,
1658 LCID lcid,
1659 BSTR* pbstrHelpString,
1660 DWORD* pdwHelpStringContext,
1661 BSTR* pbstrHelpStringDll) = 0;
1663 virtual HRESULT CALLBACK GetAllCustData(
1664 CUSTDATA* pCustData) = 0;
1666 virtual HRESULT CALLBACK GetAllFuncCustData(
1667 UINT index,
1668 CUSTDATA* pCustData) = 0;
1670 virtual HRESULT CALLBACK GetAllParamCustData(
1671 UINT indexFunc,
1672 UINT indexParam,
1673 CUSTDATA* pCustData) = 0;
1675 virtual HRESULT CALLBACK GetAllVarCustData(
1676 UINT index,
1677 CUSTDATA* pCustData) = 0;
1679 virtual HRESULT CALLBACK GetAllImplTypeCustData(
1680 UINT index,
1681 CUSTDATA* pCustData) = 0;
1683 } ICOM_COM_INTERFACE_ATTRIBUTE;
1684 #else
1685 typedef struct ITypeInfo2Vtbl ITypeInfo2Vtbl;
1686 struct ITypeInfo2 {
1687 const ITypeInfo2Vtbl* lpVtbl;
1689 struct ITypeInfo2Vtbl {
1690 ICOM_MSVTABLE_COMPAT_FIELDS
1692 /*** IUnknown methods ***/
1693 HRESULT (CALLBACK *QueryInterface)(
1694 ITypeInfo2* This,
1695 REFIID riid,
1696 void** ppvObject);
1698 ULONG (CALLBACK *AddRef)(
1699 ITypeInfo2* This);
1701 ULONG (CALLBACK *Release)(
1702 ITypeInfo2* This);
1704 /*** ITypeInfo methods ***/
1705 HRESULT (CALLBACK *GetTypeAttr)(
1706 ITypeInfo2* This,
1707 TYPEATTR** ppTypeAttr);
1709 HRESULT (CALLBACK *GetTypeComp)(
1710 ITypeInfo2* This,
1711 ITypeComp** ppTComp);
1713 HRESULT (CALLBACK *GetFuncDesc)(
1714 ITypeInfo2* This,
1715 UINT index,
1716 FUNCDESC** ppFuncDesc);
1718 HRESULT (CALLBACK *GetVarDesc)(
1719 ITypeInfo2* This,
1720 UINT index,
1721 VARDESC** ppVarDesc);
1723 HRESULT (CALLBACK *GetNames)(
1724 ITypeInfo2* This,
1725 MEMBERID memid,
1726 BSTR* rgBstrNames,
1727 UINT cMaxNames,
1728 UINT* pcNames);
1730 HRESULT (CALLBACK *GetRefTypeOfImplType)(
1731 ITypeInfo2* This,
1732 UINT index,
1733 HREFTYPE* pRefType);
1735 HRESULT (CALLBACK *GetImplTypeFlags)(
1736 ITypeInfo2* This,
1737 UINT index,
1738 INT* pImplTypeFlags);
1740 HRESULT (CALLBACK *GetIDsOfNames)(
1741 ITypeInfo2* This,
1742 LPOLESTR* rgszNames,
1743 UINT cNames,
1744 MEMBERID* pMemId);
1746 HRESULT (CALLBACK *Invoke)(
1747 ITypeInfo2* This,
1748 PVOID pvInstance,
1749 MEMBERID memid,
1750 WORD wFlags,
1751 DISPPARAMS* pDispParams,
1752 VARIANT* pVarResult,
1753 EXCEPINFO* pExcepInfo,
1754 UINT* puArgErr);
1756 HRESULT (CALLBACK *GetDocumentation)(
1757 ITypeInfo2* This,
1758 MEMBERID memid,
1759 BSTR* pBstrName,
1760 BSTR* pBstrDocString,
1761 DWORD* pdwHelpContext,
1762 BSTR* pBstrHelpFile);
1764 HRESULT (CALLBACK *GetDllEntry)(
1765 ITypeInfo2* This,
1766 MEMBERID memid,
1767 INVOKEKIND invKind,
1768 BSTR* pBstrDllName,
1769 BSTR* pBstrName,
1770 WORD* pwOrdinal);
1772 HRESULT (CALLBACK *GetRefTypeInfo)(
1773 ITypeInfo2* This,
1774 HREFTYPE hRefType,
1775 ITypeInfo** ppTInfo);
1777 HRESULT (CALLBACK *AddressOfMember)(
1778 ITypeInfo2* This,
1779 MEMBERID memid,
1780 INVOKEKIND invKind,
1781 PVOID* ppv);
1783 HRESULT (CALLBACK *CreateInstance)(
1784 ITypeInfo2* This,
1785 IUnknown* pUnkOuter,
1786 REFIID riid,
1787 PVOID* ppvObj);
1789 HRESULT (CALLBACK *GetMops)(
1790 ITypeInfo2* This,
1791 MEMBERID memid,
1792 BSTR* pBstrMops);
1794 HRESULT (CALLBACK *GetContainingTypeLib)(
1795 ITypeInfo2* This,
1796 ITypeLib** ppTLib,
1797 UINT* pIndex);
1799 void (CALLBACK *ReleaseTypeAttr)(
1800 ITypeInfo2* This,
1801 TYPEATTR* pTypeAttr);
1803 void (CALLBACK *ReleaseFuncDesc)(
1804 ITypeInfo2* This,
1805 FUNCDESC* pFuncDesc);
1807 void (CALLBACK *ReleaseVarDesc)(
1808 ITypeInfo2* This,
1809 VARDESC* pVarDesc);
1811 /*** ITypeInfo2 methods ***/
1812 HRESULT (CALLBACK *GetTypeKind)(
1813 ITypeInfo2* This,
1814 TYPEKIND* pTypeKind);
1816 HRESULT (CALLBACK *GetTypeFlags)(
1817 ITypeInfo2* This,
1818 ULONG* pTypeFlags);
1820 HRESULT (CALLBACK *GetFuncIndexOfMemId)(
1821 ITypeInfo2* This,
1822 MEMBERID memid,
1823 INVOKEKIND invKind,
1824 UINT* pFuncIndex);
1826 HRESULT (CALLBACK *GetVarIndexOfMemId)(
1827 ITypeInfo2* This,
1828 MEMBERID memid,
1829 UINT* pVarIndex);
1831 HRESULT (CALLBACK *GetCustData)(
1832 ITypeInfo2* This,
1833 REFGUID guid,
1834 VARIANT* pVarVal);
1836 HRESULT (CALLBACK *GetFuncCustData)(
1837 ITypeInfo2* This,
1838 UINT index,
1839 REFGUID guid,
1840 VARIANT* pVarVal);
1842 HRESULT (CALLBACK *GetParamCustData)(
1843 ITypeInfo2* This,
1844 UINT indexFunc,
1845 UINT indexParam,
1846 REFGUID guid,
1847 VARIANT* pVarVal);
1849 HRESULT (CALLBACK *GetVarCustData)(
1850 ITypeInfo2* This,
1851 UINT index,
1852 REFGUID guid,
1853 VARIANT* pVarVal);
1855 HRESULT (CALLBACK *GetImplTypeCustData)(
1856 ITypeInfo2* This,
1857 UINT index,
1858 REFGUID guid,
1859 VARIANT* pVarVal);
1861 HRESULT (CALLBACK *GetDocumentation2)(
1862 ITypeInfo2* This,
1863 MEMBERID memid,
1864 LCID lcid,
1865 BSTR* pbstrHelpString,
1866 DWORD* pdwHelpStringContext,
1867 BSTR* pbstrHelpStringDll);
1869 HRESULT (CALLBACK *GetAllCustData)(
1870 ITypeInfo2* This,
1871 CUSTDATA* pCustData);
1873 HRESULT (CALLBACK *GetAllFuncCustData)(
1874 ITypeInfo2* This,
1875 UINT index,
1876 CUSTDATA* pCustData);
1878 HRESULT (CALLBACK *GetAllParamCustData)(
1879 ITypeInfo2* This,
1880 UINT indexFunc,
1881 UINT indexParam,
1882 CUSTDATA* pCustData);
1884 HRESULT (CALLBACK *GetAllVarCustData)(
1885 ITypeInfo2* This,
1886 UINT index,
1887 CUSTDATA* pCustData);
1889 HRESULT (CALLBACK *GetAllImplTypeCustData)(
1890 ITypeInfo2* This,
1891 UINT index,
1892 CUSTDATA* pCustData);
1896 #define ITypeInfo2_IMETHODS \
1897 ITypeInfo_IMETHODS \
1898 ICOM_METHOD1 (HRESULT,GetTypeKind,TYPEKIND*,pTypeKind) \
1899 ICOM_METHOD1 (HRESULT,GetTypeFlags,ULONG*,pTypeFlags) \
1900 ICOM_METHOD3 (HRESULT,GetFuncIndexOfMemId,MEMBERID,memid,INVOKEKIND,invKind,UINT*,pFuncIndex) \
1901 ICOM_METHOD2 (HRESULT,GetVarIndexOfMemId,MEMBERID,memid,UINT*,pVarIndex) \
1902 ICOM_METHOD2 (HRESULT,GetCustData,REFGUID,guid,VARIANT*,pVarVal) \
1903 ICOM_METHOD3 (HRESULT,GetFuncCustData,UINT,index,REFGUID,guid,VARIANT*,pVarVal) \
1904 ICOM_METHOD4 (HRESULT,GetParamCustData,UINT,indexFunc,UINT,indexParam,REFGUID,guid,VARIANT*,pVarVal) \
1905 ICOM_METHOD3 (HRESULT,GetVarCustData,UINT,index,REFGUID,guid,VARIANT*,pVarVal) \
1906 ICOM_METHOD3 (HRESULT,GetImplTypeCustData,UINT,index,REFGUID,guid,VARIANT*,pVarVal) \
1907 ICOM_METHOD5 (HRESULT,GetDocumentation2,MEMBERID,memid,LCID,lcid,BSTR*,pbstrHelpString,DWORD*,pdwHelpStringContext,BSTR*,pbstrHelpStringDll) \
1908 ICOM_METHOD1 (HRESULT,GetAllCustData,CUSTDATA*,pCustData) \
1909 ICOM_METHOD2 (HRESULT,GetAllFuncCustData,UINT,index,CUSTDATA*,pCustData) \
1910 ICOM_METHOD3 (HRESULT,GetAllParamCustData,UINT,indexFunc,UINT,indexParam,CUSTDATA*,pCustData) \
1911 ICOM_METHOD2 (HRESULT,GetAllVarCustData,UINT,index,CUSTDATA*,pCustData) \
1912 ICOM_METHOD2 (HRESULT,GetAllImplTypeCustData,UINT,index,CUSTDATA*,pCustData)
1914 /*** IUnknown methods ***/
1915 #define ITypeInfo2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1916 #define ITypeInfo2_AddRef(p) (p)->lpVtbl->AddRef(p)
1917 #define ITypeInfo2_Release(p) (p)->lpVtbl->Release(p)
1918 /*** ITypeInfo methods ***/
1919 #define ITypeInfo2_GetTypeAttr(p,a) (p)->lpVtbl->GetTypeAttr(p,a)
1920 #define ITypeInfo2_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
1921 #define ITypeInfo2_GetFuncDesc(p,a,b) (p)->lpVtbl->GetFuncDesc(p,a,b)
1922 #define ITypeInfo2_GetVarDesc(p,a,b) (p)->lpVtbl->GetVarDesc(p,a,b)
1923 #define ITypeInfo2_GetNames(p,a,b,c,d) (p)->lpVtbl->GetNames(p,a,b,c,d)
1924 #define ITypeInfo2_GetRefTypeOfImplType(p,a,b) (p)->lpVtbl->GetRefTypeOfImplType(p,a,b)
1925 #define ITypeInfo2_GetImplTypeFlags(p,a,b) (p)->lpVtbl->GetImplTypeFlags(p,a,b)
1926 #define ITypeInfo2_GetIDsOfNames(p,a,b,c) (p)->lpVtbl->GetIDsOfNames(p,a,b,c)
1927 #define ITypeInfo2_Invoke(p,a,b,c,d,e,f,g) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g)
1928 #define ITypeInfo2_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
1929 #define ITypeInfo2_GetDllEntry(p,a,b,c,d,e) (p)->lpVtbl->GetDllEntry(p,a,b,c,d,e)
1930 #define ITypeInfo2_GetRefTypeInfo(p,a,b) (p)->lpVtbl->GetRefTypeInfo(p,a,b)
1931 #define ITypeInfo2_AddressOfMember(p,a,b,c) (p)->lpVtbl->AddressOfMember(p,a,b,c)
1932 #define ITypeInfo2_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
1933 #define ITypeInfo2_GetMops(p,a,b) (p)->lpVtbl->GetMops(p,a,b)
1934 #define ITypeInfo2_GetContainingTypeLib(p,a,b) (p)->lpVtbl->GetContainingTypeLib(p,a,b)
1935 #define ITypeInfo2_ReleaseTypeAttr(p,a) (p)->lpVtbl->ReleaseTypeAttr(p,a)
1936 #define ITypeInfo2_ReleaseFuncDesc(p,a) (p)->lpVtbl->ReleaseFuncDesc(p,a)
1937 #define ITypeInfo2_ReleaseVarDesc(p,a) (p)->lpVtbl->ReleaseVarDesc(p,a)
1938 /*** ITypeInfo2 methods ***/
1939 #define ITypeInfo2_GetTypeKind(p,a) (p)->lpVtbl->GetTypeKind(p,a)
1940 #define ITypeInfo2_GetTypeFlags(p,a) (p)->lpVtbl->GetTypeFlags(p,a)
1941 #define ITypeInfo2_GetFuncIndexOfMemId(p,a,b,c) (p)->lpVtbl->GetFuncIndexOfMemId(p,a,b,c)
1942 #define ITypeInfo2_GetVarIndexOfMemId(p,a,b) (p)->lpVtbl->GetVarIndexOfMemId(p,a,b)
1943 #define ITypeInfo2_GetCustData(p,a,b) (p)->lpVtbl->GetCustData(p,a,b)
1944 #define ITypeInfo2_GetFuncCustData(p,a,b,c) (p)->lpVtbl->GetFuncCustData(p,a,b,c)
1945 #define ITypeInfo2_GetParamCustData(p,a,b,c,d) (p)->lpVtbl->GetParamCustData(p,a,b,c,d)
1946 #define ITypeInfo2_GetVarCustData(p,a,b,c) (p)->lpVtbl->GetVarCustData(p,a,b,c)
1947 #define ITypeInfo2_GetImplTypeCustData(p,a,b,c) (p)->lpVtbl->GetImplTypeCustData(p,a,b,c)
1948 #define ITypeInfo2_GetDocumentation2(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation2(p,a,b,c,d,e)
1949 #define ITypeInfo2_GetAllCustData(p,a) (p)->lpVtbl->GetAllCustData(p,a)
1950 #define ITypeInfo2_GetAllFuncCustData(p,a,b) (p)->lpVtbl->GetAllFuncCustData(p,a,b)
1951 #define ITypeInfo2_GetAllParamCustData(p,a,b,c) (p)->lpVtbl->GetAllParamCustData(p,a,b,c)
1952 #define ITypeInfo2_GetAllVarCustData(p,a,b) (p)->lpVtbl->GetAllVarCustData(p,a,b)
1953 #define ITypeInfo2_GetAllImplTypeCustData(p,a,b) (p)->lpVtbl->GetAllImplTypeCustData(p,a,b)
1955 #endif
1957 HRESULT CALLBACK ITypeInfo2_GetTypeKind_Proxy(
1958 ITypeInfo2* This,
1959 TYPEKIND* pTypeKind);
1960 void __RPC_STUB ITypeInfo2_GetTypeKind_Stub(
1961 struct IRpcStubBuffer* This,
1962 struct IRpcChannelBuffer* pRpcChannelBuffer,
1963 PRPC_MESSAGE pRpcMessage,
1964 DWORD* pdwStubPhase);
1965 HRESULT CALLBACK ITypeInfo2_GetTypeFlags_Proxy(
1966 ITypeInfo2* This,
1967 ULONG* pTypeFlags);
1968 void __RPC_STUB ITypeInfo2_GetTypeFlags_Stub(
1969 struct IRpcStubBuffer* This,
1970 struct IRpcChannelBuffer* pRpcChannelBuffer,
1971 PRPC_MESSAGE pRpcMessage,
1972 DWORD* pdwStubPhase);
1973 HRESULT CALLBACK ITypeInfo2_GetFuncIndexOfMemId_Proxy(
1974 ITypeInfo2* This,
1975 MEMBERID memid,
1976 INVOKEKIND invKind,
1977 UINT* pFuncIndex);
1978 void __RPC_STUB ITypeInfo2_GetFuncIndexOfMemId_Stub(
1979 struct IRpcStubBuffer* This,
1980 struct IRpcChannelBuffer* pRpcChannelBuffer,
1981 PRPC_MESSAGE pRpcMessage,
1982 DWORD* pdwStubPhase);
1983 HRESULT CALLBACK ITypeInfo2_GetVarIndexOfMemId_Proxy(
1984 ITypeInfo2* This,
1985 MEMBERID memid,
1986 UINT* pVarIndex);
1987 void __RPC_STUB ITypeInfo2_GetVarIndexOfMemId_Stub(
1988 struct IRpcStubBuffer* This,
1989 struct IRpcChannelBuffer* pRpcChannelBuffer,
1990 PRPC_MESSAGE pRpcMessage,
1991 DWORD* pdwStubPhase);
1992 HRESULT CALLBACK ITypeInfo2_GetCustData_Proxy(
1993 ITypeInfo2* This,
1994 REFGUID guid,
1995 VARIANT* pVarVal);
1996 void __RPC_STUB ITypeInfo2_GetCustData_Stub(
1997 struct IRpcStubBuffer* This,
1998 struct IRpcChannelBuffer* pRpcChannelBuffer,
1999 PRPC_MESSAGE pRpcMessage,
2000 DWORD* pdwStubPhase);
2001 HRESULT CALLBACK ITypeInfo2_GetFuncCustData_Proxy(
2002 ITypeInfo2* This,
2003 UINT index,
2004 REFGUID guid,
2005 VARIANT* pVarVal);
2006 void __RPC_STUB ITypeInfo2_GetFuncCustData_Stub(
2007 struct IRpcStubBuffer* This,
2008 struct IRpcChannelBuffer* pRpcChannelBuffer,
2009 PRPC_MESSAGE pRpcMessage,
2010 DWORD* pdwStubPhase);
2011 HRESULT CALLBACK ITypeInfo2_GetParamCustData_Proxy(
2012 ITypeInfo2* This,
2013 UINT indexFunc,
2014 UINT indexParam,
2015 REFGUID guid,
2016 VARIANT* pVarVal);
2017 void __RPC_STUB ITypeInfo2_GetParamCustData_Stub(
2018 struct IRpcStubBuffer* This,
2019 struct IRpcChannelBuffer* pRpcChannelBuffer,
2020 PRPC_MESSAGE pRpcMessage,
2021 DWORD* pdwStubPhase);
2022 HRESULT CALLBACK ITypeInfo2_GetVarCustData_Proxy(
2023 ITypeInfo2* This,
2024 UINT index,
2025 REFGUID guid,
2026 VARIANT* pVarVal);
2027 void __RPC_STUB ITypeInfo2_GetVarCustData_Stub(
2028 struct IRpcStubBuffer* This,
2029 struct IRpcChannelBuffer* pRpcChannelBuffer,
2030 PRPC_MESSAGE pRpcMessage,
2031 DWORD* pdwStubPhase);
2032 HRESULT CALLBACK ITypeInfo2_GetImplTypeCustData_Proxy(
2033 ITypeInfo2* This,
2034 UINT index,
2035 REFGUID guid,
2036 VARIANT* pVarVal);
2037 void __RPC_STUB ITypeInfo2_GetImplTypeCustData_Stub(
2038 struct IRpcStubBuffer* This,
2039 struct IRpcChannelBuffer* pRpcChannelBuffer,
2040 PRPC_MESSAGE pRpcMessage,
2041 DWORD* pdwStubPhase);
2042 HRESULT CALLBACK ITypeInfo2_RemoteGetDocumentation2_Proxy(
2043 ITypeInfo2* This,
2044 MEMBERID memid,
2045 LCID lcid,
2046 DWORD refPtrFlags,
2047 BSTR* pbstrHelpString,
2048 DWORD* pdwHelpStringContext,
2049 BSTR* pbstrHelpStringDll);
2050 void __RPC_STUB ITypeInfo2_RemoteGetDocumentation2_Stub(
2051 struct IRpcStubBuffer* This,
2052 struct IRpcChannelBuffer* pRpcChannelBuffer,
2053 PRPC_MESSAGE pRpcMessage,
2054 DWORD* pdwStubPhase);
2055 HRESULT CALLBACK ITypeInfo2_GetDocumentation2_Proxy(
2056 ITypeInfo2* This,
2057 MEMBERID memid,
2058 LCID lcid,
2059 BSTR* pbstrHelpString,
2060 DWORD* pdwHelpStringContext,
2061 BSTR* pbstrHelpStringDll);
2062 HRESULT __RPC_STUB ITypeInfo2_GetDocumentation2_Stub(
2063 ITypeInfo2* This,
2064 MEMBERID memid,
2065 LCID lcid,
2066 DWORD refPtrFlags,
2067 BSTR* pbstrHelpString,
2068 DWORD* pdwHelpStringContext,
2069 BSTR* pbstrHelpStringDll);
2070 HRESULT CALLBACK ITypeInfo2_GetAllCustData_Proxy(
2071 ITypeInfo2* This,
2072 CUSTDATA* pCustData);
2073 void __RPC_STUB ITypeInfo2_GetAllCustData_Stub(
2074 struct IRpcStubBuffer* This,
2075 struct IRpcChannelBuffer* pRpcChannelBuffer,
2076 PRPC_MESSAGE pRpcMessage,
2077 DWORD* pdwStubPhase);
2078 HRESULT CALLBACK ITypeInfo2_GetAllFuncCustData_Proxy(
2079 ITypeInfo2* This,
2080 UINT index,
2081 CUSTDATA* pCustData);
2082 void __RPC_STUB ITypeInfo2_GetAllFuncCustData_Stub(
2083 struct IRpcStubBuffer* This,
2084 struct IRpcChannelBuffer* pRpcChannelBuffer,
2085 PRPC_MESSAGE pRpcMessage,
2086 DWORD* pdwStubPhase);
2087 HRESULT CALLBACK ITypeInfo2_GetAllParamCustData_Proxy(
2088 ITypeInfo2* This,
2089 UINT indexFunc,
2090 UINT indexParam,
2091 CUSTDATA* pCustData);
2092 void __RPC_STUB ITypeInfo2_GetAllParamCustData_Stub(
2093 struct IRpcStubBuffer* This,
2094 struct IRpcChannelBuffer* pRpcChannelBuffer,
2095 PRPC_MESSAGE pRpcMessage,
2096 DWORD* pdwStubPhase);
2097 HRESULT CALLBACK ITypeInfo2_GetAllVarCustData_Proxy(
2098 ITypeInfo2* This,
2099 UINT index,
2100 CUSTDATA* pCustData);
2101 void __RPC_STUB ITypeInfo2_GetAllVarCustData_Stub(
2102 struct IRpcStubBuffer* This,
2103 struct IRpcChannelBuffer* pRpcChannelBuffer,
2104 PRPC_MESSAGE pRpcMessage,
2105 DWORD* pdwStubPhase);
2106 HRESULT CALLBACK ITypeInfo2_GetAllImplTypeCustData_Proxy(
2107 ITypeInfo2* This,
2108 UINT index,
2109 CUSTDATA* pCustData);
2110 void __RPC_STUB ITypeInfo2_GetAllImplTypeCustData_Stub(
2111 struct IRpcStubBuffer* This,
2112 struct IRpcChannelBuffer* pRpcChannelBuffer,
2113 PRPC_MESSAGE pRpcMessage,
2114 DWORD* pdwStubPhase);
2116 typedef ITypeLib *LPTYPELIB;
2118 typedef enum tagSYSKIND {
2119 SYS_WIN16 = 0,
2120 SYS_WIN32,
2121 SYS_MAC
2122 } SYSKIND;
2124 typedef enum tagLIBFLAGS {
2125 LIBFLAG_FRESTRICTED = 0x1,
2126 LIBFLAG_FCONTROL = 0x2,
2127 LIBFLAG_FHIDDEN = 0x4,
2128 LIBFLAG_FHASDISKIMAGE = 0x8
2129 } LIBFLAGS;
2131 typedef struct tagTLIBATTR {
2132 GUID guid;
2133 LCID lcid;
2134 SYSKIND syskind;
2135 WORD wMajorVerNum;
2136 WORD wMinorVerNum;
2137 WORD wLibFlags;
2138 } TLIBATTR, *LPTLIBATTR;
2140 /*****************************************************************************
2141 * ITypeLib interface
2143 DEFINE_GUID(IID_ITypeLib, 0x00020402, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2144 #if defined(__cplusplus) && !defined(CINTERFACE)
2145 struct ITypeLib: IUnknown {
2147 virtual UINT CALLBACK GetTypeInfoCount(
2148 ) = 0;
2150 virtual HRESULT CALLBACK GetTypeInfo(
2151 UINT index,
2152 ITypeInfo** ppTInfo) = 0;
2154 virtual HRESULT CALLBACK GetTypeInfoType(
2155 UINT index,
2156 TYPEKIND* pTKind) = 0;
2158 virtual HRESULT CALLBACK GetTypeInfoOfGuid(
2159 REFGUID guid,
2160 ITypeInfo** ppTinfo) = 0;
2162 virtual HRESULT CALLBACK GetLibAttr(
2163 TLIBATTR** ppTLibAttr) = 0;
2165 virtual HRESULT CALLBACK GetTypeComp(
2166 ITypeComp** ppTComp) = 0;
2168 virtual HRESULT CALLBACK GetDocumentation(
2169 INT index,
2170 BSTR* pBstrName,
2171 BSTR* pBstrDocString,
2172 DWORD* pdwHelpContext,
2173 BSTR* pBstrHelpFile) = 0;
2175 virtual HRESULT CALLBACK IsName(
2176 LPOLESTR szNameBuf,
2177 ULONG lHashVal,
2178 BOOL* pfName) = 0;
2180 virtual HRESULT CALLBACK FindName(
2181 LPOLESTR szNameBuf,
2182 ULONG lHashVal,
2183 ITypeInfo** ppTInfo,
2184 MEMBERID* rgMemId,
2185 USHORT* pcFound) = 0;
2187 virtual void CALLBACK ReleaseTLibAttr(
2188 TLIBATTR* pTLibAttr) = 0;
2190 } ICOM_COM_INTERFACE_ATTRIBUTE;
2191 #else
2192 typedef struct ITypeLibVtbl ITypeLibVtbl;
2193 struct ITypeLib {
2194 const ITypeLibVtbl* lpVtbl;
2196 struct ITypeLibVtbl {
2197 ICOM_MSVTABLE_COMPAT_FIELDS
2199 /*** IUnknown methods ***/
2200 HRESULT (CALLBACK *QueryInterface)(
2201 ITypeLib* This,
2202 REFIID riid,
2203 void** ppvObject);
2205 ULONG (CALLBACK *AddRef)(
2206 ITypeLib* This);
2208 ULONG (CALLBACK *Release)(
2209 ITypeLib* This);
2211 /*** ITypeLib methods ***/
2212 UINT (CALLBACK *GetTypeInfoCount)(
2213 ITypeLib* This);
2215 HRESULT (CALLBACK *GetTypeInfo)(
2216 ITypeLib* This,
2217 UINT index,
2218 ITypeInfo** ppTInfo);
2220 HRESULT (CALLBACK *GetTypeInfoType)(
2221 ITypeLib* This,
2222 UINT index,
2223 TYPEKIND* pTKind);
2225 HRESULT (CALLBACK *GetTypeInfoOfGuid)(
2226 ITypeLib* This,
2227 REFGUID guid,
2228 ITypeInfo** ppTinfo);
2230 HRESULT (CALLBACK *GetLibAttr)(
2231 ITypeLib* This,
2232 TLIBATTR** ppTLibAttr);
2234 HRESULT (CALLBACK *GetTypeComp)(
2235 ITypeLib* This,
2236 ITypeComp** ppTComp);
2238 HRESULT (CALLBACK *GetDocumentation)(
2239 ITypeLib* This,
2240 INT index,
2241 BSTR* pBstrName,
2242 BSTR* pBstrDocString,
2243 DWORD* pdwHelpContext,
2244 BSTR* pBstrHelpFile);
2246 HRESULT (CALLBACK *IsName)(
2247 ITypeLib* This,
2248 LPOLESTR szNameBuf,
2249 ULONG lHashVal,
2250 BOOL* pfName);
2252 HRESULT (CALLBACK *FindName)(
2253 ITypeLib* This,
2254 LPOLESTR szNameBuf,
2255 ULONG lHashVal,
2256 ITypeInfo** ppTInfo,
2257 MEMBERID* rgMemId,
2258 USHORT* pcFound);
2260 void (CALLBACK *ReleaseTLibAttr)(
2261 ITypeLib* This,
2262 TLIBATTR* pTLibAttr);
2266 #define ITypeLib_IMETHODS \
2267 IUnknown_IMETHODS \
2268 ICOM_METHOD (UINT,GetTypeInfoCount) \
2269 ICOM_METHOD2 (HRESULT,GetTypeInfo,UINT,index,ITypeInfo**,ppTInfo) \
2270 ICOM_METHOD2 (HRESULT,GetTypeInfoType,UINT,index,TYPEKIND*,pTKind) \
2271 ICOM_METHOD2 (HRESULT,GetTypeInfoOfGuid,REFGUID,guid,ITypeInfo**,ppTinfo) \
2272 ICOM_METHOD1 (HRESULT,GetLibAttr,TLIBATTR**,ppTLibAttr) \
2273 ICOM_METHOD1 (HRESULT,GetTypeComp,ITypeComp**,ppTComp) \
2274 ICOM_METHOD5 (HRESULT,GetDocumentation,INT,index,BSTR*,pBstrName,BSTR*,pBstrDocString,DWORD*,pdwHelpContext,BSTR*,pBstrHelpFile) \
2275 ICOM_METHOD3 (HRESULT,IsName,LPOLESTR,szNameBuf,ULONG,lHashVal,BOOL*,pfName) \
2276 ICOM_METHOD5 (HRESULT,FindName,LPOLESTR,szNameBuf,ULONG,lHashVal,ITypeInfo**,ppTInfo,MEMBERID*,rgMemId,USHORT*,pcFound) \
2277 ICOM_VMETHOD1(ReleaseTLibAttr,TLIBATTR*,pTLibAttr)
2279 /*** IUnknown methods ***/
2280 #define ITypeLib_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2281 #define ITypeLib_AddRef(p) (p)->lpVtbl->AddRef(p)
2282 #define ITypeLib_Release(p) (p)->lpVtbl->Release(p)
2283 /*** ITypeLib methods ***/
2284 #define ITypeLib_GetTypeInfoCount(p) (p)->lpVtbl->GetTypeInfoCount(p)
2285 #define ITypeLib_GetTypeInfo(p,a,b) (p)->lpVtbl->GetTypeInfo(p,a,b)
2286 #define ITypeLib_GetTypeInfoType(p,a,b) (p)->lpVtbl->GetTypeInfoType(p,a,b)
2287 #define ITypeLib_GetTypeInfoOfGuid(p,a,b) (p)->lpVtbl->GetTypeInfoOfGuid(p,a,b)
2288 #define ITypeLib_GetLibAttr(p,a) (p)->lpVtbl->GetLibAttr(p,a)
2289 #define ITypeLib_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
2290 #define ITypeLib_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
2291 #define ITypeLib_IsName(p,a,b,c) (p)->lpVtbl->IsName(p,a,b,c)
2292 #define ITypeLib_FindName(p,a,b,c,d,e) (p)->lpVtbl->FindName(p,a,b,c,d,e)
2293 #define ITypeLib_ReleaseTLibAttr(p,a) (p)->lpVtbl->ReleaseTLibAttr(p,a)
2295 #endif
2297 HRESULT CALLBACK ITypeLib_RemoteGetTypeInfoCount_Proxy(
2298 ITypeLib* This,
2299 UINT* pcTInfo);
2300 void __RPC_STUB ITypeLib_RemoteGetTypeInfoCount_Stub(
2301 struct IRpcStubBuffer* This,
2302 struct IRpcChannelBuffer* pRpcChannelBuffer,
2303 PRPC_MESSAGE pRpcMessage,
2304 DWORD* pdwStubPhase);
2305 UINT CALLBACK ITypeLib_GetTypeInfoCount_Proxy(
2306 ITypeLib* This);
2307 HRESULT __RPC_STUB ITypeLib_GetTypeInfoCount_Stub(
2308 ITypeLib* This,
2309 UINT* pcTInfo);
2310 HRESULT CALLBACK ITypeLib_GetTypeInfo_Proxy(
2311 ITypeLib* This,
2312 UINT index,
2313 ITypeInfo** ppTInfo);
2314 void __RPC_STUB ITypeLib_GetTypeInfo_Stub(
2315 struct IRpcStubBuffer* This,
2316 struct IRpcChannelBuffer* pRpcChannelBuffer,
2317 PRPC_MESSAGE pRpcMessage,
2318 DWORD* pdwStubPhase);
2319 HRESULT CALLBACK ITypeLib_GetTypeInfoType_Proxy(
2320 ITypeLib* This,
2321 UINT index,
2322 TYPEKIND* pTKind);
2323 void __RPC_STUB ITypeLib_GetTypeInfoType_Stub(
2324 struct IRpcStubBuffer* This,
2325 struct IRpcChannelBuffer* pRpcChannelBuffer,
2326 PRPC_MESSAGE pRpcMessage,
2327 DWORD* pdwStubPhase);
2328 HRESULT CALLBACK ITypeLib_GetTypeInfoOfGuid_Proxy(
2329 ITypeLib* This,
2330 REFGUID guid,
2331 ITypeInfo** ppTinfo);
2332 void __RPC_STUB ITypeLib_GetTypeInfoOfGuid_Stub(
2333 struct IRpcStubBuffer* This,
2334 struct IRpcChannelBuffer* pRpcChannelBuffer,
2335 PRPC_MESSAGE pRpcMessage,
2336 DWORD* pdwStubPhase);
2337 HRESULT CALLBACK ITypeLib_RemoteGetLibAttr_Proxy(
2338 ITypeLib* This,
2339 LPTLIBATTR* ppTLibAttr,
2340 CLEANLOCALSTORAGE* pDummy);
2341 void __RPC_STUB ITypeLib_RemoteGetLibAttr_Stub(
2342 struct IRpcStubBuffer* This,
2343 struct IRpcChannelBuffer* pRpcChannelBuffer,
2344 PRPC_MESSAGE pRpcMessage,
2345 DWORD* pdwStubPhase);
2346 HRESULT CALLBACK ITypeLib_GetLibAttr_Proxy(
2347 ITypeLib* This,
2348 TLIBATTR** ppTLibAttr);
2349 HRESULT __RPC_STUB ITypeLib_GetLibAttr_Stub(
2350 ITypeLib* This,
2351 LPTLIBATTR* ppTLibAttr,
2352 CLEANLOCALSTORAGE* pDummy);
2353 HRESULT CALLBACK ITypeLib_GetTypeComp_Proxy(
2354 ITypeLib* This,
2355 ITypeComp** ppTComp);
2356 void __RPC_STUB ITypeLib_GetTypeComp_Stub(
2357 struct IRpcStubBuffer* This,
2358 struct IRpcChannelBuffer* pRpcChannelBuffer,
2359 PRPC_MESSAGE pRpcMessage,
2360 DWORD* pdwStubPhase);
2361 HRESULT CALLBACK ITypeLib_RemoteGetDocumentation_Proxy(
2362 ITypeLib* This,
2363 INT index,
2364 DWORD refPtrFlags,
2365 BSTR* pBstrName,
2366 BSTR* pBstrDocString,
2367 DWORD* pdwHelpContext,
2368 BSTR* pBstrHelpFile);
2369 void __RPC_STUB ITypeLib_RemoteGetDocumentation_Stub(
2370 struct IRpcStubBuffer* This,
2371 struct IRpcChannelBuffer* pRpcChannelBuffer,
2372 PRPC_MESSAGE pRpcMessage,
2373 DWORD* pdwStubPhase);
2374 HRESULT CALLBACK ITypeLib_GetDocumentation_Proxy(
2375 ITypeLib* This,
2376 INT index,
2377 BSTR* pBstrName,
2378 BSTR* pBstrDocString,
2379 DWORD* pdwHelpContext,
2380 BSTR* pBstrHelpFile);
2381 HRESULT __RPC_STUB ITypeLib_GetDocumentation_Stub(
2382 ITypeLib* This,
2383 INT index,
2384 DWORD refPtrFlags,
2385 BSTR* pBstrName,
2386 BSTR* pBstrDocString,
2387 DWORD* pdwHelpContext,
2388 BSTR* pBstrHelpFile);
2389 HRESULT CALLBACK ITypeLib_RemoteIsName_Proxy(
2390 ITypeLib* This,
2391 LPOLESTR szNameBuf,
2392 ULONG lHashVal,
2393 BOOL* pfName,
2394 BSTR* pBstrLibName);
2395 void __RPC_STUB ITypeLib_RemoteIsName_Stub(
2396 struct IRpcStubBuffer* This,
2397 struct IRpcChannelBuffer* pRpcChannelBuffer,
2398 PRPC_MESSAGE pRpcMessage,
2399 DWORD* pdwStubPhase);
2400 HRESULT CALLBACK ITypeLib_IsName_Proxy(
2401 ITypeLib* This,
2402 LPOLESTR szNameBuf,
2403 ULONG lHashVal,
2404 BOOL* pfName);
2405 HRESULT __RPC_STUB ITypeLib_IsName_Stub(
2406 ITypeLib* This,
2407 LPOLESTR szNameBuf,
2408 ULONG lHashVal,
2409 BOOL* pfName,
2410 BSTR* pBstrLibName);
2411 HRESULT CALLBACK ITypeLib_RemoteFindName_Proxy(
2412 ITypeLib* This,
2413 LPOLESTR szNameBuf,
2414 ULONG lHashVal,
2415 ITypeInfo** ppTInfo,
2416 MEMBERID* rgMemId,
2417 USHORT* pcFound,
2418 BSTR* pBstrLibName);
2419 void __RPC_STUB ITypeLib_RemoteFindName_Stub(
2420 struct IRpcStubBuffer* This,
2421 struct IRpcChannelBuffer* pRpcChannelBuffer,
2422 PRPC_MESSAGE pRpcMessage,
2423 DWORD* pdwStubPhase);
2424 HRESULT CALLBACK ITypeLib_FindName_Proxy(
2425 ITypeLib* This,
2426 LPOLESTR szNameBuf,
2427 ULONG lHashVal,
2428 ITypeInfo** ppTInfo,
2429 MEMBERID* rgMemId,
2430 USHORT* pcFound);
2431 HRESULT __RPC_STUB ITypeLib_FindName_Stub(
2432 ITypeLib* This,
2433 LPOLESTR szNameBuf,
2434 ULONG lHashVal,
2435 ITypeInfo** ppTInfo,
2436 MEMBERID* rgMemId,
2437 USHORT* pcFound,
2438 BSTR* pBstrLibName);
2439 HRESULT CALLBACK ITypeLib_LocalReleaseTLibAttr_Proxy(
2440 ITypeLib* This);
2441 void __RPC_STUB ITypeLib_LocalReleaseTLibAttr_Stub(
2442 struct IRpcStubBuffer* This,
2443 struct IRpcChannelBuffer* pRpcChannelBuffer,
2444 PRPC_MESSAGE pRpcMessage,
2445 DWORD* pdwStubPhase);
2446 void CALLBACK ITypeLib_ReleaseTLibAttr_Proxy(
2447 ITypeLib* This,
2448 TLIBATTR* pTLibAttr);
2449 HRESULT __RPC_STUB ITypeLib_ReleaseTLibAttr_Stub(
2450 ITypeLib* This);
2452 typedef struct ITypeLib2 ITypeLib2;
2453 typedef ITypeLib2 *LPTYPELIB2;
2455 /*****************************************************************************
2456 * ITypeLib2 interface
2458 DEFINE_GUID(IID_ITypeLib2, 0x00020411, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2459 #if defined(__cplusplus) && !defined(CINTERFACE)
2460 struct ITypeLib2: ITypeLib {
2462 virtual HRESULT CALLBACK GetCustData(
2463 REFGUID guid,
2464 VARIANT* pVarVal) = 0;
2466 virtual HRESULT CALLBACK GetLibStatistics(
2467 ULONG* pcUniqueNames,
2468 ULONG* pcchUniqueNames) = 0;
2470 virtual HRESULT CALLBACK GetDocumentation2(
2471 INT index,
2472 LCID lcid,
2473 BSTR* pbstrHelpString,
2474 DWORD* pdwHelpStringContext,
2475 BSTR* pbstrHelpStringDll) = 0;
2477 virtual HRESULT CALLBACK GetAllCustData(
2478 CUSTDATA* pCustData) = 0;
2480 } ICOM_COM_INTERFACE_ATTRIBUTE;
2481 #else
2482 typedef struct ITypeLib2Vtbl ITypeLib2Vtbl;
2483 struct ITypeLib2 {
2484 const ITypeLib2Vtbl* lpVtbl;
2486 struct ITypeLib2Vtbl {
2487 ICOM_MSVTABLE_COMPAT_FIELDS
2489 /*** IUnknown methods ***/
2490 HRESULT (CALLBACK *QueryInterface)(
2491 ITypeLib2* This,
2492 REFIID riid,
2493 void** ppvObject);
2495 ULONG (CALLBACK *AddRef)(
2496 ITypeLib2* This);
2498 ULONG (CALLBACK *Release)(
2499 ITypeLib2* This);
2501 /*** ITypeLib methods ***/
2502 UINT (CALLBACK *GetTypeInfoCount)(
2503 ITypeLib2* This);
2505 HRESULT (CALLBACK *GetTypeInfo)(
2506 ITypeLib2* This,
2507 UINT index,
2508 ITypeInfo** ppTInfo);
2510 HRESULT (CALLBACK *GetTypeInfoType)(
2511 ITypeLib2* This,
2512 UINT index,
2513 TYPEKIND* pTKind);
2515 HRESULT (CALLBACK *GetTypeInfoOfGuid)(
2516 ITypeLib2* This,
2517 REFGUID guid,
2518 ITypeInfo** ppTinfo);
2520 HRESULT (CALLBACK *GetLibAttr)(
2521 ITypeLib2* This,
2522 TLIBATTR** ppTLibAttr);
2524 HRESULT (CALLBACK *GetTypeComp)(
2525 ITypeLib2* This,
2526 ITypeComp** ppTComp);
2528 HRESULT (CALLBACK *GetDocumentation)(
2529 ITypeLib2* This,
2530 INT index,
2531 BSTR* pBstrName,
2532 BSTR* pBstrDocString,
2533 DWORD* pdwHelpContext,
2534 BSTR* pBstrHelpFile);
2536 HRESULT (CALLBACK *IsName)(
2537 ITypeLib2* This,
2538 LPOLESTR szNameBuf,
2539 ULONG lHashVal,
2540 BOOL* pfName);
2542 HRESULT (CALLBACK *FindName)(
2543 ITypeLib2* This,
2544 LPOLESTR szNameBuf,
2545 ULONG lHashVal,
2546 ITypeInfo** ppTInfo,
2547 MEMBERID* rgMemId,
2548 USHORT* pcFound);
2550 void (CALLBACK *ReleaseTLibAttr)(
2551 ITypeLib2* This,
2552 TLIBATTR* pTLibAttr);
2554 /*** ITypeLib2 methods ***/
2555 HRESULT (CALLBACK *GetCustData)(
2556 ITypeLib2* This,
2557 REFGUID guid,
2558 VARIANT* pVarVal);
2560 HRESULT (CALLBACK *GetLibStatistics)(
2561 ITypeLib2* This,
2562 ULONG* pcUniqueNames,
2563 ULONG* pcchUniqueNames);
2565 HRESULT (CALLBACK *GetDocumentation2)(
2566 ITypeLib2* This,
2567 INT index,
2568 LCID lcid,
2569 BSTR* pbstrHelpString,
2570 DWORD* pdwHelpStringContext,
2571 BSTR* pbstrHelpStringDll);
2573 HRESULT (CALLBACK *GetAllCustData)(
2574 ITypeLib2* This,
2575 CUSTDATA* pCustData);
2579 #define ITypeLib2_IMETHODS \
2580 ITypeLib_IMETHODS \
2581 ICOM_METHOD2 (HRESULT,GetCustData,REFGUID,guid,VARIANT*,pVarVal) \
2582 ICOM_METHOD2 (HRESULT,GetLibStatistics,ULONG*,pcUniqueNames,ULONG*,pcchUniqueNames) \
2583 ICOM_METHOD5 (HRESULT,GetDocumentation2,INT,index,LCID,lcid,BSTR*,pbstrHelpString,DWORD*,pdwHelpStringContext,BSTR*,pbstrHelpStringDll) \
2584 ICOM_METHOD1 (HRESULT,GetAllCustData,CUSTDATA*,pCustData)
2586 /*** IUnknown methods ***/
2587 #define ITypeLib2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2588 #define ITypeLib2_AddRef(p) (p)->lpVtbl->AddRef(p)
2589 #define ITypeLib2_Release(p) (p)->lpVtbl->Release(p)
2590 /*** ITypeLib methods ***/
2591 #define ITypeLib2_GetTypeInfoCount(p) (p)->lpVtbl->GetTypeInfoCount(p)
2592 #define ITypeLib2_GetTypeInfo(p,a,b) (p)->lpVtbl->GetTypeInfo(p,a,b)
2593 #define ITypeLib2_GetTypeInfoType(p,a,b) (p)->lpVtbl->GetTypeInfoType(p,a,b)
2594 #define ITypeLib2_GetTypeInfoOfGuid(p,a,b) (p)->lpVtbl->GetTypeInfoOfGuid(p,a,b)
2595 #define ITypeLib2_GetLibAttr(p,a) (p)->lpVtbl->GetLibAttr(p,a)
2596 #define ITypeLib2_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
2597 #define ITypeLib2_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
2598 #define ITypeLib2_IsName(p,a,b,c) (p)->lpVtbl->IsName(p,a,b,c)
2599 #define ITypeLib2_FindName(p,a,b,c,d,e) (p)->lpVtbl->FindName(p,a,b,c,d,e)
2600 #define ITypeLib2_ReleaseTLibAttr(p,a) (p)->lpVtbl->ReleaseTLibAttr(p,a)
2601 /*** ITypeLib2 methods ***/
2602 #define ITypeLib2_GetCustData(p,a,b) (p)->lpVtbl->GetCustData(p,a,b)
2603 #define ITypeLib2_GetLibStatistics(p,a,b) (p)->lpVtbl->GetLibStatistics(p,a,b)
2604 #define ITypeLib2_GetDocumentation2(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation2(p,a,b,c,d,e)
2605 #define ITypeLib2_GetAllCustData(p,a) (p)->lpVtbl->GetAllCustData(p,a)
2607 #endif
2609 HRESULT CALLBACK ITypeLib2_GetCustData_Proxy(
2610 ITypeLib2* This,
2611 REFGUID guid,
2612 VARIANT* pVarVal);
2613 void __RPC_STUB ITypeLib2_GetCustData_Stub(
2614 struct IRpcStubBuffer* This,
2615 struct IRpcChannelBuffer* pRpcChannelBuffer,
2616 PRPC_MESSAGE pRpcMessage,
2617 DWORD* pdwStubPhase);
2618 HRESULT CALLBACK ITypeLib2_RemoteGetLibStatistics_Proxy(
2619 ITypeLib2* This,
2620 ULONG* pcUniqueNames,
2621 ULONG* pcchUniqueNames);
2622 void __RPC_STUB ITypeLib2_RemoteGetLibStatistics_Stub(
2623 struct IRpcStubBuffer* This,
2624 struct IRpcChannelBuffer* pRpcChannelBuffer,
2625 PRPC_MESSAGE pRpcMessage,
2626 DWORD* pdwStubPhase);
2627 HRESULT CALLBACK ITypeLib2_GetLibStatistics_Proxy(
2628 ITypeLib2* This,
2629 ULONG* pcUniqueNames,
2630 ULONG* pcchUniqueNames);
2631 HRESULT __RPC_STUB ITypeLib2_GetLibStatistics_Stub(
2632 ITypeLib2* This,
2633 ULONG* pcUniqueNames,
2634 ULONG* pcchUniqueNames);
2635 HRESULT CALLBACK ITypeLib2_RemoteGetDocumentation2_Proxy(
2636 ITypeLib2* This,
2637 INT index,
2638 LCID lcid,
2639 DWORD refPtrFlags,
2640 BSTR* pbstrHelpString,
2641 DWORD* pdwHelpStringContext,
2642 BSTR* pbstrHelpStringDll);
2643 void __RPC_STUB ITypeLib2_RemoteGetDocumentation2_Stub(
2644 struct IRpcStubBuffer* This,
2645 struct IRpcChannelBuffer* pRpcChannelBuffer,
2646 PRPC_MESSAGE pRpcMessage,
2647 DWORD* pdwStubPhase);
2648 HRESULT CALLBACK ITypeLib2_GetDocumentation2_Proxy(
2649 ITypeLib2* This,
2650 INT index,
2651 LCID lcid,
2652 BSTR* pbstrHelpString,
2653 DWORD* pdwHelpStringContext,
2654 BSTR* pbstrHelpStringDll);
2655 HRESULT __RPC_STUB ITypeLib2_GetDocumentation2_Stub(
2656 ITypeLib2* This,
2657 INT index,
2658 LCID lcid,
2659 DWORD refPtrFlags,
2660 BSTR* pbstrHelpString,
2661 DWORD* pdwHelpStringContext,
2662 BSTR* pbstrHelpStringDll);
2663 HRESULT CALLBACK ITypeLib2_GetAllCustData_Proxy(
2664 ITypeLib2* This,
2665 CUSTDATA* pCustData);
2666 void __RPC_STUB ITypeLib2_GetAllCustData_Stub(
2667 struct IRpcStubBuffer* This,
2668 struct IRpcChannelBuffer* pRpcChannelBuffer,
2669 PRPC_MESSAGE pRpcMessage,
2670 DWORD* pdwStubPhase);
2672 typedef struct ITypeChangeEvents ITypeChangeEvents;
2673 typedef ITypeChangeEvents *LPTYPECHANGEEVENTS;
2675 typedef enum tagCHANGEKIND {
2676 CHANGEKIND_ADDMEMBER,
2677 CHANGEKIND_DELETEMEMBER,
2678 CHANGEKIND_SETNAMES,
2679 CHANGEKIND_SETDOCUMENTATION,
2680 CHANGEKIND_GENERAL,
2681 CHANGEKIND_INVALIDATE,
2682 CHANGEKIND_CHANGEFAILED,
2683 CHANGEKIND_MAX
2684 } CHANGEKIND;
2686 /*****************************************************************************
2687 * ITypeChangeEvents interface
2689 DEFINE_GUID(IID_ITypeChangeEvents, 0x00020410, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2690 #if defined(__cplusplus) && !defined(CINTERFACE)
2691 struct ITypeChangeEvents: IUnknown {
2693 virtual HRESULT CALLBACK RequestTypeChange(
2694 CHANGEKIND changeKind,
2695 ITypeInfo* pTInfoBefore,
2696 LPOLESTR pStrName,
2697 INT* pfCancel) = 0;
2699 virtual HRESULT CALLBACK AfterTypeChange(
2700 CHANGEKIND changeKind,
2701 ITypeInfo* pTInfoAfter,
2702 LPOLESTR pStrName) = 0;
2704 } ICOM_COM_INTERFACE_ATTRIBUTE;
2705 #else
2706 typedef struct ITypeChangeEventsVtbl ITypeChangeEventsVtbl;
2707 struct ITypeChangeEvents {
2708 const ITypeChangeEventsVtbl* lpVtbl;
2710 struct ITypeChangeEventsVtbl {
2711 ICOM_MSVTABLE_COMPAT_FIELDS
2713 /*** IUnknown methods ***/
2714 HRESULT (CALLBACK *QueryInterface)(
2715 ITypeChangeEvents* This,
2716 REFIID riid,
2717 void** ppvObject);
2719 ULONG (CALLBACK *AddRef)(
2720 ITypeChangeEvents* This);
2722 ULONG (CALLBACK *Release)(
2723 ITypeChangeEvents* This);
2725 /*** ITypeChangeEvents methods ***/
2726 HRESULT (CALLBACK *RequestTypeChange)(
2727 ITypeChangeEvents* This,
2728 CHANGEKIND changeKind,
2729 ITypeInfo* pTInfoBefore,
2730 LPOLESTR pStrName,
2731 INT* pfCancel);
2733 HRESULT (CALLBACK *AfterTypeChange)(
2734 ITypeChangeEvents* This,
2735 CHANGEKIND changeKind,
2736 ITypeInfo* pTInfoAfter,
2737 LPOLESTR pStrName);
2741 #define ITypeChangeEvents_IMETHODS \
2742 IUnknown_IMETHODS \
2743 ICOM_METHOD4 (HRESULT,RequestTypeChange,CHANGEKIND,changeKind,ITypeInfo*,pTInfoBefore,LPOLESTR,pStrName,INT*,pfCancel) \
2744 ICOM_METHOD3 (HRESULT,AfterTypeChange,CHANGEKIND,changeKind,ITypeInfo*,pTInfoAfter,LPOLESTR,pStrName)
2746 /*** IUnknown methods ***/
2747 #define ITypeChangeEvents_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2748 #define ITypeChangeEvents_AddRef(p) (p)->lpVtbl->AddRef(p)
2749 #define ITypeChangeEvents_Release(p) (p)->lpVtbl->Release(p)
2750 /*** ITypeChangeEvents methods ***/
2751 #define ITypeChangeEvents_RequestTypeChange(p,a,b,c,d) (p)->lpVtbl->RequestTypeChange(p,a,b,c,d)
2752 #define ITypeChangeEvents_AfterTypeChange(p,a,b,c) (p)->lpVtbl->AfterTypeChange(p,a,b,c)
2754 #endif
2756 HRESULT CALLBACK ITypeChangeEvents_RequestTypeChange_Proxy(
2757 ITypeChangeEvents* This,
2758 CHANGEKIND changeKind,
2759 ITypeInfo* pTInfoBefore,
2760 LPOLESTR pStrName,
2761 INT* pfCancel);
2762 void __RPC_STUB ITypeChangeEvents_RequestTypeChange_Stub(
2763 struct IRpcStubBuffer* This,
2764 struct IRpcChannelBuffer* pRpcChannelBuffer,
2765 PRPC_MESSAGE pRpcMessage,
2766 DWORD* pdwStubPhase);
2767 HRESULT CALLBACK ITypeChangeEvents_AfterTypeChange_Proxy(
2768 ITypeChangeEvents* This,
2769 CHANGEKIND changeKind,
2770 ITypeInfo* pTInfoAfter,
2771 LPOLESTR pStrName);
2772 void __RPC_STUB ITypeChangeEvents_AfterTypeChange_Stub(
2773 struct IRpcStubBuffer* This,
2774 struct IRpcChannelBuffer* pRpcChannelBuffer,
2775 PRPC_MESSAGE pRpcMessage,
2776 DWORD* pdwStubPhase);
2778 typedef struct IErrorInfo IErrorInfo;
2779 typedef IErrorInfo *LPERRORINFO;
2781 /*****************************************************************************
2782 * IErrorInfo interface
2784 DEFINE_GUID(IID_IErrorInfo, 0x1cf2b120, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
2785 #if defined(__cplusplus) && !defined(CINTERFACE)
2786 struct IErrorInfo: IUnknown {
2788 virtual HRESULT CALLBACK GetGUID(
2789 GUID* pGUID) = 0;
2791 virtual HRESULT CALLBACK GetSource(
2792 BSTR* pBstrSource) = 0;
2794 virtual HRESULT CALLBACK GetDescription(
2795 BSTR* pBstrDescription) = 0;
2797 virtual HRESULT CALLBACK GetHelpFile(
2798 BSTR* pBstrHelpFile) = 0;
2800 virtual HRESULT CALLBACK GetHelpContext(
2801 DWORD* pdwHelpContext) = 0;
2803 } ICOM_COM_INTERFACE_ATTRIBUTE;
2804 #else
2805 typedef struct IErrorInfoVtbl IErrorInfoVtbl;
2806 struct IErrorInfo {
2807 const IErrorInfoVtbl* lpVtbl;
2809 struct IErrorInfoVtbl {
2810 ICOM_MSVTABLE_COMPAT_FIELDS
2812 /*** IUnknown methods ***/
2813 HRESULT (CALLBACK *QueryInterface)(
2814 IErrorInfo* This,
2815 REFIID riid,
2816 void** ppvObject);
2818 ULONG (CALLBACK *AddRef)(
2819 IErrorInfo* This);
2821 ULONG (CALLBACK *Release)(
2822 IErrorInfo* This);
2824 /*** IErrorInfo methods ***/
2825 HRESULT (CALLBACK *GetGUID)(
2826 IErrorInfo* This,
2827 GUID* pGUID);
2829 HRESULT (CALLBACK *GetSource)(
2830 IErrorInfo* This,
2831 BSTR* pBstrSource);
2833 HRESULT (CALLBACK *GetDescription)(
2834 IErrorInfo* This,
2835 BSTR* pBstrDescription);
2837 HRESULT (CALLBACK *GetHelpFile)(
2838 IErrorInfo* This,
2839 BSTR* pBstrHelpFile);
2841 HRESULT (CALLBACK *GetHelpContext)(
2842 IErrorInfo* This,
2843 DWORD* pdwHelpContext);
2847 #define IErrorInfo_IMETHODS \
2848 IUnknown_IMETHODS \
2849 ICOM_METHOD1 (HRESULT,GetGUID,GUID*,pGUID) \
2850 ICOM_METHOD1 (HRESULT,GetSource,BSTR*,pBstrSource) \
2851 ICOM_METHOD1 (HRESULT,GetDescription,BSTR*,pBstrDescription) \
2852 ICOM_METHOD1 (HRESULT,GetHelpFile,BSTR*,pBstrHelpFile) \
2853 ICOM_METHOD1 (HRESULT,GetHelpContext,DWORD*,pdwHelpContext)
2855 /*** IUnknown methods ***/
2856 #define IErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2857 #define IErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
2858 #define IErrorInfo_Release(p) (p)->lpVtbl->Release(p)
2859 /*** IErrorInfo methods ***/
2860 #define IErrorInfo_GetGUID(p,a) (p)->lpVtbl->GetGUID(p,a)
2861 #define IErrorInfo_GetSource(p,a) (p)->lpVtbl->GetSource(p,a)
2862 #define IErrorInfo_GetDescription(p,a) (p)->lpVtbl->GetDescription(p,a)
2863 #define IErrorInfo_GetHelpFile(p,a) (p)->lpVtbl->GetHelpFile(p,a)
2864 #define IErrorInfo_GetHelpContext(p,a) (p)->lpVtbl->GetHelpContext(p,a)
2866 #endif
2868 HRESULT CALLBACK IErrorInfo_GetGUID_Proxy(
2869 IErrorInfo* This,
2870 GUID* pGUID);
2871 void __RPC_STUB IErrorInfo_GetGUID_Stub(
2872 struct IRpcStubBuffer* This,
2873 struct IRpcChannelBuffer* pRpcChannelBuffer,
2874 PRPC_MESSAGE pRpcMessage,
2875 DWORD* pdwStubPhase);
2876 HRESULT CALLBACK IErrorInfo_GetSource_Proxy(
2877 IErrorInfo* This,
2878 BSTR* pBstrSource);
2879 void __RPC_STUB IErrorInfo_GetSource_Stub(
2880 struct IRpcStubBuffer* This,
2881 struct IRpcChannelBuffer* pRpcChannelBuffer,
2882 PRPC_MESSAGE pRpcMessage,
2883 DWORD* pdwStubPhase);
2884 HRESULT CALLBACK IErrorInfo_GetDescription_Proxy(
2885 IErrorInfo* This,
2886 BSTR* pBstrDescription);
2887 void __RPC_STUB IErrorInfo_GetDescription_Stub(
2888 struct IRpcStubBuffer* This,
2889 struct IRpcChannelBuffer* pRpcChannelBuffer,
2890 PRPC_MESSAGE pRpcMessage,
2891 DWORD* pdwStubPhase);
2892 HRESULT CALLBACK IErrorInfo_GetHelpFile_Proxy(
2893 IErrorInfo* This,
2894 BSTR* pBstrHelpFile);
2895 void __RPC_STUB IErrorInfo_GetHelpFile_Stub(
2896 struct IRpcStubBuffer* This,
2897 struct IRpcChannelBuffer* pRpcChannelBuffer,
2898 PRPC_MESSAGE pRpcMessage,
2899 DWORD* pdwStubPhase);
2900 HRESULT CALLBACK IErrorInfo_GetHelpContext_Proxy(
2901 IErrorInfo* This,
2902 DWORD* pdwHelpContext);
2903 void __RPC_STUB IErrorInfo_GetHelpContext_Stub(
2904 struct IRpcStubBuffer* This,
2905 struct IRpcChannelBuffer* pRpcChannelBuffer,
2906 PRPC_MESSAGE pRpcMessage,
2907 DWORD* pdwStubPhase);
2909 typedef struct ICreateErrorInfo ICreateErrorInfo;
2910 typedef ICreateErrorInfo *LPCREATEERRORINFO;
2912 /*****************************************************************************
2913 * ICreateErrorInfo interface
2915 DEFINE_GUID(IID_ICreateErrorInfo, 0x22f03340, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
2916 #if defined(__cplusplus) && !defined(CINTERFACE)
2917 struct ICreateErrorInfo: IUnknown {
2919 virtual HRESULT CALLBACK SetGUID(
2920 REFGUID rguid) = 0;
2922 virtual HRESULT CALLBACK SetSource(
2923 LPOLESTR szSource) = 0;
2925 virtual HRESULT CALLBACK SetDescription(
2926 LPOLESTR szDescription) = 0;
2928 virtual HRESULT CALLBACK SetHelpFile(
2929 LPOLESTR szHelpFile) = 0;
2931 virtual HRESULT CALLBACK SetHelpContext(
2932 DWORD dwHelpContext) = 0;
2934 } ICOM_COM_INTERFACE_ATTRIBUTE;
2935 #else
2936 typedef struct ICreateErrorInfoVtbl ICreateErrorInfoVtbl;
2937 struct ICreateErrorInfo {
2938 const ICreateErrorInfoVtbl* lpVtbl;
2940 struct ICreateErrorInfoVtbl {
2941 ICOM_MSVTABLE_COMPAT_FIELDS
2943 /*** IUnknown methods ***/
2944 HRESULT (CALLBACK *QueryInterface)(
2945 ICreateErrorInfo* This,
2946 REFIID riid,
2947 void** ppvObject);
2949 ULONG (CALLBACK *AddRef)(
2950 ICreateErrorInfo* This);
2952 ULONG (CALLBACK *Release)(
2953 ICreateErrorInfo* This);
2955 /*** ICreateErrorInfo methods ***/
2956 HRESULT (CALLBACK *SetGUID)(
2957 ICreateErrorInfo* This,
2958 REFGUID rguid);
2960 HRESULT (CALLBACK *SetSource)(
2961 ICreateErrorInfo* This,
2962 LPOLESTR szSource);
2964 HRESULT (CALLBACK *SetDescription)(
2965 ICreateErrorInfo* This,
2966 LPOLESTR szDescription);
2968 HRESULT (CALLBACK *SetHelpFile)(
2969 ICreateErrorInfo* This,
2970 LPOLESTR szHelpFile);
2972 HRESULT (CALLBACK *SetHelpContext)(
2973 ICreateErrorInfo* This,
2974 DWORD dwHelpContext);
2978 #define ICreateErrorInfo_IMETHODS \
2979 IUnknown_IMETHODS \
2980 ICOM_METHOD1 (HRESULT,SetGUID,REFGUID,rguid) \
2981 ICOM_METHOD1 (HRESULT,SetSource,LPOLESTR,szSource) \
2982 ICOM_METHOD1 (HRESULT,SetDescription,LPOLESTR,szDescription) \
2983 ICOM_METHOD1 (HRESULT,SetHelpFile,LPOLESTR,szHelpFile) \
2984 ICOM_METHOD1 (HRESULT,SetHelpContext,DWORD,dwHelpContext)
2986 /*** IUnknown methods ***/
2987 #define ICreateErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2988 #define ICreateErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
2989 #define ICreateErrorInfo_Release(p) (p)->lpVtbl->Release(p)
2990 /*** ICreateErrorInfo methods ***/
2991 #define ICreateErrorInfo_SetGUID(p,a) (p)->lpVtbl->SetGUID(p,a)
2992 #define ICreateErrorInfo_SetSource(p,a) (p)->lpVtbl->SetSource(p,a)
2993 #define ICreateErrorInfo_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
2994 #define ICreateErrorInfo_SetHelpFile(p,a) (p)->lpVtbl->SetHelpFile(p,a)
2995 #define ICreateErrorInfo_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
2997 #endif
2999 HRESULT CALLBACK ICreateErrorInfo_SetGUID_Proxy(
3000 ICreateErrorInfo* This,
3001 REFGUID rguid);
3002 void __RPC_STUB ICreateErrorInfo_SetGUID_Stub(
3003 struct IRpcStubBuffer* This,
3004 struct IRpcChannelBuffer* pRpcChannelBuffer,
3005 PRPC_MESSAGE pRpcMessage,
3006 DWORD* pdwStubPhase);
3007 HRESULT CALLBACK ICreateErrorInfo_SetSource_Proxy(
3008 ICreateErrorInfo* This,
3009 LPOLESTR szSource);
3010 void __RPC_STUB ICreateErrorInfo_SetSource_Stub(
3011 struct IRpcStubBuffer* This,
3012 struct IRpcChannelBuffer* pRpcChannelBuffer,
3013 PRPC_MESSAGE pRpcMessage,
3014 DWORD* pdwStubPhase);
3015 HRESULT CALLBACK ICreateErrorInfo_SetDescription_Proxy(
3016 ICreateErrorInfo* This,
3017 LPOLESTR szDescription);
3018 void __RPC_STUB ICreateErrorInfo_SetDescription_Stub(
3019 struct IRpcStubBuffer* This,
3020 struct IRpcChannelBuffer* pRpcChannelBuffer,
3021 PRPC_MESSAGE pRpcMessage,
3022 DWORD* pdwStubPhase);
3023 HRESULT CALLBACK ICreateErrorInfo_SetHelpFile_Proxy(
3024 ICreateErrorInfo* This,
3025 LPOLESTR szHelpFile);
3026 void __RPC_STUB ICreateErrorInfo_SetHelpFile_Stub(
3027 struct IRpcStubBuffer* This,
3028 struct IRpcChannelBuffer* pRpcChannelBuffer,
3029 PRPC_MESSAGE pRpcMessage,
3030 DWORD* pdwStubPhase);
3031 HRESULT CALLBACK ICreateErrorInfo_SetHelpContext_Proxy(
3032 ICreateErrorInfo* This,
3033 DWORD dwHelpContext);
3034 void __RPC_STUB ICreateErrorInfo_SetHelpContext_Stub(
3035 struct IRpcStubBuffer* This,
3036 struct IRpcChannelBuffer* pRpcChannelBuffer,
3037 PRPC_MESSAGE pRpcMessage,
3038 DWORD* pdwStubPhase);
3040 typedef struct ISupportErrorInfo ISupportErrorInfo;
3041 typedef ISupportErrorInfo *LPSUPPORTERRORINFO;
3043 /*****************************************************************************
3044 * ISupportErrorInfo interface
3046 DEFINE_GUID(IID_ISupportErrorInfo, 0xdf0b3d60, 0x548f, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
3047 #if defined(__cplusplus) && !defined(CINTERFACE)
3048 struct ISupportErrorInfo: IUnknown {
3050 virtual HRESULT CALLBACK InterfaceSupportsErrorInfo(
3051 REFIID riid) = 0;
3053 } ICOM_COM_INTERFACE_ATTRIBUTE;
3054 #else
3055 typedef struct ISupportErrorInfoVtbl ISupportErrorInfoVtbl;
3056 struct ISupportErrorInfo {
3057 const ISupportErrorInfoVtbl* lpVtbl;
3059 struct ISupportErrorInfoVtbl {
3060 ICOM_MSVTABLE_COMPAT_FIELDS
3062 /*** IUnknown methods ***/
3063 HRESULT (CALLBACK *QueryInterface)(
3064 ISupportErrorInfo* This,
3065 REFIID riid,
3066 void** ppvObject);
3068 ULONG (CALLBACK *AddRef)(
3069 ISupportErrorInfo* This);
3071 ULONG (CALLBACK *Release)(
3072 ISupportErrorInfo* This);
3074 /*** ISupportErrorInfo methods ***/
3075 HRESULT (CALLBACK *InterfaceSupportsErrorInfo)(
3076 ISupportErrorInfo* This,
3077 REFIID riid);
3081 #define ISupportErrorInfo_IMETHODS \
3082 IUnknown_IMETHODS \
3083 ICOM_METHOD1 (HRESULT,InterfaceSupportsErrorInfo,REFIID,riid)
3085 /*** IUnknown methods ***/
3086 #define ISupportErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3087 #define ISupportErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
3088 #define ISupportErrorInfo_Release(p) (p)->lpVtbl->Release(p)
3089 /*** ISupportErrorInfo methods ***/
3090 #define ISupportErrorInfo_InterfaceSupportsErrorInfo(p,a) (p)->lpVtbl->InterfaceSupportsErrorInfo(p,a)
3092 #endif
3094 HRESULT CALLBACK ISupportErrorInfo_InterfaceSupportsErrorInfo_Proxy(
3095 ISupportErrorInfo* This,
3096 REFIID riid);
3097 void __RPC_STUB ISupportErrorInfo_InterfaceSupportsErrorInfo_Stub(
3098 struct IRpcStubBuffer* This,
3099 struct IRpcChannelBuffer* pRpcChannelBuffer,
3100 PRPC_MESSAGE pRpcMessage,
3101 DWORD* pdwStubPhase);
3103 typedef struct ITypeFactory ITypeFactory;
3104 /*****************************************************************************
3105 * ITypeFactory interface
3107 DEFINE_GUID(IID_ITypeFactory, 0x0000002e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3108 #if defined(__cplusplus) && !defined(CINTERFACE)
3109 struct ITypeFactory: IUnknown {
3111 virtual HRESULT CALLBACK CreateFromTypeInfo(
3112 ITypeInfo* pTypeInfo,
3113 REFIID riid,
3114 IUnknown** ppv) = 0;
3116 } ICOM_COM_INTERFACE_ATTRIBUTE;
3117 #else
3118 typedef struct ITypeFactoryVtbl ITypeFactoryVtbl;
3119 struct ITypeFactory {
3120 const ITypeFactoryVtbl* lpVtbl;
3122 struct ITypeFactoryVtbl {
3123 ICOM_MSVTABLE_COMPAT_FIELDS
3125 /*** IUnknown methods ***/
3126 HRESULT (CALLBACK *QueryInterface)(
3127 ITypeFactory* This,
3128 REFIID riid,
3129 void** ppvObject);
3131 ULONG (CALLBACK *AddRef)(
3132 ITypeFactory* This);
3134 ULONG (CALLBACK *Release)(
3135 ITypeFactory* This);
3137 /*** ITypeFactory methods ***/
3138 HRESULT (CALLBACK *CreateFromTypeInfo)(
3139 ITypeFactory* This,
3140 ITypeInfo* pTypeInfo,
3141 REFIID riid,
3142 IUnknown** ppv);
3146 #define ITypeFactory_IMETHODS \
3147 IUnknown_IMETHODS \
3148 ICOM_METHOD3 (HRESULT,CreateFromTypeInfo,ITypeInfo*,pTypeInfo,REFIID,riid,IUnknown**,ppv)
3150 /*** IUnknown methods ***/
3151 #define ITypeFactory_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3152 #define ITypeFactory_AddRef(p) (p)->lpVtbl->AddRef(p)
3153 #define ITypeFactory_Release(p) (p)->lpVtbl->Release(p)
3154 /*** ITypeFactory methods ***/
3155 #define ITypeFactory_CreateFromTypeInfo(p,a,b,c) (p)->lpVtbl->CreateFromTypeInfo(p,a,b,c)
3157 #endif
3159 HRESULT CALLBACK ITypeFactory_CreateFromTypeInfo_Proxy(
3160 ITypeFactory* This,
3161 ITypeInfo* pTypeInfo,
3162 REFIID riid,
3163 IUnknown** ppv);
3164 void __RPC_STUB ITypeFactory_CreateFromTypeInfo_Stub(
3165 struct IRpcStubBuffer* This,
3166 struct IRpcChannelBuffer* pRpcChannelBuffer,
3167 PRPC_MESSAGE pRpcMessage,
3168 DWORD* pdwStubPhase);
3170 typedef struct ITypeMarshal ITypeMarshal;
3171 /*****************************************************************************
3172 * ITypeMarshal interface
3174 DEFINE_GUID(IID_ITypeMarshal, 0x0000002d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3175 #if defined(__cplusplus) && !defined(CINTERFACE)
3176 struct ITypeMarshal: IUnknown {
3178 virtual HRESULT CALLBACK Size(
3179 PVOID pvType,
3180 DWORD dwDestContext,
3181 PVOID pvDestContext,
3182 ULONG* pSize) = 0;
3184 virtual HRESULT CALLBACK Marshal(
3185 PVOID pvType,
3186 DWORD dwDestContext,
3187 PVOID pvDestContext,
3188 ULONG cbBufferLength,
3189 BYTE* pBuffer,
3190 ULONG* pcbWritten) = 0;
3192 virtual HRESULT CALLBACK Unmarshal(
3193 PVOID pvType,
3194 DWORD dwFlags,
3195 ULONG cbBufferLength,
3196 BYTE* pBuffer,
3197 ULONG* pcbRead) = 0;
3199 virtual HRESULT CALLBACK Free(
3200 PVOID pvType) = 0;
3202 } ICOM_COM_INTERFACE_ATTRIBUTE;
3203 #else
3204 typedef struct ITypeMarshalVtbl ITypeMarshalVtbl;
3205 struct ITypeMarshal {
3206 const ITypeMarshalVtbl* lpVtbl;
3208 struct ITypeMarshalVtbl {
3209 ICOM_MSVTABLE_COMPAT_FIELDS
3211 /*** IUnknown methods ***/
3212 HRESULT (CALLBACK *QueryInterface)(
3213 ITypeMarshal* This,
3214 REFIID riid,
3215 void** ppvObject);
3217 ULONG (CALLBACK *AddRef)(
3218 ITypeMarshal* This);
3220 ULONG (CALLBACK *Release)(
3221 ITypeMarshal* This);
3223 /*** ITypeMarshal methods ***/
3224 HRESULT (CALLBACK *Size)(
3225 ITypeMarshal* This,
3226 PVOID pvType,
3227 DWORD dwDestContext,
3228 PVOID pvDestContext,
3229 ULONG* pSize);
3231 HRESULT (CALLBACK *Marshal)(
3232 ITypeMarshal* This,
3233 PVOID pvType,
3234 DWORD dwDestContext,
3235 PVOID pvDestContext,
3236 ULONG cbBufferLength,
3237 BYTE* pBuffer,
3238 ULONG* pcbWritten);
3240 HRESULT (CALLBACK *Unmarshal)(
3241 ITypeMarshal* This,
3242 PVOID pvType,
3243 DWORD dwFlags,
3244 ULONG cbBufferLength,
3245 BYTE* pBuffer,
3246 ULONG* pcbRead);
3248 HRESULT (CALLBACK *Free)(
3249 ITypeMarshal* This,
3250 PVOID pvType);
3254 #define ITypeMarshal_IMETHODS \
3255 IUnknown_IMETHODS \
3256 ICOM_METHOD4 (HRESULT,Size,PVOID,pvType,DWORD,dwDestContext,PVOID,pvDestContext,ULONG*,pSize) \
3257 ICOM_METHOD6 (HRESULT,Marshal,PVOID,pvType,DWORD,dwDestContext,PVOID,pvDestContext,ULONG,cbBufferLength,BYTE*,pBuffer,ULONG*,pcbWritten) \
3258 ICOM_METHOD5 (HRESULT,Unmarshal,PVOID,pvType,DWORD,dwFlags,ULONG,cbBufferLength,BYTE*,pBuffer,ULONG*,pcbRead) \
3259 ICOM_METHOD1 (HRESULT,Free,PVOID,pvType)
3261 /*** IUnknown methods ***/
3262 #define ITypeMarshal_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3263 #define ITypeMarshal_AddRef(p) (p)->lpVtbl->AddRef(p)
3264 #define ITypeMarshal_Release(p) (p)->lpVtbl->Release(p)
3265 /*** ITypeMarshal methods ***/
3266 #define ITypeMarshal_Size(p,a,b,c,d) (p)->lpVtbl->Size(p,a,b,c,d)
3267 #define ITypeMarshal_Marshal(p,a,b,c,d,e,f) (p)->lpVtbl->Marshal(p,a,b,c,d,e,f)
3268 #define ITypeMarshal_Unmarshal(p,a,b,c,d,e) (p)->lpVtbl->Unmarshal(p,a,b,c,d,e)
3269 #define ITypeMarshal_Free(p,a) (p)->lpVtbl->Free(p,a)
3271 #endif
3273 HRESULT CALLBACK ITypeMarshal_Size_Proxy(
3274 ITypeMarshal* This,
3275 PVOID pvType,
3276 DWORD dwDestContext,
3277 PVOID pvDestContext,
3278 ULONG* pSize);
3279 void __RPC_STUB ITypeMarshal_Size_Stub(
3280 struct IRpcStubBuffer* This,
3281 struct IRpcChannelBuffer* pRpcChannelBuffer,
3282 PRPC_MESSAGE pRpcMessage,
3283 DWORD* pdwStubPhase);
3284 HRESULT CALLBACK ITypeMarshal_Marshal_Proxy(
3285 ITypeMarshal* This,
3286 PVOID pvType,
3287 DWORD dwDestContext,
3288 PVOID pvDestContext,
3289 ULONG cbBufferLength,
3290 BYTE* pBuffer,
3291 ULONG* pcbWritten);
3292 void __RPC_STUB ITypeMarshal_Marshal_Stub(
3293 struct IRpcStubBuffer* This,
3294 struct IRpcChannelBuffer* pRpcChannelBuffer,
3295 PRPC_MESSAGE pRpcMessage,
3296 DWORD* pdwStubPhase);
3297 HRESULT CALLBACK ITypeMarshal_Unmarshal_Proxy(
3298 ITypeMarshal* This,
3299 PVOID pvType,
3300 DWORD dwFlags,
3301 ULONG cbBufferLength,
3302 BYTE* pBuffer,
3303 ULONG* pcbRead);
3304 void __RPC_STUB ITypeMarshal_Unmarshal_Stub(
3305 struct IRpcStubBuffer* This,
3306 struct IRpcChannelBuffer* pRpcChannelBuffer,
3307 PRPC_MESSAGE pRpcMessage,
3308 DWORD* pdwStubPhase);
3309 HRESULT CALLBACK ITypeMarshal_Free_Proxy(
3310 ITypeMarshal* This,
3311 PVOID pvType);
3312 void __RPC_STUB ITypeMarshal_Free_Stub(
3313 struct IRpcStubBuffer* This,
3314 struct IRpcChannelBuffer* pRpcChannelBuffer,
3315 PRPC_MESSAGE pRpcMessage,
3316 DWORD* pdwStubPhase);
3318 typedef IRecordInfo *LPRECORDINFO;
3320 /*****************************************************************************
3321 * IRecordInfo interface
3323 DEFINE_GUID(IID_IRecordInfo, 0x0000002f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3324 #if defined(__cplusplus) && !defined(CINTERFACE)
3325 struct IRecordInfo: IUnknown {
3327 virtual HRESULT CALLBACK RecordInit(
3328 PVOID pvNew) = 0;
3330 virtual HRESULT CALLBACK RecordClear(
3331 PVOID pvExisting) = 0;
3333 virtual HRESULT CALLBACK RecordCopy(
3334 PVOID pvExisting,
3335 PVOID pvNew) = 0;
3337 virtual HRESULT CALLBACK GetGuid(
3338 GUID* pguid) = 0;
3340 virtual HRESULT CALLBACK GetName(
3341 BSTR* pbstrName) = 0;
3343 virtual HRESULT CALLBACK GetSize(
3344 ULONG* pcbSize) = 0;
3346 virtual HRESULT CALLBACK GetTypeInfo(
3347 ITypeInfo** ppTypeInfo) = 0;
3349 virtual HRESULT CALLBACK GetField(
3350 PVOID pvData,
3351 LPCOLESTR szFieldName,
3352 VARIANT* pvarField) = 0;
3354 virtual HRESULT CALLBACK GetFieldNoCopy(
3355 PVOID pvData,
3356 LPCOLESTR szFieldName,
3357 VARIANT* pvarField,
3358 PVOID* ppvDataCArray) = 0;
3360 virtual HRESULT CALLBACK PutField(
3361 ULONG wFlags,
3362 PVOID pvData,
3363 LPCOLESTR szFieldName,
3364 VARIANT* pvarField) = 0;
3366 virtual HRESULT CALLBACK PutFieldNoCopy(
3367 ULONG wFlags,
3368 PVOID pvData,
3369 LPCOLESTR szFieldName,
3370 VARIANT* pvarField) = 0;
3372 virtual HRESULT CALLBACK GetFieldNames(
3373 ULONG* pcNames,
3374 BSTR* rgBstrNames) = 0;
3376 virtual BOOL CALLBACK IsMatchingType(
3377 IRecordInfo* pRecordInfo) = 0;
3379 virtual PVOID CALLBACK RecordCreate(
3380 ) = 0;
3382 virtual HRESULT CALLBACK RecordCreateCopy(
3383 PVOID pvSource,
3384 PVOID* ppvDest) = 0;
3386 virtual HRESULT CALLBACK RecordDestroy(
3387 PVOID pvRecord) = 0;
3389 } ICOM_COM_INTERFACE_ATTRIBUTE;
3390 #else
3391 typedef struct IRecordInfoVtbl IRecordInfoVtbl;
3392 struct IRecordInfo {
3393 const IRecordInfoVtbl* lpVtbl;
3395 struct IRecordInfoVtbl {
3396 ICOM_MSVTABLE_COMPAT_FIELDS
3398 /*** IUnknown methods ***/
3399 HRESULT (CALLBACK *QueryInterface)(
3400 IRecordInfo* This,
3401 REFIID riid,
3402 void** ppvObject);
3404 ULONG (CALLBACK *AddRef)(
3405 IRecordInfo* This);
3407 ULONG (CALLBACK *Release)(
3408 IRecordInfo* This);
3410 /*** IRecordInfo methods ***/
3411 HRESULT (CALLBACK *RecordInit)(
3412 IRecordInfo* This,
3413 PVOID pvNew);
3415 HRESULT (CALLBACK *RecordClear)(
3416 IRecordInfo* This,
3417 PVOID pvExisting);
3419 HRESULT (CALLBACK *RecordCopy)(
3420 IRecordInfo* This,
3421 PVOID pvExisting,
3422 PVOID pvNew);
3424 HRESULT (CALLBACK *GetGuid)(
3425 IRecordInfo* This,
3426 GUID* pguid);
3428 HRESULT (CALLBACK *GetName)(
3429 IRecordInfo* This,
3430 BSTR* pbstrName);
3432 HRESULT (CALLBACK *GetSize)(
3433 IRecordInfo* This,
3434 ULONG* pcbSize);
3436 HRESULT (CALLBACK *GetTypeInfo)(
3437 IRecordInfo* This,
3438 ITypeInfo** ppTypeInfo);
3440 HRESULT (CALLBACK *GetField)(
3441 IRecordInfo* This,
3442 PVOID pvData,
3443 LPCOLESTR szFieldName,
3444 VARIANT* pvarField);
3446 HRESULT (CALLBACK *GetFieldNoCopy)(
3447 IRecordInfo* This,
3448 PVOID pvData,
3449 LPCOLESTR szFieldName,
3450 VARIANT* pvarField,
3451 PVOID* ppvDataCArray);
3453 HRESULT (CALLBACK *PutField)(
3454 IRecordInfo* This,
3455 ULONG wFlags,
3456 PVOID pvData,
3457 LPCOLESTR szFieldName,
3458 VARIANT* pvarField);
3460 HRESULT (CALLBACK *PutFieldNoCopy)(
3461 IRecordInfo* This,
3462 ULONG wFlags,
3463 PVOID pvData,
3464 LPCOLESTR szFieldName,
3465 VARIANT* pvarField);
3467 HRESULT (CALLBACK *GetFieldNames)(
3468 IRecordInfo* This,
3469 ULONG* pcNames,
3470 BSTR* rgBstrNames);
3472 BOOL (CALLBACK *IsMatchingType)(
3473 IRecordInfo* This,
3474 IRecordInfo* pRecordInfo);
3476 PVOID (CALLBACK *RecordCreate)(
3477 IRecordInfo* This);
3479 HRESULT (CALLBACK *RecordCreateCopy)(
3480 IRecordInfo* This,
3481 PVOID pvSource,
3482 PVOID* ppvDest);
3484 HRESULT (CALLBACK *RecordDestroy)(
3485 IRecordInfo* This,
3486 PVOID pvRecord);
3490 #define IRecordInfo_IMETHODS \
3491 IUnknown_IMETHODS \
3492 ICOM_METHOD1 (HRESULT,RecordInit,PVOID,pvNew) \
3493 ICOM_METHOD1 (HRESULT,RecordClear,PVOID,pvExisting) \
3494 ICOM_METHOD2 (HRESULT,RecordCopy,PVOID,pvExisting,PVOID,pvNew) \
3495 ICOM_METHOD1 (HRESULT,GetGuid,GUID*,pguid) \
3496 ICOM_METHOD1 (HRESULT,GetName,BSTR*,pbstrName) \
3497 ICOM_METHOD1 (HRESULT,GetSize,ULONG*,pcbSize) \
3498 ICOM_METHOD1 (HRESULT,GetTypeInfo,ITypeInfo**,ppTypeInfo) \
3499 ICOM_METHOD3 (HRESULT,GetField,PVOID,pvData,LPCOLESTR,szFieldName,VARIANT*,pvarField) \
3500 ICOM_METHOD4 (HRESULT,GetFieldNoCopy,PVOID,pvData,LPCOLESTR,szFieldName,VARIANT*,pvarField,PVOID*,ppvDataCArray) \
3501 ICOM_METHOD4 (HRESULT,PutField,ULONG,wFlags,PVOID,pvData,LPCOLESTR,szFieldName,VARIANT*,pvarField) \
3502 ICOM_METHOD4 (HRESULT,PutFieldNoCopy,ULONG,wFlags,PVOID,pvData,LPCOLESTR,szFieldName,VARIANT*,pvarField) \
3503 ICOM_METHOD2 (HRESULT,GetFieldNames,ULONG*,pcNames,BSTR*,rgBstrNames) \
3504 ICOM_METHOD1 (BOOL,IsMatchingType,IRecordInfo*,pRecordInfo) \
3505 ICOM_METHOD (PVOID,RecordCreate) \
3506 ICOM_METHOD2 (HRESULT,RecordCreateCopy,PVOID,pvSource,PVOID*,ppvDest) \
3507 ICOM_METHOD1 (HRESULT,RecordDestroy,PVOID,pvRecord)
3509 /*** IUnknown methods ***/
3510 #define IRecordInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3511 #define IRecordInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
3512 #define IRecordInfo_Release(p) (p)->lpVtbl->Release(p)
3513 /*** IRecordInfo methods ***/
3514 #define IRecordInfo_RecordInit(p,a) (p)->lpVtbl->RecordInit(p,a)
3515 #define IRecordInfo_RecordClear(p,a) (p)->lpVtbl->RecordClear(p,a)
3516 #define IRecordInfo_RecordCopy(p,a,b) (p)->lpVtbl->RecordCopy(p,a,b)
3517 #define IRecordInfo_GetGuid(p,a) (p)->lpVtbl->GetGuid(p,a)
3518 #define IRecordInfo_GetName(p,a) (p)->lpVtbl->GetName(p,a)
3519 #define IRecordInfo_GetSize(p,a) (p)->lpVtbl->GetSize(p,a)
3520 #define IRecordInfo_GetTypeInfo(p,a) (p)->lpVtbl->GetTypeInfo(p,a)
3521 #define IRecordInfo_GetField(p,a,b,c) (p)->lpVtbl->GetField(p,a,b,c)
3522 #define IRecordInfo_GetFieldNoCopy(p,a,b,c,d) (p)->lpVtbl->GetFieldNoCopy(p,a,b,c,d)
3523 #define IRecordInfo_PutField(p,a,b,c,d) (p)->lpVtbl->PutField(p,a,b,c,d)
3524 #define IRecordInfo_PutFieldNoCopy(p,a,b,c,d) (p)->lpVtbl->PutFieldNoCopy(p,a,b,c,d)
3525 #define IRecordInfo_GetFieldNames(p,a,b) (p)->lpVtbl->GetFieldNames(p,a,b)
3526 #define IRecordInfo_IsMatchingType(p,a) (p)->lpVtbl->IsMatchingType(p,a)
3527 #define IRecordInfo_RecordCreate(p) (p)->lpVtbl->RecordCreate(p)
3528 #define IRecordInfo_RecordCreateCopy(p,a,b) (p)->lpVtbl->RecordCreateCopy(p,a,b)
3529 #define IRecordInfo_RecordDestroy(p,a) (p)->lpVtbl->RecordDestroy(p,a)
3531 #endif
3533 HRESULT CALLBACK IRecordInfo_RecordInit_Proxy(
3534 IRecordInfo* This,
3535 PVOID pvNew);
3536 void __RPC_STUB IRecordInfo_RecordInit_Stub(
3537 struct IRpcStubBuffer* This,
3538 struct IRpcChannelBuffer* pRpcChannelBuffer,
3539 PRPC_MESSAGE pRpcMessage,
3540 DWORD* pdwStubPhase);
3541 HRESULT CALLBACK IRecordInfo_RecordClear_Proxy(
3542 IRecordInfo* This,
3543 PVOID pvExisting);
3544 void __RPC_STUB IRecordInfo_RecordClear_Stub(
3545 struct IRpcStubBuffer* This,
3546 struct IRpcChannelBuffer* pRpcChannelBuffer,
3547 PRPC_MESSAGE pRpcMessage,
3548 DWORD* pdwStubPhase);
3549 HRESULT CALLBACK IRecordInfo_RecordCopy_Proxy(
3550 IRecordInfo* This,
3551 PVOID pvExisting,
3552 PVOID pvNew);
3553 void __RPC_STUB IRecordInfo_RecordCopy_Stub(
3554 struct IRpcStubBuffer* This,
3555 struct IRpcChannelBuffer* pRpcChannelBuffer,
3556 PRPC_MESSAGE pRpcMessage,
3557 DWORD* pdwStubPhase);
3558 HRESULT CALLBACK IRecordInfo_GetGuid_Proxy(
3559 IRecordInfo* This,
3560 GUID* pguid);
3561 void __RPC_STUB IRecordInfo_GetGuid_Stub(
3562 struct IRpcStubBuffer* This,
3563 struct IRpcChannelBuffer* pRpcChannelBuffer,
3564 PRPC_MESSAGE pRpcMessage,
3565 DWORD* pdwStubPhase);
3566 HRESULT CALLBACK IRecordInfo_GetName_Proxy(
3567 IRecordInfo* This,
3568 BSTR* pbstrName);
3569 void __RPC_STUB IRecordInfo_GetName_Stub(
3570 struct IRpcStubBuffer* This,
3571 struct IRpcChannelBuffer* pRpcChannelBuffer,
3572 PRPC_MESSAGE pRpcMessage,
3573 DWORD* pdwStubPhase);
3574 HRESULT CALLBACK IRecordInfo_GetSize_Proxy(
3575 IRecordInfo* This,
3576 ULONG* pcbSize);
3577 void __RPC_STUB IRecordInfo_GetSize_Stub(
3578 struct IRpcStubBuffer* This,
3579 struct IRpcChannelBuffer* pRpcChannelBuffer,
3580 PRPC_MESSAGE pRpcMessage,
3581 DWORD* pdwStubPhase);
3582 HRESULT CALLBACK IRecordInfo_GetTypeInfo_Proxy(
3583 IRecordInfo* This,
3584 ITypeInfo** ppTypeInfo);
3585 void __RPC_STUB IRecordInfo_GetTypeInfo_Stub(
3586 struct IRpcStubBuffer* This,
3587 struct IRpcChannelBuffer* pRpcChannelBuffer,
3588 PRPC_MESSAGE pRpcMessage,
3589 DWORD* pdwStubPhase);
3590 HRESULT CALLBACK IRecordInfo_GetField_Proxy(
3591 IRecordInfo* This,
3592 PVOID pvData,
3593 LPCOLESTR szFieldName,
3594 VARIANT* pvarField);
3595 void __RPC_STUB IRecordInfo_GetField_Stub(
3596 struct IRpcStubBuffer* This,
3597 struct IRpcChannelBuffer* pRpcChannelBuffer,
3598 PRPC_MESSAGE pRpcMessage,
3599 DWORD* pdwStubPhase);
3600 HRESULT CALLBACK IRecordInfo_GetFieldNoCopy_Proxy(
3601 IRecordInfo* This,
3602 PVOID pvData,
3603 LPCOLESTR szFieldName,
3604 VARIANT* pvarField,
3605 PVOID* ppvDataCArray);
3606 void __RPC_STUB IRecordInfo_GetFieldNoCopy_Stub(
3607 struct IRpcStubBuffer* This,
3608 struct IRpcChannelBuffer* pRpcChannelBuffer,
3609 PRPC_MESSAGE pRpcMessage,
3610 DWORD* pdwStubPhase);
3611 HRESULT CALLBACK IRecordInfo_PutField_Proxy(
3612 IRecordInfo* This,
3613 ULONG wFlags,
3614 PVOID pvData,
3615 LPCOLESTR szFieldName,
3616 VARIANT* pvarField);
3617 void __RPC_STUB IRecordInfo_PutField_Stub(
3618 struct IRpcStubBuffer* This,
3619 struct IRpcChannelBuffer* pRpcChannelBuffer,
3620 PRPC_MESSAGE pRpcMessage,
3621 DWORD* pdwStubPhase);
3622 HRESULT CALLBACK IRecordInfo_PutFieldNoCopy_Proxy(
3623 IRecordInfo* This,
3624 ULONG wFlags,
3625 PVOID pvData,
3626 LPCOLESTR szFieldName,
3627 VARIANT* pvarField);
3628 void __RPC_STUB IRecordInfo_PutFieldNoCopy_Stub(
3629 struct IRpcStubBuffer* This,
3630 struct IRpcChannelBuffer* pRpcChannelBuffer,
3631 PRPC_MESSAGE pRpcMessage,
3632 DWORD* pdwStubPhase);
3633 HRESULT CALLBACK IRecordInfo_GetFieldNames_Proxy(
3634 IRecordInfo* This,
3635 ULONG* pcNames,
3636 BSTR* rgBstrNames);
3637 void __RPC_STUB IRecordInfo_GetFieldNames_Stub(
3638 struct IRpcStubBuffer* This,
3639 struct IRpcChannelBuffer* pRpcChannelBuffer,
3640 PRPC_MESSAGE pRpcMessage,
3641 DWORD* pdwStubPhase);
3642 BOOL CALLBACK IRecordInfo_IsMatchingType_Proxy(
3643 IRecordInfo* This,
3644 IRecordInfo* pRecordInfo);
3645 void __RPC_STUB IRecordInfo_IsMatchingType_Stub(
3646 struct IRpcStubBuffer* This,
3647 struct IRpcChannelBuffer* pRpcChannelBuffer,
3648 PRPC_MESSAGE pRpcMessage,
3649 DWORD* pdwStubPhase);
3650 PVOID CALLBACK IRecordInfo_RecordCreate_Proxy(
3651 IRecordInfo* This);
3652 void __RPC_STUB IRecordInfo_RecordCreate_Stub(
3653 struct IRpcStubBuffer* This,
3654 struct IRpcChannelBuffer* pRpcChannelBuffer,
3655 PRPC_MESSAGE pRpcMessage,
3656 DWORD* pdwStubPhase);
3657 HRESULT CALLBACK IRecordInfo_RecordCreateCopy_Proxy(
3658 IRecordInfo* This,
3659 PVOID pvSource,
3660 PVOID* ppvDest);
3661 void __RPC_STUB IRecordInfo_RecordCreateCopy_Stub(
3662 struct IRpcStubBuffer* This,
3663 struct IRpcChannelBuffer* pRpcChannelBuffer,
3664 PRPC_MESSAGE pRpcMessage,
3665 DWORD* pdwStubPhase);
3666 HRESULT CALLBACK IRecordInfo_RecordDestroy_Proxy(
3667 IRecordInfo* This,
3668 PVOID pvRecord);
3669 void __RPC_STUB IRecordInfo_RecordDestroy_Stub(
3670 struct IRpcStubBuffer* This,
3671 struct IRpcChannelBuffer* pRpcChannelBuffer,
3672 PRPC_MESSAGE pRpcMessage,
3673 DWORD* pdwStubPhase);
3675 typedef struct ICreateTypeInfo ICreateTypeInfo;
3676 typedef ICreateTypeInfo *LPCREATETYPEINFO;
3678 /*****************************************************************************
3679 * ICreateTypeInfo interface
3681 DEFINE_GUID(IID_ICreateTypeInfo, 0x00020405, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3682 #if defined(__cplusplus) && !defined(CINTERFACE)
3683 struct ICreateTypeInfo: IUnknown {
3685 virtual HRESULT CALLBACK SetGuid(
3686 REFGUID guid) = 0;
3688 virtual HRESULT CALLBACK SetTypeFlags(
3689 UINT uTypeFlags) = 0;
3691 virtual HRESULT CALLBACK SetDocString(
3692 LPOLESTR pStrDoc) = 0;
3694 virtual HRESULT CALLBACK SetHelpContext(
3695 DWORD dwHelpContext) = 0;
3697 virtual HRESULT CALLBACK SetVersion(
3698 WORD wMajorVerNum,
3699 WORD wMinorVerNum) = 0;
3701 virtual HRESULT CALLBACK AddRefTypeInfo(
3702 ITypeInfo* pTInfo,
3703 HREFTYPE* phRefType) = 0;
3705 virtual HRESULT CALLBACK AddFuncDesc(
3706 UINT index,
3707 FUNCDESC* pFuncDesc) = 0;
3709 virtual HRESULT CALLBACK AddImplType(
3710 UINT index,
3711 HREFTYPE hRefType) = 0;
3713 virtual HRESULT CALLBACK SetImplTypeFlags(
3714 UINT index,
3715 INT implTypeFlags) = 0;
3717 virtual HRESULT CALLBACK SetAlignment(
3718 WORD cbAlignment) = 0;
3720 virtual HRESULT CALLBACK SetSchema(
3721 LPOLESTR pStrSchema) = 0;
3723 virtual HRESULT CALLBACK AddVarDesc(
3724 UINT index,
3725 VARDESC* pVarDesc) = 0;
3727 virtual HRESULT CALLBACK SetFuncAndParamNames(
3728 UINT index,
3729 LPOLESTR* rgszNames,
3730 UINT cNames) = 0;
3732 virtual HRESULT CALLBACK SetVarName(
3733 UINT index,
3734 LPOLESTR szName) = 0;
3736 virtual HRESULT CALLBACK SetTypeDescAlias(
3737 TYPEDESC* pTDescAlias) = 0;
3739 virtual HRESULT CALLBACK DefineFuncAsDllEntry(
3740 UINT index,
3741 LPOLESTR szDllName,
3742 LPOLESTR szProcName) = 0;
3744 virtual HRESULT CALLBACK SetFuncDocString(
3745 UINT index,
3746 LPOLESTR szDocString) = 0;
3748 virtual HRESULT CALLBACK SetVarDocString(
3749 UINT index,
3750 LPOLESTR szDocString) = 0;
3752 virtual HRESULT CALLBACK SetFuncHelpContext(
3753 UINT index,
3754 DWORD dwHelpContext) = 0;
3756 virtual HRESULT CALLBACK SetVarHelpContext(
3757 UINT index,
3758 DWORD dwHelpContext) = 0;
3760 virtual HRESULT CALLBACK SetMops(
3761 UINT index,
3762 BSTR bstrMops) = 0;
3764 virtual HRESULT CALLBACK SetTypeIdldesc(
3765 IDLDESC* pIdlDesc) = 0;
3767 virtual HRESULT CALLBACK LayOut(
3768 ) = 0;
3770 } ICOM_COM_INTERFACE_ATTRIBUTE;
3771 #else
3772 typedef struct ICreateTypeInfoVtbl ICreateTypeInfoVtbl;
3773 struct ICreateTypeInfo {
3774 const ICreateTypeInfoVtbl* lpVtbl;
3776 struct ICreateTypeInfoVtbl {
3777 ICOM_MSVTABLE_COMPAT_FIELDS
3779 /*** IUnknown methods ***/
3780 HRESULT (CALLBACK *QueryInterface)(
3781 ICreateTypeInfo* This,
3782 REFIID riid,
3783 void** ppvObject);
3785 ULONG (CALLBACK *AddRef)(
3786 ICreateTypeInfo* This);
3788 ULONG (CALLBACK *Release)(
3789 ICreateTypeInfo* This);
3791 /*** ICreateTypeInfo methods ***/
3792 HRESULT (CALLBACK *SetGuid)(
3793 ICreateTypeInfo* This,
3794 REFGUID guid);
3796 HRESULT (CALLBACK *SetTypeFlags)(
3797 ICreateTypeInfo* This,
3798 UINT uTypeFlags);
3800 HRESULT (CALLBACK *SetDocString)(
3801 ICreateTypeInfo* This,
3802 LPOLESTR pStrDoc);
3804 HRESULT (CALLBACK *SetHelpContext)(
3805 ICreateTypeInfo* This,
3806 DWORD dwHelpContext);
3808 HRESULT (CALLBACK *SetVersion)(
3809 ICreateTypeInfo* This,
3810 WORD wMajorVerNum,
3811 WORD wMinorVerNum);
3813 HRESULT (CALLBACK *AddRefTypeInfo)(
3814 ICreateTypeInfo* This,
3815 ITypeInfo* pTInfo,
3816 HREFTYPE* phRefType);
3818 HRESULT (CALLBACK *AddFuncDesc)(
3819 ICreateTypeInfo* This,
3820 UINT index,
3821 FUNCDESC* pFuncDesc);
3823 HRESULT (CALLBACK *AddImplType)(
3824 ICreateTypeInfo* This,
3825 UINT index,
3826 HREFTYPE hRefType);
3828 HRESULT (CALLBACK *SetImplTypeFlags)(
3829 ICreateTypeInfo* This,
3830 UINT index,
3831 INT implTypeFlags);
3833 HRESULT (CALLBACK *SetAlignment)(
3834 ICreateTypeInfo* This,
3835 WORD cbAlignment);
3837 HRESULT (CALLBACK *SetSchema)(
3838 ICreateTypeInfo* This,
3839 LPOLESTR pStrSchema);
3841 HRESULT (CALLBACK *AddVarDesc)(
3842 ICreateTypeInfo* This,
3843 UINT index,
3844 VARDESC* pVarDesc);
3846 HRESULT (CALLBACK *SetFuncAndParamNames)(
3847 ICreateTypeInfo* This,
3848 UINT index,
3849 LPOLESTR* rgszNames,
3850 UINT cNames);
3852 HRESULT (CALLBACK *SetVarName)(
3853 ICreateTypeInfo* This,
3854 UINT index,
3855 LPOLESTR szName);
3857 HRESULT (CALLBACK *SetTypeDescAlias)(
3858 ICreateTypeInfo* This,
3859 TYPEDESC* pTDescAlias);
3861 HRESULT (CALLBACK *DefineFuncAsDllEntry)(
3862 ICreateTypeInfo* This,
3863 UINT index,
3864 LPOLESTR szDllName,
3865 LPOLESTR szProcName);
3867 HRESULT (CALLBACK *SetFuncDocString)(
3868 ICreateTypeInfo* This,
3869 UINT index,
3870 LPOLESTR szDocString);
3872 HRESULT (CALLBACK *SetVarDocString)(
3873 ICreateTypeInfo* This,
3874 UINT index,
3875 LPOLESTR szDocString);
3877 HRESULT (CALLBACK *SetFuncHelpContext)(
3878 ICreateTypeInfo* This,
3879 UINT index,
3880 DWORD dwHelpContext);
3882 HRESULT (CALLBACK *SetVarHelpContext)(
3883 ICreateTypeInfo* This,
3884 UINT index,
3885 DWORD dwHelpContext);
3887 HRESULT (CALLBACK *SetMops)(
3888 ICreateTypeInfo* This,
3889 UINT index,
3890 BSTR bstrMops);
3892 HRESULT (CALLBACK *SetTypeIdldesc)(
3893 ICreateTypeInfo* This,
3894 IDLDESC* pIdlDesc);
3896 HRESULT (CALLBACK *LayOut)(
3897 ICreateTypeInfo* This);
3901 #define ICreateTypeInfo_IMETHODS \
3902 IUnknown_IMETHODS \
3903 ICOM_METHOD1 (HRESULT,SetGuid,REFGUID,guid) \
3904 ICOM_METHOD1 (HRESULT,SetTypeFlags,UINT,uTypeFlags) \
3905 ICOM_METHOD1 (HRESULT,SetDocString,LPOLESTR,pStrDoc) \
3906 ICOM_METHOD1 (HRESULT,SetHelpContext,DWORD,dwHelpContext) \
3907 ICOM_METHOD2 (HRESULT,SetVersion,WORD,wMajorVerNum,WORD,wMinorVerNum) \
3908 ICOM_METHOD2 (HRESULT,AddRefTypeInfo,ITypeInfo*,pTInfo,HREFTYPE*,phRefType) \
3909 ICOM_METHOD2 (HRESULT,AddFuncDesc,UINT,index,FUNCDESC*,pFuncDesc) \
3910 ICOM_METHOD2 (HRESULT,AddImplType,UINT,index,HREFTYPE,hRefType) \
3911 ICOM_METHOD2 (HRESULT,SetImplTypeFlags,UINT,index,INT,implTypeFlags) \
3912 ICOM_METHOD1 (HRESULT,SetAlignment,WORD,cbAlignment) \
3913 ICOM_METHOD1 (HRESULT,SetSchema,LPOLESTR,pStrSchema) \
3914 ICOM_METHOD2 (HRESULT,AddVarDesc,UINT,index,VARDESC*,pVarDesc) \
3915 ICOM_METHOD3 (HRESULT,SetFuncAndParamNames,UINT,index,LPOLESTR*,rgszNames,UINT,cNames) \
3916 ICOM_METHOD2 (HRESULT,SetVarName,UINT,index,LPOLESTR,szName) \
3917 ICOM_METHOD1 (HRESULT,SetTypeDescAlias,TYPEDESC*,pTDescAlias) \
3918 ICOM_METHOD3 (HRESULT,DefineFuncAsDllEntry,UINT,index,LPOLESTR,szDllName,LPOLESTR,szProcName) \
3919 ICOM_METHOD2 (HRESULT,SetFuncDocString,UINT,index,LPOLESTR,szDocString) \
3920 ICOM_METHOD2 (HRESULT,SetVarDocString,UINT,index,LPOLESTR,szDocString) \
3921 ICOM_METHOD2 (HRESULT,SetFuncHelpContext,UINT,index,DWORD,dwHelpContext) \
3922 ICOM_METHOD2 (HRESULT,SetVarHelpContext,UINT,index,DWORD,dwHelpContext) \
3923 ICOM_METHOD2 (HRESULT,SetMops,UINT,index,BSTR,bstrMops) \
3924 ICOM_METHOD1 (HRESULT,SetTypeIdldesc,IDLDESC*,pIdlDesc) \
3925 ICOM_METHOD (HRESULT,LayOut)
3927 /*** IUnknown methods ***/
3928 #define ICreateTypeInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3929 #define ICreateTypeInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
3930 #define ICreateTypeInfo_Release(p) (p)->lpVtbl->Release(p)
3931 /*** ICreateTypeInfo methods ***/
3932 #define ICreateTypeInfo_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
3933 #define ICreateTypeInfo_SetTypeFlags(p,a) (p)->lpVtbl->SetTypeFlags(p,a)
3934 #define ICreateTypeInfo_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
3935 #define ICreateTypeInfo_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
3936 #define ICreateTypeInfo_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
3937 #define ICreateTypeInfo_AddRefTypeInfo(p,a,b) (p)->lpVtbl->AddRefTypeInfo(p,a,b)
3938 #define ICreateTypeInfo_AddFuncDesc(p,a,b) (p)->lpVtbl->AddFuncDesc(p,a,b)
3939 #define ICreateTypeInfo_AddImplType(p,a,b) (p)->lpVtbl->AddImplType(p,a,b)
3940 #define ICreateTypeInfo_SetImplTypeFlags(p,a,b) (p)->lpVtbl->SetImplTypeFlags(p,a,b)
3941 #define ICreateTypeInfo_SetAlignment(p,a) (p)->lpVtbl->SetAlignment(p,a)
3942 #define ICreateTypeInfo_SetSchema(p,a) (p)->lpVtbl->SetSchema(p,a)
3943 #define ICreateTypeInfo_AddVarDesc(p,a,b) (p)->lpVtbl->AddVarDesc(p,a,b)
3944 #define ICreateTypeInfo_SetFuncAndParamNames(p,a,b,c) (p)->lpVtbl->SetFuncAndParamNames(p,a,b,c)
3945 #define ICreateTypeInfo_SetVarName(p,a,b) (p)->lpVtbl->SetVarName(p,a,b)
3946 #define ICreateTypeInfo_SetTypeDescAlias(p,a) (p)->lpVtbl->SetTypeDescAlias(p,a)
3947 #define ICreateTypeInfo_DefineFuncAsDllEntry(p,a,b,c) (p)->lpVtbl->DefineFuncAsDllEntry(p,a,b,c)
3948 #define ICreateTypeInfo_SetFuncDocString(p,a,b) (p)->lpVtbl->SetFuncDocString(p,a,b)
3949 #define ICreateTypeInfo_SetVarDocString(p,a,b) (p)->lpVtbl->SetVarDocString(p,a,b)
3950 #define ICreateTypeInfo_SetFuncHelpContext(p,a,b) (p)->lpVtbl->SetFuncHelpContext(p,a,b)
3951 #define ICreateTypeInfo_SetVarHelpContext(p,a,b) (p)->lpVtbl->SetVarHelpContext(p,a,b)
3952 #define ICreateTypeInfo_SetMops(p,a,b) (p)->lpVtbl->SetMops(p,a,b)
3953 #define ICreateTypeInfo_SetTypeIdldesc(p,a) (p)->lpVtbl->SetTypeIdldesc(p,a)
3954 #define ICreateTypeInfo_LayOut(p) (p)->lpVtbl->LayOut(p)
3956 #endif
3958 HRESULT CALLBACK ICreateTypeInfo_SetGuid_Proxy(
3959 ICreateTypeInfo* This,
3960 REFGUID guid);
3961 void __RPC_STUB ICreateTypeInfo_SetGuid_Stub(
3962 struct IRpcStubBuffer* This,
3963 struct IRpcChannelBuffer* pRpcChannelBuffer,
3964 PRPC_MESSAGE pRpcMessage,
3965 DWORD* pdwStubPhase);
3966 HRESULT CALLBACK ICreateTypeInfo_SetTypeFlags_Proxy(
3967 ICreateTypeInfo* This,
3968 UINT uTypeFlags);
3969 void __RPC_STUB ICreateTypeInfo_SetTypeFlags_Stub(
3970 struct IRpcStubBuffer* This,
3971 struct IRpcChannelBuffer* pRpcChannelBuffer,
3972 PRPC_MESSAGE pRpcMessage,
3973 DWORD* pdwStubPhase);
3974 HRESULT CALLBACK ICreateTypeInfo_SetDocString_Proxy(
3975 ICreateTypeInfo* This,
3976 LPOLESTR pStrDoc);
3977 void __RPC_STUB ICreateTypeInfo_SetDocString_Stub(
3978 struct IRpcStubBuffer* This,
3979 struct IRpcChannelBuffer* pRpcChannelBuffer,
3980 PRPC_MESSAGE pRpcMessage,
3981 DWORD* pdwStubPhase);
3982 HRESULT CALLBACK ICreateTypeInfo_SetHelpContext_Proxy(
3983 ICreateTypeInfo* This,
3984 DWORD dwHelpContext);
3985 void __RPC_STUB ICreateTypeInfo_SetHelpContext_Stub(
3986 struct IRpcStubBuffer* This,
3987 struct IRpcChannelBuffer* pRpcChannelBuffer,
3988 PRPC_MESSAGE pRpcMessage,
3989 DWORD* pdwStubPhase);
3990 HRESULT CALLBACK ICreateTypeInfo_SetVersion_Proxy(
3991 ICreateTypeInfo* This,
3992 WORD wMajorVerNum,
3993 WORD wMinorVerNum);
3994 void __RPC_STUB ICreateTypeInfo_SetVersion_Stub(
3995 struct IRpcStubBuffer* This,
3996 struct IRpcChannelBuffer* pRpcChannelBuffer,
3997 PRPC_MESSAGE pRpcMessage,
3998 DWORD* pdwStubPhase);
3999 HRESULT CALLBACK ICreateTypeInfo_AddRefTypeInfo_Proxy(
4000 ICreateTypeInfo* This,
4001 ITypeInfo* pTInfo,
4002 HREFTYPE* phRefType);
4003 void __RPC_STUB ICreateTypeInfo_AddRefTypeInfo_Stub(
4004 struct IRpcStubBuffer* This,
4005 struct IRpcChannelBuffer* pRpcChannelBuffer,
4006 PRPC_MESSAGE pRpcMessage,
4007 DWORD* pdwStubPhase);
4008 HRESULT CALLBACK ICreateTypeInfo_AddFuncDesc_Proxy(
4009 ICreateTypeInfo* This,
4010 UINT index,
4011 FUNCDESC* pFuncDesc);
4012 void __RPC_STUB ICreateTypeInfo_AddFuncDesc_Stub(
4013 struct IRpcStubBuffer* This,
4014 struct IRpcChannelBuffer* pRpcChannelBuffer,
4015 PRPC_MESSAGE pRpcMessage,
4016 DWORD* pdwStubPhase);
4017 HRESULT CALLBACK ICreateTypeInfo_AddImplType_Proxy(
4018 ICreateTypeInfo* This,
4019 UINT index,
4020 HREFTYPE hRefType);
4021 void __RPC_STUB ICreateTypeInfo_AddImplType_Stub(
4022 struct IRpcStubBuffer* This,
4023 struct IRpcChannelBuffer* pRpcChannelBuffer,
4024 PRPC_MESSAGE pRpcMessage,
4025 DWORD* pdwStubPhase);
4026 HRESULT CALLBACK ICreateTypeInfo_SetImplTypeFlags_Proxy(
4027 ICreateTypeInfo* This,
4028 UINT index,
4029 INT implTypeFlags);
4030 void __RPC_STUB ICreateTypeInfo_SetImplTypeFlags_Stub(
4031 struct IRpcStubBuffer* This,
4032 struct IRpcChannelBuffer* pRpcChannelBuffer,
4033 PRPC_MESSAGE pRpcMessage,
4034 DWORD* pdwStubPhase);
4035 HRESULT CALLBACK ICreateTypeInfo_SetAlignment_Proxy(
4036 ICreateTypeInfo* This,
4037 WORD cbAlignment);
4038 void __RPC_STUB ICreateTypeInfo_SetAlignment_Stub(
4039 struct IRpcStubBuffer* This,
4040 struct IRpcChannelBuffer* pRpcChannelBuffer,
4041 PRPC_MESSAGE pRpcMessage,
4042 DWORD* pdwStubPhase);
4043 HRESULT CALLBACK ICreateTypeInfo_SetSchema_Proxy(
4044 ICreateTypeInfo* This,
4045 LPOLESTR pStrSchema);
4046 void __RPC_STUB ICreateTypeInfo_SetSchema_Stub(
4047 struct IRpcStubBuffer* This,
4048 struct IRpcChannelBuffer* pRpcChannelBuffer,
4049 PRPC_MESSAGE pRpcMessage,
4050 DWORD* pdwStubPhase);
4051 HRESULT CALLBACK ICreateTypeInfo_AddVarDesc_Proxy(
4052 ICreateTypeInfo* This,
4053 UINT index,
4054 VARDESC* pVarDesc);
4055 void __RPC_STUB ICreateTypeInfo_AddVarDesc_Stub(
4056 struct IRpcStubBuffer* This,
4057 struct IRpcChannelBuffer* pRpcChannelBuffer,
4058 PRPC_MESSAGE pRpcMessage,
4059 DWORD* pdwStubPhase);
4060 HRESULT CALLBACK ICreateTypeInfo_SetFuncAndParamNames_Proxy(
4061 ICreateTypeInfo* This,
4062 UINT index,
4063 LPOLESTR* rgszNames,
4064 UINT cNames);
4065 void __RPC_STUB ICreateTypeInfo_SetFuncAndParamNames_Stub(
4066 struct IRpcStubBuffer* This,
4067 struct IRpcChannelBuffer* pRpcChannelBuffer,
4068 PRPC_MESSAGE pRpcMessage,
4069 DWORD* pdwStubPhase);
4070 HRESULT CALLBACK ICreateTypeInfo_SetVarName_Proxy(
4071 ICreateTypeInfo* This,
4072 UINT index,
4073 LPOLESTR szName);
4074 void __RPC_STUB ICreateTypeInfo_SetVarName_Stub(
4075 struct IRpcStubBuffer* This,
4076 struct IRpcChannelBuffer* pRpcChannelBuffer,
4077 PRPC_MESSAGE pRpcMessage,
4078 DWORD* pdwStubPhase);
4079 HRESULT CALLBACK ICreateTypeInfo_SetTypeDescAlias_Proxy(
4080 ICreateTypeInfo* This,
4081 TYPEDESC* pTDescAlias);
4082 void __RPC_STUB ICreateTypeInfo_SetTypeDescAlias_Stub(
4083 struct IRpcStubBuffer* This,
4084 struct IRpcChannelBuffer* pRpcChannelBuffer,
4085 PRPC_MESSAGE pRpcMessage,
4086 DWORD* pdwStubPhase);
4087 HRESULT CALLBACK ICreateTypeInfo_DefineFuncAsDllEntry_Proxy(
4088 ICreateTypeInfo* This,
4089 UINT index,
4090 LPOLESTR szDllName,
4091 LPOLESTR szProcName);
4092 void __RPC_STUB ICreateTypeInfo_DefineFuncAsDllEntry_Stub(
4093 struct IRpcStubBuffer* This,
4094 struct IRpcChannelBuffer* pRpcChannelBuffer,
4095 PRPC_MESSAGE pRpcMessage,
4096 DWORD* pdwStubPhase);
4097 HRESULT CALLBACK ICreateTypeInfo_SetFuncDocString_Proxy(
4098 ICreateTypeInfo* This,
4099 UINT index,
4100 LPOLESTR szDocString);
4101 void __RPC_STUB ICreateTypeInfo_SetFuncDocString_Stub(
4102 struct IRpcStubBuffer* This,
4103 struct IRpcChannelBuffer* pRpcChannelBuffer,
4104 PRPC_MESSAGE pRpcMessage,
4105 DWORD* pdwStubPhase);
4106 HRESULT CALLBACK ICreateTypeInfo_SetVarDocString_Proxy(
4107 ICreateTypeInfo* This,
4108 UINT index,
4109 LPOLESTR szDocString);
4110 void __RPC_STUB ICreateTypeInfo_SetVarDocString_Stub(
4111 struct IRpcStubBuffer* This,
4112 struct IRpcChannelBuffer* pRpcChannelBuffer,
4113 PRPC_MESSAGE pRpcMessage,
4114 DWORD* pdwStubPhase);
4115 HRESULT CALLBACK ICreateTypeInfo_SetFuncHelpContext_Proxy(
4116 ICreateTypeInfo* This,
4117 UINT index,
4118 DWORD dwHelpContext);
4119 void __RPC_STUB ICreateTypeInfo_SetFuncHelpContext_Stub(
4120 struct IRpcStubBuffer* This,
4121 struct IRpcChannelBuffer* pRpcChannelBuffer,
4122 PRPC_MESSAGE pRpcMessage,
4123 DWORD* pdwStubPhase);
4124 HRESULT CALLBACK ICreateTypeInfo_SetVarHelpContext_Proxy(
4125 ICreateTypeInfo* This,
4126 UINT index,
4127 DWORD dwHelpContext);
4128 void __RPC_STUB ICreateTypeInfo_SetVarHelpContext_Stub(
4129 struct IRpcStubBuffer* This,
4130 struct IRpcChannelBuffer* pRpcChannelBuffer,
4131 PRPC_MESSAGE pRpcMessage,
4132 DWORD* pdwStubPhase);
4133 HRESULT CALLBACK ICreateTypeInfo_SetMops_Proxy(
4134 ICreateTypeInfo* This,
4135 UINT index,
4136 BSTR bstrMops);
4137 void __RPC_STUB ICreateTypeInfo_SetMops_Stub(
4138 struct IRpcStubBuffer* This,
4139 struct IRpcChannelBuffer* pRpcChannelBuffer,
4140 PRPC_MESSAGE pRpcMessage,
4141 DWORD* pdwStubPhase);
4142 HRESULT CALLBACK ICreateTypeInfo_SetTypeIdldesc_Proxy(
4143 ICreateTypeInfo* This,
4144 IDLDESC* pIdlDesc);
4145 void __RPC_STUB ICreateTypeInfo_SetTypeIdldesc_Stub(
4146 struct IRpcStubBuffer* This,
4147 struct IRpcChannelBuffer* pRpcChannelBuffer,
4148 PRPC_MESSAGE pRpcMessage,
4149 DWORD* pdwStubPhase);
4150 HRESULT CALLBACK ICreateTypeInfo_LayOut_Proxy(
4151 ICreateTypeInfo* This);
4152 void __RPC_STUB ICreateTypeInfo_LayOut_Stub(
4153 struct IRpcStubBuffer* This,
4154 struct IRpcChannelBuffer* pRpcChannelBuffer,
4155 PRPC_MESSAGE pRpcMessage,
4156 DWORD* pdwStubPhase);
4158 typedef struct ICreateTypeInfo2 ICreateTypeInfo2;
4159 typedef ICreateTypeInfo2 *LPCREATETYPEINFO2;
4161 /*****************************************************************************
4162 * ICreateTypeInfo2 interface
4164 DEFINE_GUID(IID_ICreateTypeInfo2, 0x0002040e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4165 #if defined(__cplusplus) && !defined(CINTERFACE)
4166 struct ICreateTypeInfo2: ICreateTypeInfo {
4168 virtual HRESULT CALLBACK DeleteFuncDesc(
4169 UINT index) = 0;
4171 virtual HRESULT CALLBACK DeleteFuncDescByMemId(
4172 MEMBERID memid,
4173 INVOKEKIND invKind) = 0;
4175 virtual HRESULT CALLBACK DeleteVarDesc(
4176 UINT index) = 0;
4178 virtual HRESULT CALLBACK DeleteVarDescByMemId(
4179 MEMBERID memid) = 0;
4181 virtual HRESULT CALLBACK DeleteImplType(
4182 UINT index) = 0;
4184 virtual HRESULT CALLBACK SetCustData(
4185 REFGUID guid,
4186 VARIANT* pVarVal) = 0;
4188 virtual HRESULT CALLBACK SetFuncCustData(
4189 UINT index,
4190 REFGUID guid,
4191 VARIANT* pVarVal) = 0;
4193 virtual HRESULT CALLBACK SetParamCustData(
4194 UINT indexFunc,
4195 UINT indexParam,
4196 REFGUID guid,
4197 VARIANT* pVarVal) = 0;
4199 virtual HRESULT CALLBACK SetVarCustData(
4200 UINT index,
4201 REFGUID guid,
4202 VARIANT* pVarVal) = 0;
4204 virtual HRESULT CALLBACK SetImplTypeCustData(
4205 UINT index,
4206 REFGUID guid,
4207 VARIANT* pVarVal) = 0;
4209 virtual HRESULT CALLBACK SetHelpStringContext(
4210 ULONG dwHelpStringContext) = 0;
4212 virtual HRESULT CALLBACK SetFuncHelpStringContext(
4213 UINT index,
4214 ULONG dwHelpStringContext) = 0;
4216 virtual HRESULT CALLBACK SetVarHelpStringContext(
4217 UINT index,
4218 ULONG dwHelpStringContext) = 0;
4220 virtual HRESULT CALLBACK Invalidate(
4221 ) = 0;
4223 virtual HRESULT CALLBACK SetName(
4224 LPOLESTR szName) = 0;
4226 } ICOM_COM_INTERFACE_ATTRIBUTE;
4227 #else
4228 typedef struct ICreateTypeInfo2Vtbl ICreateTypeInfo2Vtbl;
4229 struct ICreateTypeInfo2 {
4230 const ICreateTypeInfo2Vtbl* lpVtbl;
4232 struct ICreateTypeInfo2Vtbl {
4233 ICOM_MSVTABLE_COMPAT_FIELDS
4235 /*** IUnknown methods ***/
4236 HRESULT (CALLBACK *QueryInterface)(
4237 ICreateTypeInfo2* This,
4238 REFIID riid,
4239 void** ppvObject);
4241 ULONG (CALLBACK *AddRef)(
4242 ICreateTypeInfo2* This);
4244 ULONG (CALLBACK *Release)(
4245 ICreateTypeInfo2* This);
4247 /*** ICreateTypeInfo methods ***/
4248 HRESULT (CALLBACK *SetGuid)(
4249 ICreateTypeInfo2* This,
4250 REFGUID guid);
4252 HRESULT (CALLBACK *SetTypeFlags)(
4253 ICreateTypeInfo2* This,
4254 UINT uTypeFlags);
4256 HRESULT (CALLBACK *SetDocString)(
4257 ICreateTypeInfo2* This,
4258 LPOLESTR pStrDoc);
4260 HRESULT (CALLBACK *SetHelpContext)(
4261 ICreateTypeInfo2* This,
4262 DWORD dwHelpContext);
4264 HRESULT (CALLBACK *SetVersion)(
4265 ICreateTypeInfo2* This,
4266 WORD wMajorVerNum,
4267 WORD wMinorVerNum);
4269 HRESULT (CALLBACK *AddRefTypeInfo)(
4270 ICreateTypeInfo2* This,
4271 ITypeInfo* pTInfo,
4272 HREFTYPE* phRefType);
4274 HRESULT (CALLBACK *AddFuncDesc)(
4275 ICreateTypeInfo2* This,
4276 UINT index,
4277 FUNCDESC* pFuncDesc);
4279 HRESULT (CALLBACK *AddImplType)(
4280 ICreateTypeInfo2* This,
4281 UINT index,
4282 HREFTYPE hRefType);
4284 HRESULT (CALLBACK *SetImplTypeFlags)(
4285 ICreateTypeInfo2* This,
4286 UINT index,
4287 INT implTypeFlags);
4289 HRESULT (CALLBACK *SetAlignment)(
4290 ICreateTypeInfo2* This,
4291 WORD cbAlignment);
4293 HRESULT (CALLBACK *SetSchema)(
4294 ICreateTypeInfo2* This,
4295 LPOLESTR pStrSchema);
4297 HRESULT (CALLBACK *AddVarDesc)(
4298 ICreateTypeInfo2* This,
4299 UINT index,
4300 VARDESC* pVarDesc);
4302 HRESULT (CALLBACK *SetFuncAndParamNames)(
4303 ICreateTypeInfo2* This,
4304 UINT index,
4305 LPOLESTR* rgszNames,
4306 UINT cNames);
4308 HRESULT (CALLBACK *SetVarName)(
4309 ICreateTypeInfo2* This,
4310 UINT index,
4311 LPOLESTR szName);
4313 HRESULT (CALLBACK *SetTypeDescAlias)(
4314 ICreateTypeInfo2* This,
4315 TYPEDESC* pTDescAlias);
4317 HRESULT (CALLBACK *DefineFuncAsDllEntry)(
4318 ICreateTypeInfo2* This,
4319 UINT index,
4320 LPOLESTR szDllName,
4321 LPOLESTR szProcName);
4323 HRESULT (CALLBACK *SetFuncDocString)(
4324 ICreateTypeInfo2* This,
4325 UINT index,
4326 LPOLESTR szDocString);
4328 HRESULT (CALLBACK *SetVarDocString)(
4329 ICreateTypeInfo2* This,
4330 UINT index,
4331 LPOLESTR szDocString);
4333 HRESULT (CALLBACK *SetFuncHelpContext)(
4334 ICreateTypeInfo2* This,
4335 UINT index,
4336 DWORD dwHelpContext);
4338 HRESULT (CALLBACK *SetVarHelpContext)(
4339 ICreateTypeInfo2* This,
4340 UINT index,
4341 DWORD dwHelpContext);
4343 HRESULT (CALLBACK *SetMops)(
4344 ICreateTypeInfo2* This,
4345 UINT index,
4346 BSTR bstrMops);
4348 HRESULT (CALLBACK *SetTypeIdldesc)(
4349 ICreateTypeInfo2* This,
4350 IDLDESC* pIdlDesc);
4352 HRESULT (CALLBACK *LayOut)(
4353 ICreateTypeInfo2* This);
4355 /*** ICreateTypeInfo2 methods ***/
4356 HRESULT (CALLBACK *DeleteFuncDesc)(
4357 ICreateTypeInfo2* This,
4358 UINT index);
4360 HRESULT (CALLBACK *DeleteFuncDescByMemId)(
4361 ICreateTypeInfo2* This,
4362 MEMBERID memid,
4363 INVOKEKIND invKind);
4365 HRESULT (CALLBACK *DeleteVarDesc)(
4366 ICreateTypeInfo2* This,
4367 UINT index);
4369 HRESULT (CALLBACK *DeleteVarDescByMemId)(
4370 ICreateTypeInfo2* This,
4371 MEMBERID memid);
4373 HRESULT (CALLBACK *DeleteImplType)(
4374 ICreateTypeInfo2* This,
4375 UINT index);
4377 HRESULT (CALLBACK *SetCustData)(
4378 ICreateTypeInfo2* This,
4379 REFGUID guid,
4380 VARIANT* pVarVal);
4382 HRESULT (CALLBACK *SetFuncCustData)(
4383 ICreateTypeInfo2* This,
4384 UINT index,
4385 REFGUID guid,
4386 VARIANT* pVarVal);
4388 HRESULT (CALLBACK *SetParamCustData)(
4389 ICreateTypeInfo2* This,
4390 UINT indexFunc,
4391 UINT indexParam,
4392 REFGUID guid,
4393 VARIANT* pVarVal);
4395 HRESULT (CALLBACK *SetVarCustData)(
4396 ICreateTypeInfo2* This,
4397 UINT index,
4398 REFGUID guid,
4399 VARIANT* pVarVal);
4401 HRESULT (CALLBACK *SetImplTypeCustData)(
4402 ICreateTypeInfo2* This,
4403 UINT index,
4404 REFGUID guid,
4405 VARIANT* pVarVal);
4407 HRESULT (CALLBACK *SetHelpStringContext)(
4408 ICreateTypeInfo2* This,
4409 ULONG dwHelpStringContext);
4411 HRESULT (CALLBACK *SetFuncHelpStringContext)(
4412 ICreateTypeInfo2* This,
4413 UINT index,
4414 ULONG dwHelpStringContext);
4416 HRESULT (CALLBACK *SetVarHelpStringContext)(
4417 ICreateTypeInfo2* This,
4418 UINT index,
4419 ULONG dwHelpStringContext);
4421 HRESULT (CALLBACK *Invalidate)(
4422 ICreateTypeInfo2* This);
4424 HRESULT (CALLBACK *SetName)(
4425 ICreateTypeInfo2* This,
4426 LPOLESTR szName);
4430 #define ICreateTypeInfo2_IMETHODS \
4431 ICreateTypeInfo_IMETHODS \
4432 ICOM_METHOD1 (HRESULT,DeleteFuncDesc,UINT,index) \
4433 ICOM_METHOD2 (HRESULT,DeleteFuncDescByMemId,MEMBERID,memid,INVOKEKIND,invKind) \
4434 ICOM_METHOD1 (HRESULT,DeleteVarDesc,UINT,index) \
4435 ICOM_METHOD1 (HRESULT,DeleteVarDescByMemId,MEMBERID,memid) \
4436 ICOM_METHOD1 (HRESULT,DeleteImplType,UINT,index) \
4437 ICOM_METHOD2 (HRESULT,SetCustData,REFGUID,guid,VARIANT*,pVarVal) \
4438 ICOM_METHOD3 (HRESULT,SetFuncCustData,UINT,index,REFGUID,guid,VARIANT*,pVarVal) \
4439 ICOM_METHOD4 (HRESULT,SetParamCustData,UINT,indexFunc,UINT,indexParam,REFGUID,guid,VARIANT*,pVarVal) \
4440 ICOM_METHOD3 (HRESULT,SetVarCustData,UINT,index,REFGUID,guid,VARIANT*,pVarVal) \
4441 ICOM_METHOD3 (HRESULT,SetImplTypeCustData,UINT,index,REFGUID,guid,VARIANT*,pVarVal) \
4442 ICOM_METHOD1 (HRESULT,SetHelpStringContext,ULONG,dwHelpStringContext) \
4443 ICOM_METHOD2 (HRESULT,SetFuncHelpStringContext,UINT,index,ULONG,dwHelpStringContext) \
4444 ICOM_METHOD2 (HRESULT,SetVarHelpStringContext,UINT,index,ULONG,dwHelpStringContext) \
4445 ICOM_METHOD (HRESULT,Invalidate) \
4446 ICOM_METHOD1 (HRESULT,SetName,LPOLESTR,szName)
4448 /*** IUnknown methods ***/
4449 #define ICreateTypeInfo2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4450 #define ICreateTypeInfo2_AddRef(p) (p)->lpVtbl->AddRef(p)
4451 #define ICreateTypeInfo2_Release(p) (p)->lpVtbl->Release(p)
4452 /*** ICreateTypeInfo methods ***/
4453 #define ICreateTypeInfo2_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
4454 #define ICreateTypeInfo2_SetTypeFlags(p,a) (p)->lpVtbl->SetTypeFlags(p,a)
4455 #define ICreateTypeInfo2_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
4456 #define ICreateTypeInfo2_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
4457 #define ICreateTypeInfo2_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
4458 #define ICreateTypeInfo2_AddRefTypeInfo(p,a,b) (p)->lpVtbl->AddRefTypeInfo(p,a,b)
4459 #define ICreateTypeInfo2_AddFuncDesc(p,a,b) (p)->lpVtbl->AddFuncDesc(p,a,b)
4460 #define ICreateTypeInfo2_AddImplType(p,a,b) (p)->lpVtbl->AddImplType(p,a,b)
4461 #define ICreateTypeInfo2_SetImplTypeFlags(p,a,b) (p)->lpVtbl->SetImplTypeFlags(p,a,b)
4462 #define ICreateTypeInfo2_SetAlignment(p,a) (p)->lpVtbl->SetAlignment(p,a)
4463 #define ICreateTypeInfo2_SetSchema(p,a) (p)->lpVtbl->SetSchema(p,a)
4464 #define ICreateTypeInfo2_AddVarDesc(p,a,b) (p)->lpVtbl->AddVarDesc(p,a,b)
4465 #define ICreateTypeInfo2_SetFuncAndParamNames(p,a,b,c) (p)->lpVtbl->SetFuncAndParamNames(p,a,b,c)
4466 #define ICreateTypeInfo2_SetVarName(p,a,b) (p)->lpVtbl->SetVarName(p,a,b)
4467 #define ICreateTypeInfo2_SetTypeDescAlias(p,a) (p)->lpVtbl->SetTypeDescAlias(p,a)
4468 #define ICreateTypeInfo2_DefineFuncAsDllEntry(p,a,b,c) (p)->lpVtbl->DefineFuncAsDllEntry(p,a,b,c)
4469 #define ICreateTypeInfo2_SetFuncDocString(p,a,b) (p)->lpVtbl->SetFuncDocString(p,a,b)
4470 #define ICreateTypeInfo2_SetVarDocString(p,a,b) (p)->lpVtbl->SetVarDocString(p,a,b)
4471 #define ICreateTypeInfo2_SetFuncHelpContext(p,a,b) (p)->lpVtbl->SetFuncHelpContext(p,a,b)
4472 #define ICreateTypeInfo2_SetVarHelpContext(p,a,b) (p)->lpVtbl->SetVarHelpContext(p,a,b)
4473 #define ICreateTypeInfo2_SetMops(p,a,b) (p)->lpVtbl->SetMops(p,a,b)
4474 #define ICreateTypeInfo2_SetTypeIdldesc(p,a) (p)->lpVtbl->SetTypeIdldesc(p,a)
4475 #define ICreateTypeInfo2_LayOut(p) (p)->lpVtbl->LayOut(p)
4476 /*** ICreateTypeInfo2 methods ***/
4477 #define ICreateTypeInfo2_DeleteFuncDesc(p,a) (p)->lpVtbl->DeleteFuncDesc(p,a)
4478 #define ICreateTypeInfo2_DeleteFuncDescByMemId(p,a,b) (p)->lpVtbl->DeleteFuncDescByMemId(p,a,b)
4479 #define ICreateTypeInfo2_DeleteVarDesc(p,a) (p)->lpVtbl->DeleteVarDesc(p,a)
4480 #define ICreateTypeInfo2_DeleteVarDescByMemId(p,a) (p)->lpVtbl->DeleteVarDescByMemId(p,a)
4481 #define ICreateTypeInfo2_DeleteImplType(p,a) (p)->lpVtbl->DeleteImplType(p,a)
4482 #define ICreateTypeInfo2_SetCustData(p,a,b) (p)->lpVtbl->SetCustData(p,a,b)
4483 #define ICreateTypeInfo2_SetFuncCustData(p,a,b,c) (p)->lpVtbl->SetFuncCustData(p,a,b,c)
4484 #define ICreateTypeInfo2_SetParamCustData(p,a,b,c,d) (p)->lpVtbl->SetParamCustData(p,a,b,c,d)
4485 #define ICreateTypeInfo2_SetVarCustData(p,a,b,c) (p)->lpVtbl->SetVarCustData(p,a,b,c)
4486 #define ICreateTypeInfo2_SetImplTypeCustData(p,a,b,c) (p)->lpVtbl->SetImplTypeCustData(p,a,b,c)
4487 #define ICreateTypeInfo2_SetHelpStringContext(p,a) (p)->lpVtbl->SetHelpStringContext(p,a)
4488 #define ICreateTypeInfo2_SetFuncHelpStringContext(p,a,b) (p)->lpVtbl->SetFuncHelpStringContext(p,a,b)
4489 #define ICreateTypeInfo2_SetVarHelpStringContext(p,a,b) (p)->lpVtbl->SetVarHelpStringContext(p,a,b)
4490 #define ICreateTypeInfo2_Invalidate(p) (p)->lpVtbl->Invalidate(p)
4491 #define ICreateTypeInfo2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
4493 #endif
4495 HRESULT CALLBACK ICreateTypeInfo2_DeleteFuncDesc_Proxy(
4496 ICreateTypeInfo2* This,
4497 UINT index);
4498 void __RPC_STUB ICreateTypeInfo2_DeleteFuncDesc_Stub(
4499 struct IRpcStubBuffer* This,
4500 struct IRpcChannelBuffer* pRpcChannelBuffer,
4501 PRPC_MESSAGE pRpcMessage,
4502 DWORD* pdwStubPhase);
4503 HRESULT CALLBACK ICreateTypeInfo2_DeleteFuncDescByMemId_Proxy(
4504 ICreateTypeInfo2* This,
4505 MEMBERID memid,
4506 INVOKEKIND invKind);
4507 void __RPC_STUB ICreateTypeInfo2_DeleteFuncDescByMemId_Stub(
4508 struct IRpcStubBuffer* This,
4509 struct IRpcChannelBuffer* pRpcChannelBuffer,
4510 PRPC_MESSAGE pRpcMessage,
4511 DWORD* pdwStubPhase);
4512 HRESULT CALLBACK ICreateTypeInfo2_DeleteVarDesc_Proxy(
4513 ICreateTypeInfo2* This,
4514 UINT index);
4515 void __RPC_STUB ICreateTypeInfo2_DeleteVarDesc_Stub(
4516 struct IRpcStubBuffer* This,
4517 struct IRpcChannelBuffer* pRpcChannelBuffer,
4518 PRPC_MESSAGE pRpcMessage,
4519 DWORD* pdwStubPhase);
4520 HRESULT CALLBACK ICreateTypeInfo2_DeleteVarDescByMemId_Proxy(
4521 ICreateTypeInfo2* This,
4522 MEMBERID memid);
4523 void __RPC_STUB ICreateTypeInfo2_DeleteVarDescByMemId_Stub(
4524 struct IRpcStubBuffer* This,
4525 struct IRpcChannelBuffer* pRpcChannelBuffer,
4526 PRPC_MESSAGE pRpcMessage,
4527 DWORD* pdwStubPhase);
4528 HRESULT CALLBACK ICreateTypeInfo2_DeleteImplType_Proxy(
4529 ICreateTypeInfo2* This,
4530 UINT index);
4531 void __RPC_STUB ICreateTypeInfo2_DeleteImplType_Stub(
4532 struct IRpcStubBuffer* This,
4533 struct IRpcChannelBuffer* pRpcChannelBuffer,
4534 PRPC_MESSAGE pRpcMessage,
4535 DWORD* pdwStubPhase);
4536 HRESULT CALLBACK ICreateTypeInfo2_SetCustData_Proxy(
4537 ICreateTypeInfo2* This,
4538 REFGUID guid,
4539 VARIANT* pVarVal);
4540 void __RPC_STUB ICreateTypeInfo2_SetCustData_Stub(
4541 struct IRpcStubBuffer* This,
4542 struct IRpcChannelBuffer* pRpcChannelBuffer,
4543 PRPC_MESSAGE pRpcMessage,
4544 DWORD* pdwStubPhase);
4545 HRESULT CALLBACK ICreateTypeInfo2_SetFuncCustData_Proxy(
4546 ICreateTypeInfo2* This,
4547 UINT index,
4548 REFGUID guid,
4549 VARIANT* pVarVal);
4550 void __RPC_STUB ICreateTypeInfo2_SetFuncCustData_Stub(
4551 struct IRpcStubBuffer* This,
4552 struct IRpcChannelBuffer* pRpcChannelBuffer,
4553 PRPC_MESSAGE pRpcMessage,
4554 DWORD* pdwStubPhase);
4555 HRESULT CALLBACK ICreateTypeInfo2_SetParamCustData_Proxy(
4556 ICreateTypeInfo2* This,
4557 UINT indexFunc,
4558 UINT indexParam,
4559 REFGUID guid,
4560 VARIANT* pVarVal);
4561 void __RPC_STUB ICreateTypeInfo2_SetParamCustData_Stub(
4562 struct IRpcStubBuffer* This,
4563 struct IRpcChannelBuffer* pRpcChannelBuffer,
4564 PRPC_MESSAGE pRpcMessage,
4565 DWORD* pdwStubPhase);
4566 HRESULT CALLBACK ICreateTypeInfo2_SetVarCustData_Proxy(
4567 ICreateTypeInfo2* This,
4568 UINT index,
4569 REFGUID guid,
4570 VARIANT* pVarVal);
4571 void __RPC_STUB ICreateTypeInfo2_SetVarCustData_Stub(
4572 struct IRpcStubBuffer* This,
4573 struct IRpcChannelBuffer* pRpcChannelBuffer,
4574 PRPC_MESSAGE pRpcMessage,
4575 DWORD* pdwStubPhase);
4576 HRESULT CALLBACK ICreateTypeInfo2_SetImplTypeCustData_Proxy(
4577 ICreateTypeInfo2* This,
4578 UINT index,
4579 REFGUID guid,
4580 VARIANT* pVarVal);
4581 void __RPC_STUB ICreateTypeInfo2_SetImplTypeCustData_Stub(
4582 struct IRpcStubBuffer* This,
4583 struct IRpcChannelBuffer* pRpcChannelBuffer,
4584 PRPC_MESSAGE pRpcMessage,
4585 DWORD* pdwStubPhase);
4586 HRESULT CALLBACK ICreateTypeInfo2_SetHelpStringContext_Proxy(
4587 ICreateTypeInfo2* This,
4588 ULONG dwHelpStringContext);
4589 void __RPC_STUB ICreateTypeInfo2_SetHelpStringContext_Stub(
4590 struct IRpcStubBuffer* This,
4591 struct IRpcChannelBuffer* pRpcChannelBuffer,
4592 PRPC_MESSAGE pRpcMessage,
4593 DWORD* pdwStubPhase);
4594 HRESULT CALLBACK ICreateTypeInfo2_SetFuncHelpStringContext_Proxy(
4595 ICreateTypeInfo2* This,
4596 UINT index,
4597 ULONG dwHelpStringContext);
4598 void __RPC_STUB ICreateTypeInfo2_SetFuncHelpStringContext_Stub(
4599 struct IRpcStubBuffer* This,
4600 struct IRpcChannelBuffer* pRpcChannelBuffer,
4601 PRPC_MESSAGE pRpcMessage,
4602 DWORD* pdwStubPhase);
4603 HRESULT CALLBACK ICreateTypeInfo2_SetVarHelpStringContext_Proxy(
4604 ICreateTypeInfo2* This,
4605 UINT index,
4606 ULONG dwHelpStringContext);
4607 void __RPC_STUB ICreateTypeInfo2_SetVarHelpStringContext_Stub(
4608 struct IRpcStubBuffer* This,
4609 struct IRpcChannelBuffer* pRpcChannelBuffer,
4610 PRPC_MESSAGE pRpcMessage,
4611 DWORD* pdwStubPhase);
4612 HRESULT CALLBACK ICreateTypeInfo2_Invalidate_Proxy(
4613 ICreateTypeInfo2* This);
4614 void __RPC_STUB ICreateTypeInfo2_Invalidate_Stub(
4615 struct IRpcStubBuffer* This,
4616 struct IRpcChannelBuffer* pRpcChannelBuffer,
4617 PRPC_MESSAGE pRpcMessage,
4618 DWORD* pdwStubPhase);
4619 HRESULT CALLBACK ICreateTypeInfo2_SetName_Proxy(
4620 ICreateTypeInfo2* This,
4621 LPOLESTR szName);
4622 void __RPC_STUB ICreateTypeInfo2_SetName_Stub(
4623 struct IRpcStubBuffer* This,
4624 struct IRpcChannelBuffer* pRpcChannelBuffer,
4625 PRPC_MESSAGE pRpcMessage,
4626 DWORD* pdwStubPhase);
4628 typedef struct ICreateTypeLib ICreateTypeLib;
4629 typedef ICreateTypeLib *LPCREATETYPELIB;
4631 /*****************************************************************************
4632 * ICreateTypeLib interface
4634 DEFINE_GUID(IID_ICreateTypeLib, 0x00020406, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4635 #if defined(__cplusplus) && !defined(CINTERFACE)
4636 struct ICreateTypeLib: IUnknown {
4638 virtual HRESULT CALLBACK CreateTypeInfo(
4639 LPOLESTR szName,
4640 TYPEKIND tkind,
4641 ICreateTypeInfo** ppCTInfo) = 0;
4643 virtual HRESULT CALLBACK SetName(
4644 LPOLESTR szName) = 0;
4646 virtual HRESULT CALLBACK SetVersion(
4647 WORD wMajorVerNum,
4648 WORD wMinorVerNum) = 0;
4650 virtual HRESULT CALLBACK SetGuid(
4651 REFGUID guid) = 0;
4653 virtual HRESULT CALLBACK SetDocString(
4654 LPOLESTR szDoc) = 0;
4656 virtual HRESULT CALLBACK SetHelpFileName(
4657 LPOLESTR szHelpFileName) = 0;
4659 virtual HRESULT CALLBACK SetHelpContext(
4660 DWORD dwHelpContext) = 0;
4662 virtual HRESULT CALLBACK SetLcid(
4663 LCID lcid) = 0;
4665 virtual HRESULT CALLBACK SetLibFlags(
4666 UINT uLibFlags) = 0;
4668 virtual HRESULT CALLBACK SaveAllChanges(
4669 ) = 0;
4671 } ICOM_COM_INTERFACE_ATTRIBUTE;
4672 #else
4673 typedef struct ICreateTypeLibVtbl ICreateTypeLibVtbl;
4674 struct ICreateTypeLib {
4675 const ICreateTypeLibVtbl* lpVtbl;
4677 struct ICreateTypeLibVtbl {
4678 ICOM_MSVTABLE_COMPAT_FIELDS
4680 /*** IUnknown methods ***/
4681 HRESULT (CALLBACK *QueryInterface)(
4682 ICreateTypeLib* This,
4683 REFIID riid,
4684 void** ppvObject);
4686 ULONG (CALLBACK *AddRef)(
4687 ICreateTypeLib* This);
4689 ULONG (CALLBACK *Release)(
4690 ICreateTypeLib* This);
4692 /*** ICreateTypeLib methods ***/
4693 HRESULT (CALLBACK *CreateTypeInfo)(
4694 ICreateTypeLib* This,
4695 LPOLESTR szName,
4696 TYPEKIND tkind,
4697 ICreateTypeInfo** ppCTInfo);
4699 HRESULT (CALLBACK *SetName)(
4700 ICreateTypeLib* This,
4701 LPOLESTR szName);
4703 HRESULT (CALLBACK *SetVersion)(
4704 ICreateTypeLib* This,
4705 WORD wMajorVerNum,
4706 WORD wMinorVerNum);
4708 HRESULT (CALLBACK *SetGuid)(
4709 ICreateTypeLib* This,
4710 REFGUID guid);
4712 HRESULT (CALLBACK *SetDocString)(
4713 ICreateTypeLib* This,
4714 LPOLESTR szDoc);
4716 HRESULT (CALLBACK *SetHelpFileName)(
4717 ICreateTypeLib* This,
4718 LPOLESTR szHelpFileName);
4720 HRESULT (CALLBACK *SetHelpContext)(
4721 ICreateTypeLib* This,
4722 DWORD dwHelpContext);
4724 HRESULT (CALLBACK *SetLcid)(
4725 ICreateTypeLib* This,
4726 LCID lcid);
4728 HRESULT (CALLBACK *SetLibFlags)(
4729 ICreateTypeLib* This,
4730 UINT uLibFlags);
4732 HRESULT (CALLBACK *SaveAllChanges)(
4733 ICreateTypeLib* This);
4737 #define ICreateTypeLib_IMETHODS \
4738 IUnknown_IMETHODS \
4739 ICOM_METHOD3 (HRESULT,CreateTypeInfo,LPOLESTR,szName,TYPEKIND,tkind,ICreateTypeInfo**,ppCTInfo) \
4740 ICOM_METHOD1 (HRESULT,SetName,LPOLESTR,szName) \
4741 ICOM_METHOD2 (HRESULT,SetVersion,WORD,wMajorVerNum,WORD,wMinorVerNum) \
4742 ICOM_METHOD1 (HRESULT,SetGuid,REFGUID,guid) \
4743 ICOM_METHOD1 (HRESULT,SetDocString,LPOLESTR,szDoc) \
4744 ICOM_METHOD1 (HRESULT,SetHelpFileName,LPOLESTR,szHelpFileName) \
4745 ICOM_METHOD1 (HRESULT,SetHelpContext,DWORD,dwHelpContext) \
4746 ICOM_METHOD1 (HRESULT,SetLcid,LCID,lcid) \
4747 ICOM_METHOD1 (HRESULT,SetLibFlags,UINT,uLibFlags) \
4748 ICOM_METHOD (HRESULT,SaveAllChanges)
4750 /*** IUnknown methods ***/
4751 #define ICreateTypeLib_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4752 #define ICreateTypeLib_AddRef(p) (p)->lpVtbl->AddRef(p)
4753 #define ICreateTypeLib_Release(p) (p)->lpVtbl->Release(p)
4754 /*** ICreateTypeLib methods ***/
4755 #define ICreateTypeLib_CreateTypeInfo(p,a,b,c) (p)->lpVtbl->CreateTypeInfo(p,a,b,c)
4756 #define ICreateTypeLib_SetName(p,a) (p)->lpVtbl->SetName(p,a)
4757 #define ICreateTypeLib_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
4758 #define ICreateTypeLib_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
4759 #define ICreateTypeLib_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
4760 #define ICreateTypeLib_SetHelpFileName(p,a) (p)->lpVtbl->SetHelpFileName(p,a)
4761 #define ICreateTypeLib_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
4762 #define ICreateTypeLib_SetLcid(p,a) (p)->lpVtbl->SetLcid(p,a)
4763 #define ICreateTypeLib_SetLibFlags(p,a) (p)->lpVtbl->SetLibFlags(p,a)
4764 #define ICreateTypeLib_SaveAllChanges(p) (p)->lpVtbl->SaveAllChanges(p)
4766 #endif
4768 HRESULT CALLBACK ICreateTypeLib_CreateTypeInfo_Proxy(
4769 ICreateTypeLib* This,
4770 LPOLESTR szName,
4771 TYPEKIND tkind,
4772 ICreateTypeInfo** ppCTInfo);
4773 void __RPC_STUB ICreateTypeLib_CreateTypeInfo_Stub(
4774 struct IRpcStubBuffer* This,
4775 struct IRpcChannelBuffer* pRpcChannelBuffer,
4776 PRPC_MESSAGE pRpcMessage,
4777 DWORD* pdwStubPhase);
4778 HRESULT CALLBACK ICreateTypeLib_SetName_Proxy(
4779 ICreateTypeLib* This,
4780 LPOLESTR szName);
4781 void __RPC_STUB ICreateTypeLib_SetName_Stub(
4782 struct IRpcStubBuffer* This,
4783 struct IRpcChannelBuffer* pRpcChannelBuffer,
4784 PRPC_MESSAGE pRpcMessage,
4785 DWORD* pdwStubPhase);
4786 HRESULT CALLBACK ICreateTypeLib_SetVersion_Proxy(
4787 ICreateTypeLib* This,
4788 WORD wMajorVerNum,
4789 WORD wMinorVerNum);
4790 void __RPC_STUB ICreateTypeLib_SetVersion_Stub(
4791 struct IRpcStubBuffer* This,
4792 struct IRpcChannelBuffer* pRpcChannelBuffer,
4793 PRPC_MESSAGE pRpcMessage,
4794 DWORD* pdwStubPhase);
4795 HRESULT CALLBACK ICreateTypeLib_SetGuid_Proxy(
4796 ICreateTypeLib* This,
4797 REFGUID guid);
4798 void __RPC_STUB ICreateTypeLib_SetGuid_Stub(
4799 struct IRpcStubBuffer* This,
4800 struct IRpcChannelBuffer* pRpcChannelBuffer,
4801 PRPC_MESSAGE pRpcMessage,
4802 DWORD* pdwStubPhase);
4803 HRESULT CALLBACK ICreateTypeLib_SetDocString_Proxy(
4804 ICreateTypeLib* This,
4805 LPOLESTR szDoc);
4806 void __RPC_STUB ICreateTypeLib_SetDocString_Stub(
4807 struct IRpcStubBuffer* This,
4808 struct IRpcChannelBuffer* pRpcChannelBuffer,
4809 PRPC_MESSAGE pRpcMessage,
4810 DWORD* pdwStubPhase);
4811 HRESULT CALLBACK ICreateTypeLib_SetHelpFileName_Proxy(
4812 ICreateTypeLib* This,
4813 LPOLESTR szHelpFileName);
4814 void __RPC_STUB ICreateTypeLib_SetHelpFileName_Stub(
4815 struct IRpcStubBuffer* This,
4816 struct IRpcChannelBuffer* pRpcChannelBuffer,
4817 PRPC_MESSAGE pRpcMessage,
4818 DWORD* pdwStubPhase);
4819 HRESULT CALLBACK ICreateTypeLib_SetHelpContext_Proxy(
4820 ICreateTypeLib* This,
4821 DWORD dwHelpContext);
4822 void __RPC_STUB ICreateTypeLib_SetHelpContext_Stub(
4823 struct IRpcStubBuffer* This,
4824 struct IRpcChannelBuffer* pRpcChannelBuffer,
4825 PRPC_MESSAGE pRpcMessage,
4826 DWORD* pdwStubPhase);
4827 HRESULT CALLBACK ICreateTypeLib_SetLcid_Proxy(
4828 ICreateTypeLib* This,
4829 LCID lcid);
4830 void __RPC_STUB ICreateTypeLib_SetLcid_Stub(
4831 struct IRpcStubBuffer* This,
4832 struct IRpcChannelBuffer* pRpcChannelBuffer,
4833 PRPC_MESSAGE pRpcMessage,
4834 DWORD* pdwStubPhase);
4835 HRESULT CALLBACK ICreateTypeLib_SetLibFlags_Proxy(
4836 ICreateTypeLib* This,
4837 UINT uLibFlags);
4838 void __RPC_STUB ICreateTypeLib_SetLibFlags_Stub(
4839 struct IRpcStubBuffer* This,
4840 struct IRpcChannelBuffer* pRpcChannelBuffer,
4841 PRPC_MESSAGE pRpcMessage,
4842 DWORD* pdwStubPhase);
4843 HRESULT CALLBACK ICreateTypeLib_SaveAllChanges_Proxy(
4844 ICreateTypeLib* This);
4845 void __RPC_STUB ICreateTypeLib_SaveAllChanges_Stub(
4846 struct IRpcStubBuffer* This,
4847 struct IRpcChannelBuffer* pRpcChannelBuffer,
4848 PRPC_MESSAGE pRpcMessage,
4849 DWORD* pdwStubPhase);
4851 typedef struct ICreateTypeLib2 ICreateTypeLib2;
4852 typedef ICreateTypeLib2 *LPCREATETYPELIB2;
4854 /*****************************************************************************
4855 * ICreateTypeLib2 interface
4857 DEFINE_GUID(IID_ICreateTypeLib2, 0x0002040f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4858 #if defined(__cplusplus) && !defined(CINTERFACE)
4859 struct ICreateTypeLib2: ICreateTypeLib {
4861 virtual HRESULT CALLBACK DeleteTypeInfo(
4862 LPOLESTR szName) = 0;
4864 virtual HRESULT CALLBACK SetCustData(
4865 REFGUID guid,
4866 VARIANT* pVarVal) = 0;
4868 virtual HRESULT CALLBACK SetHelpStringContext(
4869 ULONG dwHelpStringContext) = 0;
4871 virtual HRESULT CALLBACK SetHelpStringDll(
4872 LPOLESTR szFileName) = 0;
4874 } ICOM_COM_INTERFACE_ATTRIBUTE;
4875 #else
4876 typedef struct ICreateTypeLib2Vtbl ICreateTypeLib2Vtbl;
4877 struct ICreateTypeLib2 {
4878 const ICreateTypeLib2Vtbl* lpVtbl;
4880 struct ICreateTypeLib2Vtbl {
4881 ICOM_MSVTABLE_COMPAT_FIELDS
4883 /*** IUnknown methods ***/
4884 HRESULT (CALLBACK *QueryInterface)(
4885 ICreateTypeLib2* This,
4886 REFIID riid,
4887 void** ppvObject);
4889 ULONG (CALLBACK *AddRef)(
4890 ICreateTypeLib2* This);
4892 ULONG (CALLBACK *Release)(
4893 ICreateTypeLib2* This);
4895 /*** ICreateTypeLib methods ***/
4896 HRESULT (CALLBACK *CreateTypeInfo)(
4897 ICreateTypeLib2* This,
4898 LPOLESTR szName,
4899 TYPEKIND tkind,
4900 ICreateTypeInfo** ppCTInfo);
4902 HRESULT (CALLBACK *SetName)(
4903 ICreateTypeLib2* This,
4904 LPOLESTR szName);
4906 HRESULT (CALLBACK *SetVersion)(
4907 ICreateTypeLib2* This,
4908 WORD wMajorVerNum,
4909 WORD wMinorVerNum);
4911 HRESULT (CALLBACK *SetGuid)(
4912 ICreateTypeLib2* This,
4913 REFGUID guid);
4915 HRESULT (CALLBACK *SetDocString)(
4916 ICreateTypeLib2* This,
4917 LPOLESTR szDoc);
4919 HRESULT (CALLBACK *SetHelpFileName)(
4920 ICreateTypeLib2* This,
4921 LPOLESTR szHelpFileName);
4923 HRESULT (CALLBACK *SetHelpContext)(
4924 ICreateTypeLib2* This,
4925 DWORD dwHelpContext);
4927 HRESULT (CALLBACK *SetLcid)(
4928 ICreateTypeLib2* This,
4929 LCID lcid);
4931 HRESULT (CALLBACK *SetLibFlags)(
4932 ICreateTypeLib2* This,
4933 UINT uLibFlags);
4935 HRESULT (CALLBACK *SaveAllChanges)(
4936 ICreateTypeLib2* This);
4938 /*** ICreateTypeLib2 methods ***/
4939 HRESULT (CALLBACK *DeleteTypeInfo)(
4940 ICreateTypeLib2* This,
4941 LPOLESTR szName);
4943 HRESULT (CALLBACK *SetCustData)(
4944 ICreateTypeLib2* This,
4945 REFGUID guid,
4946 VARIANT* pVarVal);
4948 HRESULT (CALLBACK *SetHelpStringContext)(
4949 ICreateTypeLib2* This,
4950 ULONG dwHelpStringContext);
4952 HRESULT (CALLBACK *SetHelpStringDll)(
4953 ICreateTypeLib2* This,
4954 LPOLESTR szFileName);
4958 #define ICreateTypeLib2_IMETHODS \
4959 ICreateTypeLib_IMETHODS \
4960 ICOM_METHOD1 (HRESULT,DeleteTypeInfo,LPOLESTR,szName) \
4961 ICOM_METHOD2 (HRESULT,SetCustData,REFGUID,guid,VARIANT*,pVarVal) \
4962 ICOM_METHOD1 (HRESULT,SetHelpStringContext,ULONG,dwHelpStringContext) \
4963 ICOM_METHOD1 (HRESULT,SetHelpStringDll,LPOLESTR,szFileName)
4965 /*** IUnknown methods ***/
4966 #define ICreateTypeLib2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4967 #define ICreateTypeLib2_AddRef(p) (p)->lpVtbl->AddRef(p)
4968 #define ICreateTypeLib2_Release(p) (p)->lpVtbl->Release(p)
4969 /*** ICreateTypeLib methods ***/
4970 #define ICreateTypeLib2_CreateTypeInfo(p,a,b,c) (p)->lpVtbl->CreateTypeInfo(p,a,b,c)
4971 #define ICreateTypeLib2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
4972 #define ICreateTypeLib2_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
4973 #define ICreateTypeLib2_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
4974 #define ICreateTypeLib2_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
4975 #define ICreateTypeLib2_SetHelpFileName(p,a) (p)->lpVtbl->SetHelpFileName(p,a)
4976 #define ICreateTypeLib2_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
4977 #define ICreateTypeLib2_SetLcid(p,a) (p)->lpVtbl->SetLcid(p,a)
4978 #define ICreateTypeLib2_SetLibFlags(p,a) (p)->lpVtbl->SetLibFlags(p,a)
4979 #define ICreateTypeLib2_SaveAllChanges(p) (p)->lpVtbl->SaveAllChanges(p)
4980 /*** ICreateTypeLib2 methods ***/
4981 #define ICreateTypeLib2_DeleteTypeInfo(p,a) (p)->lpVtbl->DeleteTypeInfo(p,a)
4982 #define ICreateTypeLib2_SetCustData(p,a,b) (p)->lpVtbl->SetCustData(p,a,b)
4983 #define ICreateTypeLib2_SetHelpStringContext(p,a) (p)->lpVtbl->SetHelpStringContext(p,a)
4984 #define ICreateTypeLib2_SetHelpStringDll(p,a) (p)->lpVtbl->SetHelpStringDll(p,a)
4986 #endif
4988 HRESULT CALLBACK ICreateTypeLib2_DeleteTypeInfo_Proxy(
4989 ICreateTypeLib2* This,
4990 LPOLESTR szName);
4991 void __RPC_STUB ICreateTypeLib2_DeleteTypeInfo_Stub(
4992 struct IRpcStubBuffer* This,
4993 struct IRpcChannelBuffer* pRpcChannelBuffer,
4994 PRPC_MESSAGE pRpcMessage,
4995 DWORD* pdwStubPhase);
4996 HRESULT CALLBACK ICreateTypeLib2_SetCustData_Proxy(
4997 ICreateTypeLib2* This,
4998 REFGUID guid,
4999 VARIANT* pVarVal);
5000 void __RPC_STUB ICreateTypeLib2_SetCustData_Stub(
5001 struct IRpcStubBuffer* This,
5002 struct IRpcChannelBuffer* pRpcChannelBuffer,
5003 PRPC_MESSAGE pRpcMessage,
5004 DWORD* pdwStubPhase);
5005 HRESULT CALLBACK ICreateTypeLib2_SetHelpStringContext_Proxy(
5006 ICreateTypeLib2* This,
5007 ULONG dwHelpStringContext);
5008 void __RPC_STUB ICreateTypeLib2_SetHelpStringContext_Stub(
5009 struct IRpcStubBuffer* This,
5010 struct IRpcChannelBuffer* pRpcChannelBuffer,
5011 PRPC_MESSAGE pRpcMessage,
5012 DWORD* pdwStubPhase);
5013 HRESULT CALLBACK ICreateTypeLib2_SetHelpStringDll_Proxy(
5014 ICreateTypeLib2* This,
5015 LPOLESTR szFileName);
5016 void __RPC_STUB ICreateTypeLib2_SetHelpStringDll_Stub(
5017 struct IRpcStubBuffer* This,
5018 struct IRpcChannelBuffer* pRpcChannelBuffer,
5019 PRPC_MESSAGE pRpcMessage,
5020 DWORD* pdwStubPhase);
5022 #ifdef __cplusplus
5024 #endif
5025 #endif /* __WIDL_OAIDL_H */