Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.5.29 from /tmp/build-mingw64-toolchain-digit/src/mingw-w64-svn-r5861/mingw-w64-headers/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 __IDispatch_FWD_DEFINED__
     26 #define __IDispatch_FWD_DEFINED__
     27 typedef interface IDispatch IDispatch;
     28 #endif
     29 
     30 #ifndef __IEnumVARIANT_FWD_DEFINED__
     31 #define __IEnumVARIANT_FWD_DEFINED__
     32 typedef interface IEnumVARIANT IEnumVARIANT;
     33 #endif
     34 
     35 #ifndef __ITypeComp_FWD_DEFINED__
     36 #define __ITypeComp_FWD_DEFINED__
     37 typedef interface ITypeComp ITypeComp;
     38 #endif
     39 
     40 #ifndef __ITypeInfo_FWD_DEFINED__
     41 #define __ITypeInfo_FWD_DEFINED__
     42 typedef interface ITypeInfo ITypeInfo;
     43 #endif
     44 
     45 #ifndef __ITypeLib_FWD_DEFINED__
     46 #define __ITypeLib_FWD_DEFINED__
     47 typedef interface ITypeLib ITypeLib;
     48 #endif
     49 
     50 #ifndef __IRecordInfo_FWD_DEFINED__
     51 #define __IRecordInfo_FWD_DEFINED__
     52 typedef interface IRecordInfo IRecordInfo;
     53 #endif
     54 
     55 #ifndef __IErrorLog_FWD_DEFINED__
     56 #define __IErrorLog_FWD_DEFINED__
     57 typedef interface IErrorLog IErrorLog;
     58 #endif
     59 
     60 #ifndef __IPropertyBag_FWD_DEFINED__
     61 #define __IPropertyBag_FWD_DEFINED__
     62 typedef interface IPropertyBag IPropertyBag;
     63 #endif
     64 
     65 /* Headers for imported files */
     66 
     67 #include <objidl.h>
     68 
     69 #ifdef __cplusplus
     70 extern "C" {
     71 #endif
     72 
     73 #ifndef __IDispatch_FWD_DEFINED__
     74 #define __IDispatch_FWD_DEFINED__
     75 typedef interface IDispatch IDispatch;
     76 #endif
     77 
     78 #ifndef __IRecordInfo_FWD_DEFINED__
     79 #define __IRecordInfo_FWD_DEFINED__
     80 typedef interface IRecordInfo IRecordInfo;
     81 #endif
     82 
     83 #ifndef __ITypeInfo_FWD_DEFINED__
     84 #define __ITypeInfo_FWD_DEFINED__
     85 typedef interface ITypeInfo ITypeInfo;
     86 #endif
     87 
     88 #ifndef __ITypeLib_FWD_DEFINED__
     89 #define __ITypeLib_FWD_DEFINED__
     90 typedef interface ITypeLib ITypeLib;
     91 #endif
     92 
     93 #ifndef __ICreateTypeInfo2_FWD_DEFINED__
     94 #define __ICreateTypeInfo2_FWD_DEFINED__
     95 typedef struct ICreateTypeInfo2 ICreateTypeInfo2;
     96 #endif
     97 
     98 #ifndef __ICreateTypeLib_FWD_DEFINED__
     99 #define __ICreateTypeLib_FWD_DEFINED__
    100 typedef struct ICreateTypeLib ICreateTypeLib;
    101 #endif
    102 
    103 #ifndef __ICreateTypeLib2_FWD_DEFINED__
    104 #define __ICreateTypeLib2_FWD_DEFINED__
    105 typedef struct ICreateTypeLib2 ICreateTypeLib2;
    106 #endif
    107 
    108 #ifndef __ITypeInfo2_FWD_DEFINED__
    109 #define __ITypeInfo2_FWD_DEFINED__
    110 typedef struct ITypeInfo2 ITypeInfo2;
    111 #endif
    112 
    113 #ifndef __ITypeLib2_FWD_DEFINED__
    114 #define __ITypeLib2_FWD_DEFINED__
    115 typedef struct ITypeLib2 ITypeLib2;
    116 #endif
    117 
    118 #ifndef __ITypeChangeEvents_FWD_DEFINED__
    119 #define __ITypeChangeEvents_FWD_DEFINED__
    120 typedef struct ITypeChangeEvents ITypeChangeEvents;
    121 #endif
    122 
    123 #ifndef __IErrorInfo_FWD_DEFINED__
    124 #define __IErrorInfo_FWD_DEFINED__
    125 typedef struct IErrorInfo IErrorInfo;
    126 #endif
    127 
    128 #ifndef __ICreateErrorInfo_FWD_DEFINED__
    129 #define __ICreateErrorInfo_FWD_DEFINED__
    130 typedef struct ICreateErrorInfo ICreateErrorInfo;
    131 #endif
    132 
    133 #ifndef __ISupportErrorInfo_FWD_DEFINED__
    134 #define __ISupportErrorInfo_FWD_DEFINED__
    135 typedef struct ISupportErrorInfo ISupportErrorInfo;
    136 #endif
    137 
    138 #ifndef __ITypeFactory_FWD_DEFINED__
    139 #define __ITypeFactory_FWD_DEFINED__
    140 typedef struct ITypeFactory ITypeFactory;
    141 #endif
    142 
    143 #ifndef __ITypeMarshal_FWD_DEFINED__
    144 #define __ITypeMarshal_FWD_DEFINED__
    145 typedef struct ITypeMarshal ITypeMarshal;
    146 #endif
    147 /*****************************************************************************
    148  * IOleAutomationTypes interface (v1.0)
    149  */
    150 #ifndef __IOleAutomationTypes_INTERFACE_DEFINED__
    151 #define __IOleAutomationTypes_INTERFACE_DEFINED__
    152 
    153 extern RPC_IF_HANDLE IOleAutomationTypes_v1_0_c_ifspec;
    154 extern RPC_IF_HANDLE IOleAutomationTypes_v1_0_s_ifspec;
    155 typedef CY CURRENCY;
    156 typedef struct tagSAFEARRAYBOUND {
    157     ULONG cElements;
    158     LONG lLbound;
    159 } SAFEARRAYBOUND;
    160 typedef struct tagSAFEARRAYBOUND *LPSAFEARRAYBOUND;
    161 typedef struct _wireVARIANT *wireVARIANT;
    162 typedef struct _wireBRECORD *wireBRECORD;
    163 typedef struct _wireSAFEARR_BSTR {
    164     ULONG Size;
    165     wireBSTR *aBstr;
    166 } SAFEARR_BSTR;
    167 typedef struct _wireSAFEARR_UNKNOWN {
    168     ULONG Size;
    169     IUnknown **apUnknown;
    170 } SAFEARR_UNKNOWN;
    171 typedef struct _wireSAFEARR_DISPATCH {
    172     ULONG Size;
    173     IDispatch **apDispatch;
    174 } SAFEARR_DISPATCH;
    175 typedef struct _wireSAFEARR_VARIANT {
    176     ULONG Size;
    177     wireVARIANT *aVariant;
    178 } SAFEARR_VARIANT;
    179 typedef struct _wireSAFEARR_BRECORD {
    180     ULONG Size;
    181     wireBRECORD *aRecord;
    182 } SAFEARR_BRECORD;
    183 typedef struct _wireSAFEARR_HAVEIID {
    184     ULONG Size;
    185     IUnknown **apUnknown;
    186     IID iid;
    187 } SAFEARR_HAVEIID;
    188 typedef enum tagSF_TYPE {
    189     SF_ERROR = VT_ERROR,
    190     SF_I1 = VT_I1,
    191     SF_I2 = VT_I2,
    192     SF_I4 = VT_I4,
    193     SF_I8 = VT_I8,
    194     SF_BSTR = VT_BSTR,
    195     SF_UNKNOWN = VT_UNKNOWN,
    196     SF_DISPATCH = VT_DISPATCH,
    197     SF_VARIANT = VT_VARIANT,
    198     SF_RECORD = VT_RECORD,
    199     SF_HAVEIID = VT_UNKNOWN | VT_RESERVED
    200 } SF_TYPE;
    201 typedef struct _wireSAFEARRAY_UNION {
    202     ULONG sfType;
    203     union {
    204         SAFEARR_BSTR BstrStr;
    205         SAFEARR_UNKNOWN UnknownStr;
    206         SAFEARR_DISPATCH DispatchStr;
    207         SAFEARR_VARIANT VariantStr;
    208         SAFEARR_BRECORD RecordStr;
    209         SAFEARR_HAVEIID HaveIidStr;
    210         BYTE_SIZEDARR ByteStr;
    211         WORD_SIZEDARR WordStr;
    212         DWORD_SIZEDARR LongStr;
    213         HYPER_SIZEDARR HyperStr;
    214     } u;
    215 } SAFEARRAYUNION;
    216 typedef struct _wireSAFEARRAY {
    217     USHORT cDims;
    218     USHORT fFeatures;
    219     ULONG cbElements;
    220     ULONG cLocks;
    221     SAFEARRAYUNION uArrayStructs;
    222     SAFEARRAYBOUND rgsabound[1];
    223 } *wireSAFEARRAY;
    224 typedef wireSAFEARRAY *wirePSAFEARRAY;
    225 typedef struct tagSAFEARRAY {
    226     USHORT cDims;
    227     USHORT fFeatures;
    228     ULONG cbElements;
    229     ULONG cLocks;
    230     PVOID pvData;
    231     SAFEARRAYBOUND rgsabound[1];
    232 } SAFEARRAY;
    233 typedef SAFEARRAY *LPSAFEARRAY;
    234 #define FADF_AUTO (0x1)
    235 #define FADF_STATIC (0x2)
    236 #define FADF_EMBEDDED (0x4)
    237 #define FADF_FIXEDSIZE (0x10)
    238 #define FADF_RECORD (0x20)
    239 #define FADF_HAVEIID (0x40)
    240 #define FADF_HAVEVARTYPE (0x80)
    241 #define FADF_BSTR (0x100)
    242 #define FADF_UNKNOWN (0x200)
    243 #define FADF_DISPATCH (0x400)
    244 #define FADF_VARIANT (0x800)
    245 #define FADF_RESERVED (0xf008)
    246 #if defined(NONAMELESSUNION)
    247 #define __VARIANT_NAME_1 n1
    248 #define __VARIANT_NAME_2 n2
    249 #define __VARIANT_NAME_3 n3
    250 #define __VARIANT_NAME_4 brecVal
    251 #else
    252 #define __tagVARIANT
    253 #define __VARIANT_NAME_1
    254 #define __VARIANT_NAME_2
    255 #define __VARIANT_NAME_3
    256 #define __tagBRECORD
    257 #define __VARIANT_NAME_4
    258 #endif
    259 typedef struct tagVARIANT VARIANT;
    260 struct tagVARIANT {
    261     union {
    262         struct __tagVARIANT {
    263             VARTYPE vt;
    264             WORD wReserved1;
    265             WORD wReserved2;
    266             WORD wReserved3;
    267             union {
    268                 LONGLONG llVal;
    269                 LONG lVal;
    270                 BYTE bVal;
    271                 SHORT iVal;
    272                 FLOAT fltVal;
    273                 DOUBLE dblVal;
    274                 VARIANT_BOOL boolVal;
    275                 SCODE scode;
    276                 CY cyVal;
    277                 DATE date;
    278                 BSTR bstrVal;
    279                 IUnknown *punkVal;
    280                 IDispatch *pdispVal;
    281                 SAFEARRAY *parray;
    282                 BYTE *pbVal;
    283                 SHORT *piVal;
    284                 LONG *plVal;
    285                 LONGLONG *pllVal;
    286                 FLOAT *pfltVal;
    287                 DOUBLE *pdblVal;
    288                 VARIANT_BOOL *pboolVal;
    289                 SCODE *pscode;
    290                 CY *pcyVal;
    291                 DATE *pdate;
    292                 BSTR *pbstrVal;
    293                 IUnknown **ppunkVal;
    294                 IDispatch **ppdispVal;
    295                 SAFEARRAY **pparray;
    296                 VARIANT *pvarVal;
    297                 PVOID byref;
    298                 CHAR cVal;
    299                 USHORT uiVal;
    300                 ULONG ulVal;
    301                 ULONGLONG ullVal;
    302                 INT intVal;
    303                 UINT uintVal;
    304                 DECIMAL *pdecVal;
    305                 CHAR *pcVal;
    306                 USHORT *puiVal;
    307                 ULONG *pulVal;
    308                 ULONGLONG *pullVal;
    309                 INT *pintVal;
    310                 UINT *puintVal;
    311                 struct __tagBRECORD {
    312                     PVOID pvRecord;
    313                     IRecordInfo *pRecInfo;
    314                 } __VARIANT_NAME_4;
    315             } __VARIANT_NAME_3;
    316         } __VARIANT_NAME_2;
    317         DECIMAL decVal;
    318     } __VARIANT_NAME_1;
    319 };
    320 
    321 typedef VARIANT *LPVARIANT;
    322 typedef VARIANT VARIANTARG;
    323 typedef VARIANT *LPVARIANTARG;
    324 struct _wireBRECORD {
    325     ULONG fFlags;
    326     ULONG clSize;
    327     IRecordInfo *pRecInfo;
    328     byte *pRecord;
    329 };
    330 
    331 struct _wireVARIANT {
    332     DWORD clSize;
    333     DWORD rpcReserved;
    334     USHORT vt;
    335     USHORT wReserved1;
    336     USHORT wReserved2;
    337     USHORT wReserved3;
    338     union {
    339         LONGLONG llVal;
    340         LONG lVal;
    341         BYTE bVal;
    342         SHORT iVal;
    343         FLOAT fltVal;
    344         DOUBLE dblVal;
    345         VARIANT_BOOL boolVal;
    346         SCODE scode;
    347         CY cyVal;
    348         DATE date;
    349         wireBSTR bstrVal;
    350         IUnknown *punkVal;
    351         IDispatch *pdispVal;
    352         wirePSAFEARRAY parray;
    353         wireBRECORD brecVal;
    354         BYTE *pbVal;
    355         SHORT *piVal;
    356         LONG *plVal;
    357         LONGLONG *pllVal;
    358         FLOAT *pfltVal;
    359         DOUBLE *pdblVal;
    360         VARIANT_BOOL *pboolVal;
    361         SCODE *pscode;
    362         CY *pcyVal;
    363         DATE *pdate;
    364         wireBSTR *pbstrVal;
    365         IUnknown **ppunkVal;
    366         IDispatch **ppdispVal;
    367         wirePSAFEARRAY *pparray;
    368         wireVARIANT *pvarVal;
    369         CHAR cVal;
    370         USHORT uiVal;
    371         ULONG ulVal;
    372         ULONGLONG ullVal;
    373         INT intVal;
    374         UINT uintVal;
    375         DECIMAL decVal;
    376         DECIMAL *pdecVal;
    377         CHAR *pcVal;
    378         USHORT *puiVal;
    379         ULONG *pulVal;
    380         ULONGLONG *pullVal;
    381         INT *pintVal;
    382         UINT *puintVal;
    383     } DUMMYUNIONNAME;
    384 };
    385 
    386 #ifndef DEFINED_DISPID_MEMBERID
    387 #define DEFINED_DISPID_MEMBERID
    388 typedef LONG DISPID;
    389 typedef DISPID MEMBERID;
    390 typedef DWORD HREFTYPE;
    391 #endif
    392 typedef enum tagTYPEKIND {
    393     TKIND_ENUM = 0,
    394     TKIND_RECORD = 1,
    395     TKIND_MODULE = 2,
    396     TKIND_INTERFACE = 3,
    397     TKIND_DISPATCH = 4,
    398     TKIND_COCLASS = 5,
    399     TKIND_ALIAS = 6,
    400     TKIND_UNION = 7,
    401     TKIND_MAX = 8
    402 } TYPEKIND;
    403 typedef struct tagTYPEDESC {
    404     union {
    405         struct tagTYPEDESC *lptdesc;
    406         struct tagARRAYDESC *lpadesc;
    407         HREFTYPE hreftype;
    408     } DUMMYUNIONNAME;
    409     VARTYPE vt;
    410 } TYPEDESC;
    411 typedef struct tagARRAYDESC {
    412     TYPEDESC tdescElem;
    413     USHORT cDims;
    414     SAFEARRAYBOUND rgbounds[1];
    415 } ARRAYDESC;
    416 typedef struct tagPARAMDESCEX {
    417     ULONG cBytes;
    418     VARIANTARG varDefaultValue;
    419 } PARAMDESCEX;
    420 typedef struct tagPARAMDESCEX *LPPARAMDESCEX;
    421 typedef struct tagPARAMDESC {
    422     LPPARAMDESCEX pparamdescex;
    423     USHORT wParamFlags;
    424 } PARAMDESC;
    425 typedef struct tagPARAMDESC *LPPARAMDESC;
    426 #define PARAMFLAG_NONE (0)
    427 
    428 #define PARAMFLAG_FIN (0x1)
    429 
    430 #define PARAMFLAG_FOUT (0x2)
    431 
    432 #define PARAMFLAG_FLCID (0x4)
    433 
    434 #define PARAMFLAG_FRETVAL (0x8)
    435 
    436 #define PARAMFLAG_FOPT (0x10)
    437 
    438 #define PARAMFLAG_FHASDEFAULT (0x20)
    439 
    440 #define PARAMFLAG_FHASCUSTDATA (0x40)
    441 
    442 typedef struct tagIDLDESC {
    443     ULONG_PTR dwReserved;
    444     USHORT wIDLFlags;
    445 } IDLDESC;
    446 typedef struct tagIDLDESC *LPIDLDESC;
    447 #define IDLFLAG_NONE (PARAMFLAG_NONE)
    448 
    449 #define IDLFLAG_FIN (PARAMFLAG_FIN)
    450 
    451 #define IDLFLAG_FOUT (PARAMFLAG_FOUT)
    452 
    453 #define IDLFLAG_FLCID (PARAMFLAG_FLCID)
    454 
    455 #define IDLFLAG_FRETVAL (PARAMFLAG_FRETVAL)
    456 
    457 #if 0
    458 typedef struct tagELEMDESC {
    459     TYPEDESC tdesc;
    460     PARAMDESC paramdesc;
    461 } ELEMDESC;
    462 #else
    463   typedef struct tagELEMDESC {
    464     TYPEDESC tdesc;
    465     __C89_NAMELESS union {
    466       IDLDESC idldesc;
    467       PARAMDESC paramdesc;
    468     } DUMMYUNIONNAME;
    469   } ELEMDESC,*LPELEMDESC;
    470 #endif
    471 typedef struct tagTYPEATTR {
    472     GUID guid;
    473     LCID lcid;
    474     DWORD dwReserved;
    475     MEMBERID memidConstructor;
    476     MEMBERID memidDestructor;
    477     LPOLESTR lpstrSchema;
    478     ULONG cbSizeInstance;
    479     TYPEKIND typekind;
    480     WORD cFuncs;
    481     WORD cVars;
    482     WORD cImplTypes;
    483     WORD cbSizeVft;
    484     WORD cbAlignment;
    485     WORD wTypeFlags;
    486     WORD wMajorVerNum;
    487     WORD wMinorVerNum;
    488     TYPEDESC tdescAlias;
    489     IDLDESC idldescType;
    490 } TYPEATTR;
    491 typedef struct tagTYPEATTR *LPTYPEATTR;
    492 typedef struct tagDISPPARAMS {
    493     VARIANTARG *rgvarg;
    494     DISPID *rgdispidNamedArgs;
    495     UINT cArgs;
    496     UINT cNamedArgs;
    497 } DISPPARAMS;
    498 #if 0
    499 typedef struct tagEXCEPINFO {
    500     WORD wCode;
    501     WORD wReserved;
    502     BSTR bstrSource;
    503     BSTR bstrDescription;
    504     BSTR bstrHelpFile;
    505     DWORD dwHelpContext;
    506     ULONG_PTR pvReserved;
    507     ULONG_PTR pfnDeferredFillIn;
    508     SCODE scode;
    509 } EXCEPINFO;
    510 #else
    511 typedef struct tagEXCEPINFO {
    512     WORD wCode;
    513     WORD wReserved;
    514     BSTR bstrSource;
    515     BSTR bstrDescription;
    516     BSTR bstrHelpFile;
    517     DWORD dwHelpContext;
    518     PVOID pvReserved;
    519     HRESULT (WINAPI *pfnDeferredFillIn)(struct tagEXCEPINFO *);
    520     SCODE scode;
    521 } EXCEPINFO,*LPEXCEPINFO;
    522 #endif
    523 typedef enum tagCALLCONV {
    524     CC_FASTCALL = 0,
    525     CC_CDECL = 1,
    526     CC_MSCPASCAL = 2,
    527     CC_PASCAL = CC_MSCPASCAL,
    528     CC_MACPASCAL = 3,
    529     CC_STDCALL = 4,
    530     CC_FPFASTCALL = 5,
    531     CC_SYSCALL = 6,
    532     CC_MPWCDECL = 7,
    533     CC_MPWPASCAL = 8,
    534     CC_MAX = 9
    535 } CALLCONV;
    536 typedef enum tagFUNCKIND {
    537     FUNC_VIRTUAL = 0,
    538     FUNC_PUREVIRTUAL = 1,
    539     FUNC_NONVIRTUAL = 2,
    540     FUNC_STATIC = 3,
    541     FUNC_DISPATCH = 4
    542 } FUNCKIND;
    543 typedef enum tagINVOKEKIND {
    544     INVOKE_FUNC = 1,
    545     INVOKE_PROPERTYGET = 2,
    546     INVOKE_PROPERTYPUT = 4,
    547     INVOKE_PROPERTYPUTREF = 8
    548 } INVOKEKIND;
    549 typedef struct tagFUNCDESC {
    550     MEMBERID memid;
    551     SCODE *lprgscode;
    552     ELEMDESC *lprgelemdescParam;
    553     FUNCKIND funckind;
    554     INVOKEKIND invkind;
    555     CALLCONV callconv;
    556     SHORT cParams;
    557     SHORT cParamsOpt;
    558     SHORT oVft;
    559     SHORT cScodes;
    560     ELEMDESC elemdescFunc;
    561     WORD wFuncFlags;
    562 } FUNCDESC;
    563 typedef struct tagFUNCDESC *LPFUNCDESC;
    564 typedef enum tagVARKIND {
    565     VAR_PERINSTANCE = 0,
    566     VAR_STATIC = 1,
    567     VAR_CONST = 2,
    568     VAR_DISPATCH = 3
    569 } VARKIND;
    570 #define IMPLTYPEFLAG_FDEFAULT (0x1)
    571 
    572 #define IMPLTYPEFLAG_FSOURCE (0x2)
    573 
    574 #define IMPLTYPEFLAG_FRESTRICTED (0x4)
    575 
    576 #define IMPLTYPEFLAG_FDEFAULTVTABLE (0x8)
    577 
    578 typedef struct tagVARDESC {
    579     MEMBERID memid;
    580     LPOLESTR lpstrSchema;
    581     union {
    582         ULONG oInst;
    583         VARIANT *lpvarValue;
    584     } DUMMYUNIONNAME;
    585     ELEMDESC elemdescVar;
    586     WORD wVarFlags;
    587     VARKIND varkind;
    588 } VARDESC;
    589 typedef struct tagVARDESC *LPVARDESC;
    590   typedef enum tagTYPEFLAGS {
    591     TYPEFLAG_FAPPOBJECT = 0x1,TYPEFLAG_FCANCREATE = 0x2,TYPEFLAG_FLICENSED = 0x4,
    592     TYPEFLAG_FPREDECLID = 0x8,TYPEFLAG_FHIDDEN = 0x10,
    593     TYPEFLAG_FCONTROL = 0x20,TYPEFLAG_FDUAL = 0x40,TYPEFLAG_FNONEXTENSIBLE = 0x80,
    594     TYPEFLAG_FOLEAUTOMATION = 0x100,TYPEFLAG_FRESTRICTED = 0x200,
    595     TYPEFLAG_FAGGREGATABLE = 0x400,TYPEFLAG_FREPLACEABLE = 0x800,
    596     TYPEFLAG_FDISPATCHABLE = 0x1000,TYPEFLAG_FREVERSEBIND = 0x2000,
    597     TYPEFLAG_FPROXY = 0x4000
    598   } TYPEFLAGS;
    599 
    600   typedef enum tagFUNCFLAGS {
    601     FUNCFLAG_FRESTRICTED = 0x1,FUNCFLAG_FSOURCE = 0x2,FUNCFLAG_FBINDABLE = 0x4,
    602     FUNCFLAG_FREQUESTEDIT = 0x8,FUNCFLAG_FDISPLAYBIND = 0x10,
    603     FUNCFLAG_FDEFAULTBIND = 0x20,FUNCFLAG_FHIDDEN = 0x40,
    604     FUNCFLAG_FUSESGETLASTERROR = 0x80,FUNCFLAG_FDEFAULTCOLLELEM = 0x100,
    605     FUNCFLAG_FUIDEFAULT = 0x200,
    606     FUNCFLAG_FNONBROWSABLE = 0x400,FUNCFLAG_FREPLACEABLE = 0x800,
    607     FUNCFLAG_FIMMEDIATEBIND = 0x1000
    608   } FUNCFLAGS;
    609 
    610   typedef enum tagVARFLAGS {
    611     VARFLAG_FREADONLY = 0x1,VARFLAG_FSOURCE = 0x2,VARFLAG_FBINDABLE = 0x4,
    612     VARFLAG_FREQUESTEDIT = 0x8,VARFLAG_FDISPLAYBIND = 0x10,
    613     VARFLAG_FDEFAULTBIND = 0x20,VARFLAG_FHIDDEN = 0x40,VARFLAG_FRESTRICTED = 0x80,
    614     VARFLAG_FDEFAULTCOLLELEM = 0x100,VARFLAG_FUIDEFAULT = 0x200,
    615     VARFLAG_FNONBROWSABLE = 0x400,VARFLAG_FREPLACEABLE = 0x800,VARFLAG_FIMMEDIATEBIND = 0x1000
    616   } VARFLAGS;
    617 typedef struct tagCLEANLOCALSTORAGE {
    618     IUnknown *pInterface;
    619     PVOID pStorage;
    620     DWORD flags;
    621 } CLEANLOCALSTORAGE;
    622   typedef struct tagCUSTDATAITEM {
    623     GUID guid;
    624     VARIANTARG varValue;
    625   } CUSTDATAITEM;
    626 
    627   typedef struct tagCUSTDATAITEM *LPCUSTDATAITEM;
    628 
    629   typedef struct tagCUSTDATA {
    630     DWORD cCustData;
    631     LPCUSTDATAITEM prgCustData;
    632   } CUSTDATA;
    633 
    634   typedef struct tagCUSTDATA *LPCUSTDATA;
    635 
    636 #endif  /* __IOleAutomationTypes_INTERFACE_DEFINED__ */
    637 
    638 /*****************************************************************************
    639  * ICreateTypeInfo interface
    640  */
    641 #ifndef __ICreateTypeInfo_INTERFACE_DEFINED__
    642 #define __ICreateTypeInfo_INTERFACE_DEFINED__
    643 
    644 typedef ICreateTypeInfo *LPCREATETYPEINFO;
    645 DEFINE_GUID(IID_ICreateTypeInfo, 0x00020405, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
    646 #if defined(__cplusplus) && !defined(CINTERFACE)
    647 MIDL_INTERFACE("00020405-0000-0000-c000-000000000046")
    648 ICreateTypeInfo : public IUnknown
    649 {
    650     virtual HRESULT STDMETHODCALLTYPE SetGuid(
    651         REFGUID guid) = 0;
    652 
    653     virtual HRESULT STDMETHODCALLTYPE SetTypeFlags(
    654         UINT uTypeFlags) = 0;
    655 
    656     virtual HRESULT STDMETHODCALLTYPE SetDocString(
    657         LPOLESTR pStrDoc) = 0;
    658 
    659     virtual HRESULT STDMETHODCALLTYPE SetHelpContext(
    660         DWORD dwHelpContext) = 0;
    661 
    662     virtual HRESULT STDMETHODCALLTYPE SetVersion(
    663         WORD wMajorVerNum,
    664         WORD wMinorVerNum) = 0;
    665 
    666     virtual HRESULT STDMETHODCALLTYPE AddRefTypeInfo(
    667         ITypeInfo *pTInfo,
    668         HREFTYPE *phRefType) = 0;
    669 
    670     virtual HRESULT STDMETHODCALLTYPE AddFuncDesc(
    671         UINT index,
    672         FUNCDESC *pFuncDesc) = 0;
    673 
    674     virtual HRESULT STDMETHODCALLTYPE AddImplType(
    675         UINT index,
    676         HREFTYPE hRefType) = 0;
    677 
    678     virtual HRESULT STDMETHODCALLTYPE SetImplTypeFlags(
    679         UINT index,
    680         INT implTypeFlags) = 0;
    681 
    682     virtual HRESULT STDMETHODCALLTYPE SetAlignment(
    683         WORD cbAlignment) = 0;
    684 
    685     virtual HRESULT STDMETHODCALLTYPE SetSchema(
    686         LPOLESTR pStrSchema) = 0;
    687 
    688     virtual HRESULT STDMETHODCALLTYPE AddVarDesc(
    689         UINT index,
    690         VARDESC *pVarDesc) = 0;
    691 
    692     virtual HRESULT STDMETHODCALLTYPE SetFuncAndParamNames(
    693         UINT index,
    694         LPOLESTR *rgszNames,
    695         UINT cNames) = 0;
    696 
    697     virtual HRESULT STDMETHODCALLTYPE SetVarName(
    698         UINT index,
    699         LPOLESTR szName) = 0;
    700 
    701     virtual HRESULT STDMETHODCALLTYPE SetTypeDescAlias(
    702         TYPEDESC *pTDescAlias) = 0;
    703 
    704     virtual HRESULT STDMETHODCALLTYPE DefineFuncAsDllEntry(
    705         UINT index,
    706         LPOLESTR szDllName,
    707         LPOLESTR szProcName) = 0;
    708 
    709     virtual HRESULT STDMETHODCALLTYPE SetFuncDocString(
    710         UINT index,
    711         LPOLESTR szDocString) = 0;
    712 
    713     virtual HRESULT STDMETHODCALLTYPE SetVarDocString(
    714         UINT index,
    715         LPOLESTR szDocString) = 0;
    716 
    717     virtual HRESULT STDMETHODCALLTYPE SetFuncHelpContext(
    718         UINT index,
    719         DWORD dwHelpContext) = 0;
    720 
    721     virtual HRESULT STDMETHODCALLTYPE SetVarHelpContext(
    722         UINT index,
    723         DWORD dwHelpContext) = 0;
    724 
    725     virtual HRESULT STDMETHODCALLTYPE SetMops(
    726         UINT index,
    727         BSTR bstrMops) = 0;
    728 
    729     virtual HRESULT STDMETHODCALLTYPE SetTypeIdldesc(
    730         IDLDESC *pIdlDesc) = 0;
    731 
    732     virtual HRESULT STDMETHODCALLTYPE LayOut(
    733         ) = 0;
    734 
    735 };
    736 #ifdef __CRT_UUID_DECL
    737 __CRT_UUID_DECL(ICreateTypeInfo, 0x00020405, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
    738 #endif
    739 #else
    740 typedef struct ICreateTypeInfoVtbl {
    741     BEGIN_INTERFACE
    742 
    743     /*** IUnknown methods ***/
    744     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    745         ICreateTypeInfo* This,
    746         REFIID riid,
    747         void **ppvObject);
    748 
    749     ULONG (STDMETHODCALLTYPE *AddRef)(
    750         ICreateTypeInfo* This);
    751 
    752     ULONG (STDMETHODCALLTYPE *Release)(
    753         ICreateTypeInfo* This);
    754 
    755     /*** ICreateTypeInfo methods ***/
    756     HRESULT (STDMETHODCALLTYPE *SetGuid)(
    757         ICreateTypeInfo* This,
    758         REFGUID guid);
    759 
    760     HRESULT (STDMETHODCALLTYPE *SetTypeFlags)(
    761         ICreateTypeInfo* This,
    762         UINT uTypeFlags);
    763 
    764     HRESULT (STDMETHODCALLTYPE *SetDocString)(
    765         ICreateTypeInfo* This,
    766         LPOLESTR pStrDoc);
    767 
    768     HRESULT (STDMETHODCALLTYPE *SetHelpContext)(
    769         ICreateTypeInfo* This,
    770         DWORD dwHelpContext);
    771 
    772     HRESULT (STDMETHODCALLTYPE *SetVersion)(
    773         ICreateTypeInfo* This,
    774         WORD wMajorVerNum,
    775         WORD wMinorVerNum);
    776 
    777     HRESULT (STDMETHODCALLTYPE *AddRefTypeInfo)(
    778         ICreateTypeInfo* This,
    779         ITypeInfo *pTInfo,
    780         HREFTYPE *phRefType);
    781 
    782     HRESULT (STDMETHODCALLTYPE *AddFuncDesc)(
    783         ICreateTypeInfo* This,
    784         UINT index,
    785         FUNCDESC *pFuncDesc);
    786 
    787     HRESULT (STDMETHODCALLTYPE *AddImplType)(
    788         ICreateTypeInfo* This,
    789         UINT index,
    790         HREFTYPE hRefType);
    791 
    792     HRESULT (STDMETHODCALLTYPE *SetImplTypeFlags)(
    793         ICreateTypeInfo* This,
    794         UINT index,
    795         INT implTypeFlags);
    796 
    797     HRESULT (STDMETHODCALLTYPE *SetAlignment)(
    798         ICreateTypeInfo* This,
    799         WORD cbAlignment);
    800 
    801     HRESULT (STDMETHODCALLTYPE *SetSchema)(
    802         ICreateTypeInfo* This,
    803         LPOLESTR pStrSchema);
    804 
    805     HRESULT (STDMETHODCALLTYPE *AddVarDesc)(
    806         ICreateTypeInfo* This,
    807         UINT index,
    808         VARDESC *pVarDesc);
    809 
    810     HRESULT (STDMETHODCALLTYPE *SetFuncAndParamNames)(
    811         ICreateTypeInfo* This,
    812         UINT index,
    813         LPOLESTR *rgszNames,
    814         UINT cNames);
    815 
    816     HRESULT (STDMETHODCALLTYPE *SetVarName)(
    817         ICreateTypeInfo* This,
    818         UINT index,
    819         LPOLESTR szName);
    820 
    821     HRESULT (STDMETHODCALLTYPE *SetTypeDescAlias)(
    822         ICreateTypeInfo* This,
    823         TYPEDESC *pTDescAlias);
    824 
    825     HRESULT (STDMETHODCALLTYPE *DefineFuncAsDllEntry)(
    826         ICreateTypeInfo* This,
    827         UINT index,
    828         LPOLESTR szDllName,
    829         LPOLESTR szProcName);
    830 
    831     HRESULT (STDMETHODCALLTYPE *SetFuncDocString)(
    832         ICreateTypeInfo* This,
    833         UINT index,
    834         LPOLESTR szDocString);
    835 
    836     HRESULT (STDMETHODCALLTYPE *SetVarDocString)(
    837         ICreateTypeInfo* This,
    838         UINT index,
    839         LPOLESTR szDocString);
    840 
    841     HRESULT (STDMETHODCALLTYPE *SetFuncHelpContext)(
    842         ICreateTypeInfo* This,
    843         UINT index,
    844         DWORD dwHelpContext);
    845 
    846     HRESULT (STDMETHODCALLTYPE *SetVarHelpContext)(
    847         ICreateTypeInfo* This,
    848         UINT index,
    849         DWORD dwHelpContext);
    850 
    851     HRESULT (STDMETHODCALLTYPE *SetMops)(
    852         ICreateTypeInfo* This,
    853         UINT index,
    854         BSTR bstrMops);
    855 
    856     HRESULT (STDMETHODCALLTYPE *SetTypeIdldesc)(
    857         ICreateTypeInfo* This,
    858         IDLDESC *pIdlDesc);
    859 
    860     HRESULT (STDMETHODCALLTYPE *LayOut)(
    861         ICreateTypeInfo* This);
    862 
    863     END_INTERFACE
    864 } ICreateTypeInfoVtbl;
    865 interface ICreateTypeInfo {
    866     CONST_VTBL ICreateTypeInfoVtbl* lpVtbl;
    867 };
    868 
    869 #ifdef COBJMACROS
    870 #ifndef WIDL_C_INLINE_WRAPPERS
    871 /*** IUnknown methods ***/
    872 #define ICreateTypeInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    873 #define ICreateTypeInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
    874 #define ICreateTypeInfo_Release(This) (This)->lpVtbl->Release(This)
    875 /*** ICreateTypeInfo methods ***/
    876 #define ICreateTypeInfo_SetGuid(This,guid) (This)->lpVtbl->SetGuid(This,guid)
    877 #define ICreateTypeInfo_SetTypeFlags(This,uTypeFlags) (This)->lpVtbl->SetTypeFlags(This,uTypeFlags)
    878 #define ICreateTypeInfo_SetDocString(This,pStrDoc) (This)->lpVtbl->SetDocString(This,pStrDoc)
    879 #define ICreateTypeInfo_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
    880 #define ICreateTypeInfo_SetVersion(This,wMajorVerNum,wMinorVerNum) (This)->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum)
    881 #define ICreateTypeInfo_AddRefTypeInfo(This,pTInfo,phRefType) (This)->lpVtbl->AddRefTypeInfo(This,pTInfo,phRefType)
    882 #define ICreateTypeInfo_AddFuncDesc(This,index,pFuncDesc) (This)->lpVtbl->AddFuncDesc(This,index,pFuncDesc)
    883 #define ICreateTypeInfo_AddImplType(This,index,hRefType) (This)->lpVtbl->AddImplType(This,index,hRefType)
    884 #define ICreateTypeInfo_SetImplTypeFlags(This,index,implTypeFlags) (This)->lpVtbl->SetImplTypeFlags(This,index,implTypeFlags)
    885 #define ICreateTypeInfo_SetAlignment(This,cbAlignment) (This)->lpVtbl->SetAlignment(This,cbAlignment)
    886 #define ICreateTypeInfo_SetSchema(This,pStrSchema) (This)->lpVtbl->SetSchema(This,pStrSchema)
    887 #define ICreateTypeInfo_AddVarDesc(This,index,pVarDesc) (This)->lpVtbl->AddVarDesc(This,index,pVarDesc)
    888 #define ICreateTypeInfo_SetFuncAndParamNames(This,index,rgszNames,cNames) (This)->lpVtbl->SetFuncAndParamNames(This,index,rgszNames,cNames)
    889 #define ICreateTypeInfo_SetVarName(This,index,szName) (This)->lpVtbl->SetVarName(This,index,szName)
    890 #define ICreateTypeInfo_SetTypeDescAlias(This,pTDescAlias) (This)->lpVtbl->SetTypeDescAlias(This,pTDescAlias)
    891 #define ICreateTypeInfo_DefineFuncAsDllEntry(This,index,szDllName,szProcName) (This)->lpVtbl->DefineFuncAsDllEntry(This,index,szDllName,szProcName)
    892 #define ICreateTypeInfo_SetFuncDocString(This,index,szDocString) (This)->lpVtbl->SetFuncDocString(This,index,szDocString)
    893 #define ICreateTypeInfo_SetVarDocString(This,index,szDocString) (This)->lpVtbl->SetVarDocString(This,index,szDocString)
    894 #define ICreateTypeInfo_SetFuncHelpContext(This,index,dwHelpContext) (This)->lpVtbl->SetFuncHelpContext(This,index,dwHelpContext)
    895 #define ICreateTypeInfo_SetVarHelpContext(This,index,dwHelpContext) (This)->lpVtbl->SetVarHelpContext(This,index,dwHelpContext)
    896 #define ICreateTypeInfo_SetMops(This,index,bstrMops) (This)->lpVtbl->SetMops(This,index,bstrMops)
    897 #define ICreateTypeInfo_SetTypeIdldesc(This,pIdlDesc) (This)->lpVtbl->SetTypeIdldesc(This,pIdlDesc)
    898 #define ICreateTypeInfo_LayOut(This) (This)->lpVtbl->LayOut(This)
    899 #else
    900 /*** IUnknown methods ***/
    901 static FORCEINLINE HRESULT ICreateTypeInfo_QueryInterface(ICreateTypeInfo* This,REFIID riid,void **ppvObject) {
    902     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    903 }
    904 static FORCEINLINE ULONG ICreateTypeInfo_AddRef(ICreateTypeInfo* This) {
    905     return This->lpVtbl->AddRef(This);
    906 }
    907 static FORCEINLINE ULONG ICreateTypeInfo_Release(ICreateTypeInfo* This) {
    908     return This->lpVtbl->Release(This);
    909 }
    910 /*** ICreateTypeInfo methods ***/
    911 static FORCEINLINE HRESULT ICreateTypeInfo_SetGuid(ICreateTypeInfo* This,REFGUID guid) {
    912     return This->lpVtbl->SetGuid(This,guid);
    913 }
    914 static FORCEINLINE HRESULT ICreateTypeInfo_SetTypeFlags(ICreateTypeInfo* This,UINT uTypeFlags) {
    915     return This->lpVtbl->SetTypeFlags(This,uTypeFlags);
    916 }
    917 static FORCEINLINE HRESULT ICreateTypeInfo_SetDocString(ICreateTypeInfo* This,LPOLESTR pStrDoc) {
    918     return This->lpVtbl->SetDocString(This,pStrDoc);
    919 }
    920 static FORCEINLINE HRESULT ICreateTypeInfo_SetHelpContext(ICreateTypeInfo* This,DWORD dwHelpContext) {
    921     return This->lpVtbl->SetHelpContext(This,dwHelpContext);
    922 }
    923 static FORCEINLINE HRESULT ICreateTypeInfo_SetVersion(ICreateTypeInfo* This,WORD wMajorVerNum,WORD wMinorVerNum) {
    924     return This->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum);
    925 }
    926 static FORCEINLINE HRESULT ICreateTypeInfo_AddRefTypeInfo(ICreateTypeInfo* This,ITypeInfo *pTInfo,HREFTYPE *phRefType) {
    927     return This->lpVtbl->AddRefTypeInfo(This,pTInfo,phRefType);
    928 }
    929 static FORCEINLINE HRESULT ICreateTypeInfo_AddFuncDesc(ICreateTypeInfo* This,UINT index,FUNCDESC *pFuncDesc) {
    930     return This->lpVtbl->AddFuncDesc(This,index,pFuncDesc);
    931 }
    932 static FORCEINLINE HRESULT ICreateTypeInfo_AddImplType(ICreateTypeInfo* This,UINT index,HREFTYPE hRefType) {
    933     return This->lpVtbl->AddImplType(This,index,hRefType);
    934 }
    935 static FORCEINLINE HRESULT ICreateTypeInfo_SetImplTypeFlags(ICreateTypeInfo* This,UINT index,INT implTypeFlags) {
    936     return This->lpVtbl->SetImplTypeFlags(This,index,implTypeFlags);
    937 }
    938 static FORCEINLINE HRESULT ICreateTypeInfo_SetAlignment(ICreateTypeInfo* This,WORD cbAlignment) {
    939     return This->lpVtbl->SetAlignment(This,cbAlignment);
    940 }
    941 static FORCEINLINE HRESULT ICreateTypeInfo_SetSchema(ICreateTypeInfo* This,LPOLESTR pStrSchema) {
    942     return This->lpVtbl->SetSchema(This,pStrSchema);
    943 }
    944 static FORCEINLINE HRESULT ICreateTypeInfo_AddVarDesc(ICreateTypeInfo* This,UINT index,VARDESC *pVarDesc) {
    945     return This->lpVtbl->AddVarDesc(This,index,pVarDesc);
    946 }
    947 static FORCEINLINE HRESULT ICreateTypeInfo_SetFuncAndParamNames(ICreateTypeInfo* This,UINT index,LPOLESTR *rgszNames,UINT cNames) {
    948     return This->lpVtbl->SetFuncAndParamNames(This,index,rgszNames,cNames);
    949 }
    950 static FORCEINLINE HRESULT ICreateTypeInfo_SetVarName(ICreateTypeInfo* This,UINT index,LPOLESTR szName) {
    951     return This->lpVtbl->SetVarName(This,index,szName);
    952 }
    953 static FORCEINLINE HRESULT ICreateTypeInfo_SetTypeDescAlias(ICreateTypeInfo* This,TYPEDESC *pTDescAlias) {
    954     return This->lpVtbl->SetTypeDescAlias(This,pTDescAlias);
    955 }
    956 static FORCEINLINE HRESULT ICreateTypeInfo_DefineFuncAsDllEntry(ICreateTypeInfo* This,UINT index,LPOLESTR szDllName,LPOLESTR szProcName) {
    957     return This->lpVtbl->DefineFuncAsDllEntry(This,index,szDllName,szProcName);
    958 }
    959 static FORCEINLINE HRESULT ICreateTypeInfo_SetFuncDocString(ICreateTypeInfo* This,UINT index,LPOLESTR szDocString) {
    960     return This->lpVtbl->SetFuncDocString(This,index,szDocString);
    961 }
    962 static FORCEINLINE HRESULT ICreateTypeInfo_SetVarDocString(ICreateTypeInfo* This,UINT index,LPOLESTR szDocString) {
    963     return This->lpVtbl->SetVarDocString(This,index,szDocString);
    964 }
    965 static FORCEINLINE HRESULT ICreateTypeInfo_SetFuncHelpContext(ICreateTypeInfo* This,UINT index,DWORD dwHelpContext) {
    966     return This->lpVtbl->SetFuncHelpContext(This,index,dwHelpContext);
    967 }
    968 static FORCEINLINE HRESULT ICreateTypeInfo_SetVarHelpContext(ICreateTypeInfo* This,UINT index,DWORD dwHelpContext) {
    969     return This->lpVtbl->SetVarHelpContext(This,index,dwHelpContext);
    970 }
    971 static FORCEINLINE HRESULT ICreateTypeInfo_SetMops(ICreateTypeInfo* This,UINT index,BSTR bstrMops) {
    972     return This->lpVtbl->SetMops(This,index,bstrMops);
    973 }
    974 static FORCEINLINE HRESULT ICreateTypeInfo_SetTypeIdldesc(ICreateTypeInfo* This,IDLDESC *pIdlDesc) {
    975     return This->lpVtbl->SetTypeIdldesc(This,pIdlDesc);
    976 }
    977 static FORCEINLINE HRESULT ICreateTypeInfo_LayOut(ICreateTypeInfo* This) {
    978     return This->lpVtbl->LayOut(This);
    979 }
    980 #endif
    981 #endif
    982 
    983 #endif
    984 
    985 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetGuid_Proxy(
    986     ICreateTypeInfo* This,
    987     REFGUID guid);
    988 void __RPC_STUB ICreateTypeInfo_SetGuid_Stub(
    989     IRpcStubBuffer* This,
    990     IRpcChannelBuffer* pRpcChannelBuffer,
    991     PRPC_MESSAGE pRpcMessage,
    992     DWORD* pdwStubPhase);
    993 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetTypeFlags_Proxy(
    994     ICreateTypeInfo* This,
    995     UINT uTypeFlags);
    996 void __RPC_STUB ICreateTypeInfo_SetTypeFlags_Stub(
    997     IRpcStubBuffer* This,
    998     IRpcChannelBuffer* pRpcChannelBuffer,
    999     PRPC_MESSAGE pRpcMessage,
   1000     DWORD* pdwStubPhase);
   1001 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetDocString_Proxy(
   1002     ICreateTypeInfo* This,
   1003     LPOLESTR pStrDoc);
   1004 void __RPC_STUB ICreateTypeInfo_SetDocString_Stub(
   1005     IRpcStubBuffer* This,
   1006     IRpcChannelBuffer* pRpcChannelBuffer,
   1007     PRPC_MESSAGE pRpcMessage,
   1008     DWORD* pdwStubPhase);
   1009 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetHelpContext_Proxy(
   1010     ICreateTypeInfo* This,
   1011     DWORD dwHelpContext);
   1012 void __RPC_STUB ICreateTypeInfo_SetHelpContext_Stub(
   1013     IRpcStubBuffer* This,
   1014     IRpcChannelBuffer* pRpcChannelBuffer,
   1015     PRPC_MESSAGE pRpcMessage,
   1016     DWORD* pdwStubPhase);
   1017 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetVersion_Proxy(
   1018     ICreateTypeInfo* This,
   1019     WORD wMajorVerNum,
   1020     WORD wMinorVerNum);
   1021 void __RPC_STUB ICreateTypeInfo_SetVersion_Stub(
   1022     IRpcStubBuffer* This,
   1023     IRpcChannelBuffer* pRpcChannelBuffer,
   1024     PRPC_MESSAGE pRpcMessage,
   1025     DWORD* pdwStubPhase);
   1026 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_AddRefTypeInfo_Proxy(
   1027     ICreateTypeInfo* This,
   1028     ITypeInfo *pTInfo,
   1029     HREFTYPE *phRefType);
   1030 void __RPC_STUB ICreateTypeInfo_AddRefTypeInfo_Stub(
   1031     IRpcStubBuffer* This,
   1032     IRpcChannelBuffer* pRpcChannelBuffer,
   1033     PRPC_MESSAGE pRpcMessage,
   1034     DWORD* pdwStubPhase);
   1035 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_AddFuncDesc_Proxy(
   1036     ICreateTypeInfo* This,
   1037     UINT index,
   1038     FUNCDESC *pFuncDesc);
   1039 void __RPC_STUB ICreateTypeInfo_AddFuncDesc_Stub(
   1040     IRpcStubBuffer* This,
   1041     IRpcChannelBuffer* pRpcChannelBuffer,
   1042     PRPC_MESSAGE pRpcMessage,
   1043     DWORD* pdwStubPhase);
   1044 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_AddImplType_Proxy(
   1045     ICreateTypeInfo* This,
   1046     UINT index,
   1047     HREFTYPE hRefType);
   1048 void __RPC_STUB ICreateTypeInfo_AddImplType_Stub(
   1049     IRpcStubBuffer* This,
   1050     IRpcChannelBuffer* pRpcChannelBuffer,
   1051     PRPC_MESSAGE pRpcMessage,
   1052     DWORD* pdwStubPhase);
   1053 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetImplTypeFlags_Proxy(
   1054     ICreateTypeInfo* This,
   1055     UINT index,
   1056     INT implTypeFlags);
   1057 void __RPC_STUB ICreateTypeInfo_SetImplTypeFlags_Stub(
   1058     IRpcStubBuffer* This,
   1059     IRpcChannelBuffer* pRpcChannelBuffer,
   1060     PRPC_MESSAGE pRpcMessage,
   1061     DWORD* pdwStubPhase);
   1062 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetAlignment_Proxy(
   1063     ICreateTypeInfo* This,
   1064     WORD cbAlignment);
   1065 void __RPC_STUB ICreateTypeInfo_SetAlignment_Stub(
   1066     IRpcStubBuffer* This,
   1067     IRpcChannelBuffer* pRpcChannelBuffer,
   1068     PRPC_MESSAGE pRpcMessage,
   1069     DWORD* pdwStubPhase);
   1070 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetSchema_Proxy(
   1071     ICreateTypeInfo* This,
   1072     LPOLESTR pStrSchema);
   1073 void __RPC_STUB ICreateTypeInfo_SetSchema_Stub(
   1074     IRpcStubBuffer* This,
   1075     IRpcChannelBuffer* pRpcChannelBuffer,
   1076     PRPC_MESSAGE pRpcMessage,
   1077     DWORD* pdwStubPhase);
   1078 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_AddVarDesc_Proxy(
   1079     ICreateTypeInfo* This,
   1080     UINT index,
   1081     VARDESC *pVarDesc);
   1082 void __RPC_STUB ICreateTypeInfo_AddVarDesc_Stub(
   1083     IRpcStubBuffer* This,
   1084     IRpcChannelBuffer* pRpcChannelBuffer,
   1085     PRPC_MESSAGE pRpcMessage,
   1086     DWORD* pdwStubPhase);
   1087 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetFuncAndParamNames_Proxy(
   1088     ICreateTypeInfo* This,
   1089     UINT index,
   1090     LPOLESTR *rgszNames,
   1091     UINT cNames);
   1092 void __RPC_STUB ICreateTypeInfo_SetFuncAndParamNames_Stub(
   1093     IRpcStubBuffer* This,
   1094     IRpcChannelBuffer* pRpcChannelBuffer,
   1095     PRPC_MESSAGE pRpcMessage,
   1096     DWORD* pdwStubPhase);
   1097 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetVarName_Proxy(
   1098     ICreateTypeInfo* This,
   1099     UINT index,
   1100     LPOLESTR szName);
   1101 void __RPC_STUB ICreateTypeInfo_SetVarName_Stub(
   1102     IRpcStubBuffer* This,
   1103     IRpcChannelBuffer* pRpcChannelBuffer,
   1104     PRPC_MESSAGE pRpcMessage,
   1105     DWORD* pdwStubPhase);
   1106 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetTypeDescAlias_Proxy(
   1107     ICreateTypeInfo* This,
   1108     TYPEDESC *pTDescAlias);
   1109 void __RPC_STUB ICreateTypeInfo_SetTypeDescAlias_Stub(
   1110     IRpcStubBuffer* This,
   1111     IRpcChannelBuffer* pRpcChannelBuffer,
   1112     PRPC_MESSAGE pRpcMessage,
   1113     DWORD* pdwStubPhase);
   1114 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_DefineFuncAsDllEntry_Proxy(
   1115     ICreateTypeInfo* This,
   1116     UINT index,
   1117     LPOLESTR szDllName,
   1118     LPOLESTR szProcName);
   1119 void __RPC_STUB ICreateTypeInfo_DefineFuncAsDllEntry_Stub(
   1120     IRpcStubBuffer* This,
   1121     IRpcChannelBuffer* pRpcChannelBuffer,
   1122     PRPC_MESSAGE pRpcMessage,
   1123     DWORD* pdwStubPhase);
   1124 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetFuncDocString_Proxy(
   1125     ICreateTypeInfo* This,
   1126     UINT index,
   1127     LPOLESTR szDocString);
   1128 void __RPC_STUB ICreateTypeInfo_SetFuncDocString_Stub(
   1129     IRpcStubBuffer* This,
   1130     IRpcChannelBuffer* pRpcChannelBuffer,
   1131     PRPC_MESSAGE pRpcMessage,
   1132     DWORD* pdwStubPhase);
   1133 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetVarDocString_Proxy(
   1134     ICreateTypeInfo* This,
   1135     UINT index,
   1136     LPOLESTR szDocString);
   1137 void __RPC_STUB ICreateTypeInfo_SetVarDocString_Stub(
   1138     IRpcStubBuffer* This,
   1139     IRpcChannelBuffer* pRpcChannelBuffer,
   1140     PRPC_MESSAGE pRpcMessage,
   1141     DWORD* pdwStubPhase);
   1142 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetFuncHelpContext_Proxy(
   1143     ICreateTypeInfo* This,
   1144     UINT index,
   1145     DWORD dwHelpContext);
   1146 void __RPC_STUB ICreateTypeInfo_SetFuncHelpContext_Stub(
   1147     IRpcStubBuffer* This,
   1148     IRpcChannelBuffer* pRpcChannelBuffer,
   1149     PRPC_MESSAGE pRpcMessage,
   1150     DWORD* pdwStubPhase);
   1151 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetVarHelpContext_Proxy(
   1152     ICreateTypeInfo* This,
   1153     UINT index,
   1154     DWORD dwHelpContext);
   1155 void __RPC_STUB ICreateTypeInfo_SetVarHelpContext_Stub(
   1156     IRpcStubBuffer* This,
   1157     IRpcChannelBuffer* pRpcChannelBuffer,
   1158     PRPC_MESSAGE pRpcMessage,
   1159     DWORD* pdwStubPhase);
   1160 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetMops_Proxy(
   1161     ICreateTypeInfo* This,
   1162     UINT index,
   1163     BSTR bstrMops);
   1164 void __RPC_STUB ICreateTypeInfo_SetMops_Stub(
   1165     IRpcStubBuffer* This,
   1166     IRpcChannelBuffer* pRpcChannelBuffer,
   1167     PRPC_MESSAGE pRpcMessage,
   1168     DWORD* pdwStubPhase);
   1169 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetTypeIdldesc_Proxy(
   1170     ICreateTypeInfo* This,
   1171     IDLDESC *pIdlDesc);
   1172 void __RPC_STUB ICreateTypeInfo_SetTypeIdldesc_Stub(
   1173     IRpcStubBuffer* This,
   1174     IRpcChannelBuffer* pRpcChannelBuffer,
   1175     PRPC_MESSAGE pRpcMessage,
   1176     DWORD* pdwStubPhase);
   1177 HRESULT STDMETHODCALLTYPE ICreateTypeInfo_LayOut_Proxy(
   1178     ICreateTypeInfo* This);
   1179 void __RPC_STUB ICreateTypeInfo_LayOut_Stub(
   1180     IRpcStubBuffer* This,
   1181     IRpcChannelBuffer* pRpcChannelBuffer,
   1182     PRPC_MESSAGE pRpcMessage,
   1183     DWORD* pdwStubPhase);
   1184 
   1185 #endif  /* __ICreateTypeInfo_INTERFACE_DEFINED__ */
   1186 
   1187 #ifndef __ICreateTypeInfo2_INTERFACE_DEFINED__
   1188 #define __ICreateTypeInfo2_INTERFACE_DEFINED__
   1189   typedef ICreateTypeInfo2 *LPCREATETYPEINFO2;
   1190 
   1191   EXTERN_C const IID IID_ICreateTypeInfo2;
   1192 #if defined(__cplusplus) && !defined(CINTERFACE)
   1193   struct ICreateTypeInfo2 : public ICreateTypeInfo {
   1194   public:
   1195     virtual HRESULT WINAPI DeleteFuncDesc(UINT index) = 0;
   1196     virtual HRESULT WINAPI DeleteFuncDescByMemId(MEMBERID memid,INVOKEKIND invKind) = 0;
   1197     virtual HRESULT WINAPI DeleteVarDesc(UINT index) = 0;
   1198     virtual HRESULT WINAPI DeleteVarDescByMemId(MEMBERID memid) = 0;
   1199     virtual HRESULT WINAPI DeleteImplType(UINT index) = 0;
   1200     virtual HRESULT WINAPI SetCustData(REFGUID guid,VARIANT *pVarVal) = 0;
   1201     virtual HRESULT WINAPI SetFuncCustData(UINT index,REFGUID guid,VARIANT *pVarVal) = 0;
   1202     virtual HRESULT WINAPI SetParamCustData(UINT indexFunc,UINT indexParam,REFGUID guid,VARIANT *pVarVal) = 0;
   1203     virtual HRESULT WINAPI SetVarCustData(UINT index,REFGUID guid,VARIANT *pVarVal) = 0;
   1204     virtual HRESULT WINAPI SetImplTypeCustData(UINT index,REFGUID guid,VARIANT *pVarVal) = 0;
   1205     virtual HRESULT WINAPI SetHelpStringContext(ULONG dwHelpStringContext) = 0;
   1206     virtual HRESULT WINAPI SetFuncHelpStringContext(UINT index,ULONG dwHelpStringContext) = 0;
   1207     virtual HRESULT WINAPI SetVarHelpStringContext(UINT index,ULONG dwHelpStringContext) = 0;
   1208     virtual HRESULT WINAPI Invalidate(void) = 0;
   1209     virtual HRESULT WINAPI SetName(LPOLESTR szName) = 0;
   1210   };
   1211 #else
   1212   typedef struct ICreateTypeInfo2Vtbl {
   1213     BEGIN_INTERFACE
   1214       HRESULT (WINAPI *QueryInterface)(ICreateTypeInfo2 *This,REFIID riid,void **ppvObject);
   1215       ULONG (WINAPI *AddRef)(ICreateTypeInfo2 *This);
   1216       ULONG (WINAPI *Release)(ICreateTypeInfo2 *This);
   1217       HRESULT (WINAPI *SetGuid)(ICreateTypeInfo2 *This,REFGUID guid);
   1218       HRESULT (WINAPI *SetTypeFlags)(ICreateTypeInfo2 *This,UINT uTypeFlags);
   1219       HRESULT (WINAPI *SetDocString)(ICreateTypeInfo2 *This,LPOLESTR pStrDoc);
   1220       HRESULT (WINAPI *SetHelpContext)(ICreateTypeInfo2 *This,DWORD dwHelpContext);
   1221       HRESULT (WINAPI *SetVersion)(ICreateTypeInfo2 *This,WORD wMajorVerNum,WORD wMinorVerNum);
   1222       HRESULT (WINAPI *AddRefTypeInfo)(ICreateTypeInfo2 *This,ITypeInfo *pTInfo,HREFTYPE *phRefType);
   1223       HRESULT (WINAPI *AddFuncDesc)(ICreateTypeInfo2 *This,UINT index,FUNCDESC *pFuncDesc);
   1224       HRESULT (WINAPI *AddImplType)(ICreateTypeInfo2 *This,UINT index,HREFTYPE hRefType);
   1225       HRESULT (WINAPI *SetImplTypeFlags)(ICreateTypeInfo2 *This,UINT index,INT implTypeFlags);
   1226       HRESULT (WINAPI *SetAlignment)(ICreateTypeInfo2 *This,WORD cbAlignment);
   1227       HRESULT (WINAPI *SetSchema)(ICreateTypeInfo2 *This,LPOLESTR pStrSchema);
   1228       HRESULT (WINAPI *AddVarDesc)(ICreateTypeInfo2 *This,UINT index,VARDESC *pVarDesc);
   1229       HRESULT (WINAPI *SetFuncAndParamNames)(ICreateTypeInfo2 *This,UINT index,LPOLESTR *rgszNames,UINT cNames);
   1230       HRESULT (WINAPI *SetVarName)(ICreateTypeInfo2 *This,UINT index,LPOLESTR szName);
   1231       HRESULT (WINAPI *SetTypeDescAlias)(ICreateTypeInfo2 *This,TYPEDESC *pTDescAlias);
   1232       HRESULT (WINAPI *DefineFuncAsDllEntry)(ICreateTypeInfo2 *This,UINT index,LPOLESTR szDllName,LPOLESTR szProcName);
   1233       HRESULT (WINAPI *SetFuncDocString)(ICreateTypeInfo2 *This,UINT index,LPOLESTR szDocString);
   1234       HRESULT (WINAPI *SetVarDocString)(ICreateTypeInfo2 *This,UINT index,LPOLESTR szDocString);
   1235       HRESULT (WINAPI *SetFuncHelpContext)(ICreateTypeInfo2 *This,UINT index,DWORD dwHelpContext);
   1236       HRESULT (WINAPI *SetVarHelpContext)(ICreateTypeInfo2 *This,UINT index,DWORD dwHelpContext);
   1237       HRESULT (WINAPI *SetMops)(ICreateTypeInfo2 *This,UINT index,BSTR bstrMops);
   1238       HRESULT (WINAPI *SetTypeIdldesc)(ICreateTypeInfo2 *This,IDLDESC *pIdlDesc);
   1239       HRESULT (WINAPI *LayOut)(ICreateTypeInfo2 *This);
   1240       HRESULT (WINAPI *DeleteFuncDesc)(ICreateTypeInfo2 *This,UINT index);
   1241       HRESULT (WINAPI *DeleteFuncDescByMemId)(ICreateTypeInfo2 *This,MEMBERID memid,INVOKEKIND invKind);
   1242       HRESULT (WINAPI *DeleteVarDesc)(ICreateTypeInfo2 *This,UINT index);
   1243       HRESULT (WINAPI *DeleteVarDescByMemId)(ICreateTypeInfo2 *This,MEMBERID memid);
   1244       HRESULT (WINAPI *DeleteImplType)(ICreateTypeInfo2 *This,UINT index);
   1245       HRESULT (WINAPI *SetCustData)(ICreateTypeInfo2 *This,REFGUID guid,VARIANT *pVarVal);
   1246       HRESULT (WINAPI *SetFuncCustData)(ICreateTypeInfo2 *This,UINT index,REFGUID guid,VARIANT *pVarVal);
   1247       HRESULT (WINAPI *SetParamCustData)(ICreateTypeInfo2 *This,UINT indexFunc,UINT indexParam,REFGUID guid,VARIANT *pVarVal);
   1248       HRESULT (WINAPI *SetVarCustData)(ICreateTypeInfo2 *This,UINT index,REFGUID guid,VARIANT *pVarVal);
   1249       HRESULT (WINAPI *SetImplTypeCustData)(ICreateTypeInfo2 *This,UINT index,REFGUID guid,VARIANT *pVarVal);
   1250       HRESULT (WINAPI *SetHelpStringContext)(ICreateTypeInfo2 *This,ULONG dwHelpStringContext);
   1251       HRESULT (WINAPI *SetFuncHelpStringContext)(ICreateTypeInfo2 *This,UINT index,ULONG dwHelpStringContext);
   1252       HRESULT (WINAPI *SetVarHelpStringContext)(ICreateTypeInfo2 *This,UINT index,ULONG dwHelpStringContext);
   1253       HRESULT (WINAPI *Invalidate)(ICreateTypeInfo2 *This);
   1254       HRESULT (WINAPI *SetName)(ICreateTypeInfo2 *This,LPOLESTR szName);
   1255     END_INTERFACE
   1256   } ICreateTypeInfo2Vtbl;
   1257   struct ICreateTypeInfo2 {
   1258     CONST_VTBL struct ICreateTypeInfo2Vtbl *lpVtbl;
   1259   };
   1260 #ifdef COBJMACROS
   1261 #define ICreateTypeInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1262 #define ICreateTypeInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
   1263 #define ICreateTypeInfo2_Release(This) (This)->lpVtbl->Release(This)
   1264 #define ICreateTypeInfo2_SetGuid(This,guid) (This)->lpVtbl->SetGuid(This,guid)
   1265 #define ICreateTypeInfo2_SetTypeFlags(This,uTypeFlags) (This)->lpVtbl->SetTypeFlags(This,uTypeFlags)
   1266 #define ICreateTypeInfo2_SetDocString(This,pStrDoc) (This)->lpVtbl->SetDocString(This,pStrDoc)
   1267 #define ICreateTypeInfo2_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
   1268 #define ICreateTypeInfo2_SetVersion(This,wMajorVerNum,wMinorVerNum) (This)->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum)
   1269 #define ICreateTypeInfo2_AddRefTypeInfo(This,pTInfo,phRefType) (This)->lpVtbl->AddRefTypeInfo(This,pTInfo,phRefType)
   1270 #define ICreateTypeInfo2_AddFuncDesc(This,index,pFuncDesc) (This)->lpVtbl->AddFuncDesc(This,index,pFuncDesc)
   1271 #define ICreateTypeInfo2_AddImplType(This,index,hRefType) (This)->lpVtbl->AddImplType(This,index,hRefType)
   1272 #define ICreateTypeInfo2_SetImplTypeFlags(This,index,implTypeFlags) (This)->lpVtbl->SetImplTypeFlags(This,index,implTypeFlags)
   1273 #define ICreateTypeInfo2_SetAlignment(This,cbAlignment) (This)->lpVtbl->SetAlignment(This,cbAlignment)
   1274 #define ICreateTypeInfo2_SetSchema(This,pStrSchema) (This)->lpVtbl->SetSchema(This,pStrSchema)
   1275 #define ICreateTypeInfo2_AddVarDesc(This,index,pVarDesc) (This)->lpVtbl->AddVarDesc(This,index,pVarDesc)
   1276 #define ICreateTypeInfo2_SetFuncAndParamNames(This,index,rgszNames,cNames) (This)->lpVtbl->SetFuncAndParamNames(This,index,rgszNames,cNames)
   1277 #define ICreateTypeInfo2_SetVarName(This,index,szName) (This)->lpVtbl->SetVarName(This,index,szName)
   1278 #define ICreateTypeInfo2_SetTypeDescAlias(This,pTDescAlias) (This)->lpVtbl->SetTypeDescAlias(This,pTDescAlias)
   1279 #define ICreateTypeInfo2_DefineFuncAsDllEntry(This,index,szDllName,szProcName) (This)->lpVtbl->DefineFuncAsDllEntry(This,index,szDllName,szProcName)
   1280 #define ICreateTypeInfo2_SetFuncDocString(This,index,szDocString) (This)->lpVtbl->SetFuncDocString(This,index,szDocString)
   1281 #define ICreateTypeInfo2_SetVarDocString(This,index,szDocString) (This)->lpVtbl->SetVarDocString(This,index,szDocString)
   1282 #define ICreateTypeInfo2_SetFuncHelpContext(This,index,dwHelpContext) (This)->lpVtbl->SetFuncHelpContext(This,index,dwHelpContext)
   1283 #define ICreateTypeInfo2_SetVarHelpContext(This,index,dwHelpContext) (This)->lpVtbl->SetVarHelpContext(This,index,dwHelpContext)
   1284 #define ICreateTypeInfo2_SetMops(This,index,bstrMops) (This)->lpVtbl->SetMops(This,index,bstrMops)
   1285 #define ICreateTypeInfo2_SetTypeIdldesc(This,pIdlDesc) (This)->lpVtbl->SetTypeIdldesc(This,pIdlDesc)
   1286 #define ICreateTypeInfo2_LayOut(This) (This)->lpVtbl->LayOut(This)
   1287 #define ICreateTypeInfo2_DeleteFuncDesc(This,index) (This)->lpVtbl->DeleteFuncDesc(This,index)
   1288 #define ICreateTypeInfo2_DeleteFuncDescByMemId(This,memid,invKind) (This)->lpVtbl->DeleteFuncDescByMemId(This,memid,invKind)
   1289 #define ICreateTypeInfo2_DeleteVarDesc(This,index) (This)->lpVtbl->DeleteVarDesc(This,index)
   1290 #define ICreateTypeInfo2_DeleteVarDescByMemId(This,memid) (This)->lpVtbl->DeleteVarDescByMemId(This,memid)
   1291 #define ICreateTypeInfo2_DeleteImplType(This,index) (This)->lpVtbl->DeleteImplType(This,index)
   1292 #define ICreateTypeInfo2_SetCustData(This,guid,pVarVal) (This)->lpVtbl->SetCustData(This,guid,pVarVal)
   1293 #define ICreateTypeInfo2_SetFuncCustData(This,index,guid,pVarVal) (This)->lpVtbl->SetFuncCustData(This,index,guid,pVarVal)
   1294 #define ICreateTypeInfo2_SetParamCustData(This,indexFunc,indexParam,guid,pVarVal) (This)->lpVtbl->SetParamCustData(This,indexFunc,indexParam,guid,pVarVal)
   1295 #define ICreateTypeInfo2_SetVarCustData(This,index,guid,pVarVal) (This)->lpVtbl->SetVarCustData(This,index,guid,pVarVal)
   1296 #define ICreateTypeInfo2_SetImplTypeCustData(This,index,guid,pVarVal) (This)->lpVtbl->SetImplTypeCustData(This,index,guid,pVarVal)
   1297 #define ICreateTypeInfo2_SetHelpStringContext(This,dwHelpStringContext) (This)->lpVtbl->SetHelpStringContext(This,dwHelpStringContext)
   1298 #define ICreateTypeInfo2_SetFuncHelpStringContext(This,index,dwHelpStringContext) (This)->lpVtbl->SetFuncHelpStringContext(This,index,dwHelpStringContext)
   1299 #define ICreateTypeInfo2_SetVarHelpStringContext(This,index,dwHelpStringContext) (This)->lpVtbl->SetVarHelpStringContext(This,index,dwHelpStringContext)
   1300 #define ICreateTypeInfo2_Invalidate(This) (This)->lpVtbl->Invalidate(This)
   1301 #define ICreateTypeInfo2_SetName(This,szName) (This)->lpVtbl->SetName(This,szName)
   1302 #endif
   1303 #endif
   1304   HRESULT WINAPI ICreateTypeInfo2_DeleteFuncDesc_Proxy(ICreateTypeInfo2 *This,UINT index);
   1305   void __RPC_STUB ICreateTypeInfo2_DeleteFuncDesc_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1306   HRESULT WINAPI ICreateTypeInfo2_DeleteFuncDescByMemId_Proxy(ICreateTypeInfo2 *This,MEMBERID memid,INVOKEKIND invKind);
   1307   void __RPC_STUB ICreateTypeInfo2_DeleteFuncDescByMemId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1308   HRESULT WINAPI ICreateTypeInfo2_DeleteVarDesc_Proxy(ICreateTypeInfo2 *This,UINT index);
   1309   void __RPC_STUB ICreateTypeInfo2_DeleteVarDesc_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1310   HRESULT WINAPI ICreateTypeInfo2_DeleteVarDescByMemId_Proxy(ICreateTypeInfo2 *This,MEMBERID memid);
   1311   void __RPC_STUB ICreateTypeInfo2_DeleteVarDescByMemId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1312   HRESULT WINAPI ICreateTypeInfo2_DeleteImplType_Proxy(ICreateTypeInfo2 *This,UINT index);
   1313   void __RPC_STUB ICreateTypeInfo2_DeleteImplType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1314   HRESULT WINAPI ICreateTypeInfo2_SetCustData_Proxy(ICreateTypeInfo2 *This,REFGUID guid,VARIANT *pVarVal);
   1315   void __RPC_STUB ICreateTypeInfo2_SetCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1316   HRESULT WINAPI ICreateTypeInfo2_SetFuncCustData_Proxy(ICreateTypeInfo2 *This,UINT index,REFGUID guid,VARIANT *pVarVal);
   1317   void __RPC_STUB ICreateTypeInfo2_SetFuncCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1318   HRESULT WINAPI ICreateTypeInfo2_SetParamCustData_Proxy(ICreateTypeInfo2 *This,UINT indexFunc,UINT indexParam,REFGUID guid,VARIANT *pVarVal);
   1319   void __RPC_STUB ICreateTypeInfo2_SetParamCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1320   HRESULT WINAPI ICreateTypeInfo2_SetVarCustData_Proxy(ICreateTypeInfo2 *This,UINT index,REFGUID guid,VARIANT *pVarVal);
   1321   void __RPC_STUB ICreateTypeInfo2_SetVarCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1322   HRESULT WINAPI ICreateTypeInfo2_SetImplTypeCustData_Proxy(ICreateTypeInfo2 *This,UINT index,REFGUID guid,VARIANT *pVarVal);
   1323   void __RPC_STUB ICreateTypeInfo2_SetImplTypeCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1324   HRESULT WINAPI ICreateTypeInfo2_SetHelpStringContext_Proxy(ICreateTypeInfo2 *This,ULONG dwHelpStringContext);
   1325   void __RPC_STUB ICreateTypeInfo2_SetHelpStringContext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1326   HRESULT WINAPI ICreateTypeInfo2_SetFuncHelpStringContext_Proxy(ICreateTypeInfo2 *This,UINT index,ULONG dwHelpStringContext);
   1327   void __RPC_STUB ICreateTypeInfo2_SetFuncHelpStringContext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1328   HRESULT WINAPI ICreateTypeInfo2_SetVarHelpStringContext_Proxy(ICreateTypeInfo2 *This,UINT index,ULONG dwHelpStringContext);
   1329   void __RPC_STUB ICreateTypeInfo2_SetVarHelpStringContext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1330   HRESULT WINAPI ICreateTypeInfo2_Invalidate_Proxy(ICreateTypeInfo2 *This);
   1331   void __RPC_STUB ICreateTypeInfo2_Invalidate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1332   HRESULT WINAPI ICreateTypeInfo2_SetName_Proxy(ICreateTypeInfo2 *This,LPOLESTR szName);
   1333   void __RPC_STUB ICreateTypeInfo2_SetName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1334 #endif
   1335 
   1336 #ifndef __ICreateTypeLib_INTERFACE_DEFINED__
   1337 #define __ICreateTypeLib_INTERFACE_DEFINED__
   1338 #ifndef DEFINED_LPCREATETYPELIB
   1339 #define DEFINED_LPCREATETYPELIB
   1340   typedef ICreateTypeLib *LPCREATETYPELIB;
   1341 #endif
   1342 
   1343   EXTERN_C const IID IID_ICreateTypeLib;
   1344 #if defined(__cplusplus) && !defined(CINTERFACE)
   1345   struct ICreateTypeLib : public IUnknown {
   1346   public:
   1347     virtual HRESULT WINAPI CreateTypeInfo(LPOLESTR szName,TYPEKIND tkind,ICreateTypeInfo **ppCTInfo) = 0;
   1348     virtual HRESULT WINAPI SetName(LPOLESTR szName) = 0;
   1349     virtual HRESULT WINAPI SetVersion(WORD wMajorVerNum,WORD wMinorVerNum) = 0;
   1350     virtual HRESULT WINAPI SetGuid(REFGUID guid) = 0;
   1351     virtual HRESULT WINAPI SetDocString(LPOLESTR szDoc) = 0;
   1352     virtual HRESULT WINAPI SetHelpFileName(LPOLESTR szHelpFileName) = 0;
   1353     virtual HRESULT WINAPI SetHelpContext(DWORD dwHelpContext) = 0;
   1354     virtual HRESULT WINAPI SetLcid(LCID lcid) = 0;
   1355     virtual HRESULT WINAPI SetLibFlags(UINT uLibFlags) = 0;
   1356     virtual HRESULT WINAPI SaveAllChanges(void) = 0;
   1357   };
   1358 #else
   1359   typedef struct ICreateTypeLibVtbl {
   1360     BEGIN_INTERFACE
   1361       HRESULT (WINAPI *QueryInterface)(ICreateTypeLib *This,REFIID riid,void **ppvObject);
   1362       ULONG (WINAPI *AddRef)(ICreateTypeLib *This);
   1363       ULONG (WINAPI *Release)(ICreateTypeLib *This);
   1364       HRESULT (WINAPI *CreateTypeInfo)(ICreateTypeLib *This,LPOLESTR szName,TYPEKIND tkind,ICreateTypeInfo **ppCTInfo);
   1365       HRESULT (WINAPI *SetName)(ICreateTypeLib *This,LPOLESTR szName);
   1366       HRESULT (WINAPI *SetVersion)(ICreateTypeLib *This,WORD wMajorVerNum,WORD wMinorVerNum);
   1367       HRESULT (WINAPI *SetGuid)(ICreateTypeLib *This,REFGUID guid);
   1368       HRESULT (WINAPI *SetDocString)(ICreateTypeLib *This,LPOLESTR szDoc);
   1369       HRESULT (WINAPI *SetHelpFileName)(ICreateTypeLib *This,LPOLESTR szHelpFileName);
   1370       HRESULT (WINAPI *SetHelpContext)(ICreateTypeLib *This,DWORD dwHelpContext);
   1371       HRESULT (WINAPI *SetLcid)(ICreateTypeLib *This,LCID lcid);
   1372       HRESULT (WINAPI *SetLibFlags)(ICreateTypeLib *This,UINT uLibFlags);
   1373       HRESULT (WINAPI *SaveAllChanges)(ICreateTypeLib *This);
   1374     END_INTERFACE
   1375   } ICreateTypeLibVtbl;
   1376   struct ICreateTypeLib {
   1377     CONST_VTBL struct ICreateTypeLibVtbl *lpVtbl;
   1378   };
   1379 #ifdef COBJMACROS
   1380 #define ICreateTypeLib_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1381 #define ICreateTypeLib_AddRef(This) (This)->lpVtbl->AddRef(This)
   1382 #define ICreateTypeLib_Release(This) (This)->lpVtbl->Release(This)
   1383 #define ICreateTypeLib_CreateTypeInfo(This,szName,tkind,ppCTInfo) (This)->lpVtbl->CreateTypeInfo(This,szName,tkind,ppCTInfo)
   1384 #define ICreateTypeLib_SetName(This,szName) (This)->lpVtbl->SetName(This,szName)
   1385 #define ICreateTypeLib_SetVersion(This,wMajorVerNum,wMinorVerNum) (This)->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum)
   1386 #define ICreateTypeLib_SetGuid(This,guid) (This)->lpVtbl->SetGuid(This,guid)
   1387 #define ICreateTypeLib_SetDocString(This,szDoc) (This)->lpVtbl->SetDocString(This,szDoc)
   1388 #define ICreateTypeLib_SetHelpFileName(This,szHelpFileName) (This)->lpVtbl->SetHelpFileName(This,szHelpFileName)
   1389 #define ICreateTypeLib_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
   1390 #define ICreateTypeLib_SetLcid(This,lcid) (This)->lpVtbl->SetLcid(This,lcid)
   1391 #define ICreateTypeLib_SetLibFlags(This,uLibFlags) (This)->lpVtbl->SetLibFlags(This,uLibFlags)
   1392 #define ICreateTypeLib_SaveAllChanges(This) (This)->lpVtbl->SaveAllChanges(This)
   1393 #endif
   1394 #endif
   1395   HRESULT WINAPI ICreateTypeLib_CreateTypeInfo_Proxy(ICreateTypeLib *This,LPOLESTR szName,TYPEKIND tkind,ICreateTypeInfo **ppCTInfo);
   1396   void __RPC_STUB ICreateTypeLib_CreateTypeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1397   HRESULT WINAPI ICreateTypeLib_SetName_Proxy(ICreateTypeLib *This,LPOLESTR szName);
   1398   void __RPC_STUB ICreateTypeLib_SetName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1399   HRESULT WINAPI ICreateTypeLib_SetVersion_Proxy(ICreateTypeLib *This,WORD wMajorVerNum,WORD wMinorVerNum);
   1400   void __RPC_STUB ICreateTypeLib_SetVersion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1401   HRESULT WINAPI ICreateTypeLib_SetGuid_Proxy(ICreateTypeLib *This,REFGUID guid);
   1402   void __RPC_STUB ICreateTypeLib_SetGuid_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1403   HRESULT WINAPI ICreateTypeLib_SetDocString_Proxy(ICreateTypeLib *This,LPOLESTR szDoc);
   1404   void __RPC_STUB ICreateTypeLib_SetDocString_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1405   HRESULT WINAPI ICreateTypeLib_SetHelpFileName_Proxy(ICreateTypeLib *This,LPOLESTR szHelpFileName);
   1406   void __RPC_STUB ICreateTypeLib_SetHelpFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1407   HRESULT WINAPI ICreateTypeLib_SetHelpContext_Proxy(ICreateTypeLib *This,DWORD dwHelpContext);
   1408   void __RPC_STUB ICreateTypeLib_SetHelpContext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1409   HRESULT WINAPI ICreateTypeLib_SetLcid_Proxy(ICreateTypeLib *This,LCID lcid);
   1410   void __RPC_STUB ICreateTypeLib_SetLcid_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1411   HRESULT WINAPI ICreateTypeLib_SetLibFlags_Proxy(ICreateTypeLib *This,UINT uLibFlags);
   1412   void __RPC_STUB ICreateTypeLib_SetLibFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1413   HRESULT WINAPI ICreateTypeLib_SaveAllChanges_Proxy(ICreateTypeLib *This);
   1414   void __RPC_STUB ICreateTypeLib_SaveAllChanges_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1415 #endif
   1416 
   1417 #ifndef __ICreateTypeLib2_INTERFACE_DEFINED__
   1418 #define __ICreateTypeLib2_INTERFACE_DEFINED__
   1419   typedef ICreateTypeLib2 *LPCREATETYPELIB2;
   1420 
   1421   EXTERN_C const IID IID_ICreateTypeLib2;
   1422 #if defined(__cplusplus) && !defined(CINTERFACE)
   1423   struct ICreateTypeLib2 : public ICreateTypeLib {
   1424   public:
   1425     virtual HRESULT WINAPI DeleteTypeInfo(LPOLESTR szName) = 0;
   1426     virtual HRESULT WINAPI SetCustData(REFGUID guid,VARIANT *pVarVal) = 0;
   1427     virtual HRESULT WINAPI SetHelpStringContext(ULONG dwHelpStringContext) = 0;
   1428     virtual HRESULT WINAPI SetHelpStringDll(LPOLESTR szFileName) = 0;
   1429   };
   1430 #else
   1431   typedef struct ICreateTypeLib2Vtbl {
   1432     BEGIN_INTERFACE
   1433       HRESULT (WINAPI *QueryInterface)(ICreateTypeLib2 *This,REFIID riid,void **ppvObject);
   1434       ULONG (WINAPI *AddRef)(ICreateTypeLib2 *This);
   1435       ULONG (WINAPI *Release)(ICreateTypeLib2 *This);
   1436       HRESULT (WINAPI *CreateTypeInfo)(ICreateTypeLib2 *This,LPOLESTR szName,TYPEKIND tkind,ICreateTypeInfo **ppCTInfo);
   1437       HRESULT (WINAPI *SetName)(ICreateTypeLib2 *This,LPOLESTR szName);
   1438       HRESULT (WINAPI *SetVersion)(ICreateTypeLib2 *This,WORD wMajorVerNum,WORD wMinorVerNum);
   1439       HRESULT (WINAPI *SetGuid)(ICreateTypeLib2 *This,REFGUID guid);
   1440       HRESULT (WINAPI *SetDocString)(ICreateTypeLib2 *This,LPOLESTR szDoc);
   1441       HRESULT (WINAPI *SetHelpFileName)(ICreateTypeLib2 *This,LPOLESTR szHelpFileName);
   1442       HRESULT (WINAPI *SetHelpContext)(ICreateTypeLib2 *This,DWORD dwHelpContext);
   1443       HRESULT (WINAPI *SetLcid)(ICreateTypeLib2 *This,LCID lcid);
   1444       HRESULT (WINAPI *SetLibFlags)(ICreateTypeLib2 *This,UINT uLibFlags);
   1445       HRESULT (WINAPI *SaveAllChanges)(ICreateTypeLib2 *This);
   1446       HRESULT (WINAPI *DeleteTypeInfo)(ICreateTypeLib2 *This,LPOLESTR szName);
   1447       HRESULT (WINAPI *SetCustData)(ICreateTypeLib2 *This,REFGUID guid,VARIANT *pVarVal);
   1448       HRESULT (WINAPI *SetHelpStringContext)(ICreateTypeLib2 *This,ULONG dwHelpStringContext);
   1449       HRESULT (WINAPI *SetHelpStringDll)(ICreateTypeLib2 *This,LPOLESTR szFileName);
   1450     END_INTERFACE
   1451   } ICreateTypeLib2Vtbl;
   1452   struct ICreateTypeLib2 {
   1453     CONST_VTBL struct ICreateTypeLib2Vtbl *lpVtbl;
   1454   };
   1455 #ifdef COBJMACROS
   1456 #define ICreateTypeLib2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1457 #define ICreateTypeLib2_AddRef(This) (This)->lpVtbl->AddRef(This)
   1458 #define ICreateTypeLib2_Release(This) (This)->lpVtbl->Release(This)
   1459 #define ICreateTypeLib2_CreateTypeInfo(This,szName,tkind,ppCTInfo) (This)->lpVtbl->CreateTypeInfo(This,szName,tkind,ppCTInfo)
   1460 #define ICreateTypeLib2_SetName(This,szName) (This)->lpVtbl->SetName(This,szName)
   1461 #define ICreateTypeLib2_SetVersion(This,wMajorVerNum,wMinorVerNum) (This)->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum)
   1462 #define ICreateTypeLib2_SetGuid(This,guid) (This)->lpVtbl->SetGuid(This,guid)
   1463 #define ICreateTypeLib2_SetDocString(This,szDoc) (This)->lpVtbl->SetDocString(This,szDoc)
   1464 #define ICreateTypeLib2_SetHelpFileName(This,szHelpFileName) (This)->lpVtbl->SetHelpFileName(This,szHelpFileName)
   1465 #define ICreateTypeLib2_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
   1466 #define ICreateTypeLib2_SetLcid(This,lcid) (This)->lpVtbl->SetLcid(This,lcid)
   1467 #define ICreateTypeLib2_SetLibFlags(This,uLibFlags) (This)->lpVtbl->SetLibFlags(This,uLibFlags)
   1468 #define ICreateTypeLib2_SaveAllChanges(This) (This)->lpVtbl->SaveAllChanges(This)
   1469 #define ICreateTypeLib2_DeleteTypeInfo(This,szName) (This)->lpVtbl->DeleteTypeInfo(This,szName)
   1470 #define ICreateTypeLib2_SetCustData(This,guid,pVarVal) (This)->lpVtbl->SetCustData(This,guid,pVarVal)
   1471 #define ICreateTypeLib2_SetHelpStringContext(This,dwHelpStringContext) (This)->lpVtbl->SetHelpStringContext(This,dwHelpStringContext)
   1472 #define ICreateTypeLib2_SetHelpStringDll(This,szFileName) (This)->lpVtbl->SetHelpStringDll(This,szFileName)
   1473 #endif
   1474 #endif
   1475   HRESULT WINAPI ICreateTypeLib2_DeleteTypeInfo_Proxy(ICreateTypeLib2 *This,LPOLESTR szName);
   1476   void __RPC_STUB ICreateTypeLib2_DeleteTypeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1477   HRESULT WINAPI ICreateTypeLib2_SetCustData_Proxy(ICreateTypeLib2 *This,REFGUID guid,VARIANT *pVarVal);
   1478   void __RPC_STUB ICreateTypeLib2_SetCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1479   HRESULT WINAPI ICreateTypeLib2_SetHelpStringContext_Proxy(ICreateTypeLib2 *This,ULONG dwHelpStringContext);
   1480   void __RPC_STUB ICreateTypeLib2_SetHelpStringContext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1481   HRESULT WINAPI ICreateTypeLib2_SetHelpStringDll_Proxy(ICreateTypeLib2 *This,LPOLESTR szFileName);
   1482   void __RPC_STUB ICreateTypeLib2_SetHelpStringDll_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1483 #endif
   1484 /*****************************************************************************
   1485  * IDispatch interface
   1486  */
   1487 #ifndef __IDispatch_INTERFACE_DEFINED__
   1488 #define __IDispatch_INTERFACE_DEFINED__
   1489 
   1490 typedef IDispatch *LPDISPATCH;
   1491 #define DISPID_UNKNOWN (-1)
   1492 
   1493 #define DISPID_VALUE (0)
   1494 
   1495 #define DISPID_PROPERTYPUT (-3)
   1496 
   1497 #define DISPID_NEWENUM (-4)
   1498 
   1499 #define DISPID_EVALUATE (-5)
   1500 
   1501 #define DISPID_CONSTRUCTOR (-6)
   1502 
   1503 #define DISPID_DESTRUCTOR (-7)
   1504 
   1505 #define DISPID_COLLECT (-8)
   1506 
   1507 DEFINE_GUID(IID_IDispatch, 0x00020400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1508 #if defined(__cplusplus) && !defined(CINTERFACE)
   1509 MIDL_INTERFACE("00020400-0000-0000-c000-000000000046")
   1510 IDispatch : public IUnknown
   1511 {
   1512     virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(
   1513         UINT *pctinfo) = 0;
   1514 
   1515     virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
   1516         UINT iTInfo,
   1517         LCID lcid,
   1518         ITypeInfo **ppTInfo) = 0;
   1519 
   1520     virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(
   1521         REFIID riid,
   1522         LPOLESTR *rgszNames,
   1523         UINT cNames,
   1524         LCID lcid,
   1525         DISPID *rgDispId) = 0;
   1526 
   1527     virtual HRESULT STDMETHODCALLTYPE Invoke(
   1528         DISPID dispIdMember,
   1529         REFIID riid,
   1530         LCID lcid,
   1531         WORD wFlags,
   1532         DISPPARAMS *pDispParams,
   1533         VARIANT *pVarResult,
   1534         EXCEPINFO *pExcepInfo,
   1535         UINT *puArgErr) = 0;
   1536 
   1537 };
   1538 #ifdef __CRT_UUID_DECL
   1539 __CRT_UUID_DECL(IDispatch, 0x00020400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1540 #endif
   1541 #else
   1542 typedef struct IDispatchVtbl {
   1543     BEGIN_INTERFACE
   1544 
   1545     /*** IUnknown methods ***/
   1546     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1547         IDispatch* This,
   1548         REFIID riid,
   1549         void **ppvObject);
   1550 
   1551     ULONG (STDMETHODCALLTYPE *AddRef)(
   1552         IDispatch* This);
   1553 
   1554     ULONG (STDMETHODCALLTYPE *Release)(
   1555         IDispatch* This);
   1556 
   1557     /*** IDispatch methods ***/
   1558     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   1559         IDispatch* This,
   1560         UINT *pctinfo);
   1561 
   1562     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   1563         IDispatch* This,
   1564         UINT iTInfo,
   1565         LCID lcid,
   1566         ITypeInfo **ppTInfo);
   1567 
   1568     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   1569         IDispatch* This,
   1570         REFIID riid,
   1571         LPOLESTR *rgszNames,
   1572         UINT cNames,
   1573         LCID lcid,
   1574         DISPID *rgDispId);
   1575 
   1576     HRESULT (STDMETHODCALLTYPE *Invoke)(
   1577         IDispatch* This,
   1578         DISPID dispIdMember,
   1579         REFIID riid,
   1580         LCID lcid,
   1581         WORD wFlags,
   1582         DISPPARAMS *pDispParams,
   1583         VARIANT *pVarResult,
   1584         EXCEPINFO *pExcepInfo,
   1585         UINT *puArgErr);
   1586 
   1587     END_INTERFACE
   1588 } IDispatchVtbl;
   1589 interface IDispatch {
   1590     CONST_VTBL IDispatchVtbl* lpVtbl;
   1591 };
   1592 
   1593 #ifdef COBJMACROS
   1594 #ifndef WIDL_C_INLINE_WRAPPERS
   1595 /*** IUnknown methods ***/
   1596 #define IDispatch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1597 #define IDispatch_AddRef(This) (This)->lpVtbl->AddRef(This)
   1598 #define IDispatch_Release(This) (This)->lpVtbl->Release(This)
   1599 /*** IDispatch methods ***/
   1600 #define IDispatch_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   1601 #define IDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   1602 #define IDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   1603 #define IDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   1604 #else
   1605 /*** IUnknown methods ***/
   1606 static FORCEINLINE HRESULT IDispatch_QueryInterface(IDispatch* This,REFIID riid,void **ppvObject) {
   1607     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1608 }
   1609 static FORCEINLINE ULONG IDispatch_AddRef(IDispatch* This) {
   1610     return This->lpVtbl->AddRef(This);
   1611 }
   1612 static FORCEINLINE ULONG IDispatch_Release(IDispatch* This) {
   1613     return This->lpVtbl->Release(This);
   1614 }
   1615 /*** IDispatch methods ***/
   1616 static FORCEINLINE HRESULT IDispatch_GetTypeInfoCount(IDispatch* This,UINT *pctinfo) {
   1617     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   1618 }
   1619 static FORCEINLINE HRESULT IDispatch_GetTypeInfo(IDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   1620     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   1621 }
   1622 static FORCEINLINE HRESULT IDispatch_GetIDsOfNames(IDispatch* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   1623     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   1624 }
   1625 static FORCEINLINE HRESULT IDispatch_Invoke(IDispatch* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   1626     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   1627 }
   1628 #endif
   1629 #endif
   1630 
   1631 #endif
   1632 
   1633 HRESULT STDMETHODCALLTYPE IDispatch_GetTypeInfoCount_Proxy(
   1634     IDispatch* This,
   1635     UINT *pctinfo);
   1636 void __RPC_STUB IDispatch_GetTypeInfoCount_Stub(
   1637     IRpcStubBuffer* This,
   1638     IRpcChannelBuffer* pRpcChannelBuffer,
   1639     PRPC_MESSAGE pRpcMessage,
   1640     DWORD* pdwStubPhase);
   1641 HRESULT STDMETHODCALLTYPE IDispatch_GetTypeInfo_Proxy(
   1642     IDispatch* This,
   1643     UINT iTInfo,
   1644     LCID lcid,
   1645     ITypeInfo **ppTInfo);
   1646 void __RPC_STUB IDispatch_GetTypeInfo_Stub(
   1647     IRpcStubBuffer* This,
   1648     IRpcChannelBuffer* pRpcChannelBuffer,
   1649     PRPC_MESSAGE pRpcMessage,
   1650     DWORD* pdwStubPhase);
   1651 HRESULT STDMETHODCALLTYPE IDispatch_GetIDsOfNames_Proxy(
   1652     IDispatch* This,
   1653     REFIID riid,
   1654     LPOLESTR *rgszNames,
   1655     UINT cNames,
   1656     LCID lcid,
   1657     DISPID *rgDispId);
   1658 void __RPC_STUB IDispatch_GetIDsOfNames_Stub(
   1659     IRpcStubBuffer* This,
   1660     IRpcChannelBuffer* pRpcChannelBuffer,
   1661     PRPC_MESSAGE pRpcMessage,
   1662     DWORD* pdwStubPhase);
   1663 HRESULT STDMETHODCALLTYPE IDispatch_RemoteInvoke_Proxy(
   1664     IDispatch* This,
   1665     DISPID dispIdMember,
   1666     REFIID riid,
   1667     LCID lcid,
   1668     DWORD dwFlags,
   1669     DISPPARAMS *pDispParams,
   1670     VARIANT *pVarResult,
   1671     EXCEPINFO *pExcepInfo,
   1672     UINT *pArgErr,
   1673     UINT cVarRef,
   1674     UINT *rgVarRefIdx,
   1675     VARIANTARG *rgVarRef);
   1676 void __RPC_STUB IDispatch_RemoteInvoke_Stub(
   1677     IRpcStubBuffer* This,
   1678     IRpcChannelBuffer* pRpcChannelBuffer,
   1679     PRPC_MESSAGE pRpcMessage,
   1680     DWORD* pdwStubPhase);
   1681 HRESULT CALLBACK IDispatch_Invoke_Proxy(
   1682     IDispatch* This,
   1683     DISPID dispIdMember,
   1684     REFIID riid,
   1685     LCID lcid,
   1686     WORD wFlags,
   1687     DISPPARAMS *pDispParams,
   1688     VARIANT *pVarResult,
   1689     EXCEPINFO *pExcepInfo,
   1690     UINT *puArgErr);
   1691 HRESULT __RPC_STUB IDispatch_Invoke_Stub(
   1692     IDispatch* This,
   1693     DISPID dispIdMember,
   1694     REFIID riid,
   1695     LCID lcid,
   1696     DWORD dwFlags,
   1697     DISPPARAMS *pDispParams,
   1698     VARIANT *pVarResult,
   1699     EXCEPINFO *pExcepInfo,
   1700     UINT *pArgErr,
   1701     UINT cVarRef,
   1702     UINT *rgVarRefIdx,
   1703     VARIANTARG *rgVarRef);
   1704 
   1705 #endif  /* __IDispatch_INTERFACE_DEFINED__ */
   1706 
   1707 /*****************************************************************************
   1708  * IEnumVARIANT interface
   1709  */
   1710 #ifndef __IEnumVARIANT_INTERFACE_DEFINED__
   1711 #define __IEnumVARIANT_INTERFACE_DEFINED__
   1712 
   1713 typedef IEnumVARIANT *LPENUMVARIANT;
   1714 DEFINE_GUID(IID_IEnumVARIANT, 0x00020404, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1715 #if defined(__cplusplus) && !defined(CINTERFACE)
   1716 MIDL_INTERFACE("00020404-0000-0000-c000-000000000046")
   1717 IEnumVARIANT : public IUnknown
   1718 {
   1719     virtual HRESULT STDMETHODCALLTYPE Next(
   1720         ULONG celt,
   1721         VARIANT *rgVar,
   1722         ULONG *pCeltFetched) = 0;
   1723 
   1724     virtual HRESULT STDMETHODCALLTYPE Skip(
   1725         ULONG celt) = 0;
   1726 
   1727     virtual HRESULT STDMETHODCALLTYPE Reset(
   1728         ) = 0;
   1729 
   1730     virtual HRESULT STDMETHODCALLTYPE Clone(
   1731         IEnumVARIANT **ppEnum) = 0;
   1732 
   1733 };
   1734 #ifdef __CRT_UUID_DECL
   1735 __CRT_UUID_DECL(IEnumVARIANT, 0x00020404, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1736 #endif
   1737 #else
   1738 typedef struct IEnumVARIANTVtbl {
   1739     BEGIN_INTERFACE
   1740 
   1741     /*** IUnknown methods ***/
   1742     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1743         IEnumVARIANT* This,
   1744         REFIID riid,
   1745         void **ppvObject);
   1746 
   1747     ULONG (STDMETHODCALLTYPE *AddRef)(
   1748         IEnumVARIANT* This);
   1749 
   1750     ULONG (STDMETHODCALLTYPE *Release)(
   1751         IEnumVARIANT* This);
   1752 
   1753     /*** IEnumVARIANT methods ***/
   1754     HRESULT (STDMETHODCALLTYPE *Next)(
   1755         IEnumVARIANT* This,
   1756         ULONG celt,
   1757         VARIANT *rgVar,
   1758         ULONG *pCeltFetched);
   1759 
   1760     HRESULT (STDMETHODCALLTYPE *Skip)(
   1761         IEnumVARIANT* This,
   1762         ULONG celt);
   1763 
   1764     HRESULT (STDMETHODCALLTYPE *Reset)(
   1765         IEnumVARIANT* This);
   1766 
   1767     HRESULT (STDMETHODCALLTYPE *Clone)(
   1768         IEnumVARIANT* This,
   1769         IEnumVARIANT **ppEnum);
   1770 
   1771     END_INTERFACE
   1772 } IEnumVARIANTVtbl;
   1773 interface IEnumVARIANT {
   1774     CONST_VTBL IEnumVARIANTVtbl* lpVtbl;
   1775 };
   1776 
   1777 #ifdef COBJMACROS
   1778 #ifndef WIDL_C_INLINE_WRAPPERS
   1779 /*** IUnknown methods ***/
   1780 #define IEnumVARIANT_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1781 #define IEnumVARIANT_AddRef(This) (This)->lpVtbl->AddRef(This)
   1782 #define IEnumVARIANT_Release(This) (This)->lpVtbl->Release(This)
   1783 /*** IEnumVARIANT methods ***/
   1784 #define IEnumVARIANT_Next(This,celt,rgVar,pCeltFetched) (This)->lpVtbl->Next(This,celt,rgVar,pCeltFetched)
   1785 #define IEnumVARIANT_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   1786 #define IEnumVARIANT_Reset(This) (This)->lpVtbl->Reset(This)
   1787 #define IEnumVARIANT_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   1788 #else
   1789 /*** IUnknown methods ***/
   1790 static FORCEINLINE HRESULT IEnumVARIANT_QueryInterface(IEnumVARIANT* This,REFIID riid,void **ppvObject) {
   1791     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1792 }
   1793 static FORCEINLINE ULONG IEnumVARIANT_AddRef(IEnumVARIANT* This) {
   1794     return This->lpVtbl->AddRef(This);
   1795 }
   1796 static FORCEINLINE ULONG IEnumVARIANT_Release(IEnumVARIANT* This) {
   1797     return This->lpVtbl->Release(This);
   1798 }
   1799 /*** IEnumVARIANT methods ***/
   1800 static FORCEINLINE HRESULT IEnumVARIANT_Next(IEnumVARIANT* This,ULONG celt,VARIANT *rgVar,ULONG *pCeltFetched) {
   1801     return This->lpVtbl->Next(This,celt,rgVar,pCeltFetched);
   1802 }
   1803 static FORCEINLINE HRESULT IEnumVARIANT_Skip(IEnumVARIANT* This,ULONG celt) {
   1804     return This->lpVtbl->Skip(This,celt);
   1805 }
   1806 static FORCEINLINE HRESULT IEnumVARIANT_Reset(IEnumVARIANT* This) {
   1807     return This->lpVtbl->Reset(This);
   1808 }
   1809 static FORCEINLINE HRESULT IEnumVARIANT_Clone(IEnumVARIANT* This,IEnumVARIANT **ppEnum) {
   1810     return This->lpVtbl->Clone(This,ppEnum);
   1811 }
   1812 #endif
   1813 #endif
   1814 
   1815 #endif
   1816 
   1817 HRESULT STDMETHODCALLTYPE IEnumVARIANT_RemoteNext_Proxy(
   1818     IEnumVARIANT* This,
   1819     ULONG celt,
   1820     VARIANT *rgVar,
   1821     ULONG *pCeltFetched);
   1822 void __RPC_STUB IEnumVARIANT_RemoteNext_Stub(
   1823     IRpcStubBuffer* This,
   1824     IRpcChannelBuffer* pRpcChannelBuffer,
   1825     PRPC_MESSAGE pRpcMessage,
   1826     DWORD* pdwStubPhase);
   1827 HRESULT STDMETHODCALLTYPE IEnumVARIANT_Skip_Proxy(
   1828     IEnumVARIANT* This,
   1829     ULONG celt);
   1830 void __RPC_STUB IEnumVARIANT_Skip_Stub(
   1831     IRpcStubBuffer* This,
   1832     IRpcChannelBuffer* pRpcChannelBuffer,
   1833     PRPC_MESSAGE pRpcMessage,
   1834     DWORD* pdwStubPhase);
   1835 HRESULT STDMETHODCALLTYPE IEnumVARIANT_Reset_Proxy(
   1836     IEnumVARIANT* This);
   1837 void __RPC_STUB IEnumVARIANT_Reset_Stub(
   1838     IRpcStubBuffer* This,
   1839     IRpcChannelBuffer* pRpcChannelBuffer,
   1840     PRPC_MESSAGE pRpcMessage,
   1841     DWORD* pdwStubPhase);
   1842 HRESULT STDMETHODCALLTYPE IEnumVARIANT_Clone_Proxy(
   1843     IEnumVARIANT* This,
   1844     IEnumVARIANT **ppEnum);
   1845 void __RPC_STUB IEnumVARIANT_Clone_Stub(
   1846     IRpcStubBuffer* This,
   1847     IRpcChannelBuffer* pRpcChannelBuffer,
   1848     PRPC_MESSAGE pRpcMessage,
   1849     DWORD* pdwStubPhase);
   1850 HRESULT CALLBACK IEnumVARIANT_Next_Proxy(
   1851     IEnumVARIANT* This,
   1852     ULONG celt,
   1853     VARIANT *rgVar,
   1854     ULONG *pCeltFetched);
   1855 HRESULT __RPC_STUB IEnumVARIANT_Next_Stub(
   1856     IEnumVARIANT* This,
   1857     ULONG celt,
   1858     VARIANT *rgVar,
   1859     ULONG *pCeltFetched);
   1860 
   1861 #endif  /* __IEnumVARIANT_INTERFACE_DEFINED__ */
   1862 
   1863 /*****************************************************************************
   1864  * ITypeComp interface
   1865  */
   1866 #ifndef __ITypeComp_INTERFACE_DEFINED__
   1867 #define __ITypeComp_INTERFACE_DEFINED__
   1868 
   1869 typedef ITypeComp *LPTYPECOMP;
   1870 typedef enum tagDESCKIND {
   1871     DESCKIND_NONE = 0,
   1872     DESCKIND_FUNCDESC = 1,
   1873     DESCKIND_VARDESC = 2,
   1874     DESCKIND_TYPECOMP = 3,
   1875     DESCKIND_IMPLICITAPPOBJ = 4,
   1876     DESCKIND_MAX = 5
   1877 } DESCKIND;
   1878 typedef union tagBINDPTR {
   1879     FUNCDESC *lpfuncdesc;
   1880     VARDESC *lpvardesc;
   1881     ITypeComp *lptcomp;
   1882 } BINDPTR;
   1883 typedef union tagBINDPTR *LPBINDPTR;
   1884 DEFINE_GUID(IID_ITypeComp, 0x00020403, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1885 #if defined(__cplusplus) && !defined(CINTERFACE)
   1886 MIDL_INTERFACE("00020403-0000-0000-c000-000000000046")
   1887 ITypeComp : public IUnknown
   1888 {
   1889     virtual HRESULT STDMETHODCALLTYPE Bind(
   1890         LPOLESTR szName,
   1891         ULONG lHashVal,
   1892         WORD wFlags,
   1893         ITypeInfo **ppTInfo,
   1894         DESCKIND *pDescKind,
   1895         BINDPTR *pBindPtr) = 0;
   1896 
   1897     virtual HRESULT STDMETHODCALLTYPE BindType(
   1898         LPOLESTR szName,
   1899         ULONG lHashVal,
   1900         ITypeInfo **ppTInfo,
   1901         ITypeComp **ppTComp) = 0;
   1902 
   1903 };
   1904 #ifdef __CRT_UUID_DECL
   1905 __CRT_UUID_DECL(ITypeComp, 0x00020403, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1906 #endif
   1907 #else
   1908 typedef struct ITypeCompVtbl {
   1909     BEGIN_INTERFACE
   1910 
   1911     /*** IUnknown methods ***/
   1912     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1913         ITypeComp* This,
   1914         REFIID riid,
   1915         void **ppvObject);
   1916 
   1917     ULONG (STDMETHODCALLTYPE *AddRef)(
   1918         ITypeComp* This);
   1919 
   1920     ULONG (STDMETHODCALLTYPE *Release)(
   1921         ITypeComp* This);
   1922 
   1923     /*** ITypeComp methods ***/
   1924     HRESULT (STDMETHODCALLTYPE *Bind)(
   1925         ITypeComp* This,
   1926         LPOLESTR szName,
   1927         ULONG lHashVal,
   1928         WORD wFlags,
   1929         ITypeInfo **ppTInfo,
   1930         DESCKIND *pDescKind,
   1931         BINDPTR *pBindPtr);
   1932 
   1933     HRESULT (STDMETHODCALLTYPE *BindType)(
   1934         ITypeComp* This,
   1935         LPOLESTR szName,
   1936         ULONG lHashVal,
   1937         ITypeInfo **ppTInfo,
   1938         ITypeComp **ppTComp);
   1939 
   1940     END_INTERFACE
   1941 } ITypeCompVtbl;
   1942 interface ITypeComp {
   1943     CONST_VTBL ITypeCompVtbl* lpVtbl;
   1944 };
   1945 
   1946 #ifdef COBJMACROS
   1947 #ifndef WIDL_C_INLINE_WRAPPERS
   1948 /*** IUnknown methods ***/
   1949 #define ITypeComp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1950 #define ITypeComp_AddRef(This) (This)->lpVtbl->AddRef(This)
   1951 #define ITypeComp_Release(This) (This)->lpVtbl->Release(This)
   1952 /*** ITypeComp methods ***/
   1953 #define ITypeComp_Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr) (This)->lpVtbl->Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr)
   1954 #define ITypeComp_BindType(This,szName,lHashVal,ppTInfo,ppTComp) (This)->lpVtbl->BindType(This,szName,lHashVal,ppTInfo,ppTComp)
   1955 #else
   1956 /*** IUnknown methods ***/
   1957 static FORCEINLINE HRESULT ITypeComp_QueryInterface(ITypeComp* This,REFIID riid,void **ppvObject) {
   1958     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1959 }
   1960 static FORCEINLINE ULONG ITypeComp_AddRef(ITypeComp* This) {
   1961     return This->lpVtbl->AddRef(This);
   1962 }
   1963 static FORCEINLINE ULONG ITypeComp_Release(ITypeComp* This) {
   1964     return This->lpVtbl->Release(This);
   1965 }
   1966 /*** ITypeComp methods ***/
   1967 static FORCEINLINE HRESULT ITypeComp_Bind(ITypeComp* This,LPOLESTR szName,ULONG lHashVal,WORD wFlags,ITypeInfo **ppTInfo,DESCKIND *pDescKind,BINDPTR *pBindPtr) {
   1968     return This->lpVtbl->Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr);
   1969 }
   1970 static FORCEINLINE HRESULT ITypeComp_BindType(ITypeComp* This,LPOLESTR szName,ULONG lHashVal,ITypeInfo **ppTInfo,ITypeComp **ppTComp) {
   1971     return This->lpVtbl->BindType(This,szName,lHashVal,ppTInfo,ppTComp);
   1972 }
   1973 #endif
   1974 #endif
   1975 
   1976 #endif
   1977 
   1978 HRESULT STDMETHODCALLTYPE ITypeComp_RemoteBind_Proxy(
   1979     ITypeComp* This,
   1980     LPOLESTR szName,
   1981     ULONG lHashVal,
   1982     WORD wFlags,
   1983     ITypeInfo **ppTInfo,
   1984     DESCKIND *pDescKind,
   1985     LPFUNCDESC *ppFuncDesc,
   1986     LPVARDESC *ppVarDesc,
   1987     ITypeComp **ppTypeComp,
   1988     CLEANLOCALSTORAGE *pDummy);
   1989 void __RPC_STUB ITypeComp_RemoteBind_Stub(
   1990     IRpcStubBuffer* This,
   1991     IRpcChannelBuffer* pRpcChannelBuffer,
   1992     PRPC_MESSAGE pRpcMessage,
   1993     DWORD* pdwStubPhase);
   1994 HRESULT STDMETHODCALLTYPE ITypeComp_RemoteBindType_Proxy(
   1995     ITypeComp* This,
   1996     LPOLESTR szName,
   1997     ULONG lHashVal,
   1998     ITypeInfo **ppTInfo);
   1999 void __RPC_STUB ITypeComp_RemoteBindType_Stub(
   2000     IRpcStubBuffer* This,
   2001     IRpcChannelBuffer* pRpcChannelBuffer,
   2002     PRPC_MESSAGE pRpcMessage,
   2003     DWORD* pdwStubPhase);
   2004 HRESULT CALLBACK ITypeComp_Bind_Proxy(
   2005     ITypeComp* This,
   2006     LPOLESTR szName,
   2007     ULONG lHashVal,
   2008     WORD wFlags,
   2009     ITypeInfo **ppTInfo,
   2010     DESCKIND *pDescKind,
   2011     BINDPTR *pBindPtr);
   2012 HRESULT __RPC_STUB ITypeComp_Bind_Stub(
   2013     ITypeComp* This,
   2014     LPOLESTR szName,
   2015     ULONG lHashVal,
   2016     WORD wFlags,
   2017     ITypeInfo **ppTInfo,
   2018     DESCKIND *pDescKind,
   2019     LPFUNCDESC *ppFuncDesc,
   2020     LPVARDESC *ppVarDesc,
   2021     ITypeComp **ppTypeComp,
   2022     CLEANLOCALSTORAGE *pDummy);
   2023 HRESULT CALLBACK ITypeComp_BindType_Proxy(
   2024     ITypeComp* This,
   2025     LPOLESTR szName,
   2026     ULONG lHashVal,
   2027     ITypeInfo **ppTInfo,
   2028     ITypeComp **ppTComp);
   2029 HRESULT __RPC_STUB ITypeComp_BindType_Stub(
   2030     ITypeComp* This,
   2031     LPOLESTR szName,
   2032     ULONG lHashVal,
   2033     ITypeInfo **ppTInfo);
   2034 
   2035 #endif  /* __ITypeComp_INTERFACE_DEFINED__ */
   2036 
   2037 /*****************************************************************************
   2038  * ITypeInfo interface
   2039  */
   2040 #ifndef __ITypeInfo_INTERFACE_DEFINED__
   2041 #define __ITypeInfo_INTERFACE_DEFINED__
   2042 
   2043 typedef ITypeInfo *LPTYPEINFO;
   2044 DEFINE_GUID(IID_ITypeInfo, 0x00020401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   2045 #if defined(__cplusplus) && !defined(CINTERFACE)
   2046 MIDL_INTERFACE("00020401-0000-0000-c000-000000000046")
   2047 ITypeInfo : public IUnknown
   2048 {
   2049     virtual HRESULT STDMETHODCALLTYPE GetTypeAttr(
   2050         TYPEATTR **ppTypeAttr) = 0;
   2051 
   2052     virtual HRESULT STDMETHODCALLTYPE GetTypeComp(
   2053         ITypeComp **ppTComp) = 0;
   2054 
   2055     virtual HRESULT STDMETHODCALLTYPE GetFuncDesc(
   2056         UINT index,
   2057         FUNCDESC **ppFuncDesc) = 0;
   2058 
   2059     virtual HRESULT STDMETHODCALLTYPE GetVarDesc(
   2060         UINT index,
   2061         VARDESC **ppVarDesc) = 0;
   2062 
   2063     virtual HRESULT STDMETHODCALLTYPE GetNames(
   2064         MEMBERID memid,
   2065         BSTR *rgBstrNames,
   2066         UINT cMaxNames,
   2067         UINT *pcNames) = 0;
   2068 
   2069     virtual HRESULT STDMETHODCALLTYPE GetRefTypeOfImplType(
   2070         UINT index,
   2071         HREFTYPE *pRefType) = 0;
   2072 
   2073     virtual HRESULT STDMETHODCALLTYPE GetImplTypeFlags(
   2074         UINT index,
   2075         INT *pImplTypeFlags) = 0;
   2076 
   2077     virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(
   2078         LPOLESTR *rgszNames,
   2079         UINT cNames,
   2080         MEMBERID *pMemId) = 0;
   2081 
   2082     virtual HRESULT STDMETHODCALLTYPE Invoke(
   2083         PVOID pvInstance,
   2084         MEMBERID memid,
   2085         WORD wFlags,
   2086         DISPPARAMS *pDispParams,
   2087         VARIANT *pVarResult,
   2088         EXCEPINFO *pExcepInfo,
   2089         UINT *puArgErr) = 0;
   2090 
   2091     virtual HRESULT STDMETHODCALLTYPE GetDocumentation(
   2092         MEMBERID memid,
   2093         BSTR *pBstrName,
   2094         BSTR *pBstrDocString,
   2095         DWORD *pdwHelpContext,
   2096         BSTR *pBstrHelpFile) = 0;
   2097 
   2098     virtual HRESULT STDMETHODCALLTYPE GetDllEntry(
   2099         MEMBERID memid,
   2100         INVOKEKIND invKind,
   2101         BSTR *pBstrDllName,
   2102         BSTR *pBstrName,
   2103         WORD *pwOrdinal) = 0;
   2104 
   2105     virtual HRESULT STDMETHODCALLTYPE GetRefTypeInfo(
   2106         HREFTYPE hRefType,
   2107         ITypeInfo **ppTInfo) = 0;
   2108 
   2109     virtual HRESULT STDMETHODCALLTYPE AddressOfMember(
   2110         MEMBERID memid,
   2111         INVOKEKIND invKind,
   2112         PVOID *ppv) = 0;
   2113 
   2114     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
   2115         IUnknown *pUnkOuter,
   2116         REFIID riid,
   2117         PVOID *ppvObj) = 0;
   2118 
   2119     virtual HRESULT STDMETHODCALLTYPE GetMops(
   2120         MEMBERID memid,
   2121         BSTR *pBstrMops) = 0;
   2122 
   2123     virtual HRESULT STDMETHODCALLTYPE GetContainingTypeLib(
   2124         ITypeLib **ppTLib,
   2125         UINT *pIndex) = 0;
   2126 
   2127     virtual void STDMETHODCALLTYPE ReleaseTypeAttr(
   2128         TYPEATTR *pTypeAttr) = 0;
   2129 
   2130     virtual void STDMETHODCALLTYPE ReleaseFuncDesc(
   2131         FUNCDESC *pFuncDesc) = 0;
   2132 
   2133     virtual void STDMETHODCALLTYPE ReleaseVarDesc(
   2134         VARDESC *pVarDesc) = 0;
   2135 
   2136 };
   2137 #ifdef __CRT_UUID_DECL
   2138 __CRT_UUID_DECL(ITypeInfo, 0x00020401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   2139 #endif
   2140 #else
   2141 typedef struct ITypeInfoVtbl {
   2142     BEGIN_INTERFACE
   2143 
   2144     /*** IUnknown methods ***/
   2145     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2146         ITypeInfo* This,
   2147         REFIID riid,
   2148         void **ppvObject);
   2149 
   2150     ULONG (STDMETHODCALLTYPE *AddRef)(
   2151         ITypeInfo* This);
   2152 
   2153     ULONG (STDMETHODCALLTYPE *Release)(
   2154         ITypeInfo* This);
   2155 
   2156     /*** ITypeInfo methods ***/
   2157     HRESULT (STDMETHODCALLTYPE *GetTypeAttr)(
   2158         ITypeInfo* This,
   2159         TYPEATTR **ppTypeAttr);
   2160 
   2161     HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
   2162         ITypeInfo* This,
   2163         ITypeComp **ppTComp);
   2164 
   2165     HRESULT (STDMETHODCALLTYPE *GetFuncDesc)(
   2166         ITypeInfo* This,
   2167         UINT index,
   2168         FUNCDESC **ppFuncDesc);
   2169 
   2170     HRESULT (STDMETHODCALLTYPE *GetVarDesc)(
   2171         ITypeInfo* This,
   2172         UINT index,
   2173         VARDESC **ppVarDesc);
   2174 
   2175     HRESULT (STDMETHODCALLTYPE *GetNames)(
   2176         ITypeInfo* This,
   2177         MEMBERID memid,
   2178         BSTR *rgBstrNames,
   2179         UINT cMaxNames,
   2180         UINT *pcNames);
   2181 
   2182     HRESULT (STDMETHODCALLTYPE *GetRefTypeOfImplType)(
   2183         ITypeInfo* This,
   2184         UINT index,
   2185         HREFTYPE *pRefType);
   2186 
   2187     HRESULT (STDMETHODCALLTYPE *GetImplTypeFlags)(
   2188         ITypeInfo* This,
   2189         UINT index,
   2190         INT *pImplTypeFlags);
   2191 
   2192     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   2193         ITypeInfo* This,
   2194         LPOLESTR *rgszNames,
   2195         UINT cNames,
   2196         MEMBERID *pMemId);
   2197 
   2198     HRESULT (STDMETHODCALLTYPE *Invoke)(
   2199         ITypeInfo* This,
   2200         PVOID pvInstance,
   2201         MEMBERID memid,
   2202         WORD wFlags,
   2203         DISPPARAMS *pDispParams,
   2204         VARIANT *pVarResult,
   2205         EXCEPINFO *pExcepInfo,
   2206         UINT *puArgErr);
   2207 
   2208     HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
   2209         ITypeInfo* This,
   2210         MEMBERID memid,
   2211         BSTR *pBstrName,
   2212         BSTR *pBstrDocString,
   2213         DWORD *pdwHelpContext,
   2214         BSTR *pBstrHelpFile);
   2215 
   2216     HRESULT (STDMETHODCALLTYPE *GetDllEntry)(
   2217         ITypeInfo* This,
   2218         MEMBERID memid,
   2219         INVOKEKIND invKind,
   2220         BSTR *pBstrDllName,
   2221         BSTR *pBstrName,
   2222         WORD *pwOrdinal);
   2223 
   2224     HRESULT (STDMETHODCALLTYPE *GetRefTypeInfo)(
   2225         ITypeInfo* This,
   2226         HREFTYPE hRefType,
   2227         ITypeInfo **ppTInfo);
   2228 
   2229     HRESULT (STDMETHODCALLTYPE *AddressOfMember)(
   2230         ITypeInfo* This,
   2231         MEMBERID memid,
   2232         INVOKEKIND invKind,
   2233         PVOID *ppv);
   2234 
   2235     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
   2236         ITypeInfo* This,
   2237         IUnknown *pUnkOuter,
   2238         REFIID riid,
   2239         PVOID *ppvObj);
   2240 
   2241     HRESULT (STDMETHODCALLTYPE *GetMops)(
   2242         ITypeInfo* This,
   2243         MEMBERID memid,
   2244         BSTR *pBstrMops);
   2245 
   2246     HRESULT (STDMETHODCALLTYPE *GetContainingTypeLib)(
   2247         ITypeInfo* This,
   2248         ITypeLib **ppTLib,
   2249         UINT *pIndex);
   2250 
   2251     void (STDMETHODCALLTYPE *ReleaseTypeAttr)(
   2252         ITypeInfo* This,
   2253         TYPEATTR *pTypeAttr);
   2254 
   2255     void (STDMETHODCALLTYPE *ReleaseFuncDesc)(
   2256         ITypeInfo* This,
   2257         FUNCDESC *pFuncDesc);
   2258 
   2259     void (STDMETHODCALLTYPE *ReleaseVarDesc)(
   2260         ITypeInfo* This,
   2261         VARDESC *pVarDesc);
   2262 
   2263     END_INTERFACE
   2264 } ITypeInfoVtbl;
   2265 interface ITypeInfo {
   2266     CONST_VTBL ITypeInfoVtbl* lpVtbl;
   2267 };
   2268 
   2269 #ifdef COBJMACROS
   2270 #ifndef WIDL_C_INLINE_WRAPPERS
   2271 /*** IUnknown methods ***/
   2272 #define ITypeInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2273 #define ITypeInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   2274 #define ITypeInfo_Release(This) (This)->lpVtbl->Release(This)
   2275 /*** ITypeInfo methods ***/
   2276 #define ITypeInfo_GetTypeAttr(This,ppTypeAttr) (This)->lpVtbl->GetTypeAttr(This,ppTypeAttr)
   2277 #define ITypeInfo_GetTypeComp(This,ppTComp) (This)->lpVtbl->GetTypeComp(This,ppTComp)
   2278 #define ITypeInfo_GetFuncDesc(This,index,ppFuncDesc) (This)->lpVtbl->GetFuncDesc(This,index,ppFuncDesc)
   2279 #define ITypeInfo_GetVarDesc(This,index,ppVarDesc) (This)->lpVtbl->GetVarDesc(This,index,ppVarDesc)
   2280 #define ITypeInfo_GetNames(This,memid,rgBstrNames,cMaxNames,pcNames) (This)->lpVtbl->GetNames(This,memid,rgBstrNames,cMaxNames,pcNames)
   2281 #define ITypeInfo_GetRefTypeOfImplType(This,index,pRefType) (This)->lpVtbl->GetRefTypeOfImplType(This,index,pRefType)
   2282 #define ITypeInfo_GetImplTypeFlags(This,index,pImplTypeFlags) (This)->lpVtbl->GetImplTypeFlags(This,index,pImplTypeFlags)
   2283 #define ITypeInfo_GetIDsOfNames(This,rgszNames,cNames,pMemId) (This)->lpVtbl->GetIDsOfNames(This,rgszNames,cNames,pMemId)
   2284 #define ITypeInfo_Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   2285 #define ITypeInfo_GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) (This)->lpVtbl->GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile)
   2286 #define ITypeInfo_GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal) (This)->lpVtbl->GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal)
   2287 #define ITypeInfo_GetRefTypeInfo(This,hRefType,ppTInfo) (This)->lpVtbl->GetRefTypeInfo(This,hRefType,ppTInfo)
   2288 #define ITypeInfo_AddressOfMember(This,memid,invKind,ppv) (This)->lpVtbl->AddressOfMember(This,memid,invKind,ppv)
   2289 #define ITypeInfo_CreateInstance(This,pUnkOuter,riid,ppvObj) (This)->lpVtbl->CreateInstance(This,pUnkOuter,riid,ppvObj)
   2290 #define ITypeInfo_GetMops(This,memid,pBstrMops) (This)->lpVtbl->GetMops(This,memid,pBstrMops)
   2291 #define ITypeInfo_GetContainingTypeLib(This,ppTLib,pIndex) (This)->lpVtbl->GetContainingTypeLib(This,ppTLib,pIndex)
   2292 #define ITypeInfo_ReleaseTypeAttr(This,pTypeAttr) (This)->lpVtbl->ReleaseTypeAttr(This,pTypeAttr)
   2293 #define ITypeInfo_ReleaseFuncDesc(This,pFuncDesc) (This)->lpVtbl->ReleaseFuncDesc(This,pFuncDesc)
   2294 #define ITypeInfo_ReleaseVarDesc(This,pVarDesc) (This)->lpVtbl->ReleaseVarDesc(This,pVarDesc)
   2295 #else
   2296 /*** IUnknown methods ***/
   2297 static FORCEINLINE HRESULT ITypeInfo_QueryInterface(ITypeInfo* This,REFIID riid,void **ppvObject) {
   2298     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2299 }
   2300 static FORCEINLINE ULONG ITypeInfo_AddRef(ITypeInfo* This) {
   2301     return This->lpVtbl->AddRef(This);
   2302 }
   2303 static FORCEINLINE ULONG ITypeInfo_Release(ITypeInfo* This) {
   2304     return This->lpVtbl->Release(This);
   2305 }
   2306 /*** ITypeInfo methods ***/
   2307 static FORCEINLINE HRESULT ITypeInfo_GetTypeAttr(ITypeInfo* This,TYPEATTR **ppTypeAttr) {
   2308     return This->lpVtbl->GetTypeAttr(This,ppTypeAttr);
   2309 }
   2310 static FORCEINLINE HRESULT ITypeInfo_GetTypeComp(ITypeInfo* This,ITypeComp **ppTComp) {
   2311     return This->lpVtbl->GetTypeComp(This,ppTComp);
   2312 }
   2313 static FORCEINLINE HRESULT ITypeInfo_GetFuncDesc(ITypeInfo* This,UINT index,FUNCDESC **ppFuncDesc) {
   2314     return This->lpVtbl->GetFuncDesc(This,index,ppFuncDesc);
   2315 }
   2316 static FORCEINLINE HRESULT ITypeInfo_GetVarDesc(ITypeInfo* This,UINT index,VARDESC **ppVarDesc) {
   2317     return This->lpVtbl->GetVarDesc(This,index,ppVarDesc);
   2318 }
   2319 static FORCEINLINE HRESULT ITypeInfo_GetNames(ITypeInfo* This,MEMBERID memid,BSTR *rgBstrNames,UINT cMaxNames,UINT *pcNames) {
   2320     return This->lpVtbl->GetNames(This,memid,rgBstrNames,cMaxNames,pcNames);
   2321 }
   2322 static FORCEINLINE HRESULT ITypeInfo_GetRefTypeOfImplType(ITypeInfo* This,UINT index,HREFTYPE *pRefType) {
   2323     return This->lpVtbl->GetRefTypeOfImplType(This,index,pRefType);
   2324 }
   2325 static FORCEINLINE HRESULT ITypeInfo_GetImplTypeFlags(ITypeInfo* This,UINT index,INT *pImplTypeFlags) {
   2326     return This->lpVtbl->GetImplTypeFlags(This,index,pImplTypeFlags);
   2327 }
   2328 static FORCEINLINE HRESULT ITypeInfo_GetIDsOfNames(ITypeInfo* This,LPOLESTR *rgszNames,UINT cNames,MEMBERID *pMemId) {
   2329     return This->lpVtbl->GetIDsOfNames(This,rgszNames,cNames,pMemId);
   2330 }
   2331 static FORCEINLINE HRESULT ITypeInfo_Invoke(ITypeInfo* This,PVOID pvInstance,MEMBERID memid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   2332     return This->lpVtbl->Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   2333 }
   2334 static FORCEINLINE HRESULT ITypeInfo_GetDocumentation(ITypeInfo* This,MEMBERID memid,BSTR *pBstrName,BSTR *pBstrDocString,DWORD *pdwHelpContext,BSTR *pBstrHelpFile) {
   2335     return This->lpVtbl->GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile);
   2336 }
   2337 static FORCEINLINE HRESULT ITypeInfo_GetDllEntry(ITypeInfo* This,MEMBERID memid,INVOKEKIND invKind,BSTR *pBstrDllName,BSTR *pBstrName,WORD *pwOrdinal) {
   2338     return This->lpVtbl->GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal);
   2339 }
   2340 static FORCEINLINE HRESULT ITypeInfo_GetRefTypeInfo(ITypeInfo* This,HREFTYPE hRefType,ITypeInfo **ppTInfo) {
   2341     return This->lpVtbl->GetRefTypeInfo(This,hRefType,ppTInfo);
   2342 }
   2343 static FORCEINLINE HRESULT ITypeInfo_AddressOfMember(ITypeInfo* This,MEMBERID memid,INVOKEKIND invKind,PVOID *ppv) {
   2344     return This->lpVtbl->AddressOfMember(This,memid,invKind,ppv);
   2345 }
   2346 static FORCEINLINE HRESULT ITypeInfo_CreateInstance(ITypeInfo* This,IUnknown *pUnkOuter,REFIID riid,PVOID *ppvObj) {
   2347     return This->lpVtbl->CreateInstance(This,pUnkOuter,riid,ppvObj);
   2348 }
   2349 static FORCEINLINE HRESULT ITypeInfo_GetMops(ITypeInfo* This,MEMBERID memid,BSTR *pBstrMops) {
   2350     return This->lpVtbl->GetMops(This,memid,pBstrMops);
   2351 }
   2352 static FORCEINLINE HRESULT ITypeInfo_GetContainingTypeLib(ITypeInfo* This,ITypeLib **ppTLib,UINT *pIndex) {
   2353     return This->lpVtbl->GetContainingTypeLib(This,ppTLib,pIndex);
   2354 }
   2355 static FORCEINLINE void ITypeInfo_ReleaseTypeAttr(ITypeInfo* This,TYPEATTR *pTypeAttr) {
   2356     This->lpVtbl->ReleaseTypeAttr(This,pTypeAttr);
   2357 }
   2358 static FORCEINLINE void ITypeInfo_ReleaseFuncDesc(ITypeInfo* This,FUNCDESC *pFuncDesc) {
   2359     This->lpVtbl->ReleaseFuncDesc(This,pFuncDesc);
   2360 }
   2361 static FORCEINLINE void ITypeInfo_ReleaseVarDesc(ITypeInfo* This,VARDESC *pVarDesc) {
   2362     This->lpVtbl->ReleaseVarDesc(This,pVarDesc);
   2363 }
   2364 #endif
   2365 #endif
   2366 
   2367 #endif
   2368 
   2369 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetTypeAttr_Proxy(
   2370     ITypeInfo* This,
   2371     LPTYPEATTR *ppTypeAttr,
   2372     CLEANLOCALSTORAGE *pDummy);
   2373 void __RPC_STUB ITypeInfo_RemoteGetTypeAttr_Stub(
   2374     IRpcStubBuffer* This,
   2375     IRpcChannelBuffer* pRpcChannelBuffer,
   2376     PRPC_MESSAGE pRpcMessage,
   2377     DWORD* pdwStubPhase);
   2378 HRESULT STDMETHODCALLTYPE ITypeInfo_GetTypeComp_Proxy(
   2379     ITypeInfo* This,
   2380     ITypeComp **ppTComp);
   2381 void __RPC_STUB ITypeInfo_GetTypeComp_Stub(
   2382     IRpcStubBuffer* This,
   2383     IRpcChannelBuffer* pRpcChannelBuffer,
   2384     PRPC_MESSAGE pRpcMessage,
   2385     DWORD* pdwStubPhase);
   2386 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetFuncDesc_Proxy(
   2387     ITypeInfo* This,
   2388     UINT index,
   2389     LPFUNCDESC *ppFuncDesc,
   2390     CLEANLOCALSTORAGE *pDummy);
   2391 void __RPC_STUB ITypeInfo_RemoteGetFuncDesc_Stub(
   2392     IRpcStubBuffer* This,
   2393     IRpcChannelBuffer* pRpcChannelBuffer,
   2394     PRPC_MESSAGE pRpcMessage,
   2395     DWORD* pdwStubPhase);
   2396 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetVarDesc_Proxy(
   2397     ITypeInfo* This,
   2398     UINT index,
   2399     LPVARDESC *ppVarDesc,
   2400     CLEANLOCALSTORAGE *pDummy);
   2401 void __RPC_STUB ITypeInfo_RemoteGetVarDesc_Stub(
   2402     IRpcStubBuffer* This,
   2403     IRpcChannelBuffer* pRpcChannelBuffer,
   2404     PRPC_MESSAGE pRpcMessage,
   2405     DWORD* pdwStubPhase);
   2406 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetNames_Proxy(
   2407     ITypeInfo* This,
   2408     MEMBERID memid,
   2409     BSTR *rgBstrNames,
   2410     UINT cMaxNames,
   2411     UINT *pcNames);
   2412 void __RPC_STUB ITypeInfo_RemoteGetNames_Stub(
   2413     IRpcStubBuffer* This,
   2414     IRpcChannelBuffer* pRpcChannelBuffer,
   2415     PRPC_MESSAGE pRpcMessage,
   2416     DWORD* pdwStubPhase);
   2417 HRESULT STDMETHODCALLTYPE ITypeInfo_GetRefTypeOfImplType_Proxy(
   2418     ITypeInfo* This,
   2419     UINT index,
   2420     HREFTYPE *pRefType);
   2421 void __RPC_STUB ITypeInfo_GetRefTypeOfImplType_Stub(
   2422     IRpcStubBuffer* This,
   2423     IRpcChannelBuffer* pRpcChannelBuffer,
   2424     PRPC_MESSAGE pRpcMessage,
   2425     DWORD* pdwStubPhase);
   2426 HRESULT STDMETHODCALLTYPE ITypeInfo_GetImplTypeFlags_Proxy(
   2427     ITypeInfo* This,
   2428     UINT index,
   2429     INT *pImplTypeFlags);
   2430 void __RPC_STUB ITypeInfo_GetImplTypeFlags_Stub(
   2431     IRpcStubBuffer* This,
   2432     IRpcChannelBuffer* pRpcChannelBuffer,
   2433     PRPC_MESSAGE pRpcMessage,
   2434     DWORD* pdwStubPhase);
   2435 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalGetIDsOfNames_Proxy(
   2436     ITypeInfo* This);
   2437 void __RPC_STUB ITypeInfo_LocalGetIDsOfNames_Stub(
   2438     IRpcStubBuffer* This,
   2439     IRpcChannelBuffer* pRpcChannelBuffer,
   2440     PRPC_MESSAGE pRpcMessage,
   2441     DWORD* pdwStubPhase);
   2442 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalInvoke_Proxy(
   2443     ITypeInfo* This);
   2444 void __RPC_STUB ITypeInfo_LocalInvoke_Stub(
   2445     IRpcStubBuffer* This,
   2446     IRpcChannelBuffer* pRpcChannelBuffer,
   2447     PRPC_MESSAGE pRpcMessage,
   2448     DWORD* pdwStubPhase);
   2449 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetDocumentation_Proxy(
   2450     ITypeInfo* This,
   2451     MEMBERID memid,
   2452     DWORD refPtrFlags,
   2453     BSTR *pBstrName,
   2454     BSTR *pBstrDocString,
   2455     DWORD *pdwHelpContext,
   2456     BSTR *pBstrHelpFile);
   2457 void __RPC_STUB ITypeInfo_RemoteGetDocumentation_Stub(
   2458     IRpcStubBuffer* This,
   2459     IRpcChannelBuffer* pRpcChannelBuffer,
   2460     PRPC_MESSAGE pRpcMessage,
   2461     DWORD* pdwStubPhase);
   2462 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetDllEntry_Proxy(
   2463     ITypeInfo* This,
   2464     MEMBERID memid,
   2465     INVOKEKIND invKind,
   2466     DWORD refPtrFlags,
   2467     BSTR *pBstrDllName,
   2468     BSTR *pBstrName,
   2469     WORD *pwOrdinal);
   2470 void __RPC_STUB ITypeInfo_RemoteGetDllEntry_Stub(
   2471     IRpcStubBuffer* This,
   2472     IRpcChannelBuffer* pRpcChannelBuffer,
   2473     PRPC_MESSAGE pRpcMessage,
   2474     DWORD* pdwStubPhase);
   2475 HRESULT STDMETHODCALLTYPE ITypeInfo_GetRefTypeInfo_Proxy(
   2476     ITypeInfo* This,
   2477     HREFTYPE hRefType,
   2478     ITypeInfo **ppTInfo);
   2479 void __RPC_STUB ITypeInfo_GetRefTypeInfo_Stub(
   2480     IRpcStubBuffer* This,
   2481     IRpcChannelBuffer* pRpcChannelBuffer,
   2482     PRPC_MESSAGE pRpcMessage,
   2483     DWORD* pdwStubPhase);
   2484 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalAddressOfMember_Proxy(
   2485     ITypeInfo* This);
   2486 void __RPC_STUB ITypeInfo_LocalAddressOfMember_Stub(
   2487     IRpcStubBuffer* This,
   2488     IRpcChannelBuffer* pRpcChannelBuffer,
   2489     PRPC_MESSAGE pRpcMessage,
   2490     DWORD* pdwStubPhase);
   2491 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteCreateInstance_Proxy(
   2492     ITypeInfo* This,
   2493     REFIID riid,
   2494     IUnknown **ppvObj);
   2495 void __RPC_STUB ITypeInfo_RemoteCreateInstance_Stub(
   2496     IRpcStubBuffer* This,
   2497     IRpcChannelBuffer* pRpcChannelBuffer,
   2498     PRPC_MESSAGE pRpcMessage,
   2499     DWORD* pdwStubPhase);
   2500 HRESULT STDMETHODCALLTYPE ITypeInfo_GetMops_Proxy(
   2501     ITypeInfo* This,
   2502     MEMBERID memid,
   2503     BSTR *pBstrMops);
   2504 void __RPC_STUB ITypeInfo_GetMops_Stub(
   2505     IRpcStubBuffer* This,
   2506     IRpcChannelBuffer* pRpcChannelBuffer,
   2507     PRPC_MESSAGE pRpcMessage,
   2508     DWORD* pdwStubPhase);
   2509 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetContainingTypeLib_Proxy(
   2510     ITypeInfo* This,
   2511     ITypeLib **ppTLib,
   2512     UINT *pIndex);
   2513 void __RPC_STUB ITypeInfo_RemoteGetContainingTypeLib_Stub(
   2514     IRpcStubBuffer* This,
   2515     IRpcChannelBuffer* pRpcChannelBuffer,
   2516     PRPC_MESSAGE pRpcMessage,
   2517     DWORD* pdwStubPhase);
   2518 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseTypeAttr_Proxy(
   2519     ITypeInfo* This);
   2520 void __RPC_STUB ITypeInfo_LocalReleaseTypeAttr_Stub(
   2521     IRpcStubBuffer* This,
   2522     IRpcChannelBuffer* pRpcChannelBuffer,
   2523     PRPC_MESSAGE pRpcMessage,
   2524     DWORD* pdwStubPhase);
   2525 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseFuncDesc_Proxy(
   2526     ITypeInfo* This);
   2527 void __RPC_STUB ITypeInfo_LocalReleaseFuncDesc_Stub(
   2528     IRpcStubBuffer* This,
   2529     IRpcChannelBuffer* pRpcChannelBuffer,
   2530     PRPC_MESSAGE pRpcMessage,
   2531     DWORD* pdwStubPhase);
   2532 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseVarDesc_Proxy(
   2533     ITypeInfo* This);
   2534 void __RPC_STUB ITypeInfo_LocalReleaseVarDesc_Stub(
   2535     IRpcStubBuffer* This,
   2536     IRpcChannelBuffer* pRpcChannelBuffer,
   2537     PRPC_MESSAGE pRpcMessage,
   2538     DWORD* pdwStubPhase);
   2539 HRESULT CALLBACK ITypeInfo_GetTypeAttr_Proxy(
   2540     ITypeInfo* This,
   2541     TYPEATTR **ppTypeAttr);
   2542 HRESULT __RPC_STUB ITypeInfo_GetTypeAttr_Stub(
   2543     ITypeInfo* This,
   2544     LPTYPEATTR *ppTypeAttr,
   2545     CLEANLOCALSTORAGE *pDummy);
   2546 HRESULT CALLBACK ITypeInfo_GetFuncDesc_Proxy(
   2547     ITypeInfo* This,
   2548     UINT index,
   2549     FUNCDESC **ppFuncDesc);
   2550 HRESULT __RPC_STUB ITypeInfo_GetFuncDesc_Stub(
   2551     ITypeInfo* This,
   2552     UINT index,
   2553     LPFUNCDESC *ppFuncDesc,
   2554     CLEANLOCALSTORAGE *pDummy);
   2555 HRESULT CALLBACK ITypeInfo_GetVarDesc_Proxy(
   2556     ITypeInfo* This,
   2557     UINT index,
   2558     VARDESC **ppVarDesc);
   2559 HRESULT __RPC_STUB ITypeInfo_GetVarDesc_Stub(
   2560     ITypeInfo* This,
   2561     UINT index,
   2562     LPVARDESC *ppVarDesc,
   2563     CLEANLOCALSTORAGE *pDummy);
   2564 HRESULT CALLBACK ITypeInfo_GetNames_Proxy(
   2565     ITypeInfo* This,
   2566     MEMBERID memid,
   2567     BSTR *rgBstrNames,
   2568     UINT cMaxNames,
   2569     UINT *pcNames);
   2570 HRESULT __RPC_STUB ITypeInfo_GetNames_Stub(
   2571     ITypeInfo* This,
   2572     MEMBERID memid,
   2573     BSTR *rgBstrNames,
   2574     UINT cMaxNames,
   2575     UINT *pcNames);
   2576 HRESULT CALLBACK ITypeInfo_GetIDsOfNames_Proxy(
   2577     ITypeInfo* This,
   2578     LPOLESTR *rgszNames,
   2579     UINT cNames,
   2580     MEMBERID *pMemId);
   2581 HRESULT __RPC_STUB ITypeInfo_GetIDsOfNames_Stub(
   2582     ITypeInfo* This);
   2583 HRESULT CALLBACK ITypeInfo_Invoke_Proxy(
   2584     ITypeInfo* This,
   2585     PVOID pvInstance,
   2586     MEMBERID memid,
   2587     WORD wFlags,
   2588     DISPPARAMS *pDispParams,
   2589     VARIANT *pVarResult,
   2590     EXCEPINFO *pExcepInfo,
   2591     UINT *puArgErr);
   2592 HRESULT __RPC_STUB ITypeInfo_Invoke_Stub(
   2593     ITypeInfo* This);
   2594 HRESULT CALLBACK ITypeInfo_GetDocumentation_Proxy(
   2595     ITypeInfo* This,
   2596     MEMBERID memid,
   2597     BSTR *pBstrName,
   2598     BSTR *pBstrDocString,
   2599     DWORD *pdwHelpContext,
   2600     BSTR *pBstrHelpFile);
   2601 HRESULT __RPC_STUB ITypeInfo_GetDocumentation_Stub(
   2602     ITypeInfo* This,
   2603     MEMBERID memid,
   2604     DWORD refPtrFlags,
   2605     BSTR *pBstrName,
   2606     BSTR *pBstrDocString,
   2607     DWORD *pdwHelpContext,
   2608     BSTR *pBstrHelpFile);
   2609 HRESULT CALLBACK ITypeInfo_GetDllEntry_Proxy(
   2610     ITypeInfo* This,
   2611     MEMBERID memid,
   2612     INVOKEKIND invKind,
   2613     BSTR *pBstrDllName,
   2614     BSTR *pBstrName,
   2615     WORD *pwOrdinal);
   2616 HRESULT __RPC_STUB ITypeInfo_GetDllEntry_Stub(
   2617     ITypeInfo* This,
   2618     MEMBERID memid,
   2619     INVOKEKIND invKind,
   2620     DWORD refPtrFlags,
   2621     BSTR *pBstrDllName,
   2622     BSTR *pBstrName,
   2623     WORD *pwOrdinal);
   2624 HRESULT CALLBACK ITypeInfo_AddressOfMember_Proxy(
   2625     ITypeInfo* This,
   2626     MEMBERID memid,
   2627     INVOKEKIND invKind,
   2628     PVOID *ppv);
   2629 HRESULT __RPC_STUB ITypeInfo_AddressOfMember_Stub(
   2630     ITypeInfo* This);
   2631 HRESULT CALLBACK ITypeInfo_CreateInstance_Proxy(
   2632     ITypeInfo* This,
   2633     IUnknown *pUnkOuter,
   2634     REFIID riid,
   2635     PVOID *ppvObj);
   2636 HRESULT __RPC_STUB ITypeInfo_CreateInstance_Stub(
   2637     ITypeInfo* This,
   2638     REFIID riid,
   2639     IUnknown **ppvObj);
   2640 HRESULT CALLBACK ITypeInfo_GetContainingTypeLib_Proxy(
   2641     ITypeInfo* This,
   2642     ITypeLib **ppTLib,
   2643     UINT *pIndex);
   2644 HRESULT __RPC_STUB ITypeInfo_GetContainingTypeLib_Stub(
   2645     ITypeInfo* This,
   2646     ITypeLib **ppTLib,
   2647     UINT *pIndex);
   2648 void CALLBACK ITypeInfo_ReleaseTypeAttr_Proxy(
   2649     ITypeInfo* This,
   2650     TYPEATTR *pTypeAttr);
   2651 HRESULT __RPC_STUB ITypeInfo_ReleaseTypeAttr_Stub(
   2652     ITypeInfo* This);
   2653 void CALLBACK ITypeInfo_ReleaseFuncDesc_Proxy(
   2654     ITypeInfo* This,
   2655     FUNCDESC *pFuncDesc);
   2656 HRESULT __RPC_STUB ITypeInfo_ReleaseFuncDesc_Stub(
   2657     ITypeInfo* This);
   2658 void CALLBACK ITypeInfo_ReleaseVarDesc_Proxy(
   2659     ITypeInfo* This,
   2660     VARDESC *pVarDesc);
   2661 HRESULT __RPC_STUB ITypeInfo_ReleaseVarDesc_Stub(
   2662     ITypeInfo* This);
   2663 
   2664 #endif  /* __ITypeInfo_INTERFACE_DEFINED__ */
   2665 
   2666 #ifndef __ITypeInfo2_INTERFACE_DEFINED__
   2667 #define __ITypeInfo2_INTERFACE_DEFINED__
   2668   typedef ITypeInfo2 *LPTYPEINFO2;
   2669 
   2670   EXTERN_C const IID IID_ITypeInfo2;
   2671 #if defined(__cplusplus) && !defined(CINTERFACE)
   2672   struct ITypeInfo2 : public ITypeInfo {
   2673   public:
   2674     virtual HRESULT WINAPI GetTypeKind(TYPEKIND *pTypeKind) = 0;
   2675     virtual HRESULT WINAPI GetTypeFlags(ULONG *pTypeFlags) = 0;
   2676     virtual HRESULT WINAPI GetFuncIndexOfMemId(MEMBERID memid,INVOKEKIND invKind,UINT *pFuncIndex) = 0;
   2677     virtual HRESULT WINAPI GetVarIndexOfMemId(MEMBERID memid,UINT *pVarIndex) = 0;
   2678     virtual HRESULT WINAPI GetCustData(REFGUID guid,VARIANT *pVarVal) = 0;
   2679     virtual HRESULT WINAPI GetFuncCustData(UINT index,REFGUID guid,VARIANT *pVarVal) = 0;
   2680     virtual HRESULT WINAPI GetParamCustData(UINT indexFunc,UINT indexParam,REFGUID guid,VARIANT *pVarVal) = 0;
   2681     virtual HRESULT WINAPI GetVarCustData(UINT index,REFGUID guid,VARIANT *pVarVal) = 0;
   2682     virtual HRESULT WINAPI GetImplTypeCustData(UINT index,REFGUID guid,VARIANT *pVarVal) = 0;
   2683     virtual HRESULT WINAPI GetDocumentation2(MEMBERID memid,LCID lcid,BSTR *pbstrHelpString,DWORD *pdwHelpStringContext,BSTR *pbstrHelpStringDll) = 0;
   2684     virtual HRESULT WINAPI GetAllCustData(CUSTDATA *pCustData) = 0;
   2685     virtual HRESULT WINAPI GetAllFuncCustData(UINT index,CUSTDATA *pCustData) = 0;
   2686     virtual HRESULT WINAPI GetAllParamCustData(UINT indexFunc,UINT indexParam,CUSTDATA *pCustData) = 0;
   2687     virtual HRESULT WINAPI GetAllVarCustData(UINT index,CUSTDATA *pCustData) = 0;
   2688     virtual HRESULT WINAPI GetAllImplTypeCustData(UINT index,CUSTDATA *pCustData) = 0;
   2689   };
   2690 #else
   2691   typedef struct ITypeInfo2Vtbl {
   2692     BEGIN_INTERFACE
   2693       HRESULT (WINAPI *QueryInterface)(ITypeInfo2 *This,REFIID riid,void **ppvObject);
   2694       ULONG (WINAPI *AddRef)(ITypeInfo2 *This);
   2695       ULONG (WINAPI *Release)(ITypeInfo2 *This);
   2696       HRESULT (WINAPI *GetTypeAttr)(ITypeInfo2 *This,TYPEATTR **ppTypeAttr);
   2697       HRESULT (WINAPI *GetTypeComp)(ITypeInfo2 *This,ITypeComp **ppTComp);
   2698       HRESULT (WINAPI *GetFuncDesc)(ITypeInfo2 *This,UINT index,FUNCDESC **ppFuncDesc);
   2699       HRESULT (WINAPI *GetVarDesc)(ITypeInfo2 *This,UINT index,VARDESC **ppVarDesc);
   2700       HRESULT (WINAPI *GetNames)(ITypeInfo2 *This,MEMBERID memid,BSTR *rgBstrNames,UINT cMaxNames,UINT *pcNames);
   2701       HRESULT (WINAPI *GetRefTypeOfImplType)(ITypeInfo2 *This,UINT index,HREFTYPE *pRefType);
   2702       HRESULT (WINAPI *GetImplTypeFlags)(ITypeInfo2 *This,UINT index,INT *pImplTypeFlags);
   2703       HRESULT (WINAPI *GetIDsOfNames)(ITypeInfo2 *This,LPOLESTR *rgszNames,UINT cNames,MEMBERID *pMemId);
   2704       HRESULT (WINAPI *Invoke)(ITypeInfo2 *This,PVOID pvInstance,MEMBERID memid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
   2705       HRESULT (WINAPI *GetDocumentation)(ITypeInfo2 *This,MEMBERID memid,BSTR *pBstrName,BSTR *pBstrDocString,DWORD *pdwHelpContext,BSTR *pBstrHelpFile);
   2706       HRESULT (WINAPI *GetDllEntry)(ITypeInfo2 *This,MEMBERID memid,INVOKEKIND invKind,BSTR *pBstrDllName,BSTR *pBstrName,WORD *pwOrdinal);
   2707       HRESULT (WINAPI *GetRefTypeInfo)(ITypeInfo2 *This,HREFTYPE hRefType,ITypeInfo **ppTInfo);
   2708       HRESULT (WINAPI *AddressOfMember)(ITypeInfo2 *This,MEMBERID memid,INVOKEKIND invKind,PVOID *ppv);
   2709       HRESULT (WINAPI *CreateInstance)(ITypeInfo2 *This,IUnknown *pUnkOuter,REFIID riid,PVOID *ppvObj);
   2710       HRESULT (WINAPI *GetMops)(ITypeInfo2 *This,MEMBERID memid,BSTR *pBstrMops);
   2711       HRESULT (WINAPI *GetContainingTypeLib)(ITypeInfo2 *This,ITypeLib **ppTLib,UINT *pIndex);
   2712       void (WINAPI *ReleaseTypeAttr)(ITypeInfo2 *This,TYPEATTR *pTypeAttr);
   2713       void (WINAPI *ReleaseFuncDesc)(ITypeInfo2 *This,FUNCDESC *pFuncDesc);
   2714       void (WINAPI *ReleaseVarDesc)(ITypeInfo2 *This,VARDESC *pVarDesc);
   2715       HRESULT (WINAPI *GetTypeKind)(ITypeInfo2 *This,TYPEKIND *pTypeKind);
   2716       HRESULT (WINAPI *GetTypeFlags)(ITypeInfo2 *This,ULONG *pTypeFlags);
   2717       HRESULT (WINAPI *GetFuncIndexOfMemId)(ITypeInfo2 *This,MEMBERID memid,INVOKEKIND invKind,UINT *pFuncIndex);
   2718       HRESULT (WINAPI *GetVarIndexOfMemId)(ITypeInfo2 *This,MEMBERID memid,UINT *pVarIndex);
   2719       HRESULT (WINAPI *GetCustData)(ITypeInfo2 *This,REFGUID guid,VARIANT *pVarVal);
   2720       HRESULT (WINAPI *GetFuncCustData)(ITypeInfo2 *This,UINT index,REFGUID guid,VARIANT *pVarVal);
   2721       HRESULT (WINAPI *GetParamCustData)(ITypeInfo2 *This,UINT indexFunc,UINT indexParam,REFGUID guid,VARIANT *pVarVal);
   2722       HRESULT (WINAPI *GetVarCustData)(ITypeInfo2 *This,UINT index,REFGUID guid,VARIANT *pVarVal);
   2723       HRESULT (WINAPI *GetImplTypeCustData)(ITypeInfo2 *This,UINT index,REFGUID guid,VARIANT *pVarVal);
   2724       HRESULT (WINAPI *GetDocumentation2)(ITypeInfo2 *This,MEMBERID memid,LCID lcid,BSTR *pbstrHelpString,DWORD *pdwHelpStringContext,BSTR *pbstrHelpStringDll);
   2725       HRESULT (WINAPI *GetAllCustData)(ITypeInfo2 *This,CUSTDATA *pCustData);
   2726       HRESULT (WINAPI *GetAllFuncCustData)(ITypeInfo2 *This,UINT index,CUSTDATA *pCustData);
   2727       HRESULT (WINAPI *GetAllParamCustData)(ITypeInfo2 *This,UINT indexFunc,UINT indexParam,CUSTDATA *pCustData);
   2728       HRESULT (WINAPI *GetAllVarCustData)(ITypeInfo2 *This,UINT index,CUSTDATA *pCustData);
   2729       HRESULT (WINAPI *GetAllImplTypeCustData)(ITypeInfo2 *This,UINT index,CUSTDATA *pCustData);
   2730     END_INTERFACE
   2731   } ITypeInfo2Vtbl;
   2732   struct ITypeInfo2 {
   2733     CONST_VTBL struct ITypeInfo2Vtbl *lpVtbl;
   2734   };
   2735 #ifdef COBJMACROS
   2736 #define ITypeInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2737 #define ITypeInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2738 #define ITypeInfo2_Release(This) (This)->lpVtbl->Release(This)
   2739 #define ITypeInfo2_GetTypeAttr(This,ppTypeAttr) (This)->lpVtbl->GetTypeAttr(This,ppTypeAttr)
   2740 #define ITypeInfo2_GetTypeComp(This,ppTComp) (This)->lpVtbl->GetTypeComp(This,ppTComp)
   2741 #define ITypeInfo2_GetFuncDesc(This,index,ppFuncDesc) (This)->lpVtbl->GetFuncDesc(This,index,ppFuncDesc)
   2742 #define ITypeInfo2_GetVarDesc(This,index,ppVarDesc) (This)->lpVtbl->GetVarDesc(This,index,ppVarDesc)
   2743 #define ITypeInfo2_GetNames(This,memid,rgBstrNames,cMaxNames,pcNames) (This)->lpVtbl->GetNames(This,memid,rgBstrNames,cMaxNames,pcNames)
   2744 #define ITypeInfo2_GetRefTypeOfImplType(This,index,pRefType) (This)->lpVtbl->GetRefTypeOfImplType(This,index,pRefType)
   2745 #define ITypeInfo2_GetImplTypeFlags(This,index,pImplTypeFlags) (This)->lpVtbl->GetImplTypeFlags(This,index,pImplTypeFlags)
   2746 #define ITypeInfo2_GetIDsOfNames(This,rgszNames,cNames,pMemId) (This)->lpVtbl->GetIDsOfNames(This,rgszNames,cNames,pMemId)
   2747 #define ITypeInfo2_Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   2748 #define ITypeInfo2_GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) (This)->lpVtbl->GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile)
   2749 #define ITypeInfo2_GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal) (This)->lpVtbl->GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal)
   2750 #define ITypeInfo2_GetRefTypeInfo(This,hRefType,ppTInfo) (This)->lpVtbl->GetRefTypeInfo(This,hRefType,ppTInfo)
   2751 #define ITypeInfo2_AddressOfMember(This,memid,invKind,ppv) (This)->lpVtbl->AddressOfMember(This,memid,invKind,ppv)
   2752 #define ITypeInfo2_CreateInstance(This,pUnkOuter,riid,ppvObj) (This)->lpVtbl->CreateInstance(This,pUnkOuter,riid,ppvObj)
   2753 #define ITypeInfo2_GetMops(This,memid,pBstrMops) (This)->lpVtbl->GetMops(This,memid,pBstrMops)
   2754 #define ITypeInfo2_GetContainingTypeLib(This,ppTLib,pIndex) (This)->lpVtbl->GetContainingTypeLib(This,ppTLib,pIndex)
   2755 #define ITypeInfo2_ReleaseTypeAttr(This,pTypeAttr) (This)->lpVtbl->ReleaseTypeAttr(This,pTypeAttr)
   2756 #define ITypeInfo2_ReleaseFuncDesc(This,pFuncDesc) (This)->lpVtbl->ReleaseFuncDesc(This,pFuncDesc)
   2757 #define ITypeInfo2_ReleaseVarDesc(This,pVarDesc) (This)->lpVtbl->ReleaseVarDesc(This,pVarDesc)
   2758 #define ITypeInfo2_GetTypeKind(This,pTypeKind) (This)->lpVtbl->GetTypeKind(This,pTypeKind)
   2759 #define ITypeInfo2_GetTypeFlags(This,pTypeFlags) (This)->lpVtbl->GetTypeFlags(This,pTypeFlags)
   2760 #define ITypeInfo2_GetFuncIndexOfMemId(This,memid,invKind,pFuncIndex) (This)->lpVtbl->GetFuncIndexOfMemId(This,memid,invKind,pFuncIndex)
   2761 #define ITypeInfo2_GetVarIndexOfMemId(This,memid,pVarIndex) (This)->lpVtbl->GetVarIndexOfMemId(This,memid,pVarIndex)
   2762 #define ITypeInfo2_GetCustData(This,guid,pVarVal) (This)->lpVtbl->GetCustData(This,guid,pVarVal)
   2763 #define ITypeInfo2_GetFuncCustData(This,index,guid,pVarVal) (This)->lpVtbl->GetFuncCustData(This,index,guid,pVarVal)
   2764 #define ITypeInfo2_GetParamCustData(This,indexFunc,indexParam,guid,pVarVal) (This)->lpVtbl->GetParamCustData(This,indexFunc,indexParam,guid,pVarVal)
   2765 #define ITypeInfo2_GetVarCustData(This,index,guid,pVarVal) (This)->lpVtbl->GetVarCustData(This,index,guid,pVarVal)
   2766 #define ITypeInfo2_GetImplTypeCustData(This,index,guid,pVarVal) (This)->lpVtbl->GetImplTypeCustData(This,index,guid,pVarVal)
   2767 #define ITypeInfo2_GetDocumentation2(This,memid,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll) (This)->lpVtbl->GetDocumentation2(This,memid,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll)
   2768 #define ITypeInfo2_GetAllCustData(This,pCustData) (This)->lpVtbl->GetAllCustData(This,pCustData)
   2769 #define ITypeInfo2_GetAllFuncCustData(This,index,pCustData) (This)->lpVtbl->GetAllFuncCustData(This,index,pCustData)
   2770 #define ITypeInfo2_GetAllParamCustData(This,indexFunc,indexParam,pCustData) (This)->lpVtbl->GetAllParamCustData(This,indexFunc,indexParam,pCustData)
   2771 #define ITypeInfo2_GetAllVarCustData(This,index,pCustData) (This)->lpVtbl->GetAllVarCustData(This,index,pCustData)
   2772 #define ITypeInfo2_GetAllImplTypeCustData(This,index,pCustData) (This)->lpVtbl->GetAllImplTypeCustData(This,index,pCustData)
   2773 #endif
   2774 #endif
   2775   HRESULT WINAPI ITypeInfo2_GetTypeKind_Proxy(ITypeInfo2 *This,TYPEKIND *pTypeKind);
   2776   void __RPC_STUB ITypeInfo2_GetTypeKind_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2777   HRESULT WINAPI ITypeInfo2_GetTypeFlags_Proxy(ITypeInfo2 *This,ULONG *pTypeFlags);
   2778   void __RPC_STUB ITypeInfo2_GetTypeFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2779   HRESULT WINAPI ITypeInfo2_GetFuncIndexOfMemId_Proxy(ITypeInfo2 *This,MEMBERID memid,INVOKEKIND invKind,UINT *pFuncIndex);
   2780   void __RPC_STUB ITypeInfo2_GetFuncIndexOfMemId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2781   HRESULT WINAPI ITypeInfo2_GetVarIndexOfMemId_Proxy(ITypeInfo2 *This,MEMBERID memid,UINT *pVarIndex);
   2782   void __RPC_STUB ITypeInfo2_GetVarIndexOfMemId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2783   HRESULT WINAPI ITypeInfo2_GetCustData_Proxy(ITypeInfo2 *This,REFGUID guid,VARIANT *pVarVal);
   2784   void __RPC_STUB ITypeInfo2_GetCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2785   HRESULT WINAPI ITypeInfo2_GetFuncCustData_Proxy(ITypeInfo2 *This,UINT index,REFGUID guid,VARIANT *pVarVal);
   2786   void __RPC_STUB ITypeInfo2_GetFuncCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2787   HRESULT WINAPI ITypeInfo2_GetParamCustData_Proxy(ITypeInfo2 *This,UINT indexFunc,UINT indexParam,REFGUID guid,VARIANT *pVarVal);
   2788   void __RPC_STUB ITypeInfo2_GetParamCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2789   HRESULT WINAPI ITypeInfo2_GetVarCustData_Proxy(ITypeInfo2 *This,UINT index,REFGUID guid,VARIANT *pVarVal);
   2790   void __RPC_STUB ITypeInfo2_GetVarCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2791   HRESULT WINAPI ITypeInfo2_GetImplTypeCustData_Proxy(ITypeInfo2 *This,UINT index,REFGUID guid,VARIANT *pVarVal);
   2792   void __RPC_STUB ITypeInfo2_GetImplTypeCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2793   HRESULT WINAPI ITypeInfo2_RemoteGetDocumentation2_Proxy(ITypeInfo2 *This,MEMBERID memid,LCID lcid,DWORD refPtrFlags,BSTR *pbstrHelpString,DWORD *pdwHelpStringContext,BSTR *pbstrHelpStringDll);
   2794   void __RPC_STUB ITypeInfo2_RemoteGetDocumentation2_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2795   HRESULT WINAPI ITypeInfo2_GetAllCustData_Proxy(ITypeInfo2 *This,CUSTDATA *pCustData);
   2796   void __RPC_STUB ITypeInfo2_GetAllCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2797   HRESULT WINAPI ITypeInfo2_GetAllFuncCustData_Proxy(ITypeInfo2 *This,UINT index,CUSTDATA *pCustData);
   2798   void __RPC_STUB ITypeInfo2_GetAllFuncCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2799   HRESULT WINAPI ITypeInfo2_GetAllParamCustData_Proxy(ITypeInfo2 *This,UINT indexFunc,UINT indexParam,CUSTDATA *pCustData);
   2800   void __RPC_STUB ITypeInfo2_GetAllParamCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2801   HRESULT WINAPI ITypeInfo2_GetAllVarCustData_Proxy(ITypeInfo2 *This,UINT index,CUSTDATA *pCustData);
   2802   void __RPC_STUB ITypeInfo2_GetAllVarCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2803   HRESULT WINAPI ITypeInfo2_GetAllImplTypeCustData_Proxy(ITypeInfo2 *This,UINT index,CUSTDATA *pCustData);
   2804   void __RPC_STUB ITypeInfo2_GetAllImplTypeCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2805 #endif
   2806 /*****************************************************************************
   2807  * ITypeLib interface
   2808  */
   2809 #ifndef __ITypeLib_INTERFACE_DEFINED__
   2810 #define __ITypeLib_INTERFACE_DEFINED__
   2811 
   2812 typedef ITypeLib *LPTYPELIB;
   2813 typedef enum tagSYSKIND {
   2814     SYS_WIN16 = 0,
   2815     SYS_WIN32 = 1,
   2816     SYS_MAC = 2,
   2817     SYS_WIN64 = 3
   2818 } SYSKIND;
   2819 typedef enum tagLIBFLAGS {
   2820     LIBFLAG_FRESTRICTED = 0x1,
   2821     LIBFLAG_FCONTROL = 0x2,
   2822     LIBFLAG_FHIDDEN = 0x4,
   2823     LIBFLAG_FHASDISKIMAGE = 0x8
   2824 } LIBFLAGS;
   2825 typedef struct tagTLIBATTR {
   2826     GUID guid;
   2827     LCID lcid;
   2828     SYSKIND syskind;
   2829     WORD wMajorVerNum;
   2830     WORD wMinorVerNum;
   2831     WORD wLibFlags;
   2832 } TLIBATTR;
   2833 typedef struct tagTLIBATTR *LPTLIBATTR;
   2834 DEFINE_GUID(IID_ITypeLib, 0x00020402, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   2835 #if defined(__cplusplus) && !defined(CINTERFACE)
   2836 MIDL_INTERFACE("00020402-0000-0000-c000-000000000046")
   2837 ITypeLib : public IUnknown
   2838 {
   2839     virtual UINT STDMETHODCALLTYPE GetTypeInfoCount(
   2840         ) = 0;
   2841 
   2842     virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
   2843         UINT index,
   2844         ITypeInfo **ppTInfo) = 0;
   2845 
   2846     virtual HRESULT STDMETHODCALLTYPE GetTypeInfoType(
   2847         UINT index,
   2848         TYPEKIND *pTKind) = 0;
   2849 
   2850     virtual HRESULT STDMETHODCALLTYPE GetTypeInfoOfGuid(
   2851         REFGUID guid,
   2852         ITypeInfo **ppTinfo) = 0;
   2853 
   2854     virtual HRESULT STDMETHODCALLTYPE GetLibAttr(
   2855         TLIBATTR **ppTLibAttr) = 0;
   2856 
   2857     virtual HRESULT STDMETHODCALLTYPE GetTypeComp(
   2858         ITypeComp **ppTComp) = 0;
   2859 
   2860     virtual HRESULT STDMETHODCALLTYPE GetDocumentation(
   2861         INT index,
   2862         BSTR *pBstrName,
   2863         BSTR *pBstrDocString,
   2864         DWORD *pdwHelpContext,
   2865         BSTR *pBstrHelpFile) = 0;
   2866 
   2867     virtual HRESULT STDMETHODCALLTYPE IsName(
   2868         LPOLESTR szNameBuf,
   2869         ULONG lHashVal,
   2870         WINBOOL *pfName) = 0;
   2871 
   2872     virtual HRESULT STDMETHODCALLTYPE FindName(
   2873         LPOLESTR szNameBuf,
   2874         ULONG lHashVal,
   2875         ITypeInfo **ppTInfo,
   2876         MEMBERID *rgMemId,
   2877         USHORT *pcFound) = 0;
   2878 
   2879     virtual void STDMETHODCALLTYPE ReleaseTLibAttr(
   2880         TLIBATTR *pTLibAttr) = 0;
   2881 
   2882 };
   2883 #ifdef __CRT_UUID_DECL
   2884 __CRT_UUID_DECL(ITypeLib, 0x00020402, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   2885 #endif
   2886 #else
   2887 typedef struct ITypeLibVtbl {
   2888     BEGIN_INTERFACE
   2889 
   2890     /*** IUnknown methods ***/
   2891     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2892         ITypeLib* This,
   2893         REFIID riid,
   2894         void **ppvObject);
   2895 
   2896     ULONG (STDMETHODCALLTYPE *AddRef)(
   2897         ITypeLib* This);
   2898 
   2899     ULONG (STDMETHODCALLTYPE *Release)(
   2900         ITypeLib* This);
   2901 
   2902     /*** ITypeLib methods ***/
   2903     UINT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   2904         ITypeLib* This);
   2905 
   2906     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   2907         ITypeLib* This,
   2908         UINT index,
   2909         ITypeInfo **ppTInfo);
   2910 
   2911     HRESULT (STDMETHODCALLTYPE *GetTypeInfoType)(
   2912         ITypeLib* This,
   2913         UINT index,
   2914         TYPEKIND *pTKind);
   2915 
   2916     HRESULT (STDMETHODCALLTYPE *GetTypeInfoOfGuid)(
   2917         ITypeLib* This,
   2918         REFGUID guid,
   2919         ITypeInfo **ppTinfo);
   2920 
   2921     HRESULT (STDMETHODCALLTYPE *GetLibAttr)(
   2922         ITypeLib* This,
   2923         TLIBATTR **ppTLibAttr);
   2924 
   2925     HRESULT (STDMETHODCALLTYPE *GetTypeComp)(
   2926         ITypeLib* This,
   2927         ITypeComp **ppTComp);
   2928 
   2929     HRESULT (STDMETHODCALLTYPE *GetDocumentation)(
   2930         ITypeLib* This,
   2931         INT index,
   2932         BSTR *pBstrName,
   2933         BSTR *pBstrDocString,
   2934         DWORD *pdwHelpContext,
   2935         BSTR *pBstrHelpFile);
   2936 
   2937     HRESULT (STDMETHODCALLTYPE *IsName)(
   2938         ITypeLib* This,
   2939         LPOLESTR szNameBuf,
   2940         ULONG lHashVal,
   2941         WINBOOL *pfName);
   2942 
   2943     HRESULT (STDMETHODCALLTYPE *FindName)(
   2944         ITypeLib* This,
   2945         LPOLESTR szNameBuf,
   2946         ULONG lHashVal,
   2947         ITypeInfo **ppTInfo,
   2948         MEMBERID *rgMemId,
   2949         USHORT *pcFound);
   2950 
   2951     void (STDMETHODCALLTYPE *ReleaseTLibAttr)(
   2952         ITypeLib* This,
   2953         TLIBATTR *pTLibAttr);
   2954 
   2955     END_INTERFACE
   2956 } ITypeLibVtbl;
   2957 interface ITypeLib {
   2958     CONST_VTBL ITypeLibVtbl* lpVtbl;
   2959 };
   2960 
   2961 #ifdef COBJMACROS
   2962 #ifndef WIDL_C_INLINE_WRAPPERS
   2963 /*** IUnknown methods ***/
   2964 #define ITypeLib_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2965 #define ITypeLib_AddRef(This) (This)->lpVtbl->AddRef(This)
   2966 #define ITypeLib_Release(This) (This)->lpVtbl->Release(This)
   2967 /*** ITypeLib methods ***/
   2968 #define ITypeLib_GetTypeInfoCount(This) (This)->lpVtbl->GetTypeInfoCount(This)
   2969 #define ITypeLib_GetTypeInfo(This,index,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,index,ppTInfo)
   2970 #define ITypeLib_GetTypeInfoType(This,index,pTKind) (This)->lpVtbl->GetTypeInfoType(This,index,pTKind)
   2971 #define ITypeLib_GetTypeInfoOfGuid(This,guid,ppTinfo) (This)->lpVtbl->GetTypeInfoOfGuid(This,guid,ppTinfo)
   2972 #define ITypeLib_GetLibAttr(This,ppTLibAttr) (This)->lpVtbl->GetLibAttr(This,ppTLibAttr)
   2973 #define ITypeLib_GetTypeComp(This,ppTComp) (This)->lpVtbl->GetTypeComp(This,ppTComp)
   2974 #define ITypeLib_GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) (This)->lpVtbl->GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile)
   2975 #define ITypeLib_IsName(This,szNameBuf,lHashVal,pfName) (This)->lpVtbl->IsName(This,szNameBuf,lHashVal,pfName)
   2976 #define ITypeLib_FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound) (This)->lpVtbl->FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound)
   2977 #define ITypeLib_ReleaseTLibAttr(This,pTLibAttr) (This)->lpVtbl->ReleaseTLibAttr(This,pTLibAttr)
   2978 #else
   2979 /*** IUnknown methods ***/
   2980 static FORCEINLINE HRESULT ITypeLib_QueryInterface(ITypeLib* This,REFIID riid,void **ppvObject) {
   2981     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2982 }
   2983 static FORCEINLINE ULONG ITypeLib_AddRef(ITypeLib* This) {
   2984     return This->lpVtbl->AddRef(This);
   2985 }
   2986 static FORCEINLINE ULONG ITypeLib_Release(ITypeLib* This) {
   2987     return This->lpVtbl->Release(This);
   2988 }
   2989 /*** ITypeLib methods ***/
   2990 static FORCEINLINE UINT ITypeLib_GetTypeInfoCount(ITypeLib* This) {
   2991     return This->lpVtbl->GetTypeInfoCount(This);
   2992 }
   2993 static FORCEINLINE HRESULT ITypeLib_GetTypeInfo(ITypeLib* This,UINT index,ITypeInfo **ppTInfo) {
   2994     return This->lpVtbl->GetTypeInfo(This,index,ppTInfo);
   2995 }
   2996 static FORCEINLINE HRESULT ITypeLib_GetTypeInfoType(ITypeLib* This,UINT index,TYPEKIND *pTKind) {
   2997     return This->lpVtbl->GetTypeInfoType(This,index,pTKind);
   2998 }
   2999 static FORCEINLINE HRESULT ITypeLib_GetTypeInfoOfGuid(ITypeLib* This,REFGUID guid,ITypeInfo **ppTinfo) {
   3000     return This->lpVtbl->GetTypeInfoOfGuid(This,guid,ppTinfo);
   3001 }
   3002 static FORCEINLINE HRESULT ITypeLib_GetLibAttr(ITypeLib* This,TLIBATTR **ppTLibAttr) {
   3003     return This->lpVtbl->GetLibAttr(This,ppTLibAttr);
   3004 }
   3005 static FORCEINLINE HRESULT ITypeLib_GetTypeComp(ITypeLib* This,ITypeComp **ppTComp) {
   3006     return This->lpVtbl->GetTypeComp(This,ppTComp);
   3007 }
   3008 static FORCEINLINE HRESULT ITypeLib_GetDocumentation(ITypeLib* This,INT index,BSTR *pBstrName,BSTR *pBstrDocString,DWORD *pdwHelpContext,BSTR *pBstrHelpFile) {
   3009     return This->lpVtbl->GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile);
   3010 }
   3011 static FORCEINLINE HRESULT ITypeLib_IsName(ITypeLib* This,LPOLESTR szNameBuf,ULONG lHashVal,WINBOOL *pfName) {
   3012     return This->lpVtbl->IsName(This,szNameBuf,lHashVal,pfName);
   3013 }
   3014 static FORCEINLINE HRESULT ITypeLib_FindName(ITypeLib* This,LPOLESTR szNameBuf,ULONG lHashVal,ITypeInfo **ppTInfo,MEMBERID *rgMemId,USHORT *pcFound) {
   3015     return This->lpVtbl->FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound);
   3016 }
   3017 static FORCEINLINE void ITypeLib_ReleaseTLibAttr(ITypeLib* This,TLIBATTR *pTLibAttr) {
   3018     This->lpVtbl->ReleaseTLibAttr(This,pTLibAttr);
   3019 }
   3020 #endif
   3021 #endif
   3022 
   3023 #endif
   3024 
   3025 HRESULT STDMETHODCALLTYPE ITypeLib_RemoteGetTypeInfoCount_Proxy(
   3026     ITypeLib* This,
   3027     UINT *pcTInfo);
   3028 void __RPC_STUB ITypeLib_RemoteGetTypeInfoCount_Stub(
   3029     IRpcStubBuffer* This,
   3030     IRpcChannelBuffer* pRpcChannelBuffer,
   3031     PRPC_MESSAGE pRpcMessage,
   3032     DWORD* pdwStubPhase);
   3033 HRESULT STDMETHODCALLTYPE ITypeLib_GetTypeInfo_Proxy(
   3034     ITypeLib* This,
   3035     UINT index,
   3036     ITypeInfo **ppTInfo);
   3037 void __RPC_STUB ITypeLib_GetTypeInfo_Stub(
   3038     IRpcStubBuffer* This,
   3039     IRpcChannelBuffer* pRpcChannelBuffer,
   3040     PRPC_MESSAGE pRpcMessage,
   3041     DWORD* pdwStubPhase);
   3042 HRESULT STDMETHODCALLTYPE ITypeLib_GetTypeInfoType_Proxy(
   3043     ITypeLib* This,
   3044     UINT index,
   3045     TYPEKIND *pTKind);
   3046 void __RPC_STUB ITypeLib_GetTypeInfoType_Stub(
   3047     IRpcStubBuffer* This,
   3048     IRpcChannelBuffer* pRpcChannelBuffer,
   3049     PRPC_MESSAGE pRpcMessage,
   3050     DWORD* pdwStubPhase);
   3051 HRESULT STDMETHODCALLTYPE ITypeLib_GetTypeInfoOfGuid_Proxy(
   3052     ITypeLib* This,
   3053     REFGUID guid,
   3054     ITypeInfo **ppTinfo);
   3055 void __RPC_STUB ITypeLib_GetTypeInfoOfGuid_Stub(
   3056     IRpcStubBuffer* This,
   3057     IRpcChannelBuffer* pRpcChannelBuffer,
   3058     PRPC_MESSAGE pRpcMessage,
   3059     DWORD* pdwStubPhase);
   3060 HRESULT STDMETHODCALLTYPE ITypeLib_RemoteGetLibAttr_Proxy(
   3061     ITypeLib* This,
   3062     LPTLIBATTR *ppTLibAttr,
   3063     CLEANLOCALSTORAGE *pDummy);
   3064 void __RPC_STUB ITypeLib_RemoteGetLibAttr_Stub(
   3065     IRpcStubBuffer* This,
   3066     IRpcChannelBuffer* pRpcChannelBuffer,
   3067     PRPC_MESSAGE pRpcMessage,
   3068     DWORD* pdwStubPhase);
   3069 HRESULT STDMETHODCALLTYPE ITypeLib_GetTypeComp_Proxy(
   3070     ITypeLib* This,
   3071     ITypeComp **ppTComp);
   3072 void __RPC_STUB ITypeLib_GetTypeComp_Stub(
   3073     IRpcStubBuffer* This,
   3074     IRpcChannelBuffer* pRpcChannelBuffer,
   3075     PRPC_MESSAGE pRpcMessage,
   3076     DWORD* pdwStubPhase);
   3077 HRESULT STDMETHODCALLTYPE ITypeLib_RemoteGetDocumentation_Proxy(
   3078     ITypeLib* This,
   3079     INT index,
   3080     DWORD refPtrFlags,
   3081     BSTR *pBstrName,
   3082     BSTR *pBstrDocString,
   3083     DWORD *pdwHelpContext,
   3084     BSTR *pBstrHelpFile);
   3085 void __RPC_STUB ITypeLib_RemoteGetDocumentation_Stub(
   3086     IRpcStubBuffer* This,
   3087     IRpcChannelBuffer* pRpcChannelBuffer,
   3088     PRPC_MESSAGE pRpcMessage,
   3089     DWORD* pdwStubPhase);
   3090 HRESULT STDMETHODCALLTYPE ITypeLib_RemoteIsName_Proxy(
   3091     ITypeLib* This,
   3092     LPOLESTR szNameBuf,
   3093     ULONG lHashVal,
   3094     WINBOOL *pfName,
   3095     BSTR *pBstrLibName);
   3096 void __RPC_STUB ITypeLib_RemoteIsName_Stub(
   3097     IRpcStubBuffer* This,
   3098     IRpcChannelBuffer* pRpcChannelBuffer,
   3099     PRPC_MESSAGE pRpcMessage,
   3100     DWORD* pdwStubPhase);
   3101 HRESULT STDMETHODCALLTYPE ITypeLib_RemoteFindName_Proxy(
   3102     ITypeLib* This,
   3103     LPOLESTR szNameBuf,
   3104     ULONG lHashVal,
   3105     ITypeInfo **ppTInfo,
   3106     MEMBERID *rgMemId,
   3107     USHORT *pcFound,
   3108     BSTR *pBstrLibName);
   3109 void __RPC_STUB ITypeLib_RemoteFindName_Stub(
   3110     IRpcStubBuffer* This,
   3111     IRpcChannelBuffer* pRpcChannelBuffer,
   3112     PRPC_MESSAGE pRpcMessage,
   3113     DWORD* pdwStubPhase);
   3114 HRESULT STDMETHODCALLTYPE ITypeLib_LocalReleaseTLibAttr_Proxy(
   3115     ITypeLib* This);
   3116 void __RPC_STUB ITypeLib_LocalReleaseTLibAttr_Stub(
   3117     IRpcStubBuffer* This,
   3118     IRpcChannelBuffer* pRpcChannelBuffer,
   3119     PRPC_MESSAGE pRpcMessage,
   3120     DWORD* pdwStubPhase);
   3121 UINT CALLBACK ITypeLib_GetTypeInfoCount_Proxy(
   3122     ITypeLib* This);
   3123 HRESULT __RPC_STUB ITypeLib_GetTypeInfoCount_Stub(
   3124     ITypeLib* This,
   3125     UINT *pcTInfo);
   3126 HRESULT CALLBACK ITypeLib_GetLibAttr_Proxy(
   3127     ITypeLib* This,
   3128     TLIBATTR **ppTLibAttr);
   3129 HRESULT __RPC_STUB ITypeLib_GetLibAttr_Stub(
   3130     ITypeLib* This,
   3131     LPTLIBATTR *ppTLibAttr,
   3132     CLEANLOCALSTORAGE *pDummy);
   3133 HRESULT CALLBACK ITypeLib_GetDocumentation_Proxy(
   3134     ITypeLib* This,
   3135     INT index,
   3136     BSTR *pBstrName,
   3137     BSTR *pBstrDocString,
   3138     DWORD *pdwHelpContext,
   3139     BSTR *pBstrHelpFile);
   3140 HRESULT __RPC_STUB ITypeLib_GetDocumentation_Stub(
   3141     ITypeLib* This,
   3142     INT index,
   3143     DWORD refPtrFlags,
   3144     BSTR *pBstrName,
   3145     BSTR *pBstrDocString,
   3146     DWORD *pdwHelpContext,
   3147     BSTR *pBstrHelpFile);
   3148 HRESULT CALLBACK ITypeLib_IsName_Proxy(
   3149     ITypeLib* This,
   3150     LPOLESTR szNameBuf,
   3151     ULONG lHashVal,
   3152     WINBOOL *pfName);
   3153 HRESULT __RPC_STUB ITypeLib_IsName_Stub(
   3154     ITypeLib* This,
   3155     LPOLESTR szNameBuf,
   3156     ULONG lHashVal,
   3157     WINBOOL *pfName,
   3158     BSTR *pBstrLibName);
   3159 HRESULT CALLBACK ITypeLib_FindName_Proxy(
   3160     ITypeLib* This,
   3161     LPOLESTR szNameBuf,
   3162     ULONG lHashVal,
   3163     ITypeInfo **ppTInfo,
   3164     MEMBERID *rgMemId,
   3165     USHORT *pcFound);
   3166 HRESULT __RPC_STUB ITypeLib_FindName_Stub(
   3167     ITypeLib* This,
   3168     LPOLESTR szNameBuf,
   3169     ULONG lHashVal,
   3170     ITypeInfo **ppTInfo,
   3171     MEMBERID *rgMemId,
   3172     USHORT *pcFound,
   3173     BSTR *pBstrLibName);
   3174 void CALLBACK ITypeLib_ReleaseTLibAttr_Proxy(
   3175     ITypeLib* This,
   3176     TLIBATTR *pTLibAttr);
   3177 HRESULT __RPC_STUB ITypeLib_ReleaseTLibAttr_Stub(
   3178     ITypeLib* This);
   3179 
   3180 #endif  /* __ITypeLib_INTERFACE_DEFINED__ */
   3181 
   3182 #ifndef __ITypeLib2_INTERFACE_DEFINED__
   3183 #define __ITypeLib2_INTERFACE_DEFINED__
   3184   typedef ITypeLib2 *LPTYPELIB2;
   3185 
   3186   EXTERN_C const IID IID_ITypeLib2;
   3187 #if defined(__cplusplus) && !defined(CINTERFACE)
   3188   struct ITypeLib2 : public ITypeLib {
   3189   public:
   3190     virtual HRESULT WINAPI GetCustData(REFGUID guid,VARIANT *pVarVal) = 0;
   3191     virtual HRESULT WINAPI GetLibStatistics(ULONG *pcUniqueNames,ULONG *pcchUniqueNames) = 0;
   3192     virtual HRESULT WINAPI GetDocumentation2(INT index,LCID lcid,BSTR *pbstrHelpString,DWORD *pdwHelpStringContext,BSTR *pbstrHelpStringDll) = 0;
   3193     virtual HRESULT WINAPI GetAllCustData(CUSTDATA *pCustData) = 0;
   3194   };
   3195 #else
   3196   typedef struct ITypeLib2Vtbl {
   3197     BEGIN_INTERFACE
   3198       HRESULT (WINAPI *QueryInterface)(ITypeLib2 *This,REFIID riid,void **ppvObject);
   3199       ULONG (WINAPI *AddRef)(ITypeLib2 *This);
   3200       ULONG (WINAPI *Release)(ITypeLib2 *This);
   3201       UINT (WINAPI *GetTypeInfoCount)(ITypeLib2 *This);
   3202       HRESULT (WINAPI *GetTypeInfo)(ITypeLib2 *This,UINT index,ITypeInfo **ppTInfo);
   3203       HRESULT (WINAPI *GetTypeInfoType)(ITypeLib2 *This,UINT index,TYPEKIND *pTKind);
   3204       HRESULT (WINAPI *GetTypeInfoOfGuid)(ITypeLib2 *This,REFGUID guid,ITypeInfo **ppTinfo);
   3205       HRESULT (WINAPI *GetLibAttr)(ITypeLib2 *This,TLIBATTR **ppTLibAttr);
   3206       HRESULT (WINAPI *GetTypeComp)(ITypeLib2 *This,ITypeComp **ppTComp);
   3207       HRESULT (WINAPI *GetDocumentation)(ITypeLib2 *This,INT index,BSTR *pBstrName,BSTR *pBstrDocString,DWORD *pdwHelpContext,BSTR *pBstrHelpFile);
   3208       HRESULT (WINAPI *IsName)(ITypeLib2 *This,LPOLESTR szNameBuf,ULONG lHashVal,WINBOOL *pfName);
   3209       HRESULT (WINAPI *FindName)(ITypeLib2 *This,LPOLESTR szNameBuf,ULONG lHashVal,ITypeInfo **ppTInfo,MEMBERID *rgMemId,USHORT *pcFound);
   3210       void (WINAPI *ReleaseTLibAttr)(ITypeLib2 *This,TLIBATTR *pTLibAttr);
   3211       HRESULT (WINAPI *GetCustData)(ITypeLib2 *This,REFGUID guid,VARIANT *pVarVal);
   3212       HRESULT (WINAPI *GetLibStatistics)(ITypeLib2 *This,ULONG *pcUniqueNames,ULONG *pcchUniqueNames);
   3213       HRESULT (WINAPI *GetDocumentation2)(ITypeLib2 *This,INT index,LCID lcid,BSTR *pbstrHelpString,DWORD *pdwHelpStringContext,BSTR *pbstrHelpStringDll);
   3214       HRESULT (WINAPI *GetAllCustData)(ITypeLib2 *This,CUSTDATA *pCustData);
   3215     END_INTERFACE
   3216   } ITypeLib2Vtbl;
   3217   struct ITypeLib2 {
   3218     CONST_VTBL struct ITypeLib2Vtbl *lpVtbl;
   3219   };
   3220 #ifdef COBJMACROS
   3221 #define ITypeLib2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3222 #define ITypeLib2_AddRef(This) (This)->lpVtbl->AddRef(This)
   3223 #define ITypeLib2_Release(This) (This)->lpVtbl->Release(This)
   3224 #define ITypeLib2_GetTypeInfoCount(This) (This)->lpVtbl->GetTypeInfoCount(This)
   3225 #define ITypeLib2_GetTypeInfo(This,index,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,index,ppTInfo)
   3226 #define ITypeLib2_GetTypeInfoType(This,index,pTKind) (This)->lpVtbl->GetTypeInfoType(This,index,pTKind)
   3227 #define ITypeLib2_GetTypeInfoOfGuid(This,guid,ppTinfo) (This)->lpVtbl->GetTypeInfoOfGuid(This,guid,ppTinfo)
   3228 #define ITypeLib2_GetLibAttr(This,ppTLibAttr) (This)->lpVtbl->GetLibAttr(This,ppTLibAttr)
   3229 #define ITypeLib2_GetTypeComp(This,ppTComp) (This)->lpVtbl->GetTypeComp(This,ppTComp)
   3230 #define ITypeLib2_GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) (This)->lpVtbl->GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile)
   3231 #define ITypeLib2_IsName(This,szNameBuf,lHashVal,pfName) (This)->lpVtbl->IsName(This,szNameBuf,lHashVal,pfName)
   3232 #define ITypeLib2_FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound) (This)->lpVtbl->FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound)
   3233 #define ITypeLib2_ReleaseTLibAttr(This,pTLibAttr) (This)->lpVtbl->ReleaseTLibAttr(This,pTLibAttr)
   3234 #define ITypeLib2_GetCustData(This,guid,pVarVal) (This)->lpVtbl->GetCustData(This,guid,pVarVal)
   3235 #define ITypeLib2_GetLibStatistics(This,pcUniqueNames,pcchUniqueNames) (This)->lpVtbl->GetLibStatistics(This,pcUniqueNames,pcchUniqueNames)
   3236 #define ITypeLib2_GetDocumentation2(This,index,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll) (This)->lpVtbl->GetDocumentation2(This,index,lcid,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll)
   3237 #define ITypeLib2_GetAllCustData(This,pCustData) (This)->lpVtbl->GetAllCustData(This,pCustData)
   3238 #endif
   3239 #endif
   3240   HRESULT WINAPI ITypeLib2_GetCustData_Proxy(ITypeLib2 *This,REFGUID guid,VARIANT *pVarVal);
   3241   void __RPC_STUB ITypeLib2_GetCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3242   HRESULT WINAPI ITypeLib2_RemoteGetLibStatistics_Proxy(ITypeLib2 *This,ULONG *pcUniqueNames,ULONG *pcchUniqueNames);
   3243   void __RPC_STUB ITypeLib2_RemoteGetLibStatistics_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3244   HRESULT WINAPI ITypeLib2_RemoteGetDocumentation2_Proxy(ITypeLib2 *This,INT index,LCID lcid,DWORD refPtrFlags,BSTR *pbstrHelpString,DWORD *pdwHelpStringContext,BSTR *pbstrHelpStringDll);
   3245   void __RPC_STUB ITypeLib2_RemoteGetDocumentation2_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3246   HRESULT WINAPI ITypeLib2_GetAllCustData_Proxy(ITypeLib2 *This,CUSTDATA *pCustData);
   3247   void __RPC_STUB ITypeLib2_GetAllCustData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3248 #endif
   3249 
   3250 #ifndef __ITypeChangeEvents_INTERFACE_DEFINED__
   3251 #define __ITypeChangeEvents_INTERFACE_DEFINED__
   3252   typedef ITypeChangeEvents *LPTYPECHANGEEVENTS;
   3253 
   3254   typedef enum tagCHANGEKIND {
   3255     CHANGEKIND_ADDMEMBER = 0,
   3256     CHANGEKIND_DELETEMEMBER,CHANGEKIND_SETNAMES,CHANGEKIND_SETDOCUMENTATION,
   3257     CHANGEKIND_GENERAL,CHANGEKIND_INVALIDATE,CHANGEKIND_CHANGEFAILED,
   3258     CHANGEKIND_MAX
   3259   } CHANGEKIND;
   3260 
   3261   EXTERN_C const IID IID_ITypeChangeEvents;
   3262 #if defined(__cplusplus) && !defined(CINTERFACE)
   3263   struct ITypeChangeEvents : public IUnknown {
   3264   public:
   3265     virtual HRESULT WINAPI RequestTypeChange(CHANGEKIND changeKind,ITypeInfo *pTInfoBefore,LPOLESTR pStrName,INT *pfCancel) = 0;
   3266     virtual HRESULT WINAPI AfterTypeChange(CHANGEKIND changeKind,ITypeInfo *pTInfoAfter,LPOLESTR pStrName) = 0;
   3267   };
   3268 #else
   3269   typedef struct ITypeChangeEventsVtbl {
   3270     BEGIN_INTERFACE
   3271       HRESULT (WINAPI *QueryInterface)(ITypeChangeEvents *This,REFIID riid,void **ppvObject);
   3272       ULONG (WINAPI *AddRef)(ITypeChangeEvents *This);
   3273       ULONG (WINAPI *Release)(ITypeChangeEvents *This);
   3274       HRESULT (WINAPI *RequestTypeChange)(ITypeChangeEvents *This,CHANGEKIND changeKind,ITypeInfo *pTInfoBefore,LPOLESTR pStrName,INT *pfCancel);
   3275       HRESULT (WINAPI *AfterTypeChange)(ITypeChangeEvents *This,CHANGEKIND changeKind,ITypeInfo *pTInfoAfter,LPOLESTR pStrName);
   3276     END_INTERFACE
   3277   } ITypeChangeEventsVtbl;
   3278   struct ITypeChangeEvents {
   3279     CONST_VTBL struct ITypeChangeEventsVtbl *lpVtbl;
   3280   };
   3281 #ifdef COBJMACROS
   3282 #define ITypeChangeEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3283 #define ITypeChangeEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
   3284 #define ITypeChangeEvents_Release(This) (This)->lpVtbl->Release(This)
   3285 #define ITypeChangeEvents_RequestTypeChange(This,changeKind,pTInfoBefore,pStrName,pfCancel) (This)->lpVtbl->RequestTypeChange(This,changeKind,pTInfoBefore,pStrName,pfCancel)
   3286 #define ITypeChangeEvents_AfterTypeChange(This,changeKind,pTInfoAfter,pStrName) (This)->lpVtbl->AfterTypeChange(This,changeKind,pTInfoAfter,pStrName)
   3287 #endif
   3288 #endif
   3289   HRESULT WINAPI ITypeChangeEvents_RequestTypeChange_Proxy(ITypeChangeEvents *This,CHANGEKIND changeKind,ITypeInfo *pTInfoBefore,LPOLESTR pStrName,INT *pfCancel);
   3290   void __RPC_STUB ITypeChangeEvents_RequestTypeChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3291   HRESULT WINAPI ITypeChangeEvents_AfterTypeChange_Proxy(ITypeChangeEvents *This,CHANGEKIND changeKind,ITypeInfo *pTInfoAfter,LPOLESTR pStrName);
   3292   void __RPC_STUB ITypeChangeEvents_AfterTypeChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3293 #endif
   3294 
   3295 #ifndef __IErrorInfo_INTERFACE_DEFINED__
   3296 #define __IErrorInfo_INTERFACE_DEFINED__
   3297   typedef IErrorInfo *LPERRORINFO;
   3298 
   3299   EXTERN_C const IID IID_IErrorInfo;
   3300 #if defined(__cplusplus) && !defined(CINTERFACE)
   3301   struct IErrorInfo : public IUnknown {
   3302   public:
   3303     virtual HRESULT WINAPI GetGUID(GUID *pGUID) = 0;
   3304     virtual HRESULT WINAPI GetSource(BSTR *pBstrSource) = 0;
   3305     virtual HRESULT WINAPI GetDescription(BSTR *pBstrDescription) = 0;
   3306     virtual HRESULT WINAPI GetHelpFile(BSTR *pBstrHelpFile) = 0;
   3307     virtual HRESULT WINAPI GetHelpContext(DWORD *pdwHelpContext) = 0;
   3308   };
   3309 #else
   3310   typedef struct IErrorInfoVtbl {
   3311     BEGIN_INTERFACE
   3312       HRESULT (WINAPI *QueryInterface)(IErrorInfo *This,REFIID riid,void **ppvObject);
   3313       ULONG (WINAPI *AddRef)(IErrorInfo *This);
   3314       ULONG (WINAPI *Release)(IErrorInfo *This);
   3315       HRESULT (WINAPI *GetGUID)(IErrorInfo *This,GUID *pGUID);
   3316       HRESULT (WINAPI *GetSource)(IErrorInfo *This,BSTR *pBstrSource);
   3317       HRESULT (WINAPI *GetDescription)(IErrorInfo *This,BSTR *pBstrDescription);
   3318       HRESULT (WINAPI *GetHelpFile)(IErrorInfo *This,BSTR *pBstrHelpFile);
   3319       HRESULT (WINAPI *GetHelpContext)(IErrorInfo *This,DWORD *pdwHelpContext);
   3320     END_INTERFACE
   3321   } IErrorInfoVtbl;
   3322   struct IErrorInfo {
   3323     CONST_VTBL struct IErrorInfoVtbl *lpVtbl;
   3324   };
   3325 #ifdef COBJMACROS
   3326 #define IErrorInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3327 #define IErrorInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   3328 #define IErrorInfo_Release(This) (This)->lpVtbl->Release(This)
   3329 #define IErrorInfo_GetGUID(This,pGUID) (This)->lpVtbl->GetGUID(This,pGUID)
   3330 #define IErrorInfo_GetSource(This,pBstrSource) (This)->lpVtbl->GetSource(This,pBstrSource)
   3331 #define IErrorInfo_GetDescription(This,pBstrDescription) (This)->lpVtbl->GetDescription(This,pBstrDescription)
   3332 #define IErrorInfo_GetHelpFile(This,pBstrHelpFile) (This)->lpVtbl->GetHelpFile(This,pBstrHelpFile)
   3333 #define IErrorInfo_GetHelpContext(This,pdwHelpContext) (This)->lpVtbl->GetHelpContext(This,pdwHelpContext)
   3334 #endif
   3335 #endif
   3336   HRESULT WINAPI IErrorInfo_GetGUID_Proxy(IErrorInfo *This,GUID *pGUID);
   3337   void __RPC_STUB IErrorInfo_GetGUID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3338   HRESULT WINAPI IErrorInfo_GetSource_Proxy(IErrorInfo *This,BSTR *pBstrSource);
   3339   void __RPC_STUB IErrorInfo_GetSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3340   HRESULT WINAPI IErrorInfo_GetDescription_Proxy(IErrorInfo *This,BSTR *pBstrDescription);
   3341   void __RPC_STUB IErrorInfo_GetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3342   HRESULT WINAPI IErrorInfo_GetHelpFile_Proxy(IErrorInfo *This,BSTR *pBstrHelpFile);
   3343   void __RPC_STUB IErrorInfo_GetHelpFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3344   HRESULT WINAPI IErrorInfo_GetHelpContext_Proxy(IErrorInfo *This,DWORD *pdwHelpContext);
   3345   void __RPC_STUB IErrorInfo_GetHelpContext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3346 #endif
   3347 
   3348 #ifndef __ICreateErrorInfo_INTERFACE_DEFINED__
   3349 #define __ICreateErrorInfo_INTERFACE_DEFINED__
   3350   typedef ICreateErrorInfo *LPCREATEERRORINFO;
   3351 
   3352   EXTERN_C const IID IID_ICreateErrorInfo;
   3353 #if defined(__cplusplus) && !defined(CINTERFACE)
   3354   struct ICreateErrorInfo : public IUnknown {
   3355   public:
   3356     virtual HRESULT WINAPI SetGUID(REFGUID rguid) = 0;
   3357     virtual HRESULT WINAPI SetSource(LPOLESTR szSource) = 0;
   3358     virtual HRESULT WINAPI SetDescription(LPOLESTR szDescription) = 0;
   3359     virtual HRESULT WINAPI SetHelpFile(LPOLESTR szHelpFile) = 0;
   3360     virtual HRESULT WINAPI SetHelpContext(DWORD dwHelpContext) = 0;
   3361   };
   3362 #else
   3363   typedef struct ICreateErrorInfoVtbl {
   3364     BEGIN_INTERFACE
   3365       HRESULT (WINAPI *QueryInterface)(ICreateErrorInfo *This,REFIID riid,void **ppvObject);
   3366       ULONG (WINAPI *AddRef)(ICreateErrorInfo *This);
   3367       ULONG (WINAPI *Release)(ICreateErrorInfo *This);
   3368       HRESULT (WINAPI *SetGUID)(ICreateErrorInfo *This,REFGUID rguid);
   3369       HRESULT (WINAPI *SetSource)(ICreateErrorInfo *This,LPOLESTR szSource);
   3370       HRESULT (WINAPI *SetDescription)(ICreateErrorInfo *This,LPOLESTR szDescription);
   3371       HRESULT (WINAPI *SetHelpFile)(ICreateErrorInfo *This,LPOLESTR szHelpFile);
   3372       HRESULT (WINAPI *SetHelpContext)(ICreateErrorInfo *This,DWORD dwHelpContext);
   3373     END_INTERFACE
   3374   } ICreateErrorInfoVtbl;
   3375   struct ICreateErrorInfo {
   3376     CONST_VTBL struct ICreateErrorInfoVtbl *lpVtbl;
   3377   };
   3378 #ifdef COBJMACROS
   3379 #define ICreateErrorInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3380 #define ICreateErrorInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   3381 #define ICreateErrorInfo_Release(This) (This)->lpVtbl->Release(This)
   3382 #define ICreateErrorInfo_SetGUID(This,rguid) (This)->lpVtbl->SetGUID(This,rguid)
   3383 #define ICreateErrorInfo_SetSource(This,szSource) (This)->lpVtbl->SetSource(This,szSource)
   3384 #define ICreateErrorInfo_SetDescription(This,szDescription) (This)->lpVtbl->SetDescription(This,szDescription)
   3385 #define ICreateErrorInfo_SetHelpFile(This,szHelpFile) (This)->lpVtbl->SetHelpFile(This,szHelpFile)
   3386 #define ICreateErrorInfo_SetHelpContext(This,dwHelpContext) (This)->lpVtbl->SetHelpContext(This,dwHelpContext)
   3387 #endif
   3388 #endif
   3389   HRESULT WINAPI ICreateErrorInfo_SetGUID_Proxy(ICreateErrorInfo *This,REFGUID rguid);
   3390   void __RPC_STUB ICreateErrorInfo_SetGUID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3391   HRESULT WINAPI ICreateErrorInfo_SetSource_Proxy(ICreateErrorInfo *This,LPOLESTR szSource);
   3392   void __RPC_STUB ICreateErrorInfo_SetSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3393   HRESULT WINAPI ICreateErrorInfo_SetDescription_Proxy(ICreateErrorInfo *This,LPOLESTR szDescription);
   3394   void __RPC_STUB ICreateErrorInfo_SetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3395   HRESULT WINAPI ICreateErrorInfo_SetHelpFile_Proxy(ICreateErrorInfo *This,LPOLESTR szHelpFile);
   3396   void __RPC_STUB ICreateErrorInfo_SetHelpFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3397   HRESULT WINAPI ICreateErrorInfo_SetHelpContext_Proxy(ICreateErrorInfo *This,DWORD dwHelpContext);
   3398   void __RPC_STUB ICreateErrorInfo_SetHelpContext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3399 #endif
   3400 
   3401 #ifndef __ISupportErrorInfo_INTERFACE_DEFINED__
   3402 #define __ISupportErrorInfo_INTERFACE_DEFINED__
   3403   typedef ISupportErrorInfo *LPSUPPORTERRORINFO;
   3404 
   3405   EXTERN_C const IID IID_ISupportErrorInfo;
   3406 #if defined(__cplusplus) && !defined(CINTERFACE)
   3407   struct ISupportErrorInfo : public IUnknown {
   3408   public:
   3409     virtual HRESULT WINAPI InterfaceSupportsErrorInfo(REFIID riid) = 0;
   3410   };
   3411 #else
   3412   typedef struct ISupportErrorInfoVtbl {
   3413     BEGIN_INTERFACE
   3414       HRESULT (WINAPI *QueryInterface)(ISupportErrorInfo *This,REFIID riid,void **ppvObject);
   3415       ULONG (WINAPI *AddRef)(ISupportErrorInfo *This);
   3416       ULONG (WINAPI *Release)(ISupportErrorInfo *This);
   3417       HRESULT (WINAPI *InterfaceSupportsErrorInfo)(ISupportErrorInfo *This,REFIID riid);
   3418     END_INTERFACE
   3419   } ISupportErrorInfoVtbl;
   3420   struct ISupportErrorInfo {
   3421     CONST_VTBL struct ISupportErrorInfoVtbl *lpVtbl;
   3422   };
   3423 #ifdef COBJMACROS
   3424 #define ISupportErrorInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3425 #define ISupportErrorInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   3426 #define ISupportErrorInfo_Release(This) (This)->lpVtbl->Release(This)
   3427 #define ISupportErrorInfo_InterfaceSupportsErrorInfo(This,riid) (This)->lpVtbl->InterfaceSupportsErrorInfo(This,riid)
   3428 #endif
   3429 #endif
   3430   HRESULT WINAPI ISupportErrorInfo_InterfaceSupportsErrorInfo_Proxy(ISupportErrorInfo *This,REFIID riid);
   3431   void __RPC_STUB ISupportErrorInfo_InterfaceSupportsErrorInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3432 #endif
   3433 
   3434 #ifndef __ITypeFactory_INTERFACE_DEFINED__
   3435 #define __ITypeFactory_INTERFACE_DEFINED__
   3436   EXTERN_C const IID IID_ITypeFactory;
   3437 #if defined(__cplusplus) && !defined(CINTERFACE)
   3438   struct ITypeFactory : public IUnknown {
   3439   public:
   3440     virtual HRESULT WINAPI CreateFromTypeInfo(ITypeInfo *pTypeInfo,REFIID riid,IUnknown **ppv) = 0;
   3441   };
   3442 #else
   3443   typedef struct ITypeFactoryVtbl {
   3444     BEGIN_INTERFACE
   3445       HRESULT (WINAPI *QueryInterface)(ITypeFactory *This,REFIID riid,void **ppvObject);
   3446       ULONG (WINAPI *AddRef)(ITypeFactory *This);
   3447       ULONG (WINAPI *Release)(ITypeFactory *This);
   3448       HRESULT (WINAPI *CreateFromTypeInfo)(ITypeFactory *This,ITypeInfo *pTypeInfo,REFIID riid,IUnknown **ppv);
   3449     END_INTERFACE
   3450   } ITypeFactoryVtbl;
   3451   struct ITypeFactory {
   3452     CONST_VTBL struct ITypeFactoryVtbl *lpVtbl;
   3453   };
   3454 #ifdef COBJMACROS
   3455 #define ITypeFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3456 #define ITypeFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
   3457 #define ITypeFactory_Release(This) (This)->lpVtbl->Release(This)
   3458 #define ITypeFactory_CreateFromTypeInfo(This,pTypeInfo,riid,ppv) (This)->lpVtbl->CreateFromTypeInfo(This,pTypeInfo,riid,ppv)
   3459 #endif
   3460 #endif
   3461   HRESULT WINAPI ITypeFactory_CreateFromTypeInfo_Proxy(ITypeFactory *This,ITypeInfo *pTypeInfo,REFIID riid,IUnknown **ppv);
   3462   void __RPC_STUB ITypeFactory_CreateFromTypeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3463 #endif
   3464 
   3465 #ifndef __ITypeMarshal_INTERFACE_DEFINED__
   3466 #define __ITypeMarshal_INTERFACE_DEFINED__
   3467   EXTERN_C const IID IID_ITypeMarshal;
   3468 #if defined(__cplusplus) && !defined(CINTERFACE)
   3469   struct ITypeMarshal : public IUnknown {
   3470   public:
   3471     virtual HRESULT WINAPI Size(PVOID pvType,DWORD dwDestContext,PVOID pvDestContext,ULONG *pSize) = 0;
   3472     virtual HRESULT WINAPI Marshal(PVOID pvType,DWORD dwDestContext,PVOID pvDestContext,ULONG cbBufferLength,BYTE *pBuffer,ULONG *pcbWritten) = 0;
   3473     virtual HRESULT WINAPI Unmarshal(PVOID pvType,DWORD dwFlags,ULONG cbBufferLength,BYTE *pBuffer,ULONG *pcbRead) = 0;
   3474     virtual HRESULT WINAPI Free(PVOID pvType) = 0;
   3475   };
   3476 #else
   3477   typedef struct ITypeMarshalVtbl {
   3478     BEGIN_INTERFACE
   3479       HRESULT (WINAPI *QueryInterface)(ITypeMarshal *This,REFIID riid,void **ppvObject);
   3480       ULONG (WINAPI *AddRef)(ITypeMarshal *This);
   3481       ULONG (WINAPI *Release)(ITypeMarshal *This);
   3482       HRESULT (WINAPI *Size)(ITypeMarshal *This,PVOID pvType,DWORD dwDestContext,PVOID pvDestContext,ULONG *pSize);
   3483       HRESULT (WINAPI *Marshal)(ITypeMarshal *This,PVOID pvType,DWORD dwDestContext,PVOID pvDestContext,ULONG cbBufferLength,BYTE *pBuffer,ULONG *pcbWritten);
   3484       HRESULT (WINAPI *Unmarshal)(ITypeMarshal *This,PVOID pvType,DWORD dwFlags,ULONG cbBufferLength,BYTE *pBuffer,ULONG *pcbRead);
   3485       HRESULT (WINAPI *Free)(ITypeMarshal *This,PVOID pvType);
   3486     END_INTERFACE
   3487   } ITypeMarshalVtbl;
   3488   struct ITypeMarshal {
   3489     CONST_VTBL struct ITypeMarshalVtbl *lpVtbl;
   3490   };
   3491 #ifdef COBJMACROS
   3492 #define ITypeMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3493 #define ITypeMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
   3494 #define ITypeMarshal_Release(This) (This)->lpVtbl->Release(This)
   3495 #define ITypeMarshal_Size(This,pvType,dwDestContext,pvDestContext,pSize) (This)->lpVtbl->Size(This,pvType,dwDestContext,pvDestContext,pSize)
   3496 #define ITypeMarshal_Marshal(This,pvType,dwDestContext,pvDestContext,cbBufferLength,pBuffer,pcbWritten) (This)->lpVtbl->Marshal(This,pvType,dwDestContext,pvDestContext,cbBufferLength,pBuffer,pcbWritten)
   3497 #define ITypeMarshal_Unmarshal(This,pvType,dwFlags,cbBufferLength,pBuffer,pcbRead) (This)->lpVtbl->Unmarshal(This,pvType,dwFlags,cbBufferLength,pBuffer,pcbRead)
   3498 #define ITypeMarshal_Free(This,pvType) (This)->lpVtbl->Free(This,pvType)
   3499 #endif
   3500 #endif
   3501   HRESULT WINAPI ITypeMarshal_Size_Proxy(ITypeMarshal *This,PVOID pvType,DWORD dwDestContext,PVOID pvDestContext,ULONG *pSize);
   3502   void __RPC_STUB ITypeMarshal_Size_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3503   HRESULT WINAPI ITypeMarshal_Marshal_Proxy(ITypeMarshal *This,PVOID pvType,DWORD dwDestContext,PVOID pvDestContext,ULONG cbBufferLength,BYTE *pBuffer,ULONG *pcbWritten);
   3504   void __RPC_STUB ITypeMarshal_Marshal_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3505   HRESULT WINAPI ITypeMarshal_Unmarshal_Proxy(ITypeMarshal *This,PVOID pvType,DWORD dwFlags,ULONG cbBufferLength,BYTE *pBuffer,ULONG *pcbRead);
   3506   void __RPC_STUB ITypeMarshal_Unmarshal_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3507   HRESULT WINAPI ITypeMarshal_Free_Proxy(ITypeMarshal *This,PVOID pvType);
   3508   void __RPC_STUB ITypeMarshal_Free_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3509 #endif
   3510 /*****************************************************************************
   3511  * IRecordInfo interface
   3512  */
   3513 #ifndef __IRecordInfo_INTERFACE_DEFINED__
   3514 #define __IRecordInfo_INTERFACE_DEFINED__
   3515 
   3516 typedef IRecordInfo *LPRECORDINFO;
   3517 DEFINE_GUID(IID_IRecordInfo, 0x0000002f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   3518 #if defined(__cplusplus) && !defined(CINTERFACE)
   3519 MIDL_INTERFACE("0000002f-0000-0000-c000-000000000046")
   3520 IRecordInfo : public IUnknown
   3521 {
   3522     virtual HRESULT STDMETHODCALLTYPE RecordInit(
   3523         PVOID pvNew) = 0;
   3524 
   3525     virtual HRESULT STDMETHODCALLTYPE RecordClear(
   3526         PVOID pvExisting) = 0;
   3527 
   3528     virtual HRESULT STDMETHODCALLTYPE RecordCopy(
   3529         PVOID pvExisting,
   3530         PVOID pvNew) = 0;
   3531 
   3532     virtual HRESULT STDMETHODCALLTYPE GetGuid(
   3533         GUID *pguid) = 0;
   3534 
   3535     virtual HRESULT STDMETHODCALLTYPE GetName(
   3536         BSTR *pbstrName) = 0;
   3537 
   3538     virtual HRESULT STDMETHODCALLTYPE GetSize(
   3539         ULONG *pcbSize) = 0;
   3540 
   3541     virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
   3542         ITypeInfo **ppTypeInfo) = 0;
   3543 
   3544     virtual HRESULT STDMETHODCALLTYPE GetField(
   3545         PVOID pvData,
   3546         LPCOLESTR szFieldName,
   3547         VARIANT *pvarField) = 0;
   3548 
   3549     virtual HRESULT STDMETHODCALLTYPE GetFieldNoCopy(
   3550         PVOID pvData,
   3551         LPCOLESTR szFieldName,
   3552         VARIANT *pvarField,
   3553         PVOID *ppvDataCArray) = 0;
   3554 
   3555     virtual HRESULT STDMETHODCALLTYPE PutField(
   3556         ULONG wFlags,
   3557         PVOID pvData,
   3558         LPCOLESTR szFieldName,
   3559         VARIANT *pvarField) = 0;
   3560 
   3561     virtual HRESULT STDMETHODCALLTYPE PutFieldNoCopy(
   3562         ULONG wFlags,
   3563         PVOID pvData,
   3564         LPCOLESTR szFieldName,
   3565         VARIANT *pvarField) = 0;
   3566 
   3567     virtual HRESULT STDMETHODCALLTYPE GetFieldNames(
   3568         ULONG *pcNames,
   3569         BSTR *rgBstrNames) = 0;
   3570 
   3571     virtual WINBOOL STDMETHODCALLTYPE IsMatchingType(
   3572         IRecordInfo *pRecordInfo) = 0;
   3573 
   3574     virtual PVOID STDMETHODCALLTYPE RecordCreate(
   3575         ) = 0;
   3576 
   3577     virtual HRESULT STDMETHODCALLTYPE RecordCreateCopy(
   3578         PVOID pvSource,
   3579         PVOID *ppvDest) = 0;
   3580 
   3581     virtual HRESULT STDMETHODCALLTYPE RecordDestroy(
   3582         PVOID pvRecord) = 0;
   3583 
   3584 };
   3585 #ifdef __CRT_UUID_DECL
   3586 __CRT_UUID_DECL(IRecordInfo, 0x0000002f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   3587 #endif
   3588 #else
   3589 typedef struct IRecordInfoVtbl {
   3590     BEGIN_INTERFACE
   3591 
   3592     /*** IUnknown methods ***/
   3593     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3594         IRecordInfo* This,
   3595         REFIID riid,
   3596         void **ppvObject);
   3597 
   3598     ULONG (STDMETHODCALLTYPE *AddRef)(
   3599         IRecordInfo* This);
   3600 
   3601     ULONG (STDMETHODCALLTYPE *Release)(
   3602         IRecordInfo* This);
   3603 
   3604     /*** IRecordInfo methods ***/
   3605     HRESULT (STDMETHODCALLTYPE *RecordInit)(
   3606         IRecordInfo* This,
   3607         PVOID pvNew);
   3608 
   3609     HRESULT (STDMETHODCALLTYPE *RecordClear)(
   3610         IRecordInfo* This,
   3611         PVOID pvExisting);
   3612 
   3613     HRESULT (STDMETHODCALLTYPE *RecordCopy)(
   3614         IRecordInfo* This,
   3615         PVOID pvExisting,
   3616         PVOID pvNew);
   3617 
   3618     HRESULT (STDMETHODCALLTYPE *GetGuid)(
   3619         IRecordInfo* This,
   3620         GUID *pguid);
   3621 
   3622     HRESULT (STDMETHODCALLTYPE *GetName)(
   3623         IRecordInfo* This,
   3624         BSTR *pbstrName);
   3625 
   3626     HRESULT (STDMETHODCALLTYPE *GetSize)(
   3627         IRecordInfo* This,
   3628         ULONG *pcbSize);
   3629 
   3630     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   3631         IRecordInfo* This,
   3632         ITypeInfo **ppTypeInfo);
   3633 
   3634     HRESULT (STDMETHODCALLTYPE *GetField)(
   3635         IRecordInfo* This,
   3636         PVOID pvData,
   3637         LPCOLESTR szFieldName,
   3638         VARIANT *pvarField);
   3639 
   3640     HRESULT (STDMETHODCALLTYPE *GetFieldNoCopy)(
   3641         IRecordInfo* This,
   3642         PVOID pvData,
   3643         LPCOLESTR szFieldName,
   3644         VARIANT *pvarField,
   3645         PVOID *ppvDataCArray);
   3646 
   3647     HRESULT (STDMETHODCALLTYPE *PutField)(
   3648         IRecordInfo* This,
   3649         ULONG wFlags,
   3650         PVOID pvData,
   3651         LPCOLESTR szFieldName,
   3652         VARIANT *pvarField);
   3653 
   3654     HRESULT (STDMETHODCALLTYPE *PutFieldNoCopy)(
   3655         IRecordInfo* This,
   3656         ULONG wFlags,
   3657         PVOID pvData,
   3658         LPCOLESTR szFieldName,
   3659         VARIANT *pvarField);
   3660 
   3661     HRESULT (STDMETHODCALLTYPE *GetFieldNames)(
   3662         IRecordInfo* This,
   3663         ULONG *pcNames,
   3664         BSTR *rgBstrNames);
   3665 
   3666     WINBOOL (STDMETHODCALLTYPE *IsMatchingType)(
   3667         IRecordInfo* This,
   3668         IRecordInfo *pRecordInfo);
   3669 
   3670     PVOID (STDMETHODCALLTYPE *RecordCreate)(
   3671         IRecordInfo* This);
   3672 
   3673     HRESULT (STDMETHODCALLTYPE *RecordCreateCopy)(
   3674         IRecordInfo* This,
   3675         PVOID pvSource,
   3676         PVOID *ppvDest);
   3677 
   3678     HRESULT (STDMETHODCALLTYPE *RecordDestroy)(
   3679         IRecordInfo* This,
   3680         PVOID pvRecord);
   3681 
   3682     END_INTERFACE
   3683 } IRecordInfoVtbl;
   3684 interface IRecordInfo {
   3685     CONST_VTBL IRecordInfoVtbl* lpVtbl;
   3686 };
   3687 
   3688 #ifdef COBJMACROS
   3689 #ifndef WIDL_C_INLINE_WRAPPERS
   3690 /*** IUnknown methods ***/
   3691 #define IRecordInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3692 #define IRecordInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   3693 #define IRecordInfo_Release(This) (This)->lpVtbl->Release(This)
   3694 /*** IRecordInfo methods ***/
   3695 #define IRecordInfo_RecordInit(This,pvNew) (This)->lpVtbl->RecordInit(This,pvNew)
   3696 #define IRecordInfo_RecordClear(This,pvExisting) (This)->lpVtbl->RecordClear(This,pvExisting)
   3697 #define IRecordInfo_RecordCopy(This,pvExisting,pvNew) (This)->lpVtbl->RecordCopy(This,pvExisting,pvNew)
   3698 #define IRecordInfo_GetGuid(This,pguid) (This)->lpVtbl->GetGuid(This,pguid)
   3699 #define IRecordInfo_GetName(This,pbstrName) (This)->lpVtbl->GetName(This,pbstrName)
   3700 #define IRecordInfo_GetSize(This,pcbSize) (This)->lpVtbl->GetSize(This,pcbSize)
   3701 #define IRecordInfo_GetTypeInfo(This,ppTypeInfo) (This)->lpVtbl->GetTypeInfo(This,ppTypeInfo)
   3702 #define IRecordInfo_GetField(This,pvData,szFieldName,pvarField) (This)->lpVtbl->GetField(This,pvData,szFieldName,pvarField)
   3703 #define IRecordInfo_GetFieldNoCopy(This,pvData,szFieldName,pvarField,ppvDataCArray) (This)->lpVtbl->GetFieldNoCopy(This,pvData,szFieldName,pvarField,ppvDataCArray)
   3704 #define IRecordInfo_PutField(This,wFlags,pvData,szFieldName,pvarField) (This)->lpVtbl->PutField(This,wFlags,pvData,szFieldName,pvarField)
   3705 #define IRecordInfo_PutFieldNoCopy(This,wFlags,pvData,szFieldName,pvarField) (This)->lpVtbl->PutFieldNoCopy(This,wFlags,pvData,szFieldName,pvarField)
   3706 #define IRecordInfo_GetFieldNames(This,pcNames,rgBstrNames) (This)->lpVtbl->GetFieldNames(This,pcNames,rgBstrNames)
   3707 #define IRecordInfo_IsMatchingType(This,pRecordInfo) (This)->lpVtbl->IsMatchingType(This,pRecordInfo)
   3708 #define IRecordInfo_RecordCreate(This) (This)->lpVtbl->RecordCreate(This)
   3709 #define IRecordInfo_RecordCreateCopy(This,pvSource,ppvDest) (This)->lpVtbl->RecordCreateCopy(This,pvSource,ppvDest)
   3710 #define IRecordInfo_RecordDestroy(This,pvRecord) (This)->lpVtbl->RecordDestroy(This,pvRecord)
   3711 #else
   3712 /*** IUnknown methods ***/
   3713 static FORCEINLINE HRESULT IRecordInfo_QueryInterface(IRecordInfo* This,REFIID riid,void **ppvObject) {
   3714     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3715 }
   3716 static FORCEINLINE ULONG IRecordInfo_AddRef(IRecordInfo* This) {
   3717     return This->lpVtbl->AddRef(This);
   3718 }
   3719 static FORCEINLINE ULONG IRecordInfo_Release(IRecordInfo* This) {
   3720     return This->lpVtbl->Release(This);
   3721 }
   3722 /*** IRecordInfo methods ***/
   3723 static FORCEINLINE HRESULT IRecordInfo_RecordInit(IRecordInfo* This,PVOID pvNew) {
   3724     return This->lpVtbl->RecordInit(This,pvNew);
   3725 }
   3726 static FORCEINLINE HRESULT IRecordInfo_RecordClear(IRecordInfo* This,PVOID pvExisting) {
   3727     return This->lpVtbl->RecordClear(This,pvExisting);
   3728 }
   3729 static FORCEINLINE HRESULT IRecordInfo_RecordCopy(IRecordInfo* This,PVOID pvExisting,PVOID pvNew) {
   3730     return This->lpVtbl->RecordCopy(This,pvExisting,pvNew);
   3731 }
   3732 static FORCEINLINE HRESULT IRecordInfo_GetGuid(IRecordInfo* This,GUID *pguid) {
   3733     return This->lpVtbl->GetGuid(This,pguid);
   3734 }
   3735 static FORCEINLINE HRESULT IRecordInfo_GetName(IRecordInfo* This,BSTR *pbstrName) {
   3736     return This->lpVtbl->GetName(This,pbstrName);
   3737 }
   3738 static FORCEINLINE HRESULT IRecordInfo_GetSize(IRecordInfo* This,ULONG *pcbSize) {
   3739     return This->lpVtbl->GetSize(This,pcbSize);
   3740 }
   3741 static FORCEINLINE HRESULT IRecordInfo_GetTypeInfo(IRecordInfo* This,ITypeInfo **ppTypeInfo) {
   3742     return This->lpVtbl->GetTypeInfo(This,ppTypeInfo);
   3743 }
   3744 static FORCEINLINE HRESULT IRecordInfo_GetField(IRecordInfo* This,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField) {
   3745     return This->lpVtbl->GetField(This,pvData,szFieldName,pvarField);
   3746 }
   3747 static FORCEINLINE HRESULT IRecordInfo_GetFieldNoCopy(IRecordInfo* This,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField,PVOID *ppvDataCArray) {
   3748     return This->lpVtbl->GetFieldNoCopy(This,pvData,szFieldName,pvarField,ppvDataCArray);
   3749 }
   3750 static FORCEINLINE HRESULT IRecordInfo_PutField(IRecordInfo* This,ULONG wFlags,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField) {
   3751     return This->lpVtbl->PutField(This,wFlags,pvData,szFieldName,pvarField);
   3752 }
   3753 static FORCEINLINE HRESULT IRecordInfo_PutFieldNoCopy(IRecordInfo* This,ULONG wFlags,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField) {
   3754     return This->lpVtbl->PutFieldNoCopy(This,wFlags,pvData,szFieldName,pvarField);
   3755 }
   3756 static FORCEINLINE HRESULT IRecordInfo_GetFieldNames(IRecordInfo* This,ULONG *pcNames,BSTR *rgBstrNames) {
   3757     return This->lpVtbl->GetFieldNames(This,pcNames,rgBstrNames);
   3758 }
   3759 static FORCEINLINE WINBOOL IRecordInfo_IsMatchingType(IRecordInfo* This,IRecordInfo *pRecordInfo) {
   3760     return This->lpVtbl->IsMatchingType(This,pRecordInfo);
   3761 }
   3762 static FORCEINLINE PVOID IRecordInfo_RecordCreate(IRecordInfo* This) {
   3763     return This->lpVtbl->RecordCreate(This);
   3764 }
   3765 static FORCEINLINE HRESULT IRecordInfo_RecordCreateCopy(IRecordInfo* This,PVOID pvSource,PVOID *ppvDest) {
   3766     return This->lpVtbl->RecordCreateCopy(This,pvSource,ppvDest);
   3767 }
   3768 static FORCEINLINE HRESULT IRecordInfo_RecordDestroy(IRecordInfo* This,PVOID pvRecord) {
   3769     return This->lpVtbl->RecordDestroy(This,pvRecord);
   3770 }
   3771 #endif
   3772 #endif
   3773 
   3774 #endif
   3775 
   3776 HRESULT STDMETHODCALLTYPE IRecordInfo_RecordInit_Proxy(
   3777     IRecordInfo* This,
   3778     PVOID pvNew);
   3779 void __RPC_STUB IRecordInfo_RecordInit_Stub(
   3780     IRpcStubBuffer* This,
   3781     IRpcChannelBuffer* pRpcChannelBuffer,
   3782     PRPC_MESSAGE pRpcMessage,
   3783     DWORD* pdwStubPhase);
   3784 HRESULT STDMETHODCALLTYPE IRecordInfo_RecordClear_Proxy(
   3785     IRecordInfo* This,
   3786     PVOID pvExisting);
   3787 void __RPC_STUB IRecordInfo_RecordClear_Stub(
   3788     IRpcStubBuffer* This,
   3789     IRpcChannelBuffer* pRpcChannelBuffer,
   3790     PRPC_MESSAGE pRpcMessage,
   3791     DWORD* pdwStubPhase);
   3792 HRESULT STDMETHODCALLTYPE IRecordInfo_RecordCopy_Proxy(
   3793     IRecordInfo* This,
   3794     PVOID pvExisting,
   3795     PVOID pvNew);
   3796 void __RPC_STUB IRecordInfo_RecordCopy_Stub(
   3797     IRpcStubBuffer* This,
   3798     IRpcChannelBuffer* pRpcChannelBuffer,
   3799     PRPC_MESSAGE pRpcMessage,
   3800     DWORD* pdwStubPhase);
   3801 HRESULT STDMETHODCALLTYPE IRecordInfo_GetGuid_Proxy(
   3802     IRecordInfo* This,
   3803     GUID *pguid);
   3804 void __RPC_STUB IRecordInfo_GetGuid_Stub(
   3805     IRpcStubBuffer* This,
   3806     IRpcChannelBuffer* pRpcChannelBuffer,
   3807     PRPC_MESSAGE pRpcMessage,
   3808     DWORD* pdwStubPhase);
   3809 HRESULT STDMETHODCALLTYPE IRecordInfo_GetName_Proxy(
   3810     IRecordInfo* This,
   3811     BSTR *pbstrName);
   3812 void __RPC_STUB IRecordInfo_GetName_Stub(
   3813     IRpcStubBuffer* This,
   3814     IRpcChannelBuffer* pRpcChannelBuffer,
   3815     PRPC_MESSAGE pRpcMessage,
   3816     DWORD* pdwStubPhase);
   3817 HRESULT STDMETHODCALLTYPE IRecordInfo_GetSize_Proxy(
   3818     IRecordInfo* This,
   3819     ULONG *pcbSize);
   3820 void __RPC_STUB IRecordInfo_GetSize_Stub(
   3821     IRpcStubBuffer* This,
   3822     IRpcChannelBuffer* pRpcChannelBuffer,
   3823     PRPC_MESSAGE pRpcMessage,
   3824     DWORD* pdwStubPhase);
   3825 HRESULT STDMETHODCALLTYPE IRecordInfo_GetTypeInfo_Proxy(
   3826     IRecordInfo* This,
   3827     ITypeInfo **ppTypeInfo);
   3828 void __RPC_STUB IRecordInfo_GetTypeInfo_Stub(
   3829     IRpcStubBuffer* This,
   3830     IRpcChannelBuffer* pRpcChannelBuffer,
   3831     PRPC_MESSAGE pRpcMessage,
   3832     DWORD* pdwStubPhase);
   3833 HRESULT STDMETHODCALLTYPE IRecordInfo_GetField_Proxy(
   3834     IRecordInfo* This,
   3835     PVOID pvData,
   3836     LPCOLESTR szFieldName,
   3837     VARIANT *pvarField);
   3838 void __RPC_STUB IRecordInfo_GetField_Stub(
   3839     IRpcStubBuffer* This,
   3840     IRpcChannelBuffer* pRpcChannelBuffer,
   3841     PRPC_MESSAGE pRpcMessage,
   3842     DWORD* pdwStubPhase);
   3843 HRESULT STDMETHODCALLTYPE IRecordInfo_GetFieldNoCopy_Proxy(
   3844     IRecordInfo* This,
   3845     PVOID pvData,
   3846     LPCOLESTR szFieldName,
   3847     VARIANT *pvarField,
   3848     PVOID *ppvDataCArray);
   3849 void __RPC_STUB IRecordInfo_GetFieldNoCopy_Stub(
   3850     IRpcStubBuffer* This,
   3851     IRpcChannelBuffer* pRpcChannelBuffer,
   3852     PRPC_MESSAGE pRpcMessage,
   3853     DWORD* pdwStubPhase);
   3854 HRESULT STDMETHODCALLTYPE IRecordInfo_PutField_Proxy(
   3855     IRecordInfo* This,
   3856     ULONG wFlags,
   3857     PVOID pvData,
   3858     LPCOLESTR szFieldName,
   3859     VARIANT *pvarField);
   3860 void __RPC_STUB IRecordInfo_PutField_Stub(
   3861     IRpcStubBuffer* This,
   3862     IRpcChannelBuffer* pRpcChannelBuffer,
   3863     PRPC_MESSAGE pRpcMessage,
   3864     DWORD* pdwStubPhase);
   3865 HRESULT STDMETHODCALLTYPE IRecordInfo_PutFieldNoCopy_Proxy(
   3866     IRecordInfo* This,
   3867     ULONG wFlags,
   3868     PVOID pvData,
   3869     LPCOLESTR szFieldName,
   3870     VARIANT *pvarField);
   3871 void __RPC_STUB IRecordInfo_PutFieldNoCopy_Stub(
   3872     IRpcStubBuffer* This,
   3873     IRpcChannelBuffer* pRpcChannelBuffer,
   3874     PRPC_MESSAGE pRpcMessage,
   3875     DWORD* pdwStubPhase);
   3876 HRESULT STDMETHODCALLTYPE IRecordInfo_GetFieldNames_Proxy(
   3877     IRecordInfo* This,
   3878     ULONG *pcNames,
   3879     BSTR *rgBstrNames);
   3880 void __RPC_STUB IRecordInfo_GetFieldNames_Stub(
   3881     IRpcStubBuffer* This,
   3882     IRpcChannelBuffer* pRpcChannelBuffer,
   3883     PRPC_MESSAGE pRpcMessage,
   3884     DWORD* pdwStubPhase);
   3885 WINBOOL STDMETHODCALLTYPE IRecordInfo_IsMatchingType_Proxy(
   3886     IRecordInfo* This,
   3887     IRecordInfo *pRecordInfo);
   3888 void __RPC_STUB IRecordInfo_IsMatchingType_Stub(
   3889     IRpcStubBuffer* This,
   3890     IRpcChannelBuffer* pRpcChannelBuffer,
   3891     PRPC_MESSAGE pRpcMessage,
   3892     DWORD* pdwStubPhase);
   3893 PVOID STDMETHODCALLTYPE IRecordInfo_RecordCreate_Proxy(
   3894     IRecordInfo* This);
   3895 void __RPC_STUB IRecordInfo_RecordCreate_Stub(
   3896     IRpcStubBuffer* This,
   3897     IRpcChannelBuffer* pRpcChannelBuffer,
   3898     PRPC_MESSAGE pRpcMessage,
   3899     DWORD* pdwStubPhase);
   3900 HRESULT STDMETHODCALLTYPE IRecordInfo_RecordCreateCopy_Proxy(
   3901     IRecordInfo* This,
   3902     PVOID pvSource,
   3903     PVOID *ppvDest);
   3904 void __RPC_STUB IRecordInfo_RecordCreateCopy_Stub(
   3905     IRpcStubBuffer* This,
   3906     IRpcChannelBuffer* pRpcChannelBuffer,
   3907     PRPC_MESSAGE pRpcMessage,
   3908     DWORD* pdwStubPhase);
   3909 HRESULT STDMETHODCALLTYPE IRecordInfo_RecordDestroy_Proxy(
   3910     IRecordInfo* This,
   3911     PVOID pvRecord);
   3912 void __RPC_STUB IRecordInfo_RecordDestroy_Stub(
   3913     IRpcStubBuffer* This,
   3914     IRpcChannelBuffer* pRpcChannelBuffer,
   3915     PRPC_MESSAGE pRpcMessage,
   3916     DWORD* pdwStubPhase);
   3917 
   3918 #endif  /* __IRecordInfo_INTERFACE_DEFINED__ */
   3919 
   3920 /*****************************************************************************
   3921  * IErrorLog interface
   3922  */
   3923 #ifndef __IErrorLog_INTERFACE_DEFINED__
   3924 #define __IErrorLog_INTERFACE_DEFINED__
   3925 
   3926 typedef IErrorLog *LPERRORLOG;
   3927 DEFINE_GUID(IID_IErrorLog, 0x3127ca40, 0x446e, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51);
   3928 #if defined(__cplusplus) && !defined(CINTERFACE)
   3929 MIDL_INTERFACE("3127ca40-446e-11ce-8135-00aa004bb851")
   3930 IErrorLog : public IUnknown
   3931 {
   3932     virtual HRESULT STDMETHODCALLTYPE AddError(
   3933         LPCOLESTR pszPropName,
   3934         EXCEPINFO *pExcepInfo) = 0;
   3935 
   3936 };
   3937 #ifdef __CRT_UUID_DECL
   3938 __CRT_UUID_DECL(IErrorLog, 0x3127ca40, 0x446e, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51)
   3939 #endif
   3940 #else
   3941 typedef struct IErrorLogVtbl {
   3942     BEGIN_INTERFACE
   3943 
   3944     /*** IUnknown methods ***/
   3945     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3946         IErrorLog* This,
   3947         REFIID riid,
   3948         void **ppvObject);
   3949 
   3950     ULONG (STDMETHODCALLTYPE *AddRef)(
   3951         IErrorLog* This);
   3952 
   3953     ULONG (STDMETHODCALLTYPE *Release)(
   3954         IErrorLog* This);
   3955 
   3956     /*** IErrorLog methods ***/
   3957     HRESULT (STDMETHODCALLTYPE *AddError)(
   3958         IErrorLog* This,
   3959         LPCOLESTR pszPropName,
   3960         EXCEPINFO *pExcepInfo);
   3961 
   3962     END_INTERFACE
   3963 } IErrorLogVtbl;
   3964 interface IErrorLog {
   3965     CONST_VTBL IErrorLogVtbl* lpVtbl;
   3966 };
   3967 
   3968 #ifdef COBJMACROS
   3969 #ifndef WIDL_C_INLINE_WRAPPERS
   3970 /*** IUnknown methods ***/
   3971 #define IErrorLog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3972 #define IErrorLog_AddRef(This) (This)->lpVtbl->AddRef(This)
   3973 #define IErrorLog_Release(This) (This)->lpVtbl->Release(This)
   3974 /*** IErrorLog methods ***/
   3975 #define IErrorLog_AddError(This,pszPropName,pExcepInfo) (This)->lpVtbl->AddError(This,pszPropName,pExcepInfo)
   3976 #else
   3977 /*** IUnknown methods ***/
   3978 static FORCEINLINE HRESULT IErrorLog_QueryInterface(IErrorLog* This,REFIID riid,void **ppvObject) {
   3979     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3980 }
   3981 static FORCEINLINE ULONG IErrorLog_AddRef(IErrorLog* This) {
   3982     return This->lpVtbl->AddRef(This);
   3983 }
   3984 static FORCEINLINE ULONG IErrorLog_Release(IErrorLog* This) {
   3985     return This->lpVtbl->Release(This);
   3986 }
   3987 /*** IErrorLog methods ***/
   3988 static FORCEINLINE HRESULT IErrorLog_AddError(IErrorLog* This,LPCOLESTR pszPropName,EXCEPINFO *pExcepInfo) {
   3989     return This->lpVtbl->AddError(This,pszPropName,pExcepInfo);
   3990 }
   3991 #endif
   3992 #endif
   3993 
   3994 #endif
   3995 
   3996 HRESULT STDMETHODCALLTYPE IErrorLog_AddError_Proxy(
   3997     IErrorLog* This,
   3998     LPCOLESTR pszPropName,
   3999     EXCEPINFO *pExcepInfo);
   4000 void __RPC_STUB IErrorLog_AddError_Stub(
   4001     IRpcStubBuffer* This,
   4002     IRpcChannelBuffer* pRpcChannelBuffer,
   4003     PRPC_MESSAGE pRpcMessage,
   4004     DWORD* pdwStubPhase);
   4005 
   4006 #endif  /* __IErrorLog_INTERFACE_DEFINED__ */
   4007 
   4008 /*****************************************************************************
   4009  * IPropertyBag interface
   4010  */
   4011 #ifndef __IPropertyBag_INTERFACE_DEFINED__
   4012 #define __IPropertyBag_INTERFACE_DEFINED__
   4013 
   4014 typedef IPropertyBag *LPPROPERTYBAG;
   4015 DEFINE_GUID(IID_IPropertyBag, 0x55272a00, 0x42cb, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51);
   4016 #if defined(__cplusplus) && !defined(CINTERFACE)
   4017 MIDL_INTERFACE("55272a00-42cb-11ce-8135-00aa004bb851")
   4018 IPropertyBag : public IUnknown
   4019 {
   4020     virtual HRESULT STDMETHODCALLTYPE Read(
   4021         LPCOLESTR pszPropName,
   4022         VARIANT *pVar,
   4023         IErrorLog *pErrorLog) = 0;
   4024 
   4025     virtual HRESULT STDMETHODCALLTYPE Write(
   4026         LPCOLESTR pszPropName,
   4027         VARIANT *pVar) = 0;
   4028 
   4029 };
   4030 #ifdef __CRT_UUID_DECL
   4031 __CRT_UUID_DECL(IPropertyBag, 0x55272a00, 0x42cb, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51)
   4032 #endif
   4033 #else
   4034 typedef struct IPropertyBagVtbl {
   4035     BEGIN_INTERFACE
   4036 
   4037     /*** IUnknown methods ***/
   4038     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4039         IPropertyBag* This,
   4040         REFIID riid,
   4041         void **ppvObject);
   4042 
   4043     ULONG (STDMETHODCALLTYPE *AddRef)(
   4044         IPropertyBag* This);
   4045 
   4046     ULONG (STDMETHODCALLTYPE *Release)(
   4047         IPropertyBag* This);
   4048 
   4049     /*** IPropertyBag methods ***/
   4050     HRESULT (STDMETHODCALLTYPE *Read)(
   4051         IPropertyBag* This,
   4052         LPCOLESTR pszPropName,
   4053         VARIANT *pVar,
   4054         IErrorLog *pErrorLog);
   4055 
   4056     HRESULT (STDMETHODCALLTYPE *Write)(
   4057         IPropertyBag* This,
   4058         LPCOLESTR pszPropName,
   4059         VARIANT *pVar);
   4060 
   4061     END_INTERFACE
   4062 } IPropertyBagVtbl;
   4063 interface IPropertyBag {
   4064     CONST_VTBL IPropertyBagVtbl* lpVtbl;
   4065 };
   4066 
   4067 #ifdef COBJMACROS
   4068 #ifndef WIDL_C_INLINE_WRAPPERS
   4069 /*** IUnknown methods ***/
   4070 #define IPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4071 #define IPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
   4072 #define IPropertyBag_Release(This) (This)->lpVtbl->Release(This)
   4073 /*** IPropertyBag methods ***/
   4074 #define IPropertyBag_Read(This,pszPropName,pVar,pErrorLog) (This)->lpVtbl->Read(This,pszPropName,pVar,pErrorLog)
   4075 #define IPropertyBag_Write(This,pszPropName,pVar) (This)->lpVtbl->Write(This,pszPropName,pVar)
   4076 #else
   4077 /*** IUnknown methods ***/
   4078 static FORCEINLINE HRESULT IPropertyBag_QueryInterface(IPropertyBag* This,REFIID riid,void **ppvObject) {
   4079     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4080 }
   4081 static FORCEINLINE ULONG IPropertyBag_AddRef(IPropertyBag* This) {
   4082     return This->lpVtbl->AddRef(This);
   4083 }
   4084 static FORCEINLINE ULONG IPropertyBag_Release(IPropertyBag* This) {
   4085     return This->lpVtbl->Release(This);
   4086 }
   4087 /*** IPropertyBag methods ***/
   4088 static FORCEINLINE HRESULT IPropertyBag_Read(IPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog) {
   4089     return This->lpVtbl->Read(This,pszPropName,pVar,pErrorLog);
   4090 }
   4091 static FORCEINLINE HRESULT IPropertyBag_Write(IPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar) {
   4092     return This->lpVtbl->Write(This,pszPropName,pVar);
   4093 }
   4094 #endif
   4095 #endif
   4096 
   4097 #endif
   4098 
   4099 HRESULT STDMETHODCALLTYPE IPropertyBag_RemoteRead_Proxy(
   4100     IPropertyBag* This,
   4101     LPCOLESTR pszPropName,
   4102     VARIANT *pVar,
   4103     IErrorLog *pErrorLog,
   4104     DWORD varType,
   4105     IUnknown *pUnkObj);
   4106 void __RPC_STUB IPropertyBag_RemoteRead_Stub(
   4107     IRpcStubBuffer* This,
   4108     IRpcChannelBuffer* pRpcChannelBuffer,
   4109     PRPC_MESSAGE pRpcMessage,
   4110     DWORD* pdwStubPhase);
   4111 HRESULT STDMETHODCALLTYPE IPropertyBag_Write_Proxy(
   4112     IPropertyBag* This,
   4113     LPCOLESTR pszPropName,
   4114     VARIANT *pVar);
   4115 void __RPC_STUB IPropertyBag_Write_Stub(
   4116     IRpcStubBuffer* This,
   4117     IRpcChannelBuffer* pRpcChannelBuffer,
   4118     PRPC_MESSAGE pRpcMessage,
   4119     DWORD* pdwStubPhase);
   4120 HRESULT CALLBACK IPropertyBag_Read_Proxy(
   4121     IPropertyBag* This,
   4122     LPCOLESTR pszPropName,
   4123     VARIANT *pVar,
   4124     IErrorLog *pErrorLog);
   4125 HRESULT __RPC_STUB IPropertyBag_Read_Stub(
   4126     IPropertyBag* This,
   4127     LPCOLESTR pszPropName,
   4128     VARIANT *pVar,
   4129     IErrorLog *pErrorLog,
   4130     DWORD varType,
   4131     IUnknown *pUnkObj);
   4132 
   4133 #endif  /* __IPropertyBag_INTERFACE_DEFINED__ */
   4134 
   4135   HRESULT WINAPI ITypeInfo2_GetDocumentation2_Proxy(ITypeInfo2 *This,MEMBERID memid,LCID lcid,BSTR *pbstrHelpString,DWORD *pdwHelpStringContext,BSTR *pbstrHelpStringDll);
   4136   HRESULT WINAPI ITypeInfo2_GetDocumentation2_Stub(ITypeInfo2 *This,MEMBERID memid,LCID lcid,DWORD refPtrFlags,BSTR *pbstrHelpString,DWORD *pdwHelpStringContext,BSTR *pbstrHelpStringDll);
   4137   HRESULT WINAPI ITypeLib2_GetLibStatistics_Proxy(ITypeLib2 *This,ULONG *pcUniqueNames,ULONG *pcchUniqueNames);
   4138   HRESULT WINAPI ITypeLib2_GetLibStatistics_Stub(ITypeLib2 *This,ULONG *pcUniqueNames,ULONG *pcchUniqueNames);
   4139   HRESULT WINAPI ITypeLib2_GetDocumentation2_Proxy(ITypeLib2 *This,INT index,LCID lcid,BSTR *pbstrHelpString,DWORD *pdwHelpStringContext,BSTR *pbstrHelpStringDll);
   4140   HRESULT WINAPI ITypeLib2_GetDocumentation2_Stub(ITypeLib2 *This,INT index,LCID lcid,DWORD refPtrFlags,BSTR *pbstrHelpString,DWORD *pdwHelpStringContext,BSTR *pbstrHelpStringDll);
   4141 /* Begin additional prototypes for all interfaces */
   4142 
   4143 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
   4144 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
   4145 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
   4146 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
   4147 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
   4148 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
   4149 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
   4150 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
   4151 ULONG           __RPC_USER CLEANLOCALSTORAGE_UserSize     (ULONG *, ULONG, CLEANLOCALSTORAGE *);
   4152 unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserMarshal  (ULONG *, unsigned char *, CLEANLOCALSTORAGE *);
   4153 unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserUnmarshal(ULONG *, unsigned char *, CLEANLOCALSTORAGE *);
   4154 void            __RPC_USER CLEANLOCALSTORAGE_UserFree     (ULONG *, CLEANLOCALSTORAGE *);
   4155 
   4156 /* End additional prototypes */
   4157 
   4158 #ifdef __cplusplus
   4159 }
   4160 #endif
   4161 
   4162 #endif /* __oaidl_h__ */
   4163