Home | History | Annotate | Download | only in include
      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