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