zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

objidlbase.h (213750B) - Raw


      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__
     23 typedef interface IMarshal IMarshal;
     24 #ifdef __cplusplus
     25 interface IMarshal;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __INoMarshal_FWD_DEFINED__
     30 #define __INoMarshal_FWD_DEFINED__
     31 typedef interface INoMarshal INoMarshal;
     32 #ifdef __cplusplus
     33 interface INoMarshal;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __IAgileObject_FWD_DEFINED__
     38 #define __IAgileObject_FWD_DEFINED__
     39 typedef interface IAgileObject IAgileObject;
     40 #ifdef __cplusplus
     41 interface IAgileObject;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __IAgileReference_FWD_DEFINED__
     46 #define __IAgileReference_FWD_DEFINED__
     47 typedef interface IAgileReference IAgileReference;
     48 #ifdef __cplusplus
     49 interface IAgileReference;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __IMarshal2_FWD_DEFINED__
     54 #define __IMarshal2_FWD_DEFINED__
     55 typedef interface IMarshal2 IMarshal2;
     56 #ifdef __cplusplus
     57 interface IMarshal2;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 #ifndef __IMalloc_FWD_DEFINED__
     62 #define __IMalloc_FWD_DEFINED__
     63 typedef interface IMalloc IMalloc;
     64 #ifdef __cplusplus
     65 interface IMalloc;
     66 #endif /* __cplusplus */
     67 #endif
     68 
     69 #ifndef __IStdMarshalInfo_FWD_DEFINED__
     70 #define __IStdMarshalInfo_FWD_DEFINED__
     71 typedef interface IStdMarshalInfo IStdMarshalInfo;
     72 #ifdef __cplusplus
     73 interface IStdMarshalInfo;
     74 #endif /* __cplusplus */
     75 #endif
     76 
     77 #ifndef __IExternalConnection_FWD_DEFINED__
     78 #define __IExternalConnection_FWD_DEFINED__
     79 typedef interface IExternalConnection IExternalConnection;
     80 #ifdef __cplusplus
     81 interface IExternalConnection;
     82 #endif /* __cplusplus */
     83 #endif
     84 
     85 #ifndef __IMultiQI_FWD_DEFINED__
     86 #define __IMultiQI_FWD_DEFINED__
     87 typedef interface IMultiQI IMultiQI;
     88 #ifdef __cplusplus
     89 interface IMultiQI;
     90 #endif /* __cplusplus */
     91 #endif
     92 
     93 #ifndef __AsyncIMultiQI_FWD_DEFINED__
     94 #define __AsyncIMultiQI_FWD_DEFINED__
     95 typedef interface AsyncIMultiQI AsyncIMultiQI;
     96 #ifdef __cplusplus
     97 interface AsyncIMultiQI;
     98 #endif /* __cplusplus */
     99 #endif
    100 
    101 #ifndef __IInternalUnknown_FWD_DEFINED__
    102 #define __IInternalUnknown_FWD_DEFINED__
    103 typedef interface IInternalUnknown IInternalUnknown;
    104 #ifdef __cplusplus
    105 interface IInternalUnknown;
    106 #endif /* __cplusplus */
    107 #endif
    108 
    109 #ifndef __IEnumUnknown_FWD_DEFINED__
    110 #define __IEnumUnknown_FWD_DEFINED__
    111 typedef interface IEnumUnknown IEnumUnknown;
    112 #ifdef __cplusplus
    113 interface IEnumUnknown;
    114 #endif /* __cplusplus */
    115 #endif
    116 
    117 #ifndef __IEnumString_FWD_DEFINED__
    118 #define __IEnumString_FWD_DEFINED__
    119 typedef interface IEnumString IEnumString;
    120 #ifdef __cplusplus
    121 interface IEnumString;
    122 #endif /* __cplusplus */
    123 #endif
    124 
    125 #ifndef __ISequentialStream_FWD_DEFINED__
    126 #define __ISequentialStream_FWD_DEFINED__
    127 typedef interface ISequentialStream ISequentialStream;
    128 #ifdef __cplusplus
    129 interface ISequentialStream;
    130 #endif /* __cplusplus */
    131 #endif
    132 
    133 #ifndef __IStream_FWD_DEFINED__
    134 #define __IStream_FWD_DEFINED__
    135 typedef interface IStream IStream;
    136 #ifdef __cplusplus
    137 interface IStream;
    138 #endif /* __cplusplus */
    139 #endif
    140 
    141 #ifndef __IRpcChannelBuffer_FWD_DEFINED__
    142 #define __IRpcChannelBuffer_FWD_DEFINED__
    143 typedef interface IRpcChannelBuffer IRpcChannelBuffer;
    144 #ifdef __cplusplus
    145 interface IRpcChannelBuffer;
    146 #endif /* __cplusplus */
    147 #endif
    148 
    149 #ifndef __IRpcChannelBuffer2_FWD_DEFINED__
    150 #define __IRpcChannelBuffer2_FWD_DEFINED__
    151 typedef interface IRpcChannelBuffer2 IRpcChannelBuffer2;
    152 #ifdef __cplusplus
    153 interface IRpcChannelBuffer2;
    154 #endif /* __cplusplus */
    155 #endif
    156 
    157 #ifndef __IAsyncRpcChannelBuffer_FWD_DEFINED__
    158 #define __IAsyncRpcChannelBuffer_FWD_DEFINED__
    159 typedef interface IAsyncRpcChannelBuffer IAsyncRpcChannelBuffer;
    160 #ifdef __cplusplus
    161 interface IAsyncRpcChannelBuffer;
    162 #endif /* __cplusplus */
    163 #endif
    164 
    165 #ifndef __IRpcChannelBuffer3_FWD_DEFINED__
    166 #define __IRpcChannelBuffer3_FWD_DEFINED__
    167 typedef interface IRpcChannelBuffer3 IRpcChannelBuffer3;
    168 #ifdef __cplusplus
    169 interface IRpcChannelBuffer3;
    170 #endif /* __cplusplus */
    171 #endif
    172 
    173 #ifndef __IRpcSyntaxNegotiate_FWD_DEFINED__
    174 #define __IRpcSyntaxNegotiate_FWD_DEFINED__
    175 typedef interface IRpcSyntaxNegotiate IRpcSyntaxNegotiate;
    176 #ifdef __cplusplus
    177 interface IRpcSyntaxNegotiate;
    178 #endif /* __cplusplus */
    179 #endif
    180 
    181 #ifndef __IRpcProxyBuffer_FWD_DEFINED__
    182 #define __IRpcProxyBuffer_FWD_DEFINED__
    183 typedef interface IRpcProxyBuffer IRpcProxyBuffer;
    184 #ifdef __cplusplus
    185 interface IRpcProxyBuffer;
    186 #endif /* __cplusplus */
    187 #endif
    188 
    189 #ifndef __IRpcStubBuffer_FWD_DEFINED__
    190 #define __IRpcStubBuffer_FWD_DEFINED__
    191 typedef interface IRpcStubBuffer IRpcStubBuffer;
    192 #ifdef __cplusplus
    193 interface IRpcStubBuffer;
    194 #endif /* __cplusplus */
    195 #endif
    196 
    197 #ifndef __IPSFactoryBuffer_FWD_DEFINED__
    198 #define __IPSFactoryBuffer_FWD_DEFINED__
    199 typedef interface IPSFactoryBuffer IPSFactoryBuffer;
    200 #ifdef __cplusplus
    201 interface IPSFactoryBuffer;
    202 #endif /* __cplusplus */
    203 #endif
    204 
    205 #ifndef __IChannelHook_FWD_DEFINED__
    206 #define __IChannelHook_FWD_DEFINED__
    207 typedef interface IChannelHook IChannelHook;
    208 #ifdef __cplusplus
    209 interface IChannelHook;
    210 #endif /* __cplusplus */
    211 #endif
    212 
    213 #ifndef __IClientSecurity_FWD_DEFINED__
    214 #define __IClientSecurity_FWD_DEFINED__
    215 typedef interface IClientSecurity IClientSecurity;
    216 #ifdef __cplusplus
    217 interface IClientSecurity;
    218 #endif /* __cplusplus */
    219 #endif
    220 
    221 #ifndef __IServerSecurity_FWD_DEFINED__
    222 #define __IServerSecurity_FWD_DEFINED__
    223 typedef interface IServerSecurity IServerSecurity;
    224 #ifdef __cplusplus
    225 interface IServerSecurity;
    226 #endif /* __cplusplus */
    227 #endif
    228 
    229 #ifndef __IRpcOptions_FWD_DEFINED__
    230 #define __IRpcOptions_FWD_DEFINED__
    231 typedef interface IRpcOptions IRpcOptions;
    232 #ifdef __cplusplus
    233 interface IRpcOptions;
    234 #endif /* __cplusplus */
    235 #endif
    236 
    237 #ifndef __IGlobalOptions_FWD_DEFINED__
    238 #define __IGlobalOptions_FWD_DEFINED__
    239 typedef interface IGlobalOptions IGlobalOptions;
    240 #ifdef __cplusplus
    241 interface IGlobalOptions;
    242 #endif /* __cplusplus */
    243 #endif
    244 
    245 #ifndef __ISurrogate_FWD_DEFINED__
    246 #define __ISurrogate_FWD_DEFINED__
    247 typedef interface ISurrogate ISurrogate;
    248 #ifdef __cplusplus
    249 interface ISurrogate;
    250 #endif /* __cplusplus */
    251 #endif
    252 
    253 #ifndef __IGlobalInterfaceTable_FWD_DEFINED__
    254 #define __IGlobalInterfaceTable_FWD_DEFINED__
    255 typedef interface IGlobalInterfaceTable IGlobalInterfaceTable;
    256 #ifdef __cplusplus
    257 interface IGlobalInterfaceTable;
    258 #endif /* __cplusplus */
    259 #endif
    260 
    261 #ifndef __ISynchronize_FWD_DEFINED__
    262 #define __ISynchronize_FWD_DEFINED__
    263 typedef interface ISynchronize ISynchronize;
    264 #ifdef __cplusplus
    265 interface ISynchronize;
    266 #endif /* __cplusplus */
    267 #endif
    268 
    269 #ifndef __ISynchronizeHandle_FWD_DEFINED__
    270 #define __ISynchronizeHandle_FWD_DEFINED__
    271 typedef interface ISynchronizeHandle ISynchronizeHandle;
    272 #ifdef __cplusplus
    273 interface ISynchronizeHandle;
    274 #endif /* __cplusplus */
    275 #endif
    276 
    277 #ifndef __ISynchronizeEvent_FWD_DEFINED__
    278 #define __ISynchronizeEvent_FWD_DEFINED__
    279 typedef interface ISynchronizeEvent ISynchronizeEvent;
    280 #ifdef __cplusplus
    281 interface ISynchronizeEvent;
    282 #endif /* __cplusplus */
    283 #endif
    284 
    285 #ifndef __ISynchronizeContainer_FWD_DEFINED__
    286 #define __ISynchronizeContainer_FWD_DEFINED__
    287 typedef interface ISynchronizeContainer ISynchronizeContainer;
    288 #ifdef __cplusplus
    289 interface ISynchronizeContainer;
    290 #endif /* __cplusplus */
    291 #endif
    292 
    293 #ifndef __ISynchronizeMutex_FWD_DEFINED__
    294 #define __ISynchronizeMutex_FWD_DEFINED__
    295 typedef interface ISynchronizeMutex ISynchronizeMutex;
    296 #ifdef __cplusplus
    297 interface ISynchronizeMutex;
    298 #endif /* __cplusplus */
    299 #endif
    300 
    301 #ifndef __ICancelMethodCalls_FWD_DEFINED__
    302 #define __ICancelMethodCalls_FWD_DEFINED__
    303 typedef interface ICancelMethodCalls ICancelMethodCalls;
    304 #ifdef __cplusplus
    305 interface ICancelMethodCalls;
    306 #endif /* __cplusplus */
    307 #endif
    308 
    309 #ifndef __IAsyncManager_FWD_DEFINED__
    310 #define __IAsyncManager_FWD_DEFINED__
    311 typedef interface IAsyncManager IAsyncManager;
    312 #ifdef __cplusplus
    313 interface IAsyncManager;
    314 #endif /* __cplusplus */
    315 #endif
    316 
    317 #ifndef __ICallFactory_FWD_DEFINED__
    318 #define __ICallFactory_FWD_DEFINED__
    319 typedef interface ICallFactory ICallFactory;
    320 #ifdef __cplusplus
    321 interface ICallFactory;
    322 #endif /* __cplusplus */
    323 #endif
    324 
    325 #ifndef __IRpcHelper_FWD_DEFINED__
    326 #define __IRpcHelper_FWD_DEFINED__
    327 typedef interface IRpcHelper IRpcHelper;
    328 #ifdef __cplusplus
    329 interface IRpcHelper;
    330 #endif /* __cplusplus */
    331 #endif
    332 
    333 #ifndef __IReleaseMarshalBuffers_FWD_DEFINED__
    334 #define __IReleaseMarshalBuffers_FWD_DEFINED__
    335 typedef interface IReleaseMarshalBuffers IReleaseMarshalBuffers;
    336 #ifdef __cplusplus
    337 interface IReleaseMarshalBuffers;
    338 #endif /* __cplusplus */
    339 #endif
    340 
    341 #ifndef __IWaitMultiple_FWD_DEFINED__
    342 #define __IWaitMultiple_FWD_DEFINED__
    343 typedef interface IWaitMultiple IWaitMultiple;
    344 #ifdef __cplusplus
    345 interface IWaitMultiple;
    346 #endif /* __cplusplus */
    347 #endif
    348 
    349 #ifndef __IAddrTrackingControl_FWD_DEFINED__
    350 #define __IAddrTrackingControl_FWD_DEFINED__
    351 typedef interface IAddrTrackingControl IAddrTrackingControl;
    352 #ifdef __cplusplus
    353 interface IAddrTrackingControl;
    354 #endif /* __cplusplus */
    355 #endif
    356 
    357 #ifndef __IAddrExclusionControl_FWD_DEFINED__
    358 #define __IAddrExclusionControl_FWD_DEFINED__
    359 typedef interface IAddrExclusionControl IAddrExclusionControl;
    360 #ifdef __cplusplus
    361 interface IAddrExclusionControl;
    362 #endif /* __cplusplus */
    363 #endif
    364 
    365 #ifndef __IPipeByte_FWD_DEFINED__
    366 #define __IPipeByte_FWD_DEFINED__
    367 typedef interface IPipeByte IPipeByte;
    368 #ifdef __cplusplus
    369 interface IPipeByte;
    370 #endif /* __cplusplus */
    371 #endif
    372 
    373 #ifndef __IPipeLong_FWD_DEFINED__
    374 #define __IPipeLong_FWD_DEFINED__
    375 typedef interface IPipeLong IPipeLong;
    376 #ifdef __cplusplus
    377 interface IPipeLong;
    378 #endif /* __cplusplus */
    379 #endif
    380 
    381 #ifndef __IPipeDouble_FWD_DEFINED__
    382 #define __IPipeDouble_FWD_DEFINED__
    383 typedef interface IPipeDouble IPipeDouble;
    384 #ifdef __cplusplus
    385 interface IPipeDouble;
    386 #endif /* __cplusplus */
    387 #endif
    388 
    389 #ifndef __IEnumContextProps_FWD_DEFINED__
    390 #define __IEnumContextProps_FWD_DEFINED__
    391 typedef interface IEnumContextProps IEnumContextProps;
    392 #ifdef __cplusplus
    393 interface IEnumContextProps;
    394 #endif /* __cplusplus */
    395 #endif
    396 
    397 #ifndef __IContext_FWD_DEFINED__
    398 #define __IContext_FWD_DEFINED__
    399 typedef interface IContext IContext;
    400 #ifdef __cplusplus
    401 interface IContext;
    402 #endif /* __cplusplus */
    403 #endif
    404 
    405 #ifndef __IComThreadingInfo_FWD_DEFINED__
    406 #define __IComThreadingInfo_FWD_DEFINED__
    407 typedef interface IComThreadingInfo IComThreadingInfo;
    408 #ifdef __cplusplus
    409 interface IComThreadingInfo;
    410 #endif /* __cplusplus */
    411 #endif
    412 
    413 #ifndef __IProcessInitControl_FWD_DEFINED__
    414 #define __IProcessInitControl_FWD_DEFINED__
    415 typedef interface IProcessInitControl IProcessInitControl;
    416 #ifdef __cplusplus
    417 interface IProcessInitControl;
    418 #endif /* __cplusplus */
    419 #endif
    420 
    421 #ifndef __IFastRundown_FWD_DEFINED__
    422 #define __IFastRundown_FWD_DEFINED__
    423 typedef interface IFastRundown IFastRundown;
    424 #ifdef __cplusplus
    425 interface IFastRundown;
    426 #endif /* __cplusplus */
    427 #endif
    428 
    429 #ifndef __IMarshalingStream_FWD_DEFINED__
    430 #define __IMarshalingStream_FWD_DEFINED__
    431 typedef interface IMarshalingStream IMarshalingStream;
    432 #ifdef __cplusplus
    433 interface 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
    443 extern "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__
    470 typedef interface IStream IStream;
    471 #ifdef __cplusplus
    472 interface IStream;
    473 #endif /* __cplusplus */
    474 #endif
    475 
    476 #ifndef __IEnumString_FWD_DEFINED__
    477 #define __IEnumString_FWD_DEFINED__
    478 typedef interface IEnumString IEnumString;
    479 #ifdef __cplusplus
    480 interface IEnumString;
    481 #endif /* __cplusplus */
    482 #endif
    483 
    484 #ifndef __IMultiQI_FWD_DEFINED__
    485 #define __IMultiQI_FWD_DEFINED__
    486 typedef interface IMultiQI IMultiQI;
    487 #ifdef __cplusplus
    488 interface 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__
    497 typedef interface IAsyncManager IAsyncManager;
    498 #ifdef __cplusplus
    499 interface IAsyncManager;
    500 #endif /* __cplusplus */
    501 #endif
    502 
    503 #ifndef __ICallFactory_FWD_DEFINED__
    504 #define __ICallFactory_FWD_DEFINED__
    505 typedef interface ICallFactory ICallFactory;
    506 #ifdef __cplusplus
    507 interface ICallFactory;
    508 #endif /* __cplusplus */
    509 #endif
    510 
    511 #ifndef __ISynchronize_FWD_DEFINED__
    512 #define __ISynchronize_FWD_DEFINED__
    513 typedef interface ISynchronize ISynchronize;
    514 #ifdef __cplusplus
    515 interface ISynchronize;
    516 #endif /* __cplusplus */
    517 #endif
    518 
    519 #endif
    520 
    521 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
    522 typedef 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 
    535 typedef IMarshal *LPMARSHAL;
    536 DEFINE_GUID(IID_IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
    537 #if defined(__cplusplus) && !defined(CINTERFACE)
    538 MIDL_INTERFACE("00000003-0000-0000-c000-000000000046")
    539 IMarshal : 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
    581 typedef 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 
    641 interface 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 ***/
    660 static inline HRESULT IMarshal_QueryInterface(IMarshal* This,REFIID riid,void **ppvObject) {
    661     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    662 }
    663 static inline ULONG IMarshal_AddRef(IMarshal* This) {
    664     return This->lpVtbl->AddRef(This);
    665 }
    666 static inline ULONG IMarshal_Release(IMarshal* This) {
    667     return This->lpVtbl->Release(This);
    668 }
    669 /*** IMarshal methods ***/
    670 static 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 }
    673 static 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 }
    676 static 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 }
    679 static inline HRESULT IMarshal_UnmarshalInterface(IMarshal* This,IStream *pStm,REFIID riid,void **ppv) {
    680     return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
    681 }
    682 static inline HRESULT IMarshal_ReleaseMarshalData(IMarshal* This,IStream *pStm) {
    683     return This->lpVtbl->ReleaseMarshalData(This,pStm);
    684 }
    685 static 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 
    703 DEFINE_GUID(IID_INoMarshal, 0xecc8691b, 0xc1db, 0x4dc0, 0x85,0x5e, 0x65,0xf6,0xc5,0x51,0xaf,0x49);
    704 #if defined(__cplusplus) && !defined(CINTERFACE)
    705 MIDL_INTERFACE("ecc8691b-c1db-4dc0-855e-65f6c551af49")
    706 INoMarshal : 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
    713 typedef 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 
    731 interface 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 ***/
    743 static inline HRESULT INoMarshal_QueryInterface(INoMarshal* This,REFIID riid,void **ppvObject) {
    744     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    745 }
    746 static inline ULONG INoMarshal_AddRef(INoMarshal* This) {
    747     return This->lpVtbl->AddRef(This);
    748 }
    749 static 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 
    767 DEFINE_GUID(IID_IAgileObject, 0x94ea2b94, 0xe9cc, 0x49e0, 0xc0,0xff, 0xee,0x64,0xca,0x8f,0x5b,0x90);
    768 #if defined(__cplusplus) && !defined(CINTERFACE)
    769 MIDL_INTERFACE("94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90")
    770 IAgileObject : 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
    777 typedef 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 
    795 interface 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 ***/
    807 static inline HRESULT IAgileObject_QueryInterface(IAgileObject* This,REFIID riid,void **ppvObject) {
    808     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    809 }
    810 static inline ULONG IAgileObject_AddRef(IAgileObject* This) {
    811     return This->lpVtbl->AddRef(This);
    812 }
    813 static 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 
    830 DEFINE_GUID(IID_IAgileReference, 0xc03f6a43, 0x65a4, 0x9818, 0x98,0x7e, 0xe0,0xb8,0x10,0xd2,0xa6,0xf2);
    831 #if defined(__cplusplus) && !defined(CINTERFACE)
    832 MIDL_INTERFACE("c03f6a43-65a4-9818-987e-e0b810d2a6f2")
    833 IAgileReference : 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
    844 typedef 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 
    868 interface 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 ***/
    882 static inline HRESULT IAgileReference_QueryInterface(IAgileReference* This,REFIID riid,void **ppvObject) {
    883     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    884 }
    885 static inline ULONG IAgileReference_AddRef(IAgileReference* This) {
    886     return This->lpVtbl->AddRef(This);
    887 }
    888 static inline ULONG IAgileReference_Release(IAgileReference* This) {
    889     return This->lpVtbl->Release(This);
    890 }
    891 /*** IAgileReference methods ***/
    892 static 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 
    912 typedef IMarshal2 *LPMARSHAL2;
    913 DEFINE_GUID(IID_IMarshal2, 0x000001cf, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
    914 #if defined(__cplusplus) && !defined(CINTERFACE)
    915 MIDL_INTERFACE("000001cf-0000-0000-c000-000000000046")
    916 IMarshal2 : 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
    923 typedef 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 
    983 interface 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 ***/
   1002 static inline HRESULT IMarshal2_QueryInterface(IMarshal2* This,REFIID riid,void **ppvObject) {
   1003     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1004 }
   1005 static inline ULONG IMarshal2_AddRef(IMarshal2* This) {
   1006     return This->lpVtbl->AddRef(This);
   1007 }
   1008 static inline ULONG IMarshal2_Release(IMarshal2* This) {
   1009     return This->lpVtbl->Release(This);
   1010 }
   1011 /*** IMarshal methods ***/
   1012 static 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 }
   1015 static 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 }
   1018 static 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 }
   1021 static inline HRESULT IMarshal2_UnmarshalInterface(IMarshal2* This,IStream *pStm,REFIID riid,void **ppv) {
   1022     return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
   1023 }
   1024 static inline HRESULT IMarshal2_ReleaseMarshalData(IMarshal2* This,IStream *pStm) {
   1025     return This->lpVtbl->ReleaseMarshalData(This,pStm);
   1026 }
   1027 static 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 
   1045 typedef IMalloc *LPMALLOC;
   1046 
   1047 DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1048 #if defined(__cplusplus) && !defined(CINTERFACE)
   1049 MIDL_INTERFACE("00000002-0000-0000-c000-000000000046")
   1050 IMalloc : 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
   1076 typedef 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 
   1119 interface 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 ***/
   1138 static inline HRESULT IMalloc_QueryInterface(IMalloc* This,REFIID riid,void **ppvObject) {
   1139     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1140 }
   1141 static inline ULONG IMalloc_AddRef(IMalloc* This) {
   1142     return This->lpVtbl->AddRef(This);
   1143 }
   1144 static inline ULONG IMalloc_Release(IMalloc* This) {
   1145     return This->lpVtbl->Release(This);
   1146 }
   1147 /*** IMalloc methods ***/
   1148 static inline void * IMalloc_Alloc(IMalloc* This,SIZE_T cb) {
   1149     return This->lpVtbl->Alloc(This,cb);
   1150 }
   1151 static inline void * IMalloc_Realloc(IMalloc* This,void *pv,SIZE_T cb) {
   1152     return This->lpVtbl->Realloc(This,pv,cb);
   1153 }
   1154 static inline void IMalloc_Free(IMalloc* This,void *pv) {
   1155     This->lpVtbl->Free(This,pv);
   1156 }
   1157 static inline SIZE_T IMalloc_GetSize(IMalloc* This,void *pv) {
   1158     return This->lpVtbl->GetSize(This,pv);
   1159 }
   1160 static inline int IMalloc_DidAlloc(IMalloc* This,void *pv) {
   1161     return This->lpVtbl->DidAlloc(This,pv);
   1162 }
   1163 static 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 
   1181 typedef IStdMarshalInfo *LPSTDMARSHALINFO;
   1182 
   1183 DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1184 #if defined(__cplusplus) && !defined(CINTERFACE)
   1185 MIDL_INTERFACE("00000018-0000-0000-c000-000000000046")
   1186 IStdMarshalInfo : 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
   1198 typedef 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 
   1223 interface 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 ***/
   1237 static inline HRESULT IStdMarshalInfo_QueryInterface(IStdMarshalInfo* This,REFIID riid,void **ppvObject) {
   1238     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1239 }
   1240 static inline ULONG IStdMarshalInfo_AddRef(IStdMarshalInfo* This) {
   1241     return This->lpVtbl->AddRef(This);
   1242 }
   1243 static inline ULONG IStdMarshalInfo_Release(IStdMarshalInfo* This) {
   1244     return This->lpVtbl->Release(This);
   1245 }
   1246 /*** IStdMarshalInfo methods ***/
   1247 static 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 
   1265 typedef IExternalConnection *LPEXTERNALCONNECTION;
   1266 
   1267 typedef enum tagEXTCONN {
   1268     EXTCONN_STRONG = 0x1,
   1269     EXTCONN_WEAK = 0x2,
   1270     EXTCONN_CALLABLE = 0x4
   1271 } EXTCONN;
   1272 
   1273 DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1274 #if defined(__cplusplus) && !defined(CINTERFACE)
   1275 MIDL_INTERFACE("00000019-0000-0000-c000-000000000046")
   1276 IExternalConnection : 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
   1292 typedef 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 
   1322 interface 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 ***/
   1337 static inline HRESULT IExternalConnection_QueryInterface(IExternalConnection* This,REFIID riid,void **ppvObject) {
   1338     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1339 }
   1340 static inline ULONG IExternalConnection_AddRef(IExternalConnection* This) {
   1341     return This->lpVtbl->AddRef(This);
   1342 }
   1343 static inline ULONG IExternalConnection_Release(IExternalConnection* This) {
   1344     return This->lpVtbl->Release(This);
   1345 }
   1346 /*** IExternalConnection methods ***/
   1347 static inline DWORD IExternalConnection_AddConnection(IExternalConnection* This,DWORD extconn,DWORD reserved) {
   1348     return This->lpVtbl->AddConnection(This,extconn,reserved);
   1349 }
   1350 static 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 
   1362 typedef IMultiQI *LPMULTIQI;
   1363 #endif
   1364 
   1365 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   1366 typedef 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 
   1378 DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1379 #if defined(__cplusplus) && !defined(CINTERFACE)
   1380 MIDL_INTERFACE("00000020-0000-0000-c000-000000000046")
   1381 IMultiQI : 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
   1392 typedef 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 
   1416 interface 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 ***/
   1430 static inline HRESULT IMultiQI_QueryInterface(IMultiQI* This,REFIID riid,void **ppvObject) {
   1431     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1432 }
   1433 static inline ULONG IMultiQI_AddRef(IMultiQI* This) {
   1434     return This->lpVtbl->AddRef(This);
   1435 }
   1436 static inline ULONG IMultiQI_Release(IMultiQI* This) {
   1437     return This->lpVtbl->Release(This);
   1438 }
   1439 /*** IMultiQI methods ***/
   1440 static 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 
   1457 DEFINE_GUID(IID_AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1458 #if defined(__cplusplus) && !defined(CINTERFACE)
   1459 MIDL_INTERFACE("000e0020-0000-0000-c000-000000000046")
   1460 AsyncIMultiQI : 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
   1474 typedef 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 
   1502 interface 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 ***/
   1517 static inline HRESULT AsyncIMultiQI_QueryInterface(AsyncIMultiQI* This,REFIID riid,void **ppvObject) {
   1518     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1519 }
   1520 static inline ULONG AsyncIMultiQI_AddRef(AsyncIMultiQI* This) {
   1521     return This->lpVtbl->AddRef(This);
   1522 }
   1523 static inline ULONG AsyncIMultiQI_Release(AsyncIMultiQI* This) {
   1524     return This->lpVtbl->Release(This);
   1525 }
   1526 /*** AsyncIMultiQI methods ***/
   1527 static inline HRESULT AsyncIMultiQI_Begin_QueryMultipleInterfaces(AsyncIMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
   1528     return This->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs);
   1529 }
   1530 static 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 
   1550 DEFINE_GUID(IID_IInternalUnknown, 0x00000021, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1551 #if defined(__cplusplus) && !defined(CINTERFACE)
   1552 MIDL_INTERFACE("00000021-0000-0000-c000-000000000046")
   1553 IInternalUnknown : 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
   1564 typedef 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 
   1588 interface 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 ***/
   1602 static inline HRESULT IInternalUnknown_QueryInterface(IInternalUnknown* This,REFIID riid,void **ppvObject) {
   1603     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1604 }
   1605 static inline ULONG IInternalUnknown_AddRef(IInternalUnknown* This) {
   1606     return This->lpVtbl->AddRef(This);
   1607 }
   1608 static inline ULONG IInternalUnknown_Release(IInternalUnknown* This) {
   1609     return This->lpVtbl->Release(This);
   1610 }
   1611 /*** IInternalUnknown methods ***/
   1612 static 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 
   1632 typedef IEnumUnknown *LPENUMUNKNOWN;
   1633 
   1634 DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1635 #if defined(__cplusplus) && !defined(CINTERFACE)
   1636 MIDL_INTERFACE("00000100-0000-0000-c000-000000000046")
   1637 IEnumUnknown : 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
   1658 typedef 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 
   1694 interface 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 ***/
   1711 static inline HRESULT IEnumUnknown_QueryInterface(IEnumUnknown* This,REFIID riid,void **ppvObject) {
   1712     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1713 }
   1714 static inline ULONG IEnumUnknown_AddRef(IEnumUnknown* This) {
   1715     return This->lpVtbl->AddRef(This);
   1716 }
   1717 static inline ULONG IEnumUnknown_Release(IEnumUnknown* This) {
   1718     return This->lpVtbl->Release(This);
   1719 }
   1720 /*** IEnumUnknown methods ***/
   1721 static inline HRESULT IEnumUnknown_Next(IEnumUnknown* This,ULONG celt,IUnknown **rgelt,ULONG *pceltFetched) {
   1722     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   1723 }
   1724 static inline HRESULT IEnumUnknown_Skip(IEnumUnknown* This,ULONG celt) {
   1725     return This->lpVtbl->Skip(This,celt);
   1726 }
   1727 static inline HRESULT IEnumUnknown_Reset(IEnumUnknown* This) {
   1728     return This->lpVtbl->Reset(This);
   1729 }
   1730 static inline HRESULT IEnumUnknown_Clone(IEnumUnknown* This,IEnumUnknown **ppenum) {
   1731     return This->lpVtbl->Clone(This,ppenum);
   1732 }
   1733 #endif
   1734 #endif
   1735 
   1736 #endif
   1737 
   1738 HRESULT STDMETHODCALLTYPE IEnumUnknown_RemoteNext_Proxy(
   1739     IEnumUnknown* This,
   1740     ULONG celt,
   1741     IUnknown **rgelt,
   1742     ULONG *pceltFetched);
   1743 void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
   1744     IRpcStubBuffer* This,
   1745     IRpcChannelBuffer* pRpcChannelBuffer,
   1746     PRPC_MESSAGE pRpcMessage,
   1747     DWORD* pdwStubPhase);
   1748 HRESULT CALLBACK IEnumUnknown_Next_Proxy(
   1749     IEnumUnknown* This,
   1750     ULONG celt,
   1751     IUnknown **rgelt,
   1752     ULONG *pceltFetched);
   1753 HRESULT __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 
   1768 typedef IEnumString *LPENUMSTRING;
   1769 
   1770 DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1771 #if defined(__cplusplus) && !defined(CINTERFACE)
   1772 MIDL_INTERFACE("00000101-0000-0000-c000-000000000046")
   1773 IEnumString : 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
   1794 typedef 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 
   1830 interface 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 ***/
   1847 static inline HRESULT IEnumString_QueryInterface(IEnumString* This,REFIID riid,void **ppvObject) {
   1848     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1849 }
   1850 static inline ULONG IEnumString_AddRef(IEnumString* This) {
   1851     return This->lpVtbl->AddRef(This);
   1852 }
   1853 static inline ULONG IEnumString_Release(IEnumString* This) {
   1854     return This->lpVtbl->Release(This);
   1855 }
   1856 /*** IEnumString methods ***/
   1857 static inline HRESULT IEnumString_Next(IEnumString* This,ULONG celt,LPOLESTR *rgelt,ULONG *pceltFetched) {
   1858     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   1859 }
   1860 static inline HRESULT IEnumString_Skip(IEnumString* This,ULONG celt) {
   1861     return This->lpVtbl->Skip(This,celt);
   1862 }
   1863 static inline HRESULT IEnumString_Reset(IEnumString* This) {
   1864     return This->lpVtbl->Reset(This);
   1865 }
   1866 static inline HRESULT IEnumString_Clone(IEnumString* This,IEnumString **ppenum) {
   1867     return This->lpVtbl->Clone(This,ppenum);
   1868 }
   1869 #endif
   1870 #endif
   1871 
   1872 #endif
   1873 
   1874 HRESULT STDMETHODCALLTYPE IEnumString_RemoteNext_Proxy(
   1875     IEnumString* This,
   1876     ULONG celt,
   1877     LPOLESTR *rgelt,
   1878     ULONG *pceltFetched);
   1879 void __RPC_STUB IEnumString_RemoteNext_Stub(
   1880     IRpcStubBuffer* This,
   1881     IRpcChannelBuffer* pRpcChannelBuffer,
   1882     PRPC_MESSAGE pRpcMessage,
   1883     DWORD* pdwStubPhase);
   1884 HRESULT CALLBACK IEnumString_Next_Proxy(
   1885     IEnumString* This,
   1886     ULONG celt,
   1887     LPOLESTR *rgelt,
   1888     ULONG *pceltFetched);
   1889 HRESULT __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 
   1904 DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
   1905 #if defined(__cplusplus) && !defined(CINTERFACE)
   1906 MIDL_INTERFACE("0c733a30-2a1c-11ce-ade5-00aa0044773d")
   1907 ISequentialStream : 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
   1924 typedef 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 
   1955 interface 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 ***/
   1970 static inline HRESULT ISequentialStream_QueryInterface(ISequentialStream* This,REFIID riid,void **ppvObject) {
   1971     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1972 }
   1973 static inline ULONG ISequentialStream_AddRef(ISequentialStream* This) {
   1974     return This->lpVtbl->AddRef(This);
   1975 }
   1976 static inline ULONG ISequentialStream_Release(ISequentialStream* This) {
   1977     return This->lpVtbl->Release(This);
   1978 }
   1979 /*** ISequentialStream methods ***/
   1980 static inline HRESULT ISequentialStream_Read(ISequentialStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
   1981     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   1982 }
   1983 static 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 
   1991 HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteRead_Proxy(
   1992     ISequentialStream* This,
   1993     byte *pv,
   1994     ULONG cb,
   1995     ULONG *pcbRead);
   1996 void __RPC_STUB ISequentialStream_RemoteRead_Stub(
   1997     IRpcStubBuffer* This,
   1998     IRpcChannelBuffer* pRpcChannelBuffer,
   1999     PRPC_MESSAGE pRpcMessage,
   2000     DWORD* pdwStubPhase);
   2001 HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteWrite_Proxy(
   2002     ISequentialStream* This,
   2003     const byte *pv,
   2004     ULONG cb,
   2005     ULONG *pcbWritten);
   2006 void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
   2007     IRpcStubBuffer* This,
   2008     IRpcChannelBuffer* pRpcChannelBuffer,
   2009     PRPC_MESSAGE pRpcMessage,
   2010     DWORD* pdwStubPhase);
   2011 HRESULT CALLBACK ISequentialStream_Read_Proxy(
   2012     ISequentialStream* This,
   2013     void *pv,
   2014     ULONG cb,
   2015     ULONG *pcbRead);
   2016 HRESULT __RPC_STUB ISequentialStream_Read_Stub(
   2017     ISequentialStream* This,
   2018     byte *pv,
   2019     ULONG cb,
   2020     ULONG *pcbRead);
   2021 HRESULT CALLBACK ISequentialStream_Write_Proxy(
   2022     ISequentialStream* This,
   2023     const void *pv,
   2024     ULONG cb,
   2025     ULONG *pcbWritten);
   2026 HRESULT __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 
   2041 typedef IStream *LPSTREAM;
   2042 
   2043 typedef 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 
   2057 typedef enum tagSTGTY {
   2058     STGTY_STORAGE = 1,
   2059     STGTY_STREAM = 2,
   2060     STGTY_LOCKBYTES = 3,
   2061     STGTY_PROPERTY = 4
   2062 } STGTY;
   2063 
   2064 typedef enum tagSTREAM_SEEK {
   2065     STREAM_SEEK_SET = 0,
   2066     STREAM_SEEK_CUR = 1,
   2067     STREAM_SEEK_END = 2
   2068 } STREAM_SEEK;
   2069 
   2070 typedef enum tagLOCKTYPE {
   2071     LOCK_WRITE = 1,
   2072     LOCK_EXCLUSIVE = 2,
   2073     LOCK_ONLYONCE = 4
   2074 } LOCKTYPE;
   2075 
   2076 DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   2077 #if defined(__cplusplus) && !defined(CINTERFACE)
   2078 MIDL_INTERFACE("0000000c-0000-0000-c000-000000000046")
   2079 IStream : 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
   2123 typedef 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 
   2200 interface 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 ***/
   2225 static inline HRESULT IStream_QueryInterface(IStream* This,REFIID riid,void **ppvObject) {
   2226     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2227 }
   2228 static inline ULONG IStream_AddRef(IStream* This) {
   2229     return This->lpVtbl->AddRef(This);
   2230 }
   2231 static inline ULONG IStream_Release(IStream* This) {
   2232     return This->lpVtbl->Release(This);
   2233 }
   2234 /*** ISequentialStream methods ***/
   2235 static inline HRESULT IStream_Read(IStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
   2236     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   2237 }
   2238 static 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 ***/
   2242 static inline HRESULT IStream_Seek(IStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   2243     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   2244 }
   2245 static inline HRESULT IStream_SetSize(IStream* This,ULARGE_INTEGER libNewSize) {
   2246     return This->lpVtbl->SetSize(This,libNewSize);
   2247 }
   2248 static 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 }
   2251 static inline HRESULT IStream_Commit(IStream* This,DWORD grfCommitFlags) {
   2252     return This->lpVtbl->Commit(This,grfCommitFlags);
   2253 }
   2254 static inline HRESULT IStream_Revert(IStream* This) {
   2255     return This->lpVtbl->Revert(This);
   2256 }
   2257 static inline HRESULT IStream_LockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   2258     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   2259 }
   2260 static inline HRESULT IStream_UnlockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   2261     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   2262 }
   2263 static inline HRESULT IStream_Stat(IStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   2264     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   2265 }
   2266 static inline HRESULT IStream_Clone(IStream* This,IStream **ppstm) {
   2267     return This->lpVtbl->Clone(This,ppstm);
   2268 }
   2269 #endif
   2270 #endif
   2271 
   2272 #endif
   2273 
   2274 HRESULT STDMETHODCALLTYPE IStream_RemoteSeek_Proxy(
   2275     IStream* This,
   2276     LARGE_INTEGER dlibMove,
   2277     DWORD dwOrigin,
   2278     ULARGE_INTEGER *plibNewPosition);
   2279 void __RPC_STUB IStream_RemoteSeek_Stub(
   2280     IRpcStubBuffer* This,
   2281     IRpcChannelBuffer* pRpcChannelBuffer,
   2282     PRPC_MESSAGE pRpcMessage,
   2283     DWORD* pdwStubPhase);
   2284 HRESULT STDMETHODCALLTYPE IStream_RemoteCopyTo_Proxy(
   2285     IStream* This,
   2286     IStream *pstm,
   2287     ULARGE_INTEGER cb,
   2288     ULARGE_INTEGER *pcbRead,
   2289     ULARGE_INTEGER *pcbWritten);
   2290 void __RPC_STUB IStream_RemoteCopyTo_Stub(
   2291     IRpcStubBuffer* This,
   2292     IRpcChannelBuffer* pRpcChannelBuffer,
   2293     PRPC_MESSAGE pRpcMessage,
   2294     DWORD* pdwStubPhase);
   2295 HRESULT CALLBACK IStream_Seek_Proxy(
   2296     IStream* This,
   2297     LARGE_INTEGER dlibMove,
   2298     DWORD dwOrigin,
   2299     ULARGE_INTEGER *plibNewPosition);
   2300 HRESULT __RPC_STUB IStream_Seek_Stub(
   2301     IStream* This,
   2302     LARGE_INTEGER dlibMove,
   2303     DWORD dwOrigin,
   2304     ULARGE_INTEGER *plibNewPosition);
   2305 HRESULT CALLBACK IStream_CopyTo_Proxy(
   2306     IStream* This,
   2307     IStream *pstm,
   2308     ULARGE_INTEGER cb,
   2309     ULARGE_INTEGER *pcbRead,
   2310     ULARGE_INTEGER *pcbWritten);
   2311 HRESULT __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 
   2327 typedef ULONG RPCOLEDATAREP;
   2328 
   2329 typedef 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 
   2339 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
   2340 
   2341 DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
   2342 #if defined(__cplusplus) && !defined(CINTERFACE)
   2343 MIDL_INTERFACE("d5f56b60-593b-101a-b569-08002b2dbf7a")
   2344 IRpcChannelBuffer : 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
   2369 typedef 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 
   2410 interface 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 ***/
   2428 static inline HRESULT IRpcChannelBuffer_QueryInterface(IRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
   2429     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2430 }
   2431 static inline ULONG IRpcChannelBuffer_AddRef(IRpcChannelBuffer* This) {
   2432     return This->lpVtbl->AddRef(This);
   2433 }
   2434 static inline ULONG IRpcChannelBuffer_Release(IRpcChannelBuffer* This) {
   2435     return This->lpVtbl->Release(This);
   2436 }
   2437 /*** IRpcChannelBuffer methods ***/
   2438 static inline HRESULT IRpcChannelBuffer_GetBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
   2439     return This->lpVtbl->GetBuffer(This,pMessage,riid);
   2440 }
   2441 static inline HRESULT IRpcChannelBuffer_SendReceive(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
   2442     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
   2443 }
   2444 static inline HRESULT IRpcChannelBuffer_FreeBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
   2445     return This->lpVtbl->FreeBuffer(This,pMessage);
   2446 }
   2447 static inline HRESULT IRpcChannelBuffer_GetDestCtx(IRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
   2448     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
   2449 }
   2450 static 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 
   2470 DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
   2471 #if defined(__cplusplus) && !defined(CINTERFACE)
   2472 MIDL_INTERFACE("594f31d0-7f19-11d0-b194-00a0c90dc8bf")
   2473 IRpcChannelBuffer2 : 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
   2483 typedef 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 
   2529 interface 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 ***/
   2549 static inline HRESULT IRpcChannelBuffer2_QueryInterface(IRpcChannelBuffer2* This,REFIID riid,void **ppvObject) {
   2550     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2551 }
   2552 static inline ULONG IRpcChannelBuffer2_AddRef(IRpcChannelBuffer2* This) {
   2553     return This->lpVtbl->AddRef(This);
   2554 }
   2555 static inline ULONG IRpcChannelBuffer2_Release(IRpcChannelBuffer2* This) {
   2556     return This->lpVtbl->Release(This);
   2557 }
   2558 /*** IRpcChannelBuffer methods ***/
   2559 static inline HRESULT IRpcChannelBuffer2_GetBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
   2560     return This->lpVtbl->GetBuffer(This,pMessage,riid);
   2561 }
   2562 static inline HRESULT IRpcChannelBuffer2_SendReceive(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
   2563     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
   2564 }
   2565 static inline HRESULT IRpcChannelBuffer2_FreeBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage) {
   2566     return This->lpVtbl->FreeBuffer(This,pMessage);
   2567 }
   2568 static inline HRESULT IRpcChannelBuffer2_GetDestCtx(IRpcChannelBuffer2* This,DWORD *pdwDestContext,void **ppvDestContext) {
   2569     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
   2570 }
   2571 static inline HRESULT IRpcChannelBuffer2_IsConnected(IRpcChannelBuffer2* This) {
   2572     return This->lpVtbl->IsConnected(This);
   2573 }
   2574 /*** IRpcChannelBuffer2 methods ***/
   2575 static 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 
   2593 DEFINE_GUID(IID_IAsyncRpcChannelBuffer, 0xa5029fb6, 0x3c34, 0x11d1, 0x9c,0x99, 0x00,0xc0,0x4f,0xb9,0x98,0xaa);
   2594 #if defined(__cplusplus) && !defined(CINTERFACE)
   2595 MIDL_INTERFACE("a5029fb6-3c34-11d1-9c99-00c04fb998aa")
   2596 IAsyncRpcChannelBuffer : 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
   2617 typedef 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 
   2681 interface 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 ***/
   2705 static inline HRESULT IAsyncRpcChannelBuffer_QueryInterface(IAsyncRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
   2706     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2707 }
   2708 static inline ULONG IAsyncRpcChannelBuffer_AddRef(IAsyncRpcChannelBuffer* This) {
   2709     return This->lpVtbl->AddRef(This);
   2710 }
   2711 static inline ULONG IAsyncRpcChannelBuffer_Release(IAsyncRpcChannelBuffer* This) {
   2712     return This->lpVtbl->Release(This);
   2713 }
   2714 /*** IRpcChannelBuffer methods ***/
   2715 static inline HRESULT IAsyncRpcChannelBuffer_GetBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
   2716     return This->lpVtbl->GetBuffer(This,pMessage,riid);
   2717 }
   2718 static inline HRESULT IAsyncRpcChannelBuffer_SendReceive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
   2719     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
   2720 }
   2721 static inline HRESULT IAsyncRpcChannelBuffer_FreeBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
   2722     return This->lpVtbl->FreeBuffer(This,pMessage);
   2723 }
   2724 static inline HRESULT IAsyncRpcChannelBuffer_GetDestCtx(IAsyncRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
   2725     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
   2726 }
   2727 static inline HRESULT IAsyncRpcChannelBuffer_IsConnected(IAsyncRpcChannelBuffer* This) {
   2728     return This->lpVtbl->IsConnected(This);
   2729 }
   2730 /*** IRpcChannelBuffer2 methods ***/
   2731 static inline HRESULT IAsyncRpcChannelBuffer_GetProtocolVersion(IAsyncRpcChannelBuffer* This,DWORD *pdwVersion) {
   2732     return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
   2733 }
   2734 /*** IAsyncRpcChannelBuffer methods ***/
   2735 static inline HRESULT IAsyncRpcChannelBuffer_Send(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ISynchronize *pSync,ULONG *pulStatus) {
   2736     return This->lpVtbl->Send(This,pMsg,pSync,pulStatus);
   2737 }
   2738 static inline HRESULT IAsyncRpcChannelBuffer_Receive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
   2739     return This->lpVtbl->Receive(This,pMsg,pulStatus);
   2740 }
   2741 static 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 
   2759 DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
   2760 #if defined(__cplusplus) && !defined(CINTERFACE)
   2761 MIDL_INTERFACE("25b15600-0115-11d0-bf0d-00aa00b8dfd2")
   2762 IRpcChannelBuffer3 : 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
   2799 typedef 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 
   2883 interface 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 ***/
   2911 static inline HRESULT IRpcChannelBuffer3_QueryInterface(IRpcChannelBuffer3* This,REFIID riid,void **ppvObject) {
   2912     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2913 }
   2914 static inline ULONG IRpcChannelBuffer3_AddRef(IRpcChannelBuffer3* This) {
   2915     return This->lpVtbl->AddRef(This);
   2916 }
   2917 static inline ULONG IRpcChannelBuffer3_Release(IRpcChannelBuffer3* This) {
   2918     return This->lpVtbl->Release(This);
   2919 }
   2920 /*** IRpcChannelBuffer methods ***/
   2921 static inline HRESULT IRpcChannelBuffer3_GetBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
   2922     return This->lpVtbl->GetBuffer(This,pMessage,riid);
   2923 }
   2924 static inline HRESULT IRpcChannelBuffer3_SendReceive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
   2925     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
   2926 }
   2927 static inline HRESULT IRpcChannelBuffer3_FreeBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage) {
   2928     return This->lpVtbl->FreeBuffer(This,pMessage);
   2929 }
   2930 static inline HRESULT IRpcChannelBuffer3_GetDestCtx(IRpcChannelBuffer3* This,DWORD *pdwDestContext,void **ppvDestContext) {
   2931     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
   2932 }
   2933 static inline HRESULT IRpcChannelBuffer3_IsConnected(IRpcChannelBuffer3* This) {
   2934     return This->lpVtbl->IsConnected(This);
   2935 }
   2936 /*** IRpcChannelBuffer2 methods ***/
   2937 static inline HRESULT IRpcChannelBuffer3_GetProtocolVersion(IRpcChannelBuffer3* This,DWORD *pdwVersion) {
   2938     return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
   2939 }
   2940 /*** IRpcChannelBuffer3 methods ***/
   2941 static inline HRESULT IRpcChannelBuffer3_Send(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
   2942     return This->lpVtbl->Send(This,pMsg,pulStatus);
   2943 }
   2944 static inline HRESULT IRpcChannelBuffer3_Receive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG ulSize,ULONG *pulStatus) {
   2945     return This->lpVtbl->Receive(This,pMsg,ulSize,pulStatus);
   2946 }
   2947 static inline HRESULT IRpcChannelBuffer3_Cancel(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg) {
   2948     return This->lpVtbl->Cancel(This,pMsg);
   2949 }
   2950 static inline HRESULT IRpcChannelBuffer3_GetCallContext(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,REFIID riid,void **pInterface) {
   2951     return This->lpVtbl->GetCallContext(This,pMsg,riid,pInterface);
   2952 }
   2953 static inline HRESULT IRpcChannelBuffer3_GetDestCtxEx(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext) {
   2954     return This->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext);
   2955 }
   2956 static inline HRESULT IRpcChannelBuffer3_GetState(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pState) {
   2957     return This->lpVtbl->GetState(This,pMsg,pState);
   2958 }
   2959 static 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 
   2977 DEFINE_GUID(IID_IRpcSyntaxNegotiate, 0x58a08519, 0x24c8, 0x4935, 0xb4,0x82, 0x3f,0xd8,0x23,0x33,0x3a,0x4f);
   2978 #if defined(__cplusplus) && !defined(CINTERFACE)
   2979 MIDL_INTERFACE("58a08519-24c8-4935-b482-3fd823333a4f")
   2980 IRpcSyntaxNegotiate : 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
   2990 typedef 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 
   3013 interface 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 ***/
   3027 static inline HRESULT IRpcSyntaxNegotiate_QueryInterface(IRpcSyntaxNegotiate* This,REFIID riid,void **ppvObject) {
   3028     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3029 }
   3030 static inline ULONG IRpcSyntaxNegotiate_AddRef(IRpcSyntaxNegotiate* This) {
   3031     return This->lpVtbl->AddRef(This);
   3032 }
   3033 static inline ULONG IRpcSyntaxNegotiate_Release(IRpcSyntaxNegotiate* This) {
   3034     return This->lpVtbl->Release(This);
   3035 }
   3036 /*** IRpcSyntaxNegotiate methods ***/
   3037 static 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 
   3055 DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
   3056 #if defined(__cplusplus) && !defined(CINTERFACE)
   3057 MIDL_INTERFACE("d5f56a34-593b-101a-b569-08002b2dbf7a")
   3058 IRpcProxyBuffer : 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
   3071 typedef 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 
   3097 interface 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 ***/
   3112 static inline HRESULT IRpcProxyBuffer_QueryInterface(IRpcProxyBuffer* This,REFIID riid,void **ppvObject) {
   3113     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3114 }
   3115 static inline ULONG IRpcProxyBuffer_AddRef(IRpcProxyBuffer* This) {
   3116     return This->lpVtbl->AddRef(This);
   3117 }
   3118 static inline ULONG IRpcProxyBuffer_Release(IRpcProxyBuffer* This) {
   3119     return This->lpVtbl->Release(This);
   3120 }
   3121 /*** IRpcProxyBuffer methods ***/
   3122 static inline HRESULT IRpcProxyBuffer_Connect(IRpcProxyBuffer* This,IRpcChannelBuffer *pRpcChannelBuffer) {
   3123     return This->lpVtbl->Connect(This,pRpcChannelBuffer);
   3124 }
   3125 static 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 
   3145 DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
   3146 #if defined(__cplusplus) && !defined(CINTERFACE)
   3147 MIDL_INTERFACE("d5f56afc-593b-101a-b569-08002b2dbf7a")
   3148 IRpcStubBuffer : 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
   3177 typedef 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 
   3223 interface 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 ***/
   3243 static inline HRESULT IRpcStubBuffer_QueryInterface(IRpcStubBuffer* This,REFIID riid,void **ppvObject) {
   3244     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3245 }
   3246 static inline ULONG IRpcStubBuffer_AddRef(IRpcStubBuffer* This) {
   3247     return This->lpVtbl->AddRef(This);
   3248 }
   3249 static inline ULONG IRpcStubBuffer_Release(IRpcStubBuffer* This) {
   3250     return This->lpVtbl->Release(This);
   3251 }
   3252 /*** IRpcStubBuffer methods ***/
   3253 static inline HRESULT IRpcStubBuffer_Connect(IRpcStubBuffer* This,IUnknown *pUnkServer) {
   3254     return This->lpVtbl->Connect(This,pUnkServer);
   3255 }
   3256 static inline void IRpcStubBuffer_Disconnect(IRpcStubBuffer* This) {
   3257     This->lpVtbl->Disconnect(This);
   3258 }
   3259 static inline HRESULT IRpcStubBuffer_Invoke(IRpcStubBuffer* This,RPCOLEMESSAGE *_prpcmsg,IRpcChannelBuffer *_pRpcChannelBuffer) {
   3260     return This->lpVtbl->Invoke(This,_prpcmsg,_pRpcChannelBuffer);
   3261 }
   3262 static inline IRpcStubBuffer * IRpcStubBuffer_IsIIDSupported(IRpcStubBuffer* This,REFIID riid) {
   3263     return This->lpVtbl->IsIIDSupported(This,riid);
   3264 }
   3265 static inline ULONG IRpcStubBuffer_CountRefs(IRpcStubBuffer* This) {
   3266     return This->lpVtbl->CountRefs(This);
   3267 }
   3268 static inline HRESULT IRpcStubBuffer_DebugServerQueryInterface(IRpcStubBuffer* This,void **ppv) {
   3269     return This->lpVtbl->DebugServerQueryInterface(This,ppv);
   3270 }
   3271 static 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 
   3289 DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
   3290 #if defined(__cplusplus) && !defined(CINTERFACE)
   3291 MIDL_INTERFACE("d5f569d0-593b-101a-b569-08002b2dbf7a")
   3292 IPSFactoryBuffer : 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
   3310 typedef 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 
   3342 interface 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 ***/
   3357 static inline HRESULT IPSFactoryBuffer_QueryInterface(IPSFactoryBuffer* This,REFIID riid,void **ppvObject) {
   3358     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3359 }
   3360 static inline ULONG IPSFactoryBuffer_AddRef(IPSFactoryBuffer* This) {
   3361     return This->lpVtbl->AddRef(This);
   3362 }
   3363 static inline ULONG IPSFactoryBuffer_Release(IPSFactoryBuffer* This) {
   3364     return This->lpVtbl->Release(This);
   3365 }
   3366 /*** IPSFactoryBuffer methods ***/
   3367 static 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 }
   3370 static 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)
   3385 typedef 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 
   3400 DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
   3401 #if defined(__cplusplus) && !defined(CINTERFACE)
   3402 MIDL_INTERFACE("1008c4a0-7613-11cf-9af1-0020af6e72f4")
   3403 IChannelHook : 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
   3449 typedef 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 
   3513 interface 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 ***/
   3532 static inline HRESULT IChannelHook_QueryInterface(IChannelHook* This,REFIID riid,void **ppvObject) {
   3533     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3534 }
   3535 static inline ULONG IChannelHook_AddRef(IChannelHook* This) {
   3536     return This->lpVtbl->AddRef(This);
   3537 }
   3538 static inline ULONG IChannelHook_Release(IChannelHook* This) {
   3539     return This->lpVtbl->Release(This);
   3540 }
   3541 /*** IChannelHook methods ***/
   3542 static inline void IChannelHook_ClientGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize) {
   3543     This->lpVtbl->ClientGetSize(This,uExtent,riid,pDataSize);
   3544 }
   3545 static inline void IChannelHook_ClientFillBuffer(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer) {
   3546     This->lpVtbl->ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer);
   3547 }
   3548 static 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 }
   3551 static 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 }
   3554 static inline void IChannelHook_ServerGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,HRESULT hrFault,ULONG *pDataSize) {
   3555     This->lpVtbl->ServerGetSize(This,uExtent,riid,hrFault,pDataSize);
   3556 }
   3557 static 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 
   3579 typedef struct tagSOLE_AUTHENTICATION_SERVICE {
   3580     DWORD dwAuthnSvc;
   3581     DWORD dwAuthzSvc;
   3582     OLECHAR *pPrincipalName;
   3583     HRESULT hr;
   3584 } SOLE_AUTHENTICATION_SERVICE;
   3585 
   3586 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
   3587 
   3588 typedef 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 
   3611 typedef struct tagSOLE_AUTHENTICATION_INFO {
   3612     DWORD dwAuthnSvc;
   3613     DWORD dwAuthzSvc;
   3614     void *pAuthInfo;
   3615 } SOLE_AUTHENTICATION_INFO;
   3616 typedef struct tagSOLE_AUTHENTICATION_INFO *PSOLE_AUTHENTICATION_INFO;
   3617 
   3618 typedef struct tagSOLE_AUTHENTICATION_LIST {
   3619     DWORD cAuthInfo;
   3620     SOLE_AUTHENTICATION_INFO *aAuthInfo;
   3621 } SOLE_AUTHENTICATION_LIST;
   3622 typedef struct tagSOLE_AUTHENTICATION_LIST *PSOLE_AUTHENTICATION_LIST;
   3623 
   3624 DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   3625 #if defined(__cplusplus) && !defined(CINTERFACE)
   3626 MIDL_INTERFACE("0000013d-0000-0000-c000-000000000046")
   3627 IClientSecurity : 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
   3658 typedef 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 
   3704 interface 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 ***/
   3720 static inline HRESULT IClientSecurity_QueryInterface(IClientSecurity* This,REFIID riid,void **ppvObject) {
   3721     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3722 }
   3723 static inline ULONG IClientSecurity_AddRef(IClientSecurity* This) {
   3724     return This->lpVtbl->AddRef(This);
   3725 }
   3726 static inline ULONG IClientSecurity_Release(IClientSecurity* This) {
   3727     return This->lpVtbl->Release(This);
   3728 }
   3729 /*** IClientSecurity methods ***/
   3730 static 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 }
   3733 static 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 }
   3736 static 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 
   3756 DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   3757 #if defined(__cplusplus) && !defined(CINTERFACE)
   3758 MIDL_INTERFACE("0000013e-0000-0000-c000-000000000046")
   3759 IServerSecurity : 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
   3784 typedef 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 
   3822 interface 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 ***/
   3839 static inline HRESULT IServerSecurity_QueryInterface(IServerSecurity* This,REFIID riid,void **ppvObject) {
   3840     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3841 }
   3842 static inline ULONG IServerSecurity_AddRef(IServerSecurity* This) {
   3843     return This->lpVtbl->AddRef(This);
   3844 }
   3845 static inline ULONG IServerSecurity_Release(IServerSecurity* This) {
   3846     return This->lpVtbl->Release(This);
   3847 }
   3848 /*** IServerSecurity methods ***/
   3849 static 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 }
   3852 static inline HRESULT IServerSecurity_ImpersonateClient(IServerSecurity* This) {
   3853     return This->lpVtbl->ImpersonateClient(This);
   3854 }
   3855 static inline HRESULT IServerSecurity_RevertToSelf(IServerSecurity* This) {
   3856     return This->lpVtbl->RevertToSelf(This);
   3857 }
   3858 static 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 
   3870 typedef enum tagRPCOPT_PROPERTIES {
   3871     COMBND_RPCTIMEOUT = 0x1,
   3872     COMBND_SERVER_LOCALITY = 0x2,
   3873     COMBND_RESERVED1 = 0x4
   3874 } RPCOPT_PROPERTIES;
   3875 
   3876 typedef 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 
   3888 DEFINE_GUID(IID_IRpcOptions, 0x00000144, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   3889 #if defined(__cplusplus) && !defined(CINTERFACE)
   3890 MIDL_INTERFACE("00000144-0000-0000-c000-000000000046")
   3891 IRpcOptions : 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
   3908 typedef 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 
   3939 interface 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 ***/
   3954 static inline HRESULT IRpcOptions_QueryInterface(IRpcOptions* This,REFIID riid,void **ppvObject) {
   3955     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3956 }
   3957 static inline ULONG IRpcOptions_AddRef(IRpcOptions* This) {
   3958     return This->lpVtbl->AddRef(This);
   3959 }
   3960 static inline ULONG IRpcOptions_Release(IRpcOptions* This) {
   3961     return This->lpVtbl->Release(This);
   3962 }
   3963 /*** IRpcOptions methods ***/
   3964 static inline HRESULT IRpcOptions_Set(IRpcOptions* This,IUnknown *pPrx,RPCOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
   3965     return This->lpVtbl->Set(This,pPrx,dwProperty,dwValue);
   3966 }
   3967 static 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)
   3981 typedef 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 
   3989 typedef 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 
   3996 typedef 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 
   4001 typedef 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 
   4012 typedef 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 
   4024 DEFINE_GUID(IID_IGlobalOptions, 0x0000015b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4025 #if defined(__cplusplus) && !defined(CINTERFACE)
   4026 MIDL_INTERFACE("0000015b-0000-0000-c000-000000000046")
   4027 IGlobalOptions : 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
   4042 typedef 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 
   4071 interface 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 ***/
   4086 static inline HRESULT IGlobalOptions_QueryInterface(IGlobalOptions* This,REFIID riid,void **ppvObject) {
   4087     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4088 }
   4089 static inline ULONG IGlobalOptions_AddRef(IGlobalOptions* This) {
   4090     return This->lpVtbl->AddRef(This);
   4091 }
   4092 static inline ULONG IGlobalOptions_Release(IGlobalOptions* This) {
   4093     return This->lpVtbl->Release(This);
   4094 }
   4095 /*** IGlobalOptions methods ***/
   4096 static inline HRESULT IGlobalOptions_Set(IGlobalOptions* This,GLOBALOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
   4097     return This->lpVtbl->Set(This,dwProperty,dwValue);
   4098 }
   4099 static 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 
   4120 typedef ISurrogate *LPSURROGATE;
   4121 
   4122 DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4123 #if defined(__cplusplus) && !defined(CINTERFACE)
   4124 MIDL_INTERFACE("00000022-0000-0000-c000-000000000046")
   4125 ISurrogate : 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
   4138 typedef 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 
   4164 interface 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 ***/
   4179 static inline HRESULT ISurrogate_QueryInterface(ISurrogate* This,REFIID riid,void **ppvObject) {
   4180     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4181 }
   4182 static inline ULONG ISurrogate_AddRef(ISurrogate* This) {
   4183     return This->lpVtbl->AddRef(This);
   4184 }
   4185 static inline ULONG ISurrogate_Release(ISurrogate* This) {
   4186     return This->lpVtbl->Release(This);
   4187 }
   4188 /*** ISurrogate methods ***/
   4189 static inline HRESULT ISurrogate_LoadDllServer(ISurrogate* This,REFCLSID Clsid) {
   4190     return This->lpVtbl->LoadDllServer(This,Clsid);
   4191 }
   4192 static 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 
   4210 typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
   4211 
   4212 DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4213 #if defined(__cplusplus) && !defined(CINTERFACE)
   4214 MIDL_INTERFACE("00000146-0000-0000-c000-000000000046")
   4215 IGlobalInterfaceTable : 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
   4235 typedef 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 
   4270 interface 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 ***/
   4286 static inline HRESULT IGlobalInterfaceTable_QueryInterface(IGlobalInterfaceTable* This,REFIID riid,void **ppvObject) {
   4287     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4288 }
   4289 static inline ULONG IGlobalInterfaceTable_AddRef(IGlobalInterfaceTable* This) {
   4290     return This->lpVtbl->AddRef(This);
   4291 }
   4292 static inline ULONG IGlobalInterfaceTable_Release(IGlobalInterfaceTable* This) {
   4293     return This->lpVtbl->Release(This);
   4294 }
   4295 /*** IGlobalInterfaceTable methods ***/
   4296 static inline HRESULT IGlobalInterfaceTable_RegisterInterfaceInGlobal(IGlobalInterfaceTable* This,IUnknown *pUnk,REFIID riid,DWORD *pdwCookie) {
   4297     return This->lpVtbl->RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie);
   4298 }
   4299 static inline HRESULT IGlobalInterfaceTable_RevokeInterfaceFromGlobal(IGlobalInterfaceTable* This,DWORD dwCookie) {
   4300     return This->lpVtbl->RevokeInterfaceFromGlobal(This,dwCookie);
   4301 }
   4302 static 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 
   4322 DEFINE_GUID(IID_ISynchronize, 0x00000030, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4323 #if defined(__cplusplus) && !defined(CINTERFACE)
   4324 MIDL_INTERFACE("00000030-0000-0000-c000-000000000046")
   4325 ISynchronize : 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
   4342 typedef 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 
   4372 interface 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 ***/
   4388 static inline HRESULT ISynchronize_QueryInterface(ISynchronize* This,REFIID riid,void **ppvObject) {
   4389     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4390 }
   4391 static inline ULONG ISynchronize_AddRef(ISynchronize* This) {
   4392     return This->lpVtbl->AddRef(This);
   4393 }
   4394 static inline ULONG ISynchronize_Release(ISynchronize* This) {
   4395     return This->lpVtbl->Release(This);
   4396 }
   4397 /*** ISynchronize methods ***/
   4398 static inline HRESULT ISynchronize_Wait(ISynchronize* This,DWORD dwFlags,DWORD dwMilliseconds) {
   4399     return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
   4400 }
   4401 static inline HRESULT ISynchronize_Signal(ISynchronize* This) {
   4402     return This->lpVtbl->Signal(This);
   4403 }
   4404 static 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 
   4422 DEFINE_GUID(IID_ISynchronizeHandle, 0x00000031, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4423 #if defined(__cplusplus) && !defined(CINTERFACE)
   4424 MIDL_INTERFACE("00000031-0000-0000-c000-000000000046")
   4425 ISynchronizeHandle : 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
   4435 typedef 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 
   4458 interface 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 ***/
   4472 static inline HRESULT ISynchronizeHandle_QueryInterface(ISynchronizeHandle* This,REFIID riid,void **ppvObject) {
   4473     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4474 }
   4475 static inline ULONG ISynchronizeHandle_AddRef(ISynchronizeHandle* This) {
   4476     return This->lpVtbl->AddRef(This);
   4477 }
   4478 static inline ULONG ISynchronizeHandle_Release(ISynchronizeHandle* This) {
   4479     return This->lpVtbl->Release(This);
   4480 }
   4481 /*** ISynchronizeHandle methods ***/
   4482 static 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 
   4500 DEFINE_GUID(IID_ISynchronizeEvent, 0x00000032, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4501 #if defined(__cplusplus) && !defined(CINTERFACE)
   4502 MIDL_INTERFACE("00000032-0000-0000-c000-000000000046")
   4503 ISynchronizeEvent : 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
   4513 typedef 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 
   4541 interface 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 ***/
   4557 static inline HRESULT ISynchronizeEvent_QueryInterface(ISynchronizeEvent* This,REFIID riid,void **ppvObject) {
   4558     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4559 }
   4560 static inline ULONG ISynchronizeEvent_AddRef(ISynchronizeEvent* This) {
   4561     return This->lpVtbl->AddRef(This);
   4562 }
   4563 static inline ULONG ISynchronizeEvent_Release(ISynchronizeEvent* This) {
   4564     return This->lpVtbl->Release(This);
   4565 }
   4566 /*** ISynchronizeHandle methods ***/
   4567 static inline HRESULT ISynchronizeEvent_GetHandle(ISynchronizeEvent* This,HANDLE *ph) {
   4568     return This->lpVtbl->GetHandle(This,ph);
   4569 }
   4570 /*** ISynchronizeEvent methods ***/
   4571 static 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 
   4589 DEFINE_GUID(IID_ISynchronizeContainer, 0x00000033, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4590 #if defined(__cplusplus) && !defined(CINTERFACE)
   4591 MIDL_INTERFACE("00000033-0000-0000-c000-000000000046")
   4592 ISynchronizeContainer : 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
   4607 typedef 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 
   4636 interface 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 ***/
   4651 static inline HRESULT ISynchronizeContainer_QueryInterface(ISynchronizeContainer* This,REFIID riid,void **ppvObject) {
   4652     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4653 }
   4654 static inline ULONG ISynchronizeContainer_AddRef(ISynchronizeContainer* This) {
   4655     return This->lpVtbl->AddRef(This);
   4656 }
   4657 static inline ULONG ISynchronizeContainer_Release(ISynchronizeContainer* This) {
   4658     return This->lpVtbl->Release(This);
   4659 }
   4660 /*** ISynchronizeContainer methods ***/
   4661 static inline HRESULT ISynchronizeContainer_AddSynchronize(ISynchronizeContainer* This,ISynchronize *pSync) {
   4662     return This->lpVtbl->AddSynchronize(This,pSync);
   4663 }
   4664 static 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 
   4682 DEFINE_GUID(IID_ISynchronizeMutex, 0x00000025, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4683 #if defined(__cplusplus) && !defined(CINTERFACE)
   4684 MIDL_INTERFACE("00000025-0000-0000-c000-000000000046")
   4685 ISynchronizeMutex : 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
   4695 typedef 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 
   4729 interface 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 ***/
   4747 static inline HRESULT ISynchronizeMutex_QueryInterface(ISynchronizeMutex* This,REFIID riid,void **ppvObject) {
   4748     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4749 }
   4750 static inline ULONG ISynchronizeMutex_AddRef(ISynchronizeMutex* This) {
   4751     return This->lpVtbl->AddRef(This);
   4752 }
   4753 static inline ULONG ISynchronizeMutex_Release(ISynchronizeMutex* This) {
   4754     return This->lpVtbl->Release(This);
   4755 }
   4756 /*** ISynchronize methods ***/
   4757 static inline HRESULT ISynchronizeMutex_Wait(ISynchronizeMutex* This,DWORD dwFlags,DWORD dwMilliseconds) {
   4758     return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
   4759 }
   4760 static inline HRESULT ISynchronizeMutex_Signal(ISynchronizeMutex* This) {
   4761     return This->lpVtbl->Signal(This);
   4762 }
   4763 static inline HRESULT ISynchronizeMutex_Reset(ISynchronizeMutex* This) {
   4764     return This->lpVtbl->Reset(This);
   4765 }
   4766 /*** ISynchronizeMutex methods ***/
   4767 static 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 
   4785 typedef ICancelMethodCalls *LPCANCELMETHODCALLS;
   4786 
   4787 DEFINE_GUID(IID_ICancelMethodCalls, 0x00000029, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4788 #if defined(__cplusplus) && !defined(CINTERFACE)
   4789 MIDL_INTERFACE("00000029-0000-0000-c000-000000000046")
   4790 ICancelMethodCalls : 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
   4803 typedef 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 
   4829 interface 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 ***/
   4844 static inline HRESULT ICancelMethodCalls_QueryInterface(ICancelMethodCalls* This,REFIID riid,void **ppvObject) {
   4845     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4846 }
   4847 static inline ULONG ICancelMethodCalls_AddRef(ICancelMethodCalls* This) {
   4848     return This->lpVtbl->AddRef(This);
   4849 }
   4850 static inline ULONG ICancelMethodCalls_Release(ICancelMethodCalls* This) {
   4851     return This->lpVtbl->Release(This);
   4852 }
   4853 /*** ICancelMethodCalls methods ***/
   4854 static inline HRESULT ICancelMethodCalls_Cancel(ICancelMethodCalls* This,ULONG ulSeconds) {
   4855     return This->lpVtbl->Cancel(This,ulSeconds);
   4856 }
   4857 static 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 
   4875 typedef enum tagDCOM_CALL_STATE {
   4876     DCOM_NONE = 0x0,
   4877     DCOM_CALL_COMPLETE = 0x1,
   4878     DCOM_CALL_CANCELED = 0x2
   4879 } DCOM_CALL_STATE;
   4880 
   4881 DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4882 #if defined(__cplusplus) && !defined(CINTERFACE)
   4883 MIDL_INTERFACE("0000002a-0000-0000-c000-000000000046")
   4884 IAsyncManager : 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
   4901 typedef 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 
   4933 interface 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 ***/
   4949 static inline HRESULT IAsyncManager_QueryInterface(IAsyncManager* This,REFIID riid,void **ppvObject) {
   4950     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4951 }
   4952 static inline ULONG IAsyncManager_AddRef(IAsyncManager* This) {
   4953     return This->lpVtbl->AddRef(This);
   4954 }
   4955 static inline ULONG IAsyncManager_Release(IAsyncManager* This) {
   4956     return This->lpVtbl->Release(This);
   4957 }
   4958 /*** IAsyncManager methods ***/
   4959 static inline HRESULT IAsyncManager_CompleteCall(IAsyncManager* This,HRESULT Result) {
   4960     return This->lpVtbl->CompleteCall(This,Result);
   4961 }
   4962 static inline HRESULT IAsyncManager_GetCallContext(IAsyncManager* This,REFIID riid,void **pInterface) {
   4963     return This->lpVtbl->GetCallContext(This,riid,pInterface);
   4964 }
   4965 static 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 
   4983 DEFINE_GUID(IID_ICallFactory, 0x1c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
   4984 #if defined(__cplusplus) && !defined(CINTERFACE)
   4985 MIDL_INTERFACE("1c733a30-2a1c-11ce-ade5-00aa0044773d")
   4986 ICallFactory : 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
   4999 typedef 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 
   5025 interface 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 ***/
   5039 static inline HRESULT ICallFactory_QueryInterface(ICallFactory* This,REFIID riid,void **ppvObject) {
   5040     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5041 }
   5042 static inline ULONG ICallFactory_AddRef(ICallFactory* This) {
   5043     return This->lpVtbl->AddRef(This);
   5044 }
   5045 static inline ULONG ICallFactory_Release(ICallFactory* This) {
   5046     return This->lpVtbl->Release(This);
   5047 }
   5048 /*** ICallFactory methods ***/
   5049 static 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 
   5067 DEFINE_GUID(IID_IRpcHelper, 0x00000149, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5068 #if defined(__cplusplus) && !defined(CINTERFACE)
   5069 MIDL_INTERFACE("00000149-0000-0000-c000-000000000046")
   5070 IRpcHelper : 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
   5084 typedef 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 
   5112 interface 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 ***/
   5127 static inline HRESULT IRpcHelper_QueryInterface(IRpcHelper* This,REFIID riid,void **ppvObject) {
   5128     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5129 }
   5130 static inline ULONG IRpcHelper_AddRef(IRpcHelper* This) {
   5131     return This->lpVtbl->AddRef(This);
   5132 }
   5133 static inline ULONG IRpcHelper_Release(IRpcHelper* This) {
   5134     return This->lpVtbl->Release(This);
   5135 }
   5136 /*** IRpcHelper methods ***/
   5137 static inline HRESULT IRpcHelper_GetDCOMProtocolVersion(IRpcHelper* This,DWORD *pComVersion) {
   5138     return This->lpVtbl->GetDCOMProtocolVersion(This,pComVersion);
   5139 }
   5140 static 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 
   5158 DEFINE_GUID(IID_IReleaseMarshalBuffers, 0xeb0cb9e8, 0x7996, 0x11d2, 0x87,0x2e, 0x00,0x00,0xf8,0x08,0x08,0x59);
   5159 #if defined(__cplusplus) && !defined(CINTERFACE)
   5160 MIDL_INTERFACE("eb0cb9e8-7996-11d2-872e-0000f8080859")
   5161 IReleaseMarshalBuffers : 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
   5173 typedef 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 
   5198 interface 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 ***/
   5212 static inline HRESULT IReleaseMarshalBuffers_QueryInterface(IReleaseMarshalBuffers* This,REFIID riid,void **ppvObject) {
   5213     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5214 }
   5215 static inline ULONG IReleaseMarshalBuffers_AddRef(IReleaseMarshalBuffers* This) {
   5216     return This->lpVtbl->AddRef(This);
   5217 }
   5218 static inline ULONG IReleaseMarshalBuffers_Release(IReleaseMarshalBuffers* This) {
   5219     return This->lpVtbl->Release(This);
   5220 }
   5221 /*** IReleaseMarshalBuffers methods ***/
   5222 static 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 
   5240 DEFINE_GUID(IID_IWaitMultiple, 0x0000002b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5241 #if defined(__cplusplus) && !defined(CINTERFACE)
   5242 MIDL_INTERFACE("0000002b-0000-0000-c000-000000000046")
   5243 IWaitMultiple : 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
   5257 typedef 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 
   5285 interface 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 ***/
   5300 static inline HRESULT IWaitMultiple_QueryInterface(IWaitMultiple* This,REFIID riid,void **ppvObject) {
   5301     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5302 }
   5303 static inline ULONG IWaitMultiple_AddRef(IWaitMultiple* This) {
   5304     return This->lpVtbl->AddRef(This);
   5305 }
   5306 static inline ULONG IWaitMultiple_Release(IWaitMultiple* This) {
   5307     return This->lpVtbl->Release(This);
   5308 }
   5309 /*** IWaitMultiple methods ***/
   5310 static inline HRESULT IWaitMultiple_WaitMultiple(IWaitMultiple* This,DWORD timeout,ISynchronize **pSync) {
   5311     return This->lpVtbl->WaitMultiple(This,timeout,pSync);
   5312 }
   5313 static 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 
   5331 typedef IAddrTrackingControl *LPADDRTRACKINGCONTROL;
   5332 DEFINE_GUID(IID_IAddrTrackingControl, 0x00000147, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5333 #if defined(__cplusplus) && !defined(CINTERFACE)
   5334 MIDL_INTERFACE("00000147-0000-0000-c000-000000000046")
   5335 IAddrTrackingControl : 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
   5348 typedef 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 
   5373 interface 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 ***/
   5388 static inline HRESULT IAddrTrackingControl_QueryInterface(IAddrTrackingControl* This,REFIID riid,void **ppvObject) {
   5389     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5390 }
   5391 static inline ULONG IAddrTrackingControl_AddRef(IAddrTrackingControl* This) {
   5392     return This->lpVtbl->AddRef(This);
   5393 }
   5394 static inline ULONG IAddrTrackingControl_Release(IAddrTrackingControl* This) {
   5395     return This->lpVtbl->Release(This);
   5396 }
   5397 /*** IAddrTrackingControl methods ***/
   5398 static inline HRESULT IAddrTrackingControl_EnableCOMDynamicAddrTracking(IAddrTrackingControl* This) {
   5399     return This->lpVtbl->EnableCOMDynamicAddrTracking(This);
   5400 }
   5401 static 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 
   5419 typedef IAddrExclusionControl *LPADDREXCLUSIONCONTROL;
   5420 DEFINE_GUID(IID_IAddrExclusionControl, 0x00000148, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5421 #if defined(__cplusplus) && !defined(CINTERFACE)
   5422 MIDL_INTERFACE("00000148-0000-0000-c000-000000000046")
   5423 IAddrExclusionControl : 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
   5437 typedef 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 
   5465 interface 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 ***/
   5480 static inline HRESULT IAddrExclusionControl_QueryInterface(IAddrExclusionControl* This,REFIID riid,void **ppvObject) {
   5481     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5482 }
   5483 static inline ULONG IAddrExclusionControl_AddRef(IAddrExclusionControl* This) {
   5484     return This->lpVtbl->AddRef(This);
   5485 }
   5486 static inline ULONG IAddrExclusionControl_Release(IAddrExclusionControl* This) {
   5487     return This->lpVtbl->Release(This);
   5488 }
   5489 /*** IAddrExclusionControl methods ***/
   5490 static inline HRESULT IAddrExclusionControl_GetCurrentAddrExclusionList(IAddrExclusionControl* This,REFIID riid,void **ppEnumerator) {
   5491     return This->lpVtbl->GetCurrentAddrExclusionList(This,riid,ppEnumerator);
   5492 }
   5493 static 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 
   5511 DEFINE_GUID(IID_IPipeByte, 0xdb2f3aca, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
   5512 #if defined(__cplusplus) && !defined(CINTERFACE)
   5513 MIDL_INTERFACE("db2f3aca-2f86-11d1-8e04-00c04fb9989a")
   5514 IPipeByte : 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
   5530 typedef 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 
   5560 interface 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 ***/
   5575 static inline HRESULT IPipeByte_QueryInterface(IPipeByte* This,REFIID riid,void **ppvObject) {
   5576     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5577 }
   5578 static inline ULONG IPipeByte_AddRef(IPipeByte* This) {
   5579     return This->lpVtbl->AddRef(This);
   5580 }
   5581 static inline ULONG IPipeByte_Release(IPipeByte* This) {
   5582     return This->lpVtbl->Release(This);
   5583 }
   5584 /*** IPipeByte methods ***/
   5585 static inline HRESULT IPipeByte_Pull(IPipeByte* This,BYTE *buf,ULONG cRequest,ULONG *pcReturned) {
   5586     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
   5587 }
   5588 static 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 
   5606 DEFINE_GUID(IID_IPipeLong, 0xdb2f3acc, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
   5607 #if defined(__cplusplus) && !defined(CINTERFACE)
   5608 MIDL_INTERFACE("db2f3acc-2f86-11d1-8e04-00c04fb9989a")
   5609 IPipeLong : 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
   5625 typedef 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 
   5655 interface 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 ***/
   5670 static inline HRESULT IPipeLong_QueryInterface(IPipeLong* This,REFIID riid,void **ppvObject) {
   5671     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5672 }
   5673 static inline ULONG IPipeLong_AddRef(IPipeLong* This) {
   5674     return This->lpVtbl->AddRef(This);
   5675 }
   5676 static inline ULONG IPipeLong_Release(IPipeLong* This) {
   5677     return This->lpVtbl->Release(This);
   5678 }
   5679 /*** IPipeLong methods ***/
   5680 static inline HRESULT IPipeLong_Pull(IPipeLong* This,LONG *buf,ULONG cRequest,ULONG *pcReturned) {
   5681     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
   5682 }
   5683 static 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 
   5701 DEFINE_GUID(IID_IPipeDouble, 0xdb2f3ace, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
   5702 #if defined(__cplusplus) && !defined(CINTERFACE)
   5703 MIDL_INTERFACE("db2f3ace-2f86-11d1-8e04-00c04fb9989a")
   5704 IPipeDouble : 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
   5720 typedef 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 
   5750 interface 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 ***/
   5765 static inline HRESULT IPipeDouble_QueryInterface(IPipeDouble* This,REFIID riid,void **ppvObject) {
   5766     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5767 }
   5768 static inline ULONG IPipeDouble_AddRef(IPipeDouble* This) {
   5769     return This->lpVtbl->AddRef(This);
   5770 }
   5771 static inline ULONG IPipeDouble_Release(IPipeDouble* This) {
   5772     return This->lpVtbl->Release(This);
   5773 }
   5774 /*** IPipeDouble methods ***/
   5775 static inline HRESULT IPipeDouble_Pull(IPipeDouble* This,DOUBLE *buf,ULONG cRequest,ULONG *pcReturned) {
   5776     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
   5777 }
   5778 static 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 
   5792 typedef DWORD CPFLAGS;
   5793 
   5794 typedef 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 
   5806 typedef IEnumContextProps *LPENUMCONTEXTPROPS;
   5807 
   5808 DEFINE_GUID(IID_IEnumContextProps, 0x000001c1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5809 #if defined(__cplusplus) && !defined(CINTERFACE)
   5810 MIDL_INTERFACE("000001c1-0000-0000-c000-000000000046")
   5811 IEnumContextProps : 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
   5835 typedef 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 
   5875 interface 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 ***/
   5893 static inline HRESULT IEnumContextProps_QueryInterface(IEnumContextProps* This,REFIID riid,void **ppvObject) {
   5894     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5895 }
   5896 static inline ULONG IEnumContextProps_AddRef(IEnumContextProps* This) {
   5897     return This->lpVtbl->AddRef(This);
   5898 }
   5899 static inline ULONG IEnumContextProps_Release(IEnumContextProps* This) {
   5900     return This->lpVtbl->Release(This);
   5901 }
   5902 /*** IEnumContextProps methods ***/
   5903 static inline HRESULT IEnumContextProps_Next(IEnumContextProps* This,ULONG celt,ContextProperty *pContextProperties,ULONG *pceltFetched) {
   5904     return This->lpVtbl->Next(This,celt,pContextProperties,pceltFetched);
   5905 }
   5906 static inline HRESULT IEnumContextProps_Skip(IEnumContextProps* This,ULONG celt) {
   5907     return This->lpVtbl->Skip(This,celt);
   5908 }
   5909 static inline HRESULT IEnumContextProps_Reset(IEnumContextProps* This) {
   5910     return This->lpVtbl->Reset(This);
   5911 }
   5912 static inline HRESULT IEnumContextProps_Clone(IEnumContextProps* This,IEnumContextProps **ppEnumContextProps) {
   5913     return This->lpVtbl->Clone(This,ppEnumContextProps);
   5914 }
   5915 static 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 
   5933 DEFINE_GUID(IID_IContext, 0x000001c0, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5934 #if defined(__cplusplus) && !defined(CINTERFACE)
   5935 MIDL_INTERFACE("000001c0-0000-0000-c000-000000000046")
   5936 IContext : 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
   5959 typedef 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 
   5998 interface 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 ***/
   6015 static inline HRESULT IContext_QueryInterface(IContext* This,REFIID riid,void **ppvObject) {
   6016     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6017 }
   6018 static inline ULONG IContext_AddRef(IContext* This) {
   6019     return This->lpVtbl->AddRef(This);
   6020 }
   6021 static inline ULONG IContext_Release(IContext* This) {
   6022     return This->lpVtbl->Release(This);
   6023 }
   6024 /*** IContext methods ***/
   6025 static inline HRESULT IContext_SetProperty(IContext* This,REFGUID rpolicyId,CPFLAGS flags,IUnknown *pUnk) {
   6026     return This->lpVtbl->SetProperty(This,rpolicyId,flags,pUnk);
   6027 }
   6028 static inline HRESULT IContext_RemoveProperty(IContext* This,REFGUID rPolicyId) {
   6029     return This->lpVtbl->RemoveProperty(This,rPolicyId);
   6030 }
   6031 static inline HRESULT IContext_GetProperty(IContext* This,REFGUID rGuid,CPFLAGS *pFlags,IUnknown **ppUnk) {
   6032     return This->lpVtbl->GetProperty(This,rGuid,pFlags,ppUnk);
   6033 }
   6034 static 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)
   6049 typedef 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 
   6059 typedef 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)
   6069 typedef enum _THDTYPE {
   6070     THDTYPE_BLOCKMESSAGES = 0,
   6071     THDTYPE_PROCESSMESSAGES = 1
   6072 } THDTYPE;
   6073 
   6074 typedef DWORD APARTMENTID;
   6075 
   6076 /*****************************************************************************
   6077  * IComThreadingInfo interface
   6078  */
   6079 #ifndef __IComThreadingInfo_INTERFACE_DEFINED__
   6080 #define __IComThreadingInfo_INTERFACE_DEFINED__
   6081 
   6082 DEFINE_GUID(IID_IComThreadingInfo, 0x000001ce, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   6083 #if defined(__cplusplus) && !defined(CINTERFACE)
   6084 MIDL_INTERFACE("000001ce-0000-0000-c000-000000000046")
   6085 IComThreadingInfo : 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
   6104 typedef 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 
   6139 interface 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 ***/
   6156 static inline HRESULT IComThreadingInfo_QueryInterface(IComThreadingInfo* This,REFIID riid,void **ppvObject) {
   6157     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6158 }
   6159 static inline ULONG IComThreadingInfo_AddRef(IComThreadingInfo* This) {
   6160     return This->lpVtbl->AddRef(This);
   6161 }
   6162 static inline ULONG IComThreadingInfo_Release(IComThreadingInfo* This) {
   6163     return This->lpVtbl->Release(This);
   6164 }
   6165 /*** IComThreadingInfo methods ***/
   6166 static inline HRESULT IComThreadingInfo_GetCurrentApartmentType(IComThreadingInfo* This,APTTYPE *pAptType) {
   6167     return This->lpVtbl->GetCurrentApartmentType(This,pAptType);
   6168 }
   6169 static inline HRESULT IComThreadingInfo_GetCurrentThreadType(IComThreadingInfo* This,THDTYPE *pThreadType) {
   6170     return This->lpVtbl->GetCurrentThreadType(This,pThreadType);
   6171 }
   6172 static inline HRESULT IComThreadingInfo_GetCurrentLogicalThreadId(IComThreadingInfo* This,GUID *pguidLogicalThreadId) {
   6173     return This->lpVtbl->GetCurrentLogicalThreadId(This,pguidLogicalThreadId);
   6174 }
   6175 static 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 
   6193 DEFINE_GUID(IID_IProcessInitControl, 0x72380d55, 0x8d2b, 0x43a3, 0x85,0x13, 0x2b,0x6e,0xf3,0x14,0x34,0xe9);
   6194 #if defined(__cplusplus) && !defined(CINTERFACE)
   6195 MIDL_INTERFACE("72380d55-8d2b-43a3-8513-2b6ef31434e9")
   6196 IProcessInitControl : 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
   6206 typedef 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 
   6229 interface 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 ***/
   6243 static inline HRESULT IProcessInitControl_QueryInterface(IProcessInitControl* This,REFIID riid,void **ppvObject) {
   6244     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6245 }
   6246 static inline ULONG IProcessInitControl_AddRef(IProcessInitControl* This) {
   6247     return This->lpVtbl->AddRef(This);
   6248 }
   6249 static inline ULONG IProcessInitControl_Release(IProcessInitControl* This) {
   6250     return This->lpVtbl->Release(This);
   6251 }
   6252 /*** IProcessInitControl methods ***/
   6253 static 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 
   6271 DEFINE_GUID(IID_IFastRundown, 0x00000040, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   6272 #if defined(__cplusplus) && !defined(CINTERFACE)
   6273 MIDL_INTERFACE("00000040-0000-0000-c000-000000000046")
   6274 IFastRundown : 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
   6281 typedef 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 
   6299 interface 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 ***/
   6311 static inline HRESULT IFastRundown_QueryInterface(IFastRundown* This,REFIID riid,void **ppvObject) {
   6312     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6313 }
   6314 static inline ULONG IFastRundown_AddRef(IFastRundown* This) {
   6315     return This->lpVtbl->AddRef(This);
   6316 }
   6317 static 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 
   6329 typedef 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 
   6339 DEFINE_GUID(IID_IMarshalingStream, 0xd8f2f5e6, 0x6102, 0x4863, 0x9f,0x26, 0x38,0x9a,0x46,0x76,0xef,0xde);
   6340 #if defined(__cplusplus) && !defined(CINTERFACE)
   6341 MIDL_INTERFACE("d8f2f5e6-6102-4863-9f26-389a4676efde")
   6342 IMarshalingStream : 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
   6353 typedef 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 
   6436 interface 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 ***/
   6463 static inline HRESULT IMarshalingStream_QueryInterface(IMarshalingStream* This,REFIID riid,void **ppvObject) {
   6464     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6465 }
   6466 static inline ULONG IMarshalingStream_AddRef(IMarshalingStream* This) {
   6467     return This->lpVtbl->AddRef(This);
   6468 }
   6469 static inline ULONG IMarshalingStream_Release(IMarshalingStream* This) {
   6470     return This->lpVtbl->Release(This);
   6471 }
   6472 /*** ISequentialStream methods ***/
   6473 static inline HRESULT IMarshalingStream_Read(IMarshalingStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
   6474     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   6475 }
   6476 static 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 ***/
   6480 static inline HRESULT IMarshalingStream_Seek(IMarshalingStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   6481     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   6482 }
   6483 static inline HRESULT IMarshalingStream_SetSize(IMarshalingStream* This,ULARGE_INTEGER libNewSize) {
   6484     return This->lpVtbl->SetSize(This,libNewSize);
   6485 }
   6486 static 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 }
   6489 static inline HRESULT IMarshalingStream_Commit(IMarshalingStream* This,DWORD grfCommitFlags) {
   6490     return This->lpVtbl->Commit(This,grfCommitFlags);
   6491 }
   6492 static inline HRESULT IMarshalingStream_Revert(IMarshalingStream* This) {
   6493     return This->lpVtbl->Revert(This);
   6494 }
   6495 static inline HRESULT IMarshalingStream_LockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   6496     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   6497 }
   6498 static inline HRESULT IMarshalingStream_UnlockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   6499     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   6500 }
   6501 static inline HRESULT IMarshalingStream_Stat(IMarshalingStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   6502     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   6503 }
   6504 static inline HRESULT IMarshalingStream_Clone(IMarshalingStream* This,IStream **ppstm) {
   6505     return This->lpVtbl->Clone(This,ppstm);
   6506 }
   6507 /*** IMarshalingStream methods ***/
   6508 static 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)
   6522 EXTERN_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__ */