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