Sanity check when closing service handle.
[wine.git] / include / oaidl.h
blob73436057ae2f72f65d075576743d7801bfccca2a
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 BEGIN_INTERFACE
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);
689 END_INTERFACE
692 #ifdef COBJMACROS
693 /*** IUnknown methods ***/
694 #define IDispatch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
695 #define IDispatch_AddRef(p) (p)->lpVtbl->AddRef(p)
696 #define IDispatch_Release(p) (p)->lpVtbl->Release(p)
697 /*** IDispatch methods ***/
698 #define IDispatch_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
699 #define IDispatch_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
700 #define IDispatch_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
701 #define IDispatch_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
702 #endif
704 #endif
706 #define IDispatch_METHODS \
707 /*** IUnknown methods ***/ \
708 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
709 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
710 STDMETHOD_(ULONG,Release)(THIS) PURE; \
711 /*** IDispatch methods ***/ \
712 STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ UINT* pctinfo) PURE; \
713 STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) PURE; \
714 STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) PURE; \
715 STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) PURE;
717 HRESULT CALLBACK IDispatch_GetTypeInfoCount_Proxy(
718 IDispatch* This,
719 UINT* pctinfo);
720 void __RPC_STUB IDispatch_GetTypeInfoCount_Stub(
721 struct IRpcStubBuffer* This,
722 struct IRpcChannelBuffer* pRpcChannelBuffer,
723 PRPC_MESSAGE pRpcMessage,
724 DWORD* pdwStubPhase);
725 HRESULT CALLBACK IDispatch_GetTypeInfo_Proxy(
726 IDispatch* This,
727 UINT iTInfo,
728 LCID lcid,
729 ITypeInfo** ppTInfo);
730 void __RPC_STUB IDispatch_GetTypeInfo_Stub(
731 struct IRpcStubBuffer* This,
732 struct IRpcChannelBuffer* pRpcChannelBuffer,
733 PRPC_MESSAGE pRpcMessage,
734 DWORD* pdwStubPhase);
735 HRESULT CALLBACK IDispatch_GetIDsOfNames_Proxy(
736 IDispatch* This,
737 REFIID riid,
738 LPOLESTR* rgszNames,
739 UINT cNames,
740 LCID lcid,
741 DISPID* rgDispId);
742 void __RPC_STUB IDispatch_GetIDsOfNames_Stub(
743 struct IRpcStubBuffer* This,
744 struct IRpcChannelBuffer* pRpcChannelBuffer,
745 PRPC_MESSAGE pRpcMessage,
746 DWORD* pdwStubPhase);
747 HRESULT CALLBACK IDispatch_RemoteInvoke_Proxy(
748 IDispatch* This,
749 DISPID dispIdMember,
750 REFIID riid,
751 LCID lcid,
752 DWORD dwFlags,
753 DISPPARAMS* pDispParams,
754 VARIANT* pVarResult,
755 EXCEPINFO* pExcepInfo,
756 UINT* pArgErr,
757 UINT cVarRef,
758 UINT* rgVarRefIdx,
759 VARIANTARG* rgVarRef);
760 void __RPC_STUB IDispatch_RemoteInvoke_Stub(
761 struct IRpcStubBuffer* This,
762 struct IRpcChannelBuffer* pRpcChannelBuffer,
763 PRPC_MESSAGE pRpcMessage,
764 DWORD* pdwStubPhase);
765 HRESULT CALLBACK IDispatch_Invoke_Proxy(
766 IDispatch* This,
767 DISPID dispIdMember,
768 REFIID riid,
769 LCID lcid,
770 WORD wFlags,
771 DISPPARAMS* pDispParams,
772 VARIANT* pVarResult,
773 EXCEPINFO* pExcepInfo,
774 UINT* puArgErr);
775 HRESULT __RPC_STUB IDispatch_Invoke_Stub(
776 IDispatch* This,
777 DISPID dispIdMember,
778 REFIID riid,
779 LCID lcid,
780 DWORD dwFlags,
781 DISPPARAMS* pDispParams,
782 VARIANT* pVarResult,
783 EXCEPINFO* pExcepInfo,
784 UINT* pArgErr,
785 UINT cVarRef,
786 UINT* rgVarRefIdx,
787 VARIANTARG* rgVarRef);
789 #endif /* __IDispatch_INTERFACE_DEFINED__ */
791 #ifndef __IEnumVARIANT_FWD_DEFINED__
792 #define __IEnumVARIANT_FWD_DEFINED__
793 typedef struct IEnumVARIANT IEnumVARIANT;
794 #endif
796 typedef IEnumVARIANT *LPENUMVARIANT;
798 /*****************************************************************************
799 * IEnumVARIANT interface
801 #ifndef __IEnumVARIANT_INTERFACE_DEFINED__
802 #define __IEnumVARIANT_INTERFACE_DEFINED__
804 DEFINE_GUID(IID_IEnumVARIANT, 0x00020404, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
805 #if defined(__cplusplus) && !defined(CINTERFACE)
806 struct IEnumVARIANT : public IUnknown
808 virtual HRESULT STDMETHODCALLTYPE Next(
809 ULONG celt,
810 VARIANT* rgVar,
811 ULONG* pCeltFetched) = 0;
813 virtual HRESULT STDMETHODCALLTYPE Skip(
814 ULONG celt) = 0;
816 virtual HRESULT STDMETHODCALLTYPE Reset(
817 ) = 0;
819 virtual HRESULT STDMETHODCALLTYPE Clone(
820 IEnumVARIANT** ppEnum) = 0;
823 #else
824 typedef struct IEnumVARIANTVtbl IEnumVARIANTVtbl;
825 struct IEnumVARIANT {
826 const IEnumVARIANTVtbl* lpVtbl;
828 struct IEnumVARIANTVtbl {
829 BEGIN_INTERFACE
831 /*** IUnknown methods ***/
832 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
833 IEnumVARIANT* This,
834 REFIID riid,
835 void** ppvObject);
837 ULONG (STDMETHODCALLTYPE *AddRef)(
838 IEnumVARIANT* This);
840 ULONG (STDMETHODCALLTYPE *Release)(
841 IEnumVARIANT* This);
843 /*** IEnumVARIANT methods ***/
844 HRESULT (STDMETHODCALLTYPE *Next)(
845 IEnumVARIANT* This,
846 ULONG celt,
847 VARIANT* rgVar,
848 ULONG* pCeltFetched);
850 HRESULT (STDMETHODCALLTYPE *Skip)(
851 IEnumVARIANT* This,
852 ULONG celt);
854 HRESULT (STDMETHODCALLTYPE *Reset)(
855 IEnumVARIANT* This);
857 HRESULT (STDMETHODCALLTYPE *Clone)(
858 IEnumVARIANT* This,
859 IEnumVARIANT** ppEnum);
861 END_INTERFACE
864 #ifdef COBJMACROS
865 /*** IUnknown methods ***/
866 #define IEnumVARIANT_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
867 #define IEnumVARIANT_AddRef(p) (p)->lpVtbl->AddRef(p)
868 #define IEnumVARIANT_Release(p) (p)->lpVtbl->Release(p)
869 /*** IEnumVARIANT methods ***/
870 #define IEnumVARIANT_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
871 #define IEnumVARIANT_Skip(p,a) (p)->lpVtbl->Skip(p,a)
872 #define IEnumVARIANT_Reset(p) (p)->lpVtbl->Reset(p)
873 #define IEnumVARIANT_Clone(p,a) (p)->lpVtbl->Clone(p,a)
874 #endif
876 #endif
878 #define IEnumVARIANT_METHODS \
879 /*** IUnknown methods ***/ \
880 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
881 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
882 STDMETHOD_(ULONG,Release)(THIS) PURE; \
883 /*** IEnumVARIANT methods ***/ \
884 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, VARIANT* rgVar, ULONG* pCeltFetched) PURE; \
885 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
886 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
887 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumVARIANT** ppEnum) PURE;
889 HRESULT CALLBACK IEnumVARIANT_RemoteNext_Proxy(
890 IEnumVARIANT* This,
891 ULONG celt,
892 VARIANT* rgVar,
893 ULONG* pCeltFetched);
894 void __RPC_STUB IEnumVARIANT_RemoteNext_Stub(
895 struct IRpcStubBuffer* This,
896 struct IRpcChannelBuffer* pRpcChannelBuffer,
897 PRPC_MESSAGE pRpcMessage,
898 DWORD* pdwStubPhase);
899 HRESULT CALLBACK IEnumVARIANT_Next_Proxy(
900 IEnumVARIANT* This,
901 ULONG celt,
902 VARIANT* rgVar,
903 ULONG* pCeltFetched);
904 HRESULT __RPC_STUB IEnumVARIANT_Next_Stub(
905 IEnumVARIANT* This,
906 ULONG celt,
907 VARIANT* rgVar,
908 ULONG* pCeltFetched);
909 HRESULT CALLBACK IEnumVARIANT_Skip_Proxy(
910 IEnumVARIANT* This,
911 ULONG celt);
912 void __RPC_STUB IEnumVARIANT_Skip_Stub(
913 struct IRpcStubBuffer* This,
914 struct IRpcChannelBuffer* pRpcChannelBuffer,
915 PRPC_MESSAGE pRpcMessage,
916 DWORD* pdwStubPhase);
917 HRESULT CALLBACK IEnumVARIANT_Reset_Proxy(
918 IEnumVARIANT* This);
919 void __RPC_STUB IEnumVARIANT_Reset_Stub(
920 struct IRpcStubBuffer* This,
921 struct IRpcChannelBuffer* pRpcChannelBuffer,
922 PRPC_MESSAGE pRpcMessage,
923 DWORD* pdwStubPhase);
924 HRESULT CALLBACK IEnumVARIANT_Clone_Proxy(
925 IEnumVARIANT* This,
926 IEnumVARIANT** ppEnum);
927 void __RPC_STUB IEnumVARIANT_Clone_Stub(
928 struct IRpcStubBuffer* This,
929 struct IRpcChannelBuffer* pRpcChannelBuffer,
930 PRPC_MESSAGE pRpcMessage,
931 DWORD* pdwStubPhase);
933 #endif /* __IEnumVARIANT_INTERFACE_DEFINED__ */
935 #ifndef __ITypeComp_FWD_DEFINED__
936 #define __ITypeComp_FWD_DEFINED__
937 typedef struct ITypeComp ITypeComp;
938 #endif
940 typedef ITypeComp *LPTYPECOMP;
942 typedef enum tagDESCKIND {
943 DESCKIND_NONE = 0,
944 DESCKIND_FUNCDESC,
945 DESCKIND_VARDESC,
946 DESCKIND_TYPECOMP,
947 DESCKIND_IMPLICITAPPOBJ,
948 DESCKIND_MAX
949 } DESCKIND;
951 typedef union tagBINDPTR {
952 FUNCDESC *lpfuncdesc;
953 VARDESC *lpvardesc;
954 ITypeComp *lptcomp;
955 } BINDPTR, *LPBINDPTR;
957 /*****************************************************************************
958 * ITypeComp interface
960 #ifndef __ITypeComp_INTERFACE_DEFINED__
961 #define __ITypeComp_INTERFACE_DEFINED__
963 DEFINE_GUID(IID_ITypeComp, 0x00020403, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
964 #if defined(__cplusplus) && !defined(CINTERFACE)
965 struct ITypeComp : public IUnknown
967 virtual HRESULT STDMETHODCALLTYPE Bind(
968 LPOLESTR szName,
969 ULONG lHashVal,
970 WORD wFlags,
971 ITypeInfo** ppTInfo,
972 DESCKIND* pDescKind,
973 BINDPTR* pBindPtr) = 0;
975 virtual HRESULT STDMETHODCALLTYPE BindType(
976 LPOLESTR szName,
977 ULONG lHashVal,
978 ITypeInfo** ppTInfo,
979 ITypeComp** ppTComp) = 0;
982 #else
983 typedef struct ITypeCompVtbl ITypeCompVtbl;
984 struct ITypeComp {
985 const ITypeCompVtbl* lpVtbl;
987 struct ITypeCompVtbl {
988 BEGIN_INTERFACE
990 /*** IUnknown methods ***/
991 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
992 ITypeComp* This,
993 REFIID riid,
994 void** ppvObject);
996 ULONG (STDMETHODCALLTYPE *AddRef)(
997 ITypeComp* This);
999 ULONG (STDMETHODCALLTYPE *Release)(
1000 ITypeComp* This);
1002 /*** ITypeComp methods ***/
1003 HRESULT (STDMETHODCALLTYPE *Bind)(
1004 ITypeComp* This,
1005 LPOLESTR szName,
1006 ULONG lHashVal,
1007 WORD wFlags,
1008 ITypeInfo** ppTInfo,
1009 DESCKIND* pDescKind,
1010 BINDPTR* pBindPtr);
1012 HRESULT (STDMETHODCALLTYPE *BindType)(
1013 ITypeComp* This,
1014 LPOLESTR szName,
1015 ULONG lHashVal,
1016 ITypeInfo** ppTInfo,
1017 ITypeComp** ppTComp);
1019 END_INTERFACE
1022 #ifdef COBJMACROS
1023 /*** IUnknown methods ***/
1024 #define ITypeComp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1025 #define ITypeComp_AddRef(p) (p)->lpVtbl->AddRef(p)
1026 #define ITypeComp_Release(p) (p)->lpVtbl->Release(p)
1027 /*** ITypeComp methods ***/
1028 #define ITypeComp_Bind(p,a,b,c,d,e,f) (p)->lpVtbl->Bind(p,a,b,c,d,e,f)
1029 #define ITypeComp_BindType(p,a,b,c,d) (p)->lpVtbl->BindType(p,a,b,c,d)
1030 #endif
1032 #endif
1034 #define ITypeComp_METHODS \
1035 /*** IUnknown methods ***/ \
1036 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1037 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1038 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1039 /*** ITypeComp methods ***/ \
1040 STDMETHOD_(HRESULT,Bind)(THIS_ LPOLESTR szName, ULONG lHashVal, WORD wFlags, ITypeInfo** ppTInfo, DESCKIND* pDescKind, BINDPTR* pBindPtr) PURE; \
1041 STDMETHOD_(HRESULT,BindType)(THIS_ LPOLESTR szName, ULONG lHashVal, ITypeInfo** ppTInfo, ITypeComp** ppTComp) PURE;
1043 HRESULT CALLBACK ITypeComp_RemoteBind_Proxy(
1044 ITypeComp* This,
1045 LPOLESTR szName,
1046 ULONG lHashVal,
1047 WORD wFlags,
1048 ITypeInfo** ppTInfo,
1049 DESCKIND* pDescKind,
1050 LPFUNCDESC* ppFuncDesc,
1051 LPVARDESC* ppVarDesc,
1052 ITypeComp** ppTypeComp,
1053 CLEANLOCALSTORAGE* pDummy);
1054 void __RPC_STUB ITypeComp_RemoteBind_Stub(
1055 struct IRpcStubBuffer* This,
1056 struct IRpcChannelBuffer* pRpcChannelBuffer,
1057 PRPC_MESSAGE pRpcMessage,
1058 DWORD* pdwStubPhase);
1059 HRESULT CALLBACK ITypeComp_Bind_Proxy(
1060 ITypeComp* This,
1061 LPOLESTR szName,
1062 ULONG lHashVal,
1063 WORD wFlags,
1064 ITypeInfo** ppTInfo,
1065 DESCKIND* pDescKind,
1066 BINDPTR* pBindPtr);
1067 HRESULT __RPC_STUB ITypeComp_Bind_Stub(
1068 ITypeComp* This,
1069 LPOLESTR szName,
1070 ULONG lHashVal,
1071 WORD wFlags,
1072 ITypeInfo** ppTInfo,
1073 DESCKIND* pDescKind,
1074 LPFUNCDESC* ppFuncDesc,
1075 LPVARDESC* ppVarDesc,
1076 ITypeComp** ppTypeComp,
1077 CLEANLOCALSTORAGE* pDummy);
1078 HRESULT CALLBACK ITypeComp_RemoteBindType_Proxy(
1079 ITypeComp* This,
1080 LPOLESTR szName,
1081 ULONG lHashVal,
1082 ITypeInfo** ppTInfo);
1083 void __RPC_STUB ITypeComp_RemoteBindType_Stub(
1084 struct IRpcStubBuffer* This,
1085 struct IRpcChannelBuffer* pRpcChannelBuffer,
1086 PRPC_MESSAGE pRpcMessage,
1087 DWORD* pdwStubPhase);
1088 HRESULT CALLBACK ITypeComp_BindType_Proxy(
1089 ITypeComp* This,
1090 LPOLESTR szName,
1091 ULONG lHashVal,
1092 ITypeInfo** ppTInfo,
1093 ITypeComp** ppTComp);
1094 HRESULT __RPC_STUB ITypeComp_BindType_Stub(
1095 ITypeComp* This,
1096 LPOLESTR szName,
1097 ULONG lHashVal,
1098 ITypeInfo** ppTInfo);
1100 #endif /* __ITypeComp_INTERFACE_DEFINED__ */
1102 typedef ITypeInfo *LPTYPEINFO;
1104 /*****************************************************************************
1105 * ITypeInfo interface
1107 #ifndef __ITypeInfo_INTERFACE_DEFINED__
1108 #define __ITypeInfo_INTERFACE_DEFINED__
1110 DEFINE_GUID(IID_ITypeInfo, 0x00020401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1111 #if defined(__cplusplus) && !defined(CINTERFACE)
1112 struct ITypeInfo : public IUnknown
1114 virtual HRESULT STDMETHODCALLTYPE GetTypeAttr(
1115 TYPEATTR** ppTypeAttr) = 0;
1117 virtual HRESULT STDMETHODCALLTYPE GetTypeComp(
1118 ITypeComp** ppTComp) = 0;
1120 virtual HRESULT STDMETHODCALLTYPE GetFuncDesc(
1121 UINT index,
1122 FUNCDESC** ppFuncDesc) = 0;
1124 virtual HRESULT STDMETHODCALLTYPE GetVarDesc(
1125 UINT index,
1126 VARDESC** ppVarDesc) = 0;
1128 virtual HRESULT STDMETHODCALLTYPE GetNames(
1129 MEMBERID memid,
1130 BSTR* rgBstrNames,
1131 UINT cMaxNames,
1132 UINT* pcNames) = 0;
1134 virtual HRESULT STDMETHODCALLTYPE GetRefTypeOfImplType(
1135 UINT index,
1136 HREFTYPE* pRefType) = 0;
1138 virtual HRESULT STDMETHODCALLTYPE GetImplTypeFlags(
1139 UINT index,
1140 INT* pImplTypeFlags) = 0;
1142 virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(
1143 LPOLESTR* rgszNames,
1144 UINT cNames,
1145 MEMBERID* pMemId) = 0;
1147 virtual HRESULT STDMETHODCALLTYPE Invoke(
1148 PVOID pvInstance,
1149 MEMBERID memid,
1150 WORD wFlags,
1151 DISPPARAMS* pDispParams,
1152 VARIANT* pVarResult,
1153 EXCEPINFO* pExcepInfo,
1154 UINT* puArgErr) = 0;
1156 virtual HRESULT STDMETHODCALLTYPE GetDocumentation(
1157 MEMBERID memid,
1158 BSTR* pBstrName,
1159 BSTR* pBstrDocString,
1160 DWORD* pdwHelpContext,
1161 BSTR* pBstrHelpFile) = 0;
1163 virtual HRESULT STDMETHODCALLTYPE GetDllEntry(
1164 MEMBERID memid,
1165 INVOKEKIND invKind,
1166 BSTR* pBstrDllName,
1167 BSTR* pBstrName,
1168 WORD* pwOrdinal) = 0;
1170 virtual HRESULT STDMETHODCALLTYPE GetRefTypeInfo(
1171 HREFTYPE hRefType,
1172 ITypeInfo** ppTInfo) = 0;
1174 virtual HRESULT STDMETHODCALLTYPE AddressOfMember(
1175 MEMBERID memid,
1176 INVOKEKIND invKind,
1177 PVOID* ppv) = 0;
1179 virtual HRESULT STDMETHODCALLTYPE CreateInstance(
1180 IUnknown* pUnkOuter,
1181 REFIID riid,
1182 PVOID* ppvObj) = 0;
1184 virtual HRESULT STDMETHODCALLTYPE GetMops(
1185 MEMBERID memid,
1186 BSTR* pBstrMops) = 0;
1188 virtual HRESULT STDMETHODCALLTYPE GetContainingTypeLib(
1189 ITypeLib** ppTLib,
1190 UINT* pIndex) = 0;
1192 virtual void STDMETHODCALLTYPE ReleaseTypeAttr(
1193 TYPEATTR* pTypeAttr) = 0;
1195 virtual void STDMETHODCALLTYPE ReleaseFuncDesc(
1196 FUNCDESC* pFuncDesc) = 0;
1198 virtual void STDMETHODCALLTYPE ReleaseVarDesc(
1199 VARDESC* pVarDesc) = 0;
1202 #else
1203 typedef struct ITypeInfoVtbl ITypeInfoVtbl;
1204 struct ITypeInfo {
1205 const ITypeInfoVtbl* lpVtbl;
1207 struct ITypeInfoVtbl {
1208 BEGIN_INTERFACE
1210 /*** IUnknown methods ***/
1211 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1212 ITypeInfo* This,
1213 REFIID riid,
1214 void** ppvObject);
1216 ULONG (STDMETHODCALLTYPE *AddRef)(
1217 ITypeInfo* This);
1219 ULONG (STDMETHODCALLTYPE *Release)(
1220 ITypeInfo* This);
1222 /*** ITypeInfo methods ***/
1223 HRESULT (STDMETHODCALLTYPE *GetTypeAttr)(
1224 ITypeInfo* This,
1225 TYPEATTR** ppTypeAttr);
1227 HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
1228 ITypeInfo* This,
1229 ITypeComp** ppTComp);
1231 HRESULT (STDMETHODCALLTYPE *GetFuncDesc)(
1232 ITypeInfo* This,
1233 UINT index,
1234 FUNCDESC** ppFuncDesc);
1236 HRESULT (STDMETHODCALLTYPE *GetVarDesc)(
1237 ITypeInfo* This,
1238 UINT index,
1239 VARDESC** ppVarDesc);
1241 HRESULT (STDMETHODCALLTYPE *GetNames)(
1242 ITypeInfo* This,
1243 MEMBERID memid,
1244 BSTR* rgBstrNames,
1245 UINT cMaxNames,
1246 UINT* pcNames);
1248 HRESULT (STDMETHODCALLTYPE *GetRefTypeOfImplType)(
1249 ITypeInfo* This,
1250 UINT index,
1251 HREFTYPE* pRefType);
1253 HRESULT (STDMETHODCALLTYPE *GetImplTypeFlags)(
1254 ITypeInfo* This,
1255 UINT index,
1256 INT* pImplTypeFlags);
1258 HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1259 ITypeInfo* This,
1260 LPOLESTR* rgszNames,
1261 UINT cNames,
1262 MEMBERID* pMemId);
1264 HRESULT (STDMETHODCALLTYPE *Invoke)(
1265 ITypeInfo* This,
1266 PVOID pvInstance,
1267 MEMBERID memid,
1268 WORD wFlags,
1269 DISPPARAMS* pDispParams,
1270 VARIANT* pVarResult,
1271 EXCEPINFO* pExcepInfo,
1272 UINT* puArgErr);
1274 HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
1275 ITypeInfo* This,
1276 MEMBERID memid,
1277 BSTR* pBstrName,
1278 BSTR* pBstrDocString,
1279 DWORD* pdwHelpContext,
1280 BSTR* pBstrHelpFile);
1282 HRESULT (STDMETHODCALLTYPE *GetDllEntry)(
1283 ITypeInfo* This,
1284 MEMBERID memid,
1285 INVOKEKIND invKind,
1286 BSTR* pBstrDllName,
1287 BSTR* pBstrName,
1288 WORD* pwOrdinal);
1290 HRESULT (STDMETHODCALLTYPE *GetRefTypeInfo)(
1291 ITypeInfo* This,
1292 HREFTYPE hRefType,
1293 ITypeInfo** ppTInfo);
1295 HRESULT (STDMETHODCALLTYPE *AddressOfMember)(
1296 ITypeInfo* This,
1297 MEMBERID memid,
1298 INVOKEKIND invKind,
1299 PVOID* ppv);
1301 HRESULT (STDMETHODCALLTYPE *CreateInstance)(
1302 ITypeInfo* This,
1303 IUnknown* pUnkOuter,
1304 REFIID riid,
1305 PVOID* ppvObj);
1307 HRESULT (STDMETHODCALLTYPE *GetMops)(
1308 ITypeInfo* This,
1309 MEMBERID memid,
1310 BSTR* pBstrMops);
1312 HRESULT (STDMETHODCALLTYPE *GetContainingTypeLib)(
1313 ITypeInfo* This,
1314 ITypeLib** ppTLib,
1315 UINT* pIndex);
1317 void (STDMETHODCALLTYPE *ReleaseTypeAttr)(
1318 ITypeInfo* This,
1319 TYPEATTR* pTypeAttr);
1321 void (STDMETHODCALLTYPE *ReleaseFuncDesc)(
1322 ITypeInfo* This,
1323 FUNCDESC* pFuncDesc);
1325 void (STDMETHODCALLTYPE *ReleaseVarDesc)(
1326 ITypeInfo* This,
1327 VARDESC* pVarDesc);
1329 END_INTERFACE
1332 #ifdef COBJMACROS
1333 /*** IUnknown methods ***/
1334 #define ITypeInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1335 #define ITypeInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
1336 #define ITypeInfo_Release(p) (p)->lpVtbl->Release(p)
1337 /*** ITypeInfo methods ***/
1338 #define ITypeInfo_GetTypeAttr(p,a) (p)->lpVtbl->GetTypeAttr(p,a)
1339 #define ITypeInfo_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
1340 #define ITypeInfo_GetFuncDesc(p,a,b) (p)->lpVtbl->GetFuncDesc(p,a,b)
1341 #define ITypeInfo_GetVarDesc(p,a,b) (p)->lpVtbl->GetVarDesc(p,a,b)
1342 #define ITypeInfo_GetNames(p,a,b,c,d) (p)->lpVtbl->GetNames(p,a,b,c,d)
1343 #define ITypeInfo_GetRefTypeOfImplType(p,a,b) (p)->lpVtbl->GetRefTypeOfImplType(p,a,b)
1344 #define ITypeInfo_GetImplTypeFlags(p,a,b) (p)->lpVtbl->GetImplTypeFlags(p,a,b)
1345 #define ITypeInfo_GetIDsOfNames(p,a,b,c) (p)->lpVtbl->GetIDsOfNames(p,a,b,c)
1346 #define ITypeInfo_Invoke(p,a,b,c,d,e,f,g) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g)
1347 #define ITypeInfo_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
1348 #define ITypeInfo_GetDllEntry(p,a,b,c,d,e) (p)->lpVtbl->GetDllEntry(p,a,b,c,d,e)
1349 #define ITypeInfo_GetRefTypeInfo(p,a,b) (p)->lpVtbl->GetRefTypeInfo(p,a,b)
1350 #define ITypeInfo_AddressOfMember(p,a,b,c) (p)->lpVtbl->AddressOfMember(p,a,b,c)
1351 #define ITypeInfo_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
1352 #define ITypeInfo_GetMops(p,a,b) (p)->lpVtbl->GetMops(p,a,b)
1353 #define ITypeInfo_GetContainingTypeLib(p,a,b) (p)->lpVtbl->GetContainingTypeLib(p,a,b)
1354 #define ITypeInfo_ReleaseTypeAttr(p,a) (p)->lpVtbl->ReleaseTypeAttr(p,a)
1355 #define ITypeInfo_ReleaseFuncDesc(p,a) (p)->lpVtbl->ReleaseFuncDesc(p,a)
1356 #define ITypeInfo_ReleaseVarDesc(p,a) (p)->lpVtbl->ReleaseVarDesc(p,a)
1357 #endif
1359 #endif
1361 #define ITypeInfo_METHODS \
1362 /*** IUnknown methods ***/ \
1363 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1364 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1365 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1366 /*** ITypeInfo methods ***/ \
1367 STDMETHOD_(HRESULT,GetTypeAttr)(THIS_ TYPEATTR** ppTypeAttr) PURE; \
1368 STDMETHOD_(HRESULT,GetTypeComp)(THIS_ ITypeComp** ppTComp) PURE; \
1369 STDMETHOD_(HRESULT,GetFuncDesc)(THIS_ UINT index, FUNCDESC** ppFuncDesc) PURE; \
1370 STDMETHOD_(HRESULT,GetVarDesc)(THIS_ UINT index, VARDESC** ppVarDesc) PURE; \
1371 STDMETHOD_(HRESULT,GetNames)(THIS_ MEMBERID memid, BSTR* rgBstrNames, UINT cMaxNames, UINT* pcNames) PURE; \
1372 STDMETHOD_(HRESULT,GetRefTypeOfImplType)(THIS_ UINT index, HREFTYPE* pRefType) PURE; \
1373 STDMETHOD_(HRESULT,GetImplTypeFlags)(THIS_ UINT index, INT* pImplTypeFlags) PURE; \
1374 STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ LPOLESTR* rgszNames, UINT cNames, MEMBERID* pMemId) PURE; \
1375 STDMETHOD_(HRESULT,Invoke)(THIS_ PVOID pvInstance, MEMBERID memid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) PURE; \
1376 STDMETHOD_(HRESULT,GetDocumentation)(THIS_ MEMBERID memid, BSTR* pBstrName, BSTR* pBstrDocString, DWORD* pdwHelpContext, BSTR* pBstrHelpFile) PURE; \
1377 STDMETHOD_(HRESULT,GetDllEntry)(THIS_ MEMBERID memid, INVOKEKIND invKind, BSTR* pBstrDllName, BSTR* pBstrName, WORD* pwOrdinal) PURE; \
1378 STDMETHOD_(HRESULT,GetRefTypeInfo)(THIS_ HREFTYPE hRefType, ITypeInfo** ppTInfo) PURE; \
1379 STDMETHOD_(HRESULT,AddressOfMember)(THIS_ MEMBERID memid, INVOKEKIND invKind, PVOID* ppv) PURE; \
1380 STDMETHOD_(HRESULT,CreateInstance)(THIS_ IUnknown* pUnkOuter, REFIID riid, PVOID* ppvObj) PURE; \
1381 STDMETHOD_(HRESULT,GetMops)(THIS_ MEMBERID memid, BSTR* pBstrMops) PURE; \
1382 STDMETHOD_(HRESULT,GetContainingTypeLib)(THIS_ ITypeLib** ppTLib, UINT* pIndex) PURE; \
1383 STDMETHOD_(void,ReleaseTypeAttr)(THIS_ TYPEATTR* pTypeAttr) PURE; \
1384 STDMETHOD_(void,ReleaseFuncDesc)(THIS_ FUNCDESC* pFuncDesc) PURE; \
1385 STDMETHOD_(void,ReleaseVarDesc)(THIS_ VARDESC* pVarDesc) PURE;
1387 HRESULT CALLBACK ITypeInfo_RemoteGetTypeAttr_Proxy(
1388 ITypeInfo* This,
1389 LPTYPEATTR* ppTypeAttr,
1390 CLEANLOCALSTORAGE* pDummy);
1391 void __RPC_STUB ITypeInfo_RemoteGetTypeAttr_Stub(
1392 struct IRpcStubBuffer* This,
1393 struct IRpcChannelBuffer* pRpcChannelBuffer,
1394 PRPC_MESSAGE pRpcMessage,
1395 DWORD* pdwStubPhase);
1396 HRESULT CALLBACK ITypeInfo_GetTypeAttr_Proxy(
1397 ITypeInfo* This,
1398 TYPEATTR** ppTypeAttr);
1399 HRESULT __RPC_STUB ITypeInfo_GetTypeAttr_Stub(
1400 ITypeInfo* This,
1401 LPTYPEATTR* ppTypeAttr,
1402 CLEANLOCALSTORAGE* pDummy);
1403 HRESULT CALLBACK ITypeInfo_GetTypeComp_Proxy(
1404 ITypeInfo* This,
1405 ITypeComp** ppTComp);
1406 void __RPC_STUB ITypeInfo_GetTypeComp_Stub(
1407 struct IRpcStubBuffer* This,
1408 struct IRpcChannelBuffer* pRpcChannelBuffer,
1409 PRPC_MESSAGE pRpcMessage,
1410 DWORD* pdwStubPhase);
1411 HRESULT CALLBACK ITypeInfo_RemoteGetFuncDesc_Proxy(
1412 ITypeInfo* This,
1413 UINT index,
1414 LPFUNCDESC* ppFuncDesc,
1415 CLEANLOCALSTORAGE* pDummy);
1416 void __RPC_STUB ITypeInfo_RemoteGetFuncDesc_Stub(
1417 struct IRpcStubBuffer* This,
1418 struct IRpcChannelBuffer* pRpcChannelBuffer,
1419 PRPC_MESSAGE pRpcMessage,
1420 DWORD* pdwStubPhase);
1421 HRESULT CALLBACK ITypeInfo_GetFuncDesc_Proxy(
1422 ITypeInfo* This,
1423 UINT index,
1424 FUNCDESC** ppFuncDesc);
1425 HRESULT __RPC_STUB ITypeInfo_GetFuncDesc_Stub(
1426 ITypeInfo* This,
1427 UINT index,
1428 LPFUNCDESC* ppFuncDesc,
1429 CLEANLOCALSTORAGE* pDummy);
1430 HRESULT CALLBACK ITypeInfo_RemoteGetVarDesc_Proxy(
1431 ITypeInfo* This,
1432 UINT index,
1433 LPVARDESC* ppVarDesc,
1434 CLEANLOCALSTORAGE* pDummy);
1435 void __RPC_STUB ITypeInfo_RemoteGetVarDesc_Stub(
1436 struct IRpcStubBuffer* This,
1437 struct IRpcChannelBuffer* pRpcChannelBuffer,
1438 PRPC_MESSAGE pRpcMessage,
1439 DWORD* pdwStubPhase);
1440 HRESULT CALLBACK ITypeInfo_GetVarDesc_Proxy(
1441 ITypeInfo* This,
1442 UINT index,
1443 VARDESC** ppVarDesc);
1444 HRESULT __RPC_STUB ITypeInfo_GetVarDesc_Stub(
1445 ITypeInfo* This,
1446 UINT index,
1447 LPVARDESC* ppVarDesc,
1448 CLEANLOCALSTORAGE* pDummy);
1449 HRESULT CALLBACK ITypeInfo_RemoteGetNames_Proxy(
1450 ITypeInfo* This,
1451 MEMBERID memid,
1452 BSTR* rgBstrNames,
1453 UINT cMaxNames,
1454 UINT* pcNames);
1455 void __RPC_STUB ITypeInfo_RemoteGetNames_Stub(
1456 struct IRpcStubBuffer* This,
1457 struct IRpcChannelBuffer* pRpcChannelBuffer,
1458 PRPC_MESSAGE pRpcMessage,
1459 DWORD* pdwStubPhase);
1460 HRESULT CALLBACK ITypeInfo_GetNames_Proxy(
1461 ITypeInfo* This,
1462 MEMBERID memid,
1463 BSTR* rgBstrNames,
1464 UINT cMaxNames,
1465 UINT* pcNames);
1466 HRESULT __RPC_STUB ITypeInfo_GetNames_Stub(
1467 ITypeInfo* This,
1468 MEMBERID memid,
1469 BSTR* rgBstrNames,
1470 UINT cMaxNames,
1471 UINT* pcNames);
1472 HRESULT CALLBACK ITypeInfo_GetRefTypeOfImplType_Proxy(
1473 ITypeInfo* This,
1474 UINT index,
1475 HREFTYPE* pRefType);
1476 void __RPC_STUB ITypeInfo_GetRefTypeOfImplType_Stub(
1477 struct IRpcStubBuffer* This,
1478 struct IRpcChannelBuffer* pRpcChannelBuffer,
1479 PRPC_MESSAGE pRpcMessage,
1480 DWORD* pdwStubPhase);
1481 HRESULT CALLBACK ITypeInfo_GetImplTypeFlags_Proxy(
1482 ITypeInfo* This,
1483 UINT index,
1484 INT* pImplTypeFlags);
1485 void __RPC_STUB ITypeInfo_GetImplTypeFlags_Stub(
1486 struct IRpcStubBuffer* This,
1487 struct IRpcChannelBuffer* pRpcChannelBuffer,
1488 PRPC_MESSAGE pRpcMessage,
1489 DWORD* pdwStubPhase);
1490 HRESULT CALLBACK ITypeInfo_LocalGetIDsOfNames_Proxy(
1491 ITypeInfo* This);
1492 void __RPC_STUB ITypeInfo_LocalGetIDsOfNames_Stub(
1493 struct IRpcStubBuffer* This,
1494 struct IRpcChannelBuffer* pRpcChannelBuffer,
1495 PRPC_MESSAGE pRpcMessage,
1496 DWORD* pdwStubPhase);
1497 HRESULT CALLBACK ITypeInfo_GetIDsOfNames_Proxy(
1498 ITypeInfo* This,
1499 LPOLESTR* rgszNames,
1500 UINT cNames,
1501 MEMBERID* pMemId);
1502 HRESULT __RPC_STUB ITypeInfo_GetIDsOfNames_Stub(
1503 ITypeInfo* This);
1504 HRESULT CALLBACK ITypeInfo_LocalInvoke_Proxy(
1505 ITypeInfo* This);
1506 void __RPC_STUB ITypeInfo_LocalInvoke_Stub(
1507 struct IRpcStubBuffer* This,
1508 struct IRpcChannelBuffer* pRpcChannelBuffer,
1509 PRPC_MESSAGE pRpcMessage,
1510 DWORD* pdwStubPhase);
1511 HRESULT CALLBACK ITypeInfo_Invoke_Proxy(
1512 ITypeInfo* This,
1513 PVOID pvInstance,
1514 MEMBERID memid,
1515 WORD wFlags,
1516 DISPPARAMS* pDispParams,
1517 VARIANT* pVarResult,
1518 EXCEPINFO* pExcepInfo,
1519 UINT* puArgErr);
1520 HRESULT __RPC_STUB ITypeInfo_Invoke_Stub(
1521 ITypeInfo* This);
1522 HRESULT CALLBACK ITypeInfo_RemoteGetDocumentation_Proxy(
1523 ITypeInfo* This,
1524 MEMBERID memid,
1525 DWORD refPtrFlags,
1526 BSTR* pBstrName,
1527 BSTR* pBstrDocString,
1528 DWORD* pdwHelpContext,
1529 BSTR* pBstrHelpFile);
1530 void __RPC_STUB ITypeInfo_RemoteGetDocumentation_Stub(
1531 struct IRpcStubBuffer* This,
1532 struct IRpcChannelBuffer* pRpcChannelBuffer,
1533 PRPC_MESSAGE pRpcMessage,
1534 DWORD* pdwStubPhase);
1535 HRESULT CALLBACK ITypeInfo_GetDocumentation_Proxy(
1536 ITypeInfo* This,
1537 MEMBERID memid,
1538 BSTR* pBstrName,
1539 BSTR* pBstrDocString,
1540 DWORD* pdwHelpContext,
1541 BSTR* pBstrHelpFile);
1542 HRESULT __RPC_STUB ITypeInfo_GetDocumentation_Stub(
1543 ITypeInfo* This,
1544 MEMBERID memid,
1545 DWORD refPtrFlags,
1546 BSTR* pBstrName,
1547 BSTR* pBstrDocString,
1548 DWORD* pdwHelpContext,
1549 BSTR* pBstrHelpFile);
1550 HRESULT CALLBACK ITypeInfo_RemoteGetDllEntry_Proxy(
1551 ITypeInfo* This,
1552 MEMBERID memid,
1553 INVOKEKIND invKind,
1554 DWORD refPtrFlags,
1555 BSTR* pBstrDllName,
1556 BSTR* pBstrName,
1557 WORD* pwOrdinal);
1558 void __RPC_STUB ITypeInfo_RemoteGetDllEntry_Stub(
1559 struct IRpcStubBuffer* This,
1560 struct IRpcChannelBuffer* pRpcChannelBuffer,
1561 PRPC_MESSAGE pRpcMessage,
1562 DWORD* pdwStubPhase);
1563 HRESULT CALLBACK ITypeInfo_GetDllEntry_Proxy(
1564 ITypeInfo* This,
1565 MEMBERID memid,
1566 INVOKEKIND invKind,
1567 BSTR* pBstrDllName,
1568 BSTR* pBstrName,
1569 WORD* pwOrdinal);
1570 HRESULT __RPC_STUB ITypeInfo_GetDllEntry_Stub(
1571 ITypeInfo* This,
1572 MEMBERID memid,
1573 INVOKEKIND invKind,
1574 DWORD refPtrFlags,
1575 BSTR* pBstrDllName,
1576 BSTR* pBstrName,
1577 WORD* pwOrdinal);
1578 HRESULT CALLBACK ITypeInfo_GetRefTypeInfo_Proxy(
1579 ITypeInfo* This,
1580 HREFTYPE hRefType,
1581 ITypeInfo** ppTInfo);
1582 void __RPC_STUB ITypeInfo_GetRefTypeInfo_Stub(
1583 struct IRpcStubBuffer* This,
1584 struct IRpcChannelBuffer* pRpcChannelBuffer,
1585 PRPC_MESSAGE pRpcMessage,
1586 DWORD* pdwStubPhase);
1587 HRESULT CALLBACK ITypeInfo_LocalAddressOfMember_Proxy(
1588 ITypeInfo* This);
1589 void __RPC_STUB ITypeInfo_LocalAddressOfMember_Stub(
1590 struct IRpcStubBuffer* This,
1591 struct IRpcChannelBuffer* pRpcChannelBuffer,
1592 PRPC_MESSAGE pRpcMessage,
1593 DWORD* pdwStubPhase);
1594 HRESULT CALLBACK ITypeInfo_AddressOfMember_Proxy(
1595 ITypeInfo* This,
1596 MEMBERID memid,
1597 INVOKEKIND invKind,
1598 PVOID* ppv);
1599 HRESULT __RPC_STUB ITypeInfo_AddressOfMember_Stub(
1600 ITypeInfo* This);
1601 HRESULT CALLBACK ITypeInfo_RemoteCreateInstance_Proxy(
1602 ITypeInfo* This,
1603 REFIID riid,
1604 IUnknown** ppvObj);
1605 void __RPC_STUB ITypeInfo_RemoteCreateInstance_Stub(
1606 struct IRpcStubBuffer* This,
1607 struct IRpcChannelBuffer* pRpcChannelBuffer,
1608 PRPC_MESSAGE pRpcMessage,
1609 DWORD* pdwStubPhase);
1610 HRESULT CALLBACK ITypeInfo_CreateInstance_Proxy(
1611 ITypeInfo* This,
1612 IUnknown* pUnkOuter,
1613 REFIID riid,
1614 PVOID* ppvObj);
1615 HRESULT __RPC_STUB ITypeInfo_CreateInstance_Stub(
1616 ITypeInfo* This,
1617 REFIID riid,
1618 IUnknown** ppvObj);
1619 HRESULT CALLBACK ITypeInfo_GetMops_Proxy(
1620 ITypeInfo* This,
1621 MEMBERID memid,
1622 BSTR* pBstrMops);
1623 void __RPC_STUB ITypeInfo_GetMops_Stub(
1624 struct IRpcStubBuffer* This,
1625 struct IRpcChannelBuffer* pRpcChannelBuffer,
1626 PRPC_MESSAGE pRpcMessage,
1627 DWORD* pdwStubPhase);
1628 HRESULT CALLBACK ITypeInfo_RemoteGetContainingTypeLib_Proxy(
1629 ITypeInfo* This,
1630 ITypeLib** ppTLib,
1631 UINT* pIndex);
1632 void __RPC_STUB ITypeInfo_RemoteGetContainingTypeLib_Stub(
1633 struct IRpcStubBuffer* This,
1634 struct IRpcChannelBuffer* pRpcChannelBuffer,
1635 PRPC_MESSAGE pRpcMessage,
1636 DWORD* pdwStubPhase);
1637 HRESULT CALLBACK ITypeInfo_GetContainingTypeLib_Proxy(
1638 ITypeInfo* This,
1639 ITypeLib** ppTLib,
1640 UINT* pIndex);
1641 HRESULT __RPC_STUB ITypeInfo_GetContainingTypeLib_Stub(
1642 ITypeInfo* This,
1643 ITypeLib** ppTLib,
1644 UINT* pIndex);
1645 HRESULT CALLBACK ITypeInfo_LocalReleaseTypeAttr_Proxy(
1646 ITypeInfo* This);
1647 void __RPC_STUB ITypeInfo_LocalReleaseTypeAttr_Stub(
1648 struct IRpcStubBuffer* This,
1649 struct IRpcChannelBuffer* pRpcChannelBuffer,
1650 PRPC_MESSAGE pRpcMessage,
1651 DWORD* pdwStubPhase);
1652 void CALLBACK ITypeInfo_ReleaseTypeAttr_Proxy(
1653 ITypeInfo* This,
1654 TYPEATTR* pTypeAttr);
1655 HRESULT __RPC_STUB ITypeInfo_ReleaseTypeAttr_Stub(
1656 ITypeInfo* This);
1657 HRESULT CALLBACK ITypeInfo_LocalReleaseFuncDesc_Proxy(
1658 ITypeInfo* This);
1659 void __RPC_STUB ITypeInfo_LocalReleaseFuncDesc_Stub(
1660 struct IRpcStubBuffer* This,
1661 struct IRpcChannelBuffer* pRpcChannelBuffer,
1662 PRPC_MESSAGE pRpcMessage,
1663 DWORD* pdwStubPhase);
1664 void CALLBACK ITypeInfo_ReleaseFuncDesc_Proxy(
1665 ITypeInfo* This,
1666 FUNCDESC* pFuncDesc);
1667 HRESULT __RPC_STUB ITypeInfo_ReleaseFuncDesc_Stub(
1668 ITypeInfo* This);
1669 HRESULT CALLBACK ITypeInfo_LocalReleaseVarDesc_Proxy(
1670 ITypeInfo* This);
1671 void __RPC_STUB ITypeInfo_LocalReleaseVarDesc_Stub(
1672 struct IRpcStubBuffer* This,
1673 struct IRpcChannelBuffer* pRpcChannelBuffer,
1674 PRPC_MESSAGE pRpcMessage,
1675 DWORD* pdwStubPhase);
1676 void CALLBACK ITypeInfo_ReleaseVarDesc_Proxy(
1677 ITypeInfo* This,
1678 VARDESC* pVarDesc);
1679 HRESULT __RPC_STUB ITypeInfo_ReleaseVarDesc_Stub(
1680 ITypeInfo* This);
1682 #endif /* __ITypeInfo_INTERFACE_DEFINED__ */
1684 #ifndef __ITypeInfo2_FWD_DEFINED__
1685 #define __ITypeInfo2_FWD_DEFINED__
1686 typedef struct ITypeInfo2 ITypeInfo2;
1687 #endif
1689 typedef ITypeInfo2 *LPTYPEINFO2;
1691 /*****************************************************************************
1692 * ITypeInfo2 interface
1694 #ifndef __ITypeInfo2_INTERFACE_DEFINED__
1695 #define __ITypeInfo2_INTERFACE_DEFINED__
1697 DEFINE_GUID(IID_ITypeInfo2, 0x00020412, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1698 #if defined(__cplusplus) && !defined(CINTERFACE)
1699 struct ITypeInfo2 : public ITypeInfo
1701 virtual HRESULT STDMETHODCALLTYPE GetTypeKind(
1702 TYPEKIND* pTypeKind) = 0;
1704 virtual HRESULT STDMETHODCALLTYPE GetTypeFlags(
1705 ULONG* pTypeFlags) = 0;
1707 virtual HRESULT STDMETHODCALLTYPE GetFuncIndexOfMemId(
1708 MEMBERID memid,
1709 INVOKEKIND invKind,
1710 UINT* pFuncIndex) = 0;
1712 virtual HRESULT STDMETHODCALLTYPE GetVarIndexOfMemId(
1713 MEMBERID memid,
1714 UINT* pVarIndex) = 0;
1716 virtual HRESULT STDMETHODCALLTYPE GetCustData(
1717 REFGUID guid,
1718 VARIANT* pVarVal) = 0;
1720 virtual HRESULT STDMETHODCALLTYPE GetFuncCustData(
1721 UINT index,
1722 REFGUID guid,
1723 VARIANT* pVarVal) = 0;
1725 virtual HRESULT STDMETHODCALLTYPE GetParamCustData(
1726 UINT indexFunc,
1727 UINT indexParam,
1728 REFGUID guid,
1729 VARIANT* pVarVal) = 0;
1731 virtual HRESULT STDMETHODCALLTYPE GetVarCustData(
1732 UINT index,
1733 REFGUID guid,
1734 VARIANT* pVarVal) = 0;
1736 virtual HRESULT STDMETHODCALLTYPE GetImplTypeCustData(
1737 UINT index,
1738 REFGUID guid,
1739 VARIANT* pVarVal) = 0;
1741 virtual HRESULT STDMETHODCALLTYPE GetDocumentation2(
1742 MEMBERID memid,
1743 LCID lcid,
1744 BSTR* pbstrHelpString,
1745 DWORD* pdwHelpStringContext,
1746 BSTR* pbstrHelpStringDll) = 0;
1748 virtual HRESULT STDMETHODCALLTYPE GetAllCustData(
1749 CUSTDATA* pCustData) = 0;
1751 virtual HRESULT STDMETHODCALLTYPE GetAllFuncCustData(
1752 UINT index,
1753 CUSTDATA* pCustData) = 0;
1755 virtual HRESULT STDMETHODCALLTYPE GetAllParamCustData(
1756 UINT indexFunc,
1757 UINT indexParam,
1758 CUSTDATA* pCustData) = 0;
1760 virtual HRESULT STDMETHODCALLTYPE GetAllVarCustData(
1761 UINT index,
1762 CUSTDATA* pCustData) = 0;
1764 virtual HRESULT STDMETHODCALLTYPE GetAllImplTypeCustData(
1765 UINT index,
1766 CUSTDATA* pCustData) = 0;
1769 #else
1770 typedef struct ITypeInfo2Vtbl ITypeInfo2Vtbl;
1771 struct ITypeInfo2 {
1772 const ITypeInfo2Vtbl* lpVtbl;
1774 struct ITypeInfo2Vtbl {
1775 BEGIN_INTERFACE
1777 /*** IUnknown methods ***/
1778 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1779 ITypeInfo2* This,
1780 REFIID riid,
1781 void** ppvObject);
1783 ULONG (STDMETHODCALLTYPE *AddRef)(
1784 ITypeInfo2* This);
1786 ULONG (STDMETHODCALLTYPE *Release)(
1787 ITypeInfo2* This);
1789 /*** ITypeInfo methods ***/
1790 HRESULT (STDMETHODCALLTYPE *GetTypeAttr)(
1791 ITypeInfo2* This,
1792 TYPEATTR** ppTypeAttr);
1794 HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
1795 ITypeInfo2* This,
1796 ITypeComp** ppTComp);
1798 HRESULT (STDMETHODCALLTYPE *GetFuncDesc)(
1799 ITypeInfo2* This,
1800 UINT index,
1801 FUNCDESC** ppFuncDesc);
1803 HRESULT (STDMETHODCALLTYPE *GetVarDesc)(
1804 ITypeInfo2* This,
1805 UINT index,
1806 VARDESC** ppVarDesc);
1808 HRESULT (STDMETHODCALLTYPE *GetNames)(
1809 ITypeInfo2* This,
1810 MEMBERID memid,
1811 BSTR* rgBstrNames,
1812 UINT cMaxNames,
1813 UINT* pcNames);
1815 HRESULT (STDMETHODCALLTYPE *GetRefTypeOfImplType)(
1816 ITypeInfo2* This,
1817 UINT index,
1818 HREFTYPE* pRefType);
1820 HRESULT (STDMETHODCALLTYPE *GetImplTypeFlags)(
1821 ITypeInfo2* This,
1822 UINT index,
1823 INT* pImplTypeFlags);
1825 HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1826 ITypeInfo2* This,
1827 LPOLESTR* rgszNames,
1828 UINT cNames,
1829 MEMBERID* pMemId);
1831 HRESULT (STDMETHODCALLTYPE *Invoke)(
1832 ITypeInfo2* This,
1833 PVOID pvInstance,
1834 MEMBERID memid,
1835 WORD wFlags,
1836 DISPPARAMS* pDispParams,
1837 VARIANT* pVarResult,
1838 EXCEPINFO* pExcepInfo,
1839 UINT* puArgErr);
1841 HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
1842 ITypeInfo2* This,
1843 MEMBERID memid,
1844 BSTR* pBstrName,
1845 BSTR* pBstrDocString,
1846 DWORD* pdwHelpContext,
1847 BSTR* pBstrHelpFile);
1849 HRESULT (STDMETHODCALLTYPE *GetDllEntry)(
1850 ITypeInfo2* This,
1851 MEMBERID memid,
1852 INVOKEKIND invKind,
1853 BSTR* pBstrDllName,
1854 BSTR* pBstrName,
1855 WORD* pwOrdinal);
1857 HRESULT (STDMETHODCALLTYPE *GetRefTypeInfo)(
1858 ITypeInfo2* This,
1859 HREFTYPE hRefType,
1860 ITypeInfo** ppTInfo);
1862 HRESULT (STDMETHODCALLTYPE *AddressOfMember)(
1863 ITypeInfo2* This,
1864 MEMBERID memid,
1865 INVOKEKIND invKind,
1866 PVOID* ppv);
1868 HRESULT (STDMETHODCALLTYPE *CreateInstance)(
1869 ITypeInfo2* This,
1870 IUnknown* pUnkOuter,
1871 REFIID riid,
1872 PVOID* ppvObj);
1874 HRESULT (STDMETHODCALLTYPE *GetMops)(
1875 ITypeInfo2* This,
1876 MEMBERID memid,
1877 BSTR* pBstrMops);
1879 HRESULT (STDMETHODCALLTYPE *GetContainingTypeLib)(
1880 ITypeInfo2* This,
1881 ITypeLib** ppTLib,
1882 UINT* pIndex);
1884 void (STDMETHODCALLTYPE *ReleaseTypeAttr)(
1885 ITypeInfo2* This,
1886 TYPEATTR* pTypeAttr);
1888 void (STDMETHODCALLTYPE *ReleaseFuncDesc)(
1889 ITypeInfo2* This,
1890 FUNCDESC* pFuncDesc);
1892 void (STDMETHODCALLTYPE *ReleaseVarDesc)(
1893 ITypeInfo2* This,
1894 VARDESC* pVarDesc);
1896 /*** ITypeInfo2 methods ***/
1897 HRESULT (STDMETHODCALLTYPE *GetTypeKind)(
1898 ITypeInfo2* This,
1899 TYPEKIND* pTypeKind);
1901 HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
1902 ITypeInfo2* This,
1903 ULONG* pTypeFlags);
1905 HRESULT (STDMETHODCALLTYPE *GetFuncIndexOfMemId)(
1906 ITypeInfo2* This,
1907 MEMBERID memid,
1908 INVOKEKIND invKind,
1909 UINT* pFuncIndex);
1911 HRESULT (STDMETHODCALLTYPE *GetVarIndexOfMemId)(
1912 ITypeInfo2* This,
1913 MEMBERID memid,
1914 UINT* pVarIndex);
1916 HRESULT (STDMETHODCALLTYPE *GetCustData)(
1917 ITypeInfo2* This,
1918 REFGUID guid,
1919 VARIANT* pVarVal);
1921 HRESULT (STDMETHODCALLTYPE *GetFuncCustData)(
1922 ITypeInfo2* This,
1923 UINT index,
1924 REFGUID guid,
1925 VARIANT* pVarVal);
1927 HRESULT (STDMETHODCALLTYPE *GetParamCustData)(
1928 ITypeInfo2* This,
1929 UINT indexFunc,
1930 UINT indexParam,
1931 REFGUID guid,
1932 VARIANT* pVarVal);
1934 HRESULT (STDMETHODCALLTYPE *GetVarCustData)(
1935 ITypeInfo2* This,
1936 UINT index,
1937 REFGUID guid,
1938 VARIANT* pVarVal);
1940 HRESULT (STDMETHODCALLTYPE *GetImplTypeCustData)(
1941 ITypeInfo2* This,
1942 UINT index,
1943 REFGUID guid,
1944 VARIANT* pVarVal);
1946 HRESULT (STDMETHODCALLTYPE *GetDocumentation2)(
1947 ITypeInfo2* This,
1948 MEMBERID memid,
1949 LCID lcid,
1950 BSTR* pbstrHelpString,
1951 DWORD* pdwHelpStringContext,
1952 BSTR* pbstrHelpStringDll);
1954 HRESULT (STDMETHODCALLTYPE *GetAllCustData)(
1955 ITypeInfo2* This,
1956 CUSTDATA* pCustData);
1958 HRESULT (STDMETHODCALLTYPE *GetAllFuncCustData)(
1959 ITypeInfo2* This,
1960 UINT index,
1961 CUSTDATA* pCustData);
1963 HRESULT (STDMETHODCALLTYPE *GetAllParamCustData)(
1964 ITypeInfo2* This,
1965 UINT indexFunc,
1966 UINT indexParam,
1967 CUSTDATA* pCustData);
1969 HRESULT (STDMETHODCALLTYPE *GetAllVarCustData)(
1970 ITypeInfo2* This,
1971 UINT index,
1972 CUSTDATA* pCustData);
1974 HRESULT (STDMETHODCALLTYPE *GetAllImplTypeCustData)(
1975 ITypeInfo2* This,
1976 UINT index,
1977 CUSTDATA* pCustData);
1979 END_INTERFACE
1982 #ifdef COBJMACROS
1983 /*** IUnknown methods ***/
1984 #define ITypeInfo2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1985 #define ITypeInfo2_AddRef(p) (p)->lpVtbl->AddRef(p)
1986 #define ITypeInfo2_Release(p) (p)->lpVtbl->Release(p)
1987 /*** ITypeInfo methods ***/
1988 #define ITypeInfo2_GetTypeAttr(p,a) (p)->lpVtbl->GetTypeAttr(p,a)
1989 #define ITypeInfo2_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
1990 #define ITypeInfo2_GetFuncDesc(p,a,b) (p)->lpVtbl->GetFuncDesc(p,a,b)
1991 #define ITypeInfo2_GetVarDesc(p,a,b) (p)->lpVtbl->GetVarDesc(p,a,b)
1992 #define ITypeInfo2_GetNames(p,a,b,c,d) (p)->lpVtbl->GetNames(p,a,b,c,d)
1993 #define ITypeInfo2_GetRefTypeOfImplType(p,a,b) (p)->lpVtbl->GetRefTypeOfImplType(p,a,b)
1994 #define ITypeInfo2_GetImplTypeFlags(p,a,b) (p)->lpVtbl->GetImplTypeFlags(p,a,b)
1995 #define ITypeInfo2_GetIDsOfNames(p,a,b,c) (p)->lpVtbl->GetIDsOfNames(p,a,b,c)
1996 #define ITypeInfo2_Invoke(p,a,b,c,d,e,f,g) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g)
1997 #define ITypeInfo2_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
1998 #define ITypeInfo2_GetDllEntry(p,a,b,c,d,e) (p)->lpVtbl->GetDllEntry(p,a,b,c,d,e)
1999 #define ITypeInfo2_GetRefTypeInfo(p,a,b) (p)->lpVtbl->GetRefTypeInfo(p,a,b)
2000 #define ITypeInfo2_AddressOfMember(p,a,b,c) (p)->lpVtbl->AddressOfMember(p,a,b,c)
2001 #define ITypeInfo2_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
2002 #define ITypeInfo2_GetMops(p,a,b) (p)->lpVtbl->GetMops(p,a,b)
2003 #define ITypeInfo2_GetContainingTypeLib(p,a,b) (p)->lpVtbl->GetContainingTypeLib(p,a,b)
2004 #define ITypeInfo2_ReleaseTypeAttr(p,a) (p)->lpVtbl->ReleaseTypeAttr(p,a)
2005 #define ITypeInfo2_ReleaseFuncDesc(p,a) (p)->lpVtbl->ReleaseFuncDesc(p,a)
2006 #define ITypeInfo2_ReleaseVarDesc(p,a) (p)->lpVtbl->ReleaseVarDesc(p,a)
2007 /*** ITypeInfo2 methods ***/
2008 #define ITypeInfo2_GetTypeKind(p,a) (p)->lpVtbl->GetTypeKind(p,a)
2009 #define ITypeInfo2_GetTypeFlags(p,a) (p)->lpVtbl->GetTypeFlags(p,a)
2010 #define ITypeInfo2_GetFuncIndexOfMemId(p,a,b,c) (p)->lpVtbl->GetFuncIndexOfMemId(p,a,b,c)
2011 #define ITypeInfo2_GetVarIndexOfMemId(p,a,b) (p)->lpVtbl->GetVarIndexOfMemId(p,a,b)
2012 #define ITypeInfo2_GetCustData(p,a,b) (p)->lpVtbl->GetCustData(p,a,b)
2013 #define ITypeInfo2_GetFuncCustData(p,a,b,c) (p)->lpVtbl->GetFuncCustData(p,a,b,c)
2014 #define ITypeInfo2_GetParamCustData(p,a,b,c,d) (p)->lpVtbl->GetParamCustData(p,a,b,c,d)
2015 #define ITypeInfo2_GetVarCustData(p,a,b,c) (p)->lpVtbl->GetVarCustData(p,a,b,c)
2016 #define ITypeInfo2_GetImplTypeCustData(p,a,b,c) (p)->lpVtbl->GetImplTypeCustData(p,a,b,c)
2017 #define ITypeInfo2_GetDocumentation2(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation2(p,a,b,c,d,e)
2018 #define ITypeInfo2_GetAllCustData(p,a) (p)->lpVtbl->GetAllCustData(p,a)
2019 #define ITypeInfo2_GetAllFuncCustData(p,a,b) (p)->lpVtbl->GetAllFuncCustData(p,a,b)
2020 #define ITypeInfo2_GetAllParamCustData(p,a,b,c) (p)->lpVtbl->GetAllParamCustData(p,a,b,c)
2021 #define ITypeInfo2_GetAllVarCustData(p,a,b) (p)->lpVtbl->GetAllVarCustData(p,a,b)
2022 #define ITypeInfo2_GetAllImplTypeCustData(p,a,b) (p)->lpVtbl->GetAllImplTypeCustData(p,a,b)
2023 #endif
2025 #endif
2027 #define ITypeInfo2_METHODS \
2028 /*** IUnknown methods ***/ \
2029 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2030 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2031 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2032 /*** ITypeInfo methods ***/ \
2033 STDMETHOD_(HRESULT,GetTypeAttr)(THIS_ TYPEATTR** ppTypeAttr) PURE; \
2034 STDMETHOD_(HRESULT,GetTypeComp)(THIS_ ITypeComp** ppTComp) PURE; \
2035 STDMETHOD_(HRESULT,GetFuncDesc)(THIS_ UINT index, FUNCDESC** ppFuncDesc) PURE; \
2036 STDMETHOD_(HRESULT,GetVarDesc)(THIS_ UINT index, VARDESC** ppVarDesc) PURE; \
2037 STDMETHOD_(HRESULT,GetNames)(THIS_ MEMBERID memid, BSTR* rgBstrNames, UINT cMaxNames, UINT* pcNames) PURE; \
2038 STDMETHOD_(HRESULT,GetRefTypeOfImplType)(THIS_ UINT index, HREFTYPE* pRefType) PURE; \
2039 STDMETHOD_(HRESULT,GetImplTypeFlags)(THIS_ UINT index, INT* pImplTypeFlags) PURE; \
2040 STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ LPOLESTR* rgszNames, UINT cNames, MEMBERID* pMemId) PURE; \
2041 STDMETHOD_(HRESULT,Invoke)(THIS_ PVOID pvInstance, MEMBERID memid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) PURE; \
2042 STDMETHOD_(HRESULT,GetDocumentation)(THIS_ MEMBERID memid, BSTR* pBstrName, BSTR* pBstrDocString, DWORD* pdwHelpContext, BSTR* pBstrHelpFile) PURE; \
2043 STDMETHOD_(HRESULT,GetDllEntry)(THIS_ MEMBERID memid, INVOKEKIND invKind, BSTR* pBstrDllName, BSTR* pBstrName, WORD* pwOrdinal) PURE; \
2044 STDMETHOD_(HRESULT,GetRefTypeInfo)(THIS_ HREFTYPE hRefType, ITypeInfo** ppTInfo) PURE; \
2045 STDMETHOD_(HRESULT,AddressOfMember)(THIS_ MEMBERID memid, INVOKEKIND invKind, PVOID* ppv) PURE; \
2046 STDMETHOD_(HRESULT,CreateInstance)(THIS_ IUnknown* pUnkOuter, REFIID riid, PVOID* ppvObj) PURE; \
2047 STDMETHOD_(HRESULT,GetMops)(THIS_ MEMBERID memid, BSTR* pBstrMops) PURE; \
2048 STDMETHOD_(HRESULT,GetContainingTypeLib)(THIS_ ITypeLib** ppTLib, UINT* pIndex) PURE; \
2049 STDMETHOD_(void,ReleaseTypeAttr)(THIS_ TYPEATTR* pTypeAttr) PURE; \
2050 STDMETHOD_(void,ReleaseFuncDesc)(THIS_ FUNCDESC* pFuncDesc) PURE; \
2051 STDMETHOD_(void,ReleaseVarDesc)(THIS_ VARDESC* pVarDesc) PURE; \
2052 /*** ITypeInfo2 methods ***/ \
2053 STDMETHOD_(HRESULT,GetTypeKind)(THIS_ TYPEKIND* pTypeKind) PURE; \
2054 STDMETHOD_(HRESULT,GetTypeFlags)(THIS_ ULONG* pTypeFlags) PURE; \
2055 STDMETHOD_(HRESULT,GetFuncIndexOfMemId)(THIS_ MEMBERID memid, INVOKEKIND invKind, UINT* pFuncIndex) PURE; \
2056 STDMETHOD_(HRESULT,GetVarIndexOfMemId)(THIS_ MEMBERID memid, UINT* pVarIndex) PURE; \
2057 STDMETHOD_(HRESULT,GetCustData)(THIS_ REFGUID guid, VARIANT* pVarVal) PURE; \
2058 STDMETHOD_(HRESULT,GetFuncCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
2059 STDMETHOD_(HRESULT,GetParamCustData)(THIS_ UINT indexFunc, UINT indexParam, REFGUID guid, VARIANT* pVarVal) PURE; \
2060 STDMETHOD_(HRESULT,GetVarCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
2061 STDMETHOD_(HRESULT,GetImplTypeCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
2062 STDMETHOD_(HRESULT,GetDocumentation2)(THIS_ MEMBERID memid, LCID lcid, BSTR* pbstrHelpString, DWORD* pdwHelpStringContext, BSTR* pbstrHelpStringDll) PURE; \
2063 STDMETHOD_(HRESULT,GetAllCustData)(THIS_ CUSTDATA* pCustData) PURE; \
2064 STDMETHOD_(HRESULT,GetAllFuncCustData)(THIS_ UINT index, CUSTDATA* pCustData) PURE; \
2065 STDMETHOD_(HRESULT,GetAllParamCustData)(THIS_ UINT indexFunc, UINT indexParam, CUSTDATA* pCustData) PURE; \
2066 STDMETHOD_(HRESULT,GetAllVarCustData)(THIS_ UINT index, CUSTDATA* pCustData) PURE; \
2067 STDMETHOD_(HRESULT,GetAllImplTypeCustData)(THIS_ UINT index, CUSTDATA* pCustData) PURE;
2069 HRESULT CALLBACK ITypeInfo2_GetTypeKind_Proxy(
2070 ITypeInfo2* This,
2071 TYPEKIND* pTypeKind);
2072 void __RPC_STUB ITypeInfo2_GetTypeKind_Stub(
2073 struct IRpcStubBuffer* This,
2074 struct IRpcChannelBuffer* pRpcChannelBuffer,
2075 PRPC_MESSAGE pRpcMessage,
2076 DWORD* pdwStubPhase);
2077 HRESULT CALLBACK ITypeInfo2_GetTypeFlags_Proxy(
2078 ITypeInfo2* This,
2079 ULONG* pTypeFlags);
2080 void __RPC_STUB ITypeInfo2_GetTypeFlags_Stub(
2081 struct IRpcStubBuffer* This,
2082 struct IRpcChannelBuffer* pRpcChannelBuffer,
2083 PRPC_MESSAGE pRpcMessage,
2084 DWORD* pdwStubPhase);
2085 HRESULT CALLBACK ITypeInfo2_GetFuncIndexOfMemId_Proxy(
2086 ITypeInfo2* This,
2087 MEMBERID memid,
2088 INVOKEKIND invKind,
2089 UINT* pFuncIndex);
2090 void __RPC_STUB ITypeInfo2_GetFuncIndexOfMemId_Stub(
2091 struct IRpcStubBuffer* This,
2092 struct IRpcChannelBuffer* pRpcChannelBuffer,
2093 PRPC_MESSAGE pRpcMessage,
2094 DWORD* pdwStubPhase);
2095 HRESULT CALLBACK ITypeInfo2_GetVarIndexOfMemId_Proxy(
2096 ITypeInfo2* This,
2097 MEMBERID memid,
2098 UINT* pVarIndex);
2099 void __RPC_STUB ITypeInfo2_GetVarIndexOfMemId_Stub(
2100 struct IRpcStubBuffer* This,
2101 struct IRpcChannelBuffer* pRpcChannelBuffer,
2102 PRPC_MESSAGE pRpcMessage,
2103 DWORD* pdwStubPhase);
2104 HRESULT CALLBACK ITypeInfo2_GetCustData_Proxy(
2105 ITypeInfo2* This,
2106 REFGUID guid,
2107 VARIANT* pVarVal);
2108 void __RPC_STUB ITypeInfo2_GetCustData_Stub(
2109 struct IRpcStubBuffer* This,
2110 struct IRpcChannelBuffer* pRpcChannelBuffer,
2111 PRPC_MESSAGE pRpcMessage,
2112 DWORD* pdwStubPhase);
2113 HRESULT CALLBACK ITypeInfo2_GetFuncCustData_Proxy(
2114 ITypeInfo2* This,
2115 UINT index,
2116 REFGUID guid,
2117 VARIANT* pVarVal);
2118 void __RPC_STUB ITypeInfo2_GetFuncCustData_Stub(
2119 struct IRpcStubBuffer* This,
2120 struct IRpcChannelBuffer* pRpcChannelBuffer,
2121 PRPC_MESSAGE pRpcMessage,
2122 DWORD* pdwStubPhase);
2123 HRESULT CALLBACK ITypeInfo2_GetParamCustData_Proxy(
2124 ITypeInfo2* This,
2125 UINT indexFunc,
2126 UINT indexParam,
2127 REFGUID guid,
2128 VARIANT* pVarVal);
2129 void __RPC_STUB ITypeInfo2_GetParamCustData_Stub(
2130 struct IRpcStubBuffer* This,
2131 struct IRpcChannelBuffer* pRpcChannelBuffer,
2132 PRPC_MESSAGE pRpcMessage,
2133 DWORD* pdwStubPhase);
2134 HRESULT CALLBACK ITypeInfo2_GetVarCustData_Proxy(
2135 ITypeInfo2* This,
2136 UINT index,
2137 REFGUID guid,
2138 VARIANT* pVarVal);
2139 void __RPC_STUB ITypeInfo2_GetVarCustData_Stub(
2140 struct IRpcStubBuffer* This,
2141 struct IRpcChannelBuffer* pRpcChannelBuffer,
2142 PRPC_MESSAGE pRpcMessage,
2143 DWORD* pdwStubPhase);
2144 HRESULT CALLBACK ITypeInfo2_GetImplTypeCustData_Proxy(
2145 ITypeInfo2* This,
2146 UINT index,
2147 REFGUID guid,
2148 VARIANT* pVarVal);
2149 void __RPC_STUB ITypeInfo2_GetImplTypeCustData_Stub(
2150 struct IRpcStubBuffer* This,
2151 struct IRpcChannelBuffer* pRpcChannelBuffer,
2152 PRPC_MESSAGE pRpcMessage,
2153 DWORD* pdwStubPhase);
2154 HRESULT CALLBACK ITypeInfo2_RemoteGetDocumentation2_Proxy(
2155 ITypeInfo2* This,
2156 MEMBERID memid,
2157 LCID lcid,
2158 DWORD refPtrFlags,
2159 BSTR* pbstrHelpString,
2160 DWORD* pdwHelpStringContext,
2161 BSTR* pbstrHelpStringDll);
2162 void __RPC_STUB ITypeInfo2_RemoteGetDocumentation2_Stub(
2163 struct IRpcStubBuffer* This,
2164 struct IRpcChannelBuffer* pRpcChannelBuffer,
2165 PRPC_MESSAGE pRpcMessage,
2166 DWORD* pdwStubPhase);
2167 HRESULT CALLBACK ITypeInfo2_GetDocumentation2_Proxy(
2168 ITypeInfo2* This,
2169 MEMBERID memid,
2170 LCID lcid,
2171 BSTR* pbstrHelpString,
2172 DWORD* pdwHelpStringContext,
2173 BSTR* pbstrHelpStringDll);
2174 HRESULT __RPC_STUB ITypeInfo2_GetDocumentation2_Stub(
2175 ITypeInfo2* This,
2176 MEMBERID memid,
2177 LCID lcid,
2178 DWORD refPtrFlags,
2179 BSTR* pbstrHelpString,
2180 DWORD* pdwHelpStringContext,
2181 BSTR* pbstrHelpStringDll);
2182 HRESULT CALLBACK ITypeInfo2_GetAllCustData_Proxy(
2183 ITypeInfo2* This,
2184 CUSTDATA* pCustData);
2185 void __RPC_STUB ITypeInfo2_GetAllCustData_Stub(
2186 struct IRpcStubBuffer* This,
2187 struct IRpcChannelBuffer* pRpcChannelBuffer,
2188 PRPC_MESSAGE pRpcMessage,
2189 DWORD* pdwStubPhase);
2190 HRESULT CALLBACK ITypeInfo2_GetAllFuncCustData_Proxy(
2191 ITypeInfo2* This,
2192 UINT index,
2193 CUSTDATA* pCustData);
2194 void __RPC_STUB ITypeInfo2_GetAllFuncCustData_Stub(
2195 struct IRpcStubBuffer* This,
2196 struct IRpcChannelBuffer* pRpcChannelBuffer,
2197 PRPC_MESSAGE pRpcMessage,
2198 DWORD* pdwStubPhase);
2199 HRESULT CALLBACK ITypeInfo2_GetAllParamCustData_Proxy(
2200 ITypeInfo2* This,
2201 UINT indexFunc,
2202 UINT indexParam,
2203 CUSTDATA* pCustData);
2204 void __RPC_STUB ITypeInfo2_GetAllParamCustData_Stub(
2205 struct IRpcStubBuffer* This,
2206 struct IRpcChannelBuffer* pRpcChannelBuffer,
2207 PRPC_MESSAGE pRpcMessage,
2208 DWORD* pdwStubPhase);
2209 HRESULT CALLBACK ITypeInfo2_GetAllVarCustData_Proxy(
2210 ITypeInfo2* This,
2211 UINT index,
2212 CUSTDATA* pCustData);
2213 void __RPC_STUB ITypeInfo2_GetAllVarCustData_Stub(
2214 struct IRpcStubBuffer* This,
2215 struct IRpcChannelBuffer* pRpcChannelBuffer,
2216 PRPC_MESSAGE pRpcMessage,
2217 DWORD* pdwStubPhase);
2218 HRESULT CALLBACK ITypeInfo2_GetAllImplTypeCustData_Proxy(
2219 ITypeInfo2* This,
2220 UINT index,
2221 CUSTDATA* pCustData);
2222 void __RPC_STUB ITypeInfo2_GetAllImplTypeCustData_Stub(
2223 struct IRpcStubBuffer* This,
2224 struct IRpcChannelBuffer* pRpcChannelBuffer,
2225 PRPC_MESSAGE pRpcMessage,
2226 DWORD* pdwStubPhase);
2228 #endif /* __ITypeInfo2_INTERFACE_DEFINED__ */
2230 typedef ITypeLib *LPTYPELIB;
2232 typedef enum tagSYSKIND {
2233 SYS_WIN16 = 0,
2234 SYS_WIN32,
2235 SYS_MAC
2236 } SYSKIND;
2238 typedef enum tagLIBFLAGS {
2239 LIBFLAG_FRESTRICTED = 0x1,
2240 LIBFLAG_FCONTROL = 0x2,
2241 LIBFLAG_FHIDDEN = 0x4,
2242 LIBFLAG_FHASDISKIMAGE = 0x8
2243 } LIBFLAGS;
2245 typedef struct tagTLIBATTR {
2246 GUID guid;
2247 LCID lcid;
2248 SYSKIND syskind;
2249 WORD wMajorVerNum;
2250 WORD wMinorVerNum;
2251 WORD wLibFlags;
2252 } TLIBATTR, *LPTLIBATTR;
2254 /*****************************************************************************
2255 * ITypeLib interface
2257 #ifndef __ITypeLib_INTERFACE_DEFINED__
2258 #define __ITypeLib_INTERFACE_DEFINED__
2260 DEFINE_GUID(IID_ITypeLib, 0x00020402, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2261 #if defined(__cplusplus) && !defined(CINTERFACE)
2262 struct ITypeLib : public IUnknown
2264 virtual UINT STDMETHODCALLTYPE GetTypeInfoCount(
2265 ) = 0;
2267 virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
2268 UINT index,
2269 ITypeInfo** ppTInfo) = 0;
2271 virtual HRESULT STDMETHODCALLTYPE GetTypeInfoType(
2272 UINT index,
2273 TYPEKIND* pTKind) = 0;
2275 virtual HRESULT STDMETHODCALLTYPE GetTypeInfoOfGuid(
2276 REFGUID guid,
2277 ITypeInfo** ppTinfo) = 0;
2279 virtual HRESULT STDMETHODCALLTYPE GetLibAttr(
2280 TLIBATTR** ppTLibAttr) = 0;
2282 virtual HRESULT STDMETHODCALLTYPE GetTypeComp(
2283 ITypeComp** ppTComp) = 0;
2285 virtual HRESULT STDMETHODCALLTYPE GetDocumentation(
2286 INT index,
2287 BSTR* pBstrName,
2288 BSTR* pBstrDocString,
2289 DWORD* pdwHelpContext,
2290 BSTR* pBstrHelpFile) = 0;
2292 virtual HRESULT STDMETHODCALLTYPE IsName(
2293 LPOLESTR szNameBuf,
2294 ULONG lHashVal,
2295 BOOL* pfName) = 0;
2297 virtual HRESULT STDMETHODCALLTYPE FindName(
2298 LPOLESTR szNameBuf,
2299 ULONG lHashVal,
2300 ITypeInfo** ppTInfo,
2301 MEMBERID* rgMemId,
2302 USHORT* pcFound) = 0;
2304 virtual void STDMETHODCALLTYPE ReleaseTLibAttr(
2305 TLIBATTR* pTLibAttr) = 0;
2308 #else
2309 typedef struct ITypeLibVtbl ITypeLibVtbl;
2310 struct ITypeLib {
2311 const ITypeLibVtbl* lpVtbl;
2313 struct ITypeLibVtbl {
2314 BEGIN_INTERFACE
2316 /*** IUnknown methods ***/
2317 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2318 ITypeLib* This,
2319 REFIID riid,
2320 void** ppvObject);
2322 ULONG (STDMETHODCALLTYPE *AddRef)(
2323 ITypeLib* This);
2325 ULONG (STDMETHODCALLTYPE *Release)(
2326 ITypeLib* This);
2328 /*** ITypeLib methods ***/
2329 UINT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2330 ITypeLib* This);
2332 HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2333 ITypeLib* This,
2334 UINT index,
2335 ITypeInfo** ppTInfo);
2337 HRESULT (STDMETHODCALLTYPE *GetTypeInfoType)(
2338 ITypeLib* This,
2339 UINT index,
2340 TYPEKIND* pTKind);
2342 HRESULT (STDMETHODCALLTYPE *GetTypeInfoOfGuid)(
2343 ITypeLib* This,
2344 REFGUID guid,
2345 ITypeInfo** ppTinfo);
2347 HRESULT (STDMETHODCALLTYPE *GetLibAttr)(
2348 ITypeLib* This,
2349 TLIBATTR** ppTLibAttr);
2351 HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
2352 ITypeLib* This,
2353 ITypeComp** ppTComp);
2355 HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
2356 ITypeLib* This,
2357 INT index,
2358 BSTR* pBstrName,
2359 BSTR* pBstrDocString,
2360 DWORD* pdwHelpContext,
2361 BSTR* pBstrHelpFile);
2363 HRESULT (STDMETHODCALLTYPE *IsName)(
2364 ITypeLib* This,
2365 LPOLESTR szNameBuf,
2366 ULONG lHashVal,
2367 BOOL* pfName);
2369 HRESULT (STDMETHODCALLTYPE *FindName)(
2370 ITypeLib* This,
2371 LPOLESTR szNameBuf,
2372 ULONG lHashVal,
2373 ITypeInfo** ppTInfo,
2374 MEMBERID* rgMemId,
2375 USHORT* pcFound);
2377 void (STDMETHODCALLTYPE *ReleaseTLibAttr)(
2378 ITypeLib* This,
2379 TLIBATTR* pTLibAttr);
2381 END_INTERFACE
2384 #ifdef COBJMACROS
2385 /*** IUnknown methods ***/
2386 #define ITypeLib_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2387 #define ITypeLib_AddRef(p) (p)->lpVtbl->AddRef(p)
2388 #define ITypeLib_Release(p) (p)->lpVtbl->Release(p)
2389 /*** ITypeLib methods ***/
2390 #define ITypeLib_GetTypeInfoCount(p) (p)->lpVtbl->GetTypeInfoCount(p)
2391 #define ITypeLib_GetTypeInfo(p,a,b) (p)->lpVtbl->GetTypeInfo(p,a,b)
2392 #define ITypeLib_GetTypeInfoType(p,a,b) (p)->lpVtbl->GetTypeInfoType(p,a,b)
2393 #define ITypeLib_GetTypeInfoOfGuid(p,a,b) (p)->lpVtbl->GetTypeInfoOfGuid(p,a,b)
2394 #define ITypeLib_GetLibAttr(p,a) (p)->lpVtbl->GetLibAttr(p,a)
2395 #define ITypeLib_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
2396 #define ITypeLib_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
2397 #define ITypeLib_IsName(p,a,b,c) (p)->lpVtbl->IsName(p,a,b,c)
2398 #define ITypeLib_FindName(p,a,b,c,d,e) (p)->lpVtbl->FindName(p,a,b,c,d,e)
2399 #define ITypeLib_ReleaseTLibAttr(p,a) (p)->lpVtbl->ReleaseTLibAttr(p,a)
2400 #endif
2402 #endif
2404 #define ITypeLib_METHODS \
2405 /*** IUnknown methods ***/ \
2406 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2407 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2408 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2409 /*** ITypeLib methods ***/ \
2410 STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE; \
2411 STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ UINT index, ITypeInfo** ppTInfo) PURE; \
2412 STDMETHOD_(HRESULT,GetTypeInfoType)(THIS_ UINT index, TYPEKIND* pTKind) PURE; \
2413 STDMETHOD_(HRESULT,GetTypeInfoOfGuid)(THIS_ REFGUID guid, ITypeInfo** ppTinfo) PURE; \
2414 STDMETHOD_(HRESULT,GetLibAttr)(THIS_ TLIBATTR** ppTLibAttr) PURE; \
2415 STDMETHOD_(HRESULT,GetTypeComp)(THIS_ ITypeComp** ppTComp) PURE; \
2416 STDMETHOD_(HRESULT,GetDocumentation)(THIS_ INT index, BSTR* pBstrName, BSTR* pBstrDocString, DWORD* pdwHelpContext, BSTR* pBstrHelpFile) PURE; \
2417 STDMETHOD_(HRESULT,IsName)(THIS_ LPOLESTR szNameBuf, ULONG lHashVal, BOOL* pfName) PURE; \
2418 STDMETHOD_(HRESULT,FindName)(THIS_ LPOLESTR szNameBuf, ULONG lHashVal, ITypeInfo** ppTInfo, MEMBERID* rgMemId, USHORT* pcFound) PURE; \
2419 STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR* pTLibAttr) PURE;
2421 HRESULT CALLBACK ITypeLib_RemoteGetTypeInfoCount_Proxy(
2422 ITypeLib* This,
2423 UINT* pcTInfo);
2424 void __RPC_STUB ITypeLib_RemoteGetTypeInfoCount_Stub(
2425 struct IRpcStubBuffer* This,
2426 struct IRpcChannelBuffer* pRpcChannelBuffer,
2427 PRPC_MESSAGE pRpcMessage,
2428 DWORD* pdwStubPhase);
2429 UINT CALLBACK ITypeLib_GetTypeInfoCount_Proxy(
2430 ITypeLib* This);
2431 HRESULT __RPC_STUB ITypeLib_GetTypeInfoCount_Stub(
2432 ITypeLib* This,
2433 UINT* pcTInfo);
2434 HRESULT CALLBACK ITypeLib_GetTypeInfo_Proxy(
2435 ITypeLib* This,
2436 UINT index,
2437 ITypeInfo** ppTInfo);
2438 void __RPC_STUB ITypeLib_GetTypeInfo_Stub(
2439 struct IRpcStubBuffer* This,
2440 struct IRpcChannelBuffer* pRpcChannelBuffer,
2441 PRPC_MESSAGE pRpcMessage,
2442 DWORD* pdwStubPhase);
2443 HRESULT CALLBACK ITypeLib_GetTypeInfoType_Proxy(
2444 ITypeLib* This,
2445 UINT index,
2446 TYPEKIND* pTKind);
2447 void __RPC_STUB ITypeLib_GetTypeInfoType_Stub(
2448 struct IRpcStubBuffer* This,
2449 struct IRpcChannelBuffer* pRpcChannelBuffer,
2450 PRPC_MESSAGE pRpcMessage,
2451 DWORD* pdwStubPhase);
2452 HRESULT CALLBACK ITypeLib_GetTypeInfoOfGuid_Proxy(
2453 ITypeLib* This,
2454 REFGUID guid,
2455 ITypeInfo** ppTinfo);
2456 void __RPC_STUB ITypeLib_GetTypeInfoOfGuid_Stub(
2457 struct IRpcStubBuffer* This,
2458 struct IRpcChannelBuffer* pRpcChannelBuffer,
2459 PRPC_MESSAGE pRpcMessage,
2460 DWORD* pdwStubPhase);
2461 HRESULT CALLBACK ITypeLib_RemoteGetLibAttr_Proxy(
2462 ITypeLib* This,
2463 LPTLIBATTR* ppTLibAttr,
2464 CLEANLOCALSTORAGE* pDummy);
2465 void __RPC_STUB ITypeLib_RemoteGetLibAttr_Stub(
2466 struct IRpcStubBuffer* This,
2467 struct IRpcChannelBuffer* pRpcChannelBuffer,
2468 PRPC_MESSAGE pRpcMessage,
2469 DWORD* pdwStubPhase);
2470 HRESULT CALLBACK ITypeLib_GetLibAttr_Proxy(
2471 ITypeLib* This,
2472 TLIBATTR** ppTLibAttr);
2473 HRESULT __RPC_STUB ITypeLib_GetLibAttr_Stub(
2474 ITypeLib* This,
2475 LPTLIBATTR* ppTLibAttr,
2476 CLEANLOCALSTORAGE* pDummy);
2477 HRESULT CALLBACK ITypeLib_GetTypeComp_Proxy(
2478 ITypeLib* This,
2479 ITypeComp** ppTComp);
2480 void __RPC_STUB ITypeLib_GetTypeComp_Stub(
2481 struct IRpcStubBuffer* This,
2482 struct IRpcChannelBuffer* pRpcChannelBuffer,
2483 PRPC_MESSAGE pRpcMessage,
2484 DWORD* pdwStubPhase);
2485 HRESULT CALLBACK ITypeLib_RemoteGetDocumentation_Proxy(
2486 ITypeLib* This,
2487 INT index,
2488 DWORD refPtrFlags,
2489 BSTR* pBstrName,
2490 BSTR* pBstrDocString,
2491 DWORD* pdwHelpContext,
2492 BSTR* pBstrHelpFile);
2493 void __RPC_STUB ITypeLib_RemoteGetDocumentation_Stub(
2494 struct IRpcStubBuffer* This,
2495 struct IRpcChannelBuffer* pRpcChannelBuffer,
2496 PRPC_MESSAGE pRpcMessage,
2497 DWORD* pdwStubPhase);
2498 HRESULT CALLBACK ITypeLib_GetDocumentation_Proxy(
2499 ITypeLib* This,
2500 INT index,
2501 BSTR* pBstrName,
2502 BSTR* pBstrDocString,
2503 DWORD* pdwHelpContext,
2504 BSTR* pBstrHelpFile);
2505 HRESULT __RPC_STUB ITypeLib_GetDocumentation_Stub(
2506 ITypeLib* This,
2507 INT index,
2508 DWORD refPtrFlags,
2509 BSTR* pBstrName,
2510 BSTR* pBstrDocString,
2511 DWORD* pdwHelpContext,
2512 BSTR* pBstrHelpFile);
2513 HRESULT CALLBACK ITypeLib_RemoteIsName_Proxy(
2514 ITypeLib* This,
2515 LPOLESTR szNameBuf,
2516 ULONG lHashVal,
2517 BOOL* pfName,
2518 BSTR* pBstrLibName);
2519 void __RPC_STUB ITypeLib_RemoteIsName_Stub(
2520 struct IRpcStubBuffer* This,
2521 struct IRpcChannelBuffer* pRpcChannelBuffer,
2522 PRPC_MESSAGE pRpcMessage,
2523 DWORD* pdwStubPhase);
2524 HRESULT CALLBACK ITypeLib_IsName_Proxy(
2525 ITypeLib* This,
2526 LPOLESTR szNameBuf,
2527 ULONG lHashVal,
2528 BOOL* pfName);
2529 HRESULT __RPC_STUB ITypeLib_IsName_Stub(
2530 ITypeLib* This,
2531 LPOLESTR szNameBuf,
2532 ULONG lHashVal,
2533 BOOL* pfName,
2534 BSTR* pBstrLibName);
2535 HRESULT CALLBACK ITypeLib_RemoteFindName_Proxy(
2536 ITypeLib* This,
2537 LPOLESTR szNameBuf,
2538 ULONG lHashVal,
2539 ITypeInfo** ppTInfo,
2540 MEMBERID* rgMemId,
2541 USHORT* pcFound,
2542 BSTR* pBstrLibName);
2543 void __RPC_STUB ITypeLib_RemoteFindName_Stub(
2544 struct IRpcStubBuffer* This,
2545 struct IRpcChannelBuffer* pRpcChannelBuffer,
2546 PRPC_MESSAGE pRpcMessage,
2547 DWORD* pdwStubPhase);
2548 HRESULT CALLBACK ITypeLib_FindName_Proxy(
2549 ITypeLib* This,
2550 LPOLESTR szNameBuf,
2551 ULONG lHashVal,
2552 ITypeInfo** ppTInfo,
2553 MEMBERID* rgMemId,
2554 USHORT* pcFound);
2555 HRESULT __RPC_STUB ITypeLib_FindName_Stub(
2556 ITypeLib* This,
2557 LPOLESTR szNameBuf,
2558 ULONG lHashVal,
2559 ITypeInfo** ppTInfo,
2560 MEMBERID* rgMemId,
2561 USHORT* pcFound,
2562 BSTR* pBstrLibName);
2563 HRESULT CALLBACK ITypeLib_LocalReleaseTLibAttr_Proxy(
2564 ITypeLib* This);
2565 void __RPC_STUB ITypeLib_LocalReleaseTLibAttr_Stub(
2566 struct IRpcStubBuffer* This,
2567 struct IRpcChannelBuffer* pRpcChannelBuffer,
2568 PRPC_MESSAGE pRpcMessage,
2569 DWORD* pdwStubPhase);
2570 void CALLBACK ITypeLib_ReleaseTLibAttr_Proxy(
2571 ITypeLib* This,
2572 TLIBATTR* pTLibAttr);
2573 HRESULT __RPC_STUB ITypeLib_ReleaseTLibAttr_Stub(
2574 ITypeLib* This);
2576 #endif /* __ITypeLib_INTERFACE_DEFINED__ */
2578 #ifndef __ITypeLib2_FWD_DEFINED__
2579 #define __ITypeLib2_FWD_DEFINED__
2580 typedef struct ITypeLib2 ITypeLib2;
2581 #endif
2583 typedef ITypeLib2 *LPTYPELIB2;
2585 /*****************************************************************************
2586 * ITypeLib2 interface
2588 #ifndef __ITypeLib2_INTERFACE_DEFINED__
2589 #define __ITypeLib2_INTERFACE_DEFINED__
2591 DEFINE_GUID(IID_ITypeLib2, 0x00020411, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2592 #if defined(__cplusplus) && !defined(CINTERFACE)
2593 struct ITypeLib2 : public ITypeLib
2595 virtual HRESULT STDMETHODCALLTYPE GetCustData(
2596 REFGUID guid,
2597 VARIANT* pVarVal) = 0;
2599 virtual HRESULT STDMETHODCALLTYPE GetLibStatistics(
2600 ULONG* pcUniqueNames,
2601 ULONG* pcchUniqueNames) = 0;
2603 virtual HRESULT STDMETHODCALLTYPE GetDocumentation2(
2604 INT index,
2605 LCID lcid,
2606 BSTR* pbstrHelpString,
2607 DWORD* pdwHelpStringContext,
2608 BSTR* pbstrHelpStringDll) = 0;
2610 virtual HRESULT STDMETHODCALLTYPE GetAllCustData(
2611 CUSTDATA* pCustData) = 0;
2614 #else
2615 typedef struct ITypeLib2Vtbl ITypeLib2Vtbl;
2616 struct ITypeLib2 {
2617 const ITypeLib2Vtbl* lpVtbl;
2619 struct ITypeLib2Vtbl {
2620 BEGIN_INTERFACE
2622 /*** IUnknown methods ***/
2623 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2624 ITypeLib2* This,
2625 REFIID riid,
2626 void** ppvObject);
2628 ULONG (STDMETHODCALLTYPE *AddRef)(
2629 ITypeLib2* This);
2631 ULONG (STDMETHODCALLTYPE *Release)(
2632 ITypeLib2* This);
2634 /*** ITypeLib methods ***/
2635 UINT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2636 ITypeLib2* This);
2638 HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2639 ITypeLib2* This,
2640 UINT index,
2641 ITypeInfo** ppTInfo);
2643 HRESULT (STDMETHODCALLTYPE *GetTypeInfoType)(
2644 ITypeLib2* This,
2645 UINT index,
2646 TYPEKIND* pTKind);
2648 HRESULT (STDMETHODCALLTYPE *GetTypeInfoOfGuid)(
2649 ITypeLib2* This,
2650 REFGUID guid,
2651 ITypeInfo** ppTinfo);
2653 HRESULT (STDMETHODCALLTYPE *GetLibAttr)(
2654 ITypeLib2* This,
2655 TLIBATTR** ppTLibAttr);
2657 HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
2658 ITypeLib2* This,
2659 ITypeComp** ppTComp);
2661 HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
2662 ITypeLib2* This,
2663 INT index,
2664 BSTR* pBstrName,
2665 BSTR* pBstrDocString,
2666 DWORD* pdwHelpContext,
2667 BSTR* pBstrHelpFile);
2669 HRESULT (STDMETHODCALLTYPE *IsName)(
2670 ITypeLib2* This,
2671 LPOLESTR szNameBuf,
2672 ULONG lHashVal,
2673 BOOL* pfName);
2675 HRESULT (STDMETHODCALLTYPE *FindName)(
2676 ITypeLib2* This,
2677 LPOLESTR szNameBuf,
2678 ULONG lHashVal,
2679 ITypeInfo** ppTInfo,
2680 MEMBERID* rgMemId,
2681 USHORT* pcFound);
2683 void (STDMETHODCALLTYPE *ReleaseTLibAttr)(
2684 ITypeLib2* This,
2685 TLIBATTR* pTLibAttr);
2687 /*** ITypeLib2 methods ***/
2688 HRESULT (STDMETHODCALLTYPE *GetCustData)(
2689 ITypeLib2* This,
2690 REFGUID guid,
2691 VARIANT* pVarVal);
2693 HRESULT (STDMETHODCALLTYPE *GetLibStatistics)(
2694 ITypeLib2* This,
2695 ULONG* pcUniqueNames,
2696 ULONG* pcchUniqueNames);
2698 HRESULT (STDMETHODCALLTYPE *GetDocumentation2)(
2699 ITypeLib2* This,
2700 INT index,
2701 LCID lcid,
2702 BSTR* pbstrHelpString,
2703 DWORD* pdwHelpStringContext,
2704 BSTR* pbstrHelpStringDll);
2706 HRESULT (STDMETHODCALLTYPE *GetAllCustData)(
2707 ITypeLib2* This,
2708 CUSTDATA* pCustData);
2710 END_INTERFACE
2713 #ifdef COBJMACROS
2714 /*** IUnknown methods ***/
2715 #define ITypeLib2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2716 #define ITypeLib2_AddRef(p) (p)->lpVtbl->AddRef(p)
2717 #define ITypeLib2_Release(p) (p)->lpVtbl->Release(p)
2718 /*** ITypeLib methods ***/
2719 #define ITypeLib2_GetTypeInfoCount(p) (p)->lpVtbl->GetTypeInfoCount(p)
2720 #define ITypeLib2_GetTypeInfo(p,a,b) (p)->lpVtbl->GetTypeInfo(p,a,b)
2721 #define ITypeLib2_GetTypeInfoType(p,a,b) (p)->lpVtbl->GetTypeInfoType(p,a,b)
2722 #define ITypeLib2_GetTypeInfoOfGuid(p,a,b) (p)->lpVtbl->GetTypeInfoOfGuid(p,a,b)
2723 #define ITypeLib2_GetLibAttr(p,a) (p)->lpVtbl->GetLibAttr(p,a)
2724 #define ITypeLib2_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
2725 #define ITypeLib2_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
2726 #define ITypeLib2_IsName(p,a,b,c) (p)->lpVtbl->IsName(p,a,b,c)
2727 #define ITypeLib2_FindName(p,a,b,c,d,e) (p)->lpVtbl->FindName(p,a,b,c,d,e)
2728 #define ITypeLib2_ReleaseTLibAttr(p,a) (p)->lpVtbl->ReleaseTLibAttr(p,a)
2729 /*** ITypeLib2 methods ***/
2730 #define ITypeLib2_GetCustData(p,a,b) (p)->lpVtbl->GetCustData(p,a,b)
2731 #define ITypeLib2_GetLibStatistics(p,a,b) (p)->lpVtbl->GetLibStatistics(p,a,b)
2732 #define ITypeLib2_GetDocumentation2(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation2(p,a,b,c,d,e)
2733 #define ITypeLib2_GetAllCustData(p,a) (p)->lpVtbl->GetAllCustData(p,a)
2734 #endif
2736 #endif
2738 #define ITypeLib2_METHODS \
2739 /*** IUnknown methods ***/ \
2740 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2741 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2742 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2743 /*** ITypeLib methods ***/ \
2744 STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE; \
2745 STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ UINT index, ITypeInfo** ppTInfo) PURE; \
2746 STDMETHOD_(HRESULT,GetTypeInfoType)(THIS_ UINT index, TYPEKIND* pTKind) PURE; \
2747 STDMETHOD_(HRESULT,GetTypeInfoOfGuid)(THIS_ REFGUID guid, ITypeInfo** ppTinfo) PURE; \
2748 STDMETHOD_(HRESULT,GetLibAttr)(THIS_ TLIBATTR** ppTLibAttr) PURE; \
2749 STDMETHOD_(HRESULT,GetTypeComp)(THIS_ ITypeComp** ppTComp) PURE; \
2750 STDMETHOD_(HRESULT,GetDocumentation)(THIS_ INT index, BSTR* pBstrName, BSTR* pBstrDocString, DWORD* pdwHelpContext, BSTR* pBstrHelpFile) PURE; \
2751 STDMETHOD_(HRESULT,IsName)(THIS_ LPOLESTR szNameBuf, ULONG lHashVal, BOOL* pfName) PURE; \
2752 STDMETHOD_(HRESULT,FindName)(THIS_ LPOLESTR szNameBuf, ULONG lHashVal, ITypeInfo** ppTInfo, MEMBERID* rgMemId, USHORT* pcFound) PURE; \
2753 STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR* pTLibAttr) PURE; \
2754 /*** ITypeLib2 methods ***/ \
2755 STDMETHOD_(HRESULT,GetCustData)(THIS_ REFGUID guid, VARIANT* pVarVal) PURE; \
2756 STDMETHOD_(HRESULT,GetLibStatistics)(THIS_ ULONG* pcUniqueNames, ULONG* pcchUniqueNames) PURE; \
2757 STDMETHOD_(HRESULT,GetDocumentation2)(THIS_ INT index, LCID lcid, BSTR* pbstrHelpString, DWORD* pdwHelpStringContext, BSTR* pbstrHelpStringDll) PURE; \
2758 STDMETHOD_(HRESULT,GetAllCustData)(THIS_ CUSTDATA* pCustData) PURE;
2760 HRESULT CALLBACK ITypeLib2_GetCustData_Proxy(
2761 ITypeLib2* This,
2762 REFGUID guid,
2763 VARIANT* pVarVal);
2764 void __RPC_STUB ITypeLib2_GetCustData_Stub(
2765 struct IRpcStubBuffer* This,
2766 struct IRpcChannelBuffer* pRpcChannelBuffer,
2767 PRPC_MESSAGE pRpcMessage,
2768 DWORD* pdwStubPhase);
2769 HRESULT CALLBACK ITypeLib2_RemoteGetLibStatistics_Proxy(
2770 ITypeLib2* This,
2771 ULONG* pcUniqueNames,
2772 ULONG* pcchUniqueNames);
2773 void __RPC_STUB ITypeLib2_RemoteGetLibStatistics_Stub(
2774 struct IRpcStubBuffer* This,
2775 struct IRpcChannelBuffer* pRpcChannelBuffer,
2776 PRPC_MESSAGE pRpcMessage,
2777 DWORD* pdwStubPhase);
2778 HRESULT CALLBACK ITypeLib2_GetLibStatistics_Proxy(
2779 ITypeLib2* This,
2780 ULONG* pcUniqueNames,
2781 ULONG* pcchUniqueNames);
2782 HRESULT __RPC_STUB ITypeLib2_GetLibStatistics_Stub(
2783 ITypeLib2* This,
2784 ULONG* pcUniqueNames,
2785 ULONG* pcchUniqueNames);
2786 HRESULT CALLBACK ITypeLib2_RemoteGetDocumentation2_Proxy(
2787 ITypeLib2* This,
2788 INT index,
2789 LCID lcid,
2790 DWORD refPtrFlags,
2791 BSTR* pbstrHelpString,
2792 DWORD* pdwHelpStringContext,
2793 BSTR* pbstrHelpStringDll);
2794 void __RPC_STUB ITypeLib2_RemoteGetDocumentation2_Stub(
2795 struct IRpcStubBuffer* This,
2796 struct IRpcChannelBuffer* pRpcChannelBuffer,
2797 PRPC_MESSAGE pRpcMessage,
2798 DWORD* pdwStubPhase);
2799 HRESULT CALLBACK ITypeLib2_GetDocumentation2_Proxy(
2800 ITypeLib2* This,
2801 INT index,
2802 LCID lcid,
2803 BSTR* pbstrHelpString,
2804 DWORD* pdwHelpStringContext,
2805 BSTR* pbstrHelpStringDll);
2806 HRESULT __RPC_STUB ITypeLib2_GetDocumentation2_Stub(
2807 ITypeLib2* This,
2808 INT index,
2809 LCID lcid,
2810 DWORD refPtrFlags,
2811 BSTR* pbstrHelpString,
2812 DWORD* pdwHelpStringContext,
2813 BSTR* pbstrHelpStringDll);
2814 HRESULT CALLBACK ITypeLib2_GetAllCustData_Proxy(
2815 ITypeLib2* This,
2816 CUSTDATA* pCustData);
2817 void __RPC_STUB ITypeLib2_GetAllCustData_Stub(
2818 struct IRpcStubBuffer* This,
2819 struct IRpcChannelBuffer* pRpcChannelBuffer,
2820 PRPC_MESSAGE pRpcMessage,
2821 DWORD* pdwStubPhase);
2823 #endif /* __ITypeLib2_INTERFACE_DEFINED__ */
2825 #ifndef __ITypeChangeEvents_FWD_DEFINED__
2826 #define __ITypeChangeEvents_FWD_DEFINED__
2827 typedef struct ITypeChangeEvents ITypeChangeEvents;
2828 #endif
2830 typedef ITypeChangeEvents *LPTYPECHANGEEVENTS;
2832 typedef enum tagCHANGEKIND {
2833 CHANGEKIND_ADDMEMBER,
2834 CHANGEKIND_DELETEMEMBER,
2835 CHANGEKIND_SETNAMES,
2836 CHANGEKIND_SETDOCUMENTATION,
2837 CHANGEKIND_GENERAL,
2838 CHANGEKIND_INVALIDATE,
2839 CHANGEKIND_CHANGEFAILED,
2840 CHANGEKIND_MAX
2841 } CHANGEKIND;
2843 /*****************************************************************************
2844 * ITypeChangeEvents interface
2846 #ifndef __ITypeChangeEvents_INTERFACE_DEFINED__
2847 #define __ITypeChangeEvents_INTERFACE_DEFINED__
2849 DEFINE_GUID(IID_ITypeChangeEvents, 0x00020410, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2850 #if defined(__cplusplus) && !defined(CINTERFACE)
2851 struct ITypeChangeEvents : public IUnknown
2853 virtual HRESULT STDMETHODCALLTYPE RequestTypeChange(
2854 CHANGEKIND changeKind,
2855 ITypeInfo* pTInfoBefore,
2856 LPOLESTR pStrName,
2857 INT* pfCancel) = 0;
2859 virtual HRESULT STDMETHODCALLTYPE AfterTypeChange(
2860 CHANGEKIND changeKind,
2861 ITypeInfo* pTInfoAfter,
2862 LPOLESTR pStrName) = 0;
2865 #else
2866 typedef struct ITypeChangeEventsVtbl ITypeChangeEventsVtbl;
2867 struct ITypeChangeEvents {
2868 const ITypeChangeEventsVtbl* lpVtbl;
2870 struct ITypeChangeEventsVtbl {
2871 BEGIN_INTERFACE
2873 /*** IUnknown methods ***/
2874 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2875 ITypeChangeEvents* This,
2876 REFIID riid,
2877 void** ppvObject);
2879 ULONG (STDMETHODCALLTYPE *AddRef)(
2880 ITypeChangeEvents* This);
2882 ULONG (STDMETHODCALLTYPE *Release)(
2883 ITypeChangeEvents* This);
2885 /*** ITypeChangeEvents methods ***/
2886 HRESULT (STDMETHODCALLTYPE *RequestTypeChange)(
2887 ITypeChangeEvents* This,
2888 CHANGEKIND changeKind,
2889 ITypeInfo* pTInfoBefore,
2890 LPOLESTR pStrName,
2891 INT* pfCancel);
2893 HRESULT (STDMETHODCALLTYPE *AfterTypeChange)(
2894 ITypeChangeEvents* This,
2895 CHANGEKIND changeKind,
2896 ITypeInfo* pTInfoAfter,
2897 LPOLESTR pStrName);
2899 END_INTERFACE
2902 #ifdef COBJMACROS
2903 /*** IUnknown methods ***/
2904 #define ITypeChangeEvents_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2905 #define ITypeChangeEvents_AddRef(p) (p)->lpVtbl->AddRef(p)
2906 #define ITypeChangeEvents_Release(p) (p)->lpVtbl->Release(p)
2907 /*** ITypeChangeEvents methods ***/
2908 #define ITypeChangeEvents_RequestTypeChange(p,a,b,c,d) (p)->lpVtbl->RequestTypeChange(p,a,b,c,d)
2909 #define ITypeChangeEvents_AfterTypeChange(p,a,b,c) (p)->lpVtbl->AfterTypeChange(p,a,b,c)
2910 #endif
2912 #endif
2914 #define ITypeChangeEvents_METHODS \
2915 /*** IUnknown methods ***/ \
2916 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2917 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2918 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2919 /*** ITypeChangeEvents methods ***/ \
2920 STDMETHOD_(HRESULT,RequestTypeChange)(THIS_ CHANGEKIND changeKind, ITypeInfo* pTInfoBefore, LPOLESTR pStrName, INT* pfCancel) PURE; \
2921 STDMETHOD_(HRESULT,AfterTypeChange)(THIS_ CHANGEKIND changeKind, ITypeInfo* pTInfoAfter, LPOLESTR pStrName) PURE;
2923 HRESULT CALLBACK ITypeChangeEvents_RequestTypeChange_Proxy(
2924 ITypeChangeEvents* This,
2925 CHANGEKIND changeKind,
2926 ITypeInfo* pTInfoBefore,
2927 LPOLESTR pStrName,
2928 INT* pfCancel);
2929 void __RPC_STUB ITypeChangeEvents_RequestTypeChange_Stub(
2930 struct IRpcStubBuffer* This,
2931 struct IRpcChannelBuffer* pRpcChannelBuffer,
2932 PRPC_MESSAGE pRpcMessage,
2933 DWORD* pdwStubPhase);
2934 HRESULT CALLBACK ITypeChangeEvents_AfterTypeChange_Proxy(
2935 ITypeChangeEvents* This,
2936 CHANGEKIND changeKind,
2937 ITypeInfo* pTInfoAfter,
2938 LPOLESTR pStrName);
2939 void __RPC_STUB ITypeChangeEvents_AfterTypeChange_Stub(
2940 struct IRpcStubBuffer* This,
2941 struct IRpcChannelBuffer* pRpcChannelBuffer,
2942 PRPC_MESSAGE pRpcMessage,
2943 DWORD* pdwStubPhase);
2945 #endif /* __ITypeChangeEvents_INTERFACE_DEFINED__ */
2947 #ifndef __IErrorInfo_FWD_DEFINED__
2948 #define __IErrorInfo_FWD_DEFINED__
2949 typedef struct IErrorInfo IErrorInfo;
2950 #endif
2952 typedef IErrorInfo *LPERRORINFO;
2954 /*****************************************************************************
2955 * IErrorInfo interface
2957 #ifndef __IErrorInfo_INTERFACE_DEFINED__
2958 #define __IErrorInfo_INTERFACE_DEFINED__
2960 DEFINE_GUID(IID_IErrorInfo, 0x1cf2b120, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
2961 #if defined(__cplusplus) && !defined(CINTERFACE)
2962 struct IErrorInfo : public IUnknown
2964 virtual HRESULT STDMETHODCALLTYPE GetGUID(
2965 GUID* pGUID) = 0;
2967 virtual HRESULT STDMETHODCALLTYPE GetSource(
2968 BSTR* pBstrSource) = 0;
2970 virtual HRESULT STDMETHODCALLTYPE GetDescription(
2971 BSTR* pBstrDescription) = 0;
2973 virtual HRESULT STDMETHODCALLTYPE GetHelpFile(
2974 BSTR* pBstrHelpFile) = 0;
2976 virtual HRESULT STDMETHODCALLTYPE GetHelpContext(
2977 DWORD* pdwHelpContext) = 0;
2980 #else
2981 typedef struct IErrorInfoVtbl IErrorInfoVtbl;
2982 struct IErrorInfo {
2983 const IErrorInfoVtbl* lpVtbl;
2985 struct IErrorInfoVtbl {
2986 BEGIN_INTERFACE
2988 /*** IUnknown methods ***/
2989 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2990 IErrorInfo* This,
2991 REFIID riid,
2992 void** ppvObject);
2994 ULONG (STDMETHODCALLTYPE *AddRef)(
2995 IErrorInfo* This);
2997 ULONG (STDMETHODCALLTYPE *Release)(
2998 IErrorInfo* This);
3000 /*** IErrorInfo methods ***/
3001 HRESULT (STDMETHODCALLTYPE *GetGUID)(
3002 IErrorInfo* This,
3003 GUID* pGUID);
3005 HRESULT (STDMETHODCALLTYPE *GetSource)(
3006 IErrorInfo* This,
3007 BSTR* pBstrSource);
3009 HRESULT (STDMETHODCALLTYPE *GetDescription)(
3010 IErrorInfo* This,
3011 BSTR* pBstrDescription);
3013 HRESULT (STDMETHODCALLTYPE *GetHelpFile)(
3014 IErrorInfo* This,
3015 BSTR* pBstrHelpFile);
3017 HRESULT (STDMETHODCALLTYPE *GetHelpContext)(
3018 IErrorInfo* This,
3019 DWORD* pdwHelpContext);
3021 END_INTERFACE
3024 #ifdef COBJMACROS
3025 /*** IUnknown methods ***/
3026 #define IErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3027 #define IErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
3028 #define IErrorInfo_Release(p) (p)->lpVtbl->Release(p)
3029 /*** IErrorInfo methods ***/
3030 #define IErrorInfo_GetGUID(p,a) (p)->lpVtbl->GetGUID(p,a)
3031 #define IErrorInfo_GetSource(p,a) (p)->lpVtbl->GetSource(p,a)
3032 #define IErrorInfo_GetDescription(p,a) (p)->lpVtbl->GetDescription(p,a)
3033 #define IErrorInfo_GetHelpFile(p,a) (p)->lpVtbl->GetHelpFile(p,a)
3034 #define IErrorInfo_GetHelpContext(p,a) (p)->lpVtbl->GetHelpContext(p,a)
3035 #endif
3037 #endif
3039 #define IErrorInfo_METHODS \
3040 /*** IUnknown methods ***/ \
3041 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3042 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3043 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3044 /*** IErrorInfo methods ***/ \
3045 STDMETHOD_(HRESULT,GetGUID)(THIS_ GUID* pGUID) PURE; \
3046 STDMETHOD_(HRESULT,GetSource)(THIS_ BSTR* pBstrSource) PURE; \
3047 STDMETHOD_(HRESULT,GetDescription)(THIS_ BSTR* pBstrDescription) PURE; \
3048 STDMETHOD_(HRESULT,GetHelpFile)(THIS_ BSTR* pBstrHelpFile) PURE; \
3049 STDMETHOD_(HRESULT,GetHelpContext)(THIS_ DWORD* pdwHelpContext) PURE;
3051 HRESULT CALLBACK IErrorInfo_GetGUID_Proxy(
3052 IErrorInfo* This,
3053 GUID* pGUID);
3054 void __RPC_STUB IErrorInfo_GetGUID_Stub(
3055 struct IRpcStubBuffer* This,
3056 struct IRpcChannelBuffer* pRpcChannelBuffer,
3057 PRPC_MESSAGE pRpcMessage,
3058 DWORD* pdwStubPhase);
3059 HRESULT CALLBACK IErrorInfo_GetSource_Proxy(
3060 IErrorInfo* This,
3061 BSTR* pBstrSource);
3062 void __RPC_STUB IErrorInfo_GetSource_Stub(
3063 struct IRpcStubBuffer* This,
3064 struct IRpcChannelBuffer* pRpcChannelBuffer,
3065 PRPC_MESSAGE pRpcMessage,
3066 DWORD* pdwStubPhase);
3067 HRESULT CALLBACK IErrorInfo_GetDescription_Proxy(
3068 IErrorInfo* This,
3069 BSTR* pBstrDescription);
3070 void __RPC_STUB IErrorInfo_GetDescription_Stub(
3071 struct IRpcStubBuffer* This,
3072 struct IRpcChannelBuffer* pRpcChannelBuffer,
3073 PRPC_MESSAGE pRpcMessage,
3074 DWORD* pdwStubPhase);
3075 HRESULT CALLBACK IErrorInfo_GetHelpFile_Proxy(
3076 IErrorInfo* This,
3077 BSTR* pBstrHelpFile);
3078 void __RPC_STUB IErrorInfo_GetHelpFile_Stub(
3079 struct IRpcStubBuffer* This,
3080 struct IRpcChannelBuffer* pRpcChannelBuffer,
3081 PRPC_MESSAGE pRpcMessage,
3082 DWORD* pdwStubPhase);
3083 HRESULT CALLBACK IErrorInfo_GetHelpContext_Proxy(
3084 IErrorInfo* This,
3085 DWORD* pdwHelpContext);
3086 void __RPC_STUB IErrorInfo_GetHelpContext_Stub(
3087 struct IRpcStubBuffer* This,
3088 struct IRpcChannelBuffer* pRpcChannelBuffer,
3089 PRPC_MESSAGE pRpcMessage,
3090 DWORD* pdwStubPhase);
3092 #endif /* __IErrorInfo_INTERFACE_DEFINED__ */
3094 #ifndef __ICreateErrorInfo_FWD_DEFINED__
3095 #define __ICreateErrorInfo_FWD_DEFINED__
3096 typedef struct ICreateErrorInfo ICreateErrorInfo;
3097 #endif
3099 typedef ICreateErrorInfo *LPCREATEERRORINFO;
3101 /*****************************************************************************
3102 * ICreateErrorInfo interface
3104 #ifndef __ICreateErrorInfo_INTERFACE_DEFINED__
3105 #define __ICreateErrorInfo_INTERFACE_DEFINED__
3107 DEFINE_GUID(IID_ICreateErrorInfo, 0x22f03340, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
3108 #if defined(__cplusplus) && !defined(CINTERFACE)
3109 struct ICreateErrorInfo : public IUnknown
3111 virtual HRESULT STDMETHODCALLTYPE SetGUID(
3112 REFGUID rguid) = 0;
3114 virtual HRESULT STDMETHODCALLTYPE SetSource(
3115 LPOLESTR szSource) = 0;
3117 virtual HRESULT STDMETHODCALLTYPE SetDescription(
3118 LPOLESTR szDescription) = 0;
3120 virtual HRESULT STDMETHODCALLTYPE SetHelpFile(
3121 LPOLESTR szHelpFile) = 0;
3123 virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
3124 DWORD dwHelpContext) = 0;
3127 #else
3128 typedef struct ICreateErrorInfoVtbl ICreateErrorInfoVtbl;
3129 struct ICreateErrorInfo {
3130 const ICreateErrorInfoVtbl* lpVtbl;
3132 struct ICreateErrorInfoVtbl {
3133 BEGIN_INTERFACE
3135 /*** IUnknown methods ***/
3136 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3137 ICreateErrorInfo* This,
3138 REFIID riid,
3139 void** ppvObject);
3141 ULONG (STDMETHODCALLTYPE *AddRef)(
3142 ICreateErrorInfo* This);
3144 ULONG (STDMETHODCALLTYPE *Release)(
3145 ICreateErrorInfo* This);
3147 /*** ICreateErrorInfo methods ***/
3148 HRESULT (STDMETHODCALLTYPE *SetGUID)(
3149 ICreateErrorInfo* This,
3150 REFGUID rguid);
3152 HRESULT (STDMETHODCALLTYPE *SetSource)(
3153 ICreateErrorInfo* This,
3154 LPOLESTR szSource);
3156 HRESULT (STDMETHODCALLTYPE *SetDescription)(
3157 ICreateErrorInfo* This,
3158 LPOLESTR szDescription);
3160 HRESULT (STDMETHODCALLTYPE *SetHelpFile)(
3161 ICreateErrorInfo* This,
3162 LPOLESTR szHelpFile);
3164 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
3165 ICreateErrorInfo* This,
3166 DWORD dwHelpContext);
3168 END_INTERFACE
3171 #ifdef COBJMACROS
3172 /*** IUnknown methods ***/
3173 #define ICreateErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3174 #define ICreateErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
3175 #define ICreateErrorInfo_Release(p) (p)->lpVtbl->Release(p)
3176 /*** ICreateErrorInfo methods ***/
3177 #define ICreateErrorInfo_SetGUID(p,a) (p)->lpVtbl->SetGUID(p,a)
3178 #define ICreateErrorInfo_SetSource(p,a) (p)->lpVtbl->SetSource(p,a)
3179 #define ICreateErrorInfo_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
3180 #define ICreateErrorInfo_SetHelpFile(p,a) (p)->lpVtbl->SetHelpFile(p,a)
3181 #define ICreateErrorInfo_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
3182 #endif
3184 #endif
3186 #define ICreateErrorInfo_METHODS \
3187 /*** IUnknown methods ***/ \
3188 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3189 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3190 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3191 /*** ICreateErrorInfo methods ***/ \
3192 STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID rguid) PURE; \
3193 STDMETHOD_(HRESULT,SetSource)(THIS_ LPOLESTR szSource) PURE; \
3194 STDMETHOD_(HRESULT,SetDescription)(THIS_ LPOLESTR szDescription) PURE; \
3195 STDMETHOD_(HRESULT,SetHelpFile)(THIS_ LPOLESTR szHelpFile) PURE; \
3196 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE;
3198 HRESULT CALLBACK ICreateErrorInfo_SetGUID_Proxy(
3199 ICreateErrorInfo* This,
3200 REFGUID rguid);
3201 void __RPC_STUB ICreateErrorInfo_SetGUID_Stub(
3202 struct IRpcStubBuffer* This,
3203 struct IRpcChannelBuffer* pRpcChannelBuffer,
3204 PRPC_MESSAGE pRpcMessage,
3205 DWORD* pdwStubPhase);
3206 HRESULT CALLBACK ICreateErrorInfo_SetSource_Proxy(
3207 ICreateErrorInfo* This,
3208 LPOLESTR szSource);
3209 void __RPC_STUB ICreateErrorInfo_SetSource_Stub(
3210 struct IRpcStubBuffer* This,
3211 struct IRpcChannelBuffer* pRpcChannelBuffer,
3212 PRPC_MESSAGE pRpcMessage,
3213 DWORD* pdwStubPhase);
3214 HRESULT CALLBACK ICreateErrorInfo_SetDescription_Proxy(
3215 ICreateErrorInfo* This,
3216 LPOLESTR szDescription);
3217 void __RPC_STUB ICreateErrorInfo_SetDescription_Stub(
3218 struct IRpcStubBuffer* This,
3219 struct IRpcChannelBuffer* pRpcChannelBuffer,
3220 PRPC_MESSAGE pRpcMessage,
3221 DWORD* pdwStubPhase);
3222 HRESULT CALLBACK ICreateErrorInfo_SetHelpFile_Proxy(
3223 ICreateErrorInfo* This,
3224 LPOLESTR szHelpFile);
3225 void __RPC_STUB ICreateErrorInfo_SetHelpFile_Stub(
3226 struct IRpcStubBuffer* This,
3227 struct IRpcChannelBuffer* pRpcChannelBuffer,
3228 PRPC_MESSAGE pRpcMessage,
3229 DWORD* pdwStubPhase);
3230 HRESULT CALLBACK ICreateErrorInfo_SetHelpContext_Proxy(
3231 ICreateErrorInfo* This,
3232 DWORD dwHelpContext);
3233 void __RPC_STUB ICreateErrorInfo_SetHelpContext_Stub(
3234 struct IRpcStubBuffer* This,
3235 struct IRpcChannelBuffer* pRpcChannelBuffer,
3236 PRPC_MESSAGE pRpcMessage,
3237 DWORD* pdwStubPhase);
3239 #endif /* __ICreateErrorInfo_INTERFACE_DEFINED__ */
3241 #ifndef __ISupportErrorInfo_FWD_DEFINED__
3242 #define __ISupportErrorInfo_FWD_DEFINED__
3243 typedef struct ISupportErrorInfo ISupportErrorInfo;
3244 #endif
3246 typedef ISupportErrorInfo *LPSUPPORTERRORINFO;
3248 /*****************************************************************************
3249 * ISupportErrorInfo interface
3251 #ifndef __ISupportErrorInfo_INTERFACE_DEFINED__
3252 #define __ISupportErrorInfo_INTERFACE_DEFINED__
3254 DEFINE_GUID(IID_ISupportErrorInfo, 0xdf0b3d60, 0x548f, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
3255 #if defined(__cplusplus) && !defined(CINTERFACE)
3256 struct ISupportErrorInfo : public IUnknown
3258 virtual HRESULT STDMETHODCALLTYPE InterfaceSupportsErrorInfo(
3259 REFIID riid) = 0;
3262 #else
3263 typedef struct ISupportErrorInfoVtbl ISupportErrorInfoVtbl;
3264 struct ISupportErrorInfo {
3265 const ISupportErrorInfoVtbl* lpVtbl;
3267 struct ISupportErrorInfoVtbl {
3268 BEGIN_INTERFACE
3270 /*** IUnknown methods ***/
3271 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3272 ISupportErrorInfo* This,
3273 REFIID riid,
3274 void** ppvObject);
3276 ULONG (STDMETHODCALLTYPE *AddRef)(
3277 ISupportErrorInfo* This);
3279 ULONG (STDMETHODCALLTYPE *Release)(
3280 ISupportErrorInfo* This);
3282 /*** ISupportErrorInfo methods ***/
3283 HRESULT (STDMETHODCALLTYPE *InterfaceSupportsErrorInfo)(
3284 ISupportErrorInfo* This,
3285 REFIID riid);
3287 END_INTERFACE
3290 #ifdef COBJMACROS
3291 /*** IUnknown methods ***/
3292 #define ISupportErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3293 #define ISupportErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
3294 #define ISupportErrorInfo_Release(p) (p)->lpVtbl->Release(p)
3295 /*** ISupportErrorInfo methods ***/
3296 #define ISupportErrorInfo_InterfaceSupportsErrorInfo(p,a) (p)->lpVtbl->InterfaceSupportsErrorInfo(p,a)
3297 #endif
3299 #endif
3301 #define ISupportErrorInfo_METHODS \
3302 /*** IUnknown methods ***/ \
3303 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3304 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3305 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3306 /*** ISupportErrorInfo methods ***/ \
3307 STDMETHOD_(HRESULT,InterfaceSupportsErrorInfo)(THIS_ REFIID riid) PURE;
3309 HRESULT CALLBACK ISupportErrorInfo_InterfaceSupportsErrorInfo_Proxy(
3310 ISupportErrorInfo* This,
3311 REFIID riid);
3312 void __RPC_STUB ISupportErrorInfo_InterfaceSupportsErrorInfo_Stub(
3313 struct IRpcStubBuffer* This,
3314 struct IRpcChannelBuffer* pRpcChannelBuffer,
3315 PRPC_MESSAGE pRpcMessage,
3316 DWORD* pdwStubPhase);
3318 #endif /* __ISupportErrorInfo_INTERFACE_DEFINED__ */
3320 #ifndef __ITypeFactory_FWD_DEFINED__
3321 #define __ITypeFactory_FWD_DEFINED__
3322 typedef struct ITypeFactory ITypeFactory;
3323 #endif
3325 /*****************************************************************************
3326 * ITypeFactory interface
3328 #ifndef __ITypeFactory_INTERFACE_DEFINED__
3329 #define __ITypeFactory_INTERFACE_DEFINED__
3331 DEFINE_GUID(IID_ITypeFactory, 0x0000002e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3332 #if defined(__cplusplus) && !defined(CINTERFACE)
3333 struct ITypeFactory : public IUnknown
3335 virtual HRESULT STDMETHODCALLTYPE CreateFromTypeInfo(
3336 ITypeInfo* pTypeInfo,
3337 REFIID riid,
3338 IUnknown** ppv) = 0;
3341 #else
3342 typedef struct ITypeFactoryVtbl ITypeFactoryVtbl;
3343 struct ITypeFactory {
3344 const ITypeFactoryVtbl* lpVtbl;
3346 struct ITypeFactoryVtbl {
3347 BEGIN_INTERFACE
3349 /*** IUnknown methods ***/
3350 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3351 ITypeFactory* This,
3352 REFIID riid,
3353 void** ppvObject);
3355 ULONG (STDMETHODCALLTYPE *AddRef)(
3356 ITypeFactory* This);
3358 ULONG (STDMETHODCALLTYPE *Release)(
3359 ITypeFactory* This);
3361 /*** ITypeFactory methods ***/
3362 HRESULT (STDMETHODCALLTYPE *CreateFromTypeInfo)(
3363 ITypeFactory* This,
3364 ITypeInfo* pTypeInfo,
3365 REFIID riid,
3366 IUnknown** ppv);
3368 END_INTERFACE
3371 #ifdef COBJMACROS
3372 /*** IUnknown methods ***/
3373 #define ITypeFactory_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3374 #define ITypeFactory_AddRef(p) (p)->lpVtbl->AddRef(p)
3375 #define ITypeFactory_Release(p) (p)->lpVtbl->Release(p)
3376 /*** ITypeFactory methods ***/
3377 #define ITypeFactory_CreateFromTypeInfo(p,a,b,c) (p)->lpVtbl->CreateFromTypeInfo(p,a,b,c)
3378 #endif
3380 #endif
3382 #define ITypeFactory_METHODS \
3383 /*** IUnknown methods ***/ \
3384 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3385 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3386 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3387 /*** ITypeFactory methods ***/ \
3388 STDMETHOD_(HRESULT,CreateFromTypeInfo)(THIS_ ITypeInfo* pTypeInfo, REFIID riid, IUnknown** ppv) PURE;
3390 HRESULT CALLBACK ITypeFactory_CreateFromTypeInfo_Proxy(
3391 ITypeFactory* This,
3392 ITypeInfo* pTypeInfo,
3393 REFIID riid,
3394 IUnknown** ppv);
3395 void __RPC_STUB ITypeFactory_CreateFromTypeInfo_Stub(
3396 struct IRpcStubBuffer* This,
3397 struct IRpcChannelBuffer* pRpcChannelBuffer,
3398 PRPC_MESSAGE pRpcMessage,
3399 DWORD* pdwStubPhase);
3401 #endif /* __ITypeFactory_INTERFACE_DEFINED__ */
3403 #ifndef __ITypeMarshal_FWD_DEFINED__
3404 #define __ITypeMarshal_FWD_DEFINED__
3405 typedef struct ITypeMarshal ITypeMarshal;
3406 #endif
3408 /*****************************************************************************
3409 * ITypeMarshal interface
3411 #ifndef __ITypeMarshal_INTERFACE_DEFINED__
3412 #define __ITypeMarshal_INTERFACE_DEFINED__
3414 DEFINE_GUID(IID_ITypeMarshal, 0x0000002d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3415 #if defined(__cplusplus) && !defined(CINTERFACE)
3416 struct ITypeMarshal : public IUnknown
3418 virtual HRESULT STDMETHODCALLTYPE Size(
3419 PVOID pvType,
3420 DWORD dwDestContext,
3421 PVOID pvDestContext,
3422 ULONG* pSize) = 0;
3424 virtual HRESULT STDMETHODCALLTYPE Marshal(
3425 PVOID pvType,
3426 DWORD dwDestContext,
3427 PVOID pvDestContext,
3428 ULONG cbBufferLength,
3429 BYTE* pBuffer,
3430 ULONG* pcbWritten) = 0;
3432 virtual HRESULT STDMETHODCALLTYPE Unmarshal(
3433 PVOID pvType,
3434 DWORD dwFlags,
3435 ULONG cbBufferLength,
3436 BYTE* pBuffer,
3437 ULONG* pcbRead) = 0;
3439 virtual HRESULT STDMETHODCALLTYPE Free(
3440 PVOID pvType) = 0;
3443 #else
3444 typedef struct ITypeMarshalVtbl ITypeMarshalVtbl;
3445 struct ITypeMarshal {
3446 const ITypeMarshalVtbl* lpVtbl;
3448 struct ITypeMarshalVtbl {
3449 BEGIN_INTERFACE
3451 /*** IUnknown methods ***/
3452 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3453 ITypeMarshal* This,
3454 REFIID riid,
3455 void** ppvObject);
3457 ULONG (STDMETHODCALLTYPE *AddRef)(
3458 ITypeMarshal* This);
3460 ULONG (STDMETHODCALLTYPE *Release)(
3461 ITypeMarshal* This);
3463 /*** ITypeMarshal methods ***/
3464 HRESULT (STDMETHODCALLTYPE *Size)(
3465 ITypeMarshal* This,
3466 PVOID pvType,
3467 DWORD dwDestContext,
3468 PVOID pvDestContext,
3469 ULONG* pSize);
3471 HRESULT (STDMETHODCALLTYPE *Marshal)(
3472 ITypeMarshal* This,
3473 PVOID pvType,
3474 DWORD dwDestContext,
3475 PVOID pvDestContext,
3476 ULONG cbBufferLength,
3477 BYTE* pBuffer,
3478 ULONG* pcbWritten);
3480 HRESULT (STDMETHODCALLTYPE *Unmarshal)(
3481 ITypeMarshal* This,
3482 PVOID pvType,
3483 DWORD dwFlags,
3484 ULONG cbBufferLength,
3485 BYTE* pBuffer,
3486 ULONG* pcbRead);
3488 HRESULT (STDMETHODCALLTYPE *Free)(
3489 ITypeMarshal* This,
3490 PVOID pvType);
3492 END_INTERFACE
3495 #ifdef COBJMACROS
3496 /*** IUnknown methods ***/
3497 #define ITypeMarshal_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3498 #define ITypeMarshal_AddRef(p) (p)->lpVtbl->AddRef(p)
3499 #define ITypeMarshal_Release(p) (p)->lpVtbl->Release(p)
3500 /*** ITypeMarshal methods ***/
3501 #define ITypeMarshal_Size(p,a,b,c,d) (p)->lpVtbl->Size(p,a,b,c,d)
3502 #define ITypeMarshal_Marshal(p,a,b,c,d,e,f) (p)->lpVtbl->Marshal(p,a,b,c,d,e,f)
3503 #define ITypeMarshal_Unmarshal(p,a,b,c,d,e) (p)->lpVtbl->Unmarshal(p,a,b,c,d,e)
3504 #define ITypeMarshal_Free(p,a) (p)->lpVtbl->Free(p,a)
3505 #endif
3507 #endif
3509 #define ITypeMarshal_METHODS \
3510 /*** IUnknown methods ***/ \
3511 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3512 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3513 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3514 /*** ITypeMarshal methods ***/ \
3515 STDMETHOD_(HRESULT,Size)(THIS_ PVOID pvType, DWORD dwDestContext, PVOID pvDestContext, ULONG* pSize) PURE; \
3516 STDMETHOD_(HRESULT,Marshal)(THIS_ PVOID pvType, DWORD dwDestContext, PVOID pvDestContext, ULONG cbBufferLength, BYTE* pBuffer, ULONG* pcbWritten) PURE; \
3517 STDMETHOD_(HRESULT,Unmarshal)(THIS_ PVOID pvType, DWORD dwFlags, ULONG cbBufferLength, BYTE* pBuffer, ULONG* pcbRead) PURE; \
3518 STDMETHOD_(HRESULT,Free)(THIS_ PVOID pvType) PURE;
3520 HRESULT CALLBACK ITypeMarshal_Size_Proxy(
3521 ITypeMarshal* This,
3522 PVOID pvType,
3523 DWORD dwDestContext,
3524 PVOID pvDestContext,
3525 ULONG* pSize);
3526 void __RPC_STUB ITypeMarshal_Size_Stub(
3527 struct IRpcStubBuffer* This,
3528 struct IRpcChannelBuffer* pRpcChannelBuffer,
3529 PRPC_MESSAGE pRpcMessage,
3530 DWORD* pdwStubPhase);
3531 HRESULT CALLBACK ITypeMarshal_Marshal_Proxy(
3532 ITypeMarshal* This,
3533 PVOID pvType,
3534 DWORD dwDestContext,
3535 PVOID pvDestContext,
3536 ULONG cbBufferLength,
3537 BYTE* pBuffer,
3538 ULONG* pcbWritten);
3539 void __RPC_STUB ITypeMarshal_Marshal_Stub(
3540 struct IRpcStubBuffer* This,
3541 struct IRpcChannelBuffer* pRpcChannelBuffer,
3542 PRPC_MESSAGE pRpcMessage,
3543 DWORD* pdwStubPhase);
3544 HRESULT CALLBACK ITypeMarshal_Unmarshal_Proxy(
3545 ITypeMarshal* This,
3546 PVOID pvType,
3547 DWORD dwFlags,
3548 ULONG cbBufferLength,
3549 BYTE* pBuffer,
3550 ULONG* pcbRead);
3551 void __RPC_STUB ITypeMarshal_Unmarshal_Stub(
3552 struct IRpcStubBuffer* This,
3553 struct IRpcChannelBuffer* pRpcChannelBuffer,
3554 PRPC_MESSAGE pRpcMessage,
3555 DWORD* pdwStubPhase);
3556 HRESULT CALLBACK ITypeMarshal_Free_Proxy(
3557 ITypeMarshal* This,
3558 PVOID pvType);
3559 void __RPC_STUB ITypeMarshal_Free_Stub(
3560 struct IRpcStubBuffer* This,
3561 struct IRpcChannelBuffer* pRpcChannelBuffer,
3562 PRPC_MESSAGE pRpcMessage,
3563 DWORD* pdwStubPhase);
3565 #endif /* __ITypeMarshal_INTERFACE_DEFINED__ */
3567 typedef IRecordInfo *LPRECORDINFO;
3569 /*****************************************************************************
3570 * IRecordInfo interface
3572 #ifndef __IRecordInfo_INTERFACE_DEFINED__
3573 #define __IRecordInfo_INTERFACE_DEFINED__
3575 DEFINE_GUID(IID_IRecordInfo, 0x0000002f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3576 #if defined(__cplusplus) && !defined(CINTERFACE)
3577 struct IRecordInfo : public IUnknown
3579 virtual HRESULT STDMETHODCALLTYPE RecordInit(
3580 PVOID pvNew) = 0;
3582 virtual HRESULT STDMETHODCALLTYPE RecordClear(
3583 PVOID pvExisting) = 0;
3585 virtual HRESULT STDMETHODCALLTYPE RecordCopy(
3586 PVOID pvExisting,
3587 PVOID pvNew) = 0;
3589 virtual HRESULT STDMETHODCALLTYPE GetGuid(
3590 GUID* pguid) = 0;
3592 virtual HRESULT STDMETHODCALLTYPE GetName(
3593 BSTR* pbstrName) = 0;
3595 virtual HRESULT STDMETHODCALLTYPE GetSize(
3596 ULONG* pcbSize) = 0;
3598 virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
3599 ITypeInfo** ppTypeInfo) = 0;
3601 virtual HRESULT STDMETHODCALLTYPE GetField(
3602 PVOID pvData,
3603 LPCOLESTR szFieldName,
3604 VARIANT* pvarField) = 0;
3606 virtual HRESULT STDMETHODCALLTYPE GetFieldNoCopy(
3607 PVOID pvData,
3608 LPCOLESTR szFieldName,
3609 VARIANT* pvarField,
3610 PVOID* ppvDataCArray) = 0;
3612 virtual HRESULT STDMETHODCALLTYPE PutField(
3613 ULONG wFlags,
3614 PVOID pvData,
3615 LPCOLESTR szFieldName,
3616 VARIANT* pvarField) = 0;
3618 virtual HRESULT STDMETHODCALLTYPE PutFieldNoCopy(
3619 ULONG wFlags,
3620 PVOID pvData,
3621 LPCOLESTR szFieldName,
3622 VARIANT* pvarField) = 0;
3624 virtual HRESULT STDMETHODCALLTYPE GetFieldNames(
3625 ULONG* pcNames,
3626 BSTR* rgBstrNames) = 0;
3628 virtual BOOL STDMETHODCALLTYPE IsMatchingType(
3629 IRecordInfo* pRecordInfo) = 0;
3631 virtual PVOID STDMETHODCALLTYPE RecordCreate(
3632 ) = 0;
3634 virtual HRESULT STDMETHODCALLTYPE RecordCreateCopy(
3635 PVOID pvSource,
3636 PVOID* ppvDest) = 0;
3638 virtual HRESULT STDMETHODCALLTYPE RecordDestroy(
3639 PVOID pvRecord) = 0;
3642 #else
3643 typedef struct IRecordInfoVtbl IRecordInfoVtbl;
3644 struct IRecordInfo {
3645 const IRecordInfoVtbl* lpVtbl;
3647 struct IRecordInfoVtbl {
3648 BEGIN_INTERFACE
3650 /*** IUnknown methods ***/
3651 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3652 IRecordInfo* This,
3653 REFIID riid,
3654 void** ppvObject);
3656 ULONG (STDMETHODCALLTYPE *AddRef)(
3657 IRecordInfo* This);
3659 ULONG (STDMETHODCALLTYPE *Release)(
3660 IRecordInfo* This);
3662 /*** IRecordInfo methods ***/
3663 HRESULT (STDMETHODCALLTYPE *RecordInit)(
3664 IRecordInfo* This,
3665 PVOID pvNew);
3667 HRESULT (STDMETHODCALLTYPE *RecordClear)(
3668 IRecordInfo* This,
3669 PVOID pvExisting);
3671 HRESULT (STDMETHODCALLTYPE *RecordCopy)(
3672 IRecordInfo* This,
3673 PVOID pvExisting,
3674 PVOID pvNew);
3676 HRESULT (STDMETHODCALLTYPE *GetGuid)(
3677 IRecordInfo* This,
3678 GUID* pguid);
3680 HRESULT (STDMETHODCALLTYPE *GetName)(
3681 IRecordInfo* This,
3682 BSTR* pbstrName);
3684 HRESULT (STDMETHODCALLTYPE *GetSize)(
3685 IRecordInfo* This,
3686 ULONG* pcbSize);
3688 HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
3689 IRecordInfo* This,
3690 ITypeInfo** ppTypeInfo);
3692 HRESULT (STDMETHODCALLTYPE *GetField)(
3693 IRecordInfo* This,
3694 PVOID pvData,
3695 LPCOLESTR szFieldName,
3696 VARIANT* pvarField);
3698 HRESULT (STDMETHODCALLTYPE *GetFieldNoCopy)(
3699 IRecordInfo* This,
3700 PVOID pvData,
3701 LPCOLESTR szFieldName,
3702 VARIANT* pvarField,
3703 PVOID* ppvDataCArray);
3705 HRESULT (STDMETHODCALLTYPE *PutField)(
3706 IRecordInfo* This,
3707 ULONG wFlags,
3708 PVOID pvData,
3709 LPCOLESTR szFieldName,
3710 VARIANT* pvarField);
3712 HRESULT (STDMETHODCALLTYPE *PutFieldNoCopy)(
3713 IRecordInfo* This,
3714 ULONG wFlags,
3715 PVOID pvData,
3716 LPCOLESTR szFieldName,
3717 VARIANT* pvarField);
3719 HRESULT (STDMETHODCALLTYPE *GetFieldNames)(
3720 IRecordInfo* This,
3721 ULONG* pcNames,
3722 BSTR* rgBstrNames);
3724 BOOL (STDMETHODCALLTYPE *IsMatchingType)(
3725 IRecordInfo* This,
3726 IRecordInfo* pRecordInfo);
3728 PVOID (STDMETHODCALLTYPE *RecordCreate)(
3729 IRecordInfo* This);
3731 HRESULT (STDMETHODCALLTYPE *RecordCreateCopy)(
3732 IRecordInfo* This,
3733 PVOID pvSource,
3734 PVOID* ppvDest);
3736 HRESULT (STDMETHODCALLTYPE *RecordDestroy)(
3737 IRecordInfo* This,
3738 PVOID pvRecord);
3740 END_INTERFACE
3743 #ifdef COBJMACROS
3744 /*** IUnknown methods ***/
3745 #define IRecordInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3746 #define IRecordInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
3747 #define IRecordInfo_Release(p) (p)->lpVtbl->Release(p)
3748 /*** IRecordInfo methods ***/
3749 #define IRecordInfo_RecordInit(p,a) (p)->lpVtbl->RecordInit(p,a)
3750 #define IRecordInfo_RecordClear(p,a) (p)->lpVtbl->RecordClear(p,a)
3751 #define IRecordInfo_RecordCopy(p,a,b) (p)->lpVtbl->RecordCopy(p,a,b)
3752 #define IRecordInfo_GetGuid(p,a) (p)->lpVtbl->GetGuid(p,a)
3753 #define IRecordInfo_GetName(p,a) (p)->lpVtbl->GetName(p,a)
3754 #define IRecordInfo_GetSize(p,a) (p)->lpVtbl->GetSize(p,a)
3755 #define IRecordInfo_GetTypeInfo(p,a) (p)->lpVtbl->GetTypeInfo(p,a)
3756 #define IRecordInfo_GetField(p,a,b,c) (p)->lpVtbl->GetField(p,a,b,c)
3757 #define IRecordInfo_GetFieldNoCopy(p,a,b,c,d) (p)->lpVtbl->GetFieldNoCopy(p,a,b,c,d)
3758 #define IRecordInfo_PutField(p,a,b,c,d) (p)->lpVtbl->PutField(p,a,b,c,d)
3759 #define IRecordInfo_PutFieldNoCopy(p,a,b,c,d) (p)->lpVtbl->PutFieldNoCopy(p,a,b,c,d)
3760 #define IRecordInfo_GetFieldNames(p,a,b) (p)->lpVtbl->GetFieldNames(p,a,b)
3761 #define IRecordInfo_IsMatchingType(p,a) (p)->lpVtbl->IsMatchingType(p,a)
3762 #define IRecordInfo_RecordCreate(p) (p)->lpVtbl->RecordCreate(p)
3763 #define IRecordInfo_RecordCreateCopy(p,a,b) (p)->lpVtbl->RecordCreateCopy(p,a,b)
3764 #define IRecordInfo_RecordDestroy(p,a) (p)->lpVtbl->RecordDestroy(p,a)
3765 #endif
3767 #endif
3769 #define IRecordInfo_METHODS \
3770 /*** IUnknown methods ***/ \
3771 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3772 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3773 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3774 /*** IRecordInfo methods ***/ \
3775 STDMETHOD_(HRESULT,RecordInit)(THIS_ PVOID pvNew) PURE; \
3776 STDMETHOD_(HRESULT,RecordClear)(THIS_ PVOID pvExisting) PURE; \
3777 STDMETHOD_(HRESULT,RecordCopy)(THIS_ PVOID pvExisting, PVOID pvNew) PURE; \
3778 STDMETHOD_(HRESULT,GetGuid)(THIS_ GUID* pguid) PURE; \
3779 STDMETHOD_(HRESULT,GetName)(THIS_ BSTR* pbstrName) PURE; \
3780 STDMETHOD_(HRESULT,GetSize)(THIS_ ULONG* pcbSize) PURE; \
3781 STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ ITypeInfo** ppTypeInfo) PURE; \
3782 STDMETHOD_(HRESULT,GetField)(THIS_ PVOID pvData, LPCOLESTR szFieldName, VARIANT* pvarField) PURE; \
3783 STDMETHOD_(HRESULT,GetFieldNoCopy)(THIS_ PVOID pvData, LPCOLESTR szFieldName, VARIANT* pvarField, PVOID* ppvDataCArray) PURE; \
3784 STDMETHOD_(HRESULT,PutField)(THIS_ ULONG wFlags, PVOID pvData, LPCOLESTR szFieldName, VARIANT* pvarField) PURE; \
3785 STDMETHOD_(HRESULT,PutFieldNoCopy)(THIS_ ULONG wFlags, PVOID pvData, LPCOLESTR szFieldName, VARIANT* pvarField) PURE; \
3786 STDMETHOD_(HRESULT,GetFieldNames)(THIS_ ULONG* pcNames, BSTR* rgBstrNames) PURE; \
3787 STDMETHOD_(BOOL,IsMatchingType)(THIS_ IRecordInfo* pRecordInfo) PURE; \
3788 STDMETHOD_(PVOID,RecordCreate)(THIS) PURE; \
3789 STDMETHOD_(HRESULT,RecordCreateCopy)(THIS_ PVOID pvSource, PVOID* ppvDest) PURE; \
3790 STDMETHOD_(HRESULT,RecordDestroy)(THIS_ PVOID pvRecord) PURE;
3792 HRESULT CALLBACK IRecordInfo_RecordInit_Proxy(
3793 IRecordInfo* This,
3794 PVOID pvNew);
3795 void __RPC_STUB IRecordInfo_RecordInit_Stub(
3796 struct IRpcStubBuffer* This,
3797 struct IRpcChannelBuffer* pRpcChannelBuffer,
3798 PRPC_MESSAGE pRpcMessage,
3799 DWORD* pdwStubPhase);
3800 HRESULT CALLBACK IRecordInfo_RecordClear_Proxy(
3801 IRecordInfo* This,
3802 PVOID pvExisting);
3803 void __RPC_STUB IRecordInfo_RecordClear_Stub(
3804 struct IRpcStubBuffer* This,
3805 struct IRpcChannelBuffer* pRpcChannelBuffer,
3806 PRPC_MESSAGE pRpcMessage,
3807 DWORD* pdwStubPhase);
3808 HRESULT CALLBACK IRecordInfo_RecordCopy_Proxy(
3809 IRecordInfo* This,
3810 PVOID pvExisting,
3811 PVOID pvNew);
3812 void __RPC_STUB IRecordInfo_RecordCopy_Stub(
3813 struct IRpcStubBuffer* This,
3814 struct IRpcChannelBuffer* pRpcChannelBuffer,
3815 PRPC_MESSAGE pRpcMessage,
3816 DWORD* pdwStubPhase);
3817 HRESULT CALLBACK IRecordInfo_GetGuid_Proxy(
3818 IRecordInfo* This,
3819 GUID* pguid);
3820 void __RPC_STUB IRecordInfo_GetGuid_Stub(
3821 struct IRpcStubBuffer* This,
3822 struct IRpcChannelBuffer* pRpcChannelBuffer,
3823 PRPC_MESSAGE pRpcMessage,
3824 DWORD* pdwStubPhase);
3825 HRESULT CALLBACK IRecordInfo_GetName_Proxy(
3826 IRecordInfo* This,
3827 BSTR* pbstrName);
3828 void __RPC_STUB IRecordInfo_GetName_Stub(
3829 struct IRpcStubBuffer* This,
3830 struct IRpcChannelBuffer* pRpcChannelBuffer,
3831 PRPC_MESSAGE pRpcMessage,
3832 DWORD* pdwStubPhase);
3833 HRESULT CALLBACK IRecordInfo_GetSize_Proxy(
3834 IRecordInfo* This,
3835 ULONG* pcbSize);
3836 void __RPC_STUB IRecordInfo_GetSize_Stub(
3837 struct IRpcStubBuffer* This,
3838 struct IRpcChannelBuffer* pRpcChannelBuffer,
3839 PRPC_MESSAGE pRpcMessage,
3840 DWORD* pdwStubPhase);
3841 HRESULT CALLBACK IRecordInfo_GetTypeInfo_Proxy(
3842 IRecordInfo* This,
3843 ITypeInfo** ppTypeInfo);
3844 void __RPC_STUB IRecordInfo_GetTypeInfo_Stub(
3845 struct IRpcStubBuffer* This,
3846 struct IRpcChannelBuffer* pRpcChannelBuffer,
3847 PRPC_MESSAGE pRpcMessage,
3848 DWORD* pdwStubPhase);
3849 HRESULT CALLBACK IRecordInfo_GetField_Proxy(
3850 IRecordInfo* This,
3851 PVOID pvData,
3852 LPCOLESTR szFieldName,
3853 VARIANT* pvarField);
3854 void __RPC_STUB IRecordInfo_GetField_Stub(
3855 struct IRpcStubBuffer* This,
3856 struct IRpcChannelBuffer* pRpcChannelBuffer,
3857 PRPC_MESSAGE pRpcMessage,
3858 DWORD* pdwStubPhase);
3859 HRESULT CALLBACK IRecordInfo_GetFieldNoCopy_Proxy(
3860 IRecordInfo* This,
3861 PVOID pvData,
3862 LPCOLESTR szFieldName,
3863 VARIANT* pvarField,
3864 PVOID* ppvDataCArray);
3865 void __RPC_STUB IRecordInfo_GetFieldNoCopy_Stub(
3866 struct IRpcStubBuffer* This,
3867 struct IRpcChannelBuffer* pRpcChannelBuffer,
3868 PRPC_MESSAGE pRpcMessage,
3869 DWORD* pdwStubPhase);
3870 HRESULT CALLBACK IRecordInfo_PutField_Proxy(
3871 IRecordInfo* This,
3872 ULONG wFlags,
3873 PVOID pvData,
3874 LPCOLESTR szFieldName,
3875 VARIANT* pvarField);
3876 void __RPC_STUB IRecordInfo_PutField_Stub(
3877 struct IRpcStubBuffer* This,
3878 struct IRpcChannelBuffer* pRpcChannelBuffer,
3879 PRPC_MESSAGE pRpcMessage,
3880 DWORD* pdwStubPhase);
3881 HRESULT CALLBACK IRecordInfo_PutFieldNoCopy_Proxy(
3882 IRecordInfo* This,
3883 ULONG wFlags,
3884 PVOID pvData,
3885 LPCOLESTR szFieldName,
3886 VARIANT* pvarField);
3887 void __RPC_STUB IRecordInfo_PutFieldNoCopy_Stub(
3888 struct IRpcStubBuffer* This,
3889 struct IRpcChannelBuffer* pRpcChannelBuffer,
3890 PRPC_MESSAGE pRpcMessage,
3891 DWORD* pdwStubPhase);
3892 HRESULT CALLBACK IRecordInfo_GetFieldNames_Proxy(
3893 IRecordInfo* This,
3894 ULONG* pcNames,
3895 BSTR* rgBstrNames);
3896 void __RPC_STUB IRecordInfo_GetFieldNames_Stub(
3897 struct IRpcStubBuffer* This,
3898 struct IRpcChannelBuffer* pRpcChannelBuffer,
3899 PRPC_MESSAGE pRpcMessage,
3900 DWORD* pdwStubPhase);
3901 BOOL CALLBACK IRecordInfo_IsMatchingType_Proxy(
3902 IRecordInfo* This,
3903 IRecordInfo* pRecordInfo);
3904 void __RPC_STUB IRecordInfo_IsMatchingType_Stub(
3905 struct IRpcStubBuffer* This,
3906 struct IRpcChannelBuffer* pRpcChannelBuffer,
3907 PRPC_MESSAGE pRpcMessage,
3908 DWORD* pdwStubPhase);
3909 PVOID CALLBACK IRecordInfo_RecordCreate_Proxy(
3910 IRecordInfo* This);
3911 void __RPC_STUB IRecordInfo_RecordCreate_Stub(
3912 struct IRpcStubBuffer* This,
3913 struct IRpcChannelBuffer* pRpcChannelBuffer,
3914 PRPC_MESSAGE pRpcMessage,
3915 DWORD* pdwStubPhase);
3916 HRESULT CALLBACK IRecordInfo_RecordCreateCopy_Proxy(
3917 IRecordInfo* This,
3918 PVOID pvSource,
3919 PVOID* ppvDest);
3920 void __RPC_STUB IRecordInfo_RecordCreateCopy_Stub(
3921 struct IRpcStubBuffer* This,
3922 struct IRpcChannelBuffer* pRpcChannelBuffer,
3923 PRPC_MESSAGE pRpcMessage,
3924 DWORD* pdwStubPhase);
3925 HRESULT CALLBACK IRecordInfo_RecordDestroy_Proxy(
3926 IRecordInfo* This,
3927 PVOID pvRecord);
3928 void __RPC_STUB IRecordInfo_RecordDestroy_Stub(
3929 struct IRpcStubBuffer* This,
3930 struct IRpcChannelBuffer* pRpcChannelBuffer,
3931 PRPC_MESSAGE pRpcMessage,
3932 DWORD* pdwStubPhase);
3934 #endif /* __IRecordInfo_INTERFACE_DEFINED__ */
3936 #ifndef __ICreateTypeInfo_FWD_DEFINED__
3937 #define __ICreateTypeInfo_FWD_DEFINED__
3938 typedef struct ICreateTypeInfo ICreateTypeInfo;
3939 #endif
3941 typedef ICreateTypeInfo *LPCREATETYPEINFO;
3943 /*****************************************************************************
3944 * ICreateTypeInfo interface
3946 #ifndef __ICreateTypeInfo_INTERFACE_DEFINED__
3947 #define __ICreateTypeInfo_INTERFACE_DEFINED__
3949 DEFINE_GUID(IID_ICreateTypeInfo, 0x00020405, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3950 #if defined(__cplusplus) && !defined(CINTERFACE)
3951 struct ICreateTypeInfo : public IUnknown
3953 virtual HRESULT STDMETHODCALLTYPE SetGuid(
3954 REFGUID guid) = 0;
3956 virtual HRESULT STDMETHODCALLTYPE SetTypeFlags(
3957 UINT uTypeFlags) = 0;
3959 virtual HRESULT STDMETHODCALLTYPE SetDocString(
3960 LPOLESTR pStrDoc) = 0;
3962 virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
3963 DWORD dwHelpContext) = 0;
3965 virtual HRESULT STDMETHODCALLTYPE SetVersion(
3966 WORD wMajorVerNum,
3967 WORD wMinorVerNum) = 0;
3969 virtual HRESULT STDMETHODCALLTYPE AddRefTypeInfo(
3970 ITypeInfo* pTInfo,
3971 HREFTYPE* phRefType) = 0;
3973 virtual HRESULT STDMETHODCALLTYPE AddFuncDesc(
3974 UINT index,
3975 FUNCDESC* pFuncDesc) = 0;
3977 virtual HRESULT STDMETHODCALLTYPE AddImplType(
3978 UINT index,
3979 HREFTYPE hRefType) = 0;
3981 virtual HRESULT STDMETHODCALLTYPE SetImplTypeFlags(
3982 UINT index,
3983 INT implTypeFlags) = 0;
3985 virtual HRESULT STDMETHODCALLTYPE SetAlignment(
3986 WORD cbAlignment) = 0;
3988 virtual HRESULT STDMETHODCALLTYPE SetSchema(
3989 LPOLESTR pStrSchema) = 0;
3991 virtual HRESULT STDMETHODCALLTYPE AddVarDesc(
3992 UINT index,
3993 VARDESC* pVarDesc) = 0;
3995 virtual HRESULT STDMETHODCALLTYPE SetFuncAndParamNames(
3996 UINT index,
3997 LPOLESTR* rgszNames,
3998 UINT cNames) = 0;
4000 virtual HRESULT STDMETHODCALLTYPE SetVarName(
4001 UINT index,
4002 LPOLESTR szName) = 0;
4004 virtual HRESULT STDMETHODCALLTYPE SetTypeDescAlias(
4005 TYPEDESC* pTDescAlias) = 0;
4007 virtual HRESULT STDMETHODCALLTYPE DefineFuncAsDllEntry(
4008 UINT index,
4009 LPOLESTR szDllName,
4010 LPOLESTR szProcName) = 0;
4012 virtual HRESULT STDMETHODCALLTYPE SetFuncDocString(
4013 UINT index,
4014 LPOLESTR szDocString) = 0;
4016 virtual HRESULT STDMETHODCALLTYPE SetVarDocString(
4017 UINT index,
4018 LPOLESTR szDocString) = 0;
4020 virtual HRESULT STDMETHODCALLTYPE SetFuncHelpContext(
4021 UINT index,
4022 DWORD dwHelpContext) = 0;
4024 virtual HRESULT STDMETHODCALLTYPE SetVarHelpContext(
4025 UINT index,
4026 DWORD dwHelpContext) = 0;
4028 virtual HRESULT STDMETHODCALLTYPE SetMops(
4029 UINT index,
4030 BSTR bstrMops) = 0;
4032 virtual HRESULT STDMETHODCALLTYPE SetTypeIdldesc(
4033 IDLDESC* pIdlDesc) = 0;
4035 virtual HRESULT STDMETHODCALLTYPE LayOut(
4036 ) = 0;
4039 #else
4040 typedef struct ICreateTypeInfoVtbl ICreateTypeInfoVtbl;
4041 struct ICreateTypeInfo {
4042 const ICreateTypeInfoVtbl* lpVtbl;
4044 struct ICreateTypeInfoVtbl {
4045 BEGIN_INTERFACE
4047 /*** IUnknown methods ***/
4048 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4049 ICreateTypeInfo* This,
4050 REFIID riid,
4051 void** ppvObject);
4053 ULONG (STDMETHODCALLTYPE *AddRef)(
4054 ICreateTypeInfo* This);
4056 ULONG (STDMETHODCALLTYPE *Release)(
4057 ICreateTypeInfo* This);
4059 /*** ICreateTypeInfo methods ***/
4060 HRESULT (STDMETHODCALLTYPE *SetGuid)(
4061 ICreateTypeInfo* This,
4062 REFGUID guid);
4064 HRESULT (STDMETHODCALLTYPE *SetTypeFlags)(
4065 ICreateTypeInfo* This,
4066 UINT uTypeFlags);
4068 HRESULT (STDMETHODCALLTYPE *SetDocString)(
4069 ICreateTypeInfo* This,
4070 LPOLESTR pStrDoc);
4072 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
4073 ICreateTypeInfo* This,
4074 DWORD dwHelpContext);
4076 HRESULT (STDMETHODCALLTYPE *SetVersion)(
4077 ICreateTypeInfo* This,
4078 WORD wMajorVerNum,
4079 WORD wMinorVerNum);
4081 HRESULT (STDMETHODCALLTYPE *AddRefTypeInfo)(
4082 ICreateTypeInfo* This,
4083 ITypeInfo* pTInfo,
4084 HREFTYPE* phRefType);
4086 HRESULT (STDMETHODCALLTYPE *AddFuncDesc)(
4087 ICreateTypeInfo* This,
4088 UINT index,
4089 FUNCDESC* pFuncDesc);
4091 HRESULT (STDMETHODCALLTYPE *AddImplType)(
4092 ICreateTypeInfo* This,
4093 UINT index,
4094 HREFTYPE hRefType);
4096 HRESULT (STDMETHODCALLTYPE *SetImplTypeFlags)(
4097 ICreateTypeInfo* This,
4098 UINT index,
4099 INT implTypeFlags);
4101 HRESULT (STDMETHODCALLTYPE *SetAlignment)(
4102 ICreateTypeInfo* This,
4103 WORD cbAlignment);
4105 HRESULT (STDMETHODCALLTYPE *SetSchema)(
4106 ICreateTypeInfo* This,
4107 LPOLESTR pStrSchema);
4109 HRESULT (STDMETHODCALLTYPE *AddVarDesc)(
4110 ICreateTypeInfo* This,
4111 UINT index,
4112 VARDESC* pVarDesc);
4114 HRESULT (STDMETHODCALLTYPE *SetFuncAndParamNames)(
4115 ICreateTypeInfo* This,
4116 UINT index,
4117 LPOLESTR* rgszNames,
4118 UINT cNames);
4120 HRESULT (STDMETHODCALLTYPE *SetVarName)(
4121 ICreateTypeInfo* This,
4122 UINT index,
4123 LPOLESTR szName);
4125 HRESULT (STDMETHODCALLTYPE *SetTypeDescAlias)(
4126 ICreateTypeInfo* This,
4127 TYPEDESC* pTDescAlias);
4129 HRESULT (STDMETHODCALLTYPE *DefineFuncAsDllEntry)(
4130 ICreateTypeInfo* This,
4131 UINT index,
4132 LPOLESTR szDllName,
4133 LPOLESTR szProcName);
4135 HRESULT (STDMETHODCALLTYPE *SetFuncDocString)(
4136 ICreateTypeInfo* This,
4137 UINT index,
4138 LPOLESTR szDocString);
4140 HRESULT (STDMETHODCALLTYPE *SetVarDocString)(
4141 ICreateTypeInfo* This,
4142 UINT index,
4143 LPOLESTR szDocString);
4145 HRESULT (STDMETHODCALLTYPE *SetFuncHelpContext)(
4146 ICreateTypeInfo* This,
4147 UINT index,
4148 DWORD dwHelpContext);
4150 HRESULT (STDMETHODCALLTYPE *SetVarHelpContext)(
4151 ICreateTypeInfo* This,
4152 UINT index,
4153 DWORD dwHelpContext);
4155 HRESULT (STDMETHODCALLTYPE *SetMops)(
4156 ICreateTypeInfo* This,
4157 UINT index,
4158 BSTR bstrMops);
4160 HRESULT (STDMETHODCALLTYPE *SetTypeIdldesc)(
4161 ICreateTypeInfo* This,
4162 IDLDESC* pIdlDesc);
4164 HRESULT (STDMETHODCALLTYPE *LayOut)(
4165 ICreateTypeInfo* This);
4167 END_INTERFACE
4170 #ifdef COBJMACROS
4171 /*** IUnknown methods ***/
4172 #define ICreateTypeInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4173 #define ICreateTypeInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
4174 #define ICreateTypeInfo_Release(p) (p)->lpVtbl->Release(p)
4175 /*** ICreateTypeInfo methods ***/
4176 #define ICreateTypeInfo_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
4177 #define ICreateTypeInfo_SetTypeFlags(p,a) (p)->lpVtbl->SetTypeFlags(p,a)
4178 #define ICreateTypeInfo_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
4179 #define ICreateTypeInfo_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
4180 #define ICreateTypeInfo_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
4181 #define ICreateTypeInfo_AddRefTypeInfo(p,a,b) (p)->lpVtbl->AddRefTypeInfo(p,a,b)
4182 #define ICreateTypeInfo_AddFuncDesc(p,a,b) (p)->lpVtbl->AddFuncDesc(p,a,b)
4183 #define ICreateTypeInfo_AddImplType(p,a,b) (p)->lpVtbl->AddImplType(p,a,b)
4184 #define ICreateTypeInfo_SetImplTypeFlags(p,a,b) (p)->lpVtbl->SetImplTypeFlags(p,a,b)
4185 #define ICreateTypeInfo_SetAlignment(p,a) (p)->lpVtbl->SetAlignment(p,a)
4186 #define ICreateTypeInfo_SetSchema(p,a) (p)->lpVtbl->SetSchema(p,a)
4187 #define ICreateTypeInfo_AddVarDesc(p,a,b) (p)->lpVtbl->AddVarDesc(p,a,b)
4188 #define ICreateTypeInfo_SetFuncAndParamNames(p,a,b,c) (p)->lpVtbl->SetFuncAndParamNames(p,a,b,c)
4189 #define ICreateTypeInfo_SetVarName(p,a,b) (p)->lpVtbl->SetVarName(p,a,b)
4190 #define ICreateTypeInfo_SetTypeDescAlias(p,a) (p)->lpVtbl->SetTypeDescAlias(p,a)
4191 #define ICreateTypeInfo_DefineFuncAsDllEntry(p,a,b,c) (p)->lpVtbl->DefineFuncAsDllEntry(p,a,b,c)
4192 #define ICreateTypeInfo_SetFuncDocString(p,a,b) (p)->lpVtbl->SetFuncDocString(p,a,b)
4193 #define ICreateTypeInfo_SetVarDocString(p,a,b) (p)->lpVtbl->SetVarDocString(p,a,b)
4194 #define ICreateTypeInfo_SetFuncHelpContext(p,a,b) (p)->lpVtbl->SetFuncHelpContext(p,a,b)
4195 #define ICreateTypeInfo_SetVarHelpContext(p,a,b) (p)->lpVtbl->SetVarHelpContext(p,a,b)
4196 #define ICreateTypeInfo_SetMops(p,a,b) (p)->lpVtbl->SetMops(p,a,b)
4197 #define ICreateTypeInfo_SetTypeIdldesc(p,a) (p)->lpVtbl->SetTypeIdldesc(p,a)
4198 #define ICreateTypeInfo_LayOut(p) (p)->lpVtbl->LayOut(p)
4199 #endif
4201 #endif
4203 #define ICreateTypeInfo_METHODS \
4204 /*** IUnknown methods ***/ \
4205 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4206 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4207 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4208 /*** ICreateTypeInfo methods ***/ \
4209 STDMETHOD_(HRESULT,SetGuid)(THIS_ REFGUID guid) PURE; \
4210 STDMETHOD_(HRESULT,SetTypeFlags)(THIS_ UINT uTypeFlags) PURE; \
4211 STDMETHOD_(HRESULT,SetDocString)(THIS_ LPOLESTR pStrDoc) PURE; \
4212 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE; \
4213 STDMETHOD_(HRESULT,SetVersion)(THIS_ WORD wMajorVerNum, WORD wMinorVerNum) PURE; \
4214 STDMETHOD_(HRESULT,AddRefTypeInfo)(THIS_ ITypeInfo* pTInfo, HREFTYPE* phRefType) PURE; \
4215 STDMETHOD_(HRESULT,AddFuncDesc)(THIS_ UINT index, FUNCDESC* pFuncDesc) PURE; \
4216 STDMETHOD_(HRESULT,AddImplType)(THIS_ UINT index, HREFTYPE hRefType) PURE; \
4217 STDMETHOD_(HRESULT,SetImplTypeFlags)(THIS_ UINT index, INT implTypeFlags) PURE; \
4218 STDMETHOD_(HRESULT,SetAlignment)(THIS_ WORD cbAlignment) PURE; \
4219 STDMETHOD_(HRESULT,SetSchema)(THIS_ LPOLESTR pStrSchema) PURE; \
4220 STDMETHOD_(HRESULT,AddVarDesc)(THIS_ UINT index, VARDESC* pVarDesc) PURE; \
4221 STDMETHOD_(HRESULT,SetFuncAndParamNames)(THIS_ UINT index, LPOLESTR* rgszNames, UINT cNames) PURE; \
4222 STDMETHOD_(HRESULT,SetVarName)(THIS_ UINT index, LPOLESTR szName) PURE; \
4223 STDMETHOD_(HRESULT,SetTypeDescAlias)(THIS_ TYPEDESC* pTDescAlias) PURE; \
4224 STDMETHOD_(HRESULT,DefineFuncAsDllEntry)(THIS_ UINT index, LPOLESTR szDllName, LPOLESTR szProcName) PURE; \
4225 STDMETHOD_(HRESULT,SetFuncDocString)(THIS_ UINT index, LPOLESTR szDocString) PURE; \
4226 STDMETHOD_(HRESULT,SetVarDocString)(THIS_ UINT index, LPOLESTR szDocString) PURE; \
4227 STDMETHOD_(HRESULT,SetFuncHelpContext)(THIS_ UINT index, DWORD dwHelpContext) PURE; \
4228 STDMETHOD_(HRESULT,SetVarHelpContext)(THIS_ UINT index, DWORD dwHelpContext) PURE; \
4229 STDMETHOD_(HRESULT,SetMops)(THIS_ UINT index, BSTR bstrMops) PURE; \
4230 STDMETHOD_(HRESULT,SetTypeIdldesc)(THIS_ IDLDESC* pIdlDesc) PURE; \
4231 STDMETHOD_(HRESULT,LayOut)(THIS) PURE;
4233 HRESULT CALLBACK ICreateTypeInfo_SetGuid_Proxy(
4234 ICreateTypeInfo* This,
4235 REFGUID guid);
4236 void __RPC_STUB ICreateTypeInfo_SetGuid_Stub(
4237 struct IRpcStubBuffer* This,
4238 struct IRpcChannelBuffer* pRpcChannelBuffer,
4239 PRPC_MESSAGE pRpcMessage,
4240 DWORD* pdwStubPhase);
4241 HRESULT CALLBACK ICreateTypeInfo_SetTypeFlags_Proxy(
4242 ICreateTypeInfo* This,
4243 UINT uTypeFlags);
4244 void __RPC_STUB ICreateTypeInfo_SetTypeFlags_Stub(
4245 struct IRpcStubBuffer* This,
4246 struct IRpcChannelBuffer* pRpcChannelBuffer,
4247 PRPC_MESSAGE pRpcMessage,
4248 DWORD* pdwStubPhase);
4249 HRESULT CALLBACK ICreateTypeInfo_SetDocString_Proxy(
4250 ICreateTypeInfo* This,
4251 LPOLESTR pStrDoc);
4252 void __RPC_STUB ICreateTypeInfo_SetDocString_Stub(
4253 struct IRpcStubBuffer* This,
4254 struct IRpcChannelBuffer* pRpcChannelBuffer,
4255 PRPC_MESSAGE pRpcMessage,
4256 DWORD* pdwStubPhase);
4257 HRESULT CALLBACK ICreateTypeInfo_SetHelpContext_Proxy(
4258 ICreateTypeInfo* This,
4259 DWORD dwHelpContext);
4260 void __RPC_STUB ICreateTypeInfo_SetHelpContext_Stub(
4261 struct IRpcStubBuffer* This,
4262 struct IRpcChannelBuffer* pRpcChannelBuffer,
4263 PRPC_MESSAGE pRpcMessage,
4264 DWORD* pdwStubPhase);
4265 HRESULT CALLBACK ICreateTypeInfo_SetVersion_Proxy(
4266 ICreateTypeInfo* This,
4267 WORD wMajorVerNum,
4268 WORD wMinorVerNum);
4269 void __RPC_STUB ICreateTypeInfo_SetVersion_Stub(
4270 struct IRpcStubBuffer* This,
4271 struct IRpcChannelBuffer* pRpcChannelBuffer,
4272 PRPC_MESSAGE pRpcMessage,
4273 DWORD* pdwStubPhase);
4274 HRESULT CALLBACK ICreateTypeInfo_AddRefTypeInfo_Proxy(
4275 ICreateTypeInfo* This,
4276 ITypeInfo* pTInfo,
4277 HREFTYPE* phRefType);
4278 void __RPC_STUB ICreateTypeInfo_AddRefTypeInfo_Stub(
4279 struct IRpcStubBuffer* This,
4280 struct IRpcChannelBuffer* pRpcChannelBuffer,
4281 PRPC_MESSAGE pRpcMessage,
4282 DWORD* pdwStubPhase);
4283 HRESULT CALLBACK ICreateTypeInfo_AddFuncDesc_Proxy(
4284 ICreateTypeInfo* This,
4285 UINT index,
4286 FUNCDESC* pFuncDesc);
4287 void __RPC_STUB ICreateTypeInfo_AddFuncDesc_Stub(
4288 struct IRpcStubBuffer* This,
4289 struct IRpcChannelBuffer* pRpcChannelBuffer,
4290 PRPC_MESSAGE pRpcMessage,
4291 DWORD* pdwStubPhase);
4292 HRESULT CALLBACK ICreateTypeInfo_AddImplType_Proxy(
4293 ICreateTypeInfo* This,
4294 UINT index,
4295 HREFTYPE hRefType);
4296 void __RPC_STUB ICreateTypeInfo_AddImplType_Stub(
4297 struct IRpcStubBuffer* This,
4298 struct IRpcChannelBuffer* pRpcChannelBuffer,
4299 PRPC_MESSAGE pRpcMessage,
4300 DWORD* pdwStubPhase);
4301 HRESULT CALLBACK ICreateTypeInfo_SetImplTypeFlags_Proxy(
4302 ICreateTypeInfo* This,
4303 UINT index,
4304 INT implTypeFlags);
4305 void __RPC_STUB ICreateTypeInfo_SetImplTypeFlags_Stub(
4306 struct IRpcStubBuffer* This,
4307 struct IRpcChannelBuffer* pRpcChannelBuffer,
4308 PRPC_MESSAGE pRpcMessage,
4309 DWORD* pdwStubPhase);
4310 HRESULT CALLBACK ICreateTypeInfo_SetAlignment_Proxy(
4311 ICreateTypeInfo* This,
4312 WORD cbAlignment);
4313 void __RPC_STUB ICreateTypeInfo_SetAlignment_Stub(
4314 struct IRpcStubBuffer* This,
4315 struct IRpcChannelBuffer* pRpcChannelBuffer,
4316 PRPC_MESSAGE pRpcMessage,
4317 DWORD* pdwStubPhase);
4318 HRESULT CALLBACK ICreateTypeInfo_SetSchema_Proxy(
4319 ICreateTypeInfo* This,
4320 LPOLESTR pStrSchema);
4321 void __RPC_STUB ICreateTypeInfo_SetSchema_Stub(
4322 struct IRpcStubBuffer* This,
4323 struct IRpcChannelBuffer* pRpcChannelBuffer,
4324 PRPC_MESSAGE pRpcMessage,
4325 DWORD* pdwStubPhase);
4326 HRESULT CALLBACK ICreateTypeInfo_AddVarDesc_Proxy(
4327 ICreateTypeInfo* This,
4328 UINT index,
4329 VARDESC* pVarDesc);
4330 void __RPC_STUB ICreateTypeInfo_AddVarDesc_Stub(
4331 struct IRpcStubBuffer* This,
4332 struct IRpcChannelBuffer* pRpcChannelBuffer,
4333 PRPC_MESSAGE pRpcMessage,
4334 DWORD* pdwStubPhase);
4335 HRESULT CALLBACK ICreateTypeInfo_SetFuncAndParamNames_Proxy(
4336 ICreateTypeInfo* This,
4337 UINT index,
4338 LPOLESTR* rgszNames,
4339 UINT cNames);
4340 void __RPC_STUB ICreateTypeInfo_SetFuncAndParamNames_Stub(
4341 struct IRpcStubBuffer* This,
4342 struct IRpcChannelBuffer* pRpcChannelBuffer,
4343 PRPC_MESSAGE pRpcMessage,
4344 DWORD* pdwStubPhase);
4345 HRESULT CALLBACK ICreateTypeInfo_SetVarName_Proxy(
4346 ICreateTypeInfo* This,
4347 UINT index,
4348 LPOLESTR szName);
4349 void __RPC_STUB ICreateTypeInfo_SetVarName_Stub(
4350 struct IRpcStubBuffer* This,
4351 struct IRpcChannelBuffer* pRpcChannelBuffer,
4352 PRPC_MESSAGE pRpcMessage,
4353 DWORD* pdwStubPhase);
4354 HRESULT CALLBACK ICreateTypeInfo_SetTypeDescAlias_Proxy(
4355 ICreateTypeInfo* This,
4356 TYPEDESC* pTDescAlias);
4357 void __RPC_STUB ICreateTypeInfo_SetTypeDescAlias_Stub(
4358 struct IRpcStubBuffer* This,
4359 struct IRpcChannelBuffer* pRpcChannelBuffer,
4360 PRPC_MESSAGE pRpcMessage,
4361 DWORD* pdwStubPhase);
4362 HRESULT CALLBACK ICreateTypeInfo_DefineFuncAsDllEntry_Proxy(
4363 ICreateTypeInfo* This,
4364 UINT index,
4365 LPOLESTR szDllName,
4366 LPOLESTR szProcName);
4367 void __RPC_STUB ICreateTypeInfo_DefineFuncAsDllEntry_Stub(
4368 struct IRpcStubBuffer* This,
4369 struct IRpcChannelBuffer* pRpcChannelBuffer,
4370 PRPC_MESSAGE pRpcMessage,
4371 DWORD* pdwStubPhase);
4372 HRESULT CALLBACK ICreateTypeInfo_SetFuncDocString_Proxy(
4373 ICreateTypeInfo* This,
4374 UINT index,
4375 LPOLESTR szDocString);
4376 void __RPC_STUB ICreateTypeInfo_SetFuncDocString_Stub(
4377 struct IRpcStubBuffer* This,
4378 struct IRpcChannelBuffer* pRpcChannelBuffer,
4379 PRPC_MESSAGE pRpcMessage,
4380 DWORD* pdwStubPhase);
4381 HRESULT CALLBACK ICreateTypeInfo_SetVarDocString_Proxy(
4382 ICreateTypeInfo* This,
4383 UINT index,
4384 LPOLESTR szDocString);
4385 void __RPC_STUB ICreateTypeInfo_SetVarDocString_Stub(
4386 struct IRpcStubBuffer* This,
4387 struct IRpcChannelBuffer* pRpcChannelBuffer,
4388 PRPC_MESSAGE pRpcMessage,
4389 DWORD* pdwStubPhase);
4390 HRESULT CALLBACK ICreateTypeInfo_SetFuncHelpContext_Proxy(
4391 ICreateTypeInfo* This,
4392 UINT index,
4393 DWORD dwHelpContext);
4394 void __RPC_STUB ICreateTypeInfo_SetFuncHelpContext_Stub(
4395 struct IRpcStubBuffer* This,
4396 struct IRpcChannelBuffer* pRpcChannelBuffer,
4397 PRPC_MESSAGE pRpcMessage,
4398 DWORD* pdwStubPhase);
4399 HRESULT CALLBACK ICreateTypeInfo_SetVarHelpContext_Proxy(
4400 ICreateTypeInfo* This,
4401 UINT index,
4402 DWORD dwHelpContext);
4403 void __RPC_STUB ICreateTypeInfo_SetVarHelpContext_Stub(
4404 struct IRpcStubBuffer* This,
4405 struct IRpcChannelBuffer* pRpcChannelBuffer,
4406 PRPC_MESSAGE pRpcMessage,
4407 DWORD* pdwStubPhase);
4408 HRESULT CALLBACK ICreateTypeInfo_SetMops_Proxy(
4409 ICreateTypeInfo* This,
4410 UINT index,
4411 BSTR bstrMops);
4412 void __RPC_STUB ICreateTypeInfo_SetMops_Stub(
4413 struct IRpcStubBuffer* This,
4414 struct IRpcChannelBuffer* pRpcChannelBuffer,
4415 PRPC_MESSAGE pRpcMessage,
4416 DWORD* pdwStubPhase);
4417 HRESULT CALLBACK ICreateTypeInfo_SetTypeIdldesc_Proxy(
4418 ICreateTypeInfo* This,
4419 IDLDESC* pIdlDesc);
4420 void __RPC_STUB ICreateTypeInfo_SetTypeIdldesc_Stub(
4421 struct IRpcStubBuffer* This,
4422 struct IRpcChannelBuffer* pRpcChannelBuffer,
4423 PRPC_MESSAGE pRpcMessage,
4424 DWORD* pdwStubPhase);
4425 HRESULT CALLBACK ICreateTypeInfo_LayOut_Proxy(
4426 ICreateTypeInfo* This);
4427 void __RPC_STUB ICreateTypeInfo_LayOut_Stub(
4428 struct IRpcStubBuffer* This,
4429 struct IRpcChannelBuffer* pRpcChannelBuffer,
4430 PRPC_MESSAGE pRpcMessage,
4431 DWORD* pdwStubPhase);
4433 #endif /* __ICreateTypeInfo_INTERFACE_DEFINED__ */
4435 #ifndef __ICreateTypeInfo2_FWD_DEFINED__
4436 #define __ICreateTypeInfo2_FWD_DEFINED__
4437 typedef struct ICreateTypeInfo2 ICreateTypeInfo2;
4438 #endif
4440 typedef ICreateTypeInfo2 *LPCREATETYPEINFO2;
4442 /*****************************************************************************
4443 * ICreateTypeInfo2 interface
4445 #ifndef __ICreateTypeInfo2_INTERFACE_DEFINED__
4446 #define __ICreateTypeInfo2_INTERFACE_DEFINED__
4448 DEFINE_GUID(IID_ICreateTypeInfo2, 0x0002040e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4449 #if defined(__cplusplus) && !defined(CINTERFACE)
4450 struct ICreateTypeInfo2 : public ICreateTypeInfo
4452 virtual HRESULT STDMETHODCALLTYPE DeleteFuncDesc(
4453 UINT index) = 0;
4455 virtual HRESULT STDMETHODCALLTYPE DeleteFuncDescByMemId(
4456 MEMBERID memid,
4457 INVOKEKIND invKind) = 0;
4459 virtual HRESULT STDMETHODCALLTYPE DeleteVarDesc(
4460 UINT index) = 0;
4462 virtual HRESULT STDMETHODCALLTYPE DeleteVarDescByMemId(
4463 MEMBERID memid) = 0;
4465 virtual HRESULT STDMETHODCALLTYPE DeleteImplType(
4466 UINT index) = 0;
4468 virtual HRESULT STDMETHODCALLTYPE SetCustData(
4469 REFGUID guid,
4470 VARIANT* pVarVal) = 0;
4472 virtual HRESULT STDMETHODCALLTYPE SetFuncCustData(
4473 UINT index,
4474 REFGUID guid,
4475 VARIANT* pVarVal) = 0;
4477 virtual HRESULT STDMETHODCALLTYPE SetParamCustData(
4478 UINT indexFunc,
4479 UINT indexParam,
4480 REFGUID guid,
4481 VARIANT* pVarVal) = 0;
4483 virtual HRESULT STDMETHODCALLTYPE SetVarCustData(
4484 UINT index,
4485 REFGUID guid,
4486 VARIANT* pVarVal) = 0;
4488 virtual HRESULT STDMETHODCALLTYPE SetImplTypeCustData(
4489 UINT index,
4490 REFGUID guid,
4491 VARIANT* pVarVal) = 0;
4493 virtual HRESULT STDMETHODCALLTYPE SetHelpStringContext(
4494 ULONG dwHelpStringContext) = 0;
4496 virtual HRESULT STDMETHODCALLTYPE SetFuncHelpStringContext(
4497 UINT index,
4498 ULONG dwHelpStringContext) = 0;
4500 virtual HRESULT STDMETHODCALLTYPE SetVarHelpStringContext(
4501 UINT index,
4502 ULONG dwHelpStringContext) = 0;
4504 virtual HRESULT STDMETHODCALLTYPE Invalidate(
4505 ) = 0;
4507 virtual HRESULT STDMETHODCALLTYPE SetName(
4508 LPOLESTR szName) = 0;
4511 #else
4512 typedef struct ICreateTypeInfo2Vtbl ICreateTypeInfo2Vtbl;
4513 struct ICreateTypeInfo2 {
4514 const ICreateTypeInfo2Vtbl* lpVtbl;
4516 struct ICreateTypeInfo2Vtbl {
4517 BEGIN_INTERFACE
4519 /*** IUnknown methods ***/
4520 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4521 ICreateTypeInfo2* This,
4522 REFIID riid,
4523 void** ppvObject);
4525 ULONG (STDMETHODCALLTYPE *AddRef)(
4526 ICreateTypeInfo2* This);
4528 ULONG (STDMETHODCALLTYPE *Release)(
4529 ICreateTypeInfo2* This);
4531 /*** ICreateTypeInfo methods ***/
4532 HRESULT (STDMETHODCALLTYPE *SetGuid)(
4533 ICreateTypeInfo2* This,
4534 REFGUID guid);
4536 HRESULT (STDMETHODCALLTYPE *SetTypeFlags)(
4537 ICreateTypeInfo2* This,
4538 UINT uTypeFlags);
4540 HRESULT (STDMETHODCALLTYPE *SetDocString)(
4541 ICreateTypeInfo2* This,
4542 LPOLESTR pStrDoc);
4544 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
4545 ICreateTypeInfo2* This,
4546 DWORD dwHelpContext);
4548 HRESULT (STDMETHODCALLTYPE *SetVersion)(
4549 ICreateTypeInfo2* This,
4550 WORD wMajorVerNum,
4551 WORD wMinorVerNum);
4553 HRESULT (STDMETHODCALLTYPE *AddRefTypeInfo)(
4554 ICreateTypeInfo2* This,
4555 ITypeInfo* pTInfo,
4556 HREFTYPE* phRefType);
4558 HRESULT (STDMETHODCALLTYPE *AddFuncDesc)(
4559 ICreateTypeInfo2* This,
4560 UINT index,
4561 FUNCDESC* pFuncDesc);
4563 HRESULT (STDMETHODCALLTYPE *AddImplType)(
4564 ICreateTypeInfo2* This,
4565 UINT index,
4566 HREFTYPE hRefType);
4568 HRESULT (STDMETHODCALLTYPE *SetImplTypeFlags)(
4569 ICreateTypeInfo2* This,
4570 UINT index,
4571 INT implTypeFlags);
4573 HRESULT (STDMETHODCALLTYPE *SetAlignment)(
4574 ICreateTypeInfo2* This,
4575 WORD cbAlignment);
4577 HRESULT (STDMETHODCALLTYPE *SetSchema)(
4578 ICreateTypeInfo2* This,
4579 LPOLESTR pStrSchema);
4581 HRESULT (STDMETHODCALLTYPE *AddVarDesc)(
4582 ICreateTypeInfo2* This,
4583 UINT index,
4584 VARDESC* pVarDesc);
4586 HRESULT (STDMETHODCALLTYPE *SetFuncAndParamNames)(
4587 ICreateTypeInfo2* This,
4588 UINT index,
4589 LPOLESTR* rgszNames,
4590 UINT cNames);
4592 HRESULT (STDMETHODCALLTYPE *SetVarName)(
4593 ICreateTypeInfo2* This,
4594 UINT index,
4595 LPOLESTR szName);
4597 HRESULT (STDMETHODCALLTYPE *SetTypeDescAlias)(
4598 ICreateTypeInfo2* This,
4599 TYPEDESC* pTDescAlias);
4601 HRESULT (STDMETHODCALLTYPE *DefineFuncAsDllEntry)(
4602 ICreateTypeInfo2* This,
4603 UINT index,
4604 LPOLESTR szDllName,
4605 LPOLESTR szProcName);
4607 HRESULT (STDMETHODCALLTYPE *SetFuncDocString)(
4608 ICreateTypeInfo2* This,
4609 UINT index,
4610 LPOLESTR szDocString);
4612 HRESULT (STDMETHODCALLTYPE *SetVarDocString)(
4613 ICreateTypeInfo2* This,
4614 UINT index,
4615 LPOLESTR szDocString);
4617 HRESULT (STDMETHODCALLTYPE *SetFuncHelpContext)(
4618 ICreateTypeInfo2* This,
4619 UINT index,
4620 DWORD dwHelpContext);
4622 HRESULT (STDMETHODCALLTYPE *SetVarHelpContext)(
4623 ICreateTypeInfo2* This,
4624 UINT index,
4625 DWORD dwHelpContext);
4627 HRESULT (STDMETHODCALLTYPE *SetMops)(
4628 ICreateTypeInfo2* This,
4629 UINT index,
4630 BSTR bstrMops);
4632 HRESULT (STDMETHODCALLTYPE *SetTypeIdldesc)(
4633 ICreateTypeInfo2* This,
4634 IDLDESC* pIdlDesc);
4636 HRESULT (STDMETHODCALLTYPE *LayOut)(
4637 ICreateTypeInfo2* This);
4639 /*** ICreateTypeInfo2 methods ***/
4640 HRESULT (STDMETHODCALLTYPE *DeleteFuncDesc)(
4641 ICreateTypeInfo2* This,
4642 UINT index);
4644 HRESULT (STDMETHODCALLTYPE *DeleteFuncDescByMemId)(
4645 ICreateTypeInfo2* This,
4646 MEMBERID memid,
4647 INVOKEKIND invKind);
4649 HRESULT (STDMETHODCALLTYPE *DeleteVarDesc)(
4650 ICreateTypeInfo2* This,
4651 UINT index);
4653 HRESULT (STDMETHODCALLTYPE *DeleteVarDescByMemId)(
4654 ICreateTypeInfo2* This,
4655 MEMBERID memid);
4657 HRESULT (STDMETHODCALLTYPE *DeleteImplType)(
4658 ICreateTypeInfo2* This,
4659 UINT index);
4661 HRESULT (STDMETHODCALLTYPE *SetCustData)(
4662 ICreateTypeInfo2* This,
4663 REFGUID guid,
4664 VARIANT* pVarVal);
4666 HRESULT (STDMETHODCALLTYPE *SetFuncCustData)(
4667 ICreateTypeInfo2* This,
4668 UINT index,
4669 REFGUID guid,
4670 VARIANT* pVarVal);
4672 HRESULT (STDMETHODCALLTYPE *SetParamCustData)(
4673 ICreateTypeInfo2* This,
4674 UINT indexFunc,
4675 UINT indexParam,
4676 REFGUID guid,
4677 VARIANT* pVarVal);
4679 HRESULT (STDMETHODCALLTYPE *SetVarCustData)(
4680 ICreateTypeInfo2* This,
4681 UINT index,
4682 REFGUID guid,
4683 VARIANT* pVarVal);
4685 HRESULT (STDMETHODCALLTYPE *SetImplTypeCustData)(
4686 ICreateTypeInfo2* This,
4687 UINT index,
4688 REFGUID guid,
4689 VARIANT* pVarVal);
4691 HRESULT (STDMETHODCALLTYPE *SetHelpStringContext)(
4692 ICreateTypeInfo2* This,
4693 ULONG dwHelpStringContext);
4695 HRESULT (STDMETHODCALLTYPE *SetFuncHelpStringContext)(
4696 ICreateTypeInfo2* This,
4697 UINT index,
4698 ULONG dwHelpStringContext);
4700 HRESULT (STDMETHODCALLTYPE *SetVarHelpStringContext)(
4701 ICreateTypeInfo2* This,
4702 UINT index,
4703 ULONG dwHelpStringContext);
4705 HRESULT (STDMETHODCALLTYPE *Invalidate)(
4706 ICreateTypeInfo2* This);
4708 HRESULT (STDMETHODCALLTYPE *SetName)(
4709 ICreateTypeInfo2* This,
4710 LPOLESTR szName);
4712 END_INTERFACE
4715 #ifdef COBJMACROS
4716 /*** IUnknown methods ***/
4717 #define ICreateTypeInfo2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4718 #define ICreateTypeInfo2_AddRef(p) (p)->lpVtbl->AddRef(p)
4719 #define ICreateTypeInfo2_Release(p) (p)->lpVtbl->Release(p)
4720 /*** ICreateTypeInfo methods ***/
4721 #define ICreateTypeInfo2_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
4722 #define ICreateTypeInfo2_SetTypeFlags(p,a) (p)->lpVtbl->SetTypeFlags(p,a)
4723 #define ICreateTypeInfo2_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
4724 #define ICreateTypeInfo2_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
4725 #define ICreateTypeInfo2_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
4726 #define ICreateTypeInfo2_AddRefTypeInfo(p,a,b) (p)->lpVtbl->AddRefTypeInfo(p,a,b)
4727 #define ICreateTypeInfo2_AddFuncDesc(p,a,b) (p)->lpVtbl->AddFuncDesc(p,a,b)
4728 #define ICreateTypeInfo2_AddImplType(p,a,b) (p)->lpVtbl->AddImplType(p,a,b)
4729 #define ICreateTypeInfo2_SetImplTypeFlags(p,a,b) (p)->lpVtbl->SetImplTypeFlags(p,a,b)
4730 #define ICreateTypeInfo2_SetAlignment(p,a) (p)->lpVtbl->SetAlignment(p,a)
4731 #define ICreateTypeInfo2_SetSchema(p,a) (p)->lpVtbl->SetSchema(p,a)
4732 #define ICreateTypeInfo2_AddVarDesc(p,a,b) (p)->lpVtbl->AddVarDesc(p,a,b)
4733 #define ICreateTypeInfo2_SetFuncAndParamNames(p,a,b,c) (p)->lpVtbl->SetFuncAndParamNames(p,a,b,c)
4734 #define ICreateTypeInfo2_SetVarName(p,a,b) (p)->lpVtbl->SetVarName(p,a,b)
4735 #define ICreateTypeInfo2_SetTypeDescAlias(p,a) (p)->lpVtbl->SetTypeDescAlias(p,a)
4736 #define ICreateTypeInfo2_DefineFuncAsDllEntry(p,a,b,c) (p)->lpVtbl->DefineFuncAsDllEntry(p,a,b,c)
4737 #define ICreateTypeInfo2_SetFuncDocString(p,a,b) (p)->lpVtbl->SetFuncDocString(p,a,b)
4738 #define ICreateTypeInfo2_SetVarDocString(p,a,b) (p)->lpVtbl->SetVarDocString(p,a,b)
4739 #define ICreateTypeInfo2_SetFuncHelpContext(p,a,b) (p)->lpVtbl->SetFuncHelpContext(p,a,b)
4740 #define ICreateTypeInfo2_SetVarHelpContext(p,a,b) (p)->lpVtbl->SetVarHelpContext(p,a,b)
4741 #define ICreateTypeInfo2_SetMops(p,a,b) (p)->lpVtbl->SetMops(p,a,b)
4742 #define ICreateTypeInfo2_SetTypeIdldesc(p,a) (p)->lpVtbl->SetTypeIdldesc(p,a)
4743 #define ICreateTypeInfo2_LayOut(p) (p)->lpVtbl->LayOut(p)
4744 /*** ICreateTypeInfo2 methods ***/
4745 #define ICreateTypeInfo2_DeleteFuncDesc(p,a) (p)->lpVtbl->DeleteFuncDesc(p,a)
4746 #define ICreateTypeInfo2_DeleteFuncDescByMemId(p,a,b) (p)->lpVtbl->DeleteFuncDescByMemId(p,a,b)
4747 #define ICreateTypeInfo2_DeleteVarDesc(p,a) (p)->lpVtbl->DeleteVarDesc(p,a)
4748 #define ICreateTypeInfo2_DeleteVarDescByMemId(p,a) (p)->lpVtbl->DeleteVarDescByMemId(p,a)
4749 #define ICreateTypeInfo2_DeleteImplType(p,a) (p)->lpVtbl->DeleteImplType(p,a)
4750 #define ICreateTypeInfo2_SetCustData(p,a,b) (p)->lpVtbl->SetCustData(p,a,b)
4751 #define ICreateTypeInfo2_SetFuncCustData(p,a,b,c) (p)->lpVtbl->SetFuncCustData(p,a,b,c)
4752 #define ICreateTypeInfo2_SetParamCustData(p,a,b,c,d) (p)->lpVtbl->SetParamCustData(p,a,b,c,d)
4753 #define ICreateTypeInfo2_SetVarCustData(p,a,b,c) (p)->lpVtbl->SetVarCustData(p,a,b,c)
4754 #define ICreateTypeInfo2_SetImplTypeCustData(p,a,b,c) (p)->lpVtbl->SetImplTypeCustData(p,a,b,c)
4755 #define ICreateTypeInfo2_SetHelpStringContext(p,a) (p)->lpVtbl->SetHelpStringContext(p,a)
4756 #define ICreateTypeInfo2_SetFuncHelpStringContext(p,a,b) (p)->lpVtbl->SetFuncHelpStringContext(p,a,b)
4757 #define ICreateTypeInfo2_SetVarHelpStringContext(p,a,b) (p)->lpVtbl->SetVarHelpStringContext(p,a,b)
4758 #define ICreateTypeInfo2_Invalidate(p) (p)->lpVtbl->Invalidate(p)
4759 #define ICreateTypeInfo2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
4760 #endif
4762 #endif
4764 #define ICreateTypeInfo2_METHODS \
4765 /*** IUnknown methods ***/ \
4766 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4767 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4768 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4769 /*** ICreateTypeInfo methods ***/ \
4770 STDMETHOD_(HRESULT,SetGuid)(THIS_ REFGUID guid) PURE; \
4771 STDMETHOD_(HRESULT,SetTypeFlags)(THIS_ UINT uTypeFlags) PURE; \
4772 STDMETHOD_(HRESULT,SetDocString)(THIS_ LPOLESTR pStrDoc) PURE; \
4773 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE; \
4774 STDMETHOD_(HRESULT,SetVersion)(THIS_ WORD wMajorVerNum, WORD wMinorVerNum) PURE; \
4775 STDMETHOD_(HRESULT,AddRefTypeInfo)(THIS_ ITypeInfo* pTInfo, HREFTYPE* phRefType) PURE; \
4776 STDMETHOD_(HRESULT,AddFuncDesc)(THIS_ UINT index, FUNCDESC* pFuncDesc) PURE; \
4777 STDMETHOD_(HRESULT,AddImplType)(THIS_ UINT index, HREFTYPE hRefType) PURE; \
4778 STDMETHOD_(HRESULT,SetImplTypeFlags)(THIS_ UINT index, INT implTypeFlags) PURE; \
4779 STDMETHOD_(HRESULT,SetAlignment)(THIS_ WORD cbAlignment) PURE; \
4780 STDMETHOD_(HRESULT,SetSchema)(THIS_ LPOLESTR pStrSchema) PURE; \
4781 STDMETHOD_(HRESULT,AddVarDesc)(THIS_ UINT index, VARDESC* pVarDesc) PURE; \
4782 STDMETHOD_(HRESULT,SetFuncAndParamNames)(THIS_ UINT index, LPOLESTR* rgszNames, UINT cNames) PURE; \
4783 STDMETHOD_(HRESULT,SetVarName)(THIS_ UINT index, LPOLESTR szName) PURE; \
4784 STDMETHOD_(HRESULT,SetTypeDescAlias)(THIS_ TYPEDESC* pTDescAlias) PURE; \
4785 STDMETHOD_(HRESULT,DefineFuncAsDllEntry)(THIS_ UINT index, LPOLESTR szDllName, LPOLESTR szProcName) PURE; \
4786 STDMETHOD_(HRESULT,SetFuncDocString)(THIS_ UINT index, LPOLESTR szDocString) PURE; \
4787 STDMETHOD_(HRESULT,SetVarDocString)(THIS_ UINT index, LPOLESTR szDocString) PURE; \
4788 STDMETHOD_(HRESULT,SetFuncHelpContext)(THIS_ UINT index, DWORD dwHelpContext) PURE; \
4789 STDMETHOD_(HRESULT,SetVarHelpContext)(THIS_ UINT index, DWORD dwHelpContext) PURE; \
4790 STDMETHOD_(HRESULT,SetMops)(THIS_ UINT index, BSTR bstrMops) PURE; \
4791 STDMETHOD_(HRESULT,SetTypeIdldesc)(THIS_ IDLDESC* pIdlDesc) PURE; \
4792 STDMETHOD_(HRESULT,LayOut)(THIS) PURE; \
4793 /*** ICreateTypeInfo2 methods ***/ \
4794 STDMETHOD_(HRESULT,DeleteFuncDesc)(THIS_ UINT index) PURE; \
4795 STDMETHOD_(HRESULT,DeleteFuncDescByMemId)(THIS_ MEMBERID memid, INVOKEKIND invKind) PURE; \
4796 STDMETHOD_(HRESULT,DeleteVarDesc)(THIS_ UINT index) PURE; \
4797 STDMETHOD_(HRESULT,DeleteVarDescByMemId)(THIS_ MEMBERID memid) PURE; \
4798 STDMETHOD_(HRESULT,DeleteImplType)(THIS_ UINT index) PURE; \
4799 STDMETHOD_(HRESULT,SetCustData)(THIS_ REFGUID guid, VARIANT* pVarVal) PURE; \
4800 STDMETHOD_(HRESULT,SetFuncCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
4801 STDMETHOD_(HRESULT,SetParamCustData)(THIS_ UINT indexFunc, UINT indexParam, REFGUID guid, VARIANT* pVarVal) PURE; \
4802 STDMETHOD_(HRESULT,SetVarCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
4803 STDMETHOD_(HRESULT,SetImplTypeCustData)(THIS_ UINT index, REFGUID guid, VARIANT* pVarVal) PURE; \
4804 STDMETHOD_(HRESULT,SetHelpStringContext)(THIS_ ULONG dwHelpStringContext) PURE; \
4805 STDMETHOD_(HRESULT,SetFuncHelpStringContext)(THIS_ UINT index, ULONG dwHelpStringContext) PURE; \
4806 STDMETHOD_(HRESULT,SetVarHelpStringContext)(THIS_ UINT index, ULONG dwHelpStringContext) PURE; \
4807 STDMETHOD_(HRESULT,Invalidate)(THIS) PURE; \
4808 STDMETHOD_(HRESULT,SetName)(THIS_ LPOLESTR szName) PURE;
4810 HRESULT CALLBACK ICreateTypeInfo2_DeleteFuncDesc_Proxy(
4811 ICreateTypeInfo2* This,
4812 UINT index);
4813 void __RPC_STUB ICreateTypeInfo2_DeleteFuncDesc_Stub(
4814 struct IRpcStubBuffer* This,
4815 struct IRpcChannelBuffer* pRpcChannelBuffer,
4816 PRPC_MESSAGE pRpcMessage,
4817 DWORD* pdwStubPhase);
4818 HRESULT CALLBACK ICreateTypeInfo2_DeleteFuncDescByMemId_Proxy(
4819 ICreateTypeInfo2* This,
4820 MEMBERID memid,
4821 INVOKEKIND invKind);
4822 void __RPC_STUB ICreateTypeInfo2_DeleteFuncDescByMemId_Stub(
4823 struct IRpcStubBuffer* This,
4824 struct IRpcChannelBuffer* pRpcChannelBuffer,
4825 PRPC_MESSAGE pRpcMessage,
4826 DWORD* pdwStubPhase);
4827 HRESULT CALLBACK ICreateTypeInfo2_DeleteVarDesc_Proxy(
4828 ICreateTypeInfo2* This,
4829 UINT index);
4830 void __RPC_STUB ICreateTypeInfo2_DeleteVarDesc_Stub(
4831 struct IRpcStubBuffer* This,
4832 struct IRpcChannelBuffer* pRpcChannelBuffer,
4833 PRPC_MESSAGE pRpcMessage,
4834 DWORD* pdwStubPhase);
4835 HRESULT CALLBACK ICreateTypeInfo2_DeleteVarDescByMemId_Proxy(
4836 ICreateTypeInfo2* This,
4837 MEMBERID memid);
4838 void __RPC_STUB ICreateTypeInfo2_DeleteVarDescByMemId_Stub(
4839 struct IRpcStubBuffer* This,
4840 struct IRpcChannelBuffer* pRpcChannelBuffer,
4841 PRPC_MESSAGE pRpcMessage,
4842 DWORD* pdwStubPhase);
4843 HRESULT CALLBACK ICreateTypeInfo2_DeleteImplType_Proxy(
4844 ICreateTypeInfo2* This,
4845 UINT index);
4846 void __RPC_STUB ICreateTypeInfo2_DeleteImplType_Stub(
4847 struct IRpcStubBuffer* This,
4848 struct IRpcChannelBuffer* pRpcChannelBuffer,
4849 PRPC_MESSAGE pRpcMessage,
4850 DWORD* pdwStubPhase);
4851 HRESULT CALLBACK ICreateTypeInfo2_SetCustData_Proxy(
4852 ICreateTypeInfo2* This,
4853 REFGUID guid,
4854 VARIANT* pVarVal);
4855 void __RPC_STUB ICreateTypeInfo2_SetCustData_Stub(
4856 struct IRpcStubBuffer* This,
4857 struct IRpcChannelBuffer* pRpcChannelBuffer,
4858 PRPC_MESSAGE pRpcMessage,
4859 DWORD* pdwStubPhase);
4860 HRESULT CALLBACK ICreateTypeInfo2_SetFuncCustData_Proxy(
4861 ICreateTypeInfo2* This,
4862 UINT index,
4863 REFGUID guid,
4864 VARIANT* pVarVal);
4865 void __RPC_STUB ICreateTypeInfo2_SetFuncCustData_Stub(
4866 struct IRpcStubBuffer* This,
4867 struct IRpcChannelBuffer* pRpcChannelBuffer,
4868 PRPC_MESSAGE pRpcMessage,
4869 DWORD* pdwStubPhase);
4870 HRESULT CALLBACK ICreateTypeInfo2_SetParamCustData_Proxy(
4871 ICreateTypeInfo2* This,
4872 UINT indexFunc,
4873 UINT indexParam,
4874 REFGUID guid,
4875 VARIANT* pVarVal);
4876 void __RPC_STUB ICreateTypeInfo2_SetParamCustData_Stub(
4877 struct IRpcStubBuffer* This,
4878 struct IRpcChannelBuffer* pRpcChannelBuffer,
4879 PRPC_MESSAGE pRpcMessage,
4880 DWORD* pdwStubPhase);
4881 HRESULT CALLBACK ICreateTypeInfo2_SetVarCustData_Proxy(
4882 ICreateTypeInfo2* This,
4883 UINT index,
4884 REFGUID guid,
4885 VARIANT* pVarVal);
4886 void __RPC_STUB ICreateTypeInfo2_SetVarCustData_Stub(
4887 struct IRpcStubBuffer* This,
4888 struct IRpcChannelBuffer* pRpcChannelBuffer,
4889 PRPC_MESSAGE pRpcMessage,
4890 DWORD* pdwStubPhase);
4891 HRESULT CALLBACK ICreateTypeInfo2_SetImplTypeCustData_Proxy(
4892 ICreateTypeInfo2* This,
4893 UINT index,
4894 REFGUID guid,
4895 VARIANT* pVarVal);
4896 void __RPC_STUB ICreateTypeInfo2_SetImplTypeCustData_Stub(
4897 struct IRpcStubBuffer* This,
4898 struct IRpcChannelBuffer* pRpcChannelBuffer,
4899 PRPC_MESSAGE pRpcMessage,
4900 DWORD* pdwStubPhase);
4901 HRESULT CALLBACK ICreateTypeInfo2_SetHelpStringContext_Proxy(
4902 ICreateTypeInfo2* This,
4903 ULONG dwHelpStringContext);
4904 void __RPC_STUB ICreateTypeInfo2_SetHelpStringContext_Stub(
4905 struct IRpcStubBuffer* This,
4906 struct IRpcChannelBuffer* pRpcChannelBuffer,
4907 PRPC_MESSAGE pRpcMessage,
4908 DWORD* pdwStubPhase);
4909 HRESULT CALLBACK ICreateTypeInfo2_SetFuncHelpStringContext_Proxy(
4910 ICreateTypeInfo2* This,
4911 UINT index,
4912 ULONG dwHelpStringContext);
4913 void __RPC_STUB ICreateTypeInfo2_SetFuncHelpStringContext_Stub(
4914 struct IRpcStubBuffer* This,
4915 struct IRpcChannelBuffer* pRpcChannelBuffer,
4916 PRPC_MESSAGE pRpcMessage,
4917 DWORD* pdwStubPhase);
4918 HRESULT CALLBACK ICreateTypeInfo2_SetVarHelpStringContext_Proxy(
4919 ICreateTypeInfo2* This,
4920 UINT index,
4921 ULONG dwHelpStringContext);
4922 void __RPC_STUB ICreateTypeInfo2_SetVarHelpStringContext_Stub(
4923 struct IRpcStubBuffer* This,
4924 struct IRpcChannelBuffer* pRpcChannelBuffer,
4925 PRPC_MESSAGE pRpcMessage,
4926 DWORD* pdwStubPhase);
4927 HRESULT CALLBACK ICreateTypeInfo2_Invalidate_Proxy(
4928 ICreateTypeInfo2* This);
4929 void __RPC_STUB ICreateTypeInfo2_Invalidate_Stub(
4930 struct IRpcStubBuffer* This,
4931 struct IRpcChannelBuffer* pRpcChannelBuffer,
4932 PRPC_MESSAGE pRpcMessage,
4933 DWORD* pdwStubPhase);
4934 HRESULT CALLBACK ICreateTypeInfo2_SetName_Proxy(
4935 ICreateTypeInfo2* This,
4936 LPOLESTR szName);
4937 void __RPC_STUB ICreateTypeInfo2_SetName_Stub(
4938 struct IRpcStubBuffer* This,
4939 struct IRpcChannelBuffer* pRpcChannelBuffer,
4940 PRPC_MESSAGE pRpcMessage,
4941 DWORD* pdwStubPhase);
4943 #endif /* __ICreateTypeInfo2_INTERFACE_DEFINED__ */
4945 #ifndef __ICreateTypeLib_FWD_DEFINED__
4946 #define __ICreateTypeLib_FWD_DEFINED__
4947 typedef struct ICreateTypeLib ICreateTypeLib;
4948 #endif
4950 typedef ICreateTypeLib *LPCREATETYPELIB;
4952 /*****************************************************************************
4953 * ICreateTypeLib interface
4955 #ifndef __ICreateTypeLib_INTERFACE_DEFINED__
4956 #define __ICreateTypeLib_INTERFACE_DEFINED__
4958 DEFINE_GUID(IID_ICreateTypeLib, 0x00020406, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4959 #if defined(__cplusplus) && !defined(CINTERFACE)
4960 struct ICreateTypeLib : public IUnknown
4962 virtual HRESULT STDMETHODCALLTYPE CreateTypeInfo(
4963 LPOLESTR szName,
4964 TYPEKIND tkind,
4965 ICreateTypeInfo** ppCTInfo) = 0;
4967 virtual HRESULT STDMETHODCALLTYPE SetName(
4968 LPOLESTR szName) = 0;
4970 virtual HRESULT STDMETHODCALLTYPE SetVersion(
4971 WORD wMajorVerNum,
4972 WORD wMinorVerNum) = 0;
4974 virtual HRESULT STDMETHODCALLTYPE SetGuid(
4975 REFGUID guid) = 0;
4977 virtual HRESULT STDMETHODCALLTYPE SetDocString(
4978 LPOLESTR szDoc) = 0;
4980 virtual HRESULT STDMETHODCALLTYPE SetHelpFileName(
4981 LPOLESTR szHelpFileName) = 0;
4983 virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
4984 DWORD dwHelpContext) = 0;
4986 virtual HRESULT STDMETHODCALLTYPE SetLcid(
4987 LCID lcid) = 0;
4989 virtual HRESULT STDMETHODCALLTYPE SetLibFlags(
4990 UINT uLibFlags) = 0;
4992 virtual HRESULT STDMETHODCALLTYPE SaveAllChanges(
4993 ) = 0;
4996 #else
4997 typedef struct ICreateTypeLibVtbl ICreateTypeLibVtbl;
4998 struct ICreateTypeLib {
4999 const ICreateTypeLibVtbl* lpVtbl;
5001 struct ICreateTypeLibVtbl {
5002 BEGIN_INTERFACE
5004 /*** IUnknown methods ***/
5005 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5006 ICreateTypeLib* This,
5007 REFIID riid,
5008 void** ppvObject);
5010 ULONG (STDMETHODCALLTYPE *AddRef)(
5011 ICreateTypeLib* This);
5013 ULONG (STDMETHODCALLTYPE *Release)(
5014 ICreateTypeLib* This);
5016 /*** ICreateTypeLib methods ***/
5017 HRESULT (STDMETHODCALLTYPE *CreateTypeInfo)(
5018 ICreateTypeLib* This,
5019 LPOLESTR szName,
5020 TYPEKIND tkind,
5021 ICreateTypeInfo** ppCTInfo);
5023 HRESULT (STDMETHODCALLTYPE *SetName)(
5024 ICreateTypeLib* This,
5025 LPOLESTR szName);
5027 HRESULT (STDMETHODCALLTYPE *SetVersion)(
5028 ICreateTypeLib* This,
5029 WORD wMajorVerNum,
5030 WORD wMinorVerNum);
5032 HRESULT (STDMETHODCALLTYPE *SetGuid)(
5033 ICreateTypeLib* This,
5034 REFGUID guid);
5036 HRESULT (STDMETHODCALLTYPE *SetDocString)(
5037 ICreateTypeLib* This,
5038 LPOLESTR szDoc);
5040 HRESULT (STDMETHODCALLTYPE *SetHelpFileName)(
5041 ICreateTypeLib* This,
5042 LPOLESTR szHelpFileName);
5044 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
5045 ICreateTypeLib* This,
5046 DWORD dwHelpContext);
5048 HRESULT (STDMETHODCALLTYPE *SetLcid)(
5049 ICreateTypeLib* This,
5050 LCID lcid);
5052 HRESULT (STDMETHODCALLTYPE *SetLibFlags)(
5053 ICreateTypeLib* This,
5054 UINT uLibFlags);
5056 HRESULT (STDMETHODCALLTYPE *SaveAllChanges)(
5057 ICreateTypeLib* This);
5059 END_INTERFACE
5062 #ifdef COBJMACROS
5063 /*** IUnknown methods ***/
5064 #define ICreateTypeLib_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5065 #define ICreateTypeLib_AddRef(p) (p)->lpVtbl->AddRef(p)
5066 #define ICreateTypeLib_Release(p) (p)->lpVtbl->Release(p)
5067 /*** ICreateTypeLib methods ***/
5068 #define ICreateTypeLib_CreateTypeInfo(p,a,b,c) (p)->lpVtbl->CreateTypeInfo(p,a,b,c)
5069 #define ICreateTypeLib_SetName(p,a) (p)->lpVtbl->SetName(p,a)
5070 #define ICreateTypeLib_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
5071 #define ICreateTypeLib_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
5072 #define ICreateTypeLib_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
5073 #define ICreateTypeLib_SetHelpFileName(p,a) (p)->lpVtbl->SetHelpFileName(p,a)
5074 #define ICreateTypeLib_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
5075 #define ICreateTypeLib_SetLcid(p,a) (p)->lpVtbl->SetLcid(p,a)
5076 #define ICreateTypeLib_SetLibFlags(p,a) (p)->lpVtbl->SetLibFlags(p,a)
5077 #define ICreateTypeLib_SaveAllChanges(p) (p)->lpVtbl->SaveAllChanges(p)
5078 #endif
5080 #endif
5082 #define ICreateTypeLib_METHODS \
5083 /*** IUnknown methods ***/ \
5084 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5085 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5086 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5087 /*** ICreateTypeLib methods ***/ \
5088 STDMETHOD_(HRESULT,CreateTypeInfo)(THIS_ LPOLESTR szName, TYPEKIND tkind, ICreateTypeInfo** ppCTInfo) PURE; \
5089 STDMETHOD_(HRESULT,SetName)(THIS_ LPOLESTR szName) PURE; \
5090 STDMETHOD_(HRESULT,SetVersion)(THIS_ WORD wMajorVerNum, WORD wMinorVerNum) PURE; \
5091 STDMETHOD_(HRESULT,SetGuid)(THIS_ REFGUID guid) PURE; \
5092 STDMETHOD_(HRESULT,SetDocString)(THIS_ LPOLESTR szDoc) PURE; \
5093 STDMETHOD_(HRESULT,SetHelpFileName)(THIS_ LPOLESTR szHelpFileName) PURE; \
5094 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE; \
5095 STDMETHOD_(HRESULT,SetLcid)(THIS_ LCID lcid) PURE; \
5096 STDMETHOD_(HRESULT,SetLibFlags)(THIS_ UINT uLibFlags) PURE; \
5097 STDMETHOD_(HRESULT,SaveAllChanges)(THIS) PURE;
5099 HRESULT CALLBACK ICreateTypeLib_CreateTypeInfo_Proxy(
5100 ICreateTypeLib* This,
5101 LPOLESTR szName,
5102 TYPEKIND tkind,
5103 ICreateTypeInfo** ppCTInfo);
5104 void __RPC_STUB ICreateTypeLib_CreateTypeInfo_Stub(
5105 struct IRpcStubBuffer* This,
5106 struct IRpcChannelBuffer* pRpcChannelBuffer,
5107 PRPC_MESSAGE pRpcMessage,
5108 DWORD* pdwStubPhase);
5109 HRESULT CALLBACK ICreateTypeLib_SetName_Proxy(
5110 ICreateTypeLib* This,
5111 LPOLESTR szName);
5112 void __RPC_STUB ICreateTypeLib_SetName_Stub(
5113 struct IRpcStubBuffer* This,
5114 struct IRpcChannelBuffer* pRpcChannelBuffer,
5115 PRPC_MESSAGE pRpcMessage,
5116 DWORD* pdwStubPhase);
5117 HRESULT CALLBACK ICreateTypeLib_SetVersion_Proxy(
5118 ICreateTypeLib* This,
5119 WORD wMajorVerNum,
5120 WORD wMinorVerNum);
5121 void __RPC_STUB ICreateTypeLib_SetVersion_Stub(
5122 struct IRpcStubBuffer* This,
5123 struct IRpcChannelBuffer* pRpcChannelBuffer,
5124 PRPC_MESSAGE pRpcMessage,
5125 DWORD* pdwStubPhase);
5126 HRESULT CALLBACK ICreateTypeLib_SetGuid_Proxy(
5127 ICreateTypeLib* This,
5128 REFGUID guid);
5129 void __RPC_STUB ICreateTypeLib_SetGuid_Stub(
5130 struct IRpcStubBuffer* This,
5131 struct IRpcChannelBuffer* pRpcChannelBuffer,
5132 PRPC_MESSAGE pRpcMessage,
5133 DWORD* pdwStubPhase);
5134 HRESULT CALLBACK ICreateTypeLib_SetDocString_Proxy(
5135 ICreateTypeLib* This,
5136 LPOLESTR szDoc);
5137 void __RPC_STUB ICreateTypeLib_SetDocString_Stub(
5138 struct IRpcStubBuffer* This,
5139 struct IRpcChannelBuffer* pRpcChannelBuffer,
5140 PRPC_MESSAGE pRpcMessage,
5141 DWORD* pdwStubPhase);
5142 HRESULT CALLBACK ICreateTypeLib_SetHelpFileName_Proxy(
5143 ICreateTypeLib* This,
5144 LPOLESTR szHelpFileName);
5145 void __RPC_STUB ICreateTypeLib_SetHelpFileName_Stub(
5146 struct IRpcStubBuffer* This,
5147 struct IRpcChannelBuffer* pRpcChannelBuffer,
5148 PRPC_MESSAGE pRpcMessage,
5149 DWORD* pdwStubPhase);
5150 HRESULT CALLBACK ICreateTypeLib_SetHelpContext_Proxy(
5151 ICreateTypeLib* This,
5152 DWORD dwHelpContext);
5153 void __RPC_STUB ICreateTypeLib_SetHelpContext_Stub(
5154 struct IRpcStubBuffer* This,
5155 struct IRpcChannelBuffer* pRpcChannelBuffer,
5156 PRPC_MESSAGE pRpcMessage,
5157 DWORD* pdwStubPhase);
5158 HRESULT CALLBACK ICreateTypeLib_SetLcid_Proxy(
5159 ICreateTypeLib* This,
5160 LCID lcid);
5161 void __RPC_STUB ICreateTypeLib_SetLcid_Stub(
5162 struct IRpcStubBuffer* This,
5163 struct IRpcChannelBuffer* pRpcChannelBuffer,
5164 PRPC_MESSAGE pRpcMessage,
5165 DWORD* pdwStubPhase);
5166 HRESULT CALLBACK ICreateTypeLib_SetLibFlags_Proxy(
5167 ICreateTypeLib* This,
5168 UINT uLibFlags);
5169 void __RPC_STUB ICreateTypeLib_SetLibFlags_Stub(
5170 struct IRpcStubBuffer* This,
5171 struct IRpcChannelBuffer* pRpcChannelBuffer,
5172 PRPC_MESSAGE pRpcMessage,
5173 DWORD* pdwStubPhase);
5174 HRESULT CALLBACK ICreateTypeLib_SaveAllChanges_Proxy(
5175 ICreateTypeLib* This);
5176 void __RPC_STUB ICreateTypeLib_SaveAllChanges_Stub(
5177 struct IRpcStubBuffer* This,
5178 struct IRpcChannelBuffer* pRpcChannelBuffer,
5179 PRPC_MESSAGE pRpcMessage,
5180 DWORD* pdwStubPhase);
5182 #endif /* __ICreateTypeLib_INTERFACE_DEFINED__ */
5184 #ifndef __ICreateTypeLib2_FWD_DEFINED__
5185 #define __ICreateTypeLib2_FWD_DEFINED__
5186 typedef struct ICreateTypeLib2 ICreateTypeLib2;
5187 #endif
5189 typedef ICreateTypeLib2 *LPCREATETYPELIB2;
5191 /*****************************************************************************
5192 * ICreateTypeLib2 interface
5194 #ifndef __ICreateTypeLib2_INTERFACE_DEFINED__
5195 #define __ICreateTypeLib2_INTERFACE_DEFINED__
5197 DEFINE_GUID(IID_ICreateTypeLib2, 0x0002040f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5198 #if defined(__cplusplus) && !defined(CINTERFACE)
5199 struct ICreateTypeLib2 : public ICreateTypeLib
5201 virtual HRESULT STDMETHODCALLTYPE DeleteTypeInfo(
5202 LPOLESTR szName) = 0;
5204 virtual HRESULT STDMETHODCALLTYPE SetCustData(
5205 REFGUID guid,
5206 VARIANT* pVarVal) = 0;
5208 virtual HRESULT STDMETHODCALLTYPE SetHelpStringContext(
5209 ULONG dwHelpStringContext) = 0;
5211 virtual HRESULT STDMETHODCALLTYPE SetHelpStringDll(
5212 LPOLESTR szFileName) = 0;
5215 #else
5216 typedef struct ICreateTypeLib2Vtbl ICreateTypeLib2Vtbl;
5217 struct ICreateTypeLib2 {
5218 const ICreateTypeLib2Vtbl* lpVtbl;
5220 struct ICreateTypeLib2Vtbl {
5221 BEGIN_INTERFACE
5223 /*** IUnknown methods ***/
5224 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5225 ICreateTypeLib2* This,
5226 REFIID riid,
5227 void** ppvObject);
5229 ULONG (STDMETHODCALLTYPE *AddRef)(
5230 ICreateTypeLib2* This);
5232 ULONG (STDMETHODCALLTYPE *Release)(
5233 ICreateTypeLib2* This);
5235 /*** ICreateTypeLib methods ***/
5236 HRESULT (STDMETHODCALLTYPE *CreateTypeInfo)(
5237 ICreateTypeLib2* This,
5238 LPOLESTR szName,
5239 TYPEKIND tkind,
5240 ICreateTypeInfo** ppCTInfo);
5242 HRESULT (STDMETHODCALLTYPE *SetName)(
5243 ICreateTypeLib2* This,
5244 LPOLESTR szName);
5246 HRESULT (STDMETHODCALLTYPE *SetVersion)(
5247 ICreateTypeLib2* This,
5248 WORD wMajorVerNum,
5249 WORD wMinorVerNum);
5251 HRESULT (STDMETHODCALLTYPE *SetGuid)(
5252 ICreateTypeLib2* This,
5253 REFGUID guid);
5255 HRESULT (STDMETHODCALLTYPE *SetDocString)(
5256 ICreateTypeLib2* This,
5257 LPOLESTR szDoc);
5259 HRESULT (STDMETHODCALLTYPE *SetHelpFileName)(
5260 ICreateTypeLib2* This,
5261 LPOLESTR szHelpFileName);
5263 HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
5264 ICreateTypeLib2* This,
5265 DWORD dwHelpContext);
5267 HRESULT (STDMETHODCALLTYPE *SetLcid)(
5268 ICreateTypeLib2* This,
5269 LCID lcid);
5271 HRESULT (STDMETHODCALLTYPE *SetLibFlags)(
5272 ICreateTypeLib2* This,
5273 UINT uLibFlags);
5275 HRESULT (STDMETHODCALLTYPE *SaveAllChanges)(
5276 ICreateTypeLib2* This);
5278 /*** ICreateTypeLib2 methods ***/
5279 HRESULT (STDMETHODCALLTYPE *DeleteTypeInfo)(
5280 ICreateTypeLib2* This,
5281 LPOLESTR szName);
5283 HRESULT (STDMETHODCALLTYPE *SetCustData)(
5284 ICreateTypeLib2* This,
5285 REFGUID guid,
5286 VARIANT* pVarVal);
5288 HRESULT (STDMETHODCALLTYPE *SetHelpStringContext)(
5289 ICreateTypeLib2* This,
5290 ULONG dwHelpStringContext);
5292 HRESULT (STDMETHODCALLTYPE *SetHelpStringDll)(
5293 ICreateTypeLib2* This,
5294 LPOLESTR szFileName);
5296 END_INTERFACE
5299 #ifdef COBJMACROS
5300 /*** IUnknown methods ***/
5301 #define ICreateTypeLib2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5302 #define ICreateTypeLib2_AddRef(p) (p)->lpVtbl->AddRef(p)
5303 #define ICreateTypeLib2_Release(p) (p)->lpVtbl->Release(p)
5304 /*** ICreateTypeLib methods ***/
5305 #define ICreateTypeLib2_CreateTypeInfo(p,a,b,c) (p)->lpVtbl->CreateTypeInfo(p,a,b,c)
5306 #define ICreateTypeLib2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
5307 #define ICreateTypeLib2_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b)
5308 #define ICreateTypeLib2_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a)
5309 #define ICreateTypeLib2_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a)
5310 #define ICreateTypeLib2_SetHelpFileName(p,a) (p)->lpVtbl->SetHelpFileName(p,a)
5311 #define ICreateTypeLib2_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a)
5312 #define ICreateTypeLib2_SetLcid(p,a) (p)->lpVtbl->SetLcid(p,a)
5313 #define ICreateTypeLib2_SetLibFlags(p,a) (p)->lpVtbl->SetLibFlags(p,a)
5314 #define ICreateTypeLib2_SaveAllChanges(p) (p)->lpVtbl->SaveAllChanges(p)
5315 /*** ICreateTypeLib2 methods ***/
5316 #define ICreateTypeLib2_DeleteTypeInfo(p,a) (p)->lpVtbl->DeleteTypeInfo(p,a)
5317 #define ICreateTypeLib2_SetCustData(p,a,b) (p)->lpVtbl->SetCustData(p,a,b)
5318 #define ICreateTypeLib2_SetHelpStringContext(p,a) (p)->lpVtbl->SetHelpStringContext(p,a)
5319 #define ICreateTypeLib2_SetHelpStringDll(p,a) (p)->lpVtbl->SetHelpStringDll(p,a)
5320 #endif
5322 #endif
5324 #define ICreateTypeLib2_METHODS \
5325 /*** IUnknown methods ***/ \
5326 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5327 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5328 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5329 /*** ICreateTypeLib methods ***/ \
5330 STDMETHOD_(HRESULT,CreateTypeInfo)(THIS_ LPOLESTR szName, TYPEKIND tkind, ICreateTypeInfo** ppCTInfo) PURE; \
5331 STDMETHOD_(HRESULT,SetName)(THIS_ LPOLESTR szName) PURE; \
5332 STDMETHOD_(HRESULT,SetVersion)(THIS_ WORD wMajorVerNum, WORD wMinorVerNum) PURE; \
5333 STDMETHOD_(HRESULT,SetGuid)(THIS_ REFGUID guid) PURE; \
5334 STDMETHOD_(HRESULT,SetDocString)(THIS_ LPOLESTR szDoc) PURE; \
5335 STDMETHOD_(HRESULT,SetHelpFileName)(THIS_ LPOLESTR szHelpFileName) PURE; \
5336 STDMETHOD_(HRESULT,SetHelpContext)(THIS_ DWORD dwHelpContext) PURE; \
5337 STDMETHOD_(HRESULT,SetLcid)(THIS_ LCID lcid) PURE; \
5338 STDMETHOD_(HRESULT,SetLibFlags)(THIS_ UINT uLibFlags) PURE; \
5339 STDMETHOD_(HRESULT,SaveAllChanges)(THIS) PURE; \
5340 /*** ICreateTypeLib2 methods ***/ \
5341 STDMETHOD_(HRESULT,DeleteTypeInfo)(THIS_ LPOLESTR szName) PURE; \
5342 STDMETHOD_(HRESULT,SetCustData)(THIS_ REFGUID guid, VARIANT* pVarVal) PURE; \
5343 STDMETHOD_(HRESULT,SetHelpStringContext)(THIS_ ULONG dwHelpStringContext) PURE; \
5344 STDMETHOD_(HRESULT,SetHelpStringDll)(THIS_ LPOLESTR szFileName) PURE;
5346 HRESULT CALLBACK ICreateTypeLib2_DeleteTypeInfo_Proxy(
5347 ICreateTypeLib2* This,
5348 LPOLESTR szName);
5349 void __RPC_STUB ICreateTypeLib2_DeleteTypeInfo_Stub(
5350 struct IRpcStubBuffer* This,
5351 struct IRpcChannelBuffer* pRpcChannelBuffer,
5352 PRPC_MESSAGE pRpcMessage,
5353 DWORD* pdwStubPhase);
5354 HRESULT CALLBACK ICreateTypeLib2_SetCustData_Proxy(
5355 ICreateTypeLib2* This,
5356 REFGUID guid,
5357 VARIANT* pVarVal);
5358 void __RPC_STUB ICreateTypeLib2_SetCustData_Stub(
5359 struct IRpcStubBuffer* This,
5360 struct IRpcChannelBuffer* pRpcChannelBuffer,
5361 PRPC_MESSAGE pRpcMessage,
5362 DWORD* pdwStubPhase);
5363 HRESULT CALLBACK ICreateTypeLib2_SetHelpStringContext_Proxy(
5364 ICreateTypeLib2* This,
5365 ULONG dwHelpStringContext);
5366 void __RPC_STUB ICreateTypeLib2_SetHelpStringContext_Stub(
5367 struct IRpcStubBuffer* This,
5368 struct IRpcChannelBuffer* pRpcChannelBuffer,
5369 PRPC_MESSAGE pRpcMessage,
5370 DWORD* pdwStubPhase);
5371 HRESULT CALLBACK ICreateTypeLib2_SetHelpStringDll_Proxy(
5372 ICreateTypeLib2* This,
5373 LPOLESTR szFileName);
5374 void __RPC_STUB ICreateTypeLib2_SetHelpStringDll_Stub(
5375 struct IRpcStubBuffer* This,
5376 struct IRpcChannelBuffer* pRpcChannelBuffer,
5377 PRPC_MESSAGE pRpcMessage,
5378 DWORD* pdwStubPhase);
5380 #endif /* __ICreateTypeLib2_INTERFACE_DEFINED__ */
5382 #ifndef __IErrorLog_FWD_DEFINED__
5383 #define __IErrorLog_FWD_DEFINED__
5384 typedef struct IErrorLog IErrorLog;
5385 #endif
5387 typedef IErrorLog *LPERRORLOG;
5389 /*****************************************************************************
5390 * IErrorLog interface
5392 #ifndef __IErrorLog_INTERFACE_DEFINED__
5393 #define __IErrorLog_INTERFACE_DEFINED__
5395 DEFINE_GUID(IID_IErrorLog, 0x3127ca40, 0x446e, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51);
5396 #if defined(__cplusplus) && !defined(CINTERFACE)
5397 struct IErrorLog : public IUnknown
5399 virtual HRESULT STDMETHODCALLTYPE AddError(
5400 LPCOLESTR pszPropName,
5401 EXCEPINFO* pExcepInfo) = 0;
5404 #else
5405 typedef struct IErrorLogVtbl IErrorLogVtbl;
5406 struct IErrorLog {
5407 const IErrorLogVtbl* lpVtbl;
5409 struct IErrorLogVtbl {
5410 BEGIN_INTERFACE
5412 /*** IUnknown methods ***/
5413 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5414 IErrorLog* This,
5415 REFIID riid,
5416 void** ppvObject);
5418 ULONG (STDMETHODCALLTYPE *AddRef)(
5419 IErrorLog* This);
5421 ULONG (STDMETHODCALLTYPE *Release)(
5422 IErrorLog* This);
5424 /*** IErrorLog methods ***/
5425 HRESULT (STDMETHODCALLTYPE *AddError)(
5426 IErrorLog* This,
5427 LPCOLESTR pszPropName,
5428 EXCEPINFO* pExcepInfo);
5430 END_INTERFACE
5433 #ifdef COBJMACROS
5434 /*** IUnknown methods ***/
5435 #define IErrorLog_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5436 #define IErrorLog_AddRef(p) (p)->lpVtbl->AddRef(p)
5437 #define IErrorLog_Release(p) (p)->lpVtbl->Release(p)
5438 /*** IErrorLog methods ***/
5439 #define IErrorLog_AddError(p,a,b) (p)->lpVtbl->AddError(p,a,b)
5440 #endif
5442 #endif
5444 #define IErrorLog_METHODS \
5445 /*** IUnknown methods ***/ \
5446 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5447 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5448 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5449 /*** IErrorLog methods ***/ \
5450 STDMETHOD_(HRESULT,AddError)(THIS_ LPCOLESTR pszPropName, EXCEPINFO* pExcepInfo) PURE;
5452 HRESULT CALLBACK IErrorLog_AddError_Proxy(
5453 IErrorLog* This,
5454 LPCOLESTR pszPropName,
5455 EXCEPINFO* pExcepInfo);
5456 void __RPC_STUB IErrorLog_AddError_Stub(
5457 struct IRpcStubBuffer* This,
5458 struct IRpcChannelBuffer* pRpcChannelBuffer,
5459 PRPC_MESSAGE pRpcMessage,
5460 DWORD* pdwStubPhase);
5462 #endif /* __IErrorLog_INTERFACE_DEFINED__ */
5464 #ifndef __IPropertyBag_FWD_DEFINED__
5465 #define __IPropertyBag_FWD_DEFINED__
5466 typedef struct IPropertyBag IPropertyBag;
5467 #endif
5469 typedef IPropertyBag *LPPROPERTYBAG;
5471 /*****************************************************************************
5472 * IPropertyBag interface
5474 #ifndef __IPropertyBag_INTERFACE_DEFINED__
5475 #define __IPropertyBag_INTERFACE_DEFINED__
5477 DEFINE_GUID(IID_IPropertyBag, 0x55272a00, 0x42cb, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51);
5478 #if defined(__cplusplus) && !defined(CINTERFACE)
5479 struct IPropertyBag : public IUnknown
5481 virtual HRESULT STDMETHODCALLTYPE Read(
5482 LPCOLESTR pszPropName,
5483 VARIANT* pVar,
5484 IErrorLog* pErrorLog) = 0;
5486 virtual HRESULT STDMETHODCALLTYPE Write(
5487 LPCOLESTR pszPropName,
5488 VARIANT* pVar) = 0;
5491 #else
5492 typedef struct IPropertyBagVtbl IPropertyBagVtbl;
5493 struct IPropertyBag {
5494 const IPropertyBagVtbl* lpVtbl;
5496 struct IPropertyBagVtbl {
5497 BEGIN_INTERFACE
5499 /*** IUnknown methods ***/
5500 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5501 IPropertyBag* This,
5502 REFIID riid,
5503 void** ppvObject);
5505 ULONG (STDMETHODCALLTYPE *AddRef)(
5506 IPropertyBag* This);
5508 ULONG (STDMETHODCALLTYPE *Release)(
5509 IPropertyBag* This);
5511 /*** IPropertyBag methods ***/
5512 HRESULT (STDMETHODCALLTYPE *Read)(
5513 IPropertyBag* This,
5514 LPCOLESTR pszPropName,
5515 VARIANT* pVar,
5516 IErrorLog* pErrorLog);
5518 HRESULT (STDMETHODCALLTYPE *Write)(
5519 IPropertyBag* This,
5520 LPCOLESTR pszPropName,
5521 VARIANT* pVar);
5523 END_INTERFACE
5526 #ifdef COBJMACROS
5527 /*** IUnknown methods ***/
5528 #define IPropertyBag_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5529 #define IPropertyBag_AddRef(p) (p)->lpVtbl->AddRef(p)
5530 #define IPropertyBag_Release(p) (p)->lpVtbl->Release(p)
5531 /*** IPropertyBag methods ***/
5532 #define IPropertyBag_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
5533 #define IPropertyBag_Write(p,a,b) (p)->lpVtbl->Write(p,a,b)
5534 #endif
5536 #endif
5538 #define IPropertyBag_METHODS \
5539 /*** IUnknown methods ***/ \
5540 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5541 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5542 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5543 /*** IPropertyBag methods ***/ \
5544 STDMETHOD_(HRESULT,Read)(THIS_ LPCOLESTR pszPropName, VARIANT* pVar, IErrorLog* pErrorLog) PURE; \
5545 STDMETHOD_(HRESULT,Write)(THIS_ LPCOLESTR pszPropName, VARIANT* pVar) PURE;
5547 HRESULT CALLBACK IPropertyBag_RemoteRead_Proxy(
5548 IPropertyBag* This,
5549 LPCOLESTR pszPropName,
5550 VARIANT* pVar,
5551 IErrorLog* pErrorLog,
5552 DWORD varType,
5553 IUnknown* pUnkObj);
5554 void __RPC_STUB IPropertyBag_RemoteRead_Stub(
5555 struct IRpcStubBuffer* This,
5556 struct IRpcChannelBuffer* pRpcChannelBuffer,
5557 PRPC_MESSAGE pRpcMessage,
5558 DWORD* pdwStubPhase);
5559 HRESULT CALLBACK IPropertyBag_Read_Proxy(
5560 IPropertyBag* This,
5561 LPCOLESTR pszPropName,
5562 VARIANT* pVar,
5563 IErrorLog* pErrorLog);
5564 HRESULT __RPC_STUB IPropertyBag_Read_Stub(
5565 IPropertyBag* This,
5566 LPCOLESTR pszPropName,
5567 VARIANT* pVar,
5568 IErrorLog* pErrorLog,
5569 DWORD varType,
5570 IUnknown* pUnkObj);
5571 HRESULT CALLBACK IPropertyBag_Write_Proxy(
5572 IPropertyBag* This,
5573 LPCOLESTR pszPropName,
5574 VARIANT* pVar);
5575 void __RPC_STUB IPropertyBag_Write_Stub(
5576 struct IRpcStubBuffer* This,
5577 struct IRpcChannelBuffer* pRpcChannelBuffer,
5578 PRPC_MESSAGE pRpcMessage,
5579 DWORD* pdwStubPhase);
5581 #endif /* __IPropertyBag_INTERFACE_DEFINED__ */
5583 #ifdef __cplusplus
5585 #endif
5586 #endif /* __WIDL_OAIDL_H */