Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.6 from include/objidl.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 __objidl_h__
     16 #define __objidl_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 #ifndef __IMallocSpy_FWD_DEFINED__
    276 #define __IMallocSpy_FWD_DEFINED__
    277 typedef interface IMallocSpy IMallocSpy;
    278 #endif
    279 
    280 #ifndef __IBindCtx_FWD_DEFINED__
    281 #define __IBindCtx_FWD_DEFINED__
    282 typedef interface IBindCtx IBindCtx;
    283 #endif
    284 
    285 #ifndef __IEnumMoniker_FWD_DEFINED__
    286 #define __IEnumMoniker_FWD_DEFINED__
    287 typedef interface IEnumMoniker IEnumMoniker;
    288 #endif
    289 
    290 #ifndef __IRunnableObject_FWD_DEFINED__
    291 #define __IRunnableObject_FWD_DEFINED__
    292 typedef interface IRunnableObject IRunnableObject;
    293 #endif
    294 
    295 #ifndef __IRunningObjectTable_FWD_DEFINED__
    296 #define __IRunningObjectTable_FWD_DEFINED__
    297 typedef interface IRunningObjectTable IRunningObjectTable;
    298 #endif
    299 
    300 #ifndef __IPersist_FWD_DEFINED__
    301 #define __IPersist_FWD_DEFINED__
    302 typedef interface IPersist IPersist;
    303 #endif
    304 
    305 #ifndef __IPersistStream_FWD_DEFINED__
    306 #define __IPersistStream_FWD_DEFINED__
    307 typedef interface IPersistStream IPersistStream;
    308 #endif
    309 
    310 #ifndef __IMoniker_FWD_DEFINED__
    311 #define __IMoniker_FWD_DEFINED__
    312 typedef interface IMoniker IMoniker;
    313 #endif
    314 
    315 #ifndef __IROTData_FWD_DEFINED__
    316 #define __IROTData_FWD_DEFINED__
    317 typedef interface IROTData IROTData;
    318 #endif
    319 
    320 #ifndef __IEnumSTATSTG_FWD_DEFINED__
    321 #define __IEnumSTATSTG_FWD_DEFINED__
    322 typedef interface IEnumSTATSTG IEnumSTATSTG;
    323 #endif
    324 
    325 #ifndef __IStorage_FWD_DEFINED__
    326 #define __IStorage_FWD_DEFINED__
    327 typedef interface IStorage IStorage;
    328 #endif
    329 
    330 #ifndef __IPersistFile_FWD_DEFINED__
    331 #define __IPersistFile_FWD_DEFINED__
    332 typedef interface IPersistFile IPersistFile;
    333 #endif
    334 
    335 #ifndef __IPersistStorage_FWD_DEFINED__
    336 #define __IPersistStorage_FWD_DEFINED__
    337 typedef interface IPersistStorage IPersistStorage;
    338 #endif
    339 
    340 #ifndef __ILockBytes_FWD_DEFINED__
    341 #define __ILockBytes_FWD_DEFINED__
    342 typedef interface ILockBytes ILockBytes;
    343 #endif
    344 
    345 #ifndef __IEnumFORMATETC_FWD_DEFINED__
    346 #define __IEnumFORMATETC_FWD_DEFINED__
    347 typedef interface IEnumFORMATETC IEnumFORMATETC;
    348 #endif
    349 
    350 #ifndef __IEnumSTATDATA_FWD_DEFINED__
    351 #define __IEnumSTATDATA_FWD_DEFINED__
    352 typedef interface IEnumSTATDATA IEnumSTATDATA;
    353 #endif
    354 
    355 #ifndef __IRootStorage_FWD_DEFINED__
    356 #define __IRootStorage_FWD_DEFINED__
    357 typedef interface IRootStorage IRootStorage;
    358 #endif
    359 
    360 #ifndef __IAdviseSink_FWD_DEFINED__
    361 #define __IAdviseSink_FWD_DEFINED__
    362 typedef interface IAdviseSink IAdviseSink;
    363 #endif
    364 
    365 #ifndef __AsyncIAdviseSink_FWD_DEFINED__
    366 #define __AsyncIAdviseSink_FWD_DEFINED__
    367 typedef interface AsyncIAdviseSink AsyncIAdviseSink;
    368 #endif
    369 
    370 #ifndef __IAdviseSink2_FWD_DEFINED__
    371 #define __IAdviseSink2_FWD_DEFINED__
    372 typedef interface IAdviseSink2 IAdviseSink2;
    373 #endif
    374 
    375 #ifndef __AsyncIAdviseSink2_FWD_DEFINED__
    376 #define __AsyncIAdviseSink2_FWD_DEFINED__
    377 typedef interface AsyncIAdviseSink2 AsyncIAdviseSink2;
    378 #endif
    379 
    380 #ifndef __IDataObject_FWD_DEFINED__
    381 #define __IDataObject_FWD_DEFINED__
    382 typedef interface IDataObject IDataObject;
    383 #endif
    384 
    385 #ifndef __IDataAdviseHolder_FWD_DEFINED__
    386 #define __IDataAdviseHolder_FWD_DEFINED__
    387 typedef interface IDataAdviseHolder IDataAdviseHolder;
    388 #endif
    389 
    390 #ifndef __IMessageFilter_FWD_DEFINED__
    391 #define __IMessageFilter_FWD_DEFINED__
    392 typedef interface IMessageFilter IMessageFilter;
    393 #endif
    394 
    395 #ifndef __IClassActivator_FWD_DEFINED__
    396 #define __IClassActivator_FWD_DEFINED__
    397 typedef interface IClassActivator IClassActivator;
    398 #endif
    399 
    400 #ifndef __IFillLockBytes_FWD_DEFINED__
    401 #define __IFillLockBytes_FWD_DEFINED__
    402 typedef interface IFillLockBytes IFillLockBytes;
    403 #endif
    404 
    405 #ifndef __IProgressNotify_FWD_DEFINED__
    406 #define __IProgressNotify_FWD_DEFINED__
    407 typedef interface IProgressNotify IProgressNotify;
    408 #endif
    409 
    410 #ifndef __ILayoutStorage_FWD_DEFINED__
    411 #define __ILayoutStorage_FWD_DEFINED__
    412 typedef interface ILayoutStorage ILayoutStorage;
    413 #endif
    414 
    415 #ifndef __IBlockingLock_FWD_DEFINED__
    416 #define __IBlockingLock_FWD_DEFINED__
    417 typedef interface IBlockingLock IBlockingLock;
    418 #endif
    419 
    420 #ifndef __ITimeAndNoticeControl_FWD_DEFINED__
    421 #define __ITimeAndNoticeControl_FWD_DEFINED__
    422 typedef interface ITimeAndNoticeControl ITimeAndNoticeControl;
    423 #endif
    424 
    425 #ifndef __IOplockStorage_FWD_DEFINED__
    426 #define __IOplockStorage_FWD_DEFINED__
    427 typedef interface IOplockStorage IOplockStorage;
    428 #endif
    429 
    430 #ifndef __IDirectWriterLock_FWD_DEFINED__
    431 #define __IDirectWriterLock_FWD_DEFINED__
    432 typedef interface IDirectWriterLock IDirectWriterLock;
    433 #endif
    434 
    435 #ifndef __IUrlMon_FWD_DEFINED__
    436 #define __IUrlMon_FWD_DEFINED__
    437 typedef interface IUrlMon IUrlMon;
    438 #endif
    439 
    440 #ifndef __IForegroundTransfer_FWD_DEFINED__
    441 #define __IForegroundTransfer_FWD_DEFINED__
    442 typedef interface IForegroundTransfer IForegroundTransfer;
    443 #endif
    444 
    445 #ifndef __IThumbnailExtractor_FWD_DEFINED__
    446 #define __IThumbnailExtractor_FWD_DEFINED__
    447 typedef interface IThumbnailExtractor IThumbnailExtractor;
    448 #endif
    449 
    450 #ifndef __IDummyHICONIncluder_FWD_DEFINED__
    451 #define __IDummyHICONIncluder_FWD_DEFINED__
    452 typedef interface IDummyHICONIncluder IDummyHICONIncluder;
    453 #endif
    454 
    455 #ifndef __IProcessLock_FWD_DEFINED__
    456 #define __IProcessLock_FWD_DEFINED__
    457 typedef interface IProcessLock IProcessLock;
    458 #endif
    459 
    460 #ifndef __ISurrogateService_FWD_DEFINED__
    461 #define __ISurrogateService_FWD_DEFINED__
    462 typedef interface ISurrogateService ISurrogateService;
    463 #endif
    464 
    465 #ifndef __IInitializeSpy_FWD_DEFINED__
    466 #define __IInitializeSpy_FWD_DEFINED__
    467 typedef interface IInitializeSpy IInitializeSpy;
    468 #endif
    469 
    470 #ifndef __IApartmentShutdown_FWD_DEFINED__
    471 #define __IApartmentShutdown_FWD_DEFINED__
    472 typedef interface IApartmentShutdown IApartmentShutdown;
    473 #endif
    474 
    475 /* Headers for imported files */
    476 
    477 #include <unknwn.h>
    478 #include <wtypes.h>
    479 
    480 #ifdef __cplusplus
    481 extern "C" {
    482 #endif
    483 
    484 /**
    485  * This file is part of the mingw-w64 runtime package.
    486  * No warranty is given; refer to the file DISCLAIMER within this package.
    487  */
    488 
    489 #include <winapifamily.h>
    490 
    491 #if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))
    492 #define _WIN32_WINNT 0x0600
    493 #endif
    494 #if(NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))
    495 #define _WIN32_WINNT 0x0502
    496 #endif
    497 #if(NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))
    498 #define _WIN32_WINNT 0x0501
    499 #endif
    500 /**
    501  * This file is part of the mingw-w64 runtime package.
    502  * No warranty is given; refer to the file DISCLAIMER within this package.
    503  */
    504 
    505 #include <winapifamily.h>
    506 
    507 #if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))
    508 #define _WIN32_WINNT 0x0600
    509 #endif
    510 
    511 #if (NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))
    512 #define _WIN32_WINNT 0x0502
    513 #endif
    514 
    515 #if (NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))
    516 #define _WIN32_WINNT 0x0501
    517 #endif
    518 
    519 #ifndef _OBJIDLBASE_
    520 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
    521 #ifndef __IStream_FWD_DEFINED__
    522 #define __IStream_FWD_DEFINED__
    523 typedef interface IStream IStream;
    524 #endif
    525 
    526 #ifndef __IEnumString_FWD_DEFINED__
    527 #define __IEnumString_FWD_DEFINED__
    528 typedef interface IEnumString IEnumString;
    529 #endif
    530 
    531 #ifndef __IMultiQI_FWD_DEFINED__
    532 #define __IMultiQI_FWD_DEFINED__
    533 typedef interface IMultiQI IMultiQI;
    534 #endif
    535 
    536 #ifndef __AsyncIMultiQI_FWD_DEFINED__
    537 #define __AsyncIMultiQI_FWD_DEFINED__
    538 typedef interface AsyncIMultiQI AsyncIMultiQI;
    539 #endif
    540 
    541 #endif
    542 
    543 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
    544 #ifndef __IAsyncManager_FWD_DEFINED__
    545 #define __IAsyncManager_FWD_DEFINED__
    546 typedef interface IAsyncManager IAsyncManager;
    547 #endif
    548 
    549 #ifndef __ICallFactory_FWD_DEFINED__
    550 #define __ICallFactory_FWD_DEFINED__
    551 typedef interface ICallFactory ICallFactory;
    552 #endif
    553 
    554 #ifndef __ISynchronize_FWD_DEFINED__
    555 #define __ISynchronize_FWD_DEFINED__
    556 typedef interface ISynchronize ISynchronize;
    557 #endif
    558 
    559 #endif
    560 
    561 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
    562 typedef struct _COSERVERINFO {
    563     DWORD dwReserved1;
    564     LPWSTR pwszName;
    565     COAUTHINFO *pAuthInfo;
    566     DWORD dwReserved2;
    567 } COSERVERINFO;
    568 
    569 /*****************************************************************************
    570  * IMarshal interface
    571  */
    572 #ifndef __IMarshal_INTERFACE_DEFINED__
    573 #define __IMarshal_INTERFACE_DEFINED__
    574 
    575 typedef IMarshal *LPMARSHAL;
    576 DEFINE_GUID(IID_IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
    577 #if defined(__cplusplus) && !defined(CINTERFACE)
    578 MIDL_INTERFACE("00000003-0000-0000-c000-000000000046")
    579 IMarshal : public IUnknown
    580 {
    581     virtual HRESULT STDMETHODCALLTYPE GetUnmarshalClass(
    582         REFIID riid,
    583         void *pv,
    584         DWORD dwDestContext,
    585         void *pvDestContext,
    586         DWORD mshlflags,
    587         CLSID *pCid) = 0;
    588 
    589     virtual HRESULT STDMETHODCALLTYPE GetMarshalSizeMax(
    590         REFIID riid,
    591         void *pv,
    592         DWORD dwDestContext,
    593         void *pvDestContext,
    594         DWORD mshlflags,
    595         DWORD *pSize) = 0;
    596 
    597     virtual HRESULT STDMETHODCALLTYPE MarshalInterface(
    598         IStream *pStm,
    599         REFIID riid,
    600         void *pv,
    601         DWORD dwDestContext,
    602         void *pvDestContext,
    603         DWORD mshlflags) = 0;
    604 
    605     virtual HRESULT STDMETHODCALLTYPE UnmarshalInterface(
    606         IStream *pStm,
    607         REFIID riid,
    608         void **ppv) = 0;
    609 
    610     virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalData(
    611         IStream *pStm) = 0;
    612 
    613     virtual HRESULT STDMETHODCALLTYPE DisconnectObject(
    614         DWORD dwReserved) = 0;
    615 
    616 };
    617 #ifdef __CRT_UUID_DECL
    618 __CRT_UUID_DECL(IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
    619 #endif
    620 #else
    621 typedef struct IMarshalVtbl {
    622     BEGIN_INTERFACE
    623 
    624     /*** IUnknown methods ***/
    625     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    626         IMarshal* This,
    627         REFIID riid,
    628         void **ppvObject);
    629 
    630     ULONG (STDMETHODCALLTYPE *AddRef)(
    631         IMarshal* This);
    632 
    633     ULONG (STDMETHODCALLTYPE *Release)(
    634         IMarshal* This);
    635 
    636     /*** IMarshal methods ***/
    637     HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
    638         IMarshal* This,
    639         REFIID riid,
    640         void *pv,
    641         DWORD dwDestContext,
    642         void *pvDestContext,
    643         DWORD mshlflags,
    644         CLSID *pCid);
    645 
    646     HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
    647         IMarshal* This,
    648         REFIID riid,
    649         void *pv,
    650         DWORD dwDestContext,
    651         void *pvDestContext,
    652         DWORD mshlflags,
    653         DWORD *pSize);
    654 
    655     HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
    656         IMarshal* This,
    657         IStream *pStm,
    658         REFIID riid,
    659         void *pv,
    660         DWORD dwDestContext,
    661         void *pvDestContext,
    662         DWORD mshlflags);
    663 
    664     HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
    665         IMarshal* This,
    666         IStream *pStm,
    667         REFIID riid,
    668         void **ppv);
    669 
    670     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
    671         IMarshal* This,
    672         IStream *pStm);
    673 
    674     HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
    675         IMarshal* This,
    676         DWORD dwReserved);
    677 
    678     END_INTERFACE
    679 } IMarshalVtbl;
    680 interface IMarshal {
    681     CONST_VTBL IMarshalVtbl* lpVtbl;
    682 };
    683 
    684 #ifdef COBJMACROS
    685 #ifndef WIDL_C_INLINE_WRAPPERS
    686 /*** IUnknown methods ***/
    687 #define IMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    688 #define IMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
    689 #define IMarshal_Release(This) (This)->lpVtbl->Release(This)
    690 /*** IMarshal methods ***/
    691 #define IMarshal_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) (This)->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid)
    692 #define IMarshal_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) (This)->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize)
    693 #define IMarshal_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) (This)->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags)
    694 #define IMarshal_UnmarshalInterface(This,pStm,riid,ppv) (This)->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv)
    695 #define IMarshal_ReleaseMarshalData(This,pStm) (This)->lpVtbl->ReleaseMarshalData(This,pStm)
    696 #define IMarshal_DisconnectObject(This,dwReserved) (This)->lpVtbl->DisconnectObject(This,dwReserved)
    697 #else
    698 /*** IUnknown methods ***/
    699 static FORCEINLINE HRESULT IMarshal_QueryInterface(IMarshal* This,REFIID riid,void **ppvObject) {
    700     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    701 }
    702 static FORCEINLINE ULONG IMarshal_AddRef(IMarshal* This) {
    703     return This->lpVtbl->AddRef(This);
    704 }
    705 static FORCEINLINE ULONG IMarshal_Release(IMarshal* This) {
    706     return This->lpVtbl->Release(This);
    707 }
    708 /*** IMarshal methods ***/
    709 static FORCEINLINE HRESULT IMarshal_GetUnmarshalClass(IMarshal* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,CLSID *pCid) {
    710     return This->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid);
    711 }
    712 static FORCEINLINE HRESULT IMarshal_GetMarshalSizeMax(IMarshal* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,DWORD *pSize) {
    713     return This->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize);
    714 }
    715 static FORCEINLINE HRESULT IMarshal_MarshalInterface(IMarshal* This,IStream *pStm,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags) {
    716     return This->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags);
    717 }
    718 static FORCEINLINE HRESULT IMarshal_UnmarshalInterface(IMarshal* This,IStream *pStm,REFIID riid,void **ppv) {
    719     return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
    720 }
    721 static FORCEINLINE HRESULT IMarshal_ReleaseMarshalData(IMarshal* This,IStream *pStm) {
    722     return This->lpVtbl->ReleaseMarshalData(This,pStm);
    723 }
    724 static FORCEINLINE HRESULT IMarshal_DisconnectObject(IMarshal* This,DWORD dwReserved) {
    725     return This->lpVtbl->DisconnectObject(This,dwReserved);
    726 }
    727 #endif
    728 #endif
    729 
    730 #endif
    731 
    732 HRESULT STDMETHODCALLTYPE IMarshal_GetUnmarshalClass_Proxy(
    733     IMarshal* This,
    734     REFIID riid,
    735     void *pv,
    736     DWORD dwDestContext,
    737     void *pvDestContext,
    738     DWORD mshlflags,
    739     CLSID *pCid);
    740 void __RPC_STUB IMarshal_GetUnmarshalClass_Stub(
    741     IRpcStubBuffer* This,
    742     IRpcChannelBuffer* pRpcChannelBuffer,
    743     PRPC_MESSAGE pRpcMessage,
    744     DWORD* pdwStubPhase);
    745 HRESULT STDMETHODCALLTYPE IMarshal_GetMarshalSizeMax_Proxy(
    746     IMarshal* This,
    747     REFIID riid,
    748     void *pv,
    749     DWORD dwDestContext,
    750     void *pvDestContext,
    751     DWORD mshlflags,
    752     DWORD *pSize);
    753 void __RPC_STUB IMarshal_GetMarshalSizeMax_Stub(
    754     IRpcStubBuffer* This,
    755     IRpcChannelBuffer* pRpcChannelBuffer,
    756     PRPC_MESSAGE pRpcMessage,
    757     DWORD* pdwStubPhase);
    758 HRESULT STDMETHODCALLTYPE IMarshal_MarshalInterface_Proxy(
    759     IMarshal* This,
    760     IStream *pStm,
    761     REFIID riid,
    762     void *pv,
    763     DWORD dwDestContext,
    764     void *pvDestContext,
    765     DWORD mshlflags);
    766 void __RPC_STUB IMarshal_MarshalInterface_Stub(
    767     IRpcStubBuffer* This,
    768     IRpcChannelBuffer* pRpcChannelBuffer,
    769     PRPC_MESSAGE pRpcMessage,
    770     DWORD* pdwStubPhase);
    771 HRESULT STDMETHODCALLTYPE IMarshal_UnmarshalInterface_Proxy(
    772     IMarshal* This,
    773     IStream *pStm,
    774     REFIID riid,
    775     void **ppv);
    776 void __RPC_STUB IMarshal_UnmarshalInterface_Stub(
    777     IRpcStubBuffer* This,
    778     IRpcChannelBuffer* pRpcChannelBuffer,
    779     PRPC_MESSAGE pRpcMessage,
    780     DWORD* pdwStubPhase);
    781 HRESULT STDMETHODCALLTYPE IMarshal_ReleaseMarshalData_Proxy(
    782     IMarshal* This,
    783     IStream *pStm);
    784 void __RPC_STUB IMarshal_ReleaseMarshalData_Stub(
    785     IRpcStubBuffer* This,
    786     IRpcChannelBuffer* pRpcChannelBuffer,
    787     PRPC_MESSAGE pRpcMessage,
    788     DWORD* pdwStubPhase);
    789 HRESULT STDMETHODCALLTYPE IMarshal_DisconnectObject_Proxy(
    790     IMarshal* This,
    791     DWORD dwReserved);
    792 void __RPC_STUB IMarshal_DisconnectObject_Stub(
    793     IRpcStubBuffer* This,
    794     IRpcChannelBuffer* pRpcChannelBuffer,
    795     PRPC_MESSAGE pRpcMessage,
    796     DWORD* pdwStubPhase);
    797 
    798 #endif  /* __IMarshal_INTERFACE_DEFINED__ */
    799 
    800 
    801 /*****************************************************************************
    802  * INoMarshal interface
    803  */
    804 #ifndef __INoMarshal_INTERFACE_DEFINED__
    805 #define __INoMarshal_INTERFACE_DEFINED__
    806 
    807 DEFINE_GUID(IID_INoMarshal, 0xecc8691b, 0xc1db, 0x4dc0, 0x85,0x5e, 0x65,0xf6,0xc5,0x51,0xaf,0x49);
    808 #if defined(__cplusplus) && !defined(CINTERFACE)
    809 MIDL_INTERFACE("ecc8691b-c1db-4dc0-855e-65f6c551af49")
    810 INoMarshal : public IUnknown
    811 {
    812 };
    813 #ifdef __CRT_UUID_DECL
    814 __CRT_UUID_DECL(INoMarshal, 0xecc8691b, 0xc1db, 0x4dc0, 0x85,0x5e, 0x65,0xf6,0xc5,0x51,0xaf,0x49)
    815 #endif
    816 #else
    817 typedef struct INoMarshalVtbl {
    818     BEGIN_INTERFACE
    819 
    820     /*** IUnknown methods ***/
    821     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    822         INoMarshal* This,
    823         REFIID riid,
    824         void **ppvObject);
    825 
    826     ULONG (STDMETHODCALLTYPE *AddRef)(
    827         INoMarshal* This);
    828 
    829     ULONG (STDMETHODCALLTYPE *Release)(
    830         INoMarshal* This);
    831 
    832     END_INTERFACE
    833 } INoMarshalVtbl;
    834 interface INoMarshal {
    835     CONST_VTBL INoMarshalVtbl* lpVtbl;
    836 };
    837 
    838 #ifdef COBJMACROS
    839 #ifndef WIDL_C_INLINE_WRAPPERS
    840 /*** IUnknown methods ***/
    841 #define INoMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    842 #define INoMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
    843 #define INoMarshal_Release(This) (This)->lpVtbl->Release(This)
    844 #else
    845 /*** IUnknown methods ***/
    846 static FORCEINLINE HRESULT INoMarshal_QueryInterface(INoMarshal* This,REFIID riid,void **ppvObject) {
    847     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    848 }
    849 static FORCEINLINE ULONG INoMarshal_AddRef(INoMarshal* This) {
    850     return This->lpVtbl->AddRef(This);
    851 }
    852 static FORCEINLINE ULONG INoMarshal_Release(INoMarshal* This) {
    853     return This->lpVtbl->Release(This);
    854 }
    855 #endif
    856 #endif
    857 
    858 #endif
    859 
    860 
    861 #endif  /* __INoMarshal_INTERFACE_DEFINED__ */
    862 
    863 
    864 /*****************************************************************************
    865  * IAgileObject interface
    866  */
    867 #ifndef __IAgileObject_INTERFACE_DEFINED__
    868 #define __IAgileObject_INTERFACE_DEFINED__
    869 
    870 DEFINE_GUID(IID_IAgileObject, 0x94ea2b94, 0xe9cc, 0x49e0, 0xc0,0xff, 0xee,0x64,0xca,0x8f,0x5b,0x90);
    871 #if defined(__cplusplus) && !defined(CINTERFACE)
    872 MIDL_INTERFACE("94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90")
    873 IAgileObject : public IUnknown
    874 {
    875 };
    876 #ifdef __CRT_UUID_DECL
    877 __CRT_UUID_DECL(IAgileObject, 0x94ea2b94, 0xe9cc, 0x49e0, 0xc0,0xff, 0xee,0x64,0xca,0x8f,0x5b,0x90)
    878 #endif
    879 #else
    880 typedef struct IAgileObjectVtbl {
    881     BEGIN_INTERFACE
    882 
    883     /*** IUnknown methods ***/
    884     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    885         IAgileObject* This,
    886         REFIID riid,
    887         void **ppvObject);
    888 
    889     ULONG (STDMETHODCALLTYPE *AddRef)(
    890         IAgileObject* This);
    891 
    892     ULONG (STDMETHODCALLTYPE *Release)(
    893         IAgileObject* This);
    894 
    895     END_INTERFACE
    896 } IAgileObjectVtbl;
    897 interface IAgileObject {
    898     CONST_VTBL IAgileObjectVtbl* lpVtbl;
    899 };
    900 
    901 #ifdef COBJMACROS
    902 #ifndef WIDL_C_INLINE_WRAPPERS
    903 /*** IUnknown methods ***/
    904 #define IAgileObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    905 #define IAgileObject_AddRef(This) (This)->lpVtbl->AddRef(This)
    906 #define IAgileObject_Release(This) (This)->lpVtbl->Release(This)
    907 #else
    908 /*** IUnknown methods ***/
    909 static FORCEINLINE HRESULT IAgileObject_QueryInterface(IAgileObject* This,REFIID riid,void **ppvObject) {
    910     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    911 }
    912 static FORCEINLINE ULONG IAgileObject_AddRef(IAgileObject* This) {
    913     return This->lpVtbl->AddRef(This);
    914 }
    915 static FORCEINLINE ULONG IAgileObject_Release(IAgileObject* This) {
    916     return This->lpVtbl->Release(This);
    917 }
    918 #endif
    919 #endif
    920 
    921 #endif
    922 
    923 
    924 #endif  /* __IAgileObject_INTERFACE_DEFINED__ */
    925 
    926 #endif
    927 
    928 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
    929 /*****************************************************************************
    930  * IMarshal2 interface
    931  */
    932 #ifndef __IMarshal2_INTERFACE_DEFINED__
    933 #define __IMarshal2_INTERFACE_DEFINED__
    934 
    935 typedef IMarshal2 *LPMARSHAL2;
    936 DEFINE_GUID(IID_IMarshal2, 0x000001cf, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
    937 #if defined(__cplusplus) && !defined(CINTERFACE)
    938 MIDL_INTERFACE("000001cf-0000-0000-c000-000000000046")
    939 IMarshal2 : public IMarshal
    940 {
    941 };
    942 #ifdef __CRT_UUID_DECL
    943 __CRT_UUID_DECL(IMarshal2, 0x000001cf, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
    944 #endif
    945 #else
    946 typedef struct IMarshal2Vtbl {
    947     BEGIN_INTERFACE
    948 
    949     /*** IUnknown methods ***/
    950     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    951         IMarshal2* This,
    952         REFIID riid,
    953         void **ppvObject);
    954 
    955     ULONG (STDMETHODCALLTYPE *AddRef)(
    956         IMarshal2* This);
    957 
    958     ULONG (STDMETHODCALLTYPE *Release)(
    959         IMarshal2* This);
    960 
    961     /*** IMarshal methods ***/
    962     HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
    963         IMarshal2* This,
    964         REFIID riid,
    965         void *pv,
    966         DWORD dwDestContext,
    967         void *pvDestContext,
    968         DWORD mshlflags,
    969         CLSID *pCid);
    970 
    971     HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
    972         IMarshal2* This,
    973         REFIID riid,
    974         void *pv,
    975         DWORD dwDestContext,
    976         void *pvDestContext,
    977         DWORD mshlflags,
    978         DWORD *pSize);
    979 
    980     HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
    981         IMarshal2* This,
    982         IStream *pStm,
    983         REFIID riid,
    984         void *pv,
    985         DWORD dwDestContext,
    986         void *pvDestContext,
    987         DWORD mshlflags);
    988 
    989     HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
    990         IMarshal2* This,
    991         IStream *pStm,
    992         REFIID riid,
    993         void **ppv);
    994 
    995     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
    996         IMarshal2* This,
    997         IStream *pStm);
    998 
    999     HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
   1000         IMarshal2* This,
   1001         DWORD dwReserved);
   1002 
   1003     END_INTERFACE
   1004 } IMarshal2Vtbl;
   1005 interface IMarshal2 {
   1006     CONST_VTBL IMarshal2Vtbl* lpVtbl;
   1007 };
   1008 
   1009 #ifdef COBJMACROS
   1010 #ifndef WIDL_C_INLINE_WRAPPERS
   1011 /*** IUnknown methods ***/
   1012 #define IMarshal2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1013 #define IMarshal2_AddRef(This) (This)->lpVtbl->AddRef(This)
   1014 #define IMarshal2_Release(This) (This)->lpVtbl->Release(This)
   1015 /*** IMarshal methods ***/
   1016 #define IMarshal2_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) (This)->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid)
   1017 #define IMarshal2_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) (This)->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize)
   1018 #define IMarshal2_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) (This)->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags)
   1019 #define IMarshal2_UnmarshalInterface(This,pStm,riid,ppv) (This)->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv)
   1020 #define IMarshal2_ReleaseMarshalData(This,pStm) (This)->lpVtbl->ReleaseMarshalData(This,pStm)
   1021 #define IMarshal2_DisconnectObject(This,dwReserved) (This)->lpVtbl->DisconnectObject(This,dwReserved)
   1022 #else
   1023 /*** IUnknown methods ***/
   1024 static FORCEINLINE HRESULT IMarshal2_QueryInterface(IMarshal2* This,REFIID riid,void **ppvObject) {
   1025     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1026 }
   1027 static FORCEINLINE ULONG IMarshal2_AddRef(IMarshal2* This) {
   1028     return This->lpVtbl->AddRef(This);
   1029 }
   1030 static FORCEINLINE ULONG IMarshal2_Release(IMarshal2* This) {
   1031     return This->lpVtbl->Release(This);
   1032 }
   1033 /*** IMarshal methods ***/
   1034 static FORCEINLINE HRESULT IMarshal2_GetUnmarshalClass(IMarshal2* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,CLSID *pCid) {
   1035     return This->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid);
   1036 }
   1037 static FORCEINLINE HRESULT IMarshal2_GetMarshalSizeMax(IMarshal2* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,DWORD *pSize) {
   1038     return This->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize);
   1039 }
   1040 static FORCEINLINE HRESULT IMarshal2_MarshalInterface(IMarshal2* This,IStream *pStm,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags) {
   1041     return This->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags);
   1042 }
   1043 static FORCEINLINE HRESULT IMarshal2_UnmarshalInterface(IMarshal2* This,IStream *pStm,REFIID riid,void **ppv) {
   1044     return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
   1045 }
   1046 static FORCEINLINE HRESULT IMarshal2_ReleaseMarshalData(IMarshal2* This,IStream *pStm) {
   1047     return This->lpVtbl->ReleaseMarshalData(This,pStm);
   1048 }
   1049 static FORCEINLINE HRESULT IMarshal2_DisconnectObject(IMarshal2* This,DWORD dwReserved) {
   1050     return This->lpVtbl->DisconnectObject(This,dwReserved);
   1051 }
   1052 #endif
   1053 #endif
   1054 
   1055 #endif
   1056 
   1057 
   1058 #endif  /* __IMarshal2_INTERFACE_DEFINED__ */
   1059 
   1060 
   1061 /*****************************************************************************
   1062  * IMalloc interface
   1063  */
   1064 #ifndef __IMalloc_INTERFACE_DEFINED__
   1065 #define __IMalloc_INTERFACE_DEFINED__
   1066 
   1067 typedef IMalloc *LPMALLOC;
   1068 
   1069 DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1070 #if defined(__cplusplus) && !defined(CINTERFACE)
   1071 MIDL_INTERFACE("00000002-0000-0000-c000-000000000046")
   1072 IMalloc : public IUnknown
   1073 {
   1074     virtual void * STDMETHODCALLTYPE Alloc(
   1075         SIZE_T cb) = 0;
   1076 
   1077     virtual void * STDMETHODCALLTYPE Realloc(
   1078         void *pv,
   1079         SIZE_T cb) = 0;
   1080 
   1081     virtual void STDMETHODCALLTYPE Free(
   1082         void *pv) = 0;
   1083 
   1084     virtual SIZE_T STDMETHODCALLTYPE GetSize(
   1085         void *pv) = 0;
   1086 
   1087     virtual int STDMETHODCALLTYPE DidAlloc(
   1088         void *pv) = 0;
   1089 
   1090     virtual void STDMETHODCALLTYPE HeapMinimize(
   1091         ) = 0;
   1092 
   1093 };
   1094 #ifdef __CRT_UUID_DECL
   1095 __CRT_UUID_DECL(IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1096 #endif
   1097 #else
   1098 typedef struct IMallocVtbl {
   1099     BEGIN_INTERFACE
   1100 
   1101     /*** IUnknown methods ***/
   1102     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1103         IMalloc* This,
   1104         REFIID riid,
   1105         void **ppvObject);
   1106 
   1107     ULONG (STDMETHODCALLTYPE *AddRef)(
   1108         IMalloc* This);
   1109 
   1110     ULONG (STDMETHODCALLTYPE *Release)(
   1111         IMalloc* This);
   1112 
   1113     /*** IMalloc methods ***/
   1114     void * (STDMETHODCALLTYPE *Alloc)(
   1115         IMalloc* This,
   1116         SIZE_T cb);
   1117 
   1118     void * (STDMETHODCALLTYPE *Realloc)(
   1119         IMalloc* This,
   1120         void *pv,
   1121         SIZE_T cb);
   1122 
   1123     void (STDMETHODCALLTYPE *Free)(
   1124         IMalloc* This,
   1125         void *pv);
   1126 
   1127     SIZE_T (STDMETHODCALLTYPE *GetSize)(
   1128         IMalloc* This,
   1129         void *pv);
   1130 
   1131     int (STDMETHODCALLTYPE *DidAlloc)(
   1132         IMalloc* This,
   1133         void *pv);
   1134 
   1135     void (STDMETHODCALLTYPE *HeapMinimize)(
   1136         IMalloc* This);
   1137 
   1138     END_INTERFACE
   1139 } IMallocVtbl;
   1140 interface IMalloc {
   1141     CONST_VTBL IMallocVtbl* lpVtbl;
   1142 };
   1143 
   1144 #ifdef COBJMACROS
   1145 #ifndef WIDL_C_INLINE_WRAPPERS
   1146 /*** IUnknown methods ***/
   1147 #define IMalloc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1148 #define IMalloc_AddRef(This) (This)->lpVtbl->AddRef(This)
   1149 #define IMalloc_Release(This) (This)->lpVtbl->Release(This)
   1150 /*** IMalloc methods ***/
   1151 #define IMalloc_Alloc(This,cb) (This)->lpVtbl->Alloc(This,cb)
   1152 #define IMalloc_Realloc(This,pv,cb) (This)->lpVtbl->Realloc(This,pv,cb)
   1153 #define IMalloc_Free(This,pv) (This)->lpVtbl->Free(This,pv)
   1154 #define IMalloc_GetSize(This,pv) (This)->lpVtbl->GetSize(This,pv)
   1155 #define IMalloc_DidAlloc(This,pv) (This)->lpVtbl->DidAlloc(This,pv)
   1156 #define IMalloc_HeapMinimize(This) (This)->lpVtbl->HeapMinimize(This)
   1157 #else
   1158 /*** IUnknown methods ***/
   1159 static FORCEINLINE HRESULT IMalloc_QueryInterface(IMalloc* This,REFIID riid,void **ppvObject) {
   1160     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1161 }
   1162 static FORCEINLINE ULONG IMalloc_AddRef(IMalloc* This) {
   1163     return This->lpVtbl->AddRef(This);
   1164 }
   1165 static FORCEINLINE ULONG IMalloc_Release(IMalloc* This) {
   1166     return This->lpVtbl->Release(This);
   1167 }
   1168 /*** IMalloc methods ***/
   1169 static FORCEINLINE void * IMalloc_Alloc(IMalloc* This,SIZE_T cb) {
   1170     return This->lpVtbl->Alloc(This,cb);
   1171 }
   1172 static FORCEINLINE void * IMalloc_Realloc(IMalloc* This,void *pv,SIZE_T cb) {
   1173     return This->lpVtbl->Realloc(This,pv,cb);
   1174 }
   1175 static FORCEINLINE void IMalloc_Free(IMalloc* This,void *pv) {
   1176     This->lpVtbl->Free(This,pv);
   1177 }
   1178 static FORCEINLINE SIZE_T IMalloc_GetSize(IMalloc* This,void *pv) {
   1179     return This->lpVtbl->GetSize(This,pv);
   1180 }
   1181 static FORCEINLINE int IMalloc_DidAlloc(IMalloc* This,void *pv) {
   1182     return This->lpVtbl->DidAlloc(This,pv);
   1183 }
   1184 static FORCEINLINE void IMalloc_HeapMinimize(IMalloc* This) {
   1185     This->lpVtbl->HeapMinimize(This);
   1186 }
   1187 #endif
   1188 #endif
   1189 
   1190 #endif
   1191 
   1192 void * STDMETHODCALLTYPE IMalloc_Alloc_Proxy(
   1193     IMalloc* This,
   1194     SIZE_T cb);
   1195 void __RPC_STUB IMalloc_Alloc_Stub(
   1196     IRpcStubBuffer* This,
   1197     IRpcChannelBuffer* pRpcChannelBuffer,
   1198     PRPC_MESSAGE pRpcMessage,
   1199     DWORD* pdwStubPhase);
   1200 void * STDMETHODCALLTYPE IMalloc_Realloc_Proxy(
   1201     IMalloc* This,
   1202     void *pv,
   1203     SIZE_T cb);
   1204 void __RPC_STUB IMalloc_Realloc_Stub(
   1205     IRpcStubBuffer* This,
   1206     IRpcChannelBuffer* pRpcChannelBuffer,
   1207     PRPC_MESSAGE pRpcMessage,
   1208     DWORD* pdwStubPhase);
   1209 void STDMETHODCALLTYPE IMalloc_Free_Proxy(
   1210     IMalloc* This,
   1211     void *pv);
   1212 void __RPC_STUB IMalloc_Free_Stub(
   1213     IRpcStubBuffer* This,
   1214     IRpcChannelBuffer* pRpcChannelBuffer,
   1215     PRPC_MESSAGE pRpcMessage,
   1216     DWORD* pdwStubPhase);
   1217 SIZE_T STDMETHODCALLTYPE IMalloc_GetSize_Proxy(
   1218     IMalloc* This,
   1219     void *pv);
   1220 void __RPC_STUB IMalloc_GetSize_Stub(
   1221     IRpcStubBuffer* This,
   1222     IRpcChannelBuffer* pRpcChannelBuffer,
   1223     PRPC_MESSAGE pRpcMessage,
   1224     DWORD* pdwStubPhase);
   1225 int STDMETHODCALLTYPE IMalloc_DidAlloc_Proxy(
   1226     IMalloc* This,
   1227     void *pv);
   1228 void __RPC_STUB IMalloc_DidAlloc_Stub(
   1229     IRpcStubBuffer* This,
   1230     IRpcChannelBuffer* pRpcChannelBuffer,
   1231     PRPC_MESSAGE pRpcMessage,
   1232     DWORD* pdwStubPhase);
   1233 void STDMETHODCALLTYPE IMalloc_HeapMinimize_Proxy(
   1234     IMalloc* This);
   1235 void __RPC_STUB IMalloc_HeapMinimize_Stub(
   1236     IRpcStubBuffer* This,
   1237     IRpcChannelBuffer* pRpcChannelBuffer,
   1238     PRPC_MESSAGE pRpcMessage,
   1239     DWORD* pdwStubPhase);
   1240 
   1241 #endif  /* __IMalloc_INTERFACE_DEFINED__ */
   1242 
   1243 
   1244 /*****************************************************************************
   1245  * IStdMarshalInfo interface
   1246  */
   1247 #ifndef __IStdMarshalInfo_INTERFACE_DEFINED__
   1248 #define __IStdMarshalInfo_INTERFACE_DEFINED__
   1249 
   1250 typedef IStdMarshalInfo *LPSTDMARSHALINFO;
   1251 
   1252 DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1253 #if defined(__cplusplus) && !defined(CINTERFACE)
   1254 MIDL_INTERFACE("00000018-0000-0000-c000-000000000046")
   1255 IStdMarshalInfo : public IUnknown
   1256 {
   1257     virtual HRESULT STDMETHODCALLTYPE GetClassForHandler(
   1258         DWORD dwDestContext,
   1259         void *pvDestContext,
   1260         CLSID *pClsid) = 0;
   1261 
   1262 };
   1263 #ifdef __CRT_UUID_DECL
   1264 __CRT_UUID_DECL(IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1265 #endif
   1266 #else
   1267 typedef struct IStdMarshalInfoVtbl {
   1268     BEGIN_INTERFACE
   1269 
   1270     /*** IUnknown methods ***/
   1271     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1272         IStdMarshalInfo* This,
   1273         REFIID riid,
   1274         void **ppvObject);
   1275 
   1276     ULONG (STDMETHODCALLTYPE *AddRef)(
   1277         IStdMarshalInfo* This);
   1278 
   1279     ULONG (STDMETHODCALLTYPE *Release)(
   1280         IStdMarshalInfo* This);
   1281 
   1282     /*** IStdMarshalInfo methods ***/
   1283     HRESULT (STDMETHODCALLTYPE *GetClassForHandler)(
   1284         IStdMarshalInfo* This,
   1285         DWORD dwDestContext,
   1286         void *pvDestContext,
   1287         CLSID *pClsid);
   1288 
   1289     END_INTERFACE
   1290 } IStdMarshalInfoVtbl;
   1291 interface IStdMarshalInfo {
   1292     CONST_VTBL IStdMarshalInfoVtbl* lpVtbl;
   1293 };
   1294 
   1295 #ifdef COBJMACROS
   1296 #ifndef WIDL_C_INLINE_WRAPPERS
   1297 /*** IUnknown methods ***/
   1298 #define IStdMarshalInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1299 #define IStdMarshalInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   1300 #define IStdMarshalInfo_Release(This) (This)->lpVtbl->Release(This)
   1301 /*** IStdMarshalInfo methods ***/
   1302 #define IStdMarshalInfo_GetClassForHandler(This,dwDestContext,pvDestContext,pClsid) (This)->lpVtbl->GetClassForHandler(This,dwDestContext,pvDestContext,pClsid)
   1303 #else
   1304 /*** IUnknown methods ***/
   1305 static FORCEINLINE HRESULT IStdMarshalInfo_QueryInterface(IStdMarshalInfo* This,REFIID riid,void **ppvObject) {
   1306     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1307 }
   1308 static FORCEINLINE ULONG IStdMarshalInfo_AddRef(IStdMarshalInfo* This) {
   1309     return This->lpVtbl->AddRef(This);
   1310 }
   1311 static FORCEINLINE ULONG IStdMarshalInfo_Release(IStdMarshalInfo* This) {
   1312     return This->lpVtbl->Release(This);
   1313 }
   1314 /*** IStdMarshalInfo methods ***/
   1315 static FORCEINLINE HRESULT IStdMarshalInfo_GetClassForHandler(IStdMarshalInfo* This,DWORD dwDestContext,void *pvDestContext,CLSID *pClsid) {
   1316     return This->lpVtbl->GetClassForHandler(This,dwDestContext,pvDestContext,pClsid);
   1317 }
   1318 #endif
   1319 #endif
   1320 
   1321 #endif
   1322 
   1323 HRESULT STDMETHODCALLTYPE IStdMarshalInfo_GetClassForHandler_Proxy(
   1324     IStdMarshalInfo* This,
   1325     DWORD dwDestContext,
   1326     void *pvDestContext,
   1327     CLSID *pClsid);
   1328 void __RPC_STUB IStdMarshalInfo_GetClassForHandler_Stub(
   1329     IRpcStubBuffer* This,
   1330     IRpcChannelBuffer* pRpcChannelBuffer,
   1331     PRPC_MESSAGE pRpcMessage,
   1332     DWORD* pdwStubPhase);
   1333 
   1334 #endif  /* __IStdMarshalInfo_INTERFACE_DEFINED__ */
   1335 
   1336 
   1337 /*****************************************************************************
   1338  * IExternalConnection interface
   1339  */
   1340 #ifndef __IExternalConnection_INTERFACE_DEFINED__
   1341 #define __IExternalConnection_INTERFACE_DEFINED__
   1342 
   1343 typedef IExternalConnection *LPEXTERNALCONNECTION;
   1344 
   1345 typedef enum tagEXTCONN {
   1346     EXTCONN_STRONG = 0x1,
   1347     EXTCONN_WEAK = 0x2,
   1348     EXTCONN_CALLABLE = 0x4
   1349 } EXTCONN;
   1350 
   1351 DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1352 #if defined(__cplusplus) && !defined(CINTERFACE)
   1353 MIDL_INTERFACE("00000019-0000-0000-c000-000000000046")
   1354 IExternalConnection : public IUnknown
   1355 {
   1356     virtual DWORD STDMETHODCALLTYPE AddConnection(
   1357         DWORD extconn,
   1358         DWORD reserved) = 0;
   1359 
   1360     virtual DWORD STDMETHODCALLTYPE ReleaseConnection(
   1361         DWORD extconn,
   1362         DWORD reserved,
   1363         WINBOOL fLastReleaseCloses) = 0;
   1364 
   1365 };
   1366 #ifdef __CRT_UUID_DECL
   1367 __CRT_UUID_DECL(IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1368 #endif
   1369 #else
   1370 typedef struct IExternalConnectionVtbl {
   1371     BEGIN_INTERFACE
   1372 
   1373     /*** IUnknown methods ***/
   1374     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1375         IExternalConnection* This,
   1376         REFIID riid,
   1377         void **ppvObject);
   1378 
   1379     ULONG (STDMETHODCALLTYPE *AddRef)(
   1380         IExternalConnection* This);
   1381 
   1382     ULONG (STDMETHODCALLTYPE *Release)(
   1383         IExternalConnection* This);
   1384 
   1385     /*** IExternalConnection methods ***/
   1386     DWORD (STDMETHODCALLTYPE *AddConnection)(
   1387         IExternalConnection* This,
   1388         DWORD extconn,
   1389         DWORD reserved);
   1390 
   1391     DWORD (STDMETHODCALLTYPE *ReleaseConnection)(
   1392         IExternalConnection* This,
   1393         DWORD extconn,
   1394         DWORD reserved,
   1395         WINBOOL fLastReleaseCloses);
   1396 
   1397     END_INTERFACE
   1398 } IExternalConnectionVtbl;
   1399 interface IExternalConnection {
   1400     CONST_VTBL IExternalConnectionVtbl* lpVtbl;
   1401 };
   1402 
   1403 #ifdef COBJMACROS
   1404 #ifndef WIDL_C_INLINE_WRAPPERS
   1405 /*** IUnknown methods ***/
   1406 #define IExternalConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1407 #define IExternalConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
   1408 #define IExternalConnection_Release(This) (This)->lpVtbl->Release(This)
   1409 /*** IExternalConnection methods ***/
   1410 #define IExternalConnection_AddConnection(This,extconn,reserved) (This)->lpVtbl->AddConnection(This,extconn,reserved)
   1411 #define IExternalConnection_ReleaseConnection(This,extconn,reserved,fLastReleaseCloses) (This)->lpVtbl->ReleaseConnection(This,extconn,reserved,fLastReleaseCloses)
   1412 #else
   1413 /*** IUnknown methods ***/
   1414 static FORCEINLINE HRESULT IExternalConnection_QueryInterface(IExternalConnection* This,REFIID riid,void **ppvObject) {
   1415     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1416 }
   1417 static FORCEINLINE ULONG IExternalConnection_AddRef(IExternalConnection* This) {
   1418     return This->lpVtbl->AddRef(This);
   1419 }
   1420 static FORCEINLINE ULONG IExternalConnection_Release(IExternalConnection* This) {
   1421     return This->lpVtbl->Release(This);
   1422 }
   1423 /*** IExternalConnection methods ***/
   1424 static FORCEINLINE DWORD IExternalConnection_AddConnection(IExternalConnection* This,DWORD extconn,DWORD reserved) {
   1425     return This->lpVtbl->AddConnection(This,extconn,reserved);
   1426 }
   1427 static FORCEINLINE DWORD IExternalConnection_ReleaseConnection(IExternalConnection* This,DWORD extconn,DWORD reserved,WINBOOL fLastReleaseCloses) {
   1428     return This->lpVtbl->ReleaseConnection(This,extconn,reserved,fLastReleaseCloses);
   1429 }
   1430 #endif
   1431 #endif
   1432 
   1433 #endif
   1434 
   1435 DWORD STDMETHODCALLTYPE IExternalConnection_AddConnection_Proxy(
   1436     IExternalConnection* This,
   1437     DWORD extconn,
   1438     DWORD reserved);
   1439 void __RPC_STUB IExternalConnection_AddConnection_Stub(
   1440     IRpcStubBuffer* This,
   1441     IRpcChannelBuffer* pRpcChannelBuffer,
   1442     PRPC_MESSAGE pRpcMessage,
   1443     DWORD* pdwStubPhase);
   1444 DWORD STDMETHODCALLTYPE IExternalConnection_ReleaseConnection_Proxy(
   1445     IExternalConnection* This,
   1446     DWORD extconn,
   1447     DWORD reserved,
   1448     WINBOOL fLastReleaseCloses);
   1449 void __RPC_STUB IExternalConnection_ReleaseConnection_Stub(
   1450     IRpcStubBuffer* This,
   1451     IRpcChannelBuffer* pRpcChannelBuffer,
   1452     PRPC_MESSAGE pRpcMessage,
   1453     DWORD* pdwStubPhase);
   1454 
   1455 #endif  /* __IExternalConnection_INTERFACE_DEFINED__ */
   1456 
   1457 
   1458 typedef IMultiQI *LPMULTIQI;
   1459 #endif
   1460 
   1461 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   1462 typedef struct tagMULTI_QI {
   1463     const IID *pIID;
   1464     IUnknown *pItf;
   1465     HRESULT hr;
   1466 } MULTI_QI;
   1467 
   1468 /*****************************************************************************
   1469  * IMultiQI interface
   1470  */
   1471 #ifndef __IMultiQI_INTERFACE_DEFINED__
   1472 #define __IMultiQI_INTERFACE_DEFINED__
   1473 
   1474 DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1475 #if defined(__cplusplus) && !defined(CINTERFACE)
   1476 MIDL_INTERFACE("00000020-0000-0000-c000-000000000046")
   1477 IMultiQI : public IUnknown
   1478 {
   1479     virtual HRESULT STDMETHODCALLTYPE QueryMultipleInterfaces(
   1480         ULONG cMQIs,
   1481         MULTI_QI *pMQIs) = 0;
   1482 
   1483 };
   1484 #ifdef __CRT_UUID_DECL
   1485 __CRT_UUID_DECL(IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1486 #endif
   1487 #else
   1488 typedef struct IMultiQIVtbl {
   1489     BEGIN_INTERFACE
   1490 
   1491     /*** IUnknown methods ***/
   1492     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1493         IMultiQI* This,
   1494         REFIID riid,
   1495         void **ppvObject);
   1496 
   1497     ULONG (STDMETHODCALLTYPE *AddRef)(
   1498         IMultiQI* This);
   1499 
   1500     ULONG (STDMETHODCALLTYPE *Release)(
   1501         IMultiQI* This);
   1502 
   1503     /*** IMultiQI methods ***/
   1504     HRESULT (STDMETHODCALLTYPE *QueryMultipleInterfaces)(
   1505         IMultiQI* This,
   1506         ULONG cMQIs,
   1507         MULTI_QI *pMQIs);
   1508 
   1509     END_INTERFACE
   1510 } IMultiQIVtbl;
   1511 interface IMultiQI {
   1512     CONST_VTBL IMultiQIVtbl* lpVtbl;
   1513 };
   1514 
   1515 #ifdef COBJMACROS
   1516 #ifndef WIDL_C_INLINE_WRAPPERS
   1517 /*** IUnknown methods ***/
   1518 #define IMultiQI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1519 #define IMultiQI_AddRef(This) (This)->lpVtbl->AddRef(This)
   1520 #define IMultiQI_Release(This) (This)->lpVtbl->Release(This)
   1521 /*** IMultiQI methods ***/
   1522 #define IMultiQI_QueryMultipleInterfaces(This,cMQIs,pMQIs) (This)->lpVtbl->QueryMultipleInterfaces(This,cMQIs,pMQIs)
   1523 #else
   1524 /*** IUnknown methods ***/
   1525 static FORCEINLINE HRESULT IMultiQI_QueryInterface(IMultiQI* This,REFIID riid,void **ppvObject) {
   1526     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1527 }
   1528 static FORCEINLINE ULONG IMultiQI_AddRef(IMultiQI* This) {
   1529     return This->lpVtbl->AddRef(This);
   1530 }
   1531 static FORCEINLINE ULONG IMultiQI_Release(IMultiQI* This) {
   1532     return This->lpVtbl->Release(This);
   1533 }
   1534 /*** IMultiQI methods ***/
   1535 static FORCEINLINE HRESULT IMultiQI_QueryMultipleInterfaces(IMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
   1536     return This->lpVtbl->QueryMultipleInterfaces(This,cMQIs,pMQIs);
   1537 }
   1538 #endif
   1539 #endif
   1540 
   1541 #endif
   1542 
   1543 HRESULT STDMETHODCALLTYPE IMultiQI_QueryMultipleInterfaces_Proxy(
   1544     IMultiQI* This,
   1545     ULONG cMQIs,
   1546     MULTI_QI *pMQIs);
   1547 void __RPC_STUB IMultiQI_QueryMultipleInterfaces_Stub(
   1548     IRpcStubBuffer* This,
   1549     IRpcChannelBuffer* pRpcChannelBuffer,
   1550     PRPC_MESSAGE pRpcMessage,
   1551     DWORD* pdwStubPhase);
   1552 
   1553 #endif  /* __IMultiQI_INTERFACE_DEFINED__ */
   1554 
   1555 /*****************************************************************************
   1556  * AsyncIMultiQI interface
   1557  */
   1558 #ifndef __AsyncIMultiQI_INTERFACE_DEFINED__
   1559 #define __AsyncIMultiQI_INTERFACE_DEFINED__
   1560 
   1561 DEFINE_GUID(IID_AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1562 #if defined(__cplusplus) && !defined(CINTERFACE)
   1563 MIDL_INTERFACE("000e0020-0000-0000-c000-000000000046")
   1564 AsyncIMultiQI : public IUnknown
   1565 {
   1566     virtual void STDMETHODCALLTYPE Begin_QueryMultipleInterfaces(
   1567         ULONG cMQIs,
   1568         MULTI_QI *pMQIs) = 0;
   1569 
   1570     virtual HRESULT STDMETHODCALLTYPE Finish_QueryMultipleInterfaces(
   1571         MULTI_QI *pMQIs) = 0;
   1572 
   1573 };
   1574 #ifdef __CRT_UUID_DECL
   1575 __CRT_UUID_DECL(AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1576 #endif
   1577 #else
   1578 typedef struct AsyncIMultiQIVtbl {
   1579     BEGIN_INTERFACE
   1580 
   1581     /*** IUnknown methods ***/
   1582     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1583         AsyncIMultiQI* This,
   1584         REFIID riid,
   1585         void **ppvObject);
   1586 
   1587     ULONG (STDMETHODCALLTYPE *AddRef)(
   1588         AsyncIMultiQI* This);
   1589 
   1590     ULONG (STDMETHODCALLTYPE *Release)(
   1591         AsyncIMultiQI* This);
   1592 
   1593     /*** IMultiQI methods ***/
   1594     void (STDMETHODCALLTYPE *Begin_QueryMultipleInterfaces)(
   1595         AsyncIMultiQI* This,
   1596         ULONG cMQIs,
   1597         MULTI_QI *pMQIs);
   1598 
   1599     HRESULT (STDMETHODCALLTYPE *Finish_QueryMultipleInterfaces)(
   1600         AsyncIMultiQI* This,
   1601         MULTI_QI *pMQIs);
   1602 
   1603     END_INTERFACE
   1604 } AsyncIMultiQIVtbl;
   1605 interface AsyncIMultiQI {
   1606     CONST_VTBL AsyncIMultiQIVtbl* lpVtbl;
   1607 };
   1608 
   1609 #ifdef COBJMACROS
   1610 #ifndef WIDL_C_INLINE_WRAPPERS
   1611 /*** IUnknown methods ***/
   1612 #define AsyncIMultiQI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1613 #define AsyncIMultiQI_AddRef(This) (This)->lpVtbl->AddRef(This)
   1614 #define AsyncIMultiQI_Release(This) (This)->lpVtbl->Release(This)
   1615 /*** IMultiQI methods ***/
   1616 #define AsyncIMultiQI_Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs) (This)->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs)
   1617 #define AsyncIMultiQI_Finish_QueryMultipleInterfaces(This,pMQIs) (This)->lpVtbl->Finish_QueryMultipleInterfaces(This,pMQIs)
   1618 #else
   1619 /*** IUnknown methods ***/
   1620 static FORCEINLINE HRESULT AsyncIMultiQI_QueryInterface(AsyncIMultiQI* This,REFIID riid,void **ppvObject) {
   1621     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1622 }
   1623 static FORCEINLINE ULONG AsyncIMultiQI_AddRef(AsyncIMultiQI* This) {
   1624     return This->lpVtbl->AddRef(This);
   1625 }
   1626 static FORCEINLINE ULONG AsyncIMultiQI_Release(AsyncIMultiQI* This) {
   1627     return This->lpVtbl->Release(This);
   1628 }
   1629 /*** IMultiQI methods ***/
   1630 static FORCEINLINE void Begin_AsyncIMultiQI_QueryMultipleInterfaces(AsyncIMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
   1631     This->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs);
   1632 }
   1633 static FORCEINLINE HRESULT Finish_AsyncIMultiQI_QueryMultipleInterfaces(AsyncIMultiQI* This,MULTI_QI *pMQIs) {
   1634     return This->lpVtbl->Finish_QueryMultipleInterfaces(This);
   1635 }
   1636 #endif
   1637 #endif
   1638 
   1639 #endif
   1640 
   1641 HRESULT STDMETHODCALLTYPE AsyncIMultiQI_Begin_QueryMultipleInterfaces_Proxy(
   1642     IMultiQI* This,
   1643     ULONG cMQIs,
   1644     MULTI_QI *pMQIs);
   1645 void __RPC_STUB AsyncIMultiQI_Begin_QueryMultipleInterfaces_Stub(
   1646     IRpcStubBuffer* This,
   1647     IRpcChannelBuffer* pRpcChannelBuffer,
   1648     PRPC_MESSAGE pRpcMessage,
   1649     DWORD* pdwStubPhase);
   1650 HRESULT STDMETHODCALLTYPE AsyncIMultiQI_Finish_QueryMultipleInterfaces_Proxy(
   1651     IMultiQI* This,
   1652     ULONG cMQIs,
   1653     MULTI_QI *pMQIs);
   1654 void __RPC_STUB AsyncIMultiQI_Finish_QueryMultipleInterfaces_Stub(
   1655     IRpcStubBuffer* This,
   1656     IRpcChannelBuffer* pRpcChannelBuffer,
   1657     PRPC_MESSAGE pRpcMessage,
   1658     DWORD* pdwStubPhase);
   1659 
   1660 #endif  /* __AsyncIMultiQI_INTERFACE_DEFINED__ */
   1661 
   1662 #endif
   1663 
   1664 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   1665 /*****************************************************************************
   1666  * IInternalUnknown interface
   1667  */
   1668 #ifndef __IInternalUnknown_INTERFACE_DEFINED__
   1669 #define __IInternalUnknown_INTERFACE_DEFINED__
   1670 
   1671 DEFINE_GUID(IID_IInternalUnknown, 0x00000021, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1672 #if defined(__cplusplus) && !defined(CINTERFACE)
   1673 MIDL_INTERFACE("00000021-0000-0000-c000-000000000046")
   1674 IInternalUnknown : public IUnknown
   1675 {
   1676     virtual HRESULT STDMETHODCALLTYPE QueryInternalInterface(
   1677         REFIID riid,
   1678         void **ppv) = 0;
   1679 
   1680 };
   1681 #ifdef __CRT_UUID_DECL
   1682 __CRT_UUID_DECL(IInternalUnknown, 0x00000021, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1683 #endif
   1684 #else
   1685 typedef struct IInternalUnknownVtbl {
   1686     BEGIN_INTERFACE
   1687 
   1688     /*** IUnknown methods ***/
   1689     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1690         IInternalUnknown* This,
   1691         REFIID riid,
   1692         void **ppvObject);
   1693 
   1694     ULONG (STDMETHODCALLTYPE *AddRef)(
   1695         IInternalUnknown* This);
   1696 
   1697     ULONG (STDMETHODCALLTYPE *Release)(
   1698         IInternalUnknown* This);
   1699 
   1700     /*** IInternalUnknown methods ***/
   1701     HRESULT (STDMETHODCALLTYPE *QueryInternalInterface)(
   1702         IInternalUnknown* This,
   1703         REFIID riid,
   1704         void **ppv);
   1705 
   1706     END_INTERFACE
   1707 } IInternalUnknownVtbl;
   1708 interface IInternalUnknown {
   1709     CONST_VTBL IInternalUnknownVtbl* lpVtbl;
   1710 };
   1711 
   1712 #ifdef COBJMACROS
   1713 #ifndef WIDL_C_INLINE_WRAPPERS
   1714 /*** IUnknown methods ***/
   1715 #define IInternalUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1716 #define IInternalUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
   1717 #define IInternalUnknown_Release(This) (This)->lpVtbl->Release(This)
   1718 /*** IInternalUnknown methods ***/
   1719 #define IInternalUnknown_QueryInternalInterface(This,riid,ppv) (This)->lpVtbl->QueryInternalInterface(This,riid,ppv)
   1720 #else
   1721 /*** IUnknown methods ***/
   1722 static FORCEINLINE HRESULT IInternalUnknown_QueryInterface(IInternalUnknown* This,REFIID riid,void **ppvObject) {
   1723     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1724 }
   1725 static FORCEINLINE ULONG IInternalUnknown_AddRef(IInternalUnknown* This) {
   1726     return This->lpVtbl->AddRef(This);
   1727 }
   1728 static FORCEINLINE ULONG IInternalUnknown_Release(IInternalUnknown* This) {
   1729     return This->lpVtbl->Release(This);
   1730 }
   1731 /*** IInternalUnknown methods ***/
   1732 static FORCEINLINE HRESULT IInternalUnknown_QueryInternalInterface(IInternalUnknown* This,REFIID riid,void **ppv) {
   1733     return This->lpVtbl->QueryInternalInterface(This,riid,ppv);
   1734 }
   1735 #endif
   1736 #endif
   1737 
   1738 #endif
   1739 
   1740 HRESULT STDMETHODCALLTYPE IInternalUnknown_QueryInternalInterface_Proxy(
   1741     IInternalUnknown* This,
   1742     REFIID riid,
   1743     void **ppv);
   1744 void __RPC_STUB IInternalUnknown_QueryInternalInterface_Stub(
   1745     IRpcStubBuffer* This,
   1746     IRpcChannelBuffer* pRpcChannelBuffer,
   1747     PRPC_MESSAGE pRpcMessage,
   1748     DWORD* pdwStubPhase);
   1749 
   1750 #endif  /* __IInternalUnknown_INTERFACE_DEFINED__ */
   1751 
   1752 #endif
   1753 
   1754 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   1755 /*****************************************************************************
   1756  * IEnumUnknown interface
   1757  */
   1758 #ifndef __IEnumUnknown_INTERFACE_DEFINED__
   1759 #define __IEnumUnknown_INTERFACE_DEFINED__
   1760 
   1761 typedef IEnumUnknown *LPENUMUNKNOWN;
   1762 
   1763 DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1764 #if defined(__cplusplus) && !defined(CINTERFACE)
   1765 MIDL_INTERFACE("00000100-0000-0000-c000-000000000046")
   1766 IEnumUnknown : public IUnknown
   1767 {
   1768     virtual HRESULT STDMETHODCALLTYPE Next(
   1769         ULONG celt,
   1770         IUnknown **rgelt,
   1771         ULONG *pceltFetched) = 0;
   1772 
   1773     virtual HRESULT STDMETHODCALLTYPE Skip(
   1774         ULONG celt) = 0;
   1775 
   1776     virtual HRESULT STDMETHODCALLTYPE Reset(
   1777         ) = 0;
   1778 
   1779     virtual HRESULT STDMETHODCALLTYPE Clone(
   1780         IEnumUnknown **ppenum) = 0;
   1781 
   1782 };
   1783 #ifdef __CRT_UUID_DECL
   1784 __CRT_UUID_DECL(IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1785 #endif
   1786 #else
   1787 typedef struct IEnumUnknownVtbl {
   1788     BEGIN_INTERFACE
   1789 
   1790     /*** IUnknown methods ***/
   1791     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1792         IEnumUnknown* This,
   1793         REFIID riid,
   1794         void **ppvObject);
   1795 
   1796     ULONG (STDMETHODCALLTYPE *AddRef)(
   1797         IEnumUnknown* This);
   1798 
   1799     ULONG (STDMETHODCALLTYPE *Release)(
   1800         IEnumUnknown* This);
   1801 
   1802     /*** IEnumUnknown methods ***/
   1803     HRESULT (STDMETHODCALLTYPE *Next)(
   1804         IEnumUnknown* This,
   1805         ULONG celt,
   1806         IUnknown **rgelt,
   1807         ULONG *pceltFetched);
   1808 
   1809     HRESULT (STDMETHODCALLTYPE *Skip)(
   1810         IEnumUnknown* This,
   1811         ULONG celt);
   1812 
   1813     HRESULT (STDMETHODCALLTYPE *Reset)(
   1814         IEnumUnknown* This);
   1815 
   1816     HRESULT (STDMETHODCALLTYPE *Clone)(
   1817         IEnumUnknown* This,
   1818         IEnumUnknown **ppenum);
   1819 
   1820     END_INTERFACE
   1821 } IEnumUnknownVtbl;
   1822 interface IEnumUnknown {
   1823     CONST_VTBL IEnumUnknownVtbl* lpVtbl;
   1824 };
   1825 
   1826 #ifdef COBJMACROS
   1827 #ifndef WIDL_C_INLINE_WRAPPERS
   1828 /*** IUnknown methods ***/
   1829 #define IEnumUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1830 #define IEnumUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
   1831 #define IEnumUnknown_Release(This) (This)->lpVtbl->Release(This)
   1832 /*** IEnumUnknown methods ***/
   1833 #define IEnumUnknown_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   1834 #define IEnumUnknown_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   1835 #define IEnumUnknown_Reset(This) (This)->lpVtbl->Reset(This)
   1836 #define IEnumUnknown_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   1837 #else
   1838 /*** IUnknown methods ***/
   1839 static FORCEINLINE HRESULT IEnumUnknown_QueryInterface(IEnumUnknown* This,REFIID riid,void **ppvObject) {
   1840     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1841 }
   1842 static FORCEINLINE ULONG IEnumUnknown_AddRef(IEnumUnknown* This) {
   1843     return This->lpVtbl->AddRef(This);
   1844 }
   1845 static FORCEINLINE ULONG IEnumUnknown_Release(IEnumUnknown* This) {
   1846     return This->lpVtbl->Release(This);
   1847 }
   1848 /*** IEnumUnknown methods ***/
   1849 static FORCEINLINE HRESULT IEnumUnknown_Next(IEnumUnknown* This,ULONG celt,IUnknown **rgelt,ULONG *pceltFetched) {
   1850     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   1851 }
   1852 static FORCEINLINE HRESULT IEnumUnknown_Skip(IEnumUnknown* This,ULONG celt) {
   1853     return This->lpVtbl->Skip(This,celt);
   1854 }
   1855 static FORCEINLINE HRESULT IEnumUnknown_Reset(IEnumUnknown* This) {
   1856     return This->lpVtbl->Reset(This);
   1857 }
   1858 static FORCEINLINE HRESULT IEnumUnknown_Clone(IEnumUnknown* This,IEnumUnknown **ppenum) {
   1859     return This->lpVtbl->Clone(This,ppenum);
   1860 }
   1861 #endif
   1862 #endif
   1863 
   1864 #endif
   1865 
   1866 HRESULT STDMETHODCALLTYPE IEnumUnknown_RemoteNext_Proxy(
   1867     IEnumUnknown* This,
   1868     ULONG celt,
   1869     IUnknown **rgelt,
   1870     ULONG *pceltFetched);
   1871 void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
   1872     IRpcStubBuffer* This,
   1873     IRpcChannelBuffer* pRpcChannelBuffer,
   1874     PRPC_MESSAGE pRpcMessage,
   1875     DWORD* pdwStubPhase);
   1876 HRESULT STDMETHODCALLTYPE IEnumUnknown_Skip_Proxy(
   1877     IEnumUnknown* This,
   1878     ULONG celt);
   1879 void __RPC_STUB IEnumUnknown_Skip_Stub(
   1880     IRpcStubBuffer* This,
   1881     IRpcChannelBuffer* pRpcChannelBuffer,
   1882     PRPC_MESSAGE pRpcMessage,
   1883     DWORD* pdwStubPhase);
   1884 HRESULT STDMETHODCALLTYPE IEnumUnknown_Reset_Proxy(
   1885     IEnumUnknown* This);
   1886 void __RPC_STUB IEnumUnknown_Reset_Stub(
   1887     IRpcStubBuffer* This,
   1888     IRpcChannelBuffer* pRpcChannelBuffer,
   1889     PRPC_MESSAGE pRpcMessage,
   1890     DWORD* pdwStubPhase);
   1891 HRESULT STDMETHODCALLTYPE IEnumUnknown_Clone_Proxy(
   1892     IEnumUnknown* This,
   1893     IEnumUnknown **ppenum);
   1894 void __RPC_STUB IEnumUnknown_Clone_Stub(
   1895     IRpcStubBuffer* This,
   1896     IRpcChannelBuffer* pRpcChannelBuffer,
   1897     PRPC_MESSAGE pRpcMessage,
   1898     DWORD* pdwStubPhase);
   1899 HRESULT CALLBACK IEnumUnknown_Next_Proxy(
   1900     IEnumUnknown* This,
   1901     ULONG celt,
   1902     IUnknown **rgelt,
   1903     ULONG *pceltFetched);
   1904 HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
   1905     IEnumUnknown* This,
   1906     ULONG celt,
   1907     IUnknown **rgelt,
   1908     ULONG *pceltFetched);
   1909 
   1910 #endif  /* __IEnumUnknown_INTERFACE_DEFINED__ */
   1911 
   1912 
   1913 /*****************************************************************************
   1914  * IEnumString interface
   1915  */
   1916 #ifndef __IEnumString_INTERFACE_DEFINED__
   1917 #define __IEnumString_INTERFACE_DEFINED__
   1918 
   1919 typedef IEnumString *LPENUMSTRING;
   1920 
   1921 DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1922 #if defined(__cplusplus) && !defined(CINTERFACE)
   1923 MIDL_INTERFACE("00000101-0000-0000-c000-000000000046")
   1924 IEnumString : public IUnknown
   1925 {
   1926     virtual HRESULT STDMETHODCALLTYPE Next(
   1927         ULONG celt,
   1928         LPOLESTR *rgelt,
   1929         ULONG *pceltFetched) = 0;
   1930 
   1931     virtual HRESULT STDMETHODCALLTYPE Skip(
   1932         ULONG celt) = 0;
   1933 
   1934     virtual HRESULT STDMETHODCALLTYPE Reset(
   1935         ) = 0;
   1936 
   1937     virtual HRESULT STDMETHODCALLTYPE Clone(
   1938         IEnumString **ppenum) = 0;
   1939 
   1940 };
   1941 #ifdef __CRT_UUID_DECL
   1942 __CRT_UUID_DECL(IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1943 #endif
   1944 #else
   1945 typedef struct IEnumStringVtbl {
   1946     BEGIN_INTERFACE
   1947 
   1948     /*** IUnknown methods ***/
   1949     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1950         IEnumString* This,
   1951         REFIID riid,
   1952         void **ppvObject);
   1953 
   1954     ULONG (STDMETHODCALLTYPE *AddRef)(
   1955         IEnumString* This);
   1956 
   1957     ULONG (STDMETHODCALLTYPE *Release)(
   1958         IEnumString* This);
   1959 
   1960     /*** IEnumString methods ***/
   1961     HRESULT (STDMETHODCALLTYPE *Next)(
   1962         IEnumString* This,
   1963         ULONG celt,
   1964         LPOLESTR *rgelt,
   1965         ULONG *pceltFetched);
   1966 
   1967     HRESULT (STDMETHODCALLTYPE *Skip)(
   1968         IEnumString* This,
   1969         ULONG celt);
   1970 
   1971     HRESULT (STDMETHODCALLTYPE *Reset)(
   1972         IEnumString* This);
   1973 
   1974     HRESULT (STDMETHODCALLTYPE *Clone)(
   1975         IEnumString* This,
   1976         IEnumString **ppenum);
   1977 
   1978     END_INTERFACE
   1979 } IEnumStringVtbl;
   1980 interface IEnumString {
   1981     CONST_VTBL IEnumStringVtbl* lpVtbl;
   1982 };
   1983 
   1984 #ifdef COBJMACROS
   1985 #ifndef WIDL_C_INLINE_WRAPPERS
   1986 /*** IUnknown methods ***/
   1987 #define IEnumString_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1988 #define IEnumString_AddRef(This) (This)->lpVtbl->AddRef(This)
   1989 #define IEnumString_Release(This) (This)->lpVtbl->Release(This)
   1990 /*** IEnumString methods ***/
   1991 #define IEnumString_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   1992 #define IEnumString_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   1993 #define IEnumString_Reset(This) (This)->lpVtbl->Reset(This)
   1994 #define IEnumString_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   1995 #else
   1996 /*** IUnknown methods ***/
   1997 static FORCEINLINE HRESULT IEnumString_QueryInterface(IEnumString* This,REFIID riid,void **ppvObject) {
   1998     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1999 }
   2000 static FORCEINLINE ULONG IEnumString_AddRef(IEnumString* This) {
   2001     return This->lpVtbl->AddRef(This);
   2002 }
   2003 static FORCEINLINE ULONG IEnumString_Release(IEnumString* This) {
   2004     return This->lpVtbl->Release(This);
   2005 }
   2006 /*** IEnumString methods ***/
   2007 static FORCEINLINE HRESULT IEnumString_Next(IEnumString* This,ULONG celt,LPOLESTR *rgelt,ULONG *pceltFetched) {
   2008     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   2009 }
   2010 static FORCEINLINE HRESULT IEnumString_Skip(IEnumString* This,ULONG celt) {
   2011     return This->lpVtbl->Skip(This,celt);
   2012 }
   2013 static FORCEINLINE HRESULT IEnumString_Reset(IEnumString* This) {
   2014     return This->lpVtbl->Reset(This);
   2015 }
   2016 static FORCEINLINE HRESULT IEnumString_Clone(IEnumString* This,IEnumString **ppenum) {
   2017     return This->lpVtbl->Clone(This,ppenum);
   2018 }
   2019 #endif
   2020 #endif
   2021 
   2022 #endif
   2023 
   2024 HRESULT STDMETHODCALLTYPE IEnumString_RemoteNext_Proxy(
   2025     IEnumString* This,
   2026     ULONG celt,
   2027     LPOLESTR *rgelt,
   2028     ULONG *pceltFetched);
   2029 void __RPC_STUB IEnumString_RemoteNext_Stub(
   2030     IRpcStubBuffer* This,
   2031     IRpcChannelBuffer* pRpcChannelBuffer,
   2032     PRPC_MESSAGE pRpcMessage,
   2033     DWORD* pdwStubPhase);
   2034 HRESULT STDMETHODCALLTYPE IEnumString_Skip_Proxy(
   2035     IEnumString* This,
   2036     ULONG celt);
   2037 void __RPC_STUB IEnumString_Skip_Stub(
   2038     IRpcStubBuffer* This,
   2039     IRpcChannelBuffer* pRpcChannelBuffer,
   2040     PRPC_MESSAGE pRpcMessage,
   2041     DWORD* pdwStubPhase);
   2042 HRESULT STDMETHODCALLTYPE IEnumString_Reset_Proxy(
   2043     IEnumString* This);
   2044 void __RPC_STUB IEnumString_Reset_Stub(
   2045     IRpcStubBuffer* This,
   2046     IRpcChannelBuffer* pRpcChannelBuffer,
   2047     PRPC_MESSAGE pRpcMessage,
   2048     DWORD* pdwStubPhase);
   2049 HRESULT STDMETHODCALLTYPE IEnumString_Clone_Proxy(
   2050     IEnumString* This,
   2051     IEnumString **ppenum);
   2052 void __RPC_STUB IEnumString_Clone_Stub(
   2053     IRpcStubBuffer* This,
   2054     IRpcChannelBuffer* pRpcChannelBuffer,
   2055     PRPC_MESSAGE pRpcMessage,
   2056     DWORD* pdwStubPhase);
   2057 HRESULT CALLBACK IEnumString_Next_Proxy(
   2058     IEnumString* This,
   2059     ULONG celt,
   2060     LPOLESTR *rgelt,
   2061     ULONG *pceltFetched);
   2062 HRESULT __RPC_STUB IEnumString_Next_Stub(
   2063     IEnumString* This,
   2064     ULONG celt,
   2065     LPOLESTR *rgelt,
   2066     ULONG *pceltFetched);
   2067 
   2068 #endif  /* __IEnumString_INTERFACE_DEFINED__ */
   2069 
   2070 
   2071 /*****************************************************************************
   2072  * ISequentialStream interface
   2073  */
   2074 #ifndef __ISequentialStream_INTERFACE_DEFINED__
   2075 #define __ISequentialStream_INTERFACE_DEFINED__
   2076 
   2077 DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
   2078 #if defined(__cplusplus) && !defined(CINTERFACE)
   2079 MIDL_INTERFACE("0c733a30-2a1c-11ce-ade5-00aa0044773d")
   2080 ISequentialStream : public IUnknown
   2081 {
   2082     virtual HRESULT STDMETHODCALLTYPE Read(
   2083         void *pv,
   2084         ULONG cb,
   2085         ULONG *pcbRead) = 0;
   2086 
   2087     virtual HRESULT STDMETHODCALLTYPE Write(
   2088         const void *pv,
   2089         ULONG cb,
   2090         ULONG *pcbWritten) = 0;
   2091 
   2092 };
   2093 #ifdef __CRT_UUID_DECL
   2094 __CRT_UUID_DECL(ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d)
   2095 #endif
   2096 #else
   2097 typedef struct ISequentialStreamVtbl {
   2098     BEGIN_INTERFACE
   2099 
   2100     /*** IUnknown methods ***/
   2101     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2102         ISequentialStream* This,
   2103         REFIID riid,
   2104         void **ppvObject);
   2105 
   2106     ULONG (STDMETHODCALLTYPE *AddRef)(
   2107         ISequentialStream* This);
   2108 
   2109     ULONG (STDMETHODCALLTYPE *Release)(
   2110         ISequentialStream* This);
   2111 
   2112     /*** ISequentialStream methods ***/
   2113     HRESULT (STDMETHODCALLTYPE *Read)(
   2114         ISequentialStream* This,
   2115         void *pv,
   2116         ULONG cb,
   2117         ULONG *pcbRead);
   2118 
   2119     HRESULT (STDMETHODCALLTYPE *Write)(
   2120         ISequentialStream* This,
   2121         const void *pv,
   2122         ULONG cb,
   2123         ULONG *pcbWritten);
   2124 
   2125     END_INTERFACE
   2126 } ISequentialStreamVtbl;
   2127 interface ISequentialStream {
   2128     CONST_VTBL ISequentialStreamVtbl* lpVtbl;
   2129 };
   2130 
   2131 #ifdef COBJMACROS
   2132 #ifndef WIDL_C_INLINE_WRAPPERS
   2133 /*** IUnknown methods ***/
   2134 #define ISequentialStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2135 #define ISequentialStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   2136 #define ISequentialStream_Release(This) (This)->lpVtbl->Release(This)
   2137 /*** ISequentialStream methods ***/
   2138 #define ISequentialStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   2139 #define ISequentialStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   2140 #else
   2141 /*** IUnknown methods ***/
   2142 static FORCEINLINE HRESULT ISequentialStream_QueryInterface(ISequentialStream* This,REFIID riid,void **ppvObject) {
   2143     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2144 }
   2145 static FORCEINLINE ULONG ISequentialStream_AddRef(ISequentialStream* This) {
   2146     return This->lpVtbl->AddRef(This);
   2147 }
   2148 static FORCEINLINE ULONG ISequentialStream_Release(ISequentialStream* This) {
   2149     return This->lpVtbl->Release(This);
   2150 }
   2151 /*** ISequentialStream methods ***/
   2152 static FORCEINLINE HRESULT ISequentialStream_Read(ISequentialStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
   2153     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   2154 }
   2155 static FORCEINLINE HRESULT ISequentialStream_Write(ISequentialStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   2156     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   2157 }
   2158 #endif
   2159 #endif
   2160 
   2161 #endif
   2162 
   2163 HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteRead_Proxy(
   2164     ISequentialStream* This,
   2165     byte *pv,
   2166     ULONG cb,
   2167     ULONG *pcbRead);
   2168 void __RPC_STUB ISequentialStream_RemoteRead_Stub(
   2169     IRpcStubBuffer* This,
   2170     IRpcChannelBuffer* pRpcChannelBuffer,
   2171     PRPC_MESSAGE pRpcMessage,
   2172     DWORD* pdwStubPhase);
   2173 HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteWrite_Proxy(
   2174     ISequentialStream* This,
   2175     const byte *pv,
   2176     ULONG cb,
   2177     ULONG *pcbWritten);
   2178 void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
   2179     IRpcStubBuffer* This,
   2180     IRpcChannelBuffer* pRpcChannelBuffer,
   2181     PRPC_MESSAGE pRpcMessage,
   2182     DWORD* pdwStubPhase);
   2183 HRESULT CALLBACK ISequentialStream_Read_Proxy(
   2184     ISequentialStream* This,
   2185     void *pv,
   2186     ULONG cb,
   2187     ULONG *pcbRead);
   2188 HRESULT __RPC_STUB ISequentialStream_Read_Stub(
   2189     ISequentialStream* This,
   2190     byte *pv,
   2191     ULONG cb,
   2192     ULONG *pcbRead);
   2193 HRESULT CALLBACK ISequentialStream_Write_Proxy(
   2194     ISequentialStream* This,
   2195     const void *pv,
   2196     ULONG cb,
   2197     ULONG *pcbWritten);
   2198 HRESULT __RPC_STUB ISequentialStream_Write_Stub(
   2199     ISequentialStream* This,
   2200     const byte *pv,
   2201     ULONG cb,
   2202     ULONG *pcbWritten);
   2203 
   2204 #endif  /* __ISequentialStream_INTERFACE_DEFINED__ */
   2205 
   2206 
   2207 /*****************************************************************************
   2208  * IStream interface
   2209  */
   2210 #ifndef __IStream_INTERFACE_DEFINED__
   2211 #define __IStream_INTERFACE_DEFINED__
   2212 
   2213 typedef IStream *LPSTREAM;
   2214 
   2215 typedef struct tagSTATSTG {
   2216     LPOLESTR pwcsName;
   2217     DWORD type;
   2218     ULARGE_INTEGER cbSize;
   2219     FILETIME mtime;
   2220     FILETIME ctime;
   2221     FILETIME atime;
   2222     DWORD grfMode;
   2223     DWORD grfLocksSupported;
   2224     CLSID clsid;
   2225     DWORD grfStateBits;
   2226     DWORD reserved;
   2227 } STATSTG;
   2228 
   2229 typedef enum tagSTGTY {
   2230     STGTY_STORAGE = 1,
   2231     STGTY_STREAM = 2,
   2232     STGTY_LOCKBYTES = 3,
   2233     STGTY_PROPERTY = 4
   2234 } STGTY;
   2235 
   2236 typedef enum tagSTREAM_SEEK {
   2237     STREAM_SEEK_SET = 0,
   2238     STREAM_SEEK_CUR = 1,
   2239     STREAM_SEEK_END = 2
   2240 } STREAM_SEEK;
   2241 
   2242 typedef enum tagLOCKTYPE {
   2243     LOCK_WRITE = 1,
   2244     LOCK_EXCLUSIVE = 2,
   2245     LOCK_ONLYONCE = 4
   2246 } LOCKTYPE;
   2247 
   2248 DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   2249 #if defined(__cplusplus) && !defined(CINTERFACE)
   2250 MIDL_INTERFACE("0000000c-0000-0000-c000-000000000046")
   2251 IStream : public ISequentialStream
   2252 {
   2253     virtual HRESULT STDMETHODCALLTYPE Seek(
   2254         LARGE_INTEGER dlibMove,
   2255         DWORD dwOrigin,
   2256         ULARGE_INTEGER *plibNewPosition) = 0;
   2257 
   2258     virtual HRESULT STDMETHODCALLTYPE SetSize(
   2259         ULARGE_INTEGER libNewSize) = 0;
   2260 
   2261     virtual HRESULT STDMETHODCALLTYPE CopyTo(
   2262         IStream *pstm,
   2263         ULARGE_INTEGER cb,
   2264         ULARGE_INTEGER *pcbRead,
   2265         ULARGE_INTEGER *pcbWritten) = 0;
   2266 
   2267     virtual HRESULT STDMETHODCALLTYPE Commit(
   2268         DWORD grfCommitFlags) = 0;
   2269 
   2270     virtual HRESULT STDMETHODCALLTYPE Revert(
   2271         ) = 0;
   2272 
   2273     virtual HRESULT STDMETHODCALLTYPE LockRegion(
   2274         ULARGE_INTEGER libOffset,
   2275         ULARGE_INTEGER cb,
   2276         DWORD dwLockType) = 0;
   2277 
   2278     virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
   2279         ULARGE_INTEGER libOffset,
   2280         ULARGE_INTEGER cb,
   2281         DWORD dwLockType) = 0;
   2282 
   2283     virtual HRESULT STDMETHODCALLTYPE Stat(
   2284         STATSTG *pstatstg,
   2285         DWORD grfStatFlag) = 0;
   2286 
   2287     virtual HRESULT STDMETHODCALLTYPE Clone(
   2288         IStream **ppstm) = 0;
   2289 
   2290 };
   2291 #ifdef __CRT_UUID_DECL
   2292 __CRT_UUID_DECL(IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   2293 #endif
   2294 #else
   2295 typedef struct IStreamVtbl {
   2296     BEGIN_INTERFACE
   2297 
   2298     /*** IUnknown methods ***/
   2299     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2300         IStream* This,
   2301         REFIID riid,
   2302         void **ppvObject);
   2303 
   2304     ULONG (STDMETHODCALLTYPE *AddRef)(
   2305         IStream* This);
   2306 
   2307     ULONG (STDMETHODCALLTYPE *Release)(
   2308         IStream* This);
   2309 
   2310     /*** ISequentialStream methods ***/
   2311     HRESULT (STDMETHODCALLTYPE *Read)(
   2312         IStream* This,
   2313         void *pv,
   2314         ULONG cb,
   2315         ULONG *pcbRead);
   2316 
   2317     HRESULT (STDMETHODCALLTYPE *Write)(
   2318         IStream* This,
   2319         const void *pv,
   2320         ULONG cb,
   2321         ULONG *pcbWritten);
   2322 
   2323     /*** IStream methods ***/
   2324     HRESULT (STDMETHODCALLTYPE *Seek)(
   2325         IStream* This,
   2326         LARGE_INTEGER dlibMove,
   2327         DWORD dwOrigin,
   2328         ULARGE_INTEGER *plibNewPosition);
   2329 
   2330     HRESULT (STDMETHODCALLTYPE *SetSize)(
   2331         IStream* This,
   2332         ULARGE_INTEGER libNewSize);
   2333 
   2334     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   2335         IStream* This,
   2336         IStream *pstm,
   2337         ULARGE_INTEGER cb,
   2338         ULARGE_INTEGER *pcbRead,
   2339         ULARGE_INTEGER *pcbWritten);
   2340 
   2341     HRESULT (STDMETHODCALLTYPE *Commit)(
   2342         IStream* This,
   2343         DWORD grfCommitFlags);
   2344 
   2345     HRESULT (STDMETHODCALLTYPE *Revert)(
   2346         IStream* This);
   2347 
   2348     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   2349         IStream* This,
   2350         ULARGE_INTEGER libOffset,
   2351         ULARGE_INTEGER cb,
   2352         DWORD dwLockType);
   2353 
   2354     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   2355         IStream* This,
   2356         ULARGE_INTEGER libOffset,
   2357         ULARGE_INTEGER cb,
   2358         DWORD dwLockType);
   2359 
   2360     HRESULT (STDMETHODCALLTYPE *Stat)(
   2361         IStream* This,
   2362         STATSTG *pstatstg,
   2363         DWORD grfStatFlag);
   2364 
   2365     HRESULT (STDMETHODCALLTYPE *Clone)(
   2366         IStream* This,
   2367         IStream **ppstm);
   2368 
   2369     END_INTERFACE
   2370 } IStreamVtbl;
   2371 interface IStream {
   2372     CONST_VTBL IStreamVtbl* lpVtbl;
   2373 };
   2374 
   2375 #ifdef COBJMACROS
   2376 #ifndef WIDL_C_INLINE_WRAPPERS
   2377 /*** IUnknown methods ***/
   2378 #define IStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2379 #define IStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   2380 #define IStream_Release(This) (This)->lpVtbl->Release(This)
   2381 /*** ISequentialStream methods ***/
   2382 #define IStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   2383 #define IStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   2384 /*** IStream methods ***/
   2385 #define IStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   2386 #define IStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   2387 #define IStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   2388 #define IStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   2389 #define IStream_Revert(This) (This)->lpVtbl->Revert(This)
   2390 #define IStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   2391 #define IStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   2392 #define IStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   2393 #define IStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   2394 #else
   2395 /*** IUnknown methods ***/
   2396 static FORCEINLINE HRESULT IStream_QueryInterface(IStream* This,REFIID riid,void **ppvObject) {
   2397     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2398 }
   2399 static FORCEINLINE ULONG IStream_AddRef(IStream* This) {
   2400     return This->lpVtbl->AddRef(This);
   2401 }
   2402 static FORCEINLINE ULONG IStream_Release(IStream* This) {
   2403     return This->lpVtbl->Release(This);
   2404 }
   2405 /*** ISequentialStream methods ***/
   2406 static FORCEINLINE HRESULT IStream_Read(IStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
   2407     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   2408 }
   2409 static FORCEINLINE HRESULT IStream_Write(IStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   2410     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   2411 }
   2412 /*** IStream methods ***/
   2413 static FORCEINLINE HRESULT IStream_Seek(IStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   2414     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   2415 }
   2416 static FORCEINLINE HRESULT IStream_SetSize(IStream* This,ULARGE_INTEGER libNewSize) {
   2417     return This->lpVtbl->SetSize(This,libNewSize);
   2418 }
   2419 static FORCEINLINE HRESULT IStream_CopyTo(IStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   2420     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   2421 }
   2422 static FORCEINLINE HRESULT IStream_Commit(IStream* This,DWORD grfCommitFlags) {
   2423     return This->lpVtbl->Commit(This,grfCommitFlags);
   2424 }
   2425 static FORCEINLINE HRESULT IStream_Revert(IStream* This) {
   2426     return This->lpVtbl->Revert(This);
   2427 }
   2428 static FORCEINLINE HRESULT IStream_LockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   2429     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   2430 }
   2431 static FORCEINLINE HRESULT IStream_UnlockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   2432     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   2433 }
   2434 static FORCEINLINE HRESULT IStream_Stat(IStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   2435     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   2436 }
   2437 static FORCEINLINE HRESULT IStream_Clone(IStream* This,IStream **ppstm) {
   2438     return This->lpVtbl->Clone(This,ppstm);
   2439 }
   2440 #endif
   2441 #endif
   2442 
   2443 #endif
   2444 
   2445 HRESULT STDMETHODCALLTYPE IStream_RemoteSeek_Proxy(
   2446     IStream* This,
   2447     LARGE_INTEGER dlibMove,
   2448     DWORD dwOrigin,
   2449     ULARGE_INTEGER *plibNewPosition);
   2450 void __RPC_STUB IStream_RemoteSeek_Stub(
   2451     IRpcStubBuffer* This,
   2452     IRpcChannelBuffer* pRpcChannelBuffer,
   2453     PRPC_MESSAGE pRpcMessage,
   2454     DWORD* pdwStubPhase);
   2455 HRESULT STDMETHODCALLTYPE IStream_SetSize_Proxy(
   2456     IStream* This,
   2457     ULARGE_INTEGER libNewSize);
   2458 void __RPC_STUB IStream_SetSize_Stub(
   2459     IRpcStubBuffer* This,
   2460     IRpcChannelBuffer* pRpcChannelBuffer,
   2461     PRPC_MESSAGE pRpcMessage,
   2462     DWORD* pdwStubPhase);
   2463 HRESULT STDMETHODCALLTYPE IStream_RemoteCopyTo_Proxy(
   2464     IStream* This,
   2465     IStream *pstm,
   2466     ULARGE_INTEGER cb,
   2467     ULARGE_INTEGER *pcbRead,
   2468     ULARGE_INTEGER *pcbWritten);
   2469 void __RPC_STUB IStream_RemoteCopyTo_Stub(
   2470     IRpcStubBuffer* This,
   2471     IRpcChannelBuffer* pRpcChannelBuffer,
   2472     PRPC_MESSAGE pRpcMessage,
   2473     DWORD* pdwStubPhase);
   2474 HRESULT STDMETHODCALLTYPE IStream_Commit_Proxy(
   2475     IStream* This,
   2476     DWORD grfCommitFlags);
   2477 void __RPC_STUB IStream_Commit_Stub(
   2478     IRpcStubBuffer* This,
   2479     IRpcChannelBuffer* pRpcChannelBuffer,
   2480     PRPC_MESSAGE pRpcMessage,
   2481     DWORD* pdwStubPhase);
   2482 HRESULT STDMETHODCALLTYPE IStream_Revert_Proxy(
   2483     IStream* This);
   2484 void __RPC_STUB IStream_Revert_Stub(
   2485     IRpcStubBuffer* This,
   2486     IRpcChannelBuffer* pRpcChannelBuffer,
   2487     PRPC_MESSAGE pRpcMessage,
   2488     DWORD* pdwStubPhase);
   2489 HRESULT STDMETHODCALLTYPE IStream_LockRegion_Proxy(
   2490     IStream* This,
   2491     ULARGE_INTEGER libOffset,
   2492     ULARGE_INTEGER cb,
   2493     DWORD dwLockType);
   2494 void __RPC_STUB IStream_LockRegion_Stub(
   2495     IRpcStubBuffer* This,
   2496     IRpcChannelBuffer* pRpcChannelBuffer,
   2497     PRPC_MESSAGE pRpcMessage,
   2498     DWORD* pdwStubPhase);
   2499 HRESULT STDMETHODCALLTYPE IStream_UnlockRegion_Proxy(
   2500     IStream* This,
   2501     ULARGE_INTEGER libOffset,
   2502     ULARGE_INTEGER cb,
   2503     DWORD dwLockType);
   2504 void __RPC_STUB IStream_UnlockRegion_Stub(
   2505     IRpcStubBuffer* This,
   2506     IRpcChannelBuffer* pRpcChannelBuffer,
   2507     PRPC_MESSAGE pRpcMessage,
   2508     DWORD* pdwStubPhase);
   2509 HRESULT STDMETHODCALLTYPE IStream_Stat_Proxy(
   2510     IStream* This,
   2511     STATSTG *pstatstg,
   2512     DWORD grfStatFlag);
   2513 void __RPC_STUB IStream_Stat_Stub(
   2514     IRpcStubBuffer* This,
   2515     IRpcChannelBuffer* pRpcChannelBuffer,
   2516     PRPC_MESSAGE pRpcMessage,
   2517     DWORD* pdwStubPhase);
   2518 HRESULT STDMETHODCALLTYPE IStream_Clone_Proxy(
   2519     IStream* This,
   2520     IStream **ppstm);
   2521 void __RPC_STUB IStream_Clone_Stub(
   2522     IRpcStubBuffer* This,
   2523     IRpcChannelBuffer* pRpcChannelBuffer,
   2524     PRPC_MESSAGE pRpcMessage,
   2525     DWORD* pdwStubPhase);
   2526 HRESULT CALLBACK IStream_Seek_Proxy(
   2527     IStream* This,
   2528     LARGE_INTEGER dlibMove,
   2529     DWORD dwOrigin,
   2530     ULARGE_INTEGER *plibNewPosition);
   2531 HRESULT __RPC_STUB IStream_Seek_Stub(
   2532     IStream* This,
   2533     LARGE_INTEGER dlibMove,
   2534     DWORD dwOrigin,
   2535     ULARGE_INTEGER *plibNewPosition);
   2536 HRESULT CALLBACK IStream_CopyTo_Proxy(
   2537     IStream* This,
   2538     IStream *pstm,
   2539     ULARGE_INTEGER cb,
   2540     ULARGE_INTEGER *pcbRead,
   2541     ULARGE_INTEGER *pcbWritten);
   2542 HRESULT __RPC_STUB IStream_CopyTo_Stub(
   2543     IStream* This,
   2544     IStream *pstm,
   2545     ULARGE_INTEGER cb,
   2546     ULARGE_INTEGER *pcbRead,
   2547     ULARGE_INTEGER *pcbWritten);
   2548 
   2549 #endif  /* __IStream_INTERFACE_DEFINED__ */
   2550 
   2551 
   2552 /*****************************************************************************
   2553  * IRpcChannelBuffer interface
   2554  */
   2555 #ifndef __IRpcChannelBuffer_INTERFACE_DEFINED__
   2556 #define __IRpcChannelBuffer_INTERFACE_DEFINED__
   2557 
   2558 typedef ULONG RPCOLEDATAREP;
   2559 
   2560 typedef struct tagRPCOLEMESSAGE {
   2561     void *reserved1;
   2562     RPCOLEDATAREP dataRepresentation;
   2563     void *Buffer;
   2564     ULONG cbBuffer;
   2565     ULONG iMethod;
   2566     void * reserved2[5];
   2567     ULONG rpcFlags;
   2568 } RPCOLEMESSAGE;
   2569 
   2570 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
   2571 
   2572 DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
   2573 #if defined(__cplusplus) && !defined(CINTERFACE)
   2574 MIDL_INTERFACE("d5f56b60-593b-101a-b569-08002b2dbf7a")
   2575 IRpcChannelBuffer : public IUnknown
   2576 {
   2577     virtual HRESULT STDMETHODCALLTYPE GetBuffer(
   2578         RPCOLEMESSAGE *pMessage,
   2579         REFIID riid) = 0;
   2580 
   2581     virtual HRESULT STDMETHODCALLTYPE SendReceive(
   2582         RPCOLEMESSAGE *pMessage,
   2583         ULONG *pStatus) = 0;
   2584 
   2585     virtual HRESULT STDMETHODCALLTYPE FreeBuffer(
   2586         RPCOLEMESSAGE *pMessage) = 0;
   2587 
   2588     virtual HRESULT STDMETHODCALLTYPE GetDestCtx(
   2589         DWORD *pdwDestContext,
   2590         void **ppvDestContext) = 0;
   2591 
   2592     virtual HRESULT STDMETHODCALLTYPE IsConnected(
   2593         ) = 0;
   2594 
   2595 };
   2596 #ifdef __CRT_UUID_DECL
   2597 __CRT_UUID_DECL(IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
   2598 #endif
   2599 #else
   2600 typedef struct IRpcChannelBufferVtbl {
   2601     BEGIN_INTERFACE
   2602 
   2603     /*** IUnknown methods ***/
   2604     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2605         IRpcChannelBuffer* This,
   2606         REFIID riid,
   2607         void **ppvObject);
   2608 
   2609     ULONG (STDMETHODCALLTYPE *AddRef)(
   2610         IRpcChannelBuffer* This);
   2611 
   2612     ULONG (STDMETHODCALLTYPE *Release)(
   2613         IRpcChannelBuffer* This);
   2614 
   2615     /*** IRpcChannelBuffer methods ***/
   2616     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
   2617         IRpcChannelBuffer* This,
   2618         RPCOLEMESSAGE *pMessage,
   2619         REFIID riid);
   2620 
   2621     HRESULT (STDMETHODCALLTYPE *SendReceive)(
   2622         IRpcChannelBuffer* This,
   2623         RPCOLEMESSAGE *pMessage,
   2624         ULONG *pStatus);
   2625 
   2626     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
   2627         IRpcChannelBuffer* This,
   2628         RPCOLEMESSAGE *pMessage);
   2629 
   2630     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
   2631         IRpcChannelBuffer* This,
   2632         DWORD *pdwDestContext,
   2633         void **ppvDestContext);
   2634 
   2635     HRESULT (STDMETHODCALLTYPE *IsConnected)(
   2636         IRpcChannelBuffer* This);
   2637 
   2638     END_INTERFACE
   2639 } IRpcChannelBufferVtbl;
   2640 interface IRpcChannelBuffer {
   2641     CONST_VTBL IRpcChannelBufferVtbl* lpVtbl;
   2642 };
   2643 
   2644 #ifdef COBJMACROS
   2645 #ifndef WIDL_C_INLINE_WRAPPERS
   2646 /*** IUnknown methods ***/
   2647 #define IRpcChannelBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2648 #define IRpcChannelBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
   2649 #define IRpcChannelBuffer_Release(This) (This)->lpVtbl->Release(This)
   2650 /*** IRpcChannelBuffer methods ***/
   2651 #define IRpcChannelBuffer_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
   2652 #define IRpcChannelBuffer_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
   2653 #define IRpcChannelBuffer_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
   2654 #define IRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
   2655 #define IRpcChannelBuffer_IsConnected(This) (This)->lpVtbl->IsConnected(This)
   2656 #else
   2657 /*** IUnknown methods ***/
   2658 static FORCEINLINE HRESULT IRpcChannelBuffer_QueryInterface(IRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
   2659     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2660 }
   2661 static FORCEINLINE ULONG IRpcChannelBuffer_AddRef(IRpcChannelBuffer* This) {
   2662     return This->lpVtbl->AddRef(This);
   2663 }
   2664 static FORCEINLINE ULONG IRpcChannelBuffer_Release(IRpcChannelBuffer* This) {
   2665     return This->lpVtbl->Release(This);
   2666 }
   2667 /*** IRpcChannelBuffer methods ***/
   2668 static FORCEINLINE HRESULT IRpcChannelBuffer_GetBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
   2669     return This->lpVtbl->GetBuffer(This,pMessage,riid);
   2670 }
   2671 static FORCEINLINE HRESULT IRpcChannelBuffer_SendReceive(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
   2672     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
   2673 }
   2674 static FORCEINLINE HRESULT IRpcChannelBuffer_FreeBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
   2675     return This->lpVtbl->FreeBuffer(This,pMessage);
   2676 }
   2677 static FORCEINLINE HRESULT IRpcChannelBuffer_GetDestCtx(IRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
   2678     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
   2679 }
   2680 static FORCEINLINE HRESULT IRpcChannelBuffer_IsConnected(IRpcChannelBuffer* This) {
   2681     return This->lpVtbl->IsConnected(This);
   2682 }
   2683 #endif
   2684 #endif
   2685 
   2686 #endif
   2687 
   2688 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_GetBuffer_Proxy(
   2689     IRpcChannelBuffer* This,
   2690     RPCOLEMESSAGE *pMessage,
   2691     REFIID riid);
   2692 void __RPC_STUB IRpcChannelBuffer_GetBuffer_Stub(
   2693     IRpcStubBuffer* This,
   2694     IRpcChannelBuffer* pRpcChannelBuffer,
   2695     PRPC_MESSAGE pRpcMessage,
   2696     DWORD* pdwStubPhase);
   2697 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_SendReceive_Proxy(
   2698     IRpcChannelBuffer* This,
   2699     RPCOLEMESSAGE *pMessage,
   2700     ULONG *pStatus);
   2701 void __RPC_STUB IRpcChannelBuffer_SendReceive_Stub(
   2702     IRpcStubBuffer* This,
   2703     IRpcChannelBuffer* pRpcChannelBuffer,
   2704     PRPC_MESSAGE pRpcMessage,
   2705     DWORD* pdwStubPhase);
   2706 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_FreeBuffer_Proxy(
   2707     IRpcChannelBuffer* This,
   2708     RPCOLEMESSAGE *pMessage);
   2709 void __RPC_STUB IRpcChannelBuffer_FreeBuffer_Stub(
   2710     IRpcStubBuffer* This,
   2711     IRpcChannelBuffer* pRpcChannelBuffer,
   2712     PRPC_MESSAGE pRpcMessage,
   2713     DWORD* pdwStubPhase);
   2714 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_GetDestCtx_Proxy(
   2715     IRpcChannelBuffer* This,
   2716     DWORD *pdwDestContext,
   2717     void **ppvDestContext);
   2718 void __RPC_STUB IRpcChannelBuffer_GetDestCtx_Stub(
   2719     IRpcStubBuffer* This,
   2720     IRpcChannelBuffer* pRpcChannelBuffer,
   2721     PRPC_MESSAGE pRpcMessage,
   2722     DWORD* pdwStubPhase);
   2723 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_IsConnected_Proxy(
   2724     IRpcChannelBuffer* This);
   2725 void __RPC_STUB IRpcChannelBuffer_IsConnected_Stub(
   2726     IRpcStubBuffer* This,
   2727     IRpcChannelBuffer* pRpcChannelBuffer,
   2728     PRPC_MESSAGE pRpcMessage,
   2729     DWORD* pdwStubPhase);
   2730 
   2731 #endif  /* __IRpcChannelBuffer_INTERFACE_DEFINED__ */
   2732 
   2733 #endif
   2734 
   2735 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   2736 /*****************************************************************************
   2737  * IRpcChannelBuffer2 interface
   2738  */
   2739 #ifndef __IRpcChannelBuffer2_INTERFACE_DEFINED__
   2740 #define __IRpcChannelBuffer2_INTERFACE_DEFINED__
   2741 
   2742 DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
   2743 #if defined(__cplusplus) && !defined(CINTERFACE)
   2744 MIDL_INTERFACE("594f31d0-7f19-11d0-b194-00a0c90dc8bf")
   2745 IRpcChannelBuffer2 : public IRpcChannelBuffer
   2746 {
   2747     virtual HRESULT STDMETHODCALLTYPE GetProtocolVersion(
   2748         DWORD *pdwVersion) = 0;
   2749 
   2750 };
   2751 #ifdef __CRT_UUID_DECL
   2752 __CRT_UUID_DECL(IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf)
   2753 #endif
   2754 #else
   2755 typedef struct IRpcChannelBuffer2Vtbl {
   2756     BEGIN_INTERFACE
   2757 
   2758     /*** IUnknown methods ***/
   2759     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2760         IRpcChannelBuffer2* This,
   2761         REFIID riid,
   2762         void **ppvObject);
   2763 
   2764     ULONG (STDMETHODCALLTYPE *AddRef)(
   2765         IRpcChannelBuffer2* This);
   2766 
   2767     ULONG (STDMETHODCALLTYPE *Release)(
   2768         IRpcChannelBuffer2* This);
   2769 
   2770     /*** IRpcChannelBuffer methods ***/
   2771     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
   2772         IRpcChannelBuffer2* This,
   2773         RPCOLEMESSAGE *pMessage,
   2774         REFIID riid);
   2775 
   2776     HRESULT (STDMETHODCALLTYPE *SendReceive)(
   2777         IRpcChannelBuffer2* This,
   2778         RPCOLEMESSAGE *pMessage,
   2779         ULONG *pStatus);
   2780 
   2781     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
   2782         IRpcChannelBuffer2* This,
   2783         RPCOLEMESSAGE *pMessage);
   2784 
   2785     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
   2786         IRpcChannelBuffer2* This,
   2787         DWORD *pdwDestContext,
   2788         void **ppvDestContext);
   2789 
   2790     HRESULT (STDMETHODCALLTYPE *IsConnected)(
   2791         IRpcChannelBuffer2* This);
   2792 
   2793     /*** IRpcChannelBuffer2 methods ***/
   2794     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
   2795         IRpcChannelBuffer2* This,
   2796         DWORD *pdwVersion);
   2797 
   2798     END_INTERFACE
   2799 } IRpcChannelBuffer2Vtbl;
   2800 interface IRpcChannelBuffer2 {
   2801     CONST_VTBL IRpcChannelBuffer2Vtbl* lpVtbl;
   2802 };
   2803 
   2804 #ifdef COBJMACROS
   2805 #ifndef WIDL_C_INLINE_WRAPPERS
   2806 /*** IUnknown methods ***/
   2807 #define IRpcChannelBuffer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2808 #define IRpcChannelBuffer2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2809 #define IRpcChannelBuffer2_Release(This) (This)->lpVtbl->Release(This)
   2810 /*** IRpcChannelBuffer methods ***/
   2811 #define IRpcChannelBuffer2_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
   2812 #define IRpcChannelBuffer2_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
   2813 #define IRpcChannelBuffer2_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
   2814 #define IRpcChannelBuffer2_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
   2815 #define IRpcChannelBuffer2_IsConnected(This) (This)->lpVtbl->IsConnected(This)
   2816 /*** IRpcChannelBuffer2 methods ***/
   2817 #define IRpcChannelBuffer2_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
   2818 #else
   2819 /*** IUnknown methods ***/
   2820 static FORCEINLINE HRESULT IRpcChannelBuffer2_QueryInterface(IRpcChannelBuffer2* This,REFIID riid,void **ppvObject) {
   2821     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2822 }
   2823 static FORCEINLINE ULONG IRpcChannelBuffer2_AddRef(IRpcChannelBuffer2* This) {
   2824     return This->lpVtbl->AddRef(This);
   2825 }
   2826 static FORCEINLINE ULONG IRpcChannelBuffer2_Release(IRpcChannelBuffer2* This) {
   2827     return This->lpVtbl->Release(This);
   2828 }
   2829 /*** IRpcChannelBuffer methods ***/
   2830 static FORCEINLINE HRESULT IRpcChannelBuffer2_GetBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
   2831     return This->lpVtbl->GetBuffer(This,pMessage,riid);
   2832 }
   2833 static FORCEINLINE HRESULT IRpcChannelBuffer2_SendReceive(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
   2834     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
   2835 }
   2836 static FORCEINLINE HRESULT IRpcChannelBuffer2_FreeBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage) {
   2837     return This->lpVtbl->FreeBuffer(This,pMessage);
   2838 }
   2839 static FORCEINLINE HRESULT IRpcChannelBuffer2_GetDestCtx(IRpcChannelBuffer2* This,DWORD *pdwDestContext,void **ppvDestContext) {
   2840     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
   2841 }
   2842 static FORCEINLINE HRESULT IRpcChannelBuffer2_IsConnected(IRpcChannelBuffer2* This) {
   2843     return This->lpVtbl->IsConnected(This);
   2844 }
   2845 /*** IRpcChannelBuffer2 methods ***/
   2846 static FORCEINLINE HRESULT IRpcChannelBuffer2_GetProtocolVersion(IRpcChannelBuffer2* This,DWORD *pdwVersion) {
   2847     return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
   2848 }
   2849 #endif
   2850 #endif
   2851 
   2852 #endif
   2853 
   2854 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer2_GetProtocolVersion_Proxy(
   2855     IRpcChannelBuffer2* This,
   2856     DWORD *pdwVersion);
   2857 void __RPC_STUB IRpcChannelBuffer2_GetProtocolVersion_Stub(
   2858     IRpcStubBuffer* This,
   2859     IRpcChannelBuffer* pRpcChannelBuffer,
   2860     PRPC_MESSAGE pRpcMessage,
   2861     DWORD* pdwStubPhase);
   2862 
   2863 #endif  /* __IRpcChannelBuffer2_INTERFACE_DEFINED__ */
   2864 
   2865 
   2866 /*****************************************************************************
   2867  * IAsyncRpcChannelBuffer interface
   2868  */
   2869 #ifndef __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__
   2870 #define __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__
   2871 
   2872 DEFINE_GUID(IID_IAsyncRpcChannelBuffer, 0xa5029fb6, 0x3c34, 0x11d1, 0x9c,0x99, 0x00,0xc0,0x4f,0xb9,0x98,0xaa);
   2873 #if defined(__cplusplus) && !defined(CINTERFACE)
   2874 MIDL_INTERFACE("a5029fb6-3c34-11d1-9c99-00c04fb998aa")
   2875 IAsyncRpcChannelBuffer : public IRpcChannelBuffer2
   2876 {
   2877     virtual HRESULT STDMETHODCALLTYPE Send(
   2878         RPCOLEMESSAGE *pMsg,
   2879         ISynchronize *pSync,
   2880         ULONG *pulStatus) = 0;
   2881 
   2882     virtual HRESULT STDMETHODCALLTYPE Receive(
   2883         RPCOLEMESSAGE *pMsg,
   2884         ULONG *pulStatus) = 0;
   2885 
   2886     virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
   2887         RPCOLEMESSAGE *pMsg,
   2888         DWORD *pdwDestContext,
   2889         void **ppvDestContext) = 0;
   2890 
   2891 };
   2892 #ifdef __CRT_UUID_DECL
   2893 __CRT_UUID_DECL(IAsyncRpcChannelBuffer, 0xa5029fb6, 0x3c34, 0x11d1, 0x9c,0x99, 0x00,0xc0,0x4f,0xb9,0x98,0xaa)
   2894 #endif
   2895 #else
   2896 typedef struct IAsyncRpcChannelBufferVtbl {
   2897     BEGIN_INTERFACE
   2898 
   2899     /*** IUnknown methods ***/
   2900     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2901         IAsyncRpcChannelBuffer* This,
   2902         REFIID riid,
   2903         void **ppvObject);
   2904 
   2905     ULONG (STDMETHODCALLTYPE *AddRef)(
   2906         IAsyncRpcChannelBuffer* This);
   2907 
   2908     ULONG (STDMETHODCALLTYPE *Release)(
   2909         IAsyncRpcChannelBuffer* This);
   2910 
   2911     /*** IRpcChannelBuffer methods ***/
   2912     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
   2913         IAsyncRpcChannelBuffer* This,
   2914         RPCOLEMESSAGE *pMessage,
   2915         REFIID riid);
   2916 
   2917     HRESULT (STDMETHODCALLTYPE *SendReceive)(
   2918         IAsyncRpcChannelBuffer* This,
   2919         RPCOLEMESSAGE *pMessage,
   2920         ULONG *pStatus);
   2921 
   2922     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
   2923         IAsyncRpcChannelBuffer* This,
   2924         RPCOLEMESSAGE *pMessage);
   2925 
   2926     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
   2927         IAsyncRpcChannelBuffer* This,
   2928         DWORD *pdwDestContext,
   2929         void **ppvDestContext);
   2930 
   2931     HRESULT (STDMETHODCALLTYPE *IsConnected)(
   2932         IAsyncRpcChannelBuffer* This);
   2933 
   2934     /*** IRpcChannelBuffer2 methods ***/
   2935     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
   2936         IAsyncRpcChannelBuffer* This,
   2937         DWORD *pdwVersion);
   2938 
   2939     /*** IAsyncRpcChannelBuffer methods ***/
   2940     HRESULT (STDMETHODCALLTYPE *Send)(
   2941         IAsyncRpcChannelBuffer* This,
   2942         RPCOLEMESSAGE *pMsg,
   2943         ISynchronize *pSync,
   2944         ULONG *pulStatus);
   2945 
   2946     HRESULT (STDMETHODCALLTYPE *Receive)(
   2947         IAsyncRpcChannelBuffer* This,
   2948         RPCOLEMESSAGE *pMsg,
   2949         ULONG *pulStatus);
   2950 
   2951     HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
   2952         IAsyncRpcChannelBuffer* This,
   2953         RPCOLEMESSAGE *pMsg,
   2954         DWORD *pdwDestContext,
   2955         void **ppvDestContext);
   2956 
   2957     END_INTERFACE
   2958 } IAsyncRpcChannelBufferVtbl;
   2959 interface IAsyncRpcChannelBuffer {
   2960     CONST_VTBL IAsyncRpcChannelBufferVtbl* lpVtbl;
   2961 };
   2962 
   2963 #ifdef COBJMACROS
   2964 #ifndef WIDL_C_INLINE_WRAPPERS
   2965 /*** IUnknown methods ***/
   2966 #define IAsyncRpcChannelBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2967 #define IAsyncRpcChannelBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
   2968 #define IAsyncRpcChannelBuffer_Release(This) (This)->lpVtbl->Release(This)
   2969 /*** IRpcChannelBuffer methods ***/
   2970 #define IAsyncRpcChannelBuffer_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
   2971 #define IAsyncRpcChannelBuffer_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
   2972 #define IAsyncRpcChannelBuffer_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
   2973 #define IAsyncRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
   2974 #define IAsyncRpcChannelBuffer_IsConnected(This) (This)->lpVtbl->IsConnected(This)
   2975 /*** IRpcChannelBuffer2 methods ***/
   2976 #define IAsyncRpcChannelBuffer_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
   2977 /*** IAsyncRpcChannelBuffer methods ***/
   2978 #define IAsyncRpcChannelBuffer_Send(This,pMsg,pSync,pulStatus) (This)->lpVtbl->Send(This,pMsg,pSync,pulStatus)
   2979 #define IAsyncRpcChannelBuffer_Receive(This,pMsg,pulStatus) (This)->lpVtbl->Receive(This,pMsg,pulStatus)
   2980 #define IAsyncRpcChannelBuffer_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext)
   2981 #else
   2982 /*** IUnknown methods ***/
   2983 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_QueryInterface(IAsyncRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
   2984     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2985 }
   2986 static FORCEINLINE ULONG IAsyncRpcChannelBuffer_AddRef(IAsyncRpcChannelBuffer* This) {
   2987     return This->lpVtbl->AddRef(This);
   2988 }
   2989 static FORCEINLINE ULONG IAsyncRpcChannelBuffer_Release(IAsyncRpcChannelBuffer* This) {
   2990     return This->lpVtbl->Release(This);
   2991 }
   2992 /*** IRpcChannelBuffer methods ***/
   2993 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
   2994     return This->lpVtbl->GetBuffer(This,pMessage,riid);
   2995 }
   2996 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_SendReceive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
   2997     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
   2998 }
   2999 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_FreeBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
   3000     return This->lpVtbl->FreeBuffer(This,pMessage);
   3001 }
   3002 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetDestCtx(IAsyncRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
   3003     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
   3004 }
   3005 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_IsConnected(IAsyncRpcChannelBuffer* This) {
   3006     return This->lpVtbl->IsConnected(This);
   3007 }
   3008 /*** IRpcChannelBuffer2 methods ***/
   3009 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetProtocolVersion(IAsyncRpcChannelBuffer* This,DWORD *pdwVersion) {
   3010     return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
   3011 }
   3012 /*** IAsyncRpcChannelBuffer methods ***/
   3013 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_Send(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ISynchronize *pSync,ULONG *pulStatus) {
   3014     return This->lpVtbl->Send(This,pMsg,pSync,pulStatus);
   3015 }
   3016 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_Receive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
   3017     return This->lpVtbl->Receive(This,pMsg,pulStatus);
   3018 }
   3019 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetDestCtxEx(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext) {
   3020     return This->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext);
   3021 }
   3022 #endif
   3023 #endif
   3024 
   3025 #endif
   3026 
   3027 HRESULT STDMETHODCALLTYPE IAsyncRpcChannelBuffer_Send_Proxy(
   3028     IAsyncRpcChannelBuffer* This,
   3029     RPCOLEMESSAGE *pMsg,
   3030     ISynchronize *pSync,
   3031     ULONG *pulStatus);
   3032 void __RPC_STUB IAsyncRpcChannelBuffer_Send_Stub(
   3033     IRpcStubBuffer* This,
   3034     IRpcChannelBuffer* pRpcChannelBuffer,
   3035     PRPC_MESSAGE pRpcMessage,
   3036     DWORD* pdwStubPhase);
   3037 HRESULT STDMETHODCALLTYPE IAsyncRpcChannelBuffer_Receive_Proxy(
   3038     IAsyncRpcChannelBuffer* This,
   3039     RPCOLEMESSAGE *pMsg,
   3040     ULONG *pulStatus);
   3041 void __RPC_STUB IAsyncRpcChannelBuffer_Receive_Stub(
   3042     IRpcStubBuffer* This,
   3043     IRpcChannelBuffer* pRpcChannelBuffer,
   3044     PRPC_MESSAGE pRpcMessage,
   3045     DWORD* pdwStubPhase);
   3046 HRESULT STDMETHODCALLTYPE IAsyncRpcChannelBuffer_GetDestCtxEx_Proxy(
   3047     IAsyncRpcChannelBuffer* This,
   3048     RPCOLEMESSAGE *pMsg,
   3049     DWORD *pdwDestContext,
   3050     void **ppvDestContext);
   3051 void __RPC_STUB IAsyncRpcChannelBuffer_GetDestCtxEx_Stub(
   3052     IRpcStubBuffer* This,
   3053     IRpcChannelBuffer* pRpcChannelBuffer,
   3054     PRPC_MESSAGE pRpcMessage,
   3055     DWORD* pdwStubPhase);
   3056 
   3057 #endif  /* __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__ */
   3058 
   3059 
   3060 /*****************************************************************************
   3061  * IRpcChannelBuffer3 interface
   3062  */
   3063 #ifndef __IRpcChannelBuffer3_INTERFACE_DEFINED__
   3064 #define __IRpcChannelBuffer3_INTERFACE_DEFINED__
   3065 
   3066 DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
   3067 #if defined(__cplusplus) && !defined(CINTERFACE)
   3068 MIDL_INTERFACE("25b15600-0115-11d0-bf0d-00aa00b8dfd2")
   3069 IRpcChannelBuffer3 : public IRpcChannelBuffer2
   3070 {
   3071     virtual HRESULT STDMETHODCALLTYPE Send(
   3072         RPCOLEMESSAGE *pMsg,
   3073         ULONG *pulStatus) = 0;
   3074 
   3075     virtual HRESULT STDMETHODCALLTYPE Receive(
   3076         RPCOLEMESSAGE *pMsg,
   3077         ULONG ulSize,
   3078         ULONG *pulStatus) = 0;
   3079 
   3080     virtual HRESULT STDMETHODCALLTYPE Cancel(
   3081         RPCOLEMESSAGE *pMsg) = 0;
   3082 
   3083     virtual HRESULT STDMETHODCALLTYPE GetCallContext(
   3084         RPCOLEMESSAGE *pMsg,
   3085         REFIID riid,
   3086         void **pInterface) = 0;
   3087 
   3088     virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
   3089         RPCOLEMESSAGE *pMsg,
   3090         DWORD *pdwDestContext,
   3091         void **ppvDestContext) = 0;
   3092 
   3093     virtual HRESULT STDMETHODCALLTYPE GetState(
   3094         RPCOLEMESSAGE *pMsg,
   3095         DWORD *pState) = 0;
   3096 
   3097     virtual HRESULT STDMETHODCALLTYPE RegisterAsync(
   3098         RPCOLEMESSAGE *pMsg,
   3099         IAsyncManager *pAsyncMgr) = 0;
   3100 
   3101 };
   3102 #ifdef __CRT_UUID_DECL
   3103 __CRT_UUID_DECL(IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2)
   3104 #endif
   3105 #else
   3106 typedef struct IRpcChannelBuffer3Vtbl {
   3107     BEGIN_INTERFACE
   3108 
   3109     /*** IUnknown methods ***/
   3110     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3111         IRpcChannelBuffer3* This,
   3112         REFIID riid,
   3113         void **ppvObject);
   3114 
   3115     ULONG (STDMETHODCALLTYPE *AddRef)(
   3116         IRpcChannelBuffer3* This);
   3117 
   3118     ULONG (STDMETHODCALLTYPE *Release)(
   3119         IRpcChannelBuffer3* This);
   3120 
   3121     /*** IRpcChannelBuffer methods ***/
   3122     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
   3123         IRpcChannelBuffer3* This,
   3124         RPCOLEMESSAGE *pMessage,
   3125         REFIID riid);
   3126 
   3127     HRESULT (STDMETHODCALLTYPE *SendReceive)(
   3128         IRpcChannelBuffer3* This,
   3129         RPCOLEMESSAGE *pMessage,
   3130         ULONG *pStatus);
   3131 
   3132     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
   3133         IRpcChannelBuffer3* This,
   3134         RPCOLEMESSAGE *pMessage);
   3135 
   3136     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
   3137         IRpcChannelBuffer3* This,
   3138         DWORD *pdwDestContext,
   3139         void **ppvDestContext);
   3140 
   3141     HRESULT (STDMETHODCALLTYPE *IsConnected)(
   3142         IRpcChannelBuffer3* This);
   3143 
   3144     /*** IRpcChannelBuffer2 methods ***/
   3145     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
   3146         IRpcChannelBuffer3* This,
   3147         DWORD *pdwVersion);
   3148 
   3149     /*** IRpcChannelBuffer3 methods ***/
   3150     HRESULT (STDMETHODCALLTYPE *Send)(
   3151         IRpcChannelBuffer3* This,
   3152         RPCOLEMESSAGE *pMsg,
   3153         ULONG *pulStatus);
   3154 
   3155     HRESULT (STDMETHODCALLTYPE *Receive)(
   3156         IRpcChannelBuffer3* This,
   3157         RPCOLEMESSAGE *pMsg,
   3158         ULONG ulSize,
   3159         ULONG *pulStatus);
   3160 
   3161     HRESULT (STDMETHODCALLTYPE *Cancel)(
   3162         IRpcChannelBuffer3* This,
   3163         RPCOLEMESSAGE *pMsg);
   3164 
   3165     HRESULT (STDMETHODCALLTYPE *GetCallContext)(
   3166         IRpcChannelBuffer3* This,
   3167         RPCOLEMESSAGE *pMsg,
   3168         REFIID riid,
   3169         void **pInterface);
   3170 
   3171     HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
   3172         IRpcChannelBuffer3* This,
   3173         RPCOLEMESSAGE *pMsg,
   3174         DWORD *pdwDestContext,
   3175         void **ppvDestContext);
   3176 
   3177     HRESULT (STDMETHODCALLTYPE *GetState)(
   3178         IRpcChannelBuffer3* This,
   3179         RPCOLEMESSAGE *pMsg,
   3180         DWORD *pState);
   3181 
   3182     HRESULT (STDMETHODCALLTYPE *RegisterAsync)(
   3183         IRpcChannelBuffer3* This,
   3184         RPCOLEMESSAGE *pMsg,
   3185         IAsyncManager *pAsyncMgr);
   3186 
   3187     END_INTERFACE
   3188 } IRpcChannelBuffer3Vtbl;
   3189 interface IRpcChannelBuffer3 {
   3190     CONST_VTBL IRpcChannelBuffer3Vtbl* lpVtbl;
   3191 };
   3192 
   3193 #ifdef COBJMACROS
   3194 #ifndef WIDL_C_INLINE_WRAPPERS
   3195 /*** IUnknown methods ***/
   3196 #define IRpcChannelBuffer3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3197 #define IRpcChannelBuffer3_AddRef(This) (This)->lpVtbl->AddRef(This)
   3198 #define IRpcChannelBuffer3_Release(This) (This)->lpVtbl->Release(This)
   3199 /*** IRpcChannelBuffer methods ***/
   3200 #define IRpcChannelBuffer3_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
   3201 #define IRpcChannelBuffer3_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
   3202 #define IRpcChannelBuffer3_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
   3203 #define IRpcChannelBuffer3_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
   3204 #define IRpcChannelBuffer3_IsConnected(This) (This)->lpVtbl->IsConnected(This)
   3205 /*** IRpcChannelBuffer2 methods ***/
   3206 #define IRpcChannelBuffer3_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
   3207 /*** IRpcChannelBuffer3 methods ***/
   3208 #define IRpcChannelBuffer3_Send(This,pMsg,pulStatus) (This)->lpVtbl->Send(This,pMsg,pulStatus)
   3209 #define IRpcChannelBuffer3_Receive(This,pMsg,ulSize,pulStatus) (This)->lpVtbl->Receive(This,pMsg,ulSize,pulStatus)
   3210 #define IRpcChannelBuffer3_Cancel(This,pMsg) (This)->lpVtbl->Cancel(This,pMsg)
   3211 #define IRpcChannelBuffer3_GetCallContext(This,pMsg,riid,pInterface) (This)->lpVtbl->GetCallContext(This,pMsg,riid,pInterface)
   3212 #define IRpcChannelBuffer3_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext)
   3213 #define IRpcChannelBuffer3_GetState(This,pMsg,pState) (This)->lpVtbl->GetState(This,pMsg,pState)
   3214 #define IRpcChannelBuffer3_RegisterAsync(This,pMsg,pAsyncMgr) (This)->lpVtbl->RegisterAsync(This,pMsg,pAsyncMgr)
   3215 #else
   3216 /*** IUnknown methods ***/
   3217 static FORCEINLINE HRESULT IRpcChannelBuffer3_QueryInterface(IRpcChannelBuffer3* This,REFIID riid,void **ppvObject) {
   3218     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3219 }
   3220 static FORCEINLINE ULONG IRpcChannelBuffer3_AddRef(IRpcChannelBuffer3* This) {
   3221     return This->lpVtbl->AddRef(This);
   3222 }
   3223 static FORCEINLINE ULONG IRpcChannelBuffer3_Release(IRpcChannelBuffer3* This) {
   3224     return This->lpVtbl->Release(This);
   3225 }
   3226 /*** IRpcChannelBuffer methods ***/
   3227 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
   3228     return This->lpVtbl->GetBuffer(This,pMessage,riid);
   3229 }
   3230 static FORCEINLINE HRESULT IRpcChannelBuffer3_SendReceive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
   3231     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
   3232 }
   3233 static FORCEINLINE HRESULT IRpcChannelBuffer3_FreeBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage) {
   3234     return This->lpVtbl->FreeBuffer(This,pMessage);
   3235 }
   3236 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetDestCtx(IRpcChannelBuffer3* This,DWORD *pdwDestContext,void **ppvDestContext) {
   3237     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
   3238 }
   3239 static FORCEINLINE HRESULT IRpcChannelBuffer3_IsConnected(IRpcChannelBuffer3* This) {
   3240     return This->lpVtbl->IsConnected(This);
   3241 }
   3242 /*** IRpcChannelBuffer2 methods ***/
   3243 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetProtocolVersion(IRpcChannelBuffer3* This,DWORD *pdwVersion) {
   3244     return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
   3245 }
   3246 /*** IRpcChannelBuffer3 methods ***/
   3247 static FORCEINLINE HRESULT IRpcChannelBuffer3_Send(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
   3248     return This->lpVtbl->Send(This,pMsg,pulStatus);
   3249 }
   3250 static FORCEINLINE HRESULT IRpcChannelBuffer3_Receive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG ulSize,ULONG *pulStatus) {
   3251     return This->lpVtbl->Receive(This,pMsg,ulSize,pulStatus);
   3252 }
   3253 static FORCEINLINE HRESULT IRpcChannelBuffer3_Cancel(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg) {
   3254     return This->lpVtbl->Cancel(This,pMsg);
   3255 }
   3256 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetCallContext(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,REFIID riid,void **pInterface) {
   3257     return This->lpVtbl->GetCallContext(This,pMsg,riid,pInterface);
   3258 }
   3259 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetDestCtxEx(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext) {
   3260     return This->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext);
   3261 }
   3262 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetState(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pState) {
   3263     return This->lpVtbl->GetState(This,pMsg,pState);
   3264 }
   3265 static FORCEINLINE HRESULT IRpcChannelBuffer3_RegisterAsync(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,IAsyncManager *pAsyncMgr) {
   3266     return This->lpVtbl->RegisterAsync(This,pMsg,pAsyncMgr);
   3267 }
   3268 #endif
   3269 #endif
   3270 
   3271 #endif
   3272 
   3273 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_Send_Proxy(
   3274     IRpcChannelBuffer3* This,
   3275     RPCOLEMESSAGE *pMsg,
   3276     ULONG *pulStatus);
   3277 void __RPC_STUB IRpcChannelBuffer3_Send_Stub(
   3278     IRpcStubBuffer* This,
   3279     IRpcChannelBuffer* pRpcChannelBuffer,
   3280     PRPC_MESSAGE pRpcMessage,
   3281     DWORD* pdwStubPhase);
   3282 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_Receive_Proxy(
   3283     IRpcChannelBuffer3* This,
   3284     RPCOLEMESSAGE *pMsg,
   3285     ULONG ulSize,
   3286     ULONG *pulStatus);
   3287 void __RPC_STUB IRpcChannelBuffer3_Receive_Stub(
   3288     IRpcStubBuffer* This,
   3289     IRpcChannelBuffer* pRpcChannelBuffer,
   3290     PRPC_MESSAGE pRpcMessage,
   3291     DWORD* pdwStubPhase);
   3292 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_Cancel_Proxy(
   3293     IRpcChannelBuffer3* This,
   3294     RPCOLEMESSAGE *pMsg);
   3295 void __RPC_STUB IRpcChannelBuffer3_Cancel_Stub(
   3296     IRpcStubBuffer* This,
   3297     IRpcChannelBuffer* pRpcChannelBuffer,
   3298     PRPC_MESSAGE pRpcMessage,
   3299     DWORD* pdwStubPhase);
   3300 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_GetCallContext_Proxy(
   3301     IRpcChannelBuffer3* This,
   3302     RPCOLEMESSAGE *pMsg,
   3303     REFIID riid,
   3304     void **pInterface);
   3305 void __RPC_STUB IRpcChannelBuffer3_GetCallContext_Stub(
   3306     IRpcStubBuffer* This,
   3307     IRpcChannelBuffer* pRpcChannelBuffer,
   3308     PRPC_MESSAGE pRpcMessage,
   3309     DWORD* pdwStubPhase);
   3310 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_GetDestCtxEx_Proxy(
   3311     IRpcChannelBuffer3* This,
   3312     RPCOLEMESSAGE *pMsg,
   3313     DWORD *pdwDestContext,
   3314     void **ppvDestContext);
   3315 void __RPC_STUB IRpcChannelBuffer3_GetDestCtxEx_Stub(
   3316     IRpcStubBuffer* This,
   3317     IRpcChannelBuffer* pRpcChannelBuffer,
   3318     PRPC_MESSAGE pRpcMessage,
   3319     DWORD* pdwStubPhase);
   3320 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_GetState_Proxy(
   3321     IRpcChannelBuffer3* This,
   3322     RPCOLEMESSAGE *pMsg,
   3323     DWORD *pState);
   3324 void __RPC_STUB IRpcChannelBuffer3_GetState_Stub(
   3325     IRpcStubBuffer* This,
   3326     IRpcChannelBuffer* pRpcChannelBuffer,
   3327     PRPC_MESSAGE pRpcMessage,
   3328     DWORD* pdwStubPhase);
   3329 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_RegisterAsync_Proxy(
   3330     IRpcChannelBuffer3* This,
   3331     RPCOLEMESSAGE *pMsg,
   3332     IAsyncManager *pAsyncMgr);
   3333 void __RPC_STUB IRpcChannelBuffer3_RegisterAsync_Stub(
   3334     IRpcStubBuffer* This,
   3335     IRpcChannelBuffer* pRpcChannelBuffer,
   3336     PRPC_MESSAGE pRpcMessage,
   3337     DWORD* pdwStubPhase);
   3338 
   3339 #endif  /* __IRpcChannelBuffer3_INTERFACE_DEFINED__ */
   3340 
   3341 
   3342 /*****************************************************************************
   3343  * IRpcSyntaxNegotiate interface
   3344  */
   3345 #ifndef __IRpcSyntaxNegotiate_INTERFACE_DEFINED__
   3346 #define __IRpcSyntaxNegotiate_INTERFACE_DEFINED__
   3347 
   3348 DEFINE_GUID(IID_IRpcSyntaxNegotiate, 0x58a08519, 0x24c8, 0x4935, 0xb4,0x82, 0x3f,0xd8,0x23,0x33,0x3a,0x4f);
   3349 #if defined(__cplusplus) && !defined(CINTERFACE)
   3350 MIDL_INTERFACE("58a08519-24c8-4935-b482-3fd823333a4f")
   3351 IRpcSyntaxNegotiate : public IUnknown
   3352 {
   3353     virtual HRESULT STDMETHODCALLTYPE NegotiateSyntax(
   3354         RPCOLEMESSAGE *pMsg) = 0;
   3355 
   3356 };
   3357 #ifdef __CRT_UUID_DECL
   3358 __CRT_UUID_DECL(IRpcSyntaxNegotiate, 0x58a08519, 0x24c8, 0x4935, 0xb4,0x82, 0x3f,0xd8,0x23,0x33,0x3a,0x4f)
   3359 #endif
   3360 #else
   3361 typedef struct IRpcSyntaxNegotiateVtbl {
   3362     BEGIN_INTERFACE
   3363 
   3364     /*** IUnknown methods ***/
   3365     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3366         IRpcSyntaxNegotiate* This,
   3367         REFIID riid,
   3368         void **ppvObject);
   3369 
   3370     ULONG (STDMETHODCALLTYPE *AddRef)(
   3371         IRpcSyntaxNegotiate* This);
   3372 
   3373     ULONG (STDMETHODCALLTYPE *Release)(
   3374         IRpcSyntaxNegotiate* This);
   3375 
   3376     /*** IRpcSyntaxNegotiate methods ***/
   3377     HRESULT (STDMETHODCALLTYPE *NegotiateSyntax)(
   3378         IRpcSyntaxNegotiate* This,
   3379         RPCOLEMESSAGE *pMsg);
   3380 
   3381     END_INTERFACE
   3382 } IRpcSyntaxNegotiateVtbl;
   3383 interface IRpcSyntaxNegotiate {
   3384     CONST_VTBL IRpcSyntaxNegotiateVtbl* lpVtbl;
   3385 };
   3386 
   3387 #ifdef COBJMACROS
   3388 #ifndef WIDL_C_INLINE_WRAPPERS
   3389 /*** IUnknown methods ***/
   3390 #define IRpcSyntaxNegotiate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3391 #define IRpcSyntaxNegotiate_AddRef(This) (This)->lpVtbl->AddRef(This)
   3392 #define IRpcSyntaxNegotiate_Release(This) (This)->lpVtbl->Release(This)
   3393 /*** IRpcSyntaxNegotiate methods ***/
   3394 #define IRpcSyntaxNegotiate_NegotiateSyntax(This,pMsg) (This)->lpVtbl->NegotiateSyntax(This,pMsg)
   3395 #else
   3396 /*** IUnknown methods ***/
   3397 static FORCEINLINE HRESULT IRpcSyntaxNegotiate_QueryInterface(IRpcSyntaxNegotiate* This,REFIID riid,void **ppvObject) {
   3398     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3399 }
   3400 static FORCEINLINE ULONG IRpcSyntaxNegotiate_AddRef(IRpcSyntaxNegotiate* This) {
   3401     return This->lpVtbl->AddRef(This);
   3402 }
   3403 static FORCEINLINE ULONG IRpcSyntaxNegotiate_Release(IRpcSyntaxNegotiate* This) {
   3404     return This->lpVtbl->Release(This);
   3405 }
   3406 /*** IRpcSyntaxNegotiate methods ***/
   3407 static FORCEINLINE HRESULT IRpcSyntaxNegotiate_NegotiateSyntax(IRpcSyntaxNegotiate* This,RPCOLEMESSAGE *pMsg) {
   3408     return This->lpVtbl->NegotiateSyntax(This,pMsg);
   3409 }
   3410 #endif
   3411 #endif
   3412 
   3413 #endif
   3414 
   3415 HRESULT STDMETHODCALLTYPE IRpcSyntaxNegotiate_NegotiateSyntax_Proxy(
   3416     IRpcSyntaxNegotiate* This,
   3417     RPCOLEMESSAGE *pMsg);
   3418 void __RPC_STUB IRpcSyntaxNegotiate_NegotiateSyntax_Stub(
   3419     IRpcStubBuffer* This,
   3420     IRpcChannelBuffer* pRpcChannelBuffer,
   3421     PRPC_MESSAGE pRpcMessage,
   3422     DWORD* pdwStubPhase);
   3423 
   3424 #endif  /* __IRpcSyntaxNegotiate_INTERFACE_DEFINED__ */
   3425 
   3426 
   3427 /*****************************************************************************
   3428  * IRpcProxyBuffer interface
   3429  */
   3430 #ifndef __IRpcProxyBuffer_INTERFACE_DEFINED__
   3431 #define __IRpcProxyBuffer_INTERFACE_DEFINED__
   3432 
   3433 DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
   3434 #if defined(__cplusplus) && !defined(CINTERFACE)
   3435 MIDL_INTERFACE("d5f56a34-593b-101a-b569-08002b2dbf7a")
   3436 IRpcProxyBuffer : public IUnknown
   3437 {
   3438     virtual HRESULT STDMETHODCALLTYPE Connect(
   3439         IRpcChannelBuffer *pRpcChannelBuffer) = 0;
   3440 
   3441     virtual void STDMETHODCALLTYPE Disconnect(
   3442         ) = 0;
   3443 
   3444 };
   3445 #ifdef __CRT_UUID_DECL
   3446 __CRT_UUID_DECL(IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
   3447 #endif
   3448 #else
   3449 typedef struct IRpcProxyBufferVtbl {
   3450     BEGIN_INTERFACE
   3451 
   3452     /*** IUnknown methods ***/
   3453     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3454         IRpcProxyBuffer* This,
   3455         REFIID riid,
   3456         void **ppvObject);
   3457 
   3458     ULONG (STDMETHODCALLTYPE *AddRef)(
   3459         IRpcProxyBuffer* This);
   3460 
   3461     ULONG (STDMETHODCALLTYPE *Release)(
   3462         IRpcProxyBuffer* This);
   3463 
   3464     /*** IRpcProxyBuffer methods ***/
   3465     HRESULT (STDMETHODCALLTYPE *Connect)(
   3466         IRpcProxyBuffer* This,
   3467         IRpcChannelBuffer *pRpcChannelBuffer);
   3468 
   3469     void (STDMETHODCALLTYPE *Disconnect)(
   3470         IRpcProxyBuffer* This);
   3471 
   3472     END_INTERFACE
   3473 } IRpcProxyBufferVtbl;
   3474 interface IRpcProxyBuffer {
   3475     CONST_VTBL IRpcProxyBufferVtbl* lpVtbl;
   3476 };
   3477 
   3478 #ifdef COBJMACROS
   3479 #ifndef WIDL_C_INLINE_WRAPPERS
   3480 /*** IUnknown methods ***/
   3481 #define IRpcProxyBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3482 #define IRpcProxyBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
   3483 #define IRpcProxyBuffer_Release(This) (This)->lpVtbl->Release(This)
   3484 /*** IRpcProxyBuffer methods ***/
   3485 #define IRpcProxyBuffer_Connect(This,pRpcChannelBuffer) (This)->lpVtbl->Connect(This,pRpcChannelBuffer)
   3486 #define IRpcProxyBuffer_Disconnect(This) (This)->lpVtbl->Disconnect(This)
   3487 #else
   3488 /*** IUnknown methods ***/
   3489 static FORCEINLINE HRESULT IRpcProxyBuffer_QueryInterface(IRpcProxyBuffer* This,REFIID riid,void **ppvObject) {
   3490     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3491 }
   3492 static FORCEINLINE ULONG IRpcProxyBuffer_AddRef(IRpcProxyBuffer* This) {
   3493     return This->lpVtbl->AddRef(This);
   3494 }
   3495 static FORCEINLINE ULONG IRpcProxyBuffer_Release(IRpcProxyBuffer* This) {
   3496     return This->lpVtbl->Release(This);
   3497 }
   3498 /*** IRpcProxyBuffer methods ***/
   3499 static FORCEINLINE HRESULT IRpcProxyBuffer_Connect(IRpcProxyBuffer* This,IRpcChannelBuffer *pRpcChannelBuffer) {
   3500     return This->lpVtbl->Connect(This,pRpcChannelBuffer);
   3501 }
   3502 static FORCEINLINE void IRpcProxyBuffer_Disconnect(IRpcProxyBuffer* This) {
   3503     This->lpVtbl->Disconnect(This);
   3504 }
   3505 #endif
   3506 #endif
   3507 
   3508 #endif
   3509 
   3510 HRESULT STDMETHODCALLTYPE IRpcProxyBuffer_Connect_Proxy(
   3511     IRpcProxyBuffer* This,
   3512     IRpcChannelBuffer *pRpcChannelBuffer);
   3513 void __RPC_STUB IRpcProxyBuffer_Connect_Stub(
   3514     IRpcStubBuffer* This,
   3515     IRpcChannelBuffer* pRpcChannelBuffer,
   3516     PRPC_MESSAGE pRpcMessage,
   3517     DWORD* pdwStubPhase);
   3518 void STDMETHODCALLTYPE IRpcProxyBuffer_Disconnect_Proxy(
   3519     IRpcProxyBuffer* This);
   3520 void __RPC_STUB IRpcProxyBuffer_Disconnect_Stub(
   3521     IRpcStubBuffer* This,
   3522     IRpcChannelBuffer* pRpcChannelBuffer,
   3523     PRPC_MESSAGE pRpcMessage,
   3524     DWORD* pdwStubPhase);
   3525 
   3526 #endif  /* __IRpcProxyBuffer_INTERFACE_DEFINED__ */
   3527 
   3528 #endif
   3529 
   3530 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   3531 /*****************************************************************************
   3532  * IRpcStubBuffer interface
   3533  */
   3534 #ifndef __IRpcStubBuffer_INTERFACE_DEFINED__
   3535 #define __IRpcStubBuffer_INTERFACE_DEFINED__
   3536 
   3537 DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
   3538 #if defined(__cplusplus) && !defined(CINTERFACE)
   3539 MIDL_INTERFACE("d5f56afc-593b-101a-b569-08002b2dbf7a")
   3540 IRpcStubBuffer : public IUnknown
   3541 {
   3542     virtual HRESULT STDMETHODCALLTYPE Connect(
   3543         IUnknown *pUnkServer) = 0;
   3544 
   3545     virtual void STDMETHODCALLTYPE Disconnect(
   3546         ) = 0;
   3547 
   3548     virtual HRESULT STDMETHODCALLTYPE Invoke(
   3549         RPCOLEMESSAGE *_prpcmsg,
   3550         IRpcChannelBuffer *_pRpcChannelBuffer) = 0;
   3551 
   3552     virtual IRpcStubBuffer * STDMETHODCALLTYPE IsIIDSupported(
   3553         REFIID riid) = 0;
   3554 
   3555     virtual ULONG STDMETHODCALLTYPE CountRefs(
   3556         ) = 0;
   3557 
   3558     virtual HRESULT STDMETHODCALLTYPE DebugServerQueryInterface(
   3559         void **ppv) = 0;
   3560 
   3561     virtual void STDMETHODCALLTYPE DebugServerRelease(
   3562         void *pv) = 0;
   3563 
   3564 };
   3565 #ifdef __CRT_UUID_DECL
   3566 __CRT_UUID_DECL(IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
   3567 #endif
   3568 #else
   3569 typedef struct IRpcStubBufferVtbl {
   3570     BEGIN_INTERFACE
   3571 
   3572     /*** IUnknown methods ***/
   3573     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3574         IRpcStubBuffer* This,
   3575         REFIID riid,
   3576         void **ppvObject);
   3577 
   3578     ULONG (STDMETHODCALLTYPE *AddRef)(
   3579         IRpcStubBuffer* This);
   3580 
   3581     ULONG (STDMETHODCALLTYPE *Release)(
   3582         IRpcStubBuffer* This);
   3583 
   3584     /*** IRpcStubBuffer methods ***/
   3585     HRESULT (STDMETHODCALLTYPE *Connect)(
   3586         IRpcStubBuffer* This,
   3587         IUnknown *pUnkServer);
   3588 
   3589     void (STDMETHODCALLTYPE *Disconnect)(
   3590         IRpcStubBuffer* This);
   3591 
   3592     HRESULT (STDMETHODCALLTYPE *Invoke)(
   3593         IRpcStubBuffer* This,
   3594         RPCOLEMESSAGE *_prpcmsg,
   3595         IRpcChannelBuffer *_pRpcChannelBuffer);
   3596 
   3597     IRpcStubBuffer * (STDMETHODCALLTYPE *IsIIDSupported)(
   3598         IRpcStubBuffer* This,
   3599         REFIID riid);
   3600 
   3601     ULONG (STDMETHODCALLTYPE *CountRefs)(
   3602         IRpcStubBuffer* This);
   3603 
   3604     HRESULT (STDMETHODCALLTYPE *DebugServerQueryInterface)(
   3605         IRpcStubBuffer* This,
   3606         void **ppv);
   3607 
   3608     void (STDMETHODCALLTYPE *DebugServerRelease)(
   3609         IRpcStubBuffer* This,
   3610         void *pv);
   3611 
   3612     END_INTERFACE
   3613 } IRpcStubBufferVtbl;
   3614 interface IRpcStubBuffer {
   3615     CONST_VTBL IRpcStubBufferVtbl* lpVtbl;
   3616 };
   3617 
   3618 #ifdef COBJMACROS
   3619 #ifndef WIDL_C_INLINE_WRAPPERS
   3620 /*** IUnknown methods ***/
   3621 #define IRpcStubBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3622 #define IRpcStubBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
   3623 #define IRpcStubBuffer_Release(This) (This)->lpVtbl->Release(This)
   3624 /*** IRpcStubBuffer methods ***/
   3625 #define IRpcStubBuffer_Connect(This,pUnkServer) (This)->lpVtbl->Connect(This,pUnkServer)
   3626 #define IRpcStubBuffer_Disconnect(This) (This)->lpVtbl->Disconnect(This)
   3627 #define IRpcStubBuffer_Invoke(This,_prpcmsg,_pRpcChannelBuffer) (This)->lpVtbl->Invoke(This,_prpcmsg,_pRpcChannelBuffer)
   3628 #define IRpcStubBuffer_IsIIDSupported(This,riid) (This)->lpVtbl->IsIIDSupported(This,riid)
   3629 #define IRpcStubBuffer_CountRefs(This) (This)->lpVtbl->CountRefs(This)
   3630 #define IRpcStubBuffer_DebugServerQueryInterface(This,ppv) (This)->lpVtbl->DebugServerQueryInterface(This,ppv)
   3631 #define IRpcStubBuffer_DebugServerRelease(This,pv) (This)->lpVtbl->DebugServerRelease(This,pv)
   3632 #else
   3633 /*** IUnknown methods ***/
   3634 static FORCEINLINE HRESULT IRpcStubBuffer_QueryInterface(IRpcStubBuffer* This,REFIID riid,void **ppvObject) {
   3635     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3636 }
   3637 static FORCEINLINE ULONG IRpcStubBuffer_AddRef(IRpcStubBuffer* This) {
   3638     return This->lpVtbl->AddRef(This);
   3639 }
   3640 static FORCEINLINE ULONG IRpcStubBuffer_Release(IRpcStubBuffer* This) {
   3641     return This->lpVtbl->Release(This);
   3642 }
   3643 /*** IRpcStubBuffer methods ***/
   3644 static FORCEINLINE HRESULT IRpcStubBuffer_Connect(IRpcStubBuffer* This,IUnknown *pUnkServer) {
   3645     return This->lpVtbl->Connect(This,pUnkServer);
   3646 }
   3647 static FORCEINLINE void IRpcStubBuffer_Disconnect(IRpcStubBuffer* This) {
   3648     This->lpVtbl->Disconnect(This);
   3649 }
   3650 static FORCEINLINE HRESULT IRpcStubBuffer_Invoke(IRpcStubBuffer* This,RPCOLEMESSAGE *_prpcmsg,IRpcChannelBuffer *_pRpcChannelBuffer) {
   3651     return This->lpVtbl->Invoke(This,_prpcmsg,_pRpcChannelBuffer);
   3652 }
   3653 static FORCEINLINE IRpcStubBuffer * IRpcStubBuffer_IsIIDSupported(IRpcStubBuffer* This,REFIID riid) {
   3654     return This->lpVtbl->IsIIDSupported(This,riid);
   3655 }
   3656 static FORCEINLINE ULONG IRpcStubBuffer_CountRefs(IRpcStubBuffer* This) {
   3657     return This->lpVtbl->CountRefs(This);
   3658 }
   3659 static FORCEINLINE HRESULT IRpcStubBuffer_DebugServerQueryInterface(IRpcStubBuffer* This,void **ppv) {
   3660     return This->lpVtbl->DebugServerQueryInterface(This,ppv);
   3661 }
   3662 static FORCEINLINE void IRpcStubBuffer_DebugServerRelease(IRpcStubBuffer* This,void *pv) {
   3663     This->lpVtbl->DebugServerRelease(This,pv);
   3664 }
   3665 #endif
   3666 #endif
   3667 
   3668 #endif
   3669 
   3670 HRESULT STDMETHODCALLTYPE IRpcStubBuffer_Connect_Proxy(
   3671     IRpcStubBuffer* This,
   3672     IUnknown *pUnkServer);
   3673 void __RPC_STUB IRpcStubBuffer_Connect_Stub(
   3674     IRpcStubBuffer* This,
   3675     IRpcChannelBuffer* pRpcChannelBuffer,
   3676     PRPC_MESSAGE pRpcMessage,
   3677     DWORD* pdwStubPhase);
   3678 void STDMETHODCALLTYPE IRpcStubBuffer_Disconnect_Proxy(
   3679     IRpcStubBuffer* This);
   3680 void __RPC_STUB IRpcStubBuffer_Disconnect_Stub(
   3681     IRpcStubBuffer* This,
   3682     IRpcChannelBuffer* pRpcChannelBuffer,
   3683     PRPC_MESSAGE pRpcMessage,
   3684     DWORD* pdwStubPhase);
   3685 HRESULT STDMETHODCALLTYPE IRpcStubBuffer_Invoke_Proxy(
   3686     IRpcStubBuffer* This,
   3687     RPCOLEMESSAGE *_prpcmsg,
   3688     IRpcChannelBuffer *_pRpcChannelBuffer);
   3689 void __RPC_STUB IRpcStubBuffer_Invoke_Stub(
   3690     IRpcStubBuffer* This,
   3691     IRpcChannelBuffer* pRpcChannelBuffer,
   3692     PRPC_MESSAGE pRpcMessage,
   3693     DWORD* pdwStubPhase);
   3694 IRpcStubBuffer * STDMETHODCALLTYPE IRpcStubBuffer_IsIIDSupported_Proxy(
   3695     IRpcStubBuffer* This,
   3696     REFIID riid);
   3697 void __RPC_STUB IRpcStubBuffer_IsIIDSupported_Stub(
   3698     IRpcStubBuffer* This,
   3699     IRpcChannelBuffer* pRpcChannelBuffer,
   3700     PRPC_MESSAGE pRpcMessage,
   3701     DWORD* pdwStubPhase);
   3702 ULONG STDMETHODCALLTYPE IRpcStubBuffer_CountRefs_Proxy(
   3703     IRpcStubBuffer* This);
   3704 void __RPC_STUB IRpcStubBuffer_CountRefs_Stub(
   3705     IRpcStubBuffer* This,
   3706     IRpcChannelBuffer* pRpcChannelBuffer,
   3707     PRPC_MESSAGE pRpcMessage,
   3708     DWORD* pdwStubPhase);
   3709 HRESULT STDMETHODCALLTYPE IRpcStubBuffer_DebugServerQueryInterface_Proxy(
   3710     IRpcStubBuffer* This,
   3711     void **ppv);
   3712 void __RPC_STUB IRpcStubBuffer_DebugServerQueryInterface_Stub(
   3713     IRpcStubBuffer* This,
   3714     IRpcChannelBuffer* pRpcChannelBuffer,
   3715     PRPC_MESSAGE pRpcMessage,
   3716     DWORD* pdwStubPhase);
   3717 void STDMETHODCALLTYPE IRpcStubBuffer_DebugServerRelease_Proxy(
   3718     IRpcStubBuffer* This,
   3719     void *pv);
   3720 void __RPC_STUB IRpcStubBuffer_DebugServerRelease_Stub(
   3721     IRpcStubBuffer* This,
   3722     IRpcChannelBuffer* pRpcChannelBuffer,
   3723     PRPC_MESSAGE pRpcMessage,
   3724     DWORD* pdwStubPhase);
   3725 
   3726 #endif  /* __IRpcStubBuffer_INTERFACE_DEFINED__ */
   3727 
   3728 
   3729 /*****************************************************************************
   3730  * IPSFactoryBuffer interface
   3731  */
   3732 #ifndef __IPSFactoryBuffer_INTERFACE_DEFINED__
   3733 #define __IPSFactoryBuffer_INTERFACE_DEFINED__
   3734 
   3735 DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
   3736 #if defined(__cplusplus) && !defined(CINTERFACE)
   3737 MIDL_INTERFACE("d5f569d0-593b-101a-b569-08002b2dbf7a")
   3738 IPSFactoryBuffer : public IUnknown
   3739 {
   3740     virtual HRESULT STDMETHODCALLTYPE CreateProxy(
   3741         IUnknown *pUnkOuter,
   3742         REFIID riid,
   3743         IRpcProxyBuffer **ppProxy,
   3744         void **ppv) = 0;
   3745 
   3746     virtual HRESULT STDMETHODCALLTYPE CreateStub(
   3747         REFIID riid,
   3748         IUnknown *pUnkServer,
   3749         IRpcStubBuffer **ppStub) = 0;
   3750 
   3751 };
   3752 #ifdef __CRT_UUID_DECL
   3753 __CRT_UUID_DECL(IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
   3754 #endif
   3755 #else
   3756 typedef struct IPSFactoryBufferVtbl {
   3757     BEGIN_INTERFACE
   3758 
   3759     /*** IUnknown methods ***/
   3760     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3761         IPSFactoryBuffer* This,
   3762         REFIID riid,
   3763         void **ppvObject);
   3764 
   3765     ULONG (STDMETHODCALLTYPE *AddRef)(
   3766         IPSFactoryBuffer* This);
   3767 
   3768     ULONG (STDMETHODCALLTYPE *Release)(
   3769         IPSFactoryBuffer* This);
   3770 
   3771     /*** IPSFactoryBuffer methods ***/
   3772     HRESULT (STDMETHODCALLTYPE *CreateProxy)(
   3773         IPSFactoryBuffer* This,
   3774         IUnknown *pUnkOuter,
   3775         REFIID riid,
   3776         IRpcProxyBuffer **ppProxy,
   3777         void **ppv);
   3778 
   3779     HRESULT (STDMETHODCALLTYPE *CreateStub)(
   3780         IPSFactoryBuffer* This,
   3781         REFIID riid,
   3782         IUnknown *pUnkServer,
   3783         IRpcStubBuffer **ppStub);
   3784 
   3785     END_INTERFACE
   3786 } IPSFactoryBufferVtbl;
   3787 interface IPSFactoryBuffer {
   3788     CONST_VTBL IPSFactoryBufferVtbl* lpVtbl;
   3789 };
   3790 
   3791 #ifdef COBJMACROS
   3792 #ifndef WIDL_C_INLINE_WRAPPERS
   3793 /*** IUnknown methods ***/
   3794 #define IPSFactoryBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3795 #define IPSFactoryBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
   3796 #define IPSFactoryBuffer_Release(This) (This)->lpVtbl->Release(This)
   3797 /*** IPSFactoryBuffer methods ***/
   3798 #define IPSFactoryBuffer_CreateProxy(This,pUnkOuter,riid,ppProxy,ppv) (This)->lpVtbl->CreateProxy(This,pUnkOuter,riid,ppProxy,ppv)
   3799 #define IPSFactoryBuffer_CreateStub(This,riid,pUnkServer,ppStub) (This)->lpVtbl->CreateStub(This,riid,pUnkServer,ppStub)
   3800 #else
   3801 /*** IUnknown methods ***/
   3802 static FORCEINLINE HRESULT IPSFactoryBuffer_QueryInterface(IPSFactoryBuffer* This,REFIID riid,void **ppvObject) {
   3803     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3804 }
   3805 static FORCEINLINE ULONG IPSFactoryBuffer_AddRef(IPSFactoryBuffer* This) {
   3806     return This->lpVtbl->AddRef(This);
   3807 }
   3808 static FORCEINLINE ULONG IPSFactoryBuffer_Release(IPSFactoryBuffer* This) {
   3809     return This->lpVtbl->Release(This);
   3810 }
   3811 /*** IPSFactoryBuffer methods ***/
   3812 static FORCEINLINE HRESULT IPSFactoryBuffer_CreateProxy(IPSFactoryBuffer* This,IUnknown *pUnkOuter,REFIID riid,IRpcProxyBuffer **ppProxy,void **ppv) {
   3813     return This->lpVtbl->CreateProxy(This,pUnkOuter,riid,ppProxy,ppv);
   3814 }
   3815 static FORCEINLINE HRESULT IPSFactoryBuffer_CreateStub(IPSFactoryBuffer* This,REFIID riid,IUnknown *pUnkServer,IRpcStubBuffer **ppStub) {
   3816     return This->lpVtbl->CreateStub(This,riid,pUnkServer,ppStub);
   3817 }
   3818 #endif
   3819 #endif
   3820 
   3821 #endif
   3822 
   3823 HRESULT STDMETHODCALLTYPE IPSFactoryBuffer_CreateProxy_Proxy(
   3824     IPSFactoryBuffer* This,
   3825     IUnknown *pUnkOuter,
   3826     REFIID riid,
   3827     IRpcProxyBuffer **ppProxy,
   3828     void **ppv);
   3829 void __RPC_STUB IPSFactoryBuffer_CreateProxy_Stub(
   3830     IRpcStubBuffer* This,
   3831     IRpcChannelBuffer* pRpcChannelBuffer,
   3832     PRPC_MESSAGE pRpcMessage,
   3833     DWORD* pdwStubPhase);
   3834 HRESULT STDMETHODCALLTYPE IPSFactoryBuffer_CreateStub_Proxy(
   3835     IPSFactoryBuffer* This,
   3836     REFIID riid,
   3837     IUnknown *pUnkServer,
   3838     IRpcStubBuffer **ppStub);
   3839 void __RPC_STUB IPSFactoryBuffer_CreateStub_Stub(
   3840     IRpcStubBuffer* This,
   3841     IRpcChannelBuffer* pRpcChannelBuffer,
   3842     PRPC_MESSAGE pRpcMessage,
   3843     DWORD* pdwStubPhase);
   3844 
   3845 #endif  /* __IPSFactoryBuffer_INTERFACE_DEFINED__ */
   3846 
   3847 #endif
   3848 
   3849 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   3850 #if  (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)
   3851 typedef struct SChannelHookCallInfo {
   3852     IID iid;
   3853     DWORD cbSize;
   3854     GUID uCausality;
   3855     DWORD dwServerPid;
   3856     DWORD iMethod;
   3857     void *pObject;
   3858 } SChannelHookCallInfo;
   3859 
   3860 /*****************************************************************************
   3861  * IChannelHook interface
   3862  */
   3863 #ifndef __IChannelHook_INTERFACE_DEFINED__
   3864 #define __IChannelHook_INTERFACE_DEFINED__
   3865 
   3866 DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
   3867 #if defined(__cplusplus) && !defined(CINTERFACE)
   3868 MIDL_INTERFACE("1008c4a0-7613-11cf-9af1-0020af6e72f4")
   3869 IChannelHook : public IUnknown
   3870 {
   3871     virtual void STDMETHODCALLTYPE ClientGetSize(
   3872         REFGUID uExtent,
   3873         REFIID riid,
   3874         ULONG *pDataSize) = 0;
   3875 
   3876     virtual void STDMETHODCALLTYPE ClientFillBuffer(
   3877         REFGUID uExtent,
   3878         REFIID riid,
   3879         ULONG *pDataSize,
   3880         void *pDataBuffer) = 0;
   3881 
   3882     virtual void STDMETHODCALLTYPE ClientNotify(
   3883         REFGUID uExtent,
   3884         REFIID riid,
   3885         ULONG cbDataSize,
   3886         void *pDataBuffer,
   3887         DWORD lDataRep,
   3888         HRESULT hrFault) = 0;
   3889 
   3890     virtual void STDMETHODCALLTYPE ServerNotify(
   3891         REFGUID uExtent,
   3892         REFIID riid,
   3893         ULONG cbDataSize,
   3894         void *pDataBuffer,
   3895         DWORD lDataRep) = 0;
   3896 
   3897     virtual void STDMETHODCALLTYPE ServerGetSize(
   3898         REFGUID uExtent,
   3899         REFIID riid,
   3900         HRESULT hrFault,
   3901         ULONG *pDataSize) = 0;
   3902 
   3903     virtual void STDMETHODCALLTYPE ServerFillBuffer(
   3904         REFGUID uExtent,
   3905         REFIID riid,
   3906         ULONG *pDataSize,
   3907         void *pDataBuffer,
   3908         HRESULT hrFault) = 0;
   3909 
   3910 };
   3911 #ifdef __CRT_UUID_DECL
   3912 __CRT_UUID_DECL(IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4)
   3913 #endif
   3914 #else
   3915 typedef struct IChannelHookVtbl {
   3916     BEGIN_INTERFACE
   3917 
   3918     /*** IUnknown methods ***/
   3919     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3920         IChannelHook* This,
   3921         REFIID riid,
   3922         void **ppvObject);
   3923 
   3924     ULONG (STDMETHODCALLTYPE *AddRef)(
   3925         IChannelHook* This);
   3926 
   3927     ULONG (STDMETHODCALLTYPE *Release)(
   3928         IChannelHook* This);
   3929 
   3930     /*** IChannelHook methods ***/
   3931     void (STDMETHODCALLTYPE *ClientGetSize)(
   3932         IChannelHook* This,
   3933         REFGUID uExtent,
   3934         REFIID riid,
   3935         ULONG *pDataSize);
   3936 
   3937     void (STDMETHODCALLTYPE *ClientFillBuffer)(
   3938         IChannelHook* This,
   3939         REFGUID uExtent,
   3940         REFIID riid,
   3941         ULONG *pDataSize,
   3942         void *pDataBuffer);
   3943 
   3944     void (STDMETHODCALLTYPE *ClientNotify)(
   3945         IChannelHook* This,
   3946         REFGUID uExtent,
   3947         REFIID riid,
   3948         ULONG cbDataSize,
   3949         void *pDataBuffer,
   3950         DWORD lDataRep,
   3951         HRESULT hrFault);
   3952 
   3953     void (STDMETHODCALLTYPE *ServerNotify)(
   3954         IChannelHook* This,
   3955         REFGUID uExtent,
   3956         REFIID riid,
   3957         ULONG cbDataSize,
   3958         void *pDataBuffer,
   3959         DWORD lDataRep);
   3960 
   3961     void (STDMETHODCALLTYPE *ServerGetSize)(
   3962         IChannelHook* This,
   3963         REFGUID uExtent,
   3964         REFIID riid,
   3965         HRESULT hrFault,
   3966         ULONG *pDataSize);
   3967 
   3968     void (STDMETHODCALLTYPE *ServerFillBuffer)(
   3969         IChannelHook* This,
   3970         REFGUID uExtent,
   3971         REFIID riid,
   3972         ULONG *pDataSize,
   3973         void *pDataBuffer,
   3974         HRESULT hrFault);
   3975 
   3976     END_INTERFACE
   3977 } IChannelHookVtbl;
   3978 interface IChannelHook {
   3979     CONST_VTBL IChannelHookVtbl* lpVtbl;
   3980 };
   3981 
   3982 #ifdef COBJMACROS
   3983 #ifndef WIDL_C_INLINE_WRAPPERS
   3984 /*** IUnknown methods ***/
   3985 #define IChannelHook_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3986 #define IChannelHook_AddRef(This) (This)->lpVtbl->AddRef(This)
   3987 #define IChannelHook_Release(This) (This)->lpVtbl->Release(This)
   3988 /*** IChannelHook methods ***/
   3989 #define IChannelHook_ClientGetSize(This,uExtent,riid,pDataSize) (This)->lpVtbl->ClientGetSize(This,uExtent,riid,pDataSize)
   3990 #define IChannelHook_ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer) (This)->lpVtbl->ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer)
   3991 #define IChannelHook_ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault) (This)->lpVtbl->ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault)
   3992 #define IChannelHook_ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep) (This)->lpVtbl->ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep)
   3993 #define IChannelHook_ServerGetSize(This,uExtent,riid,hrFault,pDataSize) (This)->lpVtbl->ServerGetSize(This,uExtent,riid,hrFault,pDataSize)
   3994 #define IChannelHook_ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault) (This)->lpVtbl->ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault)
   3995 #else
   3996 /*** IUnknown methods ***/
   3997 static FORCEINLINE HRESULT IChannelHook_QueryInterface(IChannelHook* This,REFIID riid,void **ppvObject) {
   3998     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3999 }
   4000 static FORCEINLINE ULONG IChannelHook_AddRef(IChannelHook* This) {
   4001     return This->lpVtbl->AddRef(This);
   4002 }
   4003 static FORCEINLINE ULONG IChannelHook_Release(IChannelHook* This) {
   4004     return This->lpVtbl->Release(This);
   4005 }
   4006 /*** IChannelHook methods ***/
   4007 static FORCEINLINE void IChannelHook_ClientGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize) {
   4008     This->lpVtbl->ClientGetSize(This,uExtent,riid,pDataSize);
   4009 }
   4010 static FORCEINLINE void IChannelHook_ClientFillBuffer(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer) {
   4011     This->lpVtbl->ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer);
   4012 }
   4013 static FORCEINLINE void IChannelHook_ClientNotify(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG cbDataSize,void *pDataBuffer,DWORD lDataRep,HRESULT hrFault) {
   4014     This->lpVtbl->ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault);
   4015 }
   4016 static FORCEINLINE void IChannelHook_ServerNotify(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG cbDataSize,void *pDataBuffer,DWORD lDataRep) {
   4017     This->lpVtbl->ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep);
   4018 }
   4019 static FORCEINLINE void IChannelHook_ServerGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,HRESULT hrFault,ULONG *pDataSize) {
   4020     This->lpVtbl->ServerGetSize(This,uExtent,riid,hrFault,pDataSize);
   4021 }
   4022 static FORCEINLINE void IChannelHook_ServerFillBuffer(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer,HRESULT hrFault) {
   4023     This->lpVtbl->ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault);
   4024 }
   4025 #endif
   4026 #endif
   4027 
   4028 #endif
   4029 
   4030 void STDMETHODCALLTYPE IChannelHook_ClientGetSize_Proxy(
   4031     IChannelHook* This,
   4032     REFGUID uExtent,
   4033     REFIID riid,
   4034     ULONG *pDataSize);
   4035 void __RPC_STUB IChannelHook_ClientGetSize_Stub(
   4036     IRpcStubBuffer* This,
   4037     IRpcChannelBuffer* pRpcChannelBuffer,
   4038     PRPC_MESSAGE pRpcMessage,
   4039     DWORD* pdwStubPhase);
   4040 void STDMETHODCALLTYPE IChannelHook_ClientFillBuffer_Proxy(
   4041     IChannelHook* This,
   4042     REFGUID uExtent,
   4043     REFIID riid,
   4044     ULONG *pDataSize,
   4045     void *pDataBuffer);
   4046 void __RPC_STUB IChannelHook_ClientFillBuffer_Stub(
   4047     IRpcStubBuffer* This,
   4048     IRpcChannelBuffer* pRpcChannelBuffer,
   4049     PRPC_MESSAGE pRpcMessage,
   4050     DWORD* pdwStubPhase);
   4051 void STDMETHODCALLTYPE IChannelHook_ClientNotify_Proxy(
   4052     IChannelHook* This,
   4053     REFGUID uExtent,
   4054     REFIID riid,
   4055     ULONG cbDataSize,
   4056     void *pDataBuffer,
   4057     DWORD lDataRep,
   4058     HRESULT hrFault);
   4059 void __RPC_STUB IChannelHook_ClientNotify_Stub(
   4060     IRpcStubBuffer* This,
   4061     IRpcChannelBuffer* pRpcChannelBuffer,
   4062     PRPC_MESSAGE pRpcMessage,
   4063     DWORD* pdwStubPhase);
   4064 void STDMETHODCALLTYPE IChannelHook_ServerNotify_Proxy(
   4065     IChannelHook* This,
   4066     REFGUID uExtent,
   4067     REFIID riid,
   4068     ULONG cbDataSize,
   4069     void *pDataBuffer,
   4070     DWORD lDataRep);
   4071 void __RPC_STUB IChannelHook_ServerNotify_Stub(
   4072     IRpcStubBuffer* This,
   4073     IRpcChannelBuffer* pRpcChannelBuffer,
   4074     PRPC_MESSAGE pRpcMessage,
   4075     DWORD* pdwStubPhase);
   4076 void STDMETHODCALLTYPE IChannelHook_ServerGetSize_Proxy(
   4077     IChannelHook* This,
   4078     REFGUID uExtent,
   4079     REFIID riid,
   4080     HRESULT hrFault,
   4081     ULONG *pDataSize);
   4082 void __RPC_STUB IChannelHook_ServerGetSize_Stub(
   4083     IRpcStubBuffer* This,
   4084     IRpcChannelBuffer* pRpcChannelBuffer,
   4085     PRPC_MESSAGE pRpcMessage,
   4086     DWORD* pdwStubPhase);
   4087 void STDMETHODCALLTYPE IChannelHook_ServerFillBuffer_Proxy(
   4088     IChannelHook* This,
   4089     REFGUID uExtent,
   4090     REFIID riid,
   4091     ULONG *pDataSize,
   4092     void *pDataBuffer,
   4093     HRESULT hrFault);
   4094 void __RPC_STUB IChannelHook_ServerFillBuffer_Stub(
   4095     IRpcStubBuffer* This,
   4096     IRpcChannelBuffer* pRpcChannelBuffer,
   4097     PRPC_MESSAGE pRpcMessage,
   4098     DWORD* pdwStubPhase);
   4099 
   4100 #endif  /* __IChannelHook_INTERFACE_DEFINED__ */
   4101 
   4102 #endif
   4103 #endif
   4104 
   4105 #if  (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)
   4106 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   4107 /*****************************************************************************
   4108  * IClientSecurity interface
   4109  */
   4110 #ifndef __IClientSecurity_INTERFACE_DEFINED__
   4111 #define __IClientSecurity_INTERFACE_DEFINED__
   4112 
   4113 typedef struct tagSOLE_AUTHENTICATION_SERVICE {
   4114     DWORD dwAuthnSvc;
   4115     DWORD dwAuthzSvc;
   4116     OLECHAR *pPrincipalName;
   4117     HRESULT hr;
   4118 } SOLE_AUTHENTICATION_SERVICE;
   4119 
   4120 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
   4121 
   4122 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
   4123     EOAC_NONE = 0x0,
   4124     EOAC_MUTUAL_AUTH = 0x1,
   4125     EOAC_STATIC_CLOAKING = 0x20,
   4126     EOAC_DYNAMIC_CLOAKING = 0x40,
   4127     EOAC_ANY_AUTHORITY = 0x80,
   4128     EOAC_MAKE_FULLSIC = 0x100,
   4129     EOAC_DEFAULT = 0x800,
   4130     EOAC_SECURE_REFS = 0x2,
   4131     EOAC_ACCESS_CONTROL = 0x4,
   4132     EOAC_APPID = 0x8,
   4133     EOAC_DYNAMIC = 0x10,
   4134     EOAC_REQUIRE_FULLSIC = 0x200,
   4135     EOAC_AUTO_IMPERSONATE = 0x400,
   4136     EOAC_NO_CUSTOM_MARSHAL = 0x2000,
   4137     EOAC_DISABLE_AAA = 0x1000
   4138 } EOLE_AUTHENTICATION_CAPABILITIES;
   4139 
   4140 #define COLE_DEFAULT_PRINCIPAL ((OLECHAR *)(INT_PTR)-1)
   4141 
   4142 #define COLE_DEFAULT_AUTHINFO ((void *)(INT_PTR)-1)
   4143 
   4144 
   4145 typedef struct tagSOLE_AUTHENTICATION_INFO {
   4146     DWORD dwAuthnSvc;
   4147     DWORD dwAuthzSvc;
   4148     void *pAuthInfo;
   4149 } SOLE_AUTHENTICATION_INFO;
   4150 typedef struct tagSOLE_AUTHENTICATION_INFO *PSOLE_AUTHENTICATION_INFO;
   4151 
   4152 typedef struct tagSOLE_AUTHENTICATION_LIST {
   4153     DWORD cAuthInfo;
   4154     SOLE_AUTHENTICATION_INFO *aAuthInfo;
   4155 } SOLE_AUTHENTICATION_LIST;
   4156 typedef struct tagSOLE_AUTHENTICATION_LIST *PSOLE_AUTHENTICATION_LIST;
   4157 
   4158 DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4159 #if defined(__cplusplus) && !defined(CINTERFACE)
   4160 MIDL_INTERFACE("0000013d-0000-0000-c000-000000000046")
   4161 IClientSecurity : public IUnknown
   4162 {
   4163     virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
   4164         IUnknown *pProxy,
   4165         DWORD *pAuthnSvc,
   4166         DWORD *pAuthzSvc,
   4167         OLECHAR **pServerPrincName,
   4168         DWORD *pAuthnLevel,
   4169         DWORD *pImpLevel,
   4170         void **pAuthInfo,
   4171         DWORD *pCapabilites) = 0;
   4172 
   4173     virtual HRESULT STDMETHODCALLTYPE SetBlanket(
   4174         IUnknown *pProxy,
   4175         DWORD dwAuthnSvc,
   4176         DWORD dwAuthzSvc,
   4177         OLECHAR *pServerPrincName,
   4178         DWORD dwAuthnLevel,
   4179         DWORD dwImpLevel,
   4180         void *pAuthInfo,
   4181         DWORD dwCapabilities) = 0;
   4182 
   4183     virtual HRESULT STDMETHODCALLTYPE CopyProxy(
   4184         IUnknown *pProxy,
   4185         IUnknown **ppCopy) = 0;
   4186 
   4187 };
   4188 #ifdef __CRT_UUID_DECL
   4189 __CRT_UUID_DECL(IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4190 #endif
   4191 #else
   4192 typedef struct IClientSecurityVtbl {
   4193     BEGIN_INTERFACE
   4194 
   4195     /*** IUnknown methods ***/
   4196     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4197         IClientSecurity* This,
   4198         REFIID riid,
   4199         void **ppvObject);
   4200 
   4201     ULONG (STDMETHODCALLTYPE *AddRef)(
   4202         IClientSecurity* This);
   4203 
   4204     ULONG (STDMETHODCALLTYPE *Release)(
   4205         IClientSecurity* This);
   4206 
   4207     /*** IClientSecurity methods ***/
   4208     HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
   4209         IClientSecurity* This,
   4210         IUnknown *pProxy,
   4211         DWORD *pAuthnSvc,
   4212         DWORD *pAuthzSvc,
   4213         OLECHAR **pServerPrincName,
   4214         DWORD *pAuthnLevel,
   4215         DWORD *pImpLevel,
   4216         void **pAuthInfo,
   4217         DWORD *pCapabilites);
   4218 
   4219     HRESULT (STDMETHODCALLTYPE *SetBlanket)(
   4220         IClientSecurity* This,
   4221         IUnknown *pProxy,
   4222         DWORD dwAuthnSvc,
   4223         DWORD dwAuthzSvc,
   4224         OLECHAR *pServerPrincName,
   4225         DWORD dwAuthnLevel,
   4226         DWORD dwImpLevel,
   4227         void *pAuthInfo,
   4228         DWORD dwCapabilities);
   4229 
   4230     HRESULT (STDMETHODCALLTYPE *CopyProxy)(
   4231         IClientSecurity* This,
   4232         IUnknown *pProxy,
   4233         IUnknown **ppCopy);
   4234 
   4235     END_INTERFACE
   4236 } IClientSecurityVtbl;
   4237 interface IClientSecurity {
   4238     CONST_VTBL IClientSecurityVtbl* lpVtbl;
   4239 };
   4240 
   4241 #ifdef COBJMACROS
   4242 #ifndef WIDL_C_INLINE_WRAPPERS
   4243 /*** IUnknown methods ***/
   4244 #define IClientSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4245 #define IClientSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
   4246 #define IClientSecurity_Release(This) (This)->lpVtbl->Release(This)
   4247 /*** IClientSecurity methods ***/
   4248 #define IClientSecurity_QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites) (This)->lpVtbl->QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites)
   4249 #define IClientSecurity_SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities) (This)->lpVtbl->SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities)
   4250 #define IClientSecurity_CopyProxy(This,pProxy,ppCopy) (This)->lpVtbl->CopyProxy(This,pProxy,ppCopy)
   4251 #else
   4252 /*** IUnknown methods ***/
   4253 static FORCEINLINE HRESULT IClientSecurity_QueryInterface(IClientSecurity* This,REFIID riid,void **ppvObject) {
   4254     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4255 }
   4256 static FORCEINLINE ULONG IClientSecurity_AddRef(IClientSecurity* This) {
   4257     return This->lpVtbl->AddRef(This);
   4258 }
   4259 static FORCEINLINE ULONG IClientSecurity_Release(IClientSecurity* This) {
   4260     return This->lpVtbl->Release(This);
   4261 }
   4262 /*** IClientSecurity methods ***/
   4263 static FORCEINLINE HRESULT IClientSecurity_QueryBlanket(IClientSecurity* This,IUnknown *pProxy,DWORD *pAuthnSvc,DWORD *pAuthzSvc,OLECHAR **pServerPrincName,DWORD *pAuthnLevel,DWORD *pImpLevel,void **pAuthInfo,DWORD *pCapabilites) {
   4264     return This->lpVtbl->QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites);
   4265 }
   4266 static FORCEINLINE HRESULT IClientSecurity_SetBlanket(IClientSecurity* This,IUnknown *pProxy,DWORD dwAuthnSvc,DWORD dwAuthzSvc,OLECHAR *pServerPrincName,DWORD dwAuthnLevel,DWORD dwImpLevel,void *pAuthInfo,DWORD dwCapabilities) {
   4267     return This->lpVtbl->SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities);
   4268 }
   4269 static FORCEINLINE HRESULT IClientSecurity_CopyProxy(IClientSecurity* This,IUnknown *pProxy,IUnknown **ppCopy) {
   4270     return This->lpVtbl->CopyProxy(This,pProxy,ppCopy);
   4271 }
   4272 #endif
   4273 #endif
   4274 
   4275 #endif
   4276 
   4277 HRESULT STDMETHODCALLTYPE IClientSecurity_QueryBlanket_Proxy(
   4278     IClientSecurity* This,
   4279     IUnknown *pProxy,
   4280     DWORD *pAuthnSvc,
   4281     DWORD *pAuthzSvc,
   4282     OLECHAR **pServerPrincName,
   4283     DWORD *pAuthnLevel,
   4284     DWORD *pImpLevel,
   4285     void **pAuthInfo,
   4286     DWORD *pCapabilites);
   4287 void __RPC_STUB IClientSecurity_QueryBlanket_Stub(
   4288     IRpcStubBuffer* This,
   4289     IRpcChannelBuffer* pRpcChannelBuffer,
   4290     PRPC_MESSAGE pRpcMessage,
   4291     DWORD* pdwStubPhase);
   4292 HRESULT STDMETHODCALLTYPE IClientSecurity_SetBlanket_Proxy(
   4293     IClientSecurity* This,
   4294     IUnknown *pProxy,
   4295     DWORD dwAuthnSvc,
   4296     DWORD dwAuthzSvc,
   4297     OLECHAR *pServerPrincName,
   4298     DWORD dwAuthnLevel,
   4299     DWORD dwImpLevel,
   4300     void *pAuthInfo,
   4301     DWORD dwCapabilities);
   4302 void __RPC_STUB IClientSecurity_SetBlanket_Stub(
   4303     IRpcStubBuffer* This,
   4304     IRpcChannelBuffer* pRpcChannelBuffer,
   4305     PRPC_MESSAGE pRpcMessage,
   4306     DWORD* pdwStubPhase);
   4307 HRESULT STDMETHODCALLTYPE IClientSecurity_CopyProxy_Proxy(
   4308     IClientSecurity* This,
   4309     IUnknown *pProxy,
   4310     IUnknown **ppCopy);
   4311 void __RPC_STUB IClientSecurity_CopyProxy_Stub(
   4312     IRpcStubBuffer* This,
   4313     IRpcChannelBuffer* pRpcChannelBuffer,
   4314     PRPC_MESSAGE pRpcMessage,
   4315     DWORD* pdwStubPhase);
   4316 
   4317 #endif  /* __IClientSecurity_INTERFACE_DEFINED__ */
   4318 
   4319 #endif
   4320 
   4321 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   4322 /*****************************************************************************
   4323  * IServerSecurity interface
   4324  */
   4325 #ifndef __IServerSecurity_INTERFACE_DEFINED__
   4326 #define __IServerSecurity_INTERFACE_DEFINED__
   4327 
   4328 DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4329 #if defined(__cplusplus) && !defined(CINTERFACE)
   4330 MIDL_INTERFACE("0000013e-0000-0000-c000-000000000046")
   4331 IServerSecurity : public IUnknown
   4332 {
   4333     virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
   4334         DWORD *pAuthnSvc,
   4335         DWORD *pAuthzSvc,
   4336         OLECHAR **pServerPrincName,
   4337         DWORD *pAuthnLevel,
   4338         DWORD *pImpLevel,
   4339         void **pPrivs,
   4340         DWORD *pCapabilities) = 0;
   4341 
   4342     virtual HRESULT STDMETHODCALLTYPE ImpersonateClient(
   4343         ) = 0;
   4344 
   4345     virtual HRESULT STDMETHODCALLTYPE RevertToSelf(
   4346         ) = 0;
   4347 
   4348     virtual WINBOOL STDMETHODCALLTYPE IsImpersonating(
   4349         ) = 0;
   4350 
   4351 };
   4352 #ifdef __CRT_UUID_DECL
   4353 __CRT_UUID_DECL(IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4354 #endif
   4355 #else
   4356 typedef struct IServerSecurityVtbl {
   4357     BEGIN_INTERFACE
   4358 
   4359     /*** IUnknown methods ***/
   4360     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4361         IServerSecurity* This,
   4362         REFIID riid,
   4363         void **ppvObject);
   4364 
   4365     ULONG (STDMETHODCALLTYPE *AddRef)(
   4366         IServerSecurity* This);
   4367 
   4368     ULONG (STDMETHODCALLTYPE *Release)(
   4369         IServerSecurity* This);
   4370 
   4371     /*** IServerSecurity methods ***/
   4372     HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
   4373         IServerSecurity* This,
   4374         DWORD *pAuthnSvc,
   4375         DWORD *pAuthzSvc,
   4376         OLECHAR **pServerPrincName,
   4377         DWORD *pAuthnLevel,
   4378         DWORD *pImpLevel,
   4379         void **pPrivs,
   4380         DWORD *pCapabilities);
   4381 
   4382     HRESULT (STDMETHODCALLTYPE *ImpersonateClient)(
   4383         IServerSecurity* This);
   4384 
   4385     HRESULT (STDMETHODCALLTYPE *RevertToSelf)(
   4386         IServerSecurity* This);
   4387 
   4388     WINBOOL (STDMETHODCALLTYPE *IsImpersonating)(
   4389         IServerSecurity* This);
   4390 
   4391     END_INTERFACE
   4392 } IServerSecurityVtbl;
   4393 interface IServerSecurity {
   4394     CONST_VTBL IServerSecurityVtbl* lpVtbl;
   4395 };
   4396 
   4397 #ifdef COBJMACROS
   4398 #ifndef WIDL_C_INLINE_WRAPPERS
   4399 /*** IUnknown methods ***/
   4400 #define IServerSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4401 #define IServerSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
   4402 #define IServerSecurity_Release(This) (This)->lpVtbl->Release(This)
   4403 /*** IServerSecurity methods ***/
   4404 #define IServerSecurity_QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities) (This)->lpVtbl->QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities)
   4405 #define IServerSecurity_ImpersonateClient(This) (This)->lpVtbl->ImpersonateClient(This)
   4406 #define IServerSecurity_RevertToSelf(This) (This)->lpVtbl->RevertToSelf(This)
   4407 #define IServerSecurity_IsImpersonating(This) (This)->lpVtbl->IsImpersonating(This)
   4408 #else
   4409 /*** IUnknown methods ***/
   4410 static FORCEINLINE HRESULT IServerSecurity_QueryInterface(IServerSecurity* This,REFIID riid,void **ppvObject) {
   4411     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4412 }
   4413 static FORCEINLINE ULONG IServerSecurity_AddRef(IServerSecurity* This) {
   4414     return This->lpVtbl->AddRef(This);
   4415 }
   4416 static FORCEINLINE ULONG IServerSecurity_Release(IServerSecurity* This) {
   4417     return This->lpVtbl->Release(This);
   4418 }
   4419 /*** IServerSecurity methods ***/
   4420 static FORCEINLINE HRESULT IServerSecurity_QueryBlanket(IServerSecurity* This,DWORD *pAuthnSvc,DWORD *pAuthzSvc,OLECHAR **pServerPrincName,DWORD *pAuthnLevel,DWORD *pImpLevel,void **pPrivs,DWORD *pCapabilities) {
   4421     return This->lpVtbl->QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities);
   4422 }
   4423 static FORCEINLINE HRESULT IServerSecurity_ImpersonateClient(IServerSecurity* This) {
   4424     return This->lpVtbl->ImpersonateClient(This);
   4425 }
   4426 static FORCEINLINE HRESULT IServerSecurity_RevertToSelf(IServerSecurity* This) {
   4427     return This->lpVtbl->RevertToSelf(This);
   4428 }
   4429 static FORCEINLINE WINBOOL IServerSecurity_IsImpersonating(IServerSecurity* This) {
   4430     return This->lpVtbl->IsImpersonating(This);
   4431 }
   4432 #endif
   4433 #endif
   4434 
   4435 #endif
   4436 
   4437 HRESULT STDMETHODCALLTYPE IServerSecurity_QueryBlanket_Proxy(
   4438     IServerSecurity* This,
   4439     DWORD *pAuthnSvc,
   4440     DWORD *pAuthzSvc,
   4441     OLECHAR **pServerPrincName,
   4442     DWORD *pAuthnLevel,
   4443     DWORD *pImpLevel,
   4444     void **pPrivs,
   4445     DWORD *pCapabilities);
   4446 void __RPC_STUB IServerSecurity_QueryBlanket_Stub(
   4447     IRpcStubBuffer* This,
   4448     IRpcChannelBuffer* pRpcChannelBuffer,
   4449     PRPC_MESSAGE pRpcMessage,
   4450     DWORD* pdwStubPhase);
   4451 HRESULT STDMETHODCALLTYPE IServerSecurity_ImpersonateClient_Proxy(
   4452     IServerSecurity* This);
   4453 void __RPC_STUB IServerSecurity_ImpersonateClient_Stub(
   4454     IRpcStubBuffer* This,
   4455     IRpcChannelBuffer* pRpcChannelBuffer,
   4456     PRPC_MESSAGE pRpcMessage,
   4457     DWORD* pdwStubPhase);
   4458 HRESULT STDMETHODCALLTYPE IServerSecurity_RevertToSelf_Proxy(
   4459     IServerSecurity* This);
   4460 void __RPC_STUB IServerSecurity_RevertToSelf_Stub(
   4461     IRpcStubBuffer* This,
   4462     IRpcChannelBuffer* pRpcChannelBuffer,
   4463     PRPC_MESSAGE pRpcMessage,
   4464     DWORD* pdwStubPhase);
   4465 WINBOOL STDMETHODCALLTYPE IServerSecurity_IsImpersonating_Proxy(
   4466     IServerSecurity* This);
   4467 void __RPC_STUB IServerSecurity_IsImpersonating_Stub(
   4468     IRpcStubBuffer* This,
   4469     IRpcChannelBuffer* pRpcChannelBuffer,
   4470     PRPC_MESSAGE pRpcMessage,
   4471     DWORD* pdwStubPhase);
   4472 
   4473 #endif  /* __IServerSecurity_INTERFACE_DEFINED__ */
   4474 
   4475 
   4476 typedef enum tagRPCOPT_PROPERTIES {
   4477     COMBND_RPCTIMEOUT = 0x1,
   4478     COMBND_SERVER_LOCALITY = 0x2,
   4479     COMBND_RESERVED1 = 0x4
   4480 } RPCOPT_PROPERTIES;
   4481 
   4482 typedef enum tagRPCOPT_SERVER_LOCALITY_VALUES {
   4483     SERVER_LOCALITY_PROCESS_LOCAL = 0,
   4484     SERVER_LOCALITY_MACHINE_LOCAL = 1,
   4485     SERVER_LOCALITY_REMOTE = 2
   4486 } RPCOPT_SERVER_LOCALITY_VALUES;
   4487 
   4488 /*****************************************************************************
   4489  * IRpcOptions interface
   4490  */
   4491 #ifndef __IRpcOptions_INTERFACE_DEFINED__
   4492 #define __IRpcOptions_INTERFACE_DEFINED__
   4493 
   4494 DEFINE_GUID(IID_IRpcOptions, 0x00000144, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4495 #if defined(__cplusplus) && !defined(CINTERFACE)
   4496 MIDL_INTERFACE("00000144-0000-0000-c000-000000000046")
   4497 IRpcOptions : public IUnknown
   4498 {
   4499     virtual HRESULT STDMETHODCALLTYPE Set(
   4500         IUnknown *pPrx,
   4501         RPCOPT_PROPERTIES dwProperty,
   4502         ULONG_PTR dwValue) = 0;
   4503 
   4504     virtual HRESULT STDMETHODCALLTYPE Query(
   4505         IUnknown *pPrx,
   4506         RPCOPT_PROPERTIES dwProperty,
   4507         ULONG_PTR *pdwValue) = 0;
   4508 
   4509 };
   4510 #ifdef __CRT_UUID_DECL
   4511 __CRT_UUID_DECL(IRpcOptions, 0x00000144, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4512 #endif
   4513 #else
   4514 typedef struct IRpcOptionsVtbl {
   4515     BEGIN_INTERFACE
   4516 
   4517     /*** IUnknown methods ***/
   4518     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4519         IRpcOptions* This,
   4520         REFIID riid,
   4521         void **ppvObject);
   4522 
   4523     ULONG (STDMETHODCALLTYPE *AddRef)(
   4524         IRpcOptions* This);
   4525 
   4526     ULONG (STDMETHODCALLTYPE *Release)(
   4527         IRpcOptions* This);
   4528 
   4529     /*** IRpcOptions methods ***/
   4530     HRESULT (STDMETHODCALLTYPE *Set)(
   4531         IRpcOptions* This,
   4532         IUnknown *pPrx,
   4533         RPCOPT_PROPERTIES dwProperty,
   4534         ULONG_PTR dwValue);
   4535 
   4536     HRESULT (STDMETHODCALLTYPE *Query)(
   4537         IRpcOptions* This,
   4538         IUnknown *pPrx,
   4539         RPCOPT_PROPERTIES dwProperty,
   4540         ULONG_PTR *pdwValue);
   4541 
   4542     END_INTERFACE
   4543 } IRpcOptionsVtbl;
   4544 interface IRpcOptions {
   4545     CONST_VTBL IRpcOptionsVtbl* lpVtbl;
   4546 };
   4547 
   4548 #ifdef COBJMACROS
   4549 #ifndef WIDL_C_INLINE_WRAPPERS
   4550 /*** IUnknown methods ***/
   4551 #define IRpcOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4552 #define IRpcOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
   4553 #define IRpcOptions_Release(This) (This)->lpVtbl->Release(This)
   4554 /*** IRpcOptions methods ***/
   4555 #define IRpcOptions_Set(This,pPrx,dwProperty,dwValue) (This)->lpVtbl->Set(This,pPrx,dwProperty,dwValue)
   4556 #define IRpcOptions_Query(This,pPrx,dwProperty,pdwValue) (This)->lpVtbl->Query(This,pPrx,dwProperty,pdwValue)
   4557 #else
   4558 /*** IUnknown methods ***/
   4559 static FORCEINLINE HRESULT IRpcOptions_QueryInterface(IRpcOptions* This,REFIID riid,void **ppvObject) {
   4560     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4561 }
   4562 static FORCEINLINE ULONG IRpcOptions_AddRef(IRpcOptions* This) {
   4563     return This->lpVtbl->AddRef(This);
   4564 }
   4565 static FORCEINLINE ULONG IRpcOptions_Release(IRpcOptions* This) {
   4566     return This->lpVtbl->Release(This);
   4567 }
   4568 /*** IRpcOptions methods ***/
   4569 static FORCEINLINE HRESULT IRpcOptions_Set(IRpcOptions* This,IUnknown *pPrx,RPCOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
   4570     return This->lpVtbl->Set(This,pPrx,dwProperty,dwValue);
   4571 }
   4572 static FORCEINLINE HRESULT IRpcOptions_Query(IRpcOptions* This,IUnknown *pPrx,RPCOPT_PROPERTIES dwProperty,ULONG_PTR *pdwValue) {
   4573     return This->lpVtbl->Query(This,pPrx,dwProperty,pdwValue);
   4574 }
   4575 #endif
   4576 #endif
   4577 
   4578 #endif
   4579 
   4580 HRESULT STDMETHODCALLTYPE IRpcOptions_Set_Proxy(
   4581     IRpcOptions* This,
   4582     IUnknown *pPrx,
   4583     RPCOPT_PROPERTIES dwProperty,
   4584     ULONG_PTR dwValue);
   4585 void __RPC_STUB IRpcOptions_Set_Stub(
   4586     IRpcStubBuffer* This,
   4587     IRpcChannelBuffer* pRpcChannelBuffer,
   4588     PRPC_MESSAGE pRpcMessage,
   4589     DWORD* pdwStubPhase);
   4590 HRESULT STDMETHODCALLTYPE IRpcOptions_Query_Proxy(
   4591     IRpcOptions* This,
   4592     IUnknown *pPrx,
   4593     RPCOPT_PROPERTIES dwProperty,
   4594     ULONG_PTR *pdwValue);
   4595 void __RPC_STUB IRpcOptions_Query_Stub(
   4596     IRpcStubBuffer* This,
   4597     IRpcChannelBuffer* pRpcChannelBuffer,
   4598     PRPC_MESSAGE pRpcMessage,
   4599     DWORD* pdwStubPhase);
   4600 
   4601 #endif  /* __IRpcOptions_INTERFACE_DEFINED__ */
   4602 
   4603 #endif
   4604 
   4605 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   4606 typedef enum tagGLOBALOPT_PROPERTIES {
   4607     COMGLB_EXCEPTION_HANDLING = 1,
   4608     COMGLB_APPID = 2,
   4609     COMGLB_RPC_THREADPOOL_SETTING = 3,
   4610     COMGLB_RO_SETTINGS = 4,
   4611     COMGLB_UNMARSHALING_POLICY = 5
   4612 } GLOBALOPT_PROPERTIES;
   4613 
   4614 typedef enum tagGLOBALOPT_EH_VALUES {
   4615     COMGLB_EXCEPTION_HANDLE = 0,
   4616     COMGLB_EXCEPTION_DONOT_HANDLE_FATAL = 1,
   4617     COMGLB_EXCEPTION_DONOT_HANDLE = COMGLB_EXCEPTION_DONOT_HANDLE_FATAL,
   4618     COMGLB_EXCEPTION_DONOT_HANDLE_ANY = 2
   4619 } GLOBALOPT_EH_VALUES;
   4620 
   4621 typedef enum tagGLOBALOPT_RPCTP_VALUES {
   4622     COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL = 0,
   4623     COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL = 1
   4624 } GLOBALOPT_RPCTP_VALUES;
   4625 
   4626 typedef enum tagGLOBALOPT_RO_FLAGS {
   4627     COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES = 0x1,
   4628     COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES = 0x2,
   4629     COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES = 0x4,
   4630     COMGLB_FAST_RUNDOWN = 0x8,
   4631     COMGLB_RESERVED1 = 0x10,
   4632     COMGLB_RESERVED2 = 0x20,
   4633     COMGLB_RESERVED3 = 0x40,
   4634     COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES = 0x80
   4635 } GLOBALOPT_RO_FLAGS;
   4636 
   4637 typedef enum tagGLOBALOPT_UNMARSHALING_POLICY_VALUES {
   4638     COMGLB_UNMARSHALING_POLICY_NORMAL = 0,
   4639     COMGLB_UNMARSHALING_POLICY_STRONG = 1,
   4640     COMGLB_UNMARSHALING_POLICY_HYBRID = 2
   4641 } GLOBALOPT_UNMARSHALING_POLICY_VALUES;
   4642 
   4643 /*****************************************************************************
   4644  * IGlobalOptions interface
   4645  */
   4646 #ifndef __IGlobalOptions_INTERFACE_DEFINED__
   4647 #define __IGlobalOptions_INTERFACE_DEFINED__
   4648 
   4649 DEFINE_GUID(IID_IGlobalOptions, 0x0000015b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4650 #if defined(__cplusplus) && !defined(CINTERFACE)
   4651 MIDL_INTERFACE("0000015b-0000-0000-c000-000000000046")
   4652 IGlobalOptions : public IUnknown
   4653 {
   4654     virtual HRESULT STDMETHODCALLTYPE Set(
   4655         GLOBALOPT_PROPERTIES dwProperty,
   4656         ULONG_PTR dwValue) = 0;
   4657 
   4658     virtual HRESULT STDMETHODCALLTYPE Query(
   4659         GLOBALOPT_PROPERTIES dwProperty,
   4660         ULONG_PTR *pdwValue) = 0;
   4661 
   4662 };
   4663 #ifdef __CRT_UUID_DECL
   4664 __CRT_UUID_DECL(IGlobalOptions, 0x0000015b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4665 #endif
   4666 #else
   4667 typedef struct IGlobalOptionsVtbl {
   4668     BEGIN_INTERFACE
   4669 
   4670     /*** IUnknown methods ***/
   4671     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4672         IGlobalOptions* This,
   4673         REFIID riid,
   4674         void **ppvObject);
   4675 
   4676     ULONG (STDMETHODCALLTYPE *AddRef)(
   4677         IGlobalOptions* This);
   4678 
   4679     ULONG (STDMETHODCALLTYPE *Release)(
   4680         IGlobalOptions* This);
   4681 
   4682     /*** IGlobalOptions methods ***/
   4683     HRESULT (STDMETHODCALLTYPE *Set)(
   4684         IGlobalOptions* This,
   4685         GLOBALOPT_PROPERTIES dwProperty,
   4686         ULONG_PTR dwValue);
   4687 
   4688     HRESULT (STDMETHODCALLTYPE *Query)(
   4689         IGlobalOptions* This,
   4690         GLOBALOPT_PROPERTIES dwProperty,
   4691         ULONG_PTR *pdwValue);
   4692 
   4693     END_INTERFACE
   4694 } IGlobalOptionsVtbl;
   4695 interface IGlobalOptions {
   4696     CONST_VTBL IGlobalOptionsVtbl* lpVtbl;
   4697 };
   4698 
   4699 #ifdef COBJMACROS
   4700 #ifndef WIDL_C_INLINE_WRAPPERS
   4701 /*** IUnknown methods ***/
   4702 #define IGlobalOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4703 #define IGlobalOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
   4704 #define IGlobalOptions_Release(This) (This)->lpVtbl->Release(This)
   4705 /*** IGlobalOptions methods ***/
   4706 #define IGlobalOptions_Set(This,dwProperty,dwValue) (This)->lpVtbl->Set(This,dwProperty,dwValue)
   4707 #define IGlobalOptions_Query(This,dwProperty,pdwValue) (This)->lpVtbl->Query(This,dwProperty,pdwValue)
   4708 #else
   4709 /*** IUnknown methods ***/
   4710 static FORCEINLINE HRESULT IGlobalOptions_QueryInterface(IGlobalOptions* This,REFIID riid,void **ppvObject) {
   4711     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4712 }
   4713 static FORCEINLINE ULONG IGlobalOptions_AddRef(IGlobalOptions* This) {
   4714     return This->lpVtbl->AddRef(This);
   4715 }
   4716 static FORCEINLINE ULONG IGlobalOptions_Release(IGlobalOptions* This) {
   4717     return This->lpVtbl->Release(This);
   4718 }
   4719 /*** IGlobalOptions methods ***/
   4720 static FORCEINLINE HRESULT IGlobalOptions_Set(IGlobalOptions* This,GLOBALOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
   4721     return This->lpVtbl->Set(This,dwProperty,dwValue);
   4722 }
   4723 static FORCEINLINE HRESULT IGlobalOptions_Query(IGlobalOptions* This,GLOBALOPT_PROPERTIES dwProperty,ULONG_PTR *pdwValue) {
   4724     return This->lpVtbl->Query(This,dwProperty,pdwValue);
   4725 }
   4726 #endif
   4727 #endif
   4728 
   4729 #endif
   4730 
   4731 HRESULT STDMETHODCALLTYPE IGlobalOptions_Set_Proxy(
   4732     IGlobalOptions* This,
   4733     GLOBALOPT_PROPERTIES dwProperty,
   4734     ULONG_PTR dwValue);
   4735 void __RPC_STUB IGlobalOptions_Set_Stub(
   4736     IRpcStubBuffer* This,
   4737     IRpcChannelBuffer* pRpcChannelBuffer,
   4738     PRPC_MESSAGE pRpcMessage,
   4739     DWORD* pdwStubPhase);
   4740 HRESULT STDMETHODCALLTYPE IGlobalOptions_Query_Proxy(
   4741     IGlobalOptions* This,
   4742     GLOBALOPT_PROPERTIES dwProperty,
   4743     ULONG_PTR *pdwValue);
   4744 void __RPC_STUB IGlobalOptions_Query_Stub(
   4745     IRpcStubBuffer* This,
   4746     IRpcChannelBuffer* pRpcChannelBuffer,
   4747     PRPC_MESSAGE pRpcMessage,
   4748     DWORD* pdwStubPhase);
   4749 
   4750 #endif  /* __IGlobalOptions_INTERFACE_DEFINED__ */
   4751 
   4752 #endif
   4753 #endif
   4754 
   4755 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   4756 /*****************************************************************************
   4757  * ISurrogate interface
   4758  */
   4759 #ifndef __ISurrogate_INTERFACE_DEFINED__
   4760 #define __ISurrogate_INTERFACE_DEFINED__
   4761 
   4762 typedef ISurrogate *LPSURROGATE;
   4763 
   4764 DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4765 #if defined(__cplusplus) && !defined(CINTERFACE)
   4766 MIDL_INTERFACE("00000022-0000-0000-c000-000000000046")
   4767 ISurrogate : public IUnknown
   4768 {
   4769     virtual HRESULT STDMETHODCALLTYPE LoadDllServer(
   4770         REFCLSID Clsid) = 0;
   4771 
   4772     virtual HRESULT STDMETHODCALLTYPE FreeSurrogate(
   4773         ) = 0;
   4774 
   4775 };
   4776 #ifdef __CRT_UUID_DECL
   4777 __CRT_UUID_DECL(ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4778 #endif
   4779 #else
   4780 typedef struct ISurrogateVtbl {
   4781     BEGIN_INTERFACE
   4782 
   4783     /*** IUnknown methods ***/
   4784     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4785         ISurrogate* This,
   4786         REFIID riid,
   4787         void **ppvObject);
   4788 
   4789     ULONG (STDMETHODCALLTYPE *AddRef)(
   4790         ISurrogate* This);
   4791 
   4792     ULONG (STDMETHODCALLTYPE *Release)(
   4793         ISurrogate* This);
   4794 
   4795     /*** ISurrogate methods ***/
   4796     HRESULT (STDMETHODCALLTYPE *LoadDllServer)(
   4797         ISurrogate* This,
   4798         REFCLSID Clsid);
   4799 
   4800     HRESULT (STDMETHODCALLTYPE *FreeSurrogate)(
   4801         ISurrogate* This);
   4802 
   4803     END_INTERFACE
   4804 } ISurrogateVtbl;
   4805 interface ISurrogate {
   4806     CONST_VTBL ISurrogateVtbl* lpVtbl;
   4807 };
   4808 
   4809 #ifdef COBJMACROS
   4810 #ifndef WIDL_C_INLINE_WRAPPERS
   4811 /*** IUnknown methods ***/
   4812 #define ISurrogate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4813 #define ISurrogate_AddRef(This) (This)->lpVtbl->AddRef(This)
   4814 #define ISurrogate_Release(This) (This)->lpVtbl->Release(This)
   4815 /*** ISurrogate methods ***/
   4816 #define ISurrogate_LoadDllServer(This,Clsid) (This)->lpVtbl->LoadDllServer(This,Clsid)
   4817 #define ISurrogate_FreeSurrogate(This) (This)->lpVtbl->FreeSurrogate(This)
   4818 #else
   4819 /*** IUnknown methods ***/
   4820 static FORCEINLINE HRESULT ISurrogate_QueryInterface(ISurrogate* This,REFIID riid,void **ppvObject) {
   4821     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4822 }
   4823 static FORCEINLINE ULONG ISurrogate_AddRef(ISurrogate* This) {
   4824     return This->lpVtbl->AddRef(This);
   4825 }
   4826 static FORCEINLINE ULONG ISurrogate_Release(ISurrogate* This) {
   4827     return This->lpVtbl->Release(This);
   4828 }
   4829 /*** ISurrogate methods ***/
   4830 static FORCEINLINE HRESULT ISurrogate_LoadDllServer(ISurrogate* This,REFCLSID Clsid) {
   4831     return This->lpVtbl->LoadDllServer(This,Clsid);
   4832 }
   4833 static FORCEINLINE HRESULT ISurrogate_FreeSurrogate(ISurrogate* This) {
   4834     return This->lpVtbl->FreeSurrogate(This);
   4835 }
   4836 #endif
   4837 #endif
   4838 
   4839 #endif
   4840 
   4841 HRESULT STDMETHODCALLTYPE ISurrogate_LoadDllServer_Proxy(
   4842     ISurrogate* This,
   4843     REFCLSID Clsid);
   4844 void __RPC_STUB ISurrogate_LoadDllServer_Stub(
   4845     IRpcStubBuffer* This,
   4846     IRpcChannelBuffer* pRpcChannelBuffer,
   4847     PRPC_MESSAGE pRpcMessage,
   4848     DWORD* pdwStubPhase);
   4849 HRESULT STDMETHODCALLTYPE ISurrogate_FreeSurrogate_Proxy(
   4850     ISurrogate* This);
   4851 void __RPC_STUB ISurrogate_FreeSurrogate_Stub(
   4852     IRpcStubBuffer* This,
   4853     IRpcChannelBuffer* pRpcChannelBuffer,
   4854     PRPC_MESSAGE pRpcMessage,
   4855     DWORD* pdwStubPhase);
   4856 
   4857 #endif  /* __ISurrogate_INTERFACE_DEFINED__ */
   4858 
   4859 
   4860 /*****************************************************************************
   4861  * IGlobalInterfaceTable interface
   4862  */
   4863 #ifndef __IGlobalInterfaceTable_INTERFACE_DEFINED__
   4864 #define __IGlobalInterfaceTable_INTERFACE_DEFINED__
   4865 
   4866 typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
   4867 
   4868 DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4869 #if defined(__cplusplus) && !defined(CINTERFACE)
   4870 MIDL_INTERFACE("00000146-0000-0000-c000-000000000046")
   4871 IGlobalInterfaceTable : public IUnknown
   4872 {
   4873     virtual HRESULT STDMETHODCALLTYPE RegisterInterfaceInGlobal(
   4874         IUnknown *pUnk,
   4875         REFIID riid,
   4876         DWORD *pdwCookie) = 0;
   4877 
   4878     virtual HRESULT STDMETHODCALLTYPE RevokeInterfaceFromGlobal(
   4879         DWORD dwCookie) = 0;
   4880 
   4881     virtual HRESULT STDMETHODCALLTYPE GetInterfaceFromGlobal(
   4882         DWORD dwCookie,
   4883         REFIID riid,
   4884         void **ppv) = 0;
   4885 
   4886 };
   4887 #ifdef __CRT_UUID_DECL
   4888 __CRT_UUID_DECL(IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4889 #endif
   4890 #else
   4891 typedef struct IGlobalInterfaceTableVtbl {
   4892     BEGIN_INTERFACE
   4893 
   4894     /*** IUnknown methods ***/
   4895     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4896         IGlobalInterfaceTable* This,
   4897         REFIID riid,
   4898         void **ppvObject);
   4899 
   4900     ULONG (STDMETHODCALLTYPE *AddRef)(
   4901         IGlobalInterfaceTable* This);
   4902 
   4903     ULONG (STDMETHODCALLTYPE *Release)(
   4904         IGlobalInterfaceTable* This);
   4905 
   4906     /*** IGlobalInterfaceTable methods ***/
   4907     HRESULT (STDMETHODCALLTYPE *RegisterInterfaceInGlobal)(
   4908         IGlobalInterfaceTable* This,
   4909         IUnknown *pUnk,
   4910         REFIID riid,
   4911         DWORD *pdwCookie);
   4912 
   4913     HRESULT (STDMETHODCALLTYPE *RevokeInterfaceFromGlobal)(
   4914         IGlobalInterfaceTable* This,
   4915         DWORD dwCookie);
   4916 
   4917     HRESULT (STDMETHODCALLTYPE *GetInterfaceFromGlobal)(
   4918         IGlobalInterfaceTable* This,
   4919         DWORD dwCookie,
   4920         REFIID riid,
   4921         void **ppv);
   4922 
   4923     END_INTERFACE
   4924 } IGlobalInterfaceTableVtbl;
   4925 interface IGlobalInterfaceTable {
   4926     CONST_VTBL IGlobalInterfaceTableVtbl* lpVtbl;
   4927 };
   4928 
   4929 #ifdef COBJMACROS
   4930 #ifndef WIDL_C_INLINE_WRAPPERS
   4931 /*** IUnknown methods ***/
   4932 #define IGlobalInterfaceTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4933 #define IGlobalInterfaceTable_AddRef(This) (This)->lpVtbl->AddRef(This)
   4934 #define IGlobalInterfaceTable_Release(This) (This)->lpVtbl->Release(This)
   4935 /*** IGlobalInterfaceTable methods ***/
   4936 #define IGlobalInterfaceTable_RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie) (This)->lpVtbl->RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie)
   4937 #define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(This,dwCookie) (This)->lpVtbl->RevokeInterfaceFromGlobal(This,dwCookie)
   4938 #define IGlobalInterfaceTable_GetInterfaceFromGlobal(This,dwCookie,riid,ppv) (This)->lpVtbl->GetInterfaceFromGlobal(This,dwCookie,riid,ppv)
   4939 #else
   4940 /*** IUnknown methods ***/
   4941 static FORCEINLINE HRESULT IGlobalInterfaceTable_QueryInterface(IGlobalInterfaceTable* This,REFIID riid,void **ppvObject) {
   4942     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4943 }
   4944 static FORCEINLINE ULONG IGlobalInterfaceTable_AddRef(IGlobalInterfaceTable* This) {
   4945     return This->lpVtbl->AddRef(This);
   4946 }
   4947 static FORCEINLINE ULONG IGlobalInterfaceTable_Release(IGlobalInterfaceTable* This) {
   4948     return This->lpVtbl->Release(This);
   4949 }
   4950 /*** IGlobalInterfaceTable methods ***/
   4951 static FORCEINLINE HRESULT IGlobalInterfaceTable_RegisterInterfaceInGlobal(IGlobalInterfaceTable* This,IUnknown *pUnk,REFIID riid,DWORD *pdwCookie) {
   4952     return This->lpVtbl->RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie);
   4953 }
   4954 static FORCEINLINE HRESULT IGlobalInterfaceTable_RevokeInterfaceFromGlobal(IGlobalInterfaceTable* This,DWORD dwCookie) {
   4955     return This->lpVtbl->RevokeInterfaceFromGlobal(This,dwCookie);
   4956 }
   4957 static FORCEINLINE HRESULT IGlobalInterfaceTable_GetInterfaceFromGlobal(IGlobalInterfaceTable* This,DWORD dwCookie,REFIID riid,void **ppv) {
   4958     return This->lpVtbl->GetInterfaceFromGlobal(This,dwCookie,riid,ppv);
   4959 }
   4960 #endif
   4961 #endif
   4962 
   4963 #endif
   4964 
   4965 HRESULT STDMETHODCALLTYPE IGlobalInterfaceTable_RegisterInterfaceInGlobal_Proxy(
   4966     IGlobalInterfaceTable* This,
   4967     IUnknown *pUnk,
   4968     REFIID riid,
   4969     DWORD *pdwCookie);
   4970 void __RPC_STUB IGlobalInterfaceTable_RegisterInterfaceInGlobal_Stub(
   4971     IRpcStubBuffer* This,
   4972     IRpcChannelBuffer* pRpcChannelBuffer,
   4973     PRPC_MESSAGE pRpcMessage,
   4974     DWORD* pdwStubPhase);
   4975 HRESULT STDMETHODCALLTYPE IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Proxy(
   4976     IGlobalInterfaceTable* This,
   4977     DWORD dwCookie);
   4978 void __RPC_STUB IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Stub(
   4979     IRpcStubBuffer* This,
   4980     IRpcChannelBuffer* pRpcChannelBuffer,
   4981     PRPC_MESSAGE pRpcMessage,
   4982     DWORD* pdwStubPhase);
   4983 HRESULT STDMETHODCALLTYPE IGlobalInterfaceTable_GetInterfaceFromGlobal_Proxy(
   4984     IGlobalInterfaceTable* This,
   4985     DWORD dwCookie,
   4986     REFIID riid,
   4987     void **ppv);
   4988 void __RPC_STUB IGlobalInterfaceTable_GetInterfaceFromGlobal_Stub(
   4989     IRpcStubBuffer* This,
   4990     IRpcChannelBuffer* pRpcChannelBuffer,
   4991     PRPC_MESSAGE pRpcMessage,
   4992     DWORD* pdwStubPhase);
   4993 
   4994 #endif  /* __IGlobalInterfaceTable_INTERFACE_DEFINED__ */
   4995 
   4996 #endif
   4997 
   4998 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   4999 /*****************************************************************************
   5000  * ISynchronize interface
   5001  */
   5002 #ifndef __ISynchronize_INTERFACE_DEFINED__
   5003 #define __ISynchronize_INTERFACE_DEFINED__
   5004 
   5005 DEFINE_GUID(IID_ISynchronize, 0x00000030, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5006 #if defined(__cplusplus) && !defined(CINTERFACE)
   5007 MIDL_INTERFACE("00000030-0000-0000-c000-000000000046")
   5008 ISynchronize : public IUnknown
   5009 {
   5010     virtual HRESULT STDMETHODCALLTYPE Wait(
   5011         DWORD dwFlags,
   5012         DWORD dwMilliseconds) = 0;
   5013 
   5014     virtual HRESULT STDMETHODCALLTYPE Signal(
   5015         ) = 0;
   5016 
   5017     virtual HRESULT STDMETHODCALLTYPE Reset(
   5018         ) = 0;
   5019 
   5020 };
   5021 #ifdef __CRT_UUID_DECL
   5022 __CRT_UUID_DECL(ISynchronize, 0x00000030, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5023 #endif
   5024 #else
   5025 typedef struct ISynchronizeVtbl {
   5026     BEGIN_INTERFACE
   5027 
   5028     /*** IUnknown methods ***/
   5029     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5030         ISynchronize* This,
   5031         REFIID riid,
   5032         void **ppvObject);
   5033 
   5034     ULONG (STDMETHODCALLTYPE *AddRef)(
   5035         ISynchronize* This);
   5036 
   5037     ULONG (STDMETHODCALLTYPE *Release)(
   5038         ISynchronize* This);
   5039 
   5040     /*** ISynchronize methods ***/
   5041     HRESULT (STDMETHODCALLTYPE *Wait)(
   5042         ISynchronize* This,
   5043         DWORD dwFlags,
   5044         DWORD dwMilliseconds);
   5045 
   5046     HRESULT (STDMETHODCALLTYPE *Signal)(
   5047         ISynchronize* This);
   5048 
   5049     HRESULT (STDMETHODCALLTYPE *Reset)(
   5050         ISynchronize* This);
   5051 
   5052     END_INTERFACE
   5053 } ISynchronizeVtbl;
   5054 interface ISynchronize {
   5055     CONST_VTBL ISynchronizeVtbl* lpVtbl;
   5056 };
   5057 
   5058 #ifdef COBJMACROS
   5059 #ifndef WIDL_C_INLINE_WRAPPERS
   5060 /*** IUnknown methods ***/
   5061 #define ISynchronize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5062 #define ISynchronize_AddRef(This) (This)->lpVtbl->AddRef(This)
   5063 #define ISynchronize_Release(This) (This)->lpVtbl->Release(This)
   5064 /*** ISynchronize methods ***/
   5065 #define ISynchronize_Wait(This,dwFlags,dwMilliseconds) (This)->lpVtbl->Wait(This,dwFlags,dwMilliseconds)
   5066 #define ISynchronize_Signal(This) (This)->lpVtbl->Signal(This)
   5067 #define ISynchronize_Reset(This) (This)->lpVtbl->Reset(This)
   5068 #else
   5069 /*** IUnknown methods ***/
   5070 static FORCEINLINE HRESULT ISynchronize_QueryInterface(ISynchronize* This,REFIID riid,void **ppvObject) {
   5071     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5072 }
   5073 static FORCEINLINE ULONG ISynchronize_AddRef(ISynchronize* This) {
   5074     return This->lpVtbl->AddRef(This);
   5075 }
   5076 static FORCEINLINE ULONG ISynchronize_Release(ISynchronize* This) {
   5077     return This->lpVtbl->Release(This);
   5078 }
   5079 /*** ISynchronize methods ***/
   5080 static FORCEINLINE HRESULT ISynchronize_Wait(ISynchronize* This,DWORD dwFlags,DWORD dwMilliseconds) {
   5081     return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
   5082 }
   5083 static FORCEINLINE HRESULT ISynchronize_Signal(ISynchronize* This) {
   5084     return This->lpVtbl->Signal(This);
   5085 }
   5086 static FORCEINLINE HRESULT ISynchronize_Reset(ISynchronize* This) {
   5087     return This->lpVtbl->Reset(This);
   5088 }
   5089 #endif
   5090 #endif
   5091 
   5092 #endif
   5093 
   5094 HRESULT STDMETHODCALLTYPE ISynchronize_Wait_Proxy(
   5095     ISynchronize* This,
   5096     DWORD dwFlags,
   5097     DWORD dwMilliseconds);
   5098 void __RPC_STUB ISynchronize_Wait_Stub(
   5099     IRpcStubBuffer* This,
   5100     IRpcChannelBuffer* pRpcChannelBuffer,
   5101     PRPC_MESSAGE pRpcMessage,
   5102     DWORD* pdwStubPhase);
   5103 HRESULT STDMETHODCALLTYPE ISynchronize_Signal_Proxy(
   5104     ISynchronize* This);
   5105 void __RPC_STUB ISynchronize_Signal_Stub(
   5106     IRpcStubBuffer* This,
   5107     IRpcChannelBuffer* pRpcChannelBuffer,
   5108     PRPC_MESSAGE pRpcMessage,
   5109     DWORD* pdwStubPhase);
   5110 HRESULT STDMETHODCALLTYPE ISynchronize_Reset_Proxy(
   5111     ISynchronize* This);
   5112 void __RPC_STUB ISynchronize_Reset_Stub(
   5113     IRpcStubBuffer* This,
   5114     IRpcChannelBuffer* pRpcChannelBuffer,
   5115     PRPC_MESSAGE pRpcMessage,
   5116     DWORD* pdwStubPhase);
   5117 
   5118 #endif  /* __ISynchronize_INTERFACE_DEFINED__ */
   5119 
   5120 
   5121 /*****************************************************************************
   5122  * ISynchronizeHandle interface
   5123  */
   5124 #ifndef __ISynchronizeHandle_INTERFACE_DEFINED__
   5125 #define __ISynchronizeHandle_INTERFACE_DEFINED__
   5126 
   5127 DEFINE_GUID(IID_ISynchronizeHandle, 0x00000031, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5128 #if defined(__cplusplus) && !defined(CINTERFACE)
   5129 MIDL_INTERFACE("00000031-0000-0000-c000-000000000046")
   5130 ISynchronizeHandle : public IUnknown
   5131 {
   5132     virtual HRESULT STDMETHODCALLTYPE GetHandle(
   5133         HANDLE *ph) = 0;
   5134 
   5135 };
   5136 #ifdef __CRT_UUID_DECL
   5137 __CRT_UUID_DECL(ISynchronizeHandle, 0x00000031, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5138 #endif
   5139 #else
   5140 typedef struct ISynchronizeHandleVtbl {
   5141     BEGIN_INTERFACE
   5142 
   5143     /*** IUnknown methods ***/
   5144     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5145         ISynchronizeHandle* This,
   5146         REFIID riid,
   5147         void **ppvObject);
   5148 
   5149     ULONG (STDMETHODCALLTYPE *AddRef)(
   5150         ISynchronizeHandle* This);
   5151 
   5152     ULONG (STDMETHODCALLTYPE *Release)(
   5153         ISynchronizeHandle* This);
   5154 
   5155     /*** ISynchronizeHandle methods ***/
   5156     HRESULT (STDMETHODCALLTYPE *GetHandle)(
   5157         ISynchronizeHandle* This,
   5158         HANDLE *ph);
   5159 
   5160     END_INTERFACE
   5161 } ISynchronizeHandleVtbl;
   5162 interface ISynchronizeHandle {
   5163     CONST_VTBL ISynchronizeHandleVtbl* lpVtbl;
   5164 };
   5165 
   5166 #ifdef COBJMACROS
   5167 #ifndef WIDL_C_INLINE_WRAPPERS
   5168 /*** IUnknown methods ***/
   5169 #define ISynchronizeHandle_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5170 #define ISynchronizeHandle_AddRef(This) (This)->lpVtbl->AddRef(This)
   5171 #define ISynchronizeHandle_Release(This) (This)->lpVtbl->Release(This)
   5172 /*** ISynchronizeHandle methods ***/
   5173 #define ISynchronizeHandle_GetHandle(This,ph) (This)->lpVtbl->GetHandle(This,ph)
   5174 #else
   5175 /*** IUnknown methods ***/
   5176 static FORCEINLINE HRESULT ISynchronizeHandle_QueryInterface(ISynchronizeHandle* This,REFIID riid,void **ppvObject) {
   5177     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5178 }
   5179 static FORCEINLINE ULONG ISynchronizeHandle_AddRef(ISynchronizeHandle* This) {
   5180     return This->lpVtbl->AddRef(This);
   5181 }
   5182 static FORCEINLINE ULONG ISynchronizeHandle_Release(ISynchronizeHandle* This) {
   5183     return This->lpVtbl->Release(This);
   5184 }
   5185 /*** ISynchronizeHandle methods ***/
   5186 static FORCEINLINE HRESULT ISynchronizeHandle_GetHandle(ISynchronizeHandle* This,HANDLE *ph) {
   5187     return This->lpVtbl->GetHandle(This,ph);
   5188 }
   5189 #endif
   5190 #endif
   5191 
   5192 #endif
   5193 
   5194 HRESULT STDMETHODCALLTYPE ISynchronizeHandle_GetHandle_Proxy(
   5195     ISynchronizeHandle* This,
   5196     HANDLE *ph);
   5197 void __RPC_STUB ISynchronizeHandle_GetHandle_Stub(
   5198     IRpcStubBuffer* This,
   5199     IRpcChannelBuffer* pRpcChannelBuffer,
   5200     PRPC_MESSAGE pRpcMessage,
   5201     DWORD* pdwStubPhase);
   5202 
   5203 #endif  /* __ISynchronizeHandle_INTERFACE_DEFINED__ */
   5204 
   5205 
   5206 /*****************************************************************************
   5207  * ISynchronizeEvent interface
   5208  */
   5209 #ifndef __ISynchronizeEvent_INTERFACE_DEFINED__
   5210 #define __ISynchronizeEvent_INTERFACE_DEFINED__
   5211 
   5212 DEFINE_GUID(IID_ISynchronizeEvent, 0x00000032, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5213 #if defined(__cplusplus) && !defined(CINTERFACE)
   5214 MIDL_INTERFACE("00000032-0000-0000-c000-000000000046")
   5215 ISynchronizeEvent : public ISynchronizeHandle
   5216 {
   5217     virtual HRESULT STDMETHODCALLTYPE SetEventHandle(
   5218         HANDLE *ph) = 0;
   5219 
   5220 };
   5221 #ifdef __CRT_UUID_DECL
   5222 __CRT_UUID_DECL(ISynchronizeEvent, 0x00000032, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5223 #endif
   5224 #else
   5225 typedef struct ISynchronizeEventVtbl {
   5226     BEGIN_INTERFACE
   5227 
   5228     /*** IUnknown methods ***/
   5229     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5230         ISynchronizeEvent* This,
   5231         REFIID riid,
   5232         void **ppvObject);
   5233 
   5234     ULONG (STDMETHODCALLTYPE *AddRef)(
   5235         ISynchronizeEvent* This);
   5236 
   5237     ULONG (STDMETHODCALLTYPE *Release)(
   5238         ISynchronizeEvent* This);
   5239 
   5240     /*** ISynchronizeHandle methods ***/
   5241     HRESULT (STDMETHODCALLTYPE *GetHandle)(
   5242         ISynchronizeEvent* This,
   5243         HANDLE *ph);
   5244 
   5245     /*** ISynchronizeEvent methods ***/
   5246     HRESULT (STDMETHODCALLTYPE *SetEventHandle)(
   5247         ISynchronizeEvent* This,
   5248         HANDLE *ph);
   5249 
   5250     END_INTERFACE
   5251 } ISynchronizeEventVtbl;
   5252 interface ISynchronizeEvent {
   5253     CONST_VTBL ISynchronizeEventVtbl* lpVtbl;
   5254 };
   5255 
   5256 #ifdef COBJMACROS
   5257 #ifndef WIDL_C_INLINE_WRAPPERS
   5258 /*** IUnknown methods ***/
   5259 #define ISynchronizeEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5260 #define ISynchronizeEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
   5261 #define ISynchronizeEvent_Release(This) (This)->lpVtbl->Release(This)
   5262 /*** ISynchronizeHandle methods ***/
   5263 #define ISynchronizeEvent_GetHandle(This,ph) (This)->lpVtbl->GetHandle(This,ph)
   5264 /*** ISynchronizeEvent methods ***/
   5265 #define ISynchronizeEvent_SetEventHandle(This,ph) (This)->lpVtbl->SetEventHandle(This,ph)
   5266 #else
   5267 /*** IUnknown methods ***/
   5268 static FORCEINLINE HRESULT ISynchronizeEvent_QueryInterface(ISynchronizeEvent* This,REFIID riid,void **ppvObject) {
   5269     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5270 }
   5271 static FORCEINLINE ULONG ISynchronizeEvent_AddRef(ISynchronizeEvent* This) {
   5272     return This->lpVtbl->AddRef(This);
   5273 }
   5274 static FORCEINLINE ULONG ISynchronizeEvent_Release(ISynchronizeEvent* This) {
   5275     return This->lpVtbl->Release(This);
   5276 }
   5277 /*** ISynchronizeHandle methods ***/
   5278 static FORCEINLINE HRESULT ISynchronizeEvent_GetHandle(ISynchronizeEvent* This,HANDLE *ph) {
   5279     return This->lpVtbl->GetHandle(This,ph);
   5280 }
   5281 /*** ISynchronizeEvent methods ***/
   5282 static FORCEINLINE HRESULT ISynchronizeEvent_SetEventHandle(ISynchronizeEvent* This,HANDLE *ph) {
   5283     return This->lpVtbl->SetEventHandle(This,ph);
   5284 }
   5285 #endif
   5286 #endif
   5287 
   5288 #endif
   5289 
   5290 HRESULT STDMETHODCALLTYPE ISynchronizeEvent_SetEventHandle_Proxy(
   5291     ISynchronizeEvent* This,
   5292     HANDLE *ph);
   5293 void __RPC_STUB ISynchronizeEvent_SetEventHandle_Stub(
   5294     IRpcStubBuffer* This,
   5295     IRpcChannelBuffer* pRpcChannelBuffer,
   5296     PRPC_MESSAGE pRpcMessage,
   5297     DWORD* pdwStubPhase);
   5298 
   5299 #endif  /* __ISynchronizeEvent_INTERFACE_DEFINED__ */
   5300 
   5301 
   5302 /*****************************************************************************
   5303  * ISynchronizeContainer interface
   5304  */
   5305 #ifndef __ISynchronizeContainer_INTERFACE_DEFINED__
   5306 #define __ISynchronizeContainer_INTERFACE_DEFINED__
   5307 
   5308 DEFINE_GUID(IID_ISynchronizeContainer, 0x00000033, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5309 #if defined(__cplusplus) && !defined(CINTERFACE)
   5310 MIDL_INTERFACE("00000033-0000-0000-c000-000000000046")
   5311 ISynchronizeContainer : public IUnknown
   5312 {
   5313     virtual HRESULT STDMETHODCALLTYPE AddSynchronize(
   5314         ISynchronize *pSync) = 0;
   5315 
   5316     virtual HRESULT STDMETHODCALLTYPE WaitMultiple(
   5317         DWORD dwFlags,
   5318         DWORD dwTimeOut,
   5319         ISynchronize **ppSync) = 0;
   5320 
   5321 };
   5322 #ifdef __CRT_UUID_DECL
   5323 __CRT_UUID_DECL(ISynchronizeContainer, 0x00000033, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5324 #endif
   5325 #else
   5326 typedef struct ISynchronizeContainerVtbl {
   5327     BEGIN_INTERFACE
   5328 
   5329     /*** IUnknown methods ***/
   5330     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5331         ISynchronizeContainer* This,
   5332         REFIID riid,
   5333         void **ppvObject);
   5334 
   5335     ULONG (STDMETHODCALLTYPE *AddRef)(
   5336         ISynchronizeContainer* This);
   5337 
   5338     ULONG (STDMETHODCALLTYPE *Release)(
   5339         ISynchronizeContainer* This);
   5340 
   5341     /*** ISynchronizeContainer methods ***/
   5342     HRESULT (STDMETHODCALLTYPE *AddSynchronize)(
   5343         ISynchronizeContainer* This,
   5344         ISynchronize *pSync);
   5345 
   5346     HRESULT (STDMETHODCALLTYPE *WaitMultiple)(
   5347         ISynchronizeContainer* This,
   5348         DWORD dwFlags,
   5349         DWORD dwTimeOut,
   5350         ISynchronize **ppSync);
   5351 
   5352     END_INTERFACE
   5353 } ISynchronizeContainerVtbl;
   5354 interface ISynchronizeContainer {
   5355     CONST_VTBL ISynchronizeContainerVtbl* lpVtbl;
   5356 };
   5357 
   5358 #ifdef COBJMACROS
   5359 #ifndef WIDL_C_INLINE_WRAPPERS
   5360 /*** IUnknown methods ***/
   5361 #define ISynchronizeContainer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5362 #define ISynchronizeContainer_AddRef(This) (This)->lpVtbl->AddRef(This)
   5363 #define ISynchronizeContainer_Release(This) (This)->lpVtbl->Release(This)
   5364 /*** ISynchronizeContainer methods ***/
   5365 #define ISynchronizeContainer_AddSynchronize(This,pSync) (This)->lpVtbl->AddSynchronize(This,pSync)
   5366 #define ISynchronizeContainer_WaitMultiple(This,dwFlags,dwTimeOut,ppSync) (This)->lpVtbl->WaitMultiple(This,dwFlags,dwTimeOut,ppSync)
   5367 #else
   5368 /*** IUnknown methods ***/
   5369 static FORCEINLINE HRESULT ISynchronizeContainer_QueryInterface(ISynchronizeContainer* This,REFIID riid,void **ppvObject) {
   5370     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5371 }
   5372 static FORCEINLINE ULONG ISynchronizeContainer_AddRef(ISynchronizeContainer* This) {
   5373     return This->lpVtbl->AddRef(This);
   5374 }
   5375 static FORCEINLINE ULONG ISynchronizeContainer_Release(ISynchronizeContainer* This) {
   5376     return This->lpVtbl->Release(This);
   5377 }
   5378 /*** ISynchronizeContainer methods ***/
   5379 static FORCEINLINE HRESULT ISynchronizeContainer_AddSynchronize(ISynchronizeContainer* This,ISynchronize *pSync) {
   5380     return This->lpVtbl->AddSynchronize(This,pSync);
   5381 }
   5382 static FORCEINLINE HRESULT ISynchronizeContainer_WaitMultiple(ISynchronizeContainer* This,DWORD dwFlags,DWORD dwTimeOut,ISynchronize **ppSync) {
   5383     return This->lpVtbl->WaitMultiple(This,dwFlags,dwTimeOut,ppSync);
   5384 }
   5385 #endif
   5386 #endif
   5387 
   5388 #endif
   5389 
   5390 HRESULT STDMETHODCALLTYPE ISynchronizeContainer_AddSynchronize_Proxy(
   5391     ISynchronizeContainer* This,
   5392     ISynchronize *pSync);
   5393 void __RPC_STUB ISynchronizeContainer_AddSynchronize_Stub(
   5394     IRpcStubBuffer* This,
   5395     IRpcChannelBuffer* pRpcChannelBuffer,
   5396     PRPC_MESSAGE pRpcMessage,
   5397     DWORD* pdwStubPhase);
   5398 HRESULT STDMETHODCALLTYPE ISynchronizeContainer_WaitMultiple_Proxy(
   5399     ISynchronizeContainer* This,
   5400     DWORD dwFlags,
   5401     DWORD dwTimeOut,
   5402     ISynchronize **ppSync);
   5403 void __RPC_STUB ISynchronizeContainer_WaitMultiple_Stub(
   5404     IRpcStubBuffer* This,
   5405     IRpcChannelBuffer* pRpcChannelBuffer,
   5406     PRPC_MESSAGE pRpcMessage,
   5407     DWORD* pdwStubPhase);
   5408 
   5409 #endif  /* __ISynchronizeContainer_INTERFACE_DEFINED__ */
   5410 
   5411 
   5412 /*****************************************************************************
   5413  * ISynchronizeMutex interface
   5414  */
   5415 #ifndef __ISynchronizeMutex_INTERFACE_DEFINED__
   5416 #define __ISynchronizeMutex_INTERFACE_DEFINED__
   5417 
   5418 DEFINE_GUID(IID_ISynchronizeMutex, 0x00000025, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5419 #if defined(__cplusplus) && !defined(CINTERFACE)
   5420 MIDL_INTERFACE("00000025-0000-0000-c000-000000000046")
   5421 ISynchronizeMutex : public ISynchronize
   5422 {
   5423     virtual HRESULT STDMETHODCALLTYPE ReleaseMutex(
   5424         ) = 0;
   5425 
   5426 };
   5427 #ifdef __CRT_UUID_DECL
   5428 __CRT_UUID_DECL(ISynchronizeMutex, 0x00000025, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5429 #endif
   5430 #else
   5431 typedef struct ISynchronizeMutexVtbl {
   5432     BEGIN_INTERFACE
   5433 
   5434     /*** IUnknown methods ***/
   5435     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5436         ISynchronizeMutex* This,
   5437         REFIID riid,
   5438         void **ppvObject);
   5439 
   5440     ULONG (STDMETHODCALLTYPE *AddRef)(
   5441         ISynchronizeMutex* This);
   5442 
   5443     ULONG (STDMETHODCALLTYPE *Release)(
   5444         ISynchronizeMutex* This);
   5445 
   5446     /*** ISynchronize methods ***/
   5447     HRESULT (STDMETHODCALLTYPE *Wait)(
   5448         ISynchronizeMutex* This,
   5449         DWORD dwFlags,
   5450         DWORD dwMilliseconds);
   5451 
   5452     HRESULT (STDMETHODCALLTYPE *Signal)(
   5453         ISynchronizeMutex* This);
   5454 
   5455     HRESULT (STDMETHODCALLTYPE *Reset)(
   5456         ISynchronizeMutex* This);
   5457 
   5458     /*** ISynchronizeMutex methods ***/
   5459     HRESULT (STDMETHODCALLTYPE *ReleaseMutex)(
   5460         ISynchronizeMutex* This);
   5461 
   5462     END_INTERFACE
   5463 } ISynchronizeMutexVtbl;
   5464 interface ISynchronizeMutex {
   5465     CONST_VTBL ISynchronizeMutexVtbl* lpVtbl;
   5466 };
   5467 
   5468 #ifdef COBJMACROS
   5469 #ifndef WIDL_C_INLINE_WRAPPERS
   5470 /*** IUnknown methods ***/
   5471 #define ISynchronizeMutex_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5472 #define ISynchronizeMutex_AddRef(This) (This)->lpVtbl->AddRef(This)
   5473 #define ISynchronizeMutex_Release(This) (This)->lpVtbl->Release(This)
   5474 /*** ISynchronize methods ***/
   5475 #define ISynchronizeMutex_Wait(This,dwFlags,dwMilliseconds) (This)->lpVtbl->Wait(This,dwFlags,dwMilliseconds)
   5476 #define ISynchronizeMutex_Signal(This) (This)->lpVtbl->Signal(This)
   5477 #define ISynchronizeMutex_Reset(This) (This)->lpVtbl->Reset(This)
   5478 /*** ISynchronizeMutex methods ***/
   5479 #define ISynchronizeMutex_ReleaseMutex(This) (This)->lpVtbl->ReleaseMutex(This)
   5480 #else
   5481 /*** IUnknown methods ***/
   5482 static FORCEINLINE HRESULT ISynchronizeMutex_QueryInterface(ISynchronizeMutex* This,REFIID riid,void **ppvObject) {
   5483     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5484 }
   5485 static FORCEINLINE ULONG ISynchronizeMutex_AddRef(ISynchronizeMutex* This) {
   5486     return This->lpVtbl->AddRef(This);
   5487 }
   5488 static FORCEINLINE ULONG ISynchronizeMutex_Release(ISynchronizeMutex* This) {
   5489     return This->lpVtbl->Release(This);
   5490 }
   5491 /*** ISynchronize methods ***/
   5492 static FORCEINLINE HRESULT ISynchronizeMutex_Wait(ISynchronizeMutex* This,DWORD dwFlags,DWORD dwMilliseconds) {
   5493     return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
   5494 }
   5495 static FORCEINLINE HRESULT ISynchronizeMutex_Signal(ISynchronizeMutex* This) {
   5496     return This->lpVtbl->Signal(This);
   5497 }
   5498 static FORCEINLINE HRESULT ISynchronizeMutex_Reset(ISynchronizeMutex* This) {
   5499     return This->lpVtbl->Reset(This);
   5500 }
   5501 /*** ISynchronizeMutex methods ***/
   5502 static FORCEINLINE HRESULT ISynchronizeMutex_ReleaseMutex(ISynchronizeMutex* This) {
   5503     return This->lpVtbl->ReleaseMutex(This);
   5504 }
   5505 #endif
   5506 #endif
   5507 
   5508 #endif
   5509 
   5510 HRESULT STDMETHODCALLTYPE ISynchronizeMutex_ReleaseMutex_Proxy(
   5511     ISynchronizeMutex* This);
   5512 void __RPC_STUB ISynchronizeMutex_ReleaseMutex_Stub(
   5513     IRpcStubBuffer* This,
   5514     IRpcChannelBuffer* pRpcChannelBuffer,
   5515     PRPC_MESSAGE pRpcMessage,
   5516     DWORD* pdwStubPhase);
   5517 
   5518 #endif  /* __ISynchronizeMutex_INTERFACE_DEFINED__ */
   5519 
   5520 
   5521 /*****************************************************************************
   5522  * ICancelMethodCalls interface
   5523  */
   5524 #ifndef __ICancelMethodCalls_INTERFACE_DEFINED__
   5525 #define __ICancelMethodCalls_INTERFACE_DEFINED__
   5526 
   5527 typedef ICancelMethodCalls *LPCANCELMETHODCALLS;
   5528 
   5529 DEFINE_GUID(IID_ICancelMethodCalls, 0x00000029, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5530 #if defined(__cplusplus) && !defined(CINTERFACE)
   5531 MIDL_INTERFACE("00000029-0000-0000-c000-000000000046")
   5532 ICancelMethodCalls : public IUnknown
   5533 {
   5534     virtual HRESULT STDMETHODCALLTYPE Cancel(
   5535         ULONG ulSeconds) = 0;
   5536 
   5537     virtual HRESULT STDMETHODCALLTYPE TestCancel(
   5538         ) = 0;
   5539 
   5540 };
   5541 #ifdef __CRT_UUID_DECL
   5542 __CRT_UUID_DECL(ICancelMethodCalls, 0x00000029, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5543 #endif
   5544 #else
   5545 typedef struct ICancelMethodCallsVtbl {
   5546     BEGIN_INTERFACE
   5547 
   5548     /*** IUnknown methods ***/
   5549     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5550         ICancelMethodCalls* This,
   5551         REFIID riid,
   5552         void **ppvObject);
   5553 
   5554     ULONG (STDMETHODCALLTYPE *AddRef)(
   5555         ICancelMethodCalls* This);
   5556 
   5557     ULONG (STDMETHODCALLTYPE *Release)(
   5558         ICancelMethodCalls* This);
   5559 
   5560     /*** ICancelMethodCalls methods ***/
   5561     HRESULT (STDMETHODCALLTYPE *Cancel)(
   5562         ICancelMethodCalls* This,
   5563         ULONG ulSeconds);
   5564 
   5565     HRESULT (STDMETHODCALLTYPE *TestCancel)(
   5566         ICancelMethodCalls* This);
   5567 
   5568     END_INTERFACE
   5569 } ICancelMethodCallsVtbl;
   5570 interface ICancelMethodCalls {
   5571     CONST_VTBL ICancelMethodCallsVtbl* lpVtbl;
   5572 };
   5573 
   5574 #ifdef COBJMACROS
   5575 #ifndef WIDL_C_INLINE_WRAPPERS
   5576 /*** IUnknown methods ***/
   5577 #define ICancelMethodCalls_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5578 #define ICancelMethodCalls_AddRef(This) (This)->lpVtbl->AddRef(This)
   5579 #define ICancelMethodCalls_Release(This) (This)->lpVtbl->Release(This)
   5580 /*** ICancelMethodCalls methods ***/
   5581 #define ICancelMethodCalls_Cancel(This,ulSeconds) (This)->lpVtbl->Cancel(This,ulSeconds)
   5582 #define ICancelMethodCalls_TestCancel(This) (This)->lpVtbl->TestCancel(This)
   5583 #else
   5584 /*** IUnknown methods ***/
   5585 static FORCEINLINE HRESULT ICancelMethodCalls_QueryInterface(ICancelMethodCalls* This,REFIID riid,void **ppvObject) {
   5586     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5587 }
   5588 static FORCEINLINE ULONG ICancelMethodCalls_AddRef(ICancelMethodCalls* This) {
   5589     return This->lpVtbl->AddRef(This);
   5590 }
   5591 static FORCEINLINE ULONG ICancelMethodCalls_Release(ICancelMethodCalls* This) {
   5592     return This->lpVtbl->Release(This);
   5593 }
   5594 /*** ICancelMethodCalls methods ***/
   5595 static FORCEINLINE HRESULT ICancelMethodCalls_Cancel(ICancelMethodCalls* This,ULONG ulSeconds) {
   5596     return This->lpVtbl->Cancel(This,ulSeconds);
   5597 }
   5598 static FORCEINLINE HRESULT ICancelMethodCalls_TestCancel(ICancelMethodCalls* This) {
   5599     return This->lpVtbl->TestCancel(This);
   5600 }
   5601 #endif
   5602 #endif
   5603 
   5604 #endif
   5605 
   5606 HRESULT STDMETHODCALLTYPE ICancelMethodCalls_Cancel_Proxy(
   5607     ICancelMethodCalls* This,
   5608     ULONG ulSeconds);
   5609 void __RPC_STUB ICancelMethodCalls_Cancel_Stub(
   5610     IRpcStubBuffer* This,
   5611     IRpcChannelBuffer* pRpcChannelBuffer,
   5612     PRPC_MESSAGE pRpcMessage,
   5613     DWORD* pdwStubPhase);
   5614 HRESULT STDMETHODCALLTYPE ICancelMethodCalls_TestCancel_Proxy(
   5615     ICancelMethodCalls* This);
   5616 void __RPC_STUB ICancelMethodCalls_TestCancel_Stub(
   5617     IRpcStubBuffer* This,
   5618     IRpcChannelBuffer* pRpcChannelBuffer,
   5619     PRPC_MESSAGE pRpcMessage,
   5620     DWORD* pdwStubPhase);
   5621 
   5622 #endif  /* __ICancelMethodCalls_INTERFACE_DEFINED__ */
   5623 
   5624 
   5625 /*****************************************************************************
   5626  * IAsyncManager interface
   5627  */
   5628 #ifndef __IAsyncManager_INTERFACE_DEFINED__
   5629 #define __IAsyncManager_INTERFACE_DEFINED__
   5630 
   5631 typedef enum tagDCOM_CALL_STATE {
   5632     DCOM_NONE = 0x0,
   5633     DCOM_CALL_COMPLETE = 0x1,
   5634     DCOM_CALL_CANCELED = 0x2
   5635 } DCOM_CALL_STATE;
   5636 
   5637 DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5638 #if defined(__cplusplus) && !defined(CINTERFACE)
   5639 MIDL_INTERFACE("0000002a-0000-0000-c000-000000000046")
   5640 IAsyncManager : public IUnknown
   5641 {
   5642     virtual HRESULT STDMETHODCALLTYPE CompleteCall(
   5643         HRESULT Result) = 0;
   5644 
   5645     virtual HRESULT STDMETHODCALLTYPE GetCallContext(
   5646         REFIID riid,
   5647         void **pInterface) = 0;
   5648 
   5649     virtual HRESULT STDMETHODCALLTYPE GetState(
   5650         ULONG *pulStateFlags) = 0;
   5651 
   5652 };
   5653 #ifdef __CRT_UUID_DECL
   5654 __CRT_UUID_DECL(IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5655 #endif
   5656 #else
   5657 typedef struct IAsyncManagerVtbl {
   5658     BEGIN_INTERFACE
   5659 
   5660     /*** IUnknown methods ***/
   5661     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5662         IAsyncManager* This,
   5663         REFIID riid,
   5664         void **ppvObject);
   5665 
   5666     ULONG (STDMETHODCALLTYPE *AddRef)(
   5667         IAsyncManager* This);
   5668 
   5669     ULONG (STDMETHODCALLTYPE *Release)(
   5670         IAsyncManager* This);
   5671 
   5672     /*** IAsyncManager methods ***/
   5673     HRESULT (STDMETHODCALLTYPE *CompleteCall)(
   5674         IAsyncManager* This,
   5675         HRESULT Result);
   5676 
   5677     HRESULT (STDMETHODCALLTYPE *GetCallContext)(
   5678         IAsyncManager* This,
   5679         REFIID riid,
   5680         void **pInterface);
   5681 
   5682     HRESULT (STDMETHODCALLTYPE *GetState)(
   5683         IAsyncManager* This,
   5684         ULONG *pulStateFlags);
   5685 
   5686     END_INTERFACE
   5687 } IAsyncManagerVtbl;
   5688 interface IAsyncManager {
   5689     CONST_VTBL IAsyncManagerVtbl* lpVtbl;
   5690 };
   5691 
   5692 #ifdef COBJMACROS
   5693 #ifndef WIDL_C_INLINE_WRAPPERS
   5694 /*** IUnknown methods ***/
   5695 #define IAsyncManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5696 #define IAsyncManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   5697 #define IAsyncManager_Release(This) (This)->lpVtbl->Release(This)
   5698 /*** IAsyncManager methods ***/
   5699 #define IAsyncManager_CompleteCall(This,Result) (This)->lpVtbl->CompleteCall(This,Result)
   5700 #define IAsyncManager_GetCallContext(This,riid,pInterface) (This)->lpVtbl->GetCallContext(This,riid,pInterface)
   5701 #define IAsyncManager_GetState(This,pulStateFlags) (This)->lpVtbl->GetState(This,pulStateFlags)
   5702 #else
   5703 /*** IUnknown methods ***/
   5704 static FORCEINLINE HRESULT IAsyncManager_QueryInterface(IAsyncManager* This,REFIID riid,void **ppvObject) {
   5705     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5706 }
   5707 static FORCEINLINE ULONG IAsyncManager_AddRef(IAsyncManager* This) {
   5708     return This->lpVtbl->AddRef(This);
   5709 }
   5710 static FORCEINLINE ULONG IAsyncManager_Release(IAsyncManager* This) {
   5711     return This->lpVtbl->Release(This);
   5712 }
   5713 /*** IAsyncManager methods ***/
   5714 static FORCEINLINE HRESULT IAsyncManager_CompleteCall(IAsyncManager* This,HRESULT Result) {
   5715     return This->lpVtbl->CompleteCall(This,Result);
   5716 }
   5717 static FORCEINLINE HRESULT IAsyncManager_GetCallContext(IAsyncManager* This,REFIID riid,void **pInterface) {
   5718     return This->lpVtbl->GetCallContext(This,riid,pInterface);
   5719 }
   5720 static FORCEINLINE HRESULT IAsyncManager_GetState(IAsyncManager* This,ULONG *pulStateFlags) {
   5721     return This->lpVtbl->GetState(This,pulStateFlags);
   5722 }
   5723 #endif
   5724 #endif
   5725 
   5726 #endif
   5727 
   5728 HRESULT STDMETHODCALLTYPE IAsyncManager_CompleteCall_Proxy(
   5729     IAsyncManager* This,
   5730     HRESULT Result);
   5731 void __RPC_STUB IAsyncManager_CompleteCall_Stub(
   5732     IRpcStubBuffer* This,
   5733     IRpcChannelBuffer* pRpcChannelBuffer,
   5734     PRPC_MESSAGE pRpcMessage,
   5735     DWORD* pdwStubPhase);
   5736 HRESULT STDMETHODCALLTYPE IAsyncManager_GetCallContext_Proxy(
   5737     IAsyncManager* This,
   5738     REFIID riid,
   5739     void **pInterface);
   5740 void __RPC_STUB IAsyncManager_GetCallContext_Stub(
   5741     IRpcStubBuffer* This,
   5742     IRpcChannelBuffer* pRpcChannelBuffer,
   5743     PRPC_MESSAGE pRpcMessage,
   5744     DWORD* pdwStubPhase);
   5745 HRESULT STDMETHODCALLTYPE IAsyncManager_GetState_Proxy(
   5746     IAsyncManager* This,
   5747     ULONG *pulStateFlags);
   5748 void __RPC_STUB IAsyncManager_GetState_Stub(
   5749     IRpcStubBuffer* This,
   5750     IRpcChannelBuffer* pRpcChannelBuffer,
   5751     PRPC_MESSAGE pRpcMessage,
   5752     DWORD* pdwStubPhase);
   5753 
   5754 #endif  /* __IAsyncManager_INTERFACE_DEFINED__ */
   5755 
   5756 
   5757 /*****************************************************************************
   5758  * ICallFactory interface
   5759  */
   5760 #ifndef __ICallFactory_INTERFACE_DEFINED__
   5761 #define __ICallFactory_INTERFACE_DEFINED__
   5762 
   5763 DEFINE_GUID(IID_ICallFactory, 0x1c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
   5764 #if defined(__cplusplus) && !defined(CINTERFACE)
   5765 MIDL_INTERFACE("1c733a30-2a1c-11ce-ade5-00aa0044773d")
   5766 ICallFactory : public IUnknown
   5767 {
   5768     virtual HRESULT STDMETHODCALLTYPE CreateCall(
   5769         REFIID riid,
   5770         IUnknown *pCtrlUnk,
   5771         REFIID riid2,
   5772         IUnknown **ppv) = 0;
   5773 
   5774 };
   5775 #ifdef __CRT_UUID_DECL
   5776 __CRT_UUID_DECL(ICallFactory, 0x1c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d)
   5777 #endif
   5778 #else
   5779 typedef struct ICallFactoryVtbl {
   5780     BEGIN_INTERFACE
   5781 
   5782     /*** IUnknown methods ***/
   5783     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5784         ICallFactory* This,
   5785         REFIID riid,
   5786         void **ppvObject);
   5787 
   5788     ULONG (STDMETHODCALLTYPE *AddRef)(
   5789         ICallFactory* This);
   5790 
   5791     ULONG (STDMETHODCALLTYPE *Release)(
   5792         ICallFactory* This);
   5793 
   5794     /*** ICallFactory methods ***/
   5795     HRESULT (STDMETHODCALLTYPE *CreateCall)(
   5796         ICallFactory* This,
   5797         REFIID riid,
   5798         IUnknown *pCtrlUnk,
   5799         REFIID riid2,
   5800         IUnknown **ppv);
   5801 
   5802     END_INTERFACE
   5803 } ICallFactoryVtbl;
   5804 interface ICallFactory {
   5805     CONST_VTBL ICallFactoryVtbl* lpVtbl;
   5806 };
   5807 
   5808 #ifdef COBJMACROS
   5809 #ifndef WIDL_C_INLINE_WRAPPERS
   5810 /*** IUnknown methods ***/
   5811 #define ICallFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5812 #define ICallFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
   5813 #define ICallFactory_Release(This) (This)->lpVtbl->Release(This)
   5814 /*** ICallFactory methods ***/
   5815 #define ICallFactory_CreateCall(This,riid,pCtrlUnk,riid2,ppv) (This)->lpVtbl->CreateCall(This,riid,pCtrlUnk,riid2,ppv)
   5816 #else
   5817 /*** IUnknown methods ***/
   5818 static FORCEINLINE HRESULT ICallFactory_QueryInterface(ICallFactory* This,REFIID riid,void **ppvObject) {
   5819     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5820 }
   5821 static FORCEINLINE ULONG ICallFactory_AddRef(ICallFactory* This) {
   5822     return This->lpVtbl->AddRef(This);
   5823 }
   5824 static FORCEINLINE ULONG ICallFactory_Release(ICallFactory* This) {
   5825     return This->lpVtbl->Release(This);
   5826 }
   5827 /*** ICallFactory methods ***/
   5828 static FORCEINLINE HRESULT ICallFactory_CreateCall(ICallFactory* This,REFIID riid,IUnknown *pCtrlUnk,REFIID riid2,IUnknown **ppv) {
   5829     return This->lpVtbl->CreateCall(This,riid,pCtrlUnk,riid2,ppv);
   5830 }
   5831 #endif
   5832 #endif
   5833 
   5834 #endif
   5835 
   5836 HRESULT STDMETHODCALLTYPE ICallFactory_CreateCall_Proxy(
   5837     ICallFactory* This,
   5838     REFIID riid,
   5839     IUnknown *pCtrlUnk,
   5840     REFIID riid2,
   5841     IUnknown **ppv);
   5842 void __RPC_STUB ICallFactory_CreateCall_Stub(
   5843     IRpcStubBuffer* This,
   5844     IRpcChannelBuffer* pRpcChannelBuffer,
   5845     PRPC_MESSAGE pRpcMessage,
   5846     DWORD* pdwStubPhase);
   5847 
   5848 #endif  /* __ICallFactory_INTERFACE_DEFINED__ */
   5849 
   5850 
   5851 /*****************************************************************************
   5852  * IRpcHelper interface
   5853  */
   5854 #ifndef __IRpcHelper_INTERFACE_DEFINED__
   5855 #define __IRpcHelper_INTERFACE_DEFINED__
   5856 
   5857 DEFINE_GUID(IID_IRpcHelper, 0x00000149, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5858 #if defined(__cplusplus) && !defined(CINTERFACE)
   5859 MIDL_INTERFACE("00000149-0000-0000-c000-000000000046")
   5860 IRpcHelper : public IUnknown
   5861 {
   5862     virtual HRESULT STDMETHODCALLTYPE GetDCOMProtocolVersion(
   5863         DWORD *pComVersion) = 0;
   5864 
   5865     virtual HRESULT STDMETHODCALLTYPE GetIIDFromOBJREF(
   5866         void *pObjRef,
   5867         IID **piid) = 0;
   5868 
   5869 };
   5870 #ifdef __CRT_UUID_DECL
   5871 __CRT_UUID_DECL(IRpcHelper, 0x00000149, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5872 #endif
   5873 #else
   5874 typedef struct IRpcHelperVtbl {
   5875     BEGIN_INTERFACE
   5876 
   5877     /*** IUnknown methods ***/
   5878     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5879         IRpcHelper* This,
   5880         REFIID riid,
   5881         void **ppvObject);
   5882 
   5883     ULONG (STDMETHODCALLTYPE *AddRef)(
   5884         IRpcHelper* This);
   5885 
   5886     ULONG (STDMETHODCALLTYPE *Release)(
   5887         IRpcHelper* This);
   5888 
   5889     /*** IRpcHelper methods ***/
   5890     HRESULT (STDMETHODCALLTYPE *GetDCOMProtocolVersion)(
   5891         IRpcHelper* This,
   5892         DWORD *pComVersion);
   5893 
   5894     HRESULT (STDMETHODCALLTYPE *GetIIDFromOBJREF)(
   5895         IRpcHelper* This,
   5896         void *pObjRef,
   5897         IID **piid);
   5898 
   5899     END_INTERFACE
   5900 } IRpcHelperVtbl;
   5901 interface IRpcHelper {
   5902     CONST_VTBL IRpcHelperVtbl* lpVtbl;
   5903 };
   5904 
   5905 #ifdef COBJMACROS
   5906 #ifndef WIDL_C_INLINE_WRAPPERS
   5907 /*** IUnknown methods ***/
   5908 #define IRpcHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5909 #define IRpcHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
   5910 #define IRpcHelper_Release(This) (This)->lpVtbl->Release(This)
   5911 /*** IRpcHelper methods ***/
   5912 #define IRpcHelper_GetDCOMProtocolVersion(This,pComVersion) (This)->lpVtbl->GetDCOMProtocolVersion(This,pComVersion)
   5913 #define IRpcHelper_GetIIDFromOBJREF(This,pObjRef,piid) (This)->lpVtbl->GetIIDFromOBJREF(This,pObjRef,piid)
   5914 #else
   5915 /*** IUnknown methods ***/
   5916 static FORCEINLINE HRESULT IRpcHelper_QueryInterface(IRpcHelper* This,REFIID riid,void **ppvObject) {
   5917     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5918 }
   5919 static FORCEINLINE ULONG IRpcHelper_AddRef(IRpcHelper* This) {
   5920     return This->lpVtbl->AddRef(This);
   5921 }
   5922 static FORCEINLINE ULONG IRpcHelper_Release(IRpcHelper* This) {
   5923     return This->lpVtbl->Release(This);
   5924 }
   5925 /*** IRpcHelper methods ***/
   5926 static FORCEINLINE HRESULT IRpcHelper_GetDCOMProtocolVersion(IRpcHelper* This,DWORD *pComVersion) {
   5927     return This->lpVtbl->GetDCOMProtocolVersion(This,pComVersion);
   5928 }
   5929 static FORCEINLINE HRESULT IRpcHelper_GetIIDFromOBJREF(IRpcHelper* This,void *pObjRef,IID **piid) {
   5930     return This->lpVtbl->GetIIDFromOBJREF(This,pObjRef,piid);
   5931 }
   5932 #endif
   5933 #endif
   5934 
   5935 #endif
   5936 
   5937 HRESULT STDMETHODCALLTYPE IRpcHelper_GetDCOMProtocolVersion_Proxy(
   5938     IRpcHelper* This,
   5939     DWORD *pComVersion);
   5940 void __RPC_STUB IRpcHelper_GetDCOMProtocolVersion_Stub(
   5941     IRpcStubBuffer* This,
   5942     IRpcChannelBuffer* pRpcChannelBuffer,
   5943     PRPC_MESSAGE pRpcMessage,
   5944     DWORD* pdwStubPhase);
   5945 HRESULT STDMETHODCALLTYPE IRpcHelper_GetIIDFromOBJREF_Proxy(
   5946     IRpcHelper* This,
   5947     void *pObjRef,
   5948     IID **piid);
   5949 void __RPC_STUB IRpcHelper_GetIIDFromOBJREF_Stub(
   5950     IRpcStubBuffer* This,
   5951     IRpcChannelBuffer* pRpcChannelBuffer,
   5952     PRPC_MESSAGE pRpcMessage,
   5953     DWORD* pdwStubPhase);
   5954 
   5955 #endif  /* __IRpcHelper_INTERFACE_DEFINED__ */
   5956 
   5957 
   5958 /*****************************************************************************
   5959  * IReleaseMarshalBuffers interface
   5960  */
   5961 #ifndef __IReleaseMarshalBuffers_INTERFACE_DEFINED__
   5962 #define __IReleaseMarshalBuffers_INTERFACE_DEFINED__
   5963 
   5964 DEFINE_GUID(IID_IReleaseMarshalBuffers, 0xeb0cb9e8, 0x7996, 0x11d2, 0x87,0x2e, 0x00,0x00,0xf8,0x08,0x08,0x59);
   5965 #if defined(__cplusplus) && !defined(CINTERFACE)
   5966 MIDL_INTERFACE("eb0cb9e8-7996-11d2-872e-0000f8080859")
   5967 IReleaseMarshalBuffers : public IUnknown
   5968 {
   5969     virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalBuffer(
   5970         RPCOLEMESSAGE *pMsg,
   5971         DWORD dwFlags,
   5972         IUnknown *pChnl) = 0;
   5973 
   5974 };
   5975 #ifdef __CRT_UUID_DECL
   5976 __CRT_UUID_DECL(IReleaseMarshalBuffers, 0xeb0cb9e8, 0x7996, 0x11d2, 0x87,0x2e, 0x00,0x00,0xf8,0x08,0x08,0x59)
   5977 #endif
   5978 #else
   5979 typedef struct IReleaseMarshalBuffersVtbl {
   5980     BEGIN_INTERFACE
   5981 
   5982     /*** IUnknown methods ***/
   5983     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5984         IReleaseMarshalBuffers* This,
   5985         REFIID riid,
   5986         void **ppvObject);
   5987 
   5988     ULONG (STDMETHODCALLTYPE *AddRef)(
   5989         IReleaseMarshalBuffers* This);
   5990 
   5991     ULONG (STDMETHODCALLTYPE *Release)(
   5992         IReleaseMarshalBuffers* This);
   5993 
   5994     /*** IReleaseMarshalBuffers methods ***/
   5995     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalBuffer)(
   5996         IReleaseMarshalBuffers* This,
   5997         RPCOLEMESSAGE *pMsg,
   5998         DWORD dwFlags,
   5999         IUnknown *pChnl);
   6000 
   6001     END_INTERFACE
   6002 } IReleaseMarshalBuffersVtbl;
   6003 interface IReleaseMarshalBuffers {
   6004     CONST_VTBL IReleaseMarshalBuffersVtbl* lpVtbl;
   6005 };
   6006 
   6007 #ifdef COBJMACROS
   6008 #ifndef WIDL_C_INLINE_WRAPPERS
   6009 /*** IUnknown methods ***/
   6010 #define IReleaseMarshalBuffers_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6011 #define IReleaseMarshalBuffers_AddRef(This) (This)->lpVtbl->AddRef(This)
   6012 #define IReleaseMarshalBuffers_Release(This) (This)->lpVtbl->Release(This)
   6013 /*** IReleaseMarshalBuffers methods ***/
   6014 #define IReleaseMarshalBuffers_ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl) (This)->lpVtbl->ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl)
   6015 #else
   6016 /*** IUnknown methods ***/
   6017 static FORCEINLINE HRESULT IReleaseMarshalBuffers_QueryInterface(IReleaseMarshalBuffers* This,REFIID riid,void **ppvObject) {
   6018     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6019 }
   6020 static FORCEINLINE ULONG IReleaseMarshalBuffers_AddRef(IReleaseMarshalBuffers* This) {
   6021     return This->lpVtbl->AddRef(This);
   6022 }
   6023 static FORCEINLINE ULONG IReleaseMarshalBuffers_Release(IReleaseMarshalBuffers* This) {
   6024     return This->lpVtbl->Release(This);
   6025 }
   6026 /*** IReleaseMarshalBuffers methods ***/
   6027 static FORCEINLINE HRESULT IReleaseMarshalBuffers_ReleaseMarshalBuffer(IReleaseMarshalBuffers* This,RPCOLEMESSAGE *pMsg,DWORD dwFlags,IUnknown *pChnl) {
   6028     return This->lpVtbl->ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl);
   6029 }
   6030 #endif
   6031 #endif
   6032 
   6033 #endif
   6034 
   6035 HRESULT STDMETHODCALLTYPE IReleaseMarshalBuffers_ReleaseMarshalBuffer_Proxy(
   6036     IReleaseMarshalBuffers* This,
   6037     RPCOLEMESSAGE *pMsg,
   6038     DWORD dwFlags,
   6039     IUnknown *pChnl);
   6040 void __RPC_STUB IReleaseMarshalBuffers_ReleaseMarshalBuffer_Stub(
   6041     IRpcStubBuffer* This,
   6042     IRpcChannelBuffer* pRpcChannelBuffer,
   6043     PRPC_MESSAGE pRpcMessage,
   6044     DWORD* pdwStubPhase);
   6045 
   6046 #endif  /* __IReleaseMarshalBuffers_INTERFACE_DEFINED__ */
   6047 
   6048 
   6049 /*****************************************************************************
   6050  * IWaitMultiple interface
   6051  */
   6052 #ifndef __IWaitMultiple_INTERFACE_DEFINED__
   6053 #define __IWaitMultiple_INTERFACE_DEFINED__
   6054 
   6055 DEFINE_GUID(IID_IWaitMultiple, 0x0000002b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   6056 #if defined(__cplusplus) && !defined(CINTERFACE)
   6057 MIDL_INTERFACE("0000002b-0000-0000-c000-000000000046")
   6058 IWaitMultiple : public IUnknown
   6059 {
   6060     virtual HRESULT STDMETHODCALLTYPE WaitMultiple(
   6061         DWORD timeout,
   6062         ISynchronize **pSync) = 0;
   6063 
   6064     virtual HRESULT STDMETHODCALLTYPE AddSynchronize(
   6065         ISynchronize *pSync) = 0;
   6066 
   6067 };
   6068 #ifdef __CRT_UUID_DECL
   6069 __CRT_UUID_DECL(IWaitMultiple, 0x0000002b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   6070 #endif
   6071 #else
   6072 typedef struct IWaitMultipleVtbl {
   6073     BEGIN_INTERFACE
   6074 
   6075     /*** IUnknown methods ***/
   6076     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6077         IWaitMultiple* This,
   6078         REFIID riid,
   6079         void **ppvObject);
   6080 
   6081     ULONG (STDMETHODCALLTYPE *AddRef)(
   6082         IWaitMultiple* This);
   6083 
   6084     ULONG (STDMETHODCALLTYPE *Release)(
   6085         IWaitMultiple* This);
   6086 
   6087     /*** IWaitMultiple methods ***/
   6088     HRESULT (STDMETHODCALLTYPE *WaitMultiple)(
   6089         IWaitMultiple* This,
   6090         DWORD timeout,
   6091         ISynchronize **pSync);
   6092 
   6093     HRESULT (STDMETHODCALLTYPE *AddSynchronize)(
   6094         IWaitMultiple* This,
   6095         ISynchronize *pSync);
   6096 
   6097     END_INTERFACE
   6098 } IWaitMultipleVtbl;
   6099 interface IWaitMultiple {
   6100     CONST_VTBL IWaitMultipleVtbl* lpVtbl;
   6101 };
   6102 
   6103 #ifdef COBJMACROS
   6104 #ifndef WIDL_C_INLINE_WRAPPERS
   6105 /*** IUnknown methods ***/
   6106 #define IWaitMultiple_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6107 #define IWaitMultiple_AddRef(This) (This)->lpVtbl->AddRef(This)
   6108 #define IWaitMultiple_Release(This) (This)->lpVtbl->Release(This)
   6109 /*** IWaitMultiple methods ***/
   6110 #define IWaitMultiple_WaitMultiple(This,timeout,pSync) (This)->lpVtbl->WaitMultiple(This,timeout,pSync)
   6111 #define IWaitMultiple_AddSynchronize(This,pSync) (This)->lpVtbl->AddSynchronize(This,pSync)
   6112 #else
   6113 /*** IUnknown methods ***/
   6114 static FORCEINLINE HRESULT IWaitMultiple_QueryInterface(IWaitMultiple* This,REFIID riid,void **ppvObject) {
   6115     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6116 }
   6117 static FORCEINLINE ULONG IWaitMultiple_AddRef(IWaitMultiple* This) {
   6118     return This->lpVtbl->AddRef(This);
   6119 }
   6120 static FORCEINLINE ULONG IWaitMultiple_Release(IWaitMultiple* This) {
   6121     return This->lpVtbl->Release(This);
   6122 }
   6123 /*** IWaitMultiple methods ***/
   6124 static FORCEINLINE HRESULT IWaitMultiple_WaitMultiple(IWaitMultiple* This,DWORD timeout,ISynchronize **pSync) {
   6125     return This->lpVtbl->WaitMultiple(This,timeout,pSync);
   6126 }
   6127 static FORCEINLINE HRESULT IWaitMultiple_AddSynchronize(IWaitMultiple* This,ISynchronize *pSync) {
   6128     return This->lpVtbl->AddSynchronize(This,pSync);
   6129 }
   6130 #endif
   6131 #endif
   6132 
   6133 #endif
   6134 
   6135 HRESULT STDMETHODCALLTYPE IWaitMultiple_WaitMultiple_Proxy(
   6136     IWaitMultiple* This,
   6137     DWORD timeout,
   6138     ISynchronize **pSync);
   6139 void __RPC_STUB IWaitMultiple_WaitMultiple_Stub(
   6140     IRpcStubBuffer* This,
   6141     IRpcChannelBuffer* pRpcChannelBuffer,
   6142     PRPC_MESSAGE pRpcMessage,
   6143     DWORD* pdwStubPhase);
   6144 HRESULT STDMETHODCALLTYPE IWaitMultiple_AddSynchronize_Proxy(
   6145     IWaitMultiple* This,
   6146     ISynchronize *pSync);
   6147 void __RPC_STUB IWaitMultiple_AddSynchronize_Stub(
   6148     IRpcStubBuffer* This,
   6149     IRpcChannelBuffer* pRpcChannelBuffer,
   6150     PRPC_MESSAGE pRpcMessage,
   6151     DWORD* pdwStubPhase);
   6152 
   6153 #endif  /* __IWaitMultiple_INTERFACE_DEFINED__ */
   6154 
   6155 
   6156 /*****************************************************************************
   6157  * IAddrTrackingControl interface
   6158  */
   6159 #ifndef __IAddrTrackingControl_INTERFACE_DEFINED__
   6160 #define __IAddrTrackingControl_INTERFACE_DEFINED__
   6161 
   6162 typedef IAddrTrackingControl *LPADDRTRACKINGCONTROL;
   6163 DEFINE_GUID(IID_IAddrTrackingControl, 0x00000147, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   6164 #if defined(__cplusplus) && !defined(CINTERFACE)
   6165 MIDL_INTERFACE("00000147-0000-0000-c000-000000000046")
   6166 IAddrTrackingControl : public IUnknown
   6167 {
   6168     virtual HRESULT STDMETHODCALLTYPE EnableCOMDynamicAddrTracking(
   6169         ) = 0;
   6170 
   6171     virtual HRESULT STDMETHODCALLTYPE DisableCOMDynamicAddrTracking(
   6172         ) = 0;
   6173 
   6174 };
   6175 #ifdef __CRT_UUID_DECL
   6176 __CRT_UUID_DECL(IAddrTrackingControl, 0x00000147, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   6177 #endif
   6178 #else
   6179 typedef struct IAddrTrackingControlVtbl {
   6180     BEGIN_INTERFACE
   6181 
   6182     /*** IUnknown methods ***/
   6183     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6184         IAddrTrackingControl* This,
   6185         REFIID riid,
   6186         void **ppvObject);
   6187 
   6188     ULONG (STDMETHODCALLTYPE *AddRef)(
   6189         IAddrTrackingControl* This);
   6190 
   6191     ULONG (STDMETHODCALLTYPE *Release)(
   6192         IAddrTrackingControl* This);
   6193 
   6194     /*** IAddrTrackingControl methods ***/
   6195     HRESULT (STDMETHODCALLTYPE *EnableCOMDynamicAddrTracking)(
   6196         IAddrTrackingControl* This);
   6197 
   6198     HRESULT (STDMETHODCALLTYPE *DisableCOMDynamicAddrTracking)(
   6199         IAddrTrackingControl* This);
   6200 
   6201     END_INTERFACE
   6202 } IAddrTrackingControlVtbl;
   6203 interface IAddrTrackingControl {
   6204     CONST_VTBL IAddrTrackingControlVtbl* lpVtbl;
   6205 };
   6206 
   6207 #ifdef COBJMACROS
   6208 #ifndef WIDL_C_INLINE_WRAPPERS
   6209 /*** IUnknown methods ***/
   6210 #define IAddrTrackingControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6211 #define IAddrTrackingControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   6212 #define IAddrTrackingControl_Release(This) (This)->lpVtbl->Release(This)
   6213 /*** IAddrTrackingControl methods ***/
   6214 #define IAddrTrackingControl_EnableCOMDynamicAddrTracking(This) (This)->lpVtbl->EnableCOMDynamicAddrTracking(This)
   6215 #define IAddrTrackingControl_DisableCOMDynamicAddrTracking(This) (This)->lpVtbl->DisableCOMDynamicAddrTracking(This)
   6216 #else
   6217 /*** IUnknown methods ***/
   6218 static FORCEINLINE HRESULT IAddrTrackingControl_QueryInterface(IAddrTrackingControl* This,REFIID riid,void **ppvObject) {
   6219     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6220 }
   6221 static FORCEINLINE ULONG IAddrTrackingControl_AddRef(IAddrTrackingControl* This) {
   6222     return This->lpVtbl->AddRef(This);
   6223 }
   6224 static FORCEINLINE ULONG IAddrTrackingControl_Release(IAddrTrackingControl* This) {
   6225     return This->lpVtbl->Release(This);
   6226 }
   6227 /*** IAddrTrackingControl methods ***/
   6228 static FORCEINLINE HRESULT IAddrTrackingControl_EnableCOMDynamicAddrTracking(IAddrTrackingControl* This) {
   6229     return This->lpVtbl->EnableCOMDynamicAddrTracking(This);
   6230 }
   6231 static FORCEINLINE HRESULT IAddrTrackingControl_DisableCOMDynamicAddrTracking(IAddrTrackingControl* This) {
   6232     return This->lpVtbl->DisableCOMDynamicAddrTracking(This);
   6233 }
   6234 #endif
   6235 #endif
   6236 
   6237 #endif
   6238 
   6239 HRESULT STDMETHODCALLTYPE IAddrTrackingControl_EnableCOMDynamicAddrTracking_Proxy(
   6240     IAddrTrackingControl* This);
   6241 void __RPC_STUB IAddrTrackingControl_EnableCOMDynamicAddrTracking_Stub(
   6242     IRpcStubBuffer* This,
   6243     IRpcChannelBuffer* pRpcChannelBuffer,
   6244     PRPC_MESSAGE pRpcMessage,
   6245     DWORD* pdwStubPhase);
   6246 HRESULT STDMETHODCALLTYPE IAddrTrackingControl_DisableCOMDynamicAddrTracking_Proxy(
   6247     IAddrTrackingControl* This);
   6248 void __RPC_STUB IAddrTrackingControl_DisableCOMDynamicAddrTracking_Stub(
   6249     IRpcStubBuffer* This,
   6250     IRpcChannelBuffer* pRpcChannelBuffer,
   6251     PRPC_MESSAGE pRpcMessage,
   6252     DWORD* pdwStubPhase);
   6253 
   6254 #endif  /* __IAddrTrackingControl_INTERFACE_DEFINED__ */
   6255 
   6256 
   6257 /*****************************************************************************
   6258  * IAddrExclusionControl interface
   6259  */
   6260 #ifndef __IAddrExclusionControl_INTERFACE_DEFINED__
   6261 #define __IAddrExclusionControl_INTERFACE_DEFINED__
   6262 
   6263 typedef IAddrExclusionControl *LPADDREXCLUSIONCONTROL;
   6264 DEFINE_GUID(IID_IAddrExclusionControl, 0x00000148, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   6265 #if defined(__cplusplus) && !defined(CINTERFACE)
   6266 MIDL_INTERFACE("00000148-0000-0000-c000-000000000046")
   6267 IAddrExclusionControl : public IUnknown
   6268 {
   6269     virtual HRESULT STDMETHODCALLTYPE GetCurrentAddrExclusionList(
   6270         REFIID riid,
   6271         void **ppEnumerator) = 0;
   6272 
   6273     virtual HRESULT STDMETHODCALLTYPE UpdateAddrExclusionList(
   6274         IUnknown *pEnumerator) = 0;
   6275 
   6276 };
   6277 #ifdef __CRT_UUID_DECL
   6278 __CRT_UUID_DECL(IAddrExclusionControl, 0x00000148, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   6279 #endif
   6280 #else
   6281 typedef struct IAddrExclusionControlVtbl {
   6282     BEGIN_INTERFACE
   6283 
   6284     /*** IUnknown methods ***/
   6285     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6286         IAddrExclusionControl* This,
   6287         REFIID riid,
   6288         void **ppvObject);
   6289 
   6290     ULONG (STDMETHODCALLTYPE *AddRef)(
   6291         IAddrExclusionControl* This);
   6292 
   6293     ULONG (STDMETHODCALLTYPE *Release)(
   6294         IAddrExclusionControl* This);
   6295 
   6296     /*** IAddrExclusionControl methods ***/
   6297     HRESULT (STDMETHODCALLTYPE *GetCurrentAddrExclusionList)(
   6298         IAddrExclusionControl* This,
   6299         REFIID riid,
   6300         void **ppEnumerator);
   6301 
   6302     HRESULT (STDMETHODCALLTYPE *UpdateAddrExclusionList)(
   6303         IAddrExclusionControl* This,
   6304         IUnknown *pEnumerator);
   6305 
   6306     END_INTERFACE
   6307 } IAddrExclusionControlVtbl;
   6308 interface IAddrExclusionControl {
   6309     CONST_VTBL IAddrExclusionControlVtbl* lpVtbl;
   6310 };
   6311 
   6312 #ifdef COBJMACROS
   6313 #ifndef WIDL_C_INLINE_WRAPPERS
   6314 /*** IUnknown methods ***/
   6315 #define IAddrExclusionControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6316 #define IAddrExclusionControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   6317 #define IAddrExclusionControl_Release(This) (This)->lpVtbl->Release(This)
   6318 /*** IAddrExclusionControl methods ***/
   6319 #define IAddrExclusionControl_GetCurrentAddrExclusionList(This,riid,ppEnumerator) (This)->lpVtbl->GetCurrentAddrExclusionList(This,riid,ppEnumerator)
   6320 #define IAddrExclusionControl_UpdateAddrExclusionList(This,pEnumerator) (This)->lpVtbl->UpdateAddrExclusionList(This,pEnumerator)
   6321 #else
   6322 /*** IUnknown methods ***/
   6323 static FORCEINLINE HRESULT IAddrExclusionControl_QueryInterface(IAddrExclusionControl* This,REFIID riid,void **ppvObject) {
   6324     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6325 }
   6326 static FORCEINLINE ULONG IAddrExclusionControl_AddRef(IAddrExclusionControl* This) {
   6327     return This->lpVtbl->AddRef(This);
   6328 }
   6329 static FORCEINLINE ULONG IAddrExclusionControl_Release(IAddrExclusionControl* This) {
   6330     return This->lpVtbl->Release(This);
   6331 }
   6332 /*** IAddrExclusionControl methods ***/
   6333 static FORCEINLINE HRESULT IAddrExclusionControl_GetCurrentAddrExclusionList(IAddrExclusionControl* This,REFIID riid,void **ppEnumerator) {
   6334     return This->lpVtbl->GetCurrentAddrExclusionList(This,riid,ppEnumerator);
   6335 }
   6336 static FORCEINLINE HRESULT IAddrExclusionControl_UpdateAddrExclusionList(IAddrExclusionControl* This,IUnknown *pEnumerator) {
   6337     return This->lpVtbl->UpdateAddrExclusionList(This,pEnumerator);
   6338 }
   6339 #endif
   6340 #endif
   6341 
   6342 #endif
   6343 
   6344 HRESULT STDMETHODCALLTYPE IAddrExclusionControl_GetCurrentAddrExclusionList_Proxy(
   6345     IAddrExclusionControl* This,
   6346     REFIID riid,
   6347     void **ppEnumerator);
   6348 void __RPC_STUB IAddrExclusionControl_GetCurrentAddrExclusionList_Stub(
   6349     IRpcStubBuffer* This,
   6350     IRpcChannelBuffer* pRpcChannelBuffer,
   6351     PRPC_MESSAGE pRpcMessage,
   6352     DWORD* pdwStubPhase);
   6353 HRESULT STDMETHODCALLTYPE IAddrExclusionControl_UpdateAddrExclusionList_Proxy(
   6354     IAddrExclusionControl* This,
   6355     IUnknown *pEnumerator);
   6356 void __RPC_STUB IAddrExclusionControl_UpdateAddrExclusionList_Stub(
   6357     IRpcStubBuffer* This,
   6358     IRpcChannelBuffer* pRpcChannelBuffer,
   6359     PRPC_MESSAGE pRpcMessage,
   6360     DWORD* pdwStubPhase);
   6361 
   6362 #endif  /* __IAddrExclusionControl_INTERFACE_DEFINED__ */
   6363 
   6364 
   6365 /*****************************************************************************
   6366  * IPipeByte interface
   6367  */
   6368 #ifndef __IPipeByte_INTERFACE_DEFINED__
   6369 #define __IPipeByte_INTERFACE_DEFINED__
   6370 
   6371 DEFINE_GUID(IID_IPipeByte, 0xdb2f3aca, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
   6372 #if defined(__cplusplus) && !defined(CINTERFACE)
   6373 MIDL_INTERFACE("db2f3aca-2f86-11d1-8e04-00c04fb9989a")
   6374 IPipeByte : public IUnknown
   6375 {
   6376     virtual HRESULT STDMETHODCALLTYPE Pull(
   6377         BYTE *buf,
   6378         ULONG cRequest,
   6379         ULONG *pcReturned) = 0;
   6380 
   6381     virtual HRESULT STDMETHODCALLTYPE Push(
   6382         BYTE *buf,
   6383         ULONG cSent) = 0;
   6384 
   6385 };
   6386 #ifdef __CRT_UUID_DECL
   6387 __CRT_UUID_DECL(IPipeByte, 0xdb2f3aca, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
   6388 #endif
   6389 #else
   6390 typedef struct IPipeByteVtbl {
   6391     BEGIN_INTERFACE
   6392 
   6393     /*** IUnknown methods ***/
   6394     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6395         IPipeByte* This,
   6396         REFIID riid,
   6397         void **ppvObject);
   6398 
   6399     ULONG (STDMETHODCALLTYPE *AddRef)(
   6400         IPipeByte* This);
   6401 
   6402     ULONG (STDMETHODCALLTYPE *Release)(
   6403         IPipeByte* This);
   6404 
   6405     /*** IPipeByte methods ***/
   6406     HRESULT (STDMETHODCALLTYPE *Pull)(
   6407         IPipeByte* This,
   6408         BYTE *buf,
   6409         ULONG cRequest,
   6410         ULONG *pcReturned);
   6411 
   6412     HRESULT (STDMETHODCALLTYPE *Push)(
   6413         IPipeByte* This,
   6414         BYTE *buf,
   6415         ULONG cSent);
   6416 
   6417     END_INTERFACE
   6418 } IPipeByteVtbl;
   6419 interface IPipeByte {
   6420     CONST_VTBL IPipeByteVtbl* lpVtbl;
   6421 };
   6422 
   6423 #ifdef COBJMACROS
   6424 #ifndef WIDL_C_INLINE_WRAPPERS
   6425 /*** IUnknown methods ***/
   6426 #define IPipeByte_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6427 #define IPipeByte_AddRef(This) (This)->lpVtbl->AddRef(This)
   6428 #define IPipeByte_Release(This) (This)->lpVtbl->Release(This)
   6429 /*** IPipeByte methods ***/
   6430 #define IPipeByte_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
   6431 #define IPipeByte_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
   6432 #else
   6433 /*** IUnknown methods ***/
   6434 static FORCEINLINE HRESULT IPipeByte_QueryInterface(IPipeByte* This,REFIID riid,void **ppvObject) {
   6435     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6436 }
   6437 static FORCEINLINE ULONG IPipeByte_AddRef(IPipeByte* This) {
   6438     return This->lpVtbl->AddRef(This);
   6439 }
   6440 static FORCEINLINE ULONG IPipeByte_Release(IPipeByte* This) {
   6441     return This->lpVtbl->Release(This);
   6442 }
   6443 /*** IPipeByte methods ***/
   6444 static FORCEINLINE HRESULT IPipeByte_Pull(IPipeByte* This,BYTE *buf,ULONG cRequest,ULONG *pcReturned) {
   6445     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
   6446 }
   6447 static FORCEINLINE HRESULT IPipeByte_Push(IPipeByte* This,BYTE *buf,ULONG cSent) {
   6448     return This->lpVtbl->Push(This,buf,cSent);
   6449 }
   6450 #endif
   6451 #endif
   6452 
   6453 #endif
   6454 
   6455 HRESULT STDMETHODCALLTYPE IPipeByte_Pull_Proxy(
   6456     IPipeByte* This,
   6457     BYTE *buf,
   6458     ULONG cRequest,
   6459     ULONG *pcReturned);
   6460 void __RPC_STUB IPipeByte_Pull_Stub(
   6461     IRpcStubBuffer* This,
   6462     IRpcChannelBuffer* pRpcChannelBuffer,
   6463     PRPC_MESSAGE pRpcMessage,
   6464     DWORD* pdwStubPhase);
   6465 HRESULT STDMETHODCALLTYPE IPipeByte_Push_Proxy(
   6466     IPipeByte* This,
   6467     BYTE *buf,
   6468     ULONG cSent);
   6469 void __RPC_STUB IPipeByte_Push_Stub(
   6470     IRpcStubBuffer* This,
   6471     IRpcChannelBuffer* pRpcChannelBuffer,
   6472     PRPC_MESSAGE pRpcMessage,
   6473     DWORD* pdwStubPhase);
   6474 
   6475 #endif  /* __IPipeByte_INTERFACE_DEFINED__ */
   6476 
   6477 
   6478 /*****************************************************************************
   6479  * IPipeLong interface
   6480  */
   6481 #ifndef __IPipeLong_INTERFACE_DEFINED__
   6482 #define __IPipeLong_INTERFACE_DEFINED__
   6483 
   6484 DEFINE_GUID(IID_IPipeLong, 0xdb2f3acc, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
   6485 #if defined(__cplusplus) && !defined(CINTERFACE)
   6486 MIDL_INTERFACE("db2f3acc-2f86-11d1-8e04-00c04fb9989a")
   6487 IPipeLong : public IUnknown
   6488 {
   6489     virtual HRESULT STDMETHODCALLTYPE Pull(
   6490         LONG *buf,
   6491         ULONG cRequest,
   6492         ULONG *pcReturned) = 0;
   6493 
   6494     virtual HRESULT STDMETHODCALLTYPE Push(
   6495         LONG *buf,
   6496         ULONG cSent) = 0;
   6497 
   6498 };
   6499 #ifdef __CRT_UUID_DECL
   6500 __CRT_UUID_DECL(IPipeLong, 0xdb2f3acc, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
   6501 #endif
   6502 #else
   6503 typedef struct IPipeLongVtbl {
   6504     BEGIN_INTERFACE
   6505 
   6506     /*** IUnknown methods ***/
   6507     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6508         IPipeLong* This,
   6509         REFIID riid,
   6510         void **ppvObject);
   6511 
   6512     ULONG (STDMETHODCALLTYPE *AddRef)(
   6513         IPipeLong* This);
   6514 
   6515     ULONG (STDMETHODCALLTYPE *Release)(
   6516         IPipeLong* This);
   6517 
   6518     /*** IPipeLong methods ***/
   6519     HRESULT (STDMETHODCALLTYPE *Pull)(
   6520         IPipeLong* This,
   6521         LONG *buf,
   6522         ULONG cRequest,
   6523         ULONG *pcReturned);
   6524 
   6525     HRESULT (STDMETHODCALLTYPE *Push)(
   6526         IPipeLong* This,
   6527         LONG *buf,
   6528         ULONG cSent);
   6529 
   6530     END_INTERFACE
   6531 } IPipeLongVtbl;
   6532 interface IPipeLong {
   6533     CONST_VTBL IPipeLongVtbl* lpVtbl;
   6534 };
   6535 
   6536 #ifdef COBJMACROS
   6537 #ifndef WIDL_C_INLINE_WRAPPERS
   6538 /*** IUnknown methods ***/
   6539 #define IPipeLong_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6540 #define IPipeLong_AddRef(This) (This)->lpVtbl->AddRef(This)
   6541 #define IPipeLong_Release(This) (This)->lpVtbl->Release(This)
   6542 /*** IPipeLong methods ***/
   6543 #define IPipeLong_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
   6544 #define IPipeLong_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
   6545 #else
   6546 /*** IUnknown methods ***/
   6547 static FORCEINLINE HRESULT IPipeLong_QueryInterface(IPipeLong* This,REFIID riid,void **ppvObject) {
   6548     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6549 }
   6550 static FORCEINLINE ULONG IPipeLong_AddRef(IPipeLong* This) {
   6551     return This->lpVtbl->AddRef(This);
   6552 }
   6553 static FORCEINLINE ULONG IPipeLong_Release(IPipeLong* This) {
   6554     return This->lpVtbl->Release(This);
   6555 }
   6556 /*** IPipeLong methods ***/
   6557 static FORCEINLINE HRESULT IPipeLong_Pull(IPipeLong* This,LONG *buf,ULONG cRequest,ULONG *pcReturned) {
   6558     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
   6559 }
   6560 static FORCEINLINE HRESULT IPipeLong_Push(IPipeLong* This,LONG *buf,ULONG cSent) {
   6561     return This->lpVtbl->Push(This,buf,cSent);
   6562 }
   6563 #endif
   6564 #endif
   6565 
   6566 #endif
   6567 
   6568 HRESULT STDMETHODCALLTYPE IPipeLong_Pull_Proxy(
   6569     IPipeLong* This,
   6570     LONG *buf,
   6571     ULONG cRequest,
   6572     ULONG *pcReturned);
   6573 void __RPC_STUB IPipeLong_Pull_Stub(
   6574     IRpcStubBuffer* This,
   6575     IRpcChannelBuffer* pRpcChannelBuffer,
   6576     PRPC_MESSAGE pRpcMessage,
   6577     DWORD* pdwStubPhase);
   6578 HRESULT STDMETHODCALLTYPE IPipeLong_Push_Proxy(
   6579     IPipeLong* This,
   6580     LONG *buf,
   6581     ULONG cSent);
   6582 void __RPC_STUB IPipeLong_Push_Stub(
   6583     IRpcStubBuffer* This,
   6584     IRpcChannelBuffer* pRpcChannelBuffer,
   6585     PRPC_MESSAGE pRpcMessage,
   6586     DWORD* pdwStubPhase);
   6587 
   6588 #endif  /* __IPipeLong_INTERFACE_DEFINED__ */
   6589 
   6590 
   6591 /*****************************************************************************
   6592  * IPipeDouble interface
   6593  */
   6594 #ifndef __IPipeDouble_INTERFACE_DEFINED__
   6595 #define __IPipeDouble_INTERFACE_DEFINED__
   6596 
   6597 DEFINE_GUID(IID_IPipeDouble, 0xdb2f3ace, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
   6598 #if defined(__cplusplus) && !defined(CINTERFACE)
   6599 MIDL_INTERFACE("db2f3ace-2f86-11d1-8e04-00c04fb9989a")
   6600 IPipeDouble : public IUnknown
   6601 {
   6602     virtual HRESULT STDMETHODCALLTYPE Pull(
   6603         DOUBLE *buf,
   6604         ULONG cRequest,
   6605         ULONG *pcReturned) = 0;
   6606 
   6607     virtual HRESULT STDMETHODCALLTYPE Push(
   6608         DOUBLE *buf,
   6609         ULONG cSent) = 0;
   6610 
   6611 };
   6612 #ifdef __CRT_UUID_DECL
   6613 __CRT_UUID_DECL(IPipeDouble, 0xdb2f3ace, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
   6614 #endif
   6615 #else
   6616 typedef struct IPipeDoubleVtbl {
   6617     BEGIN_INTERFACE
   6618 
   6619     /*** IUnknown methods ***/
   6620     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6621         IPipeDouble* This,
   6622         REFIID riid,
   6623         void **ppvObject);
   6624 
   6625     ULONG (STDMETHODCALLTYPE *AddRef)(
   6626         IPipeDouble* This);
   6627 
   6628     ULONG (STDMETHODCALLTYPE *Release)(
   6629         IPipeDouble* This);
   6630 
   6631     /*** IPipeDouble methods ***/
   6632     HRESULT (STDMETHODCALLTYPE *Pull)(
   6633         IPipeDouble* This,
   6634         DOUBLE *buf,
   6635         ULONG cRequest,
   6636         ULONG *pcReturned);
   6637 
   6638     HRESULT (STDMETHODCALLTYPE *Push)(
   6639         IPipeDouble* This,
   6640         DOUBLE *buf,
   6641         ULONG cSent);
   6642 
   6643     END_INTERFACE
   6644 } IPipeDoubleVtbl;
   6645 interface IPipeDouble {
   6646     CONST_VTBL IPipeDoubleVtbl* lpVtbl;
   6647 };
   6648 
   6649 #ifdef COBJMACROS
   6650 #ifndef WIDL_C_INLINE_WRAPPERS
   6651 /*** IUnknown methods ***/
   6652 #define IPipeDouble_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6653 #define IPipeDouble_AddRef(This) (This)->lpVtbl->AddRef(This)
   6654 #define IPipeDouble_Release(This) (This)->lpVtbl->Release(This)
   6655 /*** IPipeDouble methods ***/
   6656 #define IPipeDouble_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
   6657 #define IPipeDouble_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
   6658 #else
   6659 /*** IUnknown methods ***/
   6660 static FORCEINLINE HRESULT IPipeDouble_QueryInterface(IPipeDouble* This,REFIID riid,void **ppvObject) {
   6661     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6662 }
   6663 static FORCEINLINE ULONG IPipeDouble_AddRef(IPipeDouble* This) {
   6664     return This->lpVtbl->AddRef(This);
   6665 }
   6666 static FORCEINLINE ULONG IPipeDouble_Release(IPipeDouble* This) {
   6667     return This->lpVtbl->Release(This);
   6668 }
   6669 /*** IPipeDouble methods ***/
   6670 static FORCEINLINE HRESULT IPipeDouble_Pull(IPipeDouble* This,DOUBLE *buf,ULONG cRequest,ULONG *pcReturned) {
   6671     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
   6672 }
   6673 static FORCEINLINE HRESULT IPipeDouble_Push(IPipeDouble* This,DOUBLE *buf,ULONG cSent) {
   6674     return This->lpVtbl->Push(This,buf,cSent);
   6675 }
   6676 #endif
   6677 #endif
   6678 
   6679 #endif
   6680 
   6681 HRESULT STDMETHODCALLTYPE IPipeDouble_Pull_Proxy(
   6682     IPipeDouble* This,
   6683     DOUBLE *buf,
   6684     ULONG cRequest,
   6685     ULONG *pcReturned);
   6686 void __RPC_STUB IPipeDouble_Pull_Stub(
   6687     IRpcStubBuffer* This,
   6688     IRpcChannelBuffer* pRpcChannelBuffer,
   6689     PRPC_MESSAGE pRpcMessage,
   6690     DWORD* pdwStubPhase);
   6691 HRESULT STDMETHODCALLTYPE IPipeDouble_Push_Proxy(
   6692     IPipeDouble* This,
   6693     DOUBLE *buf,
   6694     ULONG cSent);
   6695 void __RPC_STUB IPipeDouble_Push_Stub(
   6696     IRpcStubBuffer* This,
   6697     IRpcChannelBuffer* pRpcChannelBuffer,
   6698     PRPC_MESSAGE pRpcMessage,
   6699     DWORD* pdwStubPhase);
   6700 
   6701 #endif  /* __IPipeDouble_INTERFACE_DEFINED__ */
   6702 
   6703 
   6704 #if defined USE_COM_CONTEXT_DEF || defined BUILDTYPE_COMSVCS || defined _COMBASEAPI_ || defined _OLE32_
   6705 
   6706 typedef DWORD CPFLAGS;
   6707 
   6708 typedef struct tagContextProperty {
   6709     GUID policyId;
   6710     CPFLAGS flags;
   6711     IUnknown *pUnk;
   6712 } ContextProperty;
   6713 
   6714 /*****************************************************************************
   6715  * IEnumContextProps interface
   6716  */
   6717 #ifndef __IEnumContextProps_INTERFACE_DEFINED__
   6718 #define __IEnumContextProps_INTERFACE_DEFINED__
   6719 
   6720 typedef IEnumContextProps *LPENUMCONTEXTPROPS;
   6721 
   6722 DEFINE_GUID(IID_IEnumContextProps, 0x000001c1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   6723 #if defined(__cplusplus) && !defined(CINTERFACE)
   6724 MIDL_INTERFACE("000001c1-0000-0000-c000-000000000046")
   6725 IEnumContextProps : public IUnknown
   6726 {
   6727     virtual HRESULT STDMETHODCALLTYPE Next(
   6728         ULONG celt,
   6729         ContextProperty *pContextProperties,
   6730         ULONG *pceltFetched) = 0;
   6731 
   6732     virtual HRESULT STDMETHODCALLTYPE Skip(
   6733         ULONG celt) = 0;
   6734 
   6735     virtual HRESULT STDMETHODCALLTYPE Reset(
   6736         ) = 0;
   6737 
   6738     virtual HRESULT STDMETHODCALLTYPE Clone(
   6739         IEnumContextProps **ppEnumContextProps) = 0;
   6740 
   6741     virtual HRESULT STDMETHODCALLTYPE Count(
   6742         ULONG *pcelt) = 0;
   6743 
   6744 };
   6745 #ifdef __CRT_UUID_DECL
   6746 __CRT_UUID_DECL(IEnumContextProps, 0x000001c1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   6747 #endif
   6748 #else
   6749 typedef struct IEnumContextPropsVtbl {
   6750     BEGIN_INTERFACE
   6751 
   6752     /*** IUnknown methods ***/
   6753     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6754         IEnumContextProps* This,
   6755         REFIID riid,
   6756         void **ppvObject);
   6757 
   6758     ULONG (STDMETHODCALLTYPE *AddRef)(
   6759         IEnumContextProps* This);
   6760 
   6761     ULONG (STDMETHODCALLTYPE *Release)(
   6762         IEnumContextProps* This);
   6763 
   6764     /*** IEnumContextProps methods ***/
   6765     HRESULT (STDMETHODCALLTYPE *Next)(
   6766         IEnumContextProps* This,
   6767         ULONG celt,
   6768         ContextProperty *pContextProperties,
   6769         ULONG *pceltFetched);
   6770 
   6771     HRESULT (STDMETHODCALLTYPE *Skip)(
   6772         IEnumContextProps* This,
   6773         ULONG celt);
   6774 
   6775     HRESULT (STDMETHODCALLTYPE *Reset)(
   6776         IEnumContextProps* This);
   6777 
   6778     HRESULT (STDMETHODCALLTYPE *Clone)(
   6779         IEnumContextProps* This,
   6780         IEnumContextProps **ppEnumContextProps);
   6781 
   6782     HRESULT (STDMETHODCALLTYPE *Count)(
   6783         IEnumContextProps* This,
   6784         ULONG *pcelt);
   6785 
   6786     END_INTERFACE
   6787 } IEnumContextPropsVtbl;
   6788 interface IEnumContextProps {
   6789     CONST_VTBL IEnumContextPropsVtbl* lpVtbl;
   6790 };
   6791 
   6792 #ifdef COBJMACROS
   6793 #ifndef WIDL_C_INLINE_WRAPPERS
   6794 /*** IUnknown methods ***/
   6795 #define IEnumContextProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6796 #define IEnumContextProps_AddRef(This) (This)->lpVtbl->AddRef(This)
   6797 #define IEnumContextProps_Release(This) (This)->lpVtbl->Release(This)
   6798 /*** IEnumContextProps methods ***/
   6799 #define IEnumContextProps_Next(This,celt,pContextProperties,pceltFetched) (This)->lpVtbl->Next(This,celt,pContextProperties,pceltFetched)
   6800 #define IEnumContextProps_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   6801 #define IEnumContextProps_Reset(This) (This)->lpVtbl->Reset(This)
   6802 #define IEnumContextProps_Clone(This,ppEnumContextProps) (This)->lpVtbl->Clone(This,ppEnumContextProps)
   6803 #define IEnumContextProps_Count(This,pcelt) (This)->lpVtbl->Count(This,pcelt)
   6804 #else
   6805 /*** IUnknown methods ***/
   6806 static FORCEINLINE HRESULT IEnumContextProps_QueryInterface(IEnumContextProps* This,REFIID riid,void **ppvObject) {
   6807     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6808 }
   6809 static FORCEINLINE ULONG IEnumContextProps_AddRef(IEnumContextProps* This) {
   6810     return This->lpVtbl->AddRef(This);
   6811 }
   6812 static FORCEINLINE ULONG IEnumContextProps_Release(IEnumContextProps* This) {
   6813     return This->lpVtbl->Release(This);
   6814 }
   6815 /*** IEnumContextProps methods ***/
   6816 static FORCEINLINE HRESULT IEnumContextProps_Next(IEnumContextProps* This,ULONG celt,ContextProperty *pContextProperties,ULONG *pceltFetched) {
   6817     return This->lpVtbl->Next(This,celt,pContextProperties,pceltFetched);
   6818 }
   6819 static FORCEINLINE HRESULT IEnumContextProps_Skip(IEnumContextProps* This,ULONG celt) {
   6820     return This->lpVtbl->Skip(This,celt);
   6821 }
   6822 static FORCEINLINE HRESULT IEnumContextProps_Reset(IEnumContextProps* This) {
   6823     return This->lpVtbl->Reset(This);
   6824 }
   6825 static FORCEINLINE HRESULT IEnumContextProps_Clone(IEnumContextProps* This,IEnumContextProps **ppEnumContextProps) {
   6826     return This->lpVtbl->Clone(This,ppEnumContextProps);
   6827 }
   6828 static FORCEINLINE HRESULT IEnumContextProps_Count(IEnumContextProps* This,ULONG *pcelt) {
   6829     return This->lpVtbl->Count(This,pcelt);
   6830 }
   6831 #endif
   6832 #endif
   6833 
   6834 #endif
   6835 
   6836 HRESULT STDMETHODCALLTYPE IEnumContextProps_Next_Proxy(
   6837     IEnumContextProps* This,
   6838     ULONG celt,
   6839     ContextProperty *pContextProperties,
   6840     ULONG *pceltFetched);
   6841 void __RPC_STUB IEnumContextProps_Next_Stub(
   6842     IRpcStubBuffer* This,
   6843     IRpcChannelBuffer* pRpcChannelBuffer,
   6844     PRPC_MESSAGE pRpcMessage,
   6845     DWORD* pdwStubPhase);
   6846 HRESULT STDMETHODCALLTYPE IEnumContextProps_Skip_Proxy(
   6847     IEnumContextProps* This,
   6848     ULONG celt);
   6849 void __RPC_STUB IEnumContextProps_Skip_Stub(
   6850     IRpcStubBuffer* This,
   6851     IRpcChannelBuffer* pRpcChannelBuffer,
   6852     PRPC_MESSAGE pRpcMessage,
   6853     DWORD* pdwStubPhase);
   6854 HRESULT STDMETHODCALLTYPE IEnumContextProps_Reset_Proxy(
   6855     IEnumContextProps* This);
   6856 void __RPC_STUB IEnumContextProps_Reset_Stub(
   6857     IRpcStubBuffer* This,
   6858     IRpcChannelBuffer* pRpcChannelBuffer,
   6859     PRPC_MESSAGE pRpcMessage,
   6860     DWORD* pdwStubPhase);
   6861 HRESULT STDMETHODCALLTYPE IEnumContextProps_Clone_Proxy(
   6862     IEnumContextProps* This,
   6863     IEnumContextProps **ppEnumContextProps);
   6864 void __RPC_STUB IEnumContextProps_Clone_Stub(
   6865     IRpcStubBuffer* This,
   6866     IRpcChannelBuffer* pRpcChannelBuffer,
   6867     PRPC_MESSAGE pRpcMessage,
   6868     DWORD* pdwStubPhase);
   6869 HRESULT STDMETHODCALLTYPE IEnumContextProps_Count_Proxy(
   6870     IEnumContextProps* This,
   6871     ULONG *pcelt);
   6872 void __RPC_STUB IEnumContextProps_Count_Stub(
   6873     IRpcStubBuffer* This,
   6874     IRpcChannelBuffer* pRpcChannelBuffer,
   6875     PRPC_MESSAGE pRpcMessage,
   6876     DWORD* pdwStubPhase);
   6877 
   6878 #endif  /* __IEnumContextProps_INTERFACE_DEFINED__ */
   6879 
   6880 
   6881 /*****************************************************************************
   6882  * IContext interface
   6883  */
   6884 #ifndef __IContext_INTERFACE_DEFINED__
   6885 #define __IContext_INTERFACE_DEFINED__
   6886 
   6887 DEFINE_GUID(IID_IContext, 0x000001c0, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   6888 #if defined(__cplusplus) && !defined(CINTERFACE)
   6889 MIDL_INTERFACE("000001c0-0000-0000-c000-000000000046")
   6890 IContext : public IUnknown
   6891 {
   6892     virtual HRESULT STDMETHODCALLTYPE SetProperty(
   6893         REFGUID rpolicyId,
   6894         CPFLAGS flags,
   6895         IUnknown *pUnk) = 0;
   6896 
   6897     virtual HRESULT STDMETHODCALLTYPE RemoveProperty(
   6898         REFGUID rPolicyId) = 0;
   6899 
   6900     virtual HRESULT STDMETHODCALLTYPE GetProperty(
   6901         REFGUID rGuid,
   6902         CPFLAGS *pFlags,
   6903         IUnknown **ppUnk) = 0;
   6904 
   6905     virtual HRESULT STDMETHODCALLTYPE EnumContextProps(
   6906         IEnumContextProps **ppEnumContextProps) = 0;
   6907 
   6908 };
   6909 #ifdef __CRT_UUID_DECL
   6910 __CRT_UUID_DECL(IContext, 0x000001c0, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   6911 #endif
   6912 #else
   6913 typedef struct IContextVtbl {
   6914     BEGIN_INTERFACE
   6915 
   6916     /*** IUnknown methods ***/
   6917     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6918         IContext* This,
   6919         REFIID riid,
   6920         void **ppvObject);
   6921 
   6922     ULONG (STDMETHODCALLTYPE *AddRef)(
   6923         IContext* This);
   6924 
   6925     ULONG (STDMETHODCALLTYPE *Release)(
   6926         IContext* This);
   6927 
   6928     /*** IContext methods ***/
   6929     HRESULT (STDMETHODCALLTYPE *SetProperty)(
   6930         IContext* This,
   6931         REFGUID rpolicyId,
   6932         CPFLAGS flags,
   6933         IUnknown *pUnk);
   6934 
   6935     HRESULT (STDMETHODCALLTYPE *RemoveProperty)(
   6936         IContext* This,
   6937         REFGUID rPolicyId);
   6938 
   6939     HRESULT (STDMETHODCALLTYPE *GetProperty)(
   6940         IContext* This,
   6941         REFGUID rGuid,
   6942         CPFLAGS *pFlags,
   6943         IUnknown **ppUnk);
   6944 
   6945     HRESULT (STDMETHODCALLTYPE *EnumContextProps)(
   6946         IContext* This,
   6947         IEnumContextProps **ppEnumContextProps);
   6948 
   6949     END_INTERFACE
   6950 } IContextVtbl;
   6951 interface IContext {
   6952     CONST_VTBL IContextVtbl* lpVtbl;
   6953 };
   6954 
   6955 #ifdef COBJMACROS
   6956 #ifndef WIDL_C_INLINE_WRAPPERS
   6957 /*** IUnknown methods ***/
   6958 #define IContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6959 #define IContext_AddRef(This) (This)->lpVtbl->AddRef(This)
   6960 #define IContext_Release(This) (This)->lpVtbl->Release(This)
   6961 /*** IContext methods ***/
   6962 #define IContext_SetProperty(This,rpolicyId,flags,pUnk) (This)->lpVtbl->SetProperty(This,rpolicyId,flags,pUnk)
   6963 #define IContext_RemoveProperty(This,rPolicyId) (This)->lpVtbl->RemoveProperty(This,rPolicyId)
   6964 #define IContext_GetProperty(This,rGuid,pFlags,ppUnk) (This)->lpVtbl->GetProperty(This,rGuid,pFlags,ppUnk)
   6965 #define IContext_EnumContextProps(This,ppEnumContextProps) (This)->lpVtbl->EnumContextProps(This,ppEnumContextProps)
   6966 #else
   6967 /*** IUnknown methods ***/
   6968 static FORCEINLINE HRESULT IContext_QueryInterface(IContext* This,REFIID riid,void **ppvObject) {
   6969     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6970 }
   6971 static FORCEINLINE ULONG IContext_AddRef(IContext* This) {
   6972     return This->lpVtbl->AddRef(This);
   6973 }
   6974 static FORCEINLINE ULONG IContext_Release(IContext* This) {
   6975     return This->lpVtbl->Release(This);
   6976 }
   6977 /*** IContext methods ***/
   6978 static FORCEINLINE HRESULT IContext_SetProperty(IContext* This,REFGUID rpolicyId,CPFLAGS flags,IUnknown *pUnk) {
   6979     return This->lpVtbl->SetProperty(This,rpolicyId,flags,pUnk);
   6980 }
   6981 static FORCEINLINE HRESULT IContext_RemoveProperty(IContext* This,REFGUID rPolicyId) {
   6982     return This->lpVtbl->RemoveProperty(This,rPolicyId);
   6983 }
   6984 static FORCEINLINE HRESULT IContext_GetProperty(IContext* This,REFGUID rGuid,CPFLAGS *pFlags,IUnknown **ppUnk) {
   6985     return This->lpVtbl->GetProperty(This,rGuid,pFlags,ppUnk);
   6986 }
   6987 static FORCEINLINE HRESULT IContext_EnumContextProps(IContext* This,IEnumContextProps **ppEnumContextProps) {
   6988     return This->lpVtbl->EnumContextProps(This,ppEnumContextProps);
   6989 }
   6990 #endif
   6991 #endif
   6992 
   6993 #endif
   6994 
   6995 HRESULT STDMETHODCALLTYPE IContext_SetProperty_Proxy(
   6996     IContext* This,
   6997     REFGUID rpolicyId,
   6998     CPFLAGS flags,
   6999     IUnknown *pUnk);
   7000 void __RPC_STUB IContext_SetProperty_Stub(
   7001     IRpcStubBuffer* This,
   7002     IRpcChannelBuffer* pRpcChannelBuffer,
   7003     PRPC_MESSAGE pRpcMessage,
   7004     DWORD* pdwStubPhase);
   7005 HRESULT STDMETHODCALLTYPE IContext_RemoveProperty_Proxy(
   7006     IContext* This,
   7007     REFGUID rPolicyId);
   7008 void __RPC_STUB IContext_RemoveProperty_Stub(
   7009     IRpcStubBuffer* This,
   7010     IRpcChannelBuffer* pRpcChannelBuffer,
   7011     PRPC_MESSAGE pRpcMessage,
   7012     DWORD* pdwStubPhase);
   7013 HRESULT STDMETHODCALLTYPE IContext_GetProperty_Proxy(
   7014     IContext* This,
   7015     REFGUID rGuid,
   7016     CPFLAGS *pFlags,
   7017     IUnknown **ppUnk);
   7018 void __RPC_STUB IContext_GetProperty_Stub(
   7019     IRpcStubBuffer* This,
   7020     IRpcChannelBuffer* pRpcChannelBuffer,
   7021     PRPC_MESSAGE pRpcMessage,
   7022     DWORD* pdwStubPhase);
   7023 HRESULT STDMETHODCALLTYPE IContext_EnumContextProps_Proxy(
   7024     IContext* This,
   7025     IEnumContextProps **ppEnumContextProps);
   7026 void __RPC_STUB IContext_EnumContextProps_Stub(
   7027     IRpcStubBuffer* This,
   7028     IRpcChannelBuffer* pRpcChannelBuffer,
   7029     PRPC_MESSAGE pRpcMessage,
   7030     DWORD* pdwStubPhase);
   7031 
   7032 #endif  /* __IContext_INTERFACE_DEFINED__ */
   7033 
   7034 #endif
   7035 #endif
   7036 
   7037 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   7038 typedef enum _APTTYPEQUALIFIER {
   7039     APTTYPEQUALIFIER_NONE = 0,
   7040     APTTYPEQUALIFIER_IMPLICIT_MTA = 1,
   7041     APTTYPEQUALIFIER_NA_ON_MTA = 2,
   7042     APTTYPEQUALIFIER_NA_ON_STA = 3,
   7043     APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA = 4,
   7044     APTTYPEQUALIFIER_NA_ON_MAINSTA = 5,
   7045     APTTYPEQUALIFIER_APPLICATION_STA = 6
   7046 } APTTYPEQUALIFIER;
   7047 
   7048 typedef enum _APTTYPE {
   7049     APTTYPE_CURRENT = -1,
   7050     APTTYPE_STA = 0,
   7051     APTTYPE_MTA = 1,
   7052     APTTYPE_NA = 2,
   7053     APTTYPE_MAINSTA = 3
   7054 } APTTYPE;
   7055 #endif
   7056 
   7057 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   7058 typedef enum _THDTYPE {
   7059     THDTYPE_BLOCKMESSAGES = 0,
   7060     THDTYPE_PROCESSMESSAGES = 1
   7061 } THDTYPE;
   7062 
   7063 typedef DWORD APARTMENTID;
   7064 
   7065 /*****************************************************************************
   7066  * IComThreadingInfo interface
   7067  */
   7068 #ifndef __IComThreadingInfo_INTERFACE_DEFINED__
   7069 #define __IComThreadingInfo_INTERFACE_DEFINED__
   7070 
   7071 DEFINE_GUID(IID_IComThreadingInfo, 0x000001ce, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   7072 #if defined(__cplusplus) && !defined(CINTERFACE)
   7073 MIDL_INTERFACE("000001ce-0000-0000-c000-000000000046")
   7074 IComThreadingInfo : public IUnknown
   7075 {
   7076     virtual HRESULT STDMETHODCALLTYPE GetCurrentApartmentType(
   7077         APTTYPE *pAptType) = 0;
   7078 
   7079     virtual HRESULT STDMETHODCALLTYPE GetCurrentThreadType(
   7080         THDTYPE *pThreadType) = 0;
   7081 
   7082     virtual HRESULT STDMETHODCALLTYPE GetCurrentLogicalThreadId(
   7083         GUID *pguidLogicalThreadId) = 0;
   7084 
   7085     virtual HRESULT STDMETHODCALLTYPE SetCurrentLogicalThreadId(
   7086         REFGUID rguid) = 0;
   7087 
   7088 };
   7089 #ifdef __CRT_UUID_DECL
   7090 __CRT_UUID_DECL(IComThreadingInfo, 0x000001ce, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   7091 #endif
   7092 #else
   7093 typedef struct IComThreadingInfoVtbl {
   7094     BEGIN_INTERFACE
   7095 
   7096     /*** IUnknown methods ***/
   7097     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7098         IComThreadingInfo* This,
   7099         REFIID riid,
   7100         void **ppvObject);
   7101 
   7102     ULONG (STDMETHODCALLTYPE *AddRef)(
   7103         IComThreadingInfo* This);
   7104 
   7105     ULONG (STDMETHODCALLTYPE *Release)(
   7106         IComThreadingInfo* This);
   7107 
   7108     /*** IComThreadingInfo methods ***/
   7109     HRESULT (STDMETHODCALLTYPE *GetCurrentApartmentType)(
   7110         IComThreadingInfo* This,
   7111         APTTYPE *pAptType);
   7112 
   7113     HRESULT (STDMETHODCALLTYPE *GetCurrentThreadType)(
   7114         IComThreadingInfo* This,
   7115         THDTYPE *pThreadType);
   7116 
   7117     HRESULT (STDMETHODCALLTYPE *GetCurrentLogicalThreadId)(
   7118         IComThreadingInfo* This,
   7119         GUID *pguidLogicalThreadId);
   7120 
   7121     HRESULT (STDMETHODCALLTYPE *SetCurrentLogicalThreadId)(
   7122         IComThreadingInfo* This,
   7123         REFGUID rguid);
   7124 
   7125     END_INTERFACE
   7126 } IComThreadingInfoVtbl;
   7127 interface IComThreadingInfo {
   7128     CONST_VTBL IComThreadingInfoVtbl* lpVtbl;
   7129 };
   7130 
   7131 #ifdef COBJMACROS
   7132 #ifndef WIDL_C_INLINE_WRAPPERS
   7133 /*** IUnknown methods ***/
   7134 #define IComThreadingInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7135 #define IComThreadingInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   7136 #define IComThreadingInfo_Release(This) (This)->lpVtbl->Release(This)
   7137 /*** IComThreadingInfo methods ***/
   7138 #define IComThreadingInfo_GetCurrentApartmentType(This,pAptType) (This)->lpVtbl->GetCurrentApartmentType(This,pAptType)
   7139 #define IComThreadingInfo_GetCurrentThreadType(This,pThreadType) (This)->lpVtbl->GetCurrentThreadType(This,pThreadType)
   7140 #define IComThreadingInfo_GetCurrentLogicalThreadId(This,pguidLogicalThreadId) (This)->lpVtbl->GetCurrentLogicalThreadId(This,pguidLogicalThreadId)
   7141 #define IComThreadingInfo_SetCurrentLogicalThreadId(This,rguid) (This)->lpVtbl->SetCurrentLogicalThreadId(This,rguid)
   7142 #else
   7143 /*** IUnknown methods ***/
   7144 static FORCEINLINE HRESULT IComThreadingInfo_QueryInterface(IComThreadingInfo* This,REFIID riid,void **ppvObject) {
   7145     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7146 }
   7147 static FORCEINLINE ULONG IComThreadingInfo_AddRef(IComThreadingInfo* This) {
   7148     return This->lpVtbl->AddRef(This);
   7149 }
   7150 static FORCEINLINE ULONG IComThreadingInfo_Release(IComThreadingInfo* This) {
   7151     return This->lpVtbl->Release(This);
   7152 }
   7153 /*** IComThreadingInfo methods ***/
   7154 static FORCEINLINE HRESULT IComThreadingInfo_GetCurrentApartmentType(IComThreadingInfo* This,APTTYPE *pAptType) {
   7155     return This->lpVtbl->GetCurrentApartmentType(This,pAptType);
   7156 }
   7157 static FORCEINLINE HRESULT IComThreadingInfo_GetCurrentThreadType(IComThreadingInfo* This,THDTYPE *pThreadType) {
   7158     return This->lpVtbl->GetCurrentThreadType(This,pThreadType);
   7159 }
   7160 static FORCEINLINE HRESULT IComThreadingInfo_GetCurrentLogicalThreadId(IComThreadingInfo* This,GUID *pguidLogicalThreadId) {
   7161     return This->lpVtbl->GetCurrentLogicalThreadId(This,pguidLogicalThreadId);
   7162 }
   7163 static FORCEINLINE HRESULT IComThreadingInfo_SetCurrentLogicalThreadId(IComThreadingInfo* This,REFGUID rguid) {
   7164     return This->lpVtbl->SetCurrentLogicalThreadId(This,rguid);
   7165 }
   7166 #endif
   7167 #endif
   7168 
   7169 #endif
   7170 
   7171 HRESULT STDMETHODCALLTYPE IComThreadingInfo_GetCurrentApartmentType_Proxy(
   7172     IComThreadingInfo* This,
   7173     APTTYPE *pAptType);
   7174 void __RPC_STUB IComThreadingInfo_GetCurrentApartmentType_Stub(
   7175     IRpcStubBuffer* This,
   7176     IRpcChannelBuffer* pRpcChannelBuffer,
   7177     PRPC_MESSAGE pRpcMessage,
   7178     DWORD* pdwStubPhase);
   7179 HRESULT STDMETHODCALLTYPE IComThreadingInfo_GetCurrentThreadType_Proxy(
   7180     IComThreadingInfo* This,
   7181     THDTYPE *pThreadType);
   7182 void __RPC_STUB IComThreadingInfo_GetCurrentThreadType_Stub(
   7183     IRpcStubBuffer* This,
   7184     IRpcChannelBuffer* pRpcChannelBuffer,
   7185     PRPC_MESSAGE pRpcMessage,
   7186     DWORD* pdwStubPhase);
   7187 HRESULT STDMETHODCALLTYPE IComThreadingInfo_GetCurrentLogicalThreadId_Proxy(
   7188     IComThreadingInfo* This,
   7189     GUID *pguidLogicalThreadId);
   7190 void __RPC_STUB IComThreadingInfo_GetCurrentLogicalThreadId_Stub(
   7191     IRpcStubBuffer* This,
   7192     IRpcChannelBuffer* pRpcChannelBuffer,
   7193     PRPC_MESSAGE pRpcMessage,
   7194     DWORD* pdwStubPhase);
   7195 HRESULT STDMETHODCALLTYPE IComThreadingInfo_SetCurrentLogicalThreadId_Proxy(
   7196     IComThreadingInfo* This,
   7197     REFGUID rguid);
   7198 void __RPC_STUB IComThreadingInfo_SetCurrentLogicalThreadId_Stub(
   7199     IRpcStubBuffer* This,
   7200     IRpcChannelBuffer* pRpcChannelBuffer,
   7201     PRPC_MESSAGE pRpcMessage,
   7202     DWORD* pdwStubPhase);
   7203 
   7204 #endif  /* __IComThreadingInfo_INTERFACE_DEFINED__ */
   7205 
   7206 
   7207 /*****************************************************************************
   7208  * IProcessInitControl interface
   7209  */
   7210 #ifndef __IProcessInitControl_INTERFACE_DEFINED__
   7211 #define __IProcessInitControl_INTERFACE_DEFINED__
   7212 
   7213 DEFINE_GUID(IID_IProcessInitControl, 0x72380d55, 0x8d2b, 0x43a3, 0x85,0x13, 0x2b,0x6e,0xf3,0x14,0x34,0xe9);
   7214 #if defined(__cplusplus) && !defined(CINTERFACE)
   7215 MIDL_INTERFACE("72380d55-8d2b-43a3-8513-2b6ef31434e9")
   7216 IProcessInitControl : public IUnknown
   7217 {
   7218     virtual HRESULT STDMETHODCALLTYPE ResetInitializerTimeout(
   7219         DWORD dwSecondsRemaining) = 0;
   7220 
   7221 };
   7222 #ifdef __CRT_UUID_DECL
   7223 __CRT_UUID_DECL(IProcessInitControl, 0x72380d55, 0x8d2b, 0x43a3, 0x85,0x13, 0x2b,0x6e,0xf3,0x14,0x34,0xe9)
   7224 #endif
   7225 #else
   7226 typedef struct IProcessInitControlVtbl {
   7227     BEGIN_INTERFACE
   7228 
   7229     /*** IUnknown methods ***/
   7230     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7231         IProcessInitControl* This,
   7232         REFIID riid,
   7233         void **ppvObject);
   7234 
   7235     ULONG (STDMETHODCALLTYPE *AddRef)(
   7236         IProcessInitControl* This);
   7237 
   7238     ULONG (STDMETHODCALLTYPE *Release)(
   7239         IProcessInitControl* This);
   7240 
   7241     /*** IProcessInitControl methods ***/
   7242     HRESULT (STDMETHODCALLTYPE *ResetInitializerTimeout)(
   7243         IProcessInitControl* This,
   7244         DWORD dwSecondsRemaining);
   7245 
   7246     END_INTERFACE
   7247 } IProcessInitControlVtbl;
   7248 interface IProcessInitControl {
   7249     CONST_VTBL IProcessInitControlVtbl* lpVtbl;
   7250 };
   7251 
   7252 #ifdef COBJMACROS
   7253 #ifndef WIDL_C_INLINE_WRAPPERS
   7254 /*** IUnknown methods ***/
   7255 #define IProcessInitControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7256 #define IProcessInitControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   7257 #define IProcessInitControl_Release(This) (This)->lpVtbl->Release(This)
   7258 /*** IProcessInitControl methods ***/
   7259 #define IProcessInitControl_ResetInitializerTimeout(This,dwSecondsRemaining) (This)->lpVtbl->ResetInitializerTimeout(This,dwSecondsRemaining)
   7260 #else
   7261 /*** IUnknown methods ***/
   7262 static FORCEINLINE HRESULT IProcessInitControl_QueryInterface(IProcessInitControl* This,REFIID riid,void **ppvObject) {
   7263     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7264 }
   7265 static FORCEINLINE ULONG IProcessInitControl_AddRef(IProcessInitControl* This) {
   7266     return This->lpVtbl->AddRef(This);
   7267 }
   7268 static FORCEINLINE ULONG IProcessInitControl_Release(IProcessInitControl* This) {
   7269     return This->lpVtbl->Release(This);
   7270 }
   7271 /*** IProcessInitControl methods ***/
   7272 static FORCEINLINE HRESULT IProcessInitControl_ResetInitializerTimeout(IProcessInitControl* This,DWORD dwSecondsRemaining) {
   7273     return This->lpVtbl->ResetInitializerTimeout(This,dwSecondsRemaining);
   7274 }
   7275 #endif
   7276 #endif
   7277 
   7278 #endif
   7279 
   7280 HRESULT STDMETHODCALLTYPE IProcessInitControl_ResetInitializerTimeout_Proxy(
   7281     IProcessInitControl* This,
   7282     DWORD dwSecondsRemaining);
   7283 void __RPC_STUB IProcessInitControl_ResetInitializerTimeout_Stub(
   7284     IRpcStubBuffer* This,
   7285     IRpcChannelBuffer* pRpcChannelBuffer,
   7286     PRPC_MESSAGE pRpcMessage,
   7287     DWORD* pdwStubPhase);
   7288 
   7289 #endif  /* __IProcessInitControl_INTERFACE_DEFINED__ */
   7290 
   7291 
   7292 /*****************************************************************************
   7293  * IFastRundown interface
   7294  */
   7295 #ifndef __IFastRundown_INTERFACE_DEFINED__
   7296 #define __IFastRundown_INTERFACE_DEFINED__
   7297 
   7298 DEFINE_GUID(IID_IFastRundown, 0x00000040, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   7299 #if defined(__cplusplus) && !defined(CINTERFACE)
   7300 MIDL_INTERFACE("00000040-0000-0000-c000-000000000046")
   7301 IFastRundown : public IUnknown
   7302 {
   7303 };
   7304 #ifdef __CRT_UUID_DECL
   7305 __CRT_UUID_DECL(IFastRundown, 0x00000040, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   7306 #endif
   7307 #else
   7308 typedef struct IFastRundownVtbl {
   7309     BEGIN_INTERFACE
   7310 
   7311     /*** IUnknown methods ***/
   7312     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7313         IFastRundown* This,
   7314         REFIID riid,
   7315         void **ppvObject);
   7316 
   7317     ULONG (STDMETHODCALLTYPE *AddRef)(
   7318         IFastRundown* This);
   7319 
   7320     ULONG (STDMETHODCALLTYPE *Release)(
   7321         IFastRundown* This);
   7322 
   7323     END_INTERFACE
   7324 } IFastRundownVtbl;
   7325 interface IFastRundown {
   7326     CONST_VTBL IFastRundownVtbl* lpVtbl;
   7327 };
   7328 
   7329 #ifdef COBJMACROS
   7330 #ifndef WIDL_C_INLINE_WRAPPERS
   7331 /*** IUnknown methods ***/
   7332 #define IFastRundown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7333 #define IFastRundown_AddRef(This) (This)->lpVtbl->AddRef(This)
   7334 #define IFastRundown_Release(This) (This)->lpVtbl->Release(This)
   7335 #else
   7336 /*** IUnknown methods ***/
   7337 static FORCEINLINE HRESULT IFastRundown_QueryInterface(IFastRundown* This,REFIID riid,void **ppvObject) {
   7338     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7339 }
   7340 static FORCEINLINE ULONG IFastRundown_AddRef(IFastRundown* This) {
   7341     return This->lpVtbl->AddRef(This);
   7342 }
   7343 static FORCEINLINE ULONG IFastRundown_Release(IFastRundown* This) {
   7344     return This->lpVtbl->Release(This);
   7345 }
   7346 #endif
   7347 #endif
   7348 
   7349 #endif
   7350 
   7351 
   7352 #endif  /* __IFastRundown_INTERFACE_DEFINED__ */
   7353 
   7354 
   7355 typedef enum CO_MARSHALING_CONTEXT_ATTRIBUTES {
   7356     CO_MARSHALING_SOURCE_IS_APP_CONTAINER = 0
   7357 } CO_MARSHALING_CONTEXT_ATTRIBUTES;
   7358 
   7359 /*****************************************************************************
   7360  * IMarshalingStream interface
   7361  */
   7362 #ifndef __IMarshalingStream_INTERFACE_DEFINED__
   7363 #define __IMarshalingStream_INTERFACE_DEFINED__
   7364 
   7365 DEFINE_GUID(IID_IMarshalingStream, 0xd8f2f5e6, 0x6102, 0x4863, 0x9f,0x26, 0x38,0x9a,0x46,0x76,0xef,0xde);
   7366 #if defined(__cplusplus) && !defined(CINTERFACE)
   7367 MIDL_INTERFACE("d8f2f5e6-6102-4863-9f26-389a4676efde")
   7368 IMarshalingStream : public IStream
   7369 {
   7370     virtual HRESULT STDMETHODCALLTYPE GetMarshalingContextAttribute(
   7371         CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
   7372         ULONG_PTR *pAttributeValue) = 0;
   7373 
   7374 };
   7375 #ifdef __CRT_UUID_DECL
   7376 __CRT_UUID_DECL(IMarshalingStream, 0xd8f2f5e6, 0x6102, 0x4863, 0x9f,0x26, 0x38,0x9a,0x46,0x76,0xef,0xde)
   7377 #endif
   7378 #else
   7379 typedef struct IMarshalingStreamVtbl {
   7380     BEGIN_INTERFACE
   7381 
   7382     /*** IUnknown methods ***/
   7383     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7384         IMarshalingStream* This,
   7385         REFIID riid,
   7386         void **ppvObject);
   7387 
   7388     ULONG (STDMETHODCALLTYPE *AddRef)(
   7389         IMarshalingStream* This);
   7390 
   7391     ULONG (STDMETHODCALLTYPE *Release)(
   7392         IMarshalingStream* This);
   7393 
   7394     /*** ISequentialStream methods ***/
   7395     HRESULT (STDMETHODCALLTYPE *Read)(
   7396         IMarshalingStream* This,
   7397         void *pv,
   7398         ULONG cb,
   7399         ULONG *pcbRead);
   7400 
   7401     HRESULT (STDMETHODCALLTYPE *Write)(
   7402         IMarshalingStream* This,
   7403         const void *pv,
   7404         ULONG cb,
   7405         ULONG *pcbWritten);
   7406 
   7407     /*** IStream methods ***/
   7408     HRESULT (STDMETHODCALLTYPE *Seek)(
   7409         IMarshalingStream* This,
   7410         LARGE_INTEGER dlibMove,
   7411         DWORD dwOrigin,
   7412         ULARGE_INTEGER *plibNewPosition);
   7413 
   7414     HRESULT (STDMETHODCALLTYPE *SetSize)(
   7415         IMarshalingStream* This,
   7416         ULARGE_INTEGER libNewSize);
   7417 
   7418     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   7419         IMarshalingStream* This,
   7420         IStream *pstm,
   7421         ULARGE_INTEGER cb,
   7422         ULARGE_INTEGER *pcbRead,
   7423         ULARGE_INTEGER *pcbWritten);
   7424 
   7425     HRESULT (STDMETHODCALLTYPE *Commit)(
   7426         IMarshalingStream* This,
   7427         DWORD grfCommitFlags);
   7428 
   7429     HRESULT (STDMETHODCALLTYPE *Revert)(
   7430         IMarshalingStream* This);
   7431 
   7432     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   7433         IMarshalingStream* This,
   7434         ULARGE_INTEGER libOffset,
   7435         ULARGE_INTEGER cb,
   7436         DWORD dwLockType);
   7437 
   7438     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   7439         IMarshalingStream* This,
   7440         ULARGE_INTEGER libOffset,
   7441         ULARGE_INTEGER cb,
   7442         DWORD dwLockType);
   7443 
   7444     HRESULT (STDMETHODCALLTYPE *Stat)(
   7445         IMarshalingStream* This,
   7446         STATSTG *pstatstg,
   7447         DWORD grfStatFlag);
   7448 
   7449     HRESULT (STDMETHODCALLTYPE *Clone)(
   7450         IMarshalingStream* This,
   7451         IStream **ppstm);
   7452 
   7453     /*** IMarshalingStream methods ***/
   7454     HRESULT (STDMETHODCALLTYPE *GetMarshalingContextAttribute)(
   7455         IMarshalingStream* This,
   7456         CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
   7457         ULONG_PTR *pAttributeValue);
   7458 
   7459     END_INTERFACE
   7460 } IMarshalingStreamVtbl;
   7461 interface IMarshalingStream {
   7462     CONST_VTBL IMarshalingStreamVtbl* lpVtbl;
   7463 };
   7464 
   7465 #ifdef COBJMACROS
   7466 #ifndef WIDL_C_INLINE_WRAPPERS
   7467 /*** IUnknown methods ***/
   7468 #define IMarshalingStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7469 #define IMarshalingStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   7470 #define IMarshalingStream_Release(This) (This)->lpVtbl->Release(This)
   7471 /*** ISequentialStream methods ***/
   7472 #define IMarshalingStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   7473 #define IMarshalingStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   7474 /*** IStream methods ***/
   7475 #define IMarshalingStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   7476 #define IMarshalingStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   7477 #define IMarshalingStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   7478 #define IMarshalingStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   7479 #define IMarshalingStream_Revert(This) (This)->lpVtbl->Revert(This)
   7480 #define IMarshalingStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   7481 #define IMarshalingStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   7482 #define IMarshalingStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   7483 #define IMarshalingStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   7484 /*** IMarshalingStream methods ***/
   7485 #define IMarshalingStream_GetMarshalingContextAttribute(This,attribute,pAttributeValue) (This)->lpVtbl->GetMarshalingContextAttribute(This,attribute,pAttributeValue)
   7486 #else
   7487 /*** IUnknown methods ***/
   7488 static FORCEINLINE HRESULT IMarshalingStream_QueryInterface(IMarshalingStream* This,REFIID riid,void **ppvObject) {
   7489     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7490 }
   7491 static FORCEINLINE ULONG IMarshalingStream_AddRef(IMarshalingStream* This) {
   7492     return This->lpVtbl->AddRef(This);
   7493 }
   7494 static FORCEINLINE ULONG IMarshalingStream_Release(IMarshalingStream* This) {
   7495     return This->lpVtbl->Release(This);
   7496 }
   7497 /*** ISequentialStream methods ***/
   7498 static FORCEINLINE HRESULT IMarshalingStream_Read(IMarshalingStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
   7499     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   7500 }
   7501 static FORCEINLINE HRESULT IMarshalingStream_Write(IMarshalingStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   7502     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   7503 }
   7504 /*** IStream methods ***/
   7505 static FORCEINLINE HRESULT IMarshalingStream_Seek(IMarshalingStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   7506     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   7507 }
   7508 static FORCEINLINE HRESULT IMarshalingStream_SetSize(IMarshalingStream* This,ULARGE_INTEGER libNewSize) {
   7509     return This->lpVtbl->SetSize(This,libNewSize);
   7510 }
   7511 static FORCEINLINE HRESULT IMarshalingStream_CopyTo(IMarshalingStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   7512     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   7513 }
   7514 static FORCEINLINE HRESULT IMarshalingStream_Commit(IMarshalingStream* This,DWORD grfCommitFlags) {
   7515     return This->lpVtbl->Commit(This,grfCommitFlags);
   7516 }
   7517 static FORCEINLINE HRESULT IMarshalingStream_Revert(IMarshalingStream* This) {
   7518     return This->lpVtbl->Revert(This);
   7519 }
   7520 static FORCEINLINE HRESULT IMarshalingStream_LockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   7521     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   7522 }
   7523 static FORCEINLINE HRESULT IMarshalingStream_UnlockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   7524     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   7525 }
   7526 static FORCEINLINE HRESULT IMarshalingStream_Stat(IMarshalingStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   7527     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   7528 }
   7529 static FORCEINLINE HRESULT IMarshalingStream_Clone(IMarshalingStream* This,IStream **ppstm) {
   7530     return This->lpVtbl->Clone(This,ppstm);
   7531 }
   7532 /*** IMarshalingStream methods ***/
   7533 static FORCEINLINE HRESULT IMarshalingStream_GetMarshalingContextAttribute(IMarshalingStream* This,CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,ULONG_PTR *pAttributeValue) {
   7534     return This->lpVtbl->GetMarshalingContextAttribute(This,attribute,pAttributeValue);
   7535 }
   7536 #endif
   7537 #endif
   7538 
   7539 #endif
   7540 
   7541 HRESULT STDMETHODCALLTYPE IMarshalingStream_GetMarshalingContextAttribute_Proxy(
   7542     IMarshalingStream* This,
   7543     CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
   7544     ULONG_PTR *pAttributeValue);
   7545 void __RPC_STUB IMarshalingStream_GetMarshalingContextAttribute_Stub(
   7546     IRpcStubBuffer* This,
   7547     IRpcChannelBuffer* pRpcChannelBuffer,
   7548     PRPC_MESSAGE pRpcMessage,
   7549     DWORD* pdwStubPhase);
   7550 
   7551 #endif  /* __IMarshalingStream_INTERFACE_DEFINED__ */
   7552 
   7553 #endif
   7554 
   7555 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   7556 EXTERN_C const GUID  IID_ICallbackWithNoReentrancyToApplicationSTA;
   7557 #endif
   7558 #define _OBJIDLBASE_
   7559 #endif
   7560 #ifndef __IMoniker_FWD_DEFINED__
   7561 #define __IMoniker_FWD_DEFINED__
   7562 typedef interface IMoniker IMoniker;
   7563 #endif
   7564 
   7565 #ifndef __IEnumMoniker_FWD_DEFINED__
   7566 #define __IEnumMoniker_FWD_DEFINED__
   7567 typedef interface IEnumMoniker IEnumMoniker;
   7568 #endif
   7569 
   7570 #ifndef __IRunningObjectTable_FWD_DEFINED__
   7571 #define __IRunningObjectTable_FWD_DEFINED__
   7572 typedef interface IRunningObjectTable IRunningObjectTable;
   7573 #endif
   7574 
   7575 #ifndef __IStorage_FWD_DEFINED__
   7576 #define __IStorage_FWD_DEFINED__
   7577 typedef interface IStorage IStorage;
   7578 #endif
   7579 
   7580 #ifndef __IEnumSTATSTG_FWD_DEFINED__
   7581 #define __IEnumSTATSTG_FWD_DEFINED__
   7582 typedef interface IEnumSTATSTG IEnumSTATSTG;
   7583 #endif
   7584 
   7585 #ifndef __IAdviseSink_FWD_DEFINED__
   7586 #define __IAdviseSink_FWD_DEFINED__
   7587 typedef interface IAdviseSink IAdviseSink;
   7588 #endif
   7589 
   7590 #ifndef __AsyncIAdviseSink_FWD_DEFINED__
   7591 #define __AsyncIAdviseSink_FWD_DEFINED__
   7592 typedef interface AsyncIAdviseSink AsyncIAdviseSink;
   7593 #endif
   7594 
   7595 #ifndef __IBindCtx_FWD_DEFINED__
   7596 #define __IBindCtx_FWD_DEFINED__
   7597 typedef interface IBindCtx IBindCtx;
   7598 #endif
   7599 
   7600 #ifndef __IEnumMoniker_FWD_DEFINED__
   7601 #define __IEnumMoniker_FWD_DEFINED__
   7602 typedef interface IEnumMoniker IEnumMoniker;
   7603 #endif
   7604 
   7605 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   7606 /*****************************************************************************
   7607  * IMallocSpy interface
   7608  */
   7609 #ifndef __IMallocSpy_INTERFACE_DEFINED__
   7610 #define __IMallocSpy_INTERFACE_DEFINED__
   7611 
   7612 typedef IMallocSpy *LPMALLOCSPY;
   7613 DEFINE_GUID(IID_IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   7614 #if defined(__cplusplus) && !defined(CINTERFACE)
   7615 MIDL_INTERFACE("0000001d-0000-0000-c000-000000000046")
   7616 IMallocSpy : public IUnknown
   7617 {
   7618     virtual SIZE_T STDMETHODCALLTYPE PreAlloc(
   7619         SIZE_T cbRequest) = 0;
   7620 
   7621     virtual void * STDMETHODCALLTYPE PostAlloc(
   7622         void *pActual) = 0;
   7623 
   7624     virtual void * STDMETHODCALLTYPE PreFree(
   7625         void *pRequest,
   7626         WINBOOL fSpyed) = 0;
   7627 
   7628     virtual void STDMETHODCALLTYPE PostFree(
   7629         WINBOOL fSpyed) = 0;
   7630 
   7631     virtual SIZE_T STDMETHODCALLTYPE PreRealloc(
   7632         void *pRequest,
   7633         SIZE_T cbRequest,
   7634         void **ppNewRequest,
   7635         WINBOOL fSpyed) = 0;
   7636 
   7637     virtual void * STDMETHODCALLTYPE PostRealloc(
   7638         void *pActual,
   7639         WINBOOL fSpyed) = 0;
   7640 
   7641     virtual void * STDMETHODCALLTYPE PreGetSize(
   7642         void *pRequest,
   7643         WINBOOL fSpyed) = 0;
   7644 
   7645     virtual SIZE_T STDMETHODCALLTYPE PostGetSize(
   7646         SIZE_T cbActual,
   7647         WINBOOL fSpyed) = 0;
   7648 
   7649     virtual void * STDMETHODCALLTYPE PreDidAlloc(
   7650         void *pRequest,
   7651         WINBOOL fSpyed) = 0;
   7652 
   7653     virtual int STDMETHODCALLTYPE PostDidAlloc(
   7654         void *pRequest,
   7655         WINBOOL fSpyed,
   7656         int fActual) = 0;
   7657 
   7658     virtual void STDMETHODCALLTYPE PreHeapMinimize(
   7659         ) = 0;
   7660 
   7661     virtual void STDMETHODCALLTYPE PostHeapMinimize(
   7662         ) = 0;
   7663 
   7664 };
   7665 #ifdef __CRT_UUID_DECL
   7666 __CRT_UUID_DECL(IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   7667 #endif
   7668 #else
   7669 typedef struct IMallocSpyVtbl {
   7670     BEGIN_INTERFACE
   7671 
   7672     /*** IUnknown methods ***/
   7673     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7674         IMallocSpy* This,
   7675         REFIID riid,
   7676         void **ppvObject);
   7677 
   7678     ULONG (STDMETHODCALLTYPE *AddRef)(
   7679         IMallocSpy* This);
   7680 
   7681     ULONG (STDMETHODCALLTYPE *Release)(
   7682         IMallocSpy* This);
   7683 
   7684     /*** IMallocSpy methods ***/
   7685     SIZE_T (STDMETHODCALLTYPE *PreAlloc)(
   7686         IMallocSpy* This,
   7687         SIZE_T cbRequest);
   7688 
   7689     void * (STDMETHODCALLTYPE *PostAlloc)(
   7690         IMallocSpy* This,
   7691         void *pActual);
   7692 
   7693     void * (STDMETHODCALLTYPE *PreFree)(
   7694         IMallocSpy* This,
   7695         void *pRequest,
   7696         WINBOOL fSpyed);
   7697 
   7698     void (STDMETHODCALLTYPE *PostFree)(
   7699         IMallocSpy* This,
   7700         WINBOOL fSpyed);
   7701 
   7702     SIZE_T (STDMETHODCALLTYPE *PreRealloc)(
   7703         IMallocSpy* This,
   7704         void *pRequest,
   7705         SIZE_T cbRequest,
   7706         void **ppNewRequest,
   7707         WINBOOL fSpyed);
   7708 
   7709     void * (STDMETHODCALLTYPE *PostRealloc)(
   7710         IMallocSpy* This,
   7711         void *pActual,
   7712         WINBOOL fSpyed);
   7713 
   7714     void * (STDMETHODCALLTYPE *PreGetSize)(
   7715         IMallocSpy* This,
   7716         void *pRequest,
   7717         WINBOOL fSpyed);
   7718 
   7719     SIZE_T (STDMETHODCALLTYPE *PostGetSize)(
   7720         IMallocSpy* This,
   7721         SIZE_T cbActual,
   7722         WINBOOL fSpyed);
   7723 
   7724     void * (STDMETHODCALLTYPE *PreDidAlloc)(
   7725         IMallocSpy* This,
   7726         void *pRequest,
   7727         WINBOOL fSpyed);
   7728 
   7729     int (STDMETHODCALLTYPE *PostDidAlloc)(
   7730         IMallocSpy* This,
   7731         void *pRequest,
   7732         WINBOOL fSpyed,
   7733         int fActual);
   7734 
   7735     void (STDMETHODCALLTYPE *PreHeapMinimize)(
   7736         IMallocSpy* This);
   7737 
   7738     void (STDMETHODCALLTYPE *PostHeapMinimize)(
   7739         IMallocSpy* This);
   7740 
   7741     END_INTERFACE
   7742 } IMallocSpyVtbl;
   7743 interface IMallocSpy {
   7744     CONST_VTBL IMallocSpyVtbl* lpVtbl;
   7745 };
   7746 
   7747 #ifdef COBJMACROS
   7748 #ifndef WIDL_C_INLINE_WRAPPERS
   7749 /*** IUnknown methods ***/
   7750 #define IMallocSpy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7751 #define IMallocSpy_AddRef(This) (This)->lpVtbl->AddRef(This)
   7752 #define IMallocSpy_Release(This) (This)->lpVtbl->Release(This)
   7753 /*** IMallocSpy methods ***/
   7754 #define IMallocSpy_PreAlloc(This,cbRequest) (This)->lpVtbl->PreAlloc(This,cbRequest)
   7755 #define IMallocSpy_PostAlloc(This,pActual) (This)->lpVtbl->PostAlloc(This,pActual)
   7756 #define IMallocSpy_PreFree(This,pRequest,fSpyed) (This)->lpVtbl->PreFree(This,pRequest,fSpyed)
   7757 #define IMallocSpy_PostFree(This,fSpyed) (This)->lpVtbl->PostFree(This,fSpyed)
   7758 #define IMallocSpy_PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed) (This)->lpVtbl->PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed)
   7759 #define IMallocSpy_PostRealloc(This,pActual,fSpyed) (This)->lpVtbl->PostRealloc(This,pActual,fSpyed)
   7760 #define IMallocSpy_PreGetSize(This,pRequest,fSpyed) (This)->lpVtbl->PreGetSize(This,pRequest,fSpyed)
   7761 #define IMallocSpy_PostGetSize(This,cbActual,fSpyed) (This)->lpVtbl->PostGetSize(This,cbActual,fSpyed)
   7762 #define IMallocSpy_PreDidAlloc(This,pRequest,fSpyed) (This)->lpVtbl->PreDidAlloc(This,pRequest,fSpyed)
   7763 #define IMallocSpy_PostDidAlloc(This,pRequest,fSpyed,fActual) (This)->lpVtbl->PostDidAlloc(This,pRequest,fSpyed,fActual)
   7764 #define IMallocSpy_PreHeapMinimize(This) (This)->lpVtbl->PreHeapMinimize(This)
   7765 #define IMallocSpy_PostHeapMinimize(This) (This)->lpVtbl->PostHeapMinimize(This)
   7766 #else
   7767 /*** IUnknown methods ***/
   7768 static FORCEINLINE HRESULT IMallocSpy_QueryInterface(IMallocSpy* This,REFIID riid,void **ppvObject) {
   7769     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7770 }
   7771 static FORCEINLINE ULONG IMallocSpy_AddRef(IMallocSpy* This) {
   7772     return This->lpVtbl->AddRef(This);
   7773 }
   7774 static FORCEINLINE ULONG IMallocSpy_Release(IMallocSpy* This) {
   7775     return This->lpVtbl->Release(This);
   7776 }
   7777 /*** IMallocSpy methods ***/
   7778 static FORCEINLINE SIZE_T IMallocSpy_PreAlloc(IMallocSpy* This,SIZE_T cbRequest) {
   7779     return This->lpVtbl->PreAlloc(This,cbRequest);
   7780 }
   7781 static FORCEINLINE void * IMallocSpy_PostAlloc(IMallocSpy* This,void *pActual) {
   7782     return This->lpVtbl->PostAlloc(This,pActual);
   7783 }
   7784 static FORCEINLINE void * IMallocSpy_PreFree(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
   7785     return This->lpVtbl->PreFree(This,pRequest,fSpyed);
   7786 }
   7787 static FORCEINLINE void IMallocSpy_PostFree(IMallocSpy* This,WINBOOL fSpyed) {
   7788     This->lpVtbl->PostFree(This,fSpyed);
   7789 }
   7790 static FORCEINLINE SIZE_T IMallocSpy_PreRealloc(IMallocSpy* This,void *pRequest,SIZE_T cbRequest,void **ppNewRequest,WINBOOL fSpyed) {
   7791     return This->lpVtbl->PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed);
   7792 }
   7793 static FORCEINLINE void * IMallocSpy_PostRealloc(IMallocSpy* This,void *pActual,WINBOOL fSpyed) {
   7794     return This->lpVtbl->PostRealloc(This,pActual,fSpyed);
   7795 }
   7796 static FORCEINLINE void * IMallocSpy_PreGetSize(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
   7797     return This->lpVtbl->PreGetSize(This,pRequest,fSpyed);
   7798 }
   7799 static FORCEINLINE SIZE_T IMallocSpy_PostGetSize(IMallocSpy* This,SIZE_T cbActual,WINBOOL fSpyed) {
   7800     return This->lpVtbl->PostGetSize(This,cbActual,fSpyed);
   7801 }
   7802 static FORCEINLINE void * IMallocSpy_PreDidAlloc(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
   7803     return This->lpVtbl->PreDidAlloc(This,pRequest,fSpyed);
   7804 }
   7805 static FORCEINLINE int IMallocSpy_PostDidAlloc(IMallocSpy* This,void *pRequest,WINBOOL fSpyed,int fActual) {
   7806     return This->lpVtbl->PostDidAlloc(This,pRequest,fSpyed,fActual);
   7807 }
   7808 static FORCEINLINE void IMallocSpy_PreHeapMinimize(IMallocSpy* This) {
   7809     This->lpVtbl->PreHeapMinimize(This);
   7810 }
   7811 static FORCEINLINE void IMallocSpy_PostHeapMinimize(IMallocSpy* This) {
   7812     This->lpVtbl->PostHeapMinimize(This);
   7813 }
   7814 #endif
   7815 #endif
   7816 
   7817 #endif
   7818 
   7819 SIZE_T STDMETHODCALLTYPE IMallocSpy_PreAlloc_Proxy(
   7820     IMallocSpy* This,
   7821     SIZE_T cbRequest);
   7822 void __RPC_STUB IMallocSpy_PreAlloc_Stub(
   7823     IRpcStubBuffer* This,
   7824     IRpcChannelBuffer* pRpcChannelBuffer,
   7825     PRPC_MESSAGE pRpcMessage,
   7826     DWORD* pdwStubPhase);
   7827 void * STDMETHODCALLTYPE IMallocSpy_PostAlloc_Proxy(
   7828     IMallocSpy* This,
   7829     void *pActual);
   7830 void __RPC_STUB IMallocSpy_PostAlloc_Stub(
   7831     IRpcStubBuffer* This,
   7832     IRpcChannelBuffer* pRpcChannelBuffer,
   7833     PRPC_MESSAGE pRpcMessage,
   7834     DWORD* pdwStubPhase);
   7835 void * STDMETHODCALLTYPE IMallocSpy_PreFree_Proxy(
   7836     IMallocSpy* This,
   7837     void *pRequest,
   7838     WINBOOL fSpyed);
   7839 void __RPC_STUB IMallocSpy_PreFree_Stub(
   7840     IRpcStubBuffer* This,
   7841     IRpcChannelBuffer* pRpcChannelBuffer,
   7842     PRPC_MESSAGE pRpcMessage,
   7843     DWORD* pdwStubPhase);
   7844 void STDMETHODCALLTYPE IMallocSpy_PostFree_Proxy(
   7845     IMallocSpy* This,
   7846     WINBOOL fSpyed);
   7847 void __RPC_STUB IMallocSpy_PostFree_Stub(
   7848     IRpcStubBuffer* This,
   7849     IRpcChannelBuffer* pRpcChannelBuffer,
   7850     PRPC_MESSAGE pRpcMessage,
   7851     DWORD* pdwStubPhase);
   7852 SIZE_T STDMETHODCALLTYPE IMallocSpy_PreRealloc_Proxy(
   7853     IMallocSpy* This,
   7854     void *pRequest,
   7855     SIZE_T cbRequest,
   7856     void **ppNewRequest,
   7857     WINBOOL fSpyed);
   7858 void __RPC_STUB IMallocSpy_PreRealloc_Stub(
   7859     IRpcStubBuffer* This,
   7860     IRpcChannelBuffer* pRpcChannelBuffer,
   7861     PRPC_MESSAGE pRpcMessage,
   7862     DWORD* pdwStubPhase);
   7863 void * STDMETHODCALLTYPE IMallocSpy_PostRealloc_Proxy(
   7864     IMallocSpy* This,
   7865     void *pActual,
   7866     WINBOOL fSpyed);
   7867 void __RPC_STUB IMallocSpy_PostRealloc_Stub(
   7868     IRpcStubBuffer* This,
   7869     IRpcChannelBuffer* pRpcChannelBuffer,
   7870     PRPC_MESSAGE pRpcMessage,
   7871     DWORD* pdwStubPhase);
   7872 void * STDMETHODCALLTYPE IMallocSpy_PreGetSize_Proxy(
   7873     IMallocSpy* This,
   7874     void *pRequest,
   7875     WINBOOL fSpyed);
   7876 void __RPC_STUB IMallocSpy_PreGetSize_Stub(
   7877     IRpcStubBuffer* This,
   7878     IRpcChannelBuffer* pRpcChannelBuffer,
   7879     PRPC_MESSAGE pRpcMessage,
   7880     DWORD* pdwStubPhase);
   7881 SIZE_T STDMETHODCALLTYPE IMallocSpy_PostGetSize_Proxy(
   7882     IMallocSpy* This,
   7883     SIZE_T cbActual,
   7884     WINBOOL fSpyed);
   7885 void __RPC_STUB IMallocSpy_PostGetSize_Stub(
   7886     IRpcStubBuffer* This,
   7887     IRpcChannelBuffer* pRpcChannelBuffer,
   7888     PRPC_MESSAGE pRpcMessage,
   7889     DWORD* pdwStubPhase);
   7890 void * STDMETHODCALLTYPE IMallocSpy_PreDidAlloc_Proxy(
   7891     IMallocSpy* This,
   7892     void *pRequest,
   7893     WINBOOL fSpyed);
   7894 void __RPC_STUB IMallocSpy_PreDidAlloc_Stub(
   7895     IRpcStubBuffer* This,
   7896     IRpcChannelBuffer* pRpcChannelBuffer,
   7897     PRPC_MESSAGE pRpcMessage,
   7898     DWORD* pdwStubPhase);
   7899 int STDMETHODCALLTYPE IMallocSpy_PostDidAlloc_Proxy(
   7900     IMallocSpy* This,
   7901     void *pRequest,
   7902     WINBOOL fSpyed,
   7903     int fActual);
   7904 void __RPC_STUB IMallocSpy_PostDidAlloc_Stub(
   7905     IRpcStubBuffer* This,
   7906     IRpcChannelBuffer* pRpcChannelBuffer,
   7907     PRPC_MESSAGE pRpcMessage,
   7908     DWORD* pdwStubPhase);
   7909 void STDMETHODCALLTYPE IMallocSpy_PreHeapMinimize_Proxy(
   7910     IMallocSpy* This);
   7911 void __RPC_STUB IMallocSpy_PreHeapMinimize_Stub(
   7912     IRpcStubBuffer* This,
   7913     IRpcChannelBuffer* pRpcChannelBuffer,
   7914     PRPC_MESSAGE pRpcMessage,
   7915     DWORD* pdwStubPhase);
   7916 void STDMETHODCALLTYPE IMallocSpy_PostHeapMinimize_Proxy(
   7917     IMallocSpy* This);
   7918 void __RPC_STUB IMallocSpy_PostHeapMinimize_Stub(
   7919     IRpcStubBuffer* This,
   7920     IRpcChannelBuffer* pRpcChannelBuffer,
   7921     PRPC_MESSAGE pRpcMessage,
   7922     DWORD* pdwStubPhase);
   7923 
   7924 #endif  /* __IMallocSpy_INTERFACE_DEFINED__ */
   7925 
   7926 #endif
   7927 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   7928 /*****************************************************************************
   7929  * IBindCtx interface
   7930  */
   7931 #ifndef __IBindCtx_INTERFACE_DEFINED__
   7932 #define __IBindCtx_INTERFACE_DEFINED__
   7933 
   7934 typedef IBindCtx *LPBC;
   7935 typedef IBindCtx *LPBINDCTX;
   7936 #if defined(__cplusplus)
   7937 typedef struct tagBIND_OPTS {
   7938   DWORD cbStruct;
   7939   DWORD grfFlags;
   7940   DWORD grfMode;
   7941   DWORD dwTickCountDeadline;
   7942 } BIND_OPTS, *LPBIND_OPTS;
   7943 #else
   7944 typedef struct tagBIND_OPTS {
   7945     DWORD cbStruct;
   7946     DWORD grfFlags;
   7947     DWORD grfMode;
   7948     DWORD dwTickCountDeadline;
   7949 } BIND_OPTS;
   7950 typedef struct tagBIND_OPTS *LPBIND_OPTS;
   7951 #endif
   7952 #if defined(__cplusplus)
   7953 typedef struct tagBIND_OPTS2 : tagBIND_OPTS {
   7954 DWORD           dwTrackFlags;
   7955 DWORD           dwClassContext;
   7956 LCID            locale;
   7957 COSERVERINFO *  pServerInfo;
   7958 } BIND_OPTS2, * LPBIND_OPTS2;
   7959 #else
   7960 typedef struct tagBIND_OPTS2 {
   7961     DWORD cbStruct;
   7962     DWORD grfFlags;
   7963     DWORD grfMode;
   7964     DWORD dwTickCountDeadline;
   7965     DWORD dwTrackFlags;
   7966     DWORD dwClassContext;
   7967     LCID locale;
   7968     COSERVERINFO *pServerInfo;
   7969 } BIND_OPTS2;
   7970 typedef struct tagBIND_OPTS2 *LPBIND_OPTS2;
   7971 #endif
   7972 #if defined(__cplusplus)
   7973 typedef struct tagBIND_OPTS3 : tagBIND_OPTS2 {
   7974 HWND           hwnd;
   7975 } BIND_OPTS3, * LPBIND_OPTS3;
   7976 #else
   7977 typedef struct tagBIND_OPTS3 {
   7978     DWORD cbStruct;
   7979     DWORD grfFlags;
   7980     DWORD grfMode;
   7981     DWORD dwTickCountDeadline;
   7982     DWORD dwTrackFlags;
   7983     DWORD dwClassContext;
   7984     LCID locale;
   7985     COSERVERINFO *pServerInfo;
   7986     HWND hwnd;
   7987 } BIND_OPTS3;
   7988 typedef struct tagBIND_OPTS3 *LPBIND_OPTS3;
   7989 #endif
   7990 typedef enum tagBIND_FLAGS {
   7991     BIND_MAYBOTHERUSER = 1,
   7992     BIND_JUSTTESTEXISTENCE = 2
   7993 } BIND_FLAGS;
   7994 DEFINE_GUID(IID_IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   7995 #if defined(__cplusplus) && !defined(CINTERFACE)
   7996 MIDL_INTERFACE("0000000e-0000-0000-c000-000000000046")
   7997 IBindCtx : public IUnknown
   7998 {
   7999     virtual HRESULT STDMETHODCALLTYPE RegisterObjectBound(
   8000         IUnknown *punk) = 0;
   8001 
   8002     virtual HRESULT STDMETHODCALLTYPE RevokeObjectBound(
   8003         IUnknown *punk) = 0;
   8004 
   8005     virtual HRESULT STDMETHODCALLTYPE ReleaseBoundObjects(
   8006         ) = 0;
   8007 
   8008     virtual HRESULT STDMETHODCALLTYPE SetBindOptions(
   8009         BIND_OPTS *pbindopts) = 0;
   8010 
   8011     virtual HRESULT STDMETHODCALLTYPE GetBindOptions(
   8012         BIND_OPTS *pbindopts) = 0;
   8013 
   8014     virtual HRESULT STDMETHODCALLTYPE GetRunningObjectTable(
   8015         IRunningObjectTable **pprot) = 0;
   8016 
   8017     virtual HRESULT STDMETHODCALLTYPE RegisterObjectParam(
   8018         LPOLESTR pszKey,
   8019         IUnknown *punk) = 0;
   8020 
   8021     virtual HRESULT STDMETHODCALLTYPE GetObjectParam(
   8022         LPOLESTR pszKey,
   8023         IUnknown **ppunk) = 0;
   8024 
   8025     virtual HRESULT STDMETHODCALLTYPE EnumObjectParam(
   8026         IEnumString **ppenum) = 0;
   8027 
   8028     virtual HRESULT STDMETHODCALLTYPE RevokeObjectParam(
   8029         LPOLESTR pszKey) = 0;
   8030 
   8031 };
   8032 #ifdef __CRT_UUID_DECL
   8033 __CRT_UUID_DECL(IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   8034 #endif
   8035 #else
   8036 typedef struct IBindCtxVtbl {
   8037     BEGIN_INTERFACE
   8038 
   8039     /*** IUnknown methods ***/
   8040     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8041         IBindCtx* This,
   8042         REFIID riid,
   8043         void **ppvObject);
   8044 
   8045     ULONG (STDMETHODCALLTYPE *AddRef)(
   8046         IBindCtx* This);
   8047 
   8048     ULONG (STDMETHODCALLTYPE *Release)(
   8049         IBindCtx* This);
   8050 
   8051     /*** IBindCtx methods ***/
   8052     HRESULT (STDMETHODCALLTYPE *RegisterObjectBound)(
   8053         IBindCtx* This,
   8054         IUnknown *punk);
   8055 
   8056     HRESULT (STDMETHODCALLTYPE *RevokeObjectBound)(
   8057         IBindCtx* This,
   8058         IUnknown *punk);
   8059 
   8060     HRESULT (STDMETHODCALLTYPE *ReleaseBoundObjects)(
   8061         IBindCtx* This);
   8062 
   8063     HRESULT (STDMETHODCALLTYPE *SetBindOptions)(
   8064         IBindCtx* This,
   8065         BIND_OPTS *pbindopts);
   8066 
   8067     HRESULT (STDMETHODCALLTYPE *GetBindOptions)(
   8068         IBindCtx* This,
   8069         BIND_OPTS *pbindopts);
   8070 
   8071     HRESULT (STDMETHODCALLTYPE *GetRunningObjectTable)(
   8072         IBindCtx* This,
   8073         IRunningObjectTable **pprot);
   8074 
   8075     HRESULT (STDMETHODCALLTYPE *RegisterObjectParam)(
   8076         IBindCtx* This,
   8077         LPOLESTR pszKey,
   8078         IUnknown *punk);
   8079 
   8080     HRESULT (STDMETHODCALLTYPE *GetObjectParam)(
   8081         IBindCtx* This,
   8082         LPOLESTR pszKey,
   8083         IUnknown **ppunk);
   8084 
   8085     HRESULT (STDMETHODCALLTYPE *EnumObjectParam)(
   8086         IBindCtx* This,
   8087         IEnumString **ppenum);
   8088 
   8089     HRESULT (STDMETHODCALLTYPE *RevokeObjectParam)(
   8090         IBindCtx* This,
   8091         LPOLESTR pszKey);
   8092 
   8093     END_INTERFACE
   8094 } IBindCtxVtbl;
   8095 interface IBindCtx {
   8096     CONST_VTBL IBindCtxVtbl* lpVtbl;
   8097 };
   8098 
   8099 #ifdef COBJMACROS
   8100 #ifndef WIDL_C_INLINE_WRAPPERS
   8101 /*** IUnknown methods ***/
   8102 #define IBindCtx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8103 #define IBindCtx_AddRef(This) (This)->lpVtbl->AddRef(This)
   8104 #define IBindCtx_Release(This) (This)->lpVtbl->Release(This)
   8105 /*** IBindCtx methods ***/
   8106 #define IBindCtx_RegisterObjectBound(This,punk) (This)->lpVtbl->RegisterObjectBound(This,punk)
   8107 #define IBindCtx_RevokeObjectBound(This,punk) (This)->lpVtbl->RevokeObjectBound(This,punk)
   8108 #define IBindCtx_ReleaseBoundObjects(This) (This)->lpVtbl->ReleaseBoundObjects(This)
   8109 #define IBindCtx_SetBindOptions(This,pbindopts) (This)->lpVtbl->SetBindOptions(This,pbindopts)
   8110 #define IBindCtx_GetBindOptions(This,pbindopts) (This)->lpVtbl->GetBindOptions(This,pbindopts)
   8111 #define IBindCtx_GetRunningObjectTable(This,pprot) (This)->lpVtbl->GetRunningObjectTable(This,pprot)
   8112 #define IBindCtx_RegisterObjectParam(This,pszKey,punk) (This)->lpVtbl->RegisterObjectParam(This,pszKey,punk)
   8113 #define IBindCtx_GetObjectParam(This,pszKey,ppunk) (This)->lpVtbl->GetObjectParam(This,pszKey,ppunk)
   8114 #define IBindCtx_EnumObjectParam(This,ppenum) (This)->lpVtbl->EnumObjectParam(This,ppenum)
   8115 #define IBindCtx_RevokeObjectParam(This,pszKey) (This)->lpVtbl->RevokeObjectParam(This,pszKey)
   8116 #else
   8117 /*** IUnknown methods ***/
   8118 static FORCEINLINE HRESULT IBindCtx_QueryInterface(IBindCtx* This,REFIID riid,void **ppvObject) {
   8119     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8120 }
   8121 static FORCEINLINE ULONG IBindCtx_AddRef(IBindCtx* This) {
   8122     return This->lpVtbl->AddRef(This);
   8123 }
   8124 static FORCEINLINE ULONG IBindCtx_Release(IBindCtx* This) {
   8125     return This->lpVtbl->Release(This);
   8126 }
   8127 /*** IBindCtx methods ***/
   8128 static FORCEINLINE HRESULT IBindCtx_RegisterObjectBound(IBindCtx* This,IUnknown *punk) {
   8129     return This->lpVtbl->RegisterObjectBound(This,punk);
   8130 }
   8131 static FORCEINLINE HRESULT IBindCtx_RevokeObjectBound(IBindCtx* This,IUnknown *punk) {
   8132     return This->lpVtbl->RevokeObjectBound(This,punk);
   8133 }
   8134 static FORCEINLINE HRESULT IBindCtx_ReleaseBoundObjects(IBindCtx* This) {
   8135     return This->lpVtbl->ReleaseBoundObjects(This);
   8136 }
   8137 static FORCEINLINE HRESULT IBindCtx_SetBindOptions(IBindCtx* This,BIND_OPTS *pbindopts) {
   8138     return This->lpVtbl->SetBindOptions(This,pbindopts);
   8139 }
   8140 static FORCEINLINE HRESULT IBindCtx_GetBindOptions(IBindCtx* This,BIND_OPTS *pbindopts) {
   8141     return This->lpVtbl->GetBindOptions(This,pbindopts);
   8142 }
   8143 static FORCEINLINE HRESULT IBindCtx_GetRunningObjectTable(IBindCtx* This,IRunningObjectTable **pprot) {
   8144     return This->lpVtbl->GetRunningObjectTable(This,pprot);
   8145 }
   8146 static FORCEINLINE HRESULT IBindCtx_RegisterObjectParam(IBindCtx* This,LPOLESTR pszKey,IUnknown *punk) {
   8147     return This->lpVtbl->RegisterObjectParam(This,pszKey,punk);
   8148 }
   8149 static FORCEINLINE HRESULT IBindCtx_GetObjectParam(IBindCtx* This,LPOLESTR pszKey,IUnknown **ppunk) {
   8150     return This->lpVtbl->GetObjectParam(This,pszKey,ppunk);
   8151 }
   8152 static FORCEINLINE HRESULT IBindCtx_EnumObjectParam(IBindCtx* This,IEnumString **ppenum) {
   8153     return This->lpVtbl->EnumObjectParam(This,ppenum);
   8154 }
   8155 static FORCEINLINE HRESULT IBindCtx_RevokeObjectParam(IBindCtx* This,LPOLESTR pszKey) {
   8156     return This->lpVtbl->RevokeObjectParam(This,pszKey);
   8157 }
   8158 #endif
   8159 #endif
   8160 
   8161 #endif
   8162 
   8163 HRESULT STDMETHODCALLTYPE IBindCtx_RegisterObjectBound_Proxy(
   8164     IBindCtx* This,
   8165     IUnknown *punk);
   8166 void __RPC_STUB IBindCtx_RegisterObjectBound_Stub(
   8167     IRpcStubBuffer* This,
   8168     IRpcChannelBuffer* pRpcChannelBuffer,
   8169     PRPC_MESSAGE pRpcMessage,
   8170     DWORD* pdwStubPhase);
   8171 HRESULT STDMETHODCALLTYPE IBindCtx_RevokeObjectBound_Proxy(
   8172     IBindCtx* This,
   8173     IUnknown *punk);
   8174 void __RPC_STUB IBindCtx_RevokeObjectBound_Stub(
   8175     IRpcStubBuffer* This,
   8176     IRpcChannelBuffer* pRpcChannelBuffer,
   8177     PRPC_MESSAGE pRpcMessage,
   8178     DWORD* pdwStubPhase);
   8179 HRESULT STDMETHODCALLTYPE IBindCtx_ReleaseBoundObjects_Proxy(
   8180     IBindCtx* This);
   8181 void __RPC_STUB IBindCtx_ReleaseBoundObjects_Stub(
   8182     IRpcStubBuffer* This,
   8183     IRpcChannelBuffer* pRpcChannelBuffer,
   8184     PRPC_MESSAGE pRpcMessage,
   8185     DWORD* pdwStubPhase);
   8186 HRESULT STDMETHODCALLTYPE IBindCtx_RemoteSetBindOptions_Proxy(
   8187     IBindCtx* This,
   8188     BIND_OPTS2 *pbindopts);
   8189 void __RPC_STUB IBindCtx_RemoteSetBindOptions_Stub(
   8190     IRpcStubBuffer* This,
   8191     IRpcChannelBuffer* pRpcChannelBuffer,
   8192     PRPC_MESSAGE pRpcMessage,
   8193     DWORD* pdwStubPhase);
   8194 HRESULT STDMETHODCALLTYPE IBindCtx_RemoteGetBindOptions_Proxy(
   8195     IBindCtx* This,
   8196     BIND_OPTS2 *pbindopts);
   8197 void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub(
   8198     IRpcStubBuffer* This,
   8199     IRpcChannelBuffer* pRpcChannelBuffer,
   8200     PRPC_MESSAGE pRpcMessage,
   8201     DWORD* pdwStubPhase);
   8202 HRESULT STDMETHODCALLTYPE IBindCtx_GetRunningObjectTable_Proxy(
   8203     IBindCtx* This,
   8204     IRunningObjectTable **pprot);
   8205 void __RPC_STUB IBindCtx_GetRunningObjectTable_Stub(
   8206     IRpcStubBuffer* This,
   8207     IRpcChannelBuffer* pRpcChannelBuffer,
   8208     PRPC_MESSAGE pRpcMessage,
   8209     DWORD* pdwStubPhase);
   8210 HRESULT STDMETHODCALLTYPE IBindCtx_RegisterObjectParam_Proxy(
   8211     IBindCtx* This,
   8212     LPOLESTR pszKey,
   8213     IUnknown *punk);
   8214 void __RPC_STUB IBindCtx_RegisterObjectParam_Stub(
   8215     IRpcStubBuffer* This,
   8216     IRpcChannelBuffer* pRpcChannelBuffer,
   8217     PRPC_MESSAGE pRpcMessage,
   8218     DWORD* pdwStubPhase);
   8219 HRESULT STDMETHODCALLTYPE IBindCtx_GetObjectParam_Proxy(
   8220     IBindCtx* This,
   8221     LPOLESTR pszKey,
   8222     IUnknown **ppunk);
   8223 void __RPC_STUB IBindCtx_GetObjectParam_Stub(
   8224     IRpcStubBuffer* This,
   8225     IRpcChannelBuffer* pRpcChannelBuffer,
   8226     PRPC_MESSAGE pRpcMessage,
   8227     DWORD* pdwStubPhase);
   8228 HRESULT STDMETHODCALLTYPE IBindCtx_EnumObjectParam_Proxy(
   8229     IBindCtx* This,
   8230     IEnumString **ppenum);
   8231 void __RPC_STUB IBindCtx_EnumObjectParam_Stub(
   8232     IRpcStubBuffer* This,
   8233     IRpcChannelBuffer* pRpcChannelBuffer,
   8234     PRPC_MESSAGE pRpcMessage,
   8235     DWORD* pdwStubPhase);
   8236 HRESULT STDMETHODCALLTYPE IBindCtx_RevokeObjectParam_Proxy(
   8237     IBindCtx* This,
   8238     LPOLESTR pszKey);
   8239 void __RPC_STUB IBindCtx_RevokeObjectParam_Stub(
   8240     IRpcStubBuffer* This,
   8241     IRpcChannelBuffer* pRpcChannelBuffer,
   8242     PRPC_MESSAGE pRpcMessage,
   8243     DWORD* pdwStubPhase);
   8244 HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
   8245     IBindCtx* This,
   8246     BIND_OPTS *pbindopts);
   8247 HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
   8248     IBindCtx* This,
   8249     BIND_OPTS2 *pbindopts);
   8250 HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
   8251     IBindCtx* This,
   8252     BIND_OPTS *pbindopts);
   8253 HRESULT __RPC_STUB IBindCtx_GetBindOptions_Stub(
   8254     IBindCtx* This,
   8255     BIND_OPTS2 *pbindopts);
   8256 
   8257 #endif  /* __IBindCtx_INTERFACE_DEFINED__ */
   8258 
   8259 /*****************************************************************************
   8260  * IEnumMoniker interface
   8261  */
   8262 #ifndef __IEnumMoniker_INTERFACE_DEFINED__
   8263 #define __IEnumMoniker_INTERFACE_DEFINED__
   8264 
   8265 typedef IEnumMoniker *LPENUMMONIKER;
   8266 DEFINE_GUID(IID_IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   8267 #if defined(__cplusplus) && !defined(CINTERFACE)
   8268 MIDL_INTERFACE("00000102-0000-0000-c000-000000000046")
   8269 IEnumMoniker : public IUnknown
   8270 {
   8271     virtual HRESULT STDMETHODCALLTYPE Next(
   8272         ULONG celt,
   8273         IMoniker **rgelt,
   8274         ULONG *pceltFetched) = 0;
   8275 
   8276     virtual HRESULT STDMETHODCALLTYPE Skip(
   8277         ULONG celt) = 0;
   8278 
   8279     virtual HRESULT STDMETHODCALLTYPE Reset(
   8280         ) = 0;
   8281 
   8282     virtual HRESULT STDMETHODCALLTYPE Clone(
   8283         IEnumMoniker **ppenum) = 0;
   8284 
   8285 };
   8286 #ifdef __CRT_UUID_DECL
   8287 __CRT_UUID_DECL(IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   8288 #endif
   8289 #else
   8290 typedef struct IEnumMonikerVtbl {
   8291     BEGIN_INTERFACE
   8292 
   8293     /*** IUnknown methods ***/
   8294     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8295         IEnumMoniker* This,
   8296         REFIID riid,
   8297         void **ppvObject);
   8298 
   8299     ULONG (STDMETHODCALLTYPE *AddRef)(
   8300         IEnumMoniker* This);
   8301 
   8302     ULONG (STDMETHODCALLTYPE *Release)(
   8303         IEnumMoniker* This);
   8304 
   8305     /*** IEnumMoniker methods ***/
   8306     HRESULT (STDMETHODCALLTYPE *Next)(
   8307         IEnumMoniker* This,
   8308         ULONG celt,
   8309         IMoniker **rgelt,
   8310         ULONG *pceltFetched);
   8311 
   8312     HRESULT (STDMETHODCALLTYPE *Skip)(
   8313         IEnumMoniker* This,
   8314         ULONG celt);
   8315 
   8316     HRESULT (STDMETHODCALLTYPE *Reset)(
   8317         IEnumMoniker* This);
   8318 
   8319     HRESULT (STDMETHODCALLTYPE *Clone)(
   8320         IEnumMoniker* This,
   8321         IEnumMoniker **ppenum);
   8322 
   8323     END_INTERFACE
   8324 } IEnumMonikerVtbl;
   8325 interface IEnumMoniker {
   8326     CONST_VTBL IEnumMonikerVtbl* lpVtbl;
   8327 };
   8328 
   8329 #ifdef COBJMACROS
   8330 #ifndef WIDL_C_INLINE_WRAPPERS
   8331 /*** IUnknown methods ***/
   8332 #define IEnumMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8333 #define IEnumMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
   8334 #define IEnumMoniker_Release(This) (This)->lpVtbl->Release(This)
   8335 /*** IEnumMoniker methods ***/
   8336 #define IEnumMoniker_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   8337 #define IEnumMoniker_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   8338 #define IEnumMoniker_Reset(This) (This)->lpVtbl->Reset(This)
   8339 #define IEnumMoniker_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   8340 #else
   8341 /*** IUnknown methods ***/
   8342 static FORCEINLINE HRESULT IEnumMoniker_QueryInterface(IEnumMoniker* This,REFIID riid,void **ppvObject) {
   8343     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8344 }
   8345 static FORCEINLINE ULONG IEnumMoniker_AddRef(IEnumMoniker* This) {
   8346     return This->lpVtbl->AddRef(This);
   8347 }
   8348 static FORCEINLINE ULONG IEnumMoniker_Release(IEnumMoniker* This) {
   8349     return This->lpVtbl->Release(This);
   8350 }
   8351 /*** IEnumMoniker methods ***/
   8352 static FORCEINLINE HRESULT IEnumMoniker_Next(IEnumMoniker* This,ULONG celt,IMoniker **rgelt,ULONG *pceltFetched) {
   8353     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   8354 }
   8355 static FORCEINLINE HRESULT IEnumMoniker_Skip(IEnumMoniker* This,ULONG celt) {
   8356     return This->lpVtbl->Skip(This,celt);
   8357 }
   8358 static FORCEINLINE HRESULT IEnumMoniker_Reset(IEnumMoniker* This) {
   8359     return This->lpVtbl->Reset(This);
   8360 }
   8361 static FORCEINLINE HRESULT IEnumMoniker_Clone(IEnumMoniker* This,IEnumMoniker **ppenum) {
   8362     return This->lpVtbl->Clone(This,ppenum);
   8363 }
   8364 #endif
   8365 #endif
   8366 
   8367 #endif
   8368 
   8369 HRESULT STDMETHODCALLTYPE IEnumMoniker_RemoteNext_Proxy(
   8370     IEnumMoniker* This,
   8371     ULONG celt,
   8372     IMoniker **rgelt,
   8373     ULONG *pceltFetched);
   8374 void __RPC_STUB IEnumMoniker_RemoteNext_Stub(
   8375     IRpcStubBuffer* This,
   8376     IRpcChannelBuffer* pRpcChannelBuffer,
   8377     PRPC_MESSAGE pRpcMessage,
   8378     DWORD* pdwStubPhase);
   8379 HRESULT STDMETHODCALLTYPE IEnumMoniker_Skip_Proxy(
   8380     IEnumMoniker* This,
   8381     ULONG celt);
   8382 void __RPC_STUB IEnumMoniker_Skip_Stub(
   8383     IRpcStubBuffer* This,
   8384     IRpcChannelBuffer* pRpcChannelBuffer,
   8385     PRPC_MESSAGE pRpcMessage,
   8386     DWORD* pdwStubPhase);
   8387 HRESULT STDMETHODCALLTYPE IEnumMoniker_Reset_Proxy(
   8388     IEnumMoniker* This);
   8389 void __RPC_STUB IEnumMoniker_Reset_Stub(
   8390     IRpcStubBuffer* This,
   8391     IRpcChannelBuffer* pRpcChannelBuffer,
   8392     PRPC_MESSAGE pRpcMessage,
   8393     DWORD* pdwStubPhase);
   8394 HRESULT STDMETHODCALLTYPE IEnumMoniker_Clone_Proxy(
   8395     IEnumMoniker* This,
   8396     IEnumMoniker **ppenum);
   8397 void __RPC_STUB IEnumMoniker_Clone_Stub(
   8398     IRpcStubBuffer* This,
   8399     IRpcChannelBuffer* pRpcChannelBuffer,
   8400     PRPC_MESSAGE pRpcMessage,
   8401     DWORD* pdwStubPhase);
   8402 HRESULT CALLBACK IEnumMoniker_Next_Proxy(
   8403     IEnumMoniker* This,
   8404     ULONG celt,
   8405     IMoniker **rgelt,
   8406     ULONG *pceltFetched);
   8407 HRESULT __RPC_STUB IEnumMoniker_Next_Stub(
   8408     IEnumMoniker* This,
   8409     ULONG celt,
   8410     IMoniker **rgelt,
   8411     ULONG *pceltFetched);
   8412 
   8413 #endif  /* __IEnumMoniker_INTERFACE_DEFINED__ */
   8414 
   8415 #endif
   8416 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   8417 /*****************************************************************************
   8418  * IRunnableObject interface
   8419  */
   8420 #ifndef __IRunnableObject_INTERFACE_DEFINED__
   8421 #define __IRunnableObject_INTERFACE_DEFINED__
   8422 
   8423 typedef IRunnableObject *LPRUNNABLEOBJECT;
   8424 DEFINE_GUID(IID_IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   8425 #if defined(__cplusplus) && !defined(CINTERFACE)
   8426 MIDL_INTERFACE("00000126-0000-0000-c000-000000000046")
   8427 IRunnableObject : public IUnknown
   8428 {
   8429     virtual HRESULT STDMETHODCALLTYPE GetRunningClass(
   8430         LPCLSID lpClsid) = 0;
   8431 
   8432     virtual HRESULT STDMETHODCALLTYPE Run(
   8433         LPBINDCTX pbc) = 0;
   8434 
   8435     virtual WINBOOL STDMETHODCALLTYPE IsRunning(
   8436         ) = 0;
   8437 
   8438     virtual HRESULT STDMETHODCALLTYPE LockRunning(
   8439         WINBOOL fLock,
   8440         WINBOOL fLastUnlockCloses) = 0;
   8441 
   8442     virtual HRESULT STDMETHODCALLTYPE SetContainedObject(
   8443         WINBOOL fContained) = 0;
   8444 
   8445 };
   8446 #ifdef __CRT_UUID_DECL
   8447 __CRT_UUID_DECL(IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   8448 #endif
   8449 #else
   8450 typedef struct IRunnableObjectVtbl {
   8451     BEGIN_INTERFACE
   8452 
   8453     /*** IUnknown methods ***/
   8454     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8455         IRunnableObject* This,
   8456         REFIID riid,
   8457         void **ppvObject);
   8458 
   8459     ULONG (STDMETHODCALLTYPE *AddRef)(
   8460         IRunnableObject* This);
   8461 
   8462     ULONG (STDMETHODCALLTYPE *Release)(
   8463         IRunnableObject* This);
   8464 
   8465     /*** IRunnableObject methods ***/
   8466     HRESULT (STDMETHODCALLTYPE *GetRunningClass)(
   8467         IRunnableObject* This,
   8468         LPCLSID lpClsid);
   8469 
   8470     HRESULT (STDMETHODCALLTYPE *Run)(
   8471         IRunnableObject* This,
   8472         LPBINDCTX pbc);
   8473 
   8474     WINBOOL (STDMETHODCALLTYPE *IsRunning)(
   8475         IRunnableObject* This);
   8476 
   8477     HRESULT (STDMETHODCALLTYPE *LockRunning)(
   8478         IRunnableObject* This,
   8479         WINBOOL fLock,
   8480         WINBOOL fLastUnlockCloses);
   8481 
   8482     HRESULT (STDMETHODCALLTYPE *SetContainedObject)(
   8483         IRunnableObject* This,
   8484         WINBOOL fContained);
   8485 
   8486     END_INTERFACE
   8487 } IRunnableObjectVtbl;
   8488 interface IRunnableObject {
   8489     CONST_VTBL IRunnableObjectVtbl* lpVtbl;
   8490 };
   8491 
   8492 #ifdef COBJMACROS
   8493 #ifndef WIDL_C_INLINE_WRAPPERS
   8494 /*** IUnknown methods ***/
   8495 #define IRunnableObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8496 #define IRunnableObject_AddRef(This) (This)->lpVtbl->AddRef(This)
   8497 #define IRunnableObject_Release(This) (This)->lpVtbl->Release(This)
   8498 /*** IRunnableObject methods ***/
   8499 #define IRunnableObject_GetRunningClass(This,lpClsid) (This)->lpVtbl->GetRunningClass(This,lpClsid)
   8500 #define IRunnableObject_Run(This,pbc) (This)->lpVtbl->Run(This,pbc)
   8501 #define IRunnableObject_IsRunning(This) (This)->lpVtbl->IsRunning(This)
   8502 #define IRunnableObject_LockRunning(This,fLock,fLastUnlockCloses) (This)->lpVtbl->LockRunning(This,fLock,fLastUnlockCloses)
   8503 #define IRunnableObject_SetContainedObject(This,fContained) (This)->lpVtbl->SetContainedObject(This,fContained)
   8504 #else
   8505 /*** IUnknown methods ***/
   8506 static FORCEINLINE HRESULT IRunnableObject_QueryInterface(IRunnableObject* This,REFIID riid,void **ppvObject) {
   8507     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8508 }
   8509 static FORCEINLINE ULONG IRunnableObject_AddRef(IRunnableObject* This) {
   8510     return This->lpVtbl->AddRef(This);
   8511 }
   8512 static FORCEINLINE ULONG IRunnableObject_Release(IRunnableObject* This) {
   8513     return This->lpVtbl->Release(This);
   8514 }
   8515 /*** IRunnableObject methods ***/
   8516 static FORCEINLINE HRESULT IRunnableObject_GetRunningClass(IRunnableObject* This,LPCLSID lpClsid) {
   8517     return This->lpVtbl->GetRunningClass(This,lpClsid);
   8518 }
   8519 static FORCEINLINE HRESULT IRunnableObject_Run(IRunnableObject* This,LPBINDCTX pbc) {
   8520     return This->lpVtbl->Run(This,pbc);
   8521 }
   8522 static FORCEINLINE WINBOOL IRunnableObject_IsRunning(IRunnableObject* This) {
   8523     return This->lpVtbl->IsRunning(This);
   8524 }
   8525 static FORCEINLINE HRESULT IRunnableObject_LockRunning(IRunnableObject* This,WINBOOL fLock,WINBOOL fLastUnlockCloses) {
   8526     return This->lpVtbl->LockRunning(This,fLock,fLastUnlockCloses);
   8527 }
   8528 static FORCEINLINE HRESULT IRunnableObject_SetContainedObject(IRunnableObject* This,WINBOOL fContained) {
   8529     return This->lpVtbl->SetContainedObject(This,fContained);
   8530 }
   8531 #endif
   8532 #endif
   8533 
   8534 #endif
   8535 
   8536 HRESULT STDMETHODCALLTYPE IRunnableObject_GetRunningClass_Proxy(
   8537     IRunnableObject* This,
   8538     LPCLSID lpClsid);
   8539 void __RPC_STUB IRunnableObject_GetRunningClass_Stub(
   8540     IRpcStubBuffer* This,
   8541     IRpcChannelBuffer* pRpcChannelBuffer,
   8542     PRPC_MESSAGE pRpcMessage,
   8543     DWORD* pdwStubPhase);
   8544 HRESULT STDMETHODCALLTYPE IRunnableObject_Run_Proxy(
   8545     IRunnableObject* This,
   8546     LPBINDCTX pbc);
   8547 void __RPC_STUB IRunnableObject_Run_Stub(
   8548     IRpcStubBuffer* This,
   8549     IRpcChannelBuffer* pRpcChannelBuffer,
   8550     PRPC_MESSAGE pRpcMessage,
   8551     DWORD* pdwStubPhase);
   8552 HRESULT STDMETHODCALLTYPE IRunnableObject_RemoteIsRunning_Proxy(
   8553     IRunnableObject* This);
   8554 void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
   8555     IRpcStubBuffer* This,
   8556     IRpcChannelBuffer* pRpcChannelBuffer,
   8557     PRPC_MESSAGE pRpcMessage,
   8558     DWORD* pdwStubPhase);
   8559 HRESULT STDMETHODCALLTYPE IRunnableObject_LockRunning_Proxy(
   8560     IRunnableObject* This,
   8561     WINBOOL fLock,
   8562     WINBOOL fLastUnlockCloses);
   8563 void __RPC_STUB IRunnableObject_LockRunning_Stub(
   8564     IRpcStubBuffer* This,
   8565     IRpcChannelBuffer* pRpcChannelBuffer,
   8566     PRPC_MESSAGE pRpcMessage,
   8567     DWORD* pdwStubPhase);
   8568 HRESULT STDMETHODCALLTYPE IRunnableObject_SetContainedObject_Proxy(
   8569     IRunnableObject* This,
   8570     WINBOOL fContained);
   8571 void __RPC_STUB IRunnableObject_SetContainedObject_Stub(
   8572     IRpcStubBuffer* This,
   8573     IRpcChannelBuffer* pRpcChannelBuffer,
   8574     PRPC_MESSAGE pRpcMessage,
   8575     DWORD* pdwStubPhase);
   8576 WINBOOL CALLBACK IRunnableObject_IsRunning_Proxy(
   8577     IRunnableObject* This);
   8578 HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
   8579     IRunnableObject* This);
   8580 
   8581 #endif  /* __IRunnableObject_INTERFACE_DEFINED__ */
   8582 
   8583 /*****************************************************************************
   8584  * IRunningObjectTable interface
   8585  */
   8586 #ifndef __IRunningObjectTable_INTERFACE_DEFINED__
   8587 #define __IRunningObjectTable_INTERFACE_DEFINED__
   8588 
   8589 typedef IRunningObjectTable *LPRUNNINGOBJECTTABLE;
   8590 DEFINE_GUID(IID_IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   8591 #if defined(__cplusplus) && !defined(CINTERFACE)
   8592 MIDL_INTERFACE("00000010-0000-0000-c000-000000000046")
   8593 IRunningObjectTable : public IUnknown
   8594 {
   8595     virtual HRESULT STDMETHODCALLTYPE Register(
   8596         DWORD grfFlags,
   8597         IUnknown *punkObject,
   8598         IMoniker *pmkObjectName,
   8599         DWORD *pdwRegister) = 0;
   8600 
   8601     virtual HRESULT STDMETHODCALLTYPE Revoke(
   8602         DWORD dwRegister) = 0;
   8603 
   8604     virtual HRESULT STDMETHODCALLTYPE IsRunning(
   8605         IMoniker *pmkObjectName) = 0;
   8606 
   8607     virtual HRESULT STDMETHODCALLTYPE GetObject(
   8608         IMoniker *pmkObjectName,
   8609         IUnknown **ppunkObject) = 0;
   8610 
   8611     virtual HRESULT STDMETHODCALLTYPE NoteChangeTime(
   8612         DWORD dwRegister,
   8613         FILETIME *pfiletime) = 0;
   8614 
   8615     virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
   8616         IMoniker *pmkObjectName,
   8617         FILETIME *pfiletime) = 0;
   8618 
   8619     virtual HRESULT STDMETHODCALLTYPE EnumRunning(
   8620         IEnumMoniker **ppenumMoniker) = 0;
   8621 
   8622 };
   8623 #ifdef __CRT_UUID_DECL
   8624 __CRT_UUID_DECL(IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   8625 #endif
   8626 #else
   8627 typedef struct IRunningObjectTableVtbl {
   8628     BEGIN_INTERFACE
   8629 
   8630     /*** IUnknown methods ***/
   8631     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8632         IRunningObjectTable* This,
   8633         REFIID riid,
   8634         void **ppvObject);
   8635 
   8636     ULONG (STDMETHODCALLTYPE *AddRef)(
   8637         IRunningObjectTable* This);
   8638 
   8639     ULONG (STDMETHODCALLTYPE *Release)(
   8640         IRunningObjectTable* This);
   8641 
   8642     /*** IRunningObjectTable methods ***/
   8643     HRESULT (STDMETHODCALLTYPE *Register)(
   8644         IRunningObjectTable* This,
   8645         DWORD grfFlags,
   8646         IUnknown *punkObject,
   8647         IMoniker *pmkObjectName,
   8648         DWORD *pdwRegister);
   8649 
   8650     HRESULT (STDMETHODCALLTYPE *Revoke)(
   8651         IRunningObjectTable* This,
   8652         DWORD dwRegister);
   8653 
   8654     HRESULT (STDMETHODCALLTYPE *IsRunning)(
   8655         IRunningObjectTable* This,
   8656         IMoniker *pmkObjectName);
   8657 
   8658     HRESULT (STDMETHODCALLTYPE *GetObject)(
   8659         IRunningObjectTable* This,
   8660         IMoniker *pmkObjectName,
   8661         IUnknown **ppunkObject);
   8662 
   8663     HRESULT (STDMETHODCALLTYPE *NoteChangeTime)(
   8664         IRunningObjectTable* This,
   8665         DWORD dwRegister,
   8666         FILETIME *pfiletime);
   8667 
   8668     HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
   8669         IRunningObjectTable* This,
   8670         IMoniker *pmkObjectName,
   8671         FILETIME *pfiletime);
   8672 
   8673     HRESULT (STDMETHODCALLTYPE *EnumRunning)(
   8674         IRunningObjectTable* This,
   8675         IEnumMoniker **ppenumMoniker);
   8676 
   8677     END_INTERFACE
   8678 } IRunningObjectTableVtbl;
   8679 interface IRunningObjectTable {
   8680     CONST_VTBL IRunningObjectTableVtbl* lpVtbl;
   8681 };
   8682 
   8683 #ifdef COBJMACROS
   8684 #ifndef WIDL_C_INLINE_WRAPPERS
   8685 /*** IUnknown methods ***/
   8686 #define IRunningObjectTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8687 #define IRunningObjectTable_AddRef(This) (This)->lpVtbl->AddRef(This)
   8688 #define IRunningObjectTable_Release(This) (This)->lpVtbl->Release(This)
   8689 /*** IRunningObjectTable methods ***/
   8690 #define IRunningObjectTable_Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister) (This)->lpVtbl->Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister)
   8691 #define IRunningObjectTable_Revoke(This,dwRegister) (This)->lpVtbl->Revoke(This,dwRegister)
   8692 #define IRunningObjectTable_IsRunning(This,pmkObjectName) (This)->lpVtbl->IsRunning(This,pmkObjectName)
   8693 #define IRunningObjectTable_GetObject(This,pmkObjectName,ppunkObject) (This)->lpVtbl->GetObject(This,pmkObjectName,ppunkObject)
   8694 #define IRunningObjectTable_NoteChangeTime(This,dwRegister,pfiletime) (This)->lpVtbl->NoteChangeTime(This,dwRegister,pfiletime)
   8695 #define IRunningObjectTable_GetTimeOfLastChange(This,pmkObjectName,pfiletime) (This)->lpVtbl->GetTimeOfLastChange(This,pmkObjectName,pfiletime)
   8696 #define IRunningObjectTable_EnumRunning(This,ppenumMoniker) (This)->lpVtbl->EnumRunning(This,ppenumMoniker)
   8697 #else
   8698 /*** IUnknown methods ***/
   8699 static FORCEINLINE HRESULT IRunningObjectTable_QueryInterface(IRunningObjectTable* This,REFIID riid,void **ppvObject) {
   8700     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8701 }
   8702 static FORCEINLINE ULONG IRunningObjectTable_AddRef(IRunningObjectTable* This) {
   8703     return This->lpVtbl->AddRef(This);
   8704 }
   8705 static FORCEINLINE ULONG IRunningObjectTable_Release(IRunningObjectTable* This) {
   8706     return This->lpVtbl->Release(This);
   8707 }
   8708 /*** IRunningObjectTable methods ***/
   8709 static FORCEINLINE HRESULT IRunningObjectTable_Register(IRunningObjectTable* This,DWORD grfFlags,IUnknown *punkObject,IMoniker *pmkObjectName,DWORD *pdwRegister) {
   8710     return This->lpVtbl->Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister);
   8711 }
   8712 static FORCEINLINE HRESULT IRunningObjectTable_Revoke(IRunningObjectTable* This,DWORD dwRegister) {
   8713     return This->lpVtbl->Revoke(This,dwRegister);
   8714 }
   8715 static FORCEINLINE HRESULT IRunningObjectTable_IsRunning(IRunningObjectTable* This,IMoniker *pmkObjectName) {
   8716     return This->lpVtbl->IsRunning(This,pmkObjectName);
   8717 }
   8718 static FORCEINLINE HRESULT IRunningObjectTable_GetObject(IRunningObjectTable* This,IMoniker *pmkObjectName,IUnknown **ppunkObject) {
   8719     return This->lpVtbl->GetObject(This,pmkObjectName,ppunkObject);
   8720 }
   8721 static FORCEINLINE HRESULT IRunningObjectTable_NoteChangeTime(IRunningObjectTable* This,DWORD dwRegister,FILETIME *pfiletime) {
   8722     return This->lpVtbl->NoteChangeTime(This,dwRegister,pfiletime);
   8723 }
   8724 static FORCEINLINE HRESULT IRunningObjectTable_GetTimeOfLastChange(IRunningObjectTable* This,IMoniker *pmkObjectName,FILETIME *pfiletime) {
   8725     return This->lpVtbl->GetTimeOfLastChange(This,pmkObjectName,pfiletime);
   8726 }
   8727 static FORCEINLINE HRESULT IRunningObjectTable_EnumRunning(IRunningObjectTable* This,IEnumMoniker **ppenumMoniker) {
   8728     return This->lpVtbl->EnumRunning(This,ppenumMoniker);
   8729 }
   8730 #endif
   8731 #endif
   8732 
   8733 #endif
   8734 
   8735 HRESULT STDMETHODCALLTYPE IRunningObjectTable_Register_Proxy(
   8736     IRunningObjectTable* This,
   8737     DWORD grfFlags,
   8738     IUnknown *punkObject,
   8739     IMoniker *pmkObjectName,
   8740     DWORD *pdwRegister);
   8741 void __RPC_STUB IRunningObjectTable_Register_Stub(
   8742     IRpcStubBuffer* This,
   8743     IRpcChannelBuffer* pRpcChannelBuffer,
   8744     PRPC_MESSAGE pRpcMessage,
   8745     DWORD* pdwStubPhase);
   8746 HRESULT STDMETHODCALLTYPE IRunningObjectTable_Revoke_Proxy(
   8747     IRunningObjectTable* This,
   8748     DWORD dwRegister);
   8749 void __RPC_STUB IRunningObjectTable_Revoke_Stub(
   8750     IRpcStubBuffer* This,
   8751     IRpcChannelBuffer* pRpcChannelBuffer,
   8752     PRPC_MESSAGE pRpcMessage,
   8753     DWORD* pdwStubPhase);
   8754 HRESULT STDMETHODCALLTYPE IRunningObjectTable_IsRunning_Proxy(
   8755     IRunningObjectTable* This,
   8756     IMoniker *pmkObjectName);
   8757 void __RPC_STUB IRunningObjectTable_IsRunning_Stub(
   8758     IRpcStubBuffer* This,
   8759     IRpcChannelBuffer* pRpcChannelBuffer,
   8760     PRPC_MESSAGE pRpcMessage,
   8761     DWORD* pdwStubPhase);
   8762 HRESULT STDMETHODCALLTYPE IRunningObjectTable_GetObject_Proxy(
   8763     IRunningObjectTable* This,
   8764     IMoniker *pmkObjectName,
   8765     IUnknown **ppunkObject);
   8766 void __RPC_STUB IRunningObjectTable_GetObject_Stub(
   8767     IRpcStubBuffer* This,
   8768     IRpcChannelBuffer* pRpcChannelBuffer,
   8769     PRPC_MESSAGE pRpcMessage,
   8770     DWORD* pdwStubPhase);
   8771 HRESULT STDMETHODCALLTYPE IRunningObjectTable_NoteChangeTime_Proxy(
   8772     IRunningObjectTable* This,
   8773     DWORD dwRegister,
   8774     FILETIME *pfiletime);
   8775 void __RPC_STUB IRunningObjectTable_NoteChangeTime_Stub(
   8776     IRpcStubBuffer* This,
   8777     IRpcChannelBuffer* pRpcChannelBuffer,
   8778     PRPC_MESSAGE pRpcMessage,
   8779     DWORD* pdwStubPhase);
   8780 HRESULT STDMETHODCALLTYPE IRunningObjectTable_GetTimeOfLastChange_Proxy(
   8781     IRunningObjectTable* This,
   8782     IMoniker *pmkObjectName,
   8783     FILETIME *pfiletime);
   8784 void __RPC_STUB IRunningObjectTable_GetTimeOfLastChange_Stub(
   8785     IRpcStubBuffer* This,
   8786     IRpcChannelBuffer* pRpcChannelBuffer,
   8787     PRPC_MESSAGE pRpcMessage,
   8788     DWORD* pdwStubPhase);
   8789 HRESULT STDMETHODCALLTYPE IRunningObjectTable_EnumRunning_Proxy(
   8790     IRunningObjectTable* This,
   8791     IEnumMoniker **ppenumMoniker);
   8792 void __RPC_STUB IRunningObjectTable_EnumRunning_Stub(
   8793     IRpcStubBuffer* This,
   8794     IRpcChannelBuffer* pRpcChannelBuffer,
   8795     PRPC_MESSAGE pRpcMessage,
   8796     DWORD* pdwStubPhase);
   8797 
   8798 #endif  /* __IRunningObjectTable_INTERFACE_DEFINED__ */
   8799 
   8800 #endif
   8801 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   8802 /*****************************************************************************
   8803  * IPersist interface
   8804  */
   8805 #ifndef __IPersist_INTERFACE_DEFINED__
   8806 #define __IPersist_INTERFACE_DEFINED__
   8807 
   8808 typedef IPersist *LPPERSIST;
   8809 DEFINE_GUID(IID_IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   8810 #if defined(__cplusplus) && !defined(CINTERFACE)
   8811 MIDL_INTERFACE("0000010c-0000-0000-c000-000000000046")
   8812 IPersist : public IUnknown
   8813 {
   8814     virtual HRESULT STDMETHODCALLTYPE GetClassID(
   8815         CLSID *pClassID) = 0;
   8816 
   8817 };
   8818 #ifdef __CRT_UUID_DECL
   8819 __CRT_UUID_DECL(IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   8820 #endif
   8821 #else
   8822 typedef struct IPersistVtbl {
   8823     BEGIN_INTERFACE
   8824 
   8825     /*** IUnknown methods ***/
   8826     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8827         IPersist* This,
   8828         REFIID riid,
   8829         void **ppvObject);
   8830 
   8831     ULONG (STDMETHODCALLTYPE *AddRef)(
   8832         IPersist* This);
   8833 
   8834     ULONG (STDMETHODCALLTYPE *Release)(
   8835         IPersist* This);
   8836 
   8837     /*** IPersist methods ***/
   8838     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   8839         IPersist* This,
   8840         CLSID *pClassID);
   8841 
   8842     END_INTERFACE
   8843 } IPersistVtbl;
   8844 interface IPersist {
   8845     CONST_VTBL IPersistVtbl* lpVtbl;
   8846 };
   8847 
   8848 #ifdef COBJMACROS
   8849 #ifndef WIDL_C_INLINE_WRAPPERS
   8850 /*** IUnknown methods ***/
   8851 #define IPersist_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8852 #define IPersist_AddRef(This) (This)->lpVtbl->AddRef(This)
   8853 #define IPersist_Release(This) (This)->lpVtbl->Release(This)
   8854 /*** IPersist methods ***/
   8855 #define IPersist_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   8856 #else
   8857 /*** IUnknown methods ***/
   8858 static FORCEINLINE HRESULT IPersist_QueryInterface(IPersist* This,REFIID riid,void **ppvObject) {
   8859     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8860 }
   8861 static FORCEINLINE ULONG IPersist_AddRef(IPersist* This) {
   8862     return This->lpVtbl->AddRef(This);
   8863 }
   8864 static FORCEINLINE ULONG IPersist_Release(IPersist* This) {
   8865     return This->lpVtbl->Release(This);
   8866 }
   8867 /*** IPersist methods ***/
   8868 static FORCEINLINE HRESULT IPersist_GetClassID(IPersist* This,CLSID *pClassID) {
   8869     return This->lpVtbl->GetClassID(This,pClassID);
   8870 }
   8871 #endif
   8872 #endif
   8873 
   8874 #endif
   8875 
   8876 HRESULT STDMETHODCALLTYPE IPersist_GetClassID_Proxy(
   8877     IPersist* This,
   8878     CLSID *pClassID);
   8879 void __RPC_STUB IPersist_GetClassID_Stub(
   8880     IRpcStubBuffer* This,
   8881     IRpcChannelBuffer* pRpcChannelBuffer,
   8882     PRPC_MESSAGE pRpcMessage,
   8883     DWORD* pdwStubPhase);
   8884 
   8885 #endif  /* __IPersist_INTERFACE_DEFINED__ */
   8886 
   8887 /*****************************************************************************
   8888  * IPersistStream interface
   8889  */
   8890 #ifndef __IPersistStream_INTERFACE_DEFINED__
   8891 #define __IPersistStream_INTERFACE_DEFINED__
   8892 
   8893 typedef IPersistStream *LPPERSISTSTREAM;
   8894 DEFINE_GUID(IID_IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   8895 #if defined(__cplusplus) && !defined(CINTERFACE)
   8896 MIDL_INTERFACE("00000109-0000-0000-c000-000000000046")
   8897 IPersistStream : public IPersist
   8898 {
   8899     virtual HRESULT STDMETHODCALLTYPE IsDirty(
   8900         ) = 0;
   8901 
   8902     virtual HRESULT STDMETHODCALLTYPE Load(
   8903         IStream *pStm) = 0;
   8904 
   8905     virtual HRESULT STDMETHODCALLTYPE Save(
   8906         IStream *pStm,
   8907         WINBOOL fClearDirty) = 0;
   8908 
   8909     virtual HRESULT STDMETHODCALLTYPE GetSizeMax(
   8910         ULARGE_INTEGER *pcbSize) = 0;
   8911 
   8912 };
   8913 #ifdef __CRT_UUID_DECL
   8914 __CRT_UUID_DECL(IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   8915 #endif
   8916 #else
   8917 typedef struct IPersistStreamVtbl {
   8918     BEGIN_INTERFACE
   8919 
   8920     /*** IUnknown methods ***/
   8921     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8922         IPersistStream* This,
   8923         REFIID riid,
   8924         void **ppvObject);
   8925 
   8926     ULONG (STDMETHODCALLTYPE *AddRef)(
   8927         IPersistStream* This);
   8928 
   8929     ULONG (STDMETHODCALLTYPE *Release)(
   8930         IPersistStream* This);
   8931 
   8932     /*** IPersist methods ***/
   8933     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   8934         IPersistStream* This,
   8935         CLSID *pClassID);
   8936 
   8937     /*** IPersistStream methods ***/
   8938     HRESULT (STDMETHODCALLTYPE *IsDirty)(
   8939         IPersistStream* This);
   8940 
   8941     HRESULT (STDMETHODCALLTYPE *Load)(
   8942         IPersistStream* This,
   8943         IStream *pStm);
   8944 
   8945     HRESULT (STDMETHODCALLTYPE *Save)(
   8946         IPersistStream* This,
   8947         IStream *pStm,
   8948         WINBOOL fClearDirty);
   8949 
   8950     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
   8951         IPersistStream* This,
   8952         ULARGE_INTEGER *pcbSize);
   8953 
   8954     END_INTERFACE
   8955 } IPersistStreamVtbl;
   8956 interface IPersistStream {
   8957     CONST_VTBL IPersistStreamVtbl* lpVtbl;
   8958 };
   8959 
   8960 #ifdef COBJMACROS
   8961 #ifndef WIDL_C_INLINE_WRAPPERS
   8962 /*** IUnknown methods ***/
   8963 #define IPersistStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8964 #define IPersistStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   8965 #define IPersistStream_Release(This) (This)->lpVtbl->Release(This)
   8966 /*** IPersist methods ***/
   8967 #define IPersistStream_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   8968 /*** IPersistStream methods ***/
   8969 #define IPersistStream_IsDirty(This) (This)->lpVtbl->IsDirty(This)
   8970 #define IPersistStream_Load(This,pStm) (This)->lpVtbl->Load(This,pStm)
   8971 #define IPersistStream_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty)
   8972 #define IPersistStream_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize)
   8973 #else
   8974 /*** IUnknown methods ***/
   8975 static FORCEINLINE HRESULT IPersistStream_QueryInterface(IPersistStream* This,REFIID riid,void **ppvObject) {
   8976     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8977 }
   8978 static FORCEINLINE ULONG IPersistStream_AddRef(IPersistStream* This) {
   8979     return This->lpVtbl->AddRef(This);
   8980 }
   8981 static FORCEINLINE ULONG IPersistStream_Release(IPersistStream* This) {
   8982     return This->lpVtbl->Release(This);
   8983 }
   8984 /*** IPersist methods ***/
   8985 static FORCEINLINE HRESULT IPersistStream_GetClassID(IPersistStream* This,CLSID *pClassID) {
   8986     return This->lpVtbl->GetClassID(This,pClassID);
   8987 }
   8988 /*** IPersistStream methods ***/
   8989 static FORCEINLINE HRESULT IPersistStream_IsDirty(IPersistStream* This) {
   8990     return This->lpVtbl->IsDirty(This);
   8991 }
   8992 static FORCEINLINE HRESULT IPersistStream_Load(IPersistStream* This,IStream *pStm) {
   8993     return This->lpVtbl->Load(This,pStm);
   8994 }
   8995 static FORCEINLINE HRESULT IPersistStream_Save(IPersistStream* This,IStream *pStm,WINBOOL fClearDirty) {
   8996     return This->lpVtbl->Save(This,pStm,fClearDirty);
   8997 }
   8998 static FORCEINLINE HRESULT IPersistStream_GetSizeMax(IPersistStream* This,ULARGE_INTEGER *pcbSize) {
   8999     return This->lpVtbl->GetSizeMax(This,pcbSize);
   9000 }
   9001 #endif
   9002 #endif
   9003 
   9004 #endif
   9005 
   9006 HRESULT STDMETHODCALLTYPE IPersistStream_IsDirty_Proxy(
   9007     IPersistStream* This);
   9008 void __RPC_STUB IPersistStream_IsDirty_Stub(
   9009     IRpcStubBuffer* This,
   9010     IRpcChannelBuffer* pRpcChannelBuffer,
   9011     PRPC_MESSAGE pRpcMessage,
   9012     DWORD* pdwStubPhase);
   9013 HRESULT STDMETHODCALLTYPE IPersistStream_Load_Proxy(
   9014     IPersistStream* This,
   9015     IStream *pStm);
   9016 void __RPC_STUB IPersistStream_Load_Stub(
   9017     IRpcStubBuffer* This,
   9018     IRpcChannelBuffer* pRpcChannelBuffer,
   9019     PRPC_MESSAGE pRpcMessage,
   9020     DWORD* pdwStubPhase);
   9021 HRESULT STDMETHODCALLTYPE IPersistStream_Save_Proxy(
   9022     IPersistStream* This,
   9023     IStream *pStm,
   9024     WINBOOL fClearDirty);
   9025 void __RPC_STUB IPersistStream_Save_Stub(
   9026     IRpcStubBuffer* This,
   9027     IRpcChannelBuffer* pRpcChannelBuffer,
   9028     PRPC_MESSAGE pRpcMessage,
   9029     DWORD* pdwStubPhase);
   9030 HRESULT STDMETHODCALLTYPE IPersistStream_GetSizeMax_Proxy(
   9031     IPersistStream* This,
   9032     ULARGE_INTEGER *pcbSize);
   9033 void __RPC_STUB IPersistStream_GetSizeMax_Stub(
   9034     IRpcStubBuffer* This,
   9035     IRpcChannelBuffer* pRpcChannelBuffer,
   9036     PRPC_MESSAGE pRpcMessage,
   9037     DWORD* pdwStubPhase);
   9038 
   9039 #endif  /* __IPersistStream_INTERFACE_DEFINED__ */
   9040 
   9041 /*****************************************************************************
   9042  * IMoniker interface
   9043  */
   9044 #ifndef __IMoniker_INTERFACE_DEFINED__
   9045 #define __IMoniker_INTERFACE_DEFINED__
   9046 
   9047 typedef IMoniker *LPMONIKER;
   9048 typedef enum tagMKSYS {
   9049     MKSYS_NONE = 0,
   9050     MKSYS_GENERICCOMPOSITE = 1,
   9051     MKSYS_FILEMONIKER = 2,
   9052     MKSYS_ANTIMONIKER = 3,
   9053     MKSYS_ITEMMONIKER = 4,
   9054     MKSYS_POINTERMONIKER = 5,
   9055     MKSYS_CLASSMONIKER = 7,
   9056     MKSYS_OBJREFMONIKER = 8,
   9057     MKSYS_SESSIONMONIKER = 9,
   9058     MKSYS_LUAMONIKER = 10
   9059 } MKSYS;
   9060 typedef enum tagMKREDUCE {
   9061     MKRREDUCE_ONE = 3 << 16,
   9062     MKRREDUCE_TOUSER = 2 << 16,
   9063     MKRREDUCE_THROUGHUSER = 1 << 16,
   9064     MKRREDUCE_ALL = 0
   9065 } MKRREDUCE;
   9066 DEFINE_GUID(IID_IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   9067 #if defined(__cplusplus) && !defined(CINTERFACE)
   9068 MIDL_INTERFACE("0000000f-0000-0000-c000-000000000046")
   9069 IMoniker : public IPersistStream
   9070 {
   9071     virtual HRESULT STDMETHODCALLTYPE BindToObject(
   9072         IBindCtx *pbc,
   9073         IMoniker *pmkToLeft,
   9074         REFIID riidResult,
   9075         void **ppvResult) = 0;
   9076 
   9077     virtual HRESULT STDMETHODCALLTYPE BindToStorage(
   9078         IBindCtx *pbc,
   9079         IMoniker *pmkToLeft,
   9080         REFIID riid,
   9081         void **ppvObj) = 0;
   9082 
   9083     virtual HRESULT STDMETHODCALLTYPE Reduce(
   9084         IBindCtx *pbc,
   9085         DWORD dwReduceHowFar,
   9086         IMoniker **ppmkToLeft,
   9087         IMoniker **ppmkReduced) = 0;
   9088 
   9089     virtual HRESULT STDMETHODCALLTYPE ComposeWith(
   9090         IMoniker *pmkRight,
   9091         WINBOOL fOnlyIfNotGeneric,
   9092         IMoniker **ppmkComposite) = 0;
   9093 
   9094     virtual HRESULT STDMETHODCALLTYPE Enum(
   9095         WINBOOL fForward,
   9096         IEnumMoniker **ppenumMoniker) = 0;
   9097 
   9098     virtual HRESULT STDMETHODCALLTYPE IsEqual(
   9099         IMoniker *pmkOtherMoniker) = 0;
   9100 
   9101     virtual HRESULT STDMETHODCALLTYPE Hash(
   9102         DWORD *pdwHash) = 0;
   9103 
   9104     virtual HRESULT STDMETHODCALLTYPE IsRunning(
   9105         IBindCtx *pbc,
   9106         IMoniker *pmkToLeft,
   9107         IMoniker *pmkNewlyRunning) = 0;
   9108 
   9109     virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
   9110         IBindCtx *pbc,
   9111         IMoniker *pmkToLeft,
   9112         FILETIME *pFileTime) = 0;
   9113 
   9114     virtual HRESULT STDMETHODCALLTYPE Inverse(
   9115         IMoniker **ppmk) = 0;
   9116 
   9117     virtual HRESULT STDMETHODCALLTYPE CommonPrefixWith(
   9118         IMoniker *pmkOther,
   9119         IMoniker **ppmkPrefix) = 0;
   9120 
   9121     virtual HRESULT STDMETHODCALLTYPE RelativePathTo(
   9122         IMoniker *pmkOther,
   9123         IMoniker **ppmkRelPath) = 0;
   9124 
   9125     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
   9126         IBindCtx *pbc,
   9127         IMoniker *pmkToLeft,
   9128         LPOLESTR *ppszDisplayName) = 0;
   9129 
   9130     virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
   9131         IBindCtx *pbc,
   9132         IMoniker *pmkToLeft,
   9133         LPOLESTR pszDisplayName,
   9134         ULONG *pchEaten,
   9135         IMoniker **ppmkOut) = 0;
   9136 
   9137     virtual HRESULT STDMETHODCALLTYPE IsSystemMoniker(
   9138         DWORD *pdwMksys) = 0;
   9139 
   9140 };
   9141 #ifdef __CRT_UUID_DECL
   9142 __CRT_UUID_DECL(IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   9143 #endif
   9144 #else
   9145 typedef struct IMonikerVtbl {
   9146     BEGIN_INTERFACE
   9147 
   9148     /*** IUnknown methods ***/
   9149     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9150         IMoniker* This,
   9151         REFIID riid,
   9152         void **ppvObject);
   9153 
   9154     ULONG (STDMETHODCALLTYPE *AddRef)(
   9155         IMoniker* This);
   9156 
   9157     ULONG (STDMETHODCALLTYPE *Release)(
   9158         IMoniker* This);
   9159 
   9160     /*** IPersist methods ***/
   9161     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   9162         IMoniker* This,
   9163         CLSID *pClassID);
   9164 
   9165     /*** IPersistStream methods ***/
   9166     HRESULT (STDMETHODCALLTYPE *IsDirty)(
   9167         IMoniker* This);
   9168 
   9169     HRESULT (STDMETHODCALLTYPE *Load)(
   9170         IMoniker* This,
   9171         IStream *pStm);
   9172 
   9173     HRESULT (STDMETHODCALLTYPE *Save)(
   9174         IMoniker* This,
   9175         IStream *pStm,
   9176         WINBOOL fClearDirty);
   9177 
   9178     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
   9179         IMoniker* This,
   9180         ULARGE_INTEGER *pcbSize);
   9181 
   9182     /*** IMoniker methods ***/
   9183     HRESULT (STDMETHODCALLTYPE *BindToObject)(
   9184         IMoniker* This,
   9185         IBindCtx *pbc,
   9186         IMoniker *pmkToLeft,
   9187         REFIID riidResult,
   9188         void **ppvResult);
   9189 
   9190     HRESULT (STDMETHODCALLTYPE *BindToStorage)(
   9191         IMoniker* This,
   9192         IBindCtx *pbc,
   9193         IMoniker *pmkToLeft,
   9194         REFIID riid,
   9195         void **ppvObj);
   9196 
   9197     HRESULT (STDMETHODCALLTYPE *Reduce)(
   9198         IMoniker* This,
   9199         IBindCtx *pbc,
   9200         DWORD dwReduceHowFar,
   9201         IMoniker **ppmkToLeft,
   9202         IMoniker **ppmkReduced);
   9203 
   9204     HRESULT (STDMETHODCALLTYPE *ComposeWith)(
   9205         IMoniker* This,
   9206         IMoniker *pmkRight,
   9207         WINBOOL fOnlyIfNotGeneric,
   9208         IMoniker **ppmkComposite);
   9209 
   9210     HRESULT (STDMETHODCALLTYPE *Enum)(
   9211         IMoniker* This,
   9212         WINBOOL fForward,
   9213         IEnumMoniker **ppenumMoniker);
   9214 
   9215     HRESULT (STDMETHODCALLTYPE *IsEqual)(
   9216         IMoniker* This,
   9217         IMoniker *pmkOtherMoniker);
   9218 
   9219     HRESULT (STDMETHODCALLTYPE *Hash)(
   9220         IMoniker* This,
   9221         DWORD *pdwHash);
   9222 
   9223     HRESULT (STDMETHODCALLTYPE *IsRunning)(
   9224         IMoniker* This,
   9225         IBindCtx *pbc,
   9226         IMoniker *pmkToLeft,
   9227         IMoniker *pmkNewlyRunning);
   9228 
   9229     HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
   9230         IMoniker* This,
   9231         IBindCtx *pbc,
   9232         IMoniker *pmkToLeft,
   9233         FILETIME *pFileTime);
   9234 
   9235     HRESULT (STDMETHODCALLTYPE *Inverse)(
   9236         IMoniker* This,
   9237         IMoniker **ppmk);
   9238 
   9239     HRESULT (STDMETHODCALLTYPE *CommonPrefixWith)(
   9240         IMoniker* This,
   9241         IMoniker *pmkOther,
   9242         IMoniker **ppmkPrefix);
   9243 
   9244     HRESULT (STDMETHODCALLTYPE *RelativePathTo)(
   9245         IMoniker* This,
   9246         IMoniker *pmkOther,
   9247         IMoniker **ppmkRelPath);
   9248 
   9249     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
   9250         IMoniker* This,
   9251         IBindCtx *pbc,
   9252         IMoniker *pmkToLeft,
   9253         LPOLESTR *ppszDisplayName);
   9254 
   9255     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
   9256         IMoniker* This,
   9257         IBindCtx *pbc,
   9258         IMoniker *pmkToLeft,
   9259         LPOLESTR pszDisplayName,
   9260         ULONG *pchEaten,
   9261         IMoniker **ppmkOut);
   9262 
   9263     HRESULT (STDMETHODCALLTYPE *IsSystemMoniker)(
   9264         IMoniker* This,
   9265         DWORD *pdwMksys);
   9266 
   9267     END_INTERFACE
   9268 } IMonikerVtbl;
   9269 interface IMoniker {
   9270     CONST_VTBL IMonikerVtbl* lpVtbl;
   9271 };
   9272 
   9273 #ifdef COBJMACROS
   9274 #ifndef WIDL_C_INLINE_WRAPPERS
   9275 /*** IUnknown methods ***/
   9276 #define IMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9277 #define IMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
   9278 #define IMoniker_Release(This) (This)->lpVtbl->Release(This)
   9279 /*** IPersist methods ***/
   9280 #define IMoniker_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   9281 /*** IPersistStream methods ***/
   9282 #define IMoniker_IsDirty(This) (This)->lpVtbl->IsDirty(This)
   9283 #define IMoniker_Load(This,pStm) (This)->lpVtbl->Load(This,pStm)
   9284 #define IMoniker_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty)
   9285 #define IMoniker_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize)
   9286 /*** IMoniker methods ***/
   9287 #define IMoniker_BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult) (This)->lpVtbl->BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult)
   9288 #define IMoniker_BindToStorage(This,pbc,pmkToLeft,riid,ppvObj) (This)->lpVtbl->BindToStorage(This,pbc,pmkToLeft,riid,ppvObj)
   9289 #define IMoniker_Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced) (This)->lpVtbl->Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced)
   9290 #define IMoniker_ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite) (This)->lpVtbl->ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite)
   9291 #define IMoniker_Enum(This,fForward,ppenumMoniker) (This)->lpVtbl->Enum(This,fForward,ppenumMoniker)
   9292 #define IMoniker_IsEqual(This,pmkOtherMoniker) (This)->lpVtbl->IsEqual(This,pmkOtherMoniker)
   9293 #define IMoniker_Hash(This,pdwHash) (This)->lpVtbl->Hash(This,pdwHash)
   9294 #define IMoniker_IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning) (This)->lpVtbl->IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning)
   9295 #define IMoniker_GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime) (This)->lpVtbl->GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime)
   9296 #define IMoniker_Inverse(This,ppmk) (This)->lpVtbl->Inverse(This,ppmk)
   9297 #define IMoniker_CommonPrefixWith(This,pmkOther,ppmkPrefix) (This)->lpVtbl->CommonPrefixWith(This,pmkOther,ppmkPrefix)
   9298 #define IMoniker_RelativePathTo(This,pmkOther,ppmkRelPath) (This)->lpVtbl->RelativePathTo(This,pmkOther,ppmkRelPath)
   9299 #define IMoniker_GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName) (This)->lpVtbl->GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName)
   9300 #define IMoniker_ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut) (This)->lpVtbl->ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut)
   9301 #define IMoniker_IsSystemMoniker(This,pdwMksys) (This)->lpVtbl->IsSystemMoniker(This,pdwMksys)
   9302 #else
   9303 /*** IUnknown methods ***/
   9304 static FORCEINLINE HRESULT IMoniker_QueryInterface(IMoniker* This,REFIID riid,void **ppvObject) {
   9305     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9306 }
   9307 static FORCEINLINE ULONG IMoniker_AddRef(IMoniker* This) {
   9308     return This->lpVtbl->AddRef(This);
   9309 }
   9310 static FORCEINLINE ULONG IMoniker_Release(IMoniker* This) {
   9311     return This->lpVtbl->Release(This);
   9312 }
   9313 /*** IPersist methods ***/
   9314 static FORCEINLINE HRESULT IMoniker_GetClassID(IMoniker* This,CLSID *pClassID) {
   9315     return This->lpVtbl->GetClassID(This,pClassID);
   9316 }
   9317 /*** IPersistStream methods ***/
   9318 static FORCEINLINE HRESULT IMoniker_IsDirty(IMoniker* This) {
   9319     return This->lpVtbl->IsDirty(This);
   9320 }
   9321 static FORCEINLINE HRESULT IMoniker_Load(IMoniker* This,IStream *pStm) {
   9322     return This->lpVtbl->Load(This,pStm);
   9323 }
   9324 static FORCEINLINE HRESULT IMoniker_Save(IMoniker* This,IStream *pStm,WINBOOL fClearDirty) {
   9325     return This->lpVtbl->Save(This,pStm,fClearDirty);
   9326 }
   9327 static FORCEINLINE HRESULT IMoniker_GetSizeMax(IMoniker* This,ULARGE_INTEGER *pcbSize) {
   9328     return This->lpVtbl->GetSizeMax(This,pcbSize);
   9329 }
   9330 /*** IMoniker methods ***/
   9331 static FORCEINLINE HRESULT IMoniker_BindToObject(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,REFIID riidResult,void **ppvResult) {
   9332     return This->lpVtbl->BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult);
   9333 }
   9334 static FORCEINLINE HRESULT IMoniker_BindToStorage(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,REFIID riid,void **ppvObj) {
   9335     return This->lpVtbl->BindToStorage(This,pbc,pmkToLeft,riid,ppvObj);
   9336 }
   9337 static FORCEINLINE HRESULT IMoniker_Reduce(IMoniker* This,IBindCtx *pbc,DWORD dwReduceHowFar,IMoniker **ppmkToLeft,IMoniker **ppmkReduced) {
   9338     return This->lpVtbl->Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced);
   9339 }
   9340 static FORCEINLINE HRESULT IMoniker_ComposeWith(IMoniker* This,IMoniker *pmkRight,WINBOOL fOnlyIfNotGeneric,IMoniker **ppmkComposite) {
   9341     return This->lpVtbl->ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite);
   9342 }
   9343 static FORCEINLINE HRESULT IMoniker_Enum(IMoniker* This,WINBOOL fForward,IEnumMoniker **ppenumMoniker) {
   9344     return This->lpVtbl->Enum(This,fForward,ppenumMoniker);
   9345 }
   9346 static FORCEINLINE HRESULT IMoniker_IsEqual(IMoniker* This,IMoniker *pmkOtherMoniker) {
   9347     return This->lpVtbl->IsEqual(This,pmkOtherMoniker);
   9348 }
   9349 static FORCEINLINE HRESULT IMoniker_Hash(IMoniker* This,DWORD *pdwHash) {
   9350     return This->lpVtbl->Hash(This,pdwHash);
   9351 }
   9352 static FORCEINLINE HRESULT IMoniker_IsRunning(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,IMoniker *pmkNewlyRunning) {
   9353     return This->lpVtbl->IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning);
   9354 }
   9355 static FORCEINLINE HRESULT IMoniker_GetTimeOfLastChange(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,FILETIME *pFileTime) {
   9356     return This->lpVtbl->GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime);
   9357 }
   9358 static FORCEINLINE HRESULT IMoniker_Inverse(IMoniker* This,IMoniker **ppmk) {
   9359     return This->lpVtbl->Inverse(This,ppmk);
   9360 }
   9361 static FORCEINLINE HRESULT IMoniker_CommonPrefixWith(IMoniker* This,IMoniker *pmkOther,IMoniker **ppmkPrefix) {
   9362     return This->lpVtbl->CommonPrefixWith(This,pmkOther,ppmkPrefix);
   9363 }
   9364 static FORCEINLINE HRESULT IMoniker_RelativePathTo(IMoniker* This,IMoniker *pmkOther,IMoniker **ppmkRelPath) {
   9365     return This->lpVtbl->RelativePathTo(This,pmkOther,ppmkRelPath);
   9366 }
   9367 static FORCEINLINE HRESULT IMoniker_GetDisplayName(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,LPOLESTR *ppszDisplayName) {
   9368     return This->lpVtbl->GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName);
   9369 }
   9370 static FORCEINLINE HRESULT IMoniker_ParseDisplayName(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,LPOLESTR pszDisplayName,ULONG *pchEaten,IMoniker **ppmkOut) {
   9371     return This->lpVtbl->ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut);
   9372 }
   9373 static FORCEINLINE HRESULT IMoniker_IsSystemMoniker(IMoniker* This,DWORD *pdwMksys) {
   9374     return This->lpVtbl->IsSystemMoniker(This,pdwMksys);
   9375 }
   9376 #endif
   9377 #endif
   9378 
   9379 #endif
   9380 
   9381 HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToObject_Proxy(
   9382     IMoniker* This,
   9383     IBindCtx *pbc,
   9384     IMoniker *pmkToLeft,
   9385     REFIID riidResult,
   9386     IUnknown **ppvResult);
   9387 void __RPC_STUB IMoniker_RemoteBindToObject_Stub(
   9388     IRpcStubBuffer* This,
   9389     IRpcChannelBuffer* pRpcChannelBuffer,
   9390     PRPC_MESSAGE pRpcMessage,
   9391     DWORD* pdwStubPhase);
   9392 HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToStorage_Proxy(
   9393     IMoniker* This,
   9394     IBindCtx *pbc,
   9395     IMoniker *pmkToLeft,
   9396     REFIID riid,
   9397     IUnknown **ppvObj);
   9398 void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
   9399     IRpcStubBuffer* This,
   9400     IRpcChannelBuffer* pRpcChannelBuffer,
   9401     PRPC_MESSAGE pRpcMessage,
   9402     DWORD* pdwStubPhase);
   9403 HRESULT STDMETHODCALLTYPE IMoniker_Reduce_Proxy(
   9404     IMoniker* This,
   9405     IBindCtx *pbc,
   9406     DWORD dwReduceHowFar,
   9407     IMoniker **ppmkToLeft,
   9408     IMoniker **ppmkReduced);
   9409 void __RPC_STUB IMoniker_Reduce_Stub(
   9410     IRpcStubBuffer* This,
   9411     IRpcChannelBuffer* pRpcChannelBuffer,
   9412     PRPC_MESSAGE pRpcMessage,
   9413     DWORD* pdwStubPhase);
   9414 HRESULT STDMETHODCALLTYPE IMoniker_ComposeWith_Proxy(
   9415     IMoniker* This,
   9416     IMoniker *pmkRight,
   9417     WINBOOL fOnlyIfNotGeneric,
   9418     IMoniker **ppmkComposite);
   9419 void __RPC_STUB IMoniker_ComposeWith_Stub(
   9420     IRpcStubBuffer* This,
   9421     IRpcChannelBuffer* pRpcChannelBuffer,
   9422     PRPC_MESSAGE pRpcMessage,
   9423     DWORD* pdwStubPhase);
   9424 HRESULT STDMETHODCALLTYPE IMoniker_Enum_Proxy(
   9425     IMoniker* This,
   9426     WINBOOL fForward,
   9427     IEnumMoniker **ppenumMoniker);
   9428 void __RPC_STUB IMoniker_Enum_Stub(
   9429     IRpcStubBuffer* This,
   9430     IRpcChannelBuffer* pRpcChannelBuffer,
   9431     PRPC_MESSAGE pRpcMessage,
   9432     DWORD* pdwStubPhase);
   9433 HRESULT STDMETHODCALLTYPE IMoniker_IsEqual_Proxy(
   9434     IMoniker* This,
   9435     IMoniker *pmkOtherMoniker);
   9436 void __RPC_STUB IMoniker_IsEqual_Stub(
   9437     IRpcStubBuffer* This,
   9438     IRpcChannelBuffer* pRpcChannelBuffer,
   9439     PRPC_MESSAGE pRpcMessage,
   9440     DWORD* pdwStubPhase);
   9441 HRESULT STDMETHODCALLTYPE IMoniker_Hash_Proxy(
   9442     IMoniker* This,
   9443     DWORD *pdwHash);
   9444 void __RPC_STUB IMoniker_Hash_Stub(
   9445     IRpcStubBuffer* This,
   9446     IRpcChannelBuffer* pRpcChannelBuffer,
   9447     PRPC_MESSAGE pRpcMessage,
   9448     DWORD* pdwStubPhase);
   9449 HRESULT STDMETHODCALLTYPE IMoniker_IsRunning_Proxy(
   9450     IMoniker* This,
   9451     IBindCtx *pbc,
   9452     IMoniker *pmkToLeft,
   9453     IMoniker *pmkNewlyRunning);
   9454 void __RPC_STUB IMoniker_IsRunning_Stub(
   9455     IRpcStubBuffer* This,
   9456     IRpcChannelBuffer* pRpcChannelBuffer,
   9457     PRPC_MESSAGE pRpcMessage,
   9458     DWORD* pdwStubPhase);
   9459 HRESULT STDMETHODCALLTYPE IMoniker_GetTimeOfLastChange_Proxy(
   9460     IMoniker* This,
   9461     IBindCtx *pbc,
   9462     IMoniker *pmkToLeft,
   9463     FILETIME *pFileTime);
   9464 void __RPC_STUB IMoniker_GetTimeOfLastChange_Stub(
   9465     IRpcStubBuffer* This,
   9466     IRpcChannelBuffer* pRpcChannelBuffer,
   9467     PRPC_MESSAGE pRpcMessage,
   9468     DWORD* pdwStubPhase);
   9469 HRESULT STDMETHODCALLTYPE IMoniker_Inverse_Proxy(
   9470     IMoniker* This,
   9471     IMoniker **ppmk);
   9472 void __RPC_STUB IMoniker_Inverse_Stub(
   9473     IRpcStubBuffer* This,
   9474     IRpcChannelBuffer* pRpcChannelBuffer,
   9475     PRPC_MESSAGE pRpcMessage,
   9476     DWORD* pdwStubPhase);
   9477 HRESULT STDMETHODCALLTYPE IMoniker_CommonPrefixWith_Proxy(
   9478     IMoniker* This,
   9479     IMoniker *pmkOther,
   9480     IMoniker **ppmkPrefix);
   9481 void __RPC_STUB IMoniker_CommonPrefixWith_Stub(
   9482     IRpcStubBuffer* This,
   9483     IRpcChannelBuffer* pRpcChannelBuffer,
   9484     PRPC_MESSAGE pRpcMessage,
   9485     DWORD* pdwStubPhase);
   9486 HRESULT STDMETHODCALLTYPE IMoniker_RelativePathTo_Proxy(
   9487     IMoniker* This,
   9488     IMoniker *pmkOther,
   9489     IMoniker **ppmkRelPath);
   9490 void __RPC_STUB IMoniker_RelativePathTo_Stub(
   9491     IRpcStubBuffer* This,
   9492     IRpcChannelBuffer* pRpcChannelBuffer,
   9493     PRPC_MESSAGE pRpcMessage,
   9494     DWORD* pdwStubPhase);
   9495 HRESULT STDMETHODCALLTYPE IMoniker_GetDisplayName_Proxy(
   9496     IMoniker* This,
   9497     IBindCtx *pbc,
   9498     IMoniker *pmkToLeft,
   9499     LPOLESTR *ppszDisplayName);
   9500 void __RPC_STUB IMoniker_GetDisplayName_Stub(
   9501     IRpcStubBuffer* This,
   9502     IRpcChannelBuffer* pRpcChannelBuffer,
   9503     PRPC_MESSAGE pRpcMessage,
   9504     DWORD* pdwStubPhase);
   9505 HRESULT STDMETHODCALLTYPE IMoniker_ParseDisplayName_Proxy(
   9506     IMoniker* This,
   9507     IBindCtx *pbc,
   9508     IMoniker *pmkToLeft,
   9509     LPOLESTR pszDisplayName,
   9510     ULONG *pchEaten,
   9511     IMoniker **ppmkOut);
   9512 void __RPC_STUB IMoniker_ParseDisplayName_Stub(
   9513     IRpcStubBuffer* This,
   9514     IRpcChannelBuffer* pRpcChannelBuffer,
   9515     PRPC_MESSAGE pRpcMessage,
   9516     DWORD* pdwStubPhase);
   9517 HRESULT STDMETHODCALLTYPE IMoniker_IsSystemMoniker_Proxy(
   9518     IMoniker* This,
   9519     DWORD *pdwMksys);
   9520 void __RPC_STUB IMoniker_IsSystemMoniker_Stub(
   9521     IRpcStubBuffer* This,
   9522     IRpcChannelBuffer* pRpcChannelBuffer,
   9523     PRPC_MESSAGE pRpcMessage,
   9524     DWORD* pdwStubPhase);
   9525 HRESULT CALLBACK IMoniker_BindToObject_Proxy(
   9526     IMoniker* This,
   9527     IBindCtx *pbc,
   9528     IMoniker *pmkToLeft,
   9529     REFIID riidResult,
   9530     void **ppvResult);
   9531 HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
   9532     IMoniker* This,
   9533     IBindCtx *pbc,
   9534     IMoniker *pmkToLeft,
   9535     REFIID riidResult,
   9536     IUnknown **ppvResult);
   9537 HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
   9538     IMoniker* This,
   9539     IBindCtx *pbc,
   9540     IMoniker *pmkToLeft,
   9541     REFIID riid,
   9542     void **ppvObj);
   9543 HRESULT __RPC_STUB IMoniker_BindToStorage_Stub(
   9544     IMoniker* This,
   9545     IBindCtx *pbc,
   9546     IMoniker *pmkToLeft,
   9547     REFIID riid,
   9548     IUnknown **ppvObj);
   9549 
   9550 #endif  /* __IMoniker_INTERFACE_DEFINED__ */
   9551 
   9552 #endif
   9553 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   9554 /*****************************************************************************
   9555  * IROTData interface
   9556  */
   9557 #ifndef __IROTData_INTERFACE_DEFINED__
   9558 #define __IROTData_INTERFACE_DEFINED__
   9559 
   9560 DEFINE_GUID(IID_IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f);
   9561 #if defined(__cplusplus) && !defined(CINTERFACE)
   9562 MIDL_INTERFACE("f29f6bc0-5021-11ce-aa15-00006901293f")
   9563 IROTData : public IUnknown
   9564 {
   9565     virtual HRESULT STDMETHODCALLTYPE GetComparisonData(
   9566         byte *pbData,
   9567         ULONG cbMax,
   9568         ULONG *pcbData) = 0;
   9569 
   9570 };
   9571 #ifdef __CRT_UUID_DECL
   9572 __CRT_UUID_DECL(IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f)
   9573 #endif
   9574 #else
   9575 typedef struct IROTDataVtbl {
   9576     BEGIN_INTERFACE
   9577 
   9578     /*** IUnknown methods ***/
   9579     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9580         IROTData* This,
   9581         REFIID riid,
   9582         void **ppvObject);
   9583 
   9584     ULONG (STDMETHODCALLTYPE *AddRef)(
   9585         IROTData* This);
   9586 
   9587     ULONG (STDMETHODCALLTYPE *Release)(
   9588         IROTData* This);
   9589 
   9590     /*** IROTData methods ***/
   9591     HRESULT (STDMETHODCALLTYPE *GetComparisonData)(
   9592         IROTData* This,
   9593         byte *pbData,
   9594         ULONG cbMax,
   9595         ULONG *pcbData);
   9596 
   9597     END_INTERFACE
   9598 } IROTDataVtbl;
   9599 interface IROTData {
   9600     CONST_VTBL IROTDataVtbl* lpVtbl;
   9601 };
   9602 
   9603 #ifdef COBJMACROS
   9604 #ifndef WIDL_C_INLINE_WRAPPERS
   9605 /*** IUnknown methods ***/
   9606 #define IROTData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9607 #define IROTData_AddRef(This) (This)->lpVtbl->AddRef(This)
   9608 #define IROTData_Release(This) (This)->lpVtbl->Release(This)
   9609 /*** IROTData methods ***/
   9610 #define IROTData_GetComparisonData(This,pbData,cbMax,pcbData) (This)->lpVtbl->GetComparisonData(This,pbData,cbMax,pcbData)
   9611 #else
   9612 /*** IUnknown methods ***/
   9613 static FORCEINLINE HRESULT IROTData_QueryInterface(IROTData* This,REFIID riid,void **ppvObject) {
   9614     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9615 }
   9616 static FORCEINLINE ULONG IROTData_AddRef(IROTData* This) {
   9617     return This->lpVtbl->AddRef(This);
   9618 }
   9619 static FORCEINLINE ULONG IROTData_Release(IROTData* This) {
   9620     return This->lpVtbl->Release(This);
   9621 }
   9622 /*** IROTData methods ***/
   9623 static FORCEINLINE HRESULT IROTData_GetComparisonData(IROTData* This,byte *pbData,ULONG cbMax,ULONG *pcbData) {
   9624     return This->lpVtbl->GetComparisonData(This,pbData,cbMax,pcbData);
   9625 }
   9626 #endif
   9627 #endif
   9628 
   9629 #endif
   9630 
   9631 HRESULT STDMETHODCALLTYPE IROTData_GetComparisonData_Proxy(
   9632     IROTData* This,
   9633     byte *pbData,
   9634     ULONG cbMax,
   9635     ULONG *pcbData);
   9636 void __RPC_STUB IROTData_GetComparisonData_Stub(
   9637     IRpcStubBuffer* This,
   9638     IRpcChannelBuffer* pRpcChannelBuffer,
   9639     PRPC_MESSAGE pRpcMessage,
   9640     DWORD* pdwStubPhase);
   9641 
   9642 #endif  /* __IROTData_INTERFACE_DEFINED__ */
   9643 
   9644 #endif
   9645 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   9646 /*****************************************************************************
   9647  * IEnumSTATSTG interface
   9648  */
   9649 #ifndef __IEnumSTATSTG_INTERFACE_DEFINED__
   9650 #define __IEnumSTATSTG_INTERFACE_DEFINED__
   9651 
   9652 typedef IEnumSTATSTG *LPENUMSTATSTG;
   9653 DEFINE_GUID(IID_IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   9654 #if defined(__cplusplus) && !defined(CINTERFACE)
   9655 MIDL_INTERFACE("0000000d-0000-0000-c000-000000000046")
   9656 IEnumSTATSTG : public IUnknown
   9657 {
   9658     virtual HRESULT STDMETHODCALLTYPE Next(
   9659         ULONG celt,
   9660         STATSTG *rgelt,
   9661         ULONG *pceltFetched) = 0;
   9662 
   9663     virtual HRESULT STDMETHODCALLTYPE Skip(
   9664         ULONG celt) = 0;
   9665 
   9666     virtual HRESULT STDMETHODCALLTYPE Reset(
   9667         ) = 0;
   9668 
   9669     virtual HRESULT STDMETHODCALLTYPE Clone(
   9670         IEnumSTATSTG **ppenum) = 0;
   9671 
   9672 };
   9673 #ifdef __CRT_UUID_DECL
   9674 __CRT_UUID_DECL(IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   9675 #endif
   9676 #else
   9677 typedef struct IEnumSTATSTGVtbl {
   9678     BEGIN_INTERFACE
   9679 
   9680     /*** IUnknown methods ***/
   9681     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9682         IEnumSTATSTG* This,
   9683         REFIID riid,
   9684         void **ppvObject);
   9685 
   9686     ULONG (STDMETHODCALLTYPE *AddRef)(
   9687         IEnumSTATSTG* This);
   9688 
   9689     ULONG (STDMETHODCALLTYPE *Release)(
   9690         IEnumSTATSTG* This);
   9691 
   9692     /*** IEnumSTATSTG methods ***/
   9693     HRESULT (STDMETHODCALLTYPE *Next)(
   9694         IEnumSTATSTG* This,
   9695         ULONG celt,
   9696         STATSTG *rgelt,
   9697         ULONG *pceltFetched);
   9698 
   9699     HRESULT (STDMETHODCALLTYPE *Skip)(
   9700         IEnumSTATSTG* This,
   9701         ULONG celt);
   9702 
   9703     HRESULT (STDMETHODCALLTYPE *Reset)(
   9704         IEnumSTATSTG* This);
   9705 
   9706     HRESULT (STDMETHODCALLTYPE *Clone)(
   9707         IEnumSTATSTG* This,
   9708         IEnumSTATSTG **ppenum);
   9709 
   9710     END_INTERFACE
   9711 } IEnumSTATSTGVtbl;
   9712 interface IEnumSTATSTG {
   9713     CONST_VTBL IEnumSTATSTGVtbl* lpVtbl;
   9714 };
   9715 
   9716 #ifdef COBJMACROS
   9717 #ifndef WIDL_C_INLINE_WRAPPERS
   9718 /*** IUnknown methods ***/
   9719 #define IEnumSTATSTG_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9720 #define IEnumSTATSTG_AddRef(This) (This)->lpVtbl->AddRef(This)
   9721 #define IEnumSTATSTG_Release(This) (This)->lpVtbl->Release(This)
   9722 /*** IEnumSTATSTG methods ***/
   9723 #define IEnumSTATSTG_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   9724 #define IEnumSTATSTG_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   9725 #define IEnumSTATSTG_Reset(This) (This)->lpVtbl->Reset(This)
   9726 #define IEnumSTATSTG_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   9727 #else
   9728 /*** IUnknown methods ***/
   9729 static FORCEINLINE HRESULT IEnumSTATSTG_QueryInterface(IEnumSTATSTG* This,REFIID riid,void **ppvObject) {
   9730     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9731 }
   9732 static FORCEINLINE ULONG IEnumSTATSTG_AddRef(IEnumSTATSTG* This) {
   9733     return This->lpVtbl->AddRef(This);
   9734 }
   9735 static FORCEINLINE ULONG IEnumSTATSTG_Release(IEnumSTATSTG* This) {
   9736     return This->lpVtbl->Release(This);
   9737 }
   9738 /*** IEnumSTATSTG methods ***/
   9739 static FORCEINLINE HRESULT IEnumSTATSTG_Next(IEnumSTATSTG* This,ULONG celt,STATSTG *rgelt,ULONG *pceltFetched) {
   9740     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   9741 }
   9742 static FORCEINLINE HRESULT IEnumSTATSTG_Skip(IEnumSTATSTG* This,ULONG celt) {
   9743     return This->lpVtbl->Skip(This,celt);
   9744 }
   9745 static FORCEINLINE HRESULT IEnumSTATSTG_Reset(IEnumSTATSTG* This) {
   9746     return This->lpVtbl->Reset(This);
   9747 }
   9748 static FORCEINLINE HRESULT IEnumSTATSTG_Clone(IEnumSTATSTG* This,IEnumSTATSTG **ppenum) {
   9749     return This->lpVtbl->Clone(This,ppenum);
   9750 }
   9751 #endif
   9752 #endif
   9753 
   9754 #endif
   9755 
   9756 HRESULT STDMETHODCALLTYPE IEnumSTATSTG_RemoteNext_Proxy(
   9757     IEnumSTATSTG* This,
   9758     ULONG celt,
   9759     STATSTG *rgelt,
   9760     ULONG *pceltFetched);
   9761 void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
   9762     IRpcStubBuffer* This,
   9763     IRpcChannelBuffer* pRpcChannelBuffer,
   9764     PRPC_MESSAGE pRpcMessage,
   9765     DWORD* pdwStubPhase);
   9766 HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Skip_Proxy(
   9767     IEnumSTATSTG* This,
   9768     ULONG celt);
   9769 void __RPC_STUB IEnumSTATSTG_Skip_Stub(
   9770     IRpcStubBuffer* This,
   9771     IRpcChannelBuffer* pRpcChannelBuffer,
   9772     PRPC_MESSAGE pRpcMessage,
   9773     DWORD* pdwStubPhase);
   9774 HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Reset_Proxy(
   9775     IEnumSTATSTG* This);
   9776 void __RPC_STUB IEnumSTATSTG_Reset_Stub(
   9777     IRpcStubBuffer* This,
   9778     IRpcChannelBuffer* pRpcChannelBuffer,
   9779     PRPC_MESSAGE pRpcMessage,
   9780     DWORD* pdwStubPhase);
   9781 HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Clone_Proxy(
   9782     IEnumSTATSTG* This,
   9783     IEnumSTATSTG **ppenum);
   9784 void __RPC_STUB IEnumSTATSTG_Clone_Stub(
   9785     IRpcStubBuffer* This,
   9786     IRpcChannelBuffer* pRpcChannelBuffer,
   9787     PRPC_MESSAGE pRpcMessage,
   9788     DWORD* pdwStubPhase);
   9789 HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
   9790     IEnumSTATSTG* This,
   9791     ULONG celt,
   9792     STATSTG *rgelt,
   9793     ULONG *pceltFetched);
   9794 HRESULT __RPC_STUB IEnumSTATSTG_Next_Stub(
   9795     IEnumSTATSTG* This,
   9796     ULONG celt,
   9797     STATSTG *rgelt,
   9798     ULONG *pceltFetched);
   9799 
   9800 #endif  /* __IEnumSTATSTG_INTERFACE_DEFINED__ */
   9801 
   9802 /*****************************************************************************
   9803  * IStorage interface
   9804  */
   9805 #ifndef __IStorage_INTERFACE_DEFINED__
   9806 #define __IStorage_INTERFACE_DEFINED__
   9807 
   9808 typedef IStorage *LPSTORAGE;
   9809 typedef struct tagRemSNB {
   9810     ULONG ulCntStr;
   9811     ULONG ulCntChar;
   9812     OLECHAR rgString[1];
   9813 } RemSNB;
   9814 typedef RemSNB *wireSNB;
   9815 typedef LPOLESTR *SNB;
   9816 DEFINE_GUID(IID_IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   9817 #if defined(__cplusplus) && !defined(CINTERFACE)
   9818 MIDL_INTERFACE("0000000b-0000-0000-c000-000000000046")
   9819 IStorage : public IUnknown
   9820 {
   9821     virtual HRESULT STDMETHODCALLTYPE CreateStream(
   9822         const OLECHAR *pwcsName,
   9823         DWORD grfMode,
   9824         DWORD reserved1,
   9825         DWORD reserved2,
   9826         IStream **ppstm) = 0;
   9827 
   9828     virtual HRESULT STDMETHODCALLTYPE OpenStream(
   9829         const OLECHAR *pwcsName,
   9830         void *reserved1,
   9831         DWORD grfMode,
   9832         DWORD reserved2,
   9833         IStream **ppstm) = 0;
   9834 
   9835     virtual HRESULT STDMETHODCALLTYPE CreateStorage(
   9836         const OLECHAR *pwcsName,
   9837         DWORD grfMode,
   9838         DWORD reserved1,
   9839         DWORD reserved2,
   9840         IStorage **ppstg) = 0;
   9841 
   9842     virtual HRESULT STDMETHODCALLTYPE OpenStorage(
   9843         const OLECHAR *pwcsName,
   9844         IStorage *pstgPriority,
   9845         DWORD grfMode,
   9846         SNB snbExclude,
   9847         DWORD reserved,
   9848         IStorage **ppstg) = 0;
   9849 
   9850     virtual HRESULT STDMETHODCALLTYPE CopyTo(
   9851         DWORD ciidExclude,
   9852         const IID *rgiidExclude,
   9853         SNB snbExclude,
   9854         IStorage *pstgDest) = 0;
   9855 
   9856     virtual HRESULT STDMETHODCALLTYPE MoveElementTo(
   9857         const OLECHAR *pwcsName,
   9858         IStorage *pstgDest,
   9859         const OLECHAR *pwcsNewName,
   9860         DWORD grfFlags) = 0;
   9861 
   9862     virtual HRESULT STDMETHODCALLTYPE Commit(
   9863         DWORD grfCommitFlags) = 0;
   9864 
   9865     virtual HRESULT STDMETHODCALLTYPE Revert(
   9866         ) = 0;
   9867 
   9868     virtual HRESULT STDMETHODCALLTYPE EnumElements(
   9869         DWORD reserved1,
   9870         void *reserved2,
   9871         DWORD reserved3,
   9872         IEnumSTATSTG **ppenum) = 0;
   9873 
   9874     virtual HRESULT STDMETHODCALLTYPE DestroyElement(
   9875         const OLECHAR *pwcsName) = 0;
   9876 
   9877     virtual HRESULT STDMETHODCALLTYPE RenameElement(
   9878         const OLECHAR *pwcsOldName,
   9879         const OLECHAR *pwcsNewName) = 0;
   9880 
   9881     virtual HRESULT STDMETHODCALLTYPE SetElementTimes(
   9882         const OLECHAR *pwcsName,
   9883         const FILETIME *pctime,
   9884         const FILETIME *patime,
   9885         const FILETIME *pmtime) = 0;
   9886 
   9887     virtual HRESULT STDMETHODCALLTYPE SetClass(
   9888         REFCLSID clsid) = 0;
   9889 
   9890     virtual HRESULT STDMETHODCALLTYPE SetStateBits(
   9891         DWORD grfStateBits,
   9892         DWORD grfMask) = 0;
   9893 
   9894     virtual HRESULT STDMETHODCALLTYPE Stat(
   9895         STATSTG *pstatstg,
   9896         DWORD grfStatFlag) = 0;
   9897 
   9898 };
   9899 #ifdef __CRT_UUID_DECL
   9900 __CRT_UUID_DECL(IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   9901 #endif
   9902 #else
   9903 typedef struct IStorageVtbl {
   9904     BEGIN_INTERFACE
   9905 
   9906     /*** IUnknown methods ***/
   9907     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9908         IStorage* This,
   9909         REFIID riid,
   9910         void **ppvObject);
   9911 
   9912     ULONG (STDMETHODCALLTYPE *AddRef)(
   9913         IStorage* This);
   9914 
   9915     ULONG (STDMETHODCALLTYPE *Release)(
   9916         IStorage* This);
   9917 
   9918     /*** IStorage methods ***/
   9919     HRESULT (STDMETHODCALLTYPE *CreateStream)(
   9920         IStorage* This,
   9921         const OLECHAR *pwcsName,
   9922         DWORD grfMode,
   9923         DWORD reserved1,
   9924         DWORD reserved2,
   9925         IStream **ppstm);
   9926 
   9927     HRESULT (STDMETHODCALLTYPE *OpenStream)(
   9928         IStorage* This,
   9929         const OLECHAR *pwcsName,
   9930         void *reserved1,
   9931         DWORD grfMode,
   9932         DWORD reserved2,
   9933         IStream **ppstm);
   9934 
   9935     HRESULT (STDMETHODCALLTYPE *CreateStorage)(
   9936         IStorage* This,
   9937         const OLECHAR *pwcsName,
   9938         DWORD grfMode,
   9939         DWORD reserved1,
   9940         DWORD reserved2,
   9941         IStorage **ppstg);
   9942 
   9943     HRESULT (STDMETHODCALLTYPE *OpenStorage)(
   9944         IStorage* This,
   9945         const OLECHAR *pwcsName,
   9946         IStorage *pstgPriority,
   9947         DWORD grfMode,
   9948         SNB snbExclude,
   9949         DWORD reserved,
   9950         IStorage **ppstg);
   9951 
   9952     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   9953         IStorage* This,
   9954         DWORD ciidExclude,
   9955         const IID *rgiidExclude,
   9956         SNB snbExclude,
   9957         IStorage *pstgDest);
   9958 
   9959     HRESULT (STDMETHODCALLTYPE *MoveElementTo)(
   9960         IStorage* This,
   9961         const OLECHAR *pwcsName,
   9962         IStorage *pstgDest,
   9963         const OLECHAR *pwcsNewName,
   9964         DWORD grfFlags);
   9965 
   9966     HRESULT (STDMETHODCALLTYPE *Commit)(
   9967         IStorage* This,
   9968         DWORD grfCommitFlags);
   9969 
   9970     HRESULT (STDMETHODCALLTYPE *Revert)(
   9971         IStorage* This);
   9972 
   9973     HRESULT (STDMETHODCALLTYPE *EnumElements)(
   9974         IStorage* This,
   9975         DWORD reserved1,
   9976         void *reserved2,
   9977         DWORD reserved3,
   9978         IEnumSTATSTG **ppenum);
   9979 
   9980     HRESULT (STDMETHODCALLTYPE *DestroyElement)(
   9981         IStorage* This,
   9982         const OLECHAR *pwcsName);
   9983 
   9984     HRESULT (STDMETHODCALLTYPE *RenameElement)(
   9985         IStorage* This,
   9986         const OLECHAR *pwcsOldName,
   9987         const OLECHAR *pwcsNewName);
   9988 
   9989     HRESULT (STDMETHODCALLTYPE *SetElementTimes)(
   9990         IStorage* This,
   9991         const OLECHAR *pwcsName,
   9992         const FILETIME *pctime,
   9993         const FILETIME *patime,
   9994         const FILETIME *pmtime);
   9995 
   9996     HRESULT (STDMETHODCALLTYPE *SetClass)(
   9997         IStorage* This,
   9998         REFCLSID clsid);
   9999 
   10000     HRESULT (STDMETHODCALLTYPE *SetStateBits)(
   10001         IStorage* This,
   10002         DWORD grfStateBits,
   10003         DWORD grfMask);
   10004 
   10005     HRESULT (STDMETHODCALLTYPE *Stat)(
   10006         IStorage* This,
   10007         STATSTG *pstatstg,
   10008         DWORD grfStatFlag);
   10009 
   10010     END_INTERFACE
   10011 } IStorageVtbl;
   10012 interface IStorage {
   10013     CONST_VTBL IStorageVtbl* lpVtbl;
   10014 };
   10015 
   10016 #ifdef COBJMACROS
   10017 #ifndef WIDL_C_INLINE_WRAPPERS
   10018 /*** IUnknown methods ***/
   10019 #define IStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10020 #define IStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
   10021 #define IStorage_Release(This) (This)->lpVtbl->Release(This)
   10022 /*** IStorage methods ***/
   10023 #define IStorage_CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm) (This)->lpVtbl->CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm)
   10024 #define IStorage_OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm) (This)->lpVtbl->OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm)
   10025 #define IStorage_CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg) (This)->lpVtbl->CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg)
   10026 #define IStorage_OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg) (This)->lpVtbl->OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg)
   10027 #define IStorage_CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest) (This)->lpVtbl->CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest)
   10028 #define IStorage_MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags) (This)->lpVtbl->MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags)
   10029 #define IStorage_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   10030 #define IStorage_Revert(This) (This)->lpVtbl->Revert(This)
   10031 #define IStorage_EnumElements(This,reserved1,reserved2,reserved3,ppenum) (This)->lpVtbl->EnumElements(This,reserved1,reserved2,reserved3,ppenum)
   10032 #define IStorage_DestroyElement(This,pwcsName) (This)->lpVtbl->DestroyElement(This,pwcsName)
   10033 #define IStorage_RenameElement(This,pwcsOldName,pwcsNewName) (This)->lpVtbl->RenameElement(This,pwcsOldName,pwcsNewName)
   10034 #define IStorage_SetElementTimes(This,pwcsName,pctime,patime,pmtime) (This)->lpVtbl->SetElementTimes(This,pwcsName,pctime,patime,pmtime)
   10035 #define IStorage_SetClass(This,clsid) (This)->lpVtbl->SetClass(This,clsid)
   10036 #define IStorage_SetStateBits(This,grfStateBits,grfMask) (This)->lpVtbl->SetStateBits(This,grfStateBits,grfMask)
   10037 #define IStorage_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   10038 #else
   10039 /*** IUnknown methods ***/
   10040 static FORCEINLINE HRESULT IStorage_QueryInterface(IStorage* This,REFIID riid,void **ppvObject) {
   10041     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10042 }
   10043 static FORCEINLINE ULONG IStorage_AddRef(IStorage* This) {
   10044     return This->lpVtbl->AddRef(This);
   10045 }
   10046 static FORCEINLINE ULONG IStorage_Release(IStorage* This) {
   10047     return This->lpVtbl->Release(This);
   10048 }
   10049 /*** IStorage methods ***/
   10050 static FORCEINLINE HRESULT IStorage_CreateStream(IStorage* This,const OLECHAR *pwcsName,DWORD grfMode,DWORD reserved1,DWORD reserved2,IStream **ppstm) {
   10051     return This->lpVtbl->CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm);
   10052 }
   10053 static FORCEINLINE HRESULT IStorage_OpenStream(IStorage* This,const OLECHAR *pwcsName,void *reserved1,DWORD grfMode,DWORD reserved2,IStream **ppstm) {
   10054     return This->lpVtbl->OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm);
   10055 }
   10056 static FORCEINLINE HRESULT IStorage_CreateStorage(IStorage* This,const OLECHAR *pwcsName,DWORD grfMode,DWORD reserved1,DWORD reserved2,IStorage **ppstg) {
   10057     return This->lpVtbl->CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg);
   10058 }
   10059 static FORCEINLINE HRESULT IStorage_OpenStorage(IStorage* This,const OLECHAR *pwcsName,IStorage *pstgPriority,DWORD grfMode,SNB snbExclude,DWORD reserved,IStorage **ppstg) {
   10060     return This->lpVtbl->OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg);
   10061 }
   10062 static FORCEINLINE HRESULT IStorage_CopyTo(IStorage* This,DWORD ciidExclude,const IID *rgiidExclude,SNB snbExclude,IStorage *pstgDest) {
   10063     return This->lpVtbl->CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest);
   10064 }
   10065 static FORCEINLINE HRESULT IStorage_MoveElementTo(IStorage* This,const OLECHAR *pwcsName,IStorage *pstgDest,const OLECHAR *pwcsNewName,DWORD grfFlags) {
   10066     return This->lpVtbl->MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags);
   10067 }
   10068 static FORCEINLINE HRESULT IStorage_Commit(IStorage* This,DWORD grfCommitFlags) {
   10069     return This->lpVtbl->Commit(This,grfCommitFlags);
   10070 }
   10071 static FORCEINLINE HRESULT IStorage_Revert(IStorage* This) {
   10072     return This->lpVtbl->Revert(This);
   10073 }
   10074 static FORCEINLINE HRESULT IStorage_EnumElements(IStorage* This,DWORD reserved1,void *reserved2,DWORD reserved3,IEnumSTATSTG **ppenum) {
   10075     return This->lpVtbl->EnumElements(This,reserved1,reserved2,reserved3,ppenum);
   10076 }
   10077 static FORCEINLINE HRESULT IStorage_DestroyElement(IStorage* This,const OLECHAR *pwcsName) {
   10078     return This->lpVtbl->DestroyElement(This,pwcsName);
   10079 }
   10080 static FORCEINLINE HRESULT IStorage_RenameElement(IStorage* This,const OLECHAR *pwcsOldName,const OLECHAR *pwcsNewName) {
   10081     return This->lpVtbl->RenameElement(This,pwcsOldName,pwcsNewName);
   10082 }
   10083 static FORCEINLINE HRESULT IStorage_SetElementTimes(IStorage* This,const OLECHAR *pwcsName,const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime) {
   10084     return This->lpVtbl->SetElementTimes(This,pwcsName,pctime,patime,pmtime);
   10085 }
   10086 static FORCEINLINE HRESULT IStorage_SetClass(IStorage* This,REFCLSID clsid) {
   10087     return This->lpVtbl->SetClass(This,clsid);
   10088 }
   10089 static FORCEINLINE HRESULT IStorage_SetStateBits(IStorage* This,DWORD grfStateBits,DWORD grfMask) {
   10090     return This->lpVtbl->SetStateBits(This,grfStateBits,grfMask);
   10091 }
   10092 static FORCEINLINE HRESULT IStorage_Stat(IStorage* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   10093     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   10094 }
   10095 #endif
   10096 #endif
   10097 
   10098 #endif
   10099 
   10100 HRESULT STDMETHODCALLTYPE IStorage_CreateStream_Proxy(
   10101     IStorage* This,
   10102     const OLECHAR *pwcsName,
   10103     DWORD grfMode,
   10104     DWORD reserved1,
   10105     DWORD reserved2,
   10106     IStream **ppstm);
   10107 void __RPC_STUB IStorage_CreateStream_Stub(
   10108     IRpcStubBuffer* This,
   10109     IRpcChannelBuffer* pRpcChannelBuffer,
   10110     PRPC_MESSAGE pRpcMessage,
   10111     DWORD* pdwStubPhase);
   10112 HRESULT STDMETHODCALLTYPE IStorage_RemoteOpenStream_Proxy(
   10113     IStorage* This,
   10114     const OLECHAR *pwcsName,
   10115     ULONG cbReserved1,
   10116     byte *reserved1,
   10117     DWORD grfMode,
   10118     DWORD reserved2,
   10119     IStream **ppstm);
   10120 void __RPC_STUB IStorage_RemoteOpenStream_Stub(
   10121     IRpcStubBuffer* This,
   10122     IRpcChannelBuffer* pRpcChannelBuffer,
   10123     PRPC_MESSAGE pRpcMessage,
   10124     DWORD* pdwStubPhase);
   10125 HRESULT STDMETHODCALLTYPE IStorage_CreateStorage_Proxy(
   10126     IStorage* This,
   10127     const OLECHAR *pwcsName,
   10128     DWORD grfMode,
   10129     DWORD reserved1,
   10130     DWORD reserved2,
   10131     IStorage **ppstg);
   10132 void __RPC_STUB IStorage_CreateStorage_Stub(
   10133     IRpcStubBuffer* This,
   10134     IRpcChannelBuffer* pRpcChannelBuffer,
   10135     PRPC_MESSAGE pRpcMessage,
   10136     DWORD* pdwStubPhase);
   10137 HRESULT STDMETHODCALLTYPE IStorage_OpenStorage_Proxy(
   10138     IStorage* This,
   10139     const OLECHAR *pwcsName,
   10140     IStorage *pstgPriority,
   10141     DWORD grfMode,
   10142     SNB snbExclude,
   10143     DWORD reserved,
   10144     IStorage **ppstg);
   10145 void __RPC_STUB IStorage_OpenStorage_Stub(
   10146     IRpcStubBuffer* This,
   10147     IRpcChannelBuffer* pRpcChannelBuffer,
   10148     PRPC_MESSAGE pRpcMessage,
   10149     DWORD* pdwStubPhase);
   10150 HRESULT STDMETHODCALLTYPE IStorage_RemoteCopyTo_Proxy(
   10151     IStorage* This,
   10152     DWORD ciidExclude,
   10153     const IID *rgiidExclude,
   10154     SNB snbExclude,
   10155     IStorage *pstgDest);
   10156 void __RPC_STUB IStorage_RemoteCopyTo_Stub(
   10157     IRpcStubBuffer* This,
   10158     IRpcChannelBuffer* pRpcChannelBuffer,
   10159     PRPC_MESSAGE pRpcMessage,
   10160     DWORD* pdwStubPhase);
   10161 HRESULT STDMETHODCALLTYPE IStorage_MoveElementTo_Proxy(
   10162     IStorage* This,
   10163     const OLECHAR *pwcsName,
   10164     IStorage *pstgDest,
   10165     const OLECHAR *pwcsNewName,
   10166     DWORD grfFlags);
   10167 void __RPC_STUB IStorage_MoveElementTo_Stub(
   10168     IRpcStubBuffer* This,
   10169     IRpcChannelBuffer* pRpcChannelBuffer,
   10170     PRPC_MESSAGE pRpcMessage,
   10171     DWORD* pdwStubPhase);
   10172 HRESULT STDMETHODCALLTYPE IStorage_Commit_Proxy(
   10173     IStorage* This,
   10174     DWORD grfCommitFlags);
   10175 void __RPC_STUB IStorage_Commit_Stub(
   10176     IRpcStubBuffer* This,
   10177     IRpcChannelBuffer* pRpcChannelBuffer,
   10178     PRPC_MESSAGE pRpcMessage,
   10179     DWORD* pdwStubPhase);
   10180 HRESULT STDMETHODCALLTYPE IStorage_Revert_Proxy(
   10181     IStorage* This);
   10182 void __RPC_STUB IStorage_Revert_Stub(
   10183     IRpcStubBuffer* This,
   10184     IRpcChannelBuffer* pRpcChannelBuffer,
   10185     PRPC_MESSAGE pRpcMessage,
   10186     DWORD* pdwStubPhase);
   10187 HRESULT STDMETHODCALLTYPE IStorage_RemoteEnumElements_Proxy(
   10188     IStorage* This,
   10189     DWORD reserved1,
   10190     ULONG cbReserved2,
   10191     byte *reserved2,
   10192     DWORD reserved3,
   10193     IEnumSTATSTG **ppenum);
   10194 void __RPC_STUB IStorage_RemoteEnumElements_Stub(
   10195     IRpcStubBuffer* This,
   10196     IRpcChannelBuffer* pRpcChannelBuffer,
   10197     PRPC_MESSAGE pRpcMessage,
   10198     DWORD* pdwStubPhase);
   10199 HRESULT STDMETHODCALLTYPE IStorage_DestroyElement_Proxy(
   10200     IStorage* This,
   10201     const OLECHAR *pwcsName);
   10202 void __RPC_STUB IStorage_DestroyElement_Stub(
   10203     IRpcStubBuffer* This,
   10204     IRpcChannelBuffer* pRpcChannelBuffer,
   10205     PRPC_MESSAGE pRpcMessage,
   10206     DWORD* pdwStubPhase);
   10207 HRESULT STDMETHODCALLTYPE IStorage_RenameElement_Proxy(
   10208     IStorage* This,
   10209     const OLECHAR *pwcsOldName,
   10210     const OLECHAR *pwcsNewName);
   10211 void __RPC_STUB IStorage_RenameElement_Stub(
   10212     IRpcStubBuffer* This,
   10213     IRpcChannelBuffer* pRpcChannelBuffer,
   10214     PRPC_MESSAGE pRpcMessage,
   10215     DWORD* pdwStubPhase);
   10216 HRESULT STDMETHODCALLTYPE IStorage_SetElementTimes_Proxy(
   10217     IStorage* This,
   10218     const OLECHAR *pwcsName,
   10219     const FILETIME *pctime,
   10220     const FILETIME *patime,
   10221     const FILETIME *pmtime);
   10222 void __RPC_STUB IStorage_SetElementTimes_Stub(
   10223     IRpcStubBuffer* This,
   10224     IRpcChannelBuffer* pRpcChannelBuffer,
   10225     PRPC_MESSAGE pRpcMessage,
   10226     DWORD* pdwStubPhase);
   10227 HRESULT STDMETHODCALLTYPE IStorage_SetClass_Proxy(
   10228     IStorage* This,
   10229     REFCLSID clsid);
   10230 void __RPC_STUB IStorage_SetClass_Stub(
   10231     IRpcStubBuffer* This,
   10232     IRpcChannelBuffer* pRpcChannelBuffer,
   10233     PRPC_MESSAGE pRpcMessage,
   10234     DWORD* pdwStubPhase);
   10235 HRESULT STDMETHODCALLTYPE IStorage_SetStateBits_Proxy(
   10236     IStorage* This,
   10237     DWORD grfStateBits,
   10238     DWORD grfMask);
   10239 void __RPC_STUB IStorage_SetStateBits_Stub(
   10240     IRpcStubBuffer* This,
   10241     IRpcChannelBuffer* pRpcChannelBuffer,
   10242     PRPC_MESSAGE pRpcMessage,
   10243     DWORD* pdwStubPhase);
   10244 HRESULT STDMETHODCALLTYPE IStorage_Stat_Proxy(
   10245     IStorage* This,
   10246     STATSTG *pstatstg,
   10247     DWORD grfStatFlag);
   10248 void __RPC_STUB IStorage_Stat_Stub(
   10249     IRpcStubBuffer* This,
   10250     IRpcChannelBuffer* pRpcChannelBuffer,
   10251     PRPC_MESSAGE pRpcMessage,
   10252     DWORD* pdwStubPhase);
   10253 HRESULT CALLBACK IStorage_OpenStream_Proxy(
   10254     IStorage* This,
   10255     const OLECHAR *pwcsName,
   10256     void *reserved1,
   10257     DWORD grfMode,
   10258     DWORD reserved2,
   10259     IStream **ppstm);
   10260 HRESULT __RPC_STUB IStorage_OpenStream_Stub(
   10261     IStorage* This,
   10262     const OLECHAR *pwcsName,
   10263     ULONG cbReserved1,
   10264     byte *reserved1,
   10265     DWORD grfMode,
   10266     DWORD reserved2,
   10267     IStream **ppstm);
   10268 HRESULT CALLBACK IStorage_CopyTo_Proxy(
   10269     IStorage* This,
   10270     DWORD ciidExclude,
   10271     const IID *rgiidExclude,
   10272     SNB snbExclude,
   10273     IStorage *pstgDest);
   10274 HRESULT __RPC_STUB IStorage_CopyTo_Stub(
   10275     IStorage* This,
   10276     DWORD ciidExclude,
   10277     const IID *rgiidExclude,
   10278     SNB snbExclude,
   10279     IStorage *pstgDest);
   10280 HRESULT CALLBACK IStorage_EnumElements_Proxy(
   10281     IStorage* This,
   10282     DWORD reserved1,
   10283     void *reserved2,
   10284     DWORD reserved3,
   10285     IEnumSTATSTG **ppenum);
   10286 HRESULT __RPC_STUB IStorage_EnumElements_Stub(
   10287     IStorage* This,
   10288     DWORD reserved1,
   10289     ULONG cbReserved2,
   10290     byte *reserved2,
   10291     DWORD reserved3,
   10292     IEnumSTATSTG **ppenum);
   10293 
   10294 #endif  /* __IStorage_INTERFACE_DEFINED__ */
   10295 
   10296 #endif
   10297 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   10298 /*****************************************************************************
   10299  * IPersistFile interface
   10300  */
   10301 #ifndef __IPersistFile_INTERFACE_DEFINED__
   10302 #define __IPersistFile_INTERFACE_DEFINED__
   10303 
   10304 typedef IPersistFile *LPPERSISTFILE;
   10305 DEFINE_GUID(IID_IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   10306 #if defined(__cplusplus) && !defined(CINTERFACE)
   10307 MIDL_INTERFACE("0000010b-0000-0000-c000-000000000046")
   10308 IPersistFile : public IPersist
   10309 {
   10310     virtual HRESULT STDMETHODCALLTYPE IsDirty(
   10311         ) = 0;
   10312 
   10313     virtual HRESULT STDMETHODCALLTYPE Load(
   10314         LPCOLESTR pszFileName,
   10315         DWORD dwMode) = 0;
   10316 
   10317     virtual HRESULT STDMETHODCALLTYPE Save(
   10318         LPCOLESTR pszFileName,
   10319         WINBOOL fRemember) = 0;
   10320 
   10321     virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
   10322         LPCOLESTR pszFileName) = 0;
   10323 
   10324     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
   10325         LPOLESTR *ppszFileName) = 0;
   10326 
   10327 };
   10328 #ifdef __CRT_UUID_DECL
   10329 __CRT_UUID_DECL(IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   10330 #endif
   10331 #else
   10332 typedef struct IPersistFileVtbl {
   10333     BEGIN_INTERFACE
   10334 
   10335     /*** IUnknown methods ***/
   10336     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10337         IPersistFile* This,
   10338         REFIID riid,
   10339         void **ppvObject);
   10340 
   10341     ULONG (STDMETHODCALLTYPE *AddRef)(
   10342         IPersistFile* This);
   10343 
   10344     ULONG (STDMETHODCALLTYPE *Release)(
   10345         IPersistFile* This);
   10346 
   10347     /*** IPersist methods ***/
   10348     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   10349         IPersistFile* This,
   10350         CLSID *pClassID);
   10351 
   10352     /*** IPersistFile methods ***/
   10353     HRESULT (STDMETHODCALLTYPE *IsDirty)(
   10354         IPersistFile* This);
   10355 
   10356     HRESULT (STDMETHODCALLTYPE *Load)(
   10357         IPersistFile* This,
   10358         LPCOLESTR pszFileName,
   10359         DWORD dwMode);
   10360 
   10361     HRESULT (STDMETHODCALLTYPE *Save)(
   10362         IPersistFile* This,
   10363         LPCOLESTR pszFileName,
   10364         WINBOOL fRemember);
   10365 
   10366     HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
   10367         IPersistFile* This,
   10368         LPCOLESTR pszFileName);
   10369 
   10370     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
   10371         IPersistFile* This,
   10372         LPOLESTR *ppszFileName);
   10373 
   10374     END_INTERFACE
   10375 } IPersistFileVtbl;
   10376 interface IPersistFile {
   10377     CONST_VTBL IPersistFileVtbl* lpVtbl;
   10378 };
   10379 
   10380 #ifdef COBJMACROS
   10381 #ifndef WIDL_C_INLINE_WRAPPERS
   10382 /*** IUnknown methods ***/
   10383 #define IPersistFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10384 #define IPersistFile_AddRef(This) (This)->lpVtbl->AddRef(This)
   10385 #define IPersistFile_Release(This) (This)->lpVtbl->Release(This)
   10386 /*** IPersist methods ***/
   10387 #define IPersistFile_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   10388 /*** IPersistFile methods ***/
   10389 #define IPersistFile_IsDirty(This) (This)->lpVtbl->IsDirty(This)
   10390 #define IPersistFile_Load(This,pszFileName,dwMode) (This)->lpVtbl->Load(This,pszFileName,dwMode)
   10391 #define IPersistFile_Save(This,pszFileName,fRemember) (This)->lpVtbl->Save(This,pszFileName,fRemember)
   10392 #define IPersistFile_SaveCompleted(This,pszFileName) (This)->lpVtbl->SaveCompleted(This,pszFileName)
   10393 #define IPersistFile_GetCurFile(This,ppszFileName) (This)->lpVtbl->GetCurFile(This,ppszFileName)
   10394 #else
   10395 /*** IUnknown methods ***/
   10396 static FORCEINLINE HRESULT IPersistFile_QueryInterface(IPersistFile* This,REFIID riid,void **ppvObject) {
   10397     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10398 }
   10399 static FORCEINLINE ULONG IPersistFile_AddRef(IPersistFile* This) {
   10400     return This->lpVtbl->AddRef(This);
   10401 }
   10402 static FORCEINLINE ULONG IPersistFile_Release(IPersistFile* This) {
   10403     return This->lpVtbl->Release(This);
   10404 }
   10405 /*** IPersist methods ***/
   10406 static FORCEINLINE HRESULT IPersistFile_GetClassID(IPersistFile* This,CLSID *pClassID) {
   10407     return This->lpVtbl->GetClassID(This,pClassID);
   10408 }
   10409 /*** IPersistFile methods ***/
   10410 static FORCEINLINE HRESULT IPersistFile_IsDirty(IPersistFile* This) {
   10411     return This->lpVtbl->IsDirty(This);
   10412 }
   10413 static FORCEINLINE HRESULT IPersistFile_Load(IPersistFile* This,LPCOLESTR pszFileName,DWORD dwMode) {
   10414     return This->lpVtbl->Load(This,pszFileName,dwMode);
   10415 }
   10416 static FORCEINLINE HRESULT IPersistFile_Save(IPersistFile* This,LPCOLESTR pszFileName,WINBOOL fRemember) {
   10417     return This->lpVtbl->Save(This,pszFileName,fRemember);
   10418 }
   10419 static FORCEINLINE HRESULT IPersistFile_SaveCompleted(IPersistFile* This,LPCOLESTR pszFileName) {
   10420     return This->lpVtbl->SaveCompleted(This,pszFileName);
   10421 }
   10422 static FORCEINLINE HRESULT IPersistFile_GetCurFile(IPersistFile* This,LPOLESTR *ppszFileName) {
   10423     return This->lpVtbl->GetCurFile(This,ppszFileName);
   10424 }
   10425 #endif
   10426 #endif
   10427 
   10428 #endif
   10429 
   10430 HRESULT STDMETHODCALLTYPE IPersistFile_IsDirty_Proxy(
   10431     IPersistFile* This);
   10432 void __RPC_STUB IPersistFile_IsDirty_Stub(
   10433     IRpcStubBuffer* This,
   10434     IRpcChannelBuffer* pRpcChannelBuffer,
   10435     PRPC_MESSAGE pRpcMessage,
   10436     DWORD* pdwStubPhase);
   10437 HRESULT STDMETHODCALLTYPE IPersistFile_Load_Proxy(
   10438     IPersistFile* This,
   10439     LPCOLESTR pszFileName,
   10440     DWORD dwMode);
   10441 void __RPC_STUB IPersistFile_Load_Stub(
   10442     IRpcStubBuffer* This,
   10443     IRpcChannelBuffer* pRpcChannelBuffer,
   10444     PRPC_MESSAGE pRpcMessage,
   10445     DWORD* pdwStubPhase);
   10446 HRESULT STDMETHODCALLTYPE IPersistFile_Save_Proxy(
   10447     IPersistFile* This,
   10448     LPCOLESTR pszFileName,
   10449     WINBOOL fRemember);
   10450 void __RPC_STUB IPersistFile_Save_Stub(
   10451     IRpcStubBuffer* This,
   10452     IRpcChannelBuffer* pRpcChannelBuffer,
   10453     PRPC_MESSAGE pRpcMessage,
   10454     DWORD* pdwStubPhase);
   10455 HRESULT STDMETHODCALLTYPE IPersistFile_SaveCompleted_Proxy(
   10456     IPersistFile* This,
   10457     LPCOLESTR pszFileName);
   10458 void __RPC_STUB IPersistFile_SaveCompleted_Stub(
   10459     IRpcStubBuffer* This,
   10460     IRpcChannelBuffer* pRpcChannelBuffer,
   10461     PRPC_MESSAGE pRpcMessage,
   10462     DWORD* pdwStubPhase);
   10463 HRESULT STDMETHODCALLTYPE IPersistFile_GetCurFile_Proxy(
   10464     IPersistFile* This,
   10465     LPOLESTR *ppszFileName);
   10466 void __RPC_STUB IPersistFile_GetCurFile_Stub(
   10467     IRpcStubBuffer* This,
   10468     IRpcChannelBuffer* pRpcChannelBuffer,
   10469     PRPC_MESSAGE pRpcMessage,
   10470     DWORD* pdwStubPhase);
   10471 
   10472 #endif  /* __IPersistFile_INTERFACE_DEFINED__ */
   10473 
   10474 /*****************************************************************************
   10475  * IPersistStorage interface
   10476  */
   10477 #ifndef __IPersistStorage_INTERFACE_DEFINED__
   10478 #define __IPersistStorage_INTERFACE_DEFINED__
   10479 
   10480 typedef IPersistStorage *LPPERSISTSTORAGE;
   10481 DEFINE_GUID(IID_IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   10482 #if defined(__cplusplus) && !defined(CINTERFACE)
   10483 MIDL_INTERFACE("0000010a-0000-0000-c000-000000000046")
   10484 IPersistStorage : public IPersist
   10485 {
   10486     virtual HRESULT STDMETHODCALLTYPE IsDirty(
   10487         ) = 0;
   10488 
   10489     virtual HRESULT STDMETHODCALLTYPE InitNew(
   10490         IStorage *pStg) = 0;
   10491 
   10492     virtual HRESULT STDMETHODCALLTYPE Load(
   10493         IStorage *pStg) = 0;
   10494 
   10495     virtual HRESULT STDMETHODCALLTYPE Save(
   10496         IStorage *pStgSave,
   10497         WINBOOL fSameAsLoad) = 0;
   10498 
   10499     virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
   10500         IStorage *pStgNew) = 0;
   10501 
   10502     virtual HRESULT STDMETHODCALLTYPE HandsOffStorage(
   10503         ) = 0;
   10504 
   10505 };
   10506 #ifdef __CRT_UUID_DECL
   10507 __CRT_UUID_DECL(IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   10508 #endif
   10509 #else
   10510 typedef struct IPersistStorageVtbl {
   10511     BEGIN_INTERFACE
   10512 
   10513     /*** IUnknown methods ***/
   10514     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10515         IPersistStorage* This,
   10516         REFIID riid,
   10517         void **ppvObject);
   10518 
   10519     ULONG (STDMETHODCALLTYPE *AddRef)(
   10520         IPersistStorage* This);
   10521 
   10522     ULONG (STDMETHODCALLTYPE *Release)(
   10523         IPersistStorage* This);
   10524 
   10525     /*** IPersist methods ***/
   10526     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   10527         IPersistStorage* This,
   10528         CLSID *pClassID);
   10529 
   10530     /*** IPersistStorage methods ***/
   10531     HRESULT (STDMETHODCALLTYPE *IsDirty)(
   10532         IPersistStorage* This);
   10533 
   10534     HRESULT (STDMETHODCALLTYPE *InitNew)(
   10535         IPersistStorage* This,
   10536         IStorage *pStg);
   10537 
   10538     HRESULT (STDMETHODCALLTYPE *Load)(
   10539         IPersistStorage* This,
   10540         IStorage *pStg);
   10541 
   10542     HRESULT (STDMETHODCALLTYPE *Save)(
   10543         IPersistStorage* This,
   10544         IStorage *pStgSave,
   10545         WINBOOL fSameAsLoad);
   10546 
   10547     HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
   10548         IPersistStorage* This,
   10549         IStorage *pStgNew);
   10550 
   10551     HRESULT (STDMETHODCALLTYPE *HandsOffStorage)(
   10552         IPersistStorage* This);
   10553 
   10554     END_INTERFACE
   10555 } IPersistStorageVtbl;
   10556 interface IPersistStorage {
   10557     CONST_VTBL IPersistStorageVtbl* lpVtbl;
   10558 };
   10559 
   10560 #ifdef COBJMACROS
   10561 #ifndef WIDL_C_INLINE_WRAPPERS
   10562 /*** IUnknown methods ***/
   10563 #define IPersistStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10564 #define IPersistStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
   10565 #define IPersistStorage_Release(This) (This)->lpVtbl->Release(This)
   10566 /*** IPersist methods ***/
   10567 #define IPersistStorage_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   10568 /*** IPersistStorage methods ***/
   10569 #define IPersistStorage_IsDirty(This) (This)->lpVtbl->IsDirty(This)
   10570 #define IPersistStorage_InitNew(This,pStg) (This)->lpVtbl->InitNew(This,pStg)
   10571 #define IPersistStorage_Load(This,pStg) (This)->lpVtbl->Load(This,pStg)
   10572 #define IPersistStorage_Save(This,pStgSave,fSameAsLoad) (This)->lpVtbl->Save(This,pStgSave,fSameAsLoad)
   10573 #define IPersistStorage_SaveCompleted(This,pStgNew) (This)->lpVtbl->SaveCompleted(This,pStgNew)
   10574 #define IPersistStorage_HandsOffStorage(This) (This)->lpVtbl->HandsOffStorage(This)
   10575 #else
   10576 /*** IUnknown methods ***/
   10577 static FORCEINLINE HRESULT IPersistStorage_QueryInterface(IPersistStorage* This,REFIID riid,void **ppvObject) {
   10578     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10579 }
   10580 static FORCEINLINE ULONG IPersistStorage_AddRef(IPersistStorage* This) {
   10581     return This->lpVtbl->AddRef(This);
   10582 }
   10583 static FORCEINLINE ULONG IPersistStorage_Release(IPersistStorage* This) {
   10584     return This->lpVtbl->Release(This);
   10585 }
   10586 /*** IPersist methods ***/
   10587 static FORCEINLINE HRESULT IPersistStorage_GetClassID(IPersistStorage* This,CLSID *pClassID) {
   10588     return This->lpVtbl->GetClassID(This,pClassID);
   10589 }
   10590 /*** IPersistStorage methods ***/
   10591 static FORCEINLINE HRESULT IPersistStorage_IsDirty(IPersistStorage* This) {
   10592     return This->lpVtbl->IsDirty(This);
   10593 }
   10594 static FORCEINLINE HRESULT IPersistStorage_InitNew(IPersistStorage* This,IStorage *pStg) {
   10595     return This->lpVtbl->InitNew(This,pStg);
   10596 }
   10597 static FORCEINLINE HRESULT IPersistStorage_Load(IPersistStorage* This,IStorage *pStg) {
   10598     return This->lpVtbl->Load(This,pStg);
   10599 }
   10600 static FORCEINLINE HRESULT IPersistStorage_Save(IPersistStorage* This,IStorage *pStgSave,WINBOOL fSameAsLoad) {
   10601     return This->lpVtbl->Save(This,pStgSave,fSameAsLoad);
   10602 }
   10603 static FORCEINLINE HRESULT IPersistStorage_SaveCompleted(IPersistStorage* This,IStorage *pStgNew) {
   10604     return This->lpVtbl->SaveCompleted(This,pStgNew);
   10605 }
   10606 static FORCEINLINE HRESULT IPersistStorage_HandsOffStorage(IPersistStorage* This) {
   10607     return This->lpVtbl->HandsOffStorage(This);
   10608 }
   10609 #endif
   10610 #endif
   10611 
   10612 #endif
   10613 
   10614 HRESULT STDMETHODCALLTYPE IPersistStorage_IsDirty_Proxy(
   10615     IPersistStorage* This);
   10616 void __RPC_STUB IPersistStorage_IsDirty_Stub(
   10617     IRpcStubBuffer* This,
   10618     IRpcChannelBuffer* pRpcChannelBuffer,
   10619     PRPC_MESSAGE pRpcMessage,
   10620     DWORD* pdwStubPhase);
   10621 HRESULT STDMETHODCALLTYPE IPersistStorage_InitNew_Proxy(
   10622     IPersistStorage* This,
   10623     IStorage *pStg);
   10624 void __RPC_STUB IPersistStorage_InitNew_Stub(
   10625     IRpcStubBuffer* This,
   10626     IRpcChannelBuffer* pRpcChannelBuffer,
   10627     PRPC_MESSAGE pRpcMessage,
   10628     DWORD* pdwStubPhase);
   10629 HRESULT STDMETHODCALLTYPE IPersistStorage_Load_Proxy(
   10630     IPersistStorage* This,
   10631     IStorage *pStg);
   10632 void __RPC_STUB IPersistStorage_Load_Stub(
   10633     IRpcStubBuffer* This,
   10634     IRpcChannelBuffer* pRpcChannelBuffer,
   10635     PRPC_MESSAGE pRpcMessage,
   10636     DWORD* pdwStubPhase);
   10637 HRESULT STDMETHODCALLTYPE IPersistStorage_Save_Proxy(
   10638     IPersistStorage* This,
   10639     IStorage *pStgSave,
   10640     WINBOOL fSameAsLoad);
   10641 void __RPC_STUB IPersistStorage_Save_Stub(
   10642     IRpcStubBuffer* This,
   10643     IRpcChannelBuffer* pRpcChannelBuffer,
   10644     PRPC_MESSAGE pRpcMessage,
   10645     DWORD* pdwStubPhase);
   10646 HRESULT STDMETHODCALLTYPE IPersistStorage_SaveCompleted_Proxy(
   10647     IPersistStorage* This,
   10648     IStorage *pStgNew);
   10649 void __RPC_STUB IPersistStorage_SaveCompleted_Stub(
   10650     IRpcStubBuffer* This,
   10651     IRpcChannelBuffer* pRpcChannelBuffer,
   10652     PRPC_MESSAGE pRpcMessage,
   10653     DWORD* pdwStubPhase);
   10654 HRESULT STDMETHODCALLTYPE IPersistStorage_HandsOffStorage_Proxy(
   10655     IPersistStorage* This);
   10656 void __RPC_STUB IPersistStorage_HandsOffStorage_Stub(
   10657     IRpcStubBuffer* This,
   10658     IRpcChannelBuffer* pRpcChannelBuffer,
   10659     PRPC_MESSAGE pRpcMessage,
   10660     DWORD* pdwStubPhase);
   10661 
   10662 #endif  /* __IPersistStorage_INTERFACE_DEFINED__ */
   10663 
   10664 #endif
   10665 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   10666 /*****************************************************************************
   10667  * ILockBytes interface
   10668  */
   10669 #ifndef __ILockBytes_INTERFACE_DEFINED__
   10670 #define __ILockBytes_INTERFACE_DEFINED__
   10671 
   10672 typedef ILockBytes *LPLOCKBYTES;
   10673 DEFINE_GUID(IID_ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   10674 #if defined(__cplusplus) && !defined(CINTERFACE)
   10675 MIDL_INTERFACE("0000000a-0000-0000-c000-000000000046")
   10676 ILockBytes : public IUnknown
   10677 {
   10678     virtual HRESULT STDMETHODCALLTYPE ReadAt(
   10679         ULARGE_INTEGER ulOffset,
   10680         void *pv,
   10681         ULONG cb,
   10682         ULONG *pcbRead) = 0;
   10683 
   10684     virtual HRESULT STDMETHODCALLTYPE WriteAt(
   10685         ULARGE_INTEGER ulOffset,
   10686         const void *pv,
   10687         ULONG cb,
   10688         ULONG *pcbWritten) = 0;
   10689 
   10690     virtual HRESULT STDMETHODCALLTYPE Flush(
   10691         ) = 0;
   10692 
   10693     virtual HRESULT STDMETHODCALLTYPE SetSize(
   10694         ULARGE_INTEGER cb) = 0;
   10695 
   10696     virtual HRESULT STDMETHODCALLTYPE LockRegion(
   10697         ULARGE_INTEGER libOffset,
   10698         ULARGE_INTEGER cb,
   10699         DWORD dwLockType) = 0;
   10700 
   10701     virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
   10702         ULARGE_INTEGER libOffset,
   10703         ULARGE_INTEGER cb,
   10704         DWORD dwLockType) = 0;
   10705 
   10706     virtual HRESULT STDMETHODCALLTYPE Stat(
   10707         STATSTG *pstatstg,
   10708         DWORD grfStatFlag) = 0;
   10709 
   10710 };
   10711 #ifdef __CRT_UUID_DECL
   10712 __CRT_UUID_DECL(ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   10713 #endif
   10714 #else
   10715 typedef struct ILockBytesVtbl {
   10716     BEGIN_INTERFACE
   10717 
   10718     /*** IUnknown methods ***/
   10719     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10720         ILockBytes* This,
   10721         REFIID riid,
   10722         void **ppvObject);
   10723 
   10724     ULONG (STDMETHODCALLTYPE *AddRef)(
   10725         ILockBytes* This);
   10726 
   10727     ULONG (STDMETHODCALLTYPE *Release)(
   10728         ILockBytes* This);
   10729 
   10730     /*** ILockBytes methods ***/
   10731     HRESULT (STDMETHODCALLTYPE *ReadAt)(
   10732         ILockBytes* This,
   10733         ULARGE_INTEGER ulOffset,
   10734         void *pv,
   10735         ULONG cb,
   10736         ULONG *pcbRead);
   10737 
   10738     HRESULT (STDMETHODCALLTYPE *WriteAt)(
   10739         ILockBytes* This,
   10740         ULARGE_INTEGER ulOffset,
   10741         const void *pv,
   10742         ULONG cb,
   10743         ULONG *pcbWritten);
   10744 
   10745     HRESULT (STDMETHODCALLTYPE *Flush)(
   10746         ILockBytes* This);
   10747 
   10748     HRESULT (STDMETHODCALLTYPE *SetSize)(
   10749         ILockBytes* This,
   10750         ULARGE_INTEGER cb);
   10751 
   10752     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   10753         ILockBytes* This,
   10754         ULARGE_INTEGER libOffset,
   10755         ULARGE_INTEGER cb,
   10756         DWORD dwLockType);
   10757 
   10758     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   10759         ILockBytes* This,
   10760         ULARGE_INTEGER libOffset,
   10761         ULARGE_INTEGER cb,
   10762         DWORD dwLockType);
   10763 
   10764     HRESULT (STDMETHODCALLTYPE *Stat)(
   10765         ILockBytes* This,
   10766         STATSTG *pstatstg,
   10767         DWORD grfStatFlag);
   10768 
   10769     END_INTERFACE
   10770 } ILockBytesVtbl;
   10771 interface ILockBytes {
   10772     CONST_VTBL ILockBytesVtbl* lpVtbl;
   10773 };
   10774 
   10775 #ifdef COBJMACROS
   10776 #ifndef WIDL_C_INLINE_WRAPPERS
   10777 /*** IUnknown methods ***/
   10778 #define ILockBytes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10779 #define ILockBytes_AddRef(This) (This)->lpVtbl->AddRef(This)
   10780 #define ILockBytes_Release(This) (This)->lpVtbl->Release(This)
   10781 /*** ILockBytes methods ***/
   10782 #define ILockBytes_ReadAt(This,ulOffset,pv,cb,pcbRead) (This)->lpVtbl->ReadAt(This,ulOffset,pv,cb,pcbRead)
   10783 #define ILockBytes_WriteAt(This,ulOffset,pv,cb,pcbWritten) (This)->lpVtbl->WriteAt(This,ulOffset,pv,cb,pcbWritten)
   10784 #define ILockBytes_Flush(This) (This)->lpVtbl->Flush(This)
   10785 #define ILockBytes_SetSize(This,cb) (This)->lpVtbl->SetSize(This,cb)
   10786 #define ILockBytes_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   10787 #define ILockBytes_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   10788 #define ILockBytes_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   10789 #else
   10790 /*** IUnknown methods ***/
   10791 static FORCEINLINE HRESULT ILockBytes_QueryInterface(ILockBytes* This,REFIID riid,void **ppvObject) {
   10792     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10793 }
   10794 static FORCEINLINE ULONG ILockBytes_AddRef(ILockBytes* This) {
   10795     return This->lpVtbl->AddRef(This);
   10796 }
   10797 static FORCEINLINE ULONG ILockBytes_Release(ILockBytes* This) {
   10798     return This->lpVtbl->Release(This);
   10799 }
   10800 /*** ILockBytes methods ***/
   10801 static FORCEINLINE HRESULT ILockBytes_ReadAt(ILockBytes* This,ULARGE_INTEGER ulOffset,void *pv,ULONG cb,ULONG *pcbRead) {
   10802     return This->lpVtbl->ReadAt(This,ulOffset,pv,cb,pcbRead);
   10803 }
   10804 static FORCEINLINE HRESULT ILockBytes_WriteAt(ILockBytes* This,ULARGE_INTEGER ulOffset,const void *pv,ULONG cb,ULONG *pcbWritten) {
   10805     return This->lpVtbl->WriteAt(This,ulOffset,pv,cb,pcbWritten);
   10806 }
   10807 static FORCEINLINE HRESULT ILockBytes_Flush(ILockBytes* This) {
   10808     return This->lpVtbl->Flush(This);
   10809 }
   10810 static FORCEINLINE HRESULT ILockBytes_SetSize(ILockBytes* This,ULARGE_INTEGER cb) {
   10811     return This->lpVtbl->SetSize(This,cb);
   10812 }
   10813 static FORCEINLINE HRESULT ILockBytes_LockRegion(ILockBytes* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   10814     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   10815 }
   10816 static FORCEINLINE HRESULT ILockBytes_UnlockRegion(ILockBytes* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   10817     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   10818 }
   10819 static FORCEINLINE HRESULT ILockBytes_Stat(ILockBytes* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   10820     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   10821 }
   10822 #endif
   10823 #endif
   10824 
   10825 #endif
   10826 
   10827 HRESULT __stdcall ILockBytes_RemoteReadAt_Proxy(
   10828     ILockBytes* This,
   10829     ULARGE_INTEGER ulOffset,
   10830     byte *pv,
   10831     ULONG cb,
   10832     ULONG *pcbRead);
   10833 void __RPC_STUB ILockBytes_RemoteReadAt_Stub(
   10834     IRpcStubBuffer* This,
   10835     IRpcChannelBuffer* pRpcChannelBuffer,
   10836     PRPC_MESSAGE pRpcMessage,
   10837     DWORD* pdwStubPhase);
   10838 HRESULT STDMETHODCALLTYPE ILockBytes_RemoteWriteAt_Proxy(
   10839     ILockBytes* This,
   10840     ULARGE_INTEGER ulOffset,
   10841     const byte *pv,
   10842     ULONG cb,
   10843     ULONG *pcbWritten);
   10844 void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
   10845     IRpcStubBuffer* This,
   10846     IRpcChannelBuffer* pRpcChannelBuffer,
   10847     PRPC_MESSAGE pRpcMessage,
   10848     DWORD* pdwStubPhase);
   10849 HRESULT STDMETHODCALLTYPE ILockBytes_Flush_Proxy(
   10850     ILockBytes* This);
   10851 void __RPC_STUB ILockBytes_Flush_Stub(
   10852     IRpcStubBuffer* This,
   10853     IRpcChannelBuffer* pRpcChannelBuffer,
   10854     PRPC_MESSAGE pRpcMessage,
   10855     DWORD* pdwStubPhase);
   10856 HRESULT STDMETHODCALLTYPE ILockBytes_SetSize_Proxy(
   10857     ILockBytes* This,
   10858     ULARGE_INTEGER cb);
   10859 void __RPC_STUB ILockBytes_SetSize_Stub(
   10860     IRpcStubBuffer* This,
   10861     IRpcChannelBuffer* pRpcChannelBuffer,
   10862     PRPC_MESSAGE pRpcMessage,
   10863     DWORD* pdwStubPhase);
   10864 HRESULT STDMETHODCALLTYPE ILockBytes_LockRegion_Proxy(
   10865     ILockBytes* This,
   10866     ULARGE_INTEGER libOffset,
   10867     ULARGE_INTEGER cb,
   10868     DWORD dwLockType);
   10869 void __RPC_STUB ILockBytes_LockRegion_Stub(
   10870     IRpcStubBuffer* This,
   10871     IRpcChannelBuffer* pRpcChannelBuffer,
   10872     PRPC_MESSAGE pRpcMessage,
   10873     DWORD* pdwStubPhase);
   10874 HRESULT STDMETHODCALLTYPE ILockBytes_UnlockRegion_Proxy(
   10875     ILockBytes* This,
   10876     ULARGE_INTEGER libOffset,
   10877     ULARGE_INTEGER cb,
   10878     DWORD dwLockType);
   10879 void __RPC_STUB ILockBytes_UnlockRegion_Stub(
   10880     IRpcStubBuffer* This,
   10881     IRpcChannelBuffer* pRpcChannelBuffer,
   10882     PRPC_MESSAGE pRpcMessage,
   10883     DWORD* pdwStubPhase);
   10884 HRESULT STDMETHODCALLTYPE ILockBytes_Stat_Proxy(
   10885     ILockBytes* This,
   10886     STATSTG *pstatstg,
   10887     DWORD grfStatFlag);
   10888 void __RPC_STUB ILockBytes_Stat_Stub(
   10889     IRpcStubBuffer* This,
   10890     IRpcChannelBuffer* pRpcChannelBuffer,
   10891     PRPC_MESSAGE pRpcMessage,
   10892     DWORD* pdwStubPhase);
   10893 HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
   10894     ILockBytes* This,
   10895     ULARGE_INTEGER ulOffset,
   10896     void *pv,
   10897     ULONG cb,
   10898     ULONG *pcbRead);
   10899 HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
   10900     ILockBytes* This,
   10901     ULARGE_INTEGER ulOffset,
   10902     byte *pv,
   10903     ULONG cb,
   10904     ULONG *pcbRead);
   10905 HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
   10906     ILockBytes* This,
   10907     ULARGE_INTEGER ulOffset,
   10908     const void *pv,
   10909     ULONG cb,
   10910     ULONG *pcbWritten);
   10911 HRESULT __RPC_STUB ILockBytes_WriteAt_Stub(
   10912     ILockBytes* This,
   10913     ULARGE_INTEGER ulOffset,
   10914     const byte *pv,
   10915     ULONG cb,
   10916     ULONG *pcbWritten);
   10917 
   10918 #endif  /* __ILockBytes_INTERFACE_DEFINED__ */
   10919 
   10920 /*****************************************************************************
   10921  * IEnumFORMATETC interface
   10922  */
   10923 #ifndef __IEnumFORMATETC_INTERFACE_DEFINED__
   10924 #define __IEnumFORMATETC_INTERFACE_DEFINED__
   10925 
   10926 typedef IEnumFORMATETC *LPENUMFORMATETC;
   10927 typedef struct tagDVTARGETDEVICE {
   10928     DWORD tdSize;
   10929     WORD tdDriverNameOffset;
   10930     WORD tdDeviceNameOffset;
   10931     WORD tdPortNameOffset;
   10932     WORD tdExtDevmodeOffset;
   10933     BYTE tdData[1];
   10934 } DVTARGETDEVICE;
   10935 typedef CLIPFORMAT *LPCLIPFORMAT;
   10936 typedef struct tagFORMATETC {
   10937     CLIPFORMAT cfFormat;
   10938     DVTARGETDEVICE *ptd;
   10939     DWORD dwAspect;
   10940     LONG lindex;
   10941     DWORD tymed;
   10942 } FORMATETC;
   10943 typedef struct tagFORMATETC *LPFORMATETC;
   10944 DEFINE_GUID(IID_IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   10945 #if defined(__cplusplus) && !defined(CINTERFACE)
   10946 MIDL_INTERFACE("00000103-0000-0000-c000-000000000046")
   10947 IEnumFORMATETC : public IUnknown
   10948 {
   10949     virtual HRESULT STDMETHODCALLTYPE Next(
   10950         ULONG celt,
   10951         FORMATETC *rgelt,
   10952         ULONG *pceltFetched) = 0;
   10953 
   10954     virtual HRESULT STDMETHODCALLTYPE Skip(
   10955         ULONG celt) = 0;
   10956 
   10957     virtual HRESULT STDMETHODCALLTYPE Reset(
   10958         ) = 0;
   10959 
   10960     virtual HRESULT STDMETHODCALLTYPE Clone(
   10961         IEnumFORMATETC **ppenum) = 0;
   10962 
   10963 };
   10964 #ifdef __CRT_UUID_DECL
   10965 __CRT_UUID_DECL(IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   10966 #endif
   10967 #else
   10968 typedef struct IEnumFORMATETCVtbl {
   10969     BEGIN_INTERFACE
   10970 
   10971     /*** IUnknown methods ***/
   10972     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10973         IEnumFORMATETC* This,
   10974         REFIID riid,
   10975         void **ppvObject);
   10976 
   10977     ULONG (STDMETHODCALLTYPE *AddRef)(
   10978         IEnumFORMATETC* This);
   10979 
   10980     ULONG (STDMETHODCALLTYPE *Release)(
   10981         IEnumFORMATETC* This);
   10982 
   10983     /*** IEnumFORMATETC methods ***/
   10984     HRESULT (STDMETHODCALLTYPE *Next)(
   10985         IEnumFORMATETC* This,
   10986         ULONG celt,
   10987         FORMATETC *rgelt,
   10988         ULONG *pceltFetched);
   10989 
   10990     HRESULT (STDMETHODCALLTYPE *Skip)(
   10991         IEnumFORMATETC* This,
   10992         ULONG celt);
   10993 
   10994     HRESULT (STDMETHODCALLTYPE *Reset)(
   10995         IEnumFORMATETC* This);
   10996 
   10997     HRESULT (STDMETHODCALLTYPE *Clone)(
   10998         IEnumFORMATETC* This,
   10999         IEnumFORMATETC **ppenum);
   11000 
   11001     END_INTERFACE
   11002 } IEnumFORMATETCVtbl;
   11003 interface IEnumFORMATETC {
   11004     CONST_VTBL IEnumFORMATETCVtbl* lpVtbl;
   11005 };
   11006 
   11007 #ifdef COBJMACROS
   11008 #ifndef WIDL_C_INLINE_WRAPPERS
   11009 /*** IUnknown methods ***/
   11010 #define IEnumFORMATETC_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   11011 #define IEnumFORMATETC_AddRef(This) (This)->lpVtbl->AddRef(This)
   11012 #define IEnumFORMATETC_Release(This) (This)->lpVtbl->Release(This)
   11013 /*** IEnumFORMATETC methods ***/
   11014 #define IEnumFORMATETC_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   11015 #define IEnumFORMATETC_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   11016 #define IEnumFORMATETC_Reset(This) (This)->lpVtbl->Reset(This)
   11017 #define IEnumFORMATETC_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   11018 #else
   11019 /*** IUnknown methods ***/
   11020 static FORCEINLINE HRESULT IEnumFORMATETC_QueryInterface(IEnumFORMATETC* This,REFIID riid,void **ppvObject) {
   11021     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   11022 }
   11023 static FORCEINLINE ULONG IEnumFORMATETC_AddRef(IEnumFORMATETC* This) {
   11024     return This->lpVtbl->AddRef(This);
   11025 }
   11026 static FORCEINLINE ULONG IEnumFORMATETC_Release(IEnumFORMATETC* This) {
   11027     return This->lpVtbl->Release(This);
   11028 }
   11029 /*** IEnumFORMATETC methods ***/
   11030 static FORCEINLINE HRESULT IEnumFORMATETC_Next(IEnumFORMATETC* This,ULONG celt,FORMATETC *rgelt,ULONG *pceltFetched) {
   11031     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   11032 }
   11033 static FORCEINLINE HRESULT IEnumFORMATETC_Skip(IEnumFORMATETC* This,ULONG celt) {
   11034     return This->lpVtbl->Skip(This,celt);
   11035 }
   11036 static FORCEINLINE HRESULT IEnumFORMATETC_Reset(IEnumFORMATETC* This) {
   11037     return This->lpVtbl->Reset(This);
   11038 }
   11039 static FORCEINLINE HRESULT IEnumFORMATETC_Clone(IEnumFORMATETC* This,IEnumFORMATETC **ppenum) {
   11040     return This->lpVtbl->Clone(This,ppenum);
   11041 }
   11042 #endif
   11043 #endif
   11044 
   11045 #endif
   11046 
   11047 HRESULT STDMETHODCALLTYPE IEnumFORMATETC_RemoteNext_Proxy(
   11048     IEnumFORMATETC* This,
   11049     ULONG celt,
   11050     FORMATETC *rgelt,
   11051     ULONG *pceltFetched);
   11052 void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
   11053     IRpcStubBuffer* This,
   11054     IRpcChannelBuffer* pRpcChannelBuffer,
   11055     PRPC_MESSAGE pRpcMessage,
   11056     DWORD* pdwStubPhase);
   11057 HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Skip_Proxy(
   11058     IEnumFORMATETC* This,
   11059     ULONG celt);
   11060 void __RPC_STUB IEnumFORMATETC_Skip_Stub(
   11061     IRpcStubBuffer* This,
   11062     IRpcChannelBuffer* pRpcChannelBuffer,
   11063     PRPC_MESSAGE pRpcMessage,
   11064     DWORD* pdwStubPhase);
   11065 HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Reset_Proxy(
   11066     IEnumFORMATETC* This);
   11067 void __RPC_STUB IEnumFORMATETC_Reset_Stub(
   11068     IRpcStubBuffer* This,
   11069     IRpcChannelBuffer* pRpcChannelBuffer,
   11070     PRPC_MESSAGE pRpcMessage,
   11071     DWORD* pdwStubPhase);
   11072 HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Clone_Proxy(
   11073     IEnumFORMATETC* This,
   11074     IEnumFORMATETC **ppenum);
   11075 void __RPC_STUB IEnumFORMATETC_Clone_Stub(
   11076     IRpcStubBuffer* This,
   11077     IRpcChannelBuffer* pRpcChannelBuffer,
   11078     PRPC_MESSAGE pRpcMessage,
   11079     DWORD* pdwStubPhase);
   11080 HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
   11081     IEnumFORMATETC* This,
   11082     ULONG celt,
   11083     FORMATETC *rgelt,
   11084     ULONG *pceltFetched);
   11085 HRESULT __RPC_STUB IEnumFORMATETC_Next_Stub(
   11086     IEnumFORMATETC* This,
   11087     ULONG celt,
   11088     FORMATETC *rgelt,
   11089     ULONG *pceltFetched);
   11090 
   11091 #endif  /* __IEnumFORMATETC_INTERFACE_DEFINED__ */
   11092 
   11093 /*****************************************************************************
   11094  * IEnumSTATDATA interface
   11095  */
   11096 #ifndef __IEnumSTATDATA_INTERFACE_DEFINED__
   11097 #define __IEnumSTATDATA_INTERFACE_DEFINED__
   11098 
   11099 typedef IEnumSTATDATA *LPENUMSTATDATA;
   11100 typedef enum tagADVF {
   11101     ADVF_NODATA = 1,
   11102     ADVF_PRIMEFIRST = 2,
   11103     ADVF_ONLYONCE = 4,
   11104     ADVF_DATAONSTOP = 64,
   11105     ADVFCACHE_NOHANDLER = 8,
   11106     ADVFCACHE_FORCEBUILTIN = 16,
   11107     ADVFCACHE_ONSAVE = 32
   11108 } ADVF;
   11109 typedef struct tagSTATDATA {
   11110     FORMATETC formatetc;
   11111     DWORD advf;
   11112     IAdviseSink *pAdvSink;
   11113     DWORD dwConnection;
   11114 } STATDATA;
   11115 typedef STATDATA *LPSTATDATA;
   11116 DEFINE_GUID(IID_IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   11117 #if defined(__cplusplus) && !defined(CINTERFACE)
   11118 MIDL_INTERFACE("00000105-0000-0000-c000-000000000046")
   11119 IEnumSTATDATA : public IUnknown
   11120 {
   11121     virtual HRESULT STDMETHODCALLTYPE Next(
   11122         ULONG celt,
   11123         STATDATA *rgelt,
   11124         ULONG *pceltFetched) = 0;
   11125 
   11126     virtual HRESULT STDMETHODCALLTYPE Skip(
   11127         ULONG celt) = 0;
   11128 
   11129     virtual HRESULT STDMETHODCALLTYPE Reset(
   11130         ) = 0;
   11131 
   11132     virtual HRESULT STDMETHODCALLTYPE Clone(
   11133         IEnumSTATDATA **ppenum) = 0;
   11134 
   11135 };
   11136 #ifdef __CRT_UUID_DECL
   11137 __CRT_UUID_DECL(IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   11138 #endif
   11139 #else
   11140 typedef struct IEnumSTATDATAVtbl {
   11141     BEGIN_INTERFACE
   11142 
   11143     /*** IUnknown methods ***/
   11144     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   11145         IEnumSTATDATA* This,
   11146         REFIID riid,
   11147         void **ppvObject);
   11148 
   11149     ULONG (STDMETHODCALLTYPE *AddRef)(
   11150         IEnumSTATDATA* This);
   11151 
   11152     ULONG (STDMETHODCALLTYPE *Release)(
   11153         IEnumSTATDATA* This);
   11154 
   11155     /*** IEnumSTATDATA methods ***/
   11156     HRESULT (STDMETHODCALLTYPE *Next)(
   11157         IEnumSTATDATA* This,
   11158         ULONG celt,
   11159         STATDATA *rgelt,
   11160         ULONG *pceltFetched);
   11161 
   11162     HRESULT (STDMETHODCALLTYPE *Skip)(
   11163         IEnumSTATDATA* This,
   11164         ULONG celt);
   11165 
   11166     HRESULT (STDMETHODCALLTYPE *Reset)(
   11167         IEnumSTATDATA* This);
   11168 
   11169     HRESULT (STDMETHODCALLTYPE *Clone)(
   11170         IEnumSTATDATA* This,
   11171         IEnumSTATDATA **ppenum);
   11172 
   11173     END_INTERFACE
   11174 } IEnumSTATDATAVtbl;
   11175 interface IEnumSTATDATA {
   11176     CONST_VTBL IEnumSTATDATAVtbl* lpVtbl;
   11177 };
   11178 
   11179 #ifdef COBJMACROS
   11180 #ifndef WIDL_C_INLINE_WRAPPERS
   11181 /*** IUnknown methods ***/
   11182 #define IEnumSTATDATA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   11183 #define IEnumSTATDATA_AddRef(This) (This)->lpVtbl->AddRef(This)
   11184 #define IEnumSTATDATA_Release(This) (This)->lpVtbl->Release(This)
   11185 /*** IEnumSTATDATA methods ***/
   11186 #define IEnumSTATDATA_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   11187 #define IEnumSTATDATA_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   11188 #define IEnumSTATDATA_Reset(This) (This)->lpVtbl->Reset(This)
   11189 #define IEnumSTATDATA_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   11190 #else
   11191 /*** IUnknown methods ***/
   11192 static FORCEINLINE HRESULT IEnumSTATDATA_QueryInterface(IEnumSTATDATA* This,REFIID riid,void **ppvObject) {
   11193     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   11194 }
   11195 static FORCEINLINE ULONG IEnumSTATDATA_AddRef(IEnumSTATDATA* This) {
   11196     return This->lpVtbl->AddRef(This);
   11197 }
   11198 static FORCEINLINE ULONG IEnumSTATDATA_Release(IEnumSTATDATA* This) {
   11199     return This->lpVtbl->Release(This);
   11200 }
   11201 /*** IEnumSTATDATA methods ***/
   11202 static FORCEINLINE HRESULT IEnumSTATDATA_Next(IEnumSTATDATA* This,ULONG celt,STATDATA *rgelt,ULONG *pceltFetched) {
   11203     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   11204 }
   11205 static FORCEINLINE HRESULT IEnumSTATDATA_Skip(IEnumSTATDATA* This,ULONG celt) {
   11206     return This->lpVtbl->Skip(This,celt);
   11207 }
   11208 static FORCEINLINE HRESULT IEnumSTATDATA_Reset(IEnumSTATDATA* This) {
   11209     return This->lpVtbl->Reset(This);
   11210 }
   11211 static FORCEINLINE HRESULT IEnumSTATDATA_Clone(IEnumSTATDATA* This,IEnumSTATDATA **ppenum) {
   11212     return This->lpVtbl->Clone(This,ppenum);
   11213 }
   11214 #endif
   11215 #endif
   11216 
   11217 #endif
   11218 
   11219 HRESULT STDMETHODCALLTYPE IEnumSTATDATA_RemoteNext_Proxy(
   11220     IEnumSTATDATA* This,
   11221     ULONG celt,
   11222     STATDATA *rgelt,
   11223     ULONG *pceltFetched);
   11224 void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
   11225     IRpcStubBuffer* This,
   11226     IRpcChannelBuffer* pRpcChannelBuffer,
   11227     PRPC_MESSAGE pRpcMessage,
   11228     DWORD* pdwStubPhase);
   11229 HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Skip_Proxy(
   11230     IEnumSTATDATA* This,
   11231     ULONG celt);
   11232 void __RPC_STUB IEnumSTATDATA_Skip_Stub(
   11233     IRpcStubBuffer* This,
   11234     IRpcChannelBuffer* pRpcChannelBuffer,
   11235     PRPC_MESSAGE pRpcMessage,
   11236     DWORD* pdwStubPhase);
   11237 HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Reset_Proxy(
   11238     IEnumSTATDATA* This);
   11239 void __RPC_STUB IEnumSTATDATA_Reset_Stub(
   11240     IRpcStubBuffer* This,
   11241     IRpcChannelBuffer* pRpcChannelBuffer,
   11242     PRPC_MESSAGE pRpcMessage,
   11243     DWORD* pdwStubPhase);
   11244 HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Clone_Proxy(
   11245     IEnumSTATDATA* This,
   11246     IEnumSTATDATA **ppenum);
   11247 void __RPC_STUB IEnumSTATDATA_Clone_Stub(
   11248     IRpcStubBuffer* This,
   11249     IRpcChannelBuffer* pRpcChannelBuffer,
   11250     PRPC_MESSAGE pRpcMessage,
   11251     DWORD* pdwStubPhase);
   11252 HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
   11253     IEnumSTATDATA* This,
   11254     ULONG celt,
   11255     STATDATA *rgelt,
   11256     ULONG *pceltFetched);
   11257 HRESULT __RPC_STUB IEnumSTATDATA_Next_Stub(
   11258     IEnumSTATDATA* This,
   11259     ULONG celt,
   11260     STATDATA *rgelt,
   11261     ULONG *pceltFetched);
   11262 
   11263 #endif  /* __IEnumSTATDATA_INTERFACE_DEFINED__ */
   11264 
   11265 /*****************************************************************************
   11266  * IRootStorage interface
   11267  */
   11268 #ifndef __IRootStorage_INTERFACE_DEFINED__
   11269 #define __IRootStorage_INTERFACE_DEFINED__
   11270 
   11271 typedef IRootStorage *LPROOTSTORAGE;
   11272 DEFINE_GUID(IID_IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   11273 #if defined(__cplusplus) && !defined(CINTERFACE)
   11274 MIDL_INTERFACE("00000012-0000-0000-c000-000000000046")
   11275 IRootStorage : public IUnknown
   11276 {
   11277     virtual HRESULT STDMETHODCALLTYPE SwitchToFile(
   11278         LPOLESTR pszFile) = 0;
   11279 
   11280 };
   11281 #ifdef __CRT_UUID_DECL
   11282 __CRT_UUID_DECL(IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   11283 #endif
   11284 #else
   11285 typedef struct IRootStorageVtbl {
   11286     BEGIN_INTERFACE
   11287 
   11288     /*** IUnknown methods ***/
   11289     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   11290         IRootStorage* This,
   11291         REFIID riid,
   11292         void **ppvObject);
   11293 
   11294     ULONG (STDMETHODCALLTYPE *AddRef)(
   11295         IRootStorage* This);
   11296 
   11297     ULONG (STDMETHODCALLTYPE *Release)(
   11298         IRootStorage* This);
   11299 
   11300     /*** IRootStorage methods ***/
   11301     HRESULT (STDMETHODCALLTYPE *SwitchToFile)(
   11302         IRootStorage* This,
   11303         LPOLESTR pszFile);
   11304 
   11305     END_INTERFACE
   11306 } IRootStorageVtbl;
   11307 interface IRootStorage {
   11308     CONST_VTBL IRootStorageVtbl* lpVtbl;
   11309 };
   11310 
   11311 #ifdef COBJMACROS
   11312 #ifndef WIDL_C_INLINE_WRAPPERS
   11313 /*** IUnknown methods ***/
   11314 #define IRootStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   11315 #define IRootStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
   11316 #define IRootStorage_Release(This) (This)->lpVtbl->Release(This)
   11317 /*** IRootStorage methods ***/
   11318 #define IRootStorage_SwitchToFile(This,pszFile) (This)->lpVtbl->SwitchToFile(This,pszFile)
   11319 #else
   11320 /*** IUnknown methods ***/
   11321 static FORCEINLINE HRESULT IRootStorage_QueryInterface(IRootStorage* This,REFIID riid,void **ppvObject) {
   11322     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   11323 }
   11324 static FORCEINLINE ULONG IRootStorage_AddRef(IRootStorage* This) {
   11325     return This->lpVtbl->AddRef(This);
   11326 }
   11327 static FORCEINLINE ULONG IRootStorage_Release(IRootStorage* This) {
   11328     return This->lpVtbl->Release(This);
   11329 }
   11330 /*** IRootStorage methods ***/
   11331 static FORCEINLINE HRESULT IRootStorage_SwitchToFile(IRootStorage* This,LPOLESTR pszFile) {
   11332     return This->lpVtbl->SwitchToFile(This,pszFile);
   11333 }
   11334 #endif
   11335 #endif
   11336 
   11337 #endif
   11338 
   11339 HRESULT STDMETHODCALLTYPE IRootStorage_SwitchToFile_Proxy(
   11340     IRootStorage* This,
   11341     LPOLESTR pszFile);
   11342 void __RPC_STUB IRootStorage_SwitchToFile_Stub(
   11343     IRpcStubBuffer* This,
   11344     IRpcChannelBuffer* pRpcChannelBuffer,
   11345     PRPC_MESSAGE pRpcMessage,
   11346     DWORD* pdwStubPhase);
   11347 
   11348 #endif  /* __IRootStorage_INTERFACE_DEFINED__ */
   11349 
   11350 /*****************************************************************************
   11351  * IAdviseSink interface
   11352  */
   11353 #ifndef __IAdviseSink_INTERFACE_DEFINED__
   11354 #define __IAdviseSink_INTERFACE_DEFINED__
   11355 
   11356 typedef IAdviseSink *LPADVISESINK;
   11357 typedef enum tagTYMED {
   11358     TYMED_HGLOBAL = 1,
   11359     TYMED_FILE = 2,
   11360     TYMED_ISTREAM = 4,
   11361     TYMED_ISTORAGE = 8,
   11362     TYMED_GDI = 16,
   11363     TYMED_MFPICT = 32,
   11364     TYMED_ENHMF = 64,
   11365     TYMED_NULL = 0
   11366 } TYMED;
   11367 typedef struct tagRemSTGMEDIUM {
   11368     DWORD tymed;
   11369     DWORD dwHandleType;
   11370     ULONG pData;
   11371     ULONG pUnkForRelease;
   11372     ULONG cbData;
   11373     byte data[1];
   11374 } RemSTGMEDIUM;
   11375 #ifdef NONAMELESSUNION
   11376 typedef struct tagSTGMEDIUM {
   11377 DWORD tymed;
   11378 union {
   11379 HBITMAP hBitmap;
   11380 HMETAFILEPICT hMetaFilePict;
   11381 HENHMETAFILE hEnhMetaFile;
   11382 HGLOBAL hGlobal;
   11383 LPOLESTR lpszFileName;
   11384 IStream *pstm;
   11385 IStorage *pstg;
   11386 } u;
   11387 IUnknown *pUnkForRelease;
   11388 }uSTGMEDIUM;
   11389 #else
   11390 typedef struct tagSTGMEDIUM {
   11391     DWORD tymed;
   11392     __C89_NAMELESS union {
   11393         HBITMAP hBitmap;
   11394         HMETAFILEPICT hMetaFilePict;
   11395         HENHMETAFILE hEnhMetaFile;
   11396         HGLOBAL hGlobal;
   11397         LPOLESTR lpszFileName;
   11398         IStream *pstm;
   11399         IStorage *pstg;
   11400     } DUMMYUNIONNAME;
   11401     IUnknown *pUnkForRelease;
   11402 } uSTGMEDIUM;
   11403 #endif
   11404 typedef struct _GDI_OBJECT {
   11405     DWORD ObjectType;
   11406     union {
   11407         wireHBITMAP hBitmap;
   11408         wireHPALETTE hPalette;
   11409         wireHGLOBAL hGeneric;
   11410     } u;
   11411 } GDI_OBJECT;
   11412 typedef struct _userSTGMEDIUM {
   11413     __C89_NAMELESS struct _STGMEDIUM_UNION {
   11414         DWORD tymed;
   11415         union {
   11416             wireHMETAFILEPICT hMetaFilePict;
   11417             wireHENHMETAFILE hHEnhMetaFile;
   11418             GDI_OBJECT *hGdiHandle;
   11419             wireHGLOBAL hGlobal;
   11420             LPOLESTR lpszFileName;
   11421             BYTE_BLOB *pstm;
   11422             BYTE_BLOB *pstg;
   11423         } u;
   11424     } DUMMYUNIONNAME;
   11425     IUnknown *pUnkForRelease;
   11426 } userSTGMEDIUM;
   11427 typedef userSTGMEDIUM *wireSTGMEDIUM;
   11428 typedef uSTGMEDIUM STGMEDIUM;
   11429 typedef userSTGMEDIUM *wireASYNC_STGMEDIUM;
   11430 typedef STGMEDIUM ASYNC_STGMEDIUM;
   11431 typedef STGMEDIUM *LPSTGMEDIUM;
   11432 typedef struct _userFLAG_STGMEDIUM {
   11433     LONG ContextFlags;
   11434     LONG fPassOwnership;
   11435     userSTGMEDIUM Stgmed;
   11436 } userFLAG_STGMEDIUM;
   11437 typedef userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
   11438 typedef struct _FLAG_STGMEDIUM {
   11439     LONG ContextFlags;
   11440     LONG fPassOwnership;
   11441     STGMEDIUM Stgmed;
   11442 } FLAG_STGMEDIUM;
   11443 DEFINE_GUID(IID_IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   11444 #if defined(__cplusplus) && !defined(CINTERFACE)
   11445 MIDL_INTERFACE("0000010f-0000-0000-c000-000000000046")
   11446 IAdviseSink : public IUnknown
   11447 {
   11448     virtual void STDMETHODCALLTYPE OnDataChange(
   11449         FORMATETC *pFormatetc,
   11450         STGMEDIUM *pStgmed) = 0;
   11451 
   11452     virtual void STDMETHODCALLTYPE OnViewChange(
   11453         DWORD dwAspect,
   11454         LONG lindex) = 0;
   11455 
   11456     virtual void STDMETHODCALLTYPE OnRename(
   11457         IMoniker *pmk) = 0;
   11458 
   11459     virtual void STDMETHODCALLTYPE OnSave(
   11460         ) = 0;
   11461 
   11462     virtual void STDMETHODCALLTYPE OnClose(
   11463         ) = 0;
   11464 
   11465 };
   11466 #ifdef __CRT_UUID_DECL
   11467 __CRT_UUID_DECL(IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   11468 #endif
   11469 #else
   11470 typedef struct IAdviseSinkVtbl {
   11471     BEGIN_INTERFACE
   11472 
   11473     /*** IUnknown methods ***/
   11474     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   11475         IAdviseSink* This,
   11476         REFIID riid,
   11477         void **ppvObject);
   11478 
   11479     ULONG (STDMETHODCALLTYPE *AddRef)(
   11480         IAdviseSink* This);
   11481 
   11482     ULONG (STDMETHODCALLTYPE *Release)(
   11483         IAdviseSink* This);
   11484 
   11485     /*** IAdviseSink methods ***/
   11486     void (STDMETHODCALLTYPE *OnDataChange)(
   11487         IAdviseSink* This,
   11488         FORMATETC *pFormatetc,
   11489         STGMEDIUM *pStgmed);
   11490 
   11491     void (STDMETHODCALLTYPE *OnViewChange)(
   11492         IAdviseSink* This,
   11493         DWORD dwAspect,
   11494         LONG lindex);
   11495 
   11496     void (STDMETHODCALLTYPE *OnRename)(
   11497         IAdviseSink* This,
   11498         IMoniker *pmk);
   11499 
   11500     void (STDMETHODCALLTYPE *OnSave)(
   11501         IAdviseSink* This);
   11502 
   11503     void (STDMETHODCALLTYPE *OnClose)(
   11504         IAdviseSink* This);
   11505 
   11506     END_INTERFACE
   11507 } IAdviseSinkVtbl;
   11508 interface IAdviseSink {
   11509     CONST_VTBL IAdviseSinkVtbl* lpVtbl;
   11510 };
   11511 
   11512 #ifdef COBJMACROS
   11513 #ifndef WIDL_C_INLINE_WRAPPERS
   11514 /*** IUnknown methods ***/
   11515 #define IAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   11516 #define IAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   11517 #define IAdviseSink_Release(This) (This)->lpVtbl->Release(This)
   11518 /*** IAdviseSink methods ***/
   11519 #define IAdviseSink_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->OnDataChange(This,pFormatetc,pStgmed)
   11520 #define IAdviseSink_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->OnViewChange(This,dwAspect,lindex)
   11521 #define IAdviseSink_OnRename(This,pmk) (This)->lpVtbl->OnRename(This,pmk)
   11522 #define IAdviseSink_OnSave(This) (This)->lpVtbl->OnSave(This)
   11523 #define IAdviseSink_OnClose(This) (This)->lpVtbl->OnClose(This)
   11524 #else
   11525 /*** IUnknown methods ***/
   11526 static FORCEINLINE HRESULT IAdviseSink_QueryInterface(IAdviseSink* This,REFIID riid,void **ppvObject) {
   11527     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   11528 }
   11529 static FORCEINLINE ULONG IAdviseSink_AddRef(IAdviseSink* This) {
   11530     return This->lpVtbl->AddRef(This);
   11531 }
   11532 static FORCEINLINE ULONG IAdviseSink_Release(IAdviseSink* This) {
   11533     return This->lpVtbl->Release(This);
   11534 }
   11535 /*** IAdviseSink methods ***/
   11536 static FORCEINLINE void IAdviseSink_OnDataChange(IAdviseSink* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
   11537     This->lpVtbl->OnDataChange(This,pFormatetc,pStgmed);
   11538 }
   11539 static FORCEINLINE void IAdviseSink_OnViewChange(IAdviseSink* This,DWORD dwAspect,LONG lindex) {
   11540     This->lpVtbl->OnViewChange(This,dwAspect,lindex);
   11541 }
   11542 static FORCEINLINE void IAdviseSink_OnRename(IAdviseSink* This,IMoniker *pmk) {
   11543     This->lpVtbl->OnRename(This,pmk);
   11544 }
   11545 static FORCEINLINE void IAdviseSink_OnSave(IAdviseSink* This) {
   11546     This->lpVtbl->OnSave(This);
   11547 }
   11548 static FORCEINLINE void IAdviseSink_OnClose(IAdviseSink* This) {
   11549     This->lpVtbl->OnClose(This);
   11550 }
   11551 #endif
   11552 #endif
   11553 
   11554 #endif
   11555 
   11556 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnDataChange_Proxy(
   11557     IAdviseSink* This,
   11558     FORMATETC *pFormatetc,
   11559     ASYNC_STGMEDIUM *pStgmed);
   11560 void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub(
   11561     IRpcStubBuffer* This,
   11562     IRpcChannelBuffer* pRpcChannelBuffer,
   11563     PRPC_MESSAGE pRpcMessage,
   11564     DWORD* pdwStubPhase);
   11565 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnViewChange_Proxy(
   11566     IAdviseSink* This,
   11567     DWORD dwAspect,
   11568     LONG lindex);
   11569 void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub(
   11570     IRpcStubBuffer* This,
   11571     IRpcChannelBuffer* pRpcChannelBuffer,
   11572     PRPC_MESSAGE pRpcMessage,
   11573     DWORD* pdwStubPhase);
   11574 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnRename_Proxy(
   11575     IAdviseSink* This,
   11576     IMoniker *pmk);
   11577 void __RPC_STUB IAdviseSink_RemoteOnRename_Stub(
   11578     IRpcStubBuffer* This,
   11579     IRpcChannelBuffer* pRpcChannelBuffer,
   11580     PRPC_MESSAGE pRpcMessage,
   11581     DWORD* pdwStubPhase);
   11582 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnSave_Proxy(
   11583     IAdviseSink* This);
   11584 void __RPC_STUB IAdviseSink_RemoteOnSave_Stub(
   11585     IRpcStubBuffer* This,
   11586     IRpcChannelBuffer* pRpcChannelBuffer,
   11587     PRPC_MESSAGE pRpcMessage,
   11588     DWORD* pdwStubPhase);
   11589 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnClose_Proxy(
   11590     IAdviseSink* This);
   11591 void __RPC_STUB IAdviseSink_RemoteOnClose_Stub(
   11592     IRpcStubBuffer* This,
   11593     IRpcChannelBuffer* pRpcChannelBuffer,
   11594     PRPC_MESSAGE pRpcMessage,
   11595     DWORD* pdwStubPhase);
   11596 void CALLBACK IAdviseSink_OnDataChange_Proxy(
   11597     IAdviseSink* This,
   11598     FORMATETC *pFormatetc,
   11599     STGMEDIUM *pStgmed);
   11600 HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
   11601     IAdviseSink* This,
   11602     FORMATETC *pFormatetc,
   11603     ASYNC_STGMEDIUM *pStgmed);
   11604 void CALLBACK IAdviseSink_OnViewChange_Proxy(
   11605     IAdviseSink* This,
   11606     DWORD dwAspect,
   11607     LONG lindex);
   11608 HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
   11609     IAdviseSink* This,
   11610     DWORD dwAspect,
   11611     LONG lindex);
   11612 void CALLBACK IAdviseSink_OnRename_Proxy(
   11613     IAdviseSink* This,
   11614     IMoniker *pmk);
   11615 HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
   11616     IAdviseSink* This,
   11617     IMoniker *pmk);
   11618 void CALLBACK IAdviseSink_OnSave_Proxy(
   11619     IAdviseSink* This);
   11620 HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
   11621     IAdviseSink* This);
   11622 void CALLBACK IAdviseSink_OnClose_Proxy(
   11623     IAdviseSink* This);
   11624 HRESULT __RPC_STUB IAdviseSink_OnClose_Stub(
   11625     IAdviseSink* This);
   11626 
   11627 #endif  /* __IAdviseSink_INTERFACE_DEFINED__ */
   11628 
   11629 /*****************************************************************************
   11630  * AsyncIAdviseSink interface
   11631  */
   11632 #ifndef __AsyncIAdviseSink_INTERFACE_DEFINED__
   11633 #define __AsyncIAdviseSink_INTERFACE_DEFINED__
   11634 
   11635 DEFINE_GUID(IID_AsyncIAdviseSink, 0x00000150, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   11636 #if defined(__cplusplus) && !defined(CINTERFACE)
   11637 MIDL_INTERFACE("00000150-0000-0000-c000-000000000046")
   11638 AsyncIAdviseSink : public IUnknown
   11639 {
   11640     virtual void STDMETHODCALLTYPE Begin_OnDataChange(
   11641         FORMATETC *pFormatetc,
   11642         STGMEDIUM *pStgmed) = 0;
   11643 
   11644     virtual void STDMETHODCALLTYPE Finish_OnDataChange(
   11645         ) = 0;
   11646 
   11647     virtual void STDMETHODCALLTYPE Begin_OnViewChange(
   11648         DWORD dwAspect,
   11649         LONG lindex) = 0;
   11650 
   11651     virtual void STDMETHODCALLTYPE Finish_OnViewChange(
   11652         ) = 0;
   11653 
   11654     virtual void STDMETHODCALLTYPE Begin_OnRename(
   11655         IMoniker *pmk) = 0;
   11656 
   11657     virtual void STDMETHODCALLTYPE Finish_OnRename(
   11658         ) = 0;
   11659 
   11660     virtual void STDMETHODCALLTYPE Begin_OnSave(
   11661         ) = 0;
   11662 
   11663     virtual void STDMETHODCALLTYPE Finish_OnSave(
   11664         ) = 0;
   11665 
   11666     virtual void STDMETHODCALLTYPE Begin_OnClose(
   11667         ) = 0;
   11668 
   11669     virtual void STDMETHODCALLTYPE Finish_OnClose(
   11670         ) = 0;
   11671 
   11672 };
   11673 #ifdef __CRT_UUID_DECL
   11674 __CRT_UUID_DECL(AsyncIAdviseSink, 0x00000150, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   11675 #endif
   11676 #else
   11677 typedef struct AsyncIAdviseSinkVtbl {
   11678     BEGIN_INTERFACE
   11679 
   11680     /*** IUnknown methods ***/
   11681     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   11682         AsyncIAdviseSink* This,
   11683         REFIID riid,
   11684         void **ppvObject);
   11685 
   11686     ULONG (STDMETHODCALLTYPE *AddRef)(
   11687         AsyncIAdviseSink* This);
   11688 
   11689     ULONG (STDMETHODCALLTYPE *Release)(
   11690         AsyncIAdviseSink* This);
   11691 
   11692     /*** IAdviseSink methods ***/
   11693     void (STDMETHODCALLTYPE *Begin_OnDataChange)(
   11694         AsyncIAdviseSink* This,
   11695         FORMATETC *pFormatetc,
   11696         STGMEDIUM *pStgmed);
   11697 
   11698     void (STDMETHODCALLTYPE *Finish_OnDataChange)(
   11699         AsyncIAdviseSink* This);
   11700 
   11701     void (STDMETHODCALLTYPE *Begin_OnViewChange)(
   11702         AsyncIAdviseSink* This,
   11703         DWORD dwAspect,
   11704         LONG lindex);
   11705 
   11706     void (STDMETHODCALLTYPE *Finish_OnViewChange)(
   11707         AsyncIAdviseSink* This);
   11708 
   11709     void (STDMETHODCALLTYPE *Begin_OnRename)(
   11710         AsyncIAdviseSink* This,
   11711         IMoniker *pmk);
   11712 
   11713     void (STDMETHODCALLTYPE *Finish_OnRename)(
   11714         AsyncIAdviseSink* This);
   11715 
   11716     void (STDMETHODCALLTYPE *Begin_OnSave)(
   11717         AsyncIAdviseSink* This);
   11718 
   11719     void (STDMETHODCALLTYPE *Finish_OnSave)(
   11720         AsyncIAdviseSink* This);
   11721 
   11722     void (STDMETHODCALLTYPE *Begin_OnClose)(
   11723         AsyncIAdviseSink* This);
   11724 
   11725     void (STDMETHODCALLTYPE *Finish_OnClose)(
   11726         AsyncIAdviseSink* This);
   11727 
   11728     END_INTERFACE
   11729 } AsyncIAdviseSinkVtbl;
   11730 interface AsyncIAdviseSink {
   11731     CONST_VTBL AsyncIAdviseSinkVtbl* lpVtbl;
   11732 };
   11733 
   11734 #ifdef COBJMACROS
   11735 #ifndef WIDL_C_INLINE_WRAPPERS
   11736 /*** IUnknown methods ***/
   11737 #define AsyncIAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   11738 #define AsyncIAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   11739 #define AsyncIAdviseSink_Release(This) (This)->lpVtbl->Release(This)
   11740 /*** IAdviseSink methods ***/
   11741 #define AsyncIAdviseSink_Begin_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed)
   11742 #define AsyncIAdviseSink_Finish_OnDataChange(This) (This)->lpVtbl->Finish_OnDataChange(This)
   11743 #define AsyncIAdviseSink_Begin_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex)
   11744 #define AsyncIAdviseSink_Finish_OnViewChange(This) (This)->lpVtbl->Finish_OnViewChange(This)
   11745 #define AsyncIAdviseSink_Begin_OnRename(This,pmk) (This)->lpVtbl->Begin_OnRename(This,pmk)
   11746 #define AsyncIAdviseSink_Finish_OnRename(This) (This)->lpVtbl->Finish_OnRename(This)
   11747 #define AsyncIAdviseSink_Begin_OnSave(This) (This)->lpVtbl->Begin_OnSave(This)
   11748 #define AsyncIAdviseSink_Finish_OnSave(This) (This)->lpVtbl->Finish_OnSave(This)
   11749 #define AsyncIAdviseSink_Begin_OnClose(This) (This)->lpVtbl->Begin_OnClose(This)
   11750 #define AsyncIAdviseSink_Finish_OnClose(This) (This)->lpVtbl->Finish_OnClose(This)
   11751 #else
   11752 /*** IUnknown methods ***/
   11753 static FORCEINLINE HRESULT AsyncIAdviseSink_QueryInterface(AsyncIAdviseSink* This,REFIID riid,void **ppvObject) {
   11754     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   11755 }
   11756 static FORCEINLINE ULONG AsyncIAdviseSink_AddRef(AsyncIAdviseSink* This) {
   11757     return This->lpVtbl->AddRef(This);
   11758 }
   11759 static FORCEINLINE ULONG AsyncIAdviseSink_Release(AsyncIAdviseSink* This) {
   11760     return This->lpVtbl->Release(This);
   11761 }
   11762 /*** IAdviseSink methods ***/
   11763 static FORCEINLINE void Begin_AsyncIAdviseSink_OnDataChange(AsyncIAdviseSink* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
   11764     This->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed);
   11765 }
   11766 static FORCEINLINE void Finish_AsyncIAdviseSink_OnDataChange(AsyncIAdviseSink* This) {
   11767     This->lpVtbl->Finish_OnDataChange(This);
   11768 }
   11769 static FORCEINLINE void Begin_AsyncIAdviseSink_OnViewChange(AsyncIAdviseSink* This,DWORD dwAspect,LONG lindex) {
   11770     This->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex);
   11771 }
   11772 static FORCEINLINE void Finish_AsyncIAdviseSink_OnViewChange(AsyncIAdviseSink* This) {
   11773     This->lpVtbl->Finish_OnViewChange(This);
   11774 }
   11775 static FORCEINLINE void Begin_AsyncIAdviseSink_OnRename(AsyncIAdviseSink* This,IMoniker *pmk) {
   11776     This->lpVtbl->Begin_OnRename(This,pmk);
   11777 }
   11778 static FORCEINLINE void Finish_AsyncIAdviseSink_OnRename(AsyncIAdviseSink* This) {
   11779     This->lpVtbl->Finish_OnRename(This);
   11780 }
   11781 static FORCEINLINE void Begin_AsyncIAdviseSink_OnSave(AsyncIAdviseSink* This) {
   11782     This->lpVtbl->Begin_OnSave(This);
   11783 }
   11784 static FORCEINLINE void Finish_AsyncIAdviseSink_OnSave(AsyncIAdviseSink* This) {
   11785     This->lpVtbl->Finish_OnSave(This);
   11786 }
   11787 static FORCEINLINE void Begin_AsyncIAdviseSink_OnClose(AsyncIAdviseSink* This) {
   11788     This->lpVtbl->Begin_OnClose(This);
   11789 }
   11790 static FORCEINLINE void Finish_AsyncIAdviseSink_OnClose(AsyncIAdviseSink* This) {
   11791     This->lpVtbl->Finish_OnClose(This);
   11792 }
   11793 #endif
   11794 #endif
   11795 
   11796 #endif
   11797 
   11798 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnDataChange_Proxy(
   11799     IAdviseSink* This,
   11800     FORMATETC *pFormatetc,
   11801     ASYNC_STGMEDIUM *pStgmed);
   11802 void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnDataChange_Stub(
   11803     IRpcStubBuffer* This,
   11804     IRpcChannelBuffer* pRpcChannelBuffer,
   11805     PRPC_MESSAGE pRpcMessage,
   11806     DWORD* pdwStubPhase);
   11807 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnDataChange_Proxy(
   11808     IAdviseSink* This,
   11809     FORMATETC *pFormatetc,
   11810     ASYNC_STGMEDIUM *pStgmed);
   11811 void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnDataChange_Stub(
   11812     IRpcStubBuffer* This,
   11813     IRpcChannelBuffer* pRpcChannelBuffer,
   11814     PRPC_MESSAGE pRpcMessage,
   11815     DWORD* pdwStubPhase);
   11816 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnViewChange_Proxy(
   11817     IAdviseSink* This,
   11818     DWORD dwAspect,
   11819     LONG lindex);
   11820 void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnViewChange_Stub(
   11821     IRpcStubBuffer* This,
   11822     IRpcChannelBuffer* pRpcChannelBuffer,
   11823     PRPC_MESSAGE pRpcMessage,
   11824     DWORD* pdwStubPhase);
   11825 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnViewChange_Proxy(
   11826     IAdviseSink* This,
   11827     DWORD dwAspect,
   11828     LONG lindex);
   11829 void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnViewChange_Stub(
   11830     IRpcStubBuffer* This,
   11831     IRpcChannelBuffer* pRpcChannelBuffer,
   11832     PRPC_MESSAGE pRpcMessage,
   11833     DWORD* pdwStubPhase);
   11834 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnRename_Proxy(
   11835     IAdviseSink* This,
   11836     IMoniker *pmk);
   11837 void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnRename_Stub(
   11838     IRpcStubBuffer* This,
   11839     IRpcChannelBuffer* pRpcChannelBuffer,
   11840     PRPC_MESSAGE pRpcMessage,
   11841     DWORD* pdwStubPhase);
   11842 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnRename_Proxy(
   11843     IAdviseSink* This,
   11844     IMoniker *pmk);
   11845 void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnRename_Stub(
   11846     IRpcStubBuffer* This,
   11847     IRpcChannelBuffer* pRpcChannelBuffer,
   11848     PRPC_MESSAGE pRpcMessage,
   11849     DWORD* pdwStubPhase);
   11850 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnSave_Proxy(
   11851     IAdviseSink* This);
   11852 void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnSave_Stub(
   11853     IRpcStubBuffer* This,
   11854     IRpcChannelBuffer* pRpcChannelBuffer,
   11855     PRPC_MESSAGE pRpcMessage,
   11856     DWORD* pdwStubPhase);
   11857 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnSave_Proxy(
   11858     IAdviseSink* This);
   11859 void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnSave_Stub(
   11860     IRpcStubBuffer* This,
   11861     IRpcChannelBuffer* pRpcChannelBuffer,
   11862     PRPC_MESSAGE pRpcMessage,
   11863     DWORD* pdwStubPhase);
   11864 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnClose_Proxy(
   11865     IAdviseSink* This);
   11866 void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnClose_Stub(
   11867     IRpcStubBuffer* This,
   11868     IRpcChannelBuffer* pRpcChannelBuffer,
   11869     PRPC_MESSAGE pRpcMessage,
   11870     DWORD* pdwStubPhase);
   11871 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnClose_Proxy(
   11872     IAdviseSink* This);
   11873 void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnClose_Stub(
   11874     IRpcStubBuffer* This,
   11875     IRpcChannelBuffer* pRpcChannelBuffer,
   11876     PRPC_MESSAGE pRpcMessage,
   11877     DWORD* pdwStubPhase);
   11878 void CALLBACK AsyncIAdviseSink_Begin_OnDataChange_Proxy(
   11879     IAdviseSink* This,
   11880     FORMATETC *pFormatetc,
   11881     STGMEDIUM *pStgmed);
   11882 HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnDataChange_Stub(
   11883     IAdviseSink* This,
   11884     FORMATETC *pFormatetc,
   11885     ASYNC_STGMEDIUM *pStgmed);
   11886 void CALLBACK AsyncIAdviseSink_Finish_OnDataChange_Proxy(
   11887     IAdviseSink* This);
   11888 HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnDataChange_Stub(
   11889     IAdviseSink* This,
   11890     FORMATETC *pFormatetc,
   11891     ASYNC_STGMEDIUM *pStgmed);
   11892 void CALLBACK AsyncIAdviseSink_Begin_OnViewChange_Proxy(
   11893     IAdviseSink* This,
   11894     DWORD dwAspect,
   11895     LONG lindex);
   11896 HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnViewChange_Stub(
   11897     IAdviseSink* This,
   11898     DWORD dwAspect,
   11899     LONG lindex);
   11900 void CALLBACK AsyncIAdviseSink_Finish_OnViewChange_Proxy(
   11901     IAdviseSink* This);
   11902 HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnViewChange_Stub(
   11903     IAdviseSink* This,
   11904     DWORD dwAspect,
   11905     LONG lindex);
   11906 void CALLBACK AsyncIAdviseSink_Begin_OnRename_Proxy(
   11907     IAdviseSink* This,
   11908     IMoniker *pmk);
   11909 HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnRename_Stub(
   11910     IAdviseSink* This,
   11911     IMoniker *pmk);
   11912 void CALLBACK AsyncIAdviseSink_Finish_OnRename_Proxy(
   11913     IAdviseSink* This);
   11914 HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnRename_Stub(
   11915     IAdviseSink* This,
   11916     IMoniker *pmk);
   11917 void CALLBACK AsyncIAdviseSink_Begin_OnSave_Proxy(
   11918     IAdviseSink* This);
   11919 HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnSave_Stub(
   11920     IAdviseSink* This);
   11921 void CALLBACK AsyncIAdviseSink_Finish_OnSave_Proxy(
   11922     IAdviseSink* This);
   11923 HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnSave_Stub(
   11924     IAdviseSink* This);
   11925 void CALLBACK AsyncIAdviseSink_Begin_OnClose_Proxy(
   11926     IAdviseSink* This);
   11927 HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnClose_Stub(
   11928     IAdviseSink* This);
   11929 void CALLBACK AsyncIAdviseSink_Finish_OnClose_Proxy(
   11930     IAdviseSink* This);
   11931 HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnClose_Stub(
   11932     IAdviseSink* This);
   11933 
   11934 #endif  /* __AsyncIAdviseSink_INTERFACE_DEFINED__ */
   11935 
   11936 #endif
   11937 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   11938 /*****************************************************************************
   11939  * IAdviseSink2 interface
   11940  */
   11941 #ifndef __IAdviseSink2_INTERFACE_DEFINED__
   11942 #define __IAdviseSink2_INTERFACE_DEFINED__
   11943 
   11944 typedef IAdviseSink2 *LPADVISESINK2;
   11945 DEFINE_GUID(IID_IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   11946 #if defined(__cplusplus) && !defined(CINTERFACE)
   11947 MIDL_INTERFACE("00000125-0000-0000-c000-000000000046")
   11948 IAdviseSink2 : public IAdviseSink
   11949 {
   11950     virtual void STDMETHODCALLTYPE OnLinkSrcChange(
   11951         IMoniker *pmk) = 0;
   11952 
   11953 };
   11954 #ifdef __CRT_UUID_DECL
   11955 __CRT_UUID_DECL(IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   11956 #endif
   11957 #else
   11958 typedef struct IAdviseSink2Vtbl {
   11959     BEGIN_INTERFACE
   11960 
   11961     /*** IUnknown methods ***/
   11962     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   11963         IAdviseSink2* This,
   11964         REFIID riid,
   11965         void **ppvObject);
   11966 
   11967     ULONG (STDMETHODCALLTYPE *AddRef)(
   11968         IAdviseSink2* This);
   11969 
   11970     ULONG (STDMETHODCALLTYPE *Release)(
   11971         IAdviseSink2* This);
   11972 
   11973     /*** IAdviseSink methods ***/
   11974     void (STDMETHODCALLTYPE *OnDataChange)(
   11975         IAdviseSink2* This,
   11976         FORMATETC *pFormatetc,
   11977         STGMEDIUM *pStgmed);
   11978 
   11979     void (STDMETHODCALLTYPE *OnViewChange)(
   11980         IAdviseSink2* This,
   11981         DWORD dwAspect,
   11982         LONG lindex);
   11983 
   11984     void (STDMETHODCALLTYPE *OnRename)(
   11985         IAdviseSink2* This,
   11986         IMoniker *pmk);
   11987 
   11988     void (STDMETHODCALLTYPE *OnSave)(
   11989         IAdviseSink2* This);
   11990 
   11991     void (STDMETHODCALLTYPE *OnClose)(
   11992         IAdviseSink2* This);
   11993 
   11994     /*** IAdviseSink2 methods ***/
   11995     void (STDMETHODCALLTYPE *OnLinkSrcChange)(
   11996         IAdviseSink2* This,
   11997         IMoniker *pmk);
   11998 
   11999     END_INTERFACE
   12000 } IAdviseSink2Vtbl;
   12001 interface IAdviseSink2 {
   12002     CONST_VTBL IAdviseSink2Vtbl* lpVtbl;
   12003 };
   12004 
   12005 #ifdef COBJMACROS
   12006 #ifndef WIDL_C_INLINE_WRAPPERS
   12007 /*** IUnknown methods ***/
   12008 #define IAdviseSink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   12009 #define IAdviseSink2_AddRef(This) (This)->lpVtbl->AddRef(This)
   12010 #define IAdviseSink2_Release(This) (This)->lpVtbl->Release(This)
   12011 /*** IAdviseSink methods ***/
   12012 #define IAdviseSink2_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->OnDataChange(This,pFormatetc,pStgmed)
   12013 #define IAdviseSink2_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->OnViewChange(This,dwAspect,lindex)
   12014 #define IAdviseSink2_OnRename(This,pmk) (This)->lpVtbl->OnRename(This,pmk)
   12015 #define IAdviseSink2_OnSave(This) (This)->lpVtbl->OnSave(This)
   12016 #define IAdviseSink2_OnClose(This) (This)->lpVtbl->OnClose(This)
   12017 /*** IAdviseSink2 methods ***/
   12018 #define IAdviseSink2_OnLinkSrcChange(This,pmk) (This)->lpVtbl->OnLinkSrcChange(This,pmk)
   12019 #else
   12020 /*** IUnknown methods ***/
   12021 static FORCEINLINE HRESULT IAdviseSink2_QueryInterface(IAdviseSink2* This,REFIID riid,void **ppvObject) {
   12022     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   12023 }
   12024 static FORCEINLINE ULONG IAdviseSink2_AddRef(IAdviseSink2* This) {
   12025     return This->lpVtbl->AddRef(This);
   12026 }
   12027 static FORCEINLINE ULONG IAdviseSink2_Release(IAdviseSink2* This) {
   12028     return This->lpVtbl->Release(This);
   12029 }
   12030 /*** IAdviseSink methods ***/
   12031 static FORCEINLINE void IAdviseSink2_OnDataChange(IAdviseSink2* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
   12032     This->lpVtbl->OnDataChange(This,pFormatetc,pStgmed);
   12033 }
   12034 static FORCEINLINE void IAdviseSink2_OnViewChange(IAdviseSink2* This,DWORD dwAspect,LONG lindex) {
   12035     This->lpVtbl->OnViewChange(This,dwAspect,lindex);
   12036 }
   12037 static FORCEINLINE void IAdviseSink2_OnRename(IAdviseSink2* This,IMoniker *pmk) {
   12038     This->lpVtbl->OnRename(This,pmk);
   12039 }
   12040 static FORCEINLINE void IAdviseSink2_OnSave(IAdviseSink2* This) {
   12041     This->lpVtbl->OnSave(This);
   12042 }
   12043 static FORCEINLINE void IAdviseSink2_OnClose(IAdviseSink2* This) {
   12044     This->lpVtbl->OnClose(This);
   12045 }
   12046 /*** IAdviseSink2 methods ***/
   12047 static FORCEINLINE void IAdviseSink2_OnLinkSrcChange(IAdviseSink2* This,IMoniker *pmk) {
   12048     This->lpVtbl->OnLinkSrcChange(This,pmk);
   12049 }
   12050 #endif
   12051 #endif
   12052 
   12053 #endif
   12054 
   12055 HRESULT STDMETHODCALLTYPE IAdviseSink2_RemoteOnLinkSrcChange_Proxy(
   12056     IAdviseSink2* This,
   12057     IMoniker *pmk);
   12058 void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub(
   12059     IRpcStubBuffer* This,
   12060     IRpcChannelBuffer* pRpcChannelBuffer,
   12061     PRPC_MESSAGE pRpcMessage,
   12062     DWORD* pdwStubPhase);
   12063 void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
   12064     IAdviseSink2* This,
   12065     IMoniker *pmk);
   12066 HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
   12067     IAdviseSink2* This,
   12068     IMoniker *pmk);
   12069 
   12070 #endif  /* __IAdviseSink2_INTERFACE_DEFINED__ */
   12071 
   12072 /*****************************************************************************
   12073  * AsyncIAdviseSink2 interface
   12074  */
   12075 #ifndef __AsyncIAdviseSink2_INTERFACE_DEFINED__
   12076 #define __AsyncIAdviseSink2_INTERFACE_DEFINED__
   12077 
   12078 DEFINE_GUID(IID_AsyncIAdviseSink2, 0x00000151, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   12079 #if defined(__cplusplus) && !defined(CINTERFACE)
   12080 MIDL_INTERFACE("00000151-0000-0000-c000-000000000046")
   12081 AsyncIAdviseSink2 : public IAdviseSink
   12082 {
   12083     virtual void STDMETHODCALLTYPE Begin_OnLinkSrcChange(
   12084         IMoniker *pmk) = 0;
   12085 
   12086     virtual void STDMETHODCALLTYPE Finish_OnLinkSrcChange(
   12087         ) = 0;
   12088 
   12089 };
   12090 #ifdef __CRT_UUID_DECL
   12091 __CRT_UUID_DECL(AsyncIAdviseSink2, 0x00000151, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   12092 #endif
   12093 #else
   12094 typedef struct AsyncIAdviseSink2Vtbl {
   12095     BEGIN_INTERFACE
   12096 
   12097     /*** IUnknown methods ***/
   12098     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   12099         AsyncIAdviseSink2* This,
   12100         REFIID riid,
   12101         void **ppvObject);
   12102 
   12103     ULONG (STDMETHODCALLTYPE *AddRef)(
   12104         AsyncIAdviseSink2* This);
   12105 
   12106     ULONG (STDMETHODCALLTYPE *Release)(
   12107         AsyncIAdviseSink2* This);
   12108 
   12109     /*** IAdviseSink methods ***/
   12110     void (STDMETHODCALLTYPE *Begin_OnDataChange)(
   12111         AsyncIAdviseSink2* This,
   12112         FORMATETC *pFormatetc,
   12113         STGMEDIUM *pStgmed);
   12114 
   12115     void (STDMETHODCALLTYPE *Finish_OnDataChange)(
   12116         AsyncIAdviseSink2* This);
   12117 
   12118     void (STDMETHODCALLTYPE *Begin_OnViewChange)(
   12119         AsyncIAdviseSink2* This,
   12120         DWORD dwAspect,
   12121         LONG lindex);
   12122 
   12123     void (STDMETHODCALLTYPE *Finish_OnViewChange)(
   12124         AsyncIAdviseSink2* This);
   12125 
   12126     void (STDMETHODCALLTYPE *Begin_OnRename)(
   12127         AsyncIAdviseSink2* This,
   12128         IMoniker *pmk);
   12129 
   12130     void (STDMETHODCALLTYPE *Finish_OnRename)(
   12131         AsyncIAdviseSink2* This);
   12132 
   12133     void (STDMETHODCALLTYPE *Begin_OnSave)(
   12134         AsyncIAdviseSink2* This);
   12135 
   12136     void (STDMETHODCALLTYPE *Finish_OnSave)(
   12137         AsyncIAdviseSink2* This);
   12138 
   12139     void (STDMETHODCALLTYPE *Begin_OnClose)(
   12140         AsyncIAdviseSink2* This);
   12141 
   12142     void (STDMETHODCALLTYPE *Finish_OnClose)(
   12143         AsyncIAdviseSink2* This);
   12144 
   12145     /*** IAdviseSink2 methods ***/
   12146     void (STDMETHODCALLTYPE *Begin_OnLinkSrcChange)(
   12147         AsyncIAdviseSink2* This,
   12148         IMoniker *pmk);
   12149 
   12150     void (STDMETHODCALLTYPE *Finish_OnLinkSrcChange)(
   12151         AsyncIAdviseSink2* This);
   12152 
   12153     END_INTERFACE
   12154 } AsyncIAdviseSink2Vtbl;
   12155 interface AsyncIAdviseSink2 {
   12156     CONST_VTBL AsyncIAdviseSink2Vtbl* lpVtbl;
   12157 };
   12158 
   12159 #ifdef COBJMACROS
   12160 #ifndef WIDL_C_INLINE_WRAPPERS
   12161 /*** IUnknown methods ***/
   12162 #define AsyncIAdviseSink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   12163 #define AsyncIAdviseSink2_AddRef(This) (This)->lpVtbl->AddRef(This)
   12164 #define AsyncIAdviseSink2_Release(This) (This)->lpVtbl->Release(This)
   12165 /*** IAdviseSink methods ***/
   12166 #define AsyncIAdviseSink2_Begin_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed)
   12167 #define AsyncIAdviseSink2_Finish_OnDataChange(This) (This)->lpVtbl->Finish_OnDataChange(This)
   12168 #define AsyncIAdviseSink2_Begin_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex)
   12169 #define AsyncIAdviseSink2_Finish_OnViewChange(This) (This)->lpVtbl->Finish_OnViewChange(This)
   12170 #define AsyncIAdviseSink2_Begin_OnRename(This,pmk) (This)->lpVtbl->Begin_OnRename(This,pmk)
   12171 #define AsyncIAdviseSink2_Finish_OnRename(This) (This)->lpVtbl->Finish_OnRename(This)
   12172 #define AsyncIAdviseSink2_Begin_OnSave(This) (This)->lpVtbl->Begin_OnSave(This)
   12173 #define AsyncIAdviseSink2_Finish_OnSave(This) (This)->lpVtbl->Finish_OnSave(This)
   12174 #define AsyncIAdviseSink2_Begin_OnClose(This) (This)->lpVtbl->Begin_OnClose(This)
   12175 #define AsyncIAdviseSink2_Finish_OnClose(This) (This)->lpVtbl->Finish_OnClose(This)
   12176 /*** IAdviseSink2 methods ***/
   12177 #define AsyncIAdviseSink2_Begin_OnLinkSrcChange(This,pmk) (This)->lpVtbl->Begin_OnLinkSrcChange(This,pmk)
   12178 #define AsyncIAdviseSink2_Finish_OnLinkSrcChange(This) (This)->lpVtbl->Finish_OnLinkSrcChange(This)
   12179 #else
   12180 /*** IUnknown methods ***/
   12181 static FORCEINLINE HRESULT AsyncIAdviseSink2_QueryInterface(AsyncIAdviseSink2* This,REFIID riid,void **ppvObject) {
   12182     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   12183 }
   12184 static FORCEINLINE ULONG AsyncIAdviseSink2_AddRef(AsyncIAdviseSink2* This) {
   12185     return This->lpVtbl->AddRef(This);
   12186 }
   12187 static FORCEINLINE ULONG AsyncIAdviseSink2_Release(AsyncIAdviseSink2* This) {
   12188     return This->lpVtbl->Release(This);
   12189 }
   12190 /*** IAdviseSink methods ***/
   12191 static FORCEINLINE void Begin_AsyncIAdviseSink2_OnDataChange(AsyncIAdviseSink2* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
   12192     This->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed);
   12193 }
   12194 static FORCEINLINE void Finish_AsyncIAdviseSink2_OnDataChange(AsyncIAdviseSink2* This) {
   12195     This->lpVtbl->Finish_OnDataChange(This);
   12196 }
   12197 static FORCEINLINE void Begin_AsyncIAdviseSink2_OnViewChange(AsyncIAdviseSink2* This,DWORD dwAspect,LONG lindex) {
   12198     This->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex);
   12199 }
   12200 static FORCEINLINE void Finish_AsyncIAdviseSink2_OnViewChange(AsyncIAdviseSink2* This) {
   12201     This->lpVtbl->Finish_OnViewChange(This);
   12202 }
   12203 static FORCEINLINE void Begin_AsyncIAdviseSink2_OnRename(AsyncIAdviseSink2* This,IMoniker *pmk) {
   12204     This->lpVtbl->Begin_OnRename(This,pmk);
   12205 }
   12206 static FORCEINLINE void Finish_AsyncIAdviseSink2_OnRename(AsyncIAdviseSink2* This) {
   12207     This->lpVtbl->Finish_OnRename(This);
   12208 }
   12209 static FORCEINLINE void Begin_AsyncIAdviseSink2_OnSave(AsyncIAdviseSink2* This) {
   12210     This->lpVtbl->Begin_OnSave(This);
   12211 }
   12212 static FORCEINLINE void Finish_AsyncIAdviseSink2_OnSave(AsyncIAdviseSink2* This) {
   12213     This->lpVtbl->Finish_OnSave(This);
   12214 }
   12215 static FORCEINLINE void Begin_AsyncIAdviseSink2_OnClose(AsyncIAdviseSink2* This) {
   12216     This->lpVtbl->Begin_OnClose(This);
   12217 }
   12218 static FORCEINLINE void Finish_AsyncIAdviseSink2_OnClose(AsyncIAdviseSink2* This) {
   12219     This->lpVtbl->Finish_OnClose(This);
   12220 }
   12221 /*** IAdviseSink2 methods ***/
   12222 static FORCEINLINE void Begin_AsyncIAdviseSink2_OnLinkSrcChange(AsyncIAdviseSink2* This,IMoniker *pmk) {
   12223     This->lpVtbl->Begin_OnLinkSrcChange(This,pmk);
   12224 }
   12225 static FORCEINLINE void Finish_AsyncIAdviseSink2_OnLinkSrcChange(AsyncIAdviseSink2* This) {
   12226     This->lpVtbl->Finish_OnLinkSrcChange(This);
   12227 }
   12228 #endif
   12229 #endif
   12230 
   12231 #endif
   12232 
   12233 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Proxy(
   12234     IAdviseSink2* This,
   12235     IMoniker *pmk);
   12236 void __RPC_STUB AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Stub(
   12237     IRpcStubBuffer* This,
   12238     IRpcChannelBuffer* pRpcChannelBuffer,
   12239     PRPC_MESSAGE pRpcMessage,
   12240     DWORD* pdwStubPhase);
   12241 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Proxy(
   12242     IAdviseSink2* This,
   12243     IMoniker *pmk);
   12244 void __RPC_STUB AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Stub(
   12245     IRpcStubBuffer* This,
   12246     IRpcChannelBuffer* pRpcChannelBuffer,
   12247     PRPC_MESSAGE pRpcMessage,
   12248     DWORD* pdwStubPhase);
   12249 void CALLBACK AsyncIAdviseSink2_Begin_OnLinkSrcChange_Proxy(
   12250     IAdviseSink2* This,
   12251     IMoniker *pmk);
   12252 HRESULT __RPC_STUB AsyncIAdviseSink2_Begin_OnLinkSrcChange_Stub(
   12253     IAdviseSink2* This,
   12254     IMoniker *pmk);
   12255 void CALLBACK AsyncIAdviseSink2_Finish_OnLinkSrcChange_Proxy(
   12256     IAdviseSink2* This);
   12257 HRESULT __RPC_STUB AsyncIAdviseSink2_Finish_OnLinkSrcChange_Stub(
   12258     IAdviseSink2* This,
   12259     IMoniker *pmk);
   12260 
   12261 #endif  /* __AsyncIAdviseSink2_INTERFACE_DEFINED__ */
   12262 
   12263 #endif
   12264 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   12265 /*****************************************************************************
   12266  * IDataObject interface
   12267  */
   12268 #ifndef __IDataObject_INTERFACE_DEFINED__
   12269 #define __IDataObject_INTERFACE_DEFINED__
   12270 
   12271 typedef IDataObject *LPDATAOBJECT;
   12272 typedef enum tagDATADIR {
   12273     DATADIR_GET = 1,
   12274     DATADIR_SET = 2
   12275 } DATADIR;
   12276 DEFINE_GUID(IID_IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   12277 #if defined(__cplusplus) && !defined(CINTERFACE)
   12278 MIDL_INTERFACE("0000010e-0000-0000-c000-000000000046")
   12279 IDataObject : public IUnknown
   12280 {
   12281     virtual HRESULT STDMETHODCALLTYPE GetData(
   12282         FORMATETC *pformatetcIn,
   12283         STGMEDIUM *pmedium) = 0;
   12284 
   12285     virtual HRESULT STDMETHODCALLTYPE GetDataHere(
   12286         FORMATETC *pformatetc,
   12287         STGMEDIUM *pmedium) = 0;
   12288 
   12289     virtual HRESULT STDMETHODCALLTYPE QueryGetData(
   12290         FORMATETC *pformatetc) = 0;
   12291 
   12292     virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(
   12293         FORMATETC *pformatectIn,
   12294         FORMATETC *pformatetcOut) = 0;
   12295 
   12296     virtual HRESULT STDMETHODCALLTYPE SetData(
   12297         FORMATETC *pformatetc,
   12298         STGMEDIUM *pmedium,
   12299         WINBOOL fRelease) = 0;
   12300 
   12301     virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc(
   12302         DWORD dwDirection,
   12303         IEnumFORMATETC **ppenumFormatEtc) = 0;
   12304 
   12305     virtual HRESULT STDMETHODCALLTYPE DAdvise(
   12306         FORMATETC *pformatetc,
   12307         DWORD advf,
   12308         IAdviseSink *pAdvSink,
   12309         DWORD *pdwConnection) = 0;
   12310 
   12311     virtual HRESULT STDMETHODCALLTYPE DUnadvise(
   12312         DWORD dwConnection) = 0;
   12313 
   12314     virtual HRESULT STDMETHODCALLTYPE EnumDAdvise(
   12315         IEnumSTATDATA **ppenumAdvise) = 0;
   12316 
   12317 };
   12318 #ifdef __CRT_UUID_DECL
   12319 __CRT_UUID_DECL(IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   12320 #endif
   12321 #else
   12322 typedef struct IDataObjectVtbl {
   12323     BEGIN_INTERFACE
   12324 
   12325     /*** IUnknown methods ***/
   12326     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   12327         IDataObject* This,
   12328         REFIID riid,
   12329         void **ppvObject);
   12330 
   12331     ULONG (STDMETHODCALLTYPE *AddRef)(
   12332         IDataObject* This);
   12333 
   12334     ULONG (STDMETHODCALLTYPE *Release)(
   12335         IDataObject* This);
   12336 
   12337     /*** IDataObject methods ***/
   12338     HRESULT (STDMETHODCALLTYPE *GetData)(
   12339         IDataObject* This,
   12340         FORMATETC *pformatetcIn,
   12341         STGMEDIUM *pmedium);
   12342 
   12343     HRESULT (STDMETHODCALLTYPE *GetDataHere)(
   12344         IDataObject* This,
   12345         FORMATETC *pformatetc,
   12346         STGMEDIUM *pmedium);
   12347 
   12348     HRESULT (STDMETHODCALLTYPE *QueryGetData)(
   12349         IDataObject* This,
   12350         FORMATETC *pformatetc);
   12351 
   12352     HRESULT (STDMETHODCALLTYPE *GetCanonicalFormatEtc)(
   12353         IDataObject* This,
   12354         FORMATETC *pformatectIn,
   12355         FORMATETC *pformatetcOut);
   12356 
   12357     HRESULT (STDMETHODCALLTYPE *SetData)(
   12358         IDataObject* This,
   12359         FORMATETC *pformatetc,
   12360         STGMEDIUM *pmedium,
   12361         WINBOOL fRelease);
   12362 
   12363     HRESULT (STDMETHODCALLTYPE *EnumFormatEtc)(
   12364         IDataObject* This,
   12365         DWORD dwDirection,
   12366         IEnumFORMATETC **ppenumFormatEtc);
   12367 
   12368     HRESULT (STDMETHODCALLTYPE *DAdvise)(
   12369         IDataObject* This,
   12370         FORMATETC *pformatetc,
   12371         DWORD advf,
   12372         IAdviseSink *pAdvSink,
   12373         DWORD *pdwConnection);
   12374 
   12375     HRESULT (STDMETHODCALLTYPE *DUnadvise)(
   12376         IDataObject* This,
   12377         DWORD dwConnection);
   12378 
   12379     HRESULT (STDMETHODCALLTYPE *EnumDAdvise)(
   12380         IDataObject* This,
   12381         IEnumSTATDATA **ppenumAdvise);
   12382 
   12383     END_INTERFACE
   12384 } IDataObjectVtbl;
   12385 interface IDataObject {
   12386     CONST_VTBL IDataObjectVtbl* lpVtbl;
   12387 };
   12388 
   12389 #ifdef COBJMACROS
   12390 #ifndef WIDL_C_INLINE_WRAPPERS
   12391 /*** IUnknown methods ***/
   12392 #define IDataObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   12393 #define IDataObject_AddRef(This) (This)->lpVtbl->AddRef(This)
   12394 #define IDataObject_Release(This) (This)->lpVtbl->Release(This)
   12395 /*** IDataObject methods ***/
   12396 #define IDataObject_GetData(This,pformatetcIn,pmedium) (This)->lpVtbl->GetData(This,pformatetcIn,pmedium)
   12397 #define IDataObject_GetDataHere(This,pformatetc,pmedium) (This)->lpVtbl->GetDataHere(This,pformatetc,pmedium)
   12398 #define IDataObject_QueryGetData(This,pformatetc) (This)->lpVtbl->QueryGetData(This,pformatetc)
   12399 #define IDataObject_GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut) (This)->lpVtbl->GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut)
   12400 #define IDataObject_SetData(This,pformatetc,pmedium,fRelease) (This)->lpVtbl->SetData(This,pformatetc,pmedium,fRelease)
   12401 #define IDataObject_EnumFormatEtc(This,dwDirection,ppenumFormatEtc) (This)->lpVtbl->EnumFormatEtc(This,dwDirection,ppenumFormatEtc)
   12402 #define IDataObject_DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection) (This)->lpVtbl->DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection)
   12403 #define IDataObject_DUnadvise(This,dwConnection) (This)->lpVtbl->DUnadvise(This,dwConnection)
   12404 #define IDataObject_EnumDAdvise(This,ppenumAdvise) (This)->lpVtbl->EnumDAdvise(This,ppenumAdvise)
   12405 #else
   12406 /*** IUnknown methods ***/
   12407 static FORCEINLINE HRESULT IDataObject_QueryInterface(IDataObject* This,REFIID riid,void **ppvObject) {
   12408     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   12409 }
   12410 static FORCEINLINE ULONG IDataObject_AddRef(IDataObject* This) {
   12411     return This->lpVtbl->AddRef(This);
   12412 }
   12413 static FORCEINLINE ULONG IDataObject_Release(IDataObject* This) {
   12414     return This->lpVtbl->Release(This);
   12415 }
   12416 /*** IDataObject methods ***/
   12417 static FORCEINLINE HRESULT IDataObject_GetData(IDataObject* This,FORMATETC *pformatetcIn,STGMEDIUM *pmedium) {
   12418     return This->lpVtbl->GetData(This,pformatetcIn,pmedium);
   12419 }
   12420 static FORCEINLINE HRESULT IDataObject_GetDataHere(IDataObject* This,FORMATETC *pformatetc,STGMEDIUM *pmedium) {
   12421     return This->lpVtbl->GetDataHere(This,pformatetc,pmedium);
   12422 }
   12423 static FORCEINLINE HRESULT IDataObject_QueryGetData(IDataObject* This,FORMATETC *pformatetc) {
   12424     return This->lpVtbl->QueryGetData(This,pformatetc);
   12425 }
   12426 static FORCEINLINE HRESULT IDataObject_GetCanonicalFormatEtc(IDataObject* This,FORMATETC *pformatectIn,FORMATETC *pformatetcOut) {
   12427     return This->lpVtbl->GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut);
   12428 }
   12429 static FORCEINLINE HRESULT IDataObject_SetData(IDataObject* This,FORMATETC *pformatetc,STGMEDIUM *pmedium,WINBOOL fRelease) {
   12430     return This->lpVtbl->SetData(This,pformatetc,pmedium,fRelease);
   12431 }
   12432 static FORCEINLINE HRESULT IDataObject_EnumFormatEtc(IDataObject* This,DWORD dwDirection,IEnumFORMATETC **ppenumFormatEtc) {
   12433     return This->lpVtbl->EnumFormatEtc(This,dwDirection,ppenumFormatEtc);
   12434 }
   12435 static FORCEINLINE HRESULT IDataObject_DAdvise(IDataObject* This,FORMATETC *pformatetc,DWORD advf,IAdviseSink *pAdvSink,DWORD *pdwConnection) {
   12436     return This->lpVtbl->DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection);
   12437 }
   12438 static FORCEINLINE HRESULT IDataObject_DUnadvise(IDataObject* This,DWORD dwConnection) {
   12439     return This->lpVtbl->DUnadvise(This,dwConnection);
   12440 }
   12441 static FORCEINLINE HRESULT IDataObject_EnumDAdvise(IDataObject* This,IEnumSTATDATA **ppenumAdvise) {
   12442     return This->lpVtbl->EnumDAdvise(This,ppenumAdvise);
   12443 }
   12444 #endif
   12445 #endif
   12446 
   12447 #endif
   12448 
   12449 HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetData_Proxy(
   12450     IDataObject* This,
   12451     FORMATETC *pformatetcIn,
   12452     STGMEDIUM *pRemoteMedium);
   12453 void __RPC_STUB IDataObject_RemoteGetData_Stub(
   12454     IRpcStubBuffer* This,
   12455     IRpcChannelBuffer* pRpcChannelBuffer,
   12456     PRPC_MESSAGE pRpcMessage,
   12457     DWORD* pdwStubPhase);
   12458 HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetDataHere_Proxy(
   12459     IDataObject* This,
   12460     FORMATETC *pformatetc,
   12461     STGMEDIUM *pRemoteMedium);
   12462 void __RPC_STUB IDataObject_RemoteGetDataHere_Stub(
   12463     IRpcStubBuffer* This,
   12464     IRpcChannelBuffer* pRpcChannelBuffer,
   12465     PRPC_MESSAGE pRpcMessage,
   12466     DWORD* pdwStubPhase);
   12467 HRESULT STDMETHODCALLTYPE IDataObject_QueryGetData_Proxy(
   12468     IDataObject* This,
   12469     FORMATETC *pformatetc);
   12470 void __RPC_STUB IDataObject_QueryGetData_Stub(
   12471     IRpcStubBuffer* This,
   12472     IRpcChannelBuffer* pRpcChannelBuffer,
   12473     PRPC_MESSAGE pRpcMessage,
   12474     DWORD* pdwStubPhase);
   12475 HRESULT STDMETHODCALLTYPE IDataObject_GetCanonicalFormatEtc_Proxy(
   12476     IDataObject* This,
   12477     FORMATETC *pformatectIn,
   12478     FORMATETC *pformatetcOut);
   12479 void __RPC_STUB IDataObject_GetCanonicalFormatEtc_Stub(
   12480     IRpcStubBuffer* This,
   12481     IRpcChannelBuffer* pRpcChannelBuffer,
   12482     PRPC_MESSAGE pRpcMessage,
   12483     DWORD* pdwStubPhase);
   12484 HRESULT STDMETHODCALLTYPE IDataObject_RemoteSetData_Proxy(
   12485     IDataObject* This,
   12486     FORMATETC *pformatetc,
   12487     FLAG_STGMEDIUM *pmedium,
   12488     WINBOOL fRelease);
   12489 void __RPC_STUB IDataObject_RemoteSetData_Stub(
   12490     IRpcStubBuffer* This,
   12491     IRpcChannelBuffer* pRpcChannelBuffer,
   12492     PRPC_MESSAGE pRpcMessage,
   12493     DWORD* pdwStubPhase);
   12494 HRESULT STDMETHODCALLTYPE IDataObject_EnumFormatEtc_Proxy(
   12495     IDataObject* This,
   12496     DWORD dwDirection,
   12497     IEnumFORMATETC **ppenumFormatEtc);
   12498 void __RPC_STUB IDataObject_EnumFormatEtc_Stub(
   12499     IRpcStubBuffer* This,
   12500     IRpcChannelBuffer* pRpcChannelBuffer,
   12501     PRPC_MESSAGE pRpcMessage,
   12502     DWORD* pdwStubPhase);
   12503 HRESULT STDMETHODCALLTYPE IDataObject_DAdvise_Proxy(
   12504     IDataObject* This,
   12505     FORMATETC *pformatetc,
   12506     DWORD advf,
   12507     IAdviseSink *pAdvSink,
   12508     DWORD *pdwConnection);
   12509 void __RPC_STUB IDataObject_DAdvise_Stub(
   12510     IRpcStubBuffer* This,
   12511     IRpcChannelBuffer* pRpcChannelBuffer,
   12512     PRPC_MESSAGE pRpcMessage,
   12513     DWORD* pdwStubPhase);
   12514 HRESULT STDMETHODCALLTYPE IDataObject_DUnadvise_Proxy(
   12515     IDataObject* This,
   12516     DWORD dwConnection);
   12517 void __RPC_STUB IDataObject_DUnadvise_Stub(
   12518     IRpcStubBuffer* This,
   12519     IRpcChannelBuffer* pRpcChannelBuffer,
   12520     PRPC_MESSAGE pRpcMessage,
   12521     DWORD* pdwStubPhase);
   12522 HRESULT STDMETHODCALLTYPE IDataObject_EnumDAdvise_Proxy(
   12523     IDataObject* This,
   12524     IEnumSTATDATA **ppenumAdvise);
   12525 void __RPC_STUB IDataObject_EnumDAdvise_Stub(
   12526     IRpcStubBuffer* This,
   12527     IRpcChannelBuffer* pRpcChannelBuffer,
   12528     PRPC_MESSAGE pRpcMessage,
   12529     DWORD* pdwStubPhase);
   12530 HRESULT CALLBACK IDataObject_GetData_Proxy(
   12531     IDataObject* This,
   12532     FORMATETC *pformatetcIn,
   12533     STGMEDIUM *pmedium);
   12534 HRESULT __RPC_STUB IDataObject_GetData_Stub(
   12535     IDataObject* This,
   12536     FORMATETC *pformatetcIn,
   12537     STGMEDIUM *pRemoteMedium);
   12538 HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
   12539     IDataObject* This,
   12540     FORMATETC *pformatetc,
   12541     STGMEDIUM *pmedium);
   12542 HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
   12543     IDataObject* This,
   12544     FORMATETC *pformatetc,
   12545     STGMEDIUM *pRemoteMedium);
   12546 HRESULT CALLBACK IDataObject_SetData_Proxy(
   12547     IDataObject* This,
   12548     FORMATETC *pformatetc,
   12549     STGMEDIUM *pmedium,
   12550     WINBOOL fRelease);
   12551 HRESULT __RPC_STUB IDataObject_SetData_Stub(
   12552     IDataObject* This,
   12553     FORMATETC *pformatetc,
   12554     FLAG_STGMEDIUM *pmedium,
   12555     WINBOOL fRelease);
   12556 
   12557 #endif  /* __IDataObject_INTERFACE_DEFINED__ */
   12558 
   12559 #endif
   12560 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   12561 /*****************************************************************************
   12562  * IDataAdviseHolder interface
   12563  */
   12564 #ifndef __IDataAdviseHolder_INTERFACE_DEFINED__
   12565 #define __IDataAdviseHolder_INTERFACE_DEFINED__
   12566 
   12567 typedef IDataAdviseHolder *LPDATAADVISEHOLDER;
   12568 DEFINE_GUID(IID_IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   12569 #if defined(__cplusplus) && !defined(CINTERFACE)
   12570 MIDL_INTERFACE("00000110-0000-0000-c000-000000000046")
   12571 IDataAdviseHolder : public IUnknown
   12572 {
   12573     virtual HRESULT STDMETHODCALLTYPE Advise(
   12574         IDataObject *pDataObject,
   12575         FORMATETC *pFetc,
   12576         DWORD advf,
   12577         IAdviseSink *pAdvise,
   12578         DWORD *pdwConnection) = 0;
   12579 
   12580     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   12581         DWORD dwConnection) = 0;
   12582 
   12583     virtual HRESULT STDMETHODCALLTYPE EnumAdvise(
   12584         IEnumSTATDATA **ppenumAdvise) = 0;
   12585 
   12586     virtual HRESULT STDMETHODCALLTYPE SendOnDataChange(
   12587         IDataObject *pDataObject,
   12588         DWORD dwReserved,
   12589         DWORD advf) = 0;
   12590 
   12591 };
   12592 #ifdef __CRT_UUID_DECL
   12593 __CRT_UUID_DECL(IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   12594 #endif
   12595 #else
   12596 typedef struct IDataAdviseHolderVtbl {
   12597     BEGIN_INTERFACE
   12598 
   12599     /*** IUnknown methods ***/
   12600     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   12601         IDataAdviseHolder* This,
   12602         REFIID riid,
   12603         void **ppvObject);
   12604 
   12605     ULONG (STDMETHODCALLTYPE *AddRef)(
   12606         IDataAdviseHolder* This);
   12607 
   12608     ULONG (STDMETHODCALLTYPE *Release)(
   12609         IDataAdviseHolder* This);
   12610 
   12611     /*** IDataAdviseHolder methods ***/
   12612     HRESULT (STDMETHODCALLTYPE *Advise)(
   12613         IDataAdviseHolder* This,
   12614         IDataObject *pDataObject,
   12615         FORMATETC *pFetc,
   12616         DWORD advf,
   12617         IAdviseSink *pAdvise,
   12618         DWORD *pdwConnection);
   12619 
   12620     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   12621         IDataAdviseHolder* This,
   12622         DWORD dwConnection);
   12623 
   12624     HRESULT (STDMETHODCALLTYPE *EnumAdvise)(
   12625         IDataAdviseHolder* This,
   12626         IEnumSTATDATA **ppenumAdvise);
   12627 
   12628     HRESULT (STDMETHODCALLTYPE *SendOnDataChange)(
   12629         IDataAdviseHolder* This,
   12630         IDataObject *pDataObject,
   12631         DWORD dwReserved,
   12632         DWORD advf);
   12633 
   12634     END_INTERFACE
   12635 } IDataAdviseHolderVtbl;
   12636 interface IDataAdviseHolder {
   12637     CONST_VTBL IDataAdviseHolderVtbl* lpVtbl;
   12638 };
   12639 
   12640 #ifdef COBJMACROS
   12641 #ifndef WIDL_C_INLINE_WRAPPERS
   12642 /*** IUnknown methods ***/
   12643 #define IDataAdviseHolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   12644 #define IDataAdviseHolder_AddRef(This) (This)->lpVtbl->AddRef(This)
   12645 #define IDataAdviseHolder_Release(This) (This)->lpVtbl->Release(This)
   12646 /*** IDataAdviseHolder methods ***/
   12647 #define IDataAdviseHolder_Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection) (This)->lpVtbl->Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection)
   12648 #define IDataAdviseHolder_Unadvise(This,dwConnection) (This)->lpVtbl->Unadvise(This,dwConnection)
   12649 #define IDataAdviseHolder_EnumAdvise(This,ppenumAdvise) (This)->lpVtbl->EnumAdvise(This,ppenumAdvise)
   12650 #define IDataAdviseHolder_SendOnDataChange(This,pDataObject,dwReserved,advf) (This)->lpVtbl->SendOnDataChange(This,pDataObject,dwReserved,advf)
   12651 #else
   12652 /*** IUnknown methods ***/
   12653 static FORCEINLINE HRESULT IDataAdviseHolder_QueryInterface(IDataAdviseHolder* This,REFIID riid,void **ppvObject) {
   12654     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   12655 }
   12656 static FORCEINLINE ULONG IDataAdviseHolder_AddRef(IDataAdviseHolder* This) {
   12657     return This->lpVtbl->AddRef(This);
   12658 }
   12659 static FORCEINLINE ULONG IDataAdviseHolder_Release(IDataAdviseHolder* This) {
   12660     return This->lpVtbl->Release(This);
   12661 }
   12662 /*** IDataAdviseHolder methods ***/
   12663 static FORCEINLINE HRESULT IDataAdviseHolder_Advise(IDataAdviseHolder* This,IDataObject *pDataObject,FORMATETC *pFetc,DWORD advf,IAdviseSink *pAdvise,DWORD *pdwConnection) {
   12664     return This->lpVtbl->Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection);
   12665 }
   12666 static FORCEINLINE HRESULT IDataAdviseHolder_Unadvise(IDataAdviseHolder* This,DWORD dwConnection) {
   12667     return This->lpVtbl->Unadvise(This,dwConnection);
   12668 }
   12669 static FORCEINLINE HRESULT IDataAdviseHolder_EnumAdvise(IDataAdviseHolder* This,IEnumSTATDATA **ppenumAdvise) {
   12670     return This->lpVtbl->EnumAdvise(This,ppenumAdvise);
   12671 }
   12672 static FORCEINLINE HRESULT IDataAdviseHolder_SendOnDataChange(IDataAdviseHolder* This,IDataObject *pDataObject,DWORD dwReserved,DWORD advf) {
   12673     return This->lpVtbl->SendOnDataChange(This,pDataObject,dwReserved,advf);
   12674 }
   12675 #endif
   12676 #endif
   12677 
   12678 #endif
   12679 
   12680 HRESULT STDMETHODCALLTYPE IDataAdviseHolder_Advise_Proxy(
   12681     IDataAdviseHolder* This,
   12682     IDataObject *pDataObject,
   12683     FORMATETC *pFetc,
   12684     DWORD advf,
   12685     IAdviseSink *pAdvise,
   12686     DWORD *pdwConnection);
   12687 void __RPC_STUB IDataAdviseHolder_Advise_Stub(
   12688     IRpcStubBuffer* This,
   12689     IRpcChannelBuffer* pRpcChannelBuffer,
   12690     PRPC_MESSAGE pRpcMessage,
   12691     DWORD* pdwStubPhase);
   12692 HRESULT STDMETHODCALLTYPE IDataAdviseHolder_Unadvise_Proxy(
   12693     IDataAdviseHolder* This,
   12694     DWORD dwConnection);
   12695 void __RPC_STUB IDataAdviseHolder_Unadvise_Stub(
   12696     IRpcStubBuffer* This,
   12697     IRpcChannelBuffer* pRpcChannelBuffer,
   12698     PRPC_MESSAGE pRpcMessage,
   12699     DWORD* pdwStubPhase);
   12700 HRESULT STDMETHODCALLTYPE IDataAdviseHolder_EnumAdvise_Proxy(
   12701     IDataAdviseHolder* This,
   12702     IEnumSTATDATA **ppenumAdvise);
   12703 void __RPC_STUB IDataAdviseHolder_EnumAdvise_Stub(
   12704     IRpcStubBuffer* This,
   12705     IRpcChannelBuffer* pRpcChannelBuffer,
   12706     PRPC_MESSAGE pRpcMessage,
   12707     DWORD* pdwStubPhase);
   12708 HRESULT STDMETHODCALLTYPE IDataAdviseHolder_SendOnDataChange_Proxy(
   12709     IDataAdviseHolder* This,
   12710     IDataObject *pDataObject,
   12711     DWORD dwReserved,
   12712     DWORD advf);
   12713 void __RPC_STUB IDataAdviseHolder_SendOnDataChange_Stub(
   12714     IRpcStubBuffer* This,
   12715     IRpcChannelBuffer* pRpcChannelBuffer,
   12716     PRPC_MESSAGE pRpcMessage,
   12717     DWORD* pdwStubPhase);
   12718 
   12719 #endif  /* __IDataAdviseHolder_INTERFACE_DEFINED__ */
   12720 
   12721 /*****************************************************************************
   12722  * IMessageFilter interface
   12723  */
   12724 #ifndef __IMessageFilter_INTERFACE_DEFINED__
   12725 #define __IMessageFilter_INTERFACE_DEFINED__
   12726 
   12727 typedef IMessageFilter *LPMESSAGEFILTER;
   12728 typedef enum tagCALLTYPE {
   12729     CALLTYPE_TOPLEVEL = 1,
   12730     CALLTYPE_NESTED = 2,
   12731     CALLTYPE_ASYNC = 3,
   12732     CALLTYPE_TOPLEVEL_CALLPENDING = 4,
   12733     CALLTYPE_ASYNC_CALLPENDING = 5
   12734 } CALLTYPE;
   12735 typedef enum tagSERVERCALL {
   12736     SERVERCALL_ISHANDLED = 0,
   12737     SERVERCALL_REJECTED = 1,
   12738     SERVERCALL_RETRYLATER = 2
   12739 } SERVERCALL;
   12740 typedef enum tagPENDINGTYPE {
   12741     PENDINGTYPE_TOPLEVEL = 1,
   12742     PENDINGTYPE_NESTED = 2
   12743 } PENDINGTYPE;
   12744 typedef enum tagPENDINGMSG {
   12745     PENDINGMSG_CANCELCALL = 0,
   12746     PENDINGMSG_WAITNOPROCESS = 1,
   12747     PENDINGMSG_WAITDEFPROCESS = 2
   12748 } PENDINGMSG;
   12749 typedef struct tagINTERFACEINFO {
   12750     IUnknown *pUnk;
   12751     IID iid;
   12752     WORD wMethod;
   12753 } INTERFACEINFO;
   12754 typedef struct tagINTERFACEINFO *LPINTERFACEINFO;
   12755 DEFINE_GUID(IID_IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   12756 #if defined(__cplusplus) && !defined(CINTERFACE)
   12757 MIDL_INTERFACE("00000016-0000-0000-c000-000000000046")
   12758 IMessageFilter : public IUnknown
   12759 {
   12760     virtual DWORD STDMETHODCALLTYPE HandleInComingCall(
   12761         DWORD dwCallType,
   12762         HTASK htaskCaller,
   12763         DWORD dwTickCount,
   12764         LPINTERFACEINFO lpInterfaceInfo) = 0;
   12765 
   12766     virtual DWORD STDMETHODCALLTYPE RetryRejectedCall(
   12767         HTASK htaskCallee,
   12768         DWORD dwTickCount,
   12769         DWORD dwRejectType) = 0;
   12770 
   12771     virtual DWORD STDMETHODCALLTYPE MessagePending(
   12772         HTASK htaskCallee,
   12773         DWORD dwTickCount,
   12774         DWORD dwPendingType) = 0;
   12775 
   12776 };
   12777 #ifdef __CRT_UUID_DECL
   12778 __CRT_UUID_DECL(IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   12779 #endif
   12780 #else
   12781 typedef struct IMessageFilterVtbl {
   12782     BEGIN_INTERFACE
   12783 
   12784     /*** IUnknown methods ***/
   12785     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   12786         IMessageFilter* This,
   12787         REFIID riid,
   12788         void **ppvObject);
   12789 
   12790     ULONG (STDMETHODCALLTYPE *AddRef)(
   12791         IMessageFilter* This);
   12792 
   12793     ULONG (STDMETHODCALLTYPE *Release)(
   12794         IMessageFilter* This);
   12795 
   12796     /*** IMessageFilter methods ***/
   12797     DWORD (STDMETHODCALLTYPE *HandleInComingCall)(
   12798         IMessageFilter* This,
   12799         DWORD dwCallType,
   12800         HTASK htaskCaller,
   12801         DWORD dwTickCount,
   12802         LPINTERFACEINFO lpInterfaceInfo);
   12803 
   12804     DWORD (STDMETHODCALLTYPE *RetryRejectedCall)(
   12805         IMessageFilter* This,
   12806         HTASK htaskCallee,
   12807         DWORD dwTickCount,
   12808         DWORD dwRejectType);
   12809 
   12810     DWORD (STDMETHODCALLTYPE *MessagePending)(
   12811         IMessageFilter* This,
   12812         HTASK htaskCallee,
   12813         DWORD dwTickCount,
   12814         DWORD dwPendingType);
   12815 
   12816     END_INTERFACE
   12817 } IMessageFilterVtbl;
   12818 interface IMessageFilter {
   12819     CONST_VTBL IMessageFilterVtbl* lpVtbl;
   12820 };
   12821 
   12822 #ifdef COBJMACROS
   12823 #ifndef WIDL_C_INLINE_WRAPPERS
   12824 /*** IUnknown methods ***/
   12825 #define IMessageFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   12826 #define IMessageFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   12827 #define IMessageFilter_Release(This) (This)->lpVtbl->Release(This)
   12828 /*** IMessageFilter methods ***/
   12829 #define IMessageFilter_HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo) (This)->lpVtbl->HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo)
   12830 #define IMessageFilter_RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType) (This)->lpVtbl->RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType)
   12831 #define IMessageFilter_MessagePending(This,htaskCallee,dwTickCount,dwPendingType) (This)->lpVtbl->MessagePending(This,htaskCallee,dwTickCount,dwPendingType)
   12832 #else
   12833 /*** IUnknown methods ***/
   12834 static FORCEINLINE HRESULT IMessageFilter_QueryInterface(IMessageFilter* This,REFIID riid,void **ppvObject) {
   12835     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   12836 }
   12837 static FORCEINLINE ULONG IMessageFilter_AddRef(IMessageFilter* This) {
   12838     return This->lpVtbl->AddRef(This);
   12839 }
   12840 static FORCEINLINE ULONG IMessageFilter_Release(IMessageFilter* This) {
   12841     return This->lpVtbl->Release(This);
   12842 }
   12843 /*** IMessageFilter methods ***/
   12844 static FORCEINLINE DWORD IMessageFilter_HandleInComingCall(IMessageFilter* This,DWORD dwCallType,HTASK htaskCaller,DWORD dwTickCount,LPINTERFACEINFO lpInterfaceInfo) {
   12845     return This->lpVtbl->HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo);
   12846 }
   12847 static FORCEINLINE DWORD IMessageFilter_RetryRejectedCall(IMessageFilter* This,HTASK htaskCallee,DWORD dwTickCount,DWORD dwRejectType) {
   12848     return This->lpVtbl->RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType);
   12849 }
   12850 static FORCEINLINE DWORD IMessageFilter_MessagePending(IMessageFilter* This,HTASK htaskCallee,DWORD dwTickCount,DWORD dwPendingType) {
   12851     return This->lpVtbl->MessagePending(This,htaskCallee,dwTickCount,dwPendingType);
   12852 }
   12853 #endif
   12854 #endif
   12855 
   12856 #endif
   12857 
   12858 DWORD STDMETHODCALLTYPE IMessageFilter_HandleInComingCall_Proxy(
   12859     IMessageFilter* This,
   12860     DWORD dwCallType,
   12861     HTASK htaskCaller,
   12862     DWORD dwTickCount,
   12863     LPINTERFACEINFO lpInterfaceInfo);
   12864 void __RPC_STUB IMessageFilter_HandleInComingCall_Stub(
   12865     IRpcStubBuffer* This,
   12866     IRpcChannelBuffer* pRpcChannelBuffer,
   12867     PRPC_MESSAGE pRpcMessage,
   12868     DWORD* pdwStubPhase);
   12869 DWORD STDMETHODCALLTYPE IMessageFilter_RetryRejectedCall_Proxy(
   12870     IMessageFilter* This,
   12871     HTASK htaskCallee,
   12872     DWORD dwTickCount,
   12873     DWORD dwRejectType);
   12874 void __RPC_STUB IMessageFilter_RetryRejectedCall_Stub(
   12875     IRpcStubBuffer* This,
   12876     IRpcChannelBuffer* pRpcChannelBuffer,
   12877     PRPC_MESSAGE pRpcMessage,
   12878     DWORD* pdwStubPhase);
   12879 DWORD STDMETHODCALLTYPE IMessageFilter_MessagePending_Proxy(
   12880     IMessageFilter* This,
   12881     HTASK htaskCallee,
   12882     DWORD dwTickCount,
   12883     DWORD dwPendingType);
   12884 void __RPC_STUB IMessageFilter_MessagePending_Stub(
   12885     IRpcStubBuffer* This,
   12886     IRpcChannelBuffer* pRpcChannelBuffer,
   12887     PRPC_MESSAGE pRpcMessage,
   12888     DWORD* pdwStubPhase);
   12889 
   12890 #endif  /* __IMessageFilter_INTERFACE_DEFINED__ */
   12891 
   12892 
   12893 extern const FMTID FMTID_SummaryInformation;
   12894 
   12895 extern const FMTID FMTID_DocSummaryInformation;
   12896 
   12897 extern const FMTID FMTID_UserDefinedProperties;
   12898 
   12899 extern const FMTID FMTID_DiscardableInformation;
   12900 
   12901 extern const FMTID FMTID_ImageSummaryInformation;
   12902 
   12903 extern const FMTID FMTID_AudioSummaryInformation;
   12904 
   12905 extern const FMTID FMTID_VideoSummaryInformation;
   12906 
   12907 extern const FMTID FMTID_MediaFileSummaryInformation;
   12908 
   12909 /*****************************************************************************
   12910  * IClassActivator interface
   12911  */
   12912 #ifndef __IClassActivator_INTERFACE_DEFINED__
   12913 #define __IClassActivator_INTERFACE_DEFINED__
   12914 
   12915 DEFINE_GUID(IID_IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   12916 #if defined(__cplusplus) && !defined(CINTERFACE)
   12917 MIDL_INTERFACE("00000140-0000-0000-c000-000000000046")
   12918 IClassActivator : public IUnknown
   12919 {
   12920     virtual HRESULT STDMETHODCALLTYPE GetClassObject(
   12921         REFCLSID rclsid,
   12922         DWORD dwClassContext,
   12923         LCID locale,
   12924         REFIID riid,
   12925         void **ppv) = 0;
   12926 
   12927 };
   12928 #ifdef __CRT_UUID_DECL
   12929 __CRT_UUID_DECL(IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   12930 #endif
   12931 #else
   12932 typedef struct IClassActivatorVtbl {
   12933     BEGIN_INTERFACE
   12934 
   12935     /*** IUnknown methods ***/
   12936     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   12937         IClassActivator* This,
   12938         REFIID riid,
   12939         void **ppvObject);
   12940 
   12941     ULONG (STDMETHODCALLTYPE *AddRef)(
   12942         IClassActivator* This);
   12943 
   12944     ULONG (STDMETHODCALLTYPE *Release)(
   12945         IClassActivator* This);
   12946 
   12947     /*** IClassActivator methods ***/
   12948     HRESULT (STDMETHODCALLTYPE *GetClassObject)(
   12949         IClassActivator* This,
   12950         REFCLSID rclsid,
   12951         DWORD dwClassContext,
   12952         LCID locale,
   12953         REFIID riid,
   12954         void **ppv);
   12955 
   12956     END_INTERFACE
   12957 } IClassActivatorVtbl;
   12958 interface IClassActivator {
   12959     CONST_VTBL IClassActivatorVtbl* lpVtbl;
   12960 };
   12961 
   12962 #ifdef COBJMACROS
   12963 #ifndef WIDL_C_INLINE_WRAPPERS
   12964 /*** IUnknown methods ***/
   12965 #define IClassActivator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   12966 #define IClassActivator_AddRef(This) (This)->lpVtbl->AddRef(This)
   12967 #define IClassActivator_Release(This) (This)->lpVtbl->Release(This)
   12968 /*** IClassActivator methods ***/
   12969 #define IClassActivator_GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv) (This)->lpVtbl->GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv)
   12970 #else
   12971 /*** IUnknown methods ***/
   12972 static FORCEINLINE HRESULT IClassActivator_QueryInterface(IClassActivator* This,REFIID riid,void **ppvObject) {
   12973     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   12974 }
   12975 static FORCEINLINE ULONG IClassActivator_AddRef(IClassActivator* This) {
   12976     return This->lpVtbl->AddRef(This);
   12977 }
   12978 static FORCEINLINE ULONG IClassActivator_Release(IClassActivator* This) {
   12979     return This->lpVtbl->Release(This);
   12980 }
   12981 /*** IClassActivator methods ***/
   12982 static FORCEINLINE HRESULT IClassActivator_GetClassObject(IClassActivator* This,REFCLSID rclsid,DWORD dwClassContext,LCID locale,REFIID riid,void **ppv) {
   12983     return This->lpVtbl->GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv);
   12984 }
   12985 #endif
   12986 #endif
   12987 
   12988 #endif
   12989 
   12990 HRESULT STDMETHODCALLTYPE IClassActivator_GetClassObject_Proxy(
   12991     IClassActivator* This,
   12992     REFCLSID rclsid,
   12993     DWORD dwClassContext,
   12994     LCID locale,
   12995     REFIID riid,
   12996     void **ppv);
   12997 void __RPC_STUB IClassActivator_GetClassObject_Stub(
   12998     IRpcStubBuffer* This,
   12999     IRpcChannelBuffer* pRpcChannelBuffer,
   13000     PRPC_MESSAGE pRpcMessage,
   13001     DWORD* pdwStubPhase);
   13002 
   13003 #endif  /* __IClassActivator_INTERFACE_DEFINED__ */
   13004 
   13005 #endif
   13006 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   13007 /*****************************************************************************
   13008  * IFillLockBytes interface
   13009  */
   13010 #ifndef __IFillLockBytes_INTERFACE_DEFINED__
   13011 #define __IFillLockBytes_INTERFACE_DEFINED__
   13012 
   13013 DEFINE_GUID(IID_IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5);
   13014 #if defined(__cplusplus) && !defined(CINTERFACE)
   13015 MIDL_INTERFACE("99caf010-415e-11cf-8814-00aa00b569f5")
   13016 IFillLockBytes : public IUnknown
   13017 {
   13018     virtual HRESULT STDMETHODCALLTYPE FillAppend(
   13019         const void *pv,
   13020         ULONG cb,
   13021         ULONG *pcbWritten) = 0;
   13022 
   13023     virtual HRESULT STDMETHODCALLTYPE FillAt(
   13024         ULARGE_INTEGER ulOffset,
   13025         const void *pv,
   13026         ULONG cb,
   13027         ULONG *pcbWritten) = 0;
   13028 
   13029     virtual HRESULT STDMETHODCALLTYPE SetFillSize(
   13030         ULARGE_INTEGER ulSize) = 0;
   13031 
   13032     virtual HRESULT STDMETHODCALLTYPE Terminate(
   13033         WINBOOL bCanceled) = 0;
   13034 
   13035 };
   13036 #ifdef __CRT_UUID_DECL
   13037 __CRT_UUID_DECL(IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5)
   13038 #endif
   13039 #else
   13040 typedef struct IFillLockBytesVtbl {
   13041     BEGIN_INTERFACE
   13042 
   13043     /*** IUnknown methods ***/
   13044     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   13045         IFillLockBytes* This,
   13046         REFIID riid,
   13047         void **ppvObject);
   13048 
   13049     ULONG (STDMETHODCALLTYPE *AddRef)(
   13050         IFillLockBytes* This);
   13051 
   13052     ULONG (STDMETHODCALLTYPE *Release)(
   13053         IFillLockBytes* This);
   13054 
   13055     /*** IFillLockBytes methods ***/
   13056     HRESULT (STDMETHODCALLTYPE *FillAppend)(
   13057         IFillLockBytes* This,
   13058         const void *pv,
   13059         ULONG cb,
   13060         ULONG *pcbWritten);
   13061 
   13062     HRESULT (STDMETHODCALLTYPE *FillAt)(
   13063         IFillLockBytes* This,
   13064         ULARGE_INTEGER ulOffset,
   13065         const void *pv,
   13066         ULONG cb,
   13067         ULONG *pcbWritten);
   13068 
   13069     HRESULT (STDMETHODCALLTYPE *SetFillSize)(
   13070         IFillLockBytes* This,
   13071         ULARGE_INTEGER ulSize);
   13072 
   13073     HRESULT (STDMETHODCALLTYPE *Terminate)(
   13074         IFillLockBytes* This,
   13075         WINBOOL bCanceled);
   13076 
   13077     END_INTERFACE
   13078 } IFillLockBytesVtbl;
   13079 interface IFillLockBytes {
   13080     CONST_VTBL IFillLockBytesVtbl* lpVtbl;
   13081 };
   13082 
   13083 #ifdef COBJMACROS
   13084 #ifndef WIDL_C_INLINE_WRAPPERS
   13085 /*** IUnknown methods ***/
   13086 #define IFillLockBytes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   13087 #define IFillLockBytes_AddRef(This) (This)->lpVtbl->AddRef(This)
   13088 #define IFillLockBytes_Release(This) (This)->lpVtbl->Release(This)
   13089 /*** IFillLockBytes methods ***/
   13090 #define IFillLockBytes_FillAppend(This,pv,cb,pcbWritten) (This)->lpVtbl->FillAppend(This,pv,cb,pcbWritten)
   13091 #define IFillLockBytes_FillAt(This,ulOffset,pv,cb,pcbWritten) (This)->lpVtbl->FillAt(This,ulOffset,pv,cb,pcbWritten)
   13092 #define IFillLockBytes_SetFillSize(This,ulSize) (This)->lpVtbl->SetFillSize(This,ulSize)
   13093 #define IFillLockBytes_Terminate(This,bCanceled) (This)->lpVtbl->Terminate(This,bCanceled)
   13094 #else
   13095 /*** IUnknown methods ***/
   13096 static FORCEINLINE HRESULT IFillLockBytes_QueryInterface(IFillLockBytes* This,REFIID riid,void **ppvObject) {
   13097     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   13098 }
   13099 static FORCEINLINE ULONG IFillLockBytes_AddRef(IFillLockBytes* This) {
   13100     return This->lpVtbl->AddRef(This);
   13101 }
   13102 static FORCEINLINE ULONG IFillLockBytes_Release(IFillLockBytes* This) {
   13103     return This->lpVtbl->Release(This);
   13104 }
   13105 /*** IFillLockBytes methods ***/
   13106 static FORCEINLINE HRESULT IFillLockBytes_FillAppend(IFillLockBytes* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   13107     return This->lpVtbl->FillAppend(This,pv,cb,pcbWritten);
   13108 }
   13109 static FORCEINLINE HRESULT IFillLockBytes_FillAt(IFillLockBytes* This,ULARGE_INTEGER ulOffset,const void *pv,ULONG cb,ULONG *pcbWritten) {
   13110     return This->lpVtbl->FillAt(This,ulOffset,pv,cb,pcbWritten);
   13111 }
   13112 static FORCEINLINE HRESULT IFillLockBytes_SetFillSize(IFillLockBytes* This,ULARGE_INTEGER ulSize) {
   13113     return This->lpVtbl->SetFillSize(This,ulSize);
   13114 }
   13115 static FORCEINLINE HRESULT IFillLockBytes_Terminate(IFillLockBytes* This,WINBOOL bCanceled) {
   13116     return This->lpVtbl->Terminate(This,bCanceled);
   13117 }
   13118 #endif
   13119 #endif
   13120 
   13121 #endif
   13122 
   13123 HRESULT __stdcall IFillLockBytes_RemoteFillAppend_Proxy(
   13124     IFillLockBytes* This,
   13125     const byte *pv,
   13126     ULONG cb,
   13127     ULONG *pcbWritten);
   13128 void __RPC_STUB IFillLockBytes_RemoteFillAppend_Stub(
   13129     IRpcStubBuffer* This,
   13130     IRpcChannelBuffer* pRpcChannelBuffer,
   13131     PRPC_MESSAGE pRpcMessage,
   13132     DWORD* pdwStubPhase);
   13133 HRESULT __stdcall IFillLockBytes_RemoteFillAt_Proxy(
   13134     IFillLockBytes* This,
   13135     ULARGE_INTEGER ulOffset,
   13136     const byte *pv,
   13137     ULONG cb,
   13138     ULONG *pcbWritten);
   13139 void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub(
   13140     IRpcStubBuffer* This,
   13141     IRpcChannelBuffer* pRpcChannelBuffer,
   13142     PRPC_MESSAGE pRpcMessage,
   13143     DWORD* pdwStubPhase);
   13144 HRESULT STDMETHODCALLTYPE IFillLockBytes_SetFillSize_Proxy(
   13145     IFillLockBytes* This,
   13146     ULARGE_INTEGER ulSize);
   13147 void __RPC_STUB IFillLockBytes_SetFillSize_Stub(
   13148     IRpcStubBuffer* This,
   13149     IRpcChannelBuffer* pRpcChannelBuffer,
   13150     PRPC_MESSAGE pRpcMessage,
   13151     DWORD* pdwStubPhase);
   13152 HRESULT STDMETHODCALLTYPE IFillLockBytes_Terminate_Proxy(
   13153     IFillLockBytes* This,
   13154     WINBOOL bCanceled);
   13155 void __RPC_STUB IFillLockBytes_Terminate_Stub(
   13156     IRpcStubBuffer* This,
   13157     IRpcChannelBuffer* pRpcChannelBuffer,
   13158     PRPC_MESSAGE pRpcMessage,
   13159     DWORD* pdwStubPhase);
   13160 HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
   13161     IFillLockBytes* This,
   13162     const void *pv,
   13163     ULONG cb,
   13164     ULONG *pcbWritten);
   13165 HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
   13166     IFillLockBytes* This,
   13167     const byte *pv,
   13168     ULONG cb,
   13169     ULONG *pcbWritten);
   13170 HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
   13171     IFillLockBytes* This,
   13172     ULARGE_INTEGER ulOffset,
   13173     const void *pv,
   13174     ULONG cb,
   13175     ULONG *pcbWritten);
   13176 HRESULT __RPC_STUB IFillLockBytes_FillAt_Stub(
   13177     IFillLockBytes* This,
   13178     ULARGE_INTEGER ulOffset,
   13179     const byte *pv,
   13180     ULONG cb,
   13181     ULONG *pcbWritten);
   13182 
   13183 #endif  /* __IFillLockBytes_INTERFACE_DEFINED__ */
   13184 
   13185 #endif
   13186 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   13187 /*****************************************************************************
   13188  * IProgressNotify interface
   13189  */
   13190 #ifndef __IProgressNotify_INTERFACE_DEFINED__
   13191 #define __IProgressNotify_INTERFACE_DEFINED__
   13192 
   13193 DEFINE_GUID(IID_IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
   13194 #if defined(__cplusplus) && !defined(CINTERFACE)
   13195 MIDL_INTERFACE("a9d758a0-4617-11cf-95fc-00aa00680db4")
   13196 IProgressNotify : public IUnknown
   13197 {
   13198     virtual HRESULT STDMETHODCALLTYPE OnProgress(
   13199         DWORD dwProgressCurrent,
   13200         DWORD dwProgressMaximum,
   13201         WINBOOL fAccurate,
   13202         WINBOOL fOwner) = 0;
   13203 
   13204 };
   13205 #ifdef __CRT_UUID_DECL
   13206 __CRT_UUID_DECL(IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
   13207 #endif
   13208 #else
   13209 typedef struct IProgressNotifyVtbl {
   13210     BEGIN_INTERFACE
   13211 
   13212     /*** IUnknown methods ***/
   13213     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   13214         IProgressNotify* This,
   13215         REFIID riid,
   13216         void **ppvObject);
   13217 
   13218     ULONG (STDMETHODCALLTYPE *AddRef)(
   13219         IProgressNotify* This);
   13220 
   13221     ULONG (STDMETHODCALLTYPE *Release)(
   13222         IProgressNotify* This);
   13223 
   13224     /*** IProgressNotify methods ***/
   13225     HRESULT (STDMETHODCALLTYPE *OnProgress)(
   13226         IProgressNotify* This,
   13227         DWORD dwProgressCurrent,
   13228         DWORD dwProgressMaximum,
   13229         WINBOOL fAccurate,
   13230         WINBOOL fOwner);
   13231 
   13232     END_INTERFACE
   13233 } IProgressNotifyVtbl;
   13234 interface IProgressNotify {
   13235     CONST_VTBL IProgressNotifyVtbl* lpVtbl;
   13236 };
   13237 
   13238 #ifdef COBJMACROS
   13239 #ifndef WIDL_C_INLINE_WRAPPERS
   13240 /*** IUnknown methods ***/
   13241 #define IProgressNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   13242 #define IProgressNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
   13243 #define IProgressNotify_Release(This) (This)->lpVtbl->Release(This)
   13244 /*** IProgressNotify methods ***/
   13245 #define IProgressNotify_OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner) (This)->lpVtbl->OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner)
   13246 #else
   13247 /*** IUnknown methods ***/
   13248 static FORCEINLINE HRESULT IProgressNotify_QueryInterface(IProgressNotify* This,REFIID riid,void **ppvObject) {
   13249     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   13250 }
   13251 static FORCEINLINE ULONG IProgressNotify_AddRef(IProgressNotify* This) {
   13252     return This->lpVtbl->AddRef(This);
   13253 }
   13254 static FORCEINLINE ULONG IProgressNotify_Release(IProgressNotify* This) {
   13255     return This->lpVtbl->Release(This);
   13256 }
   13257 /*** IProgressNotify methods ***/
   13258 static FORCEINLINE HRESULT IProgressNotify_OnProgress(IProgressNotify* This,DWORD dwProgressCurrent,DWORD dwProgressMaximum,WINBOOL fAccurate,WINBOOL fOwner) {
   13259     return This->lpVtbl->OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner);
   13260 }
   13261 #endif
   13262 #endif
   13263 
   13264 #endif
   13265 
   13266 HRESULT STDMETHODCALLTYPE IProgressNotify_OnProgress_Proxy(
   13267     IProgressNotify* This,
   13268     DWORD dwProgressCurrent,
   13269     DWORD dwProgressMaximum,
   13270     WINBOOL fAccurate,
   13271     WINBOOL fOwner);
   13272 void __RPC_STUB IProgressNotify_OnProgress_Stub(
   13273     IRpcStubBuffer* This,
   13274     IRpcChannelBuffer* pRpcChannelBuffer,
   13275     PRPC_MESSAGE pRpcMessage,
   13276     DWORD* pdwStubPhase);
   13277 
   13278 #endif  /* __IProgressNotify_INTERFACE_DEFINED__ */
   13279 
   13280 #endif
   13281 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   13282 /*****************************************************************************
   13283  * ILayoutStorage interface
   13284  */
   13285 #ifndef __ILayoutStorage_INTERFACE_DEFINED__
   13286 #define __ILayoutStorage_INTERFACE_DEFINED__
   13287 
   13288 typedef struct tagStorageLayout {
   13289     DWORD LayoutType;
   13290     OLECHAR *pwcsElementName;
   13291     LARGE_INTEGER cOffset;
   13292     LARGE_INTEGER cBytes;
   13293 } StorageLayout;
   13294 DEFINE_GUID(IID_ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
   13295 #if defined(__cplusplus) && !defined(CINTERFACE)
   13296 MIDL_INTERFACE("0e6d4d90-6738-11cf-9608-00aa00680db4")
   13297 ILayoutStorage : public IUnknown
   13298 {
   13299     virtual HRESULT __stdcall LayoutScript(
   13300         StorageLayout *pStorageLayout,
   13301         DWORD nEntries,
   13302         DWORD glfInterleavedFlag) = 0;
   13303 
   13304     virtual HRESULT __stdcall BeginMonitor(
   13305         ) = 0;
   13306 
   13307     virtual HRESULT __stdcall EndMonitor(
   13308         ) = 0;
   13309 
   13310     virtual HRESULT __stdcall ReLayoutDocfile(
   13311         OLECHAR *pwcsNewDfName) = 0;
   13312 
   13313     virtual HRESULT __stdcall ReLayoutDocfileOnILockBytes(
   13314         ILockBytes *pILockBytes) = 0;
   13315 
   13316 };
   13317 #ifdef __CRT_UUID_DECL
   13318 __CRT_UUID_DECL(ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
   13319 #endif
   13320 #else
   13321 typedef struct ILayoutStorageVtbl {
   13322     BEGIN_INTERFACE
   13323 
   13324     /*** IUnknown methods ***/
   13325     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   13326         ILayoutStorage* This,
   13327         REFIID riid,
   13328         void **ppvObject);
   13329 
   13330     ULONG (STDMETHODCALLTYPE *AddRef)(
   13331         ILayoutStorage* This);
   13332 
   13333     ULONG (STDMETHODCALLTYPE *Release)(
   13334         ILayoutStorage* This);
   13335 
   13336     /*** ILayoutStorage methods ***/
   13337     HRESULT (__stdcall *LayoutScript)(
   13338         ILayoutStorage* This,
   13339         StorageLayout *pStorageLayout,
   13340         DWORD nEntries,
   13341         DWORD glfInterleavedFlag);
   13342 
   13343     HRESULT (__stdcall *BeginMonitor)(
   13344         ILayoutStorage* This);
   13345 
   13346     HRESULT (__stdcall *EndMonitor)(
   13347         ILayoutStorage* This);
   13348 
   13349     HRESULT (__stdcall *ReLayoutDocfile)(
   13350         ILayoutStorage* This,
   13351         OLECHAR *pwcsNewDfName);
   13352 
   13353     HRESULT (__stdcall *ReLayoutDocfileOnILockBytes)(
   13354         ILayoutStorage* This,
   13355         ILockBytes *pILockBytes);
   13356 
   13357     END_INTERFACE
   13358 } ILayoutStorageVtbl;
   13359 interface ILayoutStorage {
   13360     CONST_VTBL ILayoutStorageVtbl* lpVtbl;
   13361 };
   13362 
   13363 #ifdef COBJMACROS
   13364 #ifndef WIDL_C_INLINE_WRAPPERS
   13365 /*** IUnknown methods ***/
   13366 #define ILayoutStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   13367 #define ILayoutStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
   13368 #define ILayoutStorage_Release(This) (This)->lpVtbl->Release(This)
   13369 /*** ILayoutStorage methods ***/
   13370 #define ILayoutStorage_LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag) (This)->lpVtbl->LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag)
   13371 #define ILayoutStorage_BeginMonitor(This) (This)->lpVtbl->BeginMonitor(This)
   13372 #define ILayoutStorage_EndMonitor(This) (This)->lpVtbl->EndMonitor(This)
   13373 #define ILayoutStorage_ReLayoutDocfile(This,pwcsNewDfName) (This)->lpVtbl->ReLayoutDocfile(This,pwcsNewDfName)
   13374 #define ILayoutStorage_ReLayoutDocfileOnILockBytes(This,pILockBytes) (This)->lpVtbl->ReLayoutDocfileOnILockBytes(This,pILockBytes)
   13375 #else
   13376 /*** IUnknown methods ***/
   13377 static FORCEINLINE HRESULT ILayoutStorage_QueryInterface(ILayoutStorage* This,REFIID riid,void **ppvObject) {
   13378     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   13379 }
   13380 static FORCEINLINE ULONG ILayoutStorage_AddRef(ILayoutStorage* This) {
   13381     return This->lpVtbl->AddRef(This);
   13382 }
   13383 static FORCEINLINE ULONG ILayoutStorage_Release(ILayoutStorage* This) {
   13384     return This->lpVtbl->Release(This);
   13385 }
   13386 /*** ILayoutStorage methods ***/
   13387 static FORCEINLINE HRESULT ILayoutStorage_LayoutScript(ILayoutStorage* This,StorageLayout *pStorageLayout,DWORD nEntries,DWORD glfInterleavedFlag) {
   13388     return This->lpVtbl->LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag);
   13389 }
   13390 static FORCEINLINE HRESULT ILayoutStorage_BeginMonitor(ILayoutStorage* This) {
   13391     return This->lpVtbl->BeginMonitor(This);
   13392 }
   13393 static FORCEINLINE HRESULT ILayoutStorage_EndMonitor(ILayoutStorage* This) {
   13394     return This->lpVtbl->EndMonitor(This);
   13395 }
   13396 static FORCEINLINE HRESULT ILayoutStorage_ReLayoutDocfile(ILayoutStorage* This,OLECHAR *pwcsNewDfName) {
   13397     return This->lpVtbl->ReLayoutDocfile(This,pwcsNewDfName);
   13398 }
   13399 static FORCEINLINE HRESULT ILayoutStorage_ReLayoutDocfileOnILockBytes(ILayoutStorage* This,ILockBytes *pILockBytes) {
   13400     return This->lpVtbl->ReLayoutDocfileOnILockBytes(This,pILockBytes);
   13401 }
   13402 #endif
   13403 #endif
   13404 
   13405 #endif
   13406 
   13407 HRESULT __stdcall ILayoutStorage_LayoutScript_Proxy(
   13408     ILayoutStorage* This,
   13409     StorageLayout *pStorageLayout,
   13410     DWORD nEntries,
   13411     DWORD glfInterleavedFlag);
   13412 void __RPC_STUB ILayoutStorage_LayoutScript_Stub(
   13413     IRpcStubBuffer* This,
   13414     IRpcChannelBuffer* pRpcChannelBuffer,
   13415     PRPC_MESSAGE pRpcMessage,
   13416     DWORD* pdwStubPhase);
   13417 HRESULT __stdcall ILayoutStorage_BeginMonitor_Proxy(
   13418     ILayoutStorage* This);
   13419 void __RPC_STUB ILayoutStorage_BeginMonitor_Stub(
   13420     IRpcStubBuffer* This,
   13421     IRpcChannelBuffer* pRpcChannelBuffer,
   13422     PRPC_MESSAGE pRpcMessage,
   13423     DWORD* pdwStubPhase);
   13424 HRESULT __stdcall ILayoutStorage_EndMonitor_Proxy(
   13425     ILayoutStorage* This);
   13426 void __RPC_STUB ILayoutStorage_EndMonitor_Stub(
   13427     IRpcStubBuffer* This,
   13428     IRpcChannelBuffer* pRpcChannelBuffer,
   13429     PRPC_MESSAGE pRpcMessage,
   13430     DWORD* pdwStubPhase);
   13431 HRESULT __stdcall ILayoutStorage_ReLayoutDocfile_Proxy(
   13432     ILayoutStorage* This,
   13433     OLECHAR *pwcsNewDfName);
   13434 void __RPC_STUB ILayoutStorage_ReLayoutDocfile_Stub(
   13435     IRpcStubBuffer* This,
   13436     IRpcChannelBuffer* pRpcChannelBuffer,
   13437     PRPC_MESSAGE pRpcMessage,
   13438     DWORD* pdwStubPhase);
   13439 HRESULT __stdcall ILayoutStorage_ReLayoutDocfileOnILockBytes_Proxy(
   13440     ILayoutStorage* This,
   13441     ILockBytes *pILockBytes);
   13442 void __RPC_STUB ILayoutStorage_ReLayoutDocfileOnILockBytes_Stub(
   13443     IRpcStubBuffer* This,
   13444     IRpcChannelBuffer* pRpcChannelBuffer,
   13445     PRPC_MESSAGE pRpcMessage,
   13446     DWORD* pdwStubPhase);
   13447 
   13448 #endif  /* __ILayoutStorage_INTERFACE_DEFINED__ */
   13449 
   13450 #endif
   13451 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   13452 /*****************************************************************************
   13453  * IBlockingLock interface
   13454  */
   13455 #ifndef __IBlockingLock_INTERFACE_DEFINED__
   13456 #define __IBlockingLock_INTERFACE_DEFINED__
   13457 
   13458 DEFINE_GUID(IID_IBlockingLock, 0x30f3d47a, 0x6447, 0x11d1, 0x8e,0x3c, 0x00,0xc0,0x4f,0xb9,0x38,0x6d);
   13459 #if defined(__cplusplus) && !defined(CINTERFACE)
   13460 MIDL_INTERFACE("30f3d47a-6447-11d1-8e3c-00c04fb9386d")
   13461 IBlockingLock : public IUnknown
   13462 {
   13463     virtual HRESULT STDMETHODCALLTYPE Lock(
   13464         DWORD dwTimeout) = 0;
   13465 
   13466     virtual HRESULT STDMETHODCALLTYPE Unlock(
   13467         ) = 0;
   13468 
   13469 };
   13470 #ifdef __CRT_UUID_DECL
   13471 __CRT_UUID_DECL(IBlockingLock, 0x30f3d47a, 0x6447, 0x11d1, 0x8e,0x3c, 0x00,0xc0,0x4f,0xb9,0x38,0x6d)
   13472 #endif
   13473 #else
   13474 typedef struct IBlockingLockVtbl {
   13475     BEGIN_INTERFACE
   13476 
   13477     /*** IUnknown methods ***/
   13478     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   13479         IBlockingLock* This,
   13480         REFIID riid,
   13481         void **ppvObject);
   13482 
   13483     ULONG (STDMETHODCALLTYPE *AddRef)(
   13484         IBlockingLock* This);
   13485 
   13486     ULONG (STDMETHODCALLTYPE *Release)(
   13487         IBlockingLock* This);
   13488 
   13489     /*** IBlockingLock methods ***/
   13490     HRESULT (STDMETHODCALLTYPE *Lock)(
   13491         IBlockingLock* This,
   13492         DWORD dwTimeout);
   13493 
   13494     HRESULT (STDMETHODCALLTYPE *Unlock)(
   13495         IBlockingLock* This);
   13496 
   13497     END_INTERFACE
   13498 } IBlockingLockVtbl;
   13499 interface IBlockingLock {
   13500     CONST_VTBL IBlockingLockVtbl* lpVtbl;
   13501 };
   13502 
   13503 #ifdef COBJMACROS
   13504 #ifndef WIDL_C_INLINE_WRAPPERS
   13505 /*** IUnknown methods ***/
   13506 #define IBlockingLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   13507 #define IBlockingLock_AddRef(This) (This)->lpVtbl->AddRef(This)
   13508 #define IBlockingLock_Release(This) (This)->lpVtbl->Release(This)
   13509 /*** IBlockingLock methods ***/
   13510 #define IBlockingLock_Lock(This,dwTimeout) (This)->lpVtbl->Lock(This,dwTimeout)
   13511 #define IBlockingLock_Unlock(This) (This)->lpVtbl->Unlock(This)
   13512 #else
   13513 /*** IUnknown methods ***/
   13514 static FORCEINLINE HRESULT IBlockingLock_QueryInterface(IBlockingLock* This,REFIID riid,void **ppvObject) {
   13515     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   13516 }
   13517 static FORCEINLINE ULONG IBlockingLock_AddRef(IBlockingLock* This) {
   13518     return This->lpVtbl->AddRef(This);
   13519 }
   13520 static FORCEINLINE ULONG IBlockingLock_Release(IBlockingLock* This) {
   13521     return This->lpVtbl->Release(This);
   13522 }
   13523 /*** IBlockingLock methods ***/
   13524 static FORCEINLINE HRESULT IBlockingLock_Lock(IBlockingLock* This,DWORD dwTimeout) {
   13525     return This->lpVtbl->Lock(This,dwTimeout);
   13526 }
   13527 static FORCEINLINE HRESULT IBlockingLock_Unlock(IBlockingLock* This) {
   13528     return This->lpVtbl->Unlock(This);
   13529 }
   13530 #endif
   13531 #endif
   13532 
   13533 #endif
   13534 
   13535 HRESULT STDMETHODCALLTYPE IBlockingLock_Lock_Proxy(
   13536     IBlockingLock* This,
   13537     DWORD dwTimeout);
   13538 void __RPC_STUB IBlockingLock_Lock_Stub(
   13539     IRpcStubBuffer* This,
   13540     IRpcChannelBuffer* pRpcChannelBuffer,
   13541     PRPC_MESSAGE pRpcMessage,
   13542     DWORD* pdwStubPhase);
   13543 HRESULT STDMETHODCALLTYPE IBlockingLock_Unlock_Proxy(
   13544     IBlockingLock* This);
   13545 void __RPC_STUB IBlockingLock_Unlock_Stub(
   13546     IRpcStubBuffer* This,
   13547     IRpcChannelBuffer* pRpcChannelBuffer,
   13548     PRPC_MESSAGE pRpcMessage,
   13549     DWORD* pdwStubPhase);
   13550 
   13551 #endif  /* __IBlockingLock_INTERFACE_DEFINED__ */
   13552 
   13553 /*****************************************************************************
   13554  * ITimeAndNoticeControl interface
   13555  */
   13556 #ifndef __ITimeAndNoticeControl_INTERFACE_DEFINED__
   13557 #define __ITimeAndNoticeControl_INTERFACE_DEFINED__
   13558 
   13559 DEFINE_GUID(IID_ITimeAndNoticeControl, 0xbc0bf6ae, 0x8878, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4);
   13560 #if defined(__cplusplus) && !defined(CINTERFACE)
   13561 MIDL_INTERFACE("bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4")
   13562 ITimeAndNoticeControl : public IUnknown
   13563 {
   13564     virtual HRESULT STDMETHODCALLTYPE SuppressChanges(
   13565         DWORD res1,
   13566         DWORD res2) = 0;
   13567 
   13568 };
   13569 #ifdef __CRT_UUID_DECL
   13570 __CRT_UUID_DECL(ITimeAndNoticeControl, 0xbc0bf6ae, 0x8878, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4)
   13571 #endif
   13572 #else
   13573 typedef struct ITimeAndNoticeControlVtbl {
   13574     BEGIN_INTERFACE
   13575 
   13576     /*** IUnknown methods ***/
   13577     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   13578         ITimeAndNoticeControl* This,
   13579         REFIID riid,
   13580         void **ppvObject);
   13581 
   13582     ULONG (STDMETHODCALLTYPE *AddRef)(
   13583         ITimeAndNoticeControl* This);
   13584 
   13585     ULONG (STDMETHODCALLTYPE *Release)(
   13586         ITimeAndNoticeControl* This);
   13587 
   13588     /*** ITimeAndNoticeControl methods ***/
   13589     HRESULT (STDMETHODCALLTYPE *SuppressChanges)(
   13590         ITimeAndNoticeControl* This,
   13591         DWORD res1,
   13592         DWORD res2);
   13593 
   13594     END_INTERFACE
   13595 } ITimeAndNoticeControlVtbl;
   13596 interface ITimeAndNoticeControl {
   13597     CONST_VTBL ITimeAndNoticeControlVtbl* lpVtbl;
   13598 };
   13599 
   13600 #ifdef COBJMACROS
   13601 #ifndef WIDL_C_INLINE_WRAPPERS
   13602 /*** IUnknown methods ***/
   13603 #define ITimeAndNoticeControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   13604 #define ITimeAndNoticeControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   13605 #define ITimeAndNoticeControl_Release(This) (This)->lpVtbl->Release(This)
   13606 /*** ITimeAndNoticeControl methods ***/
   13607 #define ITimeAndNoticeControl_SuppressChanges(This,res1,res2) (This)->lpVtbl->SuppressChanges(This,res1,res2)
   13608 #else
   13609 /*** IUnknown methods ***/
   13610 static FORCEINLINE HRESULT ITimeAndNoticeControl_QueryInterface(ITimeAndNoticeControl* This,REFIID riid,void **ppvObject) {
   13611     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   13612 }
   13613 static FORCEINLINE ULONG ITimeAndNoticeControl_AddRef(ITimeAndNoticeControl* This) {
   13614     return This->lpVtbl->AddRef(This);
   13615 }
   13616 static FORCEINLINE ULONG ITimeAndNoticeControl_Release(ITimeAndNoticeControl* This) {
   13617     return This->lpVtbl->Release(This);
   13618 }
   13619 /*** ITimeAndNoticeControl methods ***/
   13620 static FORCEINLINE HRESULT ITimeAndNoticeControl_SuppressChanges(ITimeAndNoticeControl* This,DWORD res1,DWORD res2) {
   13621     return This->lpVtbl->SuppressChanges(This,res1,res2);
   13622 }
   13623 #endif
   13624 #endif
   13625 
   13626 #endif
   13627 
   13628 HRESULT STDMETHODCALLTYPE ITimeAndNoticeControl_SuppressChanges_Proxy(
   13629     ITimeAndNoticeControl* This,
   13630     DWORD res1,
   13631     DWORD res2);
   13632 void __RPC_STUB ITimeAndNoticeControl_SuppressChanges_Stub(
   13633     IRpcStubBuffer* This,
   13634     IRpcChannelBuffer* pRpcChannelBuffer,
   13635     PRPC_MESSAGE pRpcMessage,
   13636     DWORD* pdwStubPhase);
   13637 
   13638 #endif  /* __ITimeAndNoticeControl_INTERFACE_DEFINED__ */
   13639 
   13640 /*****************************************************************************
   13641  * IOplockStorage interface
   13642  */
   13643 #ifndef __IOplockStorage_INTERFACE_DEFINED__
   13644 #define __IOplockStorage_INTERFACE_DEFINED__
   13645 
   13646 DEFINE_GUID(IID_IOplockStorage, 0x8d19c834, 0x8879, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4);
   13647 #if defined(__cplusplus) && !defined(CINTERFACE)
   13648 MIDL_INTERFACE("8d19c834-8879-11d1-83e9-00c04fc2c6d4")
   13649 IOplockStorage : public IUnknown
   13650 {
   13651     virtual HRESULT STDMETHODCALLTYPE CreateStorageEx(
   13652         LPCWSTR pwcsName,
   13653         DWORD grfMode,
   13654         DWORD stgfmt,
   13655         DWORD grfAttrs,
   13656         REFIID riid,
   13657         void **ppstgOpen) = 0;
   13658 
   13659     virtual HRESULT STDMETHODCALLTYPE OpenStorageEx(
   13660         LPCWSTR pwcsName,
   13661         DWORD grfMode,
   13662         DWORD stgfmt,
   13663         DWORD grfAttrs,
   13664         REFIID riid,
   13665         void **ppstgOpen) = 0;
   13666 
   13667 };
   13668 #ifdef __CRT_UUID_DECL
   13669 __CRT_UUID_DECL(IOplockStorage, 0x8d19c834, 0x8879, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4)
   13670 #endif
   13671 #else
   13672 typedef struct IOplockStorageVtbl {
   13673     BEGIN_INTERFACE
   13674 
   13675     /*** IUnknown methods ***/
   13676     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   13677         IOplockStorage* This,
   13678         REFIID riid,
   13679         void **ppvObject);
   13680 
   13681     ULONG (STDMETHODCALLTYPE *AddRef)(
   13682         IOplockStorage* This);
   13683 
   13684     ULONG (STDMETHODCALLTYPE *Release)(
   13685         IOplockStorage* This);
   13686 
   13687     /*** IOplockStorage methods ***/
   13688     HRESULT (STDMETHODCALLTYPE *CreateStorageEx)(
   13689         IOplockStorage* This,
   13690         LPCWSTR pwcsName,
   13691         DWORD grfMode,
   13692         DWORD stgfmt,
   13693         DWORD grfAttrs,
   13694         REFIID riid,
   13695         void **ppstgOpen);
   13696 
   13697     HRESULT (STDMETHODCALLTYPE *OpenStorageEx)(
   13698         IOplockStorage* This,
   13699         LPCWSTR pwcsName,
   13700         DWORD grfMode,
   13701         DWORD stgfmt,
   13702         DWORD grfAttrs,
   13703         REFIID riid,
   13704         void **ppstgOpen);
   13705 
   13706     END_INTERFACE
   13707 } IOplockStorageVtbl;
   13708 interface IOplockStorage {
   13709     CONST_VTBL IOplockStorageVtbl* lpVtbl;
   13710 };
   13711 
   13712 #ifdef COBJMACROS
   13713 #ifndef WIDL_C_INLINE_WRAPPERS
   13714 /*** IUnknown methods ***/
   13715 #define IOplockStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   13716 #define IOplockStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
   13717 #define IOplockStorage_Release(This) (This)->lpVtbl->Release(This)
   13718 /*** IOplockStorage methods ***/
   13719 #define IOplockStorage_CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen) (This)->lpVtbl->CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen)
   13720 #define IOplockStorage_OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen) (This)->lpVtbl->OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen)
   13721 #else
   13722 /*** IUnknown methods ***/
   13723 static FORCEINLINE HRESULT IOplockStorage_QueryInterface(IOplockStorage* This,REFIID riid,void **ppvObject) {
   13724     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   13725 }
   13726 static FORCEINLINE ULONG IOplockStorage_AddRef(IOplockStorage* This) {
   13727     return This->lpVtbl->AddRef(This);
   13728 }
   13729 static FORCEINLINE ULONG IOplockStorage_Release(IOplockStorage* This) {
   13730     return This->lpVtbl->Release(This);
   13731 }
   13732 /*** IOplockStorage methods ***/
   13733 static FORCEINLINE HRESULT IOplockStorage_CreateStorageEx(IOplockStorage* This,LPCWSTR pwcsName,DWORD grfMode,DWORD stgfmt,DWORD grfAttrs,REFIID riid,void **ppstgOpen) {
   13734     return This->lpVtbl->CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen);
   13735 }
   13736 static FORCEINLINE HRESULT IOplockStorage_OpenStorageEx(IOplockStorage* This,LPCWSTR pwcsName,DWORD grfMode,DWORD stgfmt,DWORD grfAttrs,REFIID riid,void **ppstgOpen) {
   13737     return This->lpVtbl->OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen);
   13738 }
   13739 #endif
   13740 #endif
   13741 
   13742 #endif
   13743 
   13744 HRESULT STDMETHODCALLTYPE IOplockStorage_CreateStorageEx_Proxy(
   13745     IOplockStorage* This,
   13746     LPCWSTR pwcsName,
   13747     DWORD grfMode,
   13748     DWORD stgfmt,
   13749     DWORD grfAttrs,
   13750     REFIID riid,
   13751     void **ppstgOpen);
   13752 void __RPC_STUB IOplockStorage_CreateStorageEx_Stub(
   13753     IRpcStubBuffer* This,
   13754     IRpcChannelBuffer* pRpcChannelBuffer,
   13755     PRPC_MESSAGE pRpcMessage,
   13756     DWORD* pdwStubPhase);
   13757 HRESULT STDMETHODCALLTYPE IOplockStorage_OpenStorageEx_Proxy(
   13758     IOplockStorage* This,
   13759     LPCWSTR pwcsName,
   13760     DWORD grfMode,
   13761     DWORD stgfmt,
   13762     DWORD grfAttrs,
   13763     REFIID riid,
   13764     void **ppstgOpen);
   13765 void __RPC_STUB IOplockStorage_OpenStorageEx_Stub(
   13766     IRpcStubBuffer* This,
   13767     IRpcChannelBuffer* pRpcChannelBuffer,
   13768     PRPC_MESSAGE pRpcMessage,
   13769     DWORD* pdwStubPhase);
   13770 
   13771 #endif  /* __IOplockStorage_INTERFACE_DEFINED__ */
   13772 
   13773 #endif
   13774 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   13775 /*****************************************************************************
   13776  * IDirectWriterLock interface
   13777  */
   13778 #ifndef __IDirectWriterLock_INTERFACE_DEFINED__
   13779 #define __IDirectWriterLock_INTERFACE_DEFINED__
   13780 
   13781 DEFINE_GUID(IID_IDirectWriterLock, 0x0e6d4d92, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
   13782 #if defined(__cplusplus) && !defined(CINTERFACE)
   13783 MIDL_INTERFACE("0e6d4d92-6738-11cf-9608-00aa00680db4")
   13784 IDirectWriterLock : public IUnknown
   13785 {
   13786     virtual HRESULT STDMETHODCALLTYPE WaitForWriteAccess(
   13787         DWORD dwTimeout) = 0;
   13788 
   13789     virtual HRESULT STDMETHODCALLTYPE ReleaseWriteAccess(
   13790         ) = 0;
   13791 
   13792     virtual HRESULT STDMETHODCALLTYPE HaveWriteAccess(
   13793         ) = 0;
   13794 
   13795 };
   13796 #ifdef __CRT_UUID_DECL
   13797 __CRT_UUID_DECL(IDirectWriterLock, 0x0e6d4d92, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
   13798 #endif
   13799 #else
   13800 typedef struct IDirectWriterLockVtbl {
   13801     BEGIN_INTERFACE
   13802 
   13803     /*** IUnknown methods ***/
   13804     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   13805         IDirectWriterLock* This,
   13806         REFIID riid,
   13807         void **ppvObject);
   13808 
   13809     ULONG (STDMETHODCALLTYPE *AddRef)(
   13810         IDirectWriterLock* This);
   13811 
   13812     ULONG (STDMETHODCALLTYPE *Release)(
   13813         IDirectWriterLock* This);
   13814 
   13815     /*** IDirectWriterLock methods ***/
   13816     HRESULT (STDMETHODCALLTYPE *WaitForWriteAccess)(
   13817         IDirectWriterLock* This,
   13818         DWORD dwTimeout);
   13819 
   13820     HRESULT (STDMETHODCALLTYPE *ReleaseWriteAccess)(
   13821         IDirectWriterLock* This);
   13822 
   13823     HRESULT (STDMETHODCALLTYPE *HaveWriteAccess)(
   13824         IDirectWriterLock* This);
   13825 
   13826     END_INTERFACE
   13827 } IDirectWriterLockVtbl;
   13828 interface IDirectWriterLock {
   13829     CONST_VTBL IDirectWriterLockVtbl* lpVtbl;
   13830 };
   13831 
   13832 #ifdef COBJMACROS
   13833 #ifndef WIDL_C_INLINE_WRAPPERS
   13834 /*** IUnknown methods ***/
   13835 #define IDirectWriterLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   13836 #define IDirectWriterLock_AddRef(This) (This)->lpVtbl->AddRef(This)
   13837 #define IDirectWriterLock_Release(This) (This)->lpVtbl->Release(This)
   13838 /*** IDirectWriterLock methods ***/
   13839 #define IDirectWriterLock_WaitForWriteAccess(This,dwTimeout) (This)->lpVtbl->WaitForWriteAccess(This,dwTimeout)
   13840 #define IDirectWriterLock_ReleaseWriteAccess(This) (This)->lpVtbl->ReleaseWriteAccess(This)
   13841 #define IDirectWriterLock_HaveWriteAccess(This) (This)->lpVtbl->HaveWriteAccess(This)
   13842 #else
   13843 /*** IUnknown methods ***/
   13844 static FORCEINLINE HRESULT IDirectWriterLock_QueryInterface(IDirectWriterLock* This,REFIID riid,void **ppvObject) {
   13845     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   13846 }
   13847 static FORCEINLINE ULONG IDirectWriterLock_AddRef(IDirectWriterLock* This) {
   13848     return This->lpVtbl->AddRef(This);
   13849 }
   13850 static FORCEINLINE ULONG IDirectWriterLock_Release(IDirectWriterLock* This) {
   13851     return This->lpVtbl->Release(This);
   13852 }
   13853 /*** IDirectWriterLock methods ***/
   13854 static FORCEINLINE HRESULT IDirectWriterLock_WaitForWriteAccess(IDirectWriterLock* This,DWORD dwTimeout) {
   13855     return This->lpVtbl->WaitForWriteAccess(This,dwTimeout);
   13856 }
   13857 static FORCEINLINE HRESULT IDirectWriterLock_ReleaseWriteAccess(IDirectWriterLock* This) {
   13858     return This->lpVtbl->ReleaseWriteAccess(This);
   13859 }
   13860 static FORCEINLINE HRESULT IDirectWriterLock_HaveWriteAccess(IDirectWriterLock* This) {
   13861     return This->lpVtbl->HaveWriteAccess(This);
   13862 }
   13863 #endif
   13864 #endif
   13865 
   13866 #endif
   13867 
   13868 HRESULT STDMETHODCALLTYPE IDirectWriterLock_WaitForWriteAccess_Proxy(
   13869     IDirectWriterLock* This,
   13870     DWORD dwTimeout);
   13871 void __RPC_STUB IDirectWriterLock_WaitForWriteAccess_Stub(
   13872     IRpcStubBuffer* This,
   13873     IRpcChannelBuffer* pRpcChannelBuffer,
   13874     PRPC_MESSAGE pRpcMessage,
   13875     DWORD* pdwStubPhase);
   13876 HRESULT STDMETHODCALLTYPE IDirectWriterLock_ReleaseWriteAccess_Proxy(
   13877     IDirectWriterLock* This);
   13878 void __RPC_STUB IDirectWriterLock_ReleaseWriteAccess_Stub(
   13879     IRpcStubBuffer* This,
   13880     IRpcChannelBuffer* pRpcChannelBuffer,
   13881     PRPC_MESSAGE pRpcMessage,
   13882     DWORD* pdwStubPhase);
   13883 HRESULT STDMETHODCALLTYPE IDirectWriterLock_HaveWriteAccess_Proxy(
   13884     IDirectWriterLock* This);
   13885 void __RPC_STUB IDirectWriterLock_HaveWriteAccess_Stub(
   13886     IRpcStubBuffer* This,
   13887     IRpcChannelBuffer* pRpcChannelBuffer,
   13888     PRPC_MESSAGE pRpcMessage,
   13889     DWORD* pdwStubPhase);
   13890 
   13891 #endif  /* __IDirectWriterLock_INTERFACE_DEFINED__ */
   13892 
   13893 #endif
   13894 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   13895 /*****************************************************************************
   13896  * IUrlMon interface
   13897  */
   13898 #ifndef __IUrlMon_INTERFACE_DEFINED__
   13899 #define __IUrlMon_INTERFACE_DEFINED__
   13900 
   13901 DEFINE_GUID(IID_IUrlMon, 0x00000026, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   13902 #if defined(__cplusplus) && !defined(CINTERFACE)
   13903 MIDL_INTERFACE("00000026-0000-0000-c000-000000000046")
   13904 IUrlMon : public IUnknown
   13905 {
   13906     virtual HRESULT STDMETHODCALLTYPE AsyncGetClassBits(
   13907         REFCLSID rclsid,
   13908         LPCWSTR pszTYPE,
   13909         LPCWSTR pszExt,
   13910         DWORD dwFileVersionMS,
   13911         DWORD dwFileVersionLS,
   13912         LPCWSTR pszCodeBase,
   13913         IBindCtx *pbc,
   13914         DWORD dwClassContext,
   13915         REFIID riid,
   13916         DWORD flags) = 0;
   13917 
   13918 };
   13919 #ifdef __CRT_UUID_DECL
   13920 __CRT_UUID_DECL(IUrlMon, 0x00000026, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   13921 #endif
   13922 #else
   13923 typedef struct IUrlMonVtbl {
   13924     BEGIN_INTERFACE
   13925 
   13926     /*** IUnknown methods ***/
   13927     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   13928         IUrlMon* This,
   13929         REFIID riid,
   13930         void **ppvObject);
   13931 
   13932     ULONG (STDMETHODCALLTYPE *AddRef)(
   13933         IUrlMon* This);
   13934 
   13935     ULONG (STDMETHODCALLTYPE *Release)(
   13936         IUrlMon* This);
   13937 
   13938     /*** IUrlMon methods ***/
   13939     HRESULT (STDMETHODCALLTYPE *AsyncGetClassBits)(
   13940         IUrlMon* This,
   13941         REFCLSID rclsid,
   13942         LPCWSTR pszTYPE,
   13943         LPCWSTR pszExt,
   13944         DWORD dwFileVersionMS,
   13945         DWORD dwFileVersionLS,
   13946         LPCWSTR pszCodeBase,
   13947         IBindCtx *pbc,
   13948         DWORD dwClassContext,
   13949         REFIID riid,
   13950         DWORD flags);
   13951 
   13952     END_INTERFACE
   13953 } IUrlMonVtbl;
   13954 interface IUrlMon {
   13955     CONST_VTBL IUrlMonVtbl* lpVtbl;
   13956 };
   13957 
   13958 #ifdef COBJMACROS
   13959 #ifndef WIDL_C_INLINE_WRAPPERS
   13960 /*** IUnknown methods ***/
   13961 #define IUrlMon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   13962 #define IUrlMon_AddRef(This) (This)->lpVtbl->AddRef(This)
   13963 #define IUrlMon_Release(This) (This)->lpVtbl->Release(This)
   13964 /*** IUrlMon methods ***/
   13965 #define IUrlMon_AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags) (This)->lpVtbl->AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags)
   13966 #else
   13967 /*** IUnknown methods ***/
   13968 static FORCEINLINE HRESULT IUrlMon_QueryInterface(IUrlMon* This,REFIID riid,void **ppvObject) {
   13969     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   13970 }
   13971 static FORCEINLINE ULONG IUrlMon_AddRef(IUrlMon* This) {
   13972     return This->lpVtbl->AddRef(This);
   13973 }
   13974 static FORCEINLINE ULONG IUrlMon_Release(IUrlMon* This) {
   13975     return This->lpVtbl->Release(This);
   13976 }
   13977 /*** IUrlMon methods ***/
   13978 static FORCEINLINE HRESULT IUrlMon_AsyncGetClassBits(IUrlMon* This,REFCLSID rclsid,LPCWSTR pszTYPE,LPCWSTR pszExt,DWORD dwFileVersionMS,DWORD dwFileVersionLS,LPCWSTR pszCodeBase,IBindCtx *pbc,DWORD dwClassContext,REFIID riid,DWORD flags) {
   13979     return This->lpVtbl->AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags);
   13980 }
   13981 #endif
   13982 #endif
   13983 
   13984 #endif
   13985 
   13986 HRESULT STDMETHODCALLTYPE IUrlMon_AsyncGetClassBits_Proxy(
   13987     IUrlMon* This,
   13988     REFCLSID rclsid,
   13989     LPCWSTR pszTYPE,
   13990     LPCWSTR pszExt,
   13991     DWORD dwFileVersionMS,
   13992     DWORD dwFileVersionLS,
   13993     LPCWSTR pszCodeBase,
   13994     IBindCtx *pbc,
   13995     DWORD dwClassContext,
   13996     REFIID riid,
   13997     DWORD flags);
   13998 void __RPC_STUB IUrlMon_AsyncGetClassBits_Stub(
   13999     IRpcStubBuffer* This,
   14000     IRpcChannelBuffer* pRpcChannelBuffer,
   14001     PRPC_MESSAGE pRpcMessage,
   14002     DWORD* pdwStubPhase);
   14003 
   14004 #endif  /* __IUrlMon_INTERFACE_DEFINED__ */
   14005 
   14006 /*****************************************************************************
   14007  * IForegroundTransfer interface
   14008  */
   14009 #ifndef __IForegroundTransfer_INTERFACE_DEFINED__
   14010 #define __IForegroundTransfer_INTERFACE_DEFINED__
   14011 
   14012 DEFINE_GUID(IID_IForegroundTransfer, 0x00000145, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   14013 #if defined(__cplusplus) && !defined(CINTERFACE)
   14014 MIDL_INTERFACE("00000145-0000-0000-c000-000000000046")
   14015 IForegroundTransfer : public IUnknown
   14016 {
   14017     virtual HRESULT STDMETHODCALLTYPE AllowForegroundTransfer(
   14018         void *lpvReserved) = 0;
   14019 
   14020 };
   14021 #ifdef __CRT_UUID_DECL
   14022 __CRT_UUID_DECL(IForegroundTransfer, 0x00000145, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   14023 #endif
   14024 #else
   14025 typedef struct IForegroundTransferVtbl {
   14026     BEGIN_INTERFACE
   14027 
   14028     /*** IUnknown methods ***/
   14029     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   14030         IForegroundTransfer* This,
   14031         REFIID riid,
   14032         void **ppvObject);
   14033 
   14034     ULONG (STDMETHODCALLTYPE *AddRef)(
   14035         IForegroundTransfer* This);
   14036 
   14037     ULONG (STDMETHODCALLTYPE *Release)(
   14038         IForegroundTransfer* This);
   14039 
   14040     /*** IForegroundTransfer methods ***/
   14041     HRESULT (STDMETHODCALLTYPE *AllowForegroundTransfer)(
   14042         IForegroundTransfer* This,
   14043         void *lpvReserved);
   14044 
   14045     END_INTERFACE
   14046 } IForegroundTransferVtbl;
   14047 interface IForegroundTransfer {
   14048     CONST_VTBL IForegroundTransferVtbl* lpVtbl;
   14049 };
   14050 
   14051 #ifdef COBJMACROS
   14052 #ifndef WIDL_C_INLINE_WRAPPERS
   14053 /*** IUnknown methods ***/
   14054 #define IForegroundTransfer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   14055 #define IForegroundTransfer_AddRef(This) (This)->lpVtbl->AddRef(This)
   14056 #define IForegroundTransfer_Release(This) (This)->lpVtbl->Release(This)
   14057 /*** IForegroundTransfer methods ***/
   14058 #define IForegroundTransfer_AllowForegroundTransfer(This,lpvReserved) (This)->lpVtbl->AllowForegroundTransfer(This,lpvReserved)
   14059 #else
   14060 /*** IUnknown methods ***/
   14061 static FORCEINLINE HRESULT IForegroundTransfer_QueryInterface(IForegroundTransfer* This,REFIID riid,void **ppvObject) {
   14062     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   14063 }
   14064 static FORCEINLINE ULONG IForegroundTransfer_AddRef(IForegroundTransfer* This) {
   14065     return This->lpVtbl->AddRef(This);
   14066 }
   14067 static FORCEINLINE ULONG IForegroundTransfer_Release(IForegroundTransfer* This) {
   14068     return This->lpVtbl->Release(This);
   14069 }
   14070 /*** IForegroundTransfer methods ***/
   14071 static FORCEINLINE HRESULT IForegroundTransfer_AllowForegroundTransfer(IForegroundTransfer* This,void *lpvReserved) {
   14072     return This->lpVtbl->AllowForegroundTransfer(This,lpvReserved);
   14073 }
   14074 #endif
   14075 #endif
   14076 
   14077 #endif
   14078 
   14079 HRESULT STDMETHODCALLTYPE IForegroundTransfer_AllowForegroundTransfer_Proxy(
   14080     IForegroundTransfer* This,
   14081     void *lpvReserved);
   14082 void __RPC_STUB IForegroundTransfer_AllowForegroundTransfer_Stub(
   14083     IRpcStubBuffer* This,
   14084     IRpcChannelBuffer* pRpcChannelBuffer,
   14085     PRPC_MESSAGE pRpcMessage,
   14086     DWORD* pdwStubPhase);
   14087 
   14088 #endif  /* __IForegroundTransfer_INTERFACE_DEFINED__ */
   14089 
   14090 /*****************************************************************************
   14091  * IThumbnailExtractor interface
   14092  */
   14093 #ifndef __IThumbnailExtractor_INTERFACE_DEFINED__
   14094 #define __IThumbnailExtractor_INTERFACE_DEFINED__
   14095 
   14096 DEFINE_GUID(IID_IThumbnailExtractor, 0x969dc708, 0x5c76, 0x11d1, 0x8d,0x86, 0x00,0x00,0xf8,0x04,0xb0,0x57);
   14097 #if defined(__cplusplus) && !defined(CINTERFACE)
   14098 MIDL_INTERFACE("969dc708-5c76-11d1-8d86-0000f804b057")
   14099 IThumbnailExtractor : public IUnknown
   14100 {
   14101     virtual HRESULT STDMETHODCALLTYPE ExtractThumbnail(
   14102         IStorage *pStg,
   14103         ULONG ulLength,
   14104         ULONG ulHeight,
   14105         ULONG *pulOutputLength,
   14106         ULONG *pulOutputHeight,
   14107         HBITMAP *phOutputBitmap) = 0;
   14108 
   14109     virtual HRESULT STDMETHODCALLTYPE OnFileUpdated(
   14110         IStorage *pStg) = 0;
   14111 
   14112 };
   14113 #ifdef __CRT_UUID_DECL
   14114 __CRT_UUID_DECL(IThumbnailExtractor, 0x969dc708, 0x5c76, 0x11d1, 0x8d,0x86, 0x00,0x00,0xf8,0x04,0xb0,0x57)
   14115 #endif
   14116 #else
   14117 typedef struct IThumbnailExtractorVtbl {
   14118     BEGIN_INTERFACE
   14119 
   14120     /*** IUnknown methods ***/
   14121     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   14122         IThumbnailExtractor* This,
   14123         REFIID riid,
   14124         void **ppvObject);
   14125 
   14126     ULONG (STDMETHODCALLTYPE *AddRef)(
   14127         IThumbnailExtractor* This);
   14128 
   14129     ULONG (STDMETHODCALLTYPE *Release)(
   14130         IThumbnailExtractor* This);
   14131 
   14132     /*** IThumbnailExtractor methods ***/
   14133     HRESULT (STDMETHODCALLTYPE *ExtractThumbnail)(
   14134         IThumbnailExtractor* This,
   14135         IStorage *pStg,
   14136         ULONG ulLength,
   14137         ULONG ulHeight,
   14138         ULONG *pulOutputLength,
   14139         ULONG *pulOutputHeight,
   14140         HBITMAP *phOutputBitmap);
   14141 
   14142     HRESULT (STDMETHODCALLTYPE *OnFileUpdated)(
   14143         IThumbnailExtractor* This,
   14144         IStorage *pStg);
   14145 
   14146     END_INTERFACE
   14147 } IThumbnailExtractorVtbl;
   14148 interface IThumbnailExtractor {
   14149     CONST_VTBL IThumbnailExtractorVtbl* lpVtbl;
   14150 };
   14151 
   14152 #ifdef COBJMACROS
   14153 #ifndef WIDL_C_INLINE_WRAPPERS
   14154 /*** IUnknown methods ***/
   14155 #define IThumbnailExtractor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   14156 #define IThumbnailExtractor_AddRef(This) (This)->lpVtbl->AddRef(This)
   14157 #define IThumbnailExtractor_Release(This) (This)->lpVtbl->Release(This)
   14158 /*** IThumbnailExtractor methods ***/
   14159 #define IThumbnailExtractor_ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap) (This)->lpVtbl->ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap)
   14160 #define IThumbnailExtractor_OnFileUpdated(This,pStg) (This)->lpVtbl->OnFileUpdated(This,pStg)
   14161 #else
   14162 /*** IUnknown methods ***/
   14163 static FORCEINLINE HRESULT IThumbnailExtractor_QueryInterface(IThumbnailExtractor* This,REFIID riid,void **ppvObject) {
   14164     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   14165 }
   14166 static FORCEINLINE ULONG IThumbnailExtractor_AddRef(IThumbnailExtractor* This) {
   14167     return This->lpVtbl->AddRef(This);
   14168 }
   14169 static FORCEINLINE ULONG IThumbnailExtractor_Release(IThumbnailExtractor* This) {
   14170     return This->lpVtbl->Release(This);
   14171 }
   14172 /*** IThumbnailExtractor methods ***/
   14173 static FORCEINLINE HRESULT IThumbnailExtractor_ExtractThumbnail(IThumbnailExtractor* This,IStorage *pStg,ULONG ulLength,ULONG ulHeight,ULONG *pulOutputLength,ULONG *pulOutputHeight,HBITMAP *phOutputBitmap) {
   14174     return This->lpVtbl->ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap);
   14175 }
   14176 static FORCEINLINE HRESULT IThumbnailExtractor_OnFileUpdated(IThumbnailExtractor* This,IStorage *pStg) {
   14177     return This->lpVtbl->OnFileUpdated(This,pStg);
   14178 }
   14179 #endif
   14180 #endif
   14181 
   14182 #endif
   14183 
   14184 HRESULT STDMETHODCALLTYPE IThumbnailExtractor_ExtractThumbnail_Proxy(
   14185     IThumbnailExtractor* This,
   14186     IStorage *pStg,
   14187     ULONG ulLength,
   14188     ULONG ulHeight,
   14189     ULONG *pulOutputLength,
   14190     ULONG *pulOutputHeight,
   14191     HBITMAP *phOutputBitmap);
   14192 void __RPC_STUB IThumbnailExtractor_ExtractThumbnail_Stub(
   14193     IRpcStubBuffer* This,
   14194     IRpcChannelBuffer* pRpcChannelBuffer,
   14195     PRPC_MESSAGE pRpcMessage,
   14196     DWORD* pdwStubPhase);
   14197 HRESULT STDMETHODCALLTYPE IThumbnailExtractor_OnFileUpdated_Proxy(
   14198     IThumbnailExtractor* This,
   14199     IStorage *pStg);
   14200 void __RPC_STUB IThumbnailExtractor_OnFileUpdated_Stub(
   14201     IRpcStubBuffer* This,
   14202     IRpcChannelBuffer* pRpcChannelBuffer,
   14203     PRPC_MESSAGE pRpcMessage,
   14204     DWORD* pdwStubPhase);
   14205 
   14206 #endif  /* __IThumbnailExtractor_INTERFACE_DEFINED__ */
   14207 
   14208 /*****************************************************************************
   14209  * IDummyHICONIncluder interface
   14210  */
   14211 #ifndef __IDummyHICONIncluder_INTERFACE_DEFINED__
   14212 #define __IDummyHICONIncluder_INTERFACE_DEFINED__
   14213 
   14214 DEFINE_GUID(IID_IDummyHICONIncluder, 0x947990de, 0xcc28, 0x11d2, 0xa0,0xf7, 0x00,0x80,0x5f,0x85,0x8f,0xb1);
   14215 #if defined(__cplusplus) && !defined(CINTERFACE)
   14216 MIDL_INTERFACE("947990de-cc28-11d2-a0f7-00805f858fb1")
   14217 IDummyHICONIncluder : public IUnknown
   14218 {
   14219     virtual HRESULT STDMETHODCALLTYPE Dummy(
   14220         HICON h1,
   14221         HDC h2) = 0;
   14222 
   14223 };
   14224 #ifdef __CRT_UUID_DECL
   14225 __CRT_UUID_DECL(IDummyHICONIncluder, 0x947990de, 0xcc28, 0x11d2, 0xa0,0xf7, 0x00,0x80,0x5f,0x85,0x8f,0xb1)
   14226 #endif
   14227 #else
   14228 typedef struct IDummyHICONIncluderVtbl {
   14229     BEGIN_INTERFACE
   14230 
   14231     /*** IUnknown methods ***/
   14232     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   14233         IDummyHICONIncluder* This,
   14234         REFIID riid,
   14235         void **ppvObject);
   14236 
   14237     ULONG (STDMETHODCALLTYPE *AddRef)(
   14238         IDummyHICONIncluder* This);
   14239 
   14240     ULONG (STDMETHODCALLTYPE *Release)(
   14241         IDummyHICONIncluder* This);
   14242 
   14243     /*** IDummyHICONIncluder methods ***/
   14244     HRESULT (STDMETHODCALLTYPE *Dummy)(
   14245         IDummyHICONIncluder* This,
   14246         HICON h1,
   14247         HDC h2);
   14248 
   14249     END_INTERFACE
   14250 } IDummyHICONIncluderVtbl;
   14251 interface IDummyHICONIncluder {
   14252     CONST_VTBL IDummyHICONIncluderVtbl* lpVtbl;
   14253 };
   14254 
   14255 #ifdef COBJMACROS
   14256 #ifndef WIDL_C_INLINE_WRAPPERS
   14257 /*** IUnknown methods ***/
   14258 #define IDummyHICONIncluder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   14259 #define IDummyHICONIncluder_AddRef(This) (This)->lpVtbl->AddRef(This)
   14260 #define IDummyHICONIncluder_Release(This) (This)->lpVtbl->Release(This)
   14261 /*** IDummyHICONIncluder methods ***/
   14262 #define IDummyHICONIncluder_Dummy(This,h1,h2) (This)->lpVtbl->Dummy(This,h1,h2)
   14263 #else
   14264 /*** IUnknown methods ***/
   14265 static FORCEINLINE HRESULT IDummyHICONIncluder_QueryInterface(IDummyHICONIncluder* This,REFIID riid,void **ppvObject) {
   14266     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   14267 }
   14268 static FORCEINLINE ULONG IDummyHICONIncluder_AddRef(IDummyHICONIncluder* This) {
   14269     return This->lpVtbl->AddRef(This);
   14270 }
   14271 static FORCEINLINE ULONG IDummyHICONIncluder_Release(IDummyHICONIncluder* This) {
   14272     return This->lpVtbl->Release(This);
   14273 }
   14274 /*** IDummyHICONIncluder methods ***/
   14275 static FORCEINLINE HRESULT IDummyHICONIncluder_Dummy(IDummyHICONIncluder* This,HICON h1,HDC h2) {
   14276     return This->lpVtbl->Dummy(This,h1,h2);
   14277 }
   14278 #endif
   14279 #endif
   14280 
   14281 #endif
   14282 
   14283 HRESULT STDMETHODCALLTYPE IDummyHICONIncluder_Dummy_Proxy(
   14284     IDummyHICONIncluder* This,
   14285     HICON h1,
   14286     HDC h2);
   14287 void __RPC_STUB IDummyHICONIncluder_Dummy_Stub(
   14288     IRpcStubBuffer* This,
   14289     IRpcChannelBuffer* pRpcChannelBuffer,
   14290     PRPC_MESSAGE pRpcMessage,
   14291     DWORD* pdwStubPhase);
   14292 
   14293 #endif  /* __IDummyHICONIncluder_INTERFACE_DEFINED__ */
   14294 
   14295 typedef enum tagApplicationType {
   14296     ServerApplication = 0,
   14297     LibraryApplication = 1
   14298 } ApplicationType;
   14299 typedef enum tagShutdownType {
   14300     IdleShutdown = 0,
   14301     ForcedShutdown = 1
   14302 } ShutdownType;
   14303 /*****************************************************************************
   14304  * IProcessLock interface
   14305  */
   14306 #ifndef __IProcessLock_INTERFACE_DEFINED__
   14307 #define __IProcessLock_INTERFACE_DEFINED__
   14308 
   14309 DEFINE_GUID(IID_IProcessLock, 0x000001d5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   14310 #if defined(__cplusplus) && !defined(CINTERFACE)
   14311 MIDL_INTERFACE("000001d5-0000-0000-c000-000000000046")
   14312 IProcessLock : public IUnknown
   14313 {
   14314     virtual ULONG STDMETHODCALLTYPE AddRefOnProcess(
   14315         ) = 0;
   14316 
   14317     virtual ULONG STDMETHODCALLTYPE ReleaseRefOnProcess(
   14318         ) = 0;
   14319 
   14320 };
   14321 #ifdef __CRT_UUID_DECL
   14322 __CRT_UUID_DECL(IProcessLock, 0x000001d5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   14323 #endif
   14324 #else
   14325 typedef struct IProcessLockVtbl {
   14326     BEGIN_INTERFACE
   14327 
   14328     /*** IUnknown methods ***/
   14329     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   14330         IProcessLock* This,
   14331         REFIID riid,
   14332         void **ppvObject);
   14333 
   14334     ULONG (STDMETHODCALLTYPE *AddRef)(
   14335         IProcessLock* This);
   14336 
   14337     ULONG (STDMETHODCALLTYPE *Release)(
   14338         IProcessLock* This);
   14339 
   14340     /*** IProcessLock methods ***/
   14341     ULONG (STDMETHODCALLTYPE *AddRefOnProcess)(
   14342         IProcessLock* This);
   14343 
   14344     ULONG (STDMETHODCALLTYPE *ReleaseRefOnProcess)(
   14345         IProcessLock* This);
   14346 
   14347     END_INTERFACE
   14348 } IProcessLockVtbl;
   14349 interface IProcessLock {
   14350     CONST_VTBL IProcessLockVtbl* lpVtbl;
   14351 };
   14352 
   14353 #ifdef COBJMACROS
   14354 #ifndef WIDL_C_INLINE_WRAPPERS
   14355 /*** IUnknown methods ***/
   14356 #define IProcessLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   14357 #define IProcessLock_AddRef(This) (This)->lpVtbl->AddRef(This)
   14358 #define IProcessLock_Release(This) (This)->lpVtbl->Release(This)
   14359 /*** IProcessLock methods ***/
   14360 #define IProcessLock_AddRefOnProcess(This) (This)->lpVtbl->AddRefOnProcess(This)
   14361 #define IProcessLock_ReleaseRefOnProcess(This) (This)->lpVtbl->ReleaseRefOnProcess(This)
   14362 #else
   14363 /*** IUnknown methods ***/
   14364 static FORCEINLINE HRESULT IProcessLock_QueryInterface(IProcessLock* This,REFIID riid,void **ppvObject) {
   14365     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   14366 }
   14367 static FORCEINLINE ULONG IProcessLock_AddRef(IProcessLock* This) {
   14368     return This->lpVtbl->AddRef(This);
   14369 }
   14370 static FORCEINLINE ULONG IProcessLock_Release(IProcessLock* This) {
   14371     return This->lpVtbl->Release(This);
   14372 }
   14373 /*** IProcessLock methods ***/
   14374 static FORCEINLINE ULONG IProcessLock_AddRefOnProcess(IProcessLock* This) {
   14375     return This->lpVtbl->AddRefOnProcess(This);
   14376 }
   14377 static FORCEINLINE ULONG IProcessLock_ReleaseRefOnProcess(IProcessLock* This) {
   14378     return This->lpVtbl->ReleaseRefOnProcess(This);
   14379 }
   14380 #endif
   14381 #endif
   14382 
   14383 #endif
   14384 
   14385 ULONG STDMETHODCALLTYPE IProcessLock_AddRefOnProcess_Proxy(
   14386     IProcessLock* This);
   14387 void __RPC_STUB IProcessLock_AddRefOnProcess_Stub(
   14388     IRpcStubBuffer* This,
   14389     IRpcChannelBuffer* pRpcChannelBuffer,
   14390     PRPC_MESSAGE pRpcMessage,
   14391     DWORD* pdwStubPhase);
   14392 ULONG STDMETHODCALLTYPE IProcessLock_ReleaseRefOnProcess_Proxy(
   14393     IProcessLock* This);
   14394 void __RPC_STUB IProcessLock_ReleaseRefOnProcess_Stub(
   14395     IRpcStubBuffer* This,
   14396     IRpcChannelBuffer* pRpcChannelBuffer,
   14397     PRPC_MESSAGE pRpcMessage,
   14398     DWORD* pdwStubPhase);
   14399 
   14400 #endif  /* __IProcessLock_INTERFACE_DEFINED__ */
   14401 
   14402 /*****************************************************************************
   14403  * ISurrogateService interface
   14404  */
   14405 #ifndef __ISurrogateService_INTERFACE_DEFINED__
   14406 #define __ISurrogateService_INTERFACE_DEFINED__
   14407 
   14408 DEFINE_GUID(IID_ISurrogateService, 0x000001d4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   14409 #if defined(__cplusplus) && !defined(CINTERFACE)
   14410 MIDL_INTERFACE("000001d4-0000-0000-c000-000000000046")
   14411 ISurrogateService : public IUnknown
   14412 {
   14413     virtual HRESULT STDMETHODCALLTYPE Init(
   14414         REFGUID rguidProcessID,
   14415         IProcessLock *pProcessLock,
   14416         WINBOOL *pfApplicationAware) = 0;
   14417 
   14418     virtual HRESULT STDMETHODCALLTYPE ApplicationLaunch(
   14419         REFGUID rguidApplID,
   14420         ApplicationType appType) = 0;
   14421 
   14422     virtual HRESULT STDMETHODCALLTYPE ApplicationFree(
   14423         REFGUID rguidApplID) = 0;
   14424 
   14425     virtual HRESULT STDMETHODCALLTYPE CatalogRefresh(
   14426         ULONG ulReserved) = 0;
   14427 
   14428     virtual HRESULT STDMETHODCALLTYPE ProcessShutdown(
   14429         ShutdownType shutdownType) = 0;
   14430 
   14431 };
   14432 #ifdef __CRT_UUID_DECL
   14433 __CRT_UUID_DECL(ISurrogateService, 0x000001d4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   14434 #endif
   14435 #else
   14436 typedef struct ISurrogateServiceVtbl {
   14437     BEGIN_INTERFACE
   14438 
   14439     /*** IUnknown methods ***/
   14440     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   14441         ISurrogateService* This,
   14442         REFIID riid,
   14443         void **ppvObject);
   14444 
   14445     ULONG (STDMETHODCALLTYPE *AddRef)(
   14446         ISurrogateService* This);
   14447 
   14448     ULONG (STDMETHODCALLTYPE *Release)(
   14449         ISurrogateService* This);
   14450 
   14451     /*** ISurrogateService methods ***/
   14452     HRESULT (STDMETHODCALLTYPE *Init)(
   14453         ISurrogateService* This,
   14454         REFGUID rguidProcessID,
   14455         IProcessLock *pProcessLock,
   14456         WINBOOL *pfApplicationAware);
   14457 
   14458     HRESULT (STDMETHODCALLTYPE *ApplicationLaunch)(
   14459         ISurrogateService* This,
   14460         REFGUID rguidApplID,
   14461         ApplicationType appType);
   14462 
   14463     HRESULT (STDMETHODCALLTYPE *ApplicationFree)(
   14464         ISurrogateService* This,
   14465         REFGUID rguidApplID);
   14466 
   14467     HRESULT (STDMETHODCALLTYPE *CatalogRefresh)(
   14468         ISurrogateService* This,
   14469         ULONG ulReserved);
   14470 
   14471     HRESULT (STDMETHODCALLTYPE *ProcessShutdown)(
   14472         ISurrogateService* This,
   14473         ShutdownType shutdownType);
   14474 
   14475     END_INTERFACE
   14476 } ISurrogateServiceVtbl;
   14477 interface ISurrogateService {
   14478     CONST_VTBL ISurrogateServiceVtbl* lpVtbl;
   14479 };
   14480 
   14481 #ifdef COBJMACROS
   14482 #ifndef WIDL_C_INLINE_WRAPPERS
   14483 /*** IUnknown methods ***/
   14484 #define ISurrogateService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   14485 #define ISurrogateService_AddRef(This) (This)->lpVtbl->AddRef(This)
   14486 #define ISurrogateService_Release(This) (This)->lpVtbl->Release(This)
   14487 /*** ISurrogateService methods ***/
   14488 #define ISurrogateService_Init(This,rguidProcessID,pProcessLock,pfApplicationAware) (This)->lpVtbl->Init(This,rguidProcessID,pProcessLock,pfApplicationAware)
   14489 #define ISurrogateService_ApplicationLaunch(This,rguidApplID,appType) (This)->lpVtbl->ApplicationLaunch(This,rguidApplID,appType)
   14490 #define ISurrogateService_ApplicationFree(This,rguidApplID) (This)->lpVtbl->ApplicationFree(This,rguidApplID)
   14491 #define ISurrogateService_CatalogRefresh(This,ulReserved) (This)->lpVtbl->CatalogRefresh(This,ulReserved)
   14492 #define ISurrogateService_ProcessShutdown(This,shutdownType) (This)->lpVtbl->ProcessShutdown(This,shutdownType)
   14493 #else
   14494 /*** IUnknown methods ***/
   14495 static FORCEINLINE HRESULT ISurrogateService_QueryInterface(ISurrogateService* This,REFIID riid,void **ppvObject) {
   14496     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   14497 }
   14498 static FORCEINLINE ULONG ISurrogateService_AddRef(ISurrogateService* This) {
   14499     return This->lpVtbl->AddRef(This);
   14500 }
   14501 static FORCEINLINE ULONG ISurrogateService_Release(ISurrogateService* This) {
   14502     return This->lpVtbl->Release(This);
   14503 }
   14504 /*** ISurrogateService methods ***/
   14505 static FORCEINLINE HRESULT ISurrogateService_Init(ISurrogateService* This,REFGUID rguidProcessID,IProcessLock *pProcessLock,WINBOOL *pfApplicationAware) {
   14506     return This->lpVtbl->Init(This,rguidProcessID,pProcessLock,pfApplicationAware);
   14507 }
   14508 static FORCEINLINE HRESULT ISurrogateService_ApplicationLaunch(ISurrogateService* This,REFGUID rguidApplID,ApplicationType appType) {
   14509     return This->lpVtbl->ApplicationLaunch(This,rguidApplID,appType);
   14510 }
   14511 static FORCEINLINE HRESULT ISurrogateService_ApplicationFree(ISurrogateService* This,REFGUID rguidApplID) {
   14512     return This->lpVtbl->ApplicationFree(This,rguidApplID);
   14513 }
   14514 static FORCEINLINE HRESULT ISurrogateService_CatalogRefresh(ISurrogateService* This,ULONG ulReserved) {
   14515     return This->lpVtbl->CatalogRefresh(This,ulReserved);
   14516 }
   14517 static FORCEINLINE HRESULT ISurrogateService_ProcessShutdown(ISurrogateService* This,ShutdownType shutdownType) {
   14518     return This->lpVtbl->ProcessShutdown(This,shutdownType);
   14519 }
   14520 #endif
   14521 #endif
   14522 
   14523 #endif
   14524 
   14525 HRESULT STDMETHODCALLTYPE ISurrogateService_Init_Proxy(
   14526     ISurrogateService* This,
   14527     REFGUID rguidProcessID,
   14528     IProcessLock *pProcessLock,
   14529     WINBOOL *pfApplicationAware);
   14530 void __RPC_STUB ISurrogateService_Init_Stub(
   14531     IRpcStubBuffer* This,
   14532     IRpcChannelBuffer* pRpcChannelBuffer,
   14533     PRPC_MESSAGE pRpcMessage,
   14534     DWORD* pdwStubPhase);
   14535 HRESULT STDMETHODCALLTYPE ISurrogateService_ApplicationLaunch_Proxy(
   14536     ISurrogateService* This,
   14537     REFGUID rguidApplID,
   14538     ApplicationType appType);
   14539 void __RPC_STUB ISurrogateService_ApplicationLaunch_Stub(
   14540     IRpcStubBuffer* This,
   14541     IRpcChannelBuffer* pRpcChannelBuffer,
   14542     PRPC_MESSAGE pRpcMessage,
   14543     DWORD* pdwStubPhase);
   14544 HRESULT STDMETHODCALLTYPE ISurrogateService_ApplicationFree_Proxy(
   14545     ISurrogateService* This,
   14546     REFGUID rguidApplID);
   14547 void __RPC_STUB ISurrogateService_ApplicationFree_Stub(
   14548     IRpcStubBuffer* This,
   14549     IRpcChannelBuffer* pRpcChannelBuffer,
   14550     PRPC_MESSAGE pRpcMessage,
   14551     DWORD* pdwStubPhase);
   14552 HRESULT STDMETHODCALLTYPE ISurrogateService_CatalogRefresh_Proxy(
   14553     ISurrogateService* This,
   14554     ULONG ulReserved);
   14555 void __RPC_STUB ISurrogateService_CatalogRefresh_Stub(
   14556     IRpcStubBuffer* This,
   14557     IRpcChannelBuffer* pRpcChannelBuffer,
   14558     PRPC_MESSAGE pRpcMessage,
   14559     DWORD* pdwStubPhase);
   14560 HRESULT STDMETHODCALLTYPE ISurrogateService_ProcessShutdown_Proxy(
   14561     ISurrogateService* This,
   14562     ShutdownType shutdownType);
   14563 void __RPC_STUB ISurrogateService_ProcessShutdown_Stub(
   14564     IRpcStubBuffer* This,
   14565     IRpcChannelBuffer* pRpcChannelBuffer,
   14566     PRPC_MESSAGE pRpcMessage,
   14567     DWORD* pdwStubPhase);
   14568 
   14569 #endif  /* __ISurrogateService_INTERFACE_DEFINED__ */
   14570 
   14571 /*****************************************************************************
   14572  * IInitializeSpy interface
   14573  */
   14574 #ifndef __IInitializeSpy_INTERFACE_DEFINED__
   14575 #define __IInitializeSpy_INTERFACE_DEFINED__
   14576 
   14577 typedef IInitializeSpy *LPINITIALIZESPY;
   14578 DEFINE_GUID(IID_IInitializeSpy, 0x00000034, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   14579 #if defined(__cplusplus) && !defined(CINTERFACE)
   14580 MIDL_INTERFACE("00000034-0000-0000-c000-000000000046")
   14581 IInitializeSpy : public IUnknown
   14582 {
   14583     virtual HRESULT STDMETHODCALLTYPE PreInitialize(
   14584         DWORD dwCoInit,
   14585         DWORD dwCurThreadAptRefs) = 0;
   14586 
   14587     virtual HRESULT STDMETHODCALLTYPE PostInitialize(
   14588         HRESULT hrCoInit,
   14589         DWORD dwCoInit,
   14590         DWORD dwNewThreadAptRefs) = 0;
   14591 
   14592     virtual HRESULT STDMETHODCALLTYPE PreUninitialize(
   14593         DWORD dwCurThreadAptRefs) = 0;
   14594 
   14595     virtual HRESULT STDMETHODCALLTYPE PostUninitialize(
   14596         DWORD dwNewThreadAptRefs) = 0;
   14597 
   14598 };
   14599 #ifdef __CRT_UUID_DECL
   14600 __CRT_UUID_DECL(IInitializeSpy, 0x00000034, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   14601 #endif
   14602 #else
   14603 typedef struct IInitializeSpyVtbl {
   14604     BEGIN_INTERFACE
   14605 
   14606     /*** IUnknown methods ***/
   14607     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   14608         IInitializeSpy* This,
   14609         REFIID riid,
   14610         void **ppvObject);
   14611 
   14612     ULONG (STDMETHODCALLTYPE *AddRef)(
   14613         IInitializeSpy* This);
   14614 
   14615     ULONG (STDMETHODCALLTYPE *Release)(
   14616         IInitializeSpy* This);
   14617 
   14618     /*** IInitializeSpy methods ***/
   14619     HRESULT (STDMETHODCALLTYPE *PreInitialize)(
   14620         IInitializeSpy* This,
   14621         DWORD dwCoInit,
   14622         DWORD dwCurThreadAptRefs);
   14623 
   14624     HRESULT (STDMETHODCALLTYPE *PostInitialize)(
   14625         IInitializeSpy* This,
   14626         HRESULT hrCoInit,
   14627         DWORD dwCoInit,
   14628         DWORD dwNewThreadAptRefs);
   14629 
   14630     HRESULT (STDMETHODCALLTYPE *PreUninitialize)(
   14631         IInitializeSpy* This,
   14632         DWORD dwCurThreadAptRefs);
   14633 
   14634     HRESULT (STDMETHODCALLTYPE *PostUninitialize)(
   14635         IInitializeSpy* This,
   14636         DWORD dwNewThreadAptRefs);
   14637 
   14638     END_INTERFACE
   14639 } IInitializeSpyVtbl;
   14640 interface IInitializeSpy {
   14641     CONST_VTBL IInitializeSpyVtbl* lpVtbl;
   14642 };
   14643 
   14644 #ifdef COBJMACROS
   14645 #ifndef WIDL_C_INLINE_WRAPPERS
   14646 /*** IUnknown methods ***/
   14647 #define IInitializeSpy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   14648 #define IInitializeSpy_AddRef(This) (This)->lpVtbl->AddRef(This)
   14649 #define IInitializeSpy_Release(This) (This)->lpVtbl->Release(This)
   14650 /*** IInitializeSpy methods ***/
   14651 #define IInitializeSpy_PreInitialize(This,dwCoInit,dwCurThreadAptRefs) (This)->lpVtbl->PreInitialize(This,dwCoInit,dwCurThreadAptRefs)
   14652 #define IInitializeSpy_PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs) (This)->lpVtbl->PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs)
   14653 #define IInitializeSpy_PreUninitialize(This,dwCurThreadAptRefs) (This)->lpVtbl->PreUninitialize(This,dwCurThreadAptRefs)
   14654 #define IInitializeSpy_PostUninitialize(This,dwNewThreadAptRefs) (This)->lpVtbl->PostUninitialize(This,dwNewThreadAptRefs)
   14655 #else
   14656 /*** IUnknown methods ***/
   14657 static FORCEINLINE HRESULT IInitializeSpy_QueryInterface(IInitializeSpy* This,REFIID riid,void **ppvObject) {
   14658     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   14659 }
   14660 static FORCEINLINE ULONG IInitializeSpy_AddRef(IInitializeSpy* This) {
   14661     return This->lpVtbl->AddRef(This);
   14662 }
   14663 static FORCEINLINE ULONG IInitializeSpy_Release(IInitializeSpy* This) {
   14664     return This->lpVtbl->Release(This);
   14665 }
   14666 /*** IInitializeSpy methods ***/
   14667 static FORCEINLINE HRESULT IInitializeSpy_PreInitialize(IInitializeSpy* This,DWORD dwCoInit,DWORD dwCurThreadAptRefs) {
   14668     return This->lpVtbl->PreInitialize(This,dwCoInit,dwCurThreadAptRefs);
   14669 }
   14670 static FORCEINLINE HRESULT IInitializeSpy_PostInitialize(IInitializeSpy* This,HRESULT hrCoInit,DWORD dwCoInit,DWORD dwNewThreadAptRefs) {
   14671     return This->lpVtbl->PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs);
   14672 }
   14673 static FORCEINLINE HRESULT IInitializeSpy_PreUninitialize(IInitializeSpy* This,DWORD dwCurThreadAptRefs) {
   14674     return This->lpVtbl->PreUninitialize(This,dwCurThreadAptRefs);
   14675 }
   14676 static FORCEINLINE HRESULT IInitializeSpy_PostUninitialize(IInitializeSpy* This,DWORD dwNewThreadAptRefs) {
   14677     return This->lpVtbl->PostUninitialize(This,dwNewThreadAptRefs);
   14678 }
   14679 #endif
   14680 #endif
   14681 
   14682 #endif
   14683 
   14684 HRESULT STDMETHODCALLTYPE IInitializeSpy_PreInitialize_Proxy(
   14685     IInitializeSpy* This,
   14686     DWORD dwCoInit,
   14687     DWORD dwCurThreadAptRefs);
   14688 void __RPC_STUB IInitializeSpy_PreInitialize_Stub(
   14689     IRpcStubBuffer* This,
   14690     IRpcChannelBuffer* pRpcChannelBuffer,
   14691     PRPC_MESSAGE pRpcMessage,
   14692     DWORD* pdwStubPhase);
   14693 HRESULT STDMETHODCALLTYPE IInitializeSpy_PostInitialize_Proxy(
   14694     IInitializeSpy* This,
   14695     HRESULT hrCoInit,
   14696     DWORD dwCoInit,
   14697     DWORD dwNewThreadAptRefs);
   14698 void __RPC_STUB IInitializeSpy_PostInitialize_Stub(
   14699     IRpcStubBuffer* This,
   14700     IRpcChannelBuffer* pRpcChannelBuffer,
   14701     PRPC_MESSAGE pRpcMessage,
   14702     DWORD* pdwStubPhase);
   14703 HRESULT STDMETHODCALLTYPE IInitializeSpy_PreUninitialize_Proxy(
   14704     IInitializeSpy* This,
   14705     DWORD dwCurThreadAptRefs);
   14706 void __RPC_STUB IInitializeSpy_PreUninitialize_Stub(
   14707     IRpcStubBuffer* This,
   14708     IRpcChannelBuffer* pRpcChannelBuffer,
   14709     PRPC_MESSAGE pRpcMessage,
   14710     DWORD* pdwStubPhase);
   14711 HRESULT STDMETHODCALLTYPE IInitializeSpy_PostUninitialize_Proxy(
   14712     IInitializeSpy* This,
   14713     DWORD dwNewThreadAptRefs);
   14714 void __RPC_STUB IInitializeSpy_PostUninitialize_Stub(
   14715     IRpcStubBuffer* This,
   14716     IRpcChannelBuffer* pRpcChannelBuffer,
   14717     PRPC_MESSAGE pRpcMessage,
   14718     DWORD* pdwStubPhase);
   14719 
   14720 #endif  /* __IInitializeSpy_INTERFACE_DEFINED__ */
   14721 
   14722 #endif
   14723 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   14724 /*****************************************************************************
   14725  * IApartmentShutdown interface
   14726  */
   14727 #ifndef __IApartmentShutdown_INTERFACE_DEFINED__
   14728 #define __IApartmentShutdown_INTERFACE_DEFINED__
   14729 
   14730 DEFINE_GUID(IID_IApartmentShutdown, 0xa2f05a09, 0x27a2, 0x42b5, 0xbc,0x0e, 0xac,0x16,0x3e,0xf4,0x9d,0x9b);
   14731 #if defined(__cplusplus) && !defined(CINTERFACE)
   14732 MIDL_INTERFACE("a2f05a09-27a2-42b5-bc0e-ac163ef49d9b")
   14733 IApartmentShutdown : public IUnknown
   14734 {
   14735     virtual void STDMETHODCALLTYPE OnUninitialize(
   14736         UINT64 ui64ApartmentIdentifier) = 0;
   14737 
   14738 };
   14739 #ifdef __CRT_UUID_DECL
   14740 __CRT_UUID_DECL(IApartmentShutdown, 0xa2f05a09, 0x27a2, 0x42b5, 0xbc,0x0e, 0xac,0x16,0x3e,0xf4,0x9d,0x9b)
   14741 #endif
   14742 #else
   14743 typedef struct IApartmentShutdownVtbl {
   14744     BEGIN_INTERFACE
   14745 
   14746     /*** IUnknown methods ***/
   14747     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   14748         IApartmentShutdown* This,
   14749         REFIID riid,
   14750         void **ppvObject);
   14751 
   14752     ULONG (STDMETHODCALLTYPE *AddRef)(
   14753         IApartmentShutdown* This);
   14754 
   14755     ULONG (STDMETHODCALLTYPE *Release)(
   14756         IApartmentShutdown* This);
   14757 
   14758     /*** IApartmentShutdown methods ***/
   14759     void (STDMETHODCALLTYPE *OnUninitialize)(
   14760         IApartmentShutdown* This,
   14761         UINT64 ui64ApartmentIdentifier);
   14762 
   14763     END_INTERFACE
   14764 } IApartmentShutdownVtbl;
   14765 interface IApartmentShutdown {
   14766     CONST_VTBL IApartmentShutdownVtbl* lpVtbl;
   14767 };
   14768 
   14769 #ifdef COBJMACROS
   14770 #ifndef WIDL_C_INLINE_WRAPPERS
   14771 /*** IUnknown methods ***/
   14772 #define IApartmentShutdown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   14773 #define IApartmentShutdown_AddRef(This) (This)->lpVtbl->AddRef(This)
   14774 #define IApartmentShutdown_Release(This) (This)->lpVtbl->Release(This)
   14775 /*** IApartmentShutdown methods ***/
   14776 #define IApartmentShutdown_OnUninitialize(This,ui64ApartmentIdentifier) (This)->lpVtbl->OnUninitialize(This,ui64ApartmentIdentifier)
   14777 #else
   14778 /*** IUnknown methods ***/
   14779 static FORCEINLINE HRESULT IApartmentShutdown_QueryInterface(IApartmentShutdown* This,REFIID riid,void **ppvObject) {
   14780     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   14781 }
   14782 static FORCEINLINE ULONG IApartmentShutdown_AddRef(IApartmentShutdown* This) {
   14783     return This->lpVtbl->AddRef(This);
   14784 }
   14785 static FORCEINLINE ULONG IApartmentShutdown_Release(IApartmentShutdown* This) {
   14786     return This->lpVtbl->Release(This);
   14787 }
   14788 /*** IApartmentShutdown methods ***/
   14789 static FORCEINLINE void IApartmentShutdown_OnUninitialize(IApartmentShutdown* This,UINT64 ui64ApartmentIdentifier) {
   14790     This->lpVtbl->OnUninitialize(This,ui64ApartmentIdentifier);
   14791 }
   14792 #endif
   14793 #endif
   14794 
   14795 #endif
   14796 
   14797 void STDMETHODCALLTYPE IApartmentShutdown_OnUninitialize_Proxy(
   14798     IApartmentShutdown* This,
   14799     UINT64 ui64ApartmentIdentifier);
   14800 void __RPC_STUB IApartmentShutdown_OnUninitialize_Stub(
   14801     IRpcStubBuffer* This,
   14802     IRpcChannelBuffer* pRpcChannelBuffer,
   14803     PRPC_MESSAGE pRpcMessage,
   14804     DWORD* pdwStubPhase);
   14805 
   14806 #endif  /* __IApartmentShutdown_INTERFACE_DEFINED__ */
   14807 
   14808 #endif
   14809 /* Begin additional prototypes for all interfaces */
   14810 
   14811 ULONG           __RPC_USER SNB_UserSize     (ULONG *, ULONG, SNB *);
   14812 unsigned char * __RPC_USER SNB_UserMarshal  (ULONG *, unsigned char *, SNB *);
   14813 unsigned char * __RPC_USER SNB_UserUnmarshal(ULONG *, unsigned char *, SNB *);
   14814 void            __RPC_USER SNB_UserFree     (ULONG *, SNB *);
   14815 ULONG           __RPC_USER CLIPFORMAT_UserSize     (ULONG *, ULONG, CLIPFORMAT *);
   14816 unsigned char * __RPC_USER CLIPFORMAT_UserMarshal  (ULONG *, unsigned char *, CLIPFORMAT *);
   14817 unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
   14818 void            __RPC_USER CLIPFORMAT_UserFree     (ULONG *, CLIPFORMAT *);
   14819 ULONG           __RPC_USER STGMEDIUM_UserSize     (ULONG *, ULONG, STGMEDIUM *);
   14820 unsigned char * __RPC_USER STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, STGMEDIUM *);
   14821 unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, STGMEDIUM *);
   14822 void            __RPC_USER STGMEDIUM_UserFree     (ULONG *, STGMEDIUM *);
   14823 ULONG           __RPC_USER ASYNC_STGMEDIUM_UserSize     (ULONG *, ULONG, ASYNC_STGMEDIUM *);
   14824 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, ASYNC_STGMEDIUM *);
   14825 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, ASYNC_STGMEDIUM *);
   14826 void            __RPC_USER ASYNC_STGMEDIUM_UserFree     (ULONG *, ASYNC_STGMEDIUM *);
   14827 ULONG           __RPC_USER FLAG_STGMEDIUM_UserSize     (ULONG *, ULONG, FLAG_STGMEDIUM *);
   14828 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, FLAG_STGMEDIUM *);
   14829 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, FLAG_STGMEDIUM *);
   14830 void            __RPC_USER FLAG_STGMEDIUM_UserFree     (ULONG *, FLAG_STGMEDIUM *);
   14831 ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
   14832 unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
   14833 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
   14834 void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
   14835 ULONG           __RPC_USER HICON_UserSize     (ULONG *, ULONG, HICON *);
   14836 unsigned char * __RPC_USER HICON_UserMarshal  (ULONG *, unsigned char *, HICON *);
   14837 unsigned char * __RPC_USER HICON_UserUnmarshal(ULONG *, unsigned char *, HICON *);
   14838 void            __RPC_USER HICON_UserFree     (ULONG *, HICON *);
   14839 ULONG           __RPC_USER HDC_UserSize     (ULONG *, ULONG, HDC *);
   14840 unsigned char * __RPC_USER HDC_UserMarshal  (ULONG *, unsigned char *, HDC *);
   14841 unsigned char * __RPC_USER HDC_UserUnmarshal(ULONG *, unsigned char *, HDC *);
   14842 void            __RPC_USER HDC_UserFree     (ULONG *, HDC *);
   14843 
   14844 /* End additional prototypes */
   14845 
   14846 #ifdef __cplusplus
   14847 }
   14848 #endif
   14849 
   14850 #endif /* __objidl_h__ */
   14851