1 /*** Autogenerated by WIDL 1.6 from include/oaidl.idl - Do not edit ***/
2 
3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
5 #endif
6 
7 #include <rpc.h>
8 #include <rpcndr.h>
9 
10 #ifndef COM_NO_WINDOWS_H
11 #include <windows.h>
12 #include <ole2.h>
13 #endif
14 
15 #ifndef __oaidl_h__
16 #define __oaidl_h__
17 
18 /* Forward declarations */
19 
20 #ifndef __ICreateTypeInfo_FWD_DEFINED__
21 #define __ICreateTypeInfo_FWD_DEFINED__
22 typedef interface ICreateTypeInfo ICreateTypeInfo;
23 #endif
24 
25 #ifndef __ICreateTypeInfo2_FWD_DEFINED__
26 #define __ICreateTypeInfo2_FWD_DEFINED__
27 typedef interface ICreateTypeInfo2 ICreateTypeInfo2;
28 #endif
29 
30 #ifndef __ICreateTypeLib_FWD_DEFINED__
31 #define __ICreateTypeLib_FWD_DEFINED__
32 typedef interface ICreateTypeLib ICreateTypeLib;
33 #endif
34 
35 #ifndef __ICreateTypeLib2_FWD_DEFINED__
36 #define __ICreateTypeLib2_FWD_DEFINED__
37 typedef interface ICreateTypeLib2 ICreateTypeLib2;
38 #endif
39 
40 #ifndef __IDispatch_FWD_DEFINED__
41 #define __IDispatch_FWD_DEFINED__
42 typedef interface IDispatch IDispatch;
43 #endif
44 
45 #ifndef __IEnumVARIANT_FWD_DEFINED__
46 #define __IEnumVARIANT_FWD_DEFINED__
47 typedef interface IEnumVARIANT IEnumVARIANT;
48 #endif
49 
50 #ifndef __ITypeComp_FWD_DEFINED__
51 #define __ITypeComp_FWD_DEFINED__
52 typedef interface ITypeComp ITypeComp;
53 #endif
54 
55 #ifndef __ITypeInfo_FWD_DEFINED__
56 #define __ITypeInfo_FWD_DEFINED__
57 typedef interface ITypeInfo ITypeInfo;
58 #endif
59 
60 #ifndef __ITypeInfo2_FWD_DEFINED__
61 #define __ITypeInfo2_FWD_DEFINED__
62 typedef interface ITypeInfo2 ITypeInfo2;
63 #endif
64 
65 #ifndef __ITypeLib_FWD_DEFINED__
66 #define __ITypeLib_FWD_DEFINED__
67 typedef interface ITypeLib ITypeLib;
68 #endif
69 
70 #ifndef __ITypeLib2_FWD_DEFINED__
71 #define __ITypeLib2_FWD_DEFINED__
72 typedef interface ITypeLib2 ITypeLib2;
73 #endif
74 
75 #ifndef __ITypeChangeEvents_FWD_DEFINED__
76 #define __ITypeChangeEvents_FWD_DEFINED__
77 typedef interface ITypeChangeEvents ITypeChangeEvents;
78 #endif
79 
80 #ifndef __IErrorInfo_FWD_DEFINED__
81 #define __IErrorInfo_FWD_DEFINED__
82 typedef interface IErrorInfo IErrorInfo;
83 #endif
84 
85 #ifndef __ICreateErrorInfo_FWD_DEFINED__
86 #define __ICreateErrorInfo_FWD_DEFINED__
87 typedef interface ICreateErrorInfo ICreateErrorInfo;
88 #endif
89 
90 #ifndef __ISupportErrorInfo_FWD_DEFINED__
91 #define __ISupportErrorInfo_FWD_DEFINED__
92 typedef interface ISupportErrorInfo ISupportErrorInfo;
93 #endif
94 
95 #ifndef __ITypeFactory_FWD_DEFINED__
96 #define __ITypeFactory_FWD_DEFINED__
97 typedef interface ITypeFactory ITypeFactory;
98 #endif
99 
100 #ifndef __ITypeMarshal_FWD_DEFINED__
101 #define __ITypeMarshal_FWD_DEFINED__
102 typedef interface ITypeMarshal ITypeMarshal;
103 #endif
104 
105 #ifndef __IRecordInfo_FWD_DEFINED__
106 #define __IRecordInfo_FWD_DEFINED__
107 typedef interface IRecordInfo IRecordInfo;
108 #endif
109 
110 #ifndef __IErrorLog_FWD_DEFINED__
111 #define __IErrorLog_FWD_DEFINED__
112 typedef interface IErrorLog IErrorLog;
113 #endif
114 
115 #ifndef __IPropertyBag_FWD_DEFINED__
116 #define __IPropertyBag_FWD_DEFINED__
117 typedef interface IPropertyBag IPropertyBag;
118 #endif
119 
120 /* Headers for imported files */
121 
122 #include <objidl.h>
123 
124 #ifdef __cplusplus
125 extern "C" {
126 #endif
127 
128 /**
129  * This file is part of the mingw-w64 runtime package.
130  * No warranty is given; refer to the file DISCLAIMER within this package.
131  */
132 
133 #include <winapifamily.h>
134 
135 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
136 #ifndef __ICreateTypeInfo_FWD_DEFINED__
137 #define __ICreateTypeInfo_FWD_DEFINED__
138 typedef interface ICreateTypeInfo ICreateTypeInfo;
139 #endif
140 
141 #ifndef __ICreateTypeInfo2_FWD_DEFINED__
142 #define __ICreateTypeInfo2_FWD_DEFINED__
143 typedef interface ICreateTypeInfo2 ICreateTypeInfo2;
144 #endif
145 
146 #ifndef __ICreateTypeLib_FWD_DEFINED__
147 #define __ICreateTypeLib_FWD_DEFINED__
148 typedef interface ICreateTypeLib ICreateTypeLib;
149 #endif
150 
151 #ifndef __ICreateTypeLib2_FWD_DEFINED__
152 #define __ICreateTypeLib2_FWD_DEFINED__
153 typedef interface ICreateTypeLib2 ICreateTypeLib2;
154 #endif
155 
156 #endif
157 
158 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
159 #ifndef __IDispatch_FWD_DEFINED__
160 #define __IDispatch_FWD_DEFINED__
161 typedef interface IDispatch IDispatch;
162 #endif
163 
164 #ifndef __IEnumVARIANT_FWD_DEFINED__
165 #define __IEnumVARIANT_FWD_DEFINED__
166 typedef interface IEnumVARIANT IEnumVARIANT;
167 #endif
168 
169 #ifndef __ITypeComp_FWD_DEFINED__
170 #define __ITypeComp_FWD_DEFINED__
171 typedef interface ITypeComp ITypeComp;
172 #endif
173 
174 #endif
175 
176 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
177 #ifndef __ITypeInfo_FWD_DEFINED__
178 #define __ITypeInfo_FWD_DEFINED__
179 typedef interface ITypeInfo ITypeInfo;
180 #endif
181 
182 #ifndef __ITypeInfo2_FWD_DEFINED__
183 #define __ITypeInfo2_FWD_DEFINED__
184 typedef interface ITypeInfo2 ITypeInfo2;
185 #endif
186 
187 #ifndef __ITypeLib_FWD_DEFINED__
188 #define __ITypeLib_FWD_DEFINED__
189 typedef interface ITypeLib ITypeLib;
190 #endif
191 
192 #ifndef __ITypeLib2_FWD_DEFINED__
193 #define __ITypeLib2_FWD_DEFINED__
194 typedef interface ITypeLib2 ITypeLib2;
195 #endif
196 
197 #ifndef __ITypeChangeEvents_FWD_DEFINED__
198 #define __ITypeChangeEvents_FWD_DEFINED__
199 typedef interface ITypeChangeEvents ITypeChangeEvents;
200 #endif
201 
202 #ifndef __IErrorInfo_FWD_DEFINED__
203 #define __IErrorInfo_FWD_DEFINED__
204 typedef interface IErrorInfo IErrorInfo;
205 #endif
206 
207 #ifndef __ICreateErrorInfo_FWD_DEFINED__
208 #define __ICreateErrorInfo_FWD_DEFINED__
209 typedef interface ICreateErrorInfo ICreateErrorInfo;
210 #endif
211 
212 #ifndef __ISupportErrorInfo_FWD_DEFINED__
213 #define __ISupportErrorInfo_FWD_DEFINED__
214 typedef interface ISupportErrorInfo ISupportErrorInfo;
215 #endif
216 
217 #ifndef __ITypeFactory_FWD_DEFINED__
218 #define __ITypeFactory_FWD_DEFINED__
219 typedef interface ITypeFactory ITypeFactory;
220 #endif
221 
222 #ifndef __ITypeMarshal_FWD_DEFINED__
223 #define __ITypeMarshal_FWD_DEFINED__
224 typedef interface ITypeMarshal ITypeMarshal;
225 #endif
226 
227 #ifndef __IRecordInfo_FWD_DEFINED__
228 #define __IRecordInfo_FWD_DEFINED__
229 typedef interface IRecordInfo IRecordInfo;
230 #endif
231 
232 #endif
233 
234 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
235 /*****************************************************************************
236  * IOleAutomationTypes interface (v1.0)
237  */
238 #ifndef __IOleAutomationTypes_INTERFACE_DEFINED__
239 #define __IOleAutomationTypes_INTERFACE_DEFINED__
240 
241 extern RPC_IF_HANDLE IOleAutomationTypes_v1_0_c_ifspec;
242 extern RPC_IF_HANDLE IOleAutomationTypes_v1_0_s_ifspec;
243 typedef CY CURRENCY;
244 typedef struct tagSAFEARRAYBOUND {
245     ULONG cElements;
246     LONG lLbound;
247 } SAFEARRAYBOUND;
248 typedef struct tagSAFEARRAYBOUND *LPSAFEARRAYBOUND;
249 
250 typedef struct _wireVARIANT *wireVARIANT;
251 typedef struct _wireBRECORD *wireBRECORD;
252 
253 typedef struct _wireSAFEARR_BSTR {
254     ULONG Size;
255     wireBSTR *aBstr;
256 } SAFEARR_BSTR;
257 
258 typedef struct _wireSAFEARR_UNKNOWN {
259     ULONG Size;
260     IUnknown **apUnknown;
261 } SAFEARR_UNKNOWN;
262 
263 typedef struct _wireSAFEARR_DISPATCH {
264     ULONG Size;
265     IDispatch **apDispatch;
266 } SAFEARR_DISPATCH;
267 
268 typedef struct _wireSAFEARR_VARIANT {
269     ULONG Size;
270     wireVARIANT *aVariant;
271 } SAFEARR_VARIANT;
272 
273 typedef struct _wireSAFEARR_BRECORD {
274     ULONG Size;
275     wireBRECORD *aRecord;
276 } SAFEARR_BRECORD;
277 
278 typedef struct _wireSAFEARR_HAVEIID {
279     ULONG Size;
280     IUnknown **apUnknown;
281     IID iid;
282 } SAFEARR_HAVEIID;
283 
284 typedef enum tagSF_TYPE {
285     SF_ERROR = VT_ERROR,
286     SF_I1 = VT_I1,
287     SF_I2 = VT_I2,
288     SF_I4 = VT_I4,
289     SF_I8 = VT_I8,
290     SF_BSTR = VT_BSTR,
291     SF_UNKNOWN = VT_UNKNOWN,
292     SF_DISPATCH = VT_DISPATCH,
293     SF_VARIANT = VT_VARIANT,
294     SF_RECORD = VT_RECORD,
295     SF_HAVEIID = VT_UNKNOWN | VT_RESERVED
296 } SF_TYPE;
297 
298 typedef struct _wireSAFEARRAY_UNION {
299     ULONG sfType;
300     union {
301         SAFEARR_BSTR BstrStr;
302         SAFEARR_UNKNOWN UnknownStr;
303         SAFEARR_DISPATCH DispatchStr;
304         SAFEARR_VARIANT VariantStr;
305         SAFEARR_BRECORD RecordStr;
306         SAFEARR_HAVEIID HaveIidStr;
307         BYTE_SIZEDARR ByteStr;
308         WORD_SIZEDARR WordStr;
309         DWORD_SIZEDARR LongStr;
310         HYPER_SIZEDARR HyperStr;
311     } u;
312 } SAFEARRAYUNION;
313 
314 typedef struct _wireSAFEARRAY {
315     USHORT cDims;
316     USHORT fFeatures;
317     ULONG cbElements;
318     ULONG cLocks;
319     SAFEARRAYUNION uArrayStructs;
320     SAFEARRAYBOUND rgsabound[1];
321 } *wireSAFEARRAY;
322 typedef wireSAFEARRAY *wirePSAFEARRAY;
323 
324 typedef struct tagSAFEARRAY {
325     USHORT cDims;
326     USHORT fFeatures;
327     ULONG cbElements;
328     ULONG cLocks;
329     PVOID pvData;
330     SAFEARRAYBOUND rgsabound[1];
331 } SAFEARRAY;
332 typedef SAFEARRAY *LPSAFEARRAY;
333 
334 #define FADF_AUTO (0x1)
335 
336 #define FADF_STATIC (0x2)
337 
338 #define FADF_EMBEDDED (0x4)
339 
340 #define FADF_FIXEDSIZE (0x10)
341 
342 #define FADF_RECORD (0x20)
343 
344 #define FADF_HAVEIID (0x40)
345 
346 #define FADF_HAVEVARTYPE (0x80)
347 
348 #define FADF_BSTR (0x100)
349 
350 #define FADF_UNKNOWN (0x200)
351 
352 #define FADF_DISPATCH (0x400)
353 
354 #define FADF_VARIANT (0x800)
355 
356 #define FADF_RESERVED (0xf008)
357 
358 
359 /* Kludge for 3.0 release to disable new default-behavior.
360  * For now we define _FORCENAMELESSUNION.  For 4.0 this define
361  * will be removed. */
362 #ifndef _FORCENAMELESSUNION
363 #define _FORCENAMELESSUNION 1
364 #endif
365 
366 #if (__STDC__ && !defined(__cplusplus) && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION) || (defined (_MSC_VER) && !defined(_MSC_EXTENSIONS) && !defined(_FORCENAMELESSUNION))
367 #define __VARIANT_NAME_1 n1
368 #define __VARIANT_NAME_2 n2
369 #define __VARIANT_NAME_3 n3
370 #define __VARIANT_NAME_4 brecVal
371 #else
372 #define __tagVARIANT
373 #define __VARIANT_NAME_1
374 #define __VARIANT_NAME_2
375 #define __VARIANT_NAME_3
376 #define __tagBRECORD
377 #define __VARIANT_NAME_4
378 #endif
379 
380 typedef struct tagVARIANT VARIANT;
381 
382 struct tagVARIANT {
383     union {
384         struct __tagVARIANT {
385             VARTYPE vt;
386             WORD wReserved1;
387             WORD wReserved2;
388             WORD wReserved3;
389             union {
390                 LONGLONG llVal;
391                 LONG lVal;
392                 BYTE bVal;
393                 SHORT iVal;
394                 FLOAT fltVal;
395                 DOUBLE dblVal;
396                 VARIANT_BOOL boolVal;
397                 SCODE scode;
398                 CY cyVal;
399                 DATE date;
400                 BSTR bstrVal;
401                 IUnknown *punkVal;
402                 IDispatch *pdispVal;
403                 SAFEARRAY *parray;
404                 BYTE *pbVal;
405                 SHORT *piVal;
406                 LONG *plVal;
407                 LONGLONG *pllVal;
408                 FLOAT *pfltVal;
409                 DOUBLE *pdblVal;
410                 VARIANT_BOOL *pboolVal;
411                 SCODE *pscode;
412                 CY *pcyVal;
413                 DATE *pdate;
414                 BSTR *pbstrVal;
415                 IUnknown **ppunkVal;
416                 IDispatch **ppdispVal;
417                 SAFEARRAY **pparray;
418                 VARIANT *pvarVal;
419                 PVOID byref;
420                 CHAR cVal;
421                 USHORT uiVal;
422                 ULONG ulVal;
423                 ULONGLONG ullVal;
424                 INT intVal;
425                 UINT uintVal;
426                 DECIMAL *pdecVal;
427                 CHAR *pcVal;
428                 USHORT *puiVal;
429                 ULONG *pulVal;
430                 ULONGLONG *pullVal;
431                 INT *pintVal;
432                 UINT *puintVal;
433                 struct __tagBRECORD {
434                     PVOID pvRecord;
435                     IRecordInfo *pRecInfo;
436                 } __VARIANT_NAME_4;
437             } __VARIANT_NAME_3;
438         } __VARIANT_NAME_2;
439         DECIMAL decVal;
440     } __VARIANT_NAME_1;
441 };
442 
443 
444 typedef VARIANT *LPVARIANT;
445 typedef VARIANT VARIANTARG;
446 typedef VARIANT *LPVARIANTARG;
447 #if 0
448 typedef const VARIANT *REFVARIANT;
449 #else
450 
451 #ifndef _REFVARIANT_DEFINED
452 #define _REFVARIANT_DEFINED
453 #ifdef __cplusplus
454 #define REFVARIANT const VARIANT &
455 #else
456 #define REFVARIANT const VARIANT * __MIDL_CONST
457 #endif
458 #endif
459 #endif
460 
461 struct _wireBRECORD {
462     ULONG fFlags;
463     ULONG clSize;
464     IRecordInfo *pRecInfo;
465     byte *pRecord;
466 };
467 
468 
469 struct _wireVARIANT {
470     DWORD clSize;
471     DWORD rpcReserved;
472     USHORT vt;
473     USHORT wReserved1;
474     USHORT wReserved2;
475     USHORT wReserved3;
476     __C89_NAMELESS union {
477         LONGLONG llVal;
478         LONG lVal;
479         BYTE bVal;
480         SHORT iVal;
481         FLOAT fltVal;
482         DOUBLE dblVal;
483         VARIANT_BOOL boolVal;
484         SCODE scode;
485         CY cyVal;
486         DATE date;
487         wireBSTR bstrVal;
488         IUnknown *punkVal;
489         IDispatch *pdispVal;
490         wirePSAFEARRAY parray;
491         wireBRECORD brecVal;
492         BYTE *pbVal;
493         SHORT *piVal;
494         LONG *plVal;
495         LONGLONG *pllVal;
496         FLOAT *pfltVal;
497         DOUBLE *pdblVal;
498         VARIANT_BOOL *pboolVal;
499         SCODE *pscode;
500         CY *pcyVal;
501         DATE *pdate;
502         wireBSTR *pbstrVal;
503         IUnknown **ppunkVal;
504         IDispatch **ppdispVal;
505         wirePSAFEARRAY *pparray;
506         wireVARIANT *pvarVal;
507         CHAR cVal;
508         USHORT uiVal;
509         ULONG ulVal;
510         ULONGLONG ullVal;
511         INT intVal;
512         UINT uintVal;
513         DECIMAL decVal;
514         DECIMAL *pdecVal;
515         CHAR *pcVal;
516         USHORT *puiVal;
517         ULONG *pulVal;
518         ULONGLONG *pullVal;
519         INT *pintVal;
520         UINT *puintVal;
521     } __C89_NAMELESSUNIONNAME;
522 };
523 
524 
525 typedef LONG DISPID;
526 typedef DISPID MEMBERID;
527 typedef DWORD HREFTYPE;
528 typedef enum tagTYPEKIND {
529     TKIND_ENUM = 0,
530     TKIND_RECORD = 1,
531     TKIND_MODULE = 2,
532     TKIND_INTERFACE = 3,
533     TKIND_DISPATCH = 4,
534     TKIND_COCLASS = 5,
535     TKIND_ALIAS = 6,
536     TKIND_UNION = 7,
537     TKIND_MAX = 8
538 } TYPEKIND;
539 
540 typedef struct tagTYPEDESC {
541     __C89_NAMELESS union {
542         struct tagTYPEDESC *lptdesc;
543         struct tagARRAYDESC *lpadesc;
544         HREFTYPE hreftype;
545     } __C89_NAMELESSUNIONNAME;
546     VARTYPE vt;
547 } TYPEDESC;
548 
549 typedef struct tagARRAYDESC {
550     TYPEDESC tdescElem;
551     USHORT cDims;
552     SAFEARRAYBOUND rgbounds[1];
553 } ARRAYDESC;
554 
555 typedef struct tagPARAMDESCEX {
556     ULONG cBytes;
557     VARIANTARG varDefaultValue;
558 } PARAMDESCEX;
559 typedef struct tagPARAMDESCEX *LPPARAMDESCEX;
560 
561 typedef struct tagPARAMDESC {
562     LPPARAMDESCEX pparamdescex;
563     USHORT wParamFlags;
564 } PARAMDESC;
565 typedef struct tagPARAMDESC *LPPARAMDESC;
566 
567 #define PARAMFLAG_NONE (0x0)
568 
569 #define PARAMFLAG_FIN (0x1)
570 
571 #define PARAMFLAG_FOUT (0x2)
572 
573 #define PARAMFLAG_FLCID (0x4)
574 
575 #define PARAMFLAG_FRETVAL (0x8)
576 
577 #define PARAMFLAG_FOPT (0x10)
578 
579 #define PARAMFLAG_FHASDEFAULT (0x20)
580 
581 #define PARAMFLAG_FHASCUSTDATA (0x40)
582 
583 
584 typedef struct tagIDLDESC {
585     ULONG_PTR dwReserved;
586     USHORT wIDLFlags;
587 } IDLDESC;
588 typedef struct tagIDLDESC *LPIDLDESC;
589 
590 #define IDLFLAG_NONE (PARAMFLAG_NONE)
591 
592 #define IDLFLAG_FIN (PARAMFLAG_FIN)
593 
594 #define IDLFLAG_FOUT (PARAMFLAG_FOUT)
595 
596 #define IDLFLAG_FLCID (PARAMFLAG_FLCID)
597 
598 #define IDLFLAG_FRETVAL (PARAMFLAG_FRETVAL)
599 
600 
601 #if 0
602 typedef struct tagELEMDESC {
603     TYPEDESC tdesc;
604     PARAMDESC paramdesc;
605 } ELEMDESC;
606 #else
607 
608   typedef struct tagELEMDESC {
609     TYPEDESC tdesc;
610     __C89_NAMELESS union {
611       IDLDESC idldesc;
612       PARAMDESC paramdesc;
613     } DUMMYUNIONNAME;
614   } ELEMDESC,*LPELEMDESC;
615 #endif
616 
617 typedef struct tagTYPEATTR {
618     GUID guid;
619     LCID lcid;
620     DWORD dwReserved;
621     MEMBERID memidConstructor;
622     MEMBERID memidDestructor;
623     LPOLESTR lpstrSchema;
624     ULONG cbSizeInstance;
625     TYPEKIND typekind;
626     WORD cFuncs;
627     WORD cVars;
628     WORD cImplTypes;
629     WORD cbSizeVft;
630     WORD cbAlignment;
631     WORD wTypeFlags;
632     WORD wMajorVerNum;
633     WORD wMinorVerNum;
634     TYPEDESC tdescAlias;
635     IDLDESC idldescType;
636 } TYPEATTR;
637 typedef struct tagTYPEATTR *LPTYPEATTR;
638 
639 typedef struct tagDISPPARAMS {
640     VARIANTARG *rgvarg;
641     DISPID *rgdispidNamedArgs;
642     UINT cArgs;
643     UINT cNamedArgs;
644 } DISPPARAMS;
645 
646 #if 0
647 typedef struct tagEXCEPINFO {
648     WORD wCode;
649     WORD wReserved;
650     BSTR bstrSource;
651     BSTR bstrDescription;
652     BSTR bstrHelpFile;
653     DWORD dwHelpContext;
654     ULONG_PTR pvReserved;
655     ULONG_PTR pfnDeferredFillIn;
656     SCODE scode;
657 } EXCEPINFO;
658 #else
659   typedef struct tagEXCEPINFO {
660     WORD wCode;
661     WORD wReserved;
662     BSTR bstrSource;
663     BSTR bstrDescription;
664     BSTR bstrHelpFile;
665     DWORD dwHelpContext;
666     PVOID pvReserved;
667     HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);
668     SCODE scode;
669   } EXCEPINFO, *LPEXCEPINFO;
670 #endif
671 
672 typedef enum tagCALLCONV {
673     CC_FASTCALL = 0,
674     CC_CDECL = 1,
675     CC_MSCPASCAL = 2,
676     CC_PASCAL = CC_MSCPASCAL,
677     CC_MACPASCAL = 3,
678     CC_STDCALL = 4,
679     CC_FPFASTCALL = 5,
680     CC_SYSCALL = 6,
681     CC_MPWCDECL = 7,
682     CC_MPWPASCAL = 8,
683     CC_MAX = 9
684 } CALLCONV;
685 
686 typedef enum tagFUNCKIND {
687     FUNC_VIRTUAL = 0,
688     FUNC_PUREVIRTUAL = 1,
689     FUNC_NONVIRTUAL = 2,
690     FUNC_STATIC = 3,
691     FUNC_DISPATCH = 4
692 } FUNCKIND;
693 
694 typedef enum tagINVOKEKIND {
695     INVOKE_FUNC = 1,
696     INVOKE_PROPERTYGET = 2,
697     INVOKE_PROPERTYPUT = 4,
698     INVOKE_PROPERTYPUTREF = 8
699 } INVOKEKIND;
700 
701 typedef struct tagFUNCDESC {
702     MEMBERID memid;
703     SCODE *lprgscode;
704     ELEMDESC *lprgelemdescParam;
705     FUNCKIND funckind;
706     INVOKEKIND invkind;
707     CALLCONV callconv;
708     SHORT cParams;
709     SHORT cParamsOpt;
710     SHORT oVft;
711     SHORT cScodes;
712     ELEMDESC elemdescFunc;
713     WORD wFuncFlags;
714 } FUNCDESC;
715 typedef struct tagFUNCDESC *LPFUNCDESC;
716 
717 typedef enum tagVARKIND {
718     VAR_PERINSTANCE = 0,
719     VAR_STATIC = 1,
720     VAR_CONST = 2,
721     VAR_DISPATCH = 3
722 } VARKIND;
723 
724 #define IMPLTYPEFLAG_FDEFAULT (0x1)
725 
726 #define IMPLTYPEFLAG_FSOURCE (0x2)
727 
728 #define IMPLTYPEFLAG_FRESTRICTED (0x4)
729 
730 #define IMPLTYPEFLAG_FDEFAULTVTABLE (0x8)
731 
732 
733 typedef struct tagVARDESC {
734     MEMBERID memid;
735     LPOLESTR lpstrSchema;
736     __C89_NAMELESS union {
737         ULONG oInst;
738         VARIANT *lpvarValue;
739     } __C89_NAMELESSUNIONNAME;
740     ELEMDESC elemdescVar;
741     WORD wVarFlags;
742     VARKIND varkind;
743 } VARDESC;
744 typedef struct tagVARDESC *LPVARDESC;
745 
746 typedef enum tagTYPEFLAGS {
747     TYPEFLAG_FAPPOBJECT = 0x1,
748     TYPEFLAG_FCANCREATE = 0x2,
749     TYPEFLAG_FLICENSED = 0x4,
750     TYPEFLAG_FPREDECLID = 0x8,
751     TYPEFLAG_FHIDDEN = 0x10,
752     TYPEFLAG_FCONTROL = 0x20,
753     TYPEFLAG_FDUAL = 0x40,
754     TYPEFLAG_FNONEXTENSIBLE = 0x80,
755     TYPEFLAG_FOLEAUTOMATION = 0x100,
756     TYPEFLAG_FRESTRICTED = 0x200,
757     TYPEFLAG_FAGGREGATABLE = 0x400,
758     TYPEFLAG_FREPLACEABLE = 0x800,
759     TYPEFLAG_FDISPATCHABLE = 0x1000,
760     TYPEFLAG_FREVERSEBIND = 0x2000,
761     TYPEFLAG_FPROXY = 0x4000
762 } TYPEFLAGS;
763 
764 typedef enum tagFUNCFLAGS {
765     FUNCFLAG_FRESTRICTED = 0x1,
766     FUNCFLAG_FSOURCE = 0x2,
767     FUNCFLAG_FBINDABLE = 0x4,
768     FUNCFLAG_FREQUESTEDIT = 0x8,
769     FUNCFLAG_FDISPLAYBIND = 0x10,
770     FUNCFLAG_FDEFAULTBIND = 0x20,
771     FUNCFLAG_FHIDDEN = 0x40,
772     FUNCFLAG_FUSESGETLASTERROR = 0x80,
773     FUNCFLAG_FDEFAULTCOLLELEM = 0x100,
774     FUNCFLAG_FUIDEFAULT = 0x200,
775     FUNCFLAG_FNONBROWSABLE = 0x400,
776     FUNCFLAG_FREPLACEABLE = 0x800,
777     FUNCFLAG_FIMMEDIATEBIND = 0x1000
778 } FUNCFLAGS;
779 
780 typedef enum tagVARFLAGS {
781     VARFLAG_FREADONLY = 0x1,
782     VARFLAG_FSOURCE = 0x2,
783     VARFLAG_FBINDABLE = 0x4,
784     VARFLAG_FREQUESTEDIT = 0x8,
785     VARFLAG_FDISPLAYBIND = 0x10,
786     VARFLAG_FDEFAULTBIND = 0x20,
787     VARFLAG_FHIDDEN = 0x40,
788     VARFLAG_FRESTRICTED = 0x80,
789     VARFLAG_FDEFAULTCOLLELEM = 0x100,
790     VARFLAG_FUIDEFAULT = 0x200,
791     VARFLAG_FNONBROWSABLE = 0x400,
792     VARFLAG_FREPLACEABLE = 0x800,
793     VARFLAG_FIMMEDIATEBIND = 0x1000
794 } VARFLAGS;
795 
796 typedef struct tagCLEANLOCALSTORAGE {
797     IUnknown *pInterface;
798     PVOID pStorage;
799     DWORD flags;
800 } CLEANLOCALSTORAGE;
801 
802 typedef struct tagCUSTDATAITEM {
803     GUID guid;
804     VARIANTARG varValue;
805 } CUSTDATAITEM;
806 typedef struct tagCUSTDATAITEM *LPCUSTDATAITEM;
807 
808 typedef struct tagCUSTDATA {
809     DWORD cCustData;
810     LPCUSTDATAITEM prgCustData;
811 } CUSTDATA;
812 typedef struct tagCUSTDATA *LPCUSTDATA;
813 
814 #endif  /* __IOleAutomationTypes_INTERFACE_DEFINED__ */
815 
816 #endif
817 
818 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
819 /*****************************************************************************
820  * ICreateTypeInfo interface
821  */
822 #ifndef __ICreateTypeInfo_INTERFACE_DEFINED__
823 #define __ICreateTypeInfo_INTERFACE_DEFINED__
824 
825 typedef ICreateTypeInfo *LPCREATETYPEINFO;
826 
827 DEFINE_GUID(IID_ICreateTypeInfo, 0x00020405, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
828 #if defined(__cplusplus) && !defined(CINTERFACE)
829 MIDL_INTERFACE("00020405-0000-0000-c000-000000000046")
830 ICreateTypeInfo : public IUnknown
831 {
832     virtual HRESULT STDMETHODCALLTYPE SetGuid(
833         REFGUID guid) = 0;
834 
835     virtual HRESULT STDMETHODCALLTYPE SetTypeFlags(
836         UINT uTypeFlags) = 0;
837 
838     virtual HRESULT STDMETHODCALLTYPE SetDocString(
839         LPOLESTR pStrDoc) = 0;
840 
841     virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
842         DWORD dwHelpContext) = 0;
843 
844     virtual HRESULT STDMETHODCALLTYPE SetVersion(
845         WORD wMajorVerNum,
846         WORD wMinorVerNum) = 0;
847 
848     virtual HRESULT STDMETHODCALLTYPE AddRefTypeInfo(
849         ITypeInfo *pTInfo,
850         HREFTYPE *phRefType) = 0;
851 
852     virtual HRESULT STDMETHODCALLTYPE AddFuncDesc(
853         UINT index,
854         FUNCDESC *pFuncDesc) = 0;
855 
856     virtual HRESULT STDMETHODCALLTYPE AddImplType(
857         UINT index,
858         HREFTYPE hRefType) = 0;
859 
860     virtual HRESULT STDMETHODCALLTYPE SetImplTypeFlags(
861         UINT index,
862         INT implTypeFlags) = 0;
863 
864     virtual HRESULT STDMETHODCALLTYPE SetAlignment(
865         WORD cbAlignment) = 0;
866 
867     virtual HRESULT STDMETHODCALLTYPE SetSchema(
868         LPOLESTR pStrSchema) = 0;
869 
870     virtual HRESULT STDMETHODCALLTYPE AddVarDesc(
871         UINT index,
872         VARDESC *pVarDesc) = 0;
873 
874     virtual HRESULT STDMETHODCALLTYPE SetFuncAndParamNames(
875         UINT index,
876         LPOLESTR *rgszNames,
877         UINT cNames) = 0;
878 
879     virtual HRESULT STDMETHODCALLTYPE SetVarName(
880         UINT index,
881         LPOLESTR szName) = 0;
882 
883     virtual HRESULT STDMETHODCALLTYPE SetTypeDescAlias(
884         TYPEDESC *pTDescAlias) = 0;
885 
886     virtual HRESULT STDMETHODCALLTYPE DefineFuncAsDllEntry(
887         UINT index,
888         LPOLESTR szDllName,
889         LPOLESTR szProcName) = 0;
890 
891     virtual HRESULT STDMETHODCALLTYPE SetFuncDocString(
892         UINT index,
893         LPOLESTR szDocString) = 0;
894 
895     virtual HRESULT STDMETHODCALLTYPE SetVarDocString(
896         UINT index,
897         LPOLESTR szDocString) = 0;
898 
899     virtual HRESULT STDMETHODCALLTYPE SetFuncHelpContext(
900         UINT index,
901         DWORD dwHelpContext) = 0;
902 
903     virtual HRESULT STDMETHODCALLTYPE SetVarHelpContext(
904         UINT index,
905         DWORD dwHelpContext) = 0;
906 
907     virtual HRESULT STDMETHODCALLTYPE SetMops(
908         UINT index,
909         BSTR bstrMops) = 0;
910 
911     virtual HRESULT STDMETHODCALLTYPE SetTypeIdldesc(
912         IDLDESC *pIdlDesc) = 0;
913 
914     virtual HRESULT STDMETHODCALLTYPE LayOut(
915         ) = 0;
916 
917 };
918 #ifdef __CRT_UUID_DECL
919 __CRT_UUID_DECL(ICreateTypeInfo, 0x00020405, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
920 #endif
921 #else
922 typedef struct ICreateTypeInfoVtbl {
923     BEGIN_INTERFACE
924 
925     /*** IUnknown methods ***/
926     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
927         ICreateTypeInfo* This,
928         REFIID riid,
929         void **ppvObject);
930 
931     ULONG (STDMETHODCALLTYPE *AddRef)(
932         ICreateTypeInfo* This);
933 
934     ULONG (STDMETHODCALLTYPE *Release)(
935         ICreateTypeInfo* This);
936 
937     /*** ICreateTypeInfo methods ***/
938     HRESULT (STDMETHODCALLTYPE *SetGuid)(
939         ICreateTypeInfo* This,
940         REFGUID guid);
941 
942     HRESULT (STDMETHODCALLTYPE *SetTypeFlags)(
943         ICreateTypeInfo* This,
944         UINT uTypeFlags);
945 
946     HRESULT (STDMETHODCALLTYPE *SetDocString)(
947         ICreateTypeInfo* This,
948         LPOLESTR pStrDoc);
949 
950     HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
951         ICreateTypeInfo* This,
952         DWORD dwHelpContext);
953 
954     HRESULT (STDMETHODCALLTYPE *SetVersion)(
955         ICreateTypeInfo* This,
956         WORD wMajorVerNum,
957         WORD wMinorVerNum);
958 
959     HRESULT (STDMETHODCALLTYPE *AddRefTypeInfo)(
960         ICreateTypeInfo* This,
961         ITypeInfo *pTInfo,
962         HREFTYPE *phRefType);
963 
964     HRESULT (STDMETHODCALLTYPE *AddFuncDesc)(
965         ICreateTypeInfo* This,
966         UINT index,
967         FUNCDESC *pFuncDesc);
968 
969     HRESULT (STDMETHODCALLTYPE *AddImplType)(
970         ICreateTypeInfo* This,
971         UINT index,
972         HREFTYPE hRefType);
973 
974     HRESULT (STDMETHODCALLTYPE *SetImplTypeFlags)(
975         ICreateTypeInfo* This,
976         UINT index,
977         INT implTypeFlags);
978 
979     HRESULT (STDMETHODCALLTYPE *SetAlignment)(
980         ICreateTypeInfo* This,
981         WORD cbAlignment);
982 
983     HRESULT (STDMETHODCALLTYPE *SetSchema)(
984         ICreateTypeInfo* This,
985         LPOLESTR pStrSchema);
986 
987     HRESULT (STDMETHODCALLTYPE *AddVarDesc)(
988         ICreateTypeInfo* This,
989         UINT index,
990         VARDESC *pVarDesc);
991 
992     HRESULT (STDMETHODCALLTYPE *SetFuncAndParamNames)(
993         ICreateTypeInfo* This,
994         UINT index,
995         LPOLESTR *rgszNames,
996         UINT cNames);
997 
998     HRESULT (STDMETHODCALLTYPE *SetVarName)(
999         ICreateTypeInfo* This,
1000         UINT index,
1001         LPOLESTR szName);
1002 
1003     HRESULT (STDMETHODCALLTYPE *SetTypeDescAlias)(
1004         ICreateTypeInfo* This,
1005         TYPEDESC *pTDescAlias);
1006 
1007     HRESULT (STDMETHODCALLTYPE *DefineFuncAsDllEntry)(
1008         ICreateTypeInfo* This,
1009         UINT index,
1010         LPOLESTR szDllName,
1011         LPOLESTR szProcName);
1012 
1013     HRESULT (STDMETHODCALLTYPE *SetFuncDocString)(
1014         ICreateTypeInfo* This,
1015         UINT index,
1016         LPOLESTR szDocString);
1017 
1018     HRESULT (STDMETHODCALLTYPE *SetVarDocString)(
1019         ICreateTypeInfo* This,
1020         UINT index,
1021         LPOLESTR szDocString);
1022 
1023     HRESULT (STDMETHODCALLTYPE *SetFuncHelpContext)(
1024         ICreateTypeInfo* This,
1025         UINT index,
1026         DWORD dwHelpContext);
1027 
1028     HRESULT (STDMETHODCALLTYPE *SetVarHelpContext)(
1029         ICreateTypeInfo* This,
1030         UINT index,
1031         DWORD dwHelpContext);
1032 
1033     HRESULT (STDMETHODCALLTYPE *SetMops)(
1034         ICreateTypeInfo* This,
1035         UINT index,
1036         BSTR bstrMops);
1037 
1038     HRESULT (STDMETHODCALLTYPE *SetTypeIdldesc)(
1039         ICreateTypeInfo* This,
1040         IDLDESC *pIdlDesc);
1041 
1042     HRESULT (STDMETHODCALLTYPE *LayOut)(
1043         ICreateTypeInfo* This);
1044 
1045     END_INTERFACE
1046 } ICreateTypeInfoVtbl;
1047 interface ICreateTypeInfo {
1048     CONST_VTBL ICreateTypeInfoVtbl* lpVtbl;
1049 };
1050 
1051 #ifdef COBJMACROS
1052 #ifndef WIDL_C_INLINE_WRAPPERS
1053 /*** IUnknown methods ***/
1054 #define ICreateTypeInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1055 #define ICreateTypeInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
1056 #define ICreateTypeInfo_Release(This) (This)->lpVtbl->Release(This)
1057 /*** ICreateTypeInfo methods ***/
1058 #define ICreateTypeInfo_SetGuid(This,guid) (This)->lpVtbl->SetGuid(This,guid)
1059 #define ICreateTypeInfo_SetTypeFlags(This,uTypeFlags) (This)->lpVtbl->SetTypeFlags(This,uTypeFlags)
1060 #define ICreateTypeInfo_SetDocString(This,pStrDoc) (This)->lpVtbl->SetDocString(This,pStrDoc)
1061 #define ICreateTypeInfo_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
1062 #define ICreateTypeInfo_SetVersion(This,wMajorVerNum,wMinorVerNum) (This)->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum)
1063 #define ICreateTypeInfo_AddRefTypeInfo(This,pTInfo,phRefType) (This)->lpVtbl->AddRefTypeInfo(This,pTInfo,phRefType)
1064 #define ICreateTypeInfo_AddFuncDesc(This,index,pFuncDesc) (This)->lpVtbl->AddFuncDesc(This,index,pFuncDesc)
1065 #define ICreateTypeInfo_AddImplType(This,index,hRefType) (This)->lpVtbl->AddImplType(This,index,hRefType)
1066 #define ICreateTypeInfo_SetImplTypeFlags(This,index,implTypeFlags) (This)->lpVtbl->SetImplTypeFlags(This,index,implTypeFlags)
1067 #define ICreateTypeInfo_SetAlignment(This,cbAlignment) (This)->lpVtbl->SetAlignment(This,cbAlignment)
1068 #define ICreateTypeInfo_SetSchema(This,pStrSchema) (This)->lpVtbl->SetSchema(This,pStrSchema)
1069 #define ICreateTypeInfo_AddVarDesc(This,index,pVarDesc) (This)->lpVtbl->AddVarDesc(This,index,pVarDesc)
1070 #define ICreateTypeInfo_SetFuncAndParamNames(This,index,rgszNames,cNames) (This)->lpVtbl->SetFuncAndParamNames(This,index,rgszNames,cNames)
1071 #define ICreateTypeInfo_SetVarName(This,index,szName) (This)->lpVtbl->SetVarName(This,index,szName)
1072 #define ICreateTypeInfo_SetTypeDescAlias(This,pTDescAlias) (This)->lpVtbl->SetTypeDescAlias(This,pTDescAlias)
1073 #define ICreateTypeInfo_DefineFuncAsDllEntry(This,index,szDllName,szProcName) (This)->lpVtbl->DefineFuncAsDllEntry(This,index,szDllName,szProcName)
1074 #define ICreateTypeInfo_SetFuncDocString(This,index,szDocString) (This)->lpVtbl->SetFuncDocString(This,index,szDocString)
1075 #define ICreateTypeInfo_SetVarDocString(This,index,szDocString) (This)->lpVtbl->SetVarDocString(This,index,szDocString)
1076 #define ICreateTypeInfo_SetFuncHelpContext(This,index,dwHelpContext) (This)->lpVtbl->SetFuncHelpContext(This,index,dwHelpContext)
1077 #define ICreateTypeInfo_SetVarHelpContext(This,index,dwHelpContext) (This)->lpVtbl->SetVarHelpContext(This,index,dwHelpContext)
1078 #define ICreateTypeInfo_SetMops(This,index,bstrMops) (This)->lpVtbl->SetMops(This,index,bstrMops)
1079 #define ICreateTypeInfo_SetTypeIdldesc(This,pIdlDesc) (This)->lpVtbl->SetTypeIdldesc(This,pIdlDesc)
1080 #define ICreateTypeInfo_LayOut(This) (This)->lpVtbl->LayOut(This)
1081 #else
1082 /*** IUnknown methods ***/
1083 static FORCEINLINE HRESULT ICreateTypeInfo_QueryInterface(ICreateTypeInfo* This,REFIID riid,void **ppvObject) {
1084     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1085 }
1086 static FORCEINLINE ULONG ICreateTypeInfo_AddRef(ICreateTypeInfo* This) {
1087     return This->lpVtbl->AddRef(This);
1088 }
1089 static FORCEINLINE ULONG ICreateTypeInfo_Release(ICreateTypeInfo* This) {
1090     return This->lpVtbl->Release(This);
1091 }
1092 /*** ICreateTypeInfo methods ***/
1093 static FORCEINLINE HRESULT ICreateTypeInfo_SetGuid(ICreateTypeInfo* This,REFGUID guid) {
1094     return This->lpVtbl->SetGuid(This,guid);
1095 }
1096 static FORCEINLINE HRESULT ICreateTypeInfo_SetTypeFlags(ICreateTypeInfo* This,UINT uTypeFlags) {
1097     return This->lpVtbl->SetTypeFlags(This,uTypeFlags);
1098 }
1099 static FORCEINLINE HRESULT ICreateTypeInfo_SetDocString(ICreateTypeInfo* This,LPOLESTR pStrDoc) {
1100     return This->lpVtbl->SetDocString(This,pStrDoc);
1101 }
1102 static FORCEINLINE HRESULT ICreateTypeInfo_SetHelpContext(ICreateTypeInfo* This,DWORD dwHelpContext) {
1103     return This->lpVtbl->SetHelpContext(This,dwHelpContext);
1104 }
1105 static FORCEINLINE HRESULT ICreateTypeInfo_SetVersion(ICreateTypeInfo* This,WORD wMajorVerNum,WORD wMinorVerNum) {
1106     return This->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum);
1107 }
1108 static FORCEINLINE HRESULT ICreateTypeInfo_AddRefTypeInfo(ICreateTypeInfo* This,ITypeInfo *pTInfo,HREFTYPE *phRefType) {
1109     return This->lpVtbl->AddRefTypeInfo(This,pTInfo,phRefType);
1110 }
1111 static FORCEINLINE HRESULT ICreateTypeInfo_AddFuncDesc(ICreateTypeInfo* This,UINT index,FUNCDESC *pFuncDesc) {
1112     return This->lpVtbl->AddFuncDesc(This,index,pFuncDesc);
1113 }
1114 static FORCEINLINE HRESULT ICreateTypeInfo_AddImplType(ICreateTypeInfo* This,UINT index,HREFTYPE hRefType) {
1115     return This->lpVtbl->AddImplType(This,index,hRefType);
1116 }
1117 static FORCEINLINE HRESULT ICreateTypeInfo_SetImplTypeFlags(ICreateTypeInfo* This,UINT index,INT implTypeFlags) {
1118     return This->lpVtbl->SetImplTypeFlags(This,index,implTypeFlags);
1119 }
1120 static FORCEINLINE HRESULT ICreateTypeInfo_SetAlignment(ICreateTypeInfo* This,WORD cbAlignment) {
1121     return This->lpVtbl->SetAlignment(This,cbAlignment);
1122 }
1123 static FORCEINLINE HRESULT ICreateTypeInfo_SetSchema(ICreateTypeInfo* This,LPOLESTR pStrSchema) {
1124     return This->lpVtbl->SetSchema(This,pStrSchema);
1125 }
1126 static FORCEINLINE HRESULT ICreateTypeInfo_AddVarDesc(ICreateTypeInfo* This,UINT index,VARDESC *pVarDesc) {
1127     return This->lpVtbl->AddVarDesc(This,index,pVarDesc);
1128 }
1129 static FORCEINLINE HRESULT ICreateTypeInfo_SetFuncAndParamNames(ICreateTypeInfo* This,UINT index,LPOLESTR *rgszNames,UINT cNames) {
1130     return This->lpVtbl->SetFuncAndParamNames(This,index,rgszNames,cNames);
1131 }
1132 static FORCEINLINE HRESULT ICreateTypeInfo_SetVarName(ICreateTypeInfo* This,UINT index,LPOLESTR szName) {
1133     return This->lpVtbl->SetVarName(This,index,szName);
1134 }
1135 static FORCEINLINE HRESULT ICreateTypeInfo_SetTypeDescAlias(ICreateTypeInfo* This,TYPEDESC *pTDescAlias) {
1136     return This->lpVtbl->SetTypeDescAlias(This,pTDescAlias);
1137 }
1138 static FORCEINLINE HRESULT ICreateTypeInfo_DefineFuncAsDllEntry(ICreateTypeInfo* This,UINT index,LPOLESTR szDllName,LPOLESTR szProcName) {
1139     return This->lpVtbl->DefineFuncAsDllEntry(This,index,szDllName,szProcName);
1140 }
1141 static FORCEINLINE HRESULT ICreateTypeInfo_SetFuncDocString(ICreateTypeInfo* This,UINT index,LPOLESTR szDocString) {
1142     return This->lpVtbl->SetFuncDocString(This,index,szDocString);
1143 }
1144 static FORCEINLINE HRESULT ICreateTypeInfo_SetVarDocString(ICreateTypeInfo* This,UINT index,LPOLESTR szDocString) {
1145     return This->lpVtbl->SetVarDocString(This,index,szDocString);
1146 }
1147 static FORCEINLINE HRESULT ICreateTypeInfo_SetFuncHelpContext(ICreateTypeInfo* This,UINT index,DWORD dwHelpContext) {
1148     return This->lpVtbl->SetFuncHelpContext(This,index,dwHelpContext);
1149 }
1150 static FORCEINLINE HRESULT ICreateTypeInfo_SetVarHelpContext(ICreateTypeInfo* This,UINT index,DWORD dwHelpContext) {
1151     return This->lpVtbl->SetVarHelpContext(This,index,dwHelpContext);
1152 }
1153 static FORCEINLINE HRESULT ICreateTypeInfo_SetMops(ICreateTypeInfo* This,UINT index,BSTR bstrMops) {
1154     return This->lpVtbl->SetMops(This,index,bstrMops);
1155 }
1156 static FORCEINLINE HRESULT ICreateTypeInfo_SetTypeIdldesc(ICreateTypeInfo* This,IDLDESC *pIdlDesc) {
1157     return This->lpVtbl->SetTypeIdldesc(This,pIdlDesc);
1158 }
1159 static FORCEINLINE HRESULT ICreateTypeInfo_LayOut(ICreateTypeInfo* This) {
1160     return This->lpVtbl->LayOut(This);
1161 }
1162 #endif
1163 #endif
1164 
1165 #endif
1166 
1167 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetGuid_Proxy(
1168     ICreateTypeInfo* This,
1169     REFGUID guid);
1170 void __RPC_STUB ICreateTypeInfo_SetGuid_Stub(
1171     IRpcStubBuffer* This,
1172     IRpcChannelBuffer* pRpcChannelBuffer,
1173     PRPC_MESSAGE pRpcMessage,
1174     DWORD* pdwStubPhase);
1175 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetTypeFlags_Proxy(
1176     ICreateTypeInfo* This,
1177     UINT uTypeFlags);
1178 void __RPC_STUB ICreateTypeInfo_SetTypeFlags_Stub(
1179     IRpcStubBuffer* This,
1180     IRpcChannelBuffer* pRpcChannelBuffer,
1181     PRPC_MESSAGE pRpcMessage,
1182     DWORD* pdwStubPhase);
1183 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetDocString_Proxy(
1184     ICreateTypeInfo* This,
1185     LPOLESTR pStrDoc);
1186 void __RPC_STUB ICreateTypeInfo_SetDocString_Stub(
1187     IRpcStubBuffer* This,
1188     IRpcChannelBuffer* pRpcChannelBuffer,
1189     PRPC_MESSAGE pRpcMessage,
1190     DWORD* pdwStubPhase);
1191 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetHelpContext_Proxy(
1192     ICreateTypeInfo* This,
1193     DWORD dwHelpContext);
1194 void __RPC_STUB ICreateTypeInfo_SetHelpContext_Stub(
1195     IRpcStubBuffer* This,
1196     IRpcChannelBuffer* pRpcChannelBuffer,
1197     PRPC_MESSAGE pRpcMessage,
1198     DWORD* pdwStubPhase);
1199 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetVersion_Proxy(
1200     ICreateTypeInfo* This,
1201     WORD wMajorVerNum,
1202     WORD wMinorVerNum);
1203 void __RPC_STUB ICreateTypeInfo_SetVersion_Stub(
1204     IRpcStubBuffer* This,
1205     IRpcChannelBuffer* pRpcChannelBuffer,
1206     PRPC_MESSAGE pRpcMessage,
1207     DWORD* pdwStubPhase);
1208 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_AddRefTypeInfo_Proxy(
1209     ICreateTypeInfo* This,
1210     ITypeInfo *pTInfo,
1211     HREFTYPE *phRefType);
1212 void __RPC_STUB ICreateTypeInfo_AddRefTypeInfo_Stub(
1213     IRpcStubBuffer* This,
1214     IRpcChannelBuffer* pRpcChannelBuffer,
1215     PRPC_MESSAGE pRpcMessage,
1216     DWORD* pdwStubPhase);
1217 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_AddFuncDesc_Proxy(
1218     ICreateTypeInfo* This,
1219     UINT index,
1220     FUNCDESC *pFuncDesc);
1221 void __RPC_STUB ICreateTypeInfo_AddFuncDesc_Stub(
1222     IRpcStubBuffer* This,
1223     IRpcChannelBuffer* pRpcChannelBuffer,
1224     PRPC_MESSAGE pRpcMessage,
1225     DWORD* pdwStubPhase);
1226 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_AddImplType_Proxy(
1227     ICreateTypeInfo* This,
1228     UINT index,
1229     HREFTYPE hRefType);
1230 void __RPC_STUB ICreateTypeInfo_AddImplType_Stub(
1231     IRpcStubBuffer* This,
1232     IRpcChannelBuffer* pRpcChannelBuffer,
1233     PRPC_MESSAGE pRpcMessage,
1234     DWORD* pdwStubPhase);
1235 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetImplTypeFlags_Proxy(
1236     ICreateTypeInfo* This,
1237     UINT index,
1238     INT implTypeFlags);
1239 void __RPC_STUB ICreateTypeInfo_SetImplTypeFlags_Stub(
1240     IRpcStubBuffer* This,
1241     IRpcChannelBuffer* pRpcChannelBuffer,
1242     PRPC_MESSAGE pRpcMessage,
1243     DWORD* pdwStubPhase);
1244 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetAlignment_Proxy(
1245     ICreateTypeInfo* This,
1246     WORD cbAlignment);
1247 void __RPC_STUB ICreateTypeInfo_SetAlignment_Stub(
1248     IRpcStubBuffer* This,
1249     IRpcChannelBuffer* pRpcChannelBuffer,
1250     PRPC_MESSAGE pRpcMessage,
1251     DWORD* pdwStubPhase);
1252 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetSchema_Proxy(
1253     ICreateTypeInfo* This,
1254     LPOLESTR pStrSchema);
1255 void __RPC_STUB ICreateTypeInfo_SetSchema_Stub(
1256     IRpcStubBuffer* This,
1257     IRpcChannelBuffer* pRpcChannelBuffer,
1258     PRPC_MESSAGE pRpcMessage,
1259     DWORD* pdwStubPhase);
1260 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_AddVarDesc_Proxy(
1261     ICreateTypeInfo* This,
1262     UINT index,
1263     VARDESC *pVarDesc);
1264 void __RPC_STUB ICreateTypeInfo_AddVarDesc_Stub(
1265     IRpcStubBuffer* This,
1266     IRpcChannelBuffer* pRpcChannelBuffer,
1267     PRPC_MESSAGE pRpcMessage,
1268     DWORD* pdwStubPhase);
1269 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetFuncAndParamNames_Proxy(
1270     ICreateTypeInfo* This,
1271     UINT index,
1272     LPOLESTR *rgszNames,
1273     UINT cNames);
1274 void __RPC_STUB ICreateTypeInfo_SetFuncAndParamNames_Stub(
1275     IRpcStubBuffer* This,
1276     IRpcChannelBuffer* pRpcChannelBuffer,
1277     PRPC_MESSAGE pRpcMessage,
1278     DWORD* pdwStubPhase);
1279 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetVarName_Proxy(
1280     ICreateTypeInfo* This,
1281     UINT index,
1282     LPOLESTR szName);
1283 void __RPC_STUB ICreateTypeInfo_SetVarName_Stub(
1284     IRpcStubBuffer* This,
1285     IRpcChannelBuffer* pRpcChannelBuffer,
1286     PRPC_MESSAGE pRpcMessage,
1287     DWORD* pdwStubPhase);
1288 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetTypeDescAlias_Proxy(
1289     ICreateTypeInfo* This,
1290     TYPEDESC *pTDescAlias);
1291 void __RPC_STUB ICreateTypeInfo_SetTypeDescAlias_Stub(
1292     IRpcStubBuffer* This,
1293     IRpcChannelBuffer* pRpcChannelBuffer,
1294     PRPC_MESSAGE pRpcMessage,
1295     DWORD* pdwStubPhase);
1296 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_DefineFuncAsDllEntry_Proxy(
1297     ICreateTypeInfo* This,
1298     UINT index,
1299     LPOLESTR szDllName,
1300     LPOLESTR szProcName);
1301 void __RPC_STUB ICreateTypeInfo_DefineFuncAsDllEntry_Stub(
1302     IRpcStubBuffer* This,
1303     IRpcChannelBuffer* pRpcChannelBuffer,
1304     PRPC_MESSAGE pRpcMessage,
1305     DWORD* pdwStubPhase);
1306 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetFuncDocString_Proxy(
1307     ICreateTypeInfo* This,
1308     UINT index,
1309     LPOLESTR szDocString);
1310 void __RPC_STUB ICreateTypeInfo_SetFuncDocString_Stub(
1311     IRpcStubBuffer* This,
1312     IRpcChannelBuffer* pRpcChannelBuffer,
1313     PRPC_MESSAGE pRpcMessage,
1314     DWORD* pdwStubPhase);
1315 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetVarDocString_Proxy(
1316     ICreateTypeInfo* This,
1317     UINT index,
1318     LPOLESTR szDocString);
1319 void __RPC_STUB ICreateTypeInfo_SetVarDocString_Stub(
1320     IRpcStubBuffer* This,
1321     IRpcChannelBuffer* pRpcChannelBuffer,
1322     PRPC_MESSAGE pRpcMessage,
1323     DWORD* pdwStubPhase);
1324 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetFuncHelpContext_Proxy(
1325     ICreateTypeInfo* This,
1326     UINT index,
1327     DWORD dwHelpContext);
1328 void __RPC_STUB ICreateTypeInfo_SetFuncHelpContext_Stub(
1329     IRpcStubBuffer* This,
1330     IRpcChannelBuffer* pRpcChannelBuffer,
1331     PRPC_MESSAGE pRpcMessage,
1332     DWORD* pdwStubPhase);
1333 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetVarHelpContext_Proxy(
1334     ICreateTypeInfo* This,
1335     UINT index,
1336     DWORD dwHelpContext);
1337 void __RPC_STUB ICreateTypeInfo_SetVarHelpContext_Stub(
1338     IRpcStubBuffer* This,
1339     IRpcChannelBuffer* pRpcChannelBuffer,
1340     PRPC_MESSAGE pRpcMessage,
1341     DWORD* pdwStubPhase);
1342 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetMops_Proxy(
1343     ICreateTypeInfo* This,
1344     UINT index,
1345     BSTR bstrMops);
1346 void __RPC_STUB ICreateTypeInfo_SetMops_Stub(
1347     IRpcStubBuffer* This,
1348     IRpcChannelBuffer* pRpcChannelBuffer,
1349     PRPC_MESSAGE pRpcMessage,
1350     DWORD* pdwStubPhase);
1351 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetTypeIdldesc_Proxy(
1352     ICreateTypeInfo* This,
1353     IDLDESC *pIdlDesc);
1354 void __RPC_STUB ICreateTypeInfo_SetTypeIdldesc_Stub(
1355     IRpcStubBuffer* This,
1356     IRpcChannelBuffer* pRpcChannelBuffer,
1357     PRPC_MESSAGE pRpcMessage,
1358     DWORD* pdwStubPhase);
1359 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_LayOut_Proxy(
1360     ICreateTypeInfo* This);
1361 void __RPC_STUB ICreateTypeInfo_LayOut_Stub(
1362     IRpcStubBuffer* This,
1363     IRpcChannelBuffer* pRpcChannelBuffer,
1364     PRPC_MESSAGE pRpcMessage,
1365     DWORD* pdwStubPhase);
1366 
1367 #endif  /* __ICreateTypeInfo_INTERFACE_DEFINED__ */
1368 
1369 
1370 /*****************************************************************************
1371  * ICreateTypeInfo2 interface
1372  */
1373 #ifndef __ICreateTypeInfo2_INTERFACE_DEFINED__
1374 #define __ICreateTypeInfo2_INTERFACE_DEFINED__
1375 
1376 typedef ICreateTypeInfo2 *LPCREATETYPEINFO2;
1377 
1378 DEFINE_GUID(IID_ICreateTypeInfo2, 0x0002040e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1379 #if defined(__cplusplus) && !defined(CINTERFACE)
1380 MIDL_INTERFACE("0002040e-0000-0000-c000-000000000046")
1381 ICreateTypeInfo2 : public ICreateTypeInfo
1382 {
1383     virtual HRESULT STDMETHODCALLTYPE DeleteFuncDesc(
1384         UINT index) = 0;
1385 
1386     virtual HRESULT STDMETHODCALLTYPE DeleteFuncDescByMemId(
1387         MEMBERID memid,
1388         INVOKEKIND invKind) = 0;
1389 
1390     virtual HRESULT STDMETHODCALLTYPE DeleteVarDesc(
1391         UINT index) = 0;
1392 
1393     virtual HRESULT STDMETHODCALLTYPE DeleteVarDescByMemId(
1394         MEMBERID memid) = 0;
1395 
1396     virtual HRESULT STDMETHODCALLTYPE DeleteImplType(
1397         UINT index) = 0;
1398 
1399     virtual HRESULT STDMETHODCALLTYPE SetCustData(
1400         REFGUID guid,
1401         VARIANT *pVarVal) = 0;
1402 
1403     virtual HRESULT STDMETHODCALLTYPE SetFuncCustData(
1404         UINT index,
1405         REFGUID guid,
1406         VARIANT *pVarVal) = 0;
1407 
1408     virtual HRESULT STDMETHODCALLTYPE SetParamCustData(
1409         UINT indexFunc,
1410         UINT indexParam,
1411         REFGUID guid,
1412         VARIANT *pVarVal) = 0;
1413 
1414     virtual HRESULT STDMETHODCALLTYPE SetVarCustData(
1415         UINT index,
1416         REFGUID guid,
1417         VARIANT *pVarVal) = 0;
1418 
1419     virtual HRESULT STDMETHODCALLTYPE SetImplTypeCustData(
1420         UINT index,
1421         REFGUID guid,
1422         VARIANT *pVarVal) = 0;
1423 
1424     virtual HRESULT STDMETHODCALLTYPE SetHelpStringContext(
1425         ULONG dwHelpStringContext) = 0;
1426 
1427     virtual HRESULT STDMETHODCALLTYPE SetFuncHelpStringContext(
1428         UINT index,
1429         ULONG dwHelpStringContext) = 0;
1430 
1431     virtual HRESULT STDMETHODCALLTYPE SetVarHelpStringContext(
1432         UINT index,
1433         ULONG dwHelpStringContext) = 0;
1434 
1435     virtual HRESULT STDMETHODCALLTYPE Invalidate(
1436         ) = 0;
1437 
1438     virtual HRESULT STDMETHODCALLTYPE SetName(
1439         LPOLESTR szName) = 0;
1440 
1441 };
1442 #ifdef __CRT_UUID_DECL
1443 __CRT_UUID_DECL(ICreateTypeInfo2, 0x0002040e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1444 #endif
1445 #else
1446 typedef struct ICreateTypeInfo2Vtbl {
1447     BEGIN_INTERFACE
1448 
1449     /*** IUnknown methods ***/
1450     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1451         ICreateTypeInfo2* This,
1452         REFIID riid,
1453         void **ppvObject);
1454 
1455     ULONG (STDMETHODCALLTYPE *AddRef)(
1456         ICreateTypeInfo2* This);
1457 
1458     ULONG (STDMETHODCALLTYPE *Release)(
1459         ICreateTypeInfo2* This);
1460 
1461     /*** ICreateTypeInfo methods ***/
1462     HRESULT (STDMETHODCALLTYPE *SetGuid)(
1463         ICreateTypeInfo2* This,
1464         REFGUID guid);
1465 
1466     HRESULT (STDMETHODCALLTYPE *SetTypeFlags)(
1467         ICreateTypeInfo2* This,
1468         UINT uTypeFlags);
1469 
1470     HRESULT (STDMETHODCALLTYPE *SetDocString)(
1471         ICreateTypeInfo2* This,
1472         LPOLESTR pStrDoc);
1473 
1474     HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
1475         ICreateTypeInfo2* This,
1476         DWORD dwHelpContext);
1477 
1478     HRESULT (STDMETHODCALLTYPE *SetVersion)(
1479         ICreateTypeInfo2* This,
1480         WORD wMajorVerNum,
1481         WORD wMinorVerNum);
1482 
1483     HRESULT (STDMETHODCALLTYPE *AddRefTypeInfo)(
1484         ICreateTypeInfo2* This,
1485         ITypeInfo *pTInfo,
1486         HREFTYPE *phRefType);
1487 
1488     HRESULT (STDMETHODCALLTYPE *AddFuncDesc)(
1489         ICreateTypeInfo2* This,
1490         UINT index,
1491         FUNCDESC *pFuncDesc);
1492 
1493     HRESULT (STDMETHODCALLTYPE *AddImplType)(
1494         ICreateTypeInfo2* This,
1495         UINT index,
1496         HREFTYPE hRefType);
1497 
1498     HRESULT (STDMETHODCALLTYPE *SetImplTypeFlags)(
1499         ICreateTypeInfo2* This,
1500         UINT index,
1501         INT implTypeFlags);
1502 
1503     HRESULT (STDMETHODCALLTYPE *SetAlignment)(
1504         ICreateTypeInfo2* This,
1505         WORD cbAlignment);
1506 
1507     HRESULT (STDMETHODCALLTYPE *SetSchema)(
1508         ICreateTypeInfo2* This,
1509         LPOLESTR pStrSchema);
1510 
1511     HRESULT (STDMETHODCALLTYPE *AddVarDesc)(
1512         ICreateTypeInfo2* This,
1513         UINT index,
1514         VARDESC *pVarDesc);
1515 
1516     HRESULT (STDMETHODCALLTYPE *SetFuncAndParamNames)(
1517         ICreateTypeInfo2* This,
1518         UINT index,
1519         LPOLESTR *rgszNames,
1520         UINT cNames);
1521 
1522     HRESULT (STDMETHODCALLTYPE *SetVarName)(
1523         ICreateTypeInfo2* This,
1524         UINT index,
1525         LPOLESTR szName);
1526 
1527     HRESULT (STDMETHODCALLTYPE *SetTypeDescAlias)(
1528         ICreateTypeInfo2* This,
1529         TYPEDESC *pTDescAlias);
1530 
1531     HRESULT (STDMETHODCALLTYPE *DefineFuncAsDllEntry)(
1532         ICreateTypeInfo2* This,
1533         UINT index,
1534         LPOLESTR szDllName,
1535         LPOLESTR szProcName);
1536 
1537     HRESULT (STDMETHODCALLTYPE *SetFuncDocString)(
1538         ICreateTypeInfo2* This,
1539         UINT index,
1540         LPOLESTR szDocString);
1541 
1542     HRESULT (STDMETHODCALLTYPE *SetVarDocString)(
1543         ICreateTypeInfo2* This,
1544         UINT index,
1545         LPOLESTR szDocString);
1546 
1547     HRESULT (STDMETHODCALLTYPE *SetFuncHelpContext)(
1548         ICreateTypeInfo2* This,
1549         UINT index,
1550         DWORD dwHelpContext);
1551 
1552     HRESULT (STDMETHODCALLTYPE *SetVarHelpContext)(
1553         ICreateTypeInfo2* This,
1554         UINT index,
1555         DWORD dwHelpContext);
1556 
1557     HRESULT (STDMETHODCALLTYPE *SetMops)(
1558         ICreateTypeInfo2* This,
1559         UINT index,
1560         BSTR bstrMops);
1561 
1562     HRESULT (STDMETHODCALLTYPE *SetTypeIdldesc)(
1563         ICreateTypeInfo2* This,
1564         IDLDESC *pIdlDesc);
1565 
1566     HRESULT (STDMETHODCALLTYPE *LayOut)(
1567         ICreateTypeInfo2* This);
1568 
1569     /*** ICreateTypeInfo2 methods ***/
1570     HRESULT (STDMETHODCALLTYPE *DeleteFuncDesc)(
1571         ICreateTypeInfo2* This,
1572         UINT index);
1573 
1574     HRESULT (STDMETHODCALLTYPE *DeleteFuncDescByMemId)(
1575         ICreateTypeInfo2* This,
1576         MEMBERID memid,
1577         INVOKEKIND invKind);
1578 
1579     HRESULT (STDMETHODCALLTYPE *DeleteVarDesc)(
1580         ICreateTypeInfo2* This,
1581         UINT index);
1582 
1583     HRESULT (STDMETHODCALLTYPE *DeleteVarDescByMemId)(
1584         ICreateTypeInfo2* This,
1585         MEMBERID memid);
1586 
1587     HRESULT (STDMETHODCALLTYPE *DeleteImplType)(
1588         ICreateTypeInfo2* This,
1589         UINT index);
1590 
1591     HRESULT (STDMETHODCALLTYPE *SetCustData)(
1592         ICreateTypeInfo2* This,
1593         REFGUID guid,
1594         VARIANT *pVarVal);
1595 
1596     HRESULT (STDMETHODCALLTYPE *SetFuncCustData)(
1597         ICreateTypeInfo2* This,
1598         UINT index,
1599         REFGUID guid,
1600         VARIANT *pVarVal);
1601 
1602     HRESULT (STDMETHODCALLTYPE *SetParamCustData)(
1603         ICreateTypeInfo2* This,
1604         UINT indexFunc,
1605         UINT indexParam,
1606         REFGUID guid,
1607         VARIANT *pVarVal);
1608 
1609     HRESULT (STDMETHODCALLTYPE *SetVarCustData)(
1610         ICreateTypeInfo2* This,
1611         UINT index,
1612         REFGUID guid,
1613         VARIANT *pVarVal);
1614 
1615     HRESULT (STDMETHODCALLTYPE *SetImplTypeCustData)(
1616         ICreateTypeInfo2* This,
1617         UINT index,
1618         REFGUID guid,
1619         VARIANT *pVarVal);
1620 
1621     HRESULT (STDMETHODCALLTYPE *SetHelpStringContext)(
1622         ICreateTypeInfo2* This,
1623         ULONG dwHelpStringContext);
1624 
1625     HRESULT (STDMETHODCALLTYPE *SetFuncHelpStringContext)(
1626         ICreateTypeInfo2* This,
1627         UINT index,
1628         ULONG dwHelpStringContext);
1629 
1630     HRESULT (STDMETHODCALLTYPE *SetVarHelpStringContext)(
1631         ICreateTypeInfo2* This,
1632         UINT index,
1633         ULONG dwHelpStringContext);
1634 
1635     HRESULT (STDMETHODCALLTYPE *Invalidate)(
1636         ICreateTypeInfo2* This);
1637 
1638     HRESULT (STDMETHODCALLTYPE *SetName)(
1639         ICreateTypeInfo2* This,
1640         LPOLESTR szName);
1641 
1642     END_INTERFACE
1643 } ICreateTypeInfo2Vtbl;
1644 interface ICreateTypeInfo2 {
1645     CONST_VTBL ICreateTypeInfo2Vtbl* lpVtbl;
1646 };
1647 
1648 #ifdef COBJMACROS
1649 #ifndef WIDL_C_INLINE_WRAPPERS
1650 /*** IUnknown methods ***/
1651 #define ICreateTypeInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1652 #define ICreateTypeInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
1653 #define ICreateTypeInfo2_Release(This) (This)->lpVtbl->Release(This)
1654 /*** ICreateTypeInfo methods ***/
1655 #define ICreateTypeInfo2_SetGuid(This,guid) (This)->lpVtbl->SetGuid(This,guid)
1656 #define ICreateTypeInfo2_SetTypeFlags(This,uTypeFlags) (This)->lpVtbl->SetTypeFlags(This,uTypeFlags)
1657 #define ICreateTypeInfo2_SetDocString(This,pStrDoc) (This)->lpVtbl->SetDocString(This,pStrDoc)
1658 #define ICreateTypeInfo2_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
1659 #define ICreateTypeInfo2_SetVersion(This,wMajorVerNum,wMinorVerNum) (This)->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum)
1660 #define ICreateTypeInfo2_AddRefTypeInfo(This,pTInfo,phRefType) (This)->lpVtbl->AddRefTypeInfo(This,pTInfo,phRefType)
1661 #define ICreateTypeInfo2_AddFuncDesc(This,index,pFuncDesc) (This)->lpVtbl->AddFuncDesc(This,index,pFuncDesc)
1662 #define ICreateTypeInfo2_AddImplType(This,index,hRefType) (This)->lpVtbl->AddImplType(This,index,hRefType)
1663 #define ICreateTypeInfo2_SetImplTypeFlags(This,index,implTypeFlags) (This)->lpVtbl->SetImplTypeFlags(This,index,implTypeFlags)
1664 #define ICreateTypeInfo2_SetAlignment(This,cbAlignment) (This)->lpVtbl->SetAlignment(This,cbAlignment)
1665 #define ICreateTypeInfo2_SetSchema(This,pStrSchema) (This)->lpVtbl->SetSchema(This,pStrSchema)
1666 #define ICreateTypeInfo2_AddVarDesc(This,index,pVarDesc) (This)->lpVtbl->AddVarDesc(This,index,pVarDesc)
1667 #define ICreateTypeInfo2_SetFuncAndParamNames(This,index,rgszNames,cNames) (This)->lpVtbl->SetFuncAndParamNames(This,index,rgszNames,cNames)
1668 #define ICreateTypeInfo2_SetVarName(This,index,szName) (This)->lpVtbl->SetVarName(This,index,szName)
1669 #define ICreateTypeInfo2_SetTypeDescAlias(This,pTDescAlias) (This)->lpVtbl->SetTypeDescAlias(This,pTDescAlias)
1670 #define ICreateTypeInfo2_DefineFuncAsDllEntry(This,index,szDllName,szProcName) (This)->lpVtbl->DefineFuncAsDllEntry(This,index,szDllName,szProcName)
1671 #define ICreateTypeInfo2_SetFuncDocString(This,index,szDocString) (This)->lpVtbl->SetFuncDocString(This,index,szDocString)
1672 #define ICreateTypeInfo2_SetVarDocString(This,index,szDocString) (This)->lpVtbl->SetVarDocString(This,index,szDocString)
1673 #define ICreateTypeInfo2_SetFuncHelpContext(This,index,dwHelpContext) (This)->lpVtbl->SetFuncHelpContext(This,index,dwHelpContext)
1674 #define ICreateTypeInfo2_SetVarHelpContext(This,index,dwHelpContext) (This)->lpVtbl->SetVarHelpContext(This,index,dwHelpContext)
1675 #define ICreateTypeInfo2_SetMops(This,index,bstrMops) (This)->lpVtbl->SetMops(This,index,bstrMops)
1676 #define ICreateTypeInfo2_SetTypeIdldesc(This,pIdlDesc) (This)->lpVtbl->SetTypeIdldesc(This,pIdlDesc)
1677 #define ICreateTypeInfo2_LayOut(This) (This)->lpVtbl->LayOut(This)
1678 /*** ICreateTypeInfo2 methods ***/
1679 #define ICreateTypeInfo2_DeleteFuncDesc(This,index) (This)->lpVtbl->DeleteFuncDesc(This,index)
1680 #define ICreateTypeInfo2_DeleteFuncDescByMemId(This,memid,invKind) (This)->lpVtbl->DeleteFuncDescByMemId(This,memid,invKind)
1681 #define ICreateTypeInfo2_DeleteVarDesc(This,index) (This)->lpVtbl->DeleteVarDesc(This,index)
1682 #define ICreateTypeInfo2_DeleteVarDescByMemId(This,memid) (This)->lpVtbl->DeleteVarDescByMemId(This,memid)
1683 #define ICreateTypeInfo2_DeleteImplType(This,index) (This)->lpVtbl->DeleteImplType(This,index)
1684 #define ICreateTypeInfo2_SetCustData(This,guid,pVarVal) (This)->lpVtbl->SetCustData(This,guid,pVarVal)
1685 #define ICreateTypeInfo2_SetFuncCustData(This,index,guid,pVarVal) (This)->lpVtbl->SetFuncCustData(This,index,guid,pVarVal)
1686 #define ICreateTypeInfo2_SetParamCustData(This,indexFunc,indexParam,guid,pVarVal) (This)->lpVtbl->SetParamCustData(This,indexFunc,indexParam,guid,pVarVal)
1687 #define ICreateTypeInfo2_SetVarCustData(This,index,guid,pVarVal) (This)->lpVtbl->SetVarCustData(This,index,guid,pVarVal)
1688 #define ICreateTypeInfo2_SetImplTypeCustData(This,index,guid,pVarVal) (This)->lpVtbl->SetImplTypeCustData(This,index,guid,pVarVal)
1689 #define ICreateTypeInfo2_SetHelpStringContext(This,dwHelpStringContext) (This)->lpVtbl->SetHelpStringContext(This,dwHelpStringContext)
1690 #define ICreateTypeInfo2_SetFuncHelpStringContext(This,index,dwHelpStringContext) (This)->lpVtbl->SetFuncHelpStringContext(This,index,dwHelpStringContext)
1691 #define ICreateTypeInfo2_SetVarHelpStringContext(This,index,dwHelpStringContext) (This)->lpVtbl->SetVarHelpStringContext(This,index,dwHelpStringContext)
1692 #define ICreateTypeInfo2_Invalidate(This) (This)->lpVtbl->Invalidate(This)
1693 #define ICreateTypeInfo2_SetName(This,szName) (This)->lpVtbl->SetName(This,szName)
1694 #else
1695 /*** IUnknown methods ***/
1696 static FORCEINLINE HRESULT ICreateTypeInfo2_QueryInterface(ICreateTypeInfo2* This,REFIID riid,void **ppvObject) {
1697     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1698 }
1699 static FORCEINLINE ULONG ICreateTypeInfo2_AddRef(ICreateTypeInfo2* This) {
1700     return This->lpVtbl->AddRef(This);
1701 }
1702 static FORCEINLINE ULONG ICreateTypeInfo2_Release(ICreateTypeInfo2* This) {
1703     return This->lpVtbl->Release(This);
1704 }
1705 /*** ICreateTypeInfo methods ***/
1706 static FORCEINLINE HRESULT ICreateTypeInfo2_SetGuid(ICreateTypeInfo2* This,REFGUID guid) {
1707     return This->lpVtbl->SetGuid(This,guid);
1708 }
1709 static FORCEINLINE HRESULT ICreateTypeInfo2_SetTypeFlags(ICreateTypeInfo2* This,UINT uTypeFlags) {
1710     return This->lpVtbl->SetTypeFlags(This,uTypeFlags);
1711 }
1712 static FORCEINLINE HRESULT ICreateTypeInfo2_SetDocString(ICreateTypeInfo2* This,LPOLESTR pStrDoc) {
1713     return This->lpVtbl->SetDocString(This,pStrDoc);
1714 }
1715 static FORCEINLINE HRESULT ICreateTypeInfo2_SetHelpContext(ICreateTypeInfo2* This,DWORD dwHelpContext) {
1716     return This->lpVtbl->SetHelpContext(This,dwHelpContext);
1717 }
1718 static FORCEINLINE HRESULT ICreateTypeInfo2_SetVersion(ICreateTypeInfo2* This,WORD wMajorVerNum,WORD wMinorVerNum) {
1719     return This->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum);
1720 }
1721 static FORCEINLINE HRESULT ICreateTypeInfo2_AddRefTypeInfo(ICreateTypeInfo2* This,ITypeInfo *pTInfo,HREFTYPE *phRefType) {
1722     return This->lpVtbl->AddRefTypeInfo(This,pTInfo,phRefType);
1723 }
1724 static FORCEINLINE HRESULT ICreateTypeInfo2_AddFuncDesc(ICreateTypeInfo2* This,UINT index,FUNCDESC *pFuncDesc) {
1725     return This->lpVtbl->AddFuncDesc(This,index,pFuncDesc);
1726 }
1727 static FORCEINLINE HRESULT ICreateTypeInfo2_AddImplType(ICreateTypeInfo2* This,UINT index,HREFTYPE hRefType) {
1728     return This->lpVtbl->AddImplType(This,index,hRefType);
1729 }
1730 static FORCEINLINE HRESULT ICreateTypeInfo2_SetImplTypeFlags(ICreateTypeInfo2* This,UINT index,INT implTypeFlags) {
1731     return This->lpVtbl->SetImplTypeFlags(This,index,implTypeFlags);
1732 }
1733 static FORCEINLINE HRESULT ICreateTypeInfo2_SetAlignment(ICreateTypeInfo2* This,WORD cbAlignment) {
1734     return This->lpVtbl->SetAlignment(This,cbAlignment);
1735 }
1736 static FORCEINLINE HRESULT ICreateTypeInfo2_SetSchema(ICreateTypeInfo2* This,LPOLESTR pStrSchema) {
1737     return This->lpVtbl->SetSchema(This,pStrSchema);
1738 }
1739 static FORCEINLINE HRESULT ICreateTypeInfo2_AddVarDesc(ICreateTypeInfo2* This,UINT index,VARDESC *pVarDesc) {
1740     return This->lpVtbl->AddVarDesc(This,index,pVarDesc);
1741 }
1742 static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncAndParamNames(ICreateTypeInfo2* This,UINT index,LPOLESTR *rgszNames,UINT cNames) {
1743     return This->lpVtbl->SetFuncAndParamNames(This,index,rgszNames,cNames);
1744 }
1745 static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarName(ICreateTypeInfo2* This,UINT index,LPOLESTR szName) {
1746     return This->lpVtbl->SetVarName(This,index,szName);
1747 }
1748 static FORCEINLINE HRESULT ICreateTypeInfo2_SetTypeDescAlias(ICreateTypeInfo2* This,TYPEDESC *pTDescAlias) {
1749     return This->lpVtbl->SetTypeDescAlias(This,pTDescAlias);
1750 }
1751 static FORCEINLINE HRESULT ICreateTypeInfo2_DefineFuncAsDllEntry(ICreateTypeInfo2* This,UINT index,LPOLESTR szDllName,LPOLESTR szProcName) {
1752     return This->lpVtbl->DefineFuncAsDllEntry(This,index,szDllName,szProcName);
1753 }
1754 static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncDocString(ICreateTypeInfo2* This,UINT index,LPOLESTR szDocString) {
1755     return This->lpVtbl->SetFuncDocString(This,index,szDocString);
1756 }
1757 static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarDocString(ICreateTypeInfo2* This,UINT index,LPOLESTR szDocString) {
1758     return This->lpVtbl->SetVarDocString(This,index,szDocString);
1759 }
1760 static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncHelpContext(ICreateTypeInfo2* This,UINT index,DWORD dwHelpContext) {
1761     return This->lpVtbl->SetFuncHelpContext(This,index,dwHelpContext);
1762 }
1763 static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarHelpContext(ICreateTypeInfo2* This,UINT index,DWORD dwHelpContext) {
1764     return This->lpVtbl->SetVarHelpContext(This,index,dwHelpContext);
1765 }
1766 static FORCEINLINE HRESULT ICreateTypeInfo2_SetMops(ICreateTypeInfo2* This,UINT index,BSTR bstrMops) {
1767     return This->lpVtbl->SetMops(This,index,bstrMops);
1768 }
1769 static FORCEINLINE HRESULT ICreateTypeInfo2_SetTypeIdldesc(ICreateTypeInfo2* This,IDLDESC *pIdlDesc) {
1770     return This->lpVtbl->SetTypeIdldesc(This,pIdlDesc);
1771 }
1772 static FORCEINLINE HRESULT ICreateTypeInfo2_LayOut(ICreateTypeInfo2* This) {
1773     return This->lpVtbl->LayOut(This);
1774 }
1775 /*** ICreateTypeInfo2 methods ***/
1776 static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteFuncDesc(ICreateTypeInfo2* This,UINT index) {
1777     return This->lpVtbl->DeleteFuncDesc(This,index);
1778 }
1779 static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteFuncDescByMemId(ICreateTypeInfo2* This,MEMBERID memid,INVOKEKIND invKind) {
1780     return This->lpVtbl->DeleteFuncDescByMemId(This,memid,invKind);
1781 }
1782 static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteVarDesc(ICreateTypeInfo2* This,UINT index) {
1783     return This->lpVtbl->DeleteVarDesc(This,index);
1784 }
1785 static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteVarDescByMemId(ICreateTypeInfo2* This,MEMBERID memid) {
1786     return This->lpVtbl->DeleteVarDescByMemId(This,memid);
1787 }
1788 static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteImplType(ICreateTypeInfo2* This,UINT index) {
1789     return This->lpVtbl->DeleteImplType(This,index);
1790 }
1791 static FORCEINLINE HRESULT ICreateTypeInfo2_SetCustData(ICreateTypeInfo2* This,REFGUID guid,VARIANT *pVarVal) {
1792     return This->lpVtbl->SetCustData(This,guid,pVarVal);
1793 }
1794 static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncCustData(ICreateTypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) {
1795     return This->lpVtbl->SetFuncCustData(This,index,guid,pVarVal);
1796 }
1797 static FORCEINLINE HRESULT ICreateTypeInfo2_SetParamCustData(ICreateTypeInfo2* This,UINT indexFunc,UINT indexParam,REFGUID guid,VARIANT *pVarVal) {
1798     return This->lpVtbl->SetParamCustData(This,indexFunc,indexParam,guid,pVarVal);
1799 }
1800 static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarCustData(ICreateTypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) {
1801     return This->lpVtbl->SetVarCustData(This,index,guid,pVarVal);
1802 }
1803 static FORCEINLINE HRESULT ICreateTypeInfo2_SetImplTypeCustData(ICreateTypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) {
1804     return This->lpVtbl->SetImplTypeCustData(This,index,guid,pVarVal);
1805 }
1806 static FORCEINLINE HRESULT ICreateTypeInfo2_SetHelpStringContext(ICreateTypeInfo2* This,ULONG dwHelpStringContext) {
1807     return This->lpVtbl->SetHelpStringContext(This,dwHelpStringContext);
1808 }
1809 static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncHelpStringContext(ICreateTypeInfo2* This,UINT index,ULONG dwHelpStringContext) {
1810     return This->lpVtbl->SetFuncHelpStringContext(This,index,dwHelpStringContext);
1811 }
1812 static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarHelpStringContext(ICreateTypeInfo2* This,UINT index,ULONG dwHelpStringContext) {
1813     return This->lpVtbl->SetVarHelpStringContext(This,index,dwHelpStringContext);
1814 }
1815 static FORCEINLINE HRESULT ICreateTypeInfo2_Invalidate(ICreateTypeInfo2* This) {
1816     return This->lpVtbl->Invalidate(This);
1817 }
1818 static FORCEINLINE HRESULT ICreateTypeInfo2_SetName(ICreateTypeInfo2* This,LPOLESTR szName) {
1819     return This->lpVtbl->SetName(This,szName);
1820 }
1821 #endif
1822 #endif
1823 
1824 #endif
1825 
1826 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_DeleteFuncDesc_Proxy(
1827     ICreateTypeInfo2* This,
1828     UINT index);
1829 void __RPC_STUB ICreateTypeInfo2_DeleteFuncDesc_Stub(
1830     IRpcStubBuffer* This,
1831     IRpcChannelBuffer* pRpcChannelBuffer,
1832     PRPC_MESSAGE pRpcMessage,
1833     DWORD* pdwStubPhase);
1834 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_DeleteFuncDescByMemId_Proxy(
1835     ICreateTypeInfo2* This,
1836     MEMBERID memid,
1837     INVOKEKIND invKind);
1838 void __RPC_STUB ICreateTypeInfo2_DeleteFuncDescByMemId_Stub(
1839     IRpcStubBuffer* This,
1840     IRpcChannelBuffer* pRpcChannelBuffer,
1841     PRPC_MESSAGE pRpcMessage,
1842     DWORD* pdwStubPhase);
1843 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_DeleteVarDesc_Proxy(
1844     ICreateTypeInfo2* This,
1845     UINT index);
1846 void __RPC_STUB ICreateTypeInfo2_DeleteVarDesc_Stub(
1847     IRpcStubBuffer* This,
1848     IRpcChannelBuffer* pRpcChannelBuffer,
1849     PRPC_MESSAGE pRpcMessage,
1850     DWORD* pdwStubPhase);
1851 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_DeleteVarDescByMemId_Proxy(
1852     ICreateTypeInfo2* This,
1853     MEMBERID memid);
1854 void __RPC_STUB ICreateTypeInfo2_DeleteVarDescByMemId_Stub(
1855     IRpcStubBuffer* This,
1856     IRpcChannelBuffer* pRpcChannelBuffer,
1857     PRPC_MESSAGE pRpcMessage,
1858     DWORD* pdwStubPhase);
1859 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_DeleteImplType_Proxy(
1860     ICreateTypeInfo2* This,
1861     UINT index);
1862 void __RPC_STUB ICreateTypeInfo2_DeleteImplType_Stub(
1863     IRpcStubBuffer* This,
1864     IRpcChannelBuffer* pRpcChannelBuffer,
1865     PRPC_MESSAGE pRpcMessage,
1866     DWORD* pdwStubPhase);
1867 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetCustData_Proxy(
1868     ICreateTypeInfo2* This,
1869     REFGUID guid,
1870     VARIANT *pVarVal);
1871 void __RPC_STUB ICreateTypeInfo2_SetCustData_Stub(
1872     IRpcStubBuffer* This,
1873     IRpcChannelBuffer* pRpcChannelBuffer,
1874     PRPC_MESSAGE pRpcMessage,
1875     DWORD* pdwStubPhase);
1876 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetFuncCustData_Proxy(
1877     ICreateTypeInfo2* This,
1878     UINT index,
1879     REFGUID guid,
1880     VARIANT *pVarVal);
1881 void __RPC_STUB ICreateTypeInfo2_SetFuncCustData_Stub(
1882     IRpcStubBuffer* This,
1883     IRpcChannelBuffer* pRpcChannelBuffer,
1884     PRPC_MESSAGE pRpcMessage,
1885     DWORD* pdwStubPhase);
1886 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetParamCustData_Proxy(
1887     ICreateTypeInfo2* This,
1888     UINT indexFunc,
1889     UINT indexParam,
1890     REFGUID guid,
1891     VARIANT *pVarVal);
1892 void __RPC_STUB ICreateTypeInfo2_SetParamCustData_Stub(
1893     IRpcStubBuffer* This,
1894     IRpcChannelBuffer* pRpcChannelBuffer,
1895     PRPC_MESSAGE pRpcMessage,
1896     DWORD* pdwStubPhase);
1897 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetVarCustData_Proxy(
1898     ICreateTypeInfo2* This,
1899     UINT index,
1900     REFGUID guid,
1901     VARIANT *pVarVal);
1902 void __RPC_STUB ICreateTypeInfo2_SetVarCustData_Stub(
1903     IRpcStubBuffer* This,
1904     IRpcChannelBuffer* pRpcChannelBuffer,
1905     PRPC_MESSAGE pRpcMessage,
1906     DWORD* pdwStubPhase);
1907 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetImplTypeCustData_Proxy(
1908     ICreateTypeInfo2* This,
1909     UINT index,
1910     REFGUID guid,
1911     VARIANT *pVarVal);
1912 void __RPC_STUB ICreateTypeInfo2_SetImplTypeCustData_Stub(
1913     IRpcStubBuffer* This,
1914     IRpcChannelBuffer* pRpcChannelBuffer,
1915     PRPC_MESSAGE pRpcMessage,
1916     DWORD* pdwStubPhase);
1917 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetHelpStringContext_Proxy(
1918     ICreateTypeInfo2* This,
1919     ULONG dwHelpStringContext);
1920 void __RPC_STUB ICreateTypeInfo2_SetHelpStringContext_Stub(
1921     IRpcStubBuffer* This,
1922     IRpcChannelBuffer* pRpcChannelBuffer,
1923     PRPC_MESSAGE pRpcMessage,
1924     DWORD* pdwStubPhase);
1925 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetFuncHelpStringContext_Proxy(
1926     ICreateTypeInfo2* This,
1927     UINT index,
1928     ULONG dwHelpStringContext);
1929 void __RPC_STUB ICreateTypeInfo2_SetFuncHelpStringContext_Stub(
1930     IRpcStubBuffer* This,
1931     IRpcChannelBuffer* pRpcChannelBuffer,
1932     PRPC_MESSAGE pRpcMessage,
1933     DWORD* pdwStubPhase);
1934 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetVarHelpStringContext_Proxy(
1935     ICreateTypeInfo2* This,
1936     UINT index,
1937     ULONG dwHelpStringContext);
1938 void __RPC_STUB ICreateTypeInfo2_SetVarHelpStringContext_Stub(
1939     IRpcStubBuffer* This,
1940     IRpcChannelBuffer* pRpcChannelBuffer,
1941     PRPC_MESSAGE pRpcMessage,
1942     DWORD* pdwStubPhase);
1943 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_Invalidate_Proxy(
1944     ICreateTypeInfo2* This);
1945 void __RPC_STUB ICreateTypeInfo2_Invalidate_Stub(
1946     IRpcStubBuffer* This,
1947     IRpcChannelBuffer* pRpcChannelBuffer,
1948     PRPC_MESSAGE pRpcMessage,
1949     DWORD* pdwStubPhase);
1950 HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetName_Proxy(
1951     ICreateTypeInfo2* This,
1952     LPOLESTR szName);
1953 void __RPC_STUB ICreateTypeInfo2_SetName_Stub(
1954     IRpcStubBuffer* This,
1955     IRpcChannelBuffer* pRpcChannelBuffer,
1956     PRPC_MESSAGE pRpcMessage,
1957     DWORD* pdwStubPhase);
1958 
1959 #endif  /* __ICreateTypeInfo2_INTERFACE_DEFINED__ */
1960 
1961 
1962 /*****************************************************************************
1963  * ICreateTypeLib interface
1964  */
1965 #ifndef __ICreateTypeLib_INTERFACE_DEFINED__
1966 #define __ICreateTypeLib_INTERFACE_DEFINED__
1967 
1968 typedef ICreateTypeLib *LPCREATETYPELIB;
1969 
1970 DEFINE_GUID(IID_ICreateTypeLib, 0x00020406, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1971 #if defined(__cplusplus) && !defined(CINTERFACE)
1972 MIDL_INTERFACE("00020406-0000-0000-c000-000000000046")
1973 ICreateTypeLib : public IUnknown
1974 {
1975     virtual HRESULT STDMETHODCALLTYPE CreateTypeInfo(
1976         LPOLESTR szName,
1977         TYPEKIND tkind,
1978         ICreateTypeInfo **ppCTInfo) = 0;
1979 
1980     virtual HRESULT STDMETHODCALLTYPE SetName(
1981         LPOLESTR szName) = 0;
1982 
1983     virtual HRESULT STDMETHODCALLTYPE SetVersion(
1984         WORD wMajorVerNum,
1985         WORD wMinorVerNum) = 0;
1986 
1987     virtual HRESULT STDMETHODCALLTYPE SetGuid(
1988         REFGUID guid) = 0;
1989 
1990     virtual HRESULT STDMETHODCALLTYPE SetDocString(
1991         LPOLESTR szDoc) = 0;
1992 
1993     virtual HRESULT STDMETHODCALLTYPE SetHelpFileName(
1994         LPOLESTR szHelpFileName) = 0;
1995 
1996     virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
1997         DWORD dwHelpContext) = 0;
1998 
1999     virtual HRESULT STDMETHODCALLTYPE SetLcid(
2000         LCID lcid) = 0;
2001 
2002     virtual HRESULT STDMETHODCALLTYPE SetLibFlags(
2003         UINT uLibFlags) = 0;
2004 
2005     virtual HRESULT STDMETHODCALLTYPE SaveAllChanges(
2006         ) = 0;
2007 
2008 };
2009 #ifdef __CRT_UUID_DECL
2010 __CRT_UUID_DECL(ICreateTypeLib, 0x00020406, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
2011 #endif
2012 #else
2013 typedef struct ICreateTypeLibVtbl {
2014     BEGIN_INTERFACE
2015 
2016     /*** IUnknown methods ***/
2017     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2018         ICreateTypeLib* This,
2019         REFIID riid,
2020         void **ppvObject);
2021 
2022     ULONG (STDMETHODCALLTYPE *AddRef)(
2023         ICreateTypeLib* This);
2024 
2025     ULONG (STDMETHODCALLTYPE *Release)(
2026         ICreateTypeLib* This);
2027 
2028     /*** ICreateTypeLib methods ***/
2029     HRESULT (STDMETHODCALLTYPE *CreateTypeInfo)(
2030         ICreateTypeLib* This,
2031         LPOLESTR szName,
2032         TYPEKIND tkind,
2033         ICreateTypeInfo **ppCTInfo);
2034 
2035     HRESULT (STDMETHODCALLTYPE *SetName)(
2036         ICreateTypeLib* This,
2037         LPOLESTR szName);
2038 
2039     HRESULT (STDMETHODCALLTYPE *SetVersion)(
2040         ICreateTypeLib* This,
2041         WORD wMajorVerNum,
2042         WORD wMinorVerNum);
2043 
2044     HRESULT (STDMETHODCALLTYPE *SetGuid)(
2045         ICreateTypeLib* This,
2046         REFGUID guid);
2047 
2048     HRESULT (STDMETHODCALLTYPE *SetDocString)(
2049         ICreateTypeLib* This,
2050         LPOLESTR szDoc);
2051 
2052     HRESULT (STDMETHODCALLTYPE *SetHelpFileName)(
2053         ICreateTypeLib* This,
2054         LPOLESTR szHelpFileName);
2055 
2056     HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
2057         ICreateTypeLib* This,
2058         DWORD dwHelpContext);
2059 
2060     HRESULT (STDMETHODCALLTYPE *SetLcid)(
2061         ICreateTypeLib* This,
2062         LCID lcid);
2063 
2064     HRESULT (STDMETHODCALLTYPE *SetLibFlags)(
2065         ICreateTypeLib* This,
2066         UINT uLibFlags);
2067 
2068     HRESULT (STDMETHODCALLTYPE *SaveAllChanges)(
2069         ICreateTypeLib* This);
2070 
2071     END_INTERFACE
2072 } ICreateTypeLibVtbl;
2073 interface ICreateTypeLib {
2074     CONST_VTBL ICreateTypeLibVtbl* lpVtbl;
2075 };
2076 
2077 #ifdef COBJMACROS
2078 #ifndef WIDL_C_INLINE_WRAPPERS
2079 /*** IUnknown methods ***/
2080 #define ICreateTypeLib_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2081 #define ICreateTypeLib_AddRef(This) (This)->lpVtbl->AddRef(This)
2082 #define ICreateTypeLib_Release(This) (This)->lpVtbl->Release(This)
2083 /*** ICreateTypeLib methods ***/
2084 #define ICreateTypeLib_CreateTypeInfo(This,szName,tkind,ppCTInfo) (This)->lpVtbl->CreateTypeInfo(This,szName,tkind,ppCTInfo)
2085 #define ICreateTypeLib_SetName(This,szName) (This)->lpVtbl->SetName(This,szName)
2086 #define ICreateTypeLib_SetVersion(This,wMajorVerNum,wMinorVerNum) (This)->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum)
2087 #define ICreateTypeLib_SetGuid(This,guid) (This)->lpVtbl->SetGuid(This,guid)
2088 #define ICreateTypeLib_SetDocString(This,szDoc) (This)->lpVtbl->SetDocString(This,szDoc)
2089 #define ICreateTypeLib_SetHelpFileName(This,szHelpFileName) (This)->lpVtbl->SetHelpFileName(This,szHelpFileName)
2090 #define ICreateTypeLib_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
2091 #define ICreateTypeLib_SetLcid(This,lcid) (This)->lpVtbl->SetLcid(This,lcid)
2092 #define ICreateTypeLib_SetLibFlags(This,uLibFlags) (This)->lpVtbl->SetLibFlags(This,uLibFlags)
2093 #define ICreateTypeLib_SaveAllChanges(This) (This)->lpVtbl->SaveAllChanges(This)
2094 #else
2095 /*** IUnknown methods ***/
2096 static FORCEINLINE HRESULT ICreateTypeLib_QueryInterface(ICreateTypeLib* This,REFIID riid,void **ppvObject) {
2097     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2098 }
2099 static FORCEINLINE ULONG ICreateTypeLib_AddRef(ICreateTypeLib* This) {
2100     return This->lpVtbl->AddRef(This);
2101 }
2102 static FORCEINLINE ULONG ICreateTypeLib_Release(ICreateTypeLib* This) {
2103     return This->lpVtbl->Release(This);
2104 }
2105 /*** ICreateTypeLib methods ***/
2106 static FORCEINLINE HRESULT ICreateTypeLib_CreateTypeInfo(ICreateTypeLib* This,LPOLESTR szName,TYPEKIND tkind,ICreateTypeInfo **ppCTInfo) {
2107     return This->lpVtbl->CreateTypeInfo(This,szName,tkind,ppCTInfo);
2108 }
2109 static FORCEINLINE HRESULT ICreateTypeLib_SetName(ICreateTypeLib* This,LPOLESTR szName) {
2110     return This->lpVtbl->SetName(This,szName);
2111 }
2112 static FORCEINLINE HRESULT ICreateTypeLib_SetVersion(ICreateTypeLib* This,WORD wMajorVerNum,WORD wMinorVerNum) {
2113     return This->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum);
2114 }
2115 static FORCEINLINE HRESULT ICreateTypeLib_SetGuid(ICreateTypeLib* This,REFGUID guid) {
2116     return This->lpVtbl->SetGuid(This,guid);
2117 }
2118 static FORCEINLINE HRESULT ICreateTypeLib_SetDocString(ICreateTypeLib* This,LPOLESTR szDoc) {
2119     return This->lpVtbl->SetDocString(This,szDoc);
2120 }
2121 static FORCEINLINE HRESULT ICreateTypeLib_SetHelpFileName(ICreateTypeLib* This,LPOLESTR szHelpFileName) {
2122     return This->lpVtbl->SetHelpFileName(This,szHelpFileName);
2123 }
2124 static FORCEINLINE HRESULT ICreateTypeLib_SetHelpContext(ICreateTypeLib* This,DWORD dwHelpContext) {
2125     return This->lpVtbl->SetHelpContext(This,dwHelpContext);
2126 }
2127 static FORCEINLINE HRESULT ICreateTypeLib_SetLcid(ICreateTypeLib* This,LCID lcid) {
2128     return This->lpVtbl->SetLcid(This,lcid);
2129 }
2130 static FORCEINLINE HRESULT ICreateTypeLib_SetLibFlags(ICreateTypeLib* This,UINT uLibFlags) {
2131     return This->lpVtbl->SetLibFlags(This,uLibFlags);
2132 }
2133 static FORCEINLINE HRESULT ICreateTypeLib_SaveAllChanges(ICreateTypeLib* This) {
2134     return This->lpVtbl->SaveAllChanges(This);
2135 }
2136 #endif
2137 #endif
2138 
2139 #endif
2140 
2141 HRESULT STDMETHODCALLTYPE ICreateTypeLib_CreateTypeInfo_Proxy(
2142     ICreateTypeLib* This,
2143     LPOLESTR szName,
2144     TYPEKIND tkind,
2145     ICreateTypeInfo **ppCTInfo);
2146 void __RPC_STUB ICreateTypeLib_CreateTypeInfo_Stub(
2147     IRpcStubBuffer* This,
2148     IRpcChannelBuffer* pRpcChannelBuffer,
2149     PRPC_MESSAGE pRpcMessage,
2150     DWORD* pdwStubPhase);
2151 HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetName_Proxy(
2152     ICreateTypeLib* This,
2153     LPOLESTR szName);
2154 void __RPC_STUB ICreateTypeLib_SetName_Stub(
2155     IRpcStubBuffer* This,
2156     IRpcChannelBuffer* pRpcChannelBuffer,
2157     PRPC_MESSAGE pRpcMessage,
2158     DWORD* pdwStubPhase);
2159 HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetVersion_Proxy(
2160     ICreateTypeLib* This,
2161     WORD wMajorVerNum,
2162     WORD wMinorVerNum);
2163 void __RPC_STUB ICreateTypeLib_SetVersion_Stub(
2164     IRpcStubBuffer* This,
2165     IRpcChannelBuffer* pRpcChannelBuffer,
2166     PRPC_MESSAGE pRpcMessage,
2167     DWORD* pdwStubPhase);
2168 HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetGuid_Proxy(
2169     ICreateTypeLib* This,
2170     REFGUID guid);
2171 void __RPC_STUB ICreateTypeLib_SetGuid_Stub(
2172     IRpcStubBuffer* This,
2173     IRpcChannelBuffer* pRpcChannelBuffer,
2174     PRPC_MESSAGE pRpcMessage,
2175     DWORD* pdwStubPhase);
2176 HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetDocString_Proxy(
2177     ICreateTypeLib* This,
2178     LPOLESTR szDoc);
2179 void __RPC_STUB ICreateTypeLib_SetDocString_Stub(
2180     IRpcStubBuffer* This,
2181     IRpcChannelBuffer* pRpcChannelBuffer,
2182     PRPC_MESSAGE pRpcMessage,
2183     DWORD* pdwStubPhase);
2184 HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetHelpFileName_Proxy(
2185     ICreateTypeLib* This,
2186     LPOLESTR szHelpFileName);
2187 void __RPC_STUB ICreateTypeLib_SetHelpFileName_Stub(
2188     IRpcStubBuffer* This,
2189     IRpcChannelBuffer* pRpcChannelBuffer,
2190     PRPC_MESSAGE pRpcMessage,
2191     DWORD* pdwStubPhase);
2192 HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetHelpContext_Proxy(
2193     ICreateTypeLib* This,
2194     DWORD dwHelpContext);
2195 void __RPC_STUB ICreateTypeLib_SetHelpContext_Stub(
2196     IRpcStubBuffer* This,
2197     IRpcChannelBuffer* pRpcChannelBuffer,
2198     PRPC_MESSAGE pRpcMessage,
2199     DWORD* pdwStubPhase);
2200 HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetLcid_Proxy(
2201     ICreateTypeLib* This,
2202     LCID lcid);
2203 void __RPC_STUB ICreateTypeLib_SetLcid_Stub(
2204     IRpcStubBuffer* This,
2205     IRpcChannelBuffer* pRpcChannelBuffer,
2206     PRPC_MESSAGE pRpcMessage,
2207     DWORD* pdwStubPhase);
2208 HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetLibFlags_Proxy(
2209     ICreateTypeLib* This,
2210     UINT uLibFlags);
2211 void __RPC_STUB ICreateTypeLib_SetLibFlags_Stub(
2212     IRpcStubBuffer* This,
2213     IRpcChannelBuffer* pRpcChannelBuffer,
2214     PRPC_MESSAGE pRpcMessage,
2215     DWORD* pdwStubPhase);
2216 HRESULT STDMETHODCALLTYPE ICreateTypeLib_SaveAllChanges_Proxy(
2217     ICreateTypeLib* This);
2218 void __RPC_STUB ICreateTypeLib_SaveAllChanges_Stub(
2219     IRpcStubBuffer* This,
2220     IRpcChannelBuffer* pRpcChannelBuffer,
2221     PRPC_MESSAGE pRpcMessage,
2222     DWORD* pdwStubPhase);
2223 
2224 #endif  /* __ICreateTypeLib_INTERFACE_DEFINED__ */
2225 
2226 
2227 /*****************************************************************************
2228  * ICreateTypeLib2 interface
2229  */
2230 #ifndef __ICreateTypeLib2_INTERFACE_DEFINED__
2231 #define __ICreateTypeLib2_INTERFACE_DEFINED__
2232 
2233 typedef ICreateTypeLib2 *LPCREATETYPELIB2;
2234 DEFINE_GUID(IID_ICreateTypeLib2, 0x0002040f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2235 #if defined(__cplusplus) && !defined(CINTERFACE)
2236 MIDL_INTERFACE("0002040f-0000-0000-c000-000000000046")
2237 ICreateTypeLib2 : public ICreateTypeLib
2238 {
2239     virtual HRESULT STDMETHODCALLTYPE DeleteTypeInfo(
2240         LPOLESTR szName) = 0;
2241 
2242     virtual HRESULT STDMETHODCALLTYPE SetCustData(
2243         REFGUID guid,
2244         VARIANT *pVarVal) = 0;
2245 
2246     virtual HRESULT STDMETHODCALLTYPE SetHelpStringContext(
2247         ULONG dwHelpStringContext) = 0;
2248 
2249     virtual HRESULT STDMETHODCALLTYPE SetHelpStringDll(
2250         LPOLESTR szFileName) = 0;
2251 
2252 };
2253 #ifdef __CRT_UUID_DECL
2254 __CRT_UUID_DECL(ICreateTypeLib2, 0x0002040f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
2255 #endif
2256 #else
2257 typedef struct ICreateTypeLib2Vtbl {
2258     BEGIN_INTERFACE
2259 
2260     /*** IUnknown methods ***/
2261     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2262         ICreateTypeLib2* This,
2263         REFIID riid,
2264         void **ppvObject);
2265 
2266     ULONG (STDMETHODCALLTYPE *AddRef)(
2267         ICreateTypeLib2* This);
2268 
2269     ULONG (STDMETHODCALLTYPE *Release)(
2270         ICreateTypeLib2* This);
2271 
2272     /*** ICreateTypeLib methods ***/
2273     HRESULT (STDMETHODCALLTYPE *CreateTypeInfo)(
2274         ICreateTypeLib2* This,
2275         LPOLESTR szName,
2276         TYPEKIND tkind,
2277         ICreateTypeInfo **ppCTInfo);
2278 
2279     HRESULT (STDMETHODCALLTYPE *SetName)(
2280         ICreateTypeLib2* This,
2281         LPOLESTR szName);
2282 
2283     HRESULT (STDMETHODCALLTYPE *SetVersion)(
2284         ICreateTypeLib2* This,
2285         WORD wMajorVerNum,
2286         WORD wMinorVerNum);
2287 
2288     HRESULT (STDMETHODCALLTYPE *SetGuid)(
2289         ICreateTypeLib2* This,
2290         REFGUID guid);
2291 
2292     HRESULT (STDMETHODCALLTYPE *SetDocString)(
2293         ICreateTypeLib2* This,
2294         LPOLESTR szDoc);
2295 
2296     HRESULT (STDMETHODCALLTYPE *SetHelpFileName)(
2297         ICreateTypeLib2* This,
2298         LPOLESTR szHelpFileName);
2299 
2300     HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
2301         ICreateTypeLib2* This,
2302         DWORD dwHelpContext);
2303 
2304     HRESULT (STDMETHODCALLTYPE *SetLcid)(
2305         ICreateTypeLib2* This,
2306         LCID lcid);
2307 
2308     HRESULT (STDMETHODCALLTYPE *SetLibFlags)(
2309         ICreateTypeLib2* This,
2310         UINT uLibFlags);
2311 
2312     HRESULT (STDMETHODCALLTYPE *SaveAllChanges)(
2313         ICreateTypeLib2* This);
2314 
2315     /*** ICreateTypeLib2 methods ***/
2316     HRESULT (STDMETHODCALLTYPE *DeleteTypeInfo)(
2317         ICreateTypeLib2* This,
2318         LPOLESTR szName);
2319 
2320     HRESULT (STDMETHODCALLTYPE *SetCustData)(
2321         ICreateTypeLib2* This,
2322         REFGUID guid,
2323         VARIANT *pVarVal);
2324 
2325     HRESULT (STDMETHODCALLTYPE *SetHelpStringContext)(
2326         ICreateTypeLib2* This,
2327         ULONG dwHelpStringContext);
2328 
2329     HRESULT (STDMETHODCALLTYPE *SetHelpStringDll)(
2330         ICreateTypeLib2* This,
2331         LPOLESTR szFileName);
2332 
2333     END_INTERFACE
2334 } ICreateTypeLib2Vtbl;
2335 interface ICreateTypeLib2 {
2336     CONST_VTBL ICreateTypeLib2Vtbl* lpVtbl;
2337 };
2338 
2339 #ifdef COBJMACROS
2340 #ifndef WIDL_C_INLINE_WRAPPERS
2341 /*** IUnknown methods ***/
2342 #define ICreateTypeLib2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2343 #define ICreateTypeLib2_AddRef(This) (This)->lpVtbl->AddRef(This)
2344 #define ICreateTypeLib2_Release(This) (This)->lpVtbl->Release(This)
2345 /*** ICreateTypeLib methods ***/
2346 #define ICreateTypeLib2_CreateTypeInfo(This,szName,tkind,ppCTInfo) (This)->lpVtbl->CreateTypeInfo(This,szName,tkind,ppCTInfo)
2347 #define ICreateTypeLib2_SetName(This,szName) (This)->lpVtbl->SetName(This,szName)
2348 #define ICreateTypeLib2_SetVersion(This,wMajorVerNum,wMinorVerNum) (This)->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum)
2349 #define ICreateTypeLib2_SetGuid(This,guid) (This)->lpVtbl->SetGuid(This,guid)
2350 #define ICreateTypeLib2_SetDocString(This,szDoc) (This)->lpVtbl->SetDocString(This,szDoc)
2351 #define ICreateTypeLib2_SetHelpFileName(This,szHelpFileName) (This)->lpVtbl->SetHelpFileName(This,szHelpFileName)
2352 #define ICreateTypeLib2_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
2353 #define ICreateTypeLib2_SetLcid(This,lcid) (This)->lpVtbl->SetLcid(This,lcid)
2354 #define ICreateTypeLib2_SetLibFlags(This,uLibFlags) (This)->lpVtbl->SetLibFlags(This,uLibFlags)
2355 #define ICreateTypeLib2_SaveAllChanges(This) (This)->lpVtbl->SaveAllChanges(This)
2356 /*** ICreateTypeLib2 methods ***/
2357 #define ICreateTypeLib2_DeleteTypeInfo(This,szName) (This)->lpVtbl->DeleteTypeInfo(This,szName)
2358 #define ICreateTypeLib2_SetCustData(This,guid,pVarVal) (This)->lpVtbl->SetCustData(This,guid,pVarVal)
2359 #define ICreateTypeLib2_SetHelpStringContext(This,dwHelpStringContext) (This)->lpVtbl->SetHelpStringContext(This,dwHelpStringContext)
2360 #define ICreateTypeLib2_SetHelpStringDll(This,szFileName) (This)->lpVtbl->SetHelpStringDll(This,szFileName)
2361 #else
2362 /*** IUnknown methods ***/
2363 static FORCEINLINE HRESULT ICreateTypeLib2_QueryInterface(ICreateTypeLib2* This,REFIID riid,void **ppvObject) {
2364     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2365 }
2366 static FORCEINLINE ULONG ICreateTypeLib2_AddRef(ICreateTypeLib2* This) {
2367     return This->lpVtbl->AddRef(This);
2368 }
2369 static FORCEINLINE ULONG ICreateTypeLib2_Release(ICreateTypeLib2* This) {
2370     return This->lpVtbl->Release(This);
2371 }
2372 /*** ICreateTypeLib methods ***/
2373 static FORCEINLINE HRESULT ICreateTypeLib2_CreateTypeInfo(ICreateTypeLib2* This,LPOLESTR szName,TYPEKIND tkind,ICreateTypeInfo **ppCTInfo) {
2374     return This->lpVtbl->CreateTypeInfo(This,szName,tkind,ppCTInfo);
2375 }
2376 static FORCEINLINE HRESULT ICreateTypeLib2_SetName(ICreateTypeLib2* This,LPOLESTR szName) {
2377     return This->lpVtbl->SetName(This,szName);
2378 }
2379 static FORCEINLINE HRESULT ICreateTypeLib2_SetVersion(ICreateTypeLib2* This,WORD wMajorVerNum,WORD wMinorVerNum) {
2380     return This->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum);
2381 }
2382 static FORCEINLINE HRESULT ICreateTypeLib2_SetGuid(ICreateTypeLib2* This,REFGUID guid) {
2383     return This->lpVtbl->SetGuid(This,guid);
2384 }
2385 static FORCEINLINE HRESULT ICreateTypeLib2_SetDocString(ICreateTypeLib2* This,LPOLESTR szDoc) {
2386     return This->lpVtbl->SetDocString(This,szDoc);
2387 }
2388 static FORCEINLINE HRESULT ICreateTypeLib2_SetHelpFileName(ICreateTypeLib2* This,LPOLESTR szHelpFileName) {
2389     return This->lpVtbl->SetHelpFileName(This,szHelpFileName);
2390 }
2391 static FORCEINLINE HRESULT ICreateTypeLib2_SetHelpContext(ICreateTypeLib2* This,DWORD dwHelpContext) {
2392     return This->lpVtbl->SetHelpContext(This,dwHelpContext);
2393 }
2394 static FORCEINLINE HRESULT ICreateTypeLib2_SetLcid(ICreateTypeLib2* This,LCID lcid) {
2395     return This->lpVtbl->SetLcid(This,lcid);
2396 }
2397 static FORCEINLINE HRESULT ICreateTypeLib2_SetLibFlags(ICreateTypeLib2* This,UINT uLibFlags) {
2398     return This->lpVtbl->SetLibFlags(This,uLibFlags);
2399 }
2400 static FORCEINLINE HRESULT ICreateTypeLib2_SaveAllChanges(ICreateTypeLib2* This) {
2401     return This->lpVtbl->SaveAllChanges(This);
2402 }
2403 /*** ICreateTypeLib2 methods ***/
2404 static FORCEINLINE HRESULT ICreateTypeLib2_DeleteTypeInfo(ICreateTypeLib2* This,LPOLESTR szName) {
2405     return This->lpVtbl->DeleteTypeInfo(This,szName);
2406 }
2407 static FORCEINLINE HRESULT ICreateTypeLib2_SetCustData(ICreateTypeLib2* This,REFGUID guid,VARIANT *pVarVal) {
2408     return This->lpVtbl->SetCustData(This,guid,pVarVal);
2409 }
2410 static FORCEINLINE HRESULT ICreateTypeLib2_SetHelpStringContext(ICreateTypeLib2* This,ULONG dwHelpStringContext) {
2411     return This->lpVtbl->SetHelpStringContext(This,dwHelpStringContext);
2412 }
2413 static FORCEINLINE HRESULT ICreateTypeLib2_SetHelpStringDll(ICreateTypeLib2* This,LPOLESTR szFileName) {
2414     return This->lpVtbl->SetHelpStringDll(This,szFileName);
2415 }
2416 #endif
2417 #endif
2418 
2419 #endif
2420 
2421 HRESULT STDMETHODCALLTYPE ICreateTypeLib2_DeleteTypeInfo_Proxy(
2422     ICreateTypeLib2* This,
2423     LPOLESTR szName);
2424 void __RPC_STUB ICreateTypeLib2_DeleteTypeInfo_Stub(
2425     IRpcStubBuffer* This,
2426     IRpcChannelBuffer* pRpcChannelBuffer,
2427     PRPC_MESSAGE pRpcMessage,
2428     DWORD* pdwStubPhase);
2429 HRESULT STDMETHODCALLTYPE ICreateTypeLib2_SetCustData_Proxy(
2430     ICreateTypeLib2* This,
2431     REFGUID guid,
2432     VARIANT *pVarVal);
2433 void __RPC_STUB ICreateTypeLib2_SetCustData_Stub(
2434     IRpcStubBuffer* This,
2435     IRpcChannelBuffer* pRpcChannelBuffer,
2436     PRPC_MESSAGE pRpcMessage,
2437     DWORD* pdwStubPhase);
2438 HRESULT STDMETHODCALLTYPE ICreateTypeLib2_SetHelpStringContext_Proxy(
2439     ICreateTypeLib2* This,
2440     ULONG dwHelpStringContext);
2441 void __RPC_STUB ICreateTypeLib2_SetHelpStringContext_Stub(
2442     IRpcStubBuffer* This,
2443     IRpcChannelBuffer* pRpcChannelBuffer,
2444     PRPC_MESSAGE pRpcMessage,
2445     DWORD* pdwStubPhase);
2446 HRESULT STDMETHODCALLTYPE ICreateTypeLib2_SetHelpStringDll_Proxy(
2447     ICreateTypeLib2* This,
2448     LPOLESTR szFileName);
2449 void __RPC_STUB ICreateTypeLib2_SetHelpStringDll_Stub(
2450     IRpcStubBuffer* This,
2451     IRpcChannelBuffer* pRpcChannelBuffer,
2452     PRPC_MESSAGE pRpcMessage,
2453     DWORD* pdwStubPhase);
2454 
2455 #endif  /* __ICreateTypeLib2_INTERFACE_DEFINED__ */
2456 
2457 #endif
2458 
2459 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
2460 /*****************************************************************************
2461  * IDispatch interface
2462  */
2463 #ifndef __IDispatch_INTERFACE_DEFINED__
2464 #define __IDispatch_INTERFACE_DEFINED__
2465 
2466 typedef IDispatch *LPDISPATCH;
2467 
2468 
2469 #define DISPID_UNKNOWN (-1)
2470 
2471 #define DISPID_VALUE (0)
2472 
2473 #define DISPID_PROPERTYPUT (-3)
2474 
2475 #define DISPID_NEWENUM (-4)
2476 
2477 #define DISPID_EVALUATE (-5)
2478 
2479 #define DISPID_CONSTRUCTOR (-6)
2480 
2481 #define DISPID_DESTRUCTOR (-7)
2482 
2483 #define DISPID_COLLECT (-8)
2484 
2485 
2486 DEFINE_GUID(IID_IDispatch, 0x00020400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2487 #if defined(__cplusplus) && !defined(CINTERFACE)
2488 MIDL_INTERFACE("00020400-0000-0000-c000-000000000046")
2489 IDispatch : public IUnknown
2490 {
2491     virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(
2492         UINT *pctinfo) = 0;
2493 
2494     virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
2495         UINT iTInfo,
2496         LCID lcid,
2497         ITypeInfo **ppTInfo) = 0;
2498 
2499     virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(
2500         REFIID riid,
2501         LPOLESTR *rgszNames,
2502         UINT cNames,
2503         LCID lcid,
2504         DISPID *rgDispId) = 0;
2505 
2506     virtual HRESULT STDMETHODCALLTYPE Invoke(
2507         DISPID dispIdMember,
2508         REFIID riid,
2509         LCID lcid,
2510         WORD wFlags,
2511         DISPPARAMS *pDispParams,
2512         VARIANT *pVarResult,
2513         EXCEPINFO *pExcepInfo,
2514         UINT *puArgErr) = 0;
2515 
2516 };
2517 #ifdef __CRT_UUID_DECL
2518 __CRT_UUID_DECL(IDispatch, 0x00020400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
2519 #endif
2520 #else
2521 typedef struct IDispatchVtbl {
2522     BEGIN_INTERFACE
2523 
2524     /*** IUnknown methods ***/
2525     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2526         IDispatch* This,
2527         REFIID riid,
2528         void **ppvObject);
2529 
2530     ULONG (STDMETHODCALLTYPE *AddRef)(
2531         IDispatch* This);
2532 
2533     ULONG (STDMETHODCALLTYPE *Release)(
2534         IDispatch* This);
2535 
2536     /*** IDispatch methods ***/
2537     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2538         IDispatch* This,
2539         UINT *pctinfo);
2540 
2541     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2542         IDispatch* This,
2543         UINT iTInfo,
2544         LCID lcid,
2545         ITypeInfo **ppTInfo);
2546 
2547     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
2548         IDispatch* This,
2549         REFIID riid,
2550         LPOLESTR *rgszNames,
2551         UINT cNames,
2552         LCID lcid,
2553         DISPID *rgDispId);
2554 
2555     HRESULT (STDMETHODCALLTYPE *Invoke)(
2556         IDispatch* This,
2557         DISPID dispIdMember,
2558         REFIID riid,
2559         LCID lcid,
2560         WORD wFlags,
2561         DISPPARAMS *pDispParams,
2562         VARIANT *pVarResult,
2563         EXCEPINFO *pExcepInfo,
2564         UINT *puArgErr);
2565 
2566     END_INTERFACE
2567 } IDispatchVtbl;
2568 interface IDispatch {
2569     CONST_VTBL IDispatchVtbl* lpVtbl;
2570 };
2571 
2572 #ifdef COBJMACROS
2573 #ifndef WIDL_C_INLINE_WRAPPERS
2574 /*** IUnknown methods ***/
2575 #define IDispatch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2576 #define IDispatch_AddRef(This) (This)->lpVtbl->AddRef(This)
2577 #define IDispatch_Release(This) (This)->lpVtbl->Release(This)
2578 /*** IDispatch methods ***/
2579 #define IDispatch_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
2580 #define IDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
2581 #define IDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
2582 #define IDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
2583 #else
2584 /*** IUnknown methods ***/
2585 static FORCEINLINE HRESULT IDispatch_QueryInterface(IDispatch* This,REFIID riid,void **ppvObject) {
2586     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2587 }
2588 static FORCEINLINE ULONG IDispatch_AddRef(IDispatch* This) {
2589     return This->lpVtbl->AddRef(This);
2590 }
2591 static FORCEINLINE ULONG IDispatch_Release(IDispatch* This) {
2592     return This->lpVtbl->Release(This);
2593 }
2594 /*** IDispatch methods ***/
2595 static FORCEINLINE HRESULT IDispatch_GetTypeInfoCount(IDispatch* This,UINT *pctinfo) {
2596     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2597 }
2598 static FORCEINLINE HRESULT IDispatch_GetTypeInfo(IDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2599     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2600 }
2601 static FORCEINLINE HRESULT IDispatch_GetIDsOfNames(IDispatch* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
2602     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
2603 }
2604 static FORCEINLINE HRESULT IDispatch_Invoke(IDispatch* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
2605     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
2606 }
2607 #endif
2608 #endif
2609 
2610 #endif
2611 
2612 HRESULT STDMETHODCALLTYPE IDispatch_GetTypeInfoCount_Proxy(
2613     IDispatch* This,
2614     UINT *pctinfo);
2615 void __RPC_STUB IDispatch_GetTypeInfoCount_Stub(
2616     IRpcStubBuffer* This,
2617     IRpcChannelBuffer* pRpcChannelBuffer,
2618     PRPC_MESSAGE pRpcMessage,
2619     DWORD* pdwStubPhase);
2620 HRESULT STDMETHODCALLTYPE IDispatch_GetTypeInfo_Proxy(
2621     IDispatch* This,
2622     UINT iTInfo,
2623     LCID lcid,
2624     ITypeInfo **ppTInfo);
2625 void __RPC_STUB IDispatch_GetTypeInfo_Stub(
2626     IRpcStubBuffer* This,
2627     IRpcChannelBuffer* pRpcChannelBuffer,
2628     PRPC_MESSAGE pRpcMessage,
2629     DWORD* pdwStubPhase);
2630 HRESULT STDMETHODCALLTYPE IDispatch_GetIDsOfNames_Proxy(
2631     IDispatch* This,
2632     REFIID riid,
2633     LPOLESTR *rgszNames,
2634     UINT cNames,
2635     LCID lcid,
2636     DISPID *rgDispId);
2637 void __RPC_STUB IDispatch_GetIDsOfNames_Stub(
2638     IRpcStubBuffer* This,
2639     IRpcChannelBuffer* pRpcChannelBuffer,
2640     PRPC_MESSAGE pRpcMessage,
2641     DWORD* pdwStubPhase);
2642 HRESULT STDMETHODCALLTYPE IDispatch_RemoteInvoke_Proxy(
2643     IDispatch* This,
2644     DISPID dispIdMember,
2645     REFIID riid,
2646     LCID lcid,
2647     DWORD dwFlags,
2648     DISPPARAMS *pDispParams,
2649     VARIANT *pVarResult,
2650     EXCEPINFO *pExcepInfo,
2651     UINT *pArgErr,
2652     UINT cVarRef,
2653     UINT *rgVarRefIdx,
2654     VARIANTARG *rgVarRef);
2655 void __RPC_STUB IDispatch_RemoteInvoke_Stub(
2656     IRpcStubBuffer* This,
2657     IRpcChannelBuffer* pRpcChannelBuffer,
2658     PRPC_MESSAGE pRpcMessage,
2659     DWORD* pdwStubPhase);
2660 HRESULT CALLBACK IDispatch_Invoke_Proxy(
2661     IDispatch* This,
2662     DISPID dispIdMember,
2663     REFIID riid,
2664     LCID lcid,
2665     WORD wFlags,
2666     DISPPARAMS *pDispParams,
2667     VARIANT *pVarResult,
2668     EXCEPINFO *pExcepInfo,
2669     UINT *puArgErr);
2670 HRESULT __RPC_STUB IDispatch_Invoke_Stub(
2671     IDispatch* This,
2672     DISPID dispIdMember,
2673     REFIID riid,
2674     LCID lcid,
2675     DWORD dwFlags,
2676     DISPPARAMS *pDispParams,
2677     VARIANT *pVarResult,
2678     EXCEPINFO *pExcepInfo,
2679     UINT *pArgErr,
2680     UINT cVarRef,
2681     UINT *rgVarRefIdx,
2682     VARIANTARG *rgVarRef);
2683 
2684 #endif  /* __IDispatch_INTERFACE_DEFINED__ */
2685 
2686 
2687 /*****************************************************************************
2688  * IEnumVARIANT interface
2689  */
2690 #ifndef __IEnumVARIANT_INTERFACE_DEFINED__
2691 #define __IEnumVARIANT_INTERFACE_DEFINED__
2692 
2693 typedef IEnumVARIANT *LPENUMVARIANT;
2694 
2695 DEFINE_GUID(IID_IEnumVARIANT, 0x00020404, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2696 #if defined(__cplusplus) && !defined(CINTERFACE)
2697 MIDL_INTERFACE("00020404-0000-0000-c000-000000000046")
2698 IEnumVARIANT : public IUnknown
2699 {
2700     virtual HRESULT STDMETHODCALLTYPE Next(
2701         ULONG celt,
2702         VARIANT *rgVar,
2703         ULONG *pCeltFetched) = 0;
2704 
2705     virtual HRESULT STDMETHODCALLTYPE Skip(
2706         ULONG celt) = 0;
2707 
2708     virtual HRESULT STDMETHODCALLTYPE Reset(
2709         ) = 0;
2710 
2711     virtual HRESULT STDMETHODCALLTYPE Clone(
2712         IEnumVARIANT **ppEnum) = 0;
2713 
2714 };
2715 #ifdef __CRT_UUID_DECL
2716 __CRT_UUID_DECL(IEnumVARIANT, 0x00020404, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
2717 #endif
2718 #else
2719 typedef struct IEnumVARIANTVtbl {
2720     BEGIN_INTERFACE
2721 
2722     /*** IUnknown methods ***/
2723     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2724         IEnumVARIANT* This,
2725         REFIID riid,
2726         void **ppvObject);
2727 
2728     ULONG (STDMETHODCALLTYPE *AddRef)(
2729         IEnumVARIANT* This);
2730 
2731     ULONG (STDMETHODCALLTYPE *Release)(
2732         IEnumVARIANT* This);
2733 
2734     /*** IEnumVARIANT methods ***/
2735     HRESULT (STDMETHODCALLTYPE *Next)(
2736         IEnumVARIANT* This,
2737         ULONG celt,
2738         VARIANT *rgVar,
2739         ULONG *pCeltFetched);
2740 
2741     HRESULT (STDMETHODCALLTYPE *Skip)(
2742         IEnumVARIANT* This,
2743         ULONG celt);
2744 
2745     HRESULT (STDMETHODCALLTYPE *Reset)(
2746         IEnumVARIANT* This);
2747 
2748     HRESULT (STDMETHODCALLTYPE *Clone)(
2749         IEnumVARIANT* This,
2750         IEnumVARIANT **ppEnum);
2751 
2752     END_INTERFACE
2753 } IEnumVARIANTVtbl;
2754 interface IEnumVARIANT {
2755     CONST_VTBL IEnumVARIANTVtbl* lpVtbl;
2756 };
2757 
2758 #ifdef COBJMACROS
2759 #ifndef WIDL_C_INLINE_WRAPPERS
2760 /*** IUnknown methods ***/
2761 #define IEnumVARIANT_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2762 #define IEnumVARIANT_AddRef(This) (This)->lpVtbl->AddRef(This)
2763 #define IEnumVARIANT_Release(This) (This)->lpVtbl->Release(This)
2764 /*** IEnumVARIANT methods ***/
2765 #define IEnumVARIANT_Next(This,celt,rgVar,pCeltFetched) (This)->lpVtbl->Next(This,celt,rgVar,pCeltFetched)
2766 #define IEnumVARIANT_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
2767 #define IEnumVARIANT_Reset(This) (This)->lpVtbl->Reset(This)
2768 #define IEnumVARIANT_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
2769 #else
2770 /*** IUnknown methods ***/
2771 static FORCEINLINE HRESULT IEnumVARIANT_QueryInterface(IEnumVARIANT* This,REFIID riid,void **ppvObject) {
2772     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2773 }
2774 static FORCEINLINE ULONG IEnumVARIANT_AddRef(IEnumVARIANT* This) {
2775     return This->lpVtbl->AddRef(This);
2776 }
2777 static FORCEINLINE ULONG IEnumVARIANT_Release(IEnumVARIANT* This) {
2778     return This->lpVtbl->Release(This);
2779 }
2780 /*** IEnumVARIANT methods ***/
2781 static FORCEINLINE HRESULT IEnumVARIANT_Next(IEnumVARIANT* This,ULONG celt,VARIANT *rgVar,ULONG *pCeltFetched) {
2782     return This->lpVtbl->Next(This,celt,rgVar,pCeltFetched);
2783 }
2784 static FORCEINLINE HRESULT IEnumVARIANT_Skip(IEnumVARIANT* This,ULONG celt) {
2785     return This->lpVtbl->Skip(This,celt);
2786 }
2787 static FORCEINLINE HRESULT IEnumVARIANT_Reset(IEnumVARIANT* This) {
2788     return This->lpVtbl->Reset(This);
2789 }
2790 static FORCEINLINE HRESULT IEnumVARIANT_Clone(IEnumVARIANT* This,IEnumVARIANT **ppEnum) {
2791     return This->lpVtbl->Clone(This,ppEnum);
2792 }
2793 #endif
2794 #endif
2795 
2796 #endif
2797 
2798 HRESULT STDMETHODCALLTYPE IEnumVARIANT_RemoteNext_Proxy(
2799     IEnumVARIANT* This,
2800     ULONG celt,
2801     VARIANT *rgVar,
2802     ULONG *pCeltFetched);
2803 void __RPC_STUB IEnumVARIANT_RemoteNext_Stub(
2804     IRpcStubBuffer* This,
2805     IRpcChannelBuffer* pRpcChannelBuffer,
2806     PRPC_MESSAGE pRpcMessage,
2807     DWORD* pdwStubPhase);
2808 HRESULT STDMETHODCALLTYPE IEnumVARIANT_Skip_Proxy(
2809     IEnumVARIANT* This,
2810     ULONG celt);
2811 void __RPC_STUB IEnumVARIANT_Skip_Stub(
2812     IRpcStubBuffer* This,
2813     IRpcChannelBuffer* pRpcChannelBuffer,
2814     PRPC_MESSAGE pRpcMessage,
2815     DWORD* pdwStubPhase);
2816 HRESULT STDMETHODCALLTYPE IEnumVARIANT_Reset_Proxy(
2817     IEnumVARIANT* This);
2818 void __RPC_STUB IEnumVARIANT_Reset_Stub(
2819     IRpcStubBuffer* This,
2820     IRpcChannelBuffer* pRpcChannelBuffer,
2821     PRPC_MESSAGE pRpcMessage,
2822     DWORD* pdwStubPhase);
2823 HRESULT STDMETHODCALLTYPE IEnumVARIANT_Clone_Proxy(
2824     IEnumVARIANT* This,
2825     IEnumVARIANT **ppEnum);
2826 void __RPC_STUB IEnumVARIANT_Clone_Stub(
2827     IRpcStubBuffer* This,
2828     IRpcChannelBuffer* pRpcChannelBuffer,
2829     PRPC_MESSAGE pRpcMessage,
2830     DWORD* pdwStubPhase);
2831 HRESULT CALLBACK IEnumVARIANT_Next_Proxy(
2832     IEnumVARIANT* This,
2833     ULONG celt,
2834     VARIANT *rgVar,
2835     ULONG *pCeltFetched);
2836 HRESULT __RPC_STUB IEnumVARIANT_Next_Stub(
2837     IEnumVARIANT* This,
2838     ULONG celt,
2839     VARIANT *rgVar,
2840     ULONG *pCeltFetched);
2841 
2842 #endif  /* __IEnumVARIANT_INTERFACE_DEFINED__ */
2843 
2844 
2845 /*****************************************************************************
2846  * ITypeComp interface
2847  */
2848 #ifndef __ITypeComp_INTERFACE_DEFINED__
2849 #define __ITypeComp_INTERFACE_DEFINED__
2850 
2851 typedef ITypeComp *LPTYPECOMP;
2852 
2853 typedef enum tagDESCKIND {
2854     DESCKIND_NONE = 0,
2855     DESCKIND_FUNCDESC = 1,
2856     DESCKIND_VARDESC = 2,
2857     DESCKIND_TYPECOMP = 3,
2858     DESCKIND_IMPLICITAPPOBJ = 4,
2859     DESCKIND_MAX = 5
2860 } DESCKIND;
2861 
2862 typedef union tagBINDPTR {
2863     FUNCDESC *lpfuncdesc;
2864     VARDESC *lpvardesc;
2865     ITypeComp *lptcomp;
2866 } BINDPTR;
2867 typedef union tagBINDPTR *LPBINDPTR;
2868 
2869 DEFINE_GUID(IID_ITypeComp, 0x00020403, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2870 #if defined(__cplusplus) && !defined(CINTERFACE)
2871 MIDL_INTERFACE("00020403-0000-0000-c000-000000000046")
2872 ITypeComp : public IUnknown
2873 {
2874     virtual HRESULT STDMETHODCALLTYPE Bind(
2875         LPOLESTR szName,
2876         ULONG lHashVal,
2877         WORD wFlags,
2878         ITypeInfo **ppTInfo,
2879         DESCKIND *pDescKind,
2880         BINDPTR *pBindPtr) = 0;
2881 
2882     virtual HRESULT STDMETHODCALLTYPE BindType(
2883         LPOLESTR szName,
2884         ULONG lHashVal,
2885         ITypeInfo **ppTInfo,
2886         ITypeComp **ppTComp) = 0;
2887 
2888 };
2889 #ifdef __CRT_UUID_DECL
2890 __CRT_UUID_DECL(ITypeComp, 0x00020403, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
2891 #endif
2892 #else
2893 typedef struct ITypeCompVtbl {
2894     BEGIN_INTERFACE
2895 
2896     /*** IUnknown methods ***/
2897     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2898         ITypeComp* This,
2899         REFIID riid,
2900         void **ppvObject);
2901 
2902     ULONG (STDMETHODCALLTYPE *AddRef)(
2903         ITypeComp* This);
2904 
2905     ULONG (STDMETHODCALLTYPE *Release)(
2906         ITypeComp* This);
2907 
2908     /*** ITypeComp methods ***/
2909     HRESULT (STDMETHODCALLTYPE *Bind)(
2910         ITypeComp* This,
2911         LPOLESTR szName,
2912         ULONG lHashVal,
2913         WORD wFlags,
2914         ITypeInfo **ppTInfo,
2915         DESCKIND *pDescKind,
2916         BINDPTR *pBindPtr);
2917 
2918     HRESULT (STDMETHODCALLTYPE *BindType)(
2919         ITypeComp* This,
2920         LPOLESTR szName,
2921         ULONG lHashVal,
2922         ITypeInfo **ppTInfo,
2923         ITypeComp **ppTComp);
2924 
2925     END_INTERFACE
2926 } ITypeCompVtbl;
2927 interface ITypeComp {
2928     CONST_VTBL ITypeCompVtbl* lpVtbl;
2929 };
2930 
2931 #ifdef COBJMACROS
2932 #ifndef WIDL_C_INLINE_WRAPPERS
2933 /*** IUnknown methods ***/
2934 #define ITypeComp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2935 #define ITypeComp_AddRef(This) (This)->lpVtbl->AddRef(This)
2936 #define ITypeComp_Release(This) (This)->lpVtbl->Release(This)
2937 /*** ITypeComp methods ***/
2938 #define ITypeComp_Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr) (This)->lpVtbl->Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr)
2939 #define ITypeComp_BindType(This,szName,lHashVal,ppTInfo,ppTComp) (This)->lpVtbl->BindType(This,szName,lHashVal,ppTInfo,ppTComp)
2940 #else
2941 /*** IUnknown methods ***/
2942 static FORCEINLINE HRESULT ITypeComp_QueryInterface(ITypeComp* This,REFIID riid,void **ppvObject) {
2943     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2944 }
2945 static FORCEINLINE ULONG ITypeComp_AddRef(ITypeComp* This) {
2946     return This->lpVtbl->AddRef(This);
2947 }
2948 static FORCEINLINE ULONG ITypeComp_Release(ITypeComp* This) {
2949     return This->lpVtbl->Release(This);
2950 }
2951 /*** ITypeComp methods ***/
2952 static FORCEINLINE HRESULT ITypeComp_Bind(ITypeComp* This,LPOLESTR szName,ULONG lHashVal,WORD wFlags,ITypeInfo **ppTInfo,DESCKIND *pDescKind,BINDPTR *pBindPtr) {
2953     return This->lpVtbl->Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr);
2954 }
2955 static FORCEINLINE HRESULT ITypeComp_BindType(ITypeComp* This,LPOLESTR szName,ULONG lHashVal,ITypeInfo **ppTInfo,ITypeComp **ppTComp) {
2956     return This->lpVtbl->BindType(This,szName,lHashVal,ppTInfo,ppTComp);
2957 }
2958 #endif
2959 #endif
2960 
2961 #endif
2962 
2963 HRESULT STDMETHODCALLTYPE ITypeComp_RemoteBind_Proxy(
2964     ITypeComp* This,
2965     LPOLESTR szName,
2966     ULONG lHashVal,
2967     WORD wFlags,
2968     ITypeInfo **ppTInfo,
2969     DESCKIND *pDescKind,
2970     LPFUNCDESC *ppFuncDesc,
2971     LPVARDESC *ppVarDesc,
2972     ITypeComp **ppTypeComp,
2973     CLEANLOCALSTORAGE *pDummy);
2974 void __RPC_STUB ITypeComp_RemoteBind_Stub(
2975     IRpcStubBuffer* This,
2976     IRpcChannelBuffer* pRpcChannelBuffer,
2977     PRPC_MESSAGE pRpcMessage,
2978     DWORD* pdwStubPhase);
2979 HRESULT STDMETHODCALLTYPE ITypeComp_RemoteBindType_Proxy(
2980     ITypeComp* This,
2981     LPOLESTR szName,
2982     ULONG lHashVal,
2983     ITypeInfo **ppTInfo);
2984 void __RPC_STUB ITypeComp_RemoteBindType_Stub(
2985     IRpcStubBuffer* This,
2986     IRpcChannelBuffer* pRpcChannelBuffer,
2987     PRPC_MESSAGE pRpcMessage,
2988     DWORD* pdwStubPhase);
2989 HRESULT CALLBACK ITypeComp_Bind_Proxy(
2990     ITypeComp* This,
2991     LPOLESTR szName,
2992     ULONG lHashVal,
2993     WORD wFlags,
2994     ITypeInfo **ppTInfo,
2995     DESCKIND *pDescKind,
2996     BINDPTR *pBindPtr);
2997 HRESULT __RPC_STUB ITypeComp_Bind_Stub(
2998     ITypeComp* This,
2999     LPOLESTR szName,
3000     ULONG lHashVal,
3001     WORD wFlags,
3002     ITypeInfo **ppTInfo,
3003     DESCKIND *pDescKind,
3004     LPFUNCDESC *ppFuncDesc,
3005     LPVARDESC *ppVarDesc,
3006     ITypeComp **ppTypeComp,
3007     CLEANLOCALSTORAGE *pDummy);
3008 HRESULT CALLBACK ITypeComp_BindType_Proxy(
3009     ITypeComp* This,
3010     LPOLESTR szName,
3011     ULONG lHashVal,
3012     ITypeInfo **ppTInfo,
3013     ITypeComp **ppTComp);
3014 HRESULT __RPC_STUB ITypeComp_BindType_Stub(
3015     ITypeComp* This,
3016     LPOLESTR szName,
3017     ULONG lHashVal,
3018     ITypeInfo **ppTInfo);
3019 
3020 #endif  /* __ITypeComp_INTERFACE_DEFINED__ */
3021 
3022 #endif
3023 
3024 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
3025 /*****************************************************************************
3026  * ITypeInfo interface
3027  */
3028 #ifndef __ITypeInfo_INTERFACE_DEFINED__
3029 #define __ITypeInfo_INTERFACE_DEFINED__
3030 
3031 typedef ITypeInfo *LPTYPEINFO;
3032 
3033 DEFINE_GUID(IID_ITypeInfo, 0x00020401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3034 #if defined(__cplusplus) && !defined(CINTERFACE)
3035 MIDL_INTERFACE("00020401-0000-0000-c000-000000000046")
3036 ITypeInfo : public IUnknown
3037 {
3038     virtual HRESULT STDMETHODCALLTYPE GetTypeAttr(
3039         TYPEATTR **ppTypeAttr) = 0;
3040 
3041     virtual HRESULT STDMETHODCALLTYPE GetTypeComp(
3042         ITypeComp **ppTComp) = 0;
3043 
3044     virtual HRESULT STDMETHODCALLTYPE GetFuncDesc(
3045         UINT index,
3046         FUNCDESC **ppFuncDesc) = 0;
3047 
3048     virtual HRESULT STDMETHODCALLTYPE GetVarDesc(
3049         UINT index,
3050         VARDESC **ppVarDesc) = 0;
3051 
3052     virtual HRESULT STDMETHODCALLTYPE GetNames(
3053         MEMBERID memid,
3054         BSTR *rgBstrNames,
3055         UINT cMaxNames,
3056         UINT *pcNames) = 0;
3057 
3058     virtual HRESULT STDMETHODCALLTYPE GetRefTypeOfImplType(
3059         UINT index,
3060         HREFTYPE *pRefType) = 0;
3061 
3062     virtual HRESULT STDMETHODCALLTYPE GetImplTypeFlags(
3063         UINT index,
3064         INT *pImplTypeFlags) = 0;
3065 
3066     virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(
3067         LPOLESTR *rgszNames,
3068         UINT cNames,
3069         MEMBERID *pMemId) = 0;
3070 
3071     virtual HRESULT STDMETHODCALLTYPE Invoke(
3072         PVOID pvInstance,
3073         MEMBERID memid,
3074         WORD wFlags,
3075         DISPPARAMS *pDispParams,
3076         VARIANT *pVarResult,
3077         EXCEPINFO *pExcepInfo,
3078         UINT *puArgErr) = 0;
3079 
3080     virtual HRESULT STDMETHODCALLTYPE GetDocumentation(
3081         MEMBERID memid,
3082         BSTR *pBstrName,
3083         BSTR *pBstrDocString,
3084         DWORD *pdwHelpContext,
3085         BSTR *pBstrHelpFile) = 0;
3086 
3087     virtual HRESULT STDMETHODCALLTYPE GetDllEntry(
3088         MEMBERID memid,
3089         INVOKEKIND invKind,
3090         BSTR *pBstrDllName,
3091         BSTR *pBstrName,
3092         WORD *pwOrdinal) = 0;
3093 
3094     virtual HRESULT STDMETHODCALLTYPE GetRefTypeInfo(
3095         HREFTYPE hRefType,
3096         ITypeInfo **ppTInfo) = 0;
3097 
3098     virtual HRESULT STDMETHODCALLTYPE AddressOfMember(
3099         MEMBERID memid,
3100         INVOKEKIND invKind,
3101         PVOID *ppv) = 0;
3102 
3103     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
3104         IUnknown *pUnkOuter,
3105         REFIID riid,
3106         PVOID *ppvObj) = 0;
3107 
3108     virtual HRESULT STDMETHODCALLTYPE GetMops(
3109         MEMBERID memid,
3110         BSTR *pBstrMops) = 0;
3111 
3112     virtual HRESULT STDMETHODCALLTYPE GetContainingTypeLib(
3113         ITypeLib **ppTLib,
3114         UINT *pIndex) = 0;
3115 
3116     virtual void STDMETHODCALLTYPE ReleaseTypeAttr(
3117         TYPEATTR *pTypeAttr) = 0;
3118 
3119     virtual void STDMETHODCALLTYPE ReleaseFuncDesc(
3120         FUNCDESC *pFuncDesc) = 0;
3121 
3122     virtual void STDMETHODCALLTYPE ReleaseVarDesc(
3123         VARDESC *pVarDesc) = 0;
3124 
3125 };
3126 #ifdef __CRT_UUID_DECL
3127 __CRT_UUID_DECL(ITypeInfo, 0x00020401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
3128 #endif
3129 #else
3130 typedef struct ITypeInfoVtbl {
3131     BEGIN_INTERFACE
3132 
3133     /*** IUnknown methods ***/
3134     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3135         ITypeInfo* This,
3136         REFIID riid,
3137         void **ppvObject);
3138 
3139     ULONG (STDMETHODCALLTYPE *AddRef)(
3140         ITypeInfo* This);
3141 
3142     ULONG (STDMETHODCALLTYPE *Release)(
3143         ITypeInfo* This);
3144 
3145     /*** ITypeInfo methods ***/
3146     HRESULT (STDMETHODCALLTYPE *GetTypeAttr)(
3147         ITypeInfo* This,
3148         TYPEATTR **ppTypeAttr);
3149 
3150     HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
3151         ITypeInfo* This,
3152         ITypeComp **ppTComp);
3153 
3154     HRESULT (STDMETHODCALLTYPE *GetFuncDesc)(
3155         ITypeInfo* This,
3156         UINT index,
3157         FUNCDESC **ppFuncDesc);
3158 
3159     HRESULT (STDMETHODCALLTYPE *GetVarDesc)(
3160         ITypeInfo* This,
3161         UINT index,
3162         VARDESC **ppVarDesc);
3163 
3164     HRESULT (STDMETHODCALLTYPE *GetNames)(
3165         ITypeInfo* This,
3166         MEMBERID memid,
3167         BSTR *rgBstrNames,
3168         UINT cMaxNames,
3169         UINT *pcNames);
3170 
3171     HRESULT (STDMETHODCALLTYPE *GetRefTypeOfImplType)(
3172         ITypeInfo* This,
3173         UINT index,
3174         HREFTYPE *pRefType);
3175 
3176     HRESULT (STDMETHODCALLTYPE *GetImplTypeFlags)(
3177         ITypeInfo* This,
3178         UINT index,
3179         INT *pImplTypeFlags);
3180 
3181     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
3182         ITypeInfo* This,
3183         LPOLESTR *rgszNames,
3184         UINT cNames,
3185         MEMBERID *pMemId);
3186 
3187     HRESULT (STDMETHODCALLTYPE *Invoke)(
3188         ITypeInfo* This,
3189         PVOID pvInstance,
3190         MEMBERID memid,
3191         WORD wFlags,
3192         DISPPARAMS *pDispParams,
3193         VARIANT *pVarResult,
3194         EXCEPINFO *pExcepInfo,
3195         UINT *puArgErr);
3196 
3197     HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
3198         ITypeInfo* This,
3199         MEMBERID memid,
3200         BSTR *pBstrName,
3201         BSTR *pBstrDocString,
3202         DWORD *pdwHelpContext,
3203         BSTR *pBstrHelpFile);
3204 
3205     HRESULT (STDMETHODCALLTYPE *GetDllEntry)(
3206         ITypeInfo* This,
3207         MEMBERID memid,
3208         INVOKEKIND invKind,
3209         BSTR *pBstrDllName,
3210         BSTR *pBstrName,
3211         WORD *pwOrdinal);
3212 
3213     HRESULT (STDMETHODCALLTYPE *GetRefTypeInfo)(
3214         ITypeInfo* This,
3215         HREFTYPE hRefType,
3216         ITypeInfo **ppTInfo);
3217 
3218     HRESULT (STDMETHODCALLTYPE *AddressOfMember)(
3219         ITypeInfo* This,
3220         MEMBERID memid,
3221         INVOKEKIND invKind,
3222         PVOID *ppv);
3223 
3224     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
3225         ITypeInfo* This,
3226         IUnknown *pUnkOuter,
3227         REFIID riid,
3228         PVOID *ppvObj);
3229 
3230     HRESULT (STDMETHODCALLTYPE *GetMops)(
3231         ITypeInfo* This,
3232         MEMBERID memid,
3233         BSTR *pBstrMops);
3234 
3235     HRESULT (STDMETHODCALLTYPE *GetContainingTypeLib)(
3236         ITypeInfo* This,
3237         ITypeLib **ppTLib,
3238         UINT *pIndex);
3239 
3240     void (STDMETHODCALLTYPE *ReleaseTypeAttr)(
3241         ITypeInfo* This,
3242         TYPEATTR *pTypeAttr);
3243 
3244     void (STDMETHODCALLTYPE *ReleaseFuncDesc)(
3245         ITypeInfo* This,
3246         FUNCDESC *pFuncDesc);
3247 
3248     void (STDMETHODCALLTYPE *ReleaseVarDesc)(
3249         ITypeInfo* This,
3250         VARDESC *pVarDesc);
3251 
3252     END_INTERFACE
3253 } ITypeInfoVtbl;
3254 interface ITypeInfo {
3255     CONST_VTBL ITypeInfoVtbl* lpVtbl;
3256 };
3257 
3258 #ifdef COBJMACROS
3259 #ifndef WIDL_C_INLINE_WRAPPERS
3260 /*** IUnknown methods ***/
3261 #define ITypeInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3262 #define ITypeInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
3263 #define ITypeInfo_Release(This) (This)->lpVtbl->Release(This)
3264 /*** ITypeInfo methods ***/
3265 #define ITypeInfo_GetTypeAttr(This,ppTypeAttr) (This)->lpVtbl->GetTypeAttr(This,ppTypeAttr)
3266 #define ITypeInfo_GetTypeComp(This,ppTComp) (This)->lpVtbl->GetTypeComp(This,ppTComp)
3267 #define ITypeInfo_GetFuncDesc(This,index,ppFuncDesc) (This)->lpVtbl->GetFuncDesc(This,index,ppFuncDesc)
3268 #define ITypeInfo_GetVarDesc(This,index,ppVarDesc) (This)->lpVtbl->GetVarDesc(This,index,ppVarDesc)
3269 #define ITypeInfo_GetNames(This,memid,rgBstrNames,cMaxNames,pcNames) (This)->lpVtbl->GetNames(This,memid,rgBstrNames,cMaxNames,pcNames)
3270 #define ITypeInfo_GetRefTypeOfImplType(This,index,pRefType) (This)->lpVtbl->GetRefTypeOfImplType(This,index,pRefType)
3271 #define ITypeInfo_GetImplTypeFlags(This,index,pImplTypeFlags) (This)->lpVtbl->GetImplTypeFlags(This,index,pImplTypeFlags)
3272 #define ITypeInfo_GetIDsOfNames(This,rgszNames,cNames,pMemId) (This)->lpVtbl->GetIDsOfNames(This,rgszNames,cNames,pMemId)
3273 #define ITypeInfo_Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
3274 #define ITypeInfo_GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) (This)->lpVtbl->GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile)
3275 #define ITypeInfo_GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal) (This)->lpVtbl->GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal)
3276 #define ITypeInfo_GetRefTypeInfo(This,hRefType,ppTInfo) (This)->lpVtbl->GetRefTypeInfo(This,hRefType,ppTInfo)
3277 #define ITypeInfo_AddressOfMember(This,memid,invKind,ppv) (This)->lpVtbl->AddressOfMember(This,memid,invKind,ppv)
3278 #define ITypeInfo_CreateInstance(This,pUnkOuter,riid,ppvObj) (This)->lpVtbl->CreateInstance(This,pUnkOuter,riid,ppvObj)
3279 #define ITypeInfo_GetMops(This,memid,pBstrMops) (This)->lpVtbl->GetMops(This,memid,pBstrMops)
3280 #define ITypeInfo_GetContainingTypeLib(This,ppTLib,pIndex) (This)->lpVtbl->GetContainingTypeLib(This,ppTLib,pIndex)
3281 #define ITypeInfo_ReleaseTypeAttr(This,pTypeAttr) (This)->lpVtbl->ReleaseTypeAttr(This,pTypeAttr)
3282 #define ITypeInfo_ReleaseFuncDesc(This,pFuncDesc) (This)->lpVtbl->ReleaseFuncDesc(This,pFuncDesc)
3283 #define ITypeInfo_ReleaseVarDesc(This,pVarDesc) (This)->lpVtbl->ReleaseVarDesc(This,pVarDesc)
3284 #else
3285 /*** IUnknown methods ***/
3286 static FORCEINLINE HRESULT ITypeInfo_QueryInterface(ITypeInfo* This,REFIID riid,void **ppvObject) {
3287     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3288 }
3289 static FORCEINLINE ULONG ITypeInfo_AddRef(ITypeInfo* This) {
3290     return This->lpVtbl->AddRef(This);
3291 }
3292 static FORCEINLINE ULONG ITypeInfo_Release(ITypeInfo* This) {
3293     return This->lpVtbl->Release(This);
3294 }
3295 /*** ITypeInfo methods ***/
3296 static FORCEINLINE HRESULT ITypeInfo_GetTypeAttr(ITypeInfo* This,TYPEATTR **ppTypeAttr) {
3297     return This->lpVtbl->GetTypeAttr(This,ppTypeAttr);
3298 }
3299 static FORCEINLINE HRESULT ITypeInfo_GetTypeComp(ITypeInfo* This,ITypeComp **ppTComp) {
3300     return This->lpVtbl->GetTypeComp(This,ppTComp);
3301 }
3302 static FORCEINLINE HRESULT ITypeInfo_GetFuncDesc(ITypeInfo* This,UINT index,FUNCDESC **ppFuncDesc) {
3303     return This->lpVtbl->GetFuncDesc(This,index,ppFuncDesc);
3304 }
3305 static FORCEINLINE HRESULT ITypeInfo_GetVarDesc(ITypeInfo* This,UINT index,VARDESC **ppVarDesc) {
3306     return This->lpVtbl->GetVarDesc(This,index,ppVarDesc);
3307 }
3308 static FORCEINLINE HRESULT ITypeInfo_GetNames(ITypeInfo* This,MEMBERID memid,BSTR *rgBstrNames,UINT cMaxNames,UINT *pcNames) {
3309     return This->lpVtbl->GetNames(This,memid,rgBstrNames,cMaxNames,pcNames);
3310 }
3311 static FORCEINLINE HRESULT ITypeInfo_GetRefTypeOfImplType(ITypeInfo* This,UINT index,HREFTYPE *pRefType) {
3312     return This->lpVtbl->GetRefTypeOfImplType(This,index,pRefType);
3313 }
3314 static FORCEINLINE HRESULT ITypeInfo_GetImplTypeFlags(ITypeInfo* This,UINT index,INT *pImplTypeFlags) {
3315     return This->lpVtbl->GetImplTypeFlags(This,index,pImplTypeFlags);
3316 }
3317 static FORCEINLINE HRESULT ITypeInfo_GetIDsOfNames(ITypeInfo* This,LPOLESTR *rgszNames,UINT cNames,MEMBERID *pMemId) {
3318     return This->lpVtbl->GetIDsOfNames(This,rgszNames,cNames,pMemId);
3319 }
3320 static FORCEINLINE HRESULT ITypeInfo_Invoke(ITypeInfo* This,PVOID pvInstance,MEMBERID memid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
3321     return This->lpVtbl->Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
3322 }
3323 static FORCEINLINE HRESULT ITypeInfo_GetDocumentation(ITypeInfo* This,MEMBERID memid,BSTR *pBstrName,BSTR *pBstrDocString,DWORD *pdwHelpContext,BSTR *pBstrHelpFile) {
3324     return This->lpVtbl->GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile);
3325 }
3326 static FORCEINLINE HRESULT ITypeInfo_GetDllEntry(ITypeInfo* This,MEMBERID memid,INVOKEKIND invKind,BSTR *pBstrDllName,BSTR *pBstrName,WORD *pwOrdinal) {
3327     return This->lpVtbl->GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal);
3328 }
3329 static FORCEINLINE HRESULT ITypeInfo_GetRefTypeInfo(ITypeInfo* This,HREFTYPE hRefType,ITypeInfo **ppTInfo) {
3330     return This->lpVtbl->GetRefTypeInfo(This,hRefType,ppTInfo);
3331 }
3332 static FORCEINLINE HRESULT ITypeInfo_AddressOfMember(ITypeInfo* This,MEMBERID memid,INVOKEKIND invKind,PVOID *ppv) {
3333     return This->lpVtbl->AddressOfMember(This,memid,invKind,ppv);
3334 }
3335 static FORCEINLINE HRESULT ITypeInfo_CreateInstance(ITypeInfo* This,IUnknown *pUnkOuter,REFIID riid,PVOID *ppvObj) {
3336     return This->lpVtbl->CreateInstance(This,pUnkOuter,riid,ppvObj);
3337 }
3338 static FORCEINLINE HRESULT ITypeInfo_GetMops(ITypeInfo* This,MEMBERID memid,BSTR *pBstrMops) {
3339     return This->lpVtbl->GetMops(This,memid,pBstrMops);
3340 }
3341 static FORCEINLINE HRESULT ITypeInfo_GetContainingTypeLib(ITypeInfo* This,ITypeLib **ppTLib,UINT *pIndex) {
3342     return This->lpVtbl->GetContainingTypeLib(This,ppTLib,pIndex);
3343 }
3344 static FORCEINLINE void ITypeInfo_ReleaseTypeAttr(ITypeInfo* This,TYPEATTR *pTypeAttr) {
3345     This->lpVtbl->ReleaseTypeAttr(This,pTypeAttr);
3346 }
3347 static FORCEINLINE void ITypeInfo_ReleaseFuncDesc(ITypeInfo* This,FUNCDESC *pFuncDesc) {
3348     This->lpVtbl->ReleaseFuncDesc(This,pFuncDesc);
3349 }
3350 static FORCEINLINE void ITypeInfo_ReleaseVarDesc(ITypeInfo* This,VARDESC *pVarDesc) {
3351     This->lpVtbl->ReleaseVarDesc(This,pVarDesc);
3352 }
3353 #endif
3354 #endif
3355 
3356 #endif
3357 
3358 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetTypeAttr_Proxy(
3359     ITypeInfo* This,
3360     LPTYPEATTR *ppTypeAttr,
3361     CLEANLOCALSTORAGE *pDummy);
3362 void __RPC_STUB ITypeInfo_RemoteGetTypeAttr_Stub(
3363     IRpcStubBuffer* This,
3364     IRpcChannelBuffer* pRpcChannelBuffer,
3365     PRPC_MESSAGE pRpcMessage,
3366     DWORD* pdwStubPhase);
3367 HRESULT STDMETHODCALLTYPE ITypeInfo_GetTypeComp_Proxy(
3368     ITypeInfo* This,
3369     ITypeComp **ppTComp);
3370 void __RPC_STUB ITypeInfo_GetTypeComp_Stub(
3371     IRpcStubBuffer* This,
3372     IRpcChannelBuffer* pRpcChannelBuffer,
3373     PRPC_MESSAGE pRpcMessage,
3374     DWORD* pdwStubPhase);
3375 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetFuncDesc_Proxy(
3376     ITypeInfo* This,
3377     UINT index,
3378     LPFUNCDESC *ppFuncDesc,
3379     CLEANLOCALSTORAGE *pDummy);
3380 void __RPC_STUB ITypeInfo_RemoteGetFuncDesc_Stub(
3381     IRpcStubBuffer* This,
3382     IRpcChannelBuffer* pRpcChannelBuffer,
3383     PRPC_MESSAGE pRpcMessage,
3384     DWORD* pdwStubPhase);
3385 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetVarDesc_Proxy(
3386     ITypeInfo* This,
3387     UINT index,
3388     LPVARDESC *ppVarDesc,
3389     CLEANLOCALSTORAGE *pDummy);
3390 void __RPC_STUB ITypeInfo_RemoteGetVarDesc_Stub(
3391     IRpcStubBuffer* This,
3392     IRpcChannelBuffer* pRpcChannelBuffer,
3393     PRPC_MESSAGE pRpcMessage,
3394     DWORD* pdwStubPhase);
3395 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetNames_Proxy(
3396     ITypeInfo* This,
3397     MEMBERID memid,
3398     BSTR *rgBstrNames,
3399     UINT cMaxNames,
3400     UINT *pcNames);
3401 void __RPC_STUB ITypeInfo_RemoteGetNames_Stub(
3402     IRpcStubBuffer* This,
3403     IRpcChannelBuffer* pRpcChannelBuffer,
3404     PRPC_MESSAGE pRpcMessage,
3405     DWORD* pdwStubPhase);
3406 HRESULT STDMETHODCALLTYPE ITypeInfo_GetRefTypeOfImplType_Proxy(
3407     ITypeInfo* This,
3408     UINT index,
3409     HREFTYPE *pRefType);
3410 void __RPC_STUB ITypeInfo_GetRefTypeOfImplType_Stub(
3411     IRpcStubBuffer* This,
3412     IRpcChannelBuffer* pRpcChannelBuffer,
3413     PRPC_MESSAGE pRpcMessage,
3414     DWORD* pdwStubPhase);
3415 HRESULT STDMETHODCALLTYPE ITypeInfo_GetImplTypeFlags_Proxy(
3416     ITypeInfo* This,
3417     UINT index,
3418     INT *pImplTypeFlags);
3419 void __RPC_STUB ITypeInfo_GetImplTypeFlags_Stub(
3420     IRpcStubBuffer* This,
3421     IRpcChannelBuffer* pRpcChannelBuffer,
3422     PRPC_MESSAGE pRpcMessage,
3423     DWORD* pdwStubPhase);
3424 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalGetIDsOfNames_Proxy(
3425     ITypeInfo* This);
3426 void __RPC_STUB ITypeInfo_LocalGetIDsOfNames_Stub(
3427     IRpcStubBuffer* This,
3428     IRpcChannelBuffer* pRpcChannelBuffer,
3429     PRPC_MESSAGE pRpcMessage,
3430     DWORD* pdwStubPhase);
3431 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalInvoke_Proxy(
3432     ITypeInfo* This);
3433 void __RPC_STUB ITypeInfo_LocalInvoke_Stub(
3434     IRpcStubBuffer* This,
3435     IRpcChannelBuffer* pRpcChannelBuffer,
3436     PRPC_MESSAGE pRpcMessage,
3437     DWORD* pdwStubPhase);
3438 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetDocumentation_Proxy(
3439     ITypeInfo* This,
3440     MEMBERID memid,
3441     DWORD refPtrFlags,
3442     BSTR *pBstrName,
3443     BSTR *pBstrDocString,
3444     DWORD *pdwHelpContext,
3445     BSTR *pBstrHelpFile);
3446 void __RPC_STUB ITypeInfo_RemoteGetDocumentation_Stub(
3447     IRpcStubBuffer* This,
3448     IRpcChannelBuffer* pRpcChannelBuffer,
3449     PRPC_MESSAGE pRpcMessage,
3450     DWORD* pdwStubPhase);
3451 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetDllEntry_Proxy(
3452     ITypeInfo* This,
3453     MEMBERID memid,
3454     INVOKEKIND invKind,
3455     DWORD refPtrFlags,
3456     BSTR *pBstrDllName,
3457     BSTR *pBstrName,
3458     WORD *pwOrdinal);
3459 void __RPC_STUB ITypeInfo_RemoteGetDllEntry_Stub(
3460     IRpcStubBuffer* This,
3461     IRpcChannelBuffer* pRpcChannelBuffer,
3462     PRPC_MESSAGE pRpcMessage,
3463     DWORD* pdwStubPhase);
3464 HRESULT STDMETHODCALLTYPE ITypeInfo_GetRefTypeInfo_Proxy(
3465     ITypeInfo* This,
3466     HREFTYPE hRefType,
3467     ITypeInfo **ppTInfo);
3468 void __RPC_STUB ITypeInfo_GetRefTypeInfo_Stub(
3469     IRpcStubBuffer* This,
3470     IRpcChannelBuffer* pRpcChannelBuffer,
3471     PRPC_MESSAGE pRpcMessage,
3472     DWORD* pdwStubPhase);
3473 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalAddressOfMember_Proxy(
3474     ITypeInfo* This);
3475 void __RPC_STUB ITypeInfo_LocalAddressOfMember_Stub(
3476     IRpcStubBuffer* This,
3477     IRpcChannelBuffer* pRpcChannelBuffer,
3478     PRPC_MESSAGE pRpcMessage,
3479     DWORD* pdwStubPhase);
3480 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteCreateInstance_Proxy(
3481     ITypeInfo* This,
3482     REFIID riid,
3483     IUnknown **ppvObj);
3484 void __RPC_STUB ITypeInfo_RemoteCreateInstance_Stub(
3485     IRpcStubBuffer* This,
3486     IRpcChannelBuffer* pRpcChannelBuffer,
3487     PRPC_MESSAGE pRpcMessage,
3488     DWORD* pdwStubPhase);
3489 HRESULT STDMETHODCALLTYPE ITypeInfo_GetMops_Proxy(
3490     ITypeInfo* This,
3491     MEMBERID memid,
3492     BSTR *pBstrMops);
3493 void __RPC_STUB ITypeInfo_GetMops_Stub(
3494     IRpcStubBuffer* This,
3495     IRpcChannelBuffer* pRpcChannelBuffer,
3496     PRPC_MESSAGE pRpcMessage,
3497     DWORD* pdwStubPhase);
3498 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetContainingTypeLib_Proxy(
3499     ITypeInfo* This,
3500     ITypeLib **ppTLib,
3501     UINT *pIndex);
3502 void __RPC_STUB ITypeInfo_RemoteGetContainingTypeLib_Stub(
3503     IRpcStubBuffer* This,
3504     IRpcChannelBuffer* pRpcChannelBuffer,
3505     PRPC_MESSAGE pRpcMessage,
3506     DWORD* pdwStubPhase);
3507 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseTypeAttr_Proxy(
3508     ITypeInfo* This);
3509 void __RPC_STUB ITypeInfo_LocalReleaseTypeAttr_Stub(
3510     IRpcStubBuffer* This,
3511     IRpcChannelBuffer* pRpcChannelBuffer,
3512     PRPC_MESSAGE pRpcMessage,
3513     DWORD* pdwStubPhase);
3514 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseFuncDesc_Proxy(
3515     ITypeInfo* This);
3516 void __RPC_STUB ITypeInfo_LocalReleaseFuncDesc_Stub(
3517     IRpcStubBuffer* This,
3518     IRpcChannelBuffer* pRpcChannelBuffer,
3519     PRPC_MESSAGE pRpcMessage,
3520     DWORD* pdwStubPhase);
3521 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseVarDesc_Proxy(
3522     ITypeInfo* This);
3523 void __RPC_STUB ITypeInfo_LocalReleaseVarDesc_Stub(
3524     IRpcStubBuffer* This,
3525     IRpcChannelBuffer* pRpcChannelBuffer,
3526     PRPC_MESSAGE pRpcMessage,
3527     DWORD* pdwStubPhase);
3528 HRESULT CALLBACK ITypeInfo_GetTypeAttr_Proxy(
3529     ITypeInfo* This,
3530     TYPEATTR **ppTypeAttr);
3531 HRESULT __RPC_STUB ITypeInfo_GetTypeAttr_Stub(
3532     ITypeInfo* This,
3533     LPTYPEATTR *ppTypeAttr,
3534     CLEANLOCALSTORAGE *pDummy);
3535 HRESULT CALLBACK ITypeInfo_GetFuncDesc_Proxy(
3536     ITypeInfo* This,
3537     UINT index,
3538     FUNCDESC **ppFuncDesc);
3539 HRESULT __RPC_STUB ITypeInfo_GetFuncDesc_Stub(
3540     ITypeInfo* This,
3541     UINT index,
3542     LPFUNCDESC *ppFuncDesc,
3543     CLEANLOCALSTORAGE *pDummy);
3544 HRESULT CALLBACK ITypeInfo_GetVarDesc_Proxy(
3545     ITypeInfo* This,
3546     UINT index,
3547     VARDESC **ppVarDesc);
3548 HRESULT __RPC_STUB ITypeInfo_GetVarDesc_Stub(
3549     ITypeInfo* This,
3550     UINT index,
3551     LPVARDESC *ppVarDesc,
3552     CLEANLOCALSTORAGE *pDummy);
3553 HRESULT CALLBACK ITypeInfo_GetNames_Proxy(
3554     ITypeInfo* This,
3555     MEMBERID memid,
3556     BSTR *rgBstrNames,
3557     UINT cMaxNames,
3558     UINT *pcNames);
3559 HRESULT __RPC_STUB ITypeInfo_GetNames_Stub(
3560     ITypeInfo* This,
3561     MEMBERID memid,
3562     BSTR *rgBstrNames,
3563     UINT cMaxNames,
3564     UINT *pcNames);
3565 HRESULT CALLBACK ITypeInfo_GetIDsOfNames_Proxy(
3566     ITypeInfo* This,
3567     LPOLESTR *rgszNames,
3568     UINT cNames,
3569     MEMBERID *pMemId);
3570 HRESULT __RPC_STUB ITypeInfo_GetIDsOfNames_Stub(
3571     ITypeInfo* This);
3572 HRESULT CALLBACK ITypeInfo_Invoke_Proxy(
3573     ITypeInfo* This,
3574     PVOID pvInstance,
3575     MEMBERID memid,
3576     WORD wFlags,
3577     DISPPARAMS *pDispParams,
3578     VARIANT *pVarResult,
3579     EXCEPINFO *pExcepInfo,
3580     UINT *puArgErr);
3581 HRESULT __RPC_STUB ITypeInfo_Invoke_Stub(
3582     ITypeInfo* This);
3583 HRESULT CALLBACK ITypeInfo_GetDocumentation_Proxy(
3584     ITypeInfo* This,
3585     MEMBERID memid,
3586     BSTR *pBstrName,
3587     BSTR *pBstrDocString,
3588     DWORD *pdwHelpContext,
3589     BSTR *pBstrHelpFile);
3590 HRESULT __RPC_STUB ITypeInfo_GetDocumentation_Stub(
3591     ITypeInfo* This,
3592     MEMBERID memid,
3593     DWORD refPtrFlags,
3594     BSTR *pBstrName,
3595     BSTR *pBstrDocString,
3596     DWORD *pdwHelpContext,
3597     BSTR *pBstrHelpFile);
3598 HRESULT CALLBACK ITypeInfo_GetDllEntry_Proxy(
3599     ITypeInfo* This,
3600     MEMBERID memid,
3601     INVOKEKIND invKind,
3602     BSTR *pBstrDllName,
3603     BSTR *pBstrName,
3604     WORD *pwOrdinal);
3605 HRESULT __RPC_STUB ITypeInfo_GetDllEntry_Stub(
3606     ITypeInfo* This,
3607     MEMBERID memid,
3608     INVOKEKIND invKind,
3609     DWORD refPtrFlags,
3610     BSTR *pBstrDllName,
3611     BSTR *pBstrName,
3612     WORD *pwOrdinal);
3613 HRESULT CALLBACK ITypeInfo_AddressOfMember_Proxy(
3614     ITypeInfo* This,
3615     MEMBERID memid,
3616     INVOKEKIND invKind,
3617     PVOID *ppv);
3618 HRESULT __RPC_STUB ITypeInfo_AddressOfMember_Stub(
3619     ITypeInfo* This);
3620 HRESULT CALLBACK ITypeInfo_CreateInstance_Proxy(
3621     ITypeInfo* This,
3622     IUnknown *pUnkOuter,
3623     REFIID riid,
3624     PVOID *ppvObj);
3625 HRESULT __RPC_STUB ITypeInfo_CreateInstance_Stub(
3626     ITypeInfo* This,
3627     REFIID riid,
3628     IUnknown **ppvObj);
3629 HRESULT CALLBACK ITypeInfo_GetContainingTypeLib_Proxy(
3630     ITypeInfo* This,
3631     ITypeLib **ppTLib,
3632     UINT *pIndex);
3633 HRESULT __RPC_STUB ITypeInfo_GetContainingTypeLib_Stub(
3634     ITypeInfo* This,
3635     ITypeLib **ppTLib,
3636     UINT *pIndex);
3637 void CALLBACK ITypeInfo_ReleaseTypeAttr_Proxy(
3638     ITypeInfo* This,
3639     TYPEATTR *pTypeAttr);
3640 HRESULT __RPC_STUB ITypeInfo_ReleaseTypeAttr_Stub(
3641     ITypeInfo* This);
3642 void CALLBACK ITypeInfo_ReleaseFuncDesc_Proxy(
3643     ITypeInfo* This,
3644     FUNCDESC *pFuncDesc);
3645 HRESULT __RPC_STUB ITypeInfo_ReleaseFuncDesc_Stub(
3646     ITypeInfo* This);
3647 void CALLBACK ITypeInfo_ReleaseVarDesc_Proxy(
3648     ITypeInfo* This,
3649     VARDESC *pVarDesc);
3650 HRESULT __RPC_STUB ITypeInfo_ReleaseVarDesc_Stub(
3651     ITypeInfo* This);
3652 
3653 #endif  /* __ITypeInfo_INTERFACE_DEFINED__ */
3654 
3655 
3656 /*****************************************************************************
3657  * ITypeInfo2 interface
3658  */
3659 #ifndef __ITypeInfo2_INTERFACE_DEFINED__
3660 #define __ITypeInfo2_INTERFACE_DEFINED__
3661 
3662 typedef ITypeInfo2 *LPTYPEINFO2;
3663 
3664 DEFINE_GUID(IID_ITypeInfo2, 0x00020412, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3665 #if defined(__cplusplus) && !defined(CINTERFACE)
3666 MIDL_INTERFACE("00020412-0000-0000-c000-000000000046")
3667 ITypeInfo2 : public ITypeInfo
3668 {
3669     virtual HRESULT STDMETHODCALLTYPE GetTypeKind(
3670         TYPEKIND *pTypeKind) = 0;
3671 
3672     virtual HRESULT STDMETHODCALLTYPE GetTypeFlags(
3673         ULONG *pTypeFlags) = 0;
3674 
3675     virtual HRESULT STDMETHODCALLTYPE GetFuncIndexOfMemId(
3676         MEMBERID memid,
3677         INVOKEKIND invKind,
3678         UINT *pFuncIndex) = 0;
3679 
3680     virtual HRESULT STDMETHODCALLTYPE GetVarIndexOfMemId(
3681         MEMBERID memid,
3682         UINT *pVarIndex) = 0;
3683 
3684     virtual HRESULT STDMETHODCALLTYPE GetCustData(
3685         REFGUID guid,
3686         VARIANT *pVarVal) = 0;
3687 
3688     virtual HRESULT STDMETHODCALLTYPE GetFuncCustData(
3689         UINT index,
3690         REFGUID guid,
3691         VARIANT *pVarVal) = 0;
3692 
3693     virtual HRESULT STDMETHODCALLTYPE GetParamCustData(
3694         UINT indexFunc,
3695         UINT indexParam,
3696         REFGUID guid,
3697         VARIANT *pVarVal) = 0;
3698 
3699     virtual HRESULT STDMETHODCALLTYPE GetVarCustData(
3700         UINT index,
3701         REFGUID guid,
3702         VARIANT *pVarVal) = 0;
3703 
3704     virtual HRESULT STDMETHODCALLTYPE GetImplTypeCustData(
3705         UINT index,
3706         REFGUID guid,
3707         VARIANT *pVarVal) = 0;
3708 
3709     virtual HRESULT STDMETHODCALLTYPE GetDocumentation2(
3710         MEMBERID memid,
3711         LCID lcid,
3712         BSTR *pbstrHelpString,
3713         DWORD *pdwHelpStringContext,
3714         BSTR *pbstrHelpStringDll) = 0;
3715 
3716     virtual HRESULT STDMETHODCALLTYPE GetAllCustData(
3717         CUSTDATA *pCustData) = 0;
3718 
3719     virtual HRESULT STDMETHODCALLTYPE GetAllFuncCustData(
3720         UINT index,
3721         CUSTDATA *pCustData) = 0;
3722 
3723     virtual HRESULT STDMETHODCALLTYPE GetAllParamCustData(
3724         UINT indexFunc,
3725         UINT indexParam,
3726         CUSTDATA *pCustData) = 0;
3727 
3728     virtual HRESULT STDMETHODCALLTYPE GetAllVarCustData(
3729         UINT index,
3730         CUSTDATA *pCustData) = 0;
3731 
3732     virtual HRESULT STDMETHODCALLTYPE GetAllImplTypeCustData(
3733         UINT index,
3734         CUSTDATA *pCustData) = 0;
3735 
3736 };
3737 #ifdef __CRT_UUID_DECL
3738 __CRT_UUID_DECL(ITypeInfo2, 0x00020412, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
3739 #endif
3740 #else
3741 typedef struct ITypeInfo2Vtbl {
3742     BEGIN_INTERFACE
3743 
3744     /*** IUnknown methods ***/
3745     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3746         ITypeInfo2* This,
3747         REFIID riid,
3748         void **ppvObject);
3749 
3750     ULONG (STDMETHODCALLTYPE *AddRef)(
3751         ITypeInfo2* This);
3752 
3753     ULONG (STDMETHODCALLTYPE *Release)(
3754         ITypeInfo2* This);
3755 
3756     /*** ITypeInfo methods ***/
3757     HRESULT (STDMETHODCALLTYPE *GetTypeAttr)(
3758         ITypeInfo2* This,
3759         TYPEATTR **ppTypeAttr);
3760 
3761     HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
3762         ITypeInfo2* This,
3763         ITypeComp **ppTComp);
3764 
3765     HRESULT (STDMETHODCALLTYPE *GetFuncDesc)(
3766         ITypeInfo2* This,
3767         UINT index,
3768         FUNCDESC **ppFuncDesc);
3769 
3770     HRESULT (STDMETHODCALLTYPE *GetVarDesc)(
3771         ITypeInfo2* This,
3772         UINT index,
3773         VARDESC **ppVarDesc);
3774 
3775     HRESULT (STDMETHODCALLTYPE *GetNames)(
3776         ITypeInfo2* This,
3777         MEMBERID memid,
3778         BSTR *rgBstrNames,
3779         UINT cMaxNames,
3780         UINT *pcNames);
3781 
3782     HRESULT (STDMETHODCALLTYPE *GetRefTypeOfImplType)(
3783         ITypeInfo2* This,
3784         UINT index,
3785         HREFTYPE *pRefType);
3786 
3787     HRESULT (STDMETHODCALLTYPE *GetImplTypeFlags)(
3788         ITypeInfo2* This,
3789         UINT index,
3790         INT *pImplTypeFlags);
3791 
3792     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
3793         ITypeInfo2* This,
3794         LPOLESTR *rgszNames,
3795         UINT cNames,
3796         MEMBERID *pMemId);
3797 
3798     HRESULT (STDMETHODCALLTYPE *Invoke)(
3799         ITypeInfo2* This,
3800         PVOID pvInstance,
3801         MEMBERID memid,
3802         WORD wFlags,
3803         DISPPARAMS *pDispParams,
3804         VARIANT *pVarResult,
3805         EXCEPINFO *pExcepInfo,
3806         UINT *puArgErr);
3807 
3808     HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
3809         ITypeInfo2* This,
3810         MEMBERID memid,
3811         BSTR *pBstrName,
3812         BSTR *pBstrDocString,
3813         DWORD *pdwHelpContext,
3814         BSTR *pBstrHelpFile);
3815 
3816     HRESULT (STDMETHODCALLTYPE *GetDllEntry)(
3817         ITypeInfo2* This,
3818         MEMBERID memid,
3819         INVOKEKIND invKind,
3820         BSTR *pBstrDllName,
3821         BSTR *pBstrName,
3822         WORD *pwOrdinal);
3823 
3824     HRESULT (STDMETHODCALLTYPE *GetRefTypeInfo)(
3825         ITypeInfo2* This,
3826         HREFTYPE hRefType,
3827         ITypeInfo **ppTInfo);
3828 
3829     HRESULT (STDMETHODCALLTYPE *AddressOfMember)(
3830         ITypeInfo2* This,
3831         MEMBERID memid,
3832         INVOKEKIND invKind,
3833         PVOID *ppv);
3834 
3835     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
3836         ITypeInfo2* This,
3837         IUnknown *pUnkOuter,
3838         REFIID riid,
3839         PVOID *ppvObj);
3840 
3841     HRESULT (STDMETHODCALLTYPE *GetMops)(
3842         ITypeInfo2* This,
3843         MEMBERID memid,
3844         BSTR *pBstrMops);
3845 
3846     HRESULT (STDMETHODCALLTYPE *GetContainingTypeLib)(
3847         ITypeInfo2* This,
3848         ITypeLib **ppTLib,
3849         UINT *pIndex);
3850 
3851     void (STDMETHODCALLTYPE *ReleaseTypeAttr)(
3852         ITypeInfo2* This,
3853         TYPEATTR *pTypeAttr);
3854 
3855     void (STDMETHODCALLTYPE *ReleaseFuncDesc)(
3856         ITypeInfo2* This,
3857         FUNCDESC *pFuncDesc);
3858 
3859     void (STDMETHODCALLTYPE *ReleaseVarDesc)(
3860         ITypeInfo2* This,
3861         VARDESC *pVarDesc);
3862 
3863     /*** ITypeInfo2 methods ***/
3864     HRESULT (STDMETHODCALLTYPE *GetTypeKind)(
3865         ITypeInfo2* This,
3866         TYPEKIND *pTypeKind);
3867 
3868     HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
3869         ITypeInfo2* This,
3870         ULONG *pTypeFlags);
3871 
3872     HRESULT (STDMETHODCALLTYPE *GetFuncIndexOfMemId)(
3873         ITypeInfo2* This,
3874         MEMBERID memid,
3875         INVOKEKIND invKind,
3876         UINT *pFuncIndex);
3877 
3878     HRESULT (STDMETHODCALLTYPE *GetVarIndexOfMemId)(
3879         ITypeInfo2* This,
3880         MEMBERID memid,
3881         UINT *pVarIndex);
3882 
3883     HRESULT (STDMETHODCALLTYPE *GetCustData)(
3884         ITypeInfo2* This,
3885         REFGUID guid,
3886         VARIANT *pVarVal);
3887 
3888     HRESULT (STDMETHODCALLTYPE *GetFuncCustData)(
3889         ITypeInfo2* This,
3890         UINT index,
3891         REFGUID guid,
3892         VARIANT *pVarVal);
3893 
3894     HRESULT (STDMETHODCALLTYPE *GetParamCustData)(
3895         ITypeInfo2* This,
3896         UINT indexFunc,
3897         UINT indexParam,
3898         REFGUID guid,
3899         VARIANT *pVarVal);
3900 
3901     HRESULT (STDMETHODCALLTYPE *GetVarCustData)(
3902         ITypeInfo2* This,
3903         UINT index,
3904         REFGUID guid,
3905         VARIANT *pVarVal);
3906 
3907     HRESULT (STDMETHODCALLTYPE *GetImplTypeCustData)(
3908         ITypeInfo2* This,
3909         UINT index,
3910         REFGUID guid,
3911         VARIANT *pVarVal);
3912 
3913     HRESULT (STDMETHODCALLTYPE *GetDocumentation2)(
3914         ITypeInfo2* This,
3915         MEMBERID memid,
3916         LCID lcid,
3917         BSTR *pbstrHelpString,
3918         DWORD *pdwHelpStringContext,
3919         BSTR *pbstrHelpStringDll);
3920 
3921     HRESULT (STDMETHODCALLTYPE *GetAllCustData)(
3922         ITypeInfo2* This,
3923         CUSTDATA *pCustData);
3924 
3925     HRESULT (STDMETHODCALLTYPE *GetAllFuncCustData)(
3926         ITypeInfo2* This,
3927         UINT index,
3928         CUSTDATA *pCustData);
3929 
3930     HRESULT (STDMETHODCALLTYPE *GetAllParamCustData)(
3931         ITypeInfo2* This,
3932         UINT indexFunc,
3933         UINT indexParam,
3934         CUSTDATA *pCustData);
3935 
3936     HRESULT (STDMETHODCALLTYPE *GetAllVarCustData)(
3937         ITypeInfo2* This,
3938         UINT index,
3939         CUSTDATA *pCustData);
3940 
3941     HRESULT (STDMETHODCALLTYPE *GetAllImplTypeCustData)(
3942         ITypeInfo2* This,
3943         UINT index,
3944         CUSTDATA *pCustData);
3945 
3946     END_INTERFACE
3947 } ITypeInfo2Vtbl;
3948 interface ITypeInfo2 {
3949     CONST_VTBL ITypeInfo2Vtbl* lpVtbl;
3950 };
3951 
3952 #ifdef COBJMACROS
3953 #ifndef WIDL_C_INLINE_WRAPPERS
3954 /*** IUnknown methods ***/
3955 #define ITypeInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3956 #define ITypeInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
3957 #define ITypeInfo2_Release(This) (This)->lpVtbl->Release(This)
3958 /*** ITypeInfo methods ***/
3959 #define ITypeInfo2_GetTypeAttr(This,ppTypeAttr) (This)->lpVtbl->GetTypeAttr(This,ppTypeAttr)
3960 #define ITypeInfo2_GetTypeComp(This,ppTComp) (This)->lpVtbl->GetTypeComp(This,ppTComp)
3961 #define ITypeInfo2_GetFuncDesc(This,index,ppFuncDesc) (This)->lpVtbl->GetFuncDesc(This,index,ppFuncDesc)
3962 #define ITypeInfo2_GetVarDesc(This,index,ppVarDesc) (This)->lpVtbl->GetVarDesc(This,index,ppVarDesc)
3963 #define ITypeInfo2_GetNames(This,memid,rgBstrNames,cMaxNames,pcNames) (This)->lpVtbl->GetNames(This,memid,rgBstrNames,cMaxNames,pcNames)
3964 #define ITypeInfo2_GetRefTypeOfImplType(This,index,pRefType) (This)->lpVtbl->GetRefTypeOfImplType(This,index,pRefType)
3965 #define ITypeInfo2_GetImplTypeFlags(This,index,pImplTypeFlags) (This)->lpVtbl->GetImplTypeFlags(This,index,pImplTypeFlags)
3966 #define ITypeInfo2_GetIDsOfNames(This,rgszNames,cNames,pMemId) (This)->lpVtbl->GetIDsOfNames(This,rgszNames,cNames,pMemId)
3967 #define ITypeInfo2_Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
3968 #define ITypeInfo2_GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) (This)->lpVtbl->GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile)
3969 #define ITypeInfo2_GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal) (This)->lpVtbl->GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal)
3970 #define ITypeInfo2_GetRefTypeInfo(This,hRefType,ppTInfo) (This)->lpVtbl->GetRefTypeInfo(This,hRefType,ppTInfo)
3971 #define ITypeInfo2_AddressOfMember(This,memid,invKind,ppv) (This)->lpVtbl->AddressOfMember(This,memid,invKind,ppv)
3972 #define ITypeInfo2_CreateInstance(This,pUnkOuter,riid,ppvObj) (This)->lpVtbl->CreateInstance(This,pUnkOuter,riid,ppvObj)
3973 #define ITypeInfo2_GetMops(This,memid,pBstrMops) (This)->lpVtbl->GetMops(This,memid,pBstrMops)
3974 #define ITypeInfo2_GetContainingTypeLib(This,ppTLib,pIndex) (This)->lpVtbl->GetContainingTypeLib(This,ppTLib,pIndex)
3975 #define ITypeInfo2_ReleaseTypeAttr(This,pTypeAttr) (This)->lpVtbl->ReleaseTypeAttr(This,pTypeAttr)
3976 #define ITypeInfo2_ReleaseFuncDesc(This,pFuncDesc) (This)->lpVtbl->ReleaseFuncDesc(This,pFuncDesc)
3977 #define ITypeInfo2_ReleaseVarDesc(This,pVarDesc) (This)->lpVtbl->ReleaseVarDesc(This,pVarDesc)
3978 /*** ITypeInfo2 methods ***/
3979 #define ITypeInfo2_GetTypeKind(This,pTypeKind) (This)->lpVtbl->GetTypeKind(This,pTypeKind)
3980 #define ITypeInfo2_GetTypeFlags(This,pTypeFlags) (This)->lpVtbl->GetTypeFlags(This,pTypeFlags)
3981 #define ITypeInfo2_GetFuncIndexOfMemId(This,memid,invKind,pFuncIndex) (This)->lpVtbl->GetFuncIndexOfMemId(This,memid,invKind,pFuncIndex)
3982 #define ITypeInfo2_GetVarIndexOfMemId(This,memid,pVarIndex) (This)->lpVtbl->GetVarIndexOfMemId(This,memid,pVarIndex)
3983 #define ITypeInfo2_GetCustData(This,guid,pVarVal) (This)->lpVtbl->GetCustData(This,guid,pVarVal)
3984 #define ITypeInfo2_GetFuncCustData(This,index,guid,pVarVal) (This)->lpVtbl->GetFuncCustData(This,index,guid,pVarVal)
3985 #define ITypeInfo2_GetParamCustData(This,indexFunc,indexParam,guid,pVarVal) (This)->lpVtbl->GetParamCustData(This,indexFunc,indexParam,guid,pVarVal)
3986 #define ITypeInfo2_GetVarCustData(This,index,guid,pVarVal) (This)->lpVtbl->GetVarCustData(This,index,guid,pVarVal)
3987 #define ITypeInfo2_GetImplTypeCustData(This,index,guid,pVarVal) (This)->lpVtbl->GetImplTypeCustData(This,index,guid,pVarVal)
3988 #define ITypeInfo2_GetDocumentation2(This,memid,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll) (This)->lpVtbl->GetDocumentation2(This,memid,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll)
3989 #define ITypeInfo2_GetAllCustData(This,pCustData) (This)->lpVtbl->GetAllCustData(This,pCustData)
3990 #define ITypeInfo2_GetAllFuncCustData(This,index,pCustData) (This)->lpVtbl->GetAllFuncCustData(This,index,pCustData)
3991 #define ITypeInfo2_GetAllParamCustData(This,indexFunc,indexParam,pCustData) (This)->lpVtbl->GetAllParamCustData(This,indexFunc,indexParam,pCustData)
3992 #define ITypeInfo2_GetAllVarCustData(This,index,pCustData) (This)->lpVtbl->GetAllVarCustData(This,index,pCustData)
3993 #define ITypeInfo2_GetAllImplTypeCustData(This,index,pCustData) (This)->lpVtbl->GetAllImplTypeCustData(This,index,pCustData)
3994 #else
3995 /*** IUnknown methods ***/
3996 static FORCEINLINE HRESULT ITypeInfo2_QueryInterface(ITypeInfo2* This,REFIID riid,void **ppvObject) {
3997     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3998 }
3999 static FORCEINLINE ULONG ITypeInfo2_AddRef(ITypeInfo2* This) {
4000     return This->lpVtbl->AddRef(This);
4001 }
4002 static FORCEINLINE ULONG ITypeInfo2_Release(ITypeInfo2* This) {
4003     return This->lpVtbl->Release(This);
4004 }
4005 /*** ITypeInfo methods ***/
4006 static FORCEINLINE HRESULT ITypeInfo2_GetTypeAttr(ITypeInfo2* This,TYPEATTR **ppTypeAttr) {
4007     return This->lpVtbl->GetTypeAttr(This,ppTypeAttr);
4008 }
4009 static FORCEINLINE HRESULT ITypeInfo2_GetTypeComp(ITypeInfo2* This,ITypeComp **ppTComp) {
4010     return This->lpVtbl->GetTypeComp(This,ppTComp);
4011 }
4012 static FORCEINLINE HRESULT ITypeInfo2_GetFuncDesc(ITypeInfo2* This,UINT index,FUNCDESC **ppFuncDesc) {
4013     return This->lpVtbl->GetFuncDesc(This,index,ppFuncDesc);
4014 }
4015 static FORCEINLINE HRESULT ITypeInfo2_GetVarDesc(ITypeInfo2* This,UINT index,VARDESC **ppVarDesc) {
4016     return This->lpVtbl->GetVarDesc(This,index,ppVarDesc);
4017 }
4018 static FORCEINLINE HRESULT ITypeInfo2_GetNames(ITypeInfo2* This,MEMBERID memid,BSTR *rgBstrNames,UINT cMaxNames,UINT *pcNames) {
4019     return This->lpVtbl->GetNames(This,memid,rgBstrNames,cMaxNames,pcNames);
4020 }
4021 static FORCEINLINE HRESULT ITypeInfo2_GetRefTypeOfImplType(ITypeInfo2* This,UINT index,HREFTYPE *pRefType) {
4022     return This->lpVtbl->GetRefTypeOfImplType(This,index,pRefType);
4023 }
4024 static FORCEINLINE HRESULT ITypeInfo2_GetImplTypeFlags(ITypeInfo2* This,UINT index,INT *pImplTypeFlags) {
4025     return This->lpVtbl->GetImplTypeFlags(This,index,pImplTypeFlags);
4026 }
4027 static FORCEINLINE HRESULT ITypeInfo2_GetIDsOfNames(ITypeInfo2* This,LPOLESTR *rgszNames,UINT cNames,MEMBERID *pMemId) {
4028     return This->lpVtbl->GetIDsOfNames(This,rgszNames,cNames,pMemId);
4029 }
4030 static FORCEINLINE HRESULT ITypeInfo2_Invoke(ITypeInfo2* This,PVOID pvInstance,MEMBERID memid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
4031     return This->lpVtbl->Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
4032 }
4033 static FORCEINLINE HRESULT ITypeInfo2_GetDocumentation(ITypeInfo2* This,MEMBERID memid,BSTR *pBstrName,BSTR *pBstrDocString,DWORD *pdwHelpContext,BSTR *pBstrHelpFile) {
4034     return This->lpVtbl->GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile);
4035 }
4036 static FORCEINLINE HRESULT ITypeInfo2_GetDllEntry(ITypeInfo2* This,MEMBERID memid,INVOKEKIND invKind,BSTR *pBstrDllName,BSTR *pBstrName,WORD *pwOrdinal) {
4037     return This->lpVtbl->GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal);
4038 }
4039 static FORCEINLINE HRESULT ITypeInfo2_GetRefTypeInfo(ITypeInfo2* This,HREFTYPE hRefType,ITypeInfo **ppTInfo) {
4040     return This->lpVtbl->GetRefTypeInfo(This,hRefType,ppTInfo);
4041 }
4042 static FORCEINLINE HRESULT ITypeInfo2_AddressOfMember(ITypeInfo2* This,MEMBERID memid,INVOKEKIND invKind,PVOID *ppv) {
4043     return This->lpVtbl->AddressOfMember(This,memid,invKind,ppv);
4044 }
4045 static FORCEINLINE HRESULT ITypeInfo2_CreateInstance(ITypeInfo2* This,IUnknown *pUnkOuter,REFIID riid,PVOID *ppvObj) {
4046     return This->lpVtbl->CreateInstance(This,pUnkOuter,riid,ppvObj);
4047 }
4048 static FORCEINLINE HRESULT ITypeInfo2_GetMops(ITypeInfo2* This,MEMBERID memid,BSTR *pBstrMops) {
4049     return This->lpVtbl->GetMops(This,memid,pBstrMops);
4050 }
4051 static FORCEINLINE HRESULT ITypeInfo2_GetContainingTypeLib(ITypeInfo2* This,ITypeLib **ppTLib,UINT *pIndex) {
4052     return This->lpVtbl->GetContainingTypeLib(This,ppTLib,pIndex);
4053 }
4054 static FORCEINLINE void ITypeInfo2_ReleaseTypeAttr(ITypeInfo2* This,TYPEATTR *pTypeAttr) {
4055     This->lpVtbl->ReleaseTypeAttr(This,pTypeAttr);
4056 }
4057 static FORCEINLINE void ITypeInfo2_ReleaseFuncDesc(ITypeInfo2* This,FUNCDESC *pFuncDesc) {
4058     This->lpVtbl->ReleaseFuncDesc(This,pFuncDesc);
4059 }
4060 static FORCEINLINE void ITypeInfo2_ReleaseVarDesc(ITypeInfo2* This,VARDESC *pVarDesc) {
4061     This->lpVtbl->ReleaseVarDesc(This,pVarDesc);
4062 }
4063 /*** ITypeInfo2 methods ***/
4064 static FORCEINLINE HRESULT ITypeInfo2_GetTypeKind(ITypeInfo2* This,TYPEKIND *pTypeKind) {
4065     return This->lpVtbl->GetTypeKind(This,pTypeKind);
4066 }
4067 static FORCEINLINE HRESULT ITypeInfo2_GetTypeFlags(ITypeInfo2* This,ULONG *pTypeFlags) {
4068     return This->lpVtbl->GetTypeFlags(This,pTypeFlags);
4069 }
4070 static FORCEINLINE HRESULT ITypeInfo2_GetFuncIndexOfMemId(ITypeInfo2* This,MEMBERID memid,INVOKEKIND invKind,UINT *pFuncIndex) {
4071     return This->lpVtbl->GetFuncIndexOfMemId(This,memid,invKind,pFuncIndex);
4072 }
4073 static FORCEINLINE HRESULT ITypeInfo2_GetVarIndexOfMemId(ITypeInfo2* This,MEMBERID memid,UINT *pVarIndex) {
4074     return This->lpVtbl->GetVarIndexOfMemId(This,memid,pVarIndex);
4075 }
4076 static FORCEINLINE HRESULT ITypeInfo2_GetCustData(ITypeInfo2* This,REFGUID guid,VARIANT *pVarVal) {
4077     return This->lpVtbl->GetCustData(This,guid,pVarVal);
4078 }
4079 static FORCEINLINE HRESULT ITypeInfo2_GetFuncCustData(ITypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) {
4080     return This->lpVtbl->GetFuncCustData(This,index,guid,pVarVal);
4081 }
4082 static FORCEINLINE HRESULT ITypeInfo2_GetParamCustData(ITypeInfo2* This,UINT indexFunc,UINT indexParam,REFGUID guid,VARIANT *pVarVal) {
4083     return This->lpVtbl->GetParamCustData(This,indexFunc,indexParam,guid,pVarVal);
4084 }
4085 static FORCEINLINE HRESULT ITypeInfo2_GetVarCustData(ITypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) {
4086     return This->lpVtbl->GetVarCustData(This,index,guid,pVarVal);
4087 }
4088 static FORCEINLINE HRESULT ITypeInfo2_GetImplTypeCustData(ITypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) {
4089     return This->lpVtbl->GetImplTypeCustData(This,index,guid,pVarVal);
4090 }
4091 static FORCEINLINE HRESULT ITypeInfo2_GetDocumentation2(ITypeInfo2* This,MEMBERID memid,LCID lcid,BSTR *pbstrHelpString,DWORD *pdwHelpStringContext,BSTR *pbstrHelpStringDll) {
4092     return This->lpVtbl->GetDocumentation2(This,memid,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll);
4093 }
4094 static FORCEINLINE HRESULT ITypeInfo2_GetAllCustData(ITypeInfo2* This,CUSTDATA *pCustData) {
4095     return This->lpVtbl->GetAllCustData(This,pCustData);
4096 }
4097 static FORCEINLINE HRESULT ITypeInfo2_GetAllFuncCustData(ITypeInfo2* This,UINT index,CUSTDATA *pCustData) {
4098     return This->lpVtbl->GetAllFuncCustData(This,index,pCustData);
4099 }
4100 static FORCEINLINE HRESULT ITypeInfo2_GetAllParamCustData(ITypeInfo2* This,UINT indexFunc,UINT indexParam,CUSTDATA *pCustData) {
4101     return This->lpVtbl->GetAllParamCustData(This,indexFunc,indexParam,pCustData);
4102 }
4103 static FORCEINLINE HRESULT ITypeInfo2_GetAllVarCustData(ITypeInfo2* This,UINT index,CUSTDATA *pCustData) {
4104     return This->lpVtbl->GetAllVarCustData(This,index,pCustData);
4105 }
4106 static FORCEINLINE HRESULT ITypeInfo2_GetAllImplTypeCustData(ITypeInfo2* This,UINT index,CUSTDATA *pCustData) {
4107     return This->lpVtbl->GetAllImplTypeCustData(This,index,pCustData);
4108 }
4109 #endif
4110 #endif
4111 
4112 #endif
4113 
4114 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetTypeKind_Proxy(
4115     ITypeInfo2* This,
4116     TYPEKIND *pTypeKind);
4117 void __RPC_STUB ITypeInfo2_GetTypeKind_Stub(
4118     IRpcStubBuffer* This,
4119     IRpcChannelBuffer* pRpcChannelBuffer,
4120     PRPC_MESSAGE pRpcMessage,
4121     DWORD* pdwStubPhase);
4122 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetTypeFlags_Proxy(
4123     ITypeInfo2* This,
4124     ULONG *pTypeFlags);
4125 void __RPC_STUB ITypeInfo2_GetTypeFlags_Stub(
4126     IRpcStubBuffer* This,
4127     IRpcChannelBuffer* pRpcChannelBuffer,
4128     PRPC_MESSAGE pRpcMessage,
4129     DWORD* pdwStubPhase);
4130 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetFuncIndexOfMemId_Proxy(
4131     ITypeInfo2* This,
4132     MEMBERID memid,
4133     INVOKEKIND invKind,
4134     UINT *pFuncIndex);
4135 void __RPC_STUB ITypeInfo2_GetFuncIndexOfMemId_Stub(
4136     IRpcStubBuffer* This,
4137     IRpcChannelBuffer* pRpcChannelBuffer,
4138     PRPC_MESSAGE pRpcMessage,
4139     DWORD* pdwStubPhase);
4140 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetVarIndexOfMemId_Proxy(
4141     ITypeInfo2* This,
4142     MEMBERID memid,
4143     UINT *pVarIndex);
4144 void __RPC_STUB ITypeInfo2_GetVarIndexOfMemId_Stub(
4145     IRpcStubBuffer* This,
4146     IRpcChannelBuffer* pRpcChannelBuffer,
4147     PRPC_MESSAGE pRpcMessage,
4148     DWORD* pdwStubPhase);
4149 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetCustData_Proxy(
4150     ITypeInfo2* This,
4151     REFGUID guid,
4152     VARIANT *pVarVal);
4153 void __RPC_STUB ITypeInfo2_GetCustData_Stub(
4154     IRpcStubBuffer* This,
4155     IRpcChannelBuffer* pRpcChannelBuffer,
4156     PRPC_MESSAGE pRpcMessage,
4157     DWORD* pdwStubPhase);
4158 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetFuncCustData_Proxy(
4159     ITypeInfo2* This,
4160     UINT index,
4161     REFGUID guid,
4162     VARIANT *pVarVal);
4163 void __RPC_STUB ITypeInfo2_GetFuncCustData_Stub(
4164     IRpcStubBuffer* This,
4165     IRpcChannelBuffer* pRpcChannelBuffer,
4166     PRPC_MESSAGE pRpcMessage,
4167     DWORD* pdwStubPhase);
4168 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetParamCustData_Proxy(
4169     ITypeInfo2* This,
4170     UINT indexFunc,
4171     UINT indexParam,
4172     REFGUID guid,
4173     VARIANT *pVarVal);
4174 void __RPC_STUB ITypeInfo2_GetParamCustData_Stub(
4175     IRpcStubBuffer* This,
4176     IRpcChannelBuffer* pRpcChannelBuffer,
4177     PRPC_MESSAGE pRpcMessage,
4178     DWORD* pdwStubPhase);
4179 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetVarCustData_Proxy(
4180     ITypeInfo2* This,
4181     UINT index,
4182     REFGUID guid,
4183     VARIANT *pVarVal);
4184 void __RPC_STUB ITypeInfo2_GetVarCustData_Stub(
4185     IRpcStubBuffer* This,
4186     IRpcChannelBuffer* pRpcChannelBuffer,
4187     PRPC_MESSAGE pRpcMessage,
4188     DWORD* pdwStubPhase);
4189 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetImplTypeCustData_Proxy(
4190     ITypeInfo2* This,
4191     UINT index,
4192     REFGUID guid,
4193     VARIANT *pVarVal);
4194 void __RPC_STUB ITypeInfo2_GetImplTypeCustData_Stub(
4195     IRpcStubBuffer* This,
4196     IRpcChannelBuffer* pRpcChannelBuffer,
4197     PRPC_MESSAGE pRpcMessage,
4198     DWORD* pdwStubPhase);
4199 HRESULT STDMETHODCALLTYPE ITypeInfo2_RemoteGetDocumentation2_Proxy(
4200     ITypeInfo2* This,
4201     MEMBERID memid,
4202     LCID lcid,
4203     DWORD refPtrFlags,
4204     BSTR *pbstrHelpString,
4205     DWORD *pdwHelpStringContext,
4206     BSTR *pbstrHelpStringDll);
4207 void __RPC_STUB ITypeInfo2_RemoteGetDocumentation2_Stub(
4208     IRpcStubBuffer* This,
4209     IRpcChannelBuffer* pRpcChannelBuffer,
4210     PRPC_MESSAGE pRpcMessage,
4211     DWORD* pdwStubPhase);
4212 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetAllCustData_Proxy(
4213     ITypeInfo2* This,
4214     CUSTDATA *pCustData);
4215 void __RPC_STUB ITypeInfo2_GetAllCustData_Stub(
4216     IRpcStubBuffer* This,
4217     IRpcChannelBuffer* pRpcChannelBuffer,
4218     PRPC_MESSAGE pRpcMessage,
4219     DWORD* pdwStubPhase);
4220 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetAllFuncCustData_Proxy(
4221     ITypeInfo2* This,
4222     UINT index,
4223     CUSTDATA *pCustData);
4224 void __RPC_STUB ITypeInfo2_GetAllFuncCustData_Stub(
4225     IRpcStubBuffer* This,
4226     IRpcChannelBuffer* pRpcChannelBuffer,
4227     PRPC_MESSAGE pRpcMessage,
4228     DWORD* pdwStubPhase);
4229 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetAllParamCustData_Proxy(
4230     ITypeInfo2* This,
4231     UINT indexFunc,
4232     UINT indexParam,
4233     CUSTDATA *pCustData);
4234 void __RPC_STUB ITypeInfo2_GetAllParamCustData_Stub(
4235     IRpcStubBuffer* This,
4236     IRpcChannelBuffer* pRpcChannelBuffer,
4237     PRPC_MESSAGE pRpcMessage,
4238     DWORD* pdwStubPhase);
4239 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetAllVarCustData_Proxy(
4240     ITypeInfo2* This,
4241     UINT index,
4242     CUSTDATA *pCustData);
4243 void __RPC_STUB ITypeInfo2_GetAllVarCustData_Stub(
4244     IRpcStubBuffer* This,
4245     IRpcChannelBuffer* pRpcChannelBuffer,
4246     PRPC_MESSAGE pRpcMessage,
4247     DWORD* pdwStubPhase);
4248 HRESULT STDMETHODCALLTYPE ITypeInfo2_GetAllImplTypeCustData_Proxy(
4249     ITypeInfo2* This,
4250     UINT index,
4251     CUSTDATA *pCustData);
4252 void __RPC_STUB ITypeInfo2_GetAllImplTypeCustData_Stub(
4253     IRpcStubBuffer* This,
4254     IRpcChannelBuffer* pRpcChannelBuffer,
4255     PRPC_MESSAGE pRpcMessage,
4256     DWORD* pdwStubPhase);
4257 HRESULT CALLBACK ITypeInfo2_GetDocumentation2_Proxy(
4258     ITypeInfo2* This,
4259     MEMBERID memid,
4260     LCID lcid,
4261     BSTR *pbstrHelpString,
4262     DWORD *pdwHelpStringContext,
4263     BSTR *pbstrHelpStringDll);
4264 HRESULT __RPC_STUB ITypeInfo2_GetDocumentation2_Stub(
4265     ITypeInfo2* This,
4266     MEMBERID memid,
4267     LCID lcid,
4268     DWORD refPtrFlags,
4269     BSTR *pbstrHelpString,
4270     DWORD *pdwHelpStringContext,
4271     BSTR *pbstrHelpStringDll);
4272 
4273 #endif  /* __ITypeInfo2_INTERFACE_DEFINED__ */
4274 
4275 #endif
4276 
4277 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
4278 /*****************************************************************************
4279  * ITypeLib interface
4280  */
4281 #ifndef __ITypeLib_INTERFACE_DEFINED__
4282 #define __ITypeLib_INTERFACE_DEFINED__
4283 
4284 typedef enum tagSYSKIND {
4285     SYS_WIN16 = 0,
4286     SYS_WIN32 = 1,
4287     SYS_MAC = 2,
4288     SYS_WIN64 = 3
4289 } SYSKIND;
4290 
4291 typedef enum tagLIBFLAGS {
4292     LIBFLAG_FRESTRICTED = 0x1,
4293     LIBFLAG_FCONTROL = 0x2,
4294     LIBFLAG_FHIDDEN = 0x4,
4295     LIBFLAG_FHASDISKIMAGE = 0x8
4296 } LIBFLAGS;
4297 
4298 typedef ITypeLib *LPTYPELIB;
4299 
4300 typedef struct tagTLIBATTR {
4301     GUID guid;
4302     LCID lcid;
4303     SYSKIND syskind;
4304     WORD wMajorVerNum;
4305     WORD wMinorVerNum;
4306     WORD wLibFlags;
4307 } TLIBATTR;
4308 typedef struct tagTLIBATTR *LPTLIBATTR;
4309 
4310 DEFINE_GUID(IID_ITypeLib, 0x00020402, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4311 #if defined(__cplusplus) && !defined(CINTERFACE)
4312 MIDL_INTERFACE("00020402-0000-0000-c000-000000000046")
4313 ITypeLib : public IUnknown
4314 {
4315     virtual UINT STDMETHODCALLTYPE GetTypeInfoCount(
4316         ) = 0;
4317 
4318     virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
4319         UINT index,
4320         ITypeInfo **ppTInfo) = 0;
4321 
4322     virtual HRESULT STDMETHODCALLTYPE GetTypeInfoType(
4323         UINT index,
4324         TYPEKIND *pTKind) = 0;
4325 
4326     virtual HRESULT STDMETHODCALLTYPE GetTypeInfoOfGuid(
4327         REFGUID guid,
4328         ITypeInfo **ppTinfo) = 0;
4329 
4330     virtual HRESULT STDMETHODCALLTYPE GetLibAttr(
4331         TLIBATTR **ppTLibAttr) = 0;
4332 
4333     virtual HRESULT STDMETHODCALLTYPE GetTypeComp(
4334         ITypeComp **ppTComp) = 0;
4335 
4336     virtual HRESULT STDMETHODCALLTYPE GetDocumentation(
4337         INT index,
4338         BSTR *pBstrName,
4339         BSTR *pBstrDocString,
4340         DWORD *pdwHelpContext,
4341         BSTR *pBstrHelpFile) = 0;
4342 
4343     virtual HRESULT STDMETHODCALLTYPE IsName(
4344         LPOLESTR szNameBuf,
4345         ULONG lHashVal,
4346         WINBOOL *pfName) = 0;
4347 
4348     virtual HRESULT STDMETHODCALLTYPE FindName(
4349         LPOLESTR szNameBuf,
4350         ULONG lHashVal,
4351         ITypeInfo **ppTInfo,
4352         MEMBERID *rgMemId,
4353         USHORT *pcFound) = 0;
4354 
4355     virtual void STDMETHODCALLTYPE ReleaseTLibAttr(
4356         TLIBATTR *pTLibAttr) = 0;
4357 
4358 };
4359 #ifdef __CRT_UUID_DECL
4360 __CRT_UUID_DECL(ITypeLib, 0x00020402, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4361 #endif
4362 #else
4363 typedef struct ITypeLibVtbl {
4364     BEGIN_INTERFACE
4365 
4366     /*** IUnknown methods ***/
4367     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4368         ITypeLib* This,
4369         REFIID riid,
4370         void **ppvObject);
4371 
4372     ULONG (STDMETHODCALLTYPE *AddRef)(
4373         ITypeLib* This);
4374 
4375     ULONG (STDMETHODCALLTYPE *Release)(
4376         ITypeLib* This);
4377 
4378     /*** ITypeLib methods ***/
4379     UINT (STDMETHODCALLTYPE *GetTypeInfoCount)(
4380         ITypeLib* This);
4381 
4382     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
4383         ITypeLib* This,
4384         UINT index,
4385         ITypeInfo **ppTInfo);
4386 
4387     HRESULT (STDMETHODCALLTYPE *GetTypeInfoType)(
4388         ITypeLib* This,
4389         UINT index,
4390         TYPEKIND *pTKind);
4391 
4392     HRESULT (STDMETHODCALLTYPE *GetTypeInfoOfGuid)(
4393         ITypeLib* This,
4394         REFGUID guid,
4395         ITypeInfo **ppTinfo);
4396 
4397     HRESULT (STDMETHODCALLTYPE *GetLibAttr)(
4398         ITypeLib* This,
4399         TLIBATTR **ppTLibAttr);
4400 
4401     HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
4402         ITypeLib* This,
4403         ITypeComp **ppTComp);
4404 
4405     HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
4406         ITypeLib* This,
4407         INT index,
4408         BSTR *pBstrName,
4409         BSTR *pBstrDocString,
4410         DWORD *pdwHelpContext,
4411         BSTR *pBstrHelpFile);
4412 
4413     HRESULT (STDMETHODCALLTYPE *IsName)(
4414         ITypeLib* This,
4415         LPOLESTR szNameBuf,
4416         ULONG lHashVal,
4417         WINBOOL *pfName);
4418 
4419     HRESULT (STDMETHODCALLTYPE *FindName)(
4420         ITypeLib* This,
4421         LPOLESTR szNameBuf,
4422         ULONG lHashVal,
4423         ITypeInfo **ppTInfo,
4424         MEMBERID *rgMemId,
4425         USHORT *pcFound);
4426 
4427     void (STDMETHODCALLTYPE *ReleaseTLibAttr)(
4428         ITypeLib* This,
4429         TLIBATTR *pTLibAttr);
4430 
4431     END_INTERFACE
4432 } ITypeLibVtbl;
4433 interface ITypeLib {
4434     CONST_VTBL ITypeLibVtbl* lpVtbl;
4435 };
4436 
4437 #ifdef COBJMACROS
4438 #ifndef WIDL_C_INLINE_WRAPPERS
4439 /*** IUnknown methods ***/
4440 #define ITypeLib_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4441 #define ITypeLib_AddRef(This) (This)->lpVtbl->AddRef(This)
4442 #define ITypeLib_Release(This) (This)->lpVtbl->Release(This)
4443 /*** ITypeLib methods ***/
4444 #define ITypeLib_GetTypeInfoCount(This) (This)->lpVtbl->GetTypeInfoCount(This)
4445 #define ITypeLib_GetTypeInfo(This,index,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,index,ppTInfo)
4446 #define ITypeLib_GetTypeInfoType(This,index,pTKind) (This)->lpVtbl->GetTypeInfoType(This,index,pTKind)
4447 #define ITypeLib_GetTypeInfoOfGuid(This,guid,ppTinfo) (This)->lpVtbl->GetTypeInfoOfGuid(This,guid,ppTinfo)
4448 #define ITypeLib_GetLibAttr(This,ppTLibAttr) (This)->lpVtbl->GetLibAttr(This,ppTLibAttr)
4449 #define ITypeLib_GetTypeComp(This,ppTComp) (This)->lpVtbl->GetTypeComp(This,ppTComp)
4450 #define ITypeLib_GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) (This)->lpVtbl->GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile)
4451 #define ITypeLib_IsName(This,szNameBuf,lHashVal,pfName) (This)->lpVtbl->IsName(This,szNameBuf,lHashVal,pfName)
4452 #define ITypeLib_FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound) (This)->lpVtbl->FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound)
4453 #define ITypeLib_ReleaseTLibAttr(This,pTLibAttr) (This)->lpVtbl->ReleaseTLibAttr(This,pTLibAttr)
4454 #else
4455 /*** IUnknown methods ***/
4456 static FORCEINLINE HRESULT ITypeLib_QueryInterface(ITypeLib* This,REFIID riid,void **ppvObject) {
4457     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4458 }
4459 static FORCEINLINE ULONG ITypeLib_AddRef(ITypeLib* This) {
4460     return This->lpVtbl->AddRef(This);
4461 }
4462 static FORCEINLINE ULONG ITypeLib_Release(ITypeLib* This) {
4463     return This->lpVtbl->Release(This);
4464 }
4465 /*** ITypeLib methods ***/
4466 static FORCEINLINE UINT ITypeLib_GetTypeInfoCount(ITypeLib* This) {
4467     return This->lpVtbl->GetTypeInfoCount(This);
4468 }
4469 static FORCEINLINE HRESULT ITypeLib_GetTypeInfo(ITypeLib* This,UINT index,ITypeInfo **ppTInfo) {
4470     return This->lpVtbl->GetTypeInfo(This,index,ppTInfo);
4471 }
4472 static FORCEINLINE HRESULT ITypeLib_GetTypeInfoType(ITypeLib* This,UINT index,TYPEKIND *pTKind) {
4473     return This->lpVtbl->GetTypeInfoType(This,index,pTKind);
4474 }
4475 static FORCEINLINE HRESULT ITypeLib_GetTypeInfoOfGuid(ITypeLib* This,REFGUID guid,ITypeInfo **ppTinfo) {
4476     return This->lpVtbl->GetTypeInfoOfGuid(This,guid,ppTinfo);
4477 }
4478 static FORCEINLINE HRESULT ITypeLib_GetLibAttr(ITypeLib* This,TLIBATTR **ppTLibAttr) {
4479     return This->lpVtbl->GetLibAttr(This,ppTLibAttr);
4480 }
4481 static FORCEINLINE HRESULT ITypeLib_GetTypeComp(ITypeLib* This,ITypeComp **ppTComp) {
4482     return This->lpVtbl->GetTypeComp(This,ppTComp);
4483 }
4484 static FORCEINLINE HRESULT ITypeLib_GetDocumentation(ITypeLib* This,INT index,BSTR *pBstrName,BSTR *pBstrDocString,DWORD *pdwHelpContext,BSTR *pBstrHelpFile) {
4485     return This->lpVtbl->GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile);
4486 }
4487 static FORCEINLINE HRESULT ITypeLib_IsName(ITypeLib* This,LPOLESTR szNameBuf,ULONG lHashVal,WINBOOL *pfName) {
4488     return This->lpVtbl->IsName(This,szNameBuf,lHashVal,pfName);
4489 }
4490 static FORCEINLINE HRESULT ITypeLib_FindName(ITypeLib* This,LPOLESTR szNameBuf,ULONG lHashVal,ITypeInfo **ppTInfo,MEMBERID *rgMemId,USHORT *pcFound) {
4491     return This->lpVtbl->FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound);
4492 }
4493 static FORCEINLINE void ITypeLib_ReleaseTLibAttr(ITypeLib* This,TLIBATTR *pTLibAttr) {
4494     This->lpVtbl->ReleaseTLibAttr(This,pTLibAttr);
4495 }
4496 #endif
4497 #endif
4498 
4499 #endif
4500 
4501 HRESULT STDMETHODCALLTYPE ITypeLib_RemoteGetTypeInfoCount_Proxy(
4502     ITypeLib* This,
4503     UINT *pcTInfo);
4504 void __RPC_STUB ITypeLib_RemoteGetTypeInfoCount_Stub(
4505     IRpcStubBuffer* This,
4506     IRpcChannelBuffer* pRpcChannelBuffer,
4507     PRPC_MESSAGE pRpcMessage,
4508     DWORD* pdwStubPhase);
4509 HRESULT STDMETHODCALLTYPE ITypeLib_GetTypeInfo_Proxy(
4510     ITypeLib* This,
4511     UINT index,
4512     ITypeInfo **ppTInfo);
4513 void __RPC_STUB ITypeLib_GetTypeInfo_Stub(
4514     IRpcStubBuffer* This,
4515     IRpcChannelBuffer* pRpcChannelBuffer,
4516     PRPC_MESSAGE pRpcMessage,
4517     DWORD* pdwStubPhase);
4518 HRESULT STDMETHODCALLTYPE ITypeLib_GetTypeInfoType_Proxy(
4519     ITypeLib* This,
4520     UINT index,
4521     TYPEKIND *pTKind);
4522 void __RPC_STUB ITypeLib_GetTypeInfoType_Stub(
4523     IRpcStubBuffer* This,
4524     IRpcChannelBuffer* pRpcChannelBuffer,
4525     PRPC_MESSAGE pRpcMessage,
4526     DWORD* pdwStubPhase);
4527 HRESULT STDMETHODCALLTYPE ITypeLib_GetTypeInfoOfGuid_Proxy(
4528     ITypeLib* This,
4529     REFGUID guid,
4530     ITypeInfo **ppTinfo);
4531 void __RPC_STUB ITypeLib_GetTypeInfoOfGuid_Stub(
4532     IRpcStubBuffer* This,
4533     IRpcChannelBuffer* pRpcChannelBuffer,
4534     PRPC_MESSAGE pRpcMessage,
4535     DWORD* pdwStubPhase);
4536 HRESULT STDMETHODCALLTYPE ITypeLib_RemoteGetLibAttr_Proxy(
4537     ITypeLib* This,
4538     LPTLIBATTR *ppTLibAttr,
4539     CLEANLOCALSTORAGE *pDummy);
4540 void __RPC_STUB ITypeLib_RemoteGetLibAttr_Stub(
4541     IRpcStubBuffer* This,
4542     IRpcChannelBuffer* pRpcChannelBuffer,
4543     PRPC_MESSAGE pRpcMessage,
4544     DWORD* pdwStubPhase);
4545 HRESULT STDMETHODCALLTYPE ITypeLib_GetTypeComp_Proxy(
4546     ITypeLib* This,
4547     ITypeComp **ppTComp);
4548 void __RPC_STUB ITypeLib_GetTypeComp_Stub(
4549     IRpcStubBuffer* This,
4550     IRpcChannelBuffer* pRpcChannelBuffer,
4551     PRPC_MESSAGE pRpcMessage,
4552     DWORD* pdwStubPhase);
4553 HRESULT STDMETHODCALLTYPE ITypeLib_RemoteGetDocumentation_Proxy(
4554     ITypeLib* This,
4555     INT index,
4556     DWORD refPtrFlags,
4557     BSTR *pBstrName,
4558     BSTR *pBstrDocString,
4559     DWORD *pdwHelpContext,
4560     BSTR *pBstrHelpFile);
4561 void __RPC_STUB ITypeLib_RemoteGetDocumentation_Stub(
4562     IRpcStubBuffer* This,
4563     IRpcChannelBuffer* pRpcChannelBuffer,
4564     PRPC_MESSAGE pRpcMessage,
4565     DWORD* pdwStubPhase);
4566 HRESULT STDMETHODCALLTYPE ITypeLib_RemoteIsName_Proxy(
4567     ITypeLib* This,
4568     LPOLESTR szNameBuf,
4569     ULONG lHashVal,
4570     WINBOOL *pfName,
4571     BSTR *pBstrLibName);
4572 void __RPC_STUB ITypeLib_RemoteIsName_Stub(
4573     IRpcStubBuffer* This,
4574     IRpcChannelBuffer* pRpcChannelBuffer,
4575     PRPC_MESSAGE pRpcMessage,
4576     DWORD* pdwStubPhase);
4577 HRESULT STDMETHODCALLTYPE ITypeLib_RemoteFindName_Proxy(
4578     ITypeLib* This,
4579     LPOLESTR szNameBuf,
4580     ULONG lHashVal,
4581     ITypeInfo **ppTInfo,
4582     MEMBERID *rgMemId,
4583     USHORT *pcFound,
4584     BSTR *pBstrLibName);
4585 void __RPC_STUB ITypeLib_RemoteFindName_Stub(
4586     IRpcStubBuffer* This,
4587     IRpcChannelBuffer* pRpcChannelBuffer,
4588     PRPC_MESSAGE pRpcMessage,
4589     DWORD* pdwStubPhase);
4590 HRESULT STDMETHODCALLTYPE ITypeLib_LocalReleaseTLibAttr_Proxy(
4591     ITypeLib* This);
4592 void __RPC_STUB ITypeLib_LocalReleaseTLibAttr_Stub(
4593     IRpcStubBuffer* This,
4594     IRpcChannelBuffer* pRpcChannelBuffer,
4595     PRPC_MESSAGE pRpcMessage,
4596     DWORD* pdwStubPhase);
4597 UINT CALLBACK ITypeLib_GetTypeInfoCount_Proxy(
4598     ITypeLib* This);
4599 HRESULT __RPC_STUB ITypeLib_GetTypeInfoCount_Stub(
4600     ITypeLib* This,
4601     UINT *pcTInfo);
4602 HRESULT CALLBACK ITypeLib_GetLibAttr_Proxy(
4603     ITypeLib* This,
4604     TLIBATTR **ppTLibAttr);
4605 HRESULT __RPC_STUB ITypeLib_GetLibAttr_Stub(
4606     ITypeLib* This,
4607     LPTLIBATTR *ppTLibAttr,
4608     CLEANLOCALSTORAGE *pDummy);
4609 HRESULT CALLBACK ITypeLib_GetDocumentation_Proxy(
4610     ITypeLib* This,
4611     INT index,
4612     BSTR *pBstrName,
4613     BSTR *pBstrDocString,
4614     DWORD *pdwHelpContext,
4615     BSTR *pBstrHelpFile);
4616 HRESULT __RPC_STUB ITypeLib_GetDocumentation_Stub(
4617     ITypeLib* This,
4618     INT index,
4619     DWORD refPtrFlags,
4620     BSTR *pBstrName,
4621     BSTR *pBstrDocString,
4622     DWORD *pdwHelpContext,
4623     BSTR *pBstrHelpFile);
4624 HRESULT CALLBACK ITypeLib_IsName_Proxy(
4625     ITypeLib* This,
4626     LPOLESTR szNameBuf,
4627     ULONG lHashVal,
4628     WINBOOL *pfName);
4629 HRESULT __RPC_STUB ITypeLib_IsName_Stub(
4630     ITypeLib* This,
4631     LPOLESTR szNameBuf,
4632     ULONG lHashVal,
4633     WINBOOL *pfName,
4634     BSTR *pBstrLibName);
4635 HRESULT CALLBACK ITypeLib_FindName_Proxy(
4636     ITypeLib* This,
4637     LPOLESTR szNameBuf,
4638     ULONG lHashVal,
4639     ITypeInfo **ppTInfo,
4640     MEMBERID *rgMemId,
4641     USHORT *pcFound);
4642 HRESULT __RPC_STUB ITypeLib_FindName_Stub(
4643     ITypeLib* This,
4644     LPOLESTR szNameBuf,
4645     ULONG lHashVal,
4646     ITypeInfo **ppTInfo,
4647     MEMBERID *rgMemId,
4648     USHORT *pcFound,
4649     BSTR *pBstrLibName);
4650 void CALLBACK ITypeLib_ReleaseTLibAttr_Proxy(
4651     ITypeLib* This,
4652     TLIBATTR *pTLibAttr);
4653 HRESULT __RPC_STUB ITypeLib_ReleaseTLibAttr_Stub(
4654     ITypeLib* This);
4655 
4656 #endif  /* __ITypeLib_INTERFACE_DEFINED__ */
4657 
4658 #endif
4659 
4660 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
4661 /*****************************************************************************
4662  * ITypeLib2 interface
4663  */
4664 #ifndef __ITypeLib2_INTERFACE_DEFINED__
4665 #define __ITypeLib2_INTERFACE_DEFINED__
4666 
4667 typedef ITypeLib2 *LPTYPELIB2;
4668 
4669 DEFINE_GUID(IID_ITypeLib2, 0x00020411, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4670 #if defined(__cplusplus) && !defined(CINTERFACE)
4671 MIDL_INTERFACE("00020411-0000-0000-c000-000000000046")
4672 ITypeLib2 : public ITypeLib
4673 {
4674     virtual HRESULT STDMETHODCALLTYPE GetCustData(
4675         REFGUID guid,
4676         VARIANT *pVarVal) = 0;
4677 
4678     virtual HRESULT STDMETHODCALLTYPE GetLibStatistics(
4679         ULONG *pcUniqueNames,
4680         ULONG *pcchUniqueNames) = 0;
4681 
4682     virtual HRESULT STDMETHODCALLTYPE GetDocumentation2(
4683         INT index,
4684         LCID lcid,
4685         BSTR *pbstrHelpString,
4686         DWORD *pdwHelpStringContext,
4687         BSTR *pbstrHelpStringDll) = 0;
4688 
4689     virtual HRESULT STDMETHODCALLTYPE GetAllCustData(
4690         CUSTDATA *pCustData) = 0;
4691 
4692 };
4693 #ifdef __CRT_UUID_DECL
4694 __CRT_UUID_DECL(ITypeLib2, 0x00020411, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4695 #endif
4696 #else
4697 typedef struct ITypeLib2Vtbl {
4698     BEGIN_INTERFACE
4699 
4700     /*** IUnknown methods ***/
4701     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4702         ITypeLib2* This,
4703         REFIID riid,
4704         void **ppvObject);
4705 
4706     ULONG (STDMETHODCALLTYPE *AddRef)(
4707         ITypeLib2* This);
4708 
4709     ULONG (STDMETHODCALLTYPE *Release)(
4710         ITypeLib2* This);
4711 
4712     /*** ITypeLib methods ***/
4713     UINT (STDMETHODCALLTYPE *GetTypeInfoCount)(
4714         ITypeLib2* This);
4715 
4716     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
4717         ITypeLib2* This,
4718         UINT index,
4719         ITypeInfo **ppTInfo);
4720 
4721     HRESULT (STDMETHODCALLTYPE *GetTypeInfoType)(
4722         ITypeLib2* This,
4723         UINT index,
4724         TYPEKIND *pTKind);
4725 
4726     HRESULT (STDMETHODCALLTYPE *GetTypeInfoOfGuid)(
4727         ITypeLib2* This,
4728         REFGUID guid,
4729         ITypeInfo **ppTinfo);
4730 
4731     HRESULT (STDMETHODCALLTYPE *GetLibAttr)(
4732         ITypeLib2* This,
4733         TLIBATTR **ppTLibAttr);
4734 
4735     HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
4736         ITypeLib2* This,
4737         ITypeComp **ppTComp);
4738 
4739     HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
4740         ITypeLib2* This,
4741         INT index,
4742         BSTR *pBstrName,
4743         BSTR *pBstrDocString,
4744         DWORD *pdwHelpContext,
4745         BSTR *pBstrHelpFile);
4746 
4747     HRESULT (STDMETHODCALLTYPE *IsName)(
4748         ITypeLib2* This,
4749         LPOLESTR szNameBuf,
4750         ULONG lHashVal,
4751         WINBOOL *pfName);
4752 
4753     HRESULT (STDMETHODCALLTYPE *FindName)(
4754         ITypeLib2* This,
4755         LPOLESTR szNameBuf,
4756         ULONG lHashVal,
4757         ITypeInfo **ppTInfo,
4758         MEMBERID *rgMemId,
4759         USHORT *pcFound);
4760 
4761     void (STDMETHODCALLTYPE *ReleaseTLibAttr)(
4762         ITypeLib2* This,
4763         TLIBATTR *pTLibAttr);
4764 
4765     /*** ITypeLib2 methods ***/
4766     HRESULT (STDMETHODCALLTYPE *GetCustData)(
4767         ITypeLib2* This,
4768         REFGUID guid,
4769         VARIANT *pVarVal);
4770 
4771     HRESULT (STDMETHODCALLTYPE *GetLibStatistics)(
4772         ITypeLib2* This,
4773         ULONG *pcUniqueNames,
4774         ULONG *pcchUniqueNames);
4775 
4776     HRESULT (STDMETHODCALLTYPE *GetDocumentation2)(
4777         ITypeLib2* This,
4778         INT index,
4779         LCID lcid,
4780         BSTR *pbstrHelpString,
4781         DWORD *pdwHelpStringContext,
4782         BSTR *pbstrHelpStringDll);
4783 
4784     HRESULT (STDMETHODCALLTYPE *GetAllCustData)(
4785         ITypeLib2* This,
4786         CUSTDATA *pCustData);
4787 
4788     END_INTERFACE
4789 } ITypeLib2Vtbl;
4790 interface ITypeLib2 {
4791     CONST_VTBL ITypeLib2Vtbl* lpVtbl;
4792 };
4793 
4794 #ifdef COBJMACROS
4795 #ifndef WIDL_C_INLINE_WRAPPERS
4796 /*** IUnknown methods ***/
4797 #define ITypeLib2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4798 #define ITypeLib2_AddRef(This) (This)->lpVtbl->AddRef(This)
4799 #define ITypeLib2_Release(This) (This)->lpVtbl->Release(This)
4800 /*** ITypeLib methods ***/
4801 #define ITypeLib2_GetTypeInfoCount(This) (This)->lpVtbl->GetTypeInfoCount(This)
4802 #define ITypeLib2_GetTypeInfo(This,index,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,index,ppTInfo)
4803 #define ITypeLib2_GetTypeInfoType(This,index,pTKind) (This)->lpVtbl->GetTypeInfoType(This,index,pTKind)
4804 #define ITypeLib2_GetTypeInfoOfGuid(This,guid,ppTinfo) (This)->lpVtbl->GetTypeInfoOfGuid(This,guid,ppTinfo)
4805 #define ITypeLib2_GetLibAttr(This,ppTLibAttr) (This)->lpVtbl->GetLibAttr(This,ppTLibAttr)
4806 #define ITypeLib2_GetTypeComp(This,ppTComp) (This)->lpVtbl->GetTypeComp(This,ppTComp)
4807 #define ITypeLib2_GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) (This)->lpVtbl->GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile)
4808 #define ITypeLib2_IsName(This,szNameBuf,lHashVal,pfName) (This)->lpVtbl->IsName(This,szNameBuf,lHashVal,pfName)
4809 #define ITypeLib2_FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound) (This)->lpVtbl->FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound)
4810 #define ITypeLib2_ReleaseTLibAttr(This,pTLibAttr) (This)->lpVtbl->ReleaseTLibAttr(This,pTLibAttr)
4811 /*** ITypeLib2 methods ***/
4812 #define ITypeLib2_GetCustData(This,guid,pVarVal) (This)->lpVtbl->GetCustData(This,guid,pVarVal)
4813 #define ITypeLib2_GetLibStatistics(This,pcUniqueNames,pcchUniqueNames) (This)->lpVtbl->GetLibStatistics(This,pcUniqueNames,pcchUniqueNames)
4814 #define ITypeLib2_GetDocumentation2(This,index,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll) (This)->lpVtbl->GetDocumentation2(This,index,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll)
4815 #define ITypeLib2_GetAllCustData(This,pCustData) (This)->lpVtbl->GetAllCustData(This,pCustData)
4816 #else
4817 /*** IUnknown methods ***/
4818 static FORCEINLINE HRESULT ITypeLib2_QueryInterface(ITypeLib2* This,REFIID riid,void **ppvObject) {
4819     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4820 }
4821 static FORCEINLINE ULONG ITypeLib2_AddRef(ITypeLib2* This) {
4822     return This->lpVtbl->AddRef(This);
4823 }
4824 static FORCEINLINE ULONG ITypeLib2_Release(ITypeLib2* This) {
4825     return This->lpVtbl->Release(This);
4826 }
4827 /*** ITypeLib methods ***/
4828 static FORCEINLINE UINT ITypeLib2_GetTypeInfoCount(ITypeLib2* This) {
4829     return This->lpVtbl->GetTypeInfoCount(This);
4830 }
4831 static FORCEINLINE HRESULT ITypeLib2_GetTypeInfo(ITypeLib2* This,UINT index,ITypeInfo **ppTInfo) {
4832     return This->lpVtbl->GetTypeInfo(This,index,ppTInfo);
4833 }
4834 static FORCEINLINE HRESULT ITypeLib2_GetTypeInfoType(ITypeLib2* This,UINT index,TYPEKIND *pTKind) {
4835     return This->lpVtbl->GetTypeInfoType(This,index,pTKind);
4836 }
4837 static FORCEINLINE HRESULT ITypeLib2_GetTypeInfoOfGuid(ITypeLib2* This,REFGUID guid,ITypeInfo **ppTinfo) {
4838     return This->lpVtbl->GetTypeInfoOfGuid(This,guid,ppTinfo);
4839 }
4840 static FORCEINLINE HRESULT ITypeLib2_GetLibAttr(ITypeLib2* This,TLIBATTR **ppTLibAttr) {
4841     return This->lpVtbl->GetLibAttr(This,ppTLibAttr);
4842 }
4843 static FORCEINLINE HRESULT ITypeLib2_GetTypeComp(ITypeLib2* This,ITypeComp **ppTComp) {
4844     return This->lpVtbl->GetTypeComp(This,ppTComp);
4845 }
4846 static FORCEINLINE HRESULT ITypeLib2_GetDocumentation(ITypeLib2* This,INT index,BSTR *pBstrName,BSTR *pBstrDocString,DWORD *pdwHelpContext,BSTR *pBstrHelpFile) {
4847     return This->lpVtbl->GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile);
4848 }
4849 static FORCEINLINE HRESULT ITypeLib2_IsName(ITypeLib2* This,LPOLESTR szNameBuf,ULONG lHashVal,WINBOOL *pfName) {
4850     return This->lpVtbl->IsName(This,szNameBuf,lHashVal,pfName);
4851 }
4852 static FORCEINLINE HRESULT ITypeLib2_FindName(ITypeLib2* This,LPOLESTR szNameBuf,ULONG lHashVal,ITypeInfo **ppTInfo,MEMBERID *rgMemId,USHORT *pcFound) {
4853     return This->lpVtbl->FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound);
4854 }
4855 static FORCEINLINE void ITypeLib2_ReleaseTLibAttr(ITypeLib2* This,TLIBATTR *pTLibAttr) {
4856     This->lpVtbl->ReleaseTLibAttr(This,pTLibAttr);
4857 }
4858 /*** ITypeLib2 methods ***/
4859 static FORCEINLINE HRESULT ITypeLib2_GetCustData(ITypeLib2* This,REFGUID guid,VARIANT *pVarVal) {
4860     return This->lpVtbl->GetCustData(This,guid,pVarVal);
4861 }
4862 static FORCEINLINE HRESULT ITypeLib2_GetLibStatistics(ITypeLib2* This,ULONG *pcUniqueNames,ULONG *pcchUniqueNames) {
4863     return This->lpVtbl->GetLibStatistics(This,pcUniqueNames,pcchUniqueNames);
4864 }
4865 static FORCEINLINE HRESULT ITypeLib2_GetDocumentation2(ITypeLib2* This,INT index,LCID lcid,BSTR *pbstrHelpString,DWORD *pdwHelpStringContext,BSTR *pbstrHelpStringDll) {
4866     return This->lpVtbl->GetDocumentation2(This,index,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll);
4867 }
4868 static FORCEINLINE HRESULT ITypeLib2_GetAllCustData(ITypeLib2* This,CUSTDATA *pCustData) {
4869     return This->lpVtbl->GetAllCustData(This,pCustData);
4870 }
4871 #endif
4872 #endif
4873 
4874 #endif
4875 
4876 HRESULT STDMETHODCALLTYPE ITypeLib2_GetCustData_Proxy(
4877     ITypeLib2* This,
4878     REFGUID guid,
4879     VARIANT *pVarVal);
4880 void __RPC_STUB ITypeLib2_GetCustData_Stub(
4881     IRpcStubBuffer* This,
4882     IRpcChannelBuffer* pRpcChannelBuffer,
4883     PRPC_MESSAGE pRpcMessage,
4884     DWORD* pdwStubPhase);
4885 HRESULT STDMETHODCALLTYPE ITypeLib2_RemoteGetLibStatistics_Proxy(
4886     ITypeLib2* This,
4887     ULONG *pcUniqueNames,
4888     ULONG *pcchUniqueNames);
4889 void __RPC_STUB ITypeLib2_RemoteGetLibStatistics_Stub(
4890     IRpcStubBuffer* This,
4891     IRpcChannelBuffer* pRpcChannelBuffer,
4892     PRPC_MESSAGE pRpcMessage,
4893     DWORD* pdwStubPhase);
4894 HRESULT STDMETHODCALLTYPE ITypeLib2_RemoteGetDocumentation2_Proxy(
4895     ITypeLib2* This,
4896     INT index,
4897     LCID lcid,
4898     DWORD refPtrFlags,
4899     BSTR *pbstrHelpString,
4900     DWORD *pdwHelpStringContext,
4901     BSTR *pbstrHelpStringDll);
4902 void __RPC_STUB ITypeLib2_RemoteGetDocumentation2_Stub(
4903     IRpcStubBuffer* This,
4904     IRpcChannelBuffer* pRpcChannelBuffer,
4905     PRPC_MESSAGE pRpcMessage,
4906     DWORD* pdwStubPhase);
4907 HRESULT STDMETHODCALLTYPE ITypeLib2_GetAllCustData_Proxy(
4908     ITypeLib2* This,
4909     CUSTDATA *pCustData);
4910 void __RPC_STUB ITypeLib2_GetAllCustData_Stub(
4911     IRpcStubBuffer* This,
4912     IRpcChannelBuffer* pRpcChannelBuffer,
4913     PRPC_MESSAGE pRpcMessage,
4914     DWORD* pdwStubPhase);
4915 HRESULT CALLBACK ITypeLib2_GetLibStatistics_Proxy(
4916     ITypeLib2* This,
4917     ULONG *pcUniqueNames,
4918     ULONG *pcchUniqueNames);
4919 HRESULT __RPC_STUB ITypeLib2_GetLibStatistics_Stub(
4920     ITypeLib2* This,
4921     ULONG *pcUniqueNames,
4922     ULONG *pcchUniqueNames);
4923 HRESULT CALLBACK ITypeLib2_GetDocumentation2_Proxy(
4924     ITypeLib2* This,
4925     INT index,
4926     LCID lcid,
4927     BSTR *pbstrHelpString,
4928     DWORD *pdwHelpStringContext,
4929     BSTR *pbstrHelpStringDll);
4930 HRESULT __RPC_STUB ITypeLib2_GetDocumentation2_Stub(
4931     ITypeLib2* This,
4932     INT index,
4933     LCID lcid,
4934     DWORD refPtrFlags,
4935     BSTR *pbstrHelpString,
4936     DWORD *pdwHelpStringContext,
4937     BSTR *pbstrHelpStringDll);
4938 
4939 #endif  /* __ITypeLib2_INTERFACE_DEFINED__ */
4940 
4941 
4942 /*****************************************************************************
4943  * ITypeChangeEvents interface
4944  */
4945 #ifndef __ITypeChangeEvents_INTERFACE_DEFINED__
4946 #define __ITypeChangeEvents_INTERFACE_DEFINED__
4947 
4948 typedef ITypeChangeEvents *LPTYPECHANGEEVENTS;
4949 
4950 typedef enum tagCHANGEKIND {
4951     CHANGEKIND_ADDMEMBER = 0,
4952     CHANGEKIND_DELETEMEMBER = 1,
4953     CHANGEKIND_SETNAMES = 2,
4954     CHANGEKIND_SETDOCUMENTATION = 3,
4955     CHANGEKIND_GENERAL = 4,
4956     CHANGEKIND_INVALIDATE = 5,
4957     CHANGEKIND_CHANGEFAILED = 6,
4958     CHANGEKIND_MAX = 7
4959 } CHANGEKIND;
4960 
4961 DEFINE_GUID(IID_ITypeChangeEvents, 0x00020410, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4962 #if defined(__cplusplus) && !defined(CINTERFACE)
4963 MIDL_INTERFACE("00020410-0000-0000-c000-000000000046")
4964 ITypeChangeEvents : public IUnknown
4965 {
4966     virtual HRESULT STDMETHODCALLTYPE RequestTypeChange(
4967         CHANGEKIND changeKind,
4968         ITypeInfo *pTInfoBefore,
4969         LPOLESTR pStrName,
4970         INT *pfCancel) = 0;
4971 
4972     virtual HRESULT STDMETHODCALLTYPE AfterTypeChange(
4973         CHANGEKIND changeKind,
4974         ITypeInfo *pTInfoAfter,
4975         LPOLESTR pStrName) = 0;
4976 
4977 };
4978 #ifdef __CRT_UUID_DECL
4979 __CRT_UUID_DECL(ITypeChangeEvents, 0x00020410, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4980 #endif
4981 #else
4982 typedef struct ITypeChangeEventsVtbl {
4983     BEGIN_INTERFACE
4984 
4985     /*** IUnknown methods ***/
4986     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4987         ITypeChangeEvents* This,
4988         REFIID riid,
4989         void **ppvObject);
4990 
4991     ULONG (STDMETHODCALLTYPE *AddRef)(
4992         ITypeChangeEvents* This);
4993 
4994     ULONG (STDMETHODCALLTYPE *Release)(
4995         ITypeChangeEvents* This);
4996 
4997     /*** ITypeChangeEvents methods ***/
4998     HRESULT (STDMETHODCALLTYPE *RequestTypeChange)(
4999         ITypeChangeEvents* This,
5000         CHANGEKIND changeKind,
5001         ITypeInfo *pTInfoBefore,
5002         LPOLESTR pStrName,
5003         INT *pfCancel);
5004 
5005     HRESULT (STDMETHODCALLTYPE *AfterTypeChange)(
5006         ITypeChangeEvents* This,
5007         CHANGEKIND changeKind,
5008         ITypeInfo *pTInfoAfter,
5009         LPOLESTR pStrName);
5010 
5011     END_INTERFACE
5012 } ITypeChangeEventsVtbl;
5013 interface ITypeChangeEvents {
5014     CONST_VTBL ITypeChangeEventsVtbl* lpVtbl;
5015 };
5016 
5017 #ifdef COBJMACROS
5018 #ifndef WIDL_C_INLINE_WRAPPERS
5019 /*** IUnknown methods ***/
5020 #define ITypeChangeEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5021 #define ITypeChangeEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
5022 #define ITypeChangeEvents_Release(This) (This)->lpVtbl->Release(This)
5023 /*** ITypeChangeEvents methods ***/
5024 #define ITypeChangeEvents_RequestTypeChange(This,changeKind,pTInfoBefore,pStrName,pfCancel) (This)->lpVtbl->RequestTypeChange(This,changeKind,pTInfoBefore,pStrName,pfCancel)
5025 #define ITypeChangeEvents_AfterTypeChange(This,changeKind,pTInfoAfter,pStrName) (This)->lpVtbl->AfterTypeChange(This,changeKind,pTInfoAfter,pStrName)
5026 #else
5027 /*** IUnknown methods ***/
5028 static FORCEINLINE HRESULT ITypeChangeEvents_QueryInterface(ITypeChangeEvents* This,REFIID riid,void **ppvObject) {
5029     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5030 }
5031 static FORCEINLINE ULONG ITypeChangeEvents_AddRef(ITypeChangeEvents* This) {
5032     return This->lpVtbl->AddRef(This);
5033 }
5034 static FORCEINLINE ULONG ITypeChangeEvents_Release(ITypeChangeEvents* This) {
5035     return This->lpVtbl->Release(This);
5036 }
5037 /*** ITypeChangeEvents methods ***/
5038 static FORCEINLINE HRESULT ITypeChangeEvents_RequestTypeChange(ITypeChangeEvents* This,CHANGEKIND changeKind,ITypeInfo *pTInfoBefore,LPOLESTR pStrName,INT *pfCancel) {
5039     return This->lpVtbl->RequestTypeChange(This,changeKind,pTInfoBefore,pStrName,pfCancel);
5040 }
5041 static FORCEINLINE HRESULT ITypeChangeEvents_AfterTypeChange(ITypeChangeEvents* This,CHANGEKIND changeKind,ITypeInfo *pTInfoAfter,LPOLESTR pStrName) {
5042     return This->lpVtbl->AfterTypeChange(This,changeKind,pTInfoAfter,pStrName);
5043 }
5044 #endif
5045 #endif
5046 
5047 #endif
5048 
5049 HRESULT STDMETHODCALLTYPE ITypeChangeEvents_RequestTypeChange_Proxy(
5050     ITypeChangeEvents* This,
5051     CHANGEKIND changeKind,
5052     ITypeInfo *pTInfoBefore,
5053     LPOLESTR pStrName,
5054     INT *pfCancel);
5055 void __RPC_STUB ITypeChangeEvents_RequestTypeChange_Stub(
5056     IRpcStubBuffer* This,
5057     IRpcChannelBuffer* pRpcChannelBuffer,
5058     PRPC_MESSAGE pRpcMessage,
5059     DWORD* pdwStubPhase);
5060 HRESULT STDMETHODCALLTYPE ITypeChangeEvents_AfterTypeChange_Proxy(
5061     ITypeChangeEvents* This,
5062     CHANGEKIND changeKind,
5063     ITypeInfo *pTInfoAfter,
5064     LPOLESTR pStrName);
5065 void __RPC_STUB ITypeChangeEvents_AfterTypeChange_Stub(
5066     IRpcStubBuffer* This,
5067     IRpcChannelBuffer* pRpcChannelBuffer,
5068     PRPC_MESSAGE pRpcMessage,
5069     DWORD* pdwStubPhase);
5070 
5071 #endif  /* __ITypeChangeEvents_INTERFACE_DEFINED__ */
5072 
5073 
5074 /*****************************************************************************
5075  * IErrorInfo interface
5076  */
5077 #ifndef __IErrorInfo_INTERFACE_DEFINED__
5078 #define __IErrorInfo_INTERFACE_DEFINED__
5079 
5080 typedef IErrorInfo *LPERRORINFO;
5081 
5082 DEFINE_GUID(IID_IErrorInfo, 0x1cf2b120, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
5083 #if defined(__cplusplus) && !defined(CINTERFACE)
5084 MIDL_INTERFACE("1cf2b120-547d-101b-8e65-08002b2bd119")
5085 IErrorInfo : public IUnknown
5086 {
5087     virtual HRESULT STDMETHODCALLTYPE GetGUID(
5088         GUID *pGUID) = 0;
5089 
5090     virtual HRESULT STDMETHODCALLTYPE GetSource(
5091         BSTR *pBstrSource) = 0;
5092 
5093     virtual HRESULT STDMETHODCALLTYPE GetDescription(
5094         BSTR *pBstrDescription) = 0;
5095 
5096     virtual HRESULT STDMETHODCALLTYPE GetHelpFile(
5097         BSTR *pBstrHelpFile) = 0;
5098 
5099     virtual HRESULT STDMETHODCALLTYPE GetHelpContext(
5100         DWORD *pdwHelpContext) = 0;
5101 
5102 };
5103 #ifdef __CRT_UUID_DECL
5104 __CRT_UUID_DECL(IErrorInfo, 0x1cf2b120, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19)
5105 #endif
5106 #else
5107 typedef struct IErrorInfoVtbl {
5108     BEGIN_INTERFACE
5109 
5110     /*** IUnknown methods ***/
5111     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5112         IErrorInfo* This,
5113         REFIID riid,
5114         void **ppvObject);
5115 
5116     ULONG (STDMETHODCALLTYPE *AddRef)(
5117         IErrorInfo* This);
5118 
5119     ULONG (STDMETHODCALLTYPE *Release)(
5120         IErrorInfo* This);
5121 
5122     /*** IErrorInfo methods ***/
5123     HRESULT (STDMETHODCALLTYPE *GetGUID)(
5124         IErrorInfo* This,
5125         GUID *pGUID);
5126 
5127     HRESULT (STDMETHODCALLTYPE *GetSource)(
5128         IErrorInfo* This,
5129         BSTR *pBstrSource);
5130 
5131     HRESULT (STDMETHODCALLTYPE *GetDescription)(
5132         IErrorInfo* This,
5133         BSTR *pBstrDescription);
5134 
5135     HRESULT (STDMETHODCALLTYPE *GetHelpFile)(
5136         IErrorInfo* This,
5137         BSTR *pBstrHelpFile);
5138 
5139     HRESULT (STDMETHODCALLTYPE *GetHelpContext)(
5140         IErrorInfo* This,
5141         DWORD *pdwHelpContext);
5142 
5143     END_INTERFACE
5144 } IErrorInfoVtbl;
5145 interface IErrorInfo {
5146     CONST_VTBL IErrorInfoVtbl* lpVtbl;
5147 };
5148 
5149 #ifdef COBJMACROS
5150 #ifndef WIDL_C_INLINE_WRAPPERS
5151 /*** IUnknown methods ***/
5152 #define IErrorInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5153 #define IErrorInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
5154 #define IErrorInfo_Release(This) (This)->lpVtbl->Release(This)
5155 /*** IErrorInfo methods ***/
5156 #define IErrorInfo_GetGUID(This,pGUID) (This)->lpVtbl->GetGUID(This,pGUID)
5157 #define IErrorInfo_GetSource(This,pBstrSource) (This)->lpVtbl->GetSource(This,pBstrSource)
5158 #define IErrorInfo_GetDescription(This,pBstrDescription) (This)->lpVtbl->GetDescription(This,pBstrDescription)
5159 #define IErrorInfo_GetHelpFile(This,pBstrHelpFile) (This)->lpVtbl->GetHelpFile(This,pBstrHelpFile)
5160 #define IErrorInfo_GetHelpContext(This,pdwHelpContext) (This)->lpVtbl->GetHelpContext(This,pdwHelpContext)
5161 #else
5162 /*** IUnknown methods ***/
5163 static FORCEINLINE HRESULT IErrorInfo_QueryInterface(IErrorInfo* This,REFIID riid,void **ppvObject) {
5164     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5165 }
5166 static FORCEINLINE ULONG IErrorInfo_AddRef(IErrorInfo* This) {
5167     return This->lpVtbl->AddRef(This);
5168 }
5169 static FORCEINLINE ULONG IErrorInfo_Release(IErrorInfo* This) {
5170     return This->lpVtbl->Release(This);
5171 }
5172 /*** IErrorInfo methods ***/
5173 static FORCEINLINE HRESULT IErrorInfo_GetGUID(IErrorInfo* This,GUID *pGUID) {
5174     return This->lpVtbl->GetGUID(This,pGUID);
5175 }
5176 static FORCEINLINE HRESULT IErrorInfo_GetSource(IErrorInfo* This,BSTR *pBstrSource) {
5177     return This->lpVtbl->GetSource(This,pBstrSource);
5178 }
5179 static FORCEINLINE HRESULT IErrorInfo_GetDescription(IErrorInfo* This,BSTR *pBstrDescription) {
5180     return This->lpVtbl->GetDescription(This,pBstrDescription);
5181 }
5182 static FORCEINLINE HRESULT IErrorInfo_GetHelpFile(IErrorInfo* This,BSTR *pBstrHelpFile) {
5183     return This->lpVtbl->GetHelpFile(This,pBstrHelpFile);
5184 }
5185 static FORCEINLINE HRESULT IErrorInfo_GetHelpContext(IErrorInfo* This,DWORD *pdwHelpContext) {
5186     return This->lpVtbl->GetHelpContext(This,pdwHelpContext);
5187 }
5188 #endif
5189 #endif
5190 
5191 #endif
5192 
5193 HRESULT STDMETHODCALLTYPE IErrorInfo_GetGUID_Proxy(
5194     IErrorInfo* This,
5195     GUID *pGUID);
5196 void __RPC_STUB IErrorInfo_GetGUID_Stub(
5197     IRpcStubBuffer* This,
5198     IRpcChannelBuffer* pRpcChannelBuffer,
5199     PRPC_MESSAGE pRpcMessage,
5200     DWORD* pdwStubPhase);
5201 HRESULT STDMETHODCALLTYPE IErrorInfo_GetSource_Proxy(
5202     IErrorInfo* This,
5203     BSTR *pBstrSource);
5204 void __RPC_STUB IErrorInfo_GetSource_Stub(
5205     IRpcStubBuffer* This,
5206     IRpcChannelBuffer* pRpcChannelBuffer,
5207     PRPC_MESSAGE pRpcMessage,
5208     DWORD* pdwStubPhase);
5209 HRESULT STDMETHODCALLTYPE IErrorInfo_GetDescription_Proxy(
5210     IErrorInfo* This,
5211     BSTR *pBstrDescription);
5212 void __RPC_STUB IErrorInfo_GetDescription_Stub(
5213     IRpcStubBuffer* This,
5214     IRpcChannelBuffer* pRpcChannelBuffer,
5215     PRPC_MESSAGE pRpcMessage,
5216     DWORD* pdwStubPhase);
5217 HRESULT STDMETHODCALLTYPE IErrorInfo_GetHelpFile_Proxy(
5218     IErrorInfo* This,
5219     BSTR *pBstrHelpFile);
5220 void __RPC_STUB IErrorInfo_GetHelpFile_Stub(
5221     IRpcStubBuffer* This,
5222     IRpcChannelBuffer* pRpcChannelBuffer,
5223     PRPC_MESSAGE pRpcMessage,
5224     DWORD* pdwStubPhase);
5225 HRESULT STDMETHODCALLTYPE IErrorInfo_GetHelpContext_Proxy(
5226     IErrorInfo* This,
5227     DWORD *pdwHelpContext);
5228 void __RPC_STUB IErrorInfo_GetHelpContext_Stub(
5229     IRpcStubBuffer* This,
5230     IRpcChannelBuffer* pRpcChannelBuffer,
5231     PRPC_MESSAGE pRpcMessage,
5232     DWORD* pdwStubPhase);
5233 
5234 #endif  /* __IErrorInfo_INTERFACE_DEFINED__ */
5235 
5236 
5237 /*****************************************************************************
5238  * ICreateErrorInfo interface
5239  */
5240 #ifndef __ICreateErrorInfo_INTERFACE_DEFINED__
5241 #define __ICreateErrorInfo_INTERFACE_DEFINED__
5242 
5243 typedef ICreateErrorInfo *LPCREATEERRORINFO;
5244 
5245 DEFINE_GUID(IID_ICreateErrorInfo, 0x22f03340, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
5246 #if defined(__cplusplus) && !defined(CINTERFACE)
5247 MIDL_INTERFACE("22f03340-547d-101b-8e65-08002b2bd119")
5248 ICreateErrorInfo : public IUnknown
5249 {
5250     virtual HRESULT STDMETHODCALLTYPE SetGUID(
5251         REFGUID rguid) = 0;
5252 
5253     virtual HRESULT STDMETHODCALLTYPE SetSource(
5254         LPOLESTR szSource) = 0;
5255 
5256     virtual HRESULT STDMETHODCALLTYPE SetDescription(
5257         LPOLESTR szDescription) = 0;
5258 
5259     virtual HRESULT STDMETHODCALLTYPE SetHelpFile(
5260         LPOLESTR szHelpFile) = 0;
5261 
5262     virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
5263         DWORD dwHelpContext) = 0;
5264 
5265 };
5266 #ifdef __CRT_UUID_DECL
5267 __CRT_UUID_DECL(ICreateErrorInfo, 0x22f03340, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19)
5268 #endif
5269 #else
5270 typedef struct ICreateErrorInfoVtbl {
5271     BEGIN_INTERFACE
5272 
5273     /*** IUnknown methods ***/
5274     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5275         ICreateErrorInfo* This,
5276         REFIID riid,
5277         void **ppvObject);
5278 
5279     ULONG (STDMETHODCALLTYPE *AddRef)(
5280         ICreateErrorInfo* This);
5281 
5282     ULONG (STDMETHODCALLTYPE *Release)(
5283         ICreateErrorInfo* This);
5284 
5285     /*** ICreateErrorInfo methods ***/
5286     HRESULT (STDMETHODCALLTYPE *SetGUID)(
5287         ICreateErrorInfo* This,
5288         REFGUID rguid);
5289 
5290     HRESULT (STDMETHODCALLTYPE *SetSource)(
5291         ICreateErrorInfo* This,
5292         LPOLESTR szSource);
5293 
5294     HRESULT (STDMETHODCALLTYPE *SetDescription)(
5295         ICreateErrorInfo* This,
5296         LPOLESTR szDescription);
5297 
5298     HRESULT (STDMETHODCALLTYPE *SetHelpFile)(
5299         ICreateErrorInfo* This,
5300         LPOLESTR szHelpFile);
5301 
5302     HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
5303         ICreateErrorInfo* This,
5304         DWORD dwHelpContext);
5305 
5306     END_INTERFACE
5307 } ICreateErrorInfoVtbl;
5308 interface ICreateErrorInfo {
5309     CONST_VTBL ICreateErrorInfoVtbl* lpVtbl;
5310 };
5311 
5312 #ifdef COBJMACROS
5313 #ifndef WIDL_C_INLINE_WRAPPERS
5314 /*** IUnknown methods ***/
5315 #define ICreateErrorInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5316 #define ICreateErrorInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
5317 #define ICreateErrorInfo_Release(This) (This)->lpVtbl->Release(This)
5318 /*** ICreateErrorInfo methods ***/
5319 #define ICreateErrorInfo_SetGUID(This,rguid) (This)->lpVtbl->SetGUID(This,rguid)
5320 #define ICreateErrorInfo_SetSource(This,szSource) (This)->lpVtbl->SetSource(This,szSource)
5321 #define ICreateErrorInfo_SetDescription(This,szDescription) (This)->lpVtbl->SetDescription(This,szDescription)
5322 #define ICreateErrorInfo_SetHelpFile(This,szHelpFile) (This)->lpVtbl->SetHelpFile(This,szHelpFile)
5323 #define ICreateErrorInfo_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
5324 #else
5325 /*** IUnknown methods ***/
5326 static FORCEINLINE HRESULT ICreateErrorInfo_QueryInterface(ICreateErrorInfo* This,REFIID riid,void **ppvObject) {
5327     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5328 }
5329 static FORCEINLINE ULONG ICreateErrorInfo_AddRef(ICreateErrorInfo* This) {
5330     return This->lpVtbl->AddRef(This);
5331 }
5332 static FORCEINLINE ULONG ICreateErrorInfo_Release(ICreateErrorInfo* This) {
5333     return This->lpVtbl->Release(This);
5334 }
5335 /*** ICreateErrorInfo methods ***/
5336 static FORCEINLINE HRESULT ICreateErrorInfo_SetGUID(ICreateErrorInfo* This,REFGUID rguid) {
5337     return This->lpVtbl->SetGUID(This,rguid);
5338 }
5339 static FORCEINLINE HRESULT ICreateErrorInfo_SetSource(ICreateErrorInfo* This,LPOLESTR szSource) {
5340     return This->lpVtbl->SetSource(This,szSource);
5341 }
5342 static FORCEINLINE HRESULT ICreateErrorInfo_SetDescription(ICreateErrorInfo* This,LPOLESTR szDescription) {
5343     return This->lpVtbl->SetDescription(This,szDescription);
5344 }
5345 static FORCEINLINE HRESULT ICreateErrorInfo_SetHelpFile(ICreateErrorInfo* This,LPOLESTR szHelpFile) {
5346     return This->lpVtbl->SetHelpFile(This,szHelpFile);
5347 }
5348 static FORCEINLINE HRESULT ICreateErrorInfo_SetHelpContext(ICreateErrorInfo* This,DWORD dwHelpContext) {
5349     return This->lpVtbl->SetHelpContext(This,dwHelpContext);
5350 }
5351 #endif
5352 #endif
5353 
5354 #endif
5355 
5356 HRESULT STDMETHODCALLTYPE ICreateErrorInfo_SetGUID_Proxy(
5357     ICreateErrorInfo* This,
5358     REFGUID rguid);
5359 void __RPC_STUB ICreateErrorInfo_SetGUID_Stub(
5360     IRpcStubBuffer* This,
5361     IRpcChannelBuffer* pRpcChannelBuffer,
5362     PRPC_MESSAGE pRpcMessage,
5363     DWORD* pdwStubPhase);
5364 HRESULT STDMETHODCALLTYPE ICreateErrorInfo_SetSource_Proxy(
5365     ICreateErrorInfo* This,
5366     LPOLESTR szSource);
5367 void __RPC_STUB ICreateErrorInfo_SetSource_Stub(
5368     IRpcStubBuffer* This,
5369     IRpcChannelBuffer* pRpcChannelBuffer,
5370     PRPC_MESSAGE pRpcMessage,
5371     DWORD* pdwStubPhase);
5372 HRESULT STDMETHODCALLTYPE ICreateErrorInfo_SetDescription_Proxy(
5373     ICreateErrorInfo* This,
5374     LPOLESTR szDescription);
5375 void __RPC_STUB ICreateErrorInfo_SetDescription_Stub(
5376     IRpcStubBuffer* This,
5377     IRpcChannelBuffer* pRpcChannelBuffer,
5378     PRPC_MESSAGE pRpcMessage,
5379     DWORD* pdwStubPhase);
5380 HRESULT STDMETHODCALLTYPE ICreateErrorInfo_SetHelpFile_Proxy(
5381     ICreateErrorInfo* This,
5382     LPOLESTR szHelpFile);
5383 void __RPC_STUB ICreateErrorInfo_SetHelpFile_Stub(
5384     IRpcStubBuffer* This,
5385     IRpcChannelBuffer* pRpcChannelBuffer,
5386     PRPC_MESSAGE pRpcMessage,
5387     DWORD* pdwStubPhase);
5388 HRESULT STDMETHODCALLTYPE ICreateErrorInfo_SetHelpContext_Proxy(
5389     ICreateErrorInfo* This,
5390     DWORD dwHelpContext);
5391 void __RPC_STUB ICreateErrorInfo_SetHelpContext_Stub(
5392     IRpcStubBuffer* This,
5393     IRpcChannelBuffer* pRpcChannelBuffer,
5394     PRPC_MESSAGE pRpcMessage,
5395     DWORD* pdwStubPhase);
5396 
5397 #endif  /* __ICreateErrorInfo_INTERFACE_DEFINED__ */
5398 
5399 
5400 /*****************************************************************************
5401  * ISupportErrorInfo interface
5402  */
5403 #ifndef __ISupportErrorInfo_INTERFACE_DEFINED__
5404 #define __ISupportErrorInfo_INTERFACE_DEFINED__
5405 
5406 typedef ISupportErrorInfo *LPSUPPORTERRORINFO;
5407 
5408 DEFINE_GUID(IID_ISupportErrorInfo, 0xdf0b3d60, 0x548f, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19);
5409 #if defined(__cplusplus) && !defined(CINTERFACE)
5410 MIDL_INTERFACE("df0b3d60-548f-101b-8e65-08002b2bd119")
5411 ISupportErrorInfo : public IUnknown
5412 {
5413     virtual HRESULT STDMETHODCALLTYPE InterfaceSupportsErrorInfo(
5414         REFIID riid) = 0;
5415 
5416 };
5417 #ifdef __CRT_UUID_DECL
5418 __CRT_UUID_DECL(ISupportErrorInfo, 0xdf0b3d60, 0x548f, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19)
5419 #endif
5420 #else
5421 typedef struct ISupportErrorInfoVtbl {
5422     BEGIN_INTERFACE
5423 
5424     /*** IUnknown methods ***/
5425     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5426         ISupportErrorInfo* This,
5427         REFIID riid,
5428         void **ppvObject);
5429 
5430     ULONG (STDMETHODCALLTYPE *AddRef)(
5431         ISupportErrorInfo* This);
5432 
5433     ULONG (STDMETHODCALLTYPE *Release)(
5434         ISupportErrorInfo* This);
5435 
5436     /*** ISupportErrorInfo methods ***/
5437     HRESULT (STDMETHODCALLTYPE *InterfaceSupportsErrorInfo)(
5438         ISupportErrorInfo* This,
5439         REFIID riid);
5440 
5441     END_INTERFACE
5442 } ISupportErrorInfoVtbl;
5443 interface ISupportErrorInfo {
5444     CONST_VTBL ISupportErrorInfoVtbl* lpVtbl;
5445 };
5446 
5447 #ifdef COBJMACROS
5448 #ifndef WIDL_C_INLINE_WRAPPERS
5449 /*** IUnknown methods ***/
5450 #define ISupportErrorInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5451 #define ISupportErrorInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
5452 #define ISupportErrorInfo_Release(This) (This)->lpVtbl->Release(This)
5453 /*** ISupportErrorInfo methods ***/
5454 #define ISupportErrorInfo_InterfaceSupportsErrorInfo(This,riid) (This)->lpVtbl->InterfaceSupportsErrorInfo(This,riid)
5455 #else
5456 /*** IUnknown methods ***/
5457 static FORCEINLINE HRESULT ISupportErrorInfo_QueryInterface(ISupportErrorInfo* This,REFIID riid,void **ppvObject) {
5458     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5459 }
5460 static FORCEINLINE ULONG ISupportErrorInfo_AddRef(ISupportErrorInfo* This) {
5461     return This->lpVtbl->AddRef(This);
5462 }
5463 static FORCEINLINE ULONG ISupportErrorInfo_Release(ISupportErrorInfo* This) {
5464     return This->lpVtbl->Release(This);
5465 }
5466 /*** ISupportErrorInfo methods ***/
5467 static FORCEINLINE HRESULT ISupportErrorInfo_InterfaceSupportsErrorInfo(ISupportErrorInfo* This,REFIID riid) {
5468     return This->lpVtbl->InterfaceSupportsErrorInfo(This,riid);
5469 }
5470 #endif
5471 #endif
5472 
5473 #endif
5474 
5475 HRESULT STDMETHODCALLTYPE ISupportErrorInfo_InterfaceSupportsErrorInfo_Proxy(
5476     ISupportErrorInfo* This,
5477     REFIID riid);
5478 void __RPC_STUB ISupportErrorInfo_InterfaceSupportsErrorInfo_Stub(
5479     IRpcStubBuffer* This,
5480     IRpcChannelBuffer* pRpcChannelBuffer,
5481     PRPC_MESSAGE pRpcMessage,
5482     DWORD* pdwStubPhase);
5483 
5484 #endif  /* __ISupportErrorInfo_INTERFACE_DEFINED__ */
5485 
5486 
5487 /*****************************************************************************
5488  * ITypeFactory interface
5489  */
5490 #ifndef __ITypeFactory_INTERFACE_DEFINED__
5491 #define __ITypeFactory_INTERFACE_DEFINED__
5492 
5493 DEFINE_GUID(IID_ITypeFactory, 0x0000002e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5494 #if defined(__cplusplus) && !defined(CINTERFACE)
5495 MIDL_INTERFACE("0000002e-0000-0000-c000-000000000046")
5496 ITypeFactory : public IUnknown
5497 {
5498     virtual HRESULT STDMETHODCALLTYPE CreateFromTypeInfo(
5499         ITypeInfo *pTypeInfo,
5500         REFIID riid,
5501         IUnknown **ppv) = 0;
5502 
5503 };
5504 #ifdef __CRT_UUID_DECL
5505 __CRT_UUID_DECL(ITypeFactory, 0x0000002e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5506 #endif
5507 #else
5508 typedef struct ITypeFactoryVtbl {
5509     BEGIN_INTERFACE
5510 
5511     /*** IUnknown methods ***/
5512     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5513         ITypeFactory* This,
5514         REFIID riid,
5515         void **ppvObject);
5516 
5517     ULONG (STDMETHODCALLTYPE *AddRef)(
5518         ITypeFactory* This);
5519 
5520     ULONG (STDMETHODCALLTYPE *Release)(
5521         ITypeFactory* This);
5522 
5523     /*** ITypeFactory methods ***/
5524     HRESULT (STDMETHODCALLTYPE *CreateFromTypeInfo)(
5525         ITypeFactory* This,
5526         ITypeInfo *pTypeInfo,
5527         REFIID riid,
5528         IUnknown **ppv);
5529 
5530     END_INTERFACE
5531 } ITypeFactoryVtbl;
5532 interface ITypeFactory {
5533     CONST_VTBL ITypeFactoryVtbl* lpVtbl;
5534 };
5535 
5536 #ifdef COBJMACROS
5537 #ifndef WIDL_C_INLINE_WRAPPERS
5538 /*** IUnknown methods ***/
5539 #define ITypeFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5540 #define ITypeFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
5541 #define ITypeFactory_Release(This) (This)->lpVtbl->Release(This)
5542 /*** ITypeFactory methods ***/
5543 #define ITypeFactory_CreateFromTypeInfo(This,pTypeInfo,riid,ppv) (This)->lpVtbl->CreateFromTypeInfo(This,pTypeInfo,riid,ppv)
5544 #else
5545 /*** IUnknown methods ***/
5546 static FORCEINLINE HRESULT ITypeFactory_QueryInterface(ITypeFactory* This,REFIID riid,void **ppvObject) {
5547     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5548 }
5549 static FORCEINLINE ULONG ITypeFactory_AddRef(ITypeFactory* This) {
5550     return This->lpVtbl->AddRef(This);
5551 }
5552 static FORCEINLINE ULONG ITypeFactory_Release(ITypeFactory* This) {
5553     return This->lpVtbl->Release(This);
5554 }
5555 /*** ITypeFactory methods ***/
5556 static FORCEINLINE HRESULT ITypeFactory_CreateFromTypeInfo(ITypeFactory* This,ITypeInfo *pTypeInfo,REFIID riid,IUnknown **ppv) {
5557     return This->lpVtbl->CreateFromTypeInfo(This,pTypeInfo,riid,ppv);
5558 }
5559 #endif
5560 #endif
5561 
5562 #endif
5563 
5564 HRESULT STDMETHODCALLTYPE ITypeFactory_CreateFromTypeInfo_Proxy(
5565     ITypeFactory* This,
5566     ITypeInfo *pTypeInfo,
5567     REFIID riid,
5568     IUnknown **ppv);
5569 void __RPC_STUB ITypeFactory_CreateFromTypeInfo_Stub(
5570     IRpcStubBuffer* This,
5571     IRpcChannelBuffer* pRpcChannelBuffer,
5572     PRPC_MESSAGE pRpcMessage,
5573     DWORD* pdwStubPhase);
5574 
5575 #endif  /* __ITypeFactory_INTERFACE_DEFINED__ */
5576 
5577 
5578 /*****************************************************************************
5579  * ITypeMarshal interface
5580  */
5581 #ifndef __ITypeMarshal_INTERFACE_DEFINED__
5582 #define __ITypeMarshal_INTERFACE_DEFINED__
5583 
5584 DEFINE_GUID(IID_ITypeMarshal, 0x0000002d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5585 #if defined(__cplusplus) && !defined(CINTERFACE)
5586 MIDL_INTERFACE("0000002d-0000-0000-c000-000000000046")
5587 ITypeMarshal : public IUnknown
5588 {
5589     virtual HRESULT STDMETHODCALLTYPE Size(
5590         PVOID pvType,
5591         DWORD dwDestContext,
5592         PVOID pvDestContext,
5593         ULONG *pSize) = 0;
5594 
5595     virtual HRESULT STDMETHODCALLTYPE Marshal(
5596         PVOID pvType,
5597         DWORD dwDestContext,
5598         PVOID pvDestContext,
5599         ULONG cbBufferLength,
5600         BYTE *pBuffer,
5601         ULONG *pcbWritten) = 0;
5602 
5603     virtual HRESULT STDMETHODCALLTYPE Unmarshal(
5604         PVOID pvType,
5605         DWORD dwFlags,
5606         ULONG cbBufferLength,
5607         BYTE *pBuffer,
5608         ULONG *pcbRead) = 0;
5609 
5610     virtual HRESULT STDMETHODCALLTYPE Free(
5611         PVOID pvType) = 0;
5612 
5613 };
5614 #ifdef __CRT_UUID_DECL
5615 __CRT_UUID_DECL(ITypeMarshal, 0x0000002d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5616 #endif
5617 #else
5618 typedef struct ITypeMarshalVtbl {
5619     BEGIN_INTERFACE
5620 
5621     /*** IUnknown methods ***/
5622     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5623         ITypeMarshal* This,
5624         REFIID riid,
5625         void **ppvObject);
5626 
5627     ULONG (STDMETHODCALLTYPE *AddRef)(
5628         ITypeMarshal* This);
5629 
5630     ULONG (STDMETHODCALLTYPE *Release)(
5631         ITypeMarshal* This);
5632 
5633     /*** ITypeMarshal methods ***/
5634     HRESULT (STDMETHODCALLTYPE *Size)(
5635         ITypeMarshal* This,
5636         PVOID pvType,
5637         DWORD dwDestContext,
5638         PVOID pvDestContext,
5639         ULONG *pSize);
5640 
5641     HRESULT (STDMETHODCALLTYPE *Marshal)(
5642         ITypeMarshal* This,
5643         PVOID pvType,
5644         DWORD dwDestContext,
5645         PVOID pvDestContext,
5646         ULONG cbBufferLength,
5647         BYTE *pBuffer,
5648         ULONG *pcbWritten);
5649 
5650     HRESULT (STDMETHODCALLTYPE *Unmarshal)(
5651         ITypeMarshal* This,
5652         PVOID pvType,
5653         DWORD dwFlags,
5654         ULONG cbBufferLength,
5655         BYTE *pBuffer,
5656         ULONG *pcbRead);
5657 
5658     HRESULT (STDMETHODCALLTYPE *Free)(
5659         ITypeMarshal* This,
5660         PVOID pvType);
5661 
5662     END_INTERFACE
5663 } ITypeMarshalVtbl;
5664 interface ITypeMarshal {
5665     CONST_VTBL ITypeMarshalVtbl* lpVtbl;
5666 };
5667 
5668 #ifdef COBJMACROS
5669 #ifndef WIDL_C_INLINE_WRAPPERS
5670 /*** IUnknown methods ***/
5671 #define ITypeMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5672 #define ITypeMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
5673 #define ITypeMarshal_Release(This) (This)->lpVtbl->Release(This)
5674 /*** ITypeMarshal methods ***/
5675 #define ITypeMarshal_Size(This,pvType,dwDestContext,pvDestContext,pSize) (This)->lpVtbl->Size(This,pvType,dwDestContext,pvDestContext,pSize)
5676 #define ITypeMarshal_Marshal(This,pvType,dwDestContext,pvDestContext,cbBufferLength,pBuffer,pcbWritten) (This)->lpVtbl->Marshal(This,pvType,dwDestContext,pvDestContext,cbBufferLength,pBuffer,pcbWritten)
5677 #define ITypeMarshal_Unmarshal(This,pvType,dwFlags,cbBufferLength,pBuffer,pcbRead) (This)->lpVtbl->Unmarshal(This,pvType,dwFlags,cbBufferLength,pBuffer,pcbRead)
5678 #define ITypeMarshal_Free(This,pvType) (This)->lpVtbl->Free(This,pvType)
5679 #else
5680 /*** IUnknown methods ***/
5681 static FORCEINLINE HRESULT ITypeMarshal_QueryInterface(ITypeMarshal* This,REFIID riid,void **ppvObject) {
5682     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5683 }
5684 static FORCEINLINE ULONG ITypeMarshal_AddRef(ITypeMarshal* This) {
5685     return This->lpVtbl->AddRef(This);
5686 }
5687 static FORCEINLINE ULONG ITypeMarshal_Release(ITypeMarshal* This) {
5688     return This->lpVtbl->Release(This);
5689 }
5690 /*** ITypeMarshal methods ***/
5691 static FORCEINLINE HRESULT ITypeMarshal_Size(ITypeMarshal* This,PVOID pvType,DWORD dwDestContext,PVOID pvDestContext,ULONG *pSize) {
5692     return This->lpVtbl->Size(This,pvType,dwDestContext,pvDestContext,pSize);
5693 }
5694 static FORCEINLINE HRESULT ITypeMarshal_Marshal(ITypeMarshal* This,PVOID pvType,DWORD dwDestContext,PVOID pvDestContext,ULONG cbBufferLength,BYTE *pBuffer,ULONG *pcbWritten) {
5695     return This->lpVtbl->Marshal(This,pvType,dwDestContext,pvDestContext,cbBufferLength,pBuffer,pcbWritten);
5696 }
5697 static FORCEINLINE HRESULT ITypeMarshal_Unmarshal(ITypeMarshal* This,PVOID pvType,DWORD dwFlags,ULONG cbBufferLength,BYTE *pBuffer,ULONG *pcbRead) {
5698     return This->lpVtbl->Unmarshal(This,pvType,dwFlags,cbBufferLength,pBuffer,pcbRead);
5699 }
5700 static FORCEINLINE HRESULT ITypeMarshal_Free(ITypeMarshal* This,PVOID pvType) {
5701     return This->lpVtbl->Free(This,pvType);
5702 }
5703 #endif
5704 #endif
5705 
5706 #endif
5707 
5708 HRESULT STDMETHODCALLTYPE ITypeMarshal_Size_Proxy(
5709     ITypeMarshal* This,
5710     PVOID pvType,
5711     DWORD dwDestContext,
5712     PVOID pvDestContext,
5713     ULONG *pSize);
5714 void __RPC_STUB ITypeMarshal_Size_Stub(
5715     IRpcStubBuffer* This,
5716     IRpcChannelBuffer* pRpcChannelBuffer,
5717     PRPC_MESSAGE pRpcMessage,
5718     DWORD* pdwStubPhase);
5719 HRESULT STDMETHODCALLTYPE ITypeMarshal_Marshal_Proxy(
5720     ITypeMarshal* This,
5721     PVOID pvType,
5722     DWORD dwDestContext,
5723     PVOID pvDestContext,
5724     ULONG cbBufferLength,
5725     BYTE *pBuffer,
5726     ULONG *pcbWritten);
5727 void __RPC_STUB ITypeMarshal_Marshal_Stub(
5728     IRpcStubBuffer* This,
5729     IRpcChannelBuffer* pRpcChannelBuffer,
5730     PRPC_MESSAGE pRpcMessage,
5731     DWORD* pdwStubPhase);
5732 HRESULT STDMETHODCALLTYPE ITypeMarshal_Unmarshal_Proxy(
5733     ITypeMarshal* This,
5734     PVOID pvType,
5735     DWORD dwFlags,
5736     ULONG cbBufferLength,
5737     BYTE *pBuffer,
5738     ULONG *pcbRead);
5739 void __RPC_STUB ITypeMarshal_Unmarshal_Stub(
5740     IRpcStubBuffer* This,
5741     IRpcChannelBuffer* pRpcChannelBuffer,
5742     PRPC_MESSAGE pRpcMessage,
5743     DWORD* pdwStubPhase);
5744 HRESULT STDMETHODCALLTYPE ITypeMarshal_Free_Proxy(
5745     ITypeMarshal* This,
5746     PVOID pvType);
5747 void __RPC_STUB ITypeMarshal_Free_Stub(
5748     IRpcStubBuffer* This,
5749     IRpcChannelBuffer* pRpcChannelBuffer,
5750     PRPC_MESSAGE pRpcMessage,
5751     DWORD* pdwStubPhase);
5752 
5753 #endif  /* __ITypeMarshal_INTERFACE_DEFINED__ */
5754 
5755 
5756 /*****************************************************************************
5757  * IRecordInfo interface
5758  */
5759 #ifndef __IRecordInfo_INTERFACE_DEFINED__
5760 #define __IRecordInfo_INTERFACE_DEFINED__
5761 
5762 typedef IRecordInfo *LPRECORDINFO;
5763 
5764 DEFINE_GUID(IID_IRecordInfo, 0x0000002f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5765 #if defined(__cplusplus) && !defined(CINTERFACE)
5766 MIDL_INTERFACE("0000002f-0000-0000-c000-000000000046")
5767 IRecordInfo : public IUnknown
5768 {
5769     virtual HRESULT STDMETHODCALLTYPE RecordInit(
5770         PVOID pvNew) = 0;
5771 
5772     virtual HRESULT STDMETHODCALLTYPE RecordClear(
5773         PVOID pvExisting) = 0;
5774 
5775     virtual HRESULT STDMETHODCALLTYPE RecordCopy(
5776         PVOID pvExisting,
5777         PVOID pvNew) = 0;
5778 
5779     virtual HRESULT STDMETHODCALLTYPE GetGuid(
5780         GUID *pguid) = 0;
5781 
5782     virtual HRESULT STDMETHODCALLTYPE GetName(
5783         BSTR *pbstrName) = 0;
5784 
5785     virtual HRESULT STDMETHODCALLTYPE GetSize(
5786         ULONG *pcbSize) = 0;
5787 
5788     virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
5789         ITypeInfo **ppTypeInfo) = 0;
5790 
5791     virtual HRESULT STDMETHODCALLTYPE GetField(
5792         PVOID pvData,
5793         LPCOLESTR szFieldName,
5794         VARIANT *pvarField) = 0;
5795 
5796     virtual HRESULT STDMETHODCALLTYPE GetFieldNoCopy(
5797         PVOID pvData,
5798         LPCOLESTR szFieldName,
5799         VARIANT *pvarField,
5800         PVOID *ppvDataCArray) = 0;
5801 
5802     virtual HRESULT STDMETHODCALLTYPE PutField(
5803         ULONG wFlags,
5804         PVOID pvData,
5805         LPCOLESTR szFieldName,
5806         VARIANT *pvarField) = 0;
5807 
5808     virtual HRESULT STDMETHODCALLTYPE PutFieldNoCopy(
5809         ULONG wFlags,
5810         PVOID pvData,
5811         LPCOLESTR szFieldName,
5812         VARIANT *pvarField) = 0;
5813 
5814     virtual HRESULT STDMETHODCALLTYPE GetFieldNames(
5815         ULONG *pcNames,
5816         BSTR *rgBstrNames) = 0;
5817 
5818     virtual WINBOOL STDMETHODCALLTYPE IsMatchingType(
5819         IRecordInfo *pRecordInfo) = 0;
5820 
5821     virtual PVOID STDMETHODCALLTYPE RecordCreate(
5822         ) = 0;
5823 
5824     virtual HRESULT STDMETHODCALLTYPE RecordCreateCopy(
5825         PVOID pvSource,
5826         PVOID *ppvDest) = 0;
5827 
5828     virtual HRESULT STDMETHODCALLTYPE RecordDestroy(
5829         PVOID pvRecord) = 0;
5830 
5831 };
5832 #ifdef __CRT_UUID_DECL
5833 __CRT_UUID_DECL(IRecordInfo, 0x0000002f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5834 #endif
5835 #else
5836 typedef struct IRecordInfoVtbl {
5837     BEGIN_INTERFACE
5838 
5839     /*** IUnknown methods ***/
5840     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5841         IRecordInfo* This,
5842         REFIID riid,
5843         void **ppvObject);
5844 
5845     ULONG (STDMETHODCALLTYPE *AddRef)(
5846         IRecordInfo* This);
5847 
5848     ULONG (STDMETHODCALLTYPE *Release)(
5849         IRecordInfo* This);
5850 
5851     /*** IRecordInfo methods ***/
5852     HRESULT (STDMETHODCALLTYPE *RecordInit)(
5853         IRecordInfo* This,
5854         PVOID pvNew);
5855 
5856     HRESULT (STDMETHODCALLTYPE *RecordClear)(
5857         IRecordInfo* This,
5858         PVOID pvExisting);
5859 
5860     HRESULT (STDMETHODCALLTYPE *RecordCopy)(
5861         IRecordInfo* This,
5862         PVOID pvExisting,
5863         PVOID pvNew);
5864 
5865     HRESULT (STDMETHODCALLTYPE *GetGuid)(
5866         IRecordInfo* This,
5867         GUID *pguid);
5868 
5869     HRESULT (STDMETHODCALLTYPE *GetName)(
5870         IRecordInfo* This,
5871         BSTR *pbstrName);
5872 
5873     HRESULT (STDMETHODCALLTYPE *GetSize)(
5874         IRecordInfo* This,
5875         ULONG *pcbSize);
5876 
5877     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
5878         IRecordInfo* This,
5879         ITypeInfo **ppTypeInfo);
5880 
5881     HRESULT (STDMETHODCALLTYPE *GetField)(
5882         IRecordInfo* This,
5883         PVOID pvData,
5884         LPCOLESTR szFieldName,
5885         VARIANT *pvarField);
5886 
5887     HRESULT (STDMETHODCALLTYPE *GetFieldNoCopy)(
5888         IRecordInfo* This,
5889         PVOID pvData,
5890         LPCOLESTR szFieldName,
5891         VARIANT *pvarField,
5892         PVOID *ppvDataCArray);
5893 
5894     HRESULT (STDMETHODCALLTYPE *PutField)(
5895         IRecordInfo* This,
5896         ULONG wFlags,
5897         PVOID pvData,
5898         LPCOLESTR szFieldName,
5899         VARIANT *pvarField);
5900 
5901     HRESULT (STDMETHODCALLTYPE *PutFieldNoCopy)(
5902         IRecordInfo* This,
5903         ULONG wFlags,
5904         PVOID pvData,
5905         LPCOLESTR szFieldName,
5906         VARIANT *pvarField);
5907 
5908     HRESULT (STDMETHODCALLTYPE *GetFieldNames)(
5909         IRecordInfo* This,
5910         ULONG *pcNames,
5911         BSTR *rgBstrNames);
5912 
5913     WINBOOL (STDMETHODCALLTYPE *IsMatchingType)(
5914         IRecordInfo* This,
5915         IRecordInfo *pRecordInfo);
5916 
5917     PVOID (STDMETHODCALLTYPE *RecordCreate)(
5918         IRecordInfo* This);
5919 
5920     HRESULT (STDMETHODCALLTYPE *RecordCreateCopy)(
5921         IRecordInfo* This,
5922         PVOID pvSource,
5923         PVOID *ppvDest);
5924 
5925     HRESULT (STDMETHODCALLTYPE *RecordDestroy)(
5926         IRecordInfo* This,
5927         PVOID pvRecord);
5928 
5929     END_INTERFACE
5930 } IRecordInfoVtbl;
5931 interface IRecordInfo {
5932     CONST_VTBL IRecordInfoVtbl* lpVtbl;
5933 };
5934 
5935 #ifdef COBJMACROS
5936 #ifndef WIDL_C_INLINE_WRAPPERS
5937 /*** IUnknown methods ***/
5938 #define IRecordInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5939 #define IRecordInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
5940 #define IRecordInfo_Release(This) (This)->lpVtbl->Release(This)
5941 /*** IRecordInfo methods ***/
5942 #define IRecordInfo_RecordInit(This,pvNew) (This)->lpVtbl->RecordInit(This,pvNew)
5943 #define IRecordInfo_RecordClear(This,pvExisting) (This)->lpVtbl->RecordClear(This,pvExisting)
5944 #define IRecordInfo_RecordCopy(This,pvExisting,pvNew) (This)->lpVtbl->RecordCopy(This,pvExisting,pvNew)
5945 #define IRecordInfo_GetGuid(This,pguid) (This)->lpVtbl->GetGuid(This,pguid)
5946 #define IRecordInfo_GetName(This,pbstrName) (This)->lpVtbl->GetName(This,pbstrName)
5947 #define IRecordInfo_GetSize(This,pcbSize) (This)->lpVtbl->GetSize(This,pcbSize)
5948 #define IRecordInfo_GetTypeInfo(This,ppTypeInfo) (This)->lpVtbl->GetTypeInfo(This,ppTypeInfo)
5949 #define IRecordInfo_GetField(This,pvData,szFieldName,pvarField) (This)->lpVtbl->GetField(This,pvData,szFieldName,pvarField)
5950 #define IRecordInfo_GetFieldNoCopy(This,pvData,szFieldName,pvarField,ppvDataCArray) (This)->lpVtbl->GetFieldNoCopy(This,pvData,szFieldName,pvarField,ppvDataCArray)
5951 #define IRecordInfo_PutField(This,wFlags,pvData,szFieldName,pvarField) (This)->lpVtbl->PutField(This,wFlags,pvData,szFieldName,pvarField)
5952 #define IRecordInfo_PutFieldNoCopy(This,wFlags,pvData,szFieldName,pvarField) (This)->lpVtbl->PutFieldNoCopy(This,wFlags,pvData,szFieldName,pvarField)
5953 #define IRecordInfo_GetFieldNames(This,pcNames,rgBstrNames) (This)->lpVtbl->GetFieldNames(This,pcNames,rgBstrNames)
5954 #define IRecordInfo_IsMatchingType(This,pRecordInfo) (This)->lpVtbl->IsMatchingType(This,pRecordInfo)
5955 #define IRecordInfo_RecordCreate(This) (This)->lpVtbl->RecordCreate(This)
5956 #define IRecordInfo_RecordCreateCopy(This,pvSource,ppvDest) (This)->lpVtbl->RecordCreateCopy(This,pvSource,ppvDest)
5957 #define IRecordInfo_RecordDestroy(This,pvRecord) (This)->lpVtbl->RecordDestroy(This,pvRecord)
5958 #else
5959 /*** IUnknown methods ***/
5960 static FORCEINLINE HRESULT IRecordInfo_QueryInterface(IRecordInfo* This,REFIID riid,void **ppvObject) {
5961     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5962 }
5963 static FORCEINLINE ULONG IRecordInfo_AddRef(IRecordInfo* This) {
5964     return This->lpVtbl->AddRef(This);
5965 }
5966 static FORCEINLINE ULONG IRecordInfo_Release(IRecordInfo* This) {
5967     return This->lpVtbl->Release(This);
5968 }
5969 /*** IRecordInfo methods ***/
5970 static FORCEINLINE HRESULT IRecordInfo_RecordInit(IRecordInfo* This,PVOID pvNew) {
5971     return This->lpVtbl->RecordInit(This,pvNew);
5972 }
5973 static FORCEINLINE HRESULT IRecordInfo_RecordClear(IRecordInfo* This,PVOID pvExisting) {
5974     return This->lpVtbl->RecordClear(This,pvExisting);
5975 }
5976 static FORCEINLINE HRESULT IRecordInfo_RecordCopy(IRecordInfo* This,PVOID pvExisting,PVOID pvNew) {
5977     return This->lpVtbl->RecordCopy(This,pvExisting,pvNew);
5978 }
5979 static FORCEINLINE HRESULT IRecordInfo_GetGuid(IRecordInfo* This,GUID *pguid) {
5980     return This->lpVtbl->GetGuid(This,pguid);
5981 }
5982 static FORCEINLINE HRESULT IRecordInfo_GetName(IRecordInfo* This,BSTR *pbstrName) {
5983     return This->lpVtbl->GetName(This,pbstrName);
5984 }
5985 static FORCEINLINE HRESULT IRecordInfo_GetSize(IRecordInfo* This,ULONG *pcbSize) {
5986     return This->lpVtbl->GetSize(This,pcbSize);
5987 }
5988 static FORCEINLINE HRESULT IRecordInfo_GetTypeInfo(IRecordInfo* This,ITypeInfo **ppTypeInfo) {
5989     return This->lpVtbl->GetTypeInfo(This,ppTypeInfo);
5990 }
5991 static FORCEINLINE HRESULT IRecordInfo_GetField(IRecordInfo* This,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField) {
5992     return This->lpVtbl->GetField(This,pvData,szFieldName,pvarField);
5993 }
5994 static FORCEINLINE HRESULT IRecordInfo_GetFieldNoCopy(IRecordInfo* This,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField,PVOID *ppvDataCArray) {
5995     return This->lpVtbl->GetFieldNoCopy(This,pvData,szFieldName,pvarField,ppvDataCArray);
5996 }
5997 static FORCEINLINE HRESULT IRecordInfo_PutField(IRecordInfo* This,ULONG wFlags,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField) {
5998     return This->lpVtbl->PutField(This,wFlags,pvData,szFieldName,pvarField);
5999 }
6000 static FORCEINLINE HRESULT IRecordInfo_PutFieldNoCopy(IRecordInfo* This,ULONG wFlags,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField) {
6001     return This->lpVtbl->PutFieldNoCopy(This,wFlags,pvData,szFieldName,pvarField);
6002 }
6003 static FORCEINLINE HRESULT IRecordInfo_GetFieldNames(IRecordInfo* This,ULONG *pcNames,BSTR *rgBstrNames) {
6004     return This->lpVtbl->GetFieldNames(This,pcNames,rgBstrNames);
6005 }
6006 static FORCEINLINE WINBOOL IRecordInfo_IsMatchingType(IRecordInfo* This,IRecordInfo *pRecordInfo) {
6007     return This->lpVtbl->IsMatchingType(This,pRecordInfo);
6008 }
6009 static FORCEINLINE PVOID IRecordInfo_RecordCreate(IRecordInfo* This) {
6010     return This->lpVtbl->RecordCreate(This);
6011 }
6012 static FORCEINLINE HRESULT IRecordInfo_RecordCreateCopy(IRecordInfo* This,PVOID pvSource,PVOID *ppvDest) {
6013     return This->lpVtbl->RecordCreateCopy(This,pvSource,ppvDest);
6014 }
6015 static FORCEINLINE HRESULT IRecordInfo_RecordDestroy(IRecordInfo* This,PVOID pvRecord) {
6016     return This->lpVtbl->RecordDestroy(This,pvRecord);
6017 }
6018 #endif
6019 #endif
6020 
6021 #endif
6022 
6023 HRESULT STDMETHODCALLTYPE IRecordInfo_RecordInit_Proxy(
6024     IRecordInfo* This,
6025     PVOID pvNew);
6026 void __RPC_STUB IRecordInfo_RecordInit_Stub(
6027     IRpcStubBuffer* This,
6028     IRpcChannelBuffer* pRpcChannelBuffer,
6029     PRPC_MESSAGE pRpcMessage,
6030     DWORD* pdwStubPhase);
6031 HRESULT STDMETHODCALLTYPE IRecordInfo_RecordClear_Proxy(
6032     IRecordInfo* This,
6033     PVOID pvExisting);
6034 void __RPC_STUB IRecordInfo_RecordClear_Stub(
6035     IRpcStubBuffer* This,
6036     IRpcChannelBuffer* pRpcChannelBuffer,
6037     PRPC_MESSAGE pRpcMessage,
6038     DWORD* pdwStubPhase);
6039 HRESULT STDMETHODCALLTYPE IRecordInfo_RecordCopy_Proxy(
6040     IRecordInfo* This,
6041     PVOID pvExisting,
6042     PVOID pvNew);
6043 void __RPC_STUB IRecordInfo_RecordCopy_Stub(
6044     IRpcStubBuffer* This,
6045     IRpcChannelBuffer* pRpcChannelBuffer,
6046     PRPC_MESSAGE pRpcMessage,
6047     DWORD* pdwStubPhase);
6048 HRESULT STDMETHODCALLTYPE IRecordInfo_GetGuid_Proxy(
6049     IRecordInfo* This,
6050     GUID *pguid);
6051 void __RPC_STUB IRecordInfo_GetGuid_Stub(
6052     IRpcStubBuffer* This,
6053     IRpcChannelBuffer* pRpcChannelBuffer,
6054     PRPC_MESSAGE pRpcMessage,
6055     DWORD* pdwStubPhase);
6056 HRESULT STDMETHODCALLTYPE IRecordInfo_GetName_Proxy(
6057     IRecordInfo* This,
6058     BSTR *pbstrName);
6059 void __RPC_STUB IRecordInfo_GetName_Stub(
6060     IRpcStubBuffer* This,
6061     IRpcChannelBuffer* pRpcChannelBuffer,
6062     PRPC_MESSAGE pRpcMessage,
6063     DWORD* pdwStubPhase);
6064 HRESULT STDMETHODCALLTYPE IRecordInfo_GetSize_Proxy(
6065     IRecordInfo* This,
6066     ULONG *pcbSize);
6067 void __RPC_STUB IRecordInfo_GetSize_Stub(
6068     IRpcStubBuffer* This,
6069     IRpcChannelBuffer* pRpcChannelBuffer,
6070     PRPC_MESSAGE pRpcMessage,
6071     DWORD* pdwStubPhase);
6072 HRESULT STDMETHODCALLTYPE IRecordInfo_GetTypeInfo_Proxy(
6073     IRecordInfo* This,
6074     ITypeInfo **ppTypeInfo);
6075 void __RPC_STUB IRecordInfo_GetTypeInfo_Stub(
6076     IRpcStubBuffer* This,
6077     IRpcChannelBuffer* pRpcChannelBuffer,
6078     PRPC_MESSAGE pRpcMessage,
6079     DWORD* pdwStubPhase);
6080 HRESULT STDMETHODCALLTYPE IRecordInfo_GetField_Proxy(
6081     IRecordInfo* This,
6082     PVOID pvData,
6083     LPCOLESTR szFieldName,
6084     VARIANT *pvarField);
6085 void __RPC_STUB IRecordInfo_GetField_Stub(
6086     IRpcStubBuffer* This,
6087     IRpcChannelBuffer* pRpcChannelBuffer,
6088     PRPC_MESSAGE pRpcMessage,
6089     DWORD* pdwStubPhase);
6090 HRESULT STDMETHODCALLTYPE IRecordInfo_GetFieldNoCopy_Proxy(
6091     IRecordInfo* This,
6092     PVOID pvData,
6093     LPCOLESTR szFieldName,
6094     VARIANT *pvarField,
6095     PVOID *ppvDataCArray);
6096 void __RPC_STUB IRecordInfo_GetFieldNoCopy_Stub(
6097     IRpcStubBuffer* This,
6098     IRpcChannelBuffer* pRpcChannelBuffer,
6099     PRPC_MESSAGE pRpcMessage,
6100     DWORD* pdwStubPhase);
6101 HRESULT STDMETHODCALLTYPE IRecordInfo_PutField_Proxy(
6102     IRecordInfo* This,
6103     ULONG wFlags,
6104     PVOID pvData,
6105     LPCOLESTR szFieldName,
6106     VARIANT *pvarField);
6107 void __RPC_STUB IRecordInfo_PutField_Stub(
6108     IRpcStubBuffer* This,
6109     IRpcChannelBuffer* pRpcChannelBuffer,
6110     PRPC_MESSAGE pRpcMessage,
6111     DWORD* pdwStubPhase);
6112 HRESULT STDMETHODCALLTYPE IRecordInfo_PutFieldNoCopy_Proxy(
6113     IRecordInfo* This,
6114     ULONG wFlags,
6115     PVOID pvData,
6116     LPCOLESTR szFieldName,
6117     VARIANT *pvarField);
6118 void __RPC_STUB IRecordInfo_PutFieldNoCopy_Stub(
6119     IRpcStubBuffer* This,
6120     IRpcChannelBuffer* pRpcChannelBuffer,
6121     PRPC_MESSAGE pRpcMessage,
6122     DWORD* pdwStubPhase);
6123 HRESULT STDMETHODCALLTYPE IRecordInfo_GetFieldNames_Proxy(
6124     IRecordInfo* This,
6125     ULONG *pcNames,
6126     BSTR *rgBstrNames);
6127 void __RPC_STUB IRecordInfo_GetFieldNames_Stub(
6128     IRpcStubBuffer* This,
6129     IRpcChannelBuffer* pRpcChannelBuffer,
6130     PRPC_MESSAGE pRpcMessage,
6131     DWORD* pdwStubPhase);
6132 WINBOOL STDMETHODCALLTYPE IRecordInfo_IsMatchingType_Proxy(
6133     IRecordInfo* This,
6134     IRecordInfo *pRecordInfo);
6135 void __RPC_STUB IRecordInfo_IsMatchingType_Stub(
6136     IRpcStubBuffer* This,
6137     IRpcChannelBuffer* pRpcChannelBuffer,
6138     PRPC_MESSAGE pRpcMessage,
6139     DWORD* pdwStubPhase);
6140 PVOID STDMETHODCALLTYPE IRecordInfo_RecordCreate_Proxy(
6141     IRecordInfo* This);
6142 void __RPC_STUB IRecordInfo_RecordCreate_Stub(
6143     IRpcStubBuffer* This,
6144     IRpcChannelBuffer* pRpcChannelBuffer,
6145     PRPC_MESSAGE pRpcMessage,
6146     DWORD* pdwStubPhase);
6147 HRESULT STDMETHODCALLTYPE IRecordInfo_RecordCreateCopy_Proxy(
6148     IRecordInfo* This,
6149     PVOID pvSource,
6150     PVOID *ppvDest);
6151 void __RPC_STUB IRecordInfo_RecordCreateCopy_Stub(
6152     IRpcStubBuffer* This,
6153     IRpcChannelBuffer* pRpcChannelBuffer,
6154     PRPC_MESSAGE pRpcMessage,
6155     DWORD* pdwStubPhase);
6156 HRESULT STDMETHODCALLTYPE IRecordInfo_RecordDestroy_Proxy(
6157     IRecordInfo* This,
6158     PVOID pvRecord);
6159 void __RPC_STUB IRecordInfo_RecordDestroy_Stub(
6160     IRpcStubBuffer* This,
6161     IRpcChannelBuffer* pRpcChannelBuffer,
6162     PRPC_MESSAGE pRpcMessage,
6163     DWORD* pdwStubPhase);
6164 
6165 #endif  /* __IRecordInfo_INTERFACE_DEFINED__ */
6166 
6167 
6168 /*****************************************************************************
6169  * IErrorLog interface
6170  */
6171 #ifndef __IErrorLog_INTERFACE_DEFINED__
6172 #define __IErrorLog_INTERFACE_DEFINED__
6173 
6174 typedef IErrorLog *LPERRORLOG;
6175 
6176 DEFINE_GUID(IID_IErrorLog, 0x3127ca40, 0x446e, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51);
6177 #if defined(__cplusplus) && !defined(CINTERFACE)
6178 MIDL_INTERFACE("3127ca40-446e-11ce-8135-00aa004bb851")
6179 IErrorLog : public IUnknown
6180 {
6181     virtual HRESULT STDMETHODCALLTYPE AddError(
6182         LPCOLESTR pszPropName,
6183         EXCEPINFO *pExcepInfo) = 0;
6184 
6185 };
6186 #ifdef __CRT_UUID_DECL
6187 __CRT_UUID_DECL(IErrorLog, 0x3127ca40, 0x446e, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51)
6188 #endif
6189 #else
6190 typedef struct IErrorLogVtbl {
6191     BEGIN_INTERFACE
6192 
6193     /*** IUnknown methods ***/
6194     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6195         IErrorLog* This,
6196         REFIID riid,
6197         void **ppvObject);
6198 
6199     ULONG (STDMETHODCALLTYPE *AddRef)(
6200         IErrorLog* This);
6201 
6202     ULONG (STDMETHODCALLTYPE *Release)(
6203         IErrorLog* This);
6204 
6205     /*** IErrorLog methods ***/
6206     HRESULT (STDMETHODCALLTYPE *AddError)(
6207         IErrorLog* This,
6208         LPCOLESTR pszPropName,
6209         EXCEPINFO *pExcepInfo);
6210 
6211     END_INTERFACE
6212 } IErrorLogVtbl;
6213 interface IErrorLog {
6214     CONST_VTBL IErrorLogVtbl* lpVtbl;
6215 };
6216 
6217 #ifdef COBJMACROS
6218 #ifndef WIDL_C_INLINE_WRAPPERS
6219 /*** IUnknown methods ***/
6220 #define IErrorLog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6221 #define IErrorLog_AddRef(This) (This)->lpVtbl->AddRef(This)
6222 #define IErrorLog_Release(This) (This)->lpVtbl->Release(This)
6223 /*** IErrorLog methods ***/
6224 #define IErrorLog_AddError(This,pszPropName,pExcepInfo) (This)->lpVtbl->AddError(This,pszPropName,pExcepInfo)
6225 #else
6226 /*** IUnknown methods ***/
6227 static FORCEINLINE HRESULT IErrorLog_QueryInterface(IErrorLog* This,REFIID riid,void **ppvObject) {
6228     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6229 }
6230 static FORCEINLINE ULONG IErrorLog_AddRef(IErrorLog* This) {
6231     return This->lpVtbl->AddRef(This);
6232 }
6233 static FORCEINLINE ULONG IErrorLog_Release(IErrorLog* This) {
6234     return This->lpVtbl->Release(This);
6235 }
6236 /*** IErrorLog methods ***/
6237 static FORCEINLINE HRESULT IErrorLog_AddError(IErrorLog* This,LPCOLESTR pszPropName,EXCEPINFO *pExcepInfo) {
6238     return This->lpVtbl->AddError(This,pszPropName,pExcepInfo);
6239 }
6240 #endif
6241 #endif
6242 
6243 #endif
6244 
6245 HRESULT STDMETHODCALLTYPE IErrorLog_AddError_Proxy(
6246     IErrorLog* This,
6247     LPCOLESTR pszPropName,
6248     EXCEPINFO *pExcepInfo);
6249 void __RPC_STUB IErrorLog_AddError_Stub(
6250     IRpcStubBuffer* This,
6251     IRpcChannelBuffer* pRpcChannelBuffer,
6252     PRPC_MESSAGE pRpcMessage,
6253     DWORD* pdwStubPhase);
6254 
6255 #endif  /* __IErrorLog_INTERFACE_DEFINED__ */
6256 
6257 
6258 /*****************************************************************************
6259  * IPropertyBag interface
6260  */
6261 #ifndef __IPropertyBag_INTERFACE_DEFINED__
6262 #define __IPropertyBag_INTERFACE_DEFINED__
6263 
6264 typedef IPropertyBag *LPPROPERTYBAG;
6265 
6266 DEFINE_GUID(IID_IPropertyBag, 0x55272a00, 0x42cb, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51);
6267 #if defined(__cplusplus) && !defined(CINTERFACE)
6268 MIDL_INTERFACE("55272a00-42cb-11ce-8135-00aa004bb851")
6269 IPropertyBag : public IUnknown
6270 {
6271     virtual HRESULT STDMETHODCALLTYPE Read(
6272         LPCOLESTR pszPropName,
6273         VARIANT *pVar,
6274         IErrorLog *pErrorLog) = 0;
6275 
6276     virtual HRESULT STDMETHODCALLTYPE Write(
6277         LPCOLESTR pszPropName,
6278         VARIANT *pVar) = 0;
6279 
6280 };
6281 #ifdef __CRT_UUID_DECL
6282 __CRT_UUID_DECL(IPropertyBag, 0x55272a00, 0x42cb, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51)
6283 #endif
6284 #else
6285 typedef struct IPropertyBagVtbl {
6286     BEGIN_INTERFACE
6287 
6288     /*** IUnknown methods ***/
6289     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6290         IPropertyBag* This,
6291         REFIID riid,
6292         void **ppvObject);
6293 
6294     ULONG (STDMETHODCALLTYPE *AddRef)(
6295         IPropertyBag* This);
6296 
6297     ULONG (STDMETHODCALLTYPE *Release)(
6298         IPropertyBag* This);
6299 
6300     /*** IPropertyBag methods ***/
6301     HRESULT (STDMETHODCALLTYPE *Read)(
6302         IPropertyBag* This,
6303         LPCOLESTR pszPropName,
6304         VARIANT *pVar,
6305         IErrorLog *pErrorLog);
6306 
6307     HRESULT (STDMETHODCALLTYPE *Write)(
6308         IPropertyBag* This,
6309         LPCOLESTR pszPropName,
6310         VARIANT *pVar);
6311 
6312     END_INTERFACE
6313 } IPropertyBagVtbl;
6314 interface IPropertyBag {
6315     CONST_VTBL IPropertyBagVtbl* lpVtbl;
6316 };
6317 
6318 #ifdef COBJMACROS
6319 #ifndef WIDL_C_INLINE_WRAPPERS
6320 /*** IUnknown methods ***/
6321 #define IPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6322 #define IPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
6323 #define IPropertyBag_Release(This) (This)->lpVtbl->Release(This)
6324 /*** IPropertyBag methods ***/
6325 #define IPropertyBag_Read(This,pszPropName,pVar,pErrorLog) (This)->lpVtbl->Read(This,pszPropName,pVar,pErrorLog)
6326 #define IPropertyBag_Write(This,pszPropName,pVar) (This)->lpVtbl->Write(This,pszPropName,pVar)
6327 #else
6328 /*** IUnknown methods ***/
6329 static FORCEINLINE HRESULT IPropertyBag_QueryInterface(IPropertyBag* This,REFIID riid,void **ppvObject) {
6330     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6331 }
6332 static FORCEINLINE ULONG IPropertyBag_AddRef(IPropertyBag* This) {
6333     return This->lpVtbl->AddRef(This);
6334 }
6335 static FORCEINLINE ULONG IPropertyBag_Release(IPropertyBag* This) {
6336     return This->lpVtbl->Release(This);
6337 }
6338 /*** IPropertyBag methods ***/
6339 static FORCEINLINE HRESULT IPropertyBag_Read(IPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog) {
6340     return This->lpVtbl->Read(This,pszPropName,pVar,pErrorLog);
6341 }
6342 static FORCEINLINE HRESULT IPropertyBag_Write(IPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar) {
6343     return This->lpVtbl->Write(This,pszPropName,pVar);
6344 }
6345 #endif
6346 #endif
6347 
6348 #endif
6349 
6350 HRESULT STDMETHODCALLTYPE IPropertyBag_RemoteRead_Proxy(
6351     IPropertyBag* This,
6352     LPCOLESTR pszPropName,
6353     VARIANT *pVar,
6354     IErrorLog *pErrorLog,
6355     DWORD varType,
6356     IUnknown *pUnkObj);
6357 void __RPC_STUB IPropertyBag_RemoteRead_Stub(
6358     IRpcStubBuffer* This,
6359     IRpcChannelBuffer* pRpcChannelBuffer,
6360     PRPC_MESSAGE pRpcMessage,
6361     DWORD* pdwStubPhase);
6362 HRESULT STDMETHODCALLTYPE IPropertyBag_Write_Proxy(
6363     IPropertyBag* This,
6364     LPCOLESTR pszPropName,
6365     VARIANT *pVar);
6366 void __RPC_STUB IPropertyBag_Write_Stub(
6367     IRpcStubBuffer* This,
6368     IRpcChannelBuffer* pRpcChannelBuffer,
6369     PRPC_MESSAGE pRpcMessage,
6370     DWORD* pdwStubPhase);
6371 HRESULT CALLBACK IPropertyBag_Read_Proxy(
6372     IPropertyBag* This,
6373     LPCOLESTR pszPropName,
6374     VARIANT *pVar,
6375     IErrorLog *pErrorLog);
6376 HRESULT __RPC_STUB IPropertyBag_Read_Stub(
6377     IPropertyBag* This,
6378     LPCOLESTR pszPropName,
6379     VARIANT *pVar,
6380     IErrorLog *pErrorLog,
6381     DWORD varType,
6382     IUnknown *pUnkObj);
6383 
6384 #endif  /* __IPropertyBag_INTERFACE_DEFINED__ */
6385 
6386 #endif
6387 /* Begin additional prototypes for all interfaces */
6388 
6389 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
6390 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
6391 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
6392 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
6393 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
6394 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
6395 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
6396 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
6397 ULONG           __RPC_USER CLEANLOCALSTORAGE_UserSize     (ULONG *, ULONG, CLEANLOCALSTORAGE *);
6398 unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserMarshal  (ULONG *, unsigned char *, CLEANLOCALSTORAGE *);
6399 unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserUnmarshal(ULONG *, unsigned char *, CLEANLOCALSTORAGE *);
6400 void            __RPC_USER CLEANLOCALSTORAGE_UserFree     (ULONG *, CLEANLOCALSTORAGE *);
6401 
6402 /* End additional prototypes */
6403 
6404 #ifdef __cplusplus
6405 }
6406 #endif
6407 
6408 #endif /* __oaidl_h__ */
6409