master
   1/*** Autogenerated by WIDL 10.4 from include/objidlbase.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 __objidlbase_h__
  17#define __objidlbase_h__
  18
  19/* Forward declarations */
  20
  21#ifndef __IMarshal_FWD_DEFINED__
  22#define __IMarshal_FWD_DEFINED__
  23typedef interface IMarshal IMarshal;
  24#ifdef __cplusplus
  25interface IMarshal;
  26#endif /* __cplusplus */
  27#endif
  28
  29#ifndef __INoMarshal_FWD_DEFINED__
  30#define __INoMarshal_FWD_DEFINED__
  31typedef interface INoMarshal INoMarshal;
  32#ifdef __cplusplus
  33interface INoMarshal;
  34#endif /* __cplusplus */
  35#endif
  36
  37#ifndef __IAgileObject_FWD_DEFINED__
  38#define __IAgileObject_FWD_DEFINED__
  39typedef interface IAgileObject IAgileObject;
  40#ifdef __cplusplus
  41interface IAgileObject;
  42#endif /* __cplusplus */
  43#endif
  44
  45#ifndef __IAgileReference_FWD_DEFINED__
  46#define __IAgileReference_FWD_DEFINED__
  47typedef interface IAgileReference IAgileReference;
  48#ifdef __cplusplus
  49interface IAgileReference;
  50#endif /* __cplusplus */
  51#endif
  52
  53#ifndef __IMarshal2_FWD_DEFINED__
  54#define __IMarshal2_FWD_DEFINED__
  55typedef interface IMarshal2 IMarshal2;
  56#ifdef __cplusplus
  57interface IMarshal2;
  58#endif /* __cplusplus */
  59#endif
  60
  61#ifndef __IMalloc_FWD_DEFINED__
  62#define __IMalloc_FWD_DEFINED__
  63typedef interface IMalloc IMalloc;
  64#ifdef __cplusplus
  65interface IMalloc;
  66#endif /* __cplusplus */
  67#endif
  68
  69#ifndef __IStdMarshalInfo_FWD_DEFINED__
  70#define __IStdMarshalInfo_FWD_DEFINED__
  71typedef interface IStdMarshalInfo IStdMarshalInfo;
  72#ifdef __cplusplus
  73interface IStdMarshalInfo;
  74#endif /* __cplusplus */
  75#endif
  76
  77#ifndef __IExternalConnection_FWD_DEFINED__
  78#define __IExternalConnection_FWD_DEFINED__
  79typedef interface IExternalConnection IExternalConnection;
  80#ifdef __cplusplus
  81interface IExternalConnection;
  82#endif /* __cplusplus */
  83#endif
  84
  85#ifndef __IMultiQI_FWD_DEFINED__
  86#define __IMultiQI_FWD_DEFINED__
  87typedef interface IMultiQI IMultiQI;
  88#ifdef __cplusplus
  89interface IMultiQI;
  90#endif /* __cplusplus */
  91#endif
  92
  93#ifndef __AsyncIMultiQI_FWD_DEFINED__
  94#define __AsyncIMultiQI_FWD_DEFINED__
  95typedef interface AsyncIMultiQI AsyncIMultiQI;
  96#ifdef __cplusplus
  97interface AsyncIMultiQI;
  98#endif /* __cplusplus */
  99#endif
 100
 101#ifndef __IInternalUnknown_FWD_DEFINED__
 102#define __IInternalUnknown_FWD_DEFINED__
 103typedef interface IInternalUnknown IInternalUnknown;
 104#ifdef __cplusplus
 105interface IInternalUnknown;
 106#endif /* __cplusplus */
 107#endif
 108
 109#ifndef __IEnumUnknown_FWD_DEFINED__
 110#define __IEnumUnknown_FWD_DEFINED__
 111typedef interface IEnumUnknown IEnumUnknown;
 112#ifdef __cplusplus
 113interface IEnumUnknown;
 114#endif /* __cplusplus */
 115#endif
 116
 117#ifndef __IEnumString_FWD_DEFINED__
 118#define __IEnumString_FWD_DEFINED__
 119typedef interface IEnumString IEnumString;
 120#ifdef __cplusplus
 121interface IEnumString;
 122#endif /* __cplusplus */
 123#endif
 124
 125#ifndef __ISequentialStream_FWD_DEFINED__
 126#define __ISequentialStream_FWD_DEFINED__
 127typedef interface ISequentialStream ISequentialStream;
 128#ifdef __cplusplus
 129interface ISequentialStream;
 130#endif /* __cplusplus */
 131#endif
 132
 133#ifndef __IStream_FWD_DEFINED__
 134#define __IStream_FWD_DEFINED__
 135typedef interface IStream IStream;
 136#ifdef __cplusplus
 137interface IStream;
 138#endif /* __cplusplus */
 139#endif
 140
 141#ifndef __IRpcChannelBuffer_FWD_DEFINED__
 142#define __IRpcChannelBuffer_FWD_DEFINED__
 143typedef interface IRpcChannelBuffer IRpcChannelBuffer;
 144#ifdef __cplusplus
 145interface IRpcChannelBuffer;
 146#endif /* __cplusplus */
 147#endif
 148
 149#ifndef __IRpcChannelBuffer2_FWD_DEFINED__
 150#define __IRpcChannelBuffer2_FWD_DEFINED__
 151typedef interface IRpcChannelBuffer2 IRpcChannelBuffer2;
 152#ifdef __cplusplus
 153interface IRpcChannelBuffer2;
 154#endif /* __cplusplus */
 155#endif
 156
 157#ifndef __IAsyncRpcChannelBuffer_FWD_DEFINED__
 158#define __IAsyncRpcChannelBuffer_FWD_DEFINED__
 159typedef interface IAsyncRpcChannelBuffer IAsyncRpcChannelBuffer;
 160#ifdef __cplusplus
 161interface IAsyncRpcChannelBuffer;
 162#endif /* __cplusplus */
 163#endif
 164
 165#ifndef __IRpcChannelBuffer3_FWD_DEFINED__
 166#define __IRpcChannelBuffer3_FWD_DEFINED__
 167typedef interface IRpcChannelBuffer3 IRpcChannelBuffer3;
 168#ifdef __cplusplus
 169interface IRpcChannelBuffer3;
 170#endif /* __cplusplus */
 171#endif
 172
 173#ifndef __IRpcSyntaxNegotiate_FWD_DEFINED__
 174#define __IRpcSyntaxNegotiate_FWD_DEFINED__
 175typedef interface IRpcSyntaxNegotiate IRpcSyntaxNegotiate;
 176#ifdef __cplusplus
 177interface IRpcSyntaxNegotiate;
 178#endif /* __cplusplus */
 179#endif
 180
 181#ifndef __IRpcProxyBuffer_FWD_DEFINED__
 182#define __IRpcProxyBuffer_FWD_DEFINED__
 183typedef interface IRpcProxyBuffer IRpcProxyBuffer;
 184#ifdef __cplusplus
 185interface IRpcProxyBuffer;
 186#endif /* __cplusplus */
 187#endif
 188
 189#ifndef __IRpcStubBuffer_FWD_DEFINED__
 190#define __IRpcStubBuffer_FWD_DEFINED__
 191typedef interface IRpcStubBuffer IRpcStubBuffer;
 192#ifdef __cplusplus
 193interface IRpcStubBuffer;
 194#endif /* __cplusplus */
 195#endif
 196
 197#ifndef __IPSFactoryBuffer_FWD_DEFINED__
 198#define __IPSFactoryBuffer_FWD_DEFINED__
 199typedef interface IPSFactoryBuffer IPSFactoryBuffer;
 200#ifdef __cplusplus
 201interface IPSFactoryBuffer;
 202#endif /* __cplusplus */
 203#endif
 204
 205#ifndef __IChannelHook_FWD_DEFINED__
 206#define __IChannelHook_FWD_DEFINED__
 207typedef interface IChannelHook IChannelHook;
 208#ifdef __cplusplus
 209interface IChannelHook;
 210#endif /* __cplusplus */
 211#endif
 212
 213#ifndef __IClientSecurity_FWD_DEFINED__
 214#define __IClientSecurity_FWD_DEFINED__
 215typedef interface IClientSecurity IClientSecurity;
 216#ifdef __cplusplus
 217interface IClientSecurity;
 218#endif /* __cplusplus */
 219#endif
 220
 221#ifndef __IServerSecurity_FWD_DEFINED__
 222#define __IServerSecurity_FWD_DEFINED__
 223typedef interface IServerSecurity IServerSecurity;
 224#ifdef __cplusplus
 225interface IServerSecurity;
 226#endif /* __cplusplus */
 227#endif
 228
 229#ifndef __IRpcOptions_FWD_DEFINED__
 230#define __IRpcOptions_FWD_DEFINED__
 231typedef interface IRpcOptions IRpcOptions;
 232#ifdef __cplusplus
 233interface IRpcOptions;
 234#endif /* __cplusplus */
 235#endif
 236
 237#ifndef __IGlobalOptions_FWD_DEFINED__
 238#define __IGlobalOptions_FWD_DEFINED__
 239typedef interface IGlobalOptions IGlobalOptions;
 240#ifdef __cplusplus
 241interface IGlobalOptions;
 242#endif /* __cplusplus */
 243#endif
 244
 245#ifndef __ISurrogate_FWD_DEFINED__
 246#define __ISurrogate_FWD_DEFINED__
 247typedef interface ISurrogate ISurrogate;
 248#ifdef __cplusplus
 249interface ISurrogate;
 250#endif /* __cplusplus */
 251#endif
 252
 253#ifndef __IGlobalInterfaceTable_FWD_DEFINED__
 254#define __IGlobalInterfaceTable_FWD_DEFINED__
 255typedef interface IGlobalInterfaceTable IGlobalInterfaceTable;
 256#ifdef __cplusplus
 257interface IGlobalInterfaceTable;
 258#endif /* __cplusplus */
 259#endif
 260
 261#ifndef __ISynchronize_FWD_DEFINED__
 262#define __ISynchronize_FWD_DEFINED__
 263typedef interface ISynchronize ISynchronize;
 264#ifdef __cplusplus
 265interface ISynchronize;
 266#endif /* __cplusplus */
 267#endif
 268
 269#ifndef __ISynchronizeHandle_FWD_DEFINED__
 270#define __ISynchronizeHandle_FWD_DEFINED__
 271typedef interface ISynchronizeHandle ISynchronizeHandle;
 272#ifdef __cplusplus
 273interface ISynchronizeHandle;
 274#endif /* __cplusplus */
 275#endif
 276
 277#ifndef __ISynchronizeEvent_FWD_DEFINED__
 278#define __ISynchronizeEvent_FWD_DEFINED__
 279typedef interface ISynchronizeEvent ISynchronizeEvent;
 280#ifdef __cplusplus
 281interface ISynchronizeEvent;
 282#endif /* __cplusplus */
 283#endif
 284
 285#ifndef __ISynchronizeContainer_FWD_DEFINED__
 286#define __ISynchronizeContainer_FWD_DEFINED__
 287typedef interface ISynchronizeContainer ISynchronizeContainer;
 288#ifdef __cplusplus
 289interface ISynchronizeContainer;
 290#endif /* __cplusplus */
 291#endif
 292
 293#ifndef __ISynchronizeMutex_FWD_DEFINED__
 294#define __ISynchronizeMutex_FWD_DEFINED__
 295typedef interface ISynchronizeMutex ISynchronizeMutex;
 296#ifdef __cplusplus
 297interface ISynchronizeMutex;
 298#endif /* __cplusplus */
 299#endif
 300
 301#ifndef __ICancelMethodCalls_FWD_DEFINED__
 302#define __ICancelMethodCalls_FWD_DEFINED__
 303typedef interface ICancelMethodCalls ICancelMethodCalls;
 304#ifdef __cplusplus
 305interface ICancelMethodCalls;
 306#endif /* __cplusplus */
 307#endif
 308
 309#ifndef __IAsyncManager_FWD_DEFINED__
 310#define __IAsyncManager_FWD_DEFINED__
 311typedef interface IAsyncManager IAsyncManager;
 312#ifdef __cplusplus
 313interface IAsyncManager;
 314#endif /* __cplusplus */
 315#endif
 316
 317#ifndef __ICallFactory_FWD_DEFINED__
 318#define __ICallFactory_FWD_DEFINED__
 319typedef interface ICallFactory ICallFactory;
 320#ifdef __cplusplus
 321interface ICallFactory;
 322#endif /* __cplusplus */
 323#endif
 324
 325#ifndef __IRpcHelper_FWD_DEFINED__
 326#define __IRpcHelper_FWD_DEFINED__
 327typedef interface IRpcHelper IRpcHelper;
 328#ifdef __cplusplus
 329interface IRpcHelper;
 330#endif /* __cplusplus */
 331#endif
 332
 333#ifndef __IReleaseMarshalBuffers_FWD_DEFINED__
 334#define __IReleaseMarshalBuffers_FWD_DEFINED__
 335typedef interface IReleaseMarshalBuffers IReleaseMarshalBuffers;
 336#ifdef __cplusplus
 337interface IReleaseMarshalBuffers;
 338#endif /* __cplusplus */
 339#endif
 340
 341#ifndef __IWaitMultiple_FWD_DEFINED__
 342#define __IWaitMultiple_FWD_DEFINED__
 343typedef interface IWaitMultiple IWaitMultiple;
 344#ifdef __cplusplus
 345interface IWaitMultiple;
 346#endif /* __cplusplus */
 347#endif
 348
 349#ifndef __IAddrTrackingControl_FWD_DEFINED__
 350#define __IAddrTrackingControl_FWD_DEFINED__
 351typedef interface IAddrTrackingControl IAddrTrackingControl;
 352#ifdef __cplusplus
 353interface IAddrTrackingControl;
 354#endif /* __cplusplus */
 355#endif
 356
 357#ifndef __IAddrExclusionControl_FWD_DEFINED__
 358#define __IAddrExclusionControl_FWD_DEFINED__
 359typedef interface IAddrExclusionControl IAddrExclusionControl;
 360#ifdef __cplusplus
 361interface IAddrExclusionControl;
 362#endif /* __cplusplus */
 363#endif
 364
 365#ifndef __IPipeByte_FWD_DEFINED__
 366#define __IPipeByte_FWD_DEFINED__
 367typedef interface IPipeByte IPipeByte;
 368#ifdef __cplusplus
 369interface IPipeByte;
 370#endif /* __cplusplus */
 371#endif
 372
 373#ifndef __IPipeLong_FWD_DEFINED__
 374#define __IPipeLong_FWD_DEFINED__
 375typedef interface IPipeLong IPipeLong;
 376#ifdef __cplusplus
 377interface IPipeLong;
 378#endif /* __cplusplus */
 379#endif
 380
 381#ifndef __IPipeDouble_FWD_DEFINED__
 382#define __IPipeDouble_FWD_DEFINED__
 383typedef interface IPipeDouble IPipeDouble;
 384#ifdef __cplusplus
 385interface IPipeDouble;
 386#endif /* __cplusplus */
 387#endif
 388
 389#ifndef __IEnumContextProps_FWD_DEFINED__
 390#define __IEnumContextProps_FWD_DEFINED__
 391typedef interface IEnumContextProps IEnumContextProps;
 392#ifdef __cplusplus
 393interface IEnumContextProps;
 394#endif /* __cplusplus */
 395#endif
 396
 397#ifndef __IContext_FWD_DEFINED__
 398#define __IContext_FWD_DEFINED__
 399typedef interface IContext IContext;
 400#ifdef __cplusplus
 401interface IContext;
 402#endif /* __cplusplus */
 403#endif
 404
 405#ifndef __IComThreadingInfo_FWD_DEFINED__
 406#define __IComThreadingInfo_FWD_DEFINED__
 407typedef interface IComThreadingInfo IComThreadingInfo;
 408#ifdef __cplusplus
 409interface IComThreadingInfo;
 410#endif /* __cplusplus */
 411#endif
 412
 413#ifndef __IProcessInitControl_FWD_DEFINED__
 414#define __IProcessInitControl_FWD_DEFINED__
 415typedef interface IProcessInitControl IProcessInitControl;
 416#ifdef __cplusplus
 417interface IProcessInitControl;
 418#endif /* __cplusplus */
 419#endif
 420
 421#ifndef __IFastRundown_FWD_DEFINED__
 422#define __IFastRundown_FWD_DEFINED__
 423typedef interface IFastRundown IFastRundown;
 424#ifdef __cplusplus
 425interface IFastRundown;
 426#endif /* __cplusplus */
 427#endif
 428
 429#ifndef __IMarshalingStream_FWD_DEFINED__
 430#define __IMarshalingStream_FWD_DEFINED__
 431typedef interface IMarshalingStream IMarshalingStream;
 432#ifdef __cplusplus
 433interface IMarshalingStream;
 434#endif /* __cplusplus */
 435#endif
 436
 437/* Headers for imported files */
 438
 439#include <unknwnbase.h>
 440#include <wtypesbase.h>
 441
 442#ifdef __cplusplus
 443extern "C" {
 444#endif
 445
 446/**
 447 * This file is part of the mingw-w64 runtime package.
 448 * No warranty is given; refer to the file DISCLAIMER within this package.
 449 */
 450
 451#include <winapifamily.h>
 452
 453#if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))
 454#define _WIN32_WINNT 0x0600
 455#endif
 456
 457#if (NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))
 458#define _WIN32_WINNT 0x0502
 459#endif
 460
 461#if (NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))
 462#define _WIN32_WINNT 0x0501
 463#endif
 464
 465
 466#ifndef _OBJIDLBASE_
 467#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
 468#ifndef __IStream_FWD_DEFINED__
 469#define __IStream_FWD_DEFINED__
 470typedef interface IStream IStream;
 471#ifdef __cplusplus
 472interface IStream;
 473#endif /* __cplusplus */
 474#endif
 475
 476#ifndef __IEnumString_FWD_DEFINED__
 477#define __IEnumString_FWD_DEFINED__
 478typedef interface IEnumString IEnumString;
 479#ifdef __cplusplus
 480interface IEnumString;
 481#endif /* __cplusplus */
 482#endif
 483
 484#ifndef __IMultiQI_FWD_DEFINED__
 485#define __IMultiQI_FWD_DEFINED__
 486typedef interface IMultiQI IMultiQI;
 487#ifdef __cplusplus
 488interface IMultiQI;
 489#endif /* __cplusplus */
 490#endif
 491
 492#endif
 493
 494#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
 495#ifndef __IAsyncManager_FWD_DEFINED__
 496#define __IAsyncManager_FWD_DEFINED__
 497typedef interface IAsyncManager IAsyncManager;
 498#ifdef __cplusplus
 499interface IAsyncManager;
 500#endif /* __cplusplus */
 501#endif
 502
 503#ifndef __ICallFactory_FWD_DEFINED__
 504#define __ICallFactory_FWD_DEFINED__
 505typedef interface ICallFactory ICallFactory;
 506#ifdef __cplusplus
 507interface ICallFactory;
 508#endif /* __cplusplus */
 509#endif
 510
 511#ifndef __ISynchronize_FWD_DEFINED__
 512#define __ISynchronize_FWD_DEFINED__
 513typedef interface ISynchronize ISynchronize;
 514#ifdef __cplusplus
 515interface ISynchronize;
 516#endif /* __cplusplus */
 517#endif
 518
 519#endif
 520
 521#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
 522typedef struct _COSERVERINFO {
 523    DWORD dwReserved1;
 524    LPWSTR pwszName;
 525    COAUTHINFO *pAuthInfo;
 526    DWORD dwReserved2;
 527} COSERVERINFO;
 528
 529/*****************************************************************************
 530 * IMarshal interface
 531 */
 532#ifndef __IMarshal_INTERFACE_DEFINED__
 533#define __IMarshal_INTERFACE_DEFINED__
 534
 535typedef IMarshal *LPMARSHAL;
 536DEFINE_GUID(IID_IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 537#if defined(__cplusplus) && !defined(CINTERFACE)
 538MIDL_INTERFACE("00000003-0000-0000-c000-000000000046")
 539IMarshal : public IUnknown
 540{
 541    virtual HRESULT STDMETHODCALLTYPE GetUnmarshalClass(
 542        REFIID riid,
 543        void *pv,
 544        DWORD dwDestContext,
 545        void *pvDestContext,
 546        DWORD mshlflags,
 547        CLSID *pCid) = 0;
 548
 549    virtual HRESULT STDMETHODCALLTYPE GetMarshalSizeMax(
 550        REFIID riid,
 551        void *pv,
 552        DWORD dwDestContext,
 553        void *pvDestContext,
 554        DWORD mshlflags,
 555        DWORD *pSize) = 0;
 556
 557    virtual HRESULT STDMETHODCALLTYPE MarshalInterface(
 558        IStream *pStm,
 559        REFIID riid,
 560        void *pv,
 561        DWORD dwDestContext,
 562        void *pvDestContext,
 563        DWORD mshlflags) = 0;
 564
 565    virtual HRESULT STDMETHODCALLTYPE UnmarshalInterface(
 566        IStream *pStm,
 567        REFIID riid,
 568        void **ppv) = 0;
 569
 570    virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalData(
 571        IStream *pStm) = 0;
 572
 573    virtual HRESULT STDMETHODCALLTYPE DisconnectObject(
 574        DWORD dwReserved) = 0;
 575
 576};
 577#ifdef __CRT_UUID_DECL
 578__CRT_UUID_DECL(IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
 579#endif
 580#else
 581typedef struct IMarshalVtbl {
 582    BEGIN_INTERFACE
 583
 584    /*** IUnknown methods ***/
 585    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 586        IMarshal *This,
 587        REFIID riid,
 588        void **ppvObject);
 589
 590    ULONG (STDMETHODCALLTYPE *AddRef)(
 591        IMarshal *This);
 592
 593    ULONG (STDMETHODCALLTYPE *Release)(
 594        IMarshal *This);
 595
 596    /*** IMarshal methods ***/
 597    HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
 598        IMarshal *This,
 599        REFIID riid,
 600        void *pv,
 601        DWORD dwDestContext,
 602        void *pvDestContext,
 603        DWORD mshlflags,
 604        CLSID *pCid);
 605
 606    HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
 607        IMarshal *This,
 608        REFIID riid,
 609        void *pv,
 610        DWORD dwDestContext,
 611        void *pvDestContext,
 612        DWORD mshlflags,
 613        DWORD *pSize);
 614
 615    HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
 616        IMarshal *This,
 617        IStream *pStm,
 618        REFIID riid,
 619        void *pv,
 620        DWORD dwDestContext,
 621        void *pvDestContext,
 622        DWORD mshlflags);
 623
 624    HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
 625        IMarshal *This,
 626        IStream *pStm,
 627        REFIID riid,
 628        void **ppv);
 629
 630    HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
 631        IMarshal *This,
 632        IStream *pStm);
 633
 634    HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
 635        IMarshal *This,
 636        DWORD dwReserved);
 637
 638    END_INTERFACE
 639} IMarshalVtbl;
 640
 641interface IMarshal {
 642    CONST_VTBL IMarshalVtbl* lpVtbl;
 643};
 644
 645#ifdef COBJMACROS
 646#ifndef WIDL_C_INLINE_WRAPPERS
 647/*** IUnknown methods ***/
 648#define IMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 649#define IMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
 650#define IMarshal_Release(This) (This)->lpVtbl->Release(This)
 651/*** IMarshal methods ***/
 652#define IMarshal_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) (This)->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid)
 653#define IMarshal_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) (This)->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize)
 654#define IMarshal_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) (This)->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags)
 655#define IMarshal_UnmarshalInterface(This,pStm,riid,ppv) (This)->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv)
 656#define IMarshal_ReleaseMarshalData(This,pStm) (This)->lpVtbl->ReleaseMarshalData(This,pStm)
 657#define IMarshal_DisconnectObject(This,dwReserved) (This)->lpVtbl->DisconnectObject(This,dwReserved)
 658#else
 659/*** IUnknown methods ***/
 660static inline HRESULT IMarshal_QueryInterface(IMarshal* This,REFIID riid,void **ppvObject) {
 661    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 662}
 663static inline ULONG IMarshal_AddRef(IMarshal* This) {
 664    return This->lpVtbl->AddRef(This);
 665}
 666static inline ULONG IMarshal_Release(IMarshal* This) {
 667    return This->lpVtbl->Release(This);
 668}
 669/*** IMarshal methods ***/
 670static inline HRESULT IMarshal_GetUnmarshalClass(IMarshal* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,CLSID *pCid) {
 671    return This->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid);
 672}
 673static inline HRESULT IMarshal_GetMarshalSizeMax(IMarshal* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,DWORD *pSize) {
 674    return This->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize);
 675}
 676static inline HRESULT IMarshal_MarshalInterface(IMarshal* This,IStream *pStm,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags) {
 677    return This->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags);
 678}
 679static inline HRESULT IMarshal_UnmarshalInterface(IMarshal* This,IStream *pStm,REFIID riid,void **ppv) {
 680    return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
 681}
 682static inline HRESULT IMarshal_ReleaseMarshalData(IMarshal* This,IStream *pStm) {
 683    return This->lpVtbl->ReleaseMarshalData(This,pStm);
 684}
 685static inline HRESULT IMarshal_DisconnectObject(IMarshal* This,DWORD dwReserved) {
 686    return This->lpVtbl->DisconnectObject(This,dwReserved);
 687}
 688#endif
 689#endif
 690
 691#endif
 692
 693
 694#endif  /* __IMarshal_INTERFACE_DEFINED__ */
 695
 696
 697/*****************************************************************************
 698 * INoMarshal interface
 699 */
 700#ifndef __INoMarshal_INTERFACE_DEFINED__
 701#define __INoMarshal_INTERFACE_DEFINED__
 702
 703DEFINE_GUID(IID_INoMarshal, 0xecc8691b, 0xc1db, 0x4dc0, 0x85,0x5e, 0x65,0xf6,0xc5,0x51,0xaf,0x49);
 704#if defined(__cplusplus) && !defined(CINTERFACE)
 705MIDL_INTERFACE("ecc8691b-c1db-4dc0-855e-65f6c551af49")
 706INoMarshal : public IUnknown
 707{
 708};
 709#ifdef __CRT_UUID_DECL
 710__CRT_UUID_DECL(INoMarshal, 0xecc8691b, 0xc1db, 0x4dc0, 0x85,0x5e, 0x65,0xf6,0xc5,0x51,0xaf,0x49)
 711#endif
 712#else
 713typedef struct INoMarshalVtbl {
 714    BEGIN_INTERFACE
 715
 716    /*** IUnknown methods ***/
 717    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 718        INoMarshal *This,
 719        REFIID riid,
 720        void **ppvObject);
 721
 722    ULONG (STDMETHODCALLTYPE *AddRef)(
 723        INoMarshal *This);
 724
 725    ULONG (STDMETHODCALLTYPE *Release)(
 726        INoMarshal *This);
 727
 728    END_INTERFACE
 729} INoMarshalVtbl;
 730
 731interface INoMarshal {
 732    CONST_VTBL INoMarshalVtbl* lpVtbl;
 733};
 734
 735#ifdef COBJMACROS
 736#ifndef WIDL_C_INLINE_WRAPPERS
 737/*** IUnknown methods ***/
 738#define INoMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 739#define INoMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
 740#define INoMarshal_Release(This) (This)->lpVtbl->Release(This)
 741#else
 742/*** IUnknown methods ***/
 743static inline HRESULT INoMarshal_QueryInterface(INoMarshal* This,REFIID riid,void **ppvObject) {
 744    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 745}
 746static inline ULONG INoMarshal_AddRef(INoMarshal* This) {
 747    return This->lpVtbl->AddRef(This);
 748}
 749static inline ULONG INoMarshal_Release(INoMarshal* This) {
 750    return This->lpVtbl->Release(This);
 751}
 752#endif
 753#endif
 754
 755#endif
 756
 757
 758#endif  /* __INoMarshal_INTERFACE_DEFINED__ */
 759
 760
 761/*****************************************************************************
 762 * IAgileObject interface
 763 */
 764#ifndef __IAgileObject_INTERFACE_DEFINED__
 765#define __IAgileObject_INTERFACE_DEFINED__
 766
 767DEFINE_GUID(IID_IAgileObject, 0x94ea2b94, 0xe9cc, 0x49e0, 0xc0,0xff, 0xee,0x64,0xca,0x8f,0x5b,0x90);
 768#if defined(__cplusplus) && !defined(CINTERFACE)
 769MIDL_INTERFACE("94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90")
 770IAgileObject : public IUnknown
 771{
 772};
 773#ifdef __CRT_UUID_DECL
 774__CRT_UUID_DECL(IAgileObject, 0x94ea2b94, 0xe9cc, 0x49e0, 0xc0,0xff, 0xee,0x64,0xca,0x8f,0x5b,0x90)
 775#endif
 776#else
 777typedef struct IAgileObjectVtbl {
 778    BEGIN_INTERFACE
 779
 780    /*** IUnknown methods ***/
 781    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 782        IAgileObject *This,
 783        REFIID riid,
 784        void **ppvObject);
 785
 786    ULONG (STDMETHODCALLTYPE *AddRef)(
 787        IAgileObject *This);
 788
 789    ULONG (STDMETHODCALLTYPE *Release)(
 790        IAgileObject *This);
 791
 792    END_INTERFACE
 793} IAgileObjectVtbl;
 794
 795interface IAgileObject {
 796    CONST_VTBL IAgileObjectVtbl* lpVtbl;
 797};
 798
 799#ifdef COBJMACROS
 800#ifndef WIDL_C_INLINE_WRAPPERS
 801/*** IUnknown methods ***/
 802#define IAgileObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 803#define IAgileObject_AddRef(This) (This)->lpVtbl->AddRef(This)
 804#define IAgileObject_Release(This) (This)->lpVtbl->Release(This)
 805#else
 806/*** IUnknown methods ***/
 807static inline HRESULT IAgileObject_QueryInterface(IAgileObject* This,REFIID riid,void **ppvObject) {
 808    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 809}
 810static inline ULONG IAgileObject_AddRef(IAgileObject* This) {
 811    return This->lpVtbl->AddRef(This);
 812}
 813static inline ULONG IAgileObject_Release(IAgileObject* This) {
 814    return This->lpVtbl->Release(This);
 815}
 816#endif
 817#endif
 818
 819#endif
 820
 821
 822#endif  /* __IAgileObject_INTERFACE_DEFINED__ */
 823
 824/*****************************************************************************
 825 * IAgileReference interface
 826 */
 827#ifndef __IAgileReference_INTERFACE_DEFINED__
 828#define __IAgileReference_INTERFACE_DEFINED__
 829
 830DEFINE_GUID(IID_IAgileReference, 0xc03f6a43, 0x65a4, 0x9818, 0x98,0x7e, 0xe0,0xb8,0x10,0xd2,0xa6,0xf2);
 831#if defined(__cplusplus) && !defined(CINTERFACE)
 832MIDL_INTERFACE("c03f6a43-65a4-9818-987e-e0b810d2a6f2")
 833IAgileReference : public IUnknown
 834{
 835    virtual HRESULT STDMETHODCALLTYPE Resolve(
 836        REFIID riid,
 837        void **ppv) = 0;
 838
 839};
 840#ifdef __CRT_UUID_DECL
 841__CRT_UUID_DECL(IAgileReference, 0xc03f6a43, 0x65a4, 0x9818, 0x98,0x7e, 0xe0,0xb8,0x10,0xd2,0xa6,0xf2)
 842#endif
 843#else
 844typedef struct IAgileReferenceVtbl {
 845    BEGIN_INTERFACE
 846
 847    /*** IUnknown methods ***/
 848    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 849        IAgileReference *This,
 850        REFIID riid,
 851        void **ppvObject);
 852
 853    ULONG (STDMETHODCALLTYPE *AddRef)(
 854        IAgileReference *This);
 855
 856    ULONG (STDMETHODCALLTYPE *Release)(
 857        IAgileReference *This);
 858
 859    /*** IAgileReference methods ***/
 860    HRESULT (STDMETHODCALLTYPE *Resolve)(
 861        IAgileReference *This,
 862        REFIID riid,
 863        void **ppv);
 864
 865    END_INTERFACE
 866} IAgileReferenceVtbl;
 867
 868interface IAgileReference {
 869    CONST_VTBL IAgileReferenceVtbl* lpVtbl;
 870};
 871
 872#ifdef COBJMACROS
 873#ifndef WIDL_C_INLINE_WRAPPERS
 874/*** IUnknown methods ***/
 875#define IAgileReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 876#define IAgileReference_AddRef(This) (This)->lpVtbl->AddRef(This)
 877#define IAgileReference_Release(This) (This)->lpVtbl->Release(This)
 878/*** IAgileReference methods ***/
 879#define IAgileReference_Resolve(This,riid,ppv) (This)->lpVtbl->Resolve(This,riid,ppv)
 880#else
 881/*** IUnknown methods ***/
 882static inline HRESULT IAgileReference_QueryInterface(IAgileReference* This,REFIID riid,void **ppvObject) {
 883    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 884}
 885static inline ULONG IAgileReference_AddRef(IAgileReference* This) {
 886    return This->lpVtbl->AddRef(This);
 887}
 888static inline ULONG IAgileReference_Release(IAgileReference* This) {
 889    return This->lpVtbl->Release(This);
 890}
 891/*** IAgileReference methods ***/
 892static inline HRESULT IAgileReference_Resolve(IAgileReference* This,REFIID riid,void **ppv) {
 893    return This->lpVtbl->Resolve(This,riid,ppv);
 894}
 895#endif
 896#endif
 897
 898#endif
 899
 900
 901#endif  /* __IAgileReference_INTERFACE_DEFINED__ */
 902
 903#endif
 904
 905#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
 906/*****************************************************************************
 907 * IMarshal2 interface
 908 */
 909#ifndef __IMarshal2_INTERFACE_DEFINED__
 910#define __IMarshal2_INTERFACE_DEFINED__
 911
 912typedef IMarshal2 *LPMARSHAL2;
 913DEFINE_GUID(IID_IMarshal2, 0x000001cf, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 914#if defined(__cplusplus) && !defined(CINTERFACE)
 915MIDL_INTERFACE("000001cf-0000-0000-c000-000000000046")
 916IMarshal2 : public IMarshal
 917{
 918};
 919#ifdef __CRT_UUID_DECL
 920__CRT_UUID_DECL(IMarshal2, 0x000001cf, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
 921#endif
 922#else
 923typedef struct IMarshal2Vtbl {
 924    BEGIN_INTERFACE
 925
 926    /*** IUnknown methods ***/
 927    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 928        IMarshal2 *This,
 929        REFIID riid,
 930        void **ppvObject);
 931
 932    ULONG (STDMETHODCALLTYPE *AddRef)(
 933        IMarshal2 *This);
 934
 935    ULONG (STDMETHODCALLTYPE *Release)(
 936        IMarshal2 *This);
 937
 938    /*** IMarshal methods ***/
 939    HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
 940        IMarshal2 *This,
 941        REFIID riid,
 942        void *pv,
 943        DWORD dwDestContext,
 944        void *pvDestContext,
 945        DWORD mshlflags,
 946        CLSID *pCid);
 947
 948    HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
 949        IMarshal2 *This,
 950        REFIID riid,
 951        void *pv,
 952        DWORD dwDestContext,
 953        void *pvDestContext,
 954        DWORD mshlflags,
 955        DWORD *pSize);
 956
 957    HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
 958        IMarshal2 *This,
 959        IStream *pStm,
 960        REFIID riid,
 961        void *pv,
 962        DWORD dwDestContext,
 963        void *pvDestContext,
 964        DWORD mshlflags);
 965
 966    HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
 967        IMarshal2 *This,
 968        IStream *pStm,
 969        REFIID riid,
 970        void **ppv);
 971
 972    HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
 973        IMarshal2 *This,
 974        IStream *pStm);
 975
 976    HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
 977        IMarshal2 *This,
 978        DWORD dwReserved);
 979
 980    END_INTERFACE
 981} IMarshal2Vtbl;
 982
 983interface IMarshal2 {
 984    CONST_VTBL IMarshal2Vtbl* lpVtbl;
 985};
 986
 987#ifdef COBJMACROS
 988#ifndef WIDL_C_INLINE_WRAPPERS
 989/*** IUnknown methods ***/
 990#define IMarshal2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 991#define IMarshal2_AddRef(This) (This)->lpVtbl->AddRef(This)
 992#define IMarshal2_Release(This) (This)->lpVtbl->Release(This)
 993/*** IMarshal methods ***/
 994#define IMarshal2_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) (This)->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid)
 995#define IMarshal2_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) (This)->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize)
 996#define IMarshal2_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) (This)->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags)
 997#define IMarshal2_UnmarshalInterface(This,pStm,riid,ppv) (This)->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv)
 998#define IMarshal2_ReleaseMarshalData(This,pStm) (This)->lpVtbl->ReleaseMarshalData(This,pStm)
 999#define IMarshal2_DisconnectObject(This,dwReserved) (This)->lpVtbl->DisconnectObject(This,dwReserved)
1000#else
1001/*** IUnknown methods ***/
1002static inline HRESULT IMarshal2_QueryInterface(IMarshal2* This,REFIID riid,void **ppvObject) {
1003    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1004}
1005static inline ULONG IMarshal2_AddRef(IMarshal2* This) {
1006    return This->lpVtbl->AddRef(This);
1007}
1008static inline ULONG IMarshal2_Release(IMarshal2* This) {
1009    return This->lpVtbl->Release(This);
1010}
1011/*** IMarshal methods ***/
1012static inline HRESULT IMarshal2_GetUnmarshalClass(IMarshal2* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,CLSID *pCid) {
1013    return This->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid);
1014}
1015static inline HRESULT IMarshal2_GetMarshalSizeMax(IMarshal2* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,DWORD *pSize) {
1016    return This->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize);
1017}
1018static inline HRESULT IMarshal2_MarshalInterface(IMarshal2* This,IStream *pStm,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags) {
1019    return This->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags);
1020}
1021static inline HRESULT IMarshal2_UnmarshalInterface(IMarshal2* This,IStream *pStm,REFIID riid,void **ppv) {
1022    return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
1023}
1024static inline HRESULT IMarshal2_ReleaseMarshalData(IMarshal2* This,IStream *pStm) {
1025    return This->lpVtbl->ReleaseMarshalData(This,pStm);
1026}
1027static inline HRESULT IMarshal2_DisconnectObject(IMarshal2* This,DWORD dwReserved) {
1028    return This->lpVtbl->DisconnectObject(This,dwReserved);
1029}
1030#endif
1031#endif
1032
1033#endif
1034
1035
1036#endif  /* __IMarshal2_INTERFACE_DEFINED__ */
1037
1038
1039/*****************************************************************************
1040 * IMalloc interface
1041 */
1042#ifndef __IMalloc_INTERFACE_DEFINED__
1043#define __IMalloc_INTERFACE_DEFINED__
1044
1045typedef IMalloc *LPMALLOC;
1046
1047DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1048#if defined(__cplusplus) && !defined(CINTERFACE)
1049MIDL_INTERFACE("00000002-0000-0000-c000-000000000046")
1050IMalloc : public IUnknown
1051{
1052    virtual void * STDMETHODCALLTYPE Alloc(
1053        SIZE_T cb) = 0;
1054
1055    virtual void * STDMETHODCALLTYPE Realloc(
1056        void *pv,
1057        SIZE_T cb) = 0;
1058
1059    virtual void STDMETHODCALLTYPE Free(
1060        void *pv) = 0;
1061
1062    virtual SIZE_T STDMETHODCALLTYPE GetSize(
1063        void *pv) = 0;
1064
1065    virtual int STDMETHODCALLTYPE DidAlloc(
1066        void *pv) = 0;
1067
1068    virtual void STDMETHODCALLTYPE HeapMinimize(
1069        ) = 0;
1070
1071};
1072#ifdef __CRT_UUID_DECL
1073__CRT_UUID_DECL(IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1074#endif
1075#else
1076typedef struct IMallocVtbl {
1077    BEGIN_INTERFACE
1078
1079    /*** IUnknown methods ***/
1080    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1081        IMalloc *This,
1082        REFIID riid,
1083        void **ppvObject);
1084
1085    ULONG (STDMETHODCALLTYPE *AddRef)(
1086        IMalloc *This);
1087
1088    ULONG (STDMETHODCALLTYPE *Release)(
1089        IMalloc *This);
1090
1091    /*** IMalloc methods ***/
1092    void * (STDMETHODCALLTYPE *Alloc)(
1093        IMalloc *This,
1094        SIZE_T cb);
1095
1096    void * (STDMETHODCALLTYPE *Realloc)(
1097        IMalloc *This,
1098        void *pv,
1099        SIZE_T cb);
1100
1101    void (STDMETHODCALLTYPE *Free)(
1102        IMalloc *This,
1103        void *pv);
1104
1105    SIZE_T (STDMETHODCALLTYPE *GetSize)(
1106        IMalloc *This,
1107        void *pv);
1108
1109    int (STDMETHODCALLTYPE *DidAlloc)(
1110        IMalloc *This,
1111        void *pv);
1112
1113    void (STDMETHODCALLTYPE *HeapMinimize)(
1114        IMalloc *This);
1115
1116    END_INTERFACE
1117} IMallocVtbl;
1118
1119interface IMalloc {
1120    CONST_VTBL IMallocVtbl* lpVtbl;
1121};
1122
1123#ifdef COBJMACROS
1124#ifndef WIDL_C_INLINE_WRAPPERS
1125/*** IUnknown methods ***/
1126#define IMalloc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1127#define IMalloc_AddRef(This) (This)->lpVtbl->AddRef(This)
1128#define IMalloc_Release(This) (This)->lpVtbl->Release(This)
1129/*** IMalloc methods ***/
1130#define IMalloc_Alloc(This,cb) (This)->lpVtbl->Alloc(This,cb)
1131#define IMalloc_Realloc(This,pv,cb) (This)->lpVtbl->Realloc(This,pv,cb)
1132#define IMalloc_Free(This,pv) (This)->lpVtbl->Free(This,pv)
1133#define IMalloc_GetSize(This,pv) (This)->lpVtbl->GetSize(This,pv)
1134#define IMalloc_DidAlloc(This,pv) (This)->lpVtbl->DidAlloc(This,pv)
1135#define IMalloc_HeapMinimize(This) (This)->lpVtbl->HeapMinimize(This)
1136#else
1137/*** IUnknown methods ***/
1138static inline HRESULT IMalloc_QueryInterface(IMalloc* This,REFIID riid,void **ppvObject) {
1139    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1140}
1141static inline ULONG IMalloc_AddRef(IMalloc* This) {
1142    return This->lpVtbl->AddRef(This);
1143}
1144static inline ULONG IMalloc_Release(IMalloc* This) {
1145    return This->lpVtbl->Release(This);
1146}
1147/*** IMalloc methods ***/
1148static inline void * IMalloc_Alloc(IMalloc* This,SIZE_T cb) {
1149    return This->lpVtbl->Alloc(This,cb);
1150}
1151static inline void * IMalloc_Realloc(IMalloc* This,void *pv,SIZE_T cb) {
1152    return This->lpVtbl->Realloc(This,pv,cb);
1153}
1154static inline void IMalloc_Free(IMalloc* This,void *pv) {
1155    This->lpVtbl->Free(This,pv);
1156}
1157static inline SIZE_T IMalloc_GetSize(IMalloc* This,void *pv) {
1158    return This->lpVtbl->GetSize(This,pv);
1159}
1160static inline int IMalloc_DidAlloc(IMalloc* This,void *pv) {
1161    return This->lpVtbl->DidAlloc(This,pv);
1162}
1163static inline void IMalloc_HeapMinimize(IMalloc* This) {
1164    This->lpVtbl->HeapMinimize(This);
1165}
1166#endif
1167#endif
1168
1169#endif
1170
1171
1172#endif  /* __IMalloc_INTERFACE_DEFINED__ */
1173
1174
1175/*****************************************************************************
1176 * IStdMarshalInfo interface
1177 */
1178#ifndef __IStdMarshalInfo_INTERFACE_DEFINED__
1179#define __IStdMarshalInfo_INTERFACE_DEFINED__
1180
1181typedef IStdMarshalInfo *LPSTDMARSHALINFO;
1182
1183DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1184#if defined(__cplusplus) && !defined(CINTERFACE)
1185MIDL_INTERFACE("00000018-0000-0000-c000-000000000046")
1186IStdMarshalInfo : public IUnknown
1187{
1188    virtual HRESULT STDMETHODCALLTYPE GetClassForHandler(
1189        DWORD dwDestContext,
1190        void *pvDestContext,
1191        CLSID *pClsid) = 0;
1192
1193};
1194#ifdef __CRT_UUID_DECL
1195__CRT_UUID_DECL(IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1196#endif
1197#else
1198typedef struct IStdMarshalInfoVtbl {
1199    BEGIN_INTERFACE
1200
1201    /*** IUnknown methods ***/
1202    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1203        IStdMarshalInfo *This,
1204        REFIID riid,
1205        void **ppvObject);
1206
1207    ULONG (STDMETHODCALLTYPE *AddRef)(
1208        IStdMarshalInfo *This);
1209
1210    ULONG (STDMETHODCALLTYPE *Release)(
1211        IStdMarshalInfo *This);
1212
1213    /*** IStdMarshalInfo methods ***/
1214    HRESULT (STDMETHODCALLTYPE *GetClassForHandler)(
1215        IStdMarshalInfo *This,
1216        DWORD dwDestContext,
1217        void *pvDestContext,
1218        CLSID *pClsid);
1219
1220    END_INTERFACE
1221} IStdMarshalInfoVtbl;
1222
1223interface IStdMarshalInfo {
1224    CONST_VTBL IStdMarshalInfoVtbl* lpVtbl;
1225};
1226
1227#ifdef COBJMACROS
1228#ifndef WIDL_C_INLINE_WRAPPERS
1229/*** IUnknown methods ***/
1230#define IStdMarshalInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1231#define IStdMarshalInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
1232#define IStdMarshalInfo_Release(This) (This)->lpVtbl->Release(This)
1233/*** IStdMarshalInfo methods ***/
1234#define IStdMarshalInfo_GetClassForHandler(This,dwDestContext,pvDestContext,pClsid) (This)->lpVtbl->GetClassForHandler(This,dwDestContext,pvDestContext,pClsid)
1235#else
1236/*** IUnknown methods ***/
1237static inline HRESULT IStdMarshalInfo_QueryInterface(IStdMarshalInfo* This,REFIID riid,void **ppvObject) {
1238    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1239}
1240static inline ULONG IStdMarshalInfo_AddRef(IStdMarshalInfo* This) {
1241    return This->lpVtbl->AddRef(This);
1242}
1243static inline ULONG IStdMarshalInfo_Release(IStdMarshalInfo* This) {
1244    return This->lpVtbl->Release(This);
1245}
1246/*** IStdMarshalInfo methods ***/
1247static inline HRESULT IStdMarshalInfo_GetClassForHandler(IStdMarshalInfo* This,DWORD dwDestContext,void *pvDestContext,CLSID *pClsid) {
1248    return This->lpVtbl->GetClassForHandler(This,dwDestContext,pvDestContext,pClsid);
1249}
1250#endif
1251#endif
1252
1253#endif
1254
1255
1256#endif  /* __IStdMarshalInfo_INTERFACE_DEFINED__ */
1257
1258
1259/*****************************************************************************
1260 * IExternalConnection interface
1261 */
1262#ifndef __IExternalConnection_INTERFACE_DEFINED__
1263#define __IExternalConnection_INTERFACE_DEFINED__
1264
1265typedef IExternalConnection *LPEXTERNALCONNECTION;
1266
1267typedef enum tagEXTCONN {
1268    EXTCONN_STRONG = 0x1,
1269    EXTCONN_WEAK = 0x2,
1270    EXTCONN_CALLABLE = 0x4
1271} EXTCONN;
1272
1273DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1274#if defined(__cplusplus) && !defined(CINTERFACE)
1275MIDL_INTERFACE("00000019-0000-0000-c000-000000000046")
1276IExternalConnection : public IUnknown
1277{
1278    virtual DWORD STDMETHODCALLTYPE AddConnection(
1279        DWORD extconn,
1280        DWORD reserved) = 0;
1281
1282    virtual DWORD STDMETHODCALLTYPE ReleaseConnection(
1283        DWORD extconn,
1284        DWORD reserved,
1285        WINBOOL fLastReleaseCloses) = 0;
1286
1287};
1288#ifdef __CRT_UUID_DECL
1289__CRT_UUID_DECL(IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1290#endif
1291#else
1292typedef struct IExternalConnectionVtbl {
1293    BEGIN_INTERFACE
1294
1295    /*** IUnknown methods ***/
1296    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1297        IExternalConnection *This,
1298        REFIID riid,
1299        void **ppvObject);
1300
1301    ULONG (STDMETHODCALLTYPE *AddRef)(
1302        IExternalConnection *This);
1303
1304    ULONG (STDMETHODCALLTYPE *Release)(
1305        IExternalConnection *This);
1306
1307    /*** IExternalConnection methods ***/
1308    DWORD (STDMETHODCALLTYPE *AddConnection)(
1309        IExternalConnection *This,
1310        DWORD extconn,
1311        DWORD reserved);
1312
1313    DWORD (STDMETHODCALLTYPE *ReleaseConnection)(
1314        IExternalConnection *This,
1315        DWORD extconn,
1316        DWORD reserved,
1317        WINBOOL fLastReleaseCloses);
1318
1319    END_INTERFACE
1320} IExternalConnectionVtbl;
1321
1322interface IExternalConnection {
1323    CONST_VTBL IExternalConnectionVtbl* lpVtbl;
1324};
1325
1326#ifdef COBJMACROS
1327#ifndef WIDL_C_INLINE_WRAPPERS
1328/*** IUnknown methods ***/
1329#define IExternalConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1330#define IExternalConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
1331#define IExternalConnection_Release(This) (This)->lpVtbl->Release(This)
1332/*** IExternalConnection methods ***/
1333#define IExternalConnection_AddConnection(This,extconn,reserved) (This)->lpVtbl->AddConnection(This,extconn,reserved)
1334#define IExternalConnection_ReleaseConnection(This,extconn,reserved,fLastReleaseCloses) (This)->lpVtbl->ReleaseConnection(This,extconn,reserved,fLastReleaseCloses)
1335#else
1336/*** IUnknown methods ***/
1337static inline HRESULT IExternalConnection_QueryInterface(IExternalConnection* This,REFIID riid,void **ppvObject) {
1338    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1339}
1340static inline ULONG IExternalConnection_AddRef(IExternalConnection* This) {
1341    return This->lpVtbl->AddRef(This);
1342}
1343static inline ULONG IExternalConnection_Release(IExternalConnection* This) {
1344    return This->lpVtbl->Release(This);
1345}
1346/*** IExternalConnection methods ***/
1347static inline DWORD IExternalConnection_AddConnection(IExternalConnection* This,DWORD extconn,DWORD reserved) {
1348    return This->lpVtbl->AddConnection(This,extconn,reserved);
1349}
1350static inline DWORD IExternalConnection_ReleaseConnection(IExternalConnection* This,DWORD extconn,DWORD reserved,WINBOOL fLastReleaseCloses) {
1351    return This->lpVtbl->ReleaseConnection(This,extconn,reserved,fLastReleaseCloses);
1352}
1353#endif
1354#endif
1355
1356#endif
1357
1358
1359#endif  /* __IExternalConnection_INTERFACE_DEFINED__ */
1360
1361
1362typedef IMultiQI *LPMULTIQI;
1363#endif
1364
1365#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
1366typedef struct tagMULTI_QI {
1367    const IID *pIID;
1368    IUnknown *pItf;
1369    HRESULT hr;
1370} MULTI_QI;
1371
1372/*****************************************************************************
1373 * IMultiQI interface
1374 */
1375#ifndef __IMultiQI_INTERFACE_DEFINED__
1376#define __IMultiQI_INTERFACE_DEFINED__
1377
1378DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1379#if defined(__cplusplus) && !defined(CINTERFACE)
1380MIDL_INTERFACE("00000020-0000-0000-c000-000000000046")
1381IMultiQI : public IUnknown
1382{
1383    virtual HRESULT STDMETHODCALLTYPE QueryMultipleInterfaces(
1384        ULONG cMQIs,
1385        MULTI_QI *pMQIs) = 0;
1386
1387};
1388#ifdef __CRT_UUID_DECL
1389__CRT_UUID_DECL(IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1390#endif
1391#else
1392typedef struct IMultiQIVtbl {
1393    BEGIN_INTERFACE
1394
1395    /*** IUnknown methods ***/
1396    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1397        IMultiQI *This,
1398        REFIID riid,
1399        void **ppvObject);
1400
1401    ULONG (STDMETHODCALLTYPE *AddRef)(
1402        IMultiQI *This);
1403
1404    ULONG (STDMETHODCALLTYPE *Release)(
1405        IMultiQI *This);
1406
1407    /*** IMultiQI methods ***/
1408    HRESULT (STDMETHODCALLTYPE *QueryMultipleInterfaces)(
1409        IMultiQI *This,
1410        ULONG cMQIs,
1411        MULTI_QI *pMQIs);
1412
1413    END_INTERFACE
1414} IMultiQIVtbl;
1415
1416interface IMultiQI {
1417    CONST_VTBL IMultiQIVtbl* lpVtbl;
1418};
1419
1420#ifdef COBJMACROS
1421#ifndef WIDL_C_INLINE_WRAPPERS
1422/*** IUnknown methods ***/
1423#define IMultiQI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1424#define IMultiQI_AddRef(This) (This)->lpVtbl->AddRef(This)
1425#define IMultiQI_Release(This) (This)->lpVtbl->Release(This)
1426/*** IMultiQI methods ***/
1427#define IMultiQI_QueryMultipleInterfaces(This,cMQIs,pMQIs) (This)->lpVtbl->QueryMultipleInterfaces(This,cMQIs,pMQIs)
1428#else
1429/*** IUnknown methods ***/
1430static inline HRESULT IMultiQI_QueryInterface(IMultiQI* This,REFIID riid,void **ppvObject) {
1431    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1432}
1433static inline ULONG IMultiQI_AddRef(IMultiQI* This) {
1434    return This->lpVtbl->AddRef(This);
1435}
1436static inline ULONG IMultiQI_Release(IMultiQI* This) {
1437    return This->lpVtbl->Release(This);
1438}
1439/*** IMultiQI methods ***/
1440static inline HRESULT IMultiQI_QueryMultipleInterfaces(IMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
1441    return This->lpVtbl->QueryMultipleInterfaces(This,cMQIs,pMQIs);
1442}
1443#endif
1444#endif
1445
1446#endif
1447
1448
1449#endif  /* __IMultiQI_INTERFACE_DEFINED__ */
1450
1451/*****************************************************************************
1452 * AsyncIMultiQI interface
1453 */
1454#ifndef __AsyncIMultiQI_INTERFACE_DEFINED__
1455#define __AsyncIMultiQI_INTERFACE_DEFINED__
1456
1457DEFINE_GUID(IID_AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1458#if defined(__cplusplus) && !defined(CINTERFACE)
1459MIDL_INTERFACE("000e0020-0000-0000-c000-000000000046")
1460AsyncIMultiQI : public IUnknown
1461{
1462    virtual HRESULT STDMETHODCALLTYPE Begin_QueryMultipleInterfaces(
1463        ULONG cMQIs,
1464        MULTI_QI *pMQIs) = 0;
1465
1466    virtual HRESULT STDMETHODCALLTYPE Finish_QueryMultipleInterfaces(
1467        MULTI_QI *pMQIs) = 0;
1468
1469};
1470#ifdef __CRT_UUID_DECL
1471__CRT_UUID_DECL(AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1472#endif
1473#else
1474typedef struct AsyncIMultiQIVtbl {
1475    BEGIN_INTERFACE
1476
1477    /*** IUnknown methods ***/
1478    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1479        AsyncIMultiQI *This,
1480        REFIID riid,
1481        void **ppvObject);
1482
1483    ULONG (STDMETHODCALLTYPE *AddRef)(
1484        AsyncIMultiQI *This);
1485
1486    ULONG (STDMETHODCALLTYPE *Release)(
1487        AsyncIMultiQI *This);
1488
1489    /*** AsyncIMultiQI methods ***/
1490    HRESULT (STDMETHODCALLTYPE *Begin_QueryMultipleInterfaces)(
1491        AsyncIMultiQI *This,
1492        ULONG cMQIs,
1493        MULTI_QI *pMQIs);
1494
1495    HRESULT (STDMETHODCALLTYPE *Finish_QueryMultipleInterfaces)(
1496        AsyncIMultiQI *This,
1497        MULTI_QI *pMQIs);
1498
1499    END_INTERFACE
1500} AsyncIMultiQIVtbl;
1501
1502interface AsyncIMultiQI {
1503    CONST_VTBL AsyncIMultiQIVtbl* lpVtbl;
1504};
1505
1506#ifdef COBJMACROS
1507#ifndef WIDL_C_INLINE_WRAPPERS
1508/*** IUnknown methods ***/
1509#define AsyncIMultiQI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1510#define AsyncIMultiQI_AddRef(This) (This)->lpVtbl->AddRef(This)
1511#define AsyncIMultiQI_Release(This) (This)->lpVtbl->Release(This)
1512/*** AsyncIMultiQI methods ***/
1513#define AsyncIMultiQI_Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs) (This)->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs)
1514#define AsyncIMultiQI_Finish_QueryMultipleInterfaces(This,pMQIs) (This)->lpVtbl->Finish_QueryMultipleInterfaces(This,pMQIs)
1515#else
1516/*** IUnknown methods ***/
1517static inline HRESULT AsyncIMultiQI_QueryInterface(AsyncIMultiQI* This,REFIID riid,void **ppvObject) {
1518    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1519}
1520static inline ULONG AsyncIMultiQI_AddRef(AsyncIMultiQI* This) {
1521    return This->lpVtbl->AddRef(This);
1522}
1523static inline ULONG AsyncIMultiQI_Release(AsyncIMultiQI* This) {
1524    return This->lpVtbl->Release(This);
1525}
1526/*** AsyncIMultiQI methods ***/
1527static inline HRESULT AsyncIMultiQI_Begin_QueryMultipleInterfaces(AsyncIMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
1528    return This->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs);
1529}
1530static inline HRESULT AsyncIMultiQI_Finish_QueryMultipleInterfaces(AsyncIMultiQI* This,MULTI_QI *pMQIs) {
1531    return This->lpVtbl->Finish_QueryMultipleInterfaces(This,pMQIs);
1532}
1533#endif
1534#endif
1535
1536#endif
1537
1538
1539#endif  /* __AsyncIMultiQI_INTERFACE_DEFINED__ */
1540
1541#endif
1542
1543#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
1544/*****************************************************************************
1545 * IInternalUnknown interface
1546 */
1547#ifndef __IInternalUnknown_INTERFACE_DEFINED__
1548#define __IInternalUnknown_INTERFACE_DEFINED__
1549
1550DEFINE_GUID(IID_IInternalUnknown, 0x00000021, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1551#if defined(__cplusplus) && !defined(CINTERFACE)
1552MIDL_INTERFACE("00000021-0000-0000-c000-000000000046")
1553IInternalUnknown : public IUnknown
1554{
1555    virtual HRESULT STDMETHODCALLTYPE QueryInternalInterface(
1556        REFIID riid,
1557        void **ppv) = 0;
1558
1559};
1560#ifdef __CRT_UUID_DECL
1561__CRT_UUID_DECL(IInternalUnknown, 0x00000021, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1562#endif
1563#else
1564typedef struct IInternalUnknownVtbl {
1565    BEGIN_INTERFACE
1566
1567    /*** IUnknown methods ***/
1568    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1569        IInternalUnknown *This,
1570        REFIID riid,
1571        void **ppvObject);
1572
1573    ULONG (STDMETHODCALLTYPE *AddRef)(
1574        IInternalUnknown *This);
1575
1576    ULONG (STDMETHODCALLTYPE *Release)(
1577        IInternalUnknown *This);
1578
1579    /*** IInternalUnknown methods ***/
1580    HRESULT (STDMETHODCALLTYPE *QueryInternalInterface)(
1581        IInternalUnknown *This,
1582        REFIID riid,
1583        void **ppv);
1584
1585    END_INTERFACE
1586} IInternalUnknownVtbl;
1587
1588interface IInternalUnknown {
1589    CONST_VTBL IInternalUnknownVtbl* lpVtbl;
1590};
1591
1592#ifdef COBJMACROS
1593#ifndef WIDL_C_INLINE_WRAPPERS
1594/*** IUnknown methods ***/
1595#define IInternalUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1596#define IInternalUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
1597#define IInternalUnknown_Release(This) (This)->lpVtbl->Release(This)
1598/*** IInternalUnknown methods ***/
1599#define IInternalUnknown_QueryInternalInterface(This,riid,ppv) (This)->lpVtbl->QueryInternalInterface(This,riid,ppv)
1600#else
1601/*** IUnknown methods ***/
1602static inline HRESULT IInternalUnknown_QueryInterface(IInternalUnknown* This,REFIID riid,void **ppvObject) {
1603    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1604}
1605static inline ULONG IInternalUnknown_AddRef(IInternalUnknown* This) {
1606    return This->lpVtbl->AddRef(This);
1607}
1608static inline ULONG IInternalUnknown_Release(IInternalUnknown* This) {
1609    return This->lpVtbl->Release(This);
1610}
1611/*** IInternalUnknown methods ***/
1612static inline HRESULT IInternalUnknown_QueryInternalInterface(IInternalUnknown* This,REFIID riid,void **ppv) {
1613    return This->lpVtbl->QueryInternalInterface(This,riid,ppv);
1614}
1615#endif
1616#endif
1617
1618#endif
1619
1620
1621#endif  /* __IInternalUnknown_INTERFACE_DEFINED__ */
1622
1623#endif
1624
1625#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
1626/*****************************************************************************
1627 * IEnumUnknown interface
1628 */
1629#ifndef __IEnumUnknown_INTERFACE_DEFINED__
1630#define __IEnumUnknown_INTERFACE_DEFINED__
1631
1632typedef IEnumUnknown *LPENUMUNKNOWN;
1633
1634DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1635#if defined(__cplusplus) && !defined(CINTERFACE)
1636MIDL_INTERFACE("00000100-0000-0000-c000-000000000046")
1637IEnumUnknown : public IUnknown
1638{
1639    virtual HRESULT STDMETHODCALLTYPE Next(
1640        ULONG celt,
1641        IUnknown **rgelt,
1642        ULONG *pceltFetched) = 0;
1643
1644    virtual HRESULT STDMETHODCALLTYPE Skip(
1645        ULONG celt) = 0;
1646
1647    virtual HRESULT STDMETHODCALLTYPE Reset(
1648        ) = 0;
1649
1650    virtual HRESULT STDMETHODCALLTYPE Clone(
1651        IEnumUnknown **ppenum) = 0;
1652
1653};
1654#ifdef __CRT_UUID_DECL
1655__CRT_UUID_DECL(IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1656#endif
1657#else
1658typedef struct IEnumUnknownVtbl {
1659    BEGIN_INTERFACE
1660
1661    /*** IUnknown methods ***/
1662    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1663        IEnumUnknown *This,
1664        REFIID riid,
1665        void **ppvObject);
1666
1667    ULONG (STDMETHODCALLTYPE *AddRef)(
1668        IEnumUnknown *This);
1669
1670    ULONG (STDMETHODCALLTYPE *Release)(
1671        IEnumUnknown *This);
1672
1673    /*** IEnumUnknown methods ***/
1674    HRESULT (STDMETHODCALLTYPE *Next)(
1675        IEnumUnknown *This,
1676        ULONG celt,
1677        IUnknown **rgelt,
1678        ULONG *pceltFetched);
1679
1680    HRESULT (STDMETHODCALLTYPE *Skip)(
1681        IEnumUnknown *This,
1682        ULONG celt);
1683
1684    HRESULT (STDMETHODCALLTYPE *Reset)(
1685        IEnumUnknown *This);
1686
1687    HRESULT (STDMETHODCALLTYPE *Clone)(
1688        IEnumUnknown *This,
1689        IEnumUnknown **ppenum);
1690
1691    END_INTERFACE
1692} IEnumUnknownVtbl;
1693
1694interface IEnumUnknown {
1695    CONST_VTBL IEnumUnknownVtbl* lpVtbl;
1696};
1697
1698#ifdef COBJMACROS
1699#ifndef WIDL_C_INLINE_WRAPPERS
1700/*** IUnknown methods ***/
1701#define IEnumUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1702#define IEnumUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
1703#define IEnumUnknown_Release(This) (This)->lpVtbl->Release(This)
1704/*** IEnumUnknown methods ***/
1705#define IEnumUnknown_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
1706#define IEnumUnknown_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
1707#define IEnumUnknown_Reset(This) (This)->lpVtbl->Reset(This)
1708#define IEnumUnknown_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
1709#else
1710/*** IUnknown methods ***/
1711static inline HRESULT IEnumUnknown_QueryInterface(IEnumUnknown* This,REFIID riid,void **ppvObject) {
1712    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1713}
1714static inline ULONG IEnumUnknown_AddRef(IEnumUnknown* This) {
1715    return This->lpVtbl->AddRef(This);
1716}
1717static inline ULONG IEnumUnknown_Release(IEnumUnknown* This) {
1718    return This->lpVtbl->Release(This);
1719}
1720/*** IEnumUnknown methods ***/
1721static inline HRESULT IEnumUnknown_Next(IEnumUnknown* This,ULONG celt,IUnknown **rgelt,ULONG *pceltFetched) {
1722    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
1723}
1724static inline HRESULT IEnumUnknown_Skip(IEnumUnknown* This,ULONG celt) {
1725    return This->lpVtbl->Skip(This,celt);
1726}
1727static inline HRESULT IEnumUnknown_Reset(IEnumUnknown* This) {
1728    return This->lpVtbl->Reset(This);
1729}
1730static inline HRESULT IEnumUnknown_Clone(IEnumUnknown* This,IEnumUnknown **ppenum) {
1731    return This->lpVtbl->Clone(This,ppenum);
1732}
1733#endif
1734#endif
1735
1736#endif
1737
1738HRESULT STDMETHODCALLTYPE IEnumUnknown_RemoteNext_Proxy(
1739    IEnumUnknown* This,
1740    ULONG celt,
1741    IUnknown **rgelt,
1742    ULONG *pceltFetched);
1743void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
1744    IRpcStubBuffer* This,
1745    IRpcChannelBuffer* pRpcChannelBuffer,
1746    PRPC_MESSAGE pRpcMessage,
1747    DWORD* pdwStubPhase);
1748HRESULT CALLBACK IEnumUnknown_Next_Proxy(
1749    IEnumUnknown* This,
1750    ULONG celt,
1751    IUnknown **rgelt,
1752    ULONG *pceltFetched);
1753HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
1754    IEnumUnknown* This,
1755    ULONG celt,
1756    IUnknown **rgelt,
1757    ULONG *pceltFetched);
1758
1759#endif  /* __IEnumUnknown_INTERFACE_DEFINED__ */
1760
1761
1762/*****************************************************************************
1763 * IEnumString interface
1764 */
1765#ifndef __IEnumString_INTERFACE_DEFINED__
1766#define __IEnumString_INTERFACE_DEFINED__
1767
1768typedef IEnumString *LPENUMSTRING;
1769
1770DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1771#if defined(__cplusplus) && !defined(CINTERFACE)
1772MIDL_INTERFACE("00000101-0000-0000-c000-000000000046")
1773IEnumString : public IUnknown
1774{
1775    virtual HRESULT STDMETHODCALLTYPE Next(
1776        ULONG celt,
1777        LPOLESTR *rgelt,
1778        ULONG *pceltFetched) = 0;
1779
1780    virtual HRESULT STDMETHODCALLTYPE Skip(
1781        ULONG celt) = 0;
1782
1783    virtual HRESULT STDMETHODCALLTYPE Reset(
1784        ) = 0;
1785
1786    virtual HRESULT STDMETHODCALLTYPE Clone(
1787        IEnumString **ppenum) = 0;
1788
1789};
1790#ifdef __CRT_UUID_DECL
1791__CRT_UUID_DECL(IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1792#endif
1793#else
1794typedef struct IEnumStringVtbl {
1795    BEGIN_INTERFACE
1796
1797    /*** IUnknown methods ***/
1798    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1799        IEnumString *This,
1800        REFIID riid,
1801        void **ppvObject);
1802
1803    ULONG (STDMETHODCALLTYPE *AddRef)(
1804        IEnumString *This);
1805
1806    ULONG (STDMETHODCALLTYPE *Release)(
1807        IEnumString *This);
1808
1809    /*** IEnumString methods ***/
1810    HRESULT (STDMETHODCALLTYPE *Next)(
1811        IEnumString *This,
1812        ULONG celt,
1813        LPOLESTR *rgelt,
1814        ULONG *pceltFetched);
1815
1816    HRESULT (STDMETHODCALLTYPE *Skip)(
1817        IEnumString *This,
1818        ULONG celt);
1819
1820    HRESULT (STDMETHODCALLTYPE *Reset)(
1821        IEnumString *This);
1822
1823    HRESULT (STDMETHODCALLTYPE *Clone)(
1824        IEnumString *This,
1825        IEnumString **ppenum);
1826
1827    END_INTERFACE
1828} IEnumStringVtbl;
1829
1830interface IEnumString {
1831    CONST_VTBL IEnumStringVtbl* lpVtbl;
1832};
1833
1834#ifdef COBJMACROS
1835#ifndef WIDL_C_INLINE_WRAPPERS
1836/*** IUnknown methods ***/
1837#define IEnumString_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1838#define IEnumString_AddRef(This) (This)->lpVtbl->AddRef(This)
1839#define IEnumString_Release(This) (This)->lpVtbl->Release(This)
1840/*** IEnumString methods ***/
1841#define IEnumString_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
1842#define IEnumString_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
1843#define IEnumString_Reset(This) (This)->lpVtbl->Reset(This)
1844#define IEnumString_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
1845#else
1846/*** IUnknown methods ***/
1847static inline HRESULT IEnumString_QueryInterface(IEnumString* This,REFIID riid,void **ppvObject) {
1848    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1849}
1850static inline ULONG IEnumString_AddRef(IEnumString* This) {
1851    return This->lpVtbl->AddRef(This);
1852}
1853static inline ULONG IEnumString_Release(IEnumString* This) {
1854    return This->lpVtbl->Release(This);
1855}
1856/*** IEnumString methods ***/
1857static inline HRESULT IEnumString_Next(IEnumString* This,ULONG celt,LPOLESTR *rgelt,ULONG *pceltFetched) {
1858    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
1859}
1860static inline HRESULT IEnumString_Skip(IEnumString* This,ULONG celt) {
1861    return This->lpVtbl->Skip(This,celt);
1862}
1863static inline HRESULT IEnumString_Reset(IEnumString* This) {
1864    return This->lpVtbl->Reset(This);
1865}
1866static inline HRESULT IEnumString_Clone(IEnumString* This,IEnumString **ppenum) {
1867    return This->lpVtbl->Clone(This,ppenum);
1868}
1869#endif
1870#endif
1871
1872#endif
1873
1874HRESULT STDMETHODCALLTYPE IEnumString_RemoteNext_Proxy(
1875    IEnumString* This,
1876    ULONG celt,
1877    LPOLESTR *rgelt,
1878    ULONG *pceltFetched);
1879void __RPC_STUB IEnumString_RemoteNext_Stub(
1880    IRpcStubBuffer* This,
1881    IRpcChannelBuffer* pRpcChannelBuffer,
1882    PRPC_MESSAGE pRpcMessage,
1883    DWORD* pdwStubPhase);
1884HRESULT CALLBACK IEnumString_Next_Proxy(
1885    IEnumString* This,
1886    ULONG celt,
1887    LPOLESTR *rgelt,
1888    ULONG *pceltFetched);
1889HRESULT __RPC_STUB IEnumString_Next_Stub(
1890    IEnumString* This,
1891    ULONG celt,
1892    LPOLESTR *rgelt,
1893    ULONG *pceltFetched);
1894
1895#endif  /* __IEnumString_INTERFACE_DEFINED__ */
1896
1897
1898/*****************************************************************************
1899 * ISequentialStream interface
1900 */
1901#ifndef __ISequentialStream_INTERFACE_DEFINED__
1902#define __ISequentialStream_INTERFACE_DEFINED__
1903
1904DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
1905#if defined(__cplusplus) && !defined(CINTERFACE)
1906MIDL_INTERFACE("0c733a30-2a1c-11ce-ade5-00aa0044773d")
1907ISequentialStream : public IUnknown
1908{
1909    virtual HRESULT STDMETHODCALLTYPE Read(
1910        void *pv,
1911        ULONG cb,
1912        ULONG *pcbRead) = 0;
1913
1914    virtual HRESULT STDMETHODCALLTYPE Write(
1915        const void *pv,
1916        ULONG cb,
1917        ULONG *pcbWritten) = 0;
1918
1919};
1920#ifdef __CRT_UUID_DECL
1921__CRT_UUID_DECL(ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d)
1922#endif
1923#else
1924typedef struct ISequentialStreamVtbl {
1925    BEGIN_INTERFACE
1926
1927    /*** IUnknown methods ***/
1928    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1929        ISequentialStream *This,
1930        REFIID riid,
1931        void **ppvObject);
1932
1933    ULONG (STDMETHODCALLTYPE *AddRef)(
1934        ISequentialStream *This);
1935
1936    ULONG (STDMETHODCALLTYPE *Release)(
1937        ISequentialStream *This);
1938
1939    /*** ISequentialStream methods ***/
1940    HRESULT (STDMETHODCALLTYPE *Read)(
1941        ISequentialStream *This,
1942        void *pv,
1943        ULONG cb,
1944        ULONG *pcbRead);
1945
1946    HRESULT (STDMETHODCALLTYPE *Write)(
1947        ISequentialStream *This,
1948        const void *pv,
1949        ULONG cb,
1950        ULONG *pcbWritten);
1951
1952    END_INTERFACE
1953} ISequentialStreamVtbl;
1954
1955interface ISequentialStream {
1956    CONST_VTBL ISequentialStreamVtbl* lpVtbl;
1957};
1958
1959#ifdef COBJMACROS
1960#ifndef WIDL_C_INLINE_WRAPPERS
1961/*** IUnknown methods ***/
1962#define ISequentialStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1963#define ISequentialStream_AddRef(This) (This)->lpVtbl->AddRef(This)
1964#define ISequentialStream_Release(This) (This)->lpVtbl->Release(This)
1965/*** ISequentialStream methods ***/
1966#define ISequentialStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
1967#define ISequentialStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
1968#else
1969/*** IUnknown methods ***/
1970static inline HRESULT ISequentialStream_QueryInterface(ISequentialStream* This,REFIID riid,void **ppvObject) {
1971    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1972}
1973static inline ULONG ISequentialStream_AddRef(ISequentialStream* This) {
1974    return This->lpVtbl->AddRef(This);
1975}
1976static inline ULONG ISequentialStream_Release(ISequentialStream* This) {
1977    return This->lpVtbl->Release(This);
1978}
1979/*** ISequentialStream methods ***/
1980static inline HRESULT ISequentialStream_Read(ISequentialStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
1981    return This->lpVtbl->Read(This,pv,cb,pcbRead);
1982}
1983static inline HRESULT ISequentialStream_Write(ISequentialStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
1984    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
1985}
1986#endif
1987#endif
1988
1989#endif
1990
1991HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteRead_Proxy(
1992    ISequentialStream* This,
1993    byte *pv,
1994    ULONG cb,
1995    ULONG *pcbRead);
1996void __RPC_STUB ISequentialStream_RemoteRead_Stub(
1997    IRpcStubBuffer* This,
1998    IRpcChannelBuffer* pRpcChannelBuffer,
1999    PRPC_MESSAGE pRpcMessage,
2000    DWORD* pdwStubPhase);
2001HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteWrite_Proxy(
2002    ISequentialStream* This,
2003    const byte *pv,
2004    ULONG cb,
2005    ULONG *pcbWritten);
2006void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
2007    IRpcStubBuffer* This,
2008    IRpcChannelBuffer* pRpcChannelBuffer,
2009    PRPC_MESSAGE pRpcMessage,
2010    DWORD* pdwStubPhase);
2011HRESULT CALLBACK ISequentialStream_Read_Proxy(
2012    ISequentialStream* This,
2013    void *pv,
2014    ULONG cb,
2015    ULONG *pcbRead);
2016HRESULT __RPC_STUB ISequentialStream_Read_Stub(
2017    ISequentialStream* This,
2018    byte *pv,
2019    ULONG cb,
2020    ULONG *pcbRead);
2021HRESULT CALLBACK ISequentialStream_Write_Proxy(
2022    ISequentialStream* This,
2023    const void *pv,
2024    ULONG cb,
2025    ULONG *pcbWritten);
2026HRESULT __RPC_STUB ISequentialStream_Write_Stub(
2027    ISequentialStream* This,
2028    const byte *pv,
2029    ULONG cb,
2030    ULONG *pcbWritten);
2031
2032#endif  /* __ISequentialStream_INTERFACE_DEFINED__ */
2033
2034
2035/*****************************************************************************
2036 * IStream interface
2037 */
2038#ifndef __IStream_INTERFACE_DEFINED__
2039#define __IStream_INTERFACE_DEFINED__
2040
2041typedef IStream *LPSTREAM;
2042
2043typedef struct tagSTATSTG {
2044    LPOLESTR pwcsName;
2045    DWORD type;
2046    ULARGE_INTEGER cbSize;
2047    FILETIME mtime;
2048    FILETIME ctime;
2049    FILETIME atime;
2050    DWORD grfMode;
2051    DWORD grfLocksSupported;
2052    CLSID clsid;
2053    DWORD grfStateBits;
2054    DWORD reserved;
2055} STATSTG;
2056
2057typedef enum tagSTGTY {
2058    STGTY_STORAGE = 1,
2059    STGTY_STREAM = 2,
2060    STGTY_LOCKBYTES = 3,
2061    STGTY_PROPERTY = 4
2062} STGTY;
2063
2064typedef enum tagSTREAM_SEEK {
2065    STREAM_SEEK_SET = 0,
2066    STREAM_SEEK_CUR = 1,
2067    STREAM_SEEK_END = 2
2068} STREAM_SEEK;
2069
2070typedef enum tagLOCKTYPE {
2071    LOCK_WRITE = 1,
2072    LOCK_EXCLUSIVE = 2,
2073    LOCK_ONLYONCE = 4
2074} LOCKTYPE;
2075
2076DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2077#if defined(__cplusplus) && !defined(CINTERFACE)
2078MIDL_INTERFACE("0000000c-0000-0000-c000-000000000046")
2079IStream : public ISequentialStream
2080{
2081    virtual HRESULT STDMETHODCALLTYPE Seek(
2082        LARGE_INTEGER dlibMove,
2083        DWORD dwOrigin,
2084        ULARGE_INTEGER *plibNewPosition) = 0;
2085
2086    virtual HRESULT STDMETHODCALLTYPE SetSize(
2087        ULARGE_INTEGER libNewSize) = 0;
2088
2089    virtual HRESULT STDMETHODCALLTYPE CopyTo(
2090        IStream *pstm,
2091        ULARGE_INTEGER cb,
2092        ULARGE_INTEGER *pcbRead,
2093        ULARGE_INTEGER *pcbWritten) = 0;
2094
2095    virtual HRESULT STDMETHODCALLTYPE Commit(
2096        DWORD grfCommitFlags) = 0;
2097
2098    virtual HRESULT STDMETHODCALLTYPE Revert(
2099        ) = 0;
2100
2101    virtual HRESULT STDMETHODCALLTYPE LockRegion(
2102        ULARGE_INTEGER libOffset,
2103        ULARGE_INTEGER cb,
2104        DWORD dwLockType) = 0;
2105
2106    virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
2107        ULARGE_INTEGER libOffset,
2108        ULARGE_INTEGER cb,
2109        DWORD dwLockType) = 0;
2110
2111    virtual HRESULT STDMETHODCALLTYPE Stat(
2112        STATSTG *pstatstg,
2113        DWORD grfStatFlag) = 0;
2114
2115    virtual HRESULT STDMETHODCALLTYPE Clone(
2116        IStream **ppstm) = 0;
2117
2118};
2119#ifdef __CRT_UUID_DECL
2120__CRT_UUID_DECL(IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
2121#endif
2122#else
2123typedef struct IStreamVtbl {
2124    BEGIN_INTERFACE
2125
2126    /*** IUnknown methods ***/
2127    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2128        IStream *This,
2129        REFIID riid,
2130        void **ppvObject);
2131
2132    ULONG (STDMETHODCALLTYPE *AddRef)(
2133        IStream *This);
2134
2135    ULONG (STDMETHODCALLTYPE *Release)(
2136        IStream *This);
2137
2138    /*** ISequentialStream methods ***/
2139    HRESULT (STDMETHODCALLTYPE *Read)(
2140        IStream *This,
2141        void *pv,
2142        ULONG cb,
2143        ULONG *pcbRead);
2144
2145    HRESULT (STDMETHODCALLTYPE *Write)(
2146        IStream *This,
2147        const void *pv,
2148        ULONG cb,
2149        ULONG *pcbWritten);
2150
2151    /*** IStream methods ***/
2152    HRESULT (STDMETHODCALLTYPE *Seek)(
2153        IStream *This,
2154        LARGE_INTEGER dlibMove,
2155        DWORD dwOrigin,
2156        ULARGE_INTEGER *plibNewPosition);
2157
2158    HRESULT (STDMETHODCALLTYPE *SetSize)(
2159        IStream *This,
2160        ULARGE_INTEGER libNewSize);
2161
2162    HRESULT (STDMETHODCALLTYPE *CopyTo)(
2163        IStream *This,
2164        IStream *pstm,
2165        ULARGE_INTEGER cb,
2166        ULARGE_INTEGER *pcbRead,
2167        ULARGE_INTEGER *pcbWritten);
2168
2169    HRESULT (STDMETHODCALLTYPE *Commit)(
2170        IStream *This,
2171        DWORD grfCommitFlags);
2172
2173    HRESULT (STDMETHODCALLTYPE *Revert)(
2174        IStream *This);
2175
2176    HRESULT (STDMETHODCALLTYPE *LockRegion)(
2177        IStream *This,
2178        ULARGE_INTEGER libOffset,
2179        ULARGE_INTEGER cb,
2180        DWORD dwLockType);
2181
2182    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
2183        IStream *This,
2184        ULARGE_INTEGER libOffset,
2185        ULARGE_INTEGER cb,
2186        DWORD dwLockType);
2187
2188    HRESULT (STDMETHODCALLTYPE *Stat)(
2189        IStream *This,
2190        STATSTG *pstatstg,
2191        DWORD grfStatFlag);
2192
2193    HRESULT (STDMETHODCALLTYPE *Clone)(
2194        IStream *This,
2195        IStream **ppstm);
2196
2197    END_INTERFACE
2198} IStreamVtbl;
2199
2200interface IStream {
2201    CONST_VTBL IStreamVtbl* lpVtbl;
2202};
2203
2204#ifdef COBJMACROS
2205#ifndef WIDL_C_INLINE_WRAPPERS
2206/*** IUnknown methods ***/
2207#define IStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2208#define IStream_AddRef(This) (This)->lpVtbl->AddRef(This)
2209#define IStream_Release(This) (This)->lpVtbl->Release(This)
2210/*** ISequentialStream methods ***/
2211#define IStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
2212#define IStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
2213/*** IStream methods ***/
2214#define IStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
2215#define IStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
2216#define IStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
2217#define IStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
2218#define IStream_Revert(This) (This)->lpVtbl->Revert(This)
2219#define IStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
2220#define IStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
2221#define IStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
2222#define IStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
2223#else
2224/*** IUnknown methods ***/
2225static inline HRESULT IStream_QueryInterface(IStream* This,REFIID riid,void **ppvObject) {
2226    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2227}
2228static inline ULONG IStream_AddRef(IStream* This) {
2229    return This->lpVtbl->AddRef(This);
2230}
2231static inline ULONG IStream_Release(IStream* This) {
2232    return This->lpVtbl->Release(This);
2233}
2234/*** ISequentialStream methods ***/
2235static inline HRESULT IStream_Read(IStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
2236    return This->lpVtbl->Read(This,pv,cb,pcbRead);
2237}
2238static inline HRESULT IStream_Write(IStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
2239    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
2240}
2241/*** IStream methods ***/
2242static inline HRESULT IStream_Seek(IStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
2243    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
2244}
2245static inline HRESULT IStream_SetSize(IStream* This,ULARGE_INTEGER libNewSize) {
2246    return This->lpVtbl->SetSize(This,libNewSize);
2247}
2248static inline HRESULT IStream_CopyTo(IStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
2249    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
2250}
2251static inline HRESULT IStream_Commit(IStream* This,DWORD grfCommitFlags) {
2252    return This->lpVtbl->Commit(This,grfCommitFlags);
2253}
2254static inline HRESULT IStream_Revert(IStream* This) {
2255    return This->lpVtbl->Revert(This);
2256}
2257static inline HRESULT IStream_LockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
2258    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
2259}
2260static inline HRESULT IStream_UnlockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
2261    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
2262}
2263static inline HRESULT IStream_Stat(IStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
2264    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
2265}
2266static inline HRESULT IStream_Clone(IStream* This,IStream **ppstm) {
2267    return This->lpVtbl->Clone(This,ppstm);
2268}
2269#endif
2270#endif
2271
2272#endif
2273
2274HRESULT STDMETHODCALLTYPE IStream_RemoteSeek_Proxy(
2275    IStream* This,
2276    LARGE_INTEGER dlibMove,
2277    DWORD dwOrigin,
2278    ULARGE_INTEGER *plibNewPosition);
2279void __RPC_STUB IStream_RemoteSeek_Stub(
2280    IRpcStubBuffer* This,
2281    IRpcChannelBuffer* pRpcChannelBuffer,
2282    PRPC_MESSAGE pRpcMessage,
2283    DWORD* pdwStubPhase);
2284HRESULT STDMETHODCALLTYPE IStream_RemoteCopyTo_Proxy(
2285    IStream* This,
2286    IStream *pstm,
2287    ULARGE_INTEGER cb,
2288    ULARGE_INTEGER *pcbRead,
2289    ULARGE_INTEGER *pcbWritten);
2290void __RPC_STUB IStream_RemoteCopyTo_Stub(
2291    IRpcStubBuffer* This,
2292    IRpcChannelBuffer* pRpcChannelBuffer,
2293    PRPC_MESSAGE pRpcMessage,
2294    DWORD* pdwStubPhase);
2295HRESULT CALLBACK IStream_Seek_Proxy(
2296    IStream* This,
2297    LARGE_INTEGER dlibMove,
2298    DWORD dwOrigin,
2299    ULARGE_INTEGER *plibNewPosition);
2300HRESULT __RPC_STUB IStream_Seek_Stub(
2301    IStream* This,
2302    LARGE_INTEGER dlibMove,
2303    DWORD dwOrigin,
2304    ULARGE_INTEGER *plibNewPosition);
2305HRESULT CALLBACK IStream_CopyTo_Proxy(
2306    IStream* This,
2307    IStream *pstm,
2308    ULARGE_INTEGER cb,
2309    ULARGE_INTEGER *pcbRead,
2310    ULARGE_INTEGER *pcbWritten);
2311HRESULT __RPC_STUB IStream_CopyTo_Stub(
2312    IStream* This,
2313    IStream *pstm,
2314    ULARGE_INTEGER cb,
2315    ULARGE_INTEGER *pcbRead,
2316    ULARGE_INTEGER *pcbWritten);
2317
2318#endif  /* __IStream_INTERFACE_DEFINED__ */
2319
2320
2321/*****************************************************************************
2322 * IRpcChannelBuffer interface
2323 */
2324#ifndef __IRpcChannelBuffer_INTERFACE_DEFINED__
2325#define __IRpcChannelBuffer_INTERFACE_DEFINED__
2326
2327typedef ULONG RPCOLEDATAREP;
2328
2329typedef struct tagRPCOLEMESSAGE {
2330    void *reserved1;
2331    RPCOLEDATAREP dataRepresentation;
2332    void *Buffer;
2333    ULONG cbBuffer;
2334    ULONG iMethod;
2335    void * reserved2[5];
2336    ULONG rpcFlags;
2337} RPCOLEMESSAGE;
2338
2339typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
2340
2341DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
2342#if defined(__cplusplus) && !defined(CINTERFACE)
2343MIDL_INTERFACE("d5f56b60-593b-101a-b569-08002b2dbf7a")
2344IRpcChannelBuffer : public IUnknown
2345{
2346    virtual HRESULT STDMETHODCALLTYPE GetBuffer(
2347        RPCOLEMESSAGE *pMessage,
2348        REFIID riid) = 0;
2349
2350    virtual HRESULT STDMETHODCALLTYPE SendReceive(
2351        RPCOLEMESSAGE *pMessage,
2352        ULONG *pStatus) = 0;
2353
2354    virtual HRESULT STDMETHODCALLTYPE FreeBuffer(
2355        RPCOLEMESSAGE *pMessage) = 0;
2356
2357    virtual HRESULT STDMETHODCALLTYPE GetDestCtx(
2358        DWORD *pdwDestContext,
2359        void **ppvDestContext) = 0;
2360
2361    virtual HRESULT STDMETHODCALLTYPE IsConnected(
2362        ) = 0;
2363
2364};
2365#ifdef __CRT_UUID_DECL
2366__CRT_UUID_DECL(IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
2367#endif
2368#else
2369typedef struct IRpcChannelBufferVtbl {
2370    BEGIN_INTERFACE
2371
2372    /*** IUnknown methods ***/
2373    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2374        IRpcChannelBuffer *This,
2375        REFIID riid,
2376        void **ppvObject);
2377
2378    ULONG (STDMETHODCALLTYPE *AddRef)(
2379        IRpcChannelBuffer *This);
2380
2381    ULONG (STDMETHODCALLTYPE *Release)(
2382        IRpcChannelBuffer *This);
2383
2384    /*** IRpcChannelBuffer methods ***/
2385    HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2386        IRpcChannelBuffer *This,
2387        RPCOLEMESSAGE *pMessage,
2388        REFIID riid);
2389
2390    HRESULT (STDMETHODCALLTYPE *SendReceive)(
2391        IRpcChannelBuffer *This,
2392        RPCOLEMESSAGE *pMessage,
2393        ULONG *pStatus);
2394
2395    HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
2396        IRpcChannelBuffer *This,
2397        RPCOLEMESSAGE *pMessage);
2398
2399    HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
2400        IRpcChannelBuffer *This,
2401        DWORD *pdwDestContext,
2402        void **ppvDestContext);
2403
2404    HRESULT (STDMETHODCALLTYPE *IsConnected)(
2405        IRpcChannelBuffer *This);
2406
2407    END_INTERFACE
2408} IRpcChannelBufferVtbl;
2409
2410interface IRpcChannelBuffer {
2411    CONST_VTBL IRpcChannelBufferVtbl* lpVtbl;
2412};
2413
2414#ifdef COBJMACROS
2415#ifndef WIDL_C_INLINE_WRAPPERS
2416/*** IUnknown methods ***/
2417#define IRpcChannelBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2418#define IRpcChannelBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
2419#define IRpcChannelBuffer_Release(This) (This)->lpVtbl->Release(This)
2420/*** IRpcChannelBuffer methods ***/
2421#define IRpcChannelBuffer_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
2422#define IRpcChannelBuffer_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
2423#define IRpcChannelBuffer_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
2424#define IRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
2425#define IRpcChannelBuffer_IsConnected(This) (This)->lpVtbl->IsConnected(This)
2426#else
2427/*** IUnknown methods ***/
2428static inline HRESULT IRpcChannelBuffer_QueryInterface(IRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
2429    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2430}
2431static inline ULONG IRpcChannelBuffer_AddRef(IRpcChannelBuffer* This) {
2432    return This->lpVtbl->AddRef(This);
2433}
2434static inline ULONG IRpcChannelBuffer_Release(IRpcChannelBuffer* This) {
2435    return This->lpVtbl->Release(This);
2436}
2437/*** IRpcChannelBuffer methods ***/
2438static inline HRESULT IRpcChannelBuffer_GetBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
2439    return This->lpVtbl->GetBuffer(This,pMessage,riid);
2440}
2441static inline HRESULT IRpcChannelBuffer_SendReceive(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
2442    return This->lpVtbl->SendReceive(This,pMessage,pStatus);
2443}
2444static inline HRESULT IRpcChannelBuffer_FreeBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
2445    return This->lpVtbl->FreeBuffer(This,pMessage);
2446}
2447static inline HRESULT IRpcChannelBuffer_GetDestCtx(IRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
2448    return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
2449}
2450static inline HRESULT IRpcChannelBuffer_IsConnected(IRpcChannelBuffer* This) {
2451    return This->lpVtbl->IsConnected(This);
2452}
2453#endif
2454#endif
2455
2456#endif
2457
2458
2459#endif  /* __IRpcChannelBuffer_INTERFACE_DEFINED__ */
2460
2461#endif
2462
2463#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
2464/*****************************************************************************
2465 * IRpcChannelBuffer2 interface
2466 */
2467#ifndef __IRpcChannelBuffer2_INTERFACE_DEFINED__
2468#define __IRpcChannelBuffer2_INTERFACE_DEFINED__
2469
2470DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
2471#if defined(__cplusplus) && !defined(CINTERFACE)
2472MIDL_INTERFACE("594f31d0-7f19-11d0-b194-00a0c90dc8bf")
2473IRpcChannelBuffer2 : public IRpcChannelBuffer
2474{
2475    virtual HRESULT STDMETHODCALLTYPE GetProtocolVersion(
2476        DWORD *pdwVersion) = 0;
2477
2478};
2479#ifdef __CRT_UUID_DECL
2480__CRT_UUID_DECL(IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf)
2481#endif
2482#else
2483typedef struct IRpcChannelBuffer2Vtbl {
2484    BEGIN_INTERFACE
2485
2486    /*** IUnknown methods ***/
2487    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2488        IRpcChannelBuffer2 *This,
2489        REFIID riid,
2490        void **ppvObject);
2491
2492    ULONG (STDMETHODCALLTYPE *AddRef)(
2493        IRpcChannelBuffer2 *This);
2494
2495    ULONG (STDMETHODCALLTYPE *Release)(
2496        IRpcChannelBuffer2 *This);
2497
2498    /*** IRpcChannelBuffer methods ***/
2499    HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2500        IRpcChannelBuffer2 *This,
2501        RPCOLEMESSAGE *pMessage,
2502        REFIID riid);
2503
2504    HRESULT (STDMETHODCALLTYPE *SendReceive)(
2505        IRpcChannelBuffer2 *This,
2506        RPCOLEMESSAGE *pMessage,
2507        ULONG *pStatus);
2508
2509    HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
2510        IRpcChannelBuffer2 *This,
2511        RPCOLEMESSAGE *pMessage);
2512
2513    HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
2514        IRpcChannelBuffer2 *This,
2515        DWORD *pdwDestContext,
2516        void **ppvDestContext);
2517
2518    HRESULT (STDMETHODCALLTYPE *IsConnected)(
2519        IRpcChannelBuffer2 *This);
2520
2521    /*** IRpcChannelBuffer2 methods ***/
2522    HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
2523        IRpcChannelBuffer2 *This,
2524        DWORD *pdwVersion);
2525
2526    END_INTERFACE
2527} IRpcChannelBuffer2Vtbl;
2528
2529interface IRpcChannelBuffer2 {
2530    CONST_VTBL IRpcChannelBuffer2Vtbl* lpVtbl;
2531};
2532
2533#ifdef COBJMACROS
2534#ifndef WIDL_C_INLINE_WRAPPERS
2535/*** IUnknown methods ***/
2536#define IRpcChannelBuffer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2537#define IRpcChannelBuffer2_AddRef(This) (This)->lpVtbl->AddRef(This)
2538#define IRpcChannelBuffer2_Release(This) (This)->lpVtbl->Release(This)
2539/*** IRpcChannelBuffer methods ***/
2540#define IRpcChannelBuffer2_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
2541#define IRpcChannelBuffer2_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
2542#define IRpcChannelBuffer2_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
2543#define IRpcChannelBuffer2_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
2544#define IRpcChannelBuffer2_IsConnected(This) (This)->lpVtbl->IsConnected(This)
2545/*** IRpcChannelBuffer2 methods ***/
2546#define IRpcChannelBuffer2_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
2547#else
2548/*** IUnknown methods ***/
2549static inline HRESULT IRpcChannelBuffer2_QueryInterface(IRpcChannelBuffer2* This,REFIID riid,void **ppvObject) {
2550    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2551}
2552static inline ULONG IRpcChannelBuffer2_AddRef(IRpcChannelBuffer2* This) {
2553    return This->lpVtbl->AddRef(This);
2554}
2555static inline ULONG IRpcChannelBuffer2_Release(IRpcChannelBuffer2* This) {
2556    return This->lpVtbl->Release(This);
2557}
2558/*** IRpcChannelBuffer methods ***/
2559static inline HRESULT IRpcChannelBuffer2_GetBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
2560    return This->lpVtbl->GetBuffer(This,pMessage,riid);
2561}
2562static inline HRESULT IRpcChannelBuffer2_SendReceive(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
2563    return This->lpVtbl->SendReceive(This,pMessage,pStatus);
2564}
2565static inline HRESULT IRpcChannelBuffer2_FreeBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage) {
2566    return This->lpVtbl->FreeBuffer(This,pMessage);
2567}
2568static inline HRESULT IRpcChannelBuffer2_GetDestCtx(IRpcChannelBuffer2* This,DWORD *pdwDestContext,void **ppvDestContext) {
2569    return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
2570}
2571static inline HRESULT IRpcChannelBuffer2_IsConnected(IRpcChannelBuffer2* This) {
2572    return This->lpVtbl->IsConnected(This);
2573}
2574/*** IRpcChannelBuffer2 methods ***/
2575static inline HRESULT IRpcChannelBuffer2_GetProtocolVersion(IRpcChannelBuffer2* This,DWORD *pdwVersion) {
2576    return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
2577}
2578#endif
2579#endif
2580
2581#endif
2582
2583
2584#endif  /* __IRpcChannelBuffer2_INTERFACE_DEFINED__ */
2585
2586
2587/*****************************************************************************
2588 * IAsyncRpcChannelBuffer interface
2589 */
2590#ifndef __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__
2591#define __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__
2592
2593DEFINE_GUID(IID_IAsyncRpcChannelBuffer, 0xa5029fb6, 0x3c34, 0x11d1, 0x9c,0x99, 0x00,0xc0,0x4f,0xb9,0x98,0xaa);
2594#if defined(__cplusplus) && !defined(CINTERFACE)
2595MIDL_INTERFACE("a5029fb6-3c34-11d1-9c99-00c04fb998aa")
2596IAsyncRpcChannelBuffer : public IRpcChannelBuffer2
2597{
2598    virtual HRESULT STDMETHODCALLTYPE Send(
2599        RPCOLEMESSAGE *pMsg,
2600        ISynchronize *pSync,
2601        ULONG *pulStatus) = 0;
2602
2603    virtual HRESULT STDMETHODCALLTYPE Receive(
2604        RPCOLEMESSAGE *pMsg,
2605        ULONG *pulStatus) = 0;
2606
2607    virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
2608        RPCOLEMESSAGE *pMsg,
2609        DWORD *pdwDestContext,
2610        void **ppvDestContext) = 0;
2611
2612};
2613#ifdef __CRT_UUID_DECL
2614__CRT_UUID_DECL(IAsyncRpcChannelBuffer, 0xa5029fb6, 0x3c34, 0x11d1, 0x9c,0x99, 0x00,0xc0,0x4f,0xb9,0x98,0xaa)
2615#endif
2616#else
2617typedef struct IAsyncRpcChannelBufferVtbl {
2618    BEGIN_INTERFACE
2619
2620    /*** IUnknown methods ***/
2621    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2622        IAsyncRpcChannelBuffer *This,
2623        REFIID riid,
2624        void **ppvObject);
2625
2626    ULONG (STDMETHODCALLTYPE *AddRef)(
2627        IAsyncRpcChannelBuffer *This);
2628
2629    ULONG (STDMETHODCALLTYPE *Release)(
2630        IAsyncRpcChannelBuffer *This);
2631
2632    /*** IRpcChannelBuffer methods ***/
2633    HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2634        IAsyncRpcChannelBuffer *This,
2635        RPCOLEMESSAGE *pMessage,
2636        REFIID riid);
2637
2638    HRESULT (STDMETHODCALLTYPE *SendReceive)(
2639        IAsyncRpcChannelBuffer *This,
2640        RPCOLEMESSAGE *pMessage,
2641        ULONG *pStatus);
2642
2643    HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
2644        IAsyncRpcChannelBuffer *This,
2645        RPCOLEMESSAGE *pMessage);
2646
2647    HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
2648        IAsyncRpcChannelBuffer *This,
2649        DWORD *pdwDestContext,
2650        void **ppvDestContext);
2651
2652    HRESULT (STDMETHODCALLTYPE *IsConnected)(
2653        IAsyncRpcChannelBuffer *This);
2654
2655    /*** IRpcChannelBuffer2 methods ***/
2656    HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
2657        IAsyncRpcChannelBuffer *This,
2658        DWORD *pdwVersion);
2659
2660    /*** IAsyncRpcChannelBuffer methods ***/
2661    HRESULT (STDMETHODCALLTYPE *Send)(
2662        IAsyncRpcChannelBuffer *This,
2663        RPCOLEMESSAGE *pMsg,
2664        ISynchronize *pSync,
2665        ULONG *pulStatus);
2666
2667    HRESULT (STDMETHODCALLTYPE *Receive)(
2668        IAsyncRpcChannelBuffer *This,
2669        RPCOLEMESSAGE *pMsg,
2670        ULONG *pulStatus);
2671
2672    HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
2673        IAsyncRpcChannelBuffer *This,
2674        RPCOLEMESSAGE *pMsg,
2675        DWORD *pdwDestContext,
2676        void **ppvDestContext);
2677
2678    END_INTERFACE
2679} IAsyncRpcChannelBufferVtbl;
2680
2681interface IAsyncRpcChannelBuffer {
2682    CONST_VTBL IAsyncRpcChannelBufferVtbl* lpVtbl;
2683};
2684
2685#ifdef COBJMACROS
2686#ifndef WIDL_C_INLINE_WRAPPERS
2687/*** IUnknown methods ***/
2688#define IAsyncRpcChannelBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2689#define IAsyncRpcChannelBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
2690#define IAsyncRpcChannelBuffer_Release(This) (This)->lpVtbl->Release(This)
2691/*** IRpcChannelBuffer methods ***/
2692#define IAsyncRpcChannelBuffer_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
2693#define IAsyncRpcChannelBuffer_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
2694#define IAsyncRpcChannelBuffer_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
2695#define IAsyncRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
2696#define IAsyncRpcChannelBuffer_IsConnected(This) (This)->lpVtbl->IsConnected(This)
2697/*** IRpcChannelBuffer2 methods ***/
2698#define IAsyncRpcChannelBuffer_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
2699/*** IAsyncRpcChannelBuffer methods ***/
2700#define IAsyncRpcChannelBuffer_Send(This,pMsg,pSync,pulStatus) (This)->lpVtbl->Send(This,pMsg,pSync,pulStatus)
2701#define IAsyncRpcChannelBuffer_Receive(This,pMsg,pulStatus) (This)->lpVtbl->Receive(This,pMsg,pulStatus)
2702#define IAsyncRpcChannelBuffer_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext)
2703#else
2704/*** IUnknown methods ***/
2705static inline HRESULT IAsyncRpcChannelBuffer_QueryInterface(IAsyncRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
2706    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2707}
2708static inline ULONG IAsyncRpcChannelBuffer_AddRef(IAsyncRpcChannelBuffer* This) {
2709    return This->lpVtbl->AddRef(This);
2710}
2711static inline ULONG IAsyncRpcChannelBuffer_Release(IAsyncRpcChannelBuffer* This) {
2712    return This->lpVtbl->Release(This);
2713}
2714/*** IRpcChannelBuffer methods ***/
2715static inline HRESULT IAsyncRpcChannelBuffer_GetBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
2716    return This->lpVtbl->GetBuffer(This,pMessage,riid);
2717}
2718static inline HRESULT IAsyncRpcChannelBuffer_SendReceive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
2719    return This->lpVtbl->SendReceive(This,pMessage,pStatus);
2720}
2721static inline HRESULT IAsyncRpcChannelBuffer_FreeBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
2722    return This->lpVtbl->FreeBuffer(This,pMessage);
2723}
2724static inline HRESULT IAsyncRpcChannelBuffer_GetDestCtx(IAsyncRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
2725    return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
2726}
2727static inline HRESULT IAsyncRpcChannelBuffer_IsConnected(IAsyncRpcChannelBuffer* This) {
2728    return This->lpVtbl->IsConnected(This);
2729}
2730/*** IRpcChannelBuffer2 methods ***/
2731static inline HRESULT IAsyncRpcChannelBuffer_GetProtocolVersion(IAsyncRpcChannelBuffer* This,DWORD *pdwVersion) {
2732    return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
2733}
2734/*** IAsyncRpcChannelBuffer methods ***/
2735static inline HRESULT IAsyncRpcChannelBuffer_Send(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ISynchronize *pSync,ULONG *pulStatus) {
2736    return This->lpVtbl->Send(This,pMsg,pSync,pulStatus);
2737}
2738static inline HRESULT IAsyncRpcChannelBuffer_Receive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
2739    return This->lpVtbl->Receive(This,pMsg,pulStatus);
2740}
2741static inline HRESULT IAsyncRpcChannelBuffer_GetDestCtxEx(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext) {
2742    return This->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext);
2743}
2744#endif
2745#endif
2746
2747#endif
2748
2749
2750#endif  /* __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__ */
2751
2752
2753/*****************************************************************************
2754 * IRpcChannelBuffer3 interface
2755 */
2756#ifndef __IRpcChannelBuffer3_INTERFACE_DEFINED__
2757#define __IRpcChannelBuffer3_INTERFACE_DEFINED__
2758
2759DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
2760#if defined(__cplusplus) && !defined(CINTERFACE)
2761MIDL_INTERFACE("25b15600-0115-11d0-bf0d-00aa00b8dfd2")
2762IRpcChannelBuffer3 : public IRpcChannelBuffer2
2763{
2764    virtual HRESULT STDMETHODCALLTYPE Send(
2765        RPCOLEMESSAGE *pMsg,
2766        ULONG *pulStatus) = 0;
2767
2768    virtual HRESULT STDMETHODCALLTYPE Receive(
2769        RPCOLEMESSAGE *pMsg,
2770        ULONG ulSize,
2771        ULONG *pulStatus) = 0;
2772
2773    virtual HRESULT STDMETHODCALLTYPE Cancel(
2774        RPCOLEMESSAGE *pMsg) = 0;
2775
2776    virtual HRESULT STDMETHODCALLTYPE GetCallContext(
2777        RPCOLEMESSAGE *pMsg,
2778        REFIID riid,
2779        void **pInterface) = 0;
2780
2781    virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
2782        RPCOLEMESSAGE *pMsg,
2783        DWORD *pdwDestContext,
2784        void **ppvDestContext) = 0;
2785
2786    virtual HRESULT STDMETHODCALLTYPE GetState(
2787        RPCOLEMESSAGE *pMsg,
2788        DWORD *pState) = 0;
2789
2790    virtual HRESULT STDMETHODCALLTYPE RegisterAsync(
2791        RPCOLEMESSAGE *pMsg,
2792        IAsyncManager *pAsyncMgr) = 0;
2793
2794};
2795#ifdef __CRT_UUID_DECL
2796__CRT_UUID_DECL(IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2)
2797#endif
2798#else
2799typedef struct IRpcChannelBuffer3Vtbl {
2800    BEGIN_INTERFACE
2801
2802    /*** IUnknown methods ***/
2803    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2804        IRpcChannelBuffer3 *This,
2805        REFIID riid,
2806        void **ppvObject);
2807
2808    ULONG (STDMETHODCALLTYPE *AddRef)(
2809        IRpcChannelBuffer3 *This);
2810
2811    ULONG (STDMETHODCALLTYPE *Release)(
2812        IRpcChannelBuffer3 *This);
2813
2814    /*** IRpcChannelBuffer methods ***/
2815    HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2816        IRpcChannelBuffer3 *This,
2817        RPCOLEMESSAGE *pMessage,
2818        REFIID riid);
2819
2820    HRESULT (STDMETHODCALLTYPE *SendReceive)(
2821        IRpcChannelBuffer3 *This,
2822        RPCOLEMESSAGE *pMessage,
2823        ULONG *pStatus);
2824
2825    HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
2826        IRpcChannelBuffer3 *This,
2827        RPCOLEMESSAGE *pMessage);
2828
2829    HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
2830        IRpcChannelBuffer3 *This,
2831        DWORD *pdwDestContext,
2832        void **ppvDestContext);
2833
2834    HRESULT (STDMETHODCALLTYPE *IsConnected)(
2835        IRpcChannelBuffer3 *This);
2836
2837    /*** IRpcChannelBuffer2 methods ***/
2838    HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
2839        IRpcChannelBuffer3 *This,
2840        DWORD *pdwVersion);
2841
2842    /*** IRpcChannelBuffer3 methods ***/
2843    HRESULT (STDMETHODCALLTYPE *Send)(
2844        IRpcChannelBuffer3 *This,
2845        RPCOLEMESSAGE *pMsg,
2846        ULONG *pulStatus);
2847
2848    HRESULT (STDMETHODCALLTYPE *Receive)(
2849        IRpcChannelBuffer3 *This,
2850        RPCOLEMESSAGE *pMsg,
2851        ULONG ulSize,
2852        ULONG *pulStatus);
2853
2854    HRESULT (STDMETHODCALLTYPE *Cancel)(
2855        IRpcChannelBuffer3 *This,
2856        RPCOLEMESSAGE *pMsg);
2857
2858    HRESULT (STDMETHODCALLTYPE *GetCallContext)(
2859        IRpcChannelBuffer3 *This,
2860        RPCOLEMESSAGE *pMsg,
2861        REFIID riid,
2862        void **pInterface);
2863
2864    HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
2865        IRpcChannelBuffer3 *This,
2866        RPCOLEMESSAGE *pMsg,
2867        DWORD *pdwDestContext,
2868        void **ppvDestContext);
2869
2870    HRESULT (STDMETHODCALLTYPE *GetState)(
2871        IRpcChannelBuffer3 *This,
2872        RPCOLEMESSAGE *pMsg,
2873        DWORD *pState);
2874
2875    HRESULT (STDMETHODCALLTYPE *RegisterAsync)(
2876        IRpcChannelBuffer3 *This,
2877        RPCOLEMESSAGE *pMsg,
2878        IAsyncManager *pAsyncMgr);
2879
2880    END_INTERFACE
2881} IRpcChannelBuffer3Vtbl;
2882
2883interface IRpcChannelBuffer3 {
2884    CONST_VTBL IRpcChannelBuffer3Vtbl* lpVtbl;
2885};
2886
2887#ifdef COBJMACROS
2888#ifndef WIDL_C_INLINE_WRAPPERS
2889/*** IUnknown methods ***/
2890#define IRpcChannelBuffer3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2891#define IRpcChannelBuffer3_AddRef(This) (This)->lpVtbl->AddRef(This)
2892#define IRpcChannelBuffer3_Release(This) (This)->lpVtbl->Release(This)
2893/*** IRpcChannelBuffer methods ***/
2894#define IRpcChannelBuffer3_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
2895#define IRpcChannelBuffer3_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
2896#define IRpcChannelBuffer3_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
2897#define IRpcChannelBuffer3_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
2898#define IRpcChannelBuffer3_IsConnected(This) (This)->lpVtbl->IsConnected(This)
2899/*** IRpcChannelBuffer2 methods ***/
2900#define IRpcChannelBuffer3_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
2901/*** IRpcChannelBuffer3 methods ***/
2902#define IRpcChannelBuffer3_Send(This,pMsg,pulStatus) (This)->lpVtbl->Send(This,pMsg,pulStatus)
2903#define IRpcChannelBuffer3_Receive(This,pMsg,ulSize,pulStatus) (This)->lpVtbl->Receive(This,pMsg,ulSize,pulStatus)
2904#define IRpcChannelBuffer3_Cancel(This,pMsg) (This)->lpVtbl->Cancel(This,pMsg)
2905#define IRpcChannelBuffer3_GetCallContext(This,pMsg,riid,pInterface) (This)->lpVtbl->GetCallContext(This,pMsg,riid,pInterface)
2906#define IRpcChannelBuffer3_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext)
2907#define IRpcChannelBuffer3_GetState(This,pMsg,pState) (This)->lpVtbl->GetState(This,pMsg,pState)
2908#define IRpcChannelBuffer3_RegisterAsync(This,pMsg,pAsyncMgr) (This)->lpVtbl->RegisterAsync(This,pMsg,pAsyncMgr)
2909#else
2910/*** IUnknown methods ***/
2911static inline HRESULT IRpcChannelBuffer3_QueryInterface(IRpcChannelBuffer3* This,REFIID riid,void **ppvObject) {
2912    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2913}
2914static inline ULONG IRpcChannelBuffer3_AddRef(IRpcChannelBuffer3* This) {
2915    return This->lpVtbl->AddRef(This);
2916}
2917static inline ULONG IRpcChannelBuffer3_Release(IRpcChannelBuffer3* This) {
2918    return This->lpVtbl->Release(This);
2919}
2920/*** IRpcChannelBuffer methods ***/
2921static inline HRESULT IRpcChannelBuffer3_GetBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
2922    return This->lpVtbl->GetBuffer(This,pMessage,riid);
2923}
2924static inline HRESULT IRpcChannelBuffer3_SendReceive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
2925    return This->lpVtbl->SendReceive(This,pMessage,pStatus);
2926}
2927static inline HRESULT IRpcChannelBuffer3_FreeBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage) {
2928    return This->lpVtbl->FreeBuffer(This,pMessage);
2929}
2930static inline HRESULT IRpcChannelBuffer3_GetDestCtx(IRpcChannelBuffer3* This,DWORD *pdwDestContext,void **ppvDestContext) {
2931    return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
2932}
2933static inline HRESULT IRpcChannelBuffer3_IsConnected(IRpcChannelBuffer3* This) {
2934    return This->lpVtbl->IsConnected(This);
2935}
2936/*** IRpcChannelBuffer2 methods ***/
2937static inline HRESULT IRpcChannelBuffer3_GetProtocolVersion(IRpcChannelBuffer3* This,DWORD *pdwVersion) {
2938    return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
2939}
2940/*** IRpcChannelBuffer3 methods ***/
2941static inline HRESULT IRpcChannelBuffer3_Send(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
2942    return This->lpVtbl->Send(This,pMsg,pulStatus);
2943}
2944static inline HRESULT IRpcChannelBuffer3_Receive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG ulSize,ULONG *pulStatus) {
2945    return This->lpVtbl->Receive(This,pMsg,ulSize,pulStatus);
2946}
2947static inline HRESULT IRpcChannelBuffer3_Cancel(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg) {
2948    return This->lpVtbl->Cancel(This,pMsg);
2949}
2950static inline HRESULT IRpcChannelBuffer3_GetCallContext(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,REFIID riid,void **pInterface) {
2951    return This->lpVtbl->GetCallContext(This,pMsg,riid,pInterface);
2952}
2953static inline HRESULT IRpcChannelBuffer3_GetDestCtxEx(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext) {
2954    return This->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext);
2955}
2956static inline HRESULT IRpcChannelBuffer3_GetState(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pState) {
2957    return This->lpVtbl->GetState(This,pMsg,pState);
2958}
2959static inline HRESULT IRpcChannelBuffer3_RegisterAsync(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,IAsyncManager *pAsyncMgr) {
2960    return This->lpVtbl->RegisterAsync(This,pMsg,pAsyncMgr);
2961}
2962#endif
2963#endif
2964
2965#endif
2966
2967
2968#endif  /* __IRpcChannelBuffer3_INTERFACE_DEFINED__ */
2969
2970
2971/*****************************************************************************
2972 * IRpcSyntaxNegotiate interface
2973 */
2974#ifndef __IRpcSyntaxNegotiate_INTERFACE_DEFINED__
2975#define __IRpcSyntaxNegotiate_INTERFACE_DEFINED__
2976
2977DEFINE_GUID(IID_IRpcSyntaxNegotiate, 0x58a08519, 0x24c8, 0x4935, 0xb4,0x82, 0x3f,0xd8,0x23,0x33,0x3a,0x4f);
2978#if defined(__cplusplus) && !defined(CINTERFACE)
2979MIDL_INTERFACE("58a08519-24c8-4935-b482-3fd823333a4f")
2980IRpcSyntaxNegotiate : public IUnknown
2981{
2982    virtual HRESULT STDMETHODCALLTYPE NegotiateSyntax(
2983        RPCOLEMESSAGE *pMsg) = 0;
2984
2985};
2986#ifdef __CRT_UUID_DECL
2987__CRT_UUID_DECL(IRpcSyntaxNegotiate, 0x58a08519, 0x24c8, 0x4935, 0xb4,0x82, 0x3f,0xd8,0x23,0x33,0x3a,0x4f)
2988#endif
2989#else
2990typedef struct IRpcSyntaxNegotiateVtbl {
2991    BEGIN_INTERFACE
2992
2993    /*** IUnknown methods ***/
2994    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2995        IRpcSyntaxNegotiate *This,
2996        REFIID riid,
2997        void **ppvObject);
2998
2999    ULONG (STDMETHODCALLTYPE *AddRef)(
3000        IRpcSyntaxNegotiate *This);
3001
3002    ULONG (STDMETHODCALLTYPE *Release)(
3003        IRpcSyntaxNegotiate *This);
3004
3005    /*** IRpcSyntaxNegotiate methods ***/
3006    HRESULT (STDMETHODCALLTYPE *NegotiateSyntax)(
3007        IRpcSyntaxNegotiate *This,
3008        RPCOLEMESSAGE *pMsg);
3009
3010    END_INTERFACE
3011} IRpcSyntaxNegotiateVtbl;
3012
3013interface IRpcSyntaxNegotiate {
3014    CONST_VTBL IRpcSyntaxNegotiateVtbl* lpVtbl;
3015};
3016
3017#ifdef COBJMACROS
3018#ifndef WIDL_C_INLINE_WRAPPERS
3019/*** IUnknown methods ***/
3020#define IRpcSyntaxNegotiate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3021#define IRpcSyntaxNegotiate_AddRef(This) (This)->lpVtbl->AddRef(This)
3022#define IRpcSyntaxNegotiate_Release(This) (This)->lpVtbl->Release(This)
3023/*** IRpcSyntaxNegotiate methods ***/
3024#define IRpcSyntaxNegotiate_NegotiateSyntax(This,pMsg) (This)->lpVtbl->NegotiateSyntax(This,pMsg)
3025#else
3026/*** IUnknown methods ***/
3027static inline HRESULT IRpcSyntaxNegotiate_QueryInterface(IRpcSyntaxNegotiate* This,REFIID riid,void **ppvObject) {
3028    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3029}
3030static inline ULONG IRpcSyntaxNegotiate_AddRef(IRpcSyntaxNegotiate* This) {
3031    return This->lpVtbl->AddRef(This);
3032}
3033static inline ULONG IRpcSyntaxNegotiate_Release(IRpcSyntaxNegotiate* This) {
3034    return This->lpVtbl->Release(This);
3035}
3036/*** IRpcSyntaxNegotiate methods ***/
3037static inline HRESULT IRpcSyntaxNegotiate_NegotiateSyntax(IRpcSyntaxNegotiate* This,RPCOLEMESSAGE *pMsg) {
3038    return This->lpVtbl->NegotiateSyntax(This,pMsg);
3039}
3040#endif
3041#endif
3042
3043#endif
3044
3045
3046#endif  /* __IRpcSyntaxNegotiate_INTERFACE_DEFINED__ */
3047
3048
3049/*****************************************************************************
3050 * IRpcProxyBuffer interface
3051 */
3052#ifndef __IRpcProxyBuffer_INTERFACE_DEFINED__
3053#define __IRpcProxyBuffer_INTERFACE_DEFINED__
3054
3055DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
3056#if defined(__cplusplus) && !defined(CINTERFACE)
3057MIDL_INTERFACE("d5f56a34-593b-101a-b569-08002b2dbf7a")
3058IRpcProxyBuffer : public IUnknown
3059{
3060    virtual HRESULT STDMETHODCALLTYPE Connect(
3061        IRpcChannelBuffer *pRpcChannelBuffer) = 0;
3062
3063    virtual void STDMETHODCALLTYPE Disconnect(
3064        ) = 0;
3065
3066};
3067#ifdef __CRT_UUID_DECL
3068__CRT_UUID_DECL(IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
3069#endif
3070#else
3071typedef struct IRpcProxyBufferVtbl {
3072    BEGIN_INTERFACE
3073
3074    /*** IUnknown methods ***/
3075    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3076        IRpcProxyBuffer *This,
3077        REFIID riid,
3078        void **ppvObject);
3079
3080    ULONG (STDMETHODCALLTYPE *AddRef)(
3081        IRpcProxyBuffer *This);
3082
3083    ULONG (STDMETHODCALLTYPE *Release)(
3084        IRpcProxyBuffer *This);
3085
3086    /*** IRpcProxyBuffer methods ***/
3087    HRESULT (STDMETHODCALLTYPE *Connect)(
3088        IRpcProxyBuffer *This,
3089        IRpcChannelBuffer *pRpcChannelBuffer);
3090
3091    void (STDMETHODCALLTYPE *Disconnect)(
3092        IRpcProxyBuffer *This);
3093
3094    END_INTERFACE
3095} IRpcProxyBufferVtbl;
3096
3097interface IRpcProxyBuffer {
3098    CONST_VTBL IRpcProxyBufferVtbl* lpVtbl;
3099};
3100
3101#ifdef COBJMACROS
3102#ifndef WIDL_C_INLINE_WRAPPERS
3103/*** IUnknown methods ***/
3104#define IRpcProxyBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3105#define IRpcProxyBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
3106#define IRpcProxyBuffer_Release(This) (This)->lpVtbl->Release(This)
3107/*** IRpcProxyBuffer methods ***/
3108#define IRpcProxyBuffer_Connect(This,pRpcChannelBuffer) (This)->lpVtbl->Connect(This,pRpcChannelBuffer)
3109#define IRpcProxyBuffer_Disconnect(This) (This)->lpVtbl->Disconnect(This)
3110#else
3111/*** IUnknown methods ***/
3112static inline HRESULT IRpcProxyBuffer_QueryInterface(IRpcProxyBuffer* This,REFIID riid,void **ppvObject) {
3113    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3114}
3115static inline ULONG IRpcProxyBuffer_AddRef(IRpcProxyBuffer* This) {
3116    return This->lpVtbl->AddRef(This);
3117}
3118static inline ULONG IRpcProxyBuffer_Release(IRpcProxyBuffer* This) {
3119    return This->lpVtbl->Release(This);
3120}
3121/*** IRpcProxyBuffer methods ***/
3122static inline HRESULT IRpcProxyBuffer_Connect(IRpcProxyBuffer* This,IRpcChannelBuffer *pRpcChannelBuffer) {
3123    return This->lpVtbl->Connect(This,pRpcChannelBuffer);
3124}
3125static inline void IRpcProxyBuffer_Disconnect(IRpcProxyBuffer* This) {
3126    This->lpVtbl->Disconnect(This);
3127}
3128#endif
3129#endif
3130
3131#endif
3132
3133
3134#endif  /* __IRpcProxyBuffer_INTERFACE_DEFINED__ */
3135
3136#endif
3137
3138#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
3139/*****************************************************************************
3140 * IRpcStubBuffer interface
3141 */
3142#ifndef __IRpcStubBuffer_INTERFACE_DEFINED__
3143#define __IRpcStubBuffer_INTERFACE_DEFINED__
3144
3145DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
3146#if defined(__cplusplus) && !defined(CINTERFACE)
3147MIDL_INTERFACE("d5f56afc-593b-101a-b569-08002b2dbf7a")
3148IRpcStubBuffer : public IUnknown
3149{
3150    virtual HRESULT STDMETHODCALLTYPE Connect(
3151        IUnknown *pUnkServer) = 0;
3152
3153    virtual void STDMETHODCALLTYPE Disconnect(
3154        ) = 0;
3155
3156    virtual HRESULT STDMETHODCALLTYPE Invoke(
3157        RPCOLEMESSAGE *_prpcmsg,
3158        IRpcChannelBuffer *_pRpcChannelBuffer) = 0;
3159
3160    virtual IRpcStubBuffer * STDMETHODCALLTYPE IsIIDSupported(
3161        REFIID riid) = 0;
3162
3163    virtual ULONG STDMETHODCALLTYPE CountRefs(
3164        ) = 0;
3165
3166    virtual HRESULT STDMETHODCALLTYPE DebugServerQueryInterface(
3167        void **ppv) = 0;
3168
3169    virtual void STDMETHODCALLTYPE DebugServerRelease(
3170        void *pv) = 0;
3171
3172};
3173#ifdef __CRT_UUID_DECL
3174__CRT_UUID_DECL(IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
3175#endif
3176#else
3177typedef struct IRpcStubBufferVtbl {
3178    BEGIN_INTERFACE
3179
3180    /*** IUnknown methods ***/
3181    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3182        IRpcStubBuffer *This,
3183        REFIID riid,
3184        void **ppvObject);
3185
3186    ULONG (STDMETHODCALLTYPE *AddRef)(
3187        IRpcStubBuffer *This);
3188
3189    ULONG (STDMETHODCALLTYPE *Release)(
3190        IRpcStubBuffer *This);
3191
3192    /*** IRpcStubBuffer methods ***/
3193    HRESULT (STDMETHODCALLTYPE *Connect)(
3194        IRpcStubBuffer *This,
3195        IUnknown *pUnkServer);
3196
3197    void (STDMETHODCALLTYPE *Disconnect)(
3198        IRpcStubBuffer *This);
3199
3200    HRESULT (STDMETHODCALLTYPE *Invoke)(
3201        IRpcStubBuffer *This,
3202        RPCOLEMESSAGE *_prpcmsg,
3203        IRpcChannelBuffer *_pRpcChannelBuffer);
3204
3205    IRpcStubBuffer * (STDMETHODCALLTYPE *IsIIDSupported)(
3206        IRpcStubBuffer *This,
3207        REFIID riid);
3208
3209    ULONG (STDMETHODCALLTYPE *CountRefs)(
3210        IRpcStubBuffer *This);
3211
3212    HRESULT (STDMETHODCALLTYPE *DebugServerQueryInterface)(
3213        IRpcStubBuffer *This,
3214        void **ppv);
3215
3216    void (STDMETHODCALLTYPE *DebugServerRelease)(
3217        IRpcStubBuffer *This,
3218        void *pv);
3219
3220    END_INTERFACE
3221} IRpcStubBufferVtbl;
3222
3223interface IRpcStubBuffer {
3224    CONST_VTBL IRpcStubBufferVtbl* lpVtbl;
3225};
3226
3227#ifdef COBJMACROS
3228#ifndef WIDL_C_INLINE_WRAPPERS
3229/*** IUnknown methods ***/
3230#define IRpcStubBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3231#define IRpcStubBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
3232#define IRpcStubBuffer_Release(This) (This)->lpVtbl->Release(This)
3233/*** IRpcStubBuffer methods ***/
3234#define IRpcStubBuffer_Connect(This,pUnkServer) (This)->lpVtbl->Connect(This,pUnkServer)
3235#define IRpcStubBuffer_Disconnect(This) (This)->lpVtbl->Disconnect(This)
3236#define IRpcStubBuffer_Invoke(This,_prpcmsg,_pRpcChannelBuffer) (This)->lpVtbl->Invoke(This,_prpcmsg,_pRpcChannelBuffer)
3237#define IRpcStubBuffer_IsIIDSupported(This,riid) (This)->lpVtbl->IsIIDSupported(This,riid)
3238#define IRpcStubBuffer_CountRefs(This) (This)->lpVtbl->CountRefs(This)
3239#define IRpcStubBuffer_DebugServerQueryInterface(This,ppv) (This)->lpVtbl->DebugServerQueryInterface(This,ppv)
3240#define IRpcStubBuffer_DebugServerRelease(This,pv) (This)->lpVtbl->DebugServerRelease(This,pv)
3241#else
3242/*** IUnknown methods ***/
3243static inline HRESULT IRpcStubBuffer_QueryInterface(IRpcStubBuffer* This,REFIID riid,void **ppvObject) {
3244    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3245}
3246static inline ULONG IRpcStubBuffer_AddRef(IRpcStubBuffer* This) {
3247    return This->lpVtbl->AddRef(This);
3248}
3249static inline ULONG IRpcStubBuffer_Release(IRpcStubBuffer* This) {
3250    return This->lpVtbl->Release(This);
3251}
3252/*** IRpcStubBuffer methods ***/
3253static inline HRESULT IRpcStubBuffer_Connect(IRpcStubBuffer* This,IUnknown *pUnkServer) {
3254    return This->lpVtbl->Connect(This,pUnkServer);
3255}
3256static inline void IRpcStubBuffer_Disconnect(IRpcStubBuffer* This) {
3257    This->lpVtbl->Disconnect(This);
3258}
3259static inline HRESULT IRpcStubBuffer_Invoke(IRpcStubBuffer* This,RPCOLEMESSAGE *_prpcmsg,IRpcChannelBuffer *_pRpcChannelBuffer) {
3260    return This->lpVtbl->Invoke(This,_prpcmsg,_pRpcChannelBuffer);
3261}
3262static inline IRpcStubBuffer * IRpcStubBuffer_IsIIDSupported(IRpcStubBuffer* This,REFIID riid) {
3263    return This->lpVtbl->IsIIDSupported(This,riid);
3264}
3265static inline ULONG IRpcStubBuffer_CountRefs(IRpcStubBuffer* This) {
3266    return This->lpVtbl->CountRefs(This);
3267}
3268static inline HRESULT IRpcStubBuffer_DebugServerQueryInterface(IRpcStubBuffer* This,void **ppv) {
3269    return This->lpVtbl->DebugServerQueryInterface(This,ppv);
3270}
3271static inline void IRpcStubBuffer_DebugServerRelease(IRpcStubBuffer* This,void *pv) {
3272    This->lpVtbl->DebugServerRelease(This,pv);
3273}
3274#endif
3275#endif
3276
3277#endif
3278
3279
3280#endif  /* __IRpcStubBuffer_INTERFACE_DEFINED__ */
3281
3282
3283/*****************************************************************************
3284 * IPSFactoryBuffer interface
3285 */
3286#ifndef __IPSFactoryBuffer_INTERFACE_DEFINED__
3287#define __IPSFactoryBuffer_INTERFACE_DEFINED__
3288
3289DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
3290#if defined(__cplusplus) && !defined(CINTERFACE)
3291MIDL_INTERFACE("d5f569d0-593b-101a-b569-08002b2dbf7a")
3292IPSFactoryBuffer : public IUnknown
3293{
3294    virtual HRESULT STDMETHODCALLTYPE CreateProxy(
3295        IUnknown *pUnkOuter,
3296        REFIID riid,
3297        IRpcProxyBuffer **ppProxy,
3298        void **ppv) = 0;
3299
3300    virtual HRESULT STDMETHODCALLTYPE CreateStub(
3301        REFIID riid,
3302        IUnknown *pUnkServer,
3303        IRpcStubBuffer **ppStub) = 0;
3304
3305};
3306#ifdef __CRT_UUID_DECL
3307__CRT_UUID_DECL(IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
3308#endif
3309#else
3310typedef struct IPSFactoryBufferVtbl {
3311    BEGIN_INTERFACE
3312
3313    /*** IUnknown methods ***/
3314    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3315        IPSFactoryBuffer *This,
3316        REFIID riid,
3317        void **ppvObject);
3318
3319    ULONG (STDMETHODCALLTYPE *AddRef)(
3320        IPSFactoryBuffer *This);
3321
3322    ULONG (STDMETHODCALLTYPE *Release)(
3323        IPSFactoryBuffer *This);
3324
3325    /*** IPSFactoryBuffer methods ***/
3326    HRESULT (STDMETHODCALLTYPE *CreateProxy)(
3327        IPSFactoryBuffer *This,
3328        IUnknown *pUnkOuter,
3329        REFIID riid,
3330        IRpcProxyBuffer **ppProxy,
3331        void **ppv);
3332
3333    HRESULT (STDMETHODCALLTYPE *CreateStub)(
3334        IPSFactoryBuffer *This,
3335        REFIID riid,
3336        IUnknown *pUnkServer,
3337        IRpcStubBuffer **ppStub);
3338
3339    END_INTERFACE
3340} IPSFactoryBufferVtbl;
3341
3342interface IPSFactoryBuffer {
3343    CONST_VTBL IPSFactoryBufferVtbl* lpVtbl;
3344};
3345
3346#ifdef COBJMACROS
3347#ifndef WIDL_C_INLINE_WRAPPERS
3348/*** IUnknown methods ***/
3349#define IPSFactoryBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3350#define IPSFactoryBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
3351#define IPSFactoryBuffer_Release(This) (This)->lpVtbl->Release(This)
3352/*** IPSFactoryBuffer methods ***/
3353#define IPSFactoryBuffer_CreateProxy(This,pUnkOuter,riid,ppProxy,ppv) (This)->lpVtbl->CreateProxy(This,pUnkOuter,riid,ppProxy,ppv)
3354#define IPSFactoryBuffer_CreateStub(This,riid,pUnkServer,ppStub) (This)->lpVtbl->CreateStub(This,riid,pUnkServer,ppStub)
3355#else
3356/*** IUnknown methods ***/
3357static inline HRESULT IPSFactoryBuffer_QueryInterface(IPSFactoryBuffer* This,REFIID riid,void **ppvObject) {
3358    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3359}
3360static inline ULONG IPSFactoryBuffer_AddRef(IPSFactoryBuffer* This) {
3361    return This->lpVtbl->AddRef(This);
3362}
3363static inline ULONG IPSFactoryBuffer_Release(IPSFactoryBuffer* This) {
3364    return This->lpVtbl->Release(This);
3365}
3366/*** IPSFactoryBuffer methods ***/
3367static inline HRESULT IPSFactoryBuffer_CreateProxy(IPSFactoryBuffer* This,IUnknown *pUnkOuter,REFIID riid,IRpcProxyBuffer **ppProxy,void **ppv) {
3368    return This->lpVtbl->CreateProxy(This,pUnkOuter,riid,ppProxy,ppv);
3369}
3370static inline HRESULT IPSFactoryBuffer_CreateStub(IPSFactoryBuffer* This,REFIID riid,IUnknown *pUnkServer,IRpcStubBuffer **ppStub) {
3371    return This->lpVtbl->CreateStub(This,riid,pUnkServer,ppStub);
3372}
3373#endif
3374#endif
3375
3376#endif
3377
3378
3379#endif  /* __IPSFactoryBuffer_INTERFACE_DEFINED__ */
3380
3381#endif
3382
3383#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
3384#if  (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)
3385typedef struct SChannelHookCallInfo {
3386    IID iid;
3387    DWORD cbSize;
3388    GUID uCausality;
3389    DWORD dwServerPid;
3390    DWORD iMethod;
3391    void *pObject;
3392} SChannelHookCallInfo;
3393
3394/*****************************************************************************
3395 * IChannelHook interface
3396 */
3397#ifndef __IChannelHook_INTERFACE_DEFINED__
3398#define __IChannelHook_INTERFACE_DEFINED__
3399
3400DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
3401#if defined(__cplusplus) && !defined(CINTERFACE)
3402MIDL_INTERFACE("1008c4a0-7613-11cf-9af1-0020af6e72f4")
3403IChannelHook : public IUnknown
3404{
3405    virtual void STDMETHODCALLTYPE ClientGetSize(
3406        REFGUID uExtent,
3407        REFIID riid,
3408        ULONG *pDataSize) = 0;
3409
3410    virtual void STDMETHODCALLTYPE ClientFillBuffer(
3411        REFGUID uExtent,
3412        REFIID riid,
3413        ULONG *pDataSize,
3414        void *pDataBuffer) = 0;
3415
3416    virtual void STDMETHODCALLTYPE ClientNotify(
3417        REFGUID uExtent,
3418        REFIID riid,
3419        ULONG cbDataSize,
3420        void *pDataBuffer,
3421        DWORD lDataRep,
3422        HRESULT hrFault) = 0;
3423
3424    virtual void STDMETHODCALLTYPE ServerNotify(
3425        REFGUID uExtent,
3426        REFIID riid,
3427        ULONG cbDataSize,
3428        void *pDataBuffer,
3429        DWORD lDataRep) = 0;
3430
3431    virtual void STDMETHODCALLTYPE ServerGetSize(
3432        REFGUID uExtent,
3433        REFIID riid,
3434        HRESULT hrFault,
3435        ULONG *pDataSize) = 0;
3436
3437    virtual void STDMETHODCALLTYPE ServerFillBuffer(
3438        REFGUID uExtent,
3439        REFIID riid,
3440        ULONG *pDataSize,
3441        void *pDataBuffer,
3442        HRESULT hrFault) = 0;
3443
3444};
3445#ifdef __CRT_UUID_DECL
3446__CRT_UUID_DECL(IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4)
3447#endif
3448#else
3449typedef struct IChannelHookVtbl {
3450    BEGIN_INTERFACE
3451
3452    /*** IUnknown methods ***/
3453    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3454        IChannelHook *This,
3455        REFIID riid,
3456        void **ppvObject);
3457
3458    ULONG (STDMETHODCALLTYPE *AddRef)(
3459        IChannelHook *This);
3460
3461    ULONG (STDMETHODCALLTYPE *Release)(
3462        IChannelHook *This);
3463
3464    /*** IChannelHook methods ***/
3465    void (STDMETHODCALLTYPE *ClientGetSize)(
3466        IChannelHook *This,
3467        REFGUID uExtent,
3468        REFIID riid,
3469        ULONG *pDataSize);
3470
3471    void (STDMETHODCALLTYPE *ClientFillBuffer)(
3472        IChannelHook *This,
3473        REFGUID uExtent,
3474        REFIID riid,
3475        ULONG *pDataSize,
3476        void *pDataBuffer);
3477
3478    void (STDMETHODCALLTYPE *ClientNotify)(
3479        IChannelHook *This,
3480        REFGUID uExtent,
3481        REFIID riid,
3482        ULONG cbDataSize,
3483        void *pDataBuffer,
3484        DWORD lDataRep,
3485        HRESULT hrFault);
3486
3487    void (STDMETHODCALLTYPE *ServerNotify)(
3488        IChannelHook *This,
3489        REFGUID uExtent,
3490        REFIID riid,
3491        ULONG cbDataSize,
3492        void *pDataBuffer,
3493        DWORD lDataRep);
3494
3495    void (STDMETHODCALLTYPE *ServerGetSize)(
3496        IChannelHook *This,
3497        REFGUID uExtent,
3498        REFIID riid,
3499        HRESULT hrFault,
3500        ULONG *pDataSize);
3501
3502    void (STDMETHODCALLTYPE *ServerFillBuffer)(
3503        IChannelHook *This,
3504        REFGUID uExtent,
3505        REFIID riid,
3506        ULONG *pDataSize,
3507        void *pDataBuffer,
3508        HRESULT hrFault);
3509
3510    END_INTERFACE
3511} IChannelHookVtbl;
3512
3513interface IChannelHook {
3514    CONST_VTBL IChannelHookVtbl* lpVtbl;
3515};
3516
3517#ifdef COBJMACROS
3518#ifndef WIDL_C_INLINE_WRAPPERS
3519/*** IUnknown methods ***/
3520#define IChannelHook_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3521#define IChannelHook_AddRef(This) (This)->lpVtbl->AddRef(This)
3522#define IChannelHook_Release(This) (This)->lpVtbl->Release(This)
3523/*** IChannelHook methods ***/
3524#define IChannelHook_ClientGetSize(This,uExtent,riid,pDataSize) (This)->lpVtbl->ClientGetSize(This,uExtent,riid,pDataSize)
3525#define IChannelHook_ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer) (This)->lpVtbl->ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer)
3526#define IChannelHook_ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault) (This)->lpVtbl->ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault)
3527#define IChannelHook_ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep) (This)->lpVtbl->ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep)
3528#define IChannelHook_ServerGetSize(This,uExtent,riid,hrFault,pDataSize) (This)->lpVtbl->ServerGetSize(This,uExtent,riid,hrFault,pDataSize)
3529#define IChannelHook_ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault) (This)->lpVtbl->ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault)
3530#else
3531/*** IUnknown methods ***/
3532static inline HRESULT IChannelHook_QueryInterface(IChannelHook* This,REFIID riid,void **ppvObject) {
3533    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3534}
3535static inline ULONG IChannelHook_AddRef(IChannelHook* This) {
3536    return This->lpVtbl->AddRef(This);
3537}
3538static inline ULONG IChannelHook_Release(IChannelHook* This) {
3539    return This->lpVtbl->Release(This);
3540}
3541/*** IChannelHook methods ***/
3542static inline void IChannelHook_ClientGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize) {
3543    This->lpVtbl->ClientGetSize(This,uExtent,riid,pDataSize);
3544}
3545static inline void IChannelHook_ClientFillBuffer(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer) {
3546    This->lpVtbl->ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer);
3547}
3548static inline void IChannelHook_ClientNotify(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG cbDataSize,void *pDataBuffer,DWORD lDataRep,HRESULT hrFault) {
3549    This->lpVtbl->ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault);
3550}
3551static inline void IChannelHook_ServerNotify(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG cbDataSize,void *pDataBuffer,DWORD lDataRep) {
3552    This->lpVtbl->ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep);
3553}
3554static inline void IChannelHook_ServerGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,HRESULT hrFault,ULONG *pDataSize) {
3555    This->lpVtbl->ServerGetSize(This,uExtent,riid,hrFault,pDataSize);
3556}
3557static inline void IChannelHook_ServerFillBuffer(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer,HRESULT hrFault) {
3558    This->lpVtbl->ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault);
3559}
3560#endif
3561#endif
3562
3563#endif
3564
3565
3566#endif  /* __IChannelHook_INTERFACE_DEFINED__ */
3567
3568#endif
3569#endif
3570
3571#if  (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)
3572#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
3573/*****************************************************************************
3574 * IClientSecurity interface
3575 */
3576#ifndef __IClientSecurity_INTERFACE_DEFINED__
3577#define __IClientSecurity_INTERFACE_DEFINED__
3578
3579typedef struct tagSOLE_AUTHENTICATION_SERVICE {
3580    DWORD dwAuthnSvc;
3581    DWORD dwAuthzSvc;
3582    OLECHAR *pPrincipalName;
3583    HRESULT hr;
3584} SOLE_AUTHENTICATION_SERVICE;
3585
3586typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
3587
3588typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
3589    EOAC_NONE = 0x0,
3590    EOAC_MUTUAL_AUTH = 0x1,
3591    EOAC_STATIC_CLOAKING = 0x20,
3592    EOAC_DYNAMIC_CLOAKING = 0x40,
3593    EOAC_ANY_AUTHORITY = 0x80,
3594    EOAC_MAKE_FULLSIC = 0x100,
3595    EOAC_DEFAULT = 0x800,
3596    EOAC_SECURE_REFS = 0x2,
3597    EOAC_ACCESS_CONTROL = 0x4,
3598    EOAC_APPID = 0x8,
3599    EOAC_DYNAMIC = 0x10,
3600    EOAC_REQUIRE_FULLSIC = 0x200,
3601    EOAC_AUTO_IMPERSONATE = 0x400,
3602    EOAC_NO_CUSTOM_MARSHAL = 0x2000,
3603    EOAC_DISABLE_AAA = 0x1000
3604} EOLE_AUTHENTICATION_CAPABILITIES;
3605
3606#define COLE_DEFAULT_PRINCIPAL ((OLECHAR *)(INT_PTR)-1)
3607
3608#define COLE_DEFAULT_AUTHINFO ((void *)(INT_PTR)-1)
3609
3610
3611typedef struct tagSOLE_AUTHENTICATION_INFO {
3612    DWORD dwAuthnSvc;
3613    DWORD dwAuthzSvc;
3614    void *pAuthInfo;
3615} SOLE_AUTHENTICATION_INFO;
3616typedef struct tagSOLE_AUTHENTICATION_INFO *PSOLE_AUTHENTICATION_INFO;
3617
3618typedef struct tagSOLE_AUTHENTICATION_LIST {
3619    DWORD cAuthInfo;
3620    SOLE_AUTHENTICATION_INFO *aAuthInfo;
3621} SOLE_AUTHENTICATION_LIST;
3622typedef struct tagSOLE_AUTHENTICATION_LIST *PSOLE_AUTHENTICATION_LIST;
3623
3624DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3625#if defined(__cplusplus) && !defined(CINTERFACE)
3626MIDL_INTERFACE("0000013d-0000-0000-c000-000000000046")
3627IClientSecurity : public IUnknown
3628{
3629    virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
3630        IUnknown *pProxy,
3631        DWORD *pAuthnSvc,
3632        DWORD *pAuthzSvc,
3633        OLECHAR **pServerPrincName,
3634        DWORD *pAuthnLevel,
3635        DWORD *pImpLevel,
3636        void **pAuthInfo,
3637        DWORD *pCapabilites) = 0;
3638
3639    virtual HRESULT STDMETHODCALLTYPE SetBlanket(
3640        IUnknown *pProxy,
3641        DWORD dwAuthnSvc,
3642        DWORD dwAuthzSvc,
3643        OLECHAR *pServerPrincName,
3644        DWORD dwAuthnLevel,
3645        DWORD dwImpLevel,
3646        void *pAuthInfo,
3647        DWORD dwCapabilities) = 0;
3648
3649    virtual HRESULT STDMETHODCALLTYPE CopyProxy(
3650        IUnknown *pProxy,
3651        IUnknown **ppCopy) = 0;
3652
3653};
3654#ifdef __CRT_UUID_DECL
3655__CRT_UUID_DECL(IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
3656#endif
3657#else
3658typedef struct IClientSecurityVtbl {
3659    BEGIN_INTERFACE
3660
3661    /*** IUnknown methods ***/
3662    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3663        IClientSecurity *This,
3664        REFIID riid,
3665        void **ppvObject);
3666
3667    ULONG (STDMETHODCALLTYPE *AddRef)(
3668        IClientSecurity *This);
3669
3670    ULONG (STDMETHODCALLTYPE *Release)(
3671        IClientSecurity *This);
3672
3673    /*** IClientSecurity methods ***/
3674    HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
3675        IClientSecurity *This,
3676        IUnknown *pProxy,
3677        DWORD *pAuthnSvc,
3678        DWORD *pAuthzSvc,
3679        OLECHAR **pServerPrincName,
3680        DWORD *pAuthnLevel,
3681        DWORD *pImpLevel,
3682        void **pAuthInfo,
3683        DWORD *pCapabilites);
3684
3685    HRESULT (STDMETHODCALLTYPE *SetBlanket)(
3686        IClientSecurity *This,
3687        IUnknown *pProxy,
3688        DWORD dwAuthnSvc,
3689        DWORD dwAuthzSvc,
3690        OLECHAR *pServerPrincName,
3691        DWORD dwAuthnLevel,
3692        DWORD dwImpLevel,
3693        void *pAuthInfo,
3694        DWORD dwCapabilities);
3695
3696    HRESULT (STDMETHODCALLTYPE *CopyProxy)(
3697        IClientSecurity *This,
3698        IUnknown *pProxy,
3699        IUnknown **ppCopy);
3700
3701    END_INTERFACE
3702} IClientSecurityVtbl;
3703
3704interface IClientSecurity {
3705    CONST_VTBL IClientSecurityVtbl* lpVtbl;
3706};
3707
3708#ifdef COBJMACROS
3709#ifndef WIDL_C_INLINE_WRAPPERS
3710/*** IUnknown methods ***/
3711#define IClientSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3712#define IClientSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
3713#define IClientSecurity_Release(This) (This)->lpVtbl->Release(This)
3714/*** IClientSecurity methods ***/
3715#define IClientSecurity_QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites) (This)->lpVtbl->QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites)
3716#define IClientSecurity_SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities) (This)->lpVtbl->SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities)
3717#define IClientSecurity_CopyProxy(This,pProxy,ppCopy) (This)->lpVtbl->CopyProxy(This,pProxy,ppCopy)
3718#else
3719/*** IUnknown methods ***/
3720static inline HRESULT IClientSecurity_QueryInterface(IClientSecurity* This,REFIID riid,void **ppvObject) {
3721    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3722}
3723static inline ULONG IClientSecurity_AddRef(IClientSecurity* This) {
3724    return This->lpVtbl->AddRef(This);
3725}
3726static inline ULONG IClientSecurity_Release(IClientSecurity* This) {
3727    return This->lpVtbl->Release(This);
3728}
3729/*** IClientSecurity methods ***/
3730static inline HRESULT IClientSecurity_QueryBlanket(IClientSecurity* This,IUnknown *pProxy,DWORD *pAuthnSvc,DWORD *pAuthzSvc,OLECHAR **pServerPrincName,DWORD *pAuthnLevel,DWORD *pImpLevel,void **pAuthInfo,DWORD *pCapabilites) {
3731    return This->lpVtbl->QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites);
3732}
3733static inline HRESULT IClientSecurity_SetBlanket(IClientSecurity* This,IUnknown *pProxy,DWORD dwAuthnSvc,DWORD dwAuthzSvc,OLECHAR *pServerPrincName,DWORD dwAuthnLevel,DWORD dwImpLevel,void *pAuthInfo,DWORD dwCapabilities) {
3734    return This->lpVtbl->SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities);
3735}
3736static inline HRESULT IClientSecurity_CopyProxy(IClientSecurity* This,IUnknown *pProxy,IUnknown **ppCopy) {
3737    return This->lpVtbl->CopyProxy(This,pProxy,ppCopy);
3738}
3739#endif
3740#endif
3741
3742#endif
3743
3744
3745#endif  /* __IClientSecurity_INTERFACE_DEFINED__ */
3746
3747#endif
3748
3749#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
3750/*****************************************************************************
3751 * IServerSecurity interface
3752 */
3753#ifndef __IServerSecurity_INTERFACE_DEFINED__
3754#define __IServerSecurity_INTERFACE_DEFINED__
3755
3756DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3757#if defined(__cplusplus) && !defined(CINTERFACE)
3758MIDL_INTERFACE("0000013e-0000-0000-c000-000000000046")
3759IServerSecurity : public IUnknown
3760{
3761    virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
3762        DWORD *pAuthnSvc,
3763        DWORD *pAuthzSvc,
3764        OLECHAR **pServerPrincName,
3765        DWORD *pAuthnLevel,
3766        DWORD *pImpLevel,
3767        void **pPrivs,
3768        DWORD *pCapabilities) = 0;
3769
3770    virtual HRESULT STDMETHODCALLTYPE ImpersonateClient(
3771        ) = 0;
3772
3773    virtual HRESULT STDMETHODCALLTYPE RevertToSelf(
3774        ) = 0;
3775
3776    virtual WINBOOL STDMETHODCALLTYPE IsImpersonating(
3777        ) = 0;
3778
3779};
3780#ifdef __CRT_UUID_DECL
3781__CRT_UUID_DECL(IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
3782#endif
3783#else
3784typedef struct IServerSecurityVtbl {
3785    BEGIN_INTERFACE
3786
3787    /*** IUnknown methods ***/
3788    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3789        IServerSecurity *This,
3790        REFIID riid,
3791        void **ppvObject);
3792
3793    ULONG (STDMETHODCALLTYPE *AddRef)(
3794        IServerSecurity *This);
3795
3796    ULONG (STDMETHODCALLTYPE *Release)(
3797        IServerSecurity *This);
3798
3799    /*** IServerSecurity methods ***/
3800    HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
3801        IServerSecurity *This,
3802        DWORD *pAuthnSvc,
3803        DWORD *pAuthzSvc,
3804        OLECHAR **pServerPrincName,
3805        DWORD *pAuthnLevel,
3806        DWORD *pImpLevel,
3807        void **pPrivs,
3808        DWORD *pCapabilities);
3809
3810    HRESULT (STDMETHODCALLTYPE *ImpersonateClient)(
3811        IServerSecurity *This);
3812
3813    HRESULT (STDMETHODCALLTYPE *RevertToSelf)(
3814        IServerSecurity *This);
3815
3816    WINBOOL (STDMETHODCALLTYPE *IsImpersonating)(
3817        IServerSecurity *This);
3818
3819    END_INTERFACE
3820} IServerSecurityVtbl;
3821
3822interface IServerSecurity {
3823    CONST_VTBL IServerSecurityVtbl* lpVtbl;
3824};
3825
3826#ifdef COBJMACROS
3827#ifndef WIDL_C_INLINE_WRAPPERS
3828/*** IUnknown methods ***/
3829#define IServerSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3830#define IServerSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
3831#define IServerSecurity_Release(This) (This)->lpVtbl->Release(This)
3832/*** IServerSecurity methods ***/
3833#define IServerSecurity_QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities) (This)->lpVtbl->QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities)
3834#define IServerSecurity_ImpersonateClient(This) (This)->lpVtbl->ImpersonateClient(This)
3835#define IServerSecurity_RevertToSelf(This) (This)->lpVtbl->RevertToSelf(This)
3836#define IServerSecurity_IsImpersonating(This) (This)->lpVtbl->IsImpersonating(This)
3837#else
3838/*** IUnknown methods ***/
3839static inline HRESULT IServerSecurity_QueryInterface(IServerSecurity* This,REFIID riid,void **ppvObject) {
3840    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3841}
3842static inline ULONG IServerSecurity_AddRef(IServerSecurity* This) {
3843    return This->lpVtbl->AddRef(This);
3844}
3845static inline ULONG IServerSecurity_Release(IServerSecurity* This) {
3846    return This->lpVtbl->Release(This);
3847}
3848/*** IServerSecurity methods ***/
3849static inline HRESULT IServerSecurity_QueryBlanket(IServerSecurity* This,DWORD *pAuthnSvc,DWORD *pAuthzSvc,OLECHAR **pServerPrincName,DWORD *pAuthnLevel,DWORD *pImpLevel,void **pPrivs,DWORD *pCapabilities) {
3850    return This->lpVtbl->QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities);
3851}
3852static inline HRESULT IServerSecurity_ImpersonateClient(IServerSecurity* This) {
3853    return This->lpVtbl->ImpersonateClient(This);
3854}
3855static inline HRESULT IServerSecurity_RevertToSelf(IServerSecurity* This) {
3856    return This->lpVtbl->RevertToSelf(This);
3857}
3858static inline WINBOOL IServerSecurity_IsImpersonating(IServerSecurity* This) {
3859    return This->lpVtbl->IsImpersonating(This);
3860}
3861#endif
3862#endif
3863
3864#endif
3865
3866
3867#endif  /* __IServerSecurity_INTERFACE_DEFINED__ */
3868
3869
3870typedef enum tagRPCOPT_PROPERTIES {
3871    COMBND_RPCTIMEOUT = 0x1,
3872    COMBND_SERVER_LOCALITY = 0x2,
3873    COMBND_RESERVED1 = 0x4
3874} RPCOPT_PROPERTIES;
3875
3876typedef enum tagRPCOPT_SERVER_LOCALITY_VALUES {
3877    SERVER_LOCALITY_PROCESS_LOCAL = 0,
3878    SERVER_LOCALITY_MACHINE_LOCAL = 1,
3879    SERVER_LOCALITY_REMOTE = 2
3880} RPCOPT_SERVER_LOCALITY_VALUES;
3881
3882/*****************************************************************************
3883 * IRpcOptions interface
3884 */
3885#ifndef __IRpcOptions_INTERFACE_DEFINED__
3886#define __IRpcOptions_INTERFACE_DEFINED__
3887
3888DEFINE_GUID(IID_IRpcOptions, 0x00000144, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3889#if defined(__cplusplus) && !defined(CINTERFACE)
3890MIDL_INTERFACE("00000144-0000-0000-c000-000000000046")
3891IRpcOptions : public IUnknown
3892{
3893    virtual HRESULT STDMETHODCALLTYPE Set(
3894        IUnknown *pPrx,
3895        RPCOPT_PROPERTIES dwProperty,
3896        ULONG_PTR dwValue) = 0;
3897
3898    virtual HRESULT STDMETHODCALLTYPE Query(
3899        IUnknown *pPrx,
3900        RPCOPT_PROPERTIES dwProperty,
3901        ULONG_PTR *pdwValue) = 0;
3902
3903};
3904#ifdef __CRT_UUID_DECL
3905__CRT_UUID_DECL(IRpcOptions, 0x00000144, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
3906#endif
3907#else
3908typedef struct IRpcOptionsVtbl {
3909    BEGIN_INTERFACE
3910
3911    /*** IUnknown methods ***/
3912    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3913        IRpcOptions *This,
3914        REFIID riid,
3915        void **ppvObject);
3916
3917    ULONG (STDMETHODCALLTYPE *AddRef)(
3918        IRpcOptions *This);
3919
3920    ULONG (STDMETHODCALLTYPE *Release)(
3921        IRpcOptions *This);
3922
3923    /*** IRpcOptions methods ***/
3924    HRESULT (STDMETHODCALLTYPE *Set)(
3925        IRpcOptions *This,
3926        IUnknown *pPrx,
3927        RPCOPT_PROPERTIES dwProperty,
3928        ULONG_PTR dwValue);
3929
3930    HRESULT (STDMETHODCALLTYPE *Query)(
3931        IRpcOptions *This,
3932        IUnknown *pPrx,
3933        RPCOPT_PROPERTIES dwProperty,
3934        ULONG_PTR *pdwValue);
3935
3936    END_INTERFACE
3937} IRpcOptionsVtbl;
3938
3939interface IRpcOptions {
3940    CONST_VTBL IRpcOptionsVtbl* lpVtbl;
3941};
3942
3943#ifdef COBJMACROS
3944#ifndef WIDL_C_INLINE_WRAPPERS
3945/*** IUnknown methods ***/
3946#define IRpcOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3947#define IRpcOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
3948#define IRpcOptions_Release(This) (This)->lpVtbl->Release(This)
3949/*** IRpcOptions methods ***/
3950#define IRpcOptions_Set(This,pPrx,dwProperty,dwValue) (This)->lpVtbl->Set(This,pPrx,dwProperty,dwValue)
3951#define IRpcOptions_Query(This,pPrx,dwProperty,pdwValue) (This)->lpVtbl->Query(This,pPrx,dwProperty,pdwValue)
3952#else
3953/*** IUnknown methods ***/
3954static inline HRESULT IRpcOptions_QueryInterface(IRpcOptions* This,REFIID riid,void **ppvObject) {
3955    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3956}
3957static inline ULONG IRpcOptions_AddRef(IRpcOptions* This) {
3958    return This->lpVtbl->AddRef(This);
3959}
3960static inline ULONG IRpcOptions_Release(IRpcOptions* This) {
3961    return This->lpVtbl->Release(This);
3962}
3963/*** IRpcOptions methods ***/
3964static inline HRESULT IRpcOptions_Set(IRpcOptions* This,IUnknown *pPrx,RPCOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
3965    return This->lpVtbl->Set(This,pPrx,dwProperty,dwValue);
3966}
3967static inline HRESULT IRpcOptions_Query(IRpcOptions* This,IUnknown *pPrx,RPCOPT_PROPERTIES dwProperty,ULONG_PTR *pdwValue) {
3968    return This->lpVtbl->Query(This,pPrx,dwProperty,pdwValue);
3969}
3970#endif
3971#endif
3972
3973#endif
3974
3975
3976#endif  /* __IRpcOptions_INTERFACE_DEFINED__ */
3977
3978#endif
3979
3980#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
3981typedef enum tagGLOBALOPT_PROPERTIES {
3982    COMGLB_EXCEPTION_HANDLING = 1,
3983    COMGLB_APPID = 2,
3984    COMGLB_RPC_THREADPOOL_SETTING = 3,
3985    COMGLB_RO_SETTINGS = 4,
3986    COMGLB_UNMARSHALING_POLICY = 5
3987} GLOBALOPT_PROPERTIES;
3988
3989typedef enum tagGLOBALOPT_EH_VALUES {
3990    COMGLB_EXCEPTION_HANDLE = 0,
3991    COMGLB_EXCEPTION_DONOT_HANDLE_FATAL = 1,
3992    COMGLB_EXCEPTION_DONOT_HANDLE = COMGLB_EXCEPTION_DONOT_HANDLE_FATAL,
3993    COMGLB_EXCEPTION_DONOT_HANDLE_ANY = 2
3994} GLOBALOPT_EH_VALUES;
3995
3996typedef enum tagGLOBALOPT_RPCTP_VALUES {
3997    COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL = 0,
3998    COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL = 1
3999} GLOBALOPT_RPCTP_VALUES;
4000
4001typedef enum tagGLOBALOPT_RO_FLAGS {
4002    COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES = 0x1,
4003    COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES = 0x2,
4004    COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES = 0x4,
4005    COMGLB_FAST_RUNDOWN = 0x8,
4006    COMGLB_RESERVED1 = 0x10,
4007    COMGLB_RESERVED2 = 0x20,
4008    COMGLB_RESERVED3 = 0x40,
4009    COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES = 0x80
4010} GLOBALOPT_RO_FLAGS;
4011
4012typedef enum tagGLOBALOPT_UNMARSHALING_POLICY_VALUES {
4013    COMGLB_UNMARSHALING_POLICY_NORMAL = 0,
4014    COMGLB_UNMARSHALING_POLICY_STRONG = 1,
4015    COMGLB_UNMARSHALING_POLICY_HYBRID = 2
4016} GLOBALOPT_UNMARSHALING_POLICY_VALUES;
4017
4018/*****************************************************************************
4019 * IGlobalOptions interface
4020 */
4021#ifndef __IGlobalOptions_INTERFACE_DEFINED__
4022#define __IGlobalOptions_INTERFACE_DEFINED__
4023
4024DEFINE_GUID(IID_IGlobalOptions, 0x0000015b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4025#if defined(__cplusplus) && !defined(CINTERFACE)
4026MIDL_INTERFACE("0000015b-0000-0000-c000-000000000046")
4027IGlobalOptions : public IUnknown
4028{
4029    virtual HRESULT STDMETHODCALLTYPE Set(
4030        GLOBALOPT_PROPERTIES dwProperty,
4031        ULONG_PTR dwValue) = 0;
4032
4033    virtual HRESULT STDMETHODCALLTYPE Query(
4034        GLOBALOPT_PROPERTIES dwProperty,
4035        ULONG_PTR *pdwValue) = 0;
4036
4037};
4038#ifdef __CRT_UUID_DECL
4039__CRT_UUID_DECL(IGlobalOptions, 0x0000015b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4040#endif
4041#else
4042typedef struct IGlobalOptionsVtbl {
4043    BEGIN_INTERFACE
4044
4045    /*** IUnknown methods ***/
4046    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4047        IGlobalOptions *This,
4048        REFIID riid,
4049        void **ppvObject);
4050
4051    ULONG (STDMETHODCALLTYPE *AddRef)(
4052        IGlobalOptions *This);
4053
4054    ULONG (STDMETHODCALLTYPE *Release)(
4055        IGlobalOptions *This);
4056
4057    /*** IGlobalOptions methods ***/
4058    HRESULT (STDMETHODCALLTYPE *Set)(
4059        IGlobalOptions *This,
4060        GLOBALOPT_PROPERTIES dwProperty,
4061        ULONG_PTR dwValue);
4062
4063    HRESULT (STDMETHODCALLTYPE *Query)(
4064        IGlobalOptions *This,
4065        GLOBALOPT_PROPERTIES dwProperty,
4066        ULONG_PTR *pdwValue);
4067
4068    END_INTERFACE
4069} IGlobalOptionsVtbl;
4070
4071interface IGlobalOptions {
4072    CONST_VTBL IGlobalOptionsVtbl* lpVtbl;
4073};
4074
4075#ifdef COBJMACROS
4076#ifndef WIDL_C_INLINE_WRAPPERS
4077/*** IUnknown methods ***/
4078#define IGlobalOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4079#define IGlobalOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
4080#define IGlobalOptions_Release(This) (This)->lpVtbl->Release(This)
4081/*** IGlobalOptions methods ***/
4082#define IGlobalOptions_Set(This,dwProperty,dwValue) (This)->lpVtbl->Set(This,dwProperty,dwValue)
4083#define IGlobalOptions_Query(This,dwProperty,pdwValue) (This)->lpVtbl->Query(This,dwProperty,pdwValue)
4084#else
4085/*** IUnknown methods ***/
4086static inline HRESULT IGlobalOptions_QueryInterface(IGlobalOptions* This,REFIID riid,void **ppvObject) {
4087    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4088}
4089static inline ULONG IGlobalOptions_AddRef(IGlobalOptions* This) {
4090    return This->lpVtbl->AddRef(This);
4091}
4092static inline ULONG IGlobalOptions_Release(IGlobalOptions* This) {
4093    return This->lpVtbl->Release(This);
4094}
4095/*** IGlobalOptions methods ***/
4096static inline HRESULT IGlobalOptions_Set(IGlobalOptions* This,GLOBALOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
4097    return This->lpVtbl->Set(This,dwProperty,dwValue);
4098}
4099static inline HRESULT IGlobalOptions_Query(IGlobalOptions* This,GLOBALOPT_PROPERTIES dwProperty,ULONG_PTR *pdwValue) {
4100    return This->lpVtbl->Query(This,dwProperty,pdwValue);
4101}
4102#endif
4103#endif
4104
4105#endif
4106
4107
4108#endif  /* __IGlobalOptions_INTERFACE_DEFINED__ */
4109
4110#endif
4111#endif
4112
4113#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
4114/*****************************************************************************
4115 * ISurrogate interface
4116 */
4117#ifndef __ISurrogate_INTERFACE_DEFINED__
4118#define __ISurrogate_INTERFACE_DEFINED__
4119
4120typedef ISurrogate *LPSURROGATE;
4121
4122DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4123#if defined(__cplusplus) && !defined(CINTERFACE)
4124MIDL_INTERFACE("00000022-0000-0000-c000-000000000046")
4125ISurrogate : public IUnknown
4126{
4127    virtual HRESULT STDMETHODCALLTYPE LoadDllServer(
4128        REFCLSID Clsid) = 0;
4129
4130    virtual HRESULT STDMETHODCALLTYPE FreeSurrogate(
4131        ) = 0;
4132
4133};
4134#ifdef __CRT_UUID_DECL
4135__CRT_UUID_DECL(ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4136#endif
4137#else
4138typedef struct ISurrogateVtbl {
4139    BEGIN_INTERFACE
4140
4141    /*** IUnknown methods ***/
4142    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4143        ISurrogate *This,
4144        REFIID riid,
4145        void **ppvObject);
4146
4147    ULONG (STDMETHODCALLTYPE *AddRef)(
4148        ISurrogate *This);
4149
4150    ULONG (STDMETHODCALLTYPE *Release)(
4151        ISurrogate *This);
4152
4153    /*** ISurrogate methods ***/
4154    HRESULT (STDMETHODCALLTYPE *LoadDllServer)(
4155        ISurrogate *This,
4156        REFCLSID Clsid);
4157
4158    HRESULT (STDMETHODCALLTYPE *FreeSurrogate)(
4159        ISurrogate *This);
4160
4161    END_INTERFACE
4162} ISurrogateVtbl;
4163
4164interface ISurrogate {
4165    CONST_VTBL ISurrogateVtbl* lpVtbl;
4166};
4167
4168#ifdef COBJMACROS
4169#ifndef WIDL_C_INLINE_WRAPPERS
4170/*** IUnknown methods ***/
4171#define ISurrogate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4172#define ISurrogate_AddRef(This) (This)->lpVtbl->AddRef(This)
4173#define ISurrogate_Release(This) (This)->lpVtbl->Release(This)
4174/*** ISurrogate methods ***/
4175#define ISurrogate_LoadDllServer(This,Clsid) (This)->lpVtbl->LoadDllServer(This,Clsid)
4176#define ISurrogate_FreeSurrogate(This) (This)->lpVtbl->FreeSurrogate(This)
4177#else
4178/*** IUnknown methods ***/
4179static inline HRESULT ISurrogate_QueryInterface(ISurrogate* This,REFIID riid,void **ppvObject) {
4180    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4181}
4182static inline ULONG ISurrogate_AddRef(ISurrogate* This) {
4183    return This->lpVtbl->AddRef(This);
4184}
4185static inline ULONG ISurrogate_Release(ISurrogate* This) {
4186    return This->lpVtbl->Release(This);
4187}
4188/*** ISurrogate methods ***/
4189static inline HRESULT ISurrogate_LoadDllServer(ISurrogate* This,REFCLSID Clsid) {
4190    return This->lpVtbl->LoadDllServer(This,Clsid);
4191}
4192static inline HRESULT ISurrogate_FreeSurrogate(ISurrogate* This) {
4193    return This->lpVtbl->FreeSurrogate(This);
4194}
4195#endif
4196#endif
4197
4198#endif
4199
4200
4201#endif  /* __ISurrogate_INTERFACE_DEFINED__ */
4202
4203
4204/*****************************************************************************
4205 * IGlobalInterfaceTable interface
4206 */
4207#ifndef __IGlobalInterfaceTable_INTERFACE_DEFINED__
4208#define __IGlobalInterfaceTable_INTERFACE_DEFINED__
4209
4210typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
4211
4212DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4213#if defined(__cplusplus) && !defined(CINTERFACE)
4214MIDL_INTERFACE("00000146-0000-0000-c000-000000000046")
4215IGlobalInterfaceTable : public IUnknown
4216{
4217    virtual HRESULT STDMETHODCALLTYPE RegisterInterfaceInGlobal(
4218        IUnknown *pUnk,
4219        REFIID riid,
4220        DWORD *pdwCookie) = 0;
4221
4222    virtual HRESULT STDMETHODCALLTYPE RevokeInterfaceFromGlobal(
4223        DWORD dwCookie) = 0;
4224
4225    virtual HRESULT STDMETHODCALLTYPE GetInterfaceFromGlobal(
4226        DWORD dwCookie,
4227        REFIID riid,
4228        void **ppv) = 0;
4229
4230};
4231#ifdef __CRT_UUID_DECL
4232__CRT_UUID_DECL(IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4233#endif
4234#else
4235typedef struct IGlobalInterfaceTableVtbl {
4236    BEGIN_INTERFACE
4237
4238    /*** IUnknown methods ***/
4239    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4240        IGlobalInterfaceTable *This,
4241        REFIID riid,
4242        void **ppvObject);
4243
4244    ULONG (STDMETHODCALLTYPE *AddRef)(
4245        IGlobalInterfaceTable *This);
4246
4247    ULONG (STDMETHODCALLTYPE *Release)(
4248        IGlobalInterfaceTable *This);
4249
4250    /*** IGlobalInterfaceTable methods ***/
4251    HRESULT (STDMETHODCALLTYPE *RegisterInterfaceInGlobal)(
4252        IGlobalInterfaceTable *This,
4253        IUnknown *pUnk,
4254        REFIID riid,
4255        DWORD *pdwCookie);
4256
4257    HRESULT (STDMETHODCALLTYPE *RevokeInterfaceFromGlobal)(
4258        IGlobalInterfaceTable *This,
4259        DWORD dwCookie);
4260
4261    HRESULT (STDMETHODCALLTYPE *GetInterfaceFromGlobal)(
4262        IGlobalInterfaceTable *This,
4263        DWORD dwCookie,
4264        REFIID riid,
4265        void **ppv);
4266
4267    END_INTERFACE
4268} IGlobalInterfaceTableVtbl;
4269
4270interface IGlobalInterfaceTable {
4271    CONST_VTBL IGlobalInterfaceTableVtbl* lpVtbl;
4272};
4273
4274#ifdef COBJMACROS
4275#ifndef WIDL_C_INLINE_WRAPPERS
4276/*** IUnknown methods ***/
4277#define IGlobalInterfaceTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4278#define IGlobalInterfaceTable_AddRef(This) (This)->lpVtbl->AddRef(This)
4279#define IGlobalInterfaceTable_Release(This) (This)->lpVtbl->Release(This)
4280/*** IGlobalInterfaceTable methods ***/
4281#define IGlobalInterfaceTable_RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie) (This)->lpVtbl->RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie)
4282#define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(This,dwCookie) (This)->lpVtbl->RevokeInterfaceFromGlobal(This,dwCookie)
4283#define IGlobalInterfaceTable_GetInterfaceFromGlobal(This,dwCookie,riid,ppv) (This)->lpVtbl->GetInterfaceFromGlobal(This,dwCookie,riid,ppv)
4284#else
4285/*** IUnknown methods ***/
4286static inline HRESULT IGlobalInterfaceTable_QueryInterface(IGlobalInterfaceTable* This,REFIID riid,void **ppvObject) {
4287    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4288}
4289static inline ULONG IGlobalInterfaceTable_AddRef(IGlobalInterfaceTable* This) {
4290    return This->lpVtbl->AddRef(This);
4291}
4292static inline ULONG IGlobalInterfaceTable_Release(IGlobalInterfaceTable* This) {
4293    return This->lpVtbl->Release(This);
4294}
4295/*** IGlobalInterfaceTable methods ***/
4296static inline HRESULT IGlobalInterfaceTable_RegisterInterfaceInGlobal(IGlobalInterfaceTable* This,IUnknown *pUnk,REFIID riid,DWORD *pdwCookie) {
4297    return This->lpVtbl->RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie);
4298}
4299static inline HRESULT IGlobalInterfaceTable_RevokeInterfaceFromGlobal(IGlobalInterfaceTable* This,DWORD dwCookie) {
4300    return This->lpVtbl->RevokeInterfaceFromGlobal(This,dwCookie);
4301}
4302static inline HRESULT IGlobalInterfaceTable_GetInterfaceFromGlobal(IGlobalInterfaceTable* This,DWORD dwCookie,REFIID riid,void **ppv) {
4303    return This->lpVtbl->GetInterfaceFromGlobal(This,dwCookie,riid,ppv);
4304}
4305#endif
4306#endif
4307
4308#endif
4309
4310
4311#endif  /* __IGlobalInterfaceTable_INTERFACE_DEFINED__ */
4312
4313#endif
4314
4315#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
4316/*****************************************************************************
4317 * ISynchronize interface
4318 */
4319#ifndef __ISynchronize_INTERFACE_DEFINED__
4320#define __ISynchronize_INTERFACE_DEFINED__
4321
4322DEFINE_GUID(IID_ISynchronize, 0x00000030, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4323#if defined(__cplusplus) && !defined(CINTERFACE)
4324MIDL_INTERFACE("00000030-0000-0000-c000-000000000046")
4325ISynchronize : public IUnknown
4326{
4327    virtual HRESULT STDMETHODCALLTYPE Wait(
4328        DWORD dwFlags,
4329        DWORD dwMilliseconds) = 0;
4330
4331    virtual HRESULT STDMETHODCALLTYPE Signal(
4332        ) = 0;
4333
4334    virtual HRESULT STDMETHODCALLTYPE Reset(
4335        ) = 0;
4336
4337};
4338#ifdef __CRT_UUID_DECL
4339__CRT_UUID_DECL(ISynchronize, 0x00000030, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4340#endif
4341#else
4342typedef struct ISynchronizeVtbl {
4343    BEGIN_INTERFACE
4344
4345    /*** IUnknown methods ***/
4346    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4347        ISynchronize *This,
4348        REFIID riid,
4349        void **ppvObject);
4350
4351    ULONG (STDMETHODCALLTYPE *AddRef)(
4352        ISynchronize *This);
4353
4354    ULONG (STDMETHODCALLTYPE *Release)(
4355        ISynchronize *This);
4356
4357    /*** ISynchronize methods ***/
4358    HRESULT (STDMETHODCALLTYPE *Wait)(
4359        ISynchronize *This,
4360        DWORD dwFlags,
4361        DWORD dwMilliseconds);
4362
4363    HRESULT (STDMETHODCALLTYPE *Signal)(
4364        ISynchronize *This);
4365
4366    HRESULT (STDMETHODCALLTYPE *Reset)(
4367        ISynchronize *This);
4368
4369    END_INTERFACE
4370} ISynchronizeVtbl;
4371
4372interface ISynchronize {
4373    CONST_VTBL ISynchronizeVtbl* lpVtbl;
4374};
4375
4376#ifdef COBJMACROS
4377#ifndef WIDL_C_INLINE_WRAPPERS
4378/*** IUnknown methods ***/
4379#define ISynchronize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4380#define ISynchronize_AddRef(This) (This)->lpVtbl->AddRef(This)
4381#define ISynchronize_Release(This) (This)->lpVtbl->Release(This)
4382/*** ISynchronize methods ***/
4383#define ISynchronize_Wait(This,dwFlags,dwMilliseconds) (This)->lpVtbl->Wait(This,dwFlags,dwMilliseconds)
4384#define ISynchronize_Signal(This) (This)->lpVtbl->Signal(This)
4385#define ISynchronize_Reset(This) (This)->lpVtbl->Reset(This)
4386#else
4387/*** IUnknown methods ***/
4388static inline HRESULT ISynchronize_QueryInterface(ISynchronize* This,REFIID riid,void **ppvObject) {
4389    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4390}
4391static inline ULONG ISynchronize_AddRef(ISynchronize* This) {
4392    return This->lpVtbl->AddRef(This);
4393}
4394static inline ULONG ISynchronize_Release(ISynchronize* This) {
4395    return This->lpVtbl->Release(This);
4396}
4397/*** ISynchronize methods ***/
4398static inline HRESULT ISynchronize_Wait(ISynchronize* This,DWORD dwFlags,DWORD dwMilliseconds) {
4399    return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
4400}
4401static inline HRESULT ISynchronize_Signal(ISynchronize* This) {
4402    return This->lpVtbl->Signal(This);
4403}
4404static inline HRESULT ISynchronize_Reset(ISynchronize* This) {
4405    return This->lpVtbl->Reset(This);
4406}
4407#endif
4408#endif
4409
4410#endif
4411
4412
4413#endif  /* __ISynchronize_INTERFACE_DEFINED__ */
4414
4415
4416/*****************************************************************************
4417 * ISynchronizeHandle interface
4418 */
4419#ifndef __ISynchronizeHandle_INTERFACE_DEFINED__
4420#define __ISynchronizeHandle_INTERFACE_DEFINED__
4421
4422DEFINE_GUID(IID_ISynchronizeHandle, 0x00000031, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4423#if defined(__cplusplus) && !defined(CINTERFACE)
4424MIDL_INTERFACE("00000031-0000-0000-c000-000000000046")
4425ISynchronizeHandle : public IUnknown
4426{
4427    virtual HRESULT STDMETHODCALLTYPE GetHandle(
4428        HANDLE *ph) = 0;
4429
4430};
4431#ifdef __CRT_UUID_DECL
4432__CRT_UUID_DECL(ISynchronizeHandle, 0x00000031, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4433#endif
4434#else
4435typedef struct ISynchronizeHandleVtbl {
4436    BEGIN_INTERFACE
4437
4438    /*** IUnknown methods ***/
4439    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4440        ISynchronizeHandle *This,
4441        REFIID riid,
4442        void **ppvObject);
4443
4444    ULONG (STDMETHODCALLTYPE *AddRef)(
4445        ISynchronizeHandle *This);
4446
4447    ULONG (STDMETHODCALLTYPE *Release)(
4448        ISynchronizeHandle *This);
4449
4450    /*** ISynchronizeHandle methods ***/
4451    HRESULT (STDMETHODCALLTYPE *GetHandle)(
4452        ISynchronizeHandle *This,
4453        HANDLE *ph);
4454
4455    END_INTERFACE
4456} ISynchronizeHandleVtbl;
4457
4458interface ISynchronizeHandle {
4459    CONST_VTBL ISynchronizeHandleVtbl* lpVtbl;
4460};
4461
4462#ifdef COBJMACROS
4463#ifndef WIDL_C_INLINE_WRAPPERS
4464/*** IUnknown methods ***/
4465#define ISynchronizeHandle_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4466#define ISynchronizeHandle_AddRef(This) (This)->lpVtbl->AddRef(This)
4467#define ISynchronizeHandle_Release(This) (This)->lpVtbl->Release(This)
4468/*** ISynchronizeHandle methods ***/
4469#define ISynchronizeHandle_GetHandle(This,ph) (This)->lpVtbl->GetHandle(This,ph)
4470#else
4471/*** IUnknown methods ***/
4472static inline HRESULT ISynchronizeHandle_QueryInterface(ISynchronizeHandle* This,REFIID riid,void **ppvObject) {
4473    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4474}
4475static inline ULONG ISynchronizeHandle_AddRef(ISynchronizeHandle* This) {
4476    return This->lpVtbl->AddRef(This);
4477}
4478static inline ULONG ISynchronizeHandle_Release(ISynchronizeHandle* This) {
4479    return This->lpVtbl->Release(This);
4480}
4481/*** ISynchronizeHandle methods ***/
4482static inline HRESULT ISynchronizeHandle_GetHandle(ISynchronizeHandle* This,HANDLE *ph) {
4483    return This->lpVtbl->GetHandle(This,ph);
4484}
4485#endif
4486#endif
4487
4488#endif
4489
4490
4491#endif  /* __ISynchronizeHandle_INTERFACE_DEFINED__ */
4492
4493
4494/*****************************************************************************
4495 * ISynchronizeEvent interface
4496 */
4497#ifndef __ISynchronizeEvent_INTERFACE_DEFINED__
4498#define __ISynchronizeEvent_INTERFACE_DEFINED__
4499
4500DEFINE_GUID(IID_ISynchronizeEvent, 0x00000032, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4501#if defined(__cplusplus) && !defined(CINTERFACE)
4502MIDL_INTERFACE("00000032-0000-0000-c000-000000000046")
4503ISynchronizeEvent : public ISynchronizeHandle
4504{
4505    virtual HRESULT STDMETHODCALLTYPE SetEventHandle(
4506        HANDLE *ph) = 0;
4507
4508};
4509#ifdef __CRT_UUID_DECL
4510__CRT_UUID_DECL(ISynchronizeEvent, 0x00000032, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4511#endif
4512#else
4513typedef struct ISynchronizeEventVtbl {
4514    BEGIN_INTERFACE
4515
4516    /*** IUnknown methods ***/
4517    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4518        ISynchronizeEvent *This,
4519        REFIID riid,
4520        void **ppvObject);
4521
4522    ULONG (STDMETHODCALLTYPE *AddRef)(
4523        ISynchronizeEvent *This);
4524
4525    ULONG (STDMETHODCALLTYPE *Release)(
4526        ISynchronizeEvent *This);
4527
4528    /*** ISynchronizeHandle methods ***/
4529    HRESULT (STDMETHODCALLTYPE *GetHandle)(
4530        ISynchronizeEvent *This,
4531        HANDLE *ph);
4532
4533    /*** ISynchronizeEvent methods ***/
4534    HRESULT (STDMETHODCALLTYPE *SetEventHandle)(
4535        ISynchronizeEvent *This,
4536        HANDLE *ph);
4537
4538    END_INTERFACE
4539} ISynchronizeEventVtbl;
4540
4541interface ISynchronizeEvent {
4542    CONST_VTBL ISynchronizeEventVtbl* lpVtbl;
4543};
4544
4545#ifdef COBJMACROS
4546#ifndef WIDL_C_INLINE_WRAPPERS
4547/*** IUnknown methods ***/
4548#define ISynchronizeEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4549#define ISynchronizeEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
4550#define ISynchronizeEvent_Release(This) (This)->lpVtbl->Release(This)
4551/*** ISynchronizeHandle methods ***/
4552#define ISynchronizeEvent_GetHandle(This,ph) (This)->lpVtbl->GetHandle(This,ph)
4553/*** ISynchronizeEvent methods ***/
4554#define ISynchronizeEvent_SetEventHandle(This,ph) (This)->lpVtbl->SetEventHandle(This,ph)
4555#else
4556/*** IUnknown methods ***/
4557static inline HRESULT ISynchronizeEvent_QueryInterface(ISynchronizeEvent* This,REFIID riid,void **ppvObject) {
4558    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4559}
4560static inline ULONG ISynchronizeEvent_AddRef(ISynchronizeEvent* This) {
4561    return This->lpVtbl->AddRef(This);
4562}
4563static inline ULONG ISynchronizeEvent_Release(ISynchronizeEvent* This) {
4564    return This->lpVtbl->Release(This);
4565}
4566/*** ISynchronizeHandle methods ***/
4567static inline HRESULT ISynchronizeEvent_GetHandle(ISynchronizeEvent* This,HANDLE *ph) {
4568    return This->lpVtbl->GetHandle(This,ph);
4569}
4570/*** ISynchronizeEvent methods ***/
4571static inline HRESULT ISynchronizeEvent_SetEventHandle(ISynchronizeEvent* This,HANDLE *ph) {
4572    return This->lpVtbl->SetEventHandle(This,ph);
4573}
4574#endif
4575#endif
4576
4577#endif
4578
4579
4580#endif  /* __ISynchronizeEvent_INTERFACE_DEFINED__ */
4581
4582
4583/*****************************************************************************
4584 * ISynchronizeContainer interface
4585 */
4586#ifndef __ISynchronizeContainer_INTERFACE_DEFINED__
4587#define __ISynchronizeContainer_INTERFACE_DEFINED__
4588
4589DEFINE_GUID(IID_ISynchronizeContainer, 0x00000033, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4590#if defined(__cplusplus) && !defined(CINTERFACE)
4591MIDL_INTERFACE("00000033-0000-0000-c000-000000000046")
4592ISynchronizeContainer : public IUnknown
4593{
4594    virtual HRESULT STDMETHODCALLTYPE AddSynchronize(
4595        ISynchronize *pSync) = 0;
4596
4597    virtual HRESULT STDMETHODCALLTYPE WaitMultiple(
4598        DWORD dwFlags,
4599        DWORD dwTimeOut,
4600        ISynchronize **ppSync) = 0;
4601
4602};
4603#ifdef __CRT_UUID_DECL
4604__CRT_UUID_DECL(ISynchronizeContainer, 0x00000033, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4605#endif
4606#else
4607typedef struct ISynchronizeContainerVtbl {
4608    BEGIN_INTERFACE
4609
4610    /*** IUnknown methods ***/
4611    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4612        ISynchronizeContainer *This,
4613        REFIID riid,
4614        void **ppvObject);
4615
4616    ULONG (STDMETHODCALLTYPE *AddRef)(
4617        ISynchronizeContainer *This);
4618
4619    ULONG (STDMETHODCALLTYPE *Release)(
4620        ISynchronizeContainer *This);
4621
4622    /*** ISynchronizeContainer methods ***/
4623    HRESULT (STDMETHODCALLTYPE *AddSynchronize)(
4624        ISynchronizeContainer *This,
4625        ISynchronize *pSync);
4626
4627    HRESULT (STDMETHODCALLTYPE *WaitMultiple)(
4628        ISynchronizeContainer *This,
4629        DWORD dwFlags,
4630        DWORD dwTimeOut,
4631        ISynchronize **ppSync);
4632
4633    END_INTERFACE
4634} ISynchronizeContainerVtbl;
4635
4636interface ISynchronizeContainer {
4637    CONST_VTBL ISynchronizeContainerVtbl* lpVtbl;
4638};
4639
4640#ifdef COBJMACROS
4641#ifndef WIDL_C_INLINE_WRAPPERS
4642/*** IUnknown methods ***/
4643#define ISynchronizeContainer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4644#define ISynchronizeContainer_AddRef(This) (This)->lpVtbl->AddRef(This)
4645#define ISynchronizeContainer_Release(This) (This)->lpVtbl->Release(This)
4646/*** ISynchronizeContainer methods ***/
4647#define ISynchronizeContainer_AddSynchronize(This,pSync) (This)->lpVtbl->AddSynchronize(This,pSync)
4648#define ISynchronizeContainer_WaitMultiple(This,dwFlags,dwTimeOut,ppSync) (This)->lpVtbl->WaitMultiple(This,dwFlags,dwTimeOut,ppSync)
4649#else
4650/*** IUnknown methods ***/
4651static inline HRESULT ISynchronizeContainer_QueryInterface(ISynchronizeContainer* This,REFIID riid,void **ppvObject) {
4652    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4653}
4654static inline ULONG ISynchronizeContainer_AddRef(ISynchronizeContainer* This) {
4655    return This->lpVtbl->AddRef(This);
4656}
4657static inline ULONG ISynchronizeContainer_Release(ISynchronizeContainer* This) {
4658    return This->lpVtbl->Release(This);
4659}
4660/*** ISynchronizeContainer methods ***/
4661static inline HRESULT ISynchronizeContainer_AddSynchronize(ISynchronizeContainer* This,ISynchronize *pSync) {
4662    return This->lpVtbl->AddSynchronize(This,pSync);
4663}
4664static inline HRESULT ISynchronizeContainer_WaitMultiple(ISynchronizeContainer* This,DWORD dwFlags,DWORD dwTimeOut,ISynchronize **ppSync) {
4665    return This->lpVtbl->WaitMultiple(This,dwFlags,dwTimeOut,ppSync);
4666}
4667#endif
4668#endif
4669
4670#endif
4671
4672
4673#endif  /* __ISynchronizeContainer_INTERFACE_DEFINED__ */
4674
4675
4676/*****************************************************************************
4677 * ISynchronizeMutex interface
4678 */
4679#ifndef __ISynchronizeMutex_INTERFACE_DEFINED__
4680#define __ISynchronizeMutex_INTERFACE_DEFINED__
4681
4682DEFINE_GUID(IID_ISynchronizeMutex, 0x00000025, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4683#if defined(__cplusplus) && !defined(CINTERFACE)
4684MIDL_INTERFACE("00000025-0000-0000-c000-000000000046")
4685ISynchronizeMutex : public ISynchronize
4686{
4687    virtual HRESULT STDMETHODCALLTYPE ReleaseMutex(
4688        ) = 0;
4689
4690};
4691#ifdef __CRT_UUID_DECL
4692__CRT_UUID_DECL(ISynchronizeMutex, 0x00000025, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4693#endif
4694#else
4695typedef struct ISynchronizeMutexVtbl {
4696    BEGIN_INTERFACE
4697
4698    /*** IUnknown methods ***/
4699    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4700        ISynchronizeMutex *This,
4701        REFIID riid,
4702        void **ppvObject);
4703
4704    ULONG (STDMETHODCALLTYPE *AddRef)(
4705        ISynchronizeMutex *This);
4706
4707    ULONG (STDMETHODCALLTYPE *Release)(
4708        ISynchronizeMutex *This);
4709
4710    /*** ISynchronize methods ***/
4711    HRESULT (STDMETHODCALLTYPE *Wait)(
4712        ISynchronizeMutex *This,
4713        DWORD dwFlags,
4714        DWORD dwMilliseconds);
4715
4716    HRESULT (STDMETHODCALLTYPE *Signal)(
4717        ISynchronizeMutex *This);
4718
4719    HRESULT (STDMETHODCALLTYPE *Reset)(
4720        ISynchronizeMutex *This);
4721
4722    /*** ISynchronizeMutex methods ***/
4723    HRESULT (STDMETHODCALLTYPE *ReleaseMutex)(
4724        ISynchronizeMutex *This);
4725
4726    END_INTERFACE
4727} ISynchronizeMutexVtbl;
4728
4729interface ISynchronizeMutex {
4730    CONST_VTBL ISynchronizeMutexVtbl* lpVtbl;
4731};
4732
4733#ifdef COBJMACROS
4734#ifndef WIDL_C_INLINE_WRAPPERS
4735/*** IUnknown methods ***/
4736#define ISynchronizeMutex_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4737#define ISynchronizeMutex_AddRef(This) (This)->lpVtbl->AddRef(This)
4738#define ISynchronizeMutex_Release(This) (This)->lpVtbl->Release(This)
4739/*** ISynchronize methods ***/
4740#define ISynchronizeMutex_Wait(This,dwFlags,dwMilliseconds) (This)->lpVtbl->Wait(This,dwFlags,dwMilliseconds)
4741#define ISynchronizeMutex_Signal(This) (This)->lpVtbl->Signal(This)
4742#define ISynchronizeMutex_Reset(This) (This)->lpVtbl->Reset(This)
4743/*** ISynchronizeMutex methods ***/
4744#define ISynchronizeMutex_ReleaseMutex(This) (This)->lpVtbl->ReleaseMutex(This)
4745#else
4746/*** IUnknown methods ***/
4747static inline HRESULT ISynchronizeMutex_QueryInterface(ISynchronizeMutex* This,REFIID riid,void **ppvObject) {
4748    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4749}
4750static inline ULONG ISynchronizeMutex_AddRef(ISynchronizeMutex* This) {
4751    return This->lpVtbl->AddRef(This);
4752}
4753static inline ULONG ISynchronizeMutex_Release(ISynchronizeMutex* This) {
4754    return This->lpVtbl->Release(This);
4755}
4756/*** ISynchronize methods ***/
4757static inline HRESULT ISynchronizeMutex_Wait(ISynchronizeMutex* This,DWORD dwFlags,DWORD dwMilliseconds) {
4758    return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
4759}
4760static inline HRESULT ISynchronizeMutex_Signal(ISynchronizeMutex* This) {
4761    return This->lpVtbl->Signal(This);
4762}
4763static inline HRESULT ISynchronizeMutex_Reset(ISynchronizeMutex* This) {
4764    return This->lpVtbl->Reset(This);
4765}
4766/*** ISynchronizeMutex methods ***/
4767static inline HRESULT ISynchronizeMutex_ReleaseMutex(ISynchronizeMutex* This) {
4768    return This->lpVtbl->ReleaseMutex(This);
4769}
4770#endif
4771#endif
4772
4773#endif
4774
4775
4776#endif  /* __ISynchronizeMutex_INTERFACE_DEFINED__ */
4777
4778
4779/*****************************************************************************
4780 * ICancelMethodCalls interface
4781 */
4782#ifndef __ICancelMethodCalls_INTERFACE_DEFINED__
4783#define __ICancelMethodCalls_INTERFACE_DEFINED__
4784
4785typedef ICancelMethodCalls *LPCANCELMETHODCALLS;
4786
4787DEFINE_GUID(IID_ICancelMethodCalls, 0x00000029, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4788#if defined(__cplusplus) && !defined(CINTERFACE)
4789MIDL_INTERFACE("00000029-0000-0000-c000-000000000046")
4790ICancelMethodCalls : public IUnknown
4791{
4792    virtual HRESULT STDMETHODCALLTYPE Cancel(
4793        ULONG ulSeconds) = 0;
4794
4795    virtual HRESULT STDMETHODCALLTYPE TestCancel(
4796        ) = 0;
4797
4798};
4799#ifdef __CRT_UUID_DECL
4800__CRT_UUID_DECL(ICancelMethodCalls, 0x00000029, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4801#endif
4802#else
4803typedef struct ICancelMethodCallsVtbl {
4804    BEGIN_INTERFACE
4805
4806    /*** IUnknown methods ***/
4807    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4808        ICancelMethodCalls *This,
4809        REFIID riid,
4810        void **ppvObject);
4811
4812    ULONG (STDMETHODCALLTYPE *AddRef)(
4813        ICancelMethodCalls *This);
4814
4815    ULONG (STDMETHODCALLTYPE *Release)(
4816        ICancelMethodCalls *This);
4817
4818    /*** ICancelMethodCalls methods ***/
4819    HRESULT (STDMETHODCALLTYPE *Cancel)(
4820        ICancelMethodCalls *This,
4821        ULONG ulSeconds);
4822
4823    HRESULT (STDMETHODCALLTYPE *TestCancel)(
4824        ICancelMethodCalls *This);
4825
4826    END_INTERFACE
4827} ICancelMethodCallsVtbl;
4828
4829interface ICancelMethodCalls {
4830    CONST_VTBL ICancelMethodCallsVtbl* lpVtbl;
4831};
4832
4833#ifdef COBJMACROS
4834#ifndef WIDL_C_INLINE_WRAPPERS
4835/*** IUnknown methods ***/
4836#define ICancelMethodCalls_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4837#define ICancelMethodCalls_AddRef(This) (This)->lpVtbl->AddRef(This)
4838#define ICancelMethodCalls_Release(This) (This)->lpVtbl->Release(This)
4839/*** ICancelMethodCalls methods ***/
4840#define ICancelMethodCalls_Cancel(This,ulSeconds) (This)->lpVtbl->Cancel(This,ulSeconds)
4841#define ICancelMethodCalls_TestCancel(This) (This)->lpVtbl->TestCancel(This)
4842#else
4843/*** IUnknown methods ***/
4844static inline HRESULT ICancelMethodCalls_QueryInterface(ICancelMethodCalls* This,REFIID riid,void **ppvObject) {
4845    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4846}
4847static inline ULONG ICancelMethodCalls_AddRef(ICancelMethodCalls* This) {
4848    return This->lpVtbl->AddRef(This);
4849}
4850static inline ULONG ICancelMethodCalls_Release(ICancelMethodCalls* This) {
4851    return This->lpVtbl->Release(This);
4852}
4853/*** ICancelMethodCalls methods ***/
4854static inline HRESULT ICancelMethodCalls_Cancel(ICancelMethodCalls* This,ULONG ulSeconds) {
4855    return This->lpVtbl->Cancel(This,ulSeconds);
4856}
4857static inline HRESULT ICancelMethodCalls_TestCancel(ICancelMethodCalls* This) {
4858    return This->lpVtbl->TestCancel(This);
4859}
4860#endif
4861#endif
4862
4863#endif
4864
4865
4866#endif  /* __ICancelMethodCalls_INTERFACE_DEFINED__ */
4867
4868
4869/*****************************************************************************
4870 * IAsyncManager interface
4871 */
4872#ifndef __IAsyncManager_INTERFACE_DEFINED__
4873#define __IAsyncManager_INTERFACE_DEFINED__
4874
4875typedef enum tagDCOM_CALL_STATE {
4876    DCOM_NONE = 0x0,
4877    DCOM_CALL_COMPLETE = 0x1,
4878    DCOM_CALL_CANCELED = 0x2
4879} DCOM_CALL_STATE;
4880
4881DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4882#if defined(__cplusplus) && !defined(CINTERFACE)
4883MIDL_INTERFACE("0000002a-0000-0000-c000-000000000046")
4884IAsyncManager : public IUnknown
4885{
4886    virtual HRESULT STDMETHODCALLTYPE CompleteCall(
4887        HRESULT Result) = 0;
4888
4889    virtual HRESULT STDMETHODCALLTYPE GetCallContext(
4890        REFIID riid,
4891        void **pInterface) = 0;
4892
4893    virtual HRESULT STDMETHODCALLTYPE GetState(
4894        ULONG *pulStateFlags) = 0;
4895
4896};
4897#ifdef __CRT_UUID_DECL
4898__CRT_UUID_DECL(IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4899#endif
4900#else
4901typedef struct IAsyncManagerVtbl {
4902    BEGIN_INTERFACE
4903
4904    /*** IUnknown methods ***/
4905    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4906        IAsyncManager *This,
4907        REFIID riid,
4908        void **ppvObject);
4909
4910    ULONG (STDMETHODCALLTYPE *AddRef)(
4911        IAsyncManager *This);
4912
4913    ULONG (STDMETHODCALLTYPE *Release)(
4914        IAsyncManager *This);
4915
4916    /*** IAsyncManager methods ***/
4917    HRESULT (STDMETHODCALLTYPE *CompleteCall)(
4918        IAsyncManager *This,
4919        HRESULT Result);
4920
4921    HRESULT (STDMETHODCALLTYPE *GetCallContext)(
4922        IAsyncManager *This,
4923        REFIID riid,
4924        void **pInterface);
4925
4926    HRESULT (STDMETHODCALLTYPE *GetState)(
4927        IAsyncManager *This,
4928        ULONG *pulStateFlags);
4929
4930    END_INTERFACE
4931} IAsyncManagerVtbl;
4932
4933interface IAsyncManager {
4934    CONST_VTBL IAsyncManagerVtbl* lpVtbl;
4935};
4936
4937#ifdef COBJMACROS
4938#ifndef WIDL_C_INLINE_WRAPPERS
4939/*** IUnknown methods ***/
4940#define IAsyncManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4941#define IAsyncManager_AddRef(This) (This)->lpVtbl->AddRef(This)
4942#define IAsyncManager_Release(This) (This)->lpVtbl->Release(This)
4943/*** IAsyncManager methods ***/
4944#define IAsyncManager_CompleteCall(This,Result) (This)->lpVtbl->CompleteCall(This,Result)
4945#define IAsyncManager_GetCallContext(This,riid,pInterface) (This)->lpVtbl->GetCallContext(This,riid,pInterface)
4946#define IAsyncManager_GetState(This,pulStateFlags) (This)->lpVtbl->GetState(This,pulStateFlags)
4947#else
4948/*** IUnknown methods ***/
4949static inline HRESULT IAsyncManager_QueryInterface(IAsyncManager* This,REFIID riid,void **ppvObject) {
4950    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4951}
4952static inline ULONG IAsyncManager_AddRef(IAsyncManager* This) {
4953    return This->lpVtbl->AddRef(This);
4954}
4955static inline ULONG IAsyncManager_Release(IAsyncManager* This) {
4956    return This->lpVtbl->Release(This);
4957}
4958/*** IAsyncManager methods ***/
4959static inline HRESULT IAsyncManager_CompleteCall(IAsyncManager* This,HRESULT Result) {
4960    return This->lpVtbl->CompleteCall(This,Result);
4961}
4962static inline HRESULT IAsyncManager_GetCallContext(IAsyncManager* This,REFIID riid,void **pInterface) {
4963    return This->lpVtbl->GetCallContext(This,riid,pInterface);
4964}
4965static inline HRESULT IAsyncManager_GetState(IAsyncManager* This,ULONG *pulStateFlags) {
4966    return This->lpVtbl->GetState(This,pulStateFlags);
4967}
4968#endif
4969#endif
4970
4971#endif
4972
4973
4974#endif  /* __IAsyncManager_INTERFACE_DEFINED__ */
4975
4976
4977/*****************************************************************************
4978 * ICallFactory interface
4979 */
4980#ifndef __ICallFactory_INTERFACE_DEFINED__
4981#define __ICallFactory_INTERFACE_DEFINED__
4982
4983DEFINE_GUID(IID_ICallFactory, 0x1c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
4984#if defined(__cplusplus) && !defined(CINTERFACE)
4985MIDL_INTERFACE("1c733a30-2a1c-11ce-ade5-00aa0044773d")
4986ICallFactory : public IUnknown
4987{
4988    virtual HRESULT STDMETHODCALLTYPE CreateCall(
4989        REFIID riid,
4990        IUnknown *pCtrlUnk,
4991        REFIID riid2,
4992        IUnknown **ppv) = 0;
4993
4994};
4995#ifdef __CRT_UUID_DECL
4996__CRT_UUID_DECL(ICallFactory, 0x1c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d)
4997#endif
4998#else
4999typedef struct ICallFactoryVtbl {
5000    BEGIN_INTERFACE
5001
5002    /*** IUnknown methods ***/
5003    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5004        ICallFactory *This,
5005        REFIID riid,
5006        void **ppvObject);
5007
5008    ULONG (STDMETHODCALLTYPE *AddRef)(
5009        ICallFactory *This);
5010
5011    ULONG (STDMETHODCALLTYPE *Release)(
5012        ICallFactory *This);
5013
5014    /*** ICallFactory methods ***/
5015    HRESULT (STDMETHODCALLTYPE *CreateCall)(
5016        ICallFactory *This,
5017        REFIID riid,
5018        IUnknown *pCtrlUnk,
5019        REFIID riid2,
5020        IUnknown **ppv);
5021
5022    END_INTERFACE
5023} ICallFactoryVtbl;
5024
5025interface ICallFactory {
5026    CONST_VTBL ICallFactoryVtbl* lpVtbl;
5027};
5028
5029#ifdef COBJMACROS
5030#ifndef WIDL_C_INLINE_WRAPPERS
5031/*** IUnknown methods ***/
5032#define ICallFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5033#define ICallFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
5034#define ICallFactory_Release(This) (This)->lpVtbl->Release(This)
5035/*** ICallFactory methods ***/
5036#define ICallFactory_CreateCall(This,riid,pCtrlUnk,riid2,ppv) (This)->lpVtbl->CreateCall(This,riid,pCtrlUnk,riid2,ppv)
5037#else
5038/*** IUnknown methods ***/
5039static inline HRESULT ICallFactory_QueryInterface(ICallFactory* This,REFIID riid,void **ppvObject) {
5040    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5041}
5042static inline ULONG ICallFactory_AddRef(ICallFactory* This) {
5043    return This->lpVtbl->AddRef(This);
5044}
5045static inline ULONG ICallFactory_Release(ICallFactory* This) {
5046    return This->lpVtbl->Release(This);
5047}
5048/*** ICallFactory methods ***/
5049static inline HRESULT ICallFactory_CreateCall(ICallFactory* This,REFIID riid,IUnknown *pCtrlUnk,REFIID riid2,IUnknown **ppv) {
5050    return This->lpVtbl->CreateCall(This,riid,pCtrlUnk,riid2,ppv);
5051}
5052#endif
5053#endif
5054
5055#endif
5056
5057
5058#endif  /* __ICallFactory_INTERFACE_DEFINED__ */
5059
5060
5061/*****************************************************************************
5062 * IRpcHelper interface
5063 */
5064#ifndef __IRpcHelper_INTERFACE_DEFINED__
5065#define __IRpcHelper_INTERFACE_DEFINED__
5066
5067DEFINE_GUID(IID_IRpcHelper, 0x00000149, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5068#if defined(__cplusplus) && !defined(CINTERFACE)
5069MIDL_INTERFACE("00000149-0000-0000-c000-000000000046")
5070IRpcHelper : public IUnknown
5071{
5072    virtual HRESULT STDMETHODCALLTYPE GetDCOMProtocolVersion(
5073        DWORD *pComVersion) = 0;
5074
5075    virtual HRESULT STDMETHODCALLTYPE GetIIDFromOBJREF(
5076        void *pObjRef,
5077        IID **piid) = 0;
5078
5079};
5080#ifdef __CRT_UUID_DECL
5081__CRT_UUID_DECL(IRpcHelper, 0x00000149, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5082#endif
5083#else
5084typedef struct IRpcHelperVtbl {
5085    BEGIN_INTERFACE
5086
5087    /*** IUnknown methods ***/
5088    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5089        IRpcHelper *This,
5090        REFIID riid,
5091        void **ppvObject);
5092
5093    ULONG (STDMETHODCALLTYPE *AddRef)(
5094        IRpcHelper *This);
5095
5096    ULONG (STDMETHODCALLTYPE *Release)(
5097        IRpcHelper *This);
5098
5099    /*** IRpcHelper methods ***/
5100    HRESULT (STDMETHODCALLTYPE *GetDCOMProtocolVersion)(
5101        IRpcHelper *This,
5102        DWORD *pComVersion);
5103
5104    HRESULT (STDMETHODCALLTYPE *GetIIDFromOBJREF)(
5105        IRpcHelper *This,
5106        void *pObjRef,
5107        IID **piid);
5108
5109    END_INTERFACE
5110} IRpcHelperVtbl;
5111
5112interface IRpcHelper {
5113    CONST_VTBL IRpcHelperVtbl* lpVtbl;
5114};
5115
5116#ifdef COBJMACROS
5117#ifndef WIDL_C_INLINE_WRAPPERS
5118/*** IUnknown methods ***/
5119#define IRpcHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5120#define IRpcHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
5121#define IRpcHelper_Release(This) (This)->lpVtbl->Release(This)
5122/*** IRpcHelper methods ***/
5123#define IRpcHelper_GetDCOMProtocolVersion(This,pComVersion) (This)->lpVtbl->GetDCOMProtocolVersion(This,pComVersion)
5124#define IRpcHelper_GetIIDFromOBJREF(This,pObjRef,piid) (This)->lpVtbl->GetIIDFromOBJREF(This,pObjRef,piid)
5125#else
5126/*** IUnknown methods ***/
5127static inline HRESULT IRpcHelper_QueryInterface(IRpcHelper* This,REFIID riid,void **ppvObject) {
5128    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5129}
5130static inline ULONG IRpcHelper_AddRef(IRpcHelper* This) {
5131    return This->lpVtbl->AddRef(This);
5132}
5133static inline ULONG IRpcHelper_Release(IRpcHelper* This) {
5134    return This->lpVtbl->Release(This);
5135}
5136/*** IRpcHelper methods ***/
5137static inline HRESULT IRpcHelper_GetDCOMProtocolVersion(IRpcHelper* This,DWORD *pComVersion) {
5138    return This->lpVtbl->GetDCOMProtocolVersion(This,pComVersion);
5139}
5140static inline HRESULT IRpcHelper_GetIIDFromOBJREF(IRpcHelper* This,void *pObjRef,IID **piid) {
5141    return This->lpVtbl->GetIIDFromOBJREF(This,pObjRef,piid);
5142}
5143#endif
5144#endif
5145
5146#endif
5147
5148
5149#endif  /* __IRpcHelper_INTERFACE_DEFINED__ */
5150
5151
5152/*****************************************************************************
5153 * IReleaseMarshalBuffers interface
5154 */
5155#ifndef __IReleaseMarshalBuffers_INTERFACE_DEFINED__
5156#define __IReleaseMarshalBuffers_INTERFACE_DEFINED__
5157
5158DEFINE_GUID(IID_IReleaseMarshalBuffers, 0xeb0cb9e8, 0x7996, 0x11d2, 0x87,0x2e, 0x00,0x00,0xf8,0x08,0x08,0x59);
5159#if defined(__cplusplus) && !defined(CINTERFACE)
5160MIDL_INTERFACE("eb0cb9e8-7996-11d2-872e-0000f8080859")
5161IReleaseMarshalBuffers : public IUnknown
5162{
5163    virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalBuffer(
5164        RPCOLEMESSAGE *pMsg,
5165        DWORD dwFlags,
5166        IUnknown *pChnl) = 0;
5167
5168};
5169#ifdef __CRT_UUID_DECL
5170__CRT_UUID_DECL(IReleaseMarshalBuffers, 0xeb0cb9e8, 0x7996, 0x11d2, 0x87,0x2e, 0x00,0x00,0xf8,0x08,0x08,0x59)
5171#endif
5172#else
5173typedef struct IReleaseMarshalBuffersVtbl {
5174    BEGIN_INTERFACE
5175
5176    /*** IUnknown methods ***/
5177    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5178        IReleaseMarshalBuffers *This,
5179        REFIID riid,
5180        void **ppvObject);
5181
5182    ULONG (STDMETHODCALLTYPE *AddRef)(
5183        IReleaseMarshalBuffers *This);
5184
5185    ULONG (STDMETHODCALLTYPE *Release)(
5186        IReleaseMarshalBuffers *This);
5187
5188    /*** IReleaseMarshalBuffers methods ***/
5189    HRESULT (STDMETHODCALLTYPE *ReleaseMarshalBuffer)(
5190        IReleaseMarshalBuffers *This,
5191        RPCOLEMESSAGE *pMsg,
5192        DWORD dwFlags,
5193        IUnknown *pChnl);
5194
5195    END_INTERFACE
5196} IReleaseMarshalBuffersVtbl;
5197
5198interface IReleaseMarshalBuffers {
5199    CONST_VTBL IReleaseMarshalBuffersVtbl* lpVtbl;
5200};
5201
5202#ifdef COBJMACROS
5203#ifndef WIDL_C_INLINE_WRAPPERS
5204/*** IUnknown methods ***/
5205#define IReleaseMarshalBuffers_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5206#define IReleaseMarshalBuffers_AddRef(This) (This)->lpVtbl->AddRef(This)
5207#define IReleaseMarshalBuffers_Release(This) (This)->lpVtbl->Release(This)
5208/*** IReleaseMarshalBuffers methods ***/
5209#define IReleaseMarshalBuffers_ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl) (This)->lpVtbl->ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl)
5210#else
5211/*** IUnknown methods ***/
5212static inline HRESULT IReleaseMarshalBuffers_QueryInterface(IReleaseMarshalBuffers* This,REFIID riid,void **ppvObject) {
5213    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5214}
5215static inline ULONG IReleaseMarshalBuffers_AddRef(IReleaseMarshalBuffers* This) {
5216    return This->lpVtbl->AddRef(This);
5217}
5218static inline ULONG IReleaseMarshalBuffers_Release(IReleaseMarshalBuffers* This) {
5219    return This->lpVtbl->Release(This);
5220}
5221/*** IReleaseMarshalBuffers methods ***/
5222static inline HRESULT IReleaseMarshalBuffers_ReleaseMarshalBuffer(IReleaseMarshalBuffers* This,RPCOLEMESSAGE *pMsg,DWORD dwFlags,IUnknown *pChnl) {
5223    return This->lpVtbl->ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl);
5224}
5225#endif
5226#endif
5227
5228#endif
5229
5230
5231#endif  /* __IReleaseMarshalBuffers_INTERFACE_DEFINED__ */
5232
5233
5234/*****************************************************************************
5235 * IWaitMultiple interface
5236 */
5237#ifndef __IWaitMultiple_INTERFACE_DEFINED__
5238#define __IWaitMultiple_INTERFACE_DEFINED__
5239
5240DEFINE_GUID(IID_IWaitMultiple, 0x0000002b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5241#if defined(__cplusplus) && !defined(CINTERFACE)
5242MIDL_INTERFACE("0000002b-0000-0000-c000-000000000046")
5243IWaitMultiple : public IUnknown
5244{
5245    virtual HRESULT STDMETHODCALLTYPE WaitMultiple(
5246        DWORD timeout,
5247        ISynchronize **pSync) = 0;
5248
5249    virtual HRESULT STDMETHODCALLTYPE AddSynchronize(
5250        ISynchronize *pSync) = 0;
5251
5252};
5253#ifdef __CRT_UUID_DECL
5254__CRT_UUID_DECL(IWaitMultiple, 0x0000002b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5255#endif
5256#else
5257typedef struct IWaitMultipleVtbl {
5258    BEGIN_INTERFACE
5259
5260    /*** IUnknown methods ***/
5261    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5262        IWaitMultiple *This,
5263        REFIID riid,
5264        void **ppvObject);
5265
5266    ULONG (STDMETHODCALLTYPE *AddRef)(
5267        IWaitMultiple *This);
5268
5269    ULONG (STDMETHODCALLTYPE *Release)(
5270        IWaitMultiple *This);
5271
5272    /*** IWaitMultiple methods ***/
5273    HRESULT (STDMETHODCALLTYPE *WaitMultiple)(
5274        IWaitMultiple *This,
5275        DWORD timeout,
5276        ISynchronize **pSync);
5277
5278    HRESULT (STDMETHODCALLTYPE *AddSynchronize)(
5279        IWaitMultiple *This,
5280        ISynchronize *pSync);
5281
5282    END_INTERFACE
5283} IWaitMultipleVtbl;
5284
5285interface IWaitMultiple {
5286    CONST_VTBL IWaitMultipleVtbl* lpVtbl;
5287};
5288
5289#ifdef COBJMACROS
5290#ifndef WIDL_C_INLINE_WRAPPERS
5291/*** IUnknown methods ***/
5292#define IWaitMultiple_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5293#define IWaitMultiple_AddRef(This) (This)->lpVtbl->AddRef(This)
5294#define IWaitMultiple_Release(This) (This)->lpVtbl->Release(This)
5295/*** IWaitMultiple methods ***/
5296#define IWaitMultiple_WaitMultiple(This,timeout,pSync) (This)->lpVtbl->WaitMultiple(This,timeout,pSync)
5297#define IWaitMultiple_AddSynchronize(This,pSync) (This)->lpVtbl->AddSynchronize(This,pSync)
5298#else
5299/*** IUnknown methods ***/
5300static inline HRESULT IWaitMultiple_QueryInterface(IWaitMultiple* This,REFIID riid,void **ppvObject) {
5301    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5302}
5303static inline ULONG IWaitMultiple_AddRef(IWaitMultiple* This) {
5304    return This->lpVtbl->AddRef(This);
5305}
5306static inline ULONG IWaitMultiple_Release(IWaitMultiple* This) {
5307    return This->lpVtbl->Release(This);
5308}
5309/*** IWaitMultiple methods ***/
5310static inline HRESULT IWaitMultiple_WaitMultiple(IWaitMultiple* This,DWORD timeout,ISynchronize **pSync) {
5311    return This->lpVtbl->WaitMultiple(This,timeout,pSync);
5312}
5313static inline HRESULT IWaitMultiple_AddSynchronize(IWaitMultiple* This,ISynchronize *pSync) {
5314    return This->lpVtbl->AddSynchronize(This,pSync);
5315}
5316#endif
5317#endif
5318
5319#endif
5320
5321
5322#endif  /* __IWaitMultiple_INTERFACE_DEFINED__ */
5323
5324
5325/*****************************************************************************
5326 * IAddrTrackingControl interface
5327 */
5328#ifndef __IAddrTrackingControl_INTERFACE_DEFINED__
5329#define __IAddrTrackingControl_INTERFACE_DEFINED__
5330
5331typedef IAddrTrackingControl *LPADDRTRACKINGCONTROL;
5332DEFINE_GUID(IID_IAddrTrackingControl, 0x00000147, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5333#if defined(__cplusplus) && !defined(CINTERFACE)
5334MIDL_INTERFACE("00000147-0000-0000-c000-000000000046")
5335IAddrTrackingControl : public IUnknown
5336{
5337    virtual HRESULT STDMETHODCALLTYPE EnableCOMDynamicAddrTracking(
5338        ) = 0;
5339
5340    virtual HRESULT STDMETHODCALLTYPE DisableCOMDynamicAddrTracking(
5341        ) = 0;
5342
5343};
5344#ifdef __CRT_UUID_DECL
5345__CRT_UUID_DECL(IAddrTrackingControl, 0x00000147, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5346#endif
5347#else
5348typedef struct IAddrTrackingControlVtbl {
5349    BEGIN_INTERFACE
5350
5351    /*** IUnknown methods ***/
5352    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5353        IAddrTrackingControl *This,
5354        REFIID riid,
5355        void **ppvObject);
5356
5357    ULONG (STDMETHODCALLTYPE *AddRef)(
5358        IAddrTrackingControl *This);
5359
5360    ULONG (STDMETHODCALLTYPE *Release)(
5361        IAddrTrackingControl *This);
5362
5363    /*** IAddrTrackingControl methods ***/
5364    HRESULT (STDMETHODCALLTYPE *EnableCOMDynamicAddrTracking)(
5365        IAddrTrackingControl *This);
5366
5367    HRESULT (STDMETHODCALLTYPE *DisableCOMDynamicAddrTracking)(
5368        IAddrTrackingControl *This);
5369
5370    END_INTERFACE
5371} IAddrTrackingControlVtbl;
5372
5373interface IAddrTrackingControl {
5374    CONST_VTBL IAddrTrackingControlVtbl* lpVtbl;
5375};
5376
5377#ifdef COBJMACROS
5378#ifndef WIDL_C_INLINE_WRAPPERS
5379/*** IUnknown methods ***/
5380#define IAddrTrackingControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5381#define IAddrTrackingControl_AddRef(This) (This)->lpVtbl->AddRef(This)
5382#define IAddrTrackingControl_Release(This) (This)->lpVtbl->Release(This)
5383/*** IAddrTrackingControl methods ***/
5384#define IAddrTrackingControl_EnableCOMDynamicAddrTracking(This) (This)->lpVtbl->EnableCOMDynamicAddrTracking(This)
5385#define IAddrTrackingControl_DisableCOMDynamicAddrTracking(This) (This)->lpVtbl->DisableCOMDynamicAddrTracking(This)
5386#else
5387/*** IUnknown methods ***/
5388static inline HRESULT IAddrTrackingControl_QueryInterface(IAddrTrackingControl* This,REFIID riid,void **ppvObject) {
5389    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5390}
5391static inline ULONG IAddrTrackingControl_AddRef(IAddrTrackingControl* This) {
5392    return This->lpVtbl->AddRef(This);
5393}
5394static inline ULONG IAddrTrackingControl_Release(IAddrTrackingControl* This) {
5395    return This->lpVtbl->Release(This);
5396}
5397/*** IAddrTrackingControl methods ***/
5398static inline HRESULT IAddrTrackingControl_EnableCOMDynamicAddrTracking(IAddrTrackingControl* This) {
5399    return This->lpVtbl->EnableCOMDynamicAddrTracking(This);
5400}
5401static inline HRESULT IAddrTrackingControl_DisableCOMDynamicAddrTracking(IAddrTrackingControl* This) {
5402    return This->lpVtbl->DisableCOMDynamicAddrTracking(This);
5403}
5404#endif
5405#endif
5406
5407#endif
5408
5409
5410#endif  /* __IAddrTrackingControl_INTERFACE_DEFINED__ */
5411
5412
5413/*****************************************************************************
5414 * IAddrExclusionControl interface
5415 */
5416#ifndef __IAddrExclusionControl_INTERFACE_DEFINED__
5417#define __IAddrExclusionControl_INTERFACE_DEFINED__
5418
5419typedef IAddrExclusionControl *LPADDREXCLUSIONCONTROL;
5420DEFINE_GUID(IID_IAddrExclusionControl, 0x00000148, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5421#if defined(__cplusplus) && !defined(CINTERFACE)
5422MIDL_INTERFACE("00000148-0000-0000-c000-000000000046")
5423IAddrExclusionControl : public IUnknown
5424{
5425    virtual HRESULT STDMETHODCALLTYPE GetCurrentAddrExclusionList(
5426        REFIID riid,
5427        void **ppEnumerator) = 0;
5428
5429    virtual HRESULT STDMETHODCALLTYPE UpdateAddrExclusionList(
5430        IUnknown *pEnumerator) = 0;
5431
5432};
5433#ifdef __CRT_UUID_DECL
5434__CRT_UUID_DECL(IAddrExclusionControl, 0x00000148, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5435#endif
5436#else
5437typedef struct IAddrExclusionControlVtbl {
5438    BEGIN_INTERFACE
5439
5440    /*** IUnknown methods ***/
5441    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5442        IAddrExclusionControl *This,
5443        REFIID riid,
5444        void **ppvObject);
5445
5446    ULONG (STDMETHODCALLTYPE *AddRef)(
5447        IAddrExclusionControl *This);
5448
5449    ULONG (STDMETHODCALLTYPE *Release)(
5450        IAddrExclusionControl *This);
5451
5452    /*** IAddrExclusionControl methods ***/
5453    HRESULT (STDMETHODCALLTYPE *GetCurrentAddrExclusionList)(
5454        IAddrExclusionControl *This,
5455        REFIID riid,
5456        void **ppEnumerator);
5457
5458    HRESULT (STDMETHODCALLTYPE *UpdateAddrExclusionList)(
5459        IAddrExclusionControl *This,
5460        IUnknown *pEnumerator);
5461
5462    END_INTERFACE
5463} IAddrExclusionControlVtbl;
5464
5465interface IAddrExclusionControl {
5466    CONST_VTBL IAddrExclusionControlVtbl* lpVtbl;
5467};
5468
5469#ifdef COBJMACROS
5470#ifndef WIDL_C_INLINE_WRAPPERS
5471/*** IUnknown methods ***/
5472#define IAddrExclusionControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5473#define IAddrExclusionControl_AddRef(This) (This)->lpVtbl->AddRef(This)
5474#define IAddrExclusionControl_Release(This) (This)->lpVtbl->Release(This)
5475/*** IAddrExclusionControl methods ***/
5476#define IAddrExclusionControl_GetCurrentAddrExclusionList(This,riid,ppEnumerator) (This)->lpVtbl->GetCurrentAddrExclusionList(This,riid,ppEnumerator)
5477#define IAddrExclusionControl_UpdateAddrExclusionList(This,pEnumerator) (This)->lpVtbl->UpdateAddrExclusionList(This,pEnumerator)
5478#else
5479/*** IUnknown methods ***/
5480static inline HRESULT IAddrExclusionControl_QueryInterface(IAddrExclusionControl* This,REFIID riid,void **ppvObject) {
5481    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5482}
5483static inline ULONG IAddrExclusionControl_AddRef(IAddrExclusionControl* This) {
5484    return This->lpVtbl->AddRef(This);
5485}
5486static inline ULONG IAddrExclusionControl_Release(IAddrExclusionControl* This) {
5487    return This->lpVtbl->Release(This);
5488}
5489/*** IAddrExclusionControl methods ***/
5490static inline HRESULT IAddrExclusionControl_GetCurrentAddrExclusionList(IAddrExclusionControl* This,REFIID riid,void **ppEnumerator) {
5491    return This->lpVtbl->GetCurrentAddrExclusionList(This,riid,ppEnumerator);
5492}
5493static inline HRESULT IAddrExclusionControl_UpdateAddrExclusionList(IAddrExclusionControl* This,IUnknown *pEnumerator) {
5494    return This->lpVtbl->UpdateAddrExclusionList(This,pEnumerator);
5495}
5496#endif
5497#endif
5498
5499#endif
5500
5501
5502#endif  /* __IAddrExclusionControl_INTERFACE_DEFINED__ */
5503
5504
5505/*****************************************************************************
5506 * IPipeByte interface
5507 */
5508#ifndef __IPipeByte_INTERFACE_DEFINED__
5509#define __IPipeByte_INTERFACE_DEFINED__
5510
5511DEFINE_GUID(IID_IPipeByte, 0xdb2f3aca, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
5512#if defined(__cplusplus) && !defined(CINTERFACE)
5513MIDL_INTERFACE("db2f3aca-2f86-11d1-8e04-00c04fb9989a")
5514IPipeByte : public IUnknown
5515{
5516    virtual HRESULT STDMETHODCALLTYPE Pull(
5517        BYTE *buf,
5518        ULONG cRequest,
5519        ULONG *pcReturned) = 0;
5520
5521    virtual HRESULT STDMETHODCALLTYPE Push(
5522        BYTE *buf,
5523        ULONG cSent) = 0;
5524
5525};
5526#ifdef __CRT_UUID_DECL
5527__CRT_UUID_DECL(IPipeByte, 0xdb2f3aca, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
5528#endif
5529#else
5530typedef struct IPipeByteVtbl {
5531    BEGIN_INTERFACE
5532
5533    /*** IUnknown methods ***/
5534    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5535        IPipeByte *This,
5536        REFIID riid,
5537        void **ppvObject);
5538
5539    ULONG (STDMETHODCALLTYPE *AddRef)(
5540        IPipeByte *This);
5541
5542    ULONG (STDMETHODCALLTYPE *Release)(
5543        IPipeByte *This);
5544
5545    /*** IPipeByte methods ***/
5546    HRESULT (STDMETHODCALLTYPE *Pull)(
5547        IPipeByte *This,
5548        BYTE *buf,
5549        ULONG cRequest,
5550        ULONG *pcReturned);
5551
5552    HRESULT (STDMETHODCALLTYPE *Push)(
5553        IPipeByte *This,
5554        BYTE *buf,
5555        ULONG cSent);
5556
5557    END_INTERFACE
5558} IPipeByteVtbl;
5559
5560interface IPipeByte {
5561    CONST_VTBL IPipeByteVtbl* lpVtbl;
5562};
5563
5564#ifdef COBJMACROS
5565#ifndef WIDL_C_INLINE_WRAPPERS
5566/*** IUnknown methods ***/
5567#define IPipeByte_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5568#define IPipeByte_AddRef(This) (This)->lpVtbl->AddRef(This)
5569#define IPipeByte_Release(This) (This)->lpVtbl->Release(This)
5570/*** IPipeByte methods ***/
5571#define IPipeByte_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
5572#define IPipeByte_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
5573#else
5574/*** IUnknown methods ***/
5575static inline HRESULT IPipeByte_QueryInterface(IPipeByte* This,REFIID riid,void **ppvObject) {
5576    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5577}
5578static inline ULONG IPipeByte_AddRef(IPipeByte* This) {
5579    return This->lpVtbl->AddRef(This);
5580}
5581static inline ULONG IPipeByte_Release(IPipeByte* This) {
5582    return This->lpVtbl->Release(This);
5583}
5584/*** IPipeByte methods ***/
5585static inline HRESULT IPipeByte_Pull(IPipeByte* This,BYTE *buf,ULONG cRequest,ULONG *pcReturned) {
5586    return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
5587}
5588static inline HRESULT IPipeByte_Push(IPipeByte* This,BYTE *buf,ULONG cSent) {
5589    return This->lpVtbl->Push(This,buf,cSent);
5590}
5591#endif
5592#endif
5593
5594#endif
5595
5596
5597#endif  /* __IPipeByte_INTERFACE_DEFINED__ */
5598
5599
5600/*****************************************************************************
5601 * IPipeLong interface
5602 */
5603#ifndef __IPipeLong_INTERFACE_DEFINED__
5604#define __IPipeLong_INTERFACE_DEFINED__
5605
5606DEFINE_GUID(IID_IPipeLong, 0xdb2f3acc, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
5607#if defined(__cplusplus) && !defined(CINTERFACE)
5608MIDL_INTERFACE("db2f3acc-2f86-11d1-8e04-00c04fb9989a")
5609IPipeLong : public IUnknown
5610{
5611    virtual HRESULT STDMETHODCALLTYPE Pull(
5612        LONG *buf,
5613        ULONG cRequest,
5614        ULONG *pcReturned) = 0;
5615
5616    virtual HRESULT STDMETHODCALLTYPE Push(
5617        LONG *buf,
5618        ULONG cSent) = 0;
5619
5620};
5621#ifdef __CRT_UUID_DECL
5622__CRT_UUID_DECL(IPipeLong, 0xdb2f3acc, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
5623#endif
5624#else
5625typedef struct IPipeLongVtbl {
5626    BEGIN_INTERFACE
5627
5628    /*** IUnknown methods ***/
5629    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5630        IPipeLong *This,
5631        REFIID riid,
5632        void **ppvObject);
5633
5634    ULONG (STDMETHODCALLTYPE *AddRef)(
5635        IPipeLong *This);
5636
5637    ULONG (STDMETHODCALLTYPE *Release)(
5638        IPipeLong *This);
5639
5640    /*** IPipeLong methods ***/
5641    HRESULT (STDMETHODCALLTYPE *Pull)(
5642        IPipeLong *This,
5643        LONG *buf,
5644        ULONG cRequest,
5645        ULONG *pcReturned);
5646
5647    HRESULT (STDMETHODCALLTYPE *Push)(
5648        IPipeLong *This,
5649        LONG *buf,
5650        ULONG cSent);
5651
5652    END_INTERFACE
5653} IPipeLongVtbl;
5654
5655interface IPipeLong {
5656    CONST_VTBL IPipeLongVtbl* lpVtbl;
5657};
5658
5659#ifdef COBJMACROS
5660#ifndef WIDL_C_INLINE_WRAPPERS
5661/*** IUnknown methods ***/
5662#define IPipeLong_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5663#define IPipeLong_AddRef(This) (This)->lpVtbl->AddRef(This)
5664#define IPipeLong_Release(This) (This)->lpVtbl->Release(This)
5665/*** IPipeLong methods ***/
5666#define IPipeLong_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
5667#define IPipeLong_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
5668#else
5669/*** IUnknown methods ***/
5670static inline HRESULT IPipeLong_QueryInterface(IPipeLong* This,REFIID riid,void **ppvObject) {
5671    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5672}
5673static inline ULONG IPipeLong_AddRef(IPipeLong* This) {
5674    return This->lpVtbl->AddRef(This);
5675}
5676static inline ULONG IPipeLong_Release(IPipeLong* This) {
5677    return This->lpVtbl->Release(This);
5678}
5679/*** IPipeLong methods ***/
5680static inline HRESULT IPipeLong_Pull(IPipeLong* This,LONG *buf,ULONG cRequest,ULONG *pcReturned) {
5681    return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
5682}
5683static inline HRESULT IPipeLong_Push(IPipeLong* This,LONG *buf,ULONG cSent) {
5684    return This->lpVtbl->Push(This,buf,cSent);
5685}
5686#endif
5687#endif
5688
5689#endif
5690
5691
5692#endif  /* __IPipeLong_INTERFACE_DEFINED__ */
5693
5694
5695/*****************************************************************************
5696 * IPipeDouble interface
5697 */
5698#ifndef __IPipeDouble_INTERFACE_DEFINED__
5699#define __IPipeDouble_INTERFACE_DEFINED__
5700
5701DEFINE_GUID(IID_IPipeDouble, 0xdb2f3ace, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
5702#if defined(__cplusplus) && !defined(CINTERFACE)
5703MIDL_INTERFACE("db2f3ace-2f86-11d1-8e04-00c04fb9989a")
5704IPipeDouble : public IUnknown
5705{
5706    virtual HRESULT STDMETHODCALLTYPE Pull(
5707        DOUBLE *buf,
5708        ULONG cRequest,
5709        ULONG *pcReturned) = 0;
5710
5711    virtual HRESULT STDMETHODCALLTYPE Push(
5712        DOUBLE *buf,
5713        ULONG cSent) = 0;
5714
5715};
5716#ifdef __CRT_UUID_DECL
5717__CRT_UUID_DECL(IPipeDouble, 0xdb2f3ace, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
5718#endif
5719#else
5720typedef struct IPipeDoubleVtbl {
5721    BEGIN_INTERFACE
5722
5723    /*** IUnknown methods ***/
5724    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5725        IPipeDouble *This,
5726        REFIID riid,
5727        void **ppvObject);
5728
5729    ULONG (STDMETHODCALLTYPE *AddRef)(
5730        IPipeDouble *This);
5731
5732    ULONG (STDMETHODCALLTYPE *Release)(
5733        IPipeDouble *This);
5734
5735    /*** IPipeDouble methods ***/
5736    HRESULT (STDMETHODCALLTYPE *Pull)(
5737        IPipeDouble *This,
5738        DOUBLE *buf,
5739        ULONG cRequest,
5740        ULONG *pcReturned);
5741
5742    HRESULT (STDMETHODCALLTYPE *Push)(
5743        IPipeDouble *This,
5744        DOUBLE *buf,
5745        ULONG cSent);
5746
5747    END_INTERFACE
5748} IPipeDoubleVtbl;
5749
5750interface IPipeDouble {
5751    CONST_VTBL IPipeDoubleVtbl* lpVtbl;
5752};
5753
5754#ifdef COBJMACROS
5755#ifndef WIDL_C_INLINE_WRAPPERS
5756/*** IUnknown methods ***/
5757#define IPipeDouble_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5758#define IPipeDouble_AddRef(This) (This)->lpVtbl->AddRef(This)
5759#define IPipeDouble_Release(This) (This)->lpVtbl->Release(This)
5760/*** IPipeDouble methods ***/
5761#define IPipeDouble_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
5762#define IPipeDouble_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
5763#else
5764/*** IUnknown methods ***/
5765static inline HRESULT IPipeDouble_QueryInterface(IPipeDouble* This,REFIID riid,void **ppvObject) {
5766    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5767}
5768static inline ULONG IPipeDouble_AddRef(IPipeDouble* This) {
5769    return This->lpVtbl->AddRef(This);
5770}
5771static inline ULONG IPipeDouble_Release(IPipeDouble* This) {
5772    return This->lpVtbl->Release(This);
5773}
5774/*** IPipeDouble methods ***/
5775static inline HRESULT IPipeDouble_Pull(IPipeDouble* This,DOUBLE *buf,ULONG cRequest,ULONG *pcReturned) {
5776    return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
5777}
5778static inline HRESULT IPipeDouble_Push(IPipeDouble* This,DOUBLE *buf,ULONG cSent) {
5779    return This->lpVtbl->Push(This,buf,cSent);
5780}
5781#endif
5782#endif
5783
5784#endif
5785
5786
5787#endif  /* __IPipeDouble_INTERFACE_DEFINED__ */
5788
5789
5790#if defined USE_COM_CONTEXT_DEF || defined BUILDTYPE_COMSVCS || defined _COMBASEAPI_ || defined _OLE32_
5791
5792typedef DWORD CPFLAGS;
5793
5794typedef struct tagContextProperty {
5795    GUID policyId;
5796    CPFLAGS flags;
5797    IUnknown *pUnk;
5798} ContextProperty;
5799
5800/*****************************************************************************
5801 * IEnumContextProps interface
5802 */
5803#ifndef __IEnumContextProps_INTERFACE_DEFINED__
5804#define __IEnumContextProps_INTERFACE_DEFINED__
5805
5806typedef IEnumContextProps *LPENUMCONTEXTPROPS;
5807
5808DEFINE_GUID(IID_IEnumContextProps, 0x000001c1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5809#if defined(__cplusplus) && !defined(CINTERFACE)
5810MIDL_INTERFACE("000001c1-0000-0000-c000-000000000046")
5811IEnumContextProps : public IUnknown
5812{
5813    virtual HRESULT STDMETHODCALLTYPE Next(
5814        ULONG celt,
5815        ContextProperty *pContextProperties,
5816        ULONG *pceltFetched) = 0;
5817
5818    virtual HRESULT STDMETHODCALLTYPE Skip(
5819        ULONG celt) = 0;
5820
5821    virtual HRESULT STDMETHODCALLTYPE Reset(
5822        ) = 0;
5823
5824    virtual HRESULT STDMETHODCALLTYPE Clone(
5825        IEnumContextProps **ppEnumContextProps) = 0;
5826
5827    virtual HRESULT STDMETHODCALLTYPE Count(
5828        ULONG *pcelt) = 0;
5829
5830};
5831#ifdef __CRT_UUID_DECL
5832__CRT_UUID_DECL(IEnumContextProps, 0x000001c1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5833#endif
5834#else
5835typedef struct IEnumContextPropsVtbl {
5836    BEGIN_INTERFACE
5837
5838    /*** IUnknown methods ***/
5839    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5840        IEnumContextProps *This,
5841        REFIID riid,
5842        void **ppvObject);
5843
5844    ULONG (STDMETHODCALLTYPE *AddRef)(
5845        IEnumContextProps *This);
5846
5847    ULONG (STDMETHODCALLTYPE *Release)(
5848        IEnumContextProps *This);
5849
5850    /*** IEnumContextProps methods ***/
5851    HRESULT (STDMETHODCALLTYPE *Next)(
5852        IEnumContextProps *This,
5853        ULONG celt,
5854        ContextProperty *pContextProperties,
5855        ULONG *pceltFetched);
5856
5857    HRESULT (STDMETHODCALLTYPE *Skip)(
5858        IEnumContextProps *This,
5859        ULONG celt);
5860
5861    HRESULT (STDMETHODCALLTYPE *Reset)(
5862        IEnumContextProps *This);
5863
5864    HRESULT (STDMETHODCALLTYPE *Clone)(
5865        IEnumContextProps *This,
5866        IEnumContextProps **ppEnumContextProps);
5867
5868    HRESULT (STDMETHODCALLTYPE *Count)(
5869        IEnumContextProps *This,
5870        ULONG *pcelt);
5871
5872    END_INTERFACE
5873} IEnumContextPropsVtbl;
5874
5875interface IEnumContextProps {
5876    CONST_VTBL IEnumContextPropsVtbl* lpVtbl;
5877};
5878
5879#ifdef COBJMACROS
5880#ifndef WIDL_C_INLINE_WRAPPERS
5881/*** IUnknown methods ***/
5882#define IEnumContextProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5883#define IEnumContextProps_AddRef(This) (This)->lpVtbl->AddRef(This)
5884#define IEnumContextProps_Release(This) (This)->lpVtbl->Release(This)
5885/*** IEnumContextProps methods ***/
5886#define IEnumContextProps_Next(This,celt,pContextProperties,pceltFetched) (This)->lpVtbl->Next(This,celt,pContextProperties,pceltFetched)
5887#define IEnumContextProps_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
5888#define IEnumContextProps_Reset(This) (This)->lpVtbl->Reset(This)
5889#define IEnumContextProps_Clone(This,ppEnumContextProps) (This)->lpVtbl->Clone(This,ppEnumContextProps)
5890#define IEnumContextProps_Count(This,pcelt) (This)->lpVtbl->Count(This,pcelt)
5891#else
5892/*** IUnknown methods ***/
5893static inline HRESULT IEnumContextProps_QueryInterface(IEnumContextProps* This,REFIID riid,void **ppvObject) {
5894    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5895}
5896static inline ULONG IEnumContextProps_AddRef(IEnumContextProps* This) {
5897    return This->lpVtbl->AddRef(This);
5898}
5899static inline ULONG IEnumContextProps_Release(IEnumContextProps* This) {
5900    return This->lpVtbl->Release(This);
5901}
5902/*** IEnumContextProps methods ***/
5903static inline HRESULT IEnumContextProps_Next(IEnumContextProps* This,ULONG celt,ContextProperty *pContextProperties,ULONG *pceltFetched) {
5904    return This->lpVtbl->Next(This,celt,pContextProperties,pceltFetched);
5905}
5906static inline HRESULT IEnumContextProps_Skip(IEnumContextProps* This,ULONG celt) {
5907    return This->lpVtbl->Skip(This,celt);
5908}
5909static inline HRESULT IEnumContextProps_Reset(IEnumContextProps* This) {
5910    return This->lpVtbl->Reset(This);
5911}
5912static inline HRESULT IEnumContextProps_Clone(IEnumContextProps* This,IEnumContextProps **ppEnumContextProps) {
5913    return This->lpVtbl->Clone(This,ppEnumContextProps);
5914}
5915static inline HRESULT IEnumContextProps_Count(IEnumContextProps* This,ULONG *pcelt) {
5916    return This->lpVtbl->Count(This,pcelt);
5917}
5918#endif
5919#endif
5920
5921#endif
5922
5923
5924#endif  /* __IEnumContextProps_INTERFACE_DEFINED__ */
5925
5926
5927/*****************************************************************************
5928 * IContext interface
5929 */
5930#ifndef __IContext_INTERFACE_DEFINED__
5931#define __IContext_INTERFACE_DEFINED__
5932
5933DEFINE_GUID(IID_IContext, 0x000001c0, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5934#if defined(__cplusplus) && !defined(CINTERFACE)
5935MIDL_INTERFACE("000001c0-0000-0000-c000-000000000046")
5936IContext : public IUnknown
5937{
5938    virtual HRESULT STDMETHODCALLTYPE SetProperty(
5939        REFGUID rpolicyId,
5940        CPFLAGS flags,
5941        IUnknown *pUnk) = 0;
5942
5943    virtual HRESULT STDMETHODCALLTYPE RemoveProperty(
5944        REFGUID rPolicyId) = 0;
5945
5946    virtual HRESULT STDMETHODCALLTYPE GetProperty(
5947        REFGUID rGuid,
5948        CPFLAGS *pFlags,
5949        IUnknown **ppUnk) = 0;
5950
5951    virtual HRESULT STDMETHODCALLTYPE EnumContextProps(
5952        IEnumContextProps **ppEnumContextProps) = 0;
5953
5954};
5955#ifdef __CRT_UUID_DECL
5956__CRT_UUID_DECL(IContext, 0x000001c0, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5957#endif
5958#else
5959typedef struct IContextVtbl {
5960    BEGIN_INTERFACE
5961
5962    /*** IUnknown methods ***/
5963    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5964        IContext *This,
5965        REFIID riid,
5966        void **ppvObject);
5967
5968    ULONG (STDMETHODCALLTYPE *AddRef)(
5969        IContext *This);
5970
5971    ULONG (STDMETHODCALLTYPE *Release)(
5972        IContext *This);
5973
5974    /*** IContext methods ***/
5975    HRESULT (STDMETHODCALLTYPE *SetProperty)(
5976        IContext *This,
5977        REFGUID rpolicyId,
5978        CPFLAGS flags,
5979        IUnknown *pUnk);
5980
5981    HRESULT (STDMETHODCALLTYPE *RemoveProperty)(
5982        IContext *This,
5983        REFGUID rPolicyId);
5984
5985    HRESULT (STDMETHODCALLTYPE *GetProperty)(
5986        IContext *This,
5987        REFGUID rGuid,
5988        CPFLAGS *pFlags,
5989        IUnknown **ppUnk);
5990
5991    HRESULT (STDMETHODCALLTYPE *EnumContextProps)(
5992        IContext *This,
5993        IEnumContextProps **ppEnumContextProps);
5994
5995    END_INTERFACE
5996} IContextVtbl;
5997
5998interface IContext {
5999    CONST_VTBL IContextVtbl* lpVtbl;
6000};
6001
6002#ifdef COBJMACROS
6003#ifndef WIDL_C_INLINE_WRAPPERS
6004/*** IUnknown methods ***/
6005#define IContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6006#define IContext_AddRef(This) (This)->lpVtbl->AddRef(This)
6007#define IContext_Release(This) (This)->lpVtbl->Release(This)
6008/*** IContext methods ***/
6009#define IContext_SetProperty(This,rpolicyId,flags,pUnk) (This)->lpVtbl->SetProperty(This,rpolicyId,flags,pUnk)
6010#define IContext_RemoveProperty(This,rPolicyId) (This)->lpVtbl->RemoveProperty(This,rPolicyId)
6011#define IContext_GetProperty(This,rGuid,pFlags,ppUnk) (This)->lpVtbl->GetProperty(This,rGuid,pFlags,ppUnk)
6012#define IContext_EnumContextProps(This,ppEnumContextProps) (This)->lpVtbl->EnumContextProps(This,ppEnumContextProps)
6013#else
6014/*** IUnknown methods ***/
6015static inline HRESULT IContext_QueryInterface(IContext* This,REFIID riid,void **ppvObject) {
6016    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6017}
6018static inline ULONG IContext_AddRef(IContext* This) {
6019    return This->lpVtbl->AddRef(This);
6020}
6021static inline ULONG IContext_Release(IContext* This) {
6022    return This->lpVtbl->Release(This);
6023}
6024/*** IContext methods ***/
6025static inline HRESULT IContext_SetProperty(IContext* This,REFGUID rpolicyId,CPFLAGS flags,IUnknown *pUnk) {
6026    return This->lpVtbl->SetProperty(This,rpolicyId,flags,pUnk);
6027}
6028static inline HRESULT IContext_RemoveProperty(IContext* This,REFGUID rPolicyId) {
6029    return This->lpVtbl->RemoveProperty(This,rPolicyId);
6030}
6031static inline HRESULT IContext_GetProperty(IContext* This,REFGUID rGuid,CPFLAGS *pFlags,IUnknown **ppUnk) {
6032    return This->lpVtbl->GetProperty(This,rGuid,pFlags,ppUnk);
6033}
6034static inline HRESULT IContext_EnumContextProps(IContext* This,IEnumContextProps **ppEnumContextProps) {
6035    return This->lpVtbl->EnumContextProps(This,ppEnumContextProps);
6036}
6037#endif
6038#endif
6039
6040#endif
6041
6042
6043#endif  /* __IContext_INTERFACE_DEFINED__ */
6044
6045#endif
6046#endif
6047
6048#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
6049typedef enum _APTTYPEQUALIFIER {
6050    APTTYPEQUALIFIER_NONE = 0,
6051    APTTYPEQUALIFIER_IMPLICIT_MTA = 1,
6052    APTTYPEQUALIFIER_NA_ON_MTA = 2,
6053    APTTYPEQUALIFIER_NA_ON_STA = 3,
6054    APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA = 4,
6055    APTTYPEQUALIFIER_NA_ON_MAINSTA = 5,
6056    APTTYPEQUALIFIER_APPLICATION_STA = 6
6057} APTTYPEQUALIFIER;
6058
6059typedef enum _APTTYPE {
6060    APTTYPE_CURRENT = -1,
6061    APTTYPE_STA = 0,
6062    APTTYPE_MTA = 1,
6063    APTTYPE_NA = 2,
6064    APTTYPE_MAINSTA = 3
6065} APTTYPE;
6066#endif
6067
6068#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
6069typedef enum _THDTYPE {
6070    THDTYPE_BLOCKMESSAGES = 0,
6071    THDTYPE_PROCESSMESSAGES = 1
6072} THDTYPE;
6073
6074typedef DWORD APARTMENTID;
6075
6076/*****************************************************************************
6077 * IComThreadingInfo interface
6078 */
6079#ifndef __IComThreadingInfo_INTERFACE_DEFINED__
6080#define __IComThreadingInfo_INTERFACE_DEFINED__
6081
6082DEFINE_GUID(IID_IComThreadingInfo, 0x000001ce, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6083#if defined(__cplusplus) && !defined(CINTERFACE)
6084MIDL_INTERFACE("000001ce-0000-0000-c000-000000000046")
6085IComThreadingInfo : public IUnknown
6086{
6087    virtual HRESULT STDMETHODCALLTYPE GetCurrentApartmentType(
6088        APTTYPE *pAptType) = 0;
6089
6090    virtual HRESULT STDMETHODCALLTYPE GetCurrentThreadType(
6091        THDTYPE *pThreadType) = 0;
6092
6093    virtual HRESULT STDMETHODCALLTYPE GetCurrentLogicalThreadId(
6094        GUID *pguidLogicalThreadId) = 0;
6095
6096    virtual HRESULT STDMETHODCALLTYPE SetCurrentLogicalThreadId(
6097        REFGUID rguid) = 0;
6098
6099};
6100#ifdef __CRT_UUID_DECL
6101__CRT_UUID_DECL(IComThreadingInfo, 0x000001ce, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6102#endif
6103#else
6104typedef struct IComThreadingInfoVtbl {
6105    BEGIN_INTERFACE
6106
6107    /*** IUnknown methods ***/
6108    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6109        IComThreadingInfo *This,
6110        REFIID riid,
6111        void **ppvObject);
6112
6113    ULONG (STDMETHODCALLTYPE *AddRef)(
6114        IComThreadingInfo *This);
6115
6116    ULONG (STDMETHODCALLTYPE *Release)(
6117        IComThreadingInfo *This);
6118
6119    /*** IComThreadingInfo methods ***/
6120    HRESULT (STDMETHODCALLTYPE *GetCurrentApartmentType)(
6121        IComThreadingInfo *This,
6122        APTTYPE *pAptType);
6123
6124    HRESULT (STDMETHODCALLTYPE *GetCurrentThreadType)(
6125        IComThreadingInfo *This,
6126        THDTYPE *pThreadType);
6127
6128    HRESULT (STDMETHODCALLTYPE *GetCurrentLogicalThreadId)(
6129        IComThreadingInfo *This,
6130        GUID *pguidLogicalThreadId);
6131
6132    HRESULT (STDMETHODCALLTYPE *SetCurrentLogicalThreadId)(
6133        IComThreadingInfo *This,
6134        REFGUID rguid);
6135
6136    END_INTERFACE
6137} IComThreadingInfoVtbl;
6138
6139interface IComThreadingInfo {
6140    CONST_VTBL IComThreadingInfoVtbl* lpVtbl;
6141};
6142
6143#ifdef COBJMACROS
6144#ifndef WIDL_C_INLINE_WRAPPERS
6145/*** IUnknown methods ***/
6146#define IComThreadingInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6147#define IComThreadingInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
6148#define IComThreadingInfo_Release(This) (This)->lpVtbl->Release(This)
6149/*** IComThreadingInfo methods ***/
6150#define IComThreadingInfo_GetCurrentApartmentType(This,pAptType) (This)->lpVtbl->GetCurrentApartmentType(This,pAptType)
6151#define IComThreadingInfo_GetCurrentThreadType(This,pThreadType) (This)->lpVtbl->GetCurrentThreadType(This,pThreadType)
6152#define IComThreadingInfo_GetCurrentLogicalThreadId(This,pguidLogicalThreadId) (This)->lpVtbl->GetCurrentLogicalThreadId(This,pguidLogicalThreadId)
6153#define IComThreadingInfo_SetCurrentLogicalThreadId(This,rguid) (This)->lpVtbl->SetCurrentLogicalThreadId(This,rguid)
6154#else
6155/*** IUnknown methods ***/
6156static inline HRESULT IComThreadingInfo_QueryInterface(IComThreadingInfo* This,REFIID riid,void **ppvObject) {
6157    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6158}
6159static inline ULONG IComThreadingInfo_AddRef(IComThreadingInfo* This) {
6160    return This->lpVtbl->AddRef(This);
6161}
6162static inline ULONG IComThreadingInfo_Release(IComThreadingInfo* This) {
6163    return This->lpVtbl->Release(This);
6164}
6165/*** IComThreadingInfo methods ***/
6166static inline HRESULT IComThreadingInfo_GetCurrentApartmentType(IComThreadingInfo* This,APTTYPE *pAptType) {
6167    return This->lpVtbl->GetCurrentApartmentType(This,pAptType);
6168}
6169static inline HRESULT IComThreadingInfo_GetCurrentThreadType(IComThreadingInfo* This,THDTYPE *pThreadType) {
6170    return This->lpVtbl->GetCurrentThreadType(This,pThreadType);
6171}
6172static inline HRESULT IComThreadingInfo_GetCurrentLogicalThreadId(IComThreadingInfo* This,GUID *pguidLogicalThreadId) {
6173    return This->lpVtbl->GetCurrentLogicalThreadId(This,pguidLogicalThreadId);
6174}
6175static inline HRESULT IComThreadingInfo_SetCurrentLogicalThreadId(IComThreadingInfo* This,REFGUID rguid) {
6176    return This->lpVtbl->SetCurrentLogicalThreadId(This,rguid);
6177}
6178#endif
6179#endif
6180
6181#endif
6182
6183
6184#endif  /* __IComThreadingInfo_INTERFACE_DEFINED__ */
6185
6186
6187/*****************************************************************************
6188 * IProcessInitControl interface
6189 */
6190#ifndef __IProcessInitControl_INTERFACE_DEFINED__
6191#define __IProcessInitControl_INTERFACE_DEFINED__
6192
6193DEFINE_GUID(IID_IProcessInitControl, 0x72380d55, 0x8d2b, 0x43a3, 0x85,0x13, 0x2b,0x6e,0xf3,0x14,0x34,0xe9);
6194#if defined(__cplusplus) && !defined(CINTERFACE)
6195MIDL_INTERFACE("72380d55-8d2b-43a3-8513-2b6ef31434e9")
6196IProcessInitControl : public IUnknown
6197{
6198    virtual HRESULT STDMETHODCALLTYPE ResetInitializerTimeout(
6199        DWORD dwSecondsRemaining) = 0;
6200
6201};
6202#ifdef __CRT_UUID_DECL
6203__CRT_UUID_DECL(IProcessInitControl, 0x72380d55, 0x8d2b, 0x43a3, 0x85,0x13, 0x2b,0x6e,0xf3,0x14,0x34,0xe9)
6204#endif
6205#else
6206typedef struct IProcessInitControlVtbl {
6207    BEGIN_INTERFACE
6208
6209    /*** IUnknown methods ***/
6210    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6211        IProcessInitControl *This,
6212        REFIID riid,
6213        void **ppvObject);
6214
6215    ULONG (STDMETHODCALLTYPE *AddRef)(
6216        IProcessInitControl *This);
6217
6218    ULONG (STDMETHODCALLTYPE *Release)(
6219        IProcessInitControl *This);
6220
6221    /*** IProcessInitControl methods ***/
6222    HRESULT (STDMETHODCALLTYPE *ResetInitializerTimeout)(
6223        IProcessInitControl *This,
6224        DWORD dwSecondsRemaining);
6225
6226    END_INTERFACE
6227} IProcessInitControlVtbl;
6228
6229interface IProcessInitControl {
6230    CONST_VTBL IProcessInitControlVtbl* lpVtbl;
6231};
6232
6233#ifdef COBJMACROS
6234#ifndef WIDL_C_INLINE_WRAPPERS
6235/*** IUnknown methods ***/
6236#define IProcessInitControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6237#define IProcessInitControl_AddRef(This) (This)->lpVtbl->AddRef(This)
6238#define IProcessInitControl_Release(This) (This)->lpVtbl->Release(This)
6239/*** IProcessInitControl methods ***/
6240#define IProcessInitControl_ResetInitializerTimeout(This,dwSecondsRemaining) (This)->lpVtbl->ResetInitializerTimeout(This,dwSecondsRemaining)
6241#else
6242/*** IUnknown methods ***/
6243static inline HRESULT IProcessInitControl_QueryInterface(IProcessInitControl* This,REFIID riid,void **ppvObject) {
6244    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6245}
6246static inline ULONG IProcessInitControl_AddRef(IProcessInitControl* This) {
6247    return This->lpVtbl->AddRef(This);
6248}
6249static inline ULONG IProcessInitControl_Release(IProcessInitControl* This) {
6250    return This->lpVtbl->Release(This);
6251}
6252/*** IProcessInitControl methods ***/
6253static inline HRESULT IProcessInitControl_ResetInitializerTimeout(IProcessInitControl* This,DWORD dwSecondsRemaining) {
6254    return This->lpVtbl->ResetInitializerTimeout(This,dwSecondsRemaining);
6255}
6256#endif
6257#endif
6258
6259#endif
6260
6261
6262#endif  /* __IProcessInitControl_INTERFACE_DEFINED__ */
6263
6264
6265/*****************************************************************************
6266 * IFastRundown interface
6267 */
6268#ifndef __IFastRundown_INTERFACE_DEFINED__
6269#define __IFastRundown_INTERFACE_DEFINED__
6270
6271DEFINE_GUID(IID_IFastRundown, 0x00000040, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6272#if defined(__cplusplus) && !defined(CINTERFACE)
6273MIDL_INTERFACE("00000040-0000-0000-c000-000000000046")
6274IFastRundown : public IUnknown
6275{
6276};
6277#ifdef __CRT_UUID_DECL
6278__CRT_UUID_DECL(IFastRundown, 0x00000040, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6279#endif
6280#else
6281typedef struct IFastRundownVtbl {
6282    BEGIN_INTERFACE
6283
6284    /*** IUnknown methods ***/
6285    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6286        IFastRundown *This,
6287        REFIID riid,
6288        void **ppvObject);
6289
6290    ULONG (STDMETHODCALLTYPE *AddRef)(
6291        IFastRundown *This);
6292
6293    ULONG (STDMETHODCALLTYPE *Release)(
6294        IFastRundown *This);
6295
6296    END_INTERFACE
6297} IFastRundownVtbl;
6298
6299interface IFastRundown {
6300    CONST_VTBL IFastRundownVtbl* lpVtbl;
6301};
6302
6303#ifdef COBJMACROS
6304#ifndef WIDL_C_INLINE_WRAPPERS
6305/*** IUnknown methods ***/
6306#define IFastRundown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6307#define IFastRundown_AddRef(This) (This)->lpVtbl->AddRef(This)
6308#define IFastRundown_Release(This) (This)->lpVtbl->Release(This)
6309#else
6310/*** IUnknown methods ***/
6311static inline HRESULT IFastRundown_QueryInterface(IFastRundown* This,REFIID riid,void **ppvObject) {
6312    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6313}
6314static inline ULONG IFastRundown_AddRef(IFastRundown* This) {
6315    return This->lpVtbl->AddRef(This);
6316}
6317static inline ULONG IFastRundown_Release(IFastRundown* This) {
6318    return This->lpVtbl->Release(This);
6319}
6320#endif
6321#endif
6322
6323#endif
6324
6325
6326#endif  /* __IFastRundown_INTERFACE_DEFINED__ */
6327
6328
6329typedef enum CO_MARSHALING_CONTEXT_ATTRIBUTES {
6330    CO_MARSHALING_SOURCE_IS_APP_CONTAINER = 0
6331} CO_MARSHALING_CONTEXT_ATTRIBUTES;
6332
6333/*****************************************************************************
6334 * IMarshalingStream interface
6335 */
6336#ifndef __IMarshalingStream_INTERFACE_DEFINED__
6337#define __IMarshalingStream_INTERFACE_DEFINED__
6338
6339DEFINE_GUID(IID_IMarshalingStream, 0xd8f2f5e6, 0x6102, 0x4863, 0x9f,0x26, 0x38,0x9a,0x46,0x76,0xef,0xde);
6340#if defined(__cplusplus) && !defined(CINTERFACE)
6341MIDL_INTERFACE("d8f2f5e6-6102-4863-9f26-389a4676efde")
6342IMarshalingStream : public IStream
6343{
6344    virtual HRESULT STDMETHODCALLTYPE GetMarshalingContextAttribute(
6345        CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
6346        ULONG_PTR *pAttributeValue) = 0;
6347
6348};
6349#ifdef __CRT_UUID_DECL
6350__CRT_UUID_DECL(IMarshalingStream, 0xd8f2f5e6, 0x6102, 0x4863, 0x9f,0x26, 0x38,0x9a,0x46,0x76,0xef,0xde)
6351#endif
6352#else
6353typedef struct IMarshalingStreamVtbl {
6354    BEGIN_INTERFACE
6355
6356    /*** IUnknown methods ***/
6357    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6358        IMarshalingStream *This,
6359        REFIID riid,
6360        void **ppvObject);
6361
6362    ULONG (STDMETHODCALLTYPE *AddRef)(
6363        IMarshalingStream *This);
6364
6365    ULONG (STDMETHODCALLTYPE *Release)(
6366        IMarshalingStream *This);
6367
6368    /*** ISequentialStream methods ***/
6369    HRESULT (STDMETHODCALLTYPE *Read)(
6370        IMarshalingStream *This,
6371        void *pv,
6372        ULONG cb,
6373        ULONG *pcbRead);
6374
6375    HRESULT (STDMETHODCALLTYPE *Write)(
6376        IMarshalingStream *This,
6377        const void *pv,
6378        ULONG cb,
6379        ULONG *pcbWritten);
6380
6381    /*** IStream methods ***/
6382    HRESULT (STDMETHODCALLTYPE *Seek)(
6383        IMarshalingStream *This,
6384        LARGE_INTEGER dlibMove,
6385        DWORD dwOrigin,
6386        ULARGE_INTEGER *plibNewPosition);
6387
6388    HRESULT (STDMETHODCALLTYPE *SetSize)(
6389        IMarshalingStream *This,
6390        ULARGE_INTEGER libNewSize);
6391
6392    HRESULT (STDMETHODCALLTYPE *CopyTo)(
6393        IMarshalingStream *This,
6394        IStream *pstm,
6395        ULARGE_INTEGER cb,
6396        ULARGE_INTEGER *pcbRead,
6397        ULARGE_INTEGER *pcbWritten);
6398
6399    HRESULT (STDMETHODCALLTYPE *Commit)(
6400        IMarshalingStream *This,
6401        DWORD grfCommitFlags);
6402
6403    HRESULT (STDMETHODCALLTYPE *Revert)(
6404        IMarshalingStream *This);
6405
6406    HRESULT (STDMETHODCALLTYPE *LockRegion)(
6407        IMarshalingStream *This,
6408        ULARGE_INTEGER libOffset,
6409        ULARGE_INTEGER cb,
6410        DWORD dwLockType);
6411
6412    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
6413        IMarshalingStream *This,
6414        ULARGE_INTEGER libOffset,
6415        ULARGE_INTEGER cb,
6416        DWORD dwLockType);
6417
6418    HRESULT (STDMETHODCALLTYPE *Stat)(
6419        IMarshalingStream *This,
6420        STATSTG *pstatstg,
6421        DWORD grfStatFlag);
6422
6423    HRESULT (STDMETHODCALLTYPE *Clone)(
6424        IMarshalingStream *This,
6425        IStream **ppstm);
6426
6427    /*** IMarshalingStream methods ***/
6428    HRESULT (STDMETHODCALLTYPE *GetMarshalingContextAttribute)(
6429        IMarshalingStream *This,
6430        CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
6431        ULONG_PTR *pAttributeValue);
6432
6433    END_INTERFACE
6434} IMarshalingStreamVtbl;
6435
6436interface IMarshalingStream {
6437    CONST_VTBL IMarshalingStreamVtbl* lpVtbl;
6438};
6439
6440#ifdef COBJMACROS
6441#ifndef WIDL_C_INLINE_WRAPPERS
6442/*** IUnknown methods ***/
6443#define IMarshalingStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6444#define IMarshalingStream_AddRef(This) (This)->lpVtbl->AddRef(This)
6445#define IMarshalingStream_Release(This) (This)->lpVtbl->Release(This)
6446/*** ISequentialStream methods ***/
6447#define IMarshalingStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
6448#define IMarshalingStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
6449/*** IStream methods ***/
6450#define IMarshalingStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
6451#define IMarshalingStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
6452#define IMarshalingStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
6453#define IMarshalingStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
6454#define IMarshalingStream_Revert(This) (This)->lpVtbl->Revert(This)
6455#define IMarshalingStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
6456#define IMarshalingStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
6457#define IMarshalingStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
6458#define IMarshalingStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
6459/*** IMarshalingStream methods ***/
6460#define IMarshalingStream_GetMarshalingContextAttribute(This,attribute,pAttributeValue) (This)->lpVtbl->GetMarshalingContextAttribute(This,attribute,pAttributeValue)
6461#else
6462/*** IUnknown methods ***/
6463static inline HRESULT IMarshalingStream_QueryInterface(IMarshalingStream* This,REFIID riid,void **ppvObject) {
6464    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6465}
6466static inline ULONG IMarshalingStream_AddRef(IMarshalingStream* This) {
6467    return This->lpVtbl->AddRef(This);
6468}
6469static inline ULONG IMarshalingStream_Release(IMarshalingStream* This) {
6470    return This->lpVtbl->Release(This);
6471}
6472/*** ISequentialStream methods ***/
6473static inline HRESULT IMarshalingStream_Read(IMarshalingStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
6474    return This->lpVtbl->Read(This,pv,cb,pcbRead);
6475}
6476static inline HRESULT IMarshalingStream_Write(IMarshalingStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
6477    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
6478}
6479/*** IStream methods ***/
6480static inline HRESULT IMarshalingStream_Seek(IMarshalingStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
6481    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
6482}
6483static inline HRESULT IMarshalingStream_SetSize(IMarshalingStream* This,ULARGE_INTEGER libNewSize) {
6484    return This->lpVtbl->SetSize(This,libNewSize);
6485}
6486static inline HRESULT IMarshalingStream_CopyTo(IMarshalingStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
6487    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
6488}
6489static inline HRESULT IMarshalingStream_Commit(IMarshalingStream* This,DWORD grfCommitFlags) {
6490    return This->lpVtbl->Commit(This,grfCommitFlags);
6491}
6492static inline HRESULT IMarshalingStream_Revert(IMarshalingStream* This) {
6493    return This->lpVtbl->Revert(This);
6494}
6495static inline HRESULT IMarshalingStream_LockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
6496    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
6497}
6498static inline HRESULT IMarshalingStream_UnlockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
6499    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
6500}
6501static inline HRESULT IMarshalingStream_Stat(IMarshalingStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
6502    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
6503}
6504static inline HRESULT IMarshalingStream_Clone(IMarshalingStream* This,IStream **ppstm) {
6505    return This->lpVtbl->Clone(This,ppstm);
6506}
6507/*** IMarshalingStream methods ***/
6508static inline HRESULT IMarshalingStream_GetMarshalingContextAttribute(IMarshalingStream* This,CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,ULONG_PTR *pAttributeValue) {
6509    return This->lpVtbl->GetMarshalingContextAttribute(This,attribute,pAttributeValue);
6510}
6511#endif
6512#endif
6513
6514#endif
6515
6516
6517#endif  /* __IMarshalingStream_INTERFACE_DEFINED__ */
6518
6519#endif
6520
6521#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
6522EXTERN_C const GUID  IID_ICallbackWithNoReentrancyToApplicationSTA;
6523#endif
6524#define _OBJIDLBASE_
6525#endif
6526/* Begin additional prototypes for all interfaces */
6527
6528
6529/* End additional prototypes */
6530
6531#ifdef __cplusplus
6532}
6533#endif
6534
6535#endif /* __objidlbase_h__ */