Add Content Types for a few common extensions.
[wine.git] / include / oaidl.h
blobc2cffe4302e8446600aedd978465c389f1e2d736
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 #ifndef __IDispatch_FWD_DEFINED__
12 #define __IDispatch_FWD_DEFINED__
13 typedef struct IDispatch IDispatch;
14 #endif
16 #ifndef __ITypeInfo_FWD_DEFINED__
17 #define __ITypeInfo_FWD_DEFINED__
18 typedef struct ITypeInfo ITypeInfo;
19 #endif
21 #ifndef __ITypeLib_FWD_DEFINED__
22 #define __ITypeLib_FWD_DEFINED__
23 typedef struct ITypeLib ITypeLib;
24 #endif
26 #ifndef __IRecordInfo_FWD_DEFINED__
27 #define __IRecordInfo_FWD_DEFINED__
28 typedef struct IRecordInfo IRecordInfo;
29 #endif
31 typedef CY CURRENCY;
33 typedef struct tagSAFEARRAYBOUND {
34 ULONG cElements;
35 LONG lLbound;
36 } SAFEARRAYBOUND, *LPSAFEARRAYBOUND;
38 typedef struct _wireVARIANT *wireVARIANT;
40 typedef struct _wireBRECORD *wireBRECORD;
42 typedef struct _wireSAFEARR_BSTR {
43 ULONG Size;
44 wireBSTR *aBstr;
45 } SAFEARR_BSTR;
47 typedef struct _wireSAFEARR_UNKNOWN {
48 ULONG Size;
49 IUnknown **apUnknown;
50 } SAFEARR_UNKNOWN;
52 typedef struct _wireSAFEARR_DISPATCH {
53 ULONG Size;
54 IDispatch **apDispatch;
55 } SAFEARR_DISPATCH;
57 typedef struct _wireSAFEARR_VARIANT {
58 ULONG Size;
59 wireVARIANT *aVariant;
60 } SAFEARR_VARIANT;
62 typedef struct _wireSAFEARR_BRECORD {
63 ULONG Size;
64 wireBRECORD *aRecord;
65 } SAFEARR_BRECORD;
67 typedef struct _wireSAFEARR_HAVEIID {
68 ULONG Size;
69 IUnknown **apUnknown;
70 IID iid;
71 } SAFEARR_HAVEIID;
73 typedef enum tagSF_TYPE {
74 SF_ERROR = VT_ERROR,
75 SF_I1 = VT_I1,
76 SF_I2 = VT_I2,
77 SF_I4 = VT_I4,
78 SF_I8 = VT_I8,
79 SF_BSTR = VT_BSTR,
80 SF_UNKNOWN = VT_UNKNOWN,
81 SF_DISPATCH = VT_DISPATCH,
82 SF_VARIANT = VT_VARIANT,
83 SF_RECORD = VT_RECORD,
84 SF_HAVEIID = VT_UNKNOWN | VT_RESERVED
85 } SF_TYPE;
87 typedef struct _wireSAFEARRAY_UNION {
88 ULONG sfType;
89 union {
90 SAFEARR_BSTR BstrStr;
91 SAFEARR_UNKNOWN UnknownStr;
92 SAFEARR_DISPATCH DispatchStr;
93 SAFEARR_VARIANT VariantStr;
94 SAFEARR_BRECORD RecordStr;
95 SAFEARR_HAVEIID HaveIidStr;
96 BYTE_SIZEDARR ByteStr;
97 WORD_SIZEDARR WordStr;
98 DWORD_SIZEDARR LongStr;
99 HYPER_SIZEDARR HyperStr;
100 } u;
101 } SAFEARRAYUNION;
103 typedef struct _wireSAFEARRAY {
104 USHORT cDims;
105 USHORT fFeatures;
106 ULONG cbElements;
107 ULONG cLocks;
108 SAFEARRAYUNION uArrayStructs;
109 SAFEARRAYBOUND rgsabound[1];
110 } *wireSAFEARRAY;
112 typedef wireSAFEARRAY *wirePSAFEARRAY;
114 typedef struct tagSAFEARRAY {
115 USHORT cDims;
116 USHORT fFeatures;
117 ULONG cbElements;
118 ULONG cLocks;
119 PVOID pvData;
120 SAFEARRAYBOUND rgsabound[1];
121 } SAFEARRAY;
123 typedef SAFEARRAY *LPSAFEARRAY;
124 unsigned long __RPC_USER LPSAFEARRAY_UserSize (unsigned long *, unsigned long, LPSAFEARRAY *);
125 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal (unsigned long *, unsigned char *, LPSAFEARRAY *);
126 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(unsigned long *, unsigned char *, LPSAFEARRAY *);
127 void __RPC_USER LPSAFEARRAY_UserFree (unsigned long *, LPSAFEARRAY *);
129 #define FADF_AUTO (0x1)
131 #define FADF_STATIC (0x2)
133 #define FADF_EMBEDDED (0x4)
135 #define FADF_FIXEDSIZE (0x10)
137 #define FADF_RECORD (0x20)
139 #define FADF_HAVEIID (0x40)
141 #define FADF_HAVEVARTYPE (0x80)
143 #define FADF_BSTR (0x100)
145 #define FADF_UNKNOWN (0x200)
147 #define FADF_DISPATCH (0x400)
149 #define FADF_VARIANT (0x800)
151 #define FADF_RESERVED (0xf008)
153 #define FADF_DATADELETED (0x1000)
155 #define FADF_CREATEVECTOR (0x2000)
157 #if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION)
158 #define __VARIANT_NAME_1 n1
159 #define __VARIANT_NAME_2 n2
160 #define __VARIANT_NAME_3 n3
161 #define __VARIANT_NAME_4 brecVal
162 #else
163 #define __tagVARIANT
164 #define __VARIANT_NAME_1
165 #define __VARIANT_NAME_2
166 #define __VARIANT_NAME_3
167 #define __tagBRECORD
168 #define __VARIANT_NAME_4
169 #endif
170 typedef struct tagVARIANT VARIANT;
171 unsigned long __RPC_USER VARIANT_UserSize (unsigned long *, unsigned long, VARIANT *);
172 unsigned char * __RPC_USER VARIANT_UserMarshal (unsigned long *, unsigned char *, VARIANT *);
173 unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT *);
174 void __RPC_USER VARIANT_UserFree (unsigned long *, VARIANT *);
176 struct tagVARIANT {
177 union {
178 struct __tagVARIANT {
179 VARTYPE vt;
180 WORD wReserved1;
181 WORD wReserved2;
182 WORD wReserved3;
183 union {
184 signed char cVal;
185 USHORT uiVal;
186 ULONG ulVal;
187 INT intVal;
188 UINT uintVal;
189 BYTE bVal;
190 SHORT iVal;
191 LONG lVal;
192 FLOAT fltVal;
193 DOUBLE dblVal;
194 VARIANT_BOOL boolVal;
195 SCODE scode;
196 DATE date;
197 BSTR bstrVal;
198 CY cyVal;
199 IUnknown *punkVal;
200 IDispatch *pdispVal;
201 SAFEARRAY *parray;
202 LONGLONG llVal;
203 ULONGLONG ullVal;
204 signed char *pcVal;
205 USHORT *puiVal;
206 ULONG *pulVal;
207 INT *pintVal;
208 UINT *puintVal;
209 BYTE *pbVal;
210 SHORT *piVal;
211 LONG *plVal;
212 FLOAT *pfltVal;
213 DOUBLE *pdblVal;
214 VARIANT_BOOL *pboolVal;
215 SCODE *pscode;
216 DATE *pdate;
217 BSTR *pbstrVal;
218 VARIANT *pvarVal;
219 PVOID byref;
220 CY *pcyVal;
221 DECIMAL *pdecVal;
222 IUnknown **ppunkVal;
223 IDispatch **ppdispVal;
224 SAFEARRAY **pparray;
225 LONGLONG *pllVal;
226 ULONGLONG *pullVal;
227 struct __tagBRECORD {
228 PVOID pvRecord;
229 IRecordInfo *pRecInfo;
230 } __VARIANT_NAME_4;
231 } __VARIANT_NAME_3;
232 } __VARIANT_NAME_2;
233 DECIMAL decVal;
234 } __VARIANT_NAME_1;
237 typedef VARIANT *LPVARIANT;
239 typedef VARIANT VARIANTARG;
241 typedef VARIANTARG *LPVARIANTARG;
243 struct _wireBRECORD {
244 ULONG fFlags;
245 ULONG clSize;
246 IRecordInfo *pRecInfo;
247 byte *pRecord;
250 struct _wireVARIANT {
251 DWORD clSize;
252 DWORD rpcReserved;
253 USHORT vt;
254 USHORT wReserved1;
255 USHORT wReserved2;
256 USHORT wReserved3;
257 union {
258 signed char cVal;
259 USHORT uiVal;
260 ULONG ulVal;
261 INT intVal;
262 UINT uintVal;
263 BYTE bVal;
264 SHORT iVal;
265 LONG lVal;
266 FLOAT fltVal;
267 DOUBLE dblVal;
268 VARIANT_BOOL boolVal;
269 SCODE scode;
270 DATE date;
271 wireBSTR bstrVal;
272 CY cyVal;
273 DECIMAL decVal;
274 IUnknown *punkVal;
275 IDispatch *pdispVal;
276 wireSAFEARRAY parray;
277 signed char *pcVal;
278 USHORT *puiVal;
279 ULONG *pulVal;
280 INT *pintVal;
281 UINT *puintVal;
282 BYTE *pbVal;
283 SHORT *piVal;
284 LONG *plVal;
285 FLOAT *pfltVal;
286 DOUBLE *pdblVal;
287 VARIANT_BOOL *pboolVal;
288 SCODE *pscode;
289 DATE *pdate;
290 wireBSTR *pbstrVal;
291 wireVARIANT *pvarVal;
292 CY *pcyVal;
293 DECIMAL *pdecVal;
294 IUnknown **ppunkVal;
295 IDispatch **ppdispVal;
296 wireSAFEARRAY *pparray;
297 wireBRECORD brecVal;
298 } DUMMYUNIONNAME;
301 typedef LONG DISPID;
303 typedef DWORD HREFTYPE;
305 typedef DISPID MEMBERID;
307 typedef enum tagTYPEKIND {
308 TKIND_ENUM = 0,
309 TKIND_RECORD,
310 TKIND_MODULE,
311 TKIND_INTERFACE,
312 TKIND_DISPATCH,
313 TKIND_COCLASS,
314 TKIND_ALIAS,
315 TKIND_UNION,
316 TKIND_MAX
317 } TYPEKIND;
319 typedef struct tagTYPEDESC {
320 union {
321 struct tagTYPEDESC *lptdesc;
322 struct tagARRAYDESC *lpadesc;
323 HREFTYPE hreftype;
324 } DUMMYUNIONNAME;
325 VARTYPE vt;
326 } TYPEDESC;
328 typedef struct tagARRAYDESC {
329 TYPEDESC tdescElem;
330 USHORT cDims;
331 SAFEARRAYBOUND rgbounds[1];
332 } ARRAYDESC;
334 typedef struct tagPARAMDESCEX {
335 ULONG cBytes;
336 VARIANTARG varDefaultValue;
337 } PARAMDESCEX, *LPPARAMDESCEX;
339 typedef struct tagPARAMDESC {
340 LPPARAMDESCEX pparamdescex;
341 USHORT wParamFlags;
342 } PARAMDESC, *LPPARAMDESC;
344 #define PARAMFLAG_NONE (0x0)
346 #define PARAMFLAG_FIN (0x1)
348 #define PARAMFLAG_FOUT (0x2)
350 #define PARAMFLAG_FLCID (0x4)
352 #define PARAMFLAG_FRETVAL (0x8)
354 #define PARAMFLAG_FOPT (0x10)
356 #define PARAMFLAG_FHASDEFAULT (0x20)
358 #define PARAMFLAG_FHASCUSTDATA (0x40)
360 typedef struct tagIDLDESC {
361 ULONG dwReserved;
362 USHORT wIDLFlags;
363 } IDLDESC, *LPIDLDESC;
365 #define IDLFLAG_NONE (PARAMFLAG_NONE)
367 #define IDLFLAG_FIN (PARAMFLAG_FIN)
369 #define IDLFLAG_FOUT (PARAMFLAG_FOUT)
371 #define IDLFLAG_FLCID (PARAMFLAG_FLCID)
373 #define IDLFLAG_FRETVAL (PARAMFLAG_FRETVAL)
375 #if 0
376 typedef struct tagELEMDESC {
377 TYPEDESC tdesc;
378 PARAMDESC paramdesc;
379 } ELEMDESC;
381 #else
382 typedef struct tagELEMDESC {
383 TYPEDESC tdesc;
384 union {
385 IDLDESC idldesc;
386 PARAMDESC paramdesc;
387 } DUMMYUNIONNAME;
388 } ELEMDESC, *LPELEMDESC;
389 #endif
390 typedef struct tagTYPEATTR {
391 GUID guid;
392 LCID lcid;
393 DWORD dwReserved;
394 MEMBERID memidConstructor;
395 MEMBERID memidDestructor;
396 LPOLESTR lpstrSchema;
397 ULONG cbSizeInstance;
398 TYPEKIND typekind;
399 WORD cFuncs;
400 WORD cVars;
401 WORD cImplTypes;
402 WORD cbSizeVft;
403 WORD cbAlignment;
404 WORD wTypeFlags;
405 WORD wMajorVerNum;
406 WORD wMinorVerNum;
407 TYPEDESC tdescAlias;
408 IDLDESC idldescType;
409 } TYPEATTR, *LPTYPEATTR;
411 typedef struct tagDISPPARAMS {
412 VARIANTARG *rgvarg;
413 DISPID *rgdispidNamedArgs;
414 UINT cArgs;
415 UINT cNamedArgs;
416 } DISPPARAMS;
418 #if 0
419 typedef struct tagEXCEPINFO {
420 WORD wCode;
421 WORD wReserved;
422 BSTR bstrSource;
423 BSTR bstrDescription;
424 BSTR bstrHelpFile;
425 DWORD dwHelpContext;
426 ULONG pvReserved;
427 ULONG pfnDeferredFillIn;
428 SCODE scode;
429 } EXCEPINFO;
431 #else
432 typedef struct tagEXCEPINFO {
433 WORD wCode;
434 WORD wReserved;
435 BSTR bstrSource;
436 BSTR bstrDescription;
437 BSTR bstrHelpFile;
438 DWORD dwHelpContext;
439 PVOID pvReserved;
440 HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);
441 SCODE scode;
442 } EXCEPINFO, *LPEXCEPINFO;
443 #endif
444 typedef enum tagCALLCONV {
445 CC_FASTCALL = 0,
446 CC_CDECL = 1,
447 CC_MSCPASCAL,
448 CC_PASCAL = CC_MSCPASCAL,
449 CC_MACPASCAL,
450 CC_STDCALL,
451 CC_FPFASTCALL,
452 CC_SYSCALL,
453 CC_MPWCDECL,
454 CC_MPWPASCAL,
455 CC_MAX
456 } CALLCONV;
458 typedef enum tagFUNCKIND {
459 FUNC_VIRTUAL,
460 FUNC_PUREVIRTUAL,
461 FUNC_NONVIRTUAL,
462 FUNC_STATIC,
463 FUNC_DISPATCH
464 } FUNCKIND;
466 typedef enum tagINVOKEKIND {
467 INVOKE_FUNC = 1,
468 INVOKE_PROPERTYGET = 2,
469 INVOKE_PROPERTYPUT = 4,
470 INVOKE_PROPERTYPUTREF = 8
471 } INVOKEKIND;
473 typedef struct tagFUNCDESC {
474 MEMBERID memid;
475 SCODE *lprgscode;
476 ELEMDESC *lprgelemdescParam;
477 FUNCKIND funckind;
478 INVOKEKIND invkind;
479 CALLCONV callconv;
480 SHORT cParams;
481 SHORT cParamsOpt;
482 SHORT oVft;
483 SHORT cScodes;
484 ELEMDESC elemdescFunc;
485 WORD wFuncFlags;
486 } FUNCDESC, *LPFUNCDESC;
488 typedef enum tagVARKIND {
489 VAR_PERINSTANCE,
490 VAR_STATIC,
491 VAR_CONST,
492 VAR_DISPATCH
493 } VARKIND;
495 #define IMPLTYPEFLAG_FDEFAULT (0x1)
497 #define IMPLTYPEFLAG_FSOURCE (0x2)
499 #define IMPLTYPEFLAG_FRESTRICTED (0x4)
501 #define IMPLTYPEFLAG_FDEFAULTVTABLE (0x8)
503 typedef struct tagVARDESC {
504 MEMBERID memid;
505 LPOLESTR lpstrSchema;
506 union {
507 ULONG oInst;
508 VARIANT *lpvarValue;
509 } DUMMYUNIONNAME;
510 ELEMDESC elemdescVar;
511 WORD wVarFlags;
512 VARKIND varkind;
513 } VARDESC, *LPVARDESC;
515 typedef enum tagTYPEFLAGS {
516 TYPEFLAG_FAPPOBJECT = 0x1,
517 TYPEFLAG_FCANCREATE = 0x2,
518 TYPEFLAG_FLICENSED = 0x4,
519 TYPEFLAG_FPREDECLID = 0x8,
520 TYPEFLAG_FHIDDEN = 0x10,
521 TYPEFLAG_FCONTROL = 0x20,
522 TYPEFLAG_FDUAL = 0x40,
523 TYPEFLAG_FNONEXTENSIBLE = 0x80,
524 TYPEFLAG_FOLEAUTOMATION = 0x100,
525 TYPEFLAG_FRESTRICTED = 0x200,
526 TYPEFLAG_FAGGREGATABLE = 0x400,
527 TYPEFLAG_FREPLACEABLE = 0x800,
528 TYPEFLAG_FDISPATCHABLE = 0x1000,
529 TYPEFLAG_FREVERSEBIND = 0x2000,
530 TYPEFLAG_FPROXY = 0x4000
531 } TYPEFLAGS;
533 typedef enum tagFUNCFLAGS {
534 FUNCFLAG_FRESTRICTED = 0x1,
535 FUNCFLAG_FSOURCE = 0x2,
536 FUNCFLAG_FBINDABLE = 0x4,
537 FUNCFLAG_FREQUESTEDIT = 0x8,
538 FUNCFLAG_FDISPLAYBIND = 0x10,
539 FUNCFLAG_FDEFAULTBIND = 0x20,
540 FUNCFLAG_FHIDDEN = 0x40,
541 FUNCFLAG_FUSESGETLASTERROR = 0x80,
542 FUNCFLAG_FDEFAULTCOLLELEM = 0x100,
543 FUNCFLAG_FUIDEFAULT = 0x200,
544 FUNCFLAG_FNONBROWSABLE = 0x400,
545 FUNCFLAG_FREPLACEABLE = 0x800,
546 FUNCFLAG_FIMMEDIATEBIND = 0x1000
547 } FUNCFLAGS;
549 typedef enum tagVARFLAGS {
550 VARFLAG_FREADONLY = 0x1,
551 VARFLAG_FSOURCE = 0x2,
552 VARFLAG_FBINDABLE = 0x4,
553 VARFLAG_FREQUESTEDIT = 0x8,
554 VARFLAG_FDISPLAYBIND = 0x10,
555 VARFLAG_FDEFAULTBIND = 0x20,
556 VARFLAG_FHIDDEN = 0x40,
557 VARFLAG_FRESTRICTED = 0x80,
558 VARFLAG_FDEFAULTCOLLELEM = 0x100,
559 VARFLAG_FUIDEFAULT = 0x200,
560 VARFLAG_FNONBROWSABLE = 0x400,
561 VARFLAG_FREPLACEABLE = 0x800,
562 VARFLAG_FIMMEDIATEBIND = 0x1000
563 } VARFLAGS;
565 typedef struct tagCLEANLOCALSTORAGE {
566 IUnknown *pInterface;
567 PVOID pStorage;
568 DWORD flags;
569 } CLEANLOCALSTORAGE;
570 unsigned long __RPC_USER CLEANLOCALSTORAGE_UserSize (unsigned long *, unsigned long, CLEANLOCALSTORAGE *);
571 unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserMarshal (unsigned long *, unsigned char *, CLEANLOCALSTORAGE *);
572 unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserUnmarshal(unsigned long *, unsigned char *, CLEANLOCALSTORAGE *);
573 void __RPC_USER CLEANLOCALSTORAGE_UserFree (unsigned long *, CLEANLOCALSTORAGE *);
575 typedef struct tagCUSTDATAITEM {
576 GUID guid;
577 VARIANTARG varValue;
578 } CUSTDATAITEM, *LPCUSTDATAITEM;
580 typedef struct tagCUSTDATA {
581 DWORD cCustData;
582 LPCUSTDATAITEM prgCustData;
583 } CUSTDATA, *LPCUSTDATA;
585 typedef IDispatch *LPDISPATCH;
587 #define DISPID_UNKNOWN (-1)
589 #define DISPID_VALUE (0)
591 #define DISPID_PROPERTYPUT (-3)
593 #define DISPID_NEWENUM (-4)
595 #define DISPID_EVALUATE (-5)
597 #define DISPID_CONSTRUCTOR (-6)
599 #define DISPID_DESTRUCTOR (-7)
601 #define DISPID_COLLECT (-8)
603 /*****************************************************************************
604 * IDispatch interface
606 #ifndef __IDispatch_INTERFACE_DEFINED__
607 #define __IDispatch_INTERFACE_DEFINED__
609 DEFINE_GUID(IID_IDispatch, 0x00020400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
610 #if defined(__cplusplus) && !defined(CINTERFACE)
611 struct IDispatch : public IUnknown
613 virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(
614 UINT* pctinfo) = 0;
616 virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
617 UINT iTInfo,
618 LCID lcid,
619 ITypeInfo** ppTInfo) = 0;
621 virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(
622 REFIID riid,
623 LPOLESTR* rgszNames,
624 UINT cNames,
625 LCID lcid,
626 DISPID* rgDispId) = 0;
628 virtual HRESULT STDMETHODCALLTYPE Invoke(
629 DISPID dispIdMember,
630 REFIID riid,
631 LCID lcid,
632 WORD wFlags,
633 DISPPARAMS* pDispParams,
634 VARIANT* pVarResult,
635 EXCEPINFO* pExcepInfo,
636 UINT* puArgErr) = 0;
639 #else
640 typedef struct IDispatchVtbl IDispatchVtbl;
641 struct IDispatch {
642 const IDispatchVtbl* lpVtbl;
644 struct IDispatchVtbl {
645 ICOM_MSVTABLE_COMPAT_FIELDS
647 /*** IUnknown methods ***/
648 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
649 IDispatch* This,
650 REFIID riid,
651 void** ppvObject);
653 ULONG (STDMETHODCALLTYPE *AddRef)(
654 IDispatch* This);
656 ULONG (STDMETHODCALLTYPE *Release)(
657 IDispatch* This);
659 /*** IDispatch methods ***/
660 HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
661 IDispatch* This,
662 UINT* pctinfo);
664 HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
665 IDispatch* This,
666 UINT iTInfo,
667 LCID lcid,
668 ITypeInfo** ppTInfo);
670 HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
671 IDispatch* This,
672 REFIID riid,
673 LPOLESTR* rgszNames,
674 UINT cNames,
675 LCID lcid,
676 DISPID* rgDispId);
678 HRESULT (STDMETHODCALLTYPE *Invoke)(
679 IDispatch* This,
680 DISPID dispIdMember,
681 REFIID riid,
682 LCID lcid,
683 WORD wFlags,
684 DISPPARAMS* pDispParams,
685 VARIANT* pVarResult,
686 EXCEPINFO* pExcepInfo,
687 UINT* puArgErr);
691 /*** IUnknown methods ***/
692 #define IDispatch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
693 #define IDispatch_AddRef(p) (p)->lpVtbl->AddRef(p)
694 #define IDispatch_Release(p) (p)->lpVtbl->Release(p)
695 /*** IDispatch methods ***/
696 #define IDispatch_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
697 #define IDispatch_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
698 #define IDispatch_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
699 #define IDispatch_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
701 #endif
703 #define IDispatch_METHODS \
704 ICOM_MSVTABLE_COMPAT_FIELDS \
705 /*** IUnknown methods ***/ \
706 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
707 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
708 STDMETHOD_(ULONG,Release)(THIS) PURE; \
709 /*** IDispatch methods ***/ \
710 STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ UINT* pctinfo) PURE; \
711 STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) PURE; \
712 STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) PURE; \
713 STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) PURE;
715 HRESULT CALLBACK IDispatch_GetTypeInfoCount_Proxy(
716 IDispatch* This,
717 UINT* pctinfo);
718 void __RPC_STUB IDispatch_GetTypeInfoCount_Stub(
719 struct IRpcStubBuffer* This,
720 struct IRpcChannelBuffer* pRpcChannelBuffer,
721 PRPC_MESSAGE pRpcMessage,
722 DWORD* pdwStubPhase);
723 HRESULT CALLBACK IDispatch_GetTypeInfo_Proxy(
724 IDispatch* This,
725 UINT iTInfo,
726 LCID lcid,
727 ITypeInfo** ppTInfo);
728 void __RPC_STUB IDispatch_GetTypeInfo_Stub(
729 struct IRpcStubBuffer* This,
730 struct IRpcChannelBuffer* pRpcChannelBuffer,
731 PRPC_MESSAGE pRpcMessage,
732 DWORD* pdwStubPhase);
733 HRESULT CALLBACK IDispatch_GetIDsOfNames_Proxy(
734 IDispatch* This,
735 REFIID riid,
736 LPOLESTR* rgszNames,
737 UINT cNames,
738 LCID lcid,
739 DISPID* rgDispId);
740 void __RPC_STUB IDispatch_GetIDsOfNames_Stub(
741 struct IRpcStubBuffer* This,
742 struct IRpcChannelBuffer* pRpcChannelBuffer,
743 PRPC_MESSAGE pRpcMessage,
744 DWORD* pdwStubPhase);
745 HRESULT CALLBACK IDispatch_RemoteInvoke_Proxy(
746 IDispatch* This,
747 DISPID dispIdMember,
748 REFIID riid,
749 LCID lcid,
750 DWORD dwFlags,
751 DISPPARAMS* pDispParams,
752 VARIANT* pVarResult,
753 EXCEPINFO* pExcepInfo,
754 UINT* pArgErr,
755 UINT cVarRef,
756 UINT* rgVarRefIdx,
757 VARIANTARG* rgVarRef);
758 void __RPC_STUB IDispatch_RemoteInvoke_Stub(
759 struct IRpcStubBuffer* This,
760 struct IRpcChannelBuffer* pRpcChannelBuffer,
761 PRPC_MESSAGE pRpcMessage,
762 DWORD* pdwStubPhase);
763 HRESULT CALLBACK IDispatch_Invoke_Proxy(
764 IDispatch* This,
765 DISPID dispIdMember,
766 REFIID riid,
767 LCID lcid,
768 WORD wFlags,
769 DISPPARAMS* pDispParams,
770 VARIANT* pVarResult,
771 EXCEPINFO* pExcepInfo,
772 UINT* puArgErr);
773 HRESULT __RPC_STUB IDispatch_Invoke_Stub(
774 IDispatch* This,
775 DISPID dispIdMember,
776 REFIID riid,
777 LCID lcid,
778 DWORD dwFlags,
779 DISPPARAMS* pDispParams,
780 VARIANT* pVarResult,
781 EXCEPINFO* pExcepInfo,
782 UINT* pArgErr,
783 UINT cVarRef,
784 UINT* rgVarRefIdx,
785 VARIANTARG* rgVarRef);
787 #endif /* __IDispatch_INTERFACE_DEFINED__ */
789 #ifndef __IEnumVARIANT_FWD_DEFINED__
790 #define __IEnumVARIANT_FWD_DEFINED__
791 typedef struct IEnumVARIANT IEnumVARIANT;
792 #endif
794 typedef IEnumVARIANT *LPENUMVARIANT;
796 /*****************************************************************************
797 * IEnumVARIANT interface
799 #ifndef __IEnumVARIANT_INTERFACE_DEFINED__
800 #define __IEnumVARIANT_INTERFACE_DEFINED__
802 DEFINE_GUID(IID_IEnumVARIANT, 0x00020404, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
803 #if defined(__cplusplus) && !defined(CINTERFACE)
804 struct IEnumVARIANT : public IUnknown
806 virtual HRESULT STDMETHODCALLTYPE Next(
807 ULONG celt,
808 VARIANT* rgVar,
809 ULONG* pCeltFetched) = 0;
811 virtual HRESULT STDMETHODCALLTYPE Skip(
812 ULONG celt) = 0;
814 virtual HRESULT STDMETHODCALLTYPE Reset(
815 ) = 0;
817 virtual HRESULT STDMETHODCALLTYPE Clone(
818 IEnumVARIANT** ppEnum) = 0;
821 #else
822 typedef struct IEnumVARIANTVtbl IEnumVARIANTVtbl;
823 struct IEnumVARIANT {
824 const IEnumVARIANTVtbl* lpVtbl;
826 struct IEnumVARIANTVtbl {
827 ICOM_MSVTABLE_COMPAT_FIELDS
829 /*** IUnknown methods ***/
830 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
831 IEnumVARIANT* This,
832 REFIID riid,
833 void** ppvObject);
835 ULONG (STDMETHODCALLTYPE *AddRef)(
836 IEnumVARIANT* This);
838 ULONG (STDMETHODCALLTYPE *Release)(
839 IEnumVARIANT* This);
841 /*** IEnumVARIANT methods ***/
842 HRESULT (STDMETHODCALLTYPE *Next)(
843 IEnumVARIANT* This,
844 ULONG celt,
845 VARIANT* rgVar,
846 ULONG* pCeltFetched);
848 HRESULT (STDMETHODCALLTYPE *Skip)(
849 IEnumVARIANT* This,
850 ULONG celt);
852 HRESULT (STDMETHODCALLTYPE *Reset)(
853 IEnumVARIANT* This);
855 HRESULT (STDMETHODCALLTYPE *Clone)(
856 IEnumVARIANT* This,
857 IEnumVARIANT** ppEnum);
861 /*** IUnknown methods ***/
862 #define IEnumVARIANT_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
863 #define IEnumVARIANT_AddRef(p) (p)->lpVtbl->AddRef(p)
864 #define IEnumVARIANT_Release(p) (p)->lpVtbl->Release(p)
865 /*** IEnumVARIANT methods ***/
866 #define IEnumVARIANT_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
867 #define IEnumVARIANT_Skip(p,a) (p)->lpVtbl->Skip(p,a)
868 #define IEnumVARIANT_Reset(p) (p)->lpVtbl->Reset(p)
869 #define IEnumVARIANT_Clone(p,a) (p)->lpVtbl->Clone(p,a)
871 #endif
873 #define IEnumVARIANT_METHODS \
874 ICOM_MSVTABLE_COMPAT_FIELDS \
875 /*** IUnknown methods ***/ \
876 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
877 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
878 STDMETHOD_(ULONG,Release)(THIS) PURE; \
879 /*** IEnumVARIANT methods ***/ \
880 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, VARIANT* rgVar, ULONG* pCeltFetched) PURE; \
881 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
882 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
883 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumVARIANT** ppEnum) PURE;
885 HRESULT CALLBACK IEnumVARIANT_RemoteNext_Proxy(
886 IEnumVARIANT* This,
887 ULONG celt,
888 VARIANT* rgVar,
889 ULONG* pCeltFetched);
890 void __RPC_STUB IEnumVARIANT_RemoteNext_Stub(
891 struct IRpcStubBuffer* This,
892 struct IRpcChannelBuffer* pRpcChannelBuffer,
893 PRPC_MESSAGE pRpcMessage,
894 DWORD* pdwStubPhase);
895 HRESULT CALLBACK IEnumVARIANT_Next_Proxy(
896 IEnumVARIANT* This,
897 ULONG celt,
898 VARIANT* rgVar,
899 ULONG* pCeltFetched);
900 HRESULT __RPC_STUB IEnumVARIANT_Next_Stub(
901 IEnumVARIANT* This,
902 ULONG celt,
903 VARIANT* rgVar,
904 ULONG* pCeltFetched);
905 HRESULT CALLBACK IEnumVARIANT_Skip_Proxy(
906 IEnumVARIANT* This,
907 ULONG celt);
908 void __RPC_STUB IEnumVARIANT_Skip_Stub(
909 struct IRpcStubBuffer* This,
910 struct IRpcChannelBuffer* pRpcChannelBuffer,
911 PRPC_MESSAGE pRpcMessage,
912 DWORD* pdwStubPhase);
913 HRESULT CALLBACK IEnumVARIANT_Reset_Proxy(
914 IEnumVARIANT* This);
915 void __RPC_STUB IEnumVARIANT_Reset_Stub(
916 struct IRpcStubBuffer* This,
917 struct IRpcChannelBuffer* pRpcChannelBuffer,
918 PRPC_MESSAGE pRpcMessage,
919 DWORD* pdwStubPhase);
920 HRESULT CALLBACK IEnumVARIANT_Clone_Proxy(
921 IEnumVARIANT* This,
922 IEnumVARIANT** ppEnum);
923 void __RPC_STUB IEnumVARIANT_Clone_Stub(
924 struct IRpcStubBuffer* This,
925 struct IRpcChannelBuffer* pRpcChannelBuffer,
926 PRPC_MESSAGE pRpcMessage,
927 DWORD* pdwStubPhase);
929 #endif /* __IEnumVARIANT_INTERFACE_DEFINED__ */
931 #ifndef __ITypeComp_FWD_DEFINED__
932 #define __ITypeComp_FWD_DEFINED__
933 typedef struct ITypeComp ITypeComp;
934 #endif
936 typedef ITypeComp *LPTYPECOMP;
938 typedef enum tagDESCKIND {
939 DESCKIND_NONE = 0,
940 DESCKIND_FUNCDESC,
941 DESCKIND_VARDESC,
942 DESCKIND_TYPECOMP,
943 DESCKIND_IMPLICITAPPOBJ,
944 DESCKIND_MAX
945 } DESCKIND;
947 typedef union tagBINDPTR {
948 FUNCDESC *lpfuncdesc;
949 VARDESC *lpvardesc;
950 ITypeComp *lptcomp;
951 } BINDPTR, *LPBINDPTR;
953 /*****************************************************************************
954 * ITypeComp interface
956 #ifndef __ITypeComp_INTERFACE_DEFINED__
957 #define __ITypeComp_INTERFACE_DEFINED__
959 DEFINE_GUID(IID_ITypeComp, 0x00020403, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
960 #if defined(__cplusplus) && !defined(CINTERFACE)
961 struct ITypeComp : public IUnknown
963 virtual HRESULT STDMETHODCALLTYPE Bind(
964 LPOLESTR szName,
965 ULONG lHashVal,
966 WORD wFlags,
967 ITypeInfo** ppTInfo,
968 DESCKIND* pDescKind,
969 BINDPTR* pBindPtr) = 0;
971 virtual HRESULT STDMETHODCALLTYPE BindType(
972 LPOLESTR szName,
973 ULONG lHashVal,
974 ITypeInfo** ppTInfo,
975 ITypeComp** ppTComp) = 0;
978 #else
979 typedef struct ITypeCompVtbl ITypeCompVtbl;
980 struct ITypeComp {
981 const ITypeCompVtbl* lpVtbl;
983 struct ITypeCompVtbl {
984 ICOM_MSVTABLE_COMPAT_FIELDS
986 /*** IUnknown methods ***/
987 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
988 ITypeComp* This,
989 REFIID riid,
990 void** ppvObject);
992 ULONG (STDMETHODCALLTYPE *AddRef)(
993 ITypeComp* This);
995 ULONG (STDMETHODCALLTYPE *Release)(
996 ITypeComp* This);
998 /*** ITypeComp methods ***/
999 HRESULT (STDMETHODCALLTYPE *Bind)(
1000 ITypeComp* This,
1001 LPOLESTR szName,
1002 ULONG lHashVal,
1003 WORD wFlags,
1004 ITypeInfo** ppTInfo,
1005 DESCKIND* pDescKind,
1006 BINDPTR* pBindPtr);
1008 HRESULT (STDMETHODCALLTYPE *BindType)(
1009 ITypeComp* This,
1010 LPOLESTR szName,
1011 ULONG lHashVal,
1012 ITypeInfo** ppTInfo,
1013 ITypeComp** ppTComp);
1017 /*** IUnknown methods ***/
1018 #define ITypeComp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1019 #define ITypeComp_AddRef(p) (p)->lpVtbl->AddRef(p)
1020 #define ITypeComp_Release(p) (p)->lpVtbl->Release(p)
1021 /*** ITypeComp methods ***/
1022 #define ITypeComp_Bind(p,a,b,c,d,e,f) (p)->lpVtbl->Bind(p,a,b,c,d,e,f)
1023 #define ITypeComp_BindType(p,a,b,c,d) (p)->lpVtbl->BindType(p,a,b,c,d)
1025 #endif
1027 #define ITypeComp_METHODS \
1028 ICOM_MSVTABLE_COMPAT_FIELDS \
1029 /*** IUnknown methods ***/ \
1030 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1031 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1032 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1033 /*** ITypeComp methods ***/ \
1034 STDMETHOD_(HRESULT,Bind)(THIS_ LPOLESTR szName, ULONG lHashVal, WORD wFlags, ITypeInfo** ppTInfo, DESCKIND* pDescKind, BINDPTR* pBindPtr) PURE; \
1035 STDMETHOD_(HRESULT,BindType)(THIS_ LPOLESTR szName, ULONG lHashVal, ITypeInfo** ppTInfo, ITypeComp** ppTComp) PURE;
1037 HRESULT CALLBACK ITypeComp_RemoteBind_Proxy(
1038 ITypeComp* This,
1039 LPOLESTR szName,
1040 ULONG lHashVal,
1041 WORD wFlags,
1042 ITypeInfo** ppTInfo,
1043 DESCKIND* pDescKind,
1044 LPFUNCDESC* ppFuncDesc,
1045 LPVARDESC* ppVarDesc,
1046 ITypeComp** ppTypeComp,
1047 CLEANLOCALSTORAGE* pDummy);
1048 void __RPC_STUB ITypeComp_RemoteBind_Stub(
1049 struct IRpcStubBuffer* This,
1050 struct IRpcChannelBuffer* pRpcChannelBuffer,
1051 PRPC_MESSAGE pRpcMessage,
1052 DWORD* pdwStubPhase);
1053 HRESULT CALLBACK ITypeComp_Bind_Proxy(
1054 ITypeComp* This,
1055 LPOLESTR szName,
1056 ULONG lHashVal,
1057 WORD wFlags,
1058 ITypeInfo** ppTInfo,
1059 DESCKIND* pDescKind,
1060 BINDPTR* pBindPtr);
1061 HRESULT __RPC_STUB ITypeComp_Bind_Stub(
1062 ITypeComp* This,
1063 LPOLESTR szName,
1064 ULONG lHashVal,
1065 WORD wFlags,
1066 ITypeInfo** ppTInfo,
1067 DESCKIND* pDescKind,
1068 LPFUNCDESC* ppFuncDesc,
1069 LPVARDESC* ppVarDesc,
1070 ITypeComp** ppTypeComp,
1071 CLEANLOCALSTORAGE* pDummy);
1072 HRESULT CALLBACK ITypeComp_RemoteBindType_Proxy(
1073 ITypeComp* This,
1074 LPOLESTR szName,
1075 ULONG lHashVal,
1076 ITypeInfo** ppTInfo);
1077 void __RPC_STUB ITypeComp_RemoteBindType_Stub(
1078 struct IRpcStubBuffer* This,
1079 struct IRpcChannelBuffer* pRpcChannelBuffer,
1080 PRPC_MESSAGE pRpcMessage,
1081 DWORD* pdwStubPhase);
1082 HRESULT CALLBACK ITypeComp_BindType_Proxy(
1083 ITypeComp* This,
1084 LPOLESTR szName,
1085 ULONG lHashVal,
1086 ITypeInfo** ppTInfo,
1087 ITypeComp** ppTComp);
1088 HRESULT __RPC_STUB ITypeComp_BindType_Stub(
1089 ITypeComp* This,
1090 LPOLESTR szName,
1091 ULONG lHashVal,
1092 ITypeInfo** ppTInfo);
1094 #endif /* __ITypeComp_INTERFACE_DEFINED__ */
1096 typedef ITypeInfo *LPTYPEINFO;
1098 /*****************************************************************************
1099 * ITypeInfo interface
1101 #ifndef __ITypeInfo_INTERFACE_DEFINED__
1102 #define __ITypeInfo_INTERFACE_DEFINED__
1104 DEFINE_GUID(IID_ITypeInfo, 0x00020401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1105 #if defined(__cplusplus) && !defined(CINTERFACE)
1106 struct ITypeInfo : public IUnknown
1108 virtual HRESULT STDMETHODCALLTYPE GetTypeAttr(
1109 TYPEATTR** ppTypeAttr) = 0;
1111 virtual HRESULT STDMETHODCALLTYPE GetTypeComp(
1112 ITypeComp** ppTComp) = 0;
1114 virtual HRESULT STDMETHODCALLTYPE GetFuncDesc(
1115 UINT index,
1116 FUNCDESC** ppFuncDesc) = 0;
1118 virtual HRESULT STDMETHODCALLTYPE GetVarDesc(
1119 UINT index,
1120 VARDESC** ppVarDesc) = 0;
1122 virtual HRESULT STDMETHODCALLTYPE GetNames(
1123 MEMBERID memid,
1124 BSTR* rgBstrNames,
1125 UINT cMaxNames,
1126 UINT* pcNames) = 0;
1128 virtual HRESULT STDMETHODCALLTYPE GetRefTypeOfImplType(
1129 UINT index,
1130 HREFTYPE* pRefType) = 0;
1132 virtual HRESULT STDMETHODCALLTYPE GetImplTypeFlags(
1133 UINT index,
1134 INT* pImplTypeFlags) = 0;
1136 virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(
1137 LPOLESTR* rgszNames,
1138 UINT cNames,
1139 MEMBERID* pMemId) = 0;
1141 virtual HRESULT STDMETHODCALLTYPE Invoke(
1142 PVOID pvInstance,
1143 MEMBERID memid,
1144 WORD wFlags,
1145 DISPPARAMS* pDispParams,
1146 VARIANT* pVarResult,
1147 EXCEPINFO* pExcepInfo,
1148 UINT* puArgErr) = 0;
1150 virtual HRESULT STDMETHODCALLTYPE GetDocumentation(
1151 MEMBERID memid,
1152 BSTR* pBstrName,
1153 BSTR* pBstrDocString,
1154 DWORD* pdwHelpContext,
1155 BSTR* pBstrHelpFile) = 0;
1157 virtual HRESULT STDMETHODCALLTYPE GetDllEntry(
1158 MEMBERID memid,
1159 INVOKEKIND invKind,
1160 BSTR* pBstrDllName,
1161 BSTR* pBstrName,
1162 WORD* pwOrdinal) = 0;
1164 virtual HRESULT STDMETHODCALLTYPE GetRefTypeInfo(
1165 HREFTYPE hRefType,
1166 ITypeInfo** ppTInfo) = 0;
1168 virtual HRESULT STDMETHODCALLTYPE AddressOfMember(
1169 MEMBERID memid,
1170 INVOKEKIND invKind,
1171 PVOID* ppv) = 0;
1173 virtual HRESULT STDMETHODCALLTYPE CreateInstance(
1174 IUnknown* pUnkOuter,
1175 REFIID riid,
1176 PVOID* ppvObj) = 0;
1178 virtual HRESULT STDMETHODCALLTYPE GetMops(
1179 MEMBERID memid,
1180 BSTR* pBstrMops) = 0;
1182 virtual HRESULT STDMETHODCALLTYPE GetContainingTypeLib(
1183 ITypeLib** ppTLib,
1184 UINT* pIndex) = 0;
1186 virtual void STDMETHODCALLTYPE ReleaseTypeAttr(
1187 TYPEATTR* pTypeAttr) = 0;
1189 virtual void STDMETHODCALLTYPE ReleaseFuncDesc(
1190 FUNCDESC* pFuncDesc) = 0;
1192 virtual void STDMETHODCALLTYPE ReleaseVarDesc(
1193 VARDESC* pVarDesc) = 0;
1196 #else
1197 typedef struct ITypeInfoVtbl ITypeInfoVtbl;
1198 struct ITypeInfo {
1199 const ITypeInfoVtbl* lpVtbl;
1201 struct ITypeInfoVtbl {
1202 ICOM_MSVTABLE_COMPAT_FIELDS
1204 /*** IUnknown methods ***/
1205 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1206 ITypeInfo* This,
1207 REFIID riid,
1208 void** ppvObject);
1210 ULONG (STDMETHODCALLTYPE *AddRef)(
1211 ITypeInfo* This);
1213 ULONG (STDMETHODCALLTYPE *Release)(
1214 ITypeInfo* This);
1216 /*** ITypeInfo methods ***/
1217 HRESULT (STDMETHODCALLTYPE *GetTypeAttr)(
1218 ITypeInfo* This,
1219 TYPEATTR** ppTypeAttr);
1221 HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
1222 ITypeInfo* This,
1223 ITypeComp** ppTComp);
1225 HRESULT (STDMETHODCALLTYPE *GetFuncDesc)(
1226 ITypeInfo* This,
1227 UINT index,
1228 FUNCDESC** ppFuncDesc);
1230 HRESULT (STDMETHODCALLTYPE *GetVarDesc)(
1231 ITypeInfo* This,
1232 UINT index,
1233 VARDESC** ppVarDesc);
1235 HRESULT (STDMETHODCALLTYPE *GetNames)(
1236 ITypeInfo* This,
1237 MEMBERID memid,
1238 BSTR* rgBstrNames,
1239 UINT cMaxNames,
1240 UINT* pcNames);
1242 HRESULT (STDMETHODCALLTYPE *GetRefTypeOfImplType)(
1243 ITypeInfo* This,
1244 UINT index,
1245 HREFTYPE* pRefType);
1247 HRESULT (STDMETHODCALLTYPE *GetImplTypeFlags)(
1248 ITypeInfo* This,
1249 UINT index,
1250 INT* pImplTypeFlags);
1252 HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1253 ITypeInfo* This,
1254 LPOLESTR* rgszNames,
1255 UINT cNames,
1256 MEMBERID* pMemId);
1258 HRESULT (STDMETHODCALLTYPE *Invoke)(
1259 ITypeInfo* This,
1260 PVOID pvInstance,
1261 MEMBERID memid,
1262 WORD wFlags,
1263 DISPPARAMS* pDispParams,
1264 VARIANT* pVarResult,
1265 EXCEPINFO* pExcepInfo,
1266 UINT* puArgErr);
1268 HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
1269 ITypeInfo* This,
1270 MEMBERID memid,
1271 BSTR* pBstrName,
1272 BSTR* pBstrDocString,
1273 DWORD* pdwHelpContext,
1274 BSTR* pBstrHelpFile);
1276 HRESULT (STDMETHODCALLTYPE *GetDllEntry)(
1277 ITypeInfo* This,
1278 MEMBERID memid,
1279 INVOKEKIND invKind,
1280 BSTR* pBstrDllName,
1281 BSTR* pBstrName,
1282 WORD* pwOrdinal);
1284 HRESULT (STDMETHODCALLTYPE *GetRefTypeInfo)(
1285 ITypeInfo* This,
1286 HREFTYPE hRefType,
1287 ITypeInfo** ppTInfo);
1289 HRESULT (STDMETHODCALLTYPE *AddressOfMember)(
1290 ITypeInfo* This,
1291 MEMBERID memid,
1292 INVOKEKIND invKind,
1293 PVOID* ppv);
1295 HRESULT (STDMETHODCALLTYPE *CreateInstance)(
1296 ITypeInfo* This,
1297 IUnknown* pUnkOuter,
1298 REFIID riid,
1299 PVOID* ppvObj);
1301 HRESULT (STDMETHODCALLTYPE *GetMops)(
1302 ITypeInfo* This,
1303 MEMBERID memid,
1304 BSTR* pBstrMops);
1306 HRESULT (STDMETHODCALLTYPE *GetContainingTypeLib)(
1307 ITypeInfo* This,
1308 ITypeLib** ppTLib,
1309 UINT* pIndex);
1311 void (STDMETHODCALLTYPE *ReleaseTypeAttr)(
1312 ITypeInfo* This,
1313 TYPEATTR* pTypeAttr);
1315 void (STDMETHODCALLTYPE *ReleaseFuncDesc)(
1316 ITypeInfo* This,
1317 FUNCDESC* pFuncDesc);
1319 void (STDMETHODCALLTYPE *ReleaseVarDesc)(
1320 ITypeInfo* This,
1321 VARDESC* pVarDesc);
1325 /*** IUnknown methods ***/
1326 #define ITypeInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1327 #define ITypeInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
1328 #define ITypeInfo_Release(p) (p)->lpVtbl->Release(p)
1329 /*** ITypeInfo methods ***/
1330 #define ITypeInfo_GetTypeAttr(p,a) (p)->lpVtbl->GetTypeAttr(p,a)
1331 #define ITypeInfo_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
1332 #define ITypeInfo_GetFuncDesc(p,a,b) (p)->lpVtbl->GetFuncDesc(p,a,b)
1333 #define ITypeInfo_GetVarDesc(p,a,b) (p)->lpVtbl->GetVarDesc(p,a,b)
1334 #define ITypeInfo_GetNames(p,a,b,c,d) (p)->lpVtbl->GetNames(p,a,b,c,d)
1335 #define ITypeInfo_GetRefTypeOfImplType(p,a,b) (p)->lpVtbl->GetRefTypeOfImplType(p,a,b)
1336 #define ITypeInfo_GetImplTypeFlags(p,a,b) (p)->lpVtbl->GetImplTypeFlags(p,a,b)
1337 #define ITypeInfo_GetIDsOfNames(p,a,b,c) (p)->lpVtbl->GetIDsOfNames(p,a,b,c)
1338 #define ITypeInfo_Invoke(p,a,b,c,d,e,f,g) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g)
1339 #define ITypeInfo_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
1340 #define ITypeInfo_GetDllEntry(p,a,b,c,d,e) (p)->lpVtbl->GetDllEntry(p,a,b,c,d,e)
1341 #define ITypeInfo_GetRefTypeInfo(p,a,b) (p)->lpVtbl->GetRefTypeInfo(p,a,b)
1342 #define ITypeInfo_AddressOfMember(p,a,b,c) (p)->lpVtbl->AddressOfMember(p,a,b,c)
1343 #define ITypeInfo_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
1344 #define ITypeInfo_GetMops(p,a,b) (p)->lpVtbl->GetMops(p,a,b)
1345 #define ITypeInfo_GetContainingTypeLib(p,a,b) (p)->lpVtbl->GetContainingTypeLib(p,a,b)
1346 #define ITypeInfo_ReleaseTypeAttr(p,a) (p)->lpVtbl->ReleaseTypeAttr(p,a)
1347 #define ITypeInfo_ReleaseFuncDesc(p,a) (p)->lpVtbl->ReleaseFuncDesc(p,a)
1348 #define ITypeInfo_ReleaseVarDesc(p,a) (p)->lpVtbl->ReleaseVarDesc(p,a)
1350 #endif
1352 #define ITypeInfo_METHODS \
1353 ICOM_MSVTABLE_COMPAT_FIELDS \
1354 /*** IUnknown methods ***/ \
1355 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1356 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1357 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1358 /*** ITypeInfo methods ***/ \
1359 STDMETHOD_(HRESULT,GetTypeAttr)(THIS_ TYPEATTR** ppTypeAttr) PURE; \
1360 STDMETHOD_(HRESULT,GetTypeComp)(THIS_ ITypeComp** ppTComp) PURE; \
1361 STDMETHOD_(HRESULT,GetFuncDesc)(THIS_ UINT index, FUNCDESC** ppFuncDesc) PURE; \
1362 STDMETHOD_(HRESULT,GetVarDesc)(THIS_ UINT index, VARDESC** ppVarDesc) PURE; \
1363 STDMETHOD_(HRESULT,GetNames)(THIS_ MEMBERID memid, BSTR* rgBstrNames, UINT cMaxNames, UINT* pcNames) PURE; \
1364 STDMETHOD_(HRESULT,GetRefTypeOfImplType)(THIS_ UINT index, HREFTYPE* pRefType) PURE; \
1365 STDMETHOD_(HRESULT,GetImplTypeFlags)(THIS_ UINT index, INT* pImplTypeFlags) PURE; \
1366 STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ LPOLESTR* rgszNames, UINT cNames, MEMBERID* pMemId) PURE; \
1367 STDMETHOD_(HRESULT,Invoke)(THIS_ PVOID pvInstance, MEMBERID memid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) PURE; \
1368 STDMETHOD_(HRESULT,GetDocumentation)(THIS_ MEMBERID memid, BSTR* pBstrName, BSTR* pBstrDocString, DWORD* pdwHelpContext, BSTR* pBstrHelpFile) PURE; \
1369 STDMETHOD_(HRESULT,GetDllEntry)(THIS_ MEMBERID memid, INVOKEKIND invKind, BSTR* pBstrDllName, BSTR* pBstrName, WORD* pwOrdinal) PURE; \
1370 STDMETHOD_(HRESULT,GetRefTypeInfo)(THIS_ HREFTYPE hRefType, ITypeInfo** ppTInfo) PURE; \
1371 STDMETHOD_(HRESULT,AddressOfMember)(THIS_ MEMBERID memid, INVOKEKIND invKind, PVOID* ppv) PURE; \
1372 STDMETHOD_(HRESULT,CreateInstance)(THIS_ IUnknown* pUnkOuter, REFIID riid, PVOID* ppvObj) PURE; \
1373 STDMETHOD_(HRESULT,GetMops)(THIS_ MEMBERID memid, BSTR* pBstrMops) PURE; \
1374 STDMETHOD_(HRESULT,GetContainingTypeLib)(THIS_ ITypeLib** ppTLib, UINT* pIndex) PURE; \
1375 STDMETHOD_(void,ReleaseTypeAttr)(THIS_ TYPEATTR* pTypeAttr) PURE; \
1376 STDMETHOD_(void,ReleaseFuncDesc)(THIS_ FUNCDESC* pFuncDesc) PURE; \
1377 STDMETHOD_(void,ReleaseVarDesc)(THIS_ VARDESC* pVarDesc) PURE;
1379 HRESULT CALLBACK ITypeInfo_RemoteGetTypeAttr_Proxy(
1380 ITypeInfo* This,
1381 LPTYPEATTR* ppTypeAttr,
1382 CLEANLOCALSTORAGE* pDummy);
1383 void __RPC_STUB ITypeInfo_RemoteGetTypeAttr_Stub(
1384 struct IRpcStubBuffer* This,
1385 struct IRpcChannelBuffer* pRpcChannelBuffer,
1386 PRPC_MESSAGE pRpcMessage,
1387 DWORD* pdwStubPhase);
1388 HRESULT CALLBACK ITypeInfo_GetTypeAttr_Proxy(
1389 ITypeInfo* This,
1390 TYPEATTR** ppTypeAttr);
1391 HRESULT __RPC_STUB ITypeInfo_GetTypeAttr_Stub(
1392 ITypeInfo* This,
1393 LPTYPEATTR* ppTypeAttr,
1394 CLEANLOCALSTORAGE* pDummy);
1395 HRESULT CALLBACK ITypeInfo_GetTypeComp_Proxy(
1396 ITypeInfo* This,
1397 ITypeComp** ppTComp);
1398 void __RPC_STUB ITypeInfo_GetTypeComp_Stub(
1399 struct IRpcStubBuffer* This,
1400 struct IRpcChannelBuffer* pRpcChannelBuffer,
1401 PRPC_MESSAGE pRpcMessage,
1402 DWORD* pdwStubPhase);
1403 HRESULT CALLBACK ITypeInfo_RemoteGetFuncDesc_Proxy(
1404 ITypeInfo* This,
1405 UINT index,
1406 LPFUNCDESC* ppFuncDesc,
1407 CLEANLOCALSTORAGE* pDummy);
1408 void __RPC_STUB ITypeInfo_RemoteGetFuncDesc_Stub(
1409 struct IRpcStubBuffer* This,
1410 struct IRpcChannelBuffer* pRpcChannelBuffer,
1411 PRPC_MESSAGE pRpcMessage,
1412 DWORD* pdwStubPhase);
1413 HRESULT CALLBACK ITypeInfo_GetFuncDesc_Proxy(
1414 ITypeInfo* This,
1415 UINT index,
1416 FUNCDESC** ppFuncDesc);
1417 HRESULT __RPC_STUB ITypeInfo_GetFuncDesc_Stub(
1418 ITypeInfo* This,
1419 UINT index,
1420 LPFUNCDESC* ppFuncDesc,
1421 CLEANLOCALSTORAGE* pDummy);
1422 HRESULT CALLBACK ITypeInfo_RemoteGetVarDesc_Proxy(
1423 ITypeInfo* This,
1424 UINT index,
1425 LPVARDESC* ppVarDesc,
1426 CLEANLOCALSTORAGE* pDummy);
1427 void __RPC_STUB ITypeInfo_RemoteGetVarDesc_Stub(
1428 struct IRpcStubBuffer* This,
1429 struct IRpcChannelBuffer* pRpcChannelBuffer,
1430 PRPC_MESSAGE pRpcMessage,
1431 DWORD* pdwStubPhase);
1432 HRESULT CALLBACK ITypeInfo_GetVarDesc_Proxy(
1433 ITypeInfo* This,
1434 UINT index,
1435 VARDESC** ppVarDesc);
1436 HRESULT __RPC_STUB ITypeInfo_GetVarDesc_Stub(
1437 ITypeInfo* This,
1438 UINT index,
1439 LPVARDESC* ppVarDesc,
1440 CLEANLOCALSTORAGE* pDummy);
1441 HRESULT CALLBACK ITypeInfo_RemoteGetNames_Proxy(
1442 ITypeInfo* This,
1443 MEMBERID memid,
1444 BSTR* rgBstrNames,
1445 UINT cMaxNames,
1446 UINT* pcNames);
1447 void __RPC_STUB ITypeInfo_RemoteGetNames_Stub(
1448 struct IRpcStubBuffer* This,
1449 struct IRpcChannelBuffer* pRpcChannelBuffer,
1450 PRPC_MESSAGE pRpcMessage,
1451 DWORD* pdwStubPhase);
1452 HRESULT CALLBACK ITypeInfo_GetNames_Proxy(
1453 ITypeInfo* This,
1454 MEMBERID memid,
1455 BSTR* rgBstrNames,
1456 UINT cMaxNames,
1457 UINT* pcNames);
1458 HRESULT __RPC_STUB ITypeInfo_GetNames_Stub(
1459 ITypeInfo* This,
1460 MEMBERID memid,
1461 BSTR* rgBstrNames,
1462 UINT cMaxNames,
1463 UINT* pcNames);
1464 HRESULT CALLBACK ITypeInfo_GetRefTypeOfImplType_Proxy(
1465 ITypeInfo* This,
1466 UINT index,
1467 HREFTYPE* pRefType);
1468 void __RPC_STUB ITypeInfo_GetRefTypeOfImplType_Stub(
1469 struct IRpcStubBuffer* This,
1470 struct IRpcChannelBuffer* pRpcChannelBuffer,
1471 PRPC_MESSAGE pRpcMessage,
1472 DWORD* pdwStubPhase);
1473 HRESULT CALLBACK ITypeInfo_GetImplTypeFlags_Proxy(
1474 ITypeInfo* This,
1475 UINT index,
1476 INT* pImplTypeFlags);
1477 void __RPC_STUB ITypeInfo_GetImplTypeFlags_Stub(
1478 struct IRpcStubBuffer* This,
1479 struct IRpcChannelBuffer* pRpcChannelBuffer,
1480 PRPC_MESSAGE pRpcMessage,
1481 DWORD* pdwStubPhase);
1482 HRESULT CALLBACK ITypeInfo_LocalGetIDsOfNames_Proxy(
1483 ITypeInfo* This);
1484 void __RPC_STUB ITypeInfo_LocalGetIDsOfNames_Stub(
1485 struct IRpcStubBuffer* This,
1486 struct IRpcChannelBuffer* pRpcChannelBuffer,
1487 PRPC_MESSAGE pRpcMessage,
1488 DWORD* pdwStubPhase);
1489 HRESULT CALLBACK ITypeInfo_GetIDsOfNames_Proxy(
1490 ITypeInfo* This,
1491 LPOLESTR* rgszNames,
1492 UINT cNames,
1493 MEMBERID* pMemId);
1494 HRESULT __RPC_STUB ITypeInfo_GetIDsOfNames_Stub(
1495 ITypeInfo* This);
1496 HRESULT CALLBACK ITypeInfo_LocalInvoke_Proxy(
1497 ITypeInfo* This);
1498 void __RPC_STUB ITypeInfo_LocalInvoke_Stub(
1499 struct IRpcStubBuffer* This,
1500 struct IRpcChannelBuffer* pRpcChannelBuffer,
1501 PRPC_MESSAGE pRpcMessage,
1502 DWORD* pdwStubPhase);
1503 HRESULT CALLBACK ITypeInfo_Invoke_Proxy(
1504 ITypeInfo* This,
1505 PVOID pvInstance,
1506 MEMBERID memid,
1507 WORD wFlags,
1508 DISPPARAMS* pDispParams,
1509 VARIANT* pVarResult,
1510 EXCEPINFO* pExcepInfo,
1511 UINT* puArgErr);
1512 HRESULT __RPC_STUB ITypeInfo_Invoke_Stub(
1513 ITypeInfo* This);
1514 HRESULT CALLBACK ITypeInfo_RemoteGetDocumentation_Proxy(
1515 ITypeInfo* This,
1516 MEMBERID memid,
1517 DWORD refPtrFlags,
1518 BSTR* pBstrName,
1519 BSTR* pBstrDocString,
1520 DWORD* pdwHelpContext,
1521 BSTR* pBstrHelpFile);
1522 void __RPC_STUB ITypeInfo_RemoteGetDocumentation_Stub(
1523 struct IRpcStubBuffer* This,
1524 struct IRpcChannelBuffer* pRpcChannelBuffer,
1525 PRPC_MESSAGE pRpcMessage,
1526 DWORD* pdwStubPhase);
1527 HRESULT CALLBACK ITypeInfo_GetDocumentation_Proxy(
1528 ITypeInfo* This,
1529 MEMBERID memid,
1530 BSTR* pBstrName,
1531 BSTR* pBstrDocString,
1532 DWORD* pdwHelpContext,
1533 BSTR* pBstrHelpFile);
1534 HRESULT __RPC_STUB ITypeInfo_GetDocumentation_Stub(
1535 ITypeInfo* This,
1536 MEMBERID memid,
1537 DWORD refPtrFlags,
1538 BSTR* pBstrName,
1539 BSTR* pBstrDocString,
1540 DWORD* pdwHelpContext,
1541 BSTR* pBstrHelpFile);
1542 HRESULT CALLBACK ITypeInfo_RemoteGetDllEntry_Proxy(
1543 ITypeInfo* This,
1544 MEMBERID memid,
1545 INVOKEKIND invKind,
1546 DWORD refPtrFlags,
1547 BSTR* pBstrDllName,
1548 BSTR* pBstrName,
1549 WORD* pwOrdinal);
1550 void __RPC_STUB ITypeInfo_RemoteGetDllEntry_Stub(
1551 struct IRpcStubBuffer* This,
1552 struct IRpcChannelBuffer* pRpcChannelBuffer,
1553 PRPC_MESSAGE pRpcMessage,
1554 DWORD* pdwStubPhase);
1555 HRESULT CALLBACK ITypeInfo_GetDllEntry_Proxy(
1556 ITypeInfo* This,
1557 MEMBERID memid,
1558 INVOKEKIND invKind,
1559 BSTR* pBstrDllName,
1560 BSTR* pBstrName,
1561 WORD* pwOrdinal);
1562 HRESULT __RPC_STUB ITypeInfo_GetDllEntry_Stub(
1563 ITypeInfo* This,
1564 MEMBERID memid,
1565 INVOKEKIND invKind,
1566 DWORD refPtrFlags,
1567 BSTR* pBstrDllName,
1568 BSTR* pBstrName,
1569 WORD* pwOrdinal);
1570 HRESULT CALLBACK ITypeInfo_GetRefTypeInfo_Proxy(
1571 ITypeInfo* This,
1572 HREFTYPE hRefType,
1573 ITypeInfo** ppTInfo);
1574 void __RPC_STUB ITypeInfo_GetRefTypeInfo_Stub(
1575 struct IRpcStubBuffer* This,
1576 struct IRpcChannelBuffer* pRpcChannelBuffer,
1577 PRPC_MESSAGE pRpcMessage,
1578 DWORD* pdwStubPhase);
1579 HRESULT CALLBACK ITypeInfo_LocalAddressOfMember_Proxy(
1580 ITypeInfo* This);
1581 void __RPC_STUB ITypeInfo_LocalAddressOfMember_Stub(
1582 struct IRpcStubBuffer* This,
1583 struct IRpcChannelBuffer* pRpcChannelBuffer,
1584 PRPC_MESSAGE pRpcMessage,
1585 DWORD* pdwStubPhase);
1586 HRESULT CALLBACK ITypeInfo_AddressOfMember_Proxy(
1587 ITypeInfo* This,
1588 MEMBERID memid,
1589 INVOKEKIND invKind,
1590 PVOID* ppv);
1591 HRESULT __RPC_STUB ITypeInfo_AddressOfMember_Stub(
1592 ITypeInfo* This);
1593 HRESULT CALLBACK ITypeInfo_RemoteCreateInstance_Proxy(
1594 ITypeInfo* This,
1595 REFIID riid,
1596 IUnknown** ppvObj);
1597 void __RPC_STUB ITypeInfo_RemoteCreateInstance_Stub(
1598 struct IRpcStubBuffer* This,
1599 struct IRpcChannelBuffer* pRpcChannelBuffer,
1600 PRPC_MESSAGE pRpcMessage,
1601 DWORD* pdwStubPhase);
1602 HRESULT CALLBACK ITypeInfo_CreateInstance_Proxy(
1603 ITypeInfo* This,
1604 IUnknown* pUnkOuter,
1605 REFIID riid,
1606 PVOID* ppvObj);
1607 HRESULT __RPC_STUB ITypeInfo_CreateInstance_Stub(
1608 ITypeInfo* This,
1609 REFIID riid,
1610 IUnknown** ppvObj);
1611 HRESULT CALLBACK ITypeInfo_GetMops_Proxy(
1612 ITypeInfo* This,
1613 MEMBERID memid,
1614 BSTR* pBstrMops);
1615 void __RPC_STUB ITypeInfo_GetMops_Stub(
1616 struct IRpcStubBuffer* This,
1617 struct IRpcChannelBuffer* pRpcChannelBuffer,
1618 PRPC_MESSAGE pRpcMessage,
1619 DWORD* pdwStubPhase);
1620 HRESULT CALLBACK ITypeInfo_RemoteGetContainingTypeLib_Proxy(
1621 ITypeInfo* This,
1622 ITypeLib** ppTLib,
1623 UINT* pIndex);
1624 void __RPC_STUB ITypeInfo_RemoteGetContainingTypeLib_Stub(
1625 struct IRpcStubBuffer* This,
1626 struct IRpcChannelBuffer* pRpcChannelBuffer,
1627 PRPC_MESSAGE pRpcMessage,
1628 DWORD* pdwStubPhase);
1629 HRESULT CALLBACK ITypeInfo_GetContainingTypeLib_Proxy(
1630 ITypeInfo* This,
1631 ITypeLib** ppTLib,
1632 UINT* pIndex);
1633 HRESULT __RPC_STUB ITypeInfo_GetContainingTypeLib_Stub(
1634 ITypeInfo* This,
1635 ITypeLib** ppTLib,
1636 UINT* pIndex);
1637 HRESULT CALLBACK ITypeInfo_LocalReleaseTypeAttr_Proxy(
1638 ITypeInfo* This);
1639 void __RPC_STUB ITypeInfo_LocalReleaseTypeAttr_Stub(
1640 struct IRpcStubBuffer* This,
1641 struct IRpcChannelBuffer* pRpcChannelBuffer,
1642 PRPC_MESSAGE pRpcMessage,
1643 DWORD* pdwStubPhase);
1644 void CALLBACK ITypeInfo_ReleaseTypeAttr_Proxy(
1645 ITypeInfo* This,
1646 TYPEATTR* pTypeAttr);
1647 HRESULT __RPC_STUB ITypeInfo_ReleaseTypeAttr_Stub(
1648 ITypeInfo* This);
1649 HRESULT CALLBACK ITypeInfo_LocalReleaseFuncDesc_Proxy(
1650 ITypeInfo* This);
1651 void __RPC_STUB ITypeInfo_LocalReleaseFuncDesc_Stub(
1652 struct IRpcStubBuffer* This,
1653 struct IRpcChannelBuffer* pRpcChannelBuffer,
1654 PRPC_MESSAGE pRpcMessage,
1655 DWORD* pdwStubPhase);
1656 void CALLBACK ITypeInfo_ReleaseFuncDesc_Proxy(
1657 ITypeInfo* This,
1658 FUNCDESC* pFuncDesc);
1659 HRESULT __RPC_STUB ITypeInfo_ReleaseFuncDesc_Stub(
1660 ITypeInfo* This);
1661 HRESULT CALLBACK ITypeInfo_LocalReleaseVarDesc_Proxy(
1662 ITypeInfo* This);
1663 void __RPC_STUB ITypeInfo_LocalReleaseVarDesc_Stub(
1664 struct IRpcStubBuffer* This,
1665 struct IRpcChannelBuffer* pRpcChannelBuffer,
1666 PRPC_MESSAGE pRpcMessage,
1667 DWORD* pdwStubPhase);
1668 void CALLBACK ITypeInfo_ReleaseVarDesc_Proxy(
1669 ITypeInfo* This,
1670 VARDESC* pVarDesc);
1671 HRESULT __RPC_STUB ITypeInfo_ReleaseVarDesc_Stub(
1672 ITypeInfo* This);
1674 #endif /* __ITypeInfo_INTERFACE_DEFINED__ */
1676 #ifndef __ITypeInfo2_FWD_DEFINED__
1677 #define __ITypeInfo2_FWD_DEFINED__
1678 typedef struct ITypeInfo2 ITypeInfo2;
1679 #endif
1681 typedef ITypeInfo2 *LPTYPEINFO2;
1683 /*****************************************************************************
1684 * ITypeInfo2 interface
1686 #ifndef __ITypeInfo2_INTERFACE_DEFINED__
1687 #define __ITypeInfo2_INTERFACE_DEFINED__
1689 DEFINE_GUID(IID_ITypeInfo2, 0x00020412, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1690 #if defined(__cplusplus) && !defined(CINTERFACE)
1691 struct ITypeInfo2 : public ITypeInfo
1693 virtual HRESULT STDMETHODCALLTYPE GetTypeKind(
1694 TYPEKIND* pTypeKind) = 0;
1696 virtual HRESULT STDMETHODCALLTYPE GetTypeFlags(
1697 ULONG* pTypeFlags) = 0;
1699 virtual HRESULT STDMETHODCALLTYPE GetFuncIndexOfMemId(
1700 MEMBERID memid,
1701 INVOKEKIND invKind,
1702 UINT* pFuncIndex) = 0;
1704 virtual HRESULT STDMETHODCALLTYPE GetVarIndexOfMemId(
1705 MEMBERID memid,
1706 UINT* pVarIndex) = 0;
1708 virtual HRESULT STDMETHODCALLTYPE GetCustData(
1709 REFGUID guid,
1710 VARIANT* pVarVal) = 0;
1712 virtual HRESULT STDMETHODCALLTYPE GetFuncCustData(
1713 UINT index,
1714 REFGUID guid,
1715 VARIANT* pVarVal) = 0;
1717 virtual HRESULT STDMETHODCALLTYPE GetParamCustData(
1718 UINT indexFunc,
1719 UINT indexParam,
1720 REFGUID guid,
1721 VARIANT* pVarVal) = 0;
1723 virtual HRESULT STDMETHODCALLTYPE GetVarCustData(
1724 UINT index,
1725 REFGUID guid,
1726 VARIANT* pVarVal) = 0;
1728 virtual HRESULT STDMETHODCALLTYPE GetImplTypeCustData(
1729 UINT index,
1730 REFGUID guid,
1731 VARIANT* pVarVal) = 0;
1733 virtual HRESULT STDMETHODCALLTYPE GetDocumentation2(
1734 MEMBERID memid,
1735 LCID lcid,
1736 BSTR* pbstrHelpString,
1737 DWORD* pdwHelpStringContext,
1738 BSTR* pbstrHelpStringDll) = 0;
1740 virtual HRESULT STDMETHODCALLTYPE GetAllCustData(
1741 CUSTDATA* pCustData) = 0;
1743 virtual HRESULT STDMETHODCALLTYPE GetAllFuncCustData(
1744 UINT index,
1745 CUSTDATA* pCustData) = 0;
1747 virtual HRESULT STDMETHODCALLTYPE GetAllParamCustData(
1748 UINT indexFunc,
1749 UINT indexParam,
1750 CUSTDATA* pCustData) = 0;
1752 virtual HRESULT STDMETHODCALLTYPE GetAllVarCustData(
1753 UINT index,
1754 CUSTDATA* pCustData) = 0;
1756 virtual HRESULT STDMETHODCALLTYPE GetAllImplTypeCustData(
1757 UINT index,
1758 CUSTDATA* pCustData) = 0;
1761 #else
1762 typedef struct ITypeInfo2Vtbl ITypeInfo2Vtbl;
1763 struct ITypeInfo2 {
1764 const ITypeInfo2Vtbl* lpVtbl;
1766 struct ITypeInfo2Vtbl {
1767 ICOM_MSVTABLE_COMPAT_FIELDS
1769 /*** IUnknown methods ***/
1770 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1771 ITypeInfo2* This,
1772 REFIID riid,
1773 void** ppvObject);
1775 ULONG (STDMETHODCALLTYPE *AddRef)(
1776 ITypeInfo2* This);
1778 ULONG (STDMETHODCALLTYPE *Release)(
1779 ITypeInfo2* This);
1781 /*** ITypeInfo methods ***/
1782 HRESULT (STDMETHODCALLTYPE *GetTypeAttr)(
1783 ITypeInfo2* This,
1784 TYPEATTR** ppTypeAttr);
1786 HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
1787 ITypeInfo2* This,
1788 ITypeComp** ppTComp);
1790 HRESULT (STDMETHODCALLTYPE *GetFuncDesc)(
1791 ITypeInfo2* This,
1792 UINT index,
1793 FUNCDESC** ppFuncDesc);
1795 HRESULT (STDMETHODCALLTYPE *GetVarDesc)(
1796 ITypeInfo2* This,
1797 UINT index,
1798 VARDESC** ppVarDesc);
1800 HRESULT (STDMETHODCALLTYPE *GetNames)(
1801 ITypeInfo2* This,
1802 MEMBERID memid,
1803 BSTR* rgBstrNames,
1804 UINT cMaxNames,
1805 UINT* pcNames);
1807 HRESULT (STDMETHODCALLTYPE *GetRefTypeOfImplType)(
1808 ITypeInfo2* This,
1809 UINT index,
1810 HREFTYPE* pRefType);
1812 HRESULT (STDMETHODCALLTYPE *GetImplTypeFlags)(
1813 ITypeInfo2* This,
1814 UINT index,
1815 INT* pImplTypeFlags);
1817 HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1818 ITypeInfo2* This,
1819 LPOLESTR* rgszNames,
1820 UINT cNames,
1821 MEMBERID* pMemId);
1823 HRESULT (STDMETHODCALLTYPE *Invoke)(
1824 ITypeInfo2* This,
1825 PVOID pvInstance,
1826 MEMBERID memid,
1827 WORD wFlags,
1828 DISPPARAMS* pDispParams,
1829 VARIANT* pVarResult,
1830 EXCEPINFO* pExcepInfo,
1831 UINT* puArgErr);
1833 HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
1834 ITypeInfo2* This,
1835 MEMBERID memid,
1836 BSTR* pBstrName,
1837 BSTR* pBstrDocString,
1838 DWORD* pdwHelpContext,
1839 BSTR* pBstrHelpFile);
1841 HRESULT (STDMETHODCALLTYPE *GetDllEntry)(
1842 ITypeInfo2* This,
1843 MEMBERID memid,
1844 INVOKEKIND invKind,
1845 BSTR* pBstrDllName,
1846 BSTR* pBstrName,
1847 WORD* pwOrdinal);
1849 HRESULT (STDMETHODCALLTYPE *GetRefTypeInfo)(
1850 ITypeInfo2* This,
1851 HREFTYPE hRefType,
1852 ITypeInfo** ppTInfo);
1854 HRESULT (STDMETHODCALLTYPE *AddressOfMember)(
1855 ITypeInfo2* This,
1856 MEMBERID memid,
1857 INVOKEKIND invKind,
1858 PVOID* ppv);
1860 HRESULT (STDMETHODCALLTYPE *CreateInstance)(
1861 ITypeInfo2* This,
1862 IUnknown* pUnkOuter,
1863 REFIID riid,
1864 PVOID* ppvObj);
1866 HRESULT (STDMETHODCALLTYPE *GetMops)(
1867 ITypeInfo2* This,
1868 MEMBERID memid,
1869 BSTR* pBstrMops);
1871 HRESULT (STDMETHODCALLTYPE *GetContainingTypeLib)(
1872 ITypeInfo2* This,
1873 ITypeLib** ppTLib,
1874 UINT* pIndex);
1876 void (STDMETHODCALLTYPE *ReleaseTypeAttr)(
1877 ITypeInfo2* This,
1878 TYPEATTR* pTypeAttr);
1880 void (STDMETHODCALLTYPE *ReleaseFuncDesc)(
1881 ITypeInfo2* This,
1882 FUNCDESC* pFuncDesc);
1884 void (STDMETHODCALLTYPE *ReleaseVarDesc)(
1885 ITypeInfo2* This,
1886 VARDESC* pVarDesc);
1888 /*** ITypeInfo2 methods ***/
1889 HRESULT (STDMETHODCALLTYPE *GetTypeKind)(
1890 ITypeInfo2* This,
1891 TYPEKIND* pTypeKind);
1893 HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
1894 ITypeInfo2* This,
1895 ULONG* pTypeFlags);
1897 HRESULT (STDMETHODCALLTYPE *GetFuncIndexOfMemId)(
1898 ITypeInfo2* This,
1899 MEMBERID memid,
1900 INVOKEKIND invKind,
1901 UINT* pFuncIndex);
1903 HRESULT (STDMETHODCALLTYPE *GetVarIndexOfMemId)(
1904 ITypeInfo2* This,
1905 MEMBERID memid,
1906 UINT* pVarIndex);
1908 HRESULT (STDMETHODCALLTYPE *GetCustData)(
1909 ITypeInfo2* This,
1910 REFGUID guid,
1911 VARIANT* pVarVal);
1913 HRESULT (STDMETHODCALLTYPE *GetFuncCustData)(
1914 ITypeInfo2* This,
1915 UINT index,
1916 REFGUID guid,
1917 VARIANT* pVarVal);
1919 HRESULT (STDMETHODCALLTYPE *GetParamCustData)(
1920 ITypeInfo2* This,
1921 UINT indexFunc,
1922 UINT indexParam,
1923 REFGUID guid,
1924 VARIANT* pVarVal);
1926 HRESULT (STDMETHODCALLTYPE *GetVarCustData)(
1927 ITypeInfo2* This,
1928 UINT index,
1929 REFGUID guid,
1930 VARIANT* pVarVal);
1932 HRESULT (STDMETHODCALLTYPE *GetImplTypeCustData)(
1933 ITypeInfo2* This,
1934 UINT index,
1935 REFGUID guid,
1936 VARIANT* pVarVal);
1938 HRESULT (STDMETHODCALLTYPE *GetDocumentation2)(
1939 ITypeInfo2* This,
1940 MEMBERID memid,
1941 LCID lcid,
1942 BSTR* pbstrHelpString,
1943 DWORD* pdwHelpStringContext,
1944 BSTR* pbstrHelpStringDll);
1946 HRESULT (STDMETHODCALLTYPE *GetAllCustData)(
1947 ITypeInfo2* This,
1948 CUSTDATA* pCustData);
1950 HRESULT (STDMETHODCALLTYPE *GetAllFuncCustData)(
1951 ITypeInfo2* This,
1952 UINT index,
1953 CUSTDATA* pCustData);
1955 HRESULT (STDMETHODCALLTYPE *GetAllParamCustData)(
1956 ITypeInfo2* This,
1957 UINT indexFunc,
1958 UINT indexParam,
1959 CUSTDATA* pCustData);
1961 HRESULT (STDMETHODCALLTYPE *GetAllVarCustData)(
1962 ITypeInfo2* This,
1963 UINT index,
1964 CUSTDATA* pCustData);
1966 HRESULT (STDMETHODCALLTYPE *GetAllImplTypeCustData)(
1967 ITypeInfo2* This,
1968 UINT index,
1969 CUSTDATA* pCustData);
1973 /*** IUnknown methods ***/
1974 #define ITypeInfo2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1975 #define ITypeInfo2_AddRef(p) (p)->lpVtbl->AddRef(p)
1976 #define ITypeInfo2_Release(p) (p)->lpVtbl->Release(p)
1977 /*** ITypeInfo methods ***/
1978 #define ITypeInfo2_GetTypeAttr(p,a) (p)->lpVtbl->GetTypeAttr(p,a)
1979 #define ITypeInfo2_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
1980 #define ITypeInfo2_GetFuncDesc(p,a,b) (p)->lpVtbl->GetFuncDesc(p,a,b)
1981 #define ITypeInfo2_GetVarDesc(p,a,b) (p)->lpVtbl->GetVarDesc(p,a,b)
1982 #define ITypeInfo2_GetNames(p,a,b,c,d) (p)->lpVtbl->GetNames(p,a,b,c,d)
1983 #define ITypeInfo2_GetRefTypeOfImplType(p,a,b) (p)->lpVtbl->GetRefTypeOfImplType(p,a,b)
1984 #define ITypeInfo2_GetImplTypeFlags(p,a,b) (p)->lpVtbl->GetImplTypeFlags(p,a,b)
1985 #define ITypeInfo2_GetIDsOfNames(p,a,b,c) (p)->lpVtbl->GetIDsOfNames(p,a,b,c)
1986 #define ITypeInfo2_Invoke(p,a,b,c,d,e,f,g) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g)
1987 #define ITypeInfo2_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
1988 #define ITypeInfo2_GetDllEntry(p,a,b,c,d,e) (p)->lpVtbl->GetDllEntry(p,a,b,c,d,e)
1989 #define ITypeInfo2_GetRefTypeInfo(p,a,b) (p)->lpVtbl->GetRefTypeInfo(p,a,b)
1990 #define ITypeInfo2_AddressOfMember(p,a,b,c) (p)->lpVtbl->AddressOfMember(p,a,b,c)
1991 #define ITypeInfo2_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
1992 #define ITypeInfo2_GetMops(p,a,b) (p)->lpVtbl->GetMops(p,a,b)
1993 #define ITypeInfo2_GetContainingTypeLib(p,a,b) (p)->lpVtbl->GetContainingTypeLib(p,a,b)
1994 #define ITypeInfo2_ReleaseTypeAttr(p,a) (p)->lpVtbl->ReleaseTypeAttr(p,a)
1995 #define ITypeInfo2_ReleaseFuncDesc(p,a) (p)->lpVtbl->ReleaseFuncDesc(p,a)
1996 #define ITypeInfo2_ReleaseVarDesc(p,a) (p)->lpVtbl->ReleaseVarDesc(p,a)
1997 /*** ITypeInfo2 methods ***/
1998 #define ITypeInfo2_GetTypeKind(p,a) (p)->lpVtbl->GetTypeKind(p,a)
1999 #define ITypeInfo2_GetTypeFlags(p,a) (p)->lpVtbl->GetTypeFlags(p,a)
2000 #define ITypeInfo2_GetFuncIndexOfMemId(p,a,b,c) (p)->lpVtbl->GetFuncIndexOfMemId(p,a,b,c)
2001 #define ITypeInfo2_GetVarIndexOfMemId(p,a,b) (p)->lpVtbl->GetVarIndexOfMemId(p,a,b)
2002 #define ITypeInfo2_GetCustData(p,a,b) (p)->lpVtbl->GetCustData(p,a,b)
2003 #define ITypeInfo2_GetFuncCustData(p,a,b,c) (p)->lpVtbl->GetFuncCustData(p,a,b,c)
2004 #define ITypeInfo2_GetParamCustData(p,a,b,c,d) (p)->lpVtbl->GetParamCustData(p,a,b,c,d)
2005 #define ITypeInfo2_GetVarCustData(p,a,b,c) (p)->lpVtbl->GetVarCustData(p,a,b,c)
2006 #define ITypeInfo2_GetImplTypeCustData(p,a,b,c) (p)->lpVtbl->GetImplTypeCustData(p,a,b,c)
2007 #define ITypeInfo2_GetDocumentation2(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation2(p,a,b,c,d,e)
2008 #define ITypeInfo2_GetAllCustData(p,a) (p)->lpVtbl->GetAllCustData(p,a)
2009 #define ITypeInfo2_GetAllFuncCustData(p,a,b) (p)->lpVtbl->GetAllFuncCustData(p,a,b)
2010 #define ITypeInfo2_GetAllParamCustData(p,a,b,c) (p)->lpVtbl->GetAllParamCustData(p,a,b,c)
2011 #define ITypeInfo2_GetAllVarCustData(p,a,b) (p)->lpVtbl->GetAllVarCustData(p,a,b)
2012 #define ITypeInfo2_GetAllImplTypeCustData(p,a,b) (p)->lpVtbl->GetAllImplTypeCustData(p,a,b)
2014 #endif
2016 #define ITypeInfo2_METHODS \
2017 ICOM_MSVTABLE_COMPAT_FIELDS \
2018 /*** IUnknown methods ***/ \
2019 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2020 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2021 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2022 /*** ITypeInfo methods ***/ \
2023 STDMETHOD_(HRESULT,GetTypeAttr)(THIS_ TYPEATTR** ppTypeAttr) PURE; \
2024 STDMETHOD_(HRESULT,GetTypeComp)(THIS_ ITypeComp** ppTComp) PURE; \
2025 STDMETHOD_(HRESULT,GetFuncDesc)(THIS_ UINT index, FUNCDESC** ppFuncDesc) PURE; \
2026 STDMETHOD_(HRESULT,GetVarDesc)(THIS_ UINT index, VARDESC** ppVarDesc) PURE; \
2027 STDMETHOD_(HRESULT,GetNames)(THIS_ MEMBERID memid, BSTR* rgBstrNames, UINT cMaxNames, UINT* pcNames) PURE; \
2028 STDMETHOD_(HRESULT,GetRefTypeOfImplType)(THIS_ UINT index, HREFTYPE* pRefType) PURE; \
2029 STDMETHOD_(HRESULT,GetImplTypeFlags)(THIS_ UINT index, INT* pImplTypeFlags) PURE; \
2030 STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ LPOLESTR* rgszNames, UINT cNames, MEMBERID* pMemId) PURE; \
2031 STDMETHOD_(HRESULT,Invoke)(THIS_ PVOID pvInstance, MEMBERID memid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) PURE; \
2032 STDMETHOD_(HRESULT,GetDocumentation)(THIS_ MEMBERID memid, BSTR* pBstrName, BSTR* pBstrDocString, DWORD* pdwHelpContext, BSTR* pBstrHelpFile) PURE; \
2033 STDMETHOD_(HRESULT,GetDllEntry)(THIS_ MEMBERID memid, INVOKEKIND invKind, BSTR* pBstrDllName, BSTR* pBstrName, WORD* pwOrdinal) PURE; \
2034 STDMETHOD_(HRESULT,GetRefTypeInfo)(THIS_ HREFTYPE hRefType, ITypeInfo** ppTInfo) PURE; \
2035 STDMETHOD_(HRESULT,AddressOfMember)(THIS_ MEMBERID memid, INVOKEKIND invKind, PVOID* ppv) PURE; \
2036 STDMETHOD_(HRESULT,CreateInstance)(THIS_ IUnknown* pUnkOuter, REFIID riid, PVOID* ppvObj) PURE; \
2037 STDMETHOD_(HRESULT,GetMops)(THIS_ MEMBERID memid, BSTR* pBstrMops) PURE; \
2038 STDMETHOD_(HRESULT,GetContainingTypeLib)(THIS_ ITypeLib** ppTLib, UINT* pIndex) PURE; \
2039 STDMETHOD_(void,ReleaseTypeAttr)(THIS_ TYPEATTR* pTypeAttr) PURE; \
2040 STDMETHOD_(void,ReleaseFuncDesc)(THIS_ FUNCDESC* pFuncDesc) PURE; \
2041 STDMETHOD_(void,ReleaseVarDesc)(THIS_ VARDESC* pVarDesc) PURE; \
2042 /*** ITypeInfo2 methods ***/ \
2043 STDMETHOD_(HRESULT,GetTypeKind)(THIS_ TYPEKIND* pTypeKind) PURE; \
2044 STDMETHOD_(HRESULT,GetTypeFlags)(THIS_ ULONG* pTypeFlags) PURE; \
2045 STDMETHOD_(HRESULT,GetFuncIndexOfMemId)(THIS_ MEMBERID memid, INVOKEKIND invKind, UINT* pFuncIndex) PURE; \
2046 STDMETHOD_(HRESULT,GetVarIndexOfMemId)(THIS_ MEMBERID memid, UINT* pVarIndex) PURE; \
2047 STDMETHOD_(HRESULT,GetCustData)(THIS_ REFGUID guid, VARIANT* pVarVal) PURE; \
2048 STDMETHOD_(HRESULT,GetFuncCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
2049 STDMETHOD_(HRESULT,GetParamCustData)(THIS_ UINT indexFunc, UINT indexParam, REFGUID guid, VARIANT* pVarVal) PURE; \
2050 STDMETHOD_(HRESULT,GetVarCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
2051 STDMETHOD_(HRESULT,GetImplTypeCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
2052 STDMETHOD_(HRESULT,GetDocumentation2)(THIS_ MEMBERID memid, LCID lcid, BSTR* pbstrHelpString, DWORD* pdwHelpStringContext, BSTR* pbstrHelpStringDll) PURE; \
2053 STDMETHOD_(HRESULT,GetAllCustData)(THIS_ CUSTDATA* pCustData) PURE; \
2054 STDMETHOD_(HRESULT,GetAllFuncCustData)(THIS_ UINT index, CUSTDATA* pCustData) PURE; \
2055 STDMETHOD_(HRESULT,GetAllParamCustData)(THIS_ UINT indexFunc, UINT indexParam, CUSTDATA* pCustData) PURE; \
2056 STDMETHOD_(HRESULT,GetAllVarCustData)(THIS_ UINT index, CUSTDATA* pCustData) PURE; \
2057 STDMETHOD_(HRESULT,GetAllImplTypeCustData)(THIS_ UINT index, CUSTDATA* pCustData) PURE;
2059 HRESULT CALLBACK ITypeInfo2_GetTypeKind_Proxy(
2060 ITypeInfo2* This,
2061 TYPEKIND* pTypeKind);
2062 void __RPC_STUB ITypeInfo2_GetTypeKind_Stub(
2063 struct IRpcStubBuffer* This,
2064 struct IRpcChannelBuffer* pRpcChannelBuffer,
2065 PRPC_MESSAGE pRpcMessage,
2066 DWORD* pdwStubPhase);
2067 HRESULT CALLBACK ITypeInfo2_GetTypeFlags_Proxy(
2068 ITypeInfo2* This,
2069 ULONG* pTypeFlags);
2070 void __RPC_STUB ITypeInfo2_GetTypeFlags_Stub(
2071 struct IRpcStubBuffer* This,
2072 struct IRpcChannelBuffer* pRpcChannelBuffer,
2073 PRPC_MESSAGE pRpcMessage,
2074 DWORD* pdwStubPhase);
2075 HRESULT CALLBACK ITypeInfo2_GetFuncIndexOfMemId_Proxy(
2076 ITypeInfo2* This,
2077 MEMBERID memid,
2078 INVOKEKIND invKind,
2079 UINT* pFuncIndex);
2080 void __RPC_STUB ITypeInfo2_GetFuncIndexOfMemId_Stub(
2081 struct IRpcStubBuffer* This,
2082 struct IRpcChannelBuffer* pRpcChannelBuffer,
2083 PRPC_MESSAGE pRpcMessage,
2084 DWORD* pdwStubPhase);
2085 HRESULT CALLBACK ITypeInfo2_GetVarIndexOfMemId_Proxy(
2086 ITypeInfo2* This,
2087 MEMBERID memid,
2088 UINT* pVarIndex);
2089 void __RPC_STUB ITypeInfo2_GetVarIndexOfMemId_Stub(
2090 struct IRpcStubBuffer* This,
2091 struct IRpcChannelBuffer* pRpcChannelBuffer,
2092 PRPC_MESSAGE pRpcMessage,
2093 DWORD* pdwStubPhase);
2094 HRESULT CALLBACK ITypeInfo2_GetCustData_Proxy(
2095 ITypeInfo2* This,
2096 REFGUID guid,
2097 VARIANT* pVarVal);
2098 void __RPC_STUB ITypeInfo2_GetCustData_Stub(
2099 struct IRpcStubBuffer* This,
2100 struct IRpcChannelBuffer* pRpcChannelBuffer,
2101 PRPC_MESSAGE pRpcMessage,
2102 DWORD* pdwStubPhase);
2103 HRESULT CALLBACK ITypeInfo2_GetFuncCustData_Proxy(
2104 ITypeInfo2* This,
2105 UINT index,
2106 REFGUID guid,
2107 VARIANT* pVarVal);
2108 void __RPC_STUB ITypeInfo2_GetFuncCustData_Stub(
2109 struct IRpcStubBuffer* This,
2110 struct IRpcChannelBuffer* pRpcChannelBuffer,
2111 PRPC_MESSAGE pRpcMessage,
2112 DWORD* pdwStubPhase);
2113 HRESULT CALLBACK ITypeInfo2_GetParamCustData_Proxy(
2114 ITypeInfo2* This,
2115 UINT indexFunc,
2116 UINT indexParam,
2117 REFGUID guid,
2118 VARIANT* pVarVal);
2119 void __RPC_STUB ITypeInfo2_GetParamCustData_Stub(
2120 struct IRpcStubBuffer* This,
2121 struct IRpcChannelBuffer* pRpcChannelBuffer,
2122 PRPC_MESSAGE pRpcMessage,
2123 DWORD* pdwStubPhase);
2124 HRESULT CALLBACK ITypeInfo2_GetVarCustData_Proxy(
2125 ITypeInfo2* This,
2126 UINT index,
2127 REFGUID guid,
2128 VARIANT* pVarVal);
2129 void __RPC_STUB ITypeInfo2_GetVarCustData_Stub(
2130 struct IRpcStubBuffer* This,
2131 struct IRpcChannelBuffer* pRpcChannelBuffer,
2132 PRPC_MESSAGE pRpcMessage,
2133 DWORD* pdwStubPhase);
2134 HRESULT CALLBACK ITypeInfo2_GetImplTypeCustData_Proxy(
2135 ITypeInfo2* This,
2136 UINT index,
2137 REFGUID guid,
2138 VARIANT* pVarVal);
2139 void __RPC_STUB ITypeInfo2_GetImplTypeCustData_Stub(
2140 struct IRpcStubBuffer* This,
2141 struct IRpcChannelBuffer* pRpcChannelBuffer,
2142 PRPC_MESSAGE pRpcMessage,
2143 DWORD* pdwStubPhase);
2144 HRESULT CALLBACK ITypeInfo2_RemoteGetDocumentation2_Proxy(
2145 ITypeInfo2* This,
2146 MEMBERID memid,
2147 LCID lcid,
2148 DWORD refPtrFlags,
2149 BSTR* pbstrHelpString,
2150 DWORD* pdwHelpStringContext,
2151 BSTR* pbstrHelpStringDll);
2152 void __RPC_STUB ITypeInfo2_RemoteGetDocumentation2_Stub(
2153 struct IRpcStubBuffer* This,
2154 struct IRpcChannelBuffer* pRpcChannelBuffer,
2155 PRPC_MESSAGE pRpcMessage,
2156 DWORD* pdwStubPhase);
2157 HRESULT CALLBACK ITypeInfo2_GetDocumentation2_Proxy(
2158 ITypeInfo2* This,
2159 MEMBERID memid,
2160 LCID lcid,
2161 BSTR* pbstrHelpString,
2162 DWORD* pdwHelpStringContext,
2163 BSTR* pbstrHelpStringDll);
2164 HRESULT __RPC_STUB ITypeInfo2_GetDocumentation2_Stub(
2165 ITypeInfo2* This,
2166 MEMBERID memid,
2167 LCID lcid,
2168 DWORD refPtrFlags,
2169 BSTR* pbstrHelpString,
2170 DWORD* pdwHelpStringContext,
2171 BSTR* pbstrHelpStringDll);
2172 HRESULT CALLBACK ITypeInfo2_GetAllCustData_Proxy(
2173 ITypeInfo2* This,
2174 CUSTDATA* pCustData);
2175 void __RPC_STUB ITypeInfo2_GetAllCustData_Stub(
2176 struct IRpcStubBuffer* This,
2177 struct IRpcChannelBuffer* pRpcChannelBuffer,
2178 PRPC_MESSAGE pRpcMessage,
2179 DWORD* pdwStubPhase);
2180 HRESULT CALLBACK ITypeInfo2_GetAllFuncCustData_Proxy(
2181 ITypeInfo2* This,
2182 UINT index,
2183 CUSTDATA* pCustData);
2184 void __RPC_STUB ITypeInfo2_GetAllFuncCustData_Stub(
2185 struct IRpcStubBuffer* This,
2186 struct IRpcChannelBuffer* pRpcChannelBuffer,
2187 PRPC_MESSAGE pRpcMessage,
2188 DWORD* pdwStubPhase);
2189 HRESULT CALLBACK ITypeInfo2_GetAllParamCustData_Proxy(
2190 ITypeInfo2* This,
2191 UINT indexFunc,
2192 UINT indexParam,
2193 CUSTDATA* pCustData);
2194 void __RPC_STUB ITypeInfo2_GetAllParamCustData_Stub(
2195 struct IRpcStubBuffer* This,
2196 struct IRpcChannelBuffer* pRpcChannelBuffer,
2197 PRPC_MESSAGE pRpcMessage,
2198 DWORD* pdwStubPhase);
2199 HRESULT CALLBACK ITypeInfo2_GetAllVarCustData_Proxy(
2200 ITypeInfo2* This,
2201 UINT index,
2202 CUSTDATA* pCustData);
2203 void __RPC_STUB ITypeInfo2_GetAllVarCustData_Stub(
2204 struct IRpcStubBuffer* This,
2205 struct IRpcChannelBuffer* pRpcChannelBuffer,
2206 PRPC_MESSAGE pRpcMessage,
2207 DWORD* pdwStubPhase);
2208 HRESULT CALLBACK ITypeInfo2_GetAllImplTypeCustData_Proxy(
2209 ITypeInfo2* This,
2210 UINT index,
2211 CUSTDATA* pCustData);
2212 void __RPC_STUB ITypeInfo2_GetAllImplTypeCustData_Stub(
2213 struct IRpcStubBuffer* This,
2214 struct IRpcChannelBuffer* pRpcChannelBuffer,
2215 PRPC_MESSAGE pRpcMessage,
2216 DWORD* pdwStubPhase);
2218 #endif /* __ITypeInfo2_INTERFACE_DEFINED__ */
2220 typedef ITypeLib *LPTYPELIB;
2222 typedef enum tagSYSKIND {
2223 SYS_WIN16 = 0,
2224 SYS_WIN32,
2225 SYS_MAC
2226 } SYSKIND;
2228 typedef enum tagLIBFLAGS {
2229 LIBFLAG_FRESTRICTED = 0x1,
2230 LIBFLAG_FCONTROL = 0x2,
2231 LIBFLAG_FHIDDEN = 0x4,
2232 LIBFLAG_FHASDISKIMAGE = 0x8
2233 } LIBFLAGS;
2235 typedef struct tagTLIBATTR {
2236 GUID guid;
2237 LCID lcid;
2238 SYSKIND syskind;
2239 WORD wMajorVerNum;
2240 WORD wMinorVerNum;
2241 WORD wLibFlags;
2242 } TLIBATTR, *LPTLIBATTR;
2244 /*****************************************************************************
2245 * ITypeLib interface
2247 #ifndef __ITypeLib_INTERFACE_DEFINED__
2248 #define __ITypeLib_INTERFACE_DEFINED__
2250 DEFINE_GUID(IID_ITypeLib, 0x00020402, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2251 #if defined(__cplusplus) && !defined(CINTERFACE)
2252 struct ITypeLib : public IUnknown
2254 virtual UINT STDMETHODCALLTYPE GetTypeInfoCount(
2255 ) = 0;
2257 virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
2258 UINT index,
2259 ITypeInfo** ppTInfo) = 0;
2261 virtual HRESULT STDMETHODCALLTYPE GetTypeInfoType(
2262 UINT index,
2263 TYPEKIND* pTKind) = 0;
2265 virtual HRESULT STDMETHODCALLTYPE GetTypeInfoOfGuid(
2266 REFGUID guid,
2267 ITypeInfo** ppTinfo) = 0;
2269 virtual HRESULT STDMETHODCALLTYPE GetLibAttr(
2270 TLIBATTR** ppTLibAttr) = 0;
2272 virtual HRESULT STDMETHODCALLTYPE GetTypeComp(
2273 ITypeComp** ppTComp) = 0;
2275 virtual HRESULT STDMETHODCALLTYPE GetDocumentation(
2276 INT index,
2277 BSTR* pBstrName,
2278 BSTR* pBstrDocString,
2279 DWORD* pdwHelpContext,
2280 BSTR* pBstrHelpFile) = 0;
2282 virtual HRESULT STDMETHODCALLTYPE IsName(
2283 LPOLESTR szNameBuf,
2284 ULONG lHashVal,
2285 BOOL* pfName) = 0;
2287 virtual HRESULT STDMETHODCALLTYPE FindName(
2288 LPOLESTR szNameBuf,
2289 ULONG lHashVal,
2290 ITypeInfo** ppTInfo,
2291 MEMBERID* rgMemId,
2292 USHORT* pcFound) = 0;
2294 virtual void STDMETHODCALLTYPE ReleaseTLibAttr(
2295 TLIBATTR* pTLibAttr) = 0;
2298 #else
2299 typedef struct ITypeLibVtbl ITypeLibVtbl;
2300 struct ITypeLib {
2301 const ITypeLibVtbl* lpVtbl;
2303 struct ITypeLibVtbl {
2304 ICOM_MSVTABLE_COMPAT_FIELDS
2306 /*** IUnknown methods ***/
2307 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2308 ITypeLib* This,
2309 REFIID riid,
2310 void** ppvObject);
2312 ULONG (STDMETHODCALLTYPE *AddRef)(
2313 ITypeLib* This);
2315 ULONG (STDMETHODCALLTYPE *Release)(
2316 ITypeLib* This);
2318 /*** ITypeLib methods ***/
2319 UINT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2320 ITypeLib* This);
2322 HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2323 ITypeLib* This,
2324 UINT index,
2325 ITypeInfo** ppTInfo);
2327 HRESULT (STDMETHODCALLTYPE *GetTypeInfoType)(
2328 ITypeLib* This,
2329 UINT index,
2330 TYPEKIND* pTKind);
2332 HRESULT (STDMETHODCALLTYPE *GetTypeInfoOfGuid)(
2333 ITypeLib* This,
2334 REFGUID guid,
2335 ITypeInfo** ppTinfo);
2337 HRESULT (STDMETHODCALLTYPE *GetLibAttr)(
2338 ITypeLib* This,
2339 TLIBATTR** ppTLibAttr);
2341 HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
2342 ITypeLib* This,
2343 ITypeComp** ppTComp);
2345 HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
2346 ITypeLib* This,
2347 INT index,
2348 BSTR* pBstrName,
2349 BSTR* pBstrDocString,
2350 DWORD* pdwHelpContext,
2351 BSTR* pBstrHelpFile);
2353 HRESULT (STDMETHODCALLTYPE *IsName)(
2354 ITypeLib* This,
2355 LPOLESTR szNameBuf,
2356 ULONG lHashVal,
2357 BOOL* pfName);
2359 HRESULT (STDMETHODCALLTYPE *FindName)(
2360 ITypeLib* This,
2361 LPOLESTR szNameBuf,
2362 ULONG lHashVal,
2363 ITypeInfo** ppTInfo,
2364 MEMBERID* rgMemId,
2365 USHORT* pcFound);
2367 void (STDMETHODCALLTYPE *ReleaseTLibAttr)(
2368 ITypeLib* This,
2369 TLIBATTR* pTLibAttr);
2373 /*** IUnknown methods ***/
2374 #define ITypeLib_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2375 #define ITypeLib_AddRef(p) (p)->lpVtbl->AddRef(p)
2376 #define ITypeLib_Release(p) (p)->lpVtbl->Release(p)
2377 /*** ITypeLib methods ***/
2378 #define ITypeLib_GetTypeInfoCount(p) (p)->lpVtbl->GetTypeInfoCount(p)
2379 #define ITypeLib_GetTypeInfo(p,a,b) (p)->lpVtbl->GetTypeInfo(p,a,b)
2380 #define ITypeLib_GetTypeInfoType(p,a,b) (p)->lpVtbl->GetTypeInfoType(p,a,b)
2381 #define ITypeLib_GetTypeInfoOfGuid(p,a,b) (p)->lpVtbl->GetTypeInfoOfGuid(p,a,b)
2382 #define ITypeLib_GetLibAttr(p,a) (p)->lpVtbl->GetLibAttr(p,a)
2383 #define ITypeLib_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
2384 #define ITypeLib_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
2385 #define ITypeLib_IsName(p,a,b,c) (p)->lpVtbl->IsName(p,a,b,c)
2386 #define ITypeLib_FindName(p,a,b,c,d,e) (p)->lpVtbl->FindName(p,a,b,c,d,e)
2387 #define ITypeLib_ReleaseTLibAttr(p,a) (p)->lpVtbl->ReleaseTLibAttr(p,a)
2389 #endif
2391 #define ITypeLib_METHODS \
2392 ICOM_MSVTABLE_COMPAT_FIELDS \
2393 /*** IUnknown methods ***/ \
2394 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2395 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2396 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2397 /*** ITypeLib methods ***/ \
2398 STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE; \
2399 STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ UINT index, ITypeInfo** ppTInfo) PURE; \
2400 STDMETHOD_(HRESULT,GetTypeInfoType)(THIS_ UINT index, TYPEKIND* pTKind) PURE; \
2401 STDMETHOD_(HRESULT,GetTypeInfoOfGuid)(THIS_ REFGUID guid, ITypeInfo** ppTinfo) PURE; \
2402 STDMETHOD_(HRESULT,GetLibAttr)(THIS_ TLIBATTR** ppTLibAttr) PURE; \
2403 STDMETHOD_(HRESULT,GetTypeComp)(THIS_ ITypeComp** ppTComp) PURE; \
2404 STDMETHOD_(HRESULT,GetDocumentation)(THIS_ INT index, BSTR* pBstrName, BSTR* pBstrDocString, DWORD* pdwHelpContext, BSTR* pBstrHelpFile) PURE; \
2405 STDMETHOD_(HRESULT,IsName)(THIS_ LPOLESTR szNameBuf, ULONG lHashVal, BOOL* pfName) PURE; \
2406 STDMETHOD_(HRESULT,FindName)(THIS_ LPOLESTR szNameBuf, ULONG lHashVal, ITypeInfo** ppTInfo, MEMBERID* rgMemId, USHORT* pcFound) PURE; \
2407 STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR* pTLibAttr) PURE;
2409 HRESULT CALLBACK ITypeLib_RemoteGetTypeInfoCount_Proxy(
2410 ITypeLib* This,
2411 UINT* pcTInfo);
2412 void __RPC_STUB ITypeLib_RemoteGetTypeInfoCount_Stub(
2413 struct IRpcStubBuffer* This,
2414 struct IRpcChannelBuffer* pRpcChannelBuffer,
2415 PRPC_MESSAGE pRpcMessage,
2416 DWORD* pdwStubPhase);
2417 UINT CALLBACK ITypeLib_GetTypeInfoCount_Proxy(
2418 ITypeLib* This);
2419 HRESULT __RPC_STUB ITypeLib_GetTypeInfoCount_Stub(
2420 ITypeLib* This,
2421 UINT* pcTInfo);
2422 HRESULT CALLBACK ITypeLib_GetTypeInfo_Proxy(
2423 ITypeLib* This,
2424 UINT index,
2425 ITypeInfo** ppTInfo);
2426 void __RPC_STUB ITypeLib_GetTypeInfo_Stub(
2427 struct IRpcStubBuffer* This,
2428 struct IRpcChannelBuffer* pRpcChannelBuffer,
2429 PRPC_MESSAGE pRpcMessage,
2430 DWORD* pdwStubPhase);
2431 HRESULT CALLBACK ITypeLib_GetTypeInfoType_Proxy(
2432 ITypeLib* This,
2433 UINT index,
2434 TYPEKIND* pTKind);
2435 void __RPC_STUB ITypeLib_GetTypeInfoType_Stub(
2436 struct IRpcStubBuffer* This,
2437 struct IRpcChannelBuffer* pRpcChannelBuffer,
2438 PRPC_MESSAGE pRpcMessage,
2439 DWORD* pdwStubPhase);
2440 HRESULT CALLBACK ITypeLib_GetTypeInfoOfGuid_Proxy(
2441 ITypeLib* This,
2442 REFGUID guid,
2443 ITypeInfo** ppTinfo);
2444 void __RPC_STUB ITypeLib_GetTypeInfoOfGuid_Stub(
2445 struct IRpcStubBuffer* This,
2446 struct IRpcChannelBuffer* pRpcChannelBuffer,
2447 PRPC_MESSAGE pRpcMessage,
2448 DWORD* pdwStubPhase);
2449 HRESULT CALLBACK ITypeLib_RemoteGetLibAttr_Proxy(
2450 ITypeLib* This,
2451 LPTLIBATTR* ppTLibAttr,
2452 CLEANLOCALSTORAGE* pDummy);
2453 void __RPC_STUB ITypeLib_RemoteGetLibAttr_Stub(
2454 struct IRpcStubBuffer* This,
2455 struct IRpcChannelBuffer* pRpcChannelBuffer,
2456 PRPC_MESSAGE pRpcMessage,
2457 DWORD* pdwStubPhase);
2458 HRESULT CALLBACK ITypeLib_GetLibAttr_Proxy(
2459 ITypeLib* This,
2460 TLIBATTR** ppTLibAttr);
2461 HRESULT __RPC_STUB ITypeLib_GetLibAttr_Stub(
2462 ITypeLib* This,
2463 LPTLIBATTR* ppTLibAttr,
2464 CLEANLOCALSTORAGE* pDummy);
2465 HRESULT CALLBACK ITypeLib_GetTypeComp_Proxy(
2466 ITypeLib* This,
2467 ITypeComp** ppTComp);
2468 void __RPC_STUB ITypeLib_GetTypeComp_Stub(
2469 struct IRpcStubBuffer* This,
2470 struct IRpcChannelBuffer* pRpcChannelBuffer,
2471 PRPC_MESSAGE pRpcMessage,
2472 DWORD* pdwStubPhase);
2473 HRESULT CALLBACK ITypeLib_RemoteGetDocumentation_Proxy(
2474 ITypeLib* This,
2475 INT index,
2476 DWORD refPtrFlags,
2477 BSTR* pBstrName,
2478 BSTR* pBstrDocString,
2479 DWORD* pdwHelpContext,
2480 BSTR* pBstrHelpFile);
2481 void __RPC_STUB ITypeLib_RemoteGetDocumentation_Stub(
2482 struct IRpcStubBuffer* This,
2483 struct IRpcChannelBuffer* pRpcChannelBuffer,
2484 PRPC_MESSAGE pRpcMessage,
2485 DWORD* pdwStubPhase);
2486 HRESULT CALLBACK ITypeLib_GetDocumentation_Proxy(
2487 ITypeLib* This,
2488 INT index,
2489 BSTR* pBstrName,
2490 BSTR* pBstrDocString,
2491 DWORD* pdwHelpContext,
2492 BSTR* pBstrHelpFile);
2493 HRESULT __RPC_STUB ITypeLib_GetDocumentation_Stub(
2494 ITypeLib* This,
2495 INT index,
2496 DWORD refPtrFlags,
2497 BSTR* pBstrName,
2498 BSTR* pBstrDocString,
2499 DWORD* pdwHelpContext,
2500 BSTR* pBstrHelpFile);
2501 HRESULT CALLBACK ITypeLib_RemoteIsName_Proxy(
2502 ITypeLib* This,
2503 LPOLESTR szNameBuf,
2504 ULONG lHashVal,
2505 BOOL* pfName,
2506 BSTR* pBstrLibName);
2507 void __RPC_STUB ITypeLib_RemoteIsName_Stub(
2508 struct IRpcStubBuffer* This,
2509 struct IRpcChannelBuffer* pRpcChannelBuffer,
2510 PRPC_MESSAGE pRpcMessage,
2511 DWORD* pdwStubPhase);
2512 HRESULT CALLBACK ITypeLib_IsName_Proxy(
2513 ITypeLib* This,
2514 LPOLESTR szNameBuf,
2515 ULONG lHashVal,
2516 BOOL* pfName);
2517 HRESULT __RPC_STUB ITypeLib_IsName_Stub(
2518 ITypeLib* This,
2519 LPOLESTR szNameBuf,
2520 ULONG lHashVal,
2521 BOOL* pfName,
2522 BSTR* pBstrLibName);
2523 HRESULT CALLBACK ITypeLib_RemoteFindName_Proxy(
2524 ITypeLib* This,
2525 LPOLESTR szNameBuf,
2526 ULONG lHashVal,
2527 ITypeInfo** ppTInfo,
2528 MEMBERID* rgMemId,
2529 USHORT* pcFound,
2530 BSTR* pBstrLibName);
2531 void __RPC_STUB ITypeLib_RemoteFindName_Stub(
2532 struct IRpcStubBuffer* This,
2533 struct IRpcChannelBuffer* pRpcChannelBuffer,
2534 PRPC_MESSAGE pRpcMessage,
2535 DWORD* pdwStubPhase);
2536 HRESULT CALLBACK ITypeLib_FindName_Proxy(
2537 ITypeLib* This,
2538 LPOLESTR szNameBuf,
2539 ULONG lHashVal,
2540 ITypeInfo** ppTInfo,
2541 MEMBERID* rgMemId,
2542 USHORT* pcFound);
2543 HRESULT __RPC_STUB ITypeLib_FindName_Stub(
2544 ITypeLib* This,
2545 LPOLESTR szNameBuf,
2546 ULONG lHashVal,
2547 ITypeInfo** ppTInfo,
2548 MEMBERID* rgMemId,
2549 USHORT* pcFound,
2550 BSTR* pBstrLibName);
2551 HRESULT CALLBACK ITypeLib_LocalReleaseTLibAttr_Proxy(
2552 ITypeLib* This);
2553 void __RPC_STUB ITypeLib_LocalReleaseTLibAttr_Stub(
2554 struct IRpcStubBuffer* This,
2555 struct IRpcChannelBuffer* pRpcChannelBuffer,
2556 PRPC_MESSAGE pRpcMessage,
2557 DWORD* pdwStubPhase);
2558 void CALLBACK ITypeLib_ReleaseTLibAttr_Proxy(
2559 ITypeLib* This,
2560 TLIBATTR* pTLibAttr);
2561 HRESULT __RPC_STUB ITypeLib_ReleaseTLibAttr_Stub(
2562 ITypeLib* This);
2564 #endif /* __ITypeLib_INTERFACE_DEFINED__ */
2566 #ifndef __ITypeLib2_FWD_DEFINED__
2567 #define __ITypeLib2_FWD_DEFINED__
2568 typedef struct ITypeLib2 ITypeLib2;
2569 #endif
2571 typedef ITypeLib2 *LPTYPELIB2;
2573 /*****************************************************************************
2574 * ITypeLib2 interface
2576 #ifndef __ITypeLib2_INTERFACE_DEFINED__
2577 #define __ITypeLib2_INTERFACE_DEFINED__
2579 DEFINE_GUID(IID_ITypeLib2, 0x00020411, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2580 #if defined(__cplusplus) && !defined(CINTERFACE)
2581 struct ITypeLib2 : public ITypeLib
2583 virtual HRESULT STDMETHODCALLTYPE GetCustData(
2584 REFGUID guid,
2585 VARIANT* pVarVal) = 0;
2587 virtual HRESULT STDMETHODCALLTYPE GetLibStatistics(
2588 ULONG* pcUniqueNames,
2589 ULONG* pcchUniqueNames) = 0;
2591 virtual HRESULT STDMETHODCALLTYPE GetDocumentation2(
2592 INT index,
2593 LCID lcid,
2594 BSTR* pbstrHelpString,
2595 DWORD* pdwHelpStringContext,
2596 BSTR* pbstrHelpStringDll) = 0;
2598 virtual HRESULT STDMETHODCALLTYPE GetAllCustData(
2599 CUSTDATA* pCustData) = 0;
2602 #else
2603 typedef struct ITypeLib2Vtbl ITypeLib2Vtbl;
2604 struct ITypeLib2 {
2605 const ITypeLib2Vtbl* lpVtbl;
2607 struct ITypeLib2Vtbl {
2608 ICOM_MSVTABLE_COMPAT_FIELDS
2610 /*** IUnknown methods ***/
2611 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2612 ITypeLib2* This,
2613 REFIID riid,
2614 void** ppvObject);
2616 ULONG (STDMETHODCALLTYPE *AddRef)(
2617 ITypeLib2* This);
2619 ULONG (STDMETHODCALLTYPE *Release)(
2620 ITypeLib2* This);
2622 /*** ITypeLib methods ***/
2623 UINT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2624 ITypeLib2* This);
2626 HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2627 ITypeLib2* This,
2628 UINT index,
2629 ITypeInfo** ppTInfo);
2631 HRESULT (STDMETHODCALLTYPE *GetTypeInfoType)(
2632 ITypeLib2* This,
2633 UINT index,
2634 TYPEKIND* pTKind);
2636 HRESULT (STDMETHODCALLTYPE *GetTypeInfoOfGuid)(
2637 ITypeLib2* This,
2638 REFGUID guid,
2639 ITypeInfo** ppTinfo);
2641 HRESULT (STDMETHODCALLTYPE *GetLibAttr)(
2642 ITypeLib2* This,
2643 TLIBATTR** ppTLibAttr);
2645 HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
2646 ITypeLib2* This,
2647 ITypeComp** ppTComp);
2649 HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
2650 ITypeLib2* This,
2651 INT index,
2652 BSTR* pBstrName,
2653 BSTR* pBstrDocString,
2654 DWORD* pdwHelpContext,
2655 BSTR* pBstrHelpFile);
2657 HRESULT (STDMETHODCALLTYPE *IsName)(
2658 ITypeLib2* This,
2659 LPOLESTR szNameBuf,
2660 ULONG lHashVal,
2661 BOOL* pfName);
2663 HRESULT (STDMETHODCALLTYPE *FindName)(
2664 ITypeLib2* This,
2665 LPOLESTR szNameBuf,
2666 ULONG lHashVal,
2667 ITypeInfo** ppTInfo,
2668 MEMBERID* rgMemId,
2669 USHORT* pcFound);
2671 void (STDMETHODCALLTYPE *ReleaseTLibAttr)(
2672 ITypeLib2* This,
2673 TLIBATTR* pTLibAttr);
2675 /*** ITypeLib2 methods ***/
2676 HRESULT (STDMETHODCALLTYPE *GetCustData)(
2677 ITypeLib2* This,
2678 REFGUID guid,
2679 VARIANT* pVarVal);
2681 HRESULT (STDMETHODCALLTYPE *GetLibStatistics)(
2682 ITypeLib2* This,
2683 ULONG* pcUniqueNames,
2684 ULONG* pcchUniqueNames);
2686 HRESULT (STDMETHODCALLTYPE *GetDocumentation2)(
2687 ITypeLib2* This,
2688 INT index,
2689 LCID lcid,
2690 BSTR* pbstrHelpString,
2691 DWORD* pdwHelpStringContext,
2692 BSTR* pbstrHelpStringDll);
2694 HRESULT (STDMETHODCALLTYPE *GetAllCustData)(
2695 ITypeLib2* This,
2696 CUSTDATA* pCustData);
2700 /*** IUnknown methods ***/
2701 #define ITypeLib2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2702 #define ITypeLib2_AddRef(p) (p)->lpVtbl->AddRef(p)
2703 #define ITypeLib2_Release(p) (p)->lpVtbl->Release(p)
2704 /*** ITypeLib methods ***/
2705 #define ITypeLib2_GetTypeInfoCount(p) (p)->lpVtbl->GetTypeInfoCount(p)
2706 #define ITypeLib2_GetTypeInfo(p,a,b) (p)->lpVtbl->GetTypeInfo(p,a,b)
2707 #define ITypeLib2_GetTypeInfoType(p,a,b) (p)->lpVtbl->GetTypeInfoType(p,a,b)
2708 #define ITypeLib2_GetTypeInfoOfGuid(p,a,b) (p)->lpVtbl->GetTypeInfoOfGuid(p,a,b)
2709 #define ITypeLib2_GetLibAttr(p,a) (p)->lpVtbl->GetLibAttr(p,a)
2710 #define ITypeLib2_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
2711 #define ITypeLib2_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
2712 #define ITypeLib2_IsName(p,a,b,c) (p)->lpVtbl->IsName(p,a,b,c)
2713 #define ITypeLib2_FindName(p,a,b,c,d,e) (p)->lpVtbl->FindName(p,a,b,c,d,e)
2714 #define ITypeLib2_ReleaseTLibAttr(p,a) (p)->lpVtbl->ReleaseTLibAttr(p,a)
2715 /*** ITypeLib2 methods ***/
2716 #define ITypeLib2_GetCustData(p,a,b) (p)->lpVtbl->GetCustData(p,a,b)
2717 #define ITypeLib2_GetLibStatistics(p,a,b) (p)->lpVtbl->GetLibStatistics(p,a,b)
2718 #define ITypeLib2_GetDocumentation2(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation2(p,a,b,c,d,e)
2719 #define ITypeLib2_GetAllCustData(p,a) (p)->lpVtbl->GetAllCustData(p,a)
2721 #endif
2723 #define ITypeLib2_METHODS \
2724 ICOM_MSVTABLE_COMPAT_FIELDS \
2725 /*** IUnknown methods ***/ \
2726 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2727 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2728 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2729 /*** ITypeLib methods ***/ \
2730 STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE; \
2731 STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ UINT index, ITypeInfo** ppTInfo) PURE; \
2732 STDMETHOD_(HRESULT,GetTypeInfoType)(THIS_ UINT index, TYPEKIND* pTKind) PURE; \
2733 STDMETHOD_(HRESULT,GetTypeInfoOfGuid)(THIS_ REFGUID guid, ITypeInfo** ppTinfo) PURE; \
2734 STDMETHOD_(HRESULT,GetLibAttr)(THIS_ TLIBATTR** ppTLibAttr) PURE; \
2735 STDMETHOD_(HRESULT,GetTypeComp)(THIS_ ITypeComp** ppTComp) PURE; \
2736 STDMETHOD_(HRESULT,GetDocumentation)(THIS_ INT index, BSTR* pBstrName, BSTR* pBstrDocString, DWORD* pdwHelpContext, BSTR* pBstrHelpFile) PURE; \
2737 STDMETHOD_(HRESULT,IsName)(THIS_ LPOLESTR szNameBuf, ULONG lHashVal, BOOL* pfName) PURE; \
2738 STDMETHOD_(HRESULT,FindName)(THIS_ LPOLESTR szNameBuf, ULONG lHashVal, ITypeInfo** ppTInfo, MEMBERID* rgMemId, USHORT* pcFound) PURE; \
2739 STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR* pTLibAttr) PURE; \
2740 /*** ITypeLib2 methods ***/ \
2741 STDMETHOD_(HRESULT,GetCustData)(THIS_ REFGUID guid, VARIANT* pVarVal) PURE; \
2742 STDMETHOD_(HRESULT,GetLibStatistics)(THIS_ ULONG* pcUniqueNames, ULONG* pcchUniqueNames) PURE; \
2743 STDMETHOD_(HRESULT,GetDocumentation2)(THIS_ INT index, LCID lcid, BSTR* pbstrHelpString, DWORD* pdwHelpStringContext, BSTR* pbstrHelpStringDll) PURE; \
2744 STDMETHOD_(HRESULT,GetAllCustData)(THIS_ CUSTDATA* pCustData) PURE;
2746 HRESULT CALLBACK ITypeLib2_GetCustData_Proxy(
2747 ITypeLib2* This,
2748 REFGUID guid,
2749 VARIANT* pVarVal);
2750 void __RPC_STUB ITypeLib2_GetCustData_Stub(
2751 struct IRpcStubBuffer* This,
2752 struct IRpcChannelBuffer* pRpcChannelBuffer,
2753 PRPC_MESSAGE pRpcMessage,
2754 DWORD* pdwStubPhase);
2755 HRESULT CALLBACK ITypeLib2_RemoteGetLibStatistics_Proxy(
2756 ITypeLib2* This,
2757 ULONG* pcUniqueNames,
2758 ULONG* pcchUniqueNames);
2759 void __RPC_STUB ITypeLib2_RemoteGetLibStatistics_Stub(
2760 struct IRpcStubBuffer* This,
2761 struct IRpcChannelBuffer* pRpcChannelBuffer,
2762 PRPC_MESSAGE pRpcMessage,
2763 DWORD* pdwStubPhase);
2764 HRESULT CALLBACK ITypeLib2_GetLibStatistics_Proxy(
2765 ITypeLib2* This,
2766 ULONG* pcUniqueNames,
2767 ULONG* pcchUniqueNames);
2768 HRESULT __RPC_STUB ITypeLib2_GetLibStatistics_Stub(
2769 ITypeLib2* This,
2770 ULONG* pcUniqueNames,
2771 ULONG* pcchUniqueNames);
2772 HRESULT CALLBACK ITypeLib2_RemoteGetDocumentation2_Proxy(
2773 ITypeLib2* This,
2774 INT index,
2775 LCID lcid,
2776 DWORD refPtrFlags,
2777 BSTR* pbstrHelpString,
2778 DWORD* pdwHelpStringContext,
2779 BSTR* pbstrHelpStringDll);
2780 void __RPC_STUB ITypeLib2_RemoteGetDocumentation2_Stub(
2781 struct IRpcStubBuffer* This,
2782 struct IRpcChannelBuffer* pRpcChannelBuffer,
2783 PRPC_MESSAGE pRpcMessage,
2784 DWORD* pdwStubPhase);
2785 HRESULT CALLBACK ITypeLib2_GetDocumentation2_Proxy(
2786 ITypeLib2* This,
2787 INT index,
2788 LCID lcid,
2789 BSTR* pbstrHelpString,
2790 DWORD* pdwHelpStringContext,
2791 BSTR* pbstrHelpStringDll);
2792 HRESULT __RPC_STUB ITypeLib2_GetDocumentation2_Stub(
2793 ITypeLib2* This,
2794 INT index,
2795 LCID lcid,
2796 DWORD refPtrFlags,
2797 BSTR* pbstrHelpString,
2798 DWORD* pdwHelpStringContext,
2799 BSTR* pbstrHelpStringDll);
2800 HRESULT CALLBACK ITypeLib2_GetAllCustData_Proxy(
2801 ITypeLib2* This,
2802 CUSTDATA* pCustData);
2803 void __RPC_STUB ITypeLib2_GetAllCustData_Stub(
2804 struct IRpcStubBuffer* This,
2805 struct IRpcChannelBuffer* pRpcChannelBuffer,
2806 PRPC_MESSAGE pRpcMessage,
2807 DWORD* pdwStubPhase);
2809 #endif /* __ITypeLib2_INTERFACE_DEFINED__ */
2811 #ifndef __ITypeChangeEvents_FWD_DEFINED__
2812 #define __ITypeChangeEvents_FWD_DEFINED__
2813 typedef struct ITypeChangeEvents ITypeChangeEvents;
2814 #endif
2816 typedef ITypeChangeEvents *LPTYPECHANGEEVENTS;
2818 typedef enum tagCHANGEKIND {
2819 CHANGEKIND_ADDMEMBER,
2820 CHANGEKIND_DELETEMEMBER,
2821 CHANGEKIND_SETNAMES,
2822 CHANGEKIND_SETDOCUMENTATION,
2823 CHANGEKIND_GENERAL,
2824 CHANGEKIND_INVALIDATE,
2825 CHANGEKIND_CHANGEFAILED,
2826 CHANGEKIND_MAX
2827 } CHANGEKIND;
2829 /*****************************************************************************
2830 * ITypeChangeEvents interface
2832 #ifndef __ITypeChangeEvents_INTERFACE_DEFINED__
2833 #define __ITypeChangeEvents_INTERFACE_DEFINED__
2835 DEFINE_GUID(IID_ITypeChangeEvents, 0x00020410, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2836 #if defined(__cplusplus) && !defined(CINTERFACE)
2837 struct ITypeChangeEvents : public IUnknown
2839 virtual HRESULT STDMETHODCALLTYPE RequestTypeChange(
2840 CHANGEKIND changeKind,
2841 ITypeInfo* pTInfoBefore,
2842 LPOLESTR pStrName,
2843 INT* pfCancel) = 0;
2845 virtual HRESULT STDMETHODCALLTYPE AfterTypeChange(
2846 CHANGEKIND changeKind,
2847 ITypeInfo* pTInfoAfter,
2848 LPOLESTR pStrName) = 0;
2851 #else
2852 typedef struct ITypeChangeEventsVtbl ITypeChangeEventsVtbl;
2853 struct ITypeChangeEvents {
2854 const ITypeChangeEventsVtbl* lpVtbl;
2856 struct ITypeChangeEventsVtbl {
2857 ICOM_MSVTABLE_COMPAT_FIELDS
2859 /*** IUnknown methods ***/
2860 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2861 ITypeChangeEvents* This,
2862 REFIID riid,
2863 void** ppvObject);
2865 ULONG (STDMETHODCALLTYPE *AddRef)(
2866 ITypeChangeEvents* This);
2868 ULONG (STDMETHODCALLTYPE *Release)(
2869 ITypeChangeEvents* This);
2871 /*** ITypeChangeEvents methods ***/
2872 HRESULT (STDMETHODCALLTYPE *RequestTypeChange)(
2873 ITypeChangeEvents* This,
2874 CHANGEKIND changeKind,
2875 ITypeInfo* pTInfoBefore,
2876 LPOLESTR pStrName,
2877 INT* pfCancel);
2879 HRESULT (STDMETHODCALLTYPE *AfterTypeChange)(
2880 ITypeChangeEvents* This,
2881 CHANGEKIND changeKind,
2882 ITypeInfo* pTInfoAfter,
2883 LPOLESTR pStrName);
2887 /*** IUnknown methods ***/
2888 #define ITypeChangeEvents_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2889 #define ITypeChangeEvents_AddRef(p) (p)->lpVtbl->AddRef(p)
2890 #define ITypeChangeEvents_Release(p) (p)->lpVtbl->Release(p)
2891 /*** ITypeChangeEvents methods ***/
2892 #define ITypeChangeEvents_RequestTypeChange(p,a,b,c,d) (p)->lpVtbl->RequestTypeChange(p,a,b,c,d)
2893 #define ITypeChangeEvents_AfterTypeChange(p,a,b,c) (p)->lpVtbl->AfterTypeChange(p,a,b,c)
2895 #endif
2897 #define ITypeChangeEvents_METHODS \
2898 ICOM_MSVTABLE_COMPAT_FIELDS \
2899 /*** IUnknown methods ***/ \
2900 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2901 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2902 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2903 /*** ITypeChangeEvents methods ***/ \
2904 STDMETHOD_(HRESULT,RequestTypeChange)(THIS_ CHANGEKIND changeKind, ITypeInfo* pTInfoBefore, LPOLESTR pStrName, INT* pfCancel) PURE; \
2905 STDMETHOD_(HRESULT,AfterTypeChange)(THIS_ CHANGEKIND changeKind, ITypeInfo* pTInfoAfter, LPOLESTR pStrName) PURE;
2907 HRESULT CALLBACK ITypeChangeEvents_RequestTypeChange_Proxy(
2908 ITypeChangeEvents* This,
2909 CHANGEKIND changeKind,
2910 ITypeInfo* pTInfoBefore,
2911 LPOLESTR pStrName,
2912 INT* pfCancel);
2913 void __RPC_STUB ITypeChangeEvents_RequestTypeChange_Stub(
2914 struct IRpcStubBuffer* This,
2915 struct IRpcChannelBuffer* pRpcChannelBuffer,
2916 PRPC_MESSAGE pRpcMessage,
2917 DWORD* pdwStubPhase);
2918 HRESULT CALLBACK ITypeChangeEvents_AfterTypeChange_Proxy(
2919 ITypeChangeEvents* This,
2920 CHANGEKIND changeKind,
2921 ITypeInfo* pTInfoAfter,
2922 LPOLESTR pStrName);
2923 void __RPC_STUB ITypeChangeEvents_AfterTypeChange_Stub(
2924 struct IRpcStubBuffer* This,
2925 struct IRpcChannelBuffer* pRpcChannelBuffer,
2926 PRPC_MESSAGE pRpcMessage,
2927 DWORD* pdwStubPhase);
2929 #endif /* __ITypeChangeEvents_INTERFACE_DEFINED__ */
2931 #ifndef __IErrorInfo_FWD_DEFINED__
2932 #define __IErrorInfo_FWD_DEFINED__
2933 typedef struct IErrorInfo IErrorInfo;
2934 #endif
2936 typedef IErrorInfo *LPERRORINFO;
2938 /*****************************************************************************
2939 * IErrorInfo interface
2941 #ifndef __IErrorInfo_INTERFACE_DEFINED__
2942 #define __IErrorInfo_INTERFACE_DEFINED__
2944 DEFINE_GUID(IID_IErrorInfo, 0x1cf2b120, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
2945 #if defined(__cplusplus) && !defined(CINTERFACE)
2946 struct IErrorInfo : public IUnknown
2948 virtual HRESULT STDMETHODCALLTYPE GetGUID(
2949 GUID* pGUID) = 0;
2951 virtual HRESULT STDMETHODCALLTYPE GetSource(
2952 BSTR* pBstrSource) = 0;
2954 virtual HRESULT STDMETHODCALLTYPE GetDescription(
2955 BSTR* pBstrDescription) = 0;
2957 virtual HRESULT STDMETHODCALLTYPE GetHelpFile(
2958 BSTR* pBstrHelpFile) = 0;
2960 virtual HRESULT STDMETHODCALLTYPE GetHelpContext(
2961 DWORD* pdwHelpContext) = 0;
2964 #else
2965 typedef struct IErrorInfoVtbl IErrorInfoVtbl;
2966 struct IErrorInfo {
2967 const IErrorInfoVtbl* lpVtbl;
2969 struct IErrorInfoVtbl {
2970 ICOM_MSVTABLE_COMPAT_FIELDS
2972 /*** IUnknown methods ***/
2973 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2974 IErrorInfo* This,
2975 REFIID riid,
2976 void** ppvObject);
2978 ULONG (STDMETHODCALLTYPE *AddRef)(
2979 IErrorInfo* This);
2981 ULONG (STDMETHODCALLTYPE *Release)(
2982 IErrorInfo* This);
2984 /*** IErrorInfo methods ***/
2985 HRESULT (STDMETHODCALLTYPE *GetGUID)(
2986 IErrorInfo* This,
2987 GUID* pGUID);
2989 HRESULT (STDMETHODCALLTYPE *GetSource)(
2990 IErrorInfo* This,
2991 BSTR* pBstrSource);
2993 HRESULT (STDMETHODCALLTYPE *GetDescription)(
2994 IErrorInfo* This,
2995 BSTR* pBstrDescription);
2997 HRESULT (STDMETHODCALLTYPE *GetHelpFile)(
2998 IErrorInfo* This,
2999 BSTR* pBstrHelpFile);
3001 HRESULT (STDMETHODCALLTYPE *GetHelpContext)(
3002 IErrorInfo* This,
3003 DWORD* pdwHelpContext);
3007 /*** IUnknown methods ***/
3008 #define IErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3009 #define IErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
3010 #define IErrorInfo_Release(p) (p)->lpVtbl->Release(p)
3011 /*** IErrorInfo methods ***/
3012 #define IErrorInfo_GetGUID(p,a) (p)->lpVtbl->GetGUID(p,a)
3013 #define IErrorInfo_GetSource(p,a) (p)->lpVtbl->GetSource(p,a)
3014 #define IErrorInfo_GetDescription(p,a) (p)->lpVtbl->GetDescription(p,a)
3015 #define IErrorInfo_GetHelpFile(p,a) (p)->lpVtbl->GetHelpFile(p,a)
3016 #define IErrorInfo_GetHelpContext(p,a) (p)->lpVtbl->GetHelpContext(p,a)
3018 #endif
3020 #define IErrorInfo_METHODS \
3021 ICOM_MSVTABLE_COMPAT_FIELDS \
3022 /*** IUnknown methods ***/ \
3023 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3024 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3025 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3026 /*** IErrorInfo methods ***/ \
3027 STDMETHOD_(HRESULT,GetGUID)(THIS_ GUID* pGUID) PURE; \
3028 STDMETHOD_(HRESULT,GetSource)(THIS_ BSTR* pBstrSource) PURE; \
3029 STDMETHOD_(HRESULT,GetDescription)(THIS_ BSTR* pBstrDescription) PURE; \
3030 STDMETHOD_(HRESULT,GetHelpFile)(THIS_ BSTR* pBstrHelpFile) PURE; \
3031 STDMETHOD_(HRESULT,GetHelpContext)(THIS_ DWORD* pdwHelpContext) PURE;
3033 HRESULT CALLBACK IErrorInfo_GetGUID_Proxy(
3034 IErrorInfo* This,
3035 GUID* pGUID);
3036 void __RPC_STUB IErrorInfo_GetGUID_Stub(
3037 struct IRpcStubBuffer* This,
3038 struct IRpcChannelBuffer* pRpcChannelBuffer,
3039 PRPC_MESSAGE pRpcMessage,
3040 DWORD* pdwStubPhase);
3041 HRESULT CALLBACK IErrorInfo_GetSource_Proxy(
3042 IErrorInfo* This,
3043 BSTR* pBstrSource);
3044 void __RPC_STUB IErrorInfo_GetSource_Stub(
3045 struct IRpcStubBuffer* This,
3046 struct IRpcChannelBuffer* pRpcChannelBuffer,
3047 PRPC_MESSAGE pRpcMessage,
3048 DWORD* pdwStubPhase);
3049 HRESULT CALLBACK IErrorInfo_GetDescription_Proxy(
3050 IErrorInfo* This,
3051 BSTR* pBstrDescription);
3052 void __RPC_STUB IErrorInfo_GetDescription_Stub(
3053 struct IRpcStubBuffer* This,
3054 struct IRpcChannelBuffer* pRpcChannelBuffer,
3055 PRPC_MESSAGE pRpcMessage,
3056 DWORD* pdwStubPhase);
3057 HRESULT CALLBACK IErrorInfo_GetHelpFile_Proxy(
3058 IErrorInfo* This,
3059 BSTR* pBstrHelpFile);
3060 void __RPC_STUB IErrorInfo_GetHelpFile_Stub(
3061 struct IRpcStubBuffer* This,
3062 struct IRpcChannelBuffer* pRpcChannelBuffer,
3063 PRPC_MESSAGE pRpcMessage,
3064 DWORD* pdwStubPhase);
3065 HRESULT CALLBACK IErrorInfo_GetHelpContext_Proxy(
3066 IErrorInfo* This,
3067 DWORD* pdwHelpContext);
3068 void __RPC_STUB IErrorInfo_GetHelpContext_Stub(
3069 struct IRpcStubBuffer* This,
3070 struct IRpcChannelBuffer* pRpcChannelBuffer,
3071 PRPC_MESSAGE pRpcMessage,
3072 DWORD* pdwStubPhase);
3074 #endif /* __IErrorInfo_INTERFACE_DEFINED__ */
3076 #ifndef __ICreateErrorInfo_FWD_DEFINED__
3077 #define __ICreateErrorInfo_FWD_DEFINED__
3078 typedef struct ICreateErrorInfo ICreateErrorInfo;
3079 #endif
3081 typedef ICreateErrorInfo *LPCREATEERRORINFO;
3083 /*****************************************************************************
3084 * ICreateErrorInfo interface
3086 #ifndef __ICreateErrorInfo_INTERFACE_DEFINED__
3087 #define __ICreateErrorInfo_INTERFACE_DEFINED__
3089 DEFINE_GUID(IID_ICreateErrorInfo, 0x22f03340, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
3090 #if defined(__cplusplus) && !defined(CINTERFACE)
3091 struct ICreateErrorInfo : public IUnknown
3093 virtual HRESULT STDMETHODCALLTYPE SetGUID(
3094 REFGUID rguid) = 0;
3096 virtual HRESULT STDMETHODCALLTYPE SetSource(
3097 LPOLESTR szSource) = 0;
3099 virtual HRESULT STDMETHODCALLTYPE SetDescription(
3100 LPOLESTR szDescription) = 0;
3102 virtual HRESULT STDMETHODCALLTYPE SetHelpFile(
3103 LPOLESTR szHelpFile) = 0;
3105 virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
3106 DWORD dwHelpContext) = 0;
3109 #else
3110 typedef struct ICreateErrorInfoVtbl ICreateErrorInfoVtbl;
3111 struct ICreateErrorInfo {
3112 const ICreateErrorInfoVtbl* lpVtbl;
3114 struct ICreateErrorInfoVtbl {
3115 ICOM_MSVTABLE_COMPAT_FIELDS
3117 /*** IUnknown methods ***/
3118 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3119 ICreateErrorInfo* This,
3120 REFIID riid,
3121 void** ppvObject);
3123 ULONG (STDMETHODCALLTYPE *AddRef)(
3124 ICreateErrorInfo* This);
3126 ULONG (STDMETHODCALLTYPE *Release)(
3127 ICreateErrorInfo* This);
3129 /*** ICreateErrorInfo methods ***/
3130 HRESULT (STDMETHODCALLTYPE *SetGUID)(
3131 ICreateErrorInfo* This,
3132 REFGUID rguid);
3134 HRESULT (STDMETHODCALLTYPE *SetSource)(
3135 ICreateErrorInfo* This,
3136 LPOLESTR szSource);
3138 HRESULT (STDMETHODCALLTYPE *SetDescription)(
3139 ICreateErrorInfo* This,
3140 LPOLESTR szDescription);
3142 HRESULT (STDMETHODCALLTYPE *SetHelpFile)(
3143 ICreateErrorInfo* This,
3144 LPOLESTR szHelpFile);
3146 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
3147 ICreateErrorInfo* This,
3148 DWORD dwHelpContext);
3152 /*** IUnknown methods ***/
3153 #define ICreateErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3154 #define ICreateErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
3155 #define ICreateErrorInfo_Release(p) (p)->lpVtbl->Release(p)
3156 /*** ICreateErrorInfo methods ***/
3157 #define ICreateErrorInfo_SetGUID(p,a) (p)->lpVtbl->SetGUID(p,a)
3158 #define ICreateErrorInfo_SetSource(p,a) (p)->lpVtbl->SetSource(p,a)
3159 #define ICreateErrorInfo_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
3160 #define ICreateErrorInfo_SetHelpFile(p,a) (p)->lpVtbl->SetHelpFile(p,a)
3161 #define ICreateErrorInfo_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
3163 #endif
3165 #define ICreateErrorInfo_METHODS \
3166 ICOM_MSVTABLE_COMPAT_FIELDS \
3167 /*** IUnknown methods ***/ \
3168 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3169 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3170 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3171 /*** ICreateErrorInfo methods ***/ \
3172 STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID rguid) PURE; \
3173 STDMETHOD_(HRESULT,SetSource)(THIS_ LPOLESTR szSource) PURE; \
3174 STDMETHOD_(HRESULT,SetDescription)(THIS_ LPOLESTR szDescription) PURE; \
3175 STDMETHOD_(HRESULT,SetHelpFile)(THIS_ LPOLESTR szHelpFile) PURE; \
3176 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE;
3178 HRESULT CALLBACK ICreateErrorInfo_SetGUID_Proxy(
3179 ICreateErrorInfo* This,
3180 REFGUID rguid);
3181 void __RPC_STUB ICreateErrorInfo_SetGUID_Stub(
3182 struct IRpcStubBuffer* This,
3183 struct IRpcChannelBuffer* pRpcChannelBuffer,
3184 PRPC_MESSAGE pRpcMessage,
3185 DWORD* pdwStubPhase);
3186 HRESULT CALLBACK ICreateErrorInfo_SetSource_Proxy(
3187 ICreateErrorInfo* This,
3188 LPOLESTR szSource);
3189 void __RPC_STUB ICreateErrorInfo_SetSource_Stub(
3190 struct IRpcStubBuffer* This,
3191 struct IRpcChannelBuffer* pRpcChannelBuffer,
3192 PRPC_MESSAGE pRpcMessage,
3193 DWORD* pdwStubPhase);
3194 HRESULT CALLBACK ICreateErrorInfo_SetDescription_Proxy(
3195 ICreateErrorInfo* This,
3196 LPOLESTR szDescription);
3197 void __RPC_STUB ICreateErrorInfo_SetDescription_Stub(
3198 struct IRpcStubBuffer* This,
3199 struct IRpcChannelBuffer* pRpcChannelBuffer,
3200 PRPC_MESSAGE pRpcMessage,
3201 DWORD* pdwStubPhase);
3202 HRESULT CALLBACK ICreateErrorInfo_SetHelpFile_Proxy(
3203 ICreateErrorInfo* This,
3204 LPOLESTR szHelpFile);
3205 void __RPC_STUB ICreateErrorInfo_SetHelpFile_Stub(
3206 struct IRpcStubBuffer* This,
3207 struct IRpcChannelBuffer* pRpcChannelBuffer,
3208 PRPC_MESSAGE pRpcMessage,
3209 DWORD* pdwStubPhase);
3210 HRESULT CALLBACK ICreateErrorInfo_SetHelpContext_Proxy(
3211 ICreateErrorInfo* This,
3212 DWORD dwHelpContext);
3213 void __RPC_STUB ICreateErrorInfo_SetHelpContext_Stub(
3214 struct IRpcStubBuffer* This,
3215 struct IRpcChannelBuffer* pRpcChannelBuffer,
3216 PRPC_MESSAGE pRpcMessage,
3217 DWORD* pdwStubPhase);
3219 #endif /* __ICreateErrorInfo_INTERFACE_DEFINED__ */
3221 #ifndef __ISupportErrorInfo_FWD_DEFINED__
3222 #define __ISupportErrorInfo_FWD_DEFINED__
3223 typedef struct ISupportErrorInfo ISupportErrorInfo;
3224 #endif
3226 typedef ISupportErrorInfo *LPSUPPORTERRORINFO;
3228 /*****************************************************************************
3229 * ISupportErrorInfo interface
3231 #ifndef __ISupportErrorInfo_INTERFACE_DEFINED__
3232 #define __ISupportErrorInfo_INTERFACE_DEFINED__
3234 DEFINE_GUID(IID_ISupportErrorInfo, 0xdf0b3d60, 0x548f, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
3235 #if defined(__cplusplus) && !defined(CINTERFACE)
3236 struct ISupportErrorInfo : public IUnknown
3238 virtual HRESULT STDMETHODCALLTYPE InterfaceSupportsErrorInfo(
3239 REFIID riid) = 0;
3242 #else
3243 typedef struct ISupportErrorInfoVtbl ISupportErrorInfoVtbl;
3244 struct ISupportErrorInfo {
3245 const ISupportErrorInfoVtbl* lpVtbl;
3247 struct ISupportErrorInfoVtbl {
3248 ICOM_MSVTABLE_COMPAT_FIELDS
3250 /*** IUnknown methods ***/
3251 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3252 ISupportErrorInfo* This,
3253 REFIID riid,
3254 void** ppvObject);
3256 ULONG (STDMETHODCALLTYPE *AddRef)(
3257 ISupportErrorInfo* This);
3259 ULONG (STDMETHODCALLTYPE *Release)(
3260 ISupportErrorInfo* This);
3262 /*** ISupportErrorInfo methods ***/
3263 HRESULT (STDMETHODCALLTYPE *InterfaceSupportsErrorInfo)(
3264 ISupportErrorInfo* This,
3265 REFIID riid);
3269 /*** IUnknown methods ***/
3270 #define ISupportErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3271 #define ISupportErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
3272 #define ISupportErrorInfo_Release(p) (p)->lpVtbl->Release(p)
3273 /*** ISupportErrorInfo methods ***/
3274 #define ISupportErrorInfo_InterfaceSupportsErrorInfo(p,a) (p)->lpVtbl->InterfaceSupportsErrorInfo(p,a)
3276 #endif
3278 #define ISupportErrorInfo_METHODS \
3279 ICOM_MSVTABLE_COMPAT_FIELDS \
3280 /*** IUnknown methods ***/ \
3281 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3282 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3283 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3284 /*** ISupportErrorInfo methods ***/ \
3285 STDMETHOD_(HRESULT,InterfaceSupportsErrorInfo)(THIS_ REFIID riid) PURE;
3287 HRESULT CALLBACK ISupportErrorInfo_InterfaceSupportsErrorInfo_Proxy(
3288 ISupportErrorInfo* This,
3289 REFIID riid);
3290 void __RPC_STUB ISupportErrorInfo_InterfaceSupportsErrorInfo_Stub(
3291 struct IRpcStubBuffer* This,
3292 struct IRpcChannelBuffer* pRpcChannelBuffer,
3293 PRPC_MESSAGE pRpcMessage,
3294 DWORD* pdwStubPhase);
3296 #endif /* __ISupportErrorInfo_INTERFACE_DEFINED__ */
3298 #ifndef __ITypeFactory_FWD_DEFINED__
3299 #define __ITypeFactory_FWD_DEFINED__
3300 typedef struct ITypeFactory ITypeFactory;
3301 #endif
3303 /*****************************************************************************
3304 * ITypeFactory interface
3306 #ifndef __ITypeFactory_INTERFACE_DEFINED__
3307 #define __ITypeFactory_INTERFACE_DEFINED__
3309 DEFINE_GUID(IID_ITypeFactory, 0x0000002e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3310 #if defined(__cplusplus) && !defined(CINTERFACE)
3311 struct ITypeFactory : public IUnknown
3313 virtual HRESULT STDMETHODCALLTYPE CreateFromTypeInfo(
3314 ITypeInfo* pTypeInfo,
3315 REFIID riid,
3316 IUnknown** ppv) = 0;
3319 #else
3320 typedef struct ITypeFactoryVtbl ITypeFactoryVtbl;
3321 struct ITypeFactory {
3322 const ITypeFactoryVtbl* lpVtbl;
3324 struct ITypeFactoryVtbl {
3325 ICOM_MSVTABLE_COMPAT_FIELDS
3327 /*** IUnknown methods ***/
3328 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3329 ITypeFactory* This,
3330 REFIID riid,
3331 void** ppvObject);
3333 ULONG (STDMETHODCALLTYPE *AddRef)(
3334 ITypeFactory* This);
3336 ULONG (STDMETHODCALLTYPE *Release)(
3337 ITypeFactory* This);
3339 /*** ITypeFactory methods ***/
3340 HRESULT (STDMETHODCALLTYPE *CreateFromTypeInfo)(
3341 ITypeFactory* This,
3342 ITypeInfo* pTypeInfo,
3343 REFIID riid,
3344 IUnknown** ppv);
3348 /*** IUnknown methods ***/
3349 #define ITypeFactory_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3350 #define ITypeFactory_AddRef(p) (p)->lpVtbl->AddRef(p)
3351 #define ITypeFactory_Release(p) (p)->lpVtbl->Release(p)
3352 /*** ITypeFactory methods ***/
3353 #define ITypeFactory_CreateFromTypeInfo(p,a,b,c) (p)->lpVtbl->CreateFromTypeInfo(p,a,b,c)
3355 #endif
3357 #define ITypeFactory_METHODS \
3358 ICOM_MSVTABLE_COMPAT_FIELDS \
3359 /*** IUnknown methods ***/ \
3360 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3361 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3362 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3363 /*** ITypeFactory methods ***/ \
3364 STDMETHOD_(HRESULT,CreateFromTypeInfo)(THIS_ ITypeInfo* pTypeInfo, REFIID riid, IUnknown** ppv) PURE;
3366 HRESULT CALLBACK ITypeFactory_CreateFromTypeInfo_Proxy(
3367 ITypeFactory* This,
3368 ITypeInfo* pTypeInfo,
3369 REFIID riid,
3370 IUnknown** ppv);
3371 void __RPC_STUB ITypeFactory_CreateFromTypeInfo_Stub(
3372 struct IRpcStubBuffer* This,
3373 struct IRpcChannelBuffer* pRpcChannelBuffer,
3374 PRPC_MESSAGE pRpcMessage,
3375 DWORD* pdwStubPhase);
3377 #endif /* __ITypeFactory_INTERFACE_DEFINED__ */
3379 #ifndef __ITypeMarshal_FWD_DEFINED__
3380 #define __ITypeMarshal_FWD_DEFINED__
3381 typedef struct ITypeMarshal ITypeMarshal;
3382 #endif
3384 /*****************************************************************************
3385 * ITypeMarshal interface
3387 #ifndef __ITypeMarshal_INTERFACE_DEFINED__
3388 #define __ITypeMarshal_INTERFACE_DEFINED__
3390 DEFINE_GUID(IID_ITypeMarshal, 0x0000002d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3391 #if defined(__cplusplus) && !defined(CINTERFACE)
3392 struct ITypeMarshal : public IUnknown
3394 virtual HRESULT STDMETHODCALLTYPE Size(
3395 PVOID pvType,
3396 DWORD dwDestContext,
3397 PVOID pvDestContext,
3398 ULONG* pSize) = 0;
3400 virtual HRESULT STDMETHODCALLTYPE Marshal(
3401 PVOID pvType,
3402 DWORD dwDestContext,
3403 PVOID pvDestContext,
3404 ULONG cbBufferLength,
3405 BYTE* pBuffer,
3406 ULONG* pcbWritten) = 0;
3408 virtual HRESULT STDMETHODCALLTYPE Unmarshal(
3409 PVOID pvType,
3410 DWORD dwFlags,
3411 ULONG cbBufferLength,
3412 BYTE* pBuffer,
3413 ULONG* pcbRead) = 0;
3415 virtual HRESULT STDMETHODCALLTYPE Free(
3416 PVOID pvType) = 0;
3419 #else
3420 typedef struct ITypeMarshalVtbl ITypeMarshalVtbl;
3421 struct ITypeMarshal {
3422 const ITypeMarshalVtbl* lpVtbl;
3424 struct ITypeMarshalVtbl {
3425 ICOM_MSVTABLE_COMPAT_FIELDS
3427 /*** IUnknown methods ***/
3428 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3429 ITypeMarshal* This,
3430 REFIID riid,
3431 void** ppvObject);
3433 ULONG (STDMETHODCALLTYPE *AddRef)(
3434 ITypeMarshal* This);
3436 ULONG (STDMETHODCALLTYPE *Release)(
3437 ITypeMarshal* This);
3439 /*** ITypeMarshal methods ***/
3440 HRESULT (STDMETHODCALLTYPE *Size)(
3441 ITypeMarshal* This,
3442 PVOID pvType,
3443 DWORD dwDestContext,
3444 PVOID pvDestContext,
3445 ULONG* pSize);
3447 HRESULT (STDMETHODCALLTYPE *Marshal)(
3448 ITypeMarshal* This,
3449 PVOID pvType,
3450 DWORD dwDestContext,
3451 PVOID pvDestContext,
3452 ULONG cbBufferLength,
3453 BYTE* pBuffer,
3454 ULONG* pcbWritten);
3456 HRESULT (STDMETHODCALLTYPE *Unmarshal)(
3457 ITypeMarshal* This,
3458 PVOID pvType,
3459 DWORD dwFlags,
3460 ULONG cbBufferLength,
3461 BYTE* pBuffer,
3462 ULONG* pcbRead);
3464 HRESULT (STDMETHODCALLTYPE *Free)(
3465 ITypeMarshal* This,
3466 PVOID pvType);
3470 /*** IUnknown methods ***/
3471 #define ITypeMarshal_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3472 #define ITypeMarshal_AddRef(p) (p)->lpVtbl->AddRef(p)
3473 #define ITypeMarshal_Release(p) (p)->lpVtbl->Release(p)
3474 /*** ITypeMarshal methods ***/
3475 #define ITypeMarshal_Size(p,a,b,c,d) (p)->lpVtbl->Size(p,a,b,c,d)
3476 #define ITypeMarshal_Marshal(p,a,b,c,d,e,f) (p)->lpVtbl->Marshal(p,a,b,c,d,e,f)
3477 #define ITypeMarshal_Unmarshal(p,a,b,c,d,e) (p)->lpVtbl->Unmarshal(p,a,b,c,d,e)
3478 #define ITypeMarshal_Free(p,a) (p)->lpVtbl->Free(p,a)
3480 #endif
3482 #define ITypeMarshal_METHODS \
3483 ICOM_MSVTABLE_COMPAT_FIELDS \
3484 /*** IUnknown methods ***/ \
3485 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3486 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3487 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3488 /*** ITypeMarshal methods ***/ \
3489 STDMETHOD_(HRESULT,Size)(THIS_ PVOID pvType, DWORD dwDestContext, PVOID pvDestContext, ULONG* pSize) PURE; \
3490 STDMETHOD_(HRESULT,Marshal)(THIS_ PVOID pvType, DWORD dwDestContext, PVOID pvDestContext, ULONG cbBufferLength, BYTE* pBuffer, ULONG* pcbWritten) PURE; \
3491 STDMETHOD_(HRESULT,Unmarshal)(THIS_ PVOID pvType, DWORD dwFlags, ULONG cbBufferLength, BYTE* pBuffer, ULONG* pcbRead) PURE; \
3492 STDMETHOD_(HRESULT,Free)(THIS_ PVOID pvType) PURE;
3494 HRESULT CALLBACK ITypeMarshal_Size_Proxy(
3495 ITypeMarshal* This,
3496 PVOID pvType,
3497 DWORD dwDestContext,
3498 PVOID pvDestContext,
3499 ULONG* pSize);
3500 void __RPC_STUB ITypeMarshal_Size_Stub(
3501 struct IRpcStubBuffer* This,
3502 struct IRpcChannelBuffer* pRpcChannelBuffer,
3503 PRPC_MESSAGE pRpcMessage,
3504 DWORD* pdwStubPhase);
3505 HRESULT CALLBACK ITypeMarshal_Marshal_Proxy(
3506 ITypeMarshal* This,
3507 PVOID pvType,
3508 DWORD dwDestContext,
3509 PVOID pvDestContext,
3510 ULONG cbBufferLength,
3511 BYTE* pBuffer,
3512 ULONG* pcbWritten);
3513 void __RPC_STUB ITypeMarshal_Marshal_Stub(
3514 struct IRpcStubBuffer* This,
3515 struct IRpcChannelBuffer* pRpcChannelBuffer,
3516 PRPC_MESSAGE pRpcMessage,
3517 DWORD* pdwStubPhase);
3518 HRESULT CALLBACK ITypeMarshal_Unmarshal_Proxy(
3519 ITypeMarshal* This,
3520 PVOID pvType,
3521 DWORD dwFlags,
3522 ULONG cbBufferLength,
3523 BYTE* pBuffer,
3524 ULONG* pcbRead);
3525 void __RPC_STUB ITypeMarshal_Unmarshal_Stub(
3526 struct IRpcStubBuffer* This,
3527 struct IRpcChannelBuffer* pRpcChannelBuffer,
3528 PRPC_MESSAGE pRpcMessage,
3529 DWORD* pdwStubPhase);
3530 HRESULT CALLBACK ITypeMarshal_Free_Proxy(
3531 ITypeMarshal* This,
3532 PVOID pvType);
3533 void __RPC_STUB ITypeMarshal_Free_Stub(
3534 struct IRpcStubBuffer* This,
3535 struct IRpcChannelBuffer* pRpcChannelBuffer,
3536 PRPC_MESSAGE pRpcMessage,
3537 DWORD* pdwStubPhase);
3539 #endif /* __ITypeMarshal_INTERFACE_DEFINED__ */
3541 typedef IRecordInfo *LPRECORDINFO;
3543 /*****************************************************************************
3544 * IRecordInfo interface
3546 #ifndef __IRecordInfo_INTERFACE_DEFINED__
3547 #define __IRecordInfo_INTERFACE_DEFINED__
3549 DEFINE_GUID(IID_IRecordInfo, 0x0000002f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3550 #if defined(__cplusplus) && !defined(CINTERFACE)
3551 struct IRecordInfo : public IUnknown
3553 virtual HRESULT STDMETHODCALLTYPE RecordInit(
3554 PVOID pvNew) = 0;
3556 virtual HRESULT STDMETHODCALLTYPE RecordClear(
3557 PVOID pvExisting) = 0;
3559 virtual HRESULT STDMETHODCALLTYPE RecordCopy(
3560 PVOID pvExisting,
3561 PVOID pvNew) = 0;
3563 virtual HRESULT STDMETHODCALLTYPE GetGuid(
3564 GUID* pguid) = 0;
3566 virtual HRESULT STDMETHODCALLTYPE GetName(
3567 BSTR* pbstrName) = 0;
3569 virtual HRESULT STDMETHODCALLTYPE GetSize(
3570 ULONG* pcbSize) = 0;
3572 virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
3573 ITypeInfo** ppTypeInfo) = 0;
3575 virtual HRESULT STDMETHODCALLTYPE GetField(
3576 PVOID pvData,
3577 LPCOLESTR szFieldName,
3578 VARIANT* pvarField) = 0;
3580 virtual HRESULT STDMETHODCALLTYPE GetFieldNoCopy(
3581 PVOID pvData,
3582 LPCOLESTR szFieldName,
3583 VARIANT* pvarField,
3584 PVOID* ppvDataCArray) = 0;
3586 virtual HRESULT STDMETHODCALLTYPE PutField(
3587 ULONG wFlags,
3588 PVOID pvData,
3589 LPCOLESTR szFieldName,
3590 VARIANT* pvarField) = 0;
3592 virtual HRESULT STDMETHODCALLTYPE PutFieldNoCopy(
3593 ULONG wFlags,
3594 PVOID pvData,
3595 LPCOLESTR szFieldName,
3596 VARIANT* pvarField) = 0;
3598 virtual HRESULT STDMETHODCALLTYPE GetFieldNames(
3599 ULONG* pcNames,
3600 BSTR* rgBstrNames) = 0;
3602 virtual BOOL STDMETHODCALLTYPE IsMatchingType(
3603 IRecordInfo* pRecordInfo) = 0;
3605 virtual PVOID STDMETHODCALLTYPE RecordCreate(
3606 ) = 0;
3608 virtual HRESULT STDMETHODCALLTYPE RecordCreateCopy(
3609 PVOID pvSource,
3610 PVOID* ppvDest) = 0;
3612 virtual HRESULT STDMETHODCALLTYPE RecordDestroy(
3613 PVOID pvRecord) = 0;
3616 #else
3617 typedef struct IRecordInfoVtbl IRecordInfoVtbl;
3618 struct IRecordInfo {
3619 const IRecordInfoVtbl* lpVtbl;
3621 struct IRecordInfoVtbl {
3622 ICOM_MSVTABLE_COMPAT_FIELDS
3624 /*** IUnknown methods ***/
3625 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3626 IRecordInfo* This,
3627 REFIID riid,
3628 void** ppvObject);
3630 ULONG (STDMETHODCALLTYPE *AddRef)(
3631 IRecordInfo* This);
3633 ULONG (STDMETHODCALLTYPE *Release)(
3634 IRecordInfo* This);
3636 /*** IRecordInfo methods ***/
3637 HRESULT (STDMETHODCALLTYPE *RecordInit)(
3638 IRecordInfo* This,
3639 PVOID pvNew);
3641 HRESULT (STDMETHODCALLTYPE *RecordClear)(
3642 IRecordInfo* This,
3643 PVOID pvExisting);
3645 HRESULT (STDMETHODCALLTYPE *RecordCopy)(
3646 IRecordInfo* This,
3647 PVOID pvExisting,
3648 PVOID pvNew);
3650 HRESULT (STDMETHODCALLTYPE *GetGuid)(
3651 IRecordInfo* This,
3652 GUID* pguid);
3654 HRESULT (STDMETHODCALLTYPE *GetName)(
3655 IRecordInfo* This,
3656 BSTR* pbstrName);
3658 HRESULT (STDMETHODCALLTYPE *GetSize)(
3659 IRecordInfo* This,
3660 ULONG* pcbSize);
3662 HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
3663 IRecordInfo* This,
3664 ITypeInfo** ppTypeInfo);
3666 HRESULT (STDMETHODCALLTYPE *GetField)(
3667 IRecordInfo* This,
3668 PVOID pvData,
3669 LPCOLESTR szFieldName,
3670 VARIANT* pvarField);
3672 HRESULT (STDMETHODCALLTYPE *GetFieldNoCopy)(
3673 IRecordInfo* This,
3674 PVOID pvData,
3675 LPCOLESTR szFieldName,
3676 VARIANT* pvarField,
3677 PVOID* ppvDataCArray);
3679 HRESULT (STDMETHODCALLTYPE *PutField)(
3680 IRecordInfo* This,
3681 ULONG wFlags,
3682 PVOID pvData,
3683 LPCOLESTR szFieldName,
3684 VARIANT* pvarField);
3686 HRESULT (STDMETHODCALLTYPE *PutFieldNoCopy)(
3687 IRecordInfo* This,
3688 ULONG wFlags,
3689 PVOID pvData,
3690 LPCOLESTR szFieldName,
3691 VARIANT* pvarField);
3693 HRESULT (STDMETHODCALLTYPE *GetFieldNames)(
3694 IRecordInfo* This,
3695 ULONG* pcNames,
3696 BSTR* rgBstrNames);
3698 BOOL (STDMETHODCALLTYPE *IsMatchingType)(
3699 IRecordInfo* This,
3700 IRecordInfo* pRecordInfo);
3702 PVOID (STDMETHODCALLTYPE *RecordCreate)(
3703 IRecordInfo* This);
3705 HRESULT (STDMETHODCALLTYPE *RecordCreateCopy)(
3706 IRecordInfo* This,
3707 PVOID pvSource,
3708 PVOID* ppvDest);
3710 HRESULT (STDMETHODCALLTYPE *RecordDestroy)(
3711 IRecordInfo* This,
3712 PVOID pvRecord);
3716 /*** IUnknown methods ***/
3717 #define IRecordInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3718 #define IRecordInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
3719 #define IRecordInfo_Release(p) (p)->lpVtbl->Release(p)
3720 /*** IRecordInfo methods ***/
3721 #define IRecordInfo_RecordInit(p,a) (p)->lpVtbl->RecordInit(p,a)
3722 #define IRecordInfo_RecordClear(p,a) (p)->lpVtbl->RecordClear(p,a)
3723 #define IRecordInfo_RecordCopy(p,a,b) (p)->lpVtbl->RecordCopy(p,a,b)
3724 #define IRecordInfo_GetGuid(p,a) (p)->lpVtbl->GetGuid(p,a)
3725 #define IRecordInfo_GetName(p,a) (p)->lpVtbl->GetName(p,a)
3726 #define IRecordInfo_GetSize(p,a) (p)->lpVtbl->GetSize(p,a)
3727 #define IRecordInfo_GetTypeInfo(p,a) (p)->lpVtbl->GetTypeInfo(p,a)
3728 #define IRecordInfo_GetField(p,a,b,c) (p)->lpVtbl->GetField(p,a,b,c)
3729 #define IRecordInfo_GetFieldNoCopy(p,a,b,c,d) (p)->lpVtbl->GetFieldNoCopy(p,a,b,c,d)
3730 #define IRecordInfo_PutField(p,a,b,c,d) (p)->lpVtbl->PutField(p,a,b,c,d)
3731 #define IRecordInfo_PutFieldNoCopy(p,a,b,c,d) (p)->lpVtbl->PutFieldNoCopy(p,a,b,c,d)
3732 #define IRecordInfo_GetFieldNames(p,a,b) (p)->lpVtbl->GetFieldNames(p,a,b)
3733 #define IRecordInfo_IsMatchingType(p,a) (p)->lpVtbl->IsMatchingType(p,a)
3734 #define IRecordInfo_RecordCreate(p) (p)->lpVtbl->RecordCreate(p)
3735 #define IRecordInfo_RecordCreateCopy(p,a,b) (p)->lpVtbl->RecordCreateCopy(p,a,b)
3736 #define IRecordInfo_RecordDestroy(p,a) (p)->lpVtbl->RecordDestroy(p,a)
3738 #endif
3740 #define IRecordInfo_METHODS \
3741 ICOM_MSVTABLE_COMPAT_FIELDS \
3742 /*** IUnknown methods ***/ \
3743 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3744 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3745 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3746 /*** IRecordInfo methods ***/ \
3747 STDMETHOD_(HRESULT,RecordInit)(THIS_ PVOID pvNew) PURE; \
3748 STDMETHOD_(HRESULT,RecordClear)(THIS_ PVOID pvExisting) PURE; \
3749 STDMETHOD_(HRESULT,RecordCopy)(THIS_ PVOID pvExisting, PVOID pvNew) PURE; \
3750 STDMETHOD_(HRESULT,GetGuid)(THIS_ GUID* pguid) PURE; \
3751 STDMETHOD_(HRESULT,GetName)(THIS_ BSTR* pbstrName) PURE; \
3752 STDMETHOD_(HRESULT,GetSize)(THIS_ ULONG* pcbSize) PURE; \
3753 STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ ITypeInfo** ppTypeInfo) PURE; \
3754 STDMETHOD_(HRESULT,GetField)(THIS_ PVOID pvData, LPCOLESTR szFieldName, VARIANT* pvarField) PURE; \
3755 STDMETHOD_(HRESULT,GetFieldNoCopy)(THIS_ PVOID pvData, LPCOLESTR szFieldName, VARIANT* pvarField, PVOID* ppvDataCArray) PURE; \
3756 STDMETHOD_(HRESULT,PutField)(THIS_ ULONG wFlags, PVOID pvData, LPCOLESTR szFieldName, VARIANT* pvarField) PURE; \
3757 STDMETHOD_(HRESULT,PutFieldNoCopy)(THIS_ ULONG wFlags, PVOID pvData, LPCOLESTR szFieldName, VARIANT* pvarField) PURE; \
3758 STDMETHOD_(HRESULT,GetFieldNames)(THIS_ ULONG* pcNames, BSTR* rgBstrNames) PURE; \
3759 STDMETHOD_(BOOL,IsMatchingType)(THIS_ IRecordInfo* pRecordInfo) PURE; \
3760 STDMETHOD_(PVOID,RecordCreate)(THIS) PURE; \
3761 STDMETHOD_(HRESULT,RecordCreateCopy)(THIS_ PVOID pvSource, PVOID* ppvDest) PURE; \
3762 STDMETHOD_(HRESULT,RecordDestroy)(THIS_ PVOID pvRecord) PURE;
3764 HRESULT CALLBACK IRecordInfo_RecordInit_Proxy(
3765 IRecordInfo* This,
3766 PVOID pvNew);
3767 void __RPC_STUB IRecordInfo_RecordInit_Stub(
3768 struct IRpcStubBuffer* This,
3769 struct IRpcChannelBuffer* pRpcChannelBuffer,
3770 PRPC_MESSAGE pRpcMessage,
3771 DWORD* pdwStubPhase);
3772 HRESULT CALLBACK IRecordInfo_RecordClear_Proxy(
3773 IRecordInfo* This,
3774 PVOID pvExisting);
3775 void __RPC_STUB IRecordInfo_RecordClear_Stub(
3776 struct IRpcStubBuffer* This,
3777 struct IRpcChannelBuffer* pRpcChannelBuffer,
3778 PRPC_MESSAGE pRpcMessage,
3779 DWORD* pdwStubPhase);
3780 HRESULT CALLBACK IRecordInfo_RecordCopy_Proxy(
3781 IRecordInfo* This,
3782 PVOID pvExisting,
3783 PVOID pvNew);
3784 void __RPC_STUB IRecordInfo_RecordCopy_Stub(
3785 struct IRpcStubBuffer* This,
3786 struct IRpcChannelBuffer* pRpcChannelBuffer,
3787 PRPC_MESSAGE pRpcMessage,
3788 DWORD* pdwStubPhase);
3789 HRESULT CALLBACK IRecordInfo_GetGuid_Proxy(
3790 IRecordInfo* This,
3791 GUID* pguid);
3792 void __RPC_STUB IRecordInfo_GetGuid_Stub(
3793 struct IRpcStubBuffer* This,
3794 struct IRpcChannelBuffer* pRpcChannelBuffer,
3795 PRPC_MESSAGE pRpcMessage,
3796 DWORD* pdwStubPhase);
3797 HRESULT CALLBACK IRecordInfo_GetName_Proxy(
3798 IRecordInfo* This,
3799 BSTR* pbstrName);
3800 void __RPC_STUB IRecordInfo_GetName_Stub(
3801 struct IRpcStubBuffer* This,
3802 struct IRpcChannelBuffer* pRpcChannelBuffer,
3803 PRPC_MESSAGE pRpcMessage,
3804 DWORD* pdwStubPhase);
3805 HRESULT CALLBACK IRecordInfo_GetSize_Proxy(
3806 IRecordInfo* This,
3807 ULONG* pcbSize);
3808 void __RPC_STUB IRecordInfo_GetSize_Stub(
3809 struct IRpcStubBuffer* This,
3810 struct IRpcChannelBuffer* pRpcChannelBuffer,
3811 PRPC_MESSAGE pRpcMessage,
3812 DWORD* pdwStubPhase);
3813 HRESULT CALLBACK IRecordInfo_GetTypeInfo_Proxy(
3814 IRecordInfo* This,
3815 ITypeInfo** ppTypeInfo);
3816 void __RPC_STUB IRecordInfo_GetTypeInfo_Stub(
3817 struct IRpcStubBuffer* This,
3818 struct IRpcChannelBuffer* pRpcChannelBuffer,
3819 PRPC_MESSAGE pRpcMessage,
3820 DWORD* pdwStubPhase);
3821 HRESULT CALLBACK IRecordInfo_GetField_Proxy(
3822 IRecordInfo* This,
3823 PVOID pvData,
3824 LPCOLESTR szFieldName,
3825 VARIANT* pvarField);
3826 void __RPC_STUB IRecordInfo_GetField_Stub(
3827 struct IRpcStubBuffer* This,
3828 struct IRpcChannelBuffer* pRpcChannelBuffer,
3829 PRPC_MESSAGE pRpcMessage,
3830 DWORD* pdwStubPhase);
3831 HRESULT CALLBACK IRecordInfo_GetFieldNoCopy_Proxy(
3832 IRecordInfo* This,
3833 PVOID pvData,
3834 LPCOLESTR szFieldName,
3835 VARIANT* pvarField,
3836 PVOID* ppvDataCArray);
3837 void __RPC_STUB IRecordInfo_GetFieldNoCopy_Stub(
3838 struct IRpcStubBuffer* This,
3839 struct IRpcChannelBuffer* pRpcChannelBuffer,
3840 PRPC_MESSAGE pRpcMessage,
3841 DWORD* pdwStubPhase);
3842 HRESULT CALLBACK IRecordInfo_PutField_Proxy(
3843 IRecordInfo* This,
3844 ULONG wFlags,
3845 PVOID pvData,
3846 LPCOLESTR szFieldName,
3847 VARIANT* pvarField);
3848 void __RPC_STUB IRecordInfo_PutField_Stub(
3849 struct IRpcStubBuffer* This,
3850 struct IRpcChannelBuffer* pRpcChannelBuffer,
3851 PRPC_MESSAGE pRpcMessage,
3852 DWORD* pdwStubPhase);
3853 HRESULT CALLBACK IRecordInfo_PutFieldNoCopy_Proxy(
3854 IRecordInfo* This,
3855 ULONG wFlags,
3856 PVOID pvData,
3857 LPCOLESTR szFieldName,
3858 VARIANT* pvarField);
3859 void __RPC_STUB IRecordInfo_PutFieldNoCopy_Stub(
3860 struct IRpcStubBuffer* This,
3861 struct IRpcChannelBuffer* pRpcChannelBuffer,
3862 PRPC_MESSAGE pRpcMessage,
3863 DWORD* pdwStubPhase);
3864 HRESULT CALLBACK IRecordInfo_GetFieldNames_Proxy(
3865 IRecordInfo* This,
3866 ULONG* pcNames,
3867 BSTR* rgBstrNames);
3868 void __RPC_STUB IRecordInfo_GetFieldNames_Stub(
3869 struct IRpcStubBuffer* This,
3870 struct IRpcChannelBuffer* pRpcChannelBuffer,
3871 PRPC_MESSAGE pRpcMessage,
3872 DWORD* pdwStubPhase);
3873 BOOL CALLBACK IRecordInfo_IsMatchingType_Proxy(
3874 IRecordInfo* This,
3875 IRecordInfo* pRecordInfo);
3876 void __RPC_STUB IRecordInfo_IsMatchingType_Stub(
3877 struct IRpcStubBuffer* This,
3878 struct IRpcChannelBuffer* pRpcChannelBuffer,
3879 PRPC_MESSAGE pRpcMessage,
3880 DWORD* pdwStubPhase);
3881 PVOID CALLBACK IRecordInfo_RecordCreate_Proxy(
3882 IRecordInfo* This);
3883 void __RPC_STUB IRecordInfo_RecordCreate_Stub(
3884 struct IRpcStubBuffer* This,
3885 struct IRpcChannelBuffer* pRpcChannelBuffer,
3886 PRPC_MESSAGE pRpcMessage,
3887 DWORD* pdwStubPhase);
3888 HRESULT CALLBACK IRecordInfo_RecordCreateCopy_Proxy(
3889 IRecordInfo* This,
3890 PVOID pvSource,
3891 PVOID* ppvDest);
3892 void __RPC_STUB IRecordInfo_RecordCreateCopy_Stub(
3893 struct IRpcStubBuffer* This,
3894 struct IRpcChannelBuffer* pRpcChannelBuffer,
3895 PRPC_MESSAGE pRpcMessage,
3896 DWORD* pdwStubPhase);
3897 HRESULT CALLBACK IRecordInfo_RecordDestroy_Proxy(
3898 IRecordInfo* This,
3899 PVOID pvRecord);
3900 void __RPC_STUB IRecordInfo_RecordDestroy_Stub(
3901 struct IRpcStubBuffer* This,
3902 struct IRpcChannelBuffer* pRpcChannelBuffer,
3903 PRPC_MESSAGE pRpcMessage,
3904 DWORD* pdwStubPhase);
3906 #endif /* __IRecordInfo_INTERFACE_DEFINED__ */
3908 #ifndef __ICreateTypeInfo_FWD_DEFINED__
3909 #define __ICreateTypeInfo_FWD_DEFINED__
3910 typedef struct ICreateTypeInfo ICreateTypeInfo;
3911 #endif
3913 typedef ICreateTypeInfo *LPCREATETYPEINFO;
3915 /*****************************************************************************
3916 * ICreateTypeInfo interface
3918 #ifndef __ICreateTypeInfo_INTERFACE_DEFINED__
3919 #define __ICreateTypeInfo_INTERFACE_DEFINED__
3921 DEFINE_GUID(IID_ICreateTypeInfo, 0x00020405, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3922 #if defined(__cplusplus) && !defined(CINTERFACE)
3923 struct ICreateTypeInfo : public IUnknown
3925 virtual HRESULT STDMETHODCALLTYPE SetGuid(
3926 REFGUID guid) = 0;
3928 virtual HRESULT STDMETHODCALLTYPE SetTypeFlags(
3929 UINT uTypeFlags) = 0;
3931 virtual HRESULT STDMETHODCALLTYPE SetDocString(
3932 LPOLESTR pStrDoc) = 0;
3934 virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
3935 DWORD dwHelpContext) = 0;
3937 virtual HRESULT STDMETHODCALLTYPE SetVersion(
3938 WORD wMajorVerNum,
3939 WORD wMinorVerNum) = 0;
3941 virtual HRESULT STDMETHODCALLTYPE AddRefTypeInfo(
3942 ITypeInfo* pTInfo,
3943 HREFTYPE* phRefType) = 0;
3945 virtual HRESULT STDMETHODCALLTYPE AddFuncDesc(
3946 UINT index,
3947 FUNCDESC* pFuncDesc) = 0;
3949 virtual HRESULT STDMETHODCALLTYPE AddImplType(
3950 UINT index,
3951 HREFTYPE hRefType) = 0;
3953 virtual HRESULT STDMETHODCALLTYPE SetImplTypeFlags(
3954 UINT index,
3955 INT implTypeFlags) = 0;
3957 virtual HRESULT STDMETHODCALLTYPE SetAlignment(
3958 WORD cbAlignment) = 0;
3960 virtual HRESULT STDMETHODCALLTYPE SetSchema(
3961 LPOLESTR pStrSchema) = 0;
3963 virtual HRESULT STDMETHODCALLTYPE AddVarDesc(
3964 UINT index,
3965 VARDESC* pVarDesc) = 0;
3967 virtual HRESULT STDMETHODCALLTYPE SetFuncAndParamNames(
3968 UINT index,
3969 LPOLESTR* rgszNames,
3970 UINT cNames) = 0;
3972 virtual HRESULT STDMETHODCALLTYPE SetVarName(
3973 UINT index,
3974 LPOLESTR szName) = 0;
3976 virtual HRESULT STDMETHODCALLTYPE SetTypeDescAlias(
3977 TYPEDESC* pTDescAlias) = 0;
3979 virtual HRESULT STDMETHODCALLTYPE DefineFuncAsDllEntry(
3980 UINT index,
3981 LPOLESTR szDllName,
3982 LPOLESTR szProcName) = 0;
3984 virtual HRESULT STDMETHODCALLTYPE SetFuncDocString(
3985 UINT index,
3986 LPOLESTR szDocString) = 0;
3988 virtual HRESULT STDMETHODCALLTYPE SetVarDocString(
3989 UINT index,
3990 LPOLESTR szDocString) = 0;
3992 virtual HRESULT STDMETHODCALLTYPE SetFuncHelpContext(
3993 UINT index,
3994 DWORD dwHelpContext) = 0;
3996 virtual HRESULT STDMETHODCALLTYPE SetVarHelpContext(
3997 UINT index,
3998 DWORD dwHelpContext) = 0;
4000 virtual HRESULT STDMETHODCALLTYPE SetMops(
4001 UINT index,
4002 BSTR bstrMops) = 0;
4004 virtual HRESULT STDMETHODCALLTYPE SetTypeIdldesc(
4005 IDLDESC* pIdlDesc) = 0;
4007 virtual HRESULT STDMETHODCALLTYPE LayOut(
4008 ) = 0;
4011 #else
4012 typedef struct ICreateTypeInfoVtbl ICreateTypeInfoVtbl;
4013 struct ICreateTypeInfo {
4014 const ICreateTypeInfoVtbl* lpVtbl;
4016 struct ICreateTypeInfoVtbl {
4017 ICOM_MSVTABLE_COMPAT_FIELDS
4019 /*** IUnknown methods ***/
4020 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4021 ICreateTypeInfo* This,
4022 REFIID riid,
4023 void** ppvObject);
4025 ULONG (STDMETHODCALLTYPE *AddRef)(
4026 ICreateTypeInfo* This);
4028 ULONG (STDMETHODCALLTYPE *Release)(
4029 ICreateTypeInfo* This);
4031 /*** ICreateTypeInfo methods ***/
4032 HRESULT (STDMETHODCALLTYPE *SetGuid)(
4033 ICreateTypeInfo* This,
4034 REFGUID guid);
4036 HRESULT (STDMETHODCALLTYPE *SetTypeFlags)(
4037 ICreateTypeInfo* This,
4038 UINT uTypeFlags);
4040 HRESULT (STDMETHODCALLTYPE *SetDocString)(
4041 ICreateTypeInfo* This,
4042 LPOLESTR pStrDoc);
4044 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
4045 ICreateTypeInfo* This,
4046 DWORD dwHelpContext);
4048 HRESULT (STDMETHODCALLTYPE *SetVersion)(
4049 ICreateTypeInfo* This,
4050 WORD wMajorVerNum,
4051 WORD wMinorVerNum);
4053 HRESULT (STDMETHODCALLTYPE *AddRefTypeInfo)(
4054 ICreateTypeInfo* This,
4055 ITypeInfo* pTInfo,
4056 HREFTYPE* phRefType);
4058 HRESULT (STDMETHODCALLTYPE *AddFuncDesc)(
4059 ICreateTypeInfo* This,
4060 UINT index,
4061 FUNCDESC* pFuncDesc);
4063 HRESULT (STDMETHODCALLTYPE *AddImplType)(
4064 ICreateTypeInfo* This,
4065 UINT index,
4066 HREFTYPE hRefType);
4068 HRESULT (STDMETHODCALLTYPE *SetImplTypeFlags)(
4069 ICreateTypeInfo* This,
4070 UINT index,
4071 INT implTypeFlags);
4073 HRESULT (STDMETHODCALLTYPE *SetAlignment)(
4074 ICreateTypeInfo* This,
4075 WORD cbAlignment);
4077 HRESULT (STDMETHODCALLTYPE *SetSchema)(
4078 ICreateTypeInfo* This,
4079 LPOLESTR pStrSchema);
4081 HRESULT (STDMETHODCALLTYPE *AddVarDesc)(
4082 ICreateTypeInfo* This,
4083 UINT index,
4084 VARDESC* pVarDesc);
4086 HRESULT (STDMETHODCALLTYPE *SetFuncAndParamNames)(
4087 ICreateTypeInfo* This,
4088 UINT index,
4089 LPOLESTR* rgszNames,
4090 UINT cNames);
4092 HRESULT (STDMETHODCALLTYPE *SetVarName)(
4093 ICreateTypeInfo* This,
4094 UINT index,
4095 LPOLESTR szName);
4097 HRESULT (STDMETHODCALLTYPE *SetTypeDescAlias)(
4098 ICreateTypeInfo* This,
4099 TYPEDESC* pTDescAlias);
4101 HRESULT (STDMETHODCALLTYPE *DefineFuncAsDllEntry)(
4102 ICreateTypeInfo* This,
4103 UINT index,
4104 LPOLESTR szDllName,
4105 LPOLESTR szProcName);
4107 HRESULT (STDMETHODCALLTYPE *SetFuncDocString)(
4108 ICreateTypeInfo* This,
4109 UINT index,
4110 LPOLESTR szDocString);
4112 HRESULT (STDMETHODCALLTYPE *SetVarDocString)(
4113 ICreateTypeInfo* This,
4114 UINT index,
4115 LPOLESTR szDocString);
4117 HRESULT (STDMETHODCALLTYPE *SetFuncHelpContext)(
4118 ICreateTypeInfo* This,
4119 UINT index,
4120 DWORD dwHelpContext);
4122 HRESULT (STDMETHODCALLTYPE *SetVarHelpContext)(
4123 ICreateTypeInfo* This,
4124 UINT index,
4125 DWORD dwHelpContext);
4127 HRESULT (STDMETHODCALLTYPE *SetMops)(
4128 ICreateTypeInfo* This,
4129 UINT index,
4130 BSTR bstrMops);
4132 HRESULT (STDMETHODCALLTYPE *SetTypeIdldesc)(
4133 ICreateTypeInfo* This,
4134 IDLDESC* pIdlDesc);
4136 HRESULT (STDMETHODCALLTYPE *LayOut)(
4137 ICreateTypeInfo* This);
4141 /*** IUnknown methods ***/
4142 #define ICreateTypeInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4143 #define ICreateTypeInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
4144 #define ICreateTypeInfo_Release(p) (p)->lpVtbl->Release(p)
4145 /*** ICreateTypeInfo methods ***/
4146 #define ICreateTypeInfo_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
4147 #define ICreateTypeInfo_SetTypeFlags(p,a) (p)->lpVtbl->SetTypeFlags(p,a)
4148 #define ICreateTypeInfo_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
4149 #define ICreateTypeInfo_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
4150 #define ICreateTypeInfo_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
4151 #define ICreateTypeInfo_AddRefTypeInfo(p,a,b) (p)->lpVtbl->AddRefTypeInfo(p,a,b)
4152 #define ICreateTypeInfo_AddFuncDesc(p,a,b) (p)->lpVtbl->AddFuncDesc(p,a,b)
4153 #define ICreateTypeInfo_AddImplType(p,a,b) (p)->lpVtbl->AddImplType(p,a,b)
4154 #define ICreateTypeInfo_SetImplTypeFlags(p,a,b) (p)->lpVtbl->SetImplTypeFlags(p,a,b)
4155 #define ICreateTypeInfo_SetAlignment(p,a) (p)->lpVtbl->SetAlignment(p,a)
4156 #define ICreateTypeInfo_SetSchema(p,a) (p)->lpVtbl->SetSchema(p,a)
4157 #define ICreateTypeInfo_AddVarDesc(p,a,b) (p)->lpVtbl->AddVarDesc(p,a,b)
4158 #define ICreateTypeInfo_SetFuncAndParamNames(p,a,b,c) (p)->lpVtbl->SetFuncAndParamNames(p,a,b,c)
4159 #define ICreateTypeInfo_SetVarName(p,a,b) (p)->lpVtbl->SetVarName(p,a,b)
4160 #define ICreateTypeInfo_SetTypeDescAlias(p,a) (p)->lpVtbl->SetTypeDescAlias(p,a)
4161 #define ICreateTypeInfo_DefineFuncAsDllEntry(p,a,b,c) (p)->lpVtbl->DefineFuncAsDllEntry(p,a,b,c)
4162 #define ICreateTypeInfo_SetFuncDocString(p,a,b) (p)->lpVtbl->SetFuncDocString(p,a,b)
4163 #define ICreateTypeInfo_SetVarDocString(p,a,b) (p)->lpVtbl->SetVarDocString(p,a,b)
4164 #define ICreateTypeInfo_SetFuncHelpContext(p,a,b) (p)->lpVtbl->SetFuncHelpContext(p,a,b)
4165 #define ICreateTypeInfo_SetVarHelpContext(p,a,b) (p)->lpVtbl->SetVarHelpContext(p,a,b)
4166 #define ICreateTypeInfo_SetMops(p,a,b) (p)->lpVtbl->SetMops(p,a,b)
4167 #define ICreateTypeInfo_SetTypeIdldesc(p,a) (p)->lpVtbl->SetTypeIdldesc(p,a)
4168 #define ICreateTypeInfo_LayOut(p) (p)->lpVtbl->LayOut(p)
4170 #endif
4172 #define ICreateTypeInfo_METHODS \
4173 ICOM_MSVTABLE_COMPAT_FIELDS \
4174 /*** IUnknown methods ***/ \
4175 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4176 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4177 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4178 /*** ICreateTypeInfo methods ***/ \
4179 STDMETHOD_(HRESULT,SetGuid)(THIS_ REFGUID guid) PURE; \
4180 STDMETHOD_(HRESULT,SetTypeFlags)(THIS_ UINT uTypeFlags) PURE; \
4181 STDMETHOD_(HRESULT,SetDocString)(THIS_ LPOLESTR pStrDoc) PURE; \
4182 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE; \
4183 STDMETHOD_(HRESULT,SetVersion)(THIS_ WORD wMajorVerNum, WORD wMinorVerNum) PURE; \
4184 STDMETHOD_(HRESULT,AddRefTypeInfo)(THIS_ ITypeInfo* pTInfo, HREFTYPE* phRefType) PURE; \
4185 STDMETHOD_(HRESULT,AddFuncDesc)(THIS_ UINT index, FUNCDESC* pFuncDesc) PURE; \
4186 STDMETHOD_(HRESULT,AddImplType)(THIS_ UINT index, HREFTYPE hRefType) PURE; \
4187 STDMETHOD_(HRESULT,SetImplTypeFlags)(THIS_ UINT index, INT implTypeFlags) PURE; \
4188 STDMETHOD_(HRESULT,SetAlignment)(THIS_ WORD cbAlignment) PURE; \
4189 STDMETHOD_(HRESULT,SetSchema)(THIS_ LPOLESTR pStrSchema) PURE; \
4190 STDMETHOD_(HRESULT,AddVarDesc)(THIS_ UINT index, VARDESC* pVarDesc) PURE; \
4191 STDMETHOD_(HRESULT,SetFuncAndParamNames)(THIS_ UINT index, LPOLESTR* rgszNames, UINT cNames) PURE; \
4192 STDMETHOD_(HRESULT,SetVarName)(THIS_ UINT index, LPOLESTR szName) PURE; \
4193 STDMETHOD_(HRESULT,SetTypeDescAlias)(THIS_ TYPEDESC* pTDescAlias) PURE; \
4194 STDMETHOD_(HRESULT,DefineFuncAsDllEntry)(THIS_ UINT index, LPOLESTR szDllName, LPOLESTR szProcName) PURE; \
4195 STDMETHOD_(HRESULT,SetFuncDocString)(THIS_ UINT index, LPOLESTR szDocString) PURE; \
4196 STDMETHOD_(HRESULT,SetVarDocString)(THIS_ UINT index, LPOLESTR szDocString) PURE; \
4197 STDMETHOD_(HRESULT,SetFuncHelpContext)(THIS_ UINT index, DWORD dwHelpContext) PURE; \
4198 STDMETHOD_(HRESULT,SetVarHelpContext)(THIS_ UINT index, DWORD dwHelpContext) PURE; \
4199 STDMETHOD_(HRESULT,SetMops)(THIS_ UINT index, BSTR bstrMops) PURE; \
4200 STDMETHOD_(HRESULT,SetTypeIdldesc)(THIS_ IDLDESC* pIdlDesc) PURE; \
4201 STDMETHOD_(HRESULT,LayOut)(THIS) PURE;
4203 HRESULT CALLBACK ICreateTypeInfo_SetGuid_Proxy(
4204 ICreateTypeInfo* This,
4205 REFGUID guid);
4206 void __RPC_STUB ICreateTypeInfo_SetGuid_Stub(
4207 struct IRpcStubBuffer* This,
4208 struct IRpcChannelBuffer* pRpcChannelBuffer,
4209 PRPC_MESSAGE pRpcMessage,
4210 DWORD* pdwStubPhase);
4211 HRESULT CALLBACK ICreateTypeInfo_SetTypeFlags_Proxy(
4212 ICreateTypeInfo* This,
4213 UINT uTypeFlags);
4214 void __RPC_STUB ICreateTypeInfo_SetTypeFlags_Stub(
4215 struct IRpcStubBuffer* This,
4216 struct IRpcChannelBuffer* pRpcChannelBuffer,
4217 PRPC_MESSAGE pRpcMessage,
4218 DWORD* pdwStubPhase);
4219 HRESULT CALLBACK ICreateTypeInfo_SetDocString_Proxy(
4220 ICreateTypeInfo* This,
4221 LPOLESTR pStrDoc);
4222 void __RPC_STUB ICreateTypeInfo_SetDocString_Stub(
4223 struct IRpcStubBuffer* This,
4224 struct IRpcChannelBuffer* pRpcChannelBuffer,
4225 PRPC_MESSAGE pRpcMessage,
4226 DWORD* pdwStubPhase);
4227 HRESULT CALLBACK ICreateTypeInfo_SetHelpContext_Proxy(
4228 ICreateTypeInfo* This,
4229 DWORD dwHelpContext);
4230 void __RPC_STUB ICreateTypeInfo_SetHelpContext_Stub(
4231 struct IRpcStubBuffer* This,
4232 struct IRpcChannelBuffer* pRpcChannelBuffer,
4233 PRPC_MESSAGE pRpcMessage,
4234 DWORD* pdwStubPhase);
4235 HRESULT CALLBACK ICreateTypeInfo_SetVersion_Proxy(
4236 ICreateTypeInfo* This,
4237 WORD wMajorVerNum,
4238 WORD wMinorVerNum);
4239 void __RPC_STUB ICreateTypeInfo_SetVersion_Stub(
4240 struct IRpcStubBuffer* This,
4241 struct IRpcChannelBuffer* pRpcChannelBuffer,
4242 PRPC_MESSAGE pRpcMessage,
4243 DWORD* pdwStubPhase);
4244 HRESULT CALLBACK ICreateTypeInfo_AddRefTypeInfo_Proxy(
4245 ICreateTypeInfo* This,
4246 ITypeInfo* pTInfo,
4247 HREFTYPE* phRefType);
4248 void __RPC_STUB ICreateTypeInfo_AddRefTypeInfo_Stub(
4249 struct IRpcStubBuffer* This,
4250 struct IRpcChannelBuffer* pRpcChannelBuffer,
4251 PRPC_MESSAGE pRpcMessage,
4252 DWORD* pdwStubPhase);
4253 HRESULT CALLBACK ICreateTypeInfo_AddFuncDesc_Proxy(
4254 ICreateTypeInfo* This,
4255 UINT index,
4256 FUNCDESC* pFuncDesc);
4257 void __RPC_STUB ICreateTypeInfo_AddFuncDesc_Stub(
4258 struct IRpcStubBuffer* This,
4259 struct IRpcChannelBuffer* pRpcChannelBuffer,
4260 PRPC_MESSAGE pRpcMessage,
4261 DWORD* pdwStubPhase);
4262 HRESULT CALLBACK ICreateTypeInfo_AddImplType_Proxy(
4263 ICreateTypeInfo* This,
4264 UINT index,
4265 HREFTYPE hRefType);
4266 void __RPC_STUB ICreateTypeInfo_AddImplType_Stub(
4267 struct IRpcStubBuffer* This,
4268 struct IRpcChannelBuffer* pRpcChannelBuffer,
4269 PRPC_MESSAGE pRpcMessage,
4270 DWORD* pdwStubPhase);
4271 HRESULT CALLBACK ICreateTypeInfo_SetImplTypeFlags_Proxy(
4272 ICreateTypeInfo* This,
4273 UINT index,
4274 INT implTypeFlags);
4275 void __RPC_STUB ICreateTypeInfo_SetImplTypeFlags_Stub(
4276 struct IRpcStubBuffer* This,
4277 struct IRpcChannelBuffer* pRpcChannelBuffer,
4278 PRPC_MESSAGE pRpcMessage,
4279 DWORD* pdwStubPhase);
4280 HRESULT CALLBACK ICreateTypeInfo_SetAlignment_Proxy(
4281 ICreateTypeInfo* This,
4282 WORD cbAlignment);
4283 void __RPC_STUB ICreateTypeInfo_SetAlignment_Stub(
4284 struct IRpcStubBuffer* This,
4285 struct IRpcChannelBuffer* pRpcChannelBuffer,
4286 PRPC_MESSAGE pRpcMessage,
4287 DWORD* pdwStubPhase);
4288 HRESULT CALLBACK ICreateTypeInfo_SetSchema_Proxy(
4289 ICreateTypeInfo* This,
4290 LPOLESTR pStrSchema);
4291 void __RPC_STUB ICreateTypeInfo_SetSchema_Stub(
4292 struct IRpcStubBuffer* This,
4293 struct IRpcChannelBuffer* pRpcChannelBuffer,
4294 PRPC_MESSAGE pRpcMessage,
4295 DWORD* pdwStubPhase);
4296 HRESULT CALLBACK ICreateTypeInfo_AddVarDesc_Proxy(
4297 ICreateTypeInfo* This,
4298 UINT index,
4299 VARDESC* pVarDesc);
4300 void __RPC_STUB ICreateTypeInfo_AddVarDesc_Stub(
4301 struct IRpcStubBuffer* This,
4302 struct IRpcChannelBuffer* pRpcChannelBuffer,
4303 PRPC_MESSAGE pRpcMessage,
4304 DWORD* pdwStubPhase);
4305 HRESULT CALLBACK ICreateTypeInfo_SetFuncAndParamNames_Proxy(
4306 ICreateTypeInfo* This,
4307 UINT index,
4308 LPOLESTR* rgszNames,
4309 UINT cNames);
4310 void __RPC_STUB ICreateTypeInfo_SetFuncAndParamNames_Stub(
4311 struct IRpcStubBuffer* This,
4312 struct IRpcChannelBuffer* pRpcChannelBuffer,
4313 PRPC_MESSAGE pRpcMessage,
4314 DWORD* pdwStubPhase);
4315 HRESULT CALLBACK ICreateTypeInfo_SetVarName_Proxy(
4316 ICreateTypeInfo* This,
4317 UINT index,
4318 LPOLESTR szName);
4319 void __RPC_STUB ICreateTypeInfo_SetVarName_Stub(
4320 struct IRpcStubBuffer* This,
4321 struct IRpcChannelBuffer* pRpcChannelBuffer,
4322 PRPC_MESSAGE pRpcMessage,
4323 DWORD* pdwStubPhase);
4324 HRESULT CALLBACK ICreateTypeInfo_SetTypeDescAlias_Proxy(
4325 ICreateTypeInfo* This,
4326 TYPEDESC* pTDescAlias);
4327 void __RPC_STUB ICreateTypeInfo_SetTypeDescAlias_Stub(
4328 struct IRpcStubBuffer* This,
4329 struct IRpcChannelBuffer* pRpcChannelBuffer,
4330 PRPC_MESSAGE pRpcMessage,
4331 DWORD* pdwStubPhase);
4332 HRESULT CALLBACK ICreateTypeInfo_DefineFuncAsDllEntry_Proxy(
4333 ICreateTypeInfo* This,
4334 UINT index,
4335 LPOLESTR szDllName,
4336 LPOLESTR szProcName);
4337 void __RPC_STUB ICreateTypeInfo_DefineFuncAsDllEntry_Stub(
4338 struct IRpcStubBuffer* This,
4339 struct IRpcChannelBuffer* pRpcChannelBuffer,
4340 PRPC_MESSAGE pRpcMessage,
4341 DWORD* pdwStubPhase);
4342 HRESULT CALLBACK ICreateTypeInfo_SetFuncDocString_Proxy(
4343 ICreateTypeInfo* This,
4344 UINT index,
4345 LPOLESTR szDocString);
4346 void __RPC_STUB ICreateTypeInfo_SetFuncDocString_Stub(
4347 struct IRpcStubBuffer* This,
4348 struct IRpcChannelBuffer* pRpcChannelBuffer,
4349 PRPC_MESSAGE pRpcMessage,
4350 DWORD* pdwStubPhase);
4351 HRESULT CALLBACK ICreateTypeInfo_SetVarDocString_Proxy(
4352 ICreateTypeInfo* This,
4353 UINT index,
4354 LPOLESTR szDocString);
4355 void __RPC_STUB ICreateTypeInfo_SetVarDocString_Stub(
4356 struct IRpcStubBuffer* This,
4357 struct IRpcChannelBuffer* pRpcChannelBuffer,
4358 PRPC_MESSAGE pRpcMessage,
4359 DWORD* pdwStubPhase);
4360 HRESULT CALLBACK ICreateTypeInfo_SetFuncHelpContext_Proxy(
4361 ICreateTypeInfo* This,
4362 UINT index,
4363 DWORD dwHelpContext);
4364 void __RPC_STUB ICreateTypeInfo_SetFuncHelpContext_Stub(
4365 struct IRpcStubBuffer* This,
4366 struct IRpcChannelBuffer* pRpcChannelBuffer,
4367 PRPC_MESSAGE pRpcMessage,
4368 DWORD* pdwStubPhase);
4369 HRESULT CALLBACK ICreateTypeInfo_SetVarHelpContext_Proxy(
4370 ICreateTypeInfo* This,
4371 UINT index,
4372 DWORD dwHelpContext);
4373 void __RPC_STUB ICreateTypeInfo_SetVarHelpContext_Stub(
4374 struct IRpcStubBuffer* This,
4375 struct IRpcChannelBuffer* pRpcChannelBuffer,
4376 PRPC_MESSAGE pRpcMessage,
4377 DWORD* pdwStubPhase);
4378 HRESULT CALLBACK ICreateTypeInfo_SetMops_Proxy(
4379 ICreateTypeInfo* This,
4380 UINT index,
4381 BSTR bstrMops);
4382 void __RPC_STUB ICreateTypeInfo_SetMops_Stub(
4383 struct IRpcStubBuffer* This,
4384 struct IRpcChannelBuffer* pRpcChannelBuffer,
4385 PRPC_MESSAGE pRpcMessage,
4386 DWORD* pdwStubPhase);
4387 HRESULT CALLBACK ICreateTypeInfo_SetTypeIdldesc_Proxy(
4388 ICreateTypeInfo* This,
4389 IDLDESC* pIdlDesc);
4390 void __RPC_STUB ICreateTypeInfo_SetTypeIdldesc_Stub(
4391 struct IRpcStubBuffer* This,
4392 struct IRpcChannelBuffer* pRpcChannelBuffer,
4393 PRPC_MESSAGE pRpcMessage,
4394 DWORD* pdwStubPhase);
4395 HRESULT CALLBACK ICreateTypeInfo_LayOut_Proxy(
4396 ICreateTypeInfo* This);
4397 void __RPC_STUB ICreateTypeInfo_LayOut_Stub(
4398 struct IRpcStubBuffer* This,
4399 struct IRpcChannelBuffer* pRpcChannelBuffer,
4400 PRPC_MESSAGE pRpcMessage,
4401 DWORD* pdwStubPhase);
4403 #endif /* __ICreateTypeInfo_INTERFACE_DEFINED__ */
4405 #ifndef __ICreateTypeInfo2_FWD_DEFINED__
4406 #define __ICreateTypeInfo2_FWD_DEFINED__
4407 typedef struct ICreateTypeInfo2 ICreateTypeInfo2;
4408 #endif
4410 typedef ICreateTypeInfo2 *LPCREATETYPEINFO2;
4412 /*****************************************************************************
4413 * ICreateTypeInfo2 interface
4415 #ifndef __ICreateTypeInfo2_INTERFACE_DEFINED__
4416 #define __ICreateTypeInfo2_INTERFACE_DEFINED__
4418 DEFINE_GUID(IID_ICreateTypeInfo2, 0x0002040e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4419 #if defined(__cplusplus) && !defined(CINTERFACE)
4420 struct ICreateTypeInfo2 : public ICreateTypeInfo
4422 virtual HRESULT STDMETHODCALLTYPE DeleteFuncDesc(
4423 UINT index) = 0;
4425 virtual HRESULT STDMETHODCALLTYPE DeleteFuncDescByMemId(
4426 MEMBERID memid,
4427 INVOKEKIND invKind) = 0;
4429 virtual HRESULT STDMETHODCALLTYPE DeleteVarDesc(
4430 UINT index) = 0;
4432 virtual HRESULT STDMETHODCALLTYPE DeleteVarDescByMemId(
4433 MEMBERID memid) = 0;
4435 virtual HRESULT STDMETHODCALLTYPE DeleteImplType(
4436 UINT index) = 0;
4438 virtual HRESULT STDMETHODCALLTYPE SetCustData(
4439 REFGUID guid,
4440 VARIANT* pVarVal) = 0;
4442 virtual HRESULT STDMETHODCALLTYPE SetFuncCustData(
4443 UINT index,
4444 REFGUID guid,
4445 VARIANT* pVarVal) = 0;
4447 virtual HRESULT STDMETHODCALLTYPE SetParamCustData(
4448 UINT indexFunc,
4449 UINT indexParam,
4450 REFGUID guid,
4451 VARIANT* pVarVal) = 0;
4453 virtual HRESULT STDMETHODCALLTYPE SetVarCustData(
4454 UINT index,
4455 REFGUID guid,
4456 VARIANT* pVarVal) = 0;
4458 virtual HRESULT STDMETHODCALLTYPE SetImplTypeCustData(
4459 UINT index,
4460 REFGUID guid,
4461 VARIANT* pVarVal) = 0;
4463 virtual HRESULT STDMETHODCALLTYPE SetHelpStringContext(
4464 ULONG dwHelpStringContext) = 0;
4466 virtual HRESULT STDMETHODCALLTYPE SetFuncHelpStringContext(
4467 UINT index,
4468 ULONG dwHelpStringContext) = 0;
4470 virtual HRESULT STDMETHODCALLTYPE SetVarHelpStringContext(
4471 UINT index,
4472 ULONG dwHelpStringContext) = 0;
4474 virtual HRESULT STDMETHODCALLTYPE Invalidate(
4475 ) = 0;
4477 virtual HRESULT STDMETHODCALLTYPE SetName(
4478 LPOLESTR szName) = 0;
4481 #else
4482 typedef struct ICreateTypeInfo2Vtbl ICreateTypeInfo2Vtbl;
4483 struct ICreateTypeInfo2 {
4484 const ICreateTypeInfo2Vtbl* lpVtbl;
4486 struct ICreateTypeInfo2Vtbl {
4487 ICOM_MSVTABLE_COMPAT_FIELDS
4489 /*** IUnknown methods ***/
4490 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4491 ICreateTypeInfo2* This,
4492 REFIID riid,
4493 void** ppvObject);
4495 ULONG (STDMETHODCALLTYPE *AddRef)(
4496 ICreateTypeInfo2* This);
4498 ULONG (STDMETHODCALLTYPE *Release)(
4499 ICreateTypeInfo2* This);
4501 /*** ICreateTypeInfo methods ***/
4502 HRESULT (STDMETHODCALLTYPE *SetGuid)(
4503 ICreateTypeInfo2* This,
4504 REFGUID guid);
4506 HRESULT (STDMETHODCALLTYPE *SetTypeFlags)(
4507 ICreateTypeInfo2* This,
4508 UINT uTypeFlags);
4510 HRESULT (STDMETHODCALLTYPE *SetDocString)(
4511 ICreateTypeInfo2* This,
4512 LPOLESTR pStrDoc);
4514 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
4515 ICreateTypeInfo2* This,
4516 DWORD dwHelpContext);
4518 HRESULT (STDMETHODCALLTYPE *SetVersion)(
4519 ICreateTypeInfo2* This,
4520 WORD wMajorVerNum,
4521 WORD wMinorVerNum);
4523 HRESULT (STDMETHODCALLTYPE *AddRefTypeInfo)(
4524 ICreateTypeInfo2* This,
4525 ITypeInfo* pTInfo,
4526 HREFTYPE* phRefType);
4528 HRESULT (STDMETHODCALLTYPE *AddFuncDesc)(
4529 ICreateTypeInfo2* This,
4530 UINT index,
4531 FUNCDESC* pFuncDesc);
4533 HRESULT (STDMETHODCALLTYPE *AddImplType)(
4534 ICreateTypeInfo2* This,
4535 UINT index,
4536 HREFTYPE hRefType);
4538 HRESULT (STDMETHODCALLTYPE *SetImplTypeFlags)(
4539 ICreateTypeInfo2* This,
4540 UINT index,
4541 INT implTypeFlags);
4543 HRESULT (STDMETHODCALLTYPE *SetAlignment)(
4544 ICreateTypeInfo2* This,
4545 WORD cbAlignment);
4547 HRESULT (STDMETHODCALLTYPE *SetSchema)(
4548 ICreateTypeInfo2* This,
4549 LPOLESTR pStrSchema);
4551 HRESULT (STDMETHODCALLTYPE *AddVarDesc)(
4552 ICreateTypeInfo2* This,
4553 UINT index,
4554 VARDESC* pVarDesc);
4556 HRESULT (STDMETHODCALLTYPE *SetFuncAndParamNames)(
4557 ICreateTypeInfo2* This,
4558 UINT index,
4559 LPOLESTR* rgszNames,
4560 UINT cNames);
4562 HRESULT (STDMETHODCALLTYPE *SetVarName)(
4563 ICreateTypeInfo2* This,
4564 UINT index,
4565 LPOLESTR szName);
4567 HRESULT (STDMETHODCALLTYPE *SetTypeDescAlias)(
4568 ICreateTypeInfo2* This,
4569 TYPEDESC* pTDescAlias);
4571 HRESULT (STDMETHODCALLTYPE *DefineFuncAsDllEntry)(
4572 ICreateTypeInfo2* This,
4573 UINT index,
4574 LPOLESTR szDllName,
4575 LPOLESTR szProcName);
4577 HRESULT (STDMETHODCALLTYPE *SetFuncDocString)(
4578 ICreateTypeInfo2* This,
4579 UINT index,
4580 LPOLESTR szDocString);
4582 HRESULT (STDMETHODCALLTYPE *SetVarDocString)(
4583 ICreateTypeInfo2* This,
4584 UINT index,
4585 LPOLESTR szDocString);
4587 HRESULT (STDMETHODCALLTYPE *SetFuncHelpContext)(
4588 ICreateTypeInfo2* This,
4589 UINT index,
4590 DWORD dwHelpContext);
4592 HRESULT (STDMETHODCALLTYPE *SetVarHelpContext)(
4593 ICreateTypeInfo2* This,
4594 UINT index,
4595 DWORD dwHelpContext);
4597 HRESULT (STDMETHODCALLTYPE *SetMops)(
4598 ICreateTypeInfo2* This,
4599 UINT index,
4600 BSTR bstrMops);
4602 HRESULT (STDMETHODCALLTYPE *SetTypeIdldesc)(
4603 ICreateTypeInfo2* This,
4604 IDLDESC* pIdlDesc);
4606 HRESULT (STDMETHODCALLTYPE *LayOut)(
4607 ICreateTypeInfo2* This);
4609 /*** ICreateTypeInfo2 methods ***/
4610 HRESULT (STDMETHODCALLTYPE *DeleteFuncDesc)(
4611 ICreateTypeInfo2* This,
4612 UINT index);
4614 HRESULT (STDMETHODCALLTYPE *DeleteFuncDescByMemId)(
4615 ICreateTypeInfo2* This,
4616 MEMBERID memid,
4617 INVOKEKIND invKind);
4619 HRESULT (STDMETHODCALLTYPE *DeleteVarDesc)(
4620 ICreateTypeInfo2* This,
4621 UINT index);
4623 HRESULT (STDMETHODCALLTYPE *DeleteVarDescByMemId)(
4624 ICreateTypeInfo2* This,
4625 MEMBERID memid);
4627 HRESULT (STDMETHODCALLTYPE *DeleteImplType)(
4628 ICreateTypeInfo2* This,
4629 UINT index);
4631 HRESULT (STDMETHODCALLTYPE *SetCustData)(
4632 ICreateTypeInfo2* This,
4633 REFGUID guid,
4634 VARIANT* pVarVal);
4636 HRESULT (STDMETHODCALLTYPE *SetFuncCustData)(
4637 ICreateTypeInfo2* This,
4638 UINT index,
4639 REFGUID guid,
4640 VARIANT* pVarVal);
4642 HRESULT (STDMETHODCALLTYPE *SetParamCustData)(
4643 ICreateTypeInfo2* This,
4644 UINT indexFunc,
4645 UINT indexParam,
4646 REFGUID guid,
4647 VARIANT* pVarVal);
4649 HRESULT (STDMETHODCALLTYPE *SetVarCustData)(
4650 ICreateTypeInfo2* This,
4651 UINT index,
4652 REFGUID guid,
4653 VARIANT* pVarVal);
4655 HRESULT (STDMETHODCALLTYPE *SetImplTypeCustData)(
4656 ICreateTypeInfo2* This,
4657 UINT index,
4658 REFGUID guid,
4659 VARIANT* pVarVal);
4661 HRESULT (STDMETHODCALLTYPE *SetHelpStringContext)(
4662 ICreateTypeInfo2* This,
4663 ULONG dwHelpStringContext);
4665 HRESULT (STDMETHODCALLTYPE *SetFuncHelpStringContext)(
4666 ICreateTypeInfo2* This,
4667 UINT index,
4668 ULONG dwHelpStringContext);
4670 HRESULT (STDMETHODCALLTYPE *SetVarHelpStringContext)(
4671 ICreateTypeInfo2* This,
4672 UINT index,
4673 ULONG dwHelpStringContext);
4675 HRESULT (STDMETHODCALLTYPE *Invalidate)(
4676 ICreateTypeInfo2* This);
4678 HRESULT (STDMETHODCALLTYPE *SetName)(
4679 ICreateTypeInfo2* This,
4680 LPOLESTR szName);
4684 /*** IUnknown methods ***/
4685 #define ICreateTypeInfo2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4686 #define ICreateTypeInfo2_AddRef(p) (p)->lpVtbl->AddRef(p)
4687 #define ICreateTypeInfo2_Release(p) (p)->lpVtbl->Release(p)
4688 /*** ICreateTypeInfo methods ***/
4689 #define ICreateTypeInfo2_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
4690 #define ICreateTypeInfo2_SetTypeFlags(p,a) (p)->lpVtbl->SetTypeFlags(p,a)
4691 #define ICreateTypeInfo2_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
4692 #define ICreateTypeInfo2_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
4693 #define ICreateTypeInfo2_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
4694 #define ICreateTypeInfo2_AddRefTypeInfo(p,a,b) (p)->lpVtbl->AddRefTypeInfo(p,a,b)
4695 #define ICreateTypeInfo2_AddFuncDesc(p,a,b) (p)->lpVtbl->AddFuncDesc(p,a,b)
4696 #define ICreateTypeInfo2_AddImplType(p,a,b) (p)->lpVtbl->AddImplType(p,a,b)
4697 #define ICreateTypeInfo2_SetImplTypeFlags(p,a,b) (p)->lpVtbl->SetImplTypeFlags(p,a,b)
4698 #define ICreateTypeInfo2_SetAlignment(p,a) (p)->lpVtbl->SetAlignment(p,a)
4699 #define ICreateTypeInfo2_SetSchema(p,a) (p)->lpVtbl->SetSchema(p,a)
4700 #define ICreateTypeInfo2_AddVarDesc(p,a,b) (p)->lpVtbl->AddVarDesc(p,a,b)
4701 #define ICreateTypeInfo2_SetFuncAndParamNames(p,a,b,c) (p)->lpVtbl->SetFuncAndParamNames(p,a,b,c)
4702 #define ICreateTypeInfo2_SetVarName(p,a,b) (p)->lpVtbl->SetVarName(p,a,b)
4703 #define ICreateTypeInfo2_SetTypeDescAlias(p,a) (p)->lpVtbl->SetTypeDescAlias(p,a)
4704 #define ICreateTypeInfo2_DefineFuncAsDllEntry(p,a,b,c) (p)->lpVtbl->DefineFuncAsDllEntry(p,a,b,c)
4705 #define ICreateTypeInfo2_SetFuncDocString(p,a,b) (p)->lpVtbl->SetFuncDocString(p,a,b)
4706 #define ICreateTypeInfo2_SetVarDocString(p,a,b) (p)->lpVtbl->SetVarDocString(p,a,b)
4707 #define ICreateTypeInfo2_SetFuncHelpContext(p,a,b) (p)->lpVtbl->SetFuncHelpContext(p,a,b)
4708 #define ICreateTypeInfo2_SetVarHelpContext(p,a,b) (p)->lpVtbl->SetVarHelpContext(p,a,b)
4709 #define ICreateTypeInfo2_SetMops(p,a,b) (p)->lpVtbl->SetMops(p,a,b)
4710 #define ICreateTypeInfo2_SetTypeIdldesc(p,a) (p)->lpVtbl->SetTypeIdldesc(p,a)
4711 #define ICreateTypeInfo2_LayOut(p) (p)->lpVtbl->LayOut(p)
4712 /*** ICreateTypeInfo2 methods ***/
4713 #define ICreateTypeInfo2_DeleteFuncDesc(p,a) (p)->lpVtbl->DeleteFuncDesc(p,a)
4714 #define ICreateTypeInfo2_DeleteFuncDescByMemId(p,a,b) (p)->lpVtbl->DeleteFuncDescByMemId(p,a,b)
4715 #define ICreateTypeInfo2_DeleteVarDesc(p,a) (p)->lpVtbl->DeleteVarDesc(p,a)
4716 #define ICreateTypeInfo2_DeleteVarDescByMemId(p,a) (p)->lpVtbl->DeleteVarDescByMemId(p,a)
4717 #define ICreateTypeInfo2_DeleteImplType(p,a) (p)->lpVtbl->DeleteImplType(p,a)
4718 #define ICreateTypeInfo2_SetCustData(p,a,b) (p)->lpVtbl->SetCustData(p,a,b)
4719 #define ICreateTypeInfo2_SetFuncCustData(p,a,b,c) (p)->lpVtbl->SetFuncCustData(p,a,b,c)
4720 #define ICreateTypeInfo2_SetParamCustData(p,a,b,c,d) (p)->lpVtbl->SetParamCustData(p,a,b,c,d)
4721 #define ICreateTypeInfo2_SetVarCustData(p,a,b,c) (p)->lpVtbl->SetVarCustData(p,a,b,c)
4722 #define ICreateTypeInfo2_SetImplTypeCustData(p,a,b,c) (p)->lpVtbl->SetImplTypeCustData(p,a,b,c)
4723 #define ICreateTypeInfo2_SetHelpStringContext(p,a) (p)->lpVtbl->SetHelpStringContext(p,a)
4724 #define ICreateTypeInfo2_SetFuncHelpStringContext(p,a,b) (p)->lpVtbl->SetFuncHelpStringContext(p,a,b)
4725 #define ICreateTypeInfo2_SetVarHelpStringContext(p,a,b) (p)->lpVtbl->SetVarHelpStringContext(p,a,b)
4726 #define ICreateTypeInfo2_Invalidate(p) (p)->lpVtbl->Invalidate(p)
4727 #define ICreateTypeInfo2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
4729 #endif
4731 #define ICreateTypeInfo2_METHODS \
4732 ICOM_MSVTABLE_COMPAT_FIELDS \
4733 /*** IUnknown methods ***/ \
4734 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4735 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4736 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4737 /*** ICreateTypeInfo methods ***/ \
4738 STDMETHOD_(HRESULT,SetGuid)(THIS_ REFGUID guid) PURE; \
4739 STDMETHOD_(HRESULT,SetTypeFlags)(THIS_ UINT uTypeFlags) PURE; \
4740 STDMETHOD_(HRESULT,SetDocString)(THIS_ LPOLESTR pStrDoc) PURE; \
4741 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE; \
4742 STDMETHOD_(HRESULT,SetVersion)(THIS_ WORD wMajorVerNum, WORD wMinorVerNum) PURE; \
4743 STDMETHOD_(HRESULT,AddRefTypeInfo)(THIS_ ITypeInfo* pTInfo, HREFTYPE* phRefType) PURE; \
4744 STDMETHOD_(HRESULT,AddFuncDesc)(THIS_ UINT index, FUNCDESC* pFuncDesc) PURE; \
4745 STDMETHOD_(HRESULT,AddImplType)(THIS_ UINT index, HREFTYPE hRefType) PURE; \
4746 STDMETHOD_(HRESULT,SetImplTypeFlags)(THIS_ UINT index, INT implTypeFlags) PURE; \
4747 STDMETHOD_(HRESULT,SetAlignment)(THIS_ WORD cbAlignment) PURE; \
4748 STDMETHOD_(HRESULT,SetSchema)(THIS_ LPOLESTR pStrSchema) PURE; \
4749 STDMETHOD_(HRESULT,AddVarDesc)(THIS_ UINT index, VARDESC* pVarDesc) PURE; \
4750 STDMETHOD_(HRESULT,SetFuncAndParamNames)(THIS_ UINT index, LPOLESTR* rgszNames, UINT cNames) PURE; \
4751 STDMETHOD_(HRESULT,SetVarName)(THIS_ UINT index, LPOLESTR szName) PURE; \
4752 STDMETHOD_(HRESULT,SetTypeDescAlias)(THIS_ TYPEDESC* pTDescAlias) PURE; \
4753 STDMETHOD_(HRESULT,DefineFuncAsDllEntry)(THIS_ UINT index, LPOLESTR szDllName, LPOLESTR szProcName) PURE; \
4754 STDMETHOD_(HRESULT,SetFuncDocString)(THIS_ UINT index, LPOLESTR szDocString) PURE; \
4755 STDMETHOD_(HRESULT,SetVarDocString)(THIS_ UINT index, LPOLESTR szDocString) PURE; \
4756 STDMETHOD_(HRESULT,SetFuncHelpContext)(THIS_ UINT index, DWORD dwHelpContext) PURE; \
4757 STDMETHOD_(HRESULT,SetVarHelpContext)(THIS_ UINT index, DWORD dwHelpContext) PURE; \
4758 STDMETHOD_(HRESULT,SetMops)(THIS_ UINT index, BSTR bstrMops) PURE; \
4759 STDMETHOD_(HRESULT,SetTypeIdldesc)(THIS_ IDLDESC* pIdlDesc) PURE; \
4760 STDMETHOD_(HRESULT,LayOut)(THIS) PURE; \
4761 /*** ICreateTypeInfo2 methods ***/ \
4762 STDMETHOD_(HRESULT,DeleteFuncDesc)(THIS_ UINT index) PURE; \
4763 STDMETHOD_(HRESULT,DeleteFuncDescByMemId)(THIS_ MEMBERID memid, INVOKEKIND invKind) PURE; \
4764 STDMETHOD_(HRESULT,DeleteVarDesc)(THIS_ UINT index) PURE; \
4765 STDMETHOD_(HRESULT,DeleteVarDescByMemId)(THIS_ MEMBERID memid) PURE; \
4766 STDMETHOD_(HRESULT,DeleteImplType)(THIS_ UINT index) PURE; \
4767 STDMETHOD_(HRESULT,SetCustData)(THIS_ REFGUID guid, VARIANT* pVarVal) PURE; \
4768 STDMETHOD_(HRESULT,SetFuncCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
4769 STDMETHOD_(HRESULT,SetParamCustData)(THIS_ UINT indexFunc, UINT indexParam, REFGUID guid, VARIANT* pVarVal) PURE; \
4770 STDMETHOD_(HRESULT,SetVarCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
4771 STDMETHOD_(HRESULT,SetImplTypeCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
4772 STDMETHOD_(HRESULT,SetHelpStringContext)(THIS_ ULONG dwHelpStringContext) PURE; \
4773 STDMETHOD_(HRESULT,SetFuncHelpStringContext)(THIS_ UINT index, ULONG dwHelpStringContext) PURE; \
4774 STDMETHOD_(HRESULT,SetVarHelpStringContext)(THIS_ UINT index, ULONG dwHelpStringContext) PURE; \
4775 STDMETHOD_(HRESULT,Invalidate)(THIS) PURE; \
4776 STDMETHOD_(HRESULT,SetName)(THIS_ LPOLESTR szName) PURE;
4778 HRESULT CALLBACK ICreateTypeInfo2_DeleteFuncDesc_Proxy(
4779 ICreateTypeInfo2* This,
4780 UINT index);
4781 void __RPC_STUB ICreateTypeInfo2_DeleteFuncDesc_Stub(
4782 struct IRpcStubBuffer* This,
4783 struct IRpcChannelBuffer* pRpcChannelBuffer,
4784 PRPC_MESSAGE pRpcMessage,
4785 DWORD* pdwStubPhase);
4786 HRESULT CALLBACK ICreateTypeInfo2_DeleteFuncDescByMemId_Proxy(
4787 ICreateTypeInfo2* This,
4788 MEMBERID memid,
4789 INVOKEKIND invKind);
4790 void __RPC_STUB ICreateTypeInfo2_DeleteFuncDescByMemId_Stub(
4791 struct IRpcStubBuffer* This,
4792 struct IRpcChannelBuffer* pRpcChannelBuffer,
4793 PRPC_MESSAGE pRpcMessage,
4794 DWORD* pdwStubPhase);
4795 HRESULT CALLBACK ICreateTypeInfo2_DeleteVarDesc_Proxy(
4796 ICreateTypeInfo2* This,
4797 UINT index);
4798 void __RPC_STUB ICreateTypeInfo2_DeleteVarDesc_Stub(
4799 struct IRpcStubBuffer* This,
4800 struct IRpcChannelBuffer* pRpcChannelBuffer,
4801 PRPC_MESSAGE pRpcMessage,
4802 DWORD* pdwStubPhase);
4803 HRESULT CALLBACK ICreateTypeInfo2_DeleteVarDescByMemId_Proxy(
4804 ICreateTypeInfo2* This,
4805 MEMBERID memid);
4806 void __RPC_STUB ICreateTypeInfo2_DeleteVarDescByMemId_Stub(
4807 struct IRpcStubBuffer* This,
4808 struct IRpcChannelBuffer* pRpcChannelBuffer,
4809 PRPC_MESSAGE pRpcMessage,
4810 DWORD* pdwStubPhase);
4811 HRESULT CALLBACK ICreateTypeInfo2_DeleteImplType_Proxy(
4812 ICreateTypeInfo2* This,
4813 UINT index);
4814 void __RPC_STUB ICreateTypeInfo2_DeleteImplType_Stub(
4815 struct IRpcStubBuffer* This,
4816 struct IRpcChannelBuffer* pRpcChannelBuffer,
4817 PRPC_MESSAGE pRpcMessage,
4818 DWORD* pdwStubPhase);
4819 HRESULT CALLBACK ICreateTypeInfo2_SetCustData_Proxy(
4820 ICreateTypeInfo2* This,
4821 REFGUID guid,
4822 VARIANT* pVarVal);
4823 void __RPC_STUB ICreateTypeInfo2_SetCustData_Stub(
4824 struct IRpcStubBuffer* This,
4825 struct IRpcChannelBuffer* pRpcChannelBuffer,
4826 PRPC_MESSAGE pRpcMessage,
4827 DWORD* pdwStubPhase);
4828 HRESULT CALLBACK ICreateTypeInfo2_SetFuncCustData_Proxy(
4829 ICreateTypeInfo2* This,
4830 UINT index,
4831 REFGUID guid,
4832 VARIANT* pVarVal);
4833 void __RPC_STUB ICreateTypeInfo2_SetFuncCustData_Stub(
4834 struct IRpcStubBuffer* This,
4835 struct IRpcChannelBuffer* pRpcChannelBuffer,
4836 PRPC_MESSAGE pRpcMessage,
4837 DWORD* pdwStubPhase);
4838 HRESULT CALLBACK ICreateTypeInfo2_SetParamCustData_Proxy(
4839 ICreateTypeInfo2* This,
4840 UINT indexFunc,
4841 UINT indexParam,
4842 REFGUID guid,
4843 VARIANT* pVarVal);
4844 void __RPC_STUB ICreateTypeInfo2_SetParamCustData_Stub(
4845 struct IRpcStubBuffer* This,
4846 struct IRpcChannelBuffer* pRpcChannelBuffer,
4847 PRPC_MESSAGE pRpcMessage,
4848 DWORD* pdwStubPhase);
4849 HRESULT CALLBACK ICreateTypeInfo2_SetVarCustData_Proxy(
4850 ICreateTypeInfo2* This,
4851 UINT index,
4852 REFGUID guid,
4853 VARIANT* pVarVal);
4854 void __RPC_STUB ICreateTypeInfo2_SetVarCustData_Stub(
4855 struct IRpcStubBuffer* This,
4856 struct IRpcChannelBuffer* pRpcChannelBuffer,
4857 PRPC_MESSAGE pRpcMessage,
4858 DWORD* pdwStubPhase);
4859 HRESULT CALLBACK ICreateTypeInfo2_SetImplTypeCustData_Proxy(
4860 ICreateTypeInfo2* This,
4861 UINT index,
4862 REFGUID guid,
4863 VARIANT* pVarVal);
4864 void __RPC_STUB ICreateTypeInfo2_SetImplTypeCustData_Stub(
4865 struct IRpcStubBuffer* This,
4866 struct IRpcChannelBuffer* pRpcChannelBuffer,
4867 PRPC_MESSAGE pRpcMessage,
4868 DWORD* pdwStubPhase);
4869 HRESULT CALLBACK ICreateTypeInfo2_SetHelpStringContext_Proxy(
4870 ICreateTypeInfo2* This,
4871 ULONG dwHelpStringContext);
4872 void __RPC_STUB ICreateTypeInfo2_SetHelpStringContext_Stub(
4873 struct IRpcStubBuffer* This,
4874 struct IRpcChannelBuffer* pRpcChannelBuffer,
4875 PRPC_MESSAGE pRpcMessage,
4876 DWORD* pdwStubPhase);
4877 HRESULT CALLBACK ICreateTypeInfo2_SetFuncHelpStringContext_Proxy(
4878 ICreateTypeInfo2* This,
4879 UINT index,
4880 ULONG dwHelpStringContext);
4881 void __RPC_STUB ICreateTypeInfo2_SetFuncHelpStringContext_Stub(
4882 struct IRpcStubBuffer* This,
4883 struct IRpcChannelBuffer* pRpcChannelBuffer,
4884 PRPC_MESSAGE pRpcMessage,
4885 DWORD* pdwStubPhase);
4886 HRESULT CALLBACK ICreateTypeInfo2_SetVarHelpStringContext_Proxy(
4887 ICreateTypeInfo2* This,
4888 UINT index,
4889 ULONG dwHelpStringContext);
4890 void __RPC_STUB ICreateTypeInfo2_SetVarHelpStringContext_Stub(
4891 struct IRpcStubBuffer* This,
4892 struct IRpcChannelBuffer* pRpcChannelBuffer,
4893 PRPC_MESSAGE pRpcMessage,
4894 DWORD* pdwStubPhase);
4895 HRESULT CALLBACK ICreateTypeInfo2_Invalidate_Proxy(
4896 ICreateTypeInfo2* This);
4897 void __RPC_STUB ICreateTypeInfo2_Invalidate_Stub(
4898 struct IRpcStubBuffer* This,
4899 struct IRpcChannelBuffer* pRpcChannelBuffer,
4900 PRPC_MESSAGE pRpcMessage,
4901 DWORD* pdwStubPhase);
4902 HRESULT CALLBACK ICreateTypeInfo2_SetName_Proxy(
4903 ICreateTypeInfo2* This,
4904 LPOLESTR szName);
4905 void __RPC_STUB ICreateTypeInfo2_SetName_Stub(
4906 struct IRpcStubBuffer* This,
4907 struct IRpcChannelBuffer* pRpcChannelBuffer,
4908 PRPC_MESSAGE pRpcMessage,
4909 DWORD* pdwStubPhase);
4911 #endif /* __ICreateTypeInfo2_INTERFACE_DEFINED__ */
4913 #ifndef __ICreateTypeLib_FWD_DEFINED__
4914 #define __ICreateTypeLib_FWD_DEFINED__
4915 typedef struct ICreateTypeLib ICreateTypeLib;
4916 #endif
4918 typedef ICreateTypeLib *LPCREATETYPELIB;
4920 /*****************************************************************************
4921 * ICreateTypeLib interface
4923 #ifndef __ICreateTypeLib_INTERFACE_DEFINED__
4924 #define __ICreateTypeLib_INTERFACE_DEFINED__
4926 DEFINE_GUID(IID_ICreateTypeLib, 0x00020406, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4927 #if defined(__cplusplus) && !defined(CINTERFACE)
4928 struct ICreateTypeLib : public IUnknown
4930 virtual HRESULT STDMETHODCALLTYPE CreateTypeInfo(
4931 LPOLESTR szName,
4932 TYPEKIND tkind,
4933 ICreateTypeInfo** ppCTInfo) = 0;
4935 virtual HRESULT STDMETHODCALLTYPE SetName(
4936 LPOLESTR szName) = 0;
4938 virtual HRESULT STDMETHODCALLTYPE SetVersion(
4939 WORD wMajorVerNum,
4940 WORD wMinorVerNum) = 0;
4942 virtual HRESULT STDMETHODCALLTYPE SetGuid(
4943 REFGUID guid) = 0;
4945 virtual HRESULT STDMETHODCALLTYPE SetDocString(
4946 LPOLESTR szDoc) = 0;
4948 virtual HRESULT STDMETHODCALLTYPE SetHelpFileName(
4949 LPOLESTR szHelpFileName) = 0;
4951 virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
4952 DWORD dwHelpContext) = 0;
4954 virtual HRESULT STDMETHODCALLTYPE SetLcid(
4955 LCID lcid) = 0;
4957 virtual HRESULT STDMETHODCALLTYPE SetLibFlags(
4958 UINT uLibFlags) = 0;
4960 virtual HRESULT STDMETHODCALLTYPE SaveAllChanges(
4961 ) = 0;
4964 #else
4965 typedef struct ICreateTypeLibVtbl ICreateTypeLibVtbl;
4966 struct ICreateTypeLib {
4967 const ICreateTypeLibVtbl* lpVtbl;
4969 struct ICreateTypeLibVtbl {
4970 ICOM_MSVTABLE_COMPAT_FIELDS
4972 /*** IUnknown methods ***/
4973 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4974 ICreateTypeLib* This,
4975 REFIID riid,
4976 void** ppvObject);
4978 ULONG (STDMETHODCALLTYPE *AddRef)(
4979 ICreateTypeLib* This);
4981 ULONG (STDMETHODCALLTYPE *Release)(
4982 ICreateTypeLib* This);
4984 /*** ICreateTypeLib methods ***/
4985 HRESULT (STDMETHODCALLTYPE *CreateTypeInfo)(
4986 ICreateTypeLib* This,
4987 LPOLESTR szName,
4988 TYPEKIND tkind,
4989 ICreateTypeInfo** ppCTInfo);
4991 HRESULT (STDMETHODCALLTYPE *SetName)(
4992 ICreateTypeLib* This,
4993 LPOLESTR szName);
4995 HRESULT (STDMETHODCALLTYPE *SetVersion)(
4996 ICreateTypeLib* This,
4997 WORD wMajorVerNum,
4998 WORD wMinorVerNum);
5000 HRESULT (STDMETHODCALLTYPE *SetGuid)(
5001 ICreateTypeLib* This,
5002 REFGUID guid);
5004 HRESULT (STDMETHODCALLTYPE *SetDocString)(
5005 ICreateTypeLib* This,
5006 LPOLESTR szDoc);
5008 HRESULT (STDMETHODCALLTYPE *SetHelpFileName)(
5009 ICreateTypeLib* This,
5010 LPOLESTR szHelpFileName);
5012 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
5013 ICreateTypeLib* This,
5014 DWORD dwHelpContext);
5016 HRESULT (STDMETHODCALLTYPE *SetLcid)(
5017 ICreateTypeLib* This,
5018 LCID lcid);
5020 HRESULT (STDMETHODCALLTYPE *SetLibFlags)(
5021 ICreateTypeLib* This,
5022 UINT uLibFlags);
5024 HRESULT (STDMETHODCALLTYPE *SaveAllChanges)(
5025 ICreateTypeLib* This);
5029 /*** IUnknown methods ***/
5030 #define ICreateTypeLib_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5031 #define ICreateTypeLib_AddRef(p) (p)->lpVtbl->AddRef(p)
5032 #define ICreateTypeLib_Release(p) (p)->lpVtbl->Release(p)
5033 /*** ICreateTypeLib methods ***/
5034 #define ICreateTypeLib_CreateTypeInfo(p,a,b,c) (p)->lpVtbl->CreateTypeInfo(p,a,b,c)
5035 #define ICreateTypeLib_SetName(p,a) (p)->lpVtbl->SetName(p,a)
5036 #define ICreateTypeLib_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
5037 #define ICreateTypeLib_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
5038 #define ICreateTypeLib_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
5039 #define ICreateTypeLib_SetHelpFileName(p,a) (p)->lpVtbl->SetHelpFileName(p,a)
5040 #define ICreateTypeLib_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
5041 #define ICreateTypeLib_SetLcid(p,a) (p)->lpVtbl->SetLcid(p,a)
5042 #define ICreateTypeLib_SetLibFlags(p,a) (p)->lpVtbl->SetLibFlags(p,a)
5043 #define ICreateTypeLib_SaveAllChanges(p) (p)->lpVtbl->SaveAllChanges(p)
5045 #endif
5047 #define ICreateTypeLib_METHODS \
5048 ICOM_MSVTABLE_COMPAT_FIELDS \
5049 /*** IUnknown methods ***/ \
5050 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5051 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5052 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5053 /*** ICreateTypeLib methods ***/ \
5054 STDMETHOD_(HRESULT,CreateTypeInfo)(THIS_ LPOLESTR szName, TYPEKIND tkind, ICreateTypeInfo** ppCTInfo) PURE; \
5055 STDMETHOD_(HRESULT,SetName)(THIS_ LPOLESTR szName) PURE; \
5056 STDMETHOD_(HRESULT,SetVersion)(THIS_ WORD wMajorVerNum, WORD wMinorVerNum) PURE; \
5057 STDMETHOD_(HRESULT,SetGuid)(THIS_ REFGUID guid) PURE; \
5058 STDMETHOD_(HRESULT,SetDocString)(THIS_ LPOLESTR szDoc) PURE; \
5059 STDMETHOD_(HRESULT,SetHelpFileName)(THIS_ LPOLESTR szHelpFileName) PURE; \
5060 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE; \
5061 STDMETHOD_(HRESULT,SetLcid)(THIS_ LCID lcid) PURE; \
5062 STDMETHOD_(HRESULT,SetLibFlags)(THIS_ UINT uLibFlags) PURE; \
5063 STDMETHOD_(HRESULT,SaveAllChanges)(THIS) PURE;
5065 HRESULT CALLBACK ICreateTypeLib_CreateTypeInfo_Proxy(
5066 ICreateTypeLib* This,
5067 LPOLESTR szName,
5068 TYPEKIND tkind,
5069 ICreateTypeInfo** ppCTInfo);
5070 void __RPC_STUB ICreateTypeLib_CreateTypeInfo_Stub(
5071 struct IRpcStubBuffer* This,
5072 struct IRpcChannelBuffer* pRpcChannelBuffer,
5073 PRPC_MESSAGE pRpcMessage,
5074 DWORD* pdwStubPhase);
5075 HRESULT CALLBACK ICreateTypeLib_SetName_Proxy(
5076 ICreateTypeLib* This,
5077 LPOLESTR szName);
5078 void __RPC_STUB ICreateTypeLib_SetName_Stub(
5079 struct IRpcStubBuffer* This,
5080 struct IRpcChannelBuffer* pRpcChannelBuffer,
5081 PRPC_MESSAGE pRpcMessage,
5082 DWORD* pdwStubPhase);
5083 HRESULT CALLBACK ICreateTypeLib_SetVersion_Proxy(
5084 ICreateTypeLib* This,
5085 WORD wMajorVerNum,
5086 WORD wMinorVerNum);
5087 void __RPC_STUB ICreateTypeLib_SetVersion_Stub(
5088 struct IRpcStubBuffer* This,
5089 struct IRpcChannelBuffer* pRpcChannelBuffer,
5090 PRPC_MESSAGE pRpcMessage,
5091 DWORD* pdwStubPhase);
5092 HRESULT CALLBACK ICreateTypeLib_SetGuid_Proxy(
5093 ICreateTypeLib* This,
5094 REFGUID guid);
5095 void __RPC_STUB ICreateTypeLib_SetGuid_Stub(
5096 struct IRpcStubBuffer* This,
5097 struct IRpcChannelBuffer* pRpcChannelBuffer,
5098 PRPC_MESSAGE pRpcMessage,
5099 DWORD* pdwStubPhase);
5100 HRESULT CALLBACK ICreateTypeLib_SetDocString_Proxy(
5101 ICreateTypeLib* This,
5102 LPOLESTR szDoc);
5103 void __RPC_STUB ICreateTypeLib_SetDocString_Stub(
5104 struct IRpcStubBuffer* This,
5105 struct IRpcChannelBuffer* pRpcChannelBuffer,
5106 PRPC_MESSAGE pRpcMessage,
5107 DWORD* pdwStubPhase);
5108 HRESULT CALLBACK ICreateTypeLib_SetHelpFileName_Proxy(
5109 ICreateTypeLib* This,
5110 LPOLESTR szHelpFileName);
5111 void __RPC_STUB ICreateTypeLib_SetHelpFileName_Stub(
5112 struct IRpcStubBuffer* This,
5113 struct IRpcChannelBuffer* pRpcChannelBuffer,
5114 PRPC_MESSAGE pRpcMessage,
5115 DWORD* pdwStubPhase);
5116 HRESULT CALLBACK ICreateTypeLib_SetHelpContext_Proxy(
5117 ICreateTypeLib* This,
5118 DWORD dwHelpContext);
5119 void __RPC_STUB ICreateTypeLib_SetHelpContext_Stub(
5120 struct IRpcStubBuffer* This,
5121 struct IRpcChannelBuffer* pRpcChannelBuffer,
5122 PRPC_MESSAGE pRpcMessage,
5123 DWORD* pdwStubPhase);
5124 HRESULT CALLBACK ICreateTypeLib_SetLcid_Proxy(
5125 ICreateTypeLib* This,
5126 LCID lcid);
5127 void __RPC_STUB ICreateTypeLib_SetLcid_Stub(
5128 struct IRpcStubBuffer* This,
5129 struct IRpcChannelBuffer* pRpcChannelBuffer,
5130 PRPC_MESSAGE pRpcMessage,
5131 DWORD* pdwStubPhase);
5132 HRESULT CALLBACK ICreateTypeLib_SetLibFlags_Proxy(
5133 ICreateTypeLib* This,
5134 UINT uLibFlags);
5135 void __RPC_STUB ICreateTypeLib_SetLibFlags_Stub(
5136 struct IRpcStubBuffer* This,
5137 struct IRpcChannelBuffer* pRpcChannelBuffer,
5138 PRPC_MESSAGE pRpcMessage,
5139 DWORD* pdwStubPhase);
5140 HRESULT CALLBACK ICreateTypeLib_SaveAllChanges_Proxy(
5141 ICreateTypeLib* This);
5142 void __RPC_STUB ICreateTypeLib_SaveAllChanges_Stub(
5143 struct IRpcStubBuffer* This,
5144 struct IRpcChannelBuffer* pRpcChannelBuffer,
5145 PRPC_MESSAGE pRpcMessage,
5146 DWORD* pdwStubPhase);
5148 #endif /* __ICreateTypeLib_INTERFACE_DEFINED__ */
5150 #ifndef __ICreateTypeLib2_FWD_DEFINED__
5151 #define __ICreateTypeLib2_FWD_DEFINED__
5152 typedef struct ICreateTypeLib2 ICreateTypeLib2;
5153 #endif
5155 typedef ICreateTypeLib2 *LPCREATETYPELIB2;
5157 /*****************************************************************************
5158 * ICreateTypeLib2 interface
5160 #ifndef __ICreateTypeLib2_INTERFACE_DEFINED__
5161 #define __ICreateTypeLib2_INTERFACE_DEFINED__
5163 DEFINE_GUID(IID_ICreateTypeLib2, 0x0002040f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5164 #if defined(__cplusplus) && !defined(CINTERFACE)
5165 struct ICreateTypeLib2 : public ICreateTypeLib
5167 virtual HRESULT STDMETHODCALLTYPE DeleteTypeInfo(
5168 LPOLESTR szName) = 0;
5170 virtual HRESULT STDMETHODCALLTYPE SetCustData(
5171 REFGUID guid,
5172 VARIANT* pVarVal) = 0;
5174 virtual HRESULT STDMETHODCALLTYPE SetHelpStringContext(
5175 ULONG dwHelpStringContext) = 0;
5177 virtual HRESULT STDMETHODCALLTYPE SetHelpStringDll(
5178 LPOLESTR szFileName) = 0;
5181 #else
5182 typedef struct ICreateTypeLib2Vtbl ICreateTypeLib2Vtbl;
5183 struct ICreateTypeLib2 {
5184 const ICreateTypeLib2Vtbl* lpVtbl;
5186 struct ICreateTypeLib2Vtbl {
5187 ICOM_MSVTABLE_COMPAT_FIELDS
5189 /*** IUnknown methods ***/
5190 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5191 ICreateTypeLib2* This,
5192 REFIID riid,
5193 void** ppvObject);
5195 ULONG (STDMETHODCALLTYPE *AddRef)(
5196 ICreateTypeLib2* This);
5198 ULONG (STDMETHODCALLTYPE *Release)(
5199 ICreateTypeLib2* This);
5201 /*** ICreateTypeLib methods ***/
5202 HRESULT (STDMETHODCALLTYPE *CreateTypeInfo)(
5203 ICreateTypeLib2* This,
5204 LPOLESTR szName,
5205 TYPEKIND tkind,
5206 ICreateTypeInfo** ppCTInfo);
5208 HRESULT (STDMETHODCALLTYPE *SetName)(
5209 ICreateTypeLib2* This,
5210 LPOLESTR szName);
5212 HRESULT (STDMETHODCALLTYPE *SetVersion)(
5213 ICreateTypeLib2* This,
5214 WORD wMajorVerNum,
5215 WORD wMinorVerNum);
5217 HRESULT (STDMETHODCALLTYPE *SetGuid)(
5218 ICreateTypeLib2* This,
5219 REFGUID guid);
5221 HRESULT (STDMETHODCALLTYPE *SetDocString)(
5222 ICreateTypeLib2* This,
5223 LPOLESTR szDoc);
5225 HRESULT (STDMETHODCALLTYPE *SetHelpFileName)(
5226 ICreateTypeLib2* This,
5227 LPOLESTR szHelpFileName);
5229 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
5230 ICreateTypeLib2* This,
5231 DWORD dwHelpContext);
5233 HRESULT (STDMETHODCALLTYPE *SetLcid)(
5234 ICreateTypeLib2* This,
5235 LCID lcid);
5237 HRESULT (STDMETHODCALLTYPE *SetLibFlags)(
5238 ICreateTypeLib2* This,
5239 UINT uLibFlags);
5241 HRESULT (STDMETHODCALLTYPE *SaveAllChanges)(
5242 ICreateTypeLib2* This);
5244 /*** ICreateTypeLib2 methods ***/
5245 HRESULT (STDMETHODCALLTYPE *DeleteTypeInfo)(
5246 ICreateTypeLib2* This,
5247 LPOLESTR szName);
5249 HRESULT (STDMETHODCALLTYPE *SetCustData)(
5250 ICreateTypeLib2* This,
5251 REFGUID guid,
5252 VARIANT* pVarVal);
5254 HRESULT (STDMETHODCALLTYPE *SetHelpStringContext)(
5255 ICreateTypeLib2* This,
5256 ULONG dwHelpStringContext);
5258 HRESULT (STDMETHODCALLTYPE *SetHelpStringDll)(
5259 ICreateTypeLib2* This,
5260 LPOLESTR szFileName);
5264 /*** IUnknown methods ***/
5265 #define ICreateTypeLib2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5266 #define ICreateTypeLib2_AddRef(p) (p)->lpVtbl->AddRef(p)
5267 #define ICreateTypeLib2_Release(p) (p)->lpVtbl->Release(p)
5268 /*** ICreateTypeLib methods ***/
5269 #define ICreateTypeLib2_CreateTypeInfo(p,a,b,c) (p)->lpVtbl->CreateTypeInfo(p,a,b,c)
5270 #define ICreateTypeLib2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
5271 #define ICreateTypeLib2_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
5272 #define ICreateTypeLib2_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
5273 #define ICreateTypeLib2_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
5274 #define ICreateTypeLib2_SetHelpFileName(p,a) (p)->lpVtbl->SetHelpFileName(p,a)
5275 #define ICreateTypeLib2_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
5276 #define ICreateTypeLib2_SetLcid(p,a) (p)->lpVtbl->SetLcid(p,a)
5277 #define ICreateTypeLib2_SetLibFlags(p,a) (p)->lpVtbl->SetLibFlags(p,a)
5278 #define ICreateTypeLib2_SaveAllChanges(p) (p)->lpVtbl->SaveAllChanges(p)
5279 /*** ICreateTypeLib2 methods ***/
5280 #define ICreateTypeLib2_DeleteTypeInfo(p,a) (p)->lpVtbl->DeleteTypeInfo(p,a)
5281 #define ICreateTypeLib2_SetCustData(p,a,b) (p)->lpVtbl->SetCustData(p,a,b)
5282 #define ICreateTypeLib2_SetHelpStringContext(p,a) (p)->lpVtbl->SetHelpStringContext(p,a)
5283 #define ICreateTypeLib2_SetHelpStringDll(p,a) (p)->lpVtbl->SetHelpStringDll(p,a)
5285 #endif
5287 #define ICreateTypeLib2_METHODS \
5288 ICOM_MSVTABLE_COMPAT_FIELDS \
5289 /*** IUnknown methods ***/ \
5290 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5291 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5292 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5293 /*** ICreateTypeLib methods ***/ \
5294 STDMETHOD_(HRESULT,CreateTypeInfo)(THIS_ LPOLESTR szName, TYPEKIND tkind, ICreateTypeInfo** ppCTInfo) PURE; \
5295 STDMETHOD_(HRESULT,SetName)(THIS_ LPOLESTR szName) PURE; \
5296 STDMETHOD_(HRESULT,SetVersion)(THIS_ WORD wMajorVerNum, WORD wMinorVerNum) PURE; \
5297 STDMETHOD_(HRESULT,SetGuid)(THIS_ REFGUID guid) PURE; \
5298 STDMETHOD_(HRESULT,SetDocString)(THIS_ LPOLESTR szDoc) PURE; \
5299 STDMETHOD_(HRESULT,SetHelpFileName)(THIS_ LPOLESTR szHelpFileName) PURE; \
5300 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE; \
5301 STDMETHOD_(HRESULT,SetLcid)(THIS_ LCID lcid) PURE; \
5302 STDMETHOD_(HRESULT,SetLibFlags)(THIS_ UINT uLibFlags) PURE; \
5303 STDMETHOD_(HRESULT,SaveAllChanges)(THIS) PURE; \
5304 /*** ICreateTypeLib2 methods ***/ \
5305 STDMETHOD_(HRESULT,DeleteTypeInfo)(THIS_ LPOLESTR szName) PURE; \
5306 STDMETHOD_(HRESULT,SetCustData)(THIS_ REFGUID guid, VARIANT* pVarVal) PURE; \
5307 STDMETHOD_(HRESULT,SetHelpStringContext)(THIS_ ULONG dwHelpStringContext) PURE; \
5308 STDMETHOD_(HRESULT,SetHelpStringDll)(THIS_ LPOLESTR szFileName) PURE;
5310 HRESULT CALLBACK ICreateTypeLib2_DeleteTypeInfo_Proxy(
5311 ICreateTypeLib2* This,
5312 LPOLESTR szName);
5313 void __RPC_STUB ICreateTypeLib2_DeleteTypeInfo_Stub(
5314 struct IRpcStubBuffer* This,
5315 struct IRpcChannelBuffer* pRpcChannelBuffer,
5316 PRPC_MESSAGE pRpcMessage,
5317 DWORD* pdwStubPhase);
5318 HRESULT CALLBACK ICreateTypeLib2_SetCustData_Proxy(
5319 ICreateTypeLib2* This,
5320 REFGUID guid,
5321 VARIANT* pVarVal);
5322 void __RPC_STUB ICreateTypeLib2_SetCustData_Stub(
5323 struct IRpcStubBuffer* This,
5324 struct IRpcChannelBuffer* pRpcChannelBuffer,
5325 PRPC_MESSAGE pRpcMessage,
5326 DWORD* pdwStubPhase);
5327 HRESULT CALLBACK ICreateTypeLib2_SetHelpStringContext_Proxy(
5328 ICreateTypeLib2* This,
5329 ULONG dwHelpStringContext);
5330 void __RPC_STUB ICreateTypeLib2_SetHelpStringContext_Stub(
5331 struct IRpcStubBuffer* This,
5332 struct IRpcChannelBuffer* pRpcChannelBuffer,
5333 PRPC_MESSAGE pRpcMessage,
5334 DWORD* pdwStubPhase);
5335 HRESULT CALLBACK ICreateTypeLib2_SetHelpStringDll_Proxy(
5336 ICreateTypeLib2* This,
5337 LPOLESTR szFileName);
5338 void __RPC_STUB ICreateTypeLib2_SetHelpStringDll_Stub(
5339 struct IRpcStubBuffer* This,
5340 struct IRpcChannelBuffer* pRpcChannelBuffer,
5341 PRPC_MESSAGE pRpcMessage,
5342 DWORD* pdwStubPhase);
5344 #endif /* __ICreateTypeLib2_INTERFACE_DEFINED__ */
5346 #ifndef __IErrorLog_FWD_DEFINED__
5347 #define __IErrorLog_FWD_DEFINED__
5348 typedef struct IErrorLog IErrorLog;
5349 #endif
5351 typedef IErrorLog *LPERRORLOG;
5353 /*****************************************************************************
5354 * IErrorLog interface
5356 #ifndef __IErrorLog_INTERFACE_DEFINED__
5357 #define __IErrorLog_INTERFACE_DEFINED__
5359 DEFINE_GUID(IID_IErrorLog, 0x3127ca40, 0x446e, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51);
5360 #if defined(__cplusplus) && !defined(CINTERFACE)
5361 struct IErrorLog : public IUnknown
5363 virtual HRESULT STDMETHODCALLTYPE AddError(
5364 LPCOLESTR pszPropName,
5365 EXCEPINFO* pExcepInfo) = 0;
5368 #else
5369 typedef struct IErrorLogVtbl IErrorLogVtbl;
5370 struct IErrorLog {
5371 const IErrorLogVtbl* lpVtbl;
5373 struct IErrorLogVtbl {
5374 ICOM_MSVTABLE_COMPAT_FIELDS
5376 /*** IUnknown methods ***/
5377 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5378 IErrorLog* This,
5379 REFIID riid,
5380 void** ppvObject);
5382 ULONG (STDMETHODCALLTYPE *AddRef)(
5383 IErrorLog* This);
5385 ULONG (STDMETHODCALLTYPE *Release)(
5386 IErrorLog* This);
5388 /*** IErrorLog methods ***/
5389 HRESULT (STDMETHODCALLTYPE *AddError)(
5390 IErrorLog* This,
5391 LPCOLESTR pszPropName,
5392 EXCEPINFO* pExcepInfo);
5396 /*** IUnknown methods ***/
5397 #define IErrorLog_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5398 #define IErrorLog_AddRef(p) (p)->lpVtbl->AddRef(p)
5399 #define IErrorLog_Release(p) (p)->lpVtbl->Release(p)
5400 /*** IErrorLog methods ***/
5401 #define IErrorLog_AddError(p,a,b) (p)->lpVtbl->AddError(p,a,b)
5403 #endif
5405 #define IErrorLog_METHODS \
5406 ICOM_MSVTABLE_COMPAT_FIELDS \
5407 /*** IUnknown methods ***/ \
5408 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5409 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5410 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5411 /*** IErrorLog methods ***/ \
5412 STDMETHOD_(HRESULT,AddError)(THIS_ LPCOLESTR pszPropName, EXCEPINFO* pExcepInfo) PURE;
5414 HRESULT CALLBACK IErrorLog_AddError_Proxy(
5415 IErrorLog* This,
5416 LPCOLESTR pszPropName,
5417 EXCEPINFO* pExcepInfo);
5418 void __RPC_STUB IErrorLog_AddError_Stub(
5419 struct IRpcStubBuffer* This,
5420 struct IRpcChannelBuffer* pRpcChannelBuffer,
5421 PRPC_MESSAGE pRpcMessage,
5422 DWORD* pdwStubPhase);
5424 #endif /* __IErrorLog_INTERFACE_DEFINED__ */
5426 #ifndef __IPropertyBag_FWD_DEFINED__
5427 #define __IPropertyBag_FWD_DEFINED__
5428 typedef struct IPropertyBag IPropertyBag;
5429 #endif
5431 typedef IPropertyBag *LPPROPERTYBAG;
5433 /*****************************************************************************
5434 * IPropertyBag interface
5436 #ifndef __IPropertyBag_INTERFACE_DEFINED__
5437 #define __IPropertyBag_INTERFACE_DEFINED__
5439 DEFINE_GUID(IID_IPropertyBag, 0x55272a00, 0x42cb, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51);
5440 #if defined(__cplusplus) && !defined(CINTERFACE)
5441 struct IPropertyBag : public IUnknown
5443 virtual HRESULT STDMETHODCALLTYPE Read(
5444 LPCOLESTR pszPropName,
5445 VARIANT* pVar,
5446 IErrorLog* pErrorLog) = 0;
5448 virtual HRESULT STDMETHODCALLTYPE Write(
5449 LPCOLESTR pszPropName,
5450 VARIANT* pVar) = 0;
5453 #else
5454 typedef struct IPropertyBagVtbl IPropertyBagVtbl;
5455 struct IPropertyBag {
5456 const IPropertyBagVtbl* lpVtbl;
5458 struct IPropertyBagVtbl {
5459 ICOM_MSVTABLE_COMPAT_FIELDS
5461 /*** IUnknown methods ***/
5462 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5463 IPropertyBag* This,
5464 REFIID riid,
5465 void** ppvObject);
5467 ULONG (STDMETHODCALLTYPE *AddRef)(
5468 IPropertyBag* This);
5470 ULONG (STDMETHODCALLTYPE *Release)(
5471 IPropertyBag* This);
5473 /*** IPropertyBag methods ***/
5474 HRESULT (STDMETHODCALLTYPE *Read)(
5475 IPropertyBag* This,
5476 LPCOLESTR pszPropName,
5477 VARIANT* pVar,
5478 IErrorLog* pErrorLog);
5480 HRESULT (STDMETHODCALLTYPE *Write)(
5481 IPropertyBag* This,
5482 LPCOLESTR pszPropName,
5483 VARIANT* pVar);
5487 /*** IUnknown methods ***/
5488 #define IPropertyBag_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5489 #define IPropertyBag_AddRef(p) (p)->lpVtbl->AddRef(p)
5490 #define IPropertyBag_Release(p) (p)->lpVtbl->Release(p)
5491 /*** IPropertyBag methods ***/
5492 #define IPropertyBag_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
5493 #define IPropertyBag_Write(p,a,b) (p)->lpVtbl->Write(p,a,b)
5495 #endif
5497 #define IPropertyBag_METHODS \
5498 ICOM_MSVTABLE_COMPAT_FIELDS \
5499 /*** IUnknown methods ***/ \
5500 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5501 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5502 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5503 /*** IPropertyBag methods ***/ \
5504 STDMETHOD_(HRESULT,Read)(THIS_ LPCOLESTR pszPropName, VARIANT* pVar, IErrorLog* pErrorLog) PURE; \
5505 STDMETHOD_(HRESULT,Write)(THIS_ LPCOLESTR pszPropName, VARIANT* pVar) PURE;
5507 HRESULT CALLBACK IPropertyBag_RemoteRead_Proxy(
5508 IPropertyBag* This,
5509 LPCOLESTR pszPropName,
5510 VARIANT* pVar,
5511 IErrorLog* pErrorLog,
5512 DWORD varType,
5513 IUnknown* pUnkObj);
5514 void __RPC_STUB IPropertyBag_RemoteRead_Stub(
5515 struct IRpcStubBuffer* This,
5516 struct IRpcChannelBuffer* pRpcChannelBuffer,
5517 PRPC_MESSAGE pRpcMessage,
5518 DWORD* pdwStubPhase);
5519 HRESULT CALLBACK IPropertyBag_Read_Proxy(
5520 IPropertyBag* This,
5521 LPCOLESTR pszPropName,
5522 VARIANT* pVar,
5523 IErrorLog* pErrorLog);
5524 HRESULT __RPC_STUB IPropertyBag_Read_Stub(
5525 IPropertyBag* This,
5526 LPCOLESTR pszPropName,
5527 VARIANT* pVar,
5528 IErrorLog* pErrorLog,
5529 DWORD varType,
5530 IUnknown* pUnkObj);
5531 HRESULT CALLBACK IPropertyBag_Write_Proxy(
5532 IPropertyBag* This,
5533 LPCOLESTR pszPropName,
5534 VARIANT* pVar);
5535 void __RPC_STUB IPropertyBag_Write_Stub(
5536 struct IRpcStubBuffer* This,
5537 struct IRpcChannelBuffer* pRpcChannelBuffer,
5538 PRPC_MESSAGE pRpcMessage,
5539 DWORD* pdwStubPhase);
5541 #endif /* __IPropertyBag_INTERFACE_DEFINED__ */
5543 #ifdef __cplusplus
5545 #endif
5546 #endif /* __WIDL_OAIDL_H */