1cpp_quote("/**") 2cpp_quote(" * This file is part of the mingw-w64 runtime package.") 3cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.") 4cpp_quote(" */") 5cpp_quote("") 6cpp_quote("#include <winapifamily.h>") 7 8#ifndef DO_NO_IMPORTS 9import "objidl.idl"; 10#endif 11 12cpp_quote("") 13cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 14 15interface ICreateTypeInfo; 16interface ICreateTypeInfo2; 17interface ICreateTypeLib; 18interface ICreateTypeLib2; 19cpp_quote("#endif") 20cpp_quote("") 21cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 22interface IDispatch; 23interface IEnumVARIANT; 24interface ITypeComp; 25cpp_quote("#endif") 26cpp_quote("") 27cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 28interface ITypeInfo; 29interface ITypeInfo2; 30interface ITypeLib; 31interface ITypeLib2; 32interface ITypeChangeEvents; 33interface IErrorInfo; 34interface ICreateErrorInfo; 35interface ISupportErrorInfo; 36interface ITypeFactory; 37interface ITypeMarshal; 38interface IRecordInfo; 39cpp_quote("#endif") 40cpp_quote("") 41cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 42[version (1.0), pointer_default (unique)] 43interface IOleAutomationTypes { 44 typedef CY CURRENCY; 45 typedef struct tagSAFEARRAYBOUND { 46 ULONG cElements; 47 LONG lLbound; 48 } SAFEARRAYBOUND,*LPSAFEARRAYBOUND; 49 50cpp_quote("") 51 typedef [unique] struct _wireVARIANT *wireVARIANT; 52 typedef [unique] struct _wireBRECORD *wireBRECORD; 53cpp_quote("") 54 typedef struct _wireSAFEARR_BSTR { 55 ULONG Size; 56 [size_is (Size), ref] wireBSTR *aBstr; 57 } SAFEARR_BSTR; 58 59cpp_quote("") 60 typedef struct _wireSAFEARR_UNKNOWN { 61 ULONG Size; 62 [size_is (Size), ref] IUnknown **apUnknown; 63 } SAFEARR_UNKNOWN; 64 65cpp_quote("") 66 typedef struct _wireSAFEARR_DISPATCH { 67 ULONG Size; 68 [size_is (Size), ref] IDispatch **apDispatch; 69 } SAFEARR_DISPATCH; 70 71cpp_quote("") 72 typedef struct _wireSAFEARR_VARIANT { 73 ULONG Size; 74 [size_is (Size), ref] wireVARIANT *aVariant; 75 } SAFEARR_VARIANT; 76 77cpp_quote("") 78 typedef struct _wireSAFEARR_BRECORD { 79 ULONG Size; 80 [size_is (Size), ref] wireBRECORD *aRecord; 81 } SAFEARR_BRECORD; 82 83cpp_quote("") 84 typedef struct _wireSAFEARR_HAVEIID { 85 ULONG Size; 86 [size_is (Size), ref] IUnknown **apUnknown; 87 IID iid; 88 } SAFEARR_HAVEIID; 89 90cpp_quote("") 91 typedef [v1_enum] enum tagSF_TYPE { 92 SF_ERROR = VT_ERROR, 93 SF_I1 = VT_I1, 94 SF_I2 = VT_I2, 95 SF_I4 = VT_I4, 96 SF_I8 = VT_I8, 97 SF_BSTR = VT_BSTR, 98 SF_UNKNOWN = VT_UNKNOWN, 99 SF_DISPATCH = VT_DISPATCH, 100 SF_VARIANT = VT_VARIANT, 101 SF_RECORD = VT_RECORD, 102 SF_HAVEIID = VT_UNKNOWN | VT_RESERVED 103 } SF_TYPE; 104 105cpp_quote("") 106 typedef union _wireSAFEARRAY_UNION switch (ULONG sfType) u { 107 case SF_BSTR: SAFEARR_BSTR BstrStr; 108 case SF_UNKNOWN: SAFEARR_UNKNOWN UnknownStr; 109 case SF_DISPATCH: SAFEARR_DISPATCH DispatchStr; 110 case SF_VARIANT: SAFEARR_VARIANT VariantStr; 111 case SF_RECORD: SAFEARR_BRECORD RecordStr; 112 case SF_HAVEIID: SAFEARR_HAVEIID HaveIidStr; 113 case SF_I1: BYTE_SIZEDARR ByteStr; 114 case SF_I2: WORD_SIZEDARR WordStr; 115 case SF_I4: DWORD_SIZEDARR LongStr; 116 case SF_I8: HYPER_SIZEDARR HyperStr; 117 } SAFEARRAYUNION; 118 119cpp_quote("") 120 typedef [unique] struct _wireSAFEARRAY { 121 USHORT cDims; 122 USHORT fFeatures; 123 ULONG cbElements; 124 ULONG cLocks; 125 SAFEARRAYUNION uArrayStructs; 126 [size_is (cDims)] SAFEARRAYBOUND rgsabound[]; 127 } *wireSAFEARRAY; 128 typedef [unique] wireSAFEARRAY *wirePSAFEARRAY; 129 130cpp_quote("") 131 typedef struct tagSAFEARRAY { 132 USHORT cDims; 133 USHORT fFeatures; 134 ULONG cbElements; 135 ULONG cLocks; 136 PVOID pvData; 137 SAFEARRAYBOUND rgsabound[]; 138 } SAFEARRAY; 139 typedef [wire_marshal (wirePSAFEARRAY)] SAFEARRAY *LPSAFEARRAY; 140 141cpp_quote("") 142 const USHORT FADF_AUTO = 0x0001; 143 const USHORT FADF_STATIC = 0x0002; 144 const USHORT FADF_EMBEDDED = 0x0004; 145 const USHORT FADF_FIXEDSIZE = 0x0010; 146 const USHORT FADF_RECORD = 0x0020; 147 const USHORT FADF_HAVEIID = 0x0040; 148 const USHORT FADF_HAVEVARTYPE= 0x0080; 149 const USHORT FADF_BSTR = 0x0100; 150 const USHORT FADF_UNKNOWN = 0x0200; 151 const USHORT FADF_DISPATCH = 0x0400; 152 const USHORT FADF_VARIANT = 0x0800; 153 const USHORT FADF_RESERVED = 0xf008; 154 155cpp_quote("") 156cpp_quote("/* Kludge for 3.0 release to disable new default-behavior.") 157cpp_quote(" * For now we define _FORCENAMELESSUNION. For 4.0 this define") 158cpp_quote(" * will be removed. */") 159cpp_quote("#ifndef _FORCENAMELESSUNION") 160cpp_quote("#define _FORCENAMELESSUNION 1") 161cpp_quote("#endif") 162cpp_quote("") 163cpp_quote("#if (__STDC__ && !defined(__cplusplus) && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION) || (defined (_MSC_VER) && !defined(_MSC_EXTENSIONS) && !defined(_FORCENAMELESSUNION))") 164cpp_quote("#define __VARIANT_NAME_1 n1") 165cpp_quote("#define __VARIANT_NAME_2 n2") 166cpp_quote("#define __VARIANT_NAME_3 n3") 167cpp_quote("#define __VARIANT_NAME_4 brecVal") 168cpp_quote("#else") 169cpp_quote("#define __tagVARIANT") 170cpp_quote("#define __VARIANT_NAME_1") 171cpp_quote("#define __VARIANT_NAME_2") 172cpp_quote("#define __VARIANT_NAME_3") 173cpp_quote("#define __tagBRECORD") 174cpp_quote("#define __VARIANT_NAME_4") 175cpp_quote("#endif") 176 177cpp_quote("") 178 typedef [wire_marshal (wireVARIANT)] struct tagVARIANT VARIANT; 179 180cpp_quote("") 181 struct tagVARIANT { 182 union { 183 struct __tagVARIANT { 184 VARTYPE vt; 185 WORD wReserved1; 186 WORD wReserved2; 187 WORD wReserved3; 188 union { 189 LONGLONG llVal; 190 LONG lVal; 191 BYTE bVal; 192 SHORT iVal; 193 FLOAT fltVal; 194 DOUBLE dblVal; 195 VARIANT_BOOL boolVal; 196 /* Removed due conflict with bool and gcc's inablity to express a macro expanding to a comment. 197 _VARIANT_BOOL bool; */ 198 SCODE scode; 199 CY cyVal; 200 DATE date; 201 BSTR bstrVal; 202 IUnknown *punkVal; 203 IDispatch *pdispVal; 204 SAFEARRAY *parray; 205 BYTE *pbVal; 206 SHORT *piVal; 207 LONG *plVal; 208 LONGLONG *pllVal; 209 FLOAT *pfltVal; 210 DOUBLE *pdblVal; 211 VARIANT_BOOL *pboolVal; 212 /* Removed due conflict with bool and gcc's inablity to express a macro expanding to a comment. 213 _VARIANT_BOOL *pbool; */ 214 SCODE *pscode; 215 CY *pcyVal; 216 DATE *pdate; 217 BSTR *pbstrVal; 218 IUnknown **ppunkVal; 219 IDispatch **ppdispVal; 220 SAFEARRAY **pparray; 221 VARIANT *pvarVal; 222 PVOID byref; 223 CHAR cVal; 224 USHORT uiVal; 225 ULONG ulVal; 226 ULONGLONG ullVal; 227 INT intVal; 228 UINT uintVal; 229 DECIMAL *pdecVal; 230 CHAR *pcVal; 231 USHORT *puiVal; 232 ULONG *pulVal; 233 ULONGLONG *pullVal; 234 INT *pintVal; 235 UINT *puintVal; 236 struct __tagBRECORD { 237 PVOID pvRecord; 238 IRecordInfo *pRecInfo; 239 } __VARIANT_NAME_4; 240 } __VARIANT_NAME_3; 241 } __VARIANT_NAME_2; 242 DECIMAL decVal; 243 } __VARIANT_NAME_1; 244 }; 245 246cpp_quote("") 247 typedef VARIANT *LPVARIANT; 248 typedef VARIANT VARIANTARG; 249 typedef VARIANT *LPVARIANTARG; 250 cpp_quote("#if 0") 251 typedef const VARIANT *REFVARIANT; 252 cpp_quote("#else") 253 cpp_quote("") 254 cpp_quote("#ifndef _REFVARIANT_DEFINED") 255 cpp_quote("#define _REFVARIANT_DEFINED") 256 cpp_quote("#ifdef __cplusplus") 257 cpp_quote("#define REFVARIANT const VARIANT &") 258 cpp_quote("#else") 259 cpp_quote("#define REFVARIANT const VARIANT * __MIDL_CONST") 260 cpp_quote("#endif") 261 cpp_quote("#endif") 262 cpp_quote("#endif") 263 264cpp_quote("") 265 struct _wireBRECORD { 266 ULONG fFlags; 267 ULONG clSize; 268 IRecordInfo *pRecInfo; 269 [size_is (clSize)] byte *pRecord; 270 }; 271 272cpp_quote("") 273 struct _wireVARIANT { 274 DWORD clSize; 275 DWORD rpcReserved; 276 USHORT vt; 277 USHORT wReserved1; 278 USHORT wReserved2; 279 USHORT wReserved3; 280 [switch_type (ULONG), switch_is (vt)] union { 281 [case (VT_I8)] LONGLONG llVal; 282 [case (VT_I4)] LONG lVal; 283 [case (VT_UI1)] BYTE bVal; 284 [case (VT_I2)] SHORT iVal; 285 [case (VT_R4)] FLOAT fltVal; 286 [case (VT_R8)] DOUBLE dblVal; 287 [case (VT_BOOL)] VARIANT_BOOL boolVal; 288 [case (VT_ERROR)] SCODE scode; 289 [case (VT_CY)] CY cyVal; 290 [case (VT_DATE)] DATE date; 291 [case (VT_BSTR)] wireBSTR bstrVal; 292 [case (VT_UNKNOWN)] IUnknown *punkVal; 293 [case (VT_DISPATCH)] IDispatch *pdispVal; 294 [case (VT_ARRAY)] wirePSAFEARRAY parray; 295 [case (VT_RECORD, VT_RECORD|VT_BYREF)] 296 wireBRECORD brecVal; 297 [case (VT_UI1|VT_BYREF)] 298 BYTE *pbVal; 299 [case (VT_I2|VT_BYREF)] 300 SHORT *piVal; 301 [case (VT_I4|VT_BYREF)] 302 LONG *plVal; 303 [case (VT_I8|VT_BYREF)] 304 LONGLONG *pllVal; 305 [case (VT_R4|VT_BYREF)] 306 FLOAT *pfltVal; 307 [case (VT_R8|VT_BYREF)] 308 DOUBLE *pdblVal; 309 [case (VT_BOOL|VT_BYREF)] 310 VARIANT_BOOL *pboolVal; 311 [case (VT_ERROR|VT_BYREF)] 312 SCODE *pscode; 313 [case (VT_CY|VT_BYREF)] 314 CY *pcyVal; 315 [case (VT_DATE|VT_BYREF)] 316 DATE *pdate; 317 [case (VT_BSTR|VT_BYREF)] 318 wireBSTR *pbstrVal; 319 [case (VT_UNKNOWN|VT_BYREF)] 320 IUnknown **ppunkVal; 321 [case (VT_DISPATCH|VT_BYREF)] 322 IDispatch **ppdispVal; 323 [case (VT_ARRAY|VT_BYREF)] 324 wirePSAFEARRAY *pparray; 325 [case (VT_VARIANT|VT_BYREF)] 326 wireVARIANT *pvarVal; 327 [case (VT_I1)] CHAR cVal; 328 [case (VT_UI2)] USHORT uiVal; 329 [case (VT_UI4)] ULONG ulVal; 330 [case (VT_UI8)] ULONGLONG ullVal; 331 [case (VT_INT)] INT intVal; 332 [case (VT_UINT)] UINT uintVal; 333 [case (VT_DECIMAL)] DECIMAL decVal; 334 [case (VT_BYREF|VT_DECIMAL)] 335 DECIMAL *pdecVal; 336 [case (VT_BYREF|VT_I1)] 337 CHAR *pcVal; 338 [case (VT_BYREF|VT_UI2)] 339 USHORT *puiVal; 340 [case (VT_BYREF|VT_UI4)] 341 ULONG *pulVal; 342 [case (VT_BYREF|VT_UI8)] 343 ULONGLONG *pullVal; 344 [case (VT_BYREF|VT_INT)] 345 INT *pintVal; 346 [case (VT_BYREF|VT_UINT)] 347 UINT *puintVal; 348 [case (VT_EMPTY)]; 349 [case (VT_NULL)]; 350 }; 351 }; 352 353cpp_quote("") 354 typedef LONG DISPID; 355 typedef DISPID MEMBERID; 356 typedef DWORD HREFTYPE; 357 typedef [v1_enum] enum tagTYPEKIND { 358 TKIND_ENUM = 0, 359 TKIND_RECORD, 360 TKIND_MODULE, 361 TKIND_INTERFACE, 362 TKIND_DISPATCH, 363 TKIND_COCLASS, 364 TKIND_ALIAS, 365 TKIND_UNION, 366 TKIND_MAX 367 } TYPEKIND; 368 369cpp_quote("") 370 typedef struct tagTYPEDESC { 371 [switch_type (VARTYPE), switch_is (vt)] union { 372 [case (VT_PTR, VT_SAFEARRAY)] struct tagTYPEDESC *lptdesc; 373 [case (VT_CARRAY)] struct tagARRAYDESC *lpadesc; 374 [case (VT_USERDEFINED)] HREFTYPE hreftype; 375 [default]; 376 }; 377 VARTYPE vt; 378 } TYPEDESC; 379 380cpp_quote("") 381 typedef struct tagARRAYDESC { 382 TYPEDESC tdescElem; 383 USHORT cDims; 384 [size_is (cDims)] SAFEARRAYBOUND rgbounds[]; 385 } ARRAYDESC; 386 387cpp_quote("") 388 typedef struct tagPARAMDESCEX { 389 ULONG cBytes; 390 VARIANTARG varDefaultValue; 391 } PARAMDESCEX,*LPPARAMDESCEX; 392 393cpp_quote("") 394 typedef struct tagPARAMDESC { 395 LPPARAMDESCEX pparamdescex; 396 USHORT wParamFlags; 397 } PARAMDESC,*LPPARAMDESC; 398 399cpp_quote("") 400 const USHORT PARAMFLAG_NONE = 0x00; 401 const USHORT PARAMFLAG_FIN = 0x01; 402 const USHORT PARAMFLAG_FOUT = 0x02; 403 const USHORT PARAMFLAG_FLCID = 0x04; 404 const USHORT PARAMFLAG_FRETVAL = 0x08; 405 const USHORT PARAMFLAG_FOPT = 0x10; 406 const USHORT PARAMFLAG_FHASDEFAULT = 0x20; 407 const USHORT PARAMFLAG_FHASCUSTDATA = 0x40; 408 409cpp_quote("") 410 typedef struct tagIDLDESC { 411 ULONG_PTR dwReserved; 412 USHORT wIDLFlags; 413 } IDLDESC,*LPIDLDESC; 414 415cpp_quote("") 416 const USHORT IDLFLAG_NONE = PARAMFLAG_NONE; 417 const USHORT IDLFLAG_FIN = PARAMFLAG_FIN; 418 const USHORT IDLFLAG_FOUT = PARAMFLAG_FOUT; 419 const USHORT IDLFLAG_FLCID = PARAMFLAG_FLCID; 420 const USHORT IDLFLAG_FRETVAL = PARAMFLAG_FRETVAL; 421 cpp_quote("") 422 cpp_quote("#if 0") 423 typedef struct tagELEMDESC { 424 TYPEDESC tdesc; 425 PARAMDESC paramdesc; 426 } ELEMDESC; 427 cpp_quote("#else") 428 cpp_quote("") 429 cpp_quote(" typedef struct tagELEMDESC {") 430 cpp_quote(" TYPEDESC tdesc;") 431 cpp_quote(" __C89_NAMELESS union {") 432 cpp_quote(" IDLDESC idldesc;") 433 cpp_quote(" PARAMDESC paramdesc;") 434 cpp_quote(" } DUMMYUNIONNAME;") 435 cpp_quote(" } ELEMDESC,*LPELEMDESC;") 436 cpp_quote("#endif") 437 438cpp_quote("") 439 typedef struct tagTYPEATTR { 440 GUID guid; 441 LCID lcid; 442 DWORD dwReserved; 443 MEMBERID memidConstructor; 444 MEMBERID memidDestructor; 445 LPOLESTR lpstrSchema; 446 ULONG cbSizeInstance; 447 TYPEKIND typekind; 448 WORD cFuncs; 449 WORD cVars; 450 WORD cImplTypes; 451 WORD cbSizeVft; 452 WORD cbAlignment; 453 WORD wTypeFlags; 454 WORD wMajorVerNum; 455 WORD wMinorVerNum; 456 TYPEDESC tdescAlias; 457 IDLDESC idldescType; 458 } TYPEATTR,*LPTYPEATTR; 459 460cpp_quote("") 461 typedef struct tagDISPPARAMS { 462 [size_is (cArgs)] VARIANTARG *rgvarg; 463 [size_is (cNamedArgs)] DISPID *rgdispidNamedArgs; 464 UINT cArgs; 465 UINT cNamedArgs; 466 } DISPPARAMS; 467 cpp_quote("") 468 cpp_quote("#if 0") 469 typedef struct tagEXCEPINFO { 470 WORD wCode; 471 WORD wReserved; 472 BSTR bstrSource; 473 BSTR bstrDescription; 474 BSTR bstrHelpFile; 475 DWORD dwHelpContext; 476 ULONG_PTR pvReserved; 477 ULONG_PTR pfnDeferredFillIn; 478 SCODE scode; 479 } EXCEPINFO; 480 cpp_quote("#else") 481 cpp_quote(" typedef struct tagEXCEPINFO {") 482 cpp_quote(" WORD wCode;") 483 cpp_quote(" WORD wReserved;") 484 cpp_quote(" BSTR bstrSource;") 485 cpp_quote(" BSTR bstrDescription;") 486 cpp_quote(" BSTR bstrHelpFile;") 487 cpp_quote(" DWORD dwHelpContext;") 488 cpp_quote(" PVOID pvReserved;") 489 cpp_quote(" HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);") 490 cpp_quote(" SCODE scode;") 491 cpp_quote(" } EXCEPINFO, *LPEXCEPINFO;") 492 cpp_quote("#endif") 493 494cpp_quote("") 495 typedef [v1_enum] enum tagCALLCONV { 496 CC_FASTCALL = 0, 497 CC_CDECL = 1, 498 CC_MSCPASCAL, 499 CC_PASCAL = CC_MSCPASCAL, 500 CC_MACPASCAL, 501 CC_STDCALL, 502 CC_FPFASTCALL, 503 CC_SYSCALL, 504 CC_MPWCDECL, 505 CC_MPWPASCAL, 506 CC_MAX 507 } CALLCONV; 508 509cpp_quote("") 510 typedef [v1_enum] enum tagFUNCKIND { 511 FUNC_VIRTUAL, 512 FUNC_PUREVIRTUAL, 513 FUNC_NONVIRTUAL, 514 FUNC_STATIC, 515 FUNC_DISPATCH 516 } FUNCKIND; 517 518cpp_quote("") 519 typedef [v1_enum] enum tagINVOKEKIND { 520 INVOKE_FUNC = 1, 521 INVOKE_PROPERTYGET = 2, 522 INVOKE_PROPERTYPUT = 4, 523 INVOKE_PROPERTYPUTREF = 8 524 } INVOKEKIND; 525 526cpp_quote("") 527 typedef struct tagFUNCDESC { 528 MEMBERID memid; 529 [size_is (cScodes)] SCODE *lprgscode; 530 [size_is (cParams)] ELEMDESC *lprgelemdescParam; 531 FUNCKIND funckind; 532 INVOKEKIND invkind; 533 CALLCONV callconv; 534 SHORT cParams; 535 SHORT cParamsOpt; 536 SHORT oVft; 537 SHORT cScodes; 538 ELEMDESC elemdescFunc; 539 WORD wFuncFlags; 540 } FUNCDESC,*LPFUNCDESC; 541 542cpp_quote("") 543 typedef [v1_enum] enum tagVARKIND { 544 VAR_PERINSTANCE, 545 VAR_STATIC, 546 VAR_CONST, 547 VAR_DISPATCH 548 } VARKIND; 549 550cpp_quote("") 551 const USHORT IMPLTYPEFLAG_FDEFAULT = 0x1; 552 const USHORT IMPLTYPEFLAG_FSOURCE = 0x2; 553 const USHORT IMPLTYPEFLAG_FRESTRICTED = 0x4; 554 const USHORT IMPLTYPEFLAG_FDEFAULTVTABLE= 0x8; 555 556cpp_quote("") 557 typedef struct tagVARDESC { 558 MEMBERID memid; 559 LPOLESTR lpstrSchema; 560 [switch_type (VARKIND), switch_is (varkind)] union { 561 [case (VAR_PERINSTANCE, VAR_DISPATCH, VAR_STATIC)] ULONG oInst; 562 [case (VAR_CONST)] VARIANT *lpvarValue; 563 }; 564 ELEMDESC elemdescVar; 565 WORD wVarFlags; 566 VARKIND varkind; 567 } VARDESC,*LPVARDESC; 568 569cpp_quote("") 570 typedef enum tagTYPEFLAGS { 571 TYPEFLAG_FAPPOBJECT = 0x01, 572 TYPEFLAG_FCANCREATE = 0x02, 573 TYPEFLAG_FLICENSED = 0x04, 574 TYPEFLAG_FPREDECLID = 0x08, 575 TYPEFLAG_FHIDDEN = 0x10, 576 TYPEFLAG_FCONTROL = 0x20, 577 TYPEFLAG_FDUAL = 0x40, 578 TYPEFLAG_FNONEXTENSIBLE = 0x80, 579 TYPEFLAG_FOLEAUTOMATION = 0x100, 580 TYPEFLAG_FRESTRICTED = 0x200, 581 TYPEFLAG_FAGGREGATABLE = 0x400, 582 TYPEFLAG_FREPLACEABLE = 0x800, 583 TYPEFLAG_FDISPATCHABLE = 0x1000, 584 TYPEFLAG_FREVERSEBIND = 0x2000, 585 TYPEFLAG_FPROXY = 0x4000 586 } TYPEFLAGS; 587 588cpp_quote("") 589 typedef enum tagFUNCFLAGS { 590 FUNCFLAG_FRESTRICTED = 0x1, 591 FUNCFLAG_FSOURCE = 0x2, 592 FUNCFLAG_FBINDABLE = 0x4, 593 FUNCFLAG_FREQUESTEDIT = 0x8, 594 FUNCFLAG_FDISPLAYBIND = 0x10, 595 FUNCFLAG_FDEFAULTBIND = 0x20, 596 FUNCFLAG_FHIDDEN = 0x40, 597 FUNCFLAG_FUSESGETLASTERROR = 0x80, 598 FUNCFLAG_FDEFAULTCOLLELEM = 0x100, 599 FUNCFLAG_FUIDEFAULT = 0x200, 600 FUNCFLAG_FNONBROWSABLE = 0x400, 601 FUNCFLAG_FREPLACEABLE = 0x800, 602 FUNCFLAG_FIMMEDIATEBIND = 0x1000 603 } FUNCFLAGS; 604 605cpp_quote("") 606 typedef enum tagVARFLAGS { 607 VARFLAG_FREADONLY = 0x1, 608 VARFLAG_FSOURCE = 0x2, 609 VARFLAG_FBINDABLE = 0x4, 610 VARFLAG_FREQUESTEDIT = 0x8, 611 VARFLAG_FDISPLAYBIND = 0x10, 612 VARFLAG_FDEFAULTBIND = 0x20, 613 VARFLAG_FHIDDEN = 0x40, 614 VARFLAG_FRESTRICTED = 0x80, 615 VARFLAG_FDEFAULTCOLLELEM = 0x100, 616 VARFLAG_FUIDEFAULT = 0x200, 617 VARFLAG_FNONBROWSABLE = 0x400, 618 VARFLAG_FREPLACEABLE = 0x800, 619 VARFLAG_FIMMEDIATEBIND = 0x1000 620 } VARFLAGS; 621 622cpp_quote("") 623 typedef [wire_marshal (DWORD)] struct tagCLEANLOCALSTORAGE { 624 IUnknown *pInterface; 625 PVOID pStorage; 626 DWORD flags; 627 } CLEANLOCALSTORAGE; 628 629cpp_quote("") 630 typedef struct tagCUSTDATAITEM { 631 GUID guid; 632 VARIANTARG varValue; 633 } CUSTDATAITEM,*LPCUSTDATAITEM; 634 635cpp_quote("") 636 typedef struct tagCUSTDATA { 637 DWORD cCustData; 638 [size_is (cCustData)] LPCUSTDATAITEM prgCustData; 639 } CUSTDATA,*LPCUSTDATA; 640} 641cpp_quote("#endif") 642cpp_quote("") 643cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 644[object, uuid (00020405-0000-0000-C000-000000000046), pointer_default (unique), local] 645interface ICreateTypeInfo: IUnknown { 646 typedef [unique] ICreateTypeInfo *LPCREATETYPEINFO; 647cpp_quote("") 648 HRESULT SetGuid ([in] REFGUID guid); 649 HRESULT SetTypeFlags ([in] UINT uTypeFlags); 650 HRESULT SetDocString ([in] LPOLESTR pStrDoc); 651 HRESULT SetHelpContext ([in] DWORD dwHelpContext); 652 HRESULT SetVersion ([in] WORD wMajorVerNum,[in] WORD wMinorVerNum); 653 HRESULT AddRefTypeInfo ([in] ITypeInfo *pTInfo,[in] HREFTYPE *phRefType); 654 HRESULT AddFuncDesc ([in] UINT index,[in] FUNCDESC *pFuncDesc); 655 HRESULT AddImplType ([in] UINT index,[in] HREFTYPE hRefType); 656 HRESULT SetImplTypeFlags ([in] UINT index,[in] INT implTypeFlags); 657 HRESULT SetAlignment ([in] WORD cbAlignment); 658 HRESULT SetSchema ([in] LPOLESTR pStrSchema); 659 HRESULT AddVarDesc ([in] UINT index,[in] VARDESC *pVarDesc); 660 HRESULT SetFuncAndParamNames ([in] UINT index,[in, size_is ((UINT) cNames)] LPOLESTR *rgszNames,[in] UINT cNames); 661 HRESULT SetVarName ([in] UINT index,[in] LPOLESTR szName); 662 HRESULT SetTypeDescAlias ([in] TYPEDESC *pTDescAlias); 663 HRESULT DefineFuncAsDllEntry ([in] UINT index,[in] LPOLESTR szDllName,[in] LPOLESTR szProcName); 664 HRESULT SetFuncDocString ([in] UINT index,[in] LPOLESTR szDocString); 665 HRESULT SetVarDocString ([in] UINT index,[in] LPOLESTR szDocString); 666 HRESULT SetFuncHelpContext ([in] UINT index,[in] DWORD dwHelpContext); 667 HRESULT SetVarHelpContext ([in] UINT index,[in] DWORD dwHelpContext); 668 HRESULT SetMops ([in] UINT index,[in] BSTR bstrMops); 669 HRESULT SetTypeIdldesc ([in] IDLDESC *pIdlDesc); 670 HRESULT LayOut (void); 671} 672 673cpp_quote("") 674[object, uuid (0002040e-0000-0000-C000-000000000046), pointer_default (unique), local] 675interface ICreateTypeInfo2: ICreateTypeInfo { 676 typedef [unique] ICreateTypeInfo2 *LPCREATETYPEINFO2; 677cpp_quote("") 678 HRESULT DeleteFuncDesc ([in] UINT index); 679 HRESULT DeleteFuncDescByMemId ([in] MEMBERID memid,[in] INVOKEKIND invKind); 680 HRESULT DeleteVarDesc ([in] UINT index); 681 HRESULT DeleteVarDescByMemId ([in] MEMBERID memid); 682 HRESULT DeleteImplType ([in] UINT index); 683 HRESULT SetCustData ([in] REFGUID guid,[in] VARIANT *pVarVal); 684 HRESULT SetFuncCustData ([in] UINT index,[in] REFGUID guid,[in] VARIANT *pVarVal); 685 HRESULT SetParamCustData ([in] UINT indexFunc,[in] UINT indexParam,[in] REFGUID guid,[in] VARIANT *pVarVal); 686 HRESULT SetVarCustData ([in] UINT index,[in] REFGUID guid,[in] VARIANT *pVarVal); 687 HRESULT SetImplTypeCustData ([in] UINT index,[in] REFGUID guid,[in] VARIANT *pVarVal); 688 HRESULT SetHelpStringContext ([in] ULONG dwHelpStringContext); 689 HRESULT SetFuncHelpStringContext ([in] UINT index,[in] ULONG dwHelpStringContext); 690 HRESULT SetVarHelpStringContext ([in] UINT index,[in] ULONG dwHelpStringContext); 691 HRESULT Invalidate (void); 692 HRESULT SetName ([in] LPOLESTR szName); 693} 694cpp_quote("") 695[object, uuid (00020406-0000-0000-C000-000000000046), pointer_default (unique), local] 696interface ICreateTypeLib : IUnknown { 697 typedef [unique] ICreateTypeLib *LPCREATETYPELIB; 698cpp_quote("") 699 HRESULT CreateTypeInfo ([in] LPOLESTR szName,[in] TYPEKIND tkind,[out] ICreateTypeInfo **ppCTInfo); 700 HRESULT SetName ([in] LPOLESTR szName); 701 HRESULT SetVersion ([in] WORD wMajorVerNum,[in] WORD wMinorVerNum); 702 HRESULT SetGuid ([in] REFGUID guid); 703 HRESULT SetDocString ([in] LPOLESTR szDoc); 704 HRESULT SetHelpFileName ([in] LPOLESTR szHelpFileName); 705 HRESULT SetHelpContext ([in] DWORD dwHelpContext); 706 HRESULT SetLcid ([in] LCID lcid); 707 HRESULT SetLibFlags ([in] UINT uLibFlags); 708 HRESULT SaveAllChanges (void); 709} 710cpp_quote("") 711[object, uuid (0002040f-0000-0000-C000-000000000046), pointer_default (unique), local] 712interface ICreateTypeLib2 : ICreateTypeLib { 713 typedef [unique] ICreateTypeLib2 *LPCREATETYPELIB2; 714 HRESULT DeleteTypeInfo ([in] LPOLESTR szName); 715 HRESULT SetCustData ([in] REFGUID guid,[in] VARIANT *pVarVal); 716 HRESULT SetHelpStringContext ([in] ULONG dwHelpStringContext); 717 HRESULT SetHelpStringDll ([in] LPOLESTR szFileName); 718} 719cpp_quote("#endif") 720cpp_quote("") 721cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 722[object, uuid (00020400-0000-0000-C000-000000000046), pointer_default (unique)] 723interface IDispatch : IUnknown { 724 typedef [unique] IDispatch *LPDISPATCH; 725cpp_quote("") 726 HRESULT GetTypeInfoCount ([out] UINT *pctinfo); 727 HRESULT GetTypeInfo ([in] UINT iTInfo,[in] LCID lcid,[out] ITypeInfo **ppTInfo); 728 HRESULT GetIDsOfNames ([in] REFIID riid,[in, size_is (cNames)] LPOLESTR *rgszNames,[in, range (0, 16384)] UINT cNames,[in] LCID lcid,[out, size_is (cNames)] DISPID *rgDispId); 729 [local] HRESULT Invoke ([in] DISPID dispIdMember,[in] REFIID riid,[in] LCID lcid,[in] WORD wFlags,[in, out] DISPPARAMS *pDispParams,[out] VARIANT *pVarResult,[out] EXCEPINFO *pExcepInfo,[out] UINT *puArgErr); 730 [call_as (Invoke)] HRESULT RemoteInvoke ([in] DISPID dispIdMember,[in] REFIID riid,[in] LCID lcid,[in] DWORD dwFlags,[in] DISPPARAMS *pDispParams,[out] VARIANT *pVarResult,[out] EXCEPINFO *pExcepInfo,[out] UINT *pArgErr,[in] UINT cVarRef,[in, size_is (cVarRef)] UINT *rgVarRefIdx,[in, out, size_is (cVarRef)] VARIANTARG *rgVarRef); 731 cpp_quote("") 732 const DISPID DISPID_UNKNOWN = -1; 733 const DISPID DISPID_VALUE = 0; 734 const DISPID DISPID_PROPERTYPUT = -3; 735 const DISPID DISPID_NEWENUM = -4; 736 const DISPID DISPID_EVALUATE = -5; 737 const DISPID DISPID_CONSTRUCTOR = -6; 738 const DISPID DISPID_DESTRUCTOR = -7; 739 const DISPID DISPID_COLLECT = -8; 740 cpp_quote("") 741} 742 743cpp_quote("") 744[object, uuid (00020404-0000-0000-C000-000000000046), pointer_default (unique)] 745interface IEnumVARIANT : IUnknown { 746 typedef [unique] IEnumVARIANT *LPENUMVARIANT; 747cpp_quote("") 748 [local] HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pCeltFetched)] VARIANT *rgVar,[out] ULONG *pCeltFetched); 749 [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pCeltFetched)] VARIANT *rgVar,[out] ULONG *pCeltFetched); 750 HRESULT Skip ([in] ULONG celt); 751 HRESULT Reset (); 752 HRESULT Clone ([out] IEnumVARIANT **ppEnum); 753} 754 755cpp_quote("") 756[object, uuid (00020403-0000-0000-C000-000000000046), pointer_default (unique)] 757interface ITypeComp : IUnknown { 758 typedef [unique] ITypeComp *LPTYPECOMP; 759cpp_quote("") 760 typedef [v1_enum] enum tagDESCKIND { 761 DESCKIND_NONE = 0, 762 DESCKIND_FUNCDESC, 763 DESCKIND_VARDESC, 764 DESCKIND_TYPECOMP, 765 DESCKIND_IMPLICITAPPOBJ, 766 DESCKIND_MAX 767 } DESCKIND; 768cpp_quote("") 769 typedef union tagBINDPTR { 770 FUNCDESC *lpfuncdesc; 771 VARDESC *lpvardesc; 772 ITypeComp *lptcomp; 773 } BINDPTR,*LPBINDPTR; 774cpp_quote("") 775 [local] HRESULT Bind ([in] LPOLESTR szName,[in] ULONG lHashVal,[in] WORD wFlags,[out] ITypeInfo **ppTInfo,[out] DESCKIND *pDescKind,[out] BINDPTR *pBindPtr); 776 [call_as (Bind)] HRESULT RemoteBind ([in] LPOLESTR szName,[in] ULONG lHashVal,[in] WORD wFlags,[out] ITypeInfo **ppTInfo,[out] DESCKIND *pDescKind,[out] LPFUNCDESC *ppFuncDesc,[out] LPVARDESC *ppVarDesc,[out] ITypeComp **ppTypeComp,[out] CLEANLOCALSTORAGE *pDummy); 777 [local] HRESULT BindType ([in] LPOLESTR szName,[in] ULONG lHashVal,[out] ITypeInfo **ppTInfo,[out] ITypeComp **ppTComp); 778 [call_as (BindType)] HRESULT RemoteBindType ([in] LPOLESTR szName,[in] ULONG lHashVal,[out] ITypeInfo **ppTInfo); 779} 780cpp_quote("#endif") 781cpp_quote("") 782cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 783[object, uuid (00020401-0000-0000-C000-000000000046), pointer_default (unique)] 784interface ITypeInfo : IUnknown { 785 typedef [unique] ITypeInfo *LPTYPEINFO; 786cpp_quote("") 787 [local] HRESULT GetTypeAttr ([out] TYPEATTR **ppTypeAttr); 788 [call_as (GetTypeAttr)] HRESULT RemoteGetTypeAttr ([out] LPTYPEATTR *ppTypeAttr,[out] CLEANLOCALSTORAGE *pDummy); 789 HRESULT GetTypeComp ([out] ITypeComp **ppTComp); 790 [local] HRESULT GetFuncDesc ([in] UINT index,[out] FUNCDESC **ppFuncDesc); 791 [call_as (GetFuncDesc)] HRESULT RemoteGetFuncDesc ([in] UINT index,[out] LPFUNCDESC *ppFuncDesc,[out] CLEANLOCALSTORAGE *pDummy); 792 [local] HRESULT GetVarDesc ([in] UINT index,[out] VARDESC **ppVarDesc); 793 [call_as (GetVarDesc)] HRESULT RemoteGetVarDesc ([in] UINT index,[out] LPVARDESC *ppVarDesc,[out] CLEANLOCALSTORAGE *pDummy); 794 [local] HRESULT GetNames ([in] MEMBERID memid,[out, size_is (cMaxNames), length_is (*pcNames)] BSTR *rgBstrNames,[in] UINT cMaxNames,[out] UINT *pcNames); 795 [call_as (GetNames)] HRESULT RemoteGetNames ([in] MEMBERID memid,[out, size_is (cMaxNames), length_is (*pcNames)] BSTR *rgBstrNames,[in] UINT cMaxNames,[out] UINT *pcNames); 796 HRESULT GetRefTypeOfImplType ([in] UINT index,[out] HREFTYPE *pRefType); 797 HRESULT GetImplTypeFlags ([in] UINT index,[out] INT *pImplTypeFlags); 798 [local] HRESULT GetIDsOfNames ([in, size_is (cNames)] LPOLESTR *rgszNames,[in] UINT cNames,[out, size_is (cNames)] MEMBERID *pMemId); 799 [call_as (GetIDsOfNames)] HRESULT LocalGetIDsOfNames (void); 800 [local] HRESULT Invoke ([in] PVOID pvInstance,[in] MEMBERID memid,[in] WORD wFlags,[in, out] DISPPARAMS *pDispParams,[out] VARIANT *pVarResult,[out] EXCEPINFO *pExcepInfo,[out] UINT *puArgErr); 801 [call_as (Invoke)] HRESULT LocalInvoke (void); 802 [local] HRESULT GetDocumentation ([in] MEMBERID memid,[out] BSTR *pBstrName,[out] BSTR *pBstrDocString,[out] DWORD *pdwHelpContext,[out] BSTR *pBstrHelpFile); 803 [call_as (GetDocumentation)] HRESULT RemoteGetDocumentation ([in] MEMBERID memid,[in] DWORD refPtrFlags,[out] BSTR *pBstrName,[out] BSTR *pBstrDocString,[out] DWORD *pdwHelpContext,[out] BSTR *pBstrHelpFile); 804 [local] 805 HRESULT GetDllEntry ([in] MEMBERID memid,[in] INVOKEKIND invKind,[out] BSTR *pBstrDllName,[out] BSTR *pBstrName,[out] WORD *pwOrdinal); 806 [call_as (GetDllEntry)] 807 HRESULT RemoteGetDllEntry ([in] MEMBERID memid,[in] INVOKEKIND invKind,[in] DWORD refPtrFlags,[out] BSTR *pBstrDllName,[out] BSTR *pBstrName,[out] WORD *pwOrdinal); 808 HRESULT GetRefTypeInfo ([in] HREFTYPE hRefType,[out] ITypeInfo **ppTInfo); 809 [local] HRESULT AddressOfMember ([in] MEMBERID memid,[in] INVOKEKIND invKind,[out] PVOID *ppv); 810 [call_as (AddressOfMember)] HRESULT LocalAddressOfMember (void); 811 [local] HRESULT CreateInstance ([in] IUnknown *pUnkOuter,[in] REFIID riid,[out, iid_is (riid)] PVOID *ppvObj); 812 [call_as (CreateInstance)] HRESULT RemoteCreateInstance ([in] REFIID riid,[out, iid_is (riid)] IUnknown **ppvObj); 813 HRESULT GetMops ([in] MEMBERID memid,[out] BSTR *pBstrMops); 814 [local] HRESULT GetContainingTypeLib ([out] ITypeLib **ppTLib,[out] UINT *pIndex); 815 [call_as (GetContainingTypeLib)] HRESULT RemoteGetContainingTypeLib ([out] ITypeLib **ppTLib,[out] UINT *pIndex); 816 [local] void ReleaseTypeAttr ([in] TYPEATTR *pTypeAttr); 817 [call_as (ReleaseTypeAttr)] HRESULT LocalReleaseTypeAttr (void); 818 [local] void ReleaseFuncDesc ([in] FUNCDESC *pFuncDesc); 819 [call_as (ReleaseFuncDesc)] HRESULT LocalReleaseFuncDesc (void); 820 [local] void ReleaseVarDesc ([in] VARDESC *pVarDesc); 821 [call_as (ReleaseVarDesc)] HRESULT LocalReleaseVarDesc (void); 822} 823 824cpp_quote("") 825[object, uuid (00020412-0000-0000-C000-000000000046), pointer_default (unique)] 826interface ITypeInfo2 : ITypeInfo { 827 typedef [unique] ITypeInfo2 *LPTYPEINFO2; 828cpp_quote("") 829 HRESULT GetTypeKind ([out] TYPEKIND *pTypeKind); 830 HRESULT GetTypeFlags ([out] ULONG *pTypeFlags); 831 HRESULT GetFuncIndexOfMemId ([in] MEMBERID memid,[in] INVOKEKIND invKind,[out] UINT *pFuncIndex); 832 HRESULT GetVarIndexOfMemId ([in] MEMBERID memid,[out] UINT *pVarIndex); 833 HRESULT GetCustData ([in] REFGUID guid,[out] VARIANT *pVarVal); 834 HRESULT GetFuncCustData ([in] UINT index,[in] REFGUID guid,[out] VARIANT *pVarVal); 835 HRESULT GetParamCustData ([in] UINT indexFunc,[in] UINT indexParam,[in] REFGUID guid,[out] VARIANT *pVarVal); 836 HRESULT GetVarCustData ([in] UINT index,[in] REFGUID guid,[out] VARIANT *pVarVal); 837 HRESULT GetImplTypeCustData ([in] UINT index,[in] REFGUID guid,[out] VARIANT *pVarVal); 838 [local] HRESULT GetDocumentation2 ([in] MEMBERID memid,[in] LCID lcid,[out] BSTR *pbstrHelpString,[out] DWORD *pdwHelpStringContext,[out] BSTR *pbstrHelpStringDll); 839 [call_as (GetDocumentation2)] HRESULT RemoteGetDocumentation2 ([in] MEMBERID memid,[in] LCID lcid,[in] DWORD refPtrFlags,[out] BSTR *pbstrHelpString,[out] DWORD *pdwHelpStringContext,[out] BSTR *pbstrHelpStringDll); 840 HRESULT GetAllCustData ([out] CUSTDATA *pCustData); 841 HRESULT GetAllFuncCustData ([in] UINT index,[out] CUSTDATA *pCustData); 842 HRESULT GetAllParamCustData ([in] UINT indexFunc,[in] UINT indexParam,[out] CUSTDATA *pCustData); 843 HRESULT GetAllVarCustData ([in] UINT index,[out] CUSTDATA *pCustData); 844 HRESULT GetAllImplTypeCustData ([in] UINT index,[out] CUSTDATA *pCustData); 845} 846cpp_quote("#endif") 847cpp_quote("") 848cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 849[object, uuid (00020402-0000-0000-C000-000000000046), pointer_default (unique)] 850interface ITypeLib : IUnknown { 851 typedef [v1_enum] enum tagSYSKIND { 852 SYS_WIN16 = 0, 853 SYS_WIN32, 854 SYS_MAC, 855 SYS_WIN64 856 } SYSKIND; 857cpp_quote("") 858 typedef [v1_enum] enum tagLIBFLAGS { 859 LIBFLAG_FRESTRICTED = 0x01, 860 LIBFLAG_FCONTROL = 0x02, 861 LIBFLAG_FHIDDEN = 0x04, 862 LIBFLAG_FHASDISKIMAGE = 0x08 863 } LIBFLAGS; 864cpp_quote("") 865 typedef [unique] ITypeLib *LPTYPELIB; 866cpp_quote("") 867 typedef struct tagTLIBATTR { 868 GUID guid; 869 LCID lcid; 870 SYSKIND syskind; 871 WORD wMajorVerNum; 872 WORD wMinorVerNum; 873 WORD wLibFlags; 874 } TLIBATTR,*LPTLIBATTR; 875cpp_quote("") 876 [local] UINT GetTypeInfoCount (void); 877 [call_as (GetTypeInfoCount)] HRESULT RemoteGetTypeInfoCount ([out] UINT *pcTInfo); 878 HRESULT GetTypeInfo ([in] UINT index,[out] ITypeInfo **ppTInfo); 879 HRESULT GetTypeInfoType ([in] UINT index,[out] TYPEKIND *pTKind); 880 HRESULT GetTypeInfoOfGuid ([in] REFGUID guid,[out] ITypeInfo **ppTinfo); 881 [local] HRESULT GetLibAttr ([out] TLIBATTR **ppTLibAttr); 882 [call_as (GetLibAttr)] HRESULT RemoteGetLibAttr ([out] LPTLIBATTR *ppTLibAttr,[out] CLEANLOCALSTORAGE *pDummy); 883 HRESULT GetTypeComp ([out] ITypeComp **ppTComp); 884 [local] HRESULT GetDocumentation ([in] INT index,[out] BSTR *pBstrName,[out] BSTR *pBstrDocString,[out] DWORD *pdwHelpContext,[out] BSTR *pBstrHelpFile); 885 [call_as (GetDocumentation)] HRESULT RemoteGetDocumentation ([in] INT index,[in] DWORD refPtrFlags,[out] BSTR *pBstrName,[out] BSTR *pBstrDocString,[out] DWORD *pdwHelpContext,[out] BSTR *pBstrHelpFile); 886 [local] HRESULT IsName ([in, out] LPOLESTR szNameBuf,[in] ULONG lHashVal,[out] BOOL *pfName); 887 [call_as (IsName)] HRESULT RemoteIsName ([in] LPOLESTR szNameBuf,[in] ULONG lHashVal,[out] BOOL *pfName,[out] BSTR *pBstrLibName); 888 [local] HRESULT FindName ([in, out] LPOLESTR szNameBuf,[in] ULONG lHashVal,[out, size_is (*pcFound), length_is (*pcFound)] ITypeInfo **ppTInfo,[out, size_is (*pcFound), length_is (*pcFound)] MEMBERID *rgMemId,[in, out] USHORT *pcFound); 889 [call_as (FindName)] HRESULT RemoteFindName ([in] LPOLESTR szNameBuf,[in] ULONG lHashVal,[out, size_is (*pcFound), length_is (*pcFound)] ITypeInfo **ppTInfo,[out, size_is (*pcFound), length_is (*pcFound)] MEMBERID *rgMemId,[in, out] USHORT *pcFound,[out] BSTR *pBstrLibName); 890 [local] void ReleaseTLibAttr ([in] TLIBATTR *pTLibAttr); 891 [call_as (ReleaseTLibAttr)] HRESULT LocalReleaseTLibAttr (void); 892} 893cpp_quote("#endif") 894cpp_quote("") 895cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 896[object, uuid (00020411-0000-0000-C000-000000000046), pointer_default (unique)] 897interface ITypeLib2 : ITypeLib { 898 typedef [unique] ITypeLib2 *LPTYPELIB2; 899cpp_quote("") 900 HRESULT GetCustData ([in] REFGUID guid,[out] VARIANT *pVarVal); 901 [local] HRESULT GetLibStatistics ([out] ULONG *pcUniqueNames,[out] ULONG *pcchUniqueNames); 902 [call_as (GetLibStatistics)] HRESULT RemoteGetLibStatistics ([out] ULONG *pcUniqueNames,[out] ULONG *pcchUniqueNames); 903 [local] HRESULT GetDocumentation2 ([in] INT index,[in] LCID lcid,[out] BSTR *pbstrHelpString,[out] DWORD *pdwHelpStringContext,[out] BSTR *pbstrHelpStringDll); 904 [call_as (GetDocumentation2)] HRESULT RemoteGetDocumentation2 ([in] INT index,[in] LCID lcid,[in] DWORD refPtrFlags,[out] BSTR *pbstrHelpString,[out] DWORD *pdwHelpStringContext,[out] BSTR *pbstrHelpStringDll); 905 HRESULT GetAllCustData ([out] CUSTDATA *pCustData); 906} 907 908cpp_quote("") 909[object, uuid (00020410-0000-0000-C000-000000000046), pointer_default (unique), local] 910interface ITypeChangeEvents: IUnknown { 911 typedef [unique] ITypeChangeEvents *LPTYPECHANGEEVENTS; 912cpp_quote("") 913 typedef enum tagCHANGEKIND { 914 CHANGEKIND_ADDMEMBER, 915 CHANGEKIND_DELETEMEMBER, 916 CHANGEKIND_SETNAMES, 917 CHANGEKIND_SETDOCUMENTATION, 918 CHANGEKIND_GENERAL, 919 CHANGEKIND_INVALIDATE, 920 CHANGEKIND_CHANGEFAILED, 921 CHANGEKIND_MAX 922 } CHANGEKIND; 923cpp_quote("") 924 HRESULT RequestTypeChange ([in] CHANGEKIND changeKind,[in] ITypeInfo *pTInfoBefore,[in] LPOLESTR pStrName,[out] INT *pfCancel); 925 HRESULT AfterTypeChange ([in] CHANGEKIND changeKind,[in] ITypeInfo *pTInfoAfter,[in] LPOLESTR pStrName); 926} 927 928cpp_quote("") 929[object, uuid (1cf2b120-547d-101b-8e65-08002b2bd119), pointer_default (unique)] 930interface IErrorInfo: IUnknown { 931 typedef [unique] IErrorInfo *LPERRORINFO; 932cpp_quote("") 933 HRESULT GetGUID ([out] GUID *pGUID); 934 HRESULT GetSource ([out] BSTR *pBstrSource); 935 HRESULT GetDescription ([out] BSTR *pBstrDescription); 936 HRESULT GetHelpFile ([out] BSTR *pBstrHelpFile); 937 HRESULT GetHelpContext ([out] DWORD *pdwHelpContext); 938} 939 940cpp_quote("") 941[object, uuid (22f03340-547d-101b-8e65-08002b2bd119), pointer_default (unique)] 942interface ICreateErrorInfo: IUnknown { 943 typedef [unique] ICreateErrorInfo *LPCREATEERRORINFO; 944cpp_quote("") 945 HRESULT SetGUID ([in] REFGUID rguid); 946 HRESULT SetSource ([in] LPOLESTR szSource); 947 HRESULT SetDescription ([in] LPOLESTR szDescription); 948 HRESULT SetHelpFile ([in] LPOLESTR szHelpFile); 949 HRESULT SetHelpContext ([in] DWORD dwHelpContext); 950} 951 952cpp_quote("") 953[object, uuid (DF0B3D60-548f-101b-8e65-08002b2bd119), pointer_default (unique)] 954interface ISupportErrorInfo: IUnknown { 955 typedef [unique] ISupportErrorInfo *LPSUPPORTERRORINFO; 956cpp_quote("") 957 HRESULT InterfaceSupportsErrorInfo ([in] REFIID riid); 958} 959 960cpp_quote("") 961[object, uuid (0000002e-0000-0000-C000-000000000046)] 962interface ITypeFactory : IUnknown { 963 HRESULT CreateFromTypeInfo ([in] ITypeInfo *pTypeInfo,[in] REFIID riid,[out, iid_is (riid)] IUnknown **ppv); 964} 965 966cpp_quote("") 967[local, object, uuid (0000002d-0000-0000-C000-000000000046)] 968interface ITypeMarshal : IUnknown { 969 HRESULT Size ([in] PVOID pvType,[in] DWORD dwDestContext,[in] PVOID pvDestContext,[out] ULONG *pSize); 970 HRESULT Marshal ([in] PVOID pvType,[in] DWORD dwDestContext,[in] PVOID pvDestContext,[in] ULONG cbBufferLength,[out] BYTE *pBuffer,[out] ULONG *pcbWritten); 971 HRESULT Unmarshal ([out] PVOID pvType,[in] DWORD dwFlags,[in] ULONG cbBufferLength,[in] BYTE *pBuffer,[out] ULONG *pcbRead); 972 HRESULT Free ([in] PVOID pvType); 973} 974 975cpp_quote("") 976[local, object, uuid (0000002f-0000-0000-C000-000000000046)] 977interface IRecordInfo: IUnknown { 978 typedef [unique] IRecordInfo *LPRECORDINFO; 979cpp_quote("") 980 HRESULT RecordInit ([out] PVOID pvNew); 981 HRESULT RecordClear ([in] PVOID pvExisting); 982 HRESULT RecordCopy ([in] PVOID pvExisting,[out] PVOID pvNew); 983 HRESULT GetGuid ([out] GUID *pguid); 984 HRESULT GetName ([out] BSTR *pbstrName); 985 HRESULT GetSize ([out] ULONG *pcbSize); 986 HRESULT GetTypeInfo ([out] ITypeInfo **ppTypeInfo); 987 HRESULT GetField ([in] PVOID pvData,[in] LPCOLESTR szFieldName,[out] VARIANT *pvarField); 988 HRESULT GetFieldNoCopy ([in] PVOID pvData,[in] LPCOLESTR szFieldName,[out] VARIANT *pvarField,[out] PVOID *ppvDataCArray); 989 HRESULT PutField ([in] ULONG wFlags,[in, out] PVOID pvData,[in] LPCOLESTR szFieldName,[in] VARIANT *pvarField); 990 HRESULT PutFieldNoCopy ([in] ULONG wFlags,[in, out] PVOID pvData,[in] LPCOLESTR szFieldName,[in] VARIANT *pvarField); 991 HRESULT GetFieldNames ([in, out] ULONG *pcNames,[out, size_is (*pcNames), length_is (*pcNames)] BSTR *rgBstrNames); 992 BOOL IsMatchingType ([in] IRecordInfo *pRecordInfo); 993 PVOID RecordCreate (); 994 HRESULT RecordCreateCopy ([in] PVOID pvSource,[out] PVOID *ppvDest); 995 HRESULT RecordDestroy ([in] PVOID pvRecord); 996} 997 998cpp_quote("") 999[object, uuid (3127ca40-446e-11ce-8135-00aa004bb851), pointer_default (unique)] 1000interface IErrorLog : IUnknown { 1001 typedef IErrorLog *LPERRORLOG; 1002cpp_quote("") 1003 HRESULT AddError ([in] LPCOLESTR pszPropName,[in] EXCEPINFO *pExcepInfo); 1004} 1005 1006cpp_quote("") 1007[object, uuid (55272a00-42cb-11ce-8135-00aa004bb851), pointer_default (unique)] 1008interface IPropertyBag : IUnknown { 1009 typedef IPropertyBag *LPPROPERTYBAG; 1010cpp_quote("") 1011 [local] HRESULT Read ([in] LPCOLESTR pszPropName,[in, out] VARIANT *pVar,[in, unique] IErrorLog *pErrorLog); 1012 [call_as (Read)] HRESULT RemoteRead ([in] LPCOLESTR pszPropName,[out] VARIANT *pVar,[in, unique] IErrorLog *pErrorLog,[in] DWORD varType,[in] IUnknown *pUnkObj); 1013 HRESULT Write ([in] LPCOLESTR pszPropName,[in] VARIANT *pVar); 1014} 1015cpp_quote("#endif") 1016