1 /*** Autogenerated by WIDL 4.12.1 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__ 23 typedef interface ICreateTypeInfo ICreateTypeInfo; 24 #ifdef __cplusplus 25 interface ICreateTypeInfo; 26 #endif /* __cplusplus */ 27 #endif 28 29 #ifndef __ICreateTypeInfo2_FWD_DEFINED__ 30 #define __ICreateTypeInfo2_FWD_DEFINED__ 31 typedef interface ICreateTypeInfo2 ICreateTypeInfo2; 32 #ifdef __cplusplus 33 interface ICreateTypeInfo2; 34 #endif /* __cplusplus */ 35 #endif 36 37 #ifndef __ICreateTypeLib_FWD_DEFINED__ 38 #define __ICreateTypeLib_FWD_DEFINED__ 39 typedef interface ICreateTypeLib ICreateTypeLib; 40 #ifdef __cplusplus 41 interface ICreateTypeLib; 42 #endif /* __cplusplus */ 43 #endif 44 45 #ifndef __ICreateTypeLib2_FWD_DEFINED__ 46 #define __ICreateTypeLib2_FWD_DEFINED__ 47 typedef interface ICreateTypeLib2 ICreateTypeLib2; 48 #ifdef __cplusplus 49 interface ICreateTypeLib2; 50 #endif /* __cplusplus */ 51 #endif 52 53 #ifndef __IDispatch_FWD_DEFINED__ 54 #define __IDispatch_FWD_DEFINED__ 55 typedef interface IDispatch IDispatch; 56 #ifdef __cplusplus 57 interface IDispatch; 58 #endif /* __cplusplus */ 59 #endif 60 61 #ifndef __IEnumVARIANT_FWD_DEFINED__ 62 #define __IEnumVARIANT_FWD_DEFINED__ 63 typedef interface IEnumVARIANT IEnumVARIANT; 64 #ifdef __cplusplus 65 interface IEnumVARIANT; 66 #endif /* __cplusplus */ 67 #endif 68 69 #ifndef __ITypeComp_FWD_DEFINED__ 70 #define __ITypeComp_FWD_DEFINED__ 71 typedef interface ITypeComp ITypeComp; 72 #ifdef __cplusplus 73 interface ITypeComp; 74 #endif /* __cplusplus */ 75 #endif 76 77 #ifndef __ITypeInfo_FWD_DEFINED__ 78 #define __ITypeInfo_FWD_DEFINED__ 79 typedef interface ITypeInfo ITypeInfo; 80 #ifdef __cplusplus 81 interface ITypeInfo; 82 #endif /* __cplusplus */ 83 #endif 84 85 #ifndef __ITypeInfo2_FWD_DEFINED__ 86 #define __ITypeInfo2_FWD_DEFINED__ 87 typedef interface ITypeInfo2 ITypeInfo2; 88 #ifdef __cplusplus 89 interface ITypeInfo2; 90 #endif /* __cplusplus */ 91 #endif 92 93 #ifndef __ITypeLib_FWD_DEFINED__ 94 #define __ITypeLib_FWD_DEFINED__ 95 typedef interface ITypeLib ITypeLib; 96 #ifdef __cplusplus 97 interface ITypeLib; 98 #endif /* __cplusplus */ 99 #endif 100 101 #ifndef __ITypeLib2_FWD_DEFINED__ 102 #define __ITypeLib2_FWD_DEFINED__ 103 typedef interface ITypeLib2 ITypeLib2; 104 #ifdef __cplusplus 105 interface ITypeLib2; 106 #endif /* __cplusplus */ 107 #endif 108 109 #ifndef __ITypeChangeEvents_FWD_DEFINED__ 110 #define __ITypeChangeEvents_FWD_DEFINED__ 111 typedef interface ITypeChangeEvents ITypeChangeEvents; 112 #ifdef __cplusplus 113 interface ITypeChangeEvents; 114 #endif /* __cplusplus */ 115 #endif 116 117 #ifndef __IErrorInfo_FWD_DEFINED__ 118 #define __IErrorInfo_FWD_DEFINED__ 119 typedef interface IErrorInfo IErrorInfo; 120 #ifdef __cplusplus 121 interface IErrorInfo; 122 #endif /* __cplusplus */ 123 #endif 124 125 #ifndef __ICreateErrorInfo_FWD_DEFINED__ 126 #define __ICreateErrorInfo_FWD_DEFINED__ 127 typedef interface ICreateErrorInfo ICreateErrorInfo; 128 #ifdef __cplusplus 129 interface ICreateErrorInfo; 130 #endif /* __cplusplus */ 131 #endif 132 133 #ifndef __ISupportErrorInfo_FWD_DEFINED__ 134 #define __ISupportErrorInfo_FWD_DEFINED__ 135 typedef interface ISupportErrorInfo ISupportErrorInfo; 136 #ifdef __cplusplus 137 interface ISupportErrorInfo; 138 #endif /* __cplusplus */ 139 #endif 140 141 #ifndef __ITypeFactory_FWD_DEFINED__ 142 #define __ITypeFactory_FWD_DEFINED__ 143 typedef interface ITypeFactory ITypeFactory; 144 #ifdef __cplusplus 145 interface ITypeFactory; 146 #endif /* __cplusplus */ 147 #endif 148 149 #ifndef __ITypeMarshal_FWD_DEFINED__ 150 #define __ITypeMarshal_FWD_DEFINED__ 151 typedef interface ITypeMarshal ITypeMarshal; 152 #ifdef __cplusplus 153 interface ITypeMarshal; 154 #endif /* __cplusplus */ 155 #endif 156 157 #ifndef __IRecordInfo_FWD_DEFINED__ 158 #define __IRecordInfo_FWD_DEFINED__ 159 typedef interface IRecordInfo IRecordInfo; 160 #ifdef __cplusplus 161 interface IRecordInfo; 162 #endif /* __cplusplus */ 163 #endif 164 165 #ifndef __IErrorLog_FWD_DEFINED__ 166 #define __IErrorLog_FWD_DEFINED__ 167 typedef interface IErrorLog IErrorLog; 168 #ifdef __cplusplus 169 interface IErrorLog; 170 #endif /* __cplusplus */ 171 #endif 172 173 #ifndef __IPropertyBag_FWD_DEFINED__ 174 #define __IPropertyBag_FWD_DEFINED__ 175 typedef interface IPropertyBag IPropertyBag; 176 #ifdef __cplusplus 177 interface IPropertyBag; 178 #endif /* __cplusplus */ 179 #endif 180 181 /* Headers for imported files */ 182 183 #include <objidl.h> 184 185 #ifdef __cplusplus 186 extern "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__ 199 typedef interface ICreateTypeInfo ICreateTypeInfo; 200 #ifdef __cplusplus 201 interface ICreateTypeInfo; 202 #endif /* __cplusplus */ 203 #endif 204 205 #ifndef __ICreateTypeInfo2_FWD_DEFINED__ 206 #define __ICreateTypeInfo2_FWD_DEFINED__ 207 typedef interface ICreateTypeInfo2 ICreateTypeInfo2; 208 #ifdef __cplusplus 209 interface ICreateTypeInfo2; 210 #endif /* __cplusplus */ 211 #endif 212 213 #ifndef __ICreateTypeLib_FWD_DEFINED__ 214 #define __ICreateTypeLib_FWD_DEFINED__ 215 typedef interface ICreateTypeLib ICreateTypeLib; 216 #ifdef __cplusplus 217 interface ICreateTypeLib; 218 #endif /* __cplusplus */ 219 #endif 220 221 #ifndef __ICreateTypeLib2_FWD_DEFINED__ 222 #define __ICreateTypeLib2_FWD_DEFINED__ 223 typedef interface ICreateTypeLib2 ICreateTypeLib2; 224 #ifdef __cplusplus 225 interface 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__ 234 typedef interface IDispatch IDispatch; 235 #ifdef __cplusplus 236 interface IDispatch; 237 #endif /* __cplusplus */ 238 #endif 239 240 #ifndef __IEnumVARIANT_FWD_DEFINED__ 241 #define __IEnumVARIANT_FWD_DEFINED__ 242 typedef interface IEnumVARIANT IEnumVARIANT; 243 #ifdef __cplusplus 244 interface IEnumVARIANT; 245 #endif /* __cplusplus */ 246 #endif 247 248 #ifndef __ITypeComp_FWD_DEFINED__ 249 #define __ITypeComp_FWD_DEFINED__ 250 typedef interface ITypeComp ITypeComp; 251 #ifdef __cplusplus 252 interface 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__ 261 typedef interface ITypeInfo ITypeInfo; 262 #ifdef __cplusplus 263 interface ITypeInfo; 264 #endif /* __cplusplus */ 265 #endif 266 267 #ifndef __ITypeInfo2_FWD_DEFINED__ 268 #define __ITypeInfo2_FWD_DEFINED__ 269 typedef interface ITypeInfo2 ITypeInfo2; 270 #ifdef __cplusplus 271 interface ITypeInfo2; 272 #endif /* __cplusplus */ 273 #endif 274 275 #ifndef __ITypeLib_FWD_DEFINED__ 276 #define __ITypeLib_FWD_DEFINED__ 277 typedef interface ITypeLib ITypeLib; 278 #ifdef __cplusplus 279 interface ITypeLib; 280 #endif /* __cplusplus */ 281 #endif 282 283 #ifndef __ITypeLib2_FWD_DEFINED__ 284 #define __ITypeLib2_FWD_DEFINED__ 285 typedef interface ITypeLib2 ITypeLib2; 286 #ifdef __cplusplus 287 interface ITypeLib2; 288 #endif /* __cplusplus */ 289 #endif 290 291 #ifndef __ITypeChangeEvents_FWD_DEFINED__ 292 #define __ITypeChangeEvents_FWD_DEFINED__ 293 typedef interface ITypeChangeEvents ITypeChangeEvents; 294 #ifdef __cplusplus 295 interface ITypeChangeEvents; 296 #endif /* __cplusplus */ 297 #endif 298 299 #ifndef __IErrorInfo_FWD_DEFINED__ 300 #define __IErrorInfo_FWD_DEFINED__ 301 typedef interface IErrorInfo IErrorInfo; 302 #ifdef __cplusplus 303 interface IErrorInfo; 304 #endif /* __cplusplus */ 305 #endif 306 307 #ifndef __ICreateErrorInfo_FWD_DEFINED__ 308 #define __ICreateErrorInfo_FWD_DEFINED__ 309 typedef interface ICreateErrorInfo ICreateErrorInfo; 310 #ifdef __cplusplus 311 interface ICreateErrorInfo; 312 #endif /* __cplusplus */ 313 #endif 314 315 #ifndef __ISupportErrorInfo_FWD_DEFINED__ 316 #define __ISupportErrorInfo_FWD_DEFINED__ 317 typedef interface ISupportErrorInfo ISupportErrorInfo; 318 #ifdef __cplusplus 319 interface ISupportErrorInfo; 320 #endif /* __cplusplus */ 321 #endif 322 323 #ifndef __ITypeFactory_FWD_DEFINED__ 324 #define __ITypeFactory_FWD_DEFINED__ 325 typedef interface ITypeFactory ITypeFactory; 326 #ifdef __cplusplus 327 interface ITypeFactory; 328 #endif /* __cplusplus */ 329 #endif 330 331 #ifndef __ITypeMarshal_FWD_DEFINED__ 332 #define __ITypeMarshal_FWD_DEFINED__ 333 typedef interface ITypeMarshal ITypeMarshal; 334 #ifdef __cplusplus 335 interface ITypeMarshal; 336 #endif /* __cplusplus */ 337 #endif 338 339 #ifndef __IRecordInfo_FWD_DEFINED__ 340 #define __IRecordInfo_FWD_DEFINED__ 341 typedef interface IRecordInfo IRecordInfo; 342 #ifdef __cplusplus 343 interface 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 356 extern RPC_IF_HANDLE IOleAutomationTypes_v1_0_c_ifspec; 357 extern RPC_IF_HANDLE IOleAutomationTypes_v1_0_s_ifspec; 358 typedef CY CURRENCY; 359 typedef struct tagSAFEARRAYBOUND { 360 ULONG cElements; 361 LONG lLbound; 362 } SAFEARRAYBOUND; 363 typedef struct tagSAFEARRAYBOUND *LPSAFEARRAYBOUND; 364 365 typedef struct _wireVARIANT *wireVARIANT; 366 typedef struct _wireBRECORD *wireBRECORD; 367 368 typedef struct _wireSAFEARR_BSTR { 369 ULONG Size; 370 wireBSTR *aBstr; 371 } SAFEARR_BSTR; 372 373 typedef struct _wireSAFEARR_UNKNOWN { 374 ULONG Size; 375 IUnknown **apUnknown; 376 } SAFEARR_UNKNOWN; 377 378 typedef struct _wireSAFEARR_DISPATCH { 379 ULONG Size; 380 IDispatch **apDispatch; 381 } SAFEARR_DISPATCH; 382 383 typedef struct _wireSAFEARR_VARIANT { 384 ULONG Size; 385 wireVARIANT *aVariant; 386 } SAFEARR_VARIANT; 387 388 typedef struct _wireSAFEARR_BRECORD { 389 ULONG Size; 390 wireBRECORD *aRecord; 391 } SAFEARR_BRECORD; 392 393 typedef struct _wireSAFEARR_HAVEIID { 394 ULONG Size; 395 IUnknown **apUnknown; 396 IID iid; 397 } SAFEARR_HAVEIID; 398 399 typedef 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 413 typedef struct _wireSAFEARRAY_UNION { 414 ULONG sfType; 415 union { 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 429 typedef struct _wireSAFEARRAY { 430 USHORT cDims; 431 USHORT fFeatures; 432 ULONG cbElements; 433 ULONG cLocks; 434 SAFEARRAYUNION uArrayStructs; 435 SAFEARRAYBOUND rgsabound[1]; 436 } *wireSAFEARRAY; 437 typedef wireSAFEARRAY *wirePSAFEARRAY; 438 439 typedef struct tagSAFEARRAY { 440 USHORT cDims; 441 USHORT fFeatures; 442 ULONG cbElements; 443 ULONG cLocks; 444 PVOID pvData; 445 SAFEARRAYBOUND rgsabound[1]; 446 } SAFEARRAY; 447 typedef 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 495 typedef struct tagVARIANT VARIANT; 496 497 struct 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 558 typedef VARIANT *LPVARIANT; 559 typedef VARIANT VARIANTARG; 560 typedef VARIANT *LPVARIANTARG; 561 #if 0 562 typedef 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 575 struct _wireBRECORD { 576 ULONG fFlags; 577 ULONG clSize; 578 IRecordInfo *pRecInfo; 579 byte *pRecord; 580 }; 581 582 struct _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 637 typedef LONG DISPID; 638 typedef DISPID MEMBERID; 639 typedef DWORD HREFTYPE; 640 typedef 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 652 typedef 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 661 typedef struct tagARRAYDESC { 662 TYPEDESC tdescElem; 663 USHORT cDims; 664 SAFEARRAYBOUND rgbounds[1]; 665 } ARRAYDESC; 666 667 typedef struct tagPARAMDESCEX { 668 ULONG cBytes; 669 VARIANTARG varDefaultValue; 670 } PARAMDESCEX; 671 typedef struct tagPARAMDESCEX *LPPARAMDESCEX; 672 673 typedef struct tagPARAMDESC { 674 LPPARAMDESCEX pparamdescex; 675 USHORT wParamFlags; 676 } PARAMDESC; 677 typedef 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 696 typedef struct tagIDLDESC { 697 ULONG_PTR dwReserved; 698 USHORT wIDLFlags; 699 } IDLDESC; 700 typedef 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 714 typedef 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 729 typedef 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; 749 typedef struct tagTYPEATTR *LPTYPEATTR; 750 751 typedef struct tagDISPPARAMS { 752 VARIANTARG *rgvarg; 753 DISPID *rgdispidNamedArgs; 754 UINT cArgs; 755 UINT cNamedArgs; 756 } DISPPARAMS; 757 758 #if 0 759 typedef 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 784 typedef 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 798 typedef 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 806 typedef enum tagINVOKEKIND { 807 INVOKE_FUNC = 1, 808 INVOKE_PROPERTYGET = 2, 809 INVOKE_PROPERTYPUT = 4, 810 INVOKE_PROPERTYPUTREF = 8 811 } INVOKEKIND; 812 813 typedef 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; 827 typedef struct tagFUNCDESC *LPFUNCDESC; 828 829 typedef 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 845 typedef 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; 856 typedef struct tagVARDESC *LPVARDESC; 857 858 typedef 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 876 typedef 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 892 typedef 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 908 typedef struct tagCLEANLOCALSTORAGE { 909 IUnknown *pInterface; 910 PVOID pStorage; 911 DWORD flags; 912 } CLEANLOCALSTORAGE; 913 914 typedef struct tagCUSTDATAITEM { 915 GUID guid; 916 VARIANTARG varValue; 917 } CUSTDATAITEM; 918 typedef struct tagCUSTDATAITEM *LPCUSTDATAITEM; 919 920 typedef struct tagCUSTDATA { 921 DWORD cCustData; 922 LPCUSTDATAITEM prgCustData; 923 } CUSTDATA; 924 typedef 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 937 typedef ICreateTypeInfo *LPCREATETYPEINFO; 938 939 DEFINE_GUID(IID_ICreateTypeInfo, 0x00020405, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 940 #if defined(__cplusplus) && !defined(CINTERFACE) 941 MIDL_INTERFACE("00020405-0000-0000-c000-000000000046") 942 ICreateTypeInfo : 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 1034 typedef 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 1160 interface 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 ***/ 1196 static FORCEINLINE HRESULT ICreateTypeInfo_QueryInterface(ICreateTypeInfo* This,REFIID riid,void **ppvObject) { 1197 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1198 } 1199 static FORCEINLINE ULONG ICreateTypeInfo_AddRef(ICreateTypeInfo* This) { 1200 return This->lpVtbl->AddRef(This); 1201 } 1202 static FORCEINLINE ULONG ICreateTypeInfo_Release(ICreateTypeInfo* This) { 1203 return This->lpVtbl->Release(This); 1204 } 1205 /*** ICreateTypeInfo methods ***/ 1206 static FORCEINLINE HRESULT ICreateTypeInfo_SetGuid(ICreateTypeInfo* This,REFGUID guid) { 1207 return This->lpVtbl->SetGuid(This,guid); 1208 } 1209 static FORCEINLINE HRESULT ICreateTypeInfo_SetTypeFlags(ICreateTypeInfo* This,UINT uTypeFlags) { 1210 return This->lpVtbl->SetTypeFlags(This,uTypeFlags); 1211 } 1212 static FORCEINLINE HRESULT ICreateTypeInfo_SetDocString(ICreateTypeInfo* This,LPOLESTR pStrDoc) { 1213 return This->lpVtbl->SetDocString(This,pStrDoc); 1214 } 1215 static FORCEINLINE HRESULT ICreateTypeInfo_SetHelpContext(ICreateTypeInfo* This,DWORD dwHelpContext) { 1216 return This->lpVtbl->SetHelpContext(This,dwHelpContext); 1217 } 1218 static FORCEINLINE HRESULT ICreateTypeInfo_SetVersion(ICreateTypeInfo* This,WORD wMajorVerNum,WORD wMinorVerNum) { 1219 return This->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum); 1220 } 1221 static FORCEINLINE HRESULT ICreateTypeInfo_AddRefTypeInfo(ICreateTypeInfo* This,ITypeInfo *pTInfo,HREFTYPE *phRefType) { 1222 return This->lpVtbl->AddRefTypeInfo(This,pTInfo,phRefType); 1223 } 1224 static FORCEINLINE HRESULT ICreateTypeInfo_AddFuncDesc(ICreateTypeInfo* This,UINT index,FUNCDESC *pFuncDesc) { 1225 return This->lpVtbl->AddFuncDesc(This,index,pFuncDesc); 1226 } 1227 static FORCEINLINE HRESULT ICreateTypeInfo_AddImplType(ICreateTypeInfo* This,UINT index,HREFTYPE hRefType) { 1228 return This->lpVtbl->AddImplType(This,index,hRefType); 1229 } 1230 static FORCEINLINE HRESULT ICreateTypeInfo_SetImplTypeFlags(ICreateTypeInfo* This,UINT index,INT implTypeFlags) { 1231 return This->lpVtbl->SetImplTypeFlags(This,index,implTypeFlags); 1232 } 1233 static FORCEINLINE HRESULT ICreateTypeInfo_SetAlignment(ICreateTypeInfo* This,WORD cbAlignment) { 1234 return This->lpVtbl->SetAlignment(This,cbAlignment); 1235 } 1236 static FORCEINLINE HRESULT ICreateTypeInfo_SetSchema(ICreateTypeInfo* This,LPOLESTR pStrSchema) { 1237 return This->lpVtbl->SetSchema(This,pStrSchema); 1238 } 1239 static FORCEINLINE HRESULT ICreateTypeInfo_AddVarDesc(ICreateTypeInfo* This,UINT index,VARDESC *pVarDesc) { 1240 return This->lpVtbl->AddVarDesc(This,index,pVarDesc); 1241 } 1242 static FORCEINLINE HRESULT ICreateTypeInfo_SetFuncAndParamNames(ICreateTypeInfo* This,UINT index,LPOLESTR *rgszNames,UINT cNames) { 1243 return This->lpVtbl->SetFuncAndParamNames(This,index,rgszNames,cNames); 1244 } 1245 static FORCEINLINE HRESULT ICreateTypeInfo_SetVarName(ICreateTypeInfo* This,UINT index,LPOLESTR szName) { 1246 return This->lpVtbl->SetVarName(This,index,szName); 1247 } 1248 static FORCEINLINE HRESULT ICreateTypeInfo_SetTypeDescAlias(ICreateTypeInfo* This,TYPEDESC *pTDescAlias) { 1249 return This->lpVtbl->SetTypeDescAlias(This,pTDescAlias); 1250 } 1251 static FORCEINLINE HRESULT ICreateTypeInfo_DefineFuncAsDllEntry(ICreateTypeInfo* This,UINT index,LPOLESTR szDllName,LPOLESTR szProcName) { 1252 return This->lpVtbl->DefineFuncAsDllEntry(This,index,szDllName,szProcName); 1253 } 1254 static FORCEINLINE HRESULT ICreateTypeInfo_SetFuncDocString(ICreateTypeInfo* This,UINT index,LPOLESTR szDocString) { 1255 return This->lpVtbl->SetFuncDocString(This,index,szDocString); 1256 } 1257 static FORCEINLINE HRESULT ICreateTypeInfo_SetVarDocString(ICreateTypeInfo* This,UINT index,LPOLESTR szDocString) { 1258 return This->lpVtbl->SetVarDocString(This,index,szDocString); 1259 } 1260 static FORCEINLINE HRESULT ICreateTypeInfo_SetFuncHelpContext(ICreateTypeInfo* This,UINT index,DWORD dwHelpContext) { 1261 return This->lpVtbl->SetFuncHelpContext(This,index,dwHelpContext); 1262 } 1263 static FORCEINLINE HRESULT ICreateTypeInfo_SetVarHelpContext(ICreateTypeInfo* This,UINT index,DWORD dwHelpContext) { 1264 return This->lpVtbl->SetVarHelpContext(This,index,dwHelpContext); 1265 } 1266 static FORCEINLINE HRESULT ICreateTypeInfo_SetMops(ICreateTypeInfo* This,UINT index,BSTR bstrMops) { 1267 return This->lpVtbl->SetMops(This,index,bstrMops); 1268 } 1269 static FORCEINLINE HRESULT ICreateTypeInfo_SetTypeIdldesc(ICreateTypeInfo* This,IDLDESC *pIdlDesc) { 1270 return This->lpVtbl->SetTypeIdldesc(This,pIdlDesc); 1271 } 1272 static FORCEINLINE 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 1290 typedef ICreateTypeInfo2 *LPCREATETYPEINFO2; 1291 1292 DEFINE_GUID(IID_ICreateTypeInfo2, 0x0002040e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 1293 #if defined(__cplusplus) && !defined(CINTERFACE) 1294 MIDL_INTERFACE("0002040e-0000-0000-c000-000000000046") 1295 ICreateTypeInfo2 : 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 1360 typedef 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 1559 interface 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 ***/ 1611 static FORCEINLINE HRESULT ICreateTypeInfo2_QueryInterface(ICreateTypeInfo2* This,REFIID riid,void **ppvObject) { 1612 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1613 } 1614 static FORCEINLINE ULONG ICreateTypeInfo2_AddRef(ICreateTypeInfo2* This) { 1615 return This->lpVtbl->AddRef(This); 1616 } 1617 static FORCEINLINE ULONG ICreateTypeInfo2_Release(ICreateTypeInfo2* This) { 1618 return This->lpVtbl->Release(This); 1619 } 1620 /*** ICreateTypeInfo methods ***/ 1621 static FORCEINLINE HRESULT ICreateTypeInfo2_SetGuid(ICreateTypeInfo2* This,REFGUID guid) { 1622 return This->lpVtbl->SetGuid(This,guid); 1623 } 1624 static FORCEINLINE HRESULT ICreateTypeInfo2_SetTypeFlags(ICreateTypeInfo2* This,UINT uTypeFlags) { 1625 return This->lpVtbl->SetTypeFlags(This,uTypeFlags); 1626 } 1627 static FORCEINLINE HRESULT ICreateTypeInfo2_SetDocString(ICreateTypeInfo2* This,LPOLESTR pStrDoc) { 1628 return This->lpVtbl->SetDocString(This,pStrDoc); 1629 } 1630 static FORCEINLINE HRESULT ICreateTypeInfo2_SetHelpContext(ICreateTypeInfo2* This,DWORD dwHelpContext) { 1631 return This->lpVtbl->SetHelpContext(This,dwHelpContext); 1632 } 1633 static FORCEINLINE HRESULT ICreateTypeInfo2_SetVersion(ICreateTypeInfo2* This,WORD wMajorVerNum,WORD wMinorVerNum) { 1634 return This->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum); 1635 } 1636 static FORCEINLINE HRESULT ICreateTypeInfo2_AddRefTypeInfo(ICreateTypeInfo2* This,ITypeInfo *pTInfo,HREFTYPE *phRefType) { 1637 return This->lpVtbl->AddRefTypeInfo(This,pTInfo,phRefType); 1638 } 1639 static FORCEINLINE HRESULT ICreateTypeInfo2_AddFuncDesc(ICreateTypeInfo2* This,UINT index,FUNCDESC *pFuncDesc) { 1640 return This->lpVtbl->AddFuncDesc(This,index,pFuncDesc); 1641 } 1642 static FORCEINLINE HRESULT ICreateTypeInfo2_AddImplType(ICreateTypeInfo2* This,UINT index,HREFTYPE hRefType) { 1643 return This->lpVtbl->AddImplType(This,index,hRefType); 1644 } 1645 static FORCEINLINE HRESULT ICreateTypeInfo2_SetImplTypeFlags(ICreateTypeInfo2* This,UINT index,INT implTypeFlags) { 1646 return This->lpVtbl->SetImplTypeFlags(This,index,implTypeFlags); 1647 } 1648 static FORCEINLINE HRESULT ICreateTypeInfo2_SetAlignment(ICreateTypeInfo2* This,WORD cbAlignment) { 1649 return This->lpVtbl->SetAlignment(This,cbAlignment); 1650 } 1651 static FORCEINLINE HRESULT ICreateTypeInfo2_SetSchema(ICreateTypeInfo2* This,LPOLESTR pStrSchema) { 1652 return This->lpVtbl->SetSchema(This,pStrSchema); 1653 } 1654 static FORCEINLINE HRESULT ICreateTypeInfo2_AddVarDesc(ICreateTypeInfo2* This,UINT index,VARDESC *pVarDesc) { 1655 return This->lpVtbl->AddVarDesc(This,index,pVarDesc); 1656 } 1657 static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncAndParamNames(ICreateTypeInfo2* This,UINT index,LPOLESTR *rgszNames,UINT cNames) { 1658 return This->lpVtbl->SetFuncAndParamNames(This,index,rgszNames,cNames); 1659 } 1660 static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarName(ICreateTypeInfo2* This,UINT index,LPOLESTR szName) { 1661 return This->lpVtbl->SetVarName(This,index,szName); 1662 } 1663 static FORCEINLINE HRESULT ICreateTypeInfo2_SetTypeDescAlias(ICreateTypeInfo2* This,TYPEDESC *pTDescAlias) { 1664 return This->lpVtbl->SetTypeDescAlias(This,pTDescAlias); 1665 } 1666 static FORCEINLINE HRESULT ICreateTypeInfo2_DefineFuncAsDllEntry(ICreateTypeInfo2* This,UINT index,LPOLESTR szDllName,LPOLESTR szProcName) { 1667 return This->lpVtbl->DefineFuncAsDllEntry(This,index,szDllName,szProcName); 1668 } 1669 static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncDocString(ICreateTypeInfo2* This,UINT index,LPOLESTR szDocString) { 1670 return This->lpVtbl->SetFuncDocString(This,index,szDocString); 1671 } 1672 static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarDocString(ICreateTypeInfo2* This,UINT index,LPOLESTR szDocString) { 1673 return This->lpVtbl->SetVarDocString(This,index,szDocString); 1674 } 1675 static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncHelpContext(ICreateTypeInfo2* This,UINT index,DWORD dwHelpContext) { 1676 return This->lpVtbl->SetFuncHelpContext(This,index,dwHelpContext); 1677 } 1678 static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarHelpContext(ICreateTypeInfo2* This,UINT index,DWORD dwHelpContext) { 1679 return This->lpVtbl->SetVarHelpContext(This,index,dwHelpContext); 1680 } 1681 static FORCEINLINE HRESULT ICreateTypeInfo2_SetMops(ICreateTypeInfo2* This,UINT index,BSTR bstrMops) { 1682 return This->lpVtbl->SetMops(This,index,bstrMops); 1683 } 1684 static FORCEINLINE HRESULT ICreateTypeInfo2_SetTypeIdldesc(ICreateTypeInfo2* This,IDLDESC *pIdlDesc) { 1685 return This->lpVtbl->SetTypeIdldesc(This,pIdlDesc); 1686 } 1687 static FORCEINLINE HRESULT ICreateTypeInfo2_LayOut(ICreateTypeInfo2* This) { 1688 return This->lpVtbl->LayOut(This); 1689 } 1690 /*** ICreateTypeInfo2 methods ***/ 1691 static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteFuncDesc(ICreateTypeInfo2* This,UINT index) { 1692 return This->lpVtbl->DeleteFuncDesc(This,index); 1693 } 1694 static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteFuncDescByMemId(ICreateTypeInfo2* This,MEMBERID memid,INVOKEKIND invKind) { 1695 return This->lpVtbl->DeleteFuncDescByMemId(This,memid,invKind); 1696 } 1697 static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteVarDesc(ICreateTypeInfo2* This,UINT index) { 1698 return This->lpVtbl->DeleteVarDesc(This,index); 1699 } 1700 static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteVarDescByMemId(ICreateTypeInfo2* This,MEMBERID memid) { 1701 return This->lpVtbl->DeleteVarDescByMemId(This,memid); 1702 } 1703 static FORCEINLINE HRESULT ICreateTypeInfo2_DeleteImplType(ICreateTypeInfo2* This,UINT index) { 1704 return This->lpVtbl->DeleteImplType(This,index); 1705 } 1706 static FORCEINLINE HRESULT ICreateTypeInfo2_SetCustData(ICreateTypeInfo2* This,REFGUID guid,VARIANT *pVarVal) { 1707 return This->lpVtbl->SetCustData(This,guid,pVarVal); 1708 } 1709 static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncCustData(ICreateTypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) { 1710 return This->lpVtbl->SetFuncCustData(This,index,guid,pVarVal); 1711 } 1712 static FORCEINLINE HRESULT ICreateTypeInfo2_SetParamCustData(ICreateTypeInfo2* This,UINT indexFunc,UINT indexParam,REFGUID guid,VARIANT *pVarVal) { 1713 return This->lpVtbl->SetParamCustData(This,indexFunc,indexParam,guid,pVarVal); 1714 } 1715 static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarCustData(ICreateTypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) { 1716 return This->lpVtbl->SetVarCustData(This,index,guid,pVarVal); 1717 } 1718 static FORCEINLINE HRESULT ICreateTypeInfo2_SetImplTypeCustData(ICreateTypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) { 1719 return This->lpVtbl->SetImplTypeCustData(This,index,guid,pVarVal); 1720 } 1721 static FORCEINLINE HRESULT ICreateTypeInfo2_SetHelpStringContext(ICreateTypeInfo2* This,ULONG dwHelpStringContext) { 1722 return This->lpVtbl->SetHelpStringContext(This,dwHelpStringContext); 1723 } 1724 static FORCEINLINE HRESULT ICreateTypeInfo2_SetFuncHelpStringContext(ICreateTypeInfo2* This,UINT index,ULONG dwHelpStringContext) { 1725 return This->lpVtbl->SetFuncHelpStringContext(This,index,dwHelpStringContext); 1726 } 1727 static FORCEINLINE HRESULT ICreateTypeInfo2_SetVarHelpStringContext(ICreateTypeInfo2* This,UINT index,ULONG dwHelpStringContext) { 1728 return This->lpVtbl->SetVarHelpStringContext(This,index,dwHelpStringContext); 1729 } 1730 static FORCEINLINE HRESULT ICreateTypeInfo2_Invalidate(ICreateTypeInfo2* This) { 1731 return This->lpVtbl->Invalidate(This); 1732 } 1733 static FORCEINLINE 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 1751 typedef ICreateTypeLib *LPCREATETYPELIB; 1752 1753 DEFINE_GUID(IID_ICreateTypeLib, 0x00020406, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 1754 #if defined(__cplusplus) && !defined(CINTERFACE) 1755 MIDL_INTERFACE("00020406-0000-0000-c000-000000000046") 1756 ICreateTypeLib : 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 1796 typedef 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 1857 interface 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 ***/ 1880 static FORCEINLINE HRESULT ICreateTypeLib_QueryInterface(ICreateTypeLib* This,REFIID riid,void **ppvObject) { 1881 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1882 } 1883 static FORCEINLINE ULONG ICreateTypeLib_AddRef(ICreateTypeLib* This) { 1884 return This->lpVtbl->AddRef(This); 1885 } 1886 static FORCEINLINE ULONG ICreateTypeLib_Release(ICreateTypeLib* This) { 1887 return This->lpVtbl->Release(This); 1888 } 1889 /*** ICreateTypeLib methods ***/ 1890 static FORCEINLINE HRESULT ICreateTypeLib_CreateTypeInfo(ICreateTypeLib* This,LPOLESTR szName,TYPEKIND tkind,ICreateTypeInfo **ppCTInfo) { 1891 return This->lpVtbl->CreateTypeInfo(This,szName,tkind,ppCTInfo); 1892 } 1893 static FORCEINLINE HRESULT ICreateTypeLib_SetName(ICreateTypeLib* This,LPOLESTR szName) { 1894 return This->lpVtbl->SetName(This,szName); 1895 } 1896 static FORCEINLINE HRESULT ICreateTypeLib_SetVersion(ICreateTypeLib* This,WORD wMajorVerNum,WORD wMinorVerNum) { 1897 return This->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum); 1898 } 1899 static FORCEINLINE HRESULT ICreateTypeLib_SetGuid(ICreateTypeLib* This,REFGUID guid) { 1900 return This->lpVtbl->SetGuid(This,guid); 1901 } 1902 static FORCEINLINE HRESULT ICreateTypeLib_SetDocString(ICreateTypeLib* This,LPOLESTR szDoc) { 1903 return This->lpVtbl->SetDocString(This,szDoc); 1904 } 1905 static FORCEINLINE HRESULT ICreateTypeLib_SetHelpFileName(ICreateTypeLib* This,LPOLESTR szHelpFileName) { 1906 return This->lpVtbl->SetHelpFileName(This,szHelpFileName); 1907 } 1908 static FORCEINLINE HRESULT ICreateTypeLib_SetHelpContext(ICreateTypeLib* This,DWORD dwHelpContext) { 1909 return This->lpVtbl->SetHelpContext(This,dwHelpContext); 1910 } 1911 static FORCEINLINE HRESULT ICreateTypeLib_SetLcid(ICreateTypeLib* This,LCID lcid) { 1912 return This->lpVtbl->SetLcid(This,lcid); 1913 } 1914 static FORCEINLINE HRESULT ICreateTypeLib_SetLibFlags(ICreateTypeLib* This,UINT uLibFlags) { 1915 return This->lpVtbl->SetLibFlags(This,uLibFlags); 1916 } 1917 static FORCEINLINE 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 1935 typedef ICreateTypeLib2 *LPCREATETYPELIB2; 1936 DEFINE_GUID(IID_ICreateTypeLib2, 0x0002040f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 1937 #if defined(__cplusplus) && !defined(CINTERFACE) 1938 MIDL_INTERFACE("0002040f-0000-0000-c000-000000000046") 1939 ICreateTypeLib2 : 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 1959 typedef 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 2038 interface 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 ***/ 2066 static FORCEINLINE HRESULT ICreateTypeLib2_QueryInterface(ICreateTypeLib2* This,REFIID riid,void **ppvObject) { 2067 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2068 } 2069 static FORCEINLINE ULONG ICreateTypeLib2_AddRef(ICreateTypeLib2* This) { 2070 return This->lpVtbl->AddRef(This); 2071 } 2072 static FORCEINLINE ULONG ICreateTypeLib2_Release(ICreateTypeLib2* This) { 2073 return This->lpVtbl->Release(This); 2074 } 2075 /*** ICreateTypeLib methods ***/ 2076 static FORCEINLINE HRESULT ICreateTypeLib2_CreateTypeInfo(ICreateTypeLib2* This,LPOLESTR szName,TYPEKIND tkind,ICreateTypeInfo **ppCTInfo) { 2077 return This->lpVtbl->CreateTypeInfo(This,szName,tkind,ppCTInfo); 2078 } 2079 static FORCEINLINE HRESULT ICreateTypeLib2_SetName(ICreateTypeLib2* This,LPOLESTR szName) { 2080 return This->lpVtbl->SetName(This,szName); 2081 } 2082 static FORCEINLINE HRESULT ICreateTypeLib2_SetVersion(ICreateTypeLib2* This,WORD wMajorVerNum,WORD wMinorVerNum) { 2083 return This->lpVtbl->SetVersion(This,wMajorVerNum,wMinorVerNum); 2084 } 2085 static FORCEINLINE HRESULT ICreateTypeLib2_SetGuid(ICreateTypeLib2* This,REFGUID guid) { 2086 return This->lpVtbl->SetGuid(This,guid); 2087 } 2088 static FORCEINLINE HRESULT ICreateTypeLib2_SetDocString(ICreateTypeLib2* This,LPOLESTR szDoc) { 2089 return This->lpVtbl->SetDocString(This,szDoc); 2090 } 2091 static FORCEINLINE HRESULT ICreateTypeLib2_SetHelpFileName(ICreateTypeLib2* This,LPOLESTR szHelpFileName) { 2092 return This->lpVtbl->SetHelpFileName(This,szHelpFileName); 2093 } 2094 static FORCEINLINE HRESULT ICreateTypeLib2_SetHelpContext(ICreateTypeLib2* This,DWORD dwHelpContext) { 2095 return This->lpVtbl->SetHelpContext(This,dwHelpContext); 2096 } 2097 static FORCEINLINE HRESULT ICreateTypeLib2_SetLcid(ICreateTypeLib2* This,LCID lcid) { 2098 return This->lpVtbl->SetLcid(This,lcid); 2099 } 2100 static FORCEINLINE HRESULT ICreateTypeLib2_SetLibFlags(ICreateTypeLib2* This,UINT uLibFlags) { 2101 return This->lpVtbl->SetLibFlags(This,uLibFlags); 2102 } 2103 static FORCEINLINE HRESULT ICreateTypeLib2_SaveAllChanges(ICreateTypeLib2* This) { 2104 return This->lpVtbl->SaveAllChanges(This); 2105 } 2106 /*** ICreateTypeLib2 methods ***/ 2107 static FORCEINLINE HRESULT ICreateTypeLib2_DeleteTypeInfo(ICreateTypeLib2* This,LPOLESTR szName) { 2108 return This->lpVtbl->DeleteTypeInfo(This,szName); 2109 } 2110 static FORCEINLINE HRESULT ICreateTypeLib2_SetCustData(ICreateTypeLib2* This,REFGUID guid,VARIANT *pVarVal) { 2111 return This->lpVtbl->SetCustData(This,guid,pVarVal); 2112 } 2113 static FORCEINLINE HRESULT ICreateTypeLib2_SetHelpStringContext(ICreateTypeLib2* This,ULONG dwHelpStringContext) { 2114 return This->lpVtbl->SetHelpStringContext(This,dwHelpStringContext); 2115 } 2116 static FORCEINLINE 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 2136 typedef 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 2156 DEFINE_GUID(IID_IDispatch, 0x00020400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 2157 #if defined(__cplusplus) && !defined(CINTERFACE) 2158 MIDL_INTERFACE("00020400-0000-0000-c000-000000000046") 2159 IDispatch : 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 2191 typedef 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 2239 interface 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 ***/ 2256 static FORCEINLINE HRESULT IDispatch_QueryInterface(IDispatch* This,REFIID riid,void **ppvObject) { 2257 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2258 } 2259 static FORCEINLINE ULONG IDispatch_AddRef(IDispatch* This) { 2260 return This->lpVtbl->AddRef(This); 2261 } 2262 static FORCEINLINE ULONG IDispatch_Release(IDispatch* This) { 2263 return This->lpVtbl->Release(This); 2264 } 2265 /*** IDispatch methods ***/ 2266 static FORCEINLINE HRESULT IDispatch_GetTypeInfoCount(IDispatch* This,UINT *pctinfo) { 2267 return This->lpVtbl->GetTypeInfoCount(This,pctinfo); 2268 } 2269 static FORCEINLINE HRESULT IDispatch_GetTypeInfo(IDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) { 2270 return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo); 2271 } 2272 static FORCEINLINE 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 } 2275 static FORCEINLINE 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 2283 HRESULT 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); 2296 void __RPC_STUB IDispatch_RemoteInvoke_Stub( 2297 IRpcStubBuffer* This, 2298 IRpcChannelBuffer* pRpcChannelBuffer, 2299 PRPC_MESSAGE pRpcMessage, 2300 DWORD* pdwStubPhase); 2301 HRESULT 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); 2311 HRESULT __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 2334 typedef IEnumVARIANT *LPENUMVARIANT; 2335 2336 DEFINE_GUID(IID_IEnumVARIANT, 0x00020404, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 2337 #if defined(__cplusplus) && !defined(CINTERFACE) 2338 MIDL_INTERFACE("00020404-0000-0000-c000-000000000046") 2339 IEnumVARIANT : 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 2360 typedef 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 2396 interface 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 ***/ 2413 static FORCEINLINE HRESULT IEnumVARIANT_QueryInterface(IEnumVARIANT* This,REFIID riid,void **ppvObject) { 2414 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2415 } 2416 static FORCEINLINE ULONG IEnumVARIANT_AddRef(IEnumVARIANT* This) { 2417 return This->lpVtbl->AddRef(This); 2418 } 2419 static FORCEINLINE ULONG IEnumVARIANT_Release(IEnumVARIANT* This) { 2420 return This->lpVtbl->Release(This); 2421 } 2422 /*** IEnumVARIANT methods ***/ 2423 static FORCEINLINE HRESULT IEnumVARIANT_Next(IEnumVARIANT* This,ULONG celt,VARIANT *rgVar,ULONG *pCeltFetched) { 2424 return This->lpVtbl->Next(This,celt,rgVar,pCeltFetched); 2425 } 2426 static FORCEINLINE HRESULT IEnumVARIANT_Skip(IEnumVARIANT* This,ULONG celt) { 2427 return This->lpVtbl->Skip(This,celt); 2428 } 2429 static FORCEINLINE HRESULT IEnumVARIANT_Reset(IEnumVARIANT* This) { 2430 return This->lpVtbl->Reset(This); 2431 } 2432 static FORCEINLINE HRESULT IEnumVARIANT_Clone(IEnumVARIANT* This,IEnumVARIANT **ppEnum) { 2433 return This->lpVtbl->Clone(This,ppEnum); 2434 } 2435 #endif 2436 #endif 2437 2438 #endif 2439 2440 HRESULT STDMETHODCALLTYPE IEnumVARIANT_RemoteNext_Proxy( 2441 IEnumVARIANT* This, 2442 ULONG celt, 2443 VARIANT *rgVar, 2444 ULONG *pCeltFetched); 2445 void __RPC_STUB IEnumVARIANT_RemoteNext_Stub( 2446 IRpcStubBuffer* This, 2447 IRpcChannelBuffer* pRpcChannelBuffer, 2448 PRPC_MESSAGE pRpcMessage, 2449 DWORD* pdwStubPhase); 2450 HRESULT CALLBACK IEnumVARIANT_Next_Proxy( 2451 IEnumVARIANT* This, 2452 ULONG celt, 2453 VARIANT *rgVar, 2454 ULONG *pCeltFetched); 2455 HRESULT __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 2470 typedef ITypeComp *LPTYPECOMP; 2471 2472 typedef 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 2481 typedef union tagBINDPTR { 2482 FUNCDESC *lpfuncdesc; 2483 VARDESC *lpvardesc; 2484 ITypeComp *lptcomp; 2485 } BINDPTR; 2486 typedef union tagBINDPTR *LPBINDPTR; 2487 2488 DEFINE_GUID(IID_ITypeComp, 0x00020403, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 2489 #if defined(__cplusplus) && !defined(CINTERFACE) 2490 MIDL_INTERFACE("00020403-0000-0000-c000-000000000046") 2491 ITypeComp : 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 2512 typedef 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 2547 interface 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 ***/ 2562 static FORCEINLINE HRESULT ITypeComp_QueryInterface(ITypeComp* This,REFIID riid,void **ppvObject) { 2563 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2564 } 2565 static FORCEINLINE ULONG ITypeComp_AddRef(ITypeComp* This) { 2566 return This->lpVtbl->AddRef(This); 2567 } 2568 static FORCEINLINE ULONG ITypeComp_Release(ITypeComp* This) { 2569 return This->lpVtbl->Release(This); 2570 } 2571 /*** ITypeComp methods ***/ 2572 static FORCEINLINE 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 } 2575 static FORCEINLINE 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 2583 HRESULT 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); 2594 void __RPC_STUB ITypeComp_RemoteBind_Stub( 2595 IRpcStubBuffer* This, 2596 IRpcChannelBuffer* pRpcChannelBuffer, 2597 PRPC_MESSAGE pRpcMessage, 2598 DWORD* pdwStubPhase); 2599 HRESULT STDMETHODCALLTYPE ITypeComp_RemoteBindType_Proxy( 2600 ITypeComp* This, 2601 LPOLESTR szName, 2602 ULONG lHashVal, 2603 ITypeInfo **ppTInfo); 2604 void __RPC_STUB ITypeComp_RemoteBindType_Stub( 2605 IRpcStubBuffer* This, 2606 IRpcChannelBuffer* pRpcChannelBuffer, 2607 PRPC_MESSAGE pRpcMessage, 2608 DWORD* pdwStubPhase); 2609 HRESULT 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); 2617 HRESULT __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); 2628 HRESULT CALLBACK ITypeComp_BindType_Proxy( 2629 ITypeComp* This, 2630 LPOLESTR szName, 2631 ULONG lHashVal, 2632 ITypeInfo **ppTInfo, 2633 ITypeComp **ppTComp); 2634 HRESULT __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 2651 typedef ITypeInfo *LPTYPEINFO; 2652 2653 DEFINE_GUID(IID_ITypeInfo, 0x00020401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 2654 #if defined(__cplusplus) && !defined(CINTERFACE) 2655 MIDL_INTERFACE("00020401-0000-0000-c000-000000000046") 2656 ITypeInfo : 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 2750 typedef 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 2875 interface 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 ***/ 2907 static FORCEINLINE HRESULT ITypeInfo_QueryInterface(ITypeInfo* This,REFIID riid,void **ppvObject) { 2908 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2909 } 2910 static FORCEINLINE ULONG ITypeInfo_AddRef(ITypeInfo* This) { 2911 return This->lpVtbl->AddRef(This); 2912 } 2913 static FORCEINLINE ULONG ITypeInfo_Release(ITypeInfo* This) { 2914 return This->lpVtbl->Release(This); 2915 } 2916 /*** ITypeInfo methods ***/ 2917 static FORCEINLINE HRESULT ITypeInfo_GetTypeAttr(ITypeInfo* This,TYPEATTR **ppTypeAttr) { 2918 return This->lpVtbl->GetTypeAttr(This,ppTypeAttr); 2919 } 2920 static FORCEINLINE HRESULT ITypeInfo_GetTypeComp(ITypeInfo* This,ITypeComp **ppTComp) { 2921 return This->lpVtbl->GetTypeComp(This,ppTComp); 2922 } 2923 static FORCEINLINE HRESULT ITypeInfo_GetFuncDesc(ITypeInfo* This,UINT index,FUNCDESC **ppFuncDesc) { 2924 return This->lpVtbl->GetFuncDesc(This,index,ppFuncDesc); 2925 } 2926 static FORCEINLINE HRESULT ITypeInfo_GetVarDesc(ITypeInfo* This,UINT index,VARDESC **ppVarDesc) { 2927 return This->lpVtbl->GetVarDesc(This,index,ppVarDesc); 2928 } 2929 static FORCEINLINE HRESULT ITypeInfo_GetNames(ITypeInfo* This,MEMBERID memid,BSTR *rgBstrNames,UINT cMaxNames,UINT *pcNames) { 2930 return This->lpVtbl->GetNames(This,memid,rgBstrNames,cMaxNames,pcNames); 2931 } 2932 static FORCEINLINE HRESULT ITypeInfo_GetRefTypeOfImplType(ITypeInfo* This,UINT index,HREFTYPE *pRefType) { 2933 return This->lpVtbl->GetRefTypeOfImplType(This,index,pRefType); 2934 } 2935 static FORCEINLINE HRESULT ITypeInfo_GetImplTypeFlags(ITypeInfo* This,UINT index,INT *pImplTypeFlags) { 2936 return This->lpVtbl->GetImplTypeFlags(This,index,pImplTypeFlags); 2937 } 2938 static FORCEINLINE HRESULT ITypeInfo_GetIDsOfNames(ITypeInfo* This,LPOLESTR *rgszNames,UINT cNames,MEMBERID *pMemId) { 2939 return This->lpVtbl->GetIDsOfNames(This,rgszNames,cNames,pMemId); 2940 } 2941 static FORCEINLINE 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 } 2944 static FORCEINLINE 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 } 2947 static FORCEINLINE 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 } 2950 static FORCEINLINE HRESULT ITypeInfo_GetRefTypeInfo(ITypeInfo* This,HREFTYPE hRefType,ITypeInfo **ppTInfo) { 2951 return This->lpVtbl->GetRefTypeInfo(This,hRefType,ppTInfo); 2952 } 2953 static FORCEINLINE HRESULT ITypeInfo_AddressOfMember(ITypeInfo* This,MEMBERID memid,INVOKEKIND invKind,PVOID *ppv) { 2954 return This->lpVtbl->AddressOfMember(This,memid,invKind,ppv); 2955 } 2956 static FORCEINLINE HRESULT ITypeInfo_CreateInstance(ITypeInfo* This,IUnknown *pUnkOuter,REFIID riid,PVOID *ppvObj) { 2957 return This->lpVtbl->CreateInstance(This,pUnkOuter,riid,ppvObj); 2958 } 2959 static FORCEINLINE HRESULT ITypeInfo_GetMops(ITypeInfo* This,MEMBERID memid,BSTR *pBstrMops) { 2960 return This->lpVtbl->GetMops(This,memid,pBstrMops); 2961 } 2962 static FORCEINLINE HRESULT ITypeInfo_GetContainingTypeLib(ITypeInfo* This,ITypeLib **ppTLib,UINT *pIndex) { 2963 return This->lpVtbl->GetContainingTypeLib(This,ppTLib,pIndex); 2964 } 2965 static FORCEINLINE void ITypeInfo_ReleaseTypeAttr(ITypeInfo* This,TYPEATTR *pTypeAttr) { 2966 This->lpVtbl->ReleaseTypeAttr(This,pTypeAttr); 2967 } 2968 static FORCEINLINE void ITypeInfo_ReleaseFuncDesc(ITypeInfo* This,FUNCDESC *pFuncDesc) { 2969 This->lpVtbl->ReleaseFuncDesc(This,pFuncDesc); 2970 } 2971 static FORCEINLINE void ITypeInfo_ReleaseVarDesc(ITypeInfo* This,VARDESC *pVarDesc) { 2972 This->lpVtbl->ReleaseVarDesc(This,pVarDesc); 2973 } 2974 #endif 2975 #endif 2976 2977 #endif 2978 2979 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetTypeAttr_Proxy( 2980 ITypeInfo* This, 2981 LPTYPEATTR *ppTypeAttr, 2982 CLEANLOCALSTORAGE *pDummy); 2983 void __RPC_STUB ITypeInfo_RemoteGetTypeAttr_Stub( 2984 IRpcStubBuffer* This, 2985 IRpcChannelBuffer* pRpcChannelBuffer, 2986 PRPC_MESSAGE pRpcMessage, 2987 DWORD* pdwStubPhase); 2988 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetFuncDesc_Proxy( 2989 ITypeInfo* This, 2990 UINT index, 2991 LPFUNCDESC *ppFuncDesc, 2992 CLEANLOCALSTORAGE *pDummy); 2993 void __RPC_STUB ITypeInfo_RemoteGetFuncDesc_Stub( 2994 IRpcStubBuffer* This, 2995 IRpcChannelBuffer* pRpcChannelBuffer, 2996 PRPC_MESSAGE pRpcMessage, 2997 DWORD* pdwStubPhase); 2998 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetVarDesc_Proxy( 2999 ITypeInfo* This, 3000 UINT index, 3001 LPVARDESC *ppVarDesc, 3002 CLEANLOCALSTORAGE *pDummy); 3003 void __RPC_STUB ITypeInfo_RemoteGetVarDesc_Stub( 3004 IRpcStubBuffer* This, 3005 IRpcChannelBuffer* pRpcChannelBuffer, 3006 PRPC_MESSAGE pRpcMessage, 3007 DWORD* pdwStubPhase); 3008 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetNames_Proxy( 3009 ITypeInfo* This, 3010 MEMBERID memid, 3011 BSTR *rgBstrNames, 3012 UINT cMaxNames, 3013 UINT *pcNames); 3014 void __RPC_STUB ITypeInfo_RemoteGetNames_Stub( 3015 IRpcStubBuffer* This, 3016 IRpcChannelBuffer* pRpcChannelBuffer, 3017 PRPC_MESSAGE pRpcMessage, 3018 DWORD* pdwStubPhase); 3019 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalGetIDsOfNames_Proxy( 3020 ITypeInfo* This); 3021 void __RPC_STUB ITypeInfo_LocalGetIDsOfNames_Stub( 3022 IRpcStubBuffer* This, 3023 IRpcChannelBuffer* pRpcChannelBuffer, 3024 PRPC_MESSAGE pRpcMessage, 3025 DWORD* pdwStubPhase); 3026 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalInvoke_Proxy( 3027 ITypeInfo* This); 3028 void __RPC_STUB ITypeInfo_LocalInvoke_Stub( 3029 IRpcStubBuffer* This, 3030 IRpcChannelBuffer* pRpcChannelBuffer, 3031 PRPC_MESSAGE pRpcMessage, 3032 DWORD* pdwStubPhase); 3033 HRESULT 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); 3041 void __RPC_STUB ITypeInfo_RemoteGetDocumentation_Stub( 3042 IRpcStubBuffer* This, 3043 IRpcChannelBuffer* pRpcChannelBuffer, 3044 PRPC_MESSAGE pRpcMessage, 3045 DWORD* pdwStubPhase); 3046 HRESULT 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); 3054 void __RPC_STUB ITypeInfo_RemoteGetDllEntry_Stub( 3055 IRpcStubBuffer* This, 3056 IRpcChannelBuffer* pRpcChannelBuffer, 3057 PRPC_MESSAGE pRpcMessage, 3058 DWORD* pdwStubPhase); 3059 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalAddressOfMember_Proxy( 3060 ITypeInfo* This); 3061 void __RPC_STUB ITypeInfo_LocalAddressOfMember_Stub( 3062 IRpcStubBuffer* This, 3063 IRpcChannelBuffer* pRpcChannelBuffer, 3064 PRPC_MESSAGE pRpcMessage, 3065 DWORD* pdwStubPhase); 3066 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteCreateInstance_Proxy( 3067 ITypeInfo* This, 3068 REFIID riid, 3069 IUnknown **ppvObj); 3070 void __RPC_STUB ITypeInfo_RemoteCreateInstance_Stub( 3071 IRpcStubBuffer* This, 3072 IRpcChannelBuffer* pRpcChannelBuffer, 3073 PRPC_MESSAGE pRpcMessage, 3074 DWORD* pdwStubPhase); 3075 HRESULT STDMETHODCALLTYPE ITypeInfo_RemoteGetContainingTypeLib_Proxy( 3076 ITypeInfo* This, 3077 ITypeLib **ppTLib, 3078 UINT *pIndex); 3079 void __RPC_STUB ITypeInfo_RemoteGetContainingTypeLib_Stub( 3080 IRpcStubBuffer* This, 3081 IRpcChannelBuffer* pRpcChannelBuffer, 3082 PRPC_MESSAGE pRpcMessage, 3083 DWORD* pdwStubPhase); 3084 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseTypeAttr_Proxy( 3085 ITypeInfo* This); 3086 void __RPC_STUB ITypeInfo_LocalReleaseTypeAttr_Stub( 3087 IRpcStubBuffer* This, 3088 IRpcChannelBuffer* pRpcChannelBuffer, 3089 PRPC_MESSAGE pRpcMessage, 3090 DWORD* pdwStubPhase); 3091 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseFuncDesc_Proxy( 3092 ITypeInfo* This); 3093 void __RPC_STUB ITypeInfo_LocalReleaseFuncDesc_Stub( 3094 IRpcStubBuffer* This, 3095 IRpcChannelBuffer* pRpcChannelBuffer, 3096 PRPC_MESSAGE pRpcMessage, 3097 DWORD* pdwStubPhase); 3098 HRESULT STDMETHODCALLTYPE ITypeInfo_LocalReleaseVarDesc_Proxy( 3099 ITypeInfo* This); 3100 void __RPC_STUB ITypeInfo_LocalReleaseVarDesc_Stub( 3101 IRpcStubBuffer* This, 3102 IRpcChannelBuffer* pRpcChannelBuffer, 3103 PRPC_MESSAGE pRpcMessage, 3104 DWORD* pdwStubPhase); 3105 HRESULT CALLBACK ITypeInfo_GetTypeAttr_Proxy( 3106 ITypeInfo* This, 3107 TYPEATTR **ppTypeAttr); 3108 HRESULT __RPC_STUB ITypeInfo_GetTypeAttr_Stub( 3109 ITypeInfo* This, 3110 LPTYPEATTR *ppTypeAttr, 3111 CLEANLOCALSTORAGE *pDummy); 3112 HRESULT CALLBACK ITypeInfo_GetFuncDesc_Proxy( 3113 ITypeInfo* This, 3114 UINT index, 3115 FUNCDESC **ppFuncDesc); 3116 HRESULT __RPC_STUB ITypeInfo_GetFuncDesc_Stub( 3117 ITypeInfo* This, 3118 UINT index, 3119 LPFUNCDESC *ppFuncDesc, 3120 CLEANLOCALSTORAGE *pDummy); 3121 HRESULT CALLBACK ITypeInfo_GetVarDesc_Proxy( 3122 ITypeInfo* This, 3123 UINT index, 3124 VARDESC **ppVarDesc); 3125 HRESULT __RPC_STUB ITypeInfo_GetVarDesc_Stub( 3126 ITypeInfo* This, 3127 UINT index, 3128 LPVARDESC *ppVarDesc, 3129 CLEANLOCALSTORAGE *pDummy); 3130 HRESULT CALLBACK ITypeInfo_GetNames_Proxy( 3131 ITypeInfo* This, 3132 MEMBERID memid, 3133 BSTR *rgBstrNames, 3134 UINT cMaxNames, 3135 UINT *pcNames); 3136 HRESULT __RPC_STUB ITypeInfo_GetNames_Stub( 3137 ITypeInfo* This, 3138 MEMBERID memid, 3139 BSTR *rgBstrNames, 3140 UINT cMaxNames, 3141 UINT *pcNames); 3142 HRESULT CALLBACK ITypeInfo_GetIDsOfNames_Proxy( 3143 ITypeInfo* This, 3144 LPOLESTR *rgszNames, 3145 UINT cNames, 3146 MEMBERID *pMemId); 3147 HRESULT __RPC_STUB ITypeInfo_GetIDsOfNames_Stub( 3148 ITypeInfo* This); 3149 HRESULT 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); 3158 HRESULT __RPC_STUB ITypeInfo_Invoke_Stub( 3159 ITypeInfo* This); 3160 HRESULT CALLBACK ITypeInfo_GetDocumentation_Proxy( 3161 ITypeInfo* This, 3162 MEMBERID memid, 3163 BSTR *pBstrName, 3164 BSTR *pBstrDocString, 3165 DWORD *pdwHelpContext, 3166 BSTR *pBstrHelpFile); 3167 HRESULT __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); 3175 HRESULT CALLBACK ITypeInfo_GetDllEntry_Proxy( 3176 ITypeInfo* This, 3177 MEMBERID memid, 3178 INVOKEKIND invKind, 3179 BSTR *pBstrDllName, 3180 BSTR *pBstrName, 3181 WORD *pwOrdinal); 3182 HRESULT __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); 3190 HRESULT CALLBACK ITypeInfo_AddressOfMember_Proxy( 3191 ITypeInfo* This, 3192 MEMBERID memid, 3193 INVOKEKIND invKind, 3194 PVOID *ppv); 3195 HRESULT __RPC_STUB ITypeInfo_AddressOfMember_Stub( 3196 ITypeInfo* This); 3197 HRESULT CALLBACK ITypeInfo_CreateInstance_Proxy( 3198 ITypeInfo* This, 3199 IUnknown *pUnkOuter, 3200 REFIID riid, 3201 PVOID *ppvObj); 3202 HRESULT __RPC_STUB ITypeInfo_CreateInstance_Stub( 3203 ITypeInfo* This, 3204 REFIID riid, 3205 IUnknown **ppvObj); 3206 HRESULT CALLBACK ITypeInfo_GetContainingTypeLib_Proxy( 3207 ITypeInfo* This, 3208 ITypeLib **ppTLib, 3209 UINT *pIndex); 3210 HRESULT __RPC_STUB ITypeInfo_GetContainingTypeLib_Stub( 3211 ITypeInfo* This, 3212 ITypeLib **ppTLib, 3213 UINT *pIndex); 3214 void CALLBACK ITypeInfo_ReleaseTypeAttr_Proxy( 3215 ITypeInfo* This, 3216 TYPEATTR *pTypeAttr); 3217 HRESULT __RPC_STUB ITypeInfo_ReleaseTypeAttr_Stub( 3218 ITypeInfo* This); 3219 void CALLBACK ITypeInfo_ReleaseFuncDesc_Proxy( 3220 ITypeInfo* This, 3221 FUNCDESC *pFuncDesc); 3222 HRESULT __RPC_STUB ITypeInfo_ReleaseFuncDesc_Stub( 3223 ITypeInfo* This); 3224 void CALLBACK ITypeInfo_ReleaseVarDesc_Proxy( 3225 ITypeInfo* This, 3226 VARDESC *pVarDesc); 3227 HRESULT __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 3239 typedef ITypeInfo2 *LPTYPEINFO2; 3240 3241 DEFINE_GUID(IID_ITypeInfo2, 0x00020412, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 3242 #if defined(__cplusplus) && !defined(CINTERFACE) 3243 MIDL_INTERFACE("00020412-0000-0000-c000-000000000046") 3244 ITypeInfo2 : 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 3318 typedef 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 3526 interface 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 ***/ 3574 static FORCEINLINE HRESULT ITypeInfo2_QueryInterface(ITypeInfo2* This,REFIID riid,void **ppvObject) { 3575 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3576 } 3577 static FORCEINLINE ULONG ITypeInfo2_AddRef(ITypeInfo2* This) { 3578 return This->lpVtbl->AddRef(This); 3579 } 3580 static FORCEINLINE ULONG ITypeInfo2_Release(ITypeInfo2* This) { 3581 return This->lpVtbl->Release(This); 3582 } 3583 /*** ITypeInfo methods ***/ 3584 static FORCEINLINE HRESULT ITypeInfo2_GetTypeAttr(ITypeInfo2* This,TYPEATTR **ppTypeAttr) { 3585 return This->lpVtbl->GetTypeAttr(This,ppTypeAttr); 3586 } 3587 static FORCEINLINE HRESULT ITypeInfo2_GetTypeComp(ITypeInfo2* This,ITypeComp **ppTComp) { 3588 return This->lpVtbl->GetTypeComp(This,ppTComp); 3589 } 3590 static FORCEINLINE HRESULT ITypeInfo2_GetFuncDesc(ITypeInfo2* This,UINT index,FUNCDESC **ppFuncDesc) { 3591 return This->lpVtbl->GetFuncDesc(This,index,ppFuncDesc); 3592 } 3593 static FORCEINLINE HRESULT ITypeInfo2_GetVarDesc(ITypeInfo2* This,UINT index,VARDESC **ppVarDesc) { 3594 return This->lpVtbl->GetVarDesc(This,index,ppVarDesc); 3595 } 3596 static FORCEINLINE HRESULT ITypeInfo2_GetNames(ITypeInfo2* This,MEMBERID memid,BSTR *rgBstrNames,UINT cMaxNames,UINT *pcNames) { 3597 return This->lpVtbl->GetNames(This,memid,rgBstrNames,cMaxNames,pcNames); 3598 } 3599 static FORCEINLINE HRESULT ITypeInfo2_GetRefTypeOfImplType(ITypeInfo2* This,UINT index,HREFTYPE *pRefType) { 3600 return This->lpVtbl->GetRefTypeOfImplType(This,index,pRefType); 3601 } 3602 static FORCEINLINE HRESULT ITypeInfo2_GetImplTypeFlags(ITypeInfo2* This,UINT index,INT *pImplTypeFlags) { 3603 return This->lpVtbl->GetImplTypeFlags(This,index,pImplTypeFlags); 3604 } 3605 static FORCEINLINE HRESULT ITypeInfo2_GetIDsOfNames(ITypeInfo2* This,LPOLESTR *rgszNames,UINT cNames,MEMBERID *pMemId) { 3606 return This->lpVtbl->GetIDsOfNames(This,rgszNames,cNames,pMemId); 3607 } 3608 static FORCEINLINE 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 } 3611 static FORCEINLINE 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 } 3614 static FORCEINLINE 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 } 3617 static FORCEINLINE HRESULT ITypeInfo2_GetRefTypeInfo(ITypeInfo2* This,HREFTYPE hRefType,ITypeInfo **ppTInfo) { 3618 return This->lpVtbl->GetRefTypeInfo(This,hRefType,ppTInfo); 3619 } 3620 static FORCEINLINE HRESULT ITypeInfo2_AddressOfMember(ITypeInfo2* This,MEMBERID memid,INVOKEKIND invKind,PVOID *ppv) { 3621 return This->lpVtbl->AddressOfMember(This,memid,invKind,ppv); 3622 } 3623 static FORCEINLINE HRESULT ITypeInfo2_CreateInstance(ITypeInfo2* This,IUnknown *pUnkOuter,REFIID riid,PVOID *ppvObj) { 3624 return This->lpVtbl->CreateInstance(This,pUnkOuter,riid,ppvObj); 3625 } 3626 static FORCEINLINE HRESULT ITypeInfo2_GetMops(ITypeInfo2* This,MEMBERID memid,BSTR *pBstrMops) { 3627 return This->lpVtbl->GetMops(This,memid,pBstrMops); 3628 } 3629 static FORCEINLINE HRESULT ITypeInfo2_GetContainingTypeLib(ITypeInfo2* This,ITypeLib **ppTLib,UINT *pIndex) { 3630 return This->lpVtbl->GetContainingTypeLib(This,ppTLib,pIndex); 3631 } 3632 static FORCEINLINE void ITypeInfo2_ReleaseTypeAttr(ITypeInfo2* This,TYPEATTR *pTypeAttr) { 3633 This->lpVtbl->ReleaseTypeAttr(This,pTypeAttr); 3634 } 3635 static FORCEINLINE void ITypeInfo2_ReleaseFuncDesc(ITypeInfo2* This,FUNCDESC *pFuncDesc) { 3636 This->lpVtbl->ReleaseFuncDesc(This,pFuncDesc); 3637 } 3638 static FORCEINLINE void ITypeInfo2_ReleaseVarDesc(ITypeInfo2* This,VARDESC *pVarDesc) { 3639 This->lpVtbl->ReleaseVarDesc(This,pVarDesc); 3640 } 3641 /*** ITypeInfo2 methods ***/ 3642 static FORCEINLINE HRESULT ITypeInfo2_GetTypeKind(ITypeInfo2* This,TYPEKIND *pTypeKind) { 3643 return This->lpVtbl->GetTypeKind(This,pTypeKind); 3644 } 3645 static FORCEINLINE HRESULT ITypeInfo2_GetTypeFlags(ITypeInfo2* This,ULONG *pTypeFlags) { 3646 return This->lpVtbl->GetTypeFlags(This,pTypeFlags); 3647 } 3648 static FORCEINLINE HRESULT ITypeInfo2_GetFuncIndexOfMemId(ITypeInfo2* This,MEMBERID memid,INVOKEKIND invKind,UINT *pFuncIndex) { 3649 return This->lpVtbl->GetFuncIndexOfMemId(This,memid,invKind,pFuncIndex); 3650 } 3651 static FORCEINLINE HRESULT ITypeInfo2_GetVarIndexOfMemId(ITypeInfo2* This,MEMBERID memid,UINT *pVarIndex) { 3652 return This->lpVtbl->GetVarIndexOfMemId(This,memid,pVarIndex); 3653 } 3654 static FORCEINLINE HRESULT ITypeInfo2_GetCustData(ITypeInfo2* This,REFGUID guid,VARIANT *pVarVal) { 3655 return This->lpVtbl->GetCustData(This,guid,pVarVal); 3656 } 3657 static FORCEINLINE HRESULT ITypeInfo2_GetFuncCustData(ITypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) { 3658 return This->lpVtbl->GetFuncCustData(This,index,guid,pVarVal); 3659 } 3660 static FORCEINLINE HRESULT ITypeInfo2_GetParamCustData(ITypeInfo2* This,UINT indexFunc,UINT indexParam,REFGUID guid,VARIANT *pVarVal) { 3661 return This->lpVtbl->GetParamCustData(This,indexFunc,indexParam,guid,pVarVal); 3662 } 3663 static FORCEINLINE HRESULT ITypeInfo2_GetVarCustData(ITypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) { 3664 return This->lpVtbl->GetVarCustData(This,index,guid,pVarVal); 3665 } 3666 static FORCEINLINE HRESULT ITypeInfo2_GetImplTypeCustData(ITypeInfo2* This,UINT index,REFGUID guid,VARIANT *pVarVal) { 3667 return This->lpVtbl->GetImplTypeCustData(This,index,guid,pVarVal); 3668 } 3669 static FORCEINLINE 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 } 3672 static FORCEINLINE HRESULT ITypeInfo2_GetAllCustData(ITypeInfo2* This,CUSTDATA *pCustData) { 3673 return This->lpVtbl->GetAllCustData(This,pCustData); 3674 } 3675 static FORCEINLINE HRESULT ITypeInfo2_GetAllFuncCustData(ITypeInfo2* This,UINT index,CUSTDATA *pCustData) { 3676 return This->lpVtbl->GetAllFuncCustData(This,index,pCustData); 3677 } 3678 static FORCEINLINE HRESULT ITypeInfo2_GetAllParamCustData(ITypeInfo2* This,UINT indexFunc,UINT indexParam,CUSTDATA *pCustData) { 3679 return This->lpVtbl->GetAllParamCustData(This,indexFunc,indexParam,pCustData); 3680 } 3681 static FORCEINLINE HRESULT ITypeInfo2_GetAllVarCustData(ITypeInfo2* This,UINT index,CUSTDATA *pCustData) { 3682 return This->lpVtbl->GetAllVarCustData(This,index,pCustData); 3683 } 3684 static FORCEINLINE 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 3692 HRESULT 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); 3700 void __RPC_STUB ITypeInfo2_RemoteGetDocumentation2_Stub( 3701 IRpcStubBuffer* This, 3702 IRpcChannelBuffer* pRpcChannelBuffer, 3703 PRPC_MESSAGE pRpcMessage, 3704 DWORD* pdwStubPhase); 3705 HRESULT CALLBACK ITypeInfo2_GetDocumentation2_Proxy( 3706 ITypeInfo2* This, 3707 MEMBERID memid, 3708 LCID lcid, 3709 BSTR *pbstrHelpString, 3710 DWORD *pdwHelpStringContext, 3711 BSTR *pbstrHelpStringDll); 3712 HRESULT __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 3732 typedef enum tagSYSKIND { 3733 SYS_WIN16 = 0, 3734 SYS_WIN32 = 1, 3735 SYS_MAC = 2, 3736 SYS_WIN64 = 3 3737 } SYSKIND; 3738 3739 typedef enum tagLIBFLAGS { 3740 LIBFLAG_FRESTRICTED = 0x1, 3741 LIBFLAG_FCONTROL = 0x2, 3742 LIBFLAG_FHIDDEN = 0x4, 3743 LIBFLAG_FHASDISKIMAGE = 0x8 3744 } LIBFLAGS; 3745 3746 typedef ITypeLib *LPTYPELIB; 3747 3748 typedef struct tagTLIBATTR { 3749 GUID guid; 3750 LCID lcid; 3751 SYSKIND syskind; 3752 WORD wMajorVerNum; 3753 WORD wMinorVerNum; 3754 WORD wLibFlags; 3755 } TLIBATTR; 3756 typedef struct tagTLIBATTR *LPTLIBATTR; 3757 3758 DEFINE_GUID(IID_ITypeLib, 0x00020402, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 3759 #if defined(__cplusplus) && !defined(CINTERFACE) 3760 MIDL_INTERFACE("00020402-0000-0000-c000-000000000046") 3761 ITypeLib : 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 3811 typedef 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 3882 interface 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 ***/ 3905 static FORCEINLINE HRESULT ITypeLib_QueryInterface(ITypeLib* This,REFIID riid,void **ppvObject) { 3906 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3907 } 3908 static FORCEINLINE ULONG ITypeLib_AddRef(ITypeLib* This) { 3909 return This->lpVtbl->AddRef(This); 3910 } 3911 static FORCEINLINE ULONG ITypeLib_Release(ITypeLib* This) { 3912 return This->lpVtbl->Release(This); 3913 } 3914 /*** ITypeLib methods ***/ 3915 static FORCEINLINE UINT ITypeLib_GetTypeInfoCount(ITypeLib* This) { 3916 return This->lpVtbl->GetTypeInfoCount(This); 3917 } 3918 static FORCEINLINE HRESULT ITypeLib_GetTypeInfo(ITypeLib* This,UINT index,ITypeInfo **ppTInfo) { 3919 return This->lpVtbl->GetTypeInfo(This,index,ppTInfo); 3920 } 3921 static FORCEINLINE HRESULT ITypeLib_GetTypeInfoType(ITypeLib* This,UINT index,TYPEKIND *pTKind) { 3922 return This->lpVtbl->GetTypeInfoType(This,index,pTKind); 3923 } 3924 static FORCEINLINE HRESULT ITypeLib_GetTypeInfoOfGuid(ITypeLib* This,REFGUID guid,ITypeInfo **ppTinfo) { 3925 return This->lpVtbl->GetTypeInfoOfGuid(This,guid,ppTinfo); 3926 } 3927 static FORCEINLINE HRESULT ITypeLib_GetLibAttr(ITypeLib* This,TLIBATTR **ppTLibAttr) { 3928 return This->lpVtbl->GetLibAttr(This,ppTLibAttr); 3929 } 3930 static FORCEINLINE HRESULT ITypeLib_GetTypeComp(ITypeLib* This,ITypeComp **ppTComp) { 3931 return This->lpVtbl->GetTypeComp(This,ppTComp); 3932 } 3933 static FORCEINLINE 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 } 3936 static FORCEINLINE HRESULT ITypeLib_IsName(ITypeLib* This,LPOLESTR szNameBuf,ULONG lHashVal,WINBOOL *pfName) { 3937 return This->lpVtbl->IsName(This,szNameBuf,lHashVal,pfName); 3938 } 3939 static FORCEINLINE 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 } 3942 static FORCEINLINE void ITypeLib_ReleaseTLibAttr(ITypeLib* This,TLIBATTR *pTLibAttr) { 3943 This->lpVtbl->ReleaseTLibAttr(This,pTLibAttr); 3944 } 3945 #endif 3946 #endif 3947 3948 #endif 3949 3950 HRESULT STDMETHODCALLTYPE ITypeLib_RemoteGetTypeInfoCount_Proxy( 3951 ITypeLib* This, 3952 UINT *pcTInfo); 3953 void __RPC_STUB ITypeLib_RemoteGetTypeInfoCount_Stub( 3954 IRpcStubBuffer* This, 3955 IRpcChannelBuffer* pRpcChannelBuffer, 3956 PRPC_MESSAGE pRpcMessage, 3957 DWORD* pdwStubPhase); 3958 HRESULT STDMETHODCALLTYPE ITypeLib_RemoteGetLibAttr_Proxy( 3959 ITypeLib* This, 3960 LPTLIBATTR *ppTLibAttr, 3961 CLEANLOCALSTORAGE *pDummy); 3962 void __RPC_STUB ITypeLib_RemoteGetLibAttr_Stub( 3963 IRpcStubBuffer* This, 3964 IRpcChannelBuffer* pRpcChannelBuffer, 3965 PRPC_MESSAGE pRpcMessage, 3966 DWORD* pdwStubPhase); 3967 HRESULT 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); 3975 void __RPC_STUB ITypeLib_RemoteGetDocumentation_Stub( 3976 IRpcStubBuffer* This, 3977 IRpcChannelBuffer* pRpcChannelBuffer, 3978 PRPC_MESSAGE pRpcMessage, 3979 DWORD* pdwStubPhase); 3980 HRESULT STDMETHODCALLTYPE ITypeLib_RemoteIsName_Proxy( 3981 ITypeLib* This, 3982 LPOLESTR szNameBuf, 3983 ULONG lHashVal, 3984 WINBOOL *pfName, 3985 BSTR *pBstrLibName); 3986 void __RPC_STUB ITypeLib_RemoteIsName_Stub( 3987 IRpcStubBuffer* This, 3988 IRpcChannelBuffer* pRpcChannelBuffer, 3989 PRPC_MESSAGE pRpcMessage, 3990 DWORD* pdwStubPhase); 3991 HRESULT 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); 3999 void __RPC_STUB ITypeLib_RemoteFindName_Stub( 4000 IRpcStubBuffer* This, 4001 IRpcChannelBuffer* pRpcChannelBuffer, 4002 PRPC_MESSAGE pRpcMessage, 4003 DWORD* pdwStubPhase); 4004 HRESULT STDMETHODCALLTYPE ITypeLib_LocalReleaseTLibAttr_Proxy( 4005 ITypeLib* This); 4006 void __RPC_STUB ITypeLib_LocalReleaseTLibAttr_Stub( 4007 IRpcStubBuffer* This, 4008 IRpcChannelBuffer* pRpcChannelBuffer, 4009 PRPC_MESSAGE pRpcMessage, 4010 DWORD* pdwStubPhase); 4011 UINT CALLBACK ITypeLib_GetTypeInfoCount_Proxy( 4012 ITypeLib* This); 4013 HRESULT __RPC_STUB ITypeLib_GetTypeInfoCount_Stub( 4014 ITypeLib* This, 4015 UINT *pcTInfo); 4016 HRESULT CALLBACK ITypeLib_GetLibAttr_Proxy( 4017 ITypeLib* This, 4018 TLIBATTR **ppTLibAttr); 4019 HRESULT __RPC_STUB ITypeLib_GetLibAttr_Stub( 4020 ITypeLib* This, 4021 LPTLIBATTR *ppTLibAttr, 4022 CLEANLOCALSTORAGE *pDummy); 4023 HRESULT CALLBACK ITypeLib_GetDocumentation_Proxy( 4024 ITypeLib* This, 4025 INT index, 4026 BSTR *pBstrName, 4027 BSTR *pBstrDocString, 4028 DWORD *pdwHelpContext, 4029 BSTR *pBstrHelpFile); 4030 HRESULT __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); 4038 HRESULT CALLBACK ITypeLib_IsName_Proxy( 4039 ITypeLib* This, 4040 LPOLESTR szNameBuf, 4041 ULONG lHashVal, 4042 WINBOOL *pfName); 4043 HRESULT __RPC_STUB ITypeLib_IsName_Stub( 4044 ITypeLib* This, 4045 LPOLESTR szNameBuf, 4046 ULONG lHashVal, 4047 WINBOOL *pfName, 4048 BSTR *pBstrLibName); 4049 HRESULT CALLBACK ITypeLib_FindName_Proxy( 4050 ITypeLib* This, 4051 LPOLESTR szNameBuf, 4052 ULONG lHashVal, 4053 ITypeInfo **ppTInfo, 4054 MEMBERID *rgMemId, 4055 USHORT *pcFound); 4056 HRESULT __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); 4064 void CALLBACK ITypeLib_ReleaseTLibAttr_Proxy( 4065 ITypeLib* This, 4066 TLIBATTR *pTLibAttr); 4067 HRESULT __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 4081 typedef ITypeLib2 *LPTYPELIB2; 4082 4083 DEFINE_GUID(IID_ITypeLib2, 0x00020411, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 4084 #if defined(__cplusplus) && !defined(CINTERFACE) 4085 MIDL_INTERFACE("00020411-0000-0000-c000-000000000046") 4086 ITypeLib2 : 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 4111 typedef 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 4205 interface 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 ***/ 4233 static FORCEINLINE HRESULT ITypeLib2_QueryInterface(ITypeLib2* This,REFIID riid,void **ppvObject) { 4234 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4235 } 4236 static FORCEINLINE ULONG ITypeLib2_AddRef(ITypeLib2* This) { 4237 return This->lpVtbl->AddRef(This); 4238 } 4239 static FORCEINLINE ULONG ITypeLib2_Release(ITypeLib2* This) { 4240 return This->lpVtbl->Release(This); 4241 } 4242 /*** ITypeLib methods ***/ 4243 static FORCEINLINE UINT ITypeLib2_GetTypeInfoCount(ITypeLib2* This) { 4244 return This->lpVtbl->GetTypeInfoCount(This); 4245 } 4246 static FORCEINLINE HRESULT ITypeLib2_GetTypeInfo(ITypeLib2* This,UINT index,ITypeInfo **ppTInfo) { 4247 return This->lpVtbl->GetTypeInfo(This,index,ppTInfo); 4248 } 4249 static FORCEINLINE HRESULT ITypeLib2_GetTypeInfoType(ITypeLib2* This,UINT index,TYPEKIND *pTKind) { 4250 return This->lpVtbl->GetTypeInfoType(This,index,pTKind); 4251 } 4252 static FORCEINLINE HRESULT ITypeLib2_GetTypeInfoOfGuid(ITypeLib2* This,REFGUID guid,ITypeInfo **ppTinfo) { 4253 return This->lpVtbl->GetTypeInfoOfGuid(This,guid,ppTinfo); 4254 } 4255 static FORCEINLINE HRESULT ITypeLib2_GetLibAttr(ITypeLib2* This,TLIBATTR **ppTLibAttr) { 4256 return This->lpVtbl->GetLibAttr(This,ppTLibAttr); 4257 } 4258 static FORCEINLINE HRESULT ITypeLib2_GetTypeComp(ITypeLib2* This,ITypeComp **ppTComp) { 4259 return This->lpVtbl->GetTypeComp(This,ppTComp); 4260 } 4261 static FORCEINLINE 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 } 4264 static FORCEINLINE HRESULT ITypeLib2_IsName(ITypeLib2* This,LPOLESTR szNameBuf,ULONG lHashVal,WINBOOL *pfName) { 4265 return This->lpVtbl->IsName(This,szNameBuf,lHashVal,pfName); 4266 } 4267 static FORCEINLINE 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 } 4270 static FORCEINLINE void ITypeLib2_ReleaseTLibAttr(ITypeLib2* This,TLIBATTR *pTLibAttr) { 4271 This->lpVtbl->ReleaseTLibAttr(This,pTLibAttr); 4272 } 4273 /*** ITypeLib2 methods ***/ 4274 static FORCEINLINE HRESULT ITypeLib2_GetCustData(ITypeLib2* This,REFGUID guid,VARIANT *pVarVal) { 4275 return This->lpVtbl->GetCustData(This,guid,pVarVal); 4276 } 4277 static FORCEINLINE HRESULT ITypeLib2_GetLibStatistics(ITypeLib2* This,ULONG *pcUniqueNames,ULONG *pcchUniqueNames) { 4278 return This->lpVtbl->GetLibStatistics(This,pcUniqueNames,pcchUniqueNames); 4279 } 4280 static FORCEINLINE 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 } 4283 static FORCEINLINE HRESULT ITypeLib2_GetAllCustData(ITypeLib2* This,CUSTDATA *pCustData) { 4284 return This->lpVtbl->GetAllCustData(This,pCustData); 4285 } 4286 #endif 4287 #endif 4288 4289 #endif 4290 4291 HRESULT STDMETHODCALLTYPE ITypeLib2_RemoteGetLibStatistics_Proxy( 4292 ITypeLib2* This, 4293 ULONG *pcUniqueNames, 4294 ULONG *pcchUniqueNames); 4295 void __RPC_STUB ITypeLib2_RemoteGetLibStatistics_Stub( 4296 IRpcStubBuffer* This, 4297 IRpcChannelBuffer* pRpcChannelBuffer, 4298 PRPC_MESSAGE pRpcMessage, 4299 DWORD* pdwStubPhase); 4300 HRESULT 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); 4308 void __RPC_STUB ITypeLib2_RemoteGetDocumentation2_Stub( 4309 IRpcStubBuffer* This, 4310 IRpcChannelBuffer* pRpcChannelBuffer, 4311 PRPC_MESSAGE pRpcMessage, 4312 DWORD* pdwStubPhase); 4313 HRESULT CALLBACK ITypeLib2_GetLibStatistics_Proxy( 4314 ITypeLib2* This, 4315 ULONG *pcUniqueNames, 4316 ULONG *pcchUniqueNames); 4317 HRESULT __RPC_STUB ITypeLib2_GetLibStatistics_Stub( 4318 ITypeLib2* This, 4319 ULONG *pcUniqueNames, 4320 ULONG *pcchUniqueNames); 4321 HRESULT CALLBACK ITypeLib2_GetDocumentation2_Proxy( 4322 ITypeLib2* This, 4323 INT index, 4324 LCID lcid, 4325 BSTR *pbstrHelpString, 4326 DWORD *pdwHelpStringContext, 4327 BSTR *pbstrHelpStringDll); 4328 HRESULT __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 4346 typedef ITypeChangeEvents *LPTYPECHANGEEVENTS; 4347 4348 typedef 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 4359 DEFINE_GUID(IID_ITypeChangeEvents, 0x00020410, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 4360 #if defined(__cplusplus) && !defined(CINTERFACE) 4361 MIDL_INTERFACE("00020410-0000-0000-c000-000000000046") 4362 ITypeChangeEvents : 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 4380 typedef 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 4412 interface 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 ***/ 4427 static FORCEINLINE HRESULT ITypeChangeEvents_QueryInterface(ITypeChangeEvents* This,REFIID riid,void **ppvObject) { 4428 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4429 } 4430 static FORCEINLINE ULONG ITypeChangeEvents_AddRef(ITypeChangeEvents* This) { 4431 return This->lpVtbl->AddRef(This); 4432 } 4433 static FORCEINLINE ULONG ITypeChangeEvents_Release(ITypeChangeEvents* This) { 4434 return This->lpVtbl->Release(This); 4435 } 4436 /*** ITypeChangeEvents methods ***/ 4437 static FORCEINLINE HRESULT ITypeChangeEvents_RequestTypeChange(ITypeChangeEvents* This,CHANGEKIND changeKind,ITypeInfo *pTInfoBefore,LPOLESTR pStrName,INT *pfCancel) { 4438 return This->lpVtbl->RequestTypeChange(This,changeKind,pTInfoBefore,pStrName,pfCancel); 4439 } 4440 static FORCEINLINE 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 4458 typedef IErrorInfo *LPERRORINFO; 4459 4460 DEFINE_GUID(IID_IErrorInfo, 0x1cf2b120, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19); 4461 #if defined(__cplusplus) && !defined(CINTERFACE) 4462 MIDL_INTERFACE("1cf2b120-547d-101b-8e65-08002b2bd119") 4463 IErrorInfo : 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 4485 typedef 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 4524 interface 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 ***/ 4542 static FORCEINLINE HRESULT IErrorInfo_QueryInterface(IErrorInfo* This,REFIID riid,void **ppvObject) { 4543 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4544 } 4545 static FORCEINLINE ULONG IErrorInfo_AddRef(IErrorInfo* This) { 4546 return This->lpVtbl->AddRef(This); 4547 } 4548 static FORCEINLINE ULONG IErrorInfo_Release(IErrorInfo* This) { 4549 return This->lpVtbl->Release(This); 4550 } 4551 /*** IErrorInfo methods ***/ 4552 static FORCEINLINE HRESULT IErrorInfo_GetGUID(IErrorInfo* This,GUID *pGUID) { 4553 return This->lpVtbl->GetGUID(This,pGUID); 4554 } 4555 static FORCEINLINE HRESULT IErrorInfo_GetSource(IErrorInfo* This,BSTR *pBstrSource) { 4556 return This->lpVtbl->GetSource(This,pBstrSource); 4557 } 4558 static FORCEINLINE HRESULT IErrorInfo_GetDescription(IErrorInfo* This,BSTR *pBstrDescription) { 4559 return This->lpVtbl->GetDescription(This,pBstrDescription); 4560 } 4561 static FORCEINLINE HRESULT IErrorInfo_GetHelpFile(IErrorInfo* This,BSTR *pBstrHelpFile) { 4562 return This->lpVtbl->GetHelpFile(This,pBstrHelpFile); 4563 } 4564 static FORCEINLINE 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 4582 typedef ICreateErrorInfo *LPCREATEERRORINFO; 4583 4584 DEFINE_GUID(IID_ICreateErrorInfo, 0x22f03340, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19); 4585 #if defined(__cplusplus) && !defined(CINTERFACE) 4586 MIDL_INTERFACE("22f03340-547d-101b-8e65-08002b2bd119") 4587 ICreateErrorInfo : 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 4609 typedef 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 4648 interface 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 ***/ 4666 static FORCEINLINE HRESULT ICreateErrorInfo_QueryInterface(ICreateErrorInfo* This,REFIID riid,void **ppvObject) { 4667 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4668 } 4669 static FORCEINLINE ULONG ICreateErrorInfo_AddRef(ICreateErrorInfo* This) { 4670 return This->lpVtbl->AddRef(This); 4671 } 4672 static FORCEINLINE ULONG ICreateErrorInfo_Release(ICreateErrorInfo* This) { 4673 return This->lpVtbl->Release(This); 4674 } 4675 /*** ICreateErrorInfo methods ***/ 4676 static FORCEINLINE HRESULT ICreateErrorInfo_SetGUID(ICreateErrorInfo* This,REFGUID rguid) { 4677 return This->lpVtbl->SetGUID(This,rguid); 4678 } 4679 static FORCEINLINE HRESULT ICreateErrorInfo_SetSource(ICreateErrorInfo* This,LPOLESTR szSource) { 4680 return This->lpVtbl->SetSource(This,szSource); 4681 } 4682 static FORCEINLINE HRESULT ICreateErrorInfo_SetDescription(ICreateErrorInfo* This,LPOLESTR szDescription) { 4683 return This->lpVtbl->SetDescription(This,szDescription); 4684 } 4685 static FORCEINLINE HRESULT ICreateErrorInfo_SetHelpFile(ICreateErrorInfo* This,LPOLESTR szHelpFile) { 4686 return This->lpVtbl->SetHelpFile(This,szHelpFile); 4687 } 4688 static FORCEINLINE 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 4706 typedef ISupportErrorInfo *LPSUPPORTERRORINFO; 4707 4708 DEFINE_GUID(IID_ISupportErrorInfo, 0xdf0b3d60, 0x548f, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19); 4709 #if defined(__cplusplus) && !defined(CINTERFACE) 4710 MIDL_INTERFACE("df0b3d60-548f-101b-8e65-08002b2bd119") 4711 ISupportErrorInfo : 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 4721 typedef 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 4744 interface 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 ***/ 4758 static FORCEINLINE HRESULT ISupportErrorInfo_QueryInterface(ISupportErrorInfo* This,REFIID riid,void **ppvObject) { 4759 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4760 } 4761 static FORCEINLINE ULONG ISupportErrorInfo_AddRef(ISupportErrorInfo* This) { 4762 return This->lpVtbl->AddRef(This); 4763 } 4764 static FORCEINLINE ULONG ISupportErrorInfo_Release(ISupportErrorInfo* This) { 4765 return This->lpVtbl->Release(This); 4766 } 4767 /*** ISupportErrorInfo methods ***/ 4768 static FORCEINLINE 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 4786 DEFINE_GUID(IID_ITypeFactory, 0x0000002e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 4787 #if defined(__cplusplus) && !defined(CINTERFACE) 4788 MIDL_INTERFACE("0000002e-0000-0000-c000-000000000046") 4789 ITypeFactory : 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 4801 typedef 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 4826 interface 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 ***/ 4840 static FORCEINLINE HRESULT ITypeFactory_QueryInterface(ITypeFactory* This,REFIID riid,void **ppvObject) { 4841 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4842 } 4843 static FORCEINLINE ULONG ITypeFactory_AddRef(ITypeFactory* This) { 4844 return This->lpVtbl->AddRef(This); 4845 } 4846 static FORCEINLINE ULONG ITypeFactory_Release(ITypeFactory* This) { 4847 return This->lpVtbl->Release(This); 4848 } 4849 /*** ITypeFactory methods ***/ 4850 static FORCEINLINE 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 4868 DEFINE_GUID(IID_ITypeMarshal, 0x0000002d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 4869 #if defined(__cplusplus) && !defined(CINTERFACE) 4870 MIDL_INTERFACE("0000002d-0000-0000-c000-000000000046") 4871 ITypeMarshal : 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 4902 typedef 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 4949 interface 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 ***/ 4966 static FORCEINLINE HRESULT ITypeMarshal_QueryInterface(ITypeMarshal* This,REFIID riid,void **ppvObject) { 4967 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4968 } 4969 static FORCEINLINE ULONG ITypeMarshal_AddRef(ITypeMarshal* This) { 4970 return This->lpVtbl->AddRef(This); 4971 } 4972 static FORCEINLINE ULONG ITypeMarshal_Release(ITypeMarshal* This) { 4973 return This->lpVtbl->Release(This); 4974 } 4975 /*** ITypeMarshal methods ***/ 4976 static FORCEINLINE HRESULT ITypeMarshal_Size(ITypeMarshal* This,PVOID pvType,DWORD dwDestContext,PVOID pvDestContext,ULONG *pSize) { 4977 return This->lpVtbl->Size(This,pvType,dwDestContext,pvDestContext,pSize); 4978 } 4979 static FORCEINLINE 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 } 4982 static FORCEINLINE 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 } 4985 static FORCEINLINE 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 5003 typedef IRecordInfo *LPRECORDINFO; 5004 5005 DEFINE_GUID(IID_IRecordInfo, 0x0000002f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); 5006 #if defined(__cplusplus) && !defined(CINTERFACE) 5007 MIDL_INTERFACE("0000002f-0000-0000-c000-000000000046") 5008 IRecordInfo : 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 5077 typedef 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 5173 interface 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 ***/ 5202 static FORCEINLINE HRESULT IRecordInfo_QueryInterface(IRecordInfo* This,REFIID riid,void **ppvObject) { 5203 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 5204 } 5205 static FORCEINLINE ULONG IRecordInfo_AddRef(IRecordInfo* This) { 5206 return This->lpVtbl->AddRef(This); 5207 } 5208 static FORCEINLINE ULONG IRecordInfo_Release(IRecordInfo* This) { 5209 return This->lpVtbl->Release(This); 5210 } 5211 /*** IRecordInfo methods ***/ 5212 static FORCEINLINE HRESULT IRecordInfo_RecordInit(IRecordInfo* This,PVOID pvNew) { 5213 return This->lpVtbl->RecordInit(This,pvNew); 5214 } 5215 static FORCEINLINE HRESULT IRecordInfo_RecordClear(IRecordInfo* This,PVOID pvExisting) { 5216 return This->lpVtbl->RecordClear(This,pvExisting); 5217 } 5218 static FORCEINLINE HRESULT IRecordInfo_RecordCopy(IRecordInfo* This,PVOID pvExisting,PVOID pvNew) { 5219 return This->lpVtbl->RecordCopy(This,pvExisting,pvNew); 5220 } 5221 static FORCEINLINE HRESULT IRecordInfo_GetGuid(IRecordInfo* This,GUID *pguid) { 5222 return This->lpVtbl->GetGuid(This,pguid); 5223 } 5224 static FORCEINLINE HRESULT IRecordInfo_GetName(IRecordInfo* This,BSTR *pbstrName) { 5225 return This->lpVtbl->GetName(This,pbstrName); 5226 } 5227 static FORCEINLINE HRESULT IRecordInfo_GetSize(IRecordInfo* This,ULONG *pcbSize) { 5228 return This->lpVtbl->GetSize(This,pcbSize); 5229 } 5230 static FORCEINLINE HRESULT IRecordInfo_GetTypeInfo(IRecordInfo* This,ITypeInfo **ppTypeInfo) { 5231 return This->lpVtbl->GetTypeInfo(This,ppTypeInfo); 5232 } 5233 static FORCEINLINE HRESULT IRecordInfo_GetField(IRecordInfo* This,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField) { 5234 return This->lpVtbl->GetField(This,pvData,szFieldName,pvarField); 5235 } 5236 static FORCEINLINE HRESULT IRecordInfo_GetFieldNoCopy(IRecordInfo* This,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField,PVOID *ppvDataCArray) { 5237 return This->lpVtbl->GetFieldNoCopy(This,pvData,szFieldName,pvarField,ppvDataCArray); 5238 } 5239 static FORCEINLINE HRESULT IRecordInfo_PutField(IRecordInfo* This,ULONG wFlags,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField) { 5240 return This->lpVtbl->PutField(This,wFlags,pvData,szFieldName,pvarField); 5241 } 5242 static FORCEINLINE HRESULT IRecordInfo_PutFieldNoCopy(IRecordInfo* This,ULONG wFlags,PVOID pvData,LPCOLESTR szFieldName,VARIANT *pvarField) { 5243 return This->lpVtbl->PutFieldNoCopy(This,wFlags,pvData,szFieldName,pvarField); 5244 } 5245 static FORCEINLINE HRESULT IRecordInfo_GetFieldNames(IRecordInfo* This,ULONG *pcNames,BSTR *rgBstrNames) { 5246 return This->lpVtbl->GetFieldNames(This,pcNames,rgBstrNames); 5247 } 5248 static FORCEINLINE WINBOOL IRecordInfo_IsMatchingType(IRecordInfo* This,IRecordInfo *pRecordInfo) { 5249 return This->lpVtbl->IsMatchingType(This,pRecordInfo); 5250 } 5251 static FORCEINLINE PVOID IRecordInfo_RecordCreate(IRecordInfo* This) { 5252 return This->lpVtbl->RecordCreate(This); 5253 } 5254 static FORCEINLINE HRESULT IRecordInfo_RecordCreateCopy(IRecordInfo* This,PVOID pvSource,PVOID *ppvDest) { 5255 return This->lpVtbl->RecordCreateCopy(This,pvSource,ppvDest); 5256 } 5257 static FORCEINLINE 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 5275 typedef IErrorLog *LPERRORLOG; 5276 5277 DEFINE_GUID(IID_IErrorLog, 0x3127ca40, 0x446e, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51); 5278 #if defined(__cplusplus) && !defined(CINTERFACE) 5279 MIDL_INTERFACE("3127ca40-446e-11ce-8135-00aa004bb851") 5280 IErrorLog : 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 5291 typedef 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 5315 interface 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 ***/ 5329 static FORCEINLINE HRESULT IErrorLog_QueryInterface(IErrorLog* This,REFIID riid,void **ppvObject) { 5330 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 5331 } 5332 static FORCEINLINE ULONG IErrorLog_AddRef(IErrorLog* This) { 5333 return This->lpVtbl->AddRef(This); 5334 } 5335 static FORCEINLINE ULONG IErrorLog_Release(IErrorLog* This) { 5336 return This->lpVtbl->Release(This); 5337 } 5338 /*** IErrorLog methods ***/ 5339 static FORCEINLINE 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 5357 typedef IPropertyBag *LPPROPERTYBAG; 5358 5359 DEFINE_GUID(IID_IPropertyBag, 0x55272a00, 0x42cb, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51); 5360 #if defined(__cplusplus) && !defined(CINTERFACE) 5361 MIDL_INTERFACE("55272a00-42cb-11ce-8135-00aa004bb851") 5362 IPropertyBag : 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 5378 typedef 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 5408 interface 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 ***/ 5423 static FORCEINLINE HRESULT IPropertyBag_QueryInterface(IPropertyBag* This,REFIID riid,void **ppvObject) { 5424 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 5425 } 5426 static FORCEINLINE ULONG IPropertyBag_AddRef(IPropertyBag* This) { 5427 return This->lpVtbl->AddRef(This); 5428 } 5429 static FORCEINLINE ULONG IPropertyBag_Release(IPropertyBag* This) { 5430 return This->lpVtbl->Release(This); 5431 } 5432 /*** IPropertyBag methods ***/ 5433 static FORCEINLINE HRESULT IPropertyBag_Read(IPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog) { 5434 return This->lpVtbl->Read(This,pszPropName,pVar,pErrorLog); 5435 } 5436 static FORCEINLINE 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 5444 HRESULT STDMETHODCALLTYPE IPropertyBag_RemoteRead_Proxy( 5445 IPropertyBag* This, 5446 LPCOLESTR pszPropName, 5447 VARIANT *pVar, 5448 IErrorLog *pErrorLog, 5449 DWORD varType, 5450 IUnknown *pUnkObj); 5451 void __RPC_STUB IPropertyBag_RemoteRead_Stub( 5452 IRpcStubBuffer* This, 5453 IRpcChannelBuffer* pRpcChannelBuffer, 5454 PRPC_MESSAGE pRpcMessage, 5455 DWORD* pdwStubPhase); 5456 HRESULT CALLBACK IPropertyBag_Read_Proxy( 5457 IPropertyBag* This, 5458 LPCOLESTR pszPropName, 5459 VARIANT *pVar, 5460 IErrorLog *pErrorLog); 5461 HRESULT __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 5474 ULONG __RPC_USER VARIANT_UserSize (ULONG *, ULONG, VARIANT *); 5475 unsigned char * __RPC_USER VARIANT_UserMarshal (ULONG *, unsigned char *, VARIANT *); 5476 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *); 5477 void __RPC_USER VARIANT_UserFree (ULONG *, VARIANT *); 5478 ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *); 5479 unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *); 5480 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *); 5481 void __RPC_USER BSTR_UserFree (ULONG *, BSTR *); 5482 ULONG __RPC_USER CLEANLOCALSTORAGE_UserSize (ULONG *, ULONG, CLEANLOCALSTORAGE *); 5483 unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserMarshal (ULONG *, unsigned char *, CLEANLOCALSTORAGE *); 5484 unsigned char * __RPC_USER CLEANLOCALSTORAGE_UserUnmarshal(ULONG *, unsigned char *, CLEANLOCALSTORAGE *); 5485 void __RPC_USER CLEANLOCALSTORAGE_UserFree (ULONG *, CLEANLOCALSTORAGE *); 5486 5487 /* End additional prototypes */ 5488 5489 #ifdef __cplusplus 5490 } 5491 #endif 5492 5493 #endif /* __oaidl_h__ */ 5494