zig

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

objidl.h (424005B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/objidl.idl - Do not edit ***/
      2 
      3 #ifdef _WIN32
      4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      6 #endif
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 #endif
     10 
     11 #ifndef COM_NO_WINDOWS_H
     12 #include <windows.h>
     13 #include <ole2.h>
     14 #endif
     15 
     16 #ifndef __objidl_h__
     17 #define __objidl_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __IMarshal_FWD_DEFINED__
     22 #define __IMarshal_FWD_DEFINED__
     23 typedef interface IMarshal IMarshal;
     24 #ifdef __cplusplus
     25 interface IMarshal;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __INoMarshal_FWD_DEFINED__
     30 #define __INoMarshal_FWD_DEFINED__
     31 typedef interface INoMarshal INoMarshal;
     32 #ifdef __cplusplus
     33 interface INoMarshal;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __IAgileObject_FWD_DEFINED__
     38 #define __IAgileObject_FWD_DEFINED__
     39 typedef interface IAgileObject IAgileObject;
     40 #ifdef __cplusplus
     41 interface IAgileObject;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __IAgileReference_FWD_DEFINED__
     46 #define __IAgileReference_FWD_DEFINED__
     47 typedef interface IAgileReference IAgileReference;
     48 #ifdef __cplusplus
     49 interface IAgileReference;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __IMarshal2_FWD_DEFINED__
     54 #define __IMarshal2_FWD_DEFINED__
     55 typedef interface IMarshal2 IMarshal2;
     56 #ifdef __cplusplus
     57 interface IMarshal2;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 #ifndef __IMalloc_FWD_DEFINED__
     62 #define __IMalloc_FWD_DEFINED__
     63 typedef interface IMalloc IMalloc;
     64 #ifdef __cplusplus
     65 interface IMalloc;
     66 #endif /* __cplusplus */
     67 #endif
     68 
     69 #ifndef __IStdMarshalInfo_FWD_DEFINED__
     70 #define __IStdMarshalInfo_FWD_DEFINED__
     71 typedef interface IStdMarshalInfo IStdMarshalInfo;
     72 #ifdef __cplusplus
     73 interface IStdMarshalInfo;
     74 #endif /* __cplusplus */
     75 #endif
     76 
     77 #ifndef __IExternalConnection_FWD_DEFINED__
     78 #define __IExternalConnection_FWD_DEFINED__
     79 typedef interface IExternalConnection IExternalConnection;
     80 #ifdef __cplusplus
     81 interface IExternalConnection;
     82 #endif /* __cplusplus */
     83 #endif
     84 
     85 #ifndef __IMultiQI_FWD_DEFINED__
     86 #define __IMultiQI_FWD_DEFINED__
     87 typedef interface IMultiQI IMultiQI;
     88 #ifdef __cplusplus
     89 interface IMultiQI;
     90 #endif /* __cplusplus */
     91 #endif
     92 
     93 #ifndef __AsyncIMultiQI_FWD_DEFINED__
     94 #define __AsyncIMultiQI_FWD_DEFINED__
     95 typedef interface AsyncIMultiQI AsyncIMultiQI;
     96 #ifdef __cplusplus
     97 interface AsyncIMultiQI;
     98 #endif /* __cplusplus */
     99 #endif
    100 
    101 #ifndef __IInternalUnknown_FWD_DEFINED__
    102 #define __IInternalUnknown_FWD_DEFINED__
    103 typedef interface IInternalUnknown IInternalUnknown;
    104 #ifdef __cplusplus
    105 interface IInternalUnknown;
    106 #endif /* __cplusplus */
    107 #endif
    108 
    109 #ifndef __IEnumUnknown_FWD_DEFINED__
    110 #define __IEnumUnknown_FWD_DEFINED__
    111 typedef interface IEnumUnknown IEnumUnknown;
    112 #ifdef __cplusplus
    113 interface IEnumUnknown;
    114 #endif /* __cplusplus */
    115 #endif
    116 
    117 #ifndef __IEnumString_FWD_DEFINED__
    118 #define __IEnumString_FWD_DEFINED__
    119 typedef interface IEnumString IEnumString;
    120 #ifdef __cplusplus
    121 interface IEnumString;
    122 #endif /* __cplusplus */
    123 #endif
    124 
    125 #ifndef __ISequentialStream_FWD_DEFINED__
    126 #define __ISequentialStream_FWD_DEFINED__
    127 typedef interface ISequentialStream ISequentialStream;
    128 #ifdef __cplusplus
    129 interface ISequentialStream;
    130 #endif /* __cplusplus */
    131 #endif
    132 
    133 #ifndef __IStream_FWD_DEFINED__
    134 #define __IStream_FWD_DEFINED__
    135 typedef interface IStream IStream;
    136 #ifdef __cplusplus
    137 interface IStream;
    138 #endif /* __cplusplus */
    139 #endif
    140 
    141 #ifndef __IRpcChannelBuffer_FWD_DEFINED__
    142 #define __IRpcChannelBuffer_FWD_DEFINED__
    143 typedef interface IRpcChannelBuffer IRpcChannelBuffer;
    144 #ifdef __cplusplus
    145 interface IRpcChannelBuffer;
    146 #endif /* __cplusplus */
    147 #endif
    148 
    149 #ifndef __IRpcChannelBuffer2_FWD_DEFINED__
    150 #define __IRpcChannelBuffer2_FWD_DEFINED__
    151 typedef interface IRpcChannelBuffer2 IRpcChannelBuffer2;
    152 #ifdef __cplusplus
    153 interface IRpcChannelBuffer2;
    154 #endif /* __cplusplus */
    155 #endif
    156 
    157 #ifndef __IAsyncRpcChannelBuffer_FWD_DEFINED__
    158 #define __IAsyncRpcChannelBuffer_FWD_DEFINED__
    159 typedef interface IAsyncRpcChannelBuffer IAsyncRpcChannelBuffer;
    160 #ifdef __cplusplus
    161 interface IAsyncRpcChannelBuffer;
    162 #endif /* __cplusplus */
    163 #endif
    164 
    165 #ifndef __IRpcChannelBuffer3_FWD_DEFINED__
    166 #define __IRpcChannelBuffer3_FWD_DEFINED__
    167 typedef interface IRpcChannelBuffer3 IRpcChannelBuffer3;
    168 #ifdef __cplusplus
    169 interface IRpcChannelBuffer3;
    170 #endif /* __cplusplus */
    171 #endif
    172 
    173 #ifndef __IRpcSyntaxNegotiate_FWD_DEFINED__
    174 #define __IRpcSyntaxNegotiate_FWD_DEFINED__
    175 typedef interface IRpcSyntaxNegotiate IRpcSyntaxNegotiate;
    176 #ifdef __cplusplus
    177 interface IRpcSyntaxNegotiate;
    178 #endif /* __cplusplus */
    179 #endif
    180 
    181 #ifndef __IRpcProxyBuffer_FWD_DEFINED__
    182 #define __IRpcProxyBuffer_FWD_DEFINED__
    183 typedef interface IRpcProxyBuffer IRpcProxyBuffer;
    184 #ifdef __cplusplus
    185 interface IRpcProxyBuffer;
    186 #endif /* __cplusplus */
    187 #endif
    188 
    189 #ifndef __IRpcStubBuffer_FWD_DEFINED__
    190 #define __IRpcStubBuffer_FWD_DEFINED__
    191 typedef interface IRpcStubBuffer IRpcStubBuffer;
    192 #ifdef __cplusplus
    193 interface IRpcStubBuffer;
    194 #endif /* __cplusplus */
    195 #endif
    196 
    197 #ifndef __IPSFactoryBuffer_FWD_DEFINED__
    198 #define __IPSFactoryBuffer_FWD_DEFINED__
    199 typedef interface IPSFactoryBuffer IPSFactoryBuffer;
    200 #ifdef __cplusplus
    201 interface IPSFactoryBuffer;
    202 #endif /* __cplusplus */
    203 #endif
    204 
    205 #ifndef __IChannelHook_FWD_DEFINED__
    206 #define __IChannelHook_FWD_DEFINED__
    207 typedef interface IChannelHook IChannelHook;
    208 #ifdef __cplusplus
    209 interface IChannelHook;
    210 #endif /* __cplusplus */
    211 #endif
    212 
    213 #ifndef __IClientSecurity_FWD_DEFINED__
    214 #define __IClientSecurity_FWD_DEFINED__
    215 typedef interface IClientSecurity IClientSecurity;
    216 #ifdef __cplusplus
    217 interface IClientSecurity;
    218 #endif /* __cplusplus */
    219 #endif
    220 
    221 #ifndef __IServerSecurity_FWD_DEFINED__
    222 #define __IServerSecurity_FWD_DEFINED__
    223 typedef interface IServerSecurity IServerSecurity;
    224 #ifdef __cplusplus
    225 interface IServerSecurity;
    226 #endif /* __cplusplus */
    227 #endif
    228 
    229 #ifndef __IRpcOptions_FWD_DEFINED__
    230 #define __IRpcOptions_FWD_DEFINED__
    231 typedef interface IRpcOptions IRpcOptions;
    232 #ifdef __cplusplus
    233 interface IRpcOptions;
    234 #endif /* __cplusplus */
    235 #endif
    236 
    237 #ifndef __IGlobalOptions_FWD_DEFINED__
    238 #define __IGlobalOptions_FWD_DEFINED__
    239 typedef interface IGlobalOptions IGlobalOptions;
    240 #ifdef __cplusplus
    241 interface IGlobalOptions;
    242 #endif /* __cplusplus */
    243 #endif
    244 
    245 #ifndef __ISurrogate_FWD_DEFINED__
    246 #define __ISurrogate_FWD_DEFINED__
    247 typedef interface ISurrogate ISurrogate;
    248 #ifdef __cplusplus
    249 interface ISurrogate;
    250 #endif /* __cplusplus */
    251 #endif
    252 
    253 #ifndef __IGlobalInterfaceTable_FWD_DEFINED__
    254 #define __IGlobalInterfaceTable_FWD_DEFINED__
    255 typedef interface IGlobalInterfaceTable IGlobalInterfaceTable;
    256 #ifdef __cplusplus
    257 interface IGlobalInterfaceTable;
    258 #endif /* __cplusplus */
    259 #endif
    260 
    261 #ifndef __ISynchronize_FWD_DEFINED__
    262 #define __ISynchronize_FWD_DEFINED__
    263 typedef interface ISynchronize ISynchronize;
    264 #ifdef __cplusplus
    265 interface ISynchronize;
    266 #endif /* __cplusplus */
    267 #endif
    268 
    269 #ifndef __ISynchronizeHandle_FWD_DEFINED__
    270 #define __ISynchronizeHandle_FWD_DEFINED__
    271 typedef interface ISynchronizeHandle ISynchronizeHandle;
    272 #ifdef __cplusplus
    273 interface ISynchronizeHandle;
    274 #endif /* __cplusplus */
    275 #endif
    276 
    277 #ifndef __ISynchronizeEvent_FWD_DEFINED__
    278 #define __ISynchronizeEvent_FWD_DEFINED__
    279 typedef interface ISynchronizeEvent ISynchronizeEvent;
    280 #ifdef __cplusplus
    281 interface ISynchronizeEvent;
    282 #endif /* __cplusplus */
    283 #endif
    284 
    285 #ifndef __ISynchronizeContainer_FWD_DEFINED__
    286 #define __ISynchronizeContainer_FWD_DEFINED__
    287 typedef interface ISynchronizeContainer ISynchronizeContainer;
    288 #ifdef __cplusplus
    289 interface ISynchronizeContainer;
    290 #endif /* __cplusplus */
    291 #endif
    292 
    293 #ifndef __ISynchronizeMutex_FWD_DEFINED__
    294 #define __ISynchronizeMutex_FWD_DEFINED__
    295 typedef interface ISynchronizeMutex ISynchronizeMutex;
    296 #ifdef __cplusplus
    297 interface ISynchronizeMutex;
    298 #endif /* __cplusplus */
    299 #endif
    300 
    301 #ifndef __ICancelMethodCalls_FWD_DEFINED__
    302 #define __ICancelMethodCalls_FWD_DEFINED__
    303 typedef interface ICancelMethodCalls ICancelMethodCalls;
    304 #ifdef __cplusplus
    305 interface ICancelMethodCalls;
    306 #endif /* __cplusplus */
    307 #endif
    308 
    309 #ifndef __IAsyncManager_FWD_DEFINED__
    310 #define __IAsyncManager_FWD_DEFINED__
    311 typedef interface IAsyncManager IAsyncManager;
    312 #ifdef __cplusplus
    313 interface IAsyncManager;
    314 #endif /* __cplusplus */
    315 #endif
    316 
    317 #ifndef __ICallFactory_FWD_DEFINED__
    318 #define __ICallFactory_FWD_DEFINED__
    319 typedef interface ICallFactory ICallFactory;
    320 #ifdef __cplusplus
    321 interface ICallFactory;
    322 #endif /* __cplusplus */
    323 #endif
    324 
    325 #ifndef __IRpcHelper_FWD_DEFINED__
    326 #define __IRpcHelper_FWD_DEFINED__
    327 typedef interface IRpcHelper IRpcHelper;
    328 #ifdef __cplusplus
    329 interface IRpcHelper;
    330 #endif /* __cplusplus */
    331 #endif
    332 
    333 #ifndef __IReleaseMarshalBuffers_FWD_DEFINED__
    334 #define __IReleaseMarshalBuffers_FWD_DEFINED__
    335 typedef interface IReleaseMarshalBuffers IReleaseMarshalBuffers;
    336 #ifdef __cplusplus
    337 interface IReleaseMarshalBuffers;
    338 #endif /* __cplusplus */
    339 #endif
    340 
    341 #ifndef __IWaitMultiple_FWD_DEFINED__
    342 #define __IWaitMultiple_FWD_DEFINED__
    343 typedef interface IWaitMultiple IWaitMultiple;
    344 #ifdef __cplusplus
    345 interface IWaitMultiple;
    346 #endif /* __cplusplus */
    347 #endif
    348 
    349 #ifndef __IAddrTrackingControl_FWD_DEFINED__
    350 #define __IAddrTrackingControl_FWD_DEFINED__
    351 typedef interface IAddrTrackingControl IAddrTrackingControl;
    352 #ifdef __cplusplus
    353 interface IAddrTrackingControl;
    354 #endif /* __cplusplus */
    355 #endif
    356 
    357 #ifndef __IAddrExclusionControl_FWD_DEFINED__
    358 #define __IAddrExclusionControl_FWD_DEFINED__
    359 typedef interface IAddrExclusionControl IAddrExclusionControl;
    360 #ifdef __cplusplus
    361 interface IAddrExclusionControl;
    362 #endif /* __cplusplus */
    363 #endif
    364 
    365 #ifndef __IPipeByte_FWD_DEFINED__
    366 #define __IPipeByte_FWD_DEFINED__
    367 typedef interface IPipeByte IPipeByte;
    368 #ifdef __cplusplus
    369 interface IPipeByte;
    370 #endif /* __cplusplus */
    371 #endif
    372 
    373 #ifndef __IPipeLong_FWD_DEFINED__
    374 #define __IPipeLong_FWD_DEFINED__
    375 typedef interface IPipeLong IPipeLong;
    376 #ifdef __cplusplus
    377 interface IPipeLong;
    378 #endif /* __cplusplus */
    379 #endif
    380 
    381 #ifndef __IPipeDouble_FWD_DEFINED__
    382 #define __IPipeDouble_FWD_DEFINED__
    383 typedef interface IPipeDouble IPipeDouble;
    384 #ifdef __cplusplus
    385 interface IPipeDouble;
    386 #endif /* __cplusplus */
    387 #endif
    388 
    389 #ifndef __IEnumContextProps_FWD_DEFINED__
    390 #define __IEnumContextProps_FWD_DEFINED__
    391 typedef interface IEnumContextProps IEnumContextProps;
    392 #ifdef __cplusplus
    393 interface IEnumContextProps;
    394 #endif /* __cplusplus */
    395 #endif
    396 
    397 #ifndef __IContext_FWD_DEFINED__
    398 #define __IContext_FWD_DEFINED__
    399 typedef interface IContext IContext;
    400 #ifdef __cplusplus
    401 interface IContext;
    402 #endif /* __cplusplus */
    403 #endif
    404 
    405 #ifndef __IComThreadingInfo_FWD_DEFINED__
    406 #define __IComThreadingInfo_FWD_DEFINED__
    407 typedef interface IComThreadingInfo IComThreadingInfo;
    408 #ifdef __cplusplus
    409 interface IComThreadingInfo;
    410 #endif /* __cplusplus */
    411 #endif
    412 
    413 #ifndef __IProcessInitControl_FWD_DEFINED__
    414 #define __IProcessInitControl_FWD_DEFINED__
    415 typedef interface IProcessInitControl IProcessInitControl;
    416 #ifdef __cplusplus
    417 interface IProcessInitControl;
    418 #endif /* __cplusplus */
    419 #endif
    420 
    421 #ifndef __IFastRundown_FWD_DEFINED__
    422 #define __IFastRundown_FWD_DEFINED__
    423 typedef interface IFastRundown IFastRundown;
    424 #ifdef __cplusplus
    425 interface IFastRundown;
    426 #endif /* __cplusplus */
    427 #endif
    428 
    429 #ifndef __IMarshalingStream_FWD_DEFINED__
    430 #define __IMarshalingStream_FWD_DEFINED__
    431 typedef interface IMarshalingStream IMarshalingStream;
    432 #ifdef __cplusplus
    433 interface IMarshalingStream;
    434 #endif /* __cplusplus */
    435 #endif
    436 
    437 #ifndef __IMallocSpy_FWD_DEFINED__
    438 #define __IMallocSpy_FWD_DEFINED__
    439 typedef interface IMallocSpy IMallocSpy;
    440 #ifdef __cplusplus
    441 interface IMallocSpy;
    442 #endif /* __cplusplus */
    443 #endif
    444 
    445 #ifndef __IBindCtx_FWD_DEFINED__
    446 #define __IBindCtx_FWD_DEFINED__
    447 typedef interface IBindCtx IBindCtx;
    448 #ifdef __cplusplus
    449 interface IBindCtx;
    450 #endif /* __cplusplus */
    451 #endif
    452 
    453 #ifndef __IEnumMoniker_FWD_DEFINED__
    454 #define __IEnumMoniker_FWD_DEFINED__
    455 typedef interface IEnumMoniker IEnumMoniker;
    456 #ifdef __cplusplus
    457 interface IEnumMoniker;
    458 #endif /* __cplusplus */
    459 #endif
    460 
    461 #ifndef __IRunnableObject_FWD_DEFINED__
    462 #define __IRunnableObject_FWD_DEFINED__
    463 typedef interface IRunnableObject IRunnableObject;
    464 #ifdef __cplusplus
    465 interface IRunnableObject;
    466 #endif /* __cplusplus */
    467 #endif
    468 
    469 #ifndef __IRunningObjectTable_FWD_DEFINED__
    470 #define __IRunningObjectTable_FWD_DEFINED__
    471 typedef interface IRunningObjectTable IRunningObjectTable;
    472 #ifdef __cplusplus
    473 interface IRunningObjectTable;
    474 #endif /* __cplusplus */
    475 #endif
    476 
    477 #ifndef __IPersist_FWD_DEFINED__
    478 #define __IPersist_FWD_DEFINED__
    479 typedef interface IPersist IPersist;
    480 #ifdef __cplusplus
    481 interface IPersist;
    482 #endif /* __cplusplus */
    483 #endif
    484 
    485 #ifndef __IPersistStream_FWD_DEFINED__
    486 #define __IPersistStream_FWD_DEFINED__
    487 typedef interface IPersistStream IPersistStream;
    488 #ifdef __cplusplus
    489 interface IPersistStream;
    490 #endif /* __cplusplus */
    491 #endif
    492 
    493 #ifndef __IMoniker_FWD_DEFINED__
    494 #define __IMoniker_FWD_DEFINED__
    495 typedef interface IMoniker IMoniker;
    496 #ifdef __cplusplus
    497 interface IMoniker;
    498 #endif /* __cplusplus */
    499 #endif
    500 
    501 #ifndef __IROTData_FWD_DEFINED__
    502 #define __IROTData_FWD_DEFINED__
    503 typedef interface IROTData IROTData;
    504 #ifdef __cplusplus
    505 interface IROTData;
    506 #endif /* __cplusplus */
    507 #endif
    508 
    509 #ifndef __IEnumSTATSTG_FWD_DEFINED__
    510 #define __IEnumSTATSTG_FWD_DEFINED__
    511 typedef interface IEnumSTATSTG IEnumSTATSTG;
    512 #ifdef __cplusplus
    513 interface IEnumSTATSTG;
    514 #endif /* __cplusplus */
    515 #endif
    516 
    517 #ifndef __IStorage_FWD_DEFINED__
    518 #define __IStorage_FWD_DEFINED__
    519 typedef interface IStorage IStorage;
    520 #ifdef __cplusplus
    521 interface IStorage;
    522 #endif /* __cplusplus */
    523 #endif
    524 
    525 #ifndef __IPersistFile_FWD_DEFINED__
    526 #define __IPersistFile_FWD_DEFINED__
    527 typedef interface IPersistFile IPersistFile;
    528 #ifdef __cplusplus
    529 interface IPersistFile;
    530 #endif /* __cplusplus */
    531 #endif
    532 
    533 #ifndef __IPersistStorage_FWD_DEFINED__
    534 #define __IPersistStorage_FWD_DEFINED__
    535 typedef interface IPersistStorage IPersistStorage;
    536 #ifdef __cplusplus
    537 interface IPersistStorage;
    538 #endif /* __cplusplus */
    539 #endif
    540 
    541 #ifndef __ILockBytes_FWD_DEFINED__
    542 #define __ILockBytes_FWD_DEFINED__
    543 typedef interface ILockBytes ILockBytes;
    544 #ifdef __cplusplus
    545 interface ILockBytes;
    546 #endif /* __cplusplus */
    547 #endif
    548 
    549 #ifndef __IEnumFORMATETC_FWD_DEFINED__
    550 #define __IEnumFORMATETC_FWD_DEFINED__
    551 typedef interface IEnumFORMATETC IEnumFORMATETC;
    552 #ifdef __cplusplus
    553 interface IEnumFORMATETC;
    554 #endif /* __cplusplus */
    555 #endif
    556 
    557 #ifndef __IEnumSTATDATA_FWD_DEFINED__
    558 #define __IEnumSTATDATA_FWD_DEFINED__
    559 typedef interface IEnumSTATDATA IEnumSTATDATA;
    560 #ifdef __cplusplus
    561 interface IEnumSTATDATA;
    562 #endif /* __cplusplus */
    563 #endif
    564 
    565 #ifndef __IRootStorage_FWD_DEFINED__
    566 #define __IRootStorage_FWD_DEFINED__
    567 typedef interface IRootStorage IRootStorage;
    568 #ifdef __cplusplus
    569 interface IRootStorage;
    570 #endif /* __cplusplus */
    571 #endif
    572 
    573 #ifndef __IAdviseSink_FWD_DEFINED__
    574 #define __IAdviseSink_FWD_DEFINED__
    575 typedef interface IAdviseSink IAdviseSink;
    576 #ifdef __cplusplus
    577 interface IAdviseSink;
    578 #endif /* __cplusplus */
    579 #endif
    580 
    581 #ifndef __AsyncIAdviseSink_FWD_DEFINED__
    582 #define __AsyncIAdviseSink_FWD_DEFINED__
    583 typedef interface AsyncIAdviseSink AsyncIAdviseSink;
    584 #ifdef __cplusplus
    585 interface AsyncIAdviseSink;
    586 #endif /* __cplusplus */
    587 #endif
    588 
    589 #ifndef __IAdviseSink2_FWD_DEFINED__
    590 #define __IAdviseSink2_FWD_DEFINED__
    591 typedef interface IAdviseSink2 IAdviseSink2;
    592 #ifdef __cplusplus
    593 interface IAdviseSink2;
    594 #endif /* __cplusplus */
    595 #endif
    596 
    597 #ifndef __AsyncIAdviseSink2_FWD_DEFINED__
    598 #define __AsyncIAdviseSink2_FWD_DEFINED__
    599 typedef interface AsyncIAdviseSink2 AsyncIAdviseSink2;
    600 #ifdef __cplusplus
    601 interface AsyncIAdviseSink2;
    602 #endif /* __cplusplus */
    603 #endif
    604 
    605 #ifndef __IDataObject_FWD_DEFINED__
    606 #define __IDataObject_FWD_DEFINED__
    607 typedef interface IDataObject IDataObject;
    608 #ifdef __cplusplus
    609 interface IDataObject;
    610 #endif /* __cplusplus */
    611 #endif
    612 
    613 #ifndef __IDataAdviseHolder_FWD_DEFINED__
    614 #define __IDataAdviseHolder_FWD_DEFINED__
    615 typedef interface IDataAdviseHolder IDataAdviseHolder;
    616 #ifdef __cplusplus
    617 interface IDataAdviseHolder;
    618 #endif /* __cplusplus */
    619 #endif
    620 
    621 #ifndef __IMessageFilter_FWD_DEFINED__
    622 #define __IMessageFilter_FWD_DEFINED__
    623 typedef interface IMessageFilter IMessageFilter;
    624 #ifdef __cplusplus
    625 interface IMessageFilter;
    626 #endif /* __cplusplus */
    627 #endif
    628 
    629 #ifndef __IClassActivator_FWD_DEFINED__
    630 #define __IClassActivator_FWD_DEFINED__
    631 typedef interface IClassActivator IClassActivator;
    632 #ifdef __cplusplus
    633 interface IClassActivator;
    634 #endif /* __cplusplus */
    635 #endif
    636 
    637 #ifndef __IFillLockBytes_FWD_DEFINED__
    638 #define __IFillLockBytes_FWD_DEFINED__
    639 typedef interface IFillLockBytes IFillLockBytes;
    640 #ifdef __cplusplus
    641 interface IFillLockBytes;
    642 #endif /* __cplusplus */
    643 #endif
    644 
    645 #ifndef __IProgressNotify_FWD_DEFINED__
    646 #define __IProgressNotify_FWD_DEFINED__
    647 typedef interface IProgressNotify IProgressNotify;
    648 #ifdef __cplusplus
    649 interface IProgressNotify;
    650 #endif /* __cplusplus */
    651 #endif
    652 
    653 #ifndef __ILayoutStorage_FWD_DEFINED__
    654 #define __ILayoutStorage_FWD_DEFINED__
    655 typedef interface ILayoutStorage ILayoutStorage;
    656 #ifdef __cplusplus
    657 interface ILayoutStorage;
    658 #endif /* __cplusplus */
    659 #endif
    660 
    661 #ifndef __IBlockingLock_FWD_DEFINED__
    662 #define __IBlockingLock_FWD_DEFINED__
    663 typedef interface IBlockingLock IBlockingLock;
    664 #ifdef __cplusplus
    665 interface IBlockingLock;
    666 #endif /* __cplusplus */
    667 #endif
    668 
    669 #ifndef __ITimeAndNoticeControl_FWD_DEFINED__
    670 #define __ITimeAndNoticeControl_FWD_DEFINED__
    671 typedef interface ITimeAndNoticeControl ITimeAndNoticeControl;
    672 #ifdef __cplusplus
    673 interface ITimeAndNoticeControl;
    674 #endif /* __cplusplus */
    675 #endif
    676 
    677 #ifndef __IOplockStorage_FWD_DEFINED__
    678 #define __IOplockStorage_FWD_DEFINED__
    679 typedef interface IOplockStorage IOplockStorage;
    680 #ifdef __cplusplus
    681 interface IOplockStorage;
    682 #endif /* __cplusplus */
    683 #endif
    684 
    685 #ifndef __IDirectWriterLock_FWD_DEFINED__
    686 #define __IDirectWriterLock_FWD_DEFINED__
    687 typedef interface IDirectWriterLock IDirectWriterLock;
    688 #ifdef __cplusplus
    689 interface IDirectWriterLock;
    690 #endif /* __cplusplus */
    691 #endif
    692 
    693 #ifndef __IUrlMon_FWD_DEFINED__
    694 #define __IUrlMon_FWD_DEFINED__
    695 typedef interface IUrlMon IUrlMon;
    696 #ifdef __cplusplus
    697 interface IUrlMon;
    698 #endif /* __cplusplus */
    699 #endif
    700 
    701 #ifndef __IForegroundTransfer_FWD_DEFINED__
    702 #define __IForegroundTransfer_FWD_DEFINED__
    703 typedef interface IForegroundTransfer IForegroundTransfer;
    704 #ifdef __cplusplus
    705 interface IForegroundTransfer;
    706 #endif /* __cplusplus */
    707 #endif
    708 
    709 #ifndef __IThumbnailExtractor_FWD_DEFINED__
    710 #define __IThumbnailExtractor_FWD_DEFINED__
    711 typedef interface IThumbnailExtractor IThumbnailExtractor;
    712 #ifdef __cplusplus
    713 interface IThumbnailExtractor;
    714 #endif /* __cplusplus */
    715 #endif
    716 
    717 #ifndef __IDummyHICONIncluder_FWD_DEFINED__
    718 #define __IDummyHICONIncluder_FWD_DEFINED__
    719 typedef interface IDummyHICONIncluder IDummyHICONIncluder;
    720 #ifdef __cplusplus
    721 interface IDummyHICONIncluder;
    722 #endif /* __cplusplus */
    723 #endif
    724 
    725 #ifndef __IProcessLock_FWD_DEFINED__
    726 #define __IProcessLock_FWD_DEFINED__
    727 typedef interface IProcessLock IProcessLock;
    728 #ifdef __cplusplus
    729 interface IProcessLock;
    730 #endif /* __cplusplus */
    731 #endif
    732 
    733 #ifndef __ISurrogateService_FWD_DEFINED__
    734 #define __ISurrogateService_FWD_DEFINED__
    735 typedef interface ISurrogateService ISurrogateService;
    736 #ifdef __cplusplus
    737 interface ISurrogateService;
    738 #endif /* __cplusplus */
    739 #endif
    740 
    741 #ifndef __IInitializeSpy_FWD_DEFINED__
    742 #define __IInitializeSpy_FWD_DEFINED__
    743 typedef interface IInitializeSpy IInitializeSpy;
    744 #ifdef __cplusplus
    745 interface IInitializeSpy;
    746 #endif /* __cplusplus */
    747 #endif
    748 
    749 #ifndef __IApartmentShutdown_FWD_DEFINED__
    750 #define __IApartmentShutdown_FWD_DEFINED__
    751 typedef interface IApartmentShutdown IApartmentShutdown;
    752 #ifdef __cplusplus
    753 interface IApartmentShutdown;
    754 #endif /* __cplusplus */
    755 #endif
    756 
    757 /* Headers for imported files */
    758 
    759 #include <unknwn.h>
    760 #include <wtypes.h>
    761 
    762 #ifdef __cplusplus
    763 extern "C" {
    764 #endif
    765 
    766 /**
    767  * This file is part of the mingw-w64 runtime package.
    768  * No warranty is given; refer to the file DISCLAIMER within this package.
    769  */
    770 
    771 #include <winapifamily.h>
    772 
    773 #if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))
    774 #define _WIN32_WINNT 0x0600
    775 #endif
    776 #if(NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))
    777 #define _WIN32_WINNT 0x0502
    778 #endif
    779 #if(NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))
    780 #define _WIN32_WINNT 0x0501
    781 #endif
    782 /**
    783  * This file is part of the mingw-w64 runtime package.
    784  * No warranty is given; refer to the file DISCLAIMER within this package.
    785  */
    786 
    787 #include <winapifamily.h>
    788 
    789 #if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))
    790 #define _WIN32_WINNT 0x0600
    791 #endif
    792 
    793 #if (NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))
    794 #define _WIN32_WINNT 0x0502
    795 #endif
    796 
    797 #if (NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))
    798 #define _WIN32_WINNT 0x0501
    799 #endif
    800 
    801 #ifndef _OBJIDLBASE_
    802 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
    803 #ifndef __IStream_FWD_DEFINED__
    804 #define __IStream_FWD_DEFINED__
    805 typedef interface IStream IStream;
    806 #ifdef __cplusplus
    807 interface IStream;
    808 #endif /* __cplusplus */
    809 #endif
    810 
    811 #ifndef __IEnumString_FWD_DEFINED__
    812 #define __IEnumString_FWD_DEFINED__
    813 typedef interface IEnumString IEnumString;
    814 #ifdef __cplusplus
    815 interface IEnumString;
    816 #endif /* __cplusplus */
    817 #endif
    818 
    819 #ifndef __IMultiQI_FWD_DEFINED__
    820 #define __IMultiQI_FWD_DEFINED__
    821 typedef interface IMultiQI IMultiQI;
    822 #ifdef __cplusplus
    823 interface IMultiQI;
    824 #endif /* __cplusplus */
    825 #endif
    826 
    827 #endif
    828 
    829 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
    830 #ifndef __IAsyncManager_FWD_DEFINED__
    831 #define __IAsyncManager_FWD_DEFINED__
    832 typedef interface IAsyncManager IAsyncManager;
    833 #ifdef __cplusplus
    834 interface IAsyncManager;
    835 #endif /* __cplusplus */
    836 #endif
    837 
    838 #ifndef __ICallFactory_FWD_DEFINED__
    839 #define __ICallFactory_FWD_DEFINED__
    840 typedef interface ICallFactory ICallFactory;
    841 #ifdef __cplusplus
    842 interface ICallFactory;
    843 #endif /* __cplusplus */
    844 #endif
    845 
    846 #ifndef __ISynchronize_FWD_DEFINED__
    847 #define __ISynchronize_FWD_DEFINED__
    848 typedef interface ISynchronize ISynchronize;
    849 #ifdef __cplusplus
    850 interface ISynchronize;
    851 #endif /* __cplusplus */
    852 #endif
    853 
    854 #endif
    855 
    856 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
    857 typedef struct _COSERVERINFO {
    858     DWORD dwReserved1;
    859     LPWSTR pwszName;
    860     COAUTHINFO *pAuthInfo;
    861     DWORD dwReserved2;
    862 } COSERVERINFO;
    863 
    864 /*****************************************************************************
    865  * IMarshal interface
    866  */
    867 #ifndef __IMarshal_INTERFACE_DEFINED__
    868 #define __IMarshal_INTERFACE_DEFINED__
    869 
    870 typedef IMarshal *LPMARSHAL;
    871 DEFINE_GUID(IID_IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
    872 #if defined(__cplusplus) && !defined(CINTERFACE)
    873 MIDL_INTERFACE("00000003-0000-0000-c000-000000000046")
    874 IMarshal : public IUnknown
    875 {
    876     virtual HRESULT STDMETHODCALLTYPE GetUnmarshalClass(
    877         REFIID riid,
    878         void *pv,
    879         DWORD dwDestContext,
    880         void *pvDestContext,
    881         DWORD mshlflags,
    882         CLSID *pCid) = 0;
    883 
    884     virtual HRESULT STDMETHODCALLTYPE GetMarshalSizeMax(
    885         REFIID riid,
    886         void *pv,
    887         DWORD dwDestContext,
    888         void *pvDestContext,
    889         DWORD mshlflags,
    890         DWORD *pSize) = 0;
    891 
    892     virtual HRESULT STDMETHODCALLTYPE MarshalInterface(
    893         IStream *pStm,
    894         REFIID riid,
    895         void *pv,
    896         DWORD dwDestContext,
    897         void *pvDestContext,
    898         DWORD mshlflags) = 0;
    899 
    900     virtual HRESULT STDMETHODCALLTYPE UnmarshalInterface(
    901         IStream *pStm,
    902         REFIID riid,
    903         void **ppv) = 0;
    904 
    905     virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalData(
    906         IStream *pStm) = 0;
    907 
    908     virtual HRESULT STDMETHODCALLTYPE DisconnectObject(
    909         DWORD dwReserved) = 0;
    910 
    911 };
    912 #ifdef __CRT_UUID_DECL
    913 __CRT_UUID_DECL(IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
    914 #endif
    915 #else
    916 typedef struct IMarshalVtbl {
    917     BEGIN_INTERFACE
    918 
    919     /*** IUnknown methods ***/
    920     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    921         IMarshal *This,
    922         REFIID riid,
    923         void **ppvObject);
    924 
    925     ULONG (STDMETHODCALLTYPE *AddRef)(
    926         IMarshal *This);
    927 
    928     ULONG (STDMETHODCALLTYPE *Release)(
    929         IMarshal *This);
    930 
    931     /*** IMarshal methods ***/
    932     HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
    933         IMarshal *This,
    934         REFIID riid,
    935         void *pv,
    936         DWORD dwDestContext,
    937         void *pvDestContext,
    938         DWORD mshlflags,
    939         CLSID *pCid);
    940 
    941     HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
    942         IMarshal *This,
    943         REFIID riid,
    944         void *pv,
    945         DWORD dwDestContext,
    946         void *pvDestContext,
    947         DWORD mshlflags,
    948         DWORD *pSize);
    949 
    950     HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
    951         IMarshal *This,
    952         IStream *pStm,
    953         REFIID riid,
    954         void *pv,
    955         DWORD dwDestContext,
    956         void *pvDestContext,
    957         DWORD mshlflags);
    958 
    959     HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
    960         IMarshal *This,
    961         IStream *pStm,
    962         REFIID riid,
    963         void **ppv);
    964 
    965     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
    966         IMarshal *This,
    967         IStream *pStm);
    968 
    969     HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
    970         IMarshal *This,
    971         DWORD dwReserved);
    972 
    973     END_INTERFACE
    974 } IMarshalVtbl;
    975 
    976 interface IMarshal {
    977     CONST_VTBL IMarshalVtbl* lpVtbl;
    978 };
    979 
    980 #ifdef COBJMACROS
    981 #ifndef WIDL_C_INLINE_WRAPPERS
    982 /*** IUnknown methods ***/
    983 #define IMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    984 #define IMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
    985 #define IMarshal_Release(This) (This)->lpVtbl->Release(This)
    986 /*** IMarshal methods ***/
    987 #define IMarshal_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) (This)->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid)
    988 #define IMarshal_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) (This)->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize)
    989 #define IMarshal_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) (This)->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags)
    990 #define IMarshal_UnmarshalInterface(This,pStm,riid,ppv) (This)->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv)
    991 #define IMarshal_ReleaseMarshalData(This,pStm) (This)->lpVtbl->ReleaseMarshalData(This,pStm)
    992 #define IMarshal_DisconnectObject(This,dwReserved) (This)->lpVtbl->DisconnectObject(This,dwReserved)
    993 #else
    994 /*** IUnknown methods ***/
    995 static inline HRESULT IMarshal_QueryInterface(IMarshal* This,REFIID riid,void **ppvObject) {
    996     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    997 }
    998 static inline ULONG IMarshal_AddRef(IMarshal* This) {
    999     return This->lpVtbl->AddRef(This);
   1000 }
   1001 static inline ULONG IMarshal_Release(IMarshal* This) {
   1002     return This->lpVtbl->Release(This);
   1003 }
   1004 /*** IMarshal methods ***/
   1005 static inline HRESULT IMarshal_GetUnmarshalClass(IMarshal* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,CLSID *pCid) {
   1006     return This->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid);
   1007 }
   1008 static inline HRESULT IMarshal_GetMarshalSizeMax(IMarshal* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,DWORD *pSize) {
   1009     return This->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize);
   1010 }
   1011 static inline HRESULT IMarshal_MarshalInterface(IMarshal* This,IStream *pStm,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags) {
   1012     return This->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags);
   1013 }
   1014 static inline HRESULT IMarshal_UnmarshalInterface(IMarshal* This,IStream *pStm,REFIID riid,void **ppv) {
   1015     return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
   1016 }
   1017 static inline HRESULT IMarshal_ReleaseMarshalData(IMarshal* This,IStream *pStm) {
   1018     return This->lpVtbl->ReleaseMarshalData(This,pStm);
   1019 }
   1020 static inline HRESULT IMarshal_DisconnectObject(IMarshal* This,DWORD dwReserved) {
   1021     return This->lpVtbl->DisconnectObject(This,dwReserved);
   1022 }
   1023 #endif
   1024 #endif
   1025 
   1026 #endif
   1027 
   1028 
   1029 #endif  /* __IMarshal_INTERFACE_DEFINED__ */
   1030 
   1031 
   1032 /*****************************************************************************
   1033  * INoMarshal interface
   1034  */
   1035 #ifndef __INoMarshal_INTERFACE_DEFINED__
   1036 #define __INoMarshal_INTERFACE_DEFINED__
   1037 
   1038 DEFINE_GUID(IID_INoMarshal, 0xecc8691b, 0xc1db, 0x4dc0, 0x85,0x5e, 0x65,0xf6,0xc5,0x51,0xaf,0x49);
   1039 #if defined(__cplusplus) && !defined(CINTERFACE)
   1040 MIDL_INTERFACE("ecc8691b-c1db-4dc0-855e-65f6c551af49")
   1041 INoMarshal : public IUnknown
   1042 {
   1043 };
   1044 #ifdef __CRT_UUID_DECL
   1045 __CRT_UUID_DECL(INoMarshal, 0xecc8691b, 0xc1db, 0x4dc0, 0x85,0x5e, 0x65,0xf6,0xc5,0x51,0xaf,0x49)
   1046 #endif
   1047 #else
   1048 typedef struct INoMarshalVtbl {
   1049     BEGIN_INTERFACE
   1050 
   1051     /*** IUnknown methods ***/
   1052     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1053         INoMarshal *This,
   1054         REFIID riid,
   1055         void **ppvObject);
   1056 
   1057     ULONG (STDMETHODCALLTYPE *AddRef)(
   1058         INoMarshal *This);
   1059 
   1060     ULONG (STDMETHODCALLTYPE *Release)(
   1061         INoMarshal *This);
   1062 
   1063     END_INTERFACE
   1064 } INoMarshalVtbl;
   1065 
   1066 interface INoMarshal {
   1067     CONST_VTBL INoMarshalVtbl* lpVtbl;
   1068 };
   1069 
   1070 #ifdef COBJMACROS
   1071 #ifndef WIDL_C_INLINE_WRAPPERS
   1072 /*** IUnknown methods ***/
   1073 #define INoMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1074 #define INoMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
   1075 #define INoMarshal_Release(This) (This)->lpVtbl->Release(This)
   1076 #else
   1077 /*** IUnknown methods ***/
   1078 static inline HRESULT INoMarshal_QueryInterface(INoMarshal* This,REFIID riid,void **ppvObject) {
   1079     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1080 }
   1081 static inline ULONG INoMarshal_AddRef(INoMarshal* This) {
   1082     return This->lpVtbl->AddRef(This);
   1083 }
   1084 static inline ULONG INoMarshal_Release(INoMarshal* This) {
   1085     return This->lpVtbl->Release(This);
   1086 }
   1087 #endif
   1088 #endif
   1089 
   1090 #endif
   1091 
   1092 
   1093 #endif  /* __INoMarshal_INTERFACE_DEFINED__ */
   1094 
   1095 
   1096 /*****************************************************************************
   1097  * IAgileObject interface
   1098  */
   1099 #ifndef __IAgileObject_INTERFACE_DEFINED__
   1100 #define __IAgileObject_INTERFACE_DEFINED__
   1101 
   1102 DEFINE_GUID(IID_IAgileObject, 0x94ea2b94, 0xe9cc, 0x49e0, 0xc0,0xff, 0xee,0x64,0xca,0x8f,0x5b,0x90);
   1103 #if defined(__cplusplus) && !defined(CINTERFACE)
   1104 MIDL_INTERFACE("94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90")
   1105 IAgileObject : public IUnknown
   1106 {
   1107 };
   1108 #ifdef __CRT_UUID_DECL
   1109 __CRT_UUID_DECL(IAgileObject, 0x94ea2b94, 0xe9cc, 0x49e0, 0xc0,0xff, 0xee,0x64,0xca,0x8f,0x5b,0x90)
   1110 #endif
   1111 #else
   1112 typedef struct IAgileObjectVtbl {
   1113     BEGIN_INTERFACE
   1114 
   1115     /*** IUnknown methods ***/
   1116     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1117         IAgileObject *This,
   1118         REFIID riid,
   1119         void **ppvObject);
   1120 
   1121     ULONG (STDMETHODCALLTYPE *AddRef)(
   1122         IAgileObject *This);
   1123 
   1124     ULONG (STDMETHODCALLTYPE *Release)(
   1125         IAgileObject *This);
   1126 
   1127     END_INTERFACE
   1128 } IAgileObjectVtbl;
   1129 
   1130 interface IAgileObject {
   1131     CONST_VTBL IAgileObjectVtbl* lpVtbl;
   1132 };
   1133 
   1134 #ifdef COBJMACROS
   1135 #ifndef WIDL_C_INLINE_WRAPPERS
   1136 /*** IUnknown methods ***/
   1137 #define IAgileObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1138 #define IAgileObject_AddRef(This) (This)->lpVtbl->AddRef(This)
   1139 #define IAgileObject_Release(This) (This)->lpVtbl->Release(This)
   1140 #else
   1141 /*** IUnknown methods ***/
   1142 static inline HRESULT IAgileObject_QueryInterface(IAgileObject* This,REFIID riid,void **ppvObject) {
   1143     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1144 }
   1145 static inline ULONG IAgileObject_AddRef(IAgileObject* This) {
   1146     return This->lpVtbl->AddRef(This);
   1147 }
   1148 static inline ULONG IAgileObject_Release(IAgileObject* This) {
   1149     return This->lpVtbl->Release(This);
   1150 }
   1151 #endif
   1152 #endif
   1153 
   1154 #endif
   1155 
   1156 
   1157 #endif  /* __IAgileObject_INTERFACE_DEFINED__ */
   1158 
   1159 /*****************************************************************************
   1160  * IAgileReference interface
   1161  */
   1162 #ifndef __IAgileReference_INTERFACE_DEFINED__
   1163 #define __IAgileReference_INTERFACE_DEFINED__
   1164 
   1165 DEFINE_GUID(IID_IAgileReference, 0xc03f6a43, 0x65a4, 0x9818, 0x98,0x7e, 0xe0,0xb8,0x10,0xd2,0xa6,0xf2);
   1166 #if defined(__cplusplus) && !defined(CINTERFACE)
   1167 MIDL_INTERFACE("c03f6a43-65a4-9818-987e-e0b810d2a6f2")
   1168 IAgileReference : public IUnknown
   1169 {
   1170     virtual HRESULT STDMETHODCALLTYPE Resolve(
   1171         REFIID riid,
   1172         void **ppv) = 0;
   1173 
   1174 };
   1175 #ifdef __CRT_UUID_DECL
   1176 __CRT_UUID_DECL(IAgileReference, 0xc03f6a43, 0x65a4, 0x9818, 0x98,0x7e, 0xe0,0xb8,0x10,0xd2,0xa6,0xf2)
   1177 #endif
   1178 #else
   1179 typedef struct IAgileReferenceVtbl {
   1180     BEGIN_INTERFACE
   1181 
   1182     /*** IUnknown methods ***/
   1183     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1184         IAgileReference *This,
   1185         REFIID riid,
   1186         void **ppvObject);
   1187 
   1188     ULONG (STDMETHODCALLTYPE *AddRef)(
   1189         IAgileReference *This);
   1190 
   1191     ULONG (STDMETHODCALLTYPE *Release)(
   1192         IAgileReference *This);
   1193 
   1194     /*** IAgileReference methods ***/
   1195     HRESULT (STDMETHODCALLTYPE *Resolve)(
   1196         IAgileReference *This,
   1197         REFIID riid,
   1198         void **ppv);
   1199 
   1200     END_INTERFACE
   1201 } IAgileReferenceVtbl;
   1202 
   1203 interface IAgileReference {
   1204     CONST_VTBL IAgileReferenceVtbl* lpVtbl;
   1205 };
   1206 
   1207 #ifdef COBJMACROS
   1208 #ifndef WIDL_C_INLINE_WRAPPERS
   1209 /*** IUnknown methods ***/
   1210 #define IAgileReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1211 #define IAgileReference_AddRef(This) (This)->lpVtbl->AddRef(This)
   1212 #define IAgileReference_Release(This) (This)->lpVtbl->Release(This)
   1213 /*** IAgileReference methods ***/
   1214 #define IAgileReference_Resolve(This,riid,ppv) (This)->lpVtbl->Resolve(This,riid,ppv)
   1215 #else
   1216 /*** IUnknown methods ***/
   1217 static inline HRESULT IAgileReference_QueryInterface(IAgileReference* This,REFIID riid,void **ppvObject) {
   1218     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1219 }
   1220 static inline ULONG IAgileReference_AddRef(IAgileReference* This) {
   1221     return This->lpVtbl->AddRef(This);
   1222 }
   1223 static inline ULONG IAgileReference_Release(IAgileReference* This) {
   1224     return This->lpVtbl->Release(This);
   1225 }
   1226 /*** IAgileReference methods ***/
   1227 static inline HRESULT IAgileReference_Resolve(IAgileReference* This,REFIID riid,void **ppv) {
   1228     return This->lpVtbl->Resolve(This,riid,ppv);
   1229 }
   1230 #endif
   1231 #endif
   1232 
   1233 #endif
   1234 
   1235 
   1236 #endif  /* __IAgileReference_INTERFACE_DEFINED__ */
   1237 
   1238 #endif
   1239 
   1240 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   1241 /*****************************************************************************
   1242  * IMarshal2 interface
   1243  */
   1244 #ifndef __IMarshal2_INTERFACE_DEFINED__
   1245 #define __IMarshal2_INTERFACE_DEFINED__
   1246 
   1247 typedef IMarshal2 *LPMARSHAL2;
   1248 DEFINE_GUID(IID_IMarshal2, 0x000001cf, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1249 #if defined(__cplusplus) && !defined(CINTERFACE)
   1250 MIDL_INTERFACE("000001cf-0000-0000-c000-000000000046")
   1251 IMarshal2 : public IMarshal
   1252 {
   1253 };
   1254 #ifdef __CRT_UUID_DECL
   1255 __CRT_UUID_DECL(IMarshal2, 0x000001cf, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1256 #endif
   1257 #else
   1258 typedef struct IMarshal2Vtbl {
   1259     BEGIN_INTERFACE
   1260 
   1261     /*** IUnknown methods ***/
   1262     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1263         IMarshal2 *This,
   1264         REFIID riid,
   1265         void **ppvObject);
   1266 
   1267     ULONG (STDMETHODCALLTYPE *AddRef)(
   1268         IMarshal2 *This);
   1269 
   1270     ULONG (STDMETHODCALLTYPE *Release)(
   1271         IMarshal2 *This);
   1272 
   1273     /*** IMarshal methods ***/
   1274     HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
   1275         IMarshal2 *This,
   1276         REFIID riid,
   1277         void *pv,
   1278         DWORD dwDestContext,
   1279         void *pvDestContext,
   1280         DWORD mshlflags,
   1281         CLSID *pCid);
   1282 
   1283     HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
   1284         IMarshal2 *This,
   1285         REFIID riid,
   1286         void *pv,
   1287         DWORD dwDestContext,
   1288         void *pvDestContext,
   1289         DWORD mshlflags,
   1290         DWORD *pSize);
   1291 
   1292     HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
   1293         IMarshal2 *This,
   1294         IStream *pStm,
   1295         REFIID riid,
   1296         void *pv,
   1297         DWORD dwDestContext,
   1298         void *pvDestContext,
   1299         DWORD mshlflags);
   1300 
   1301     HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
   1302         IMarshal2 *This,
   1303         IStream *pStm,
   1304         REFIID riid,
   1305         void **ppv);
   1306 
   1307     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
   1308         IMarshal2 *This,
   1309         IStream *pStm);
   1310 
   1311     HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
   1312         IMarshal2 *This,
   1313         DWORD dwReserved);
   1314 
   1315     END_INTERFACE
   1316 } IMarshal2Vtbl;
   1317 
   1318 interface IMarshal2 {
   1319     CONST_VTBL IMarshal2Vtbl* lpVtbl;
   1320 };
   1321 
   1322 #ifdef COBJMACROS
   1323 #ifndef WIDL_C_INLINE_WRAPPERS
   1324 /*** IUnknown methods ***/
   1325 #define IMarshal2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1326 #define IMarshal2_AddRef(This) (This)->lpVtbl->AddRef(This)
   1327 #define IMarshal2_Release(This) (This)->lpVtbl->Release(This)
   1328 /*** IMarshal methods ***/
   1329 #define IMarshal2_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) (This)->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid)
   1330 #define IMarshal2_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) (This)->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize)
   1331 #define IMarshal2_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) (This)->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags)
   1332 #define IMarshal2_UnmarshalInterface(This,pStm,riid,ppv) (This)->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv)
   1333 #define IMarshal2_ReleaseMarshalData(This,pStm) (This)->lpVtbl->ReleaseMarshalData(This,pStm)
   1334 #define IMarshal2_DisconnectObject(This,dwReserved) (This)->lpVtbl->DisconnectObject(This,dwReserved)
   1335 #else
   1336 /*** IUnknown methods ***/
   1337 static inline HRESULT IMarshal2_QueryInterface(IMarshal2* This,REFIID riid,void **ppvObject) {
   1338     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1339 }
   1340 static inline ULONG IMarshal2_AddRef(IMarshal2* This) {
   1341     return This->lpVtbl->AddRef(This);
   1342 }
   1343 static inline ULONG IMarshal2_Release(IMarshal2* This) {
   1344     return This->lpVtbl->Release(This);
   1345 }
   1346 /*** IMarshal methods ***/
   1347 static inline HRESULT IMarshal2_GetUnmarshalClass(IMarshal2* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,CLSID *pCid) {
   1348     return This->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid);
   1349 }
   1350 static inline HRESULT IMarshal2_GetMarshalSizeMax(IMarshal2* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,DWORD *pSize) {
   1351     return This->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize);
   1352 }
   1353 static inline HRESULT IMarshal2_MarshalInterface(IMarshal2* This,IStream *pStm,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags) {
   1354     return This->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags);
   1355 }
   1356 static inline HRESULT IMarshal2_UnmarshalInterface(IMarshal2* This,IStream *pStm,REFIID riid,void **ppv) {
   1357     return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
   1358 }
   1359 static inline HRESULT IMarshal2_ReleaseMarshalData(IMarshal2* This,IStream *pStm) {
   1360     return This->lpVtbl->ReleaseMarshalData(This,pStm);
   1361 }
   1362 static inline HRESULT IMarshal2_DisconnectObject(IMarshal2* This,DWORD dwReserved) {
   1363     return This->lpVtbl->DisconnectObject(This,dwReserved);
   1364 }
   1365 #endif
   1366 #endif
   1367 
   1368 #endif
   1369 
   1370 
   1371 #endif  /* __IMarshal2_INTERFACE_DEFINED__ */
   1372 
   1373 
   1374 /*****************************************************************************
   1375  * IMalloc interface
   1376  */
   1377 #ifndef __IMalloc_INTERFACE_DEFINED__
   1378 #define __IMalloc_INTERFACE_DEFINED__
   1379 
   1380 typedef IMalloc *LPMALLOC;
   1381 
   1382 DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1383 #if defined(__cplusplus) && !defined(CINTERFACE)
   1384 MIDL_INTERFACE("00000002-0000-0000-c000-000000000046")
   1385 IMalloc : public IUnknown
   1386 {
   1387     virtual void * STDMETHODCALLTYPE Alloc(
   1388         SIZE_T cb) = 0;
   1389 
   1390     virtual void * STDMETHODCALLTYPE Realloc(
   1391         void *pv,
   1392         SIZE_T cb) = 0;
   1393 
   1394     virtual void STDMETHODCALLTYPE Free(
   1395         void *pv) = 0;
   1396 
   1397     virtual SIZE_T STDMETHODCALLTYPE GetSize(
   1398         void *pv) = 0;
   1399 
   1400     virtual int STDMETHODCALLTYPE DidAlloc(
   1401         void *pv) = 0;
   1402 
   1403     virtual void STDMETHODCALLTYPE HeapMinimize(
   1404         ) = 0;
   1405 
   1406 };
   1407 #ifdef __CRT_UUID_DECL
   1408 __CRT_UUID_DECL(IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1409 #endif
   1410 #else
   1411 typedef struct IMallocVtbl {
   1412     BEGIN_INTERFACE
   1413 
   1414     /*** IUnknown methods ***/
   1415     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1416         IMalloc *This,
   1417         REFIID riid,
   1418         void **ppvObject);
   1419 
   1420     ULONG (STDMETHODCALLTYPE *AddRef)(
   1421         IMalloc *This);
   1422 
   1423     ULONG (STDMETHODCALLTYPE *Release)(
   1424         IMalloc *This);
   1425 
   1426     /*** IMalloc methods ***/
   1427     void * (STDMETHODCALLTYPE *Alloc)(
   1428         IMalloc *This,
   1429         SIZE_T cb);
   1430 
   1431     void * (STDMETHODCALLTYPE *Realloc)(
   1432         IMalloc *This,
   1433         void *pv,
   1434         SIZE_T cb);
   1435 
   1436     void (STDMETHODCALLTYPE *Free)(
   1437         IMalloc *This,
   1438         void *pv);
   1439 
   1440     SIZE_T (STDMETHODCALLTYPE *GetSize)(
   1441         IMalloc *This,
   1442         void *pv);
   1443 
   1444     int (STDMETHODCALLTYPE *DidAlloc)(
   1445         IMalloc *This,
   1446         void *pv);
   1447 
   1448     void (STDMETHODCALLTYPE *HeapMinimize)(
   1449         IMalloc *This);
   1450 
   1451     END_INTERFACE
   1452 } IMallocVtbl;
   1453 
   1454 interface IMalloc {
   1455     CONST_VTBL IMallocVtbl* lpVtbl;
   1456 };
   1457 
   1458 #ifdef COBJMACROS
   1459 #ifndef WIDL_C_INLINE_WRAPPERS
   1460 /*** IUnknown methods ***/
   1461 #define IMalloc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1462 #define IMalloc_AddRef(This) (This)->lpVtbl->AddRef(This)
   1463 #define IMalloc_Release(This) (This)->lpVtbl->Release(This)
   1464 /*** IMalloc methods ***/
   1465 #define IMalloc_Alloc(This,cb) (This)->lpVtbl->Alloc(This,cb)
   1466 #define IMalloc_Realloc(This,pv,cb) (This)->lpVtbl->Realloc(This,pv,cb)
   1467 #define IMalloc_Free(This,pv) (This)->lpVtbl->Free(This,pv)
   1468 #define IMalloc_GetSize(This,pv) (This)->lpVtbl->GetSize(This,pv)
   1469 #define IMalloc_DidAlloc(This,pv) (This)->lpVtbl->DidAlloc(This,pv)
   1470 #define IMalloc_HeapMinimize(This) (This)->lpVtbl->HeapMinimize(This)
   1471 #else
   1472 /*** IUnknown methods ***/
   1473 static inline HRESULT IMalloc_QueryInterface(IMalloc* This,REFIID riid,void **ppvObject) {
   1474     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1475 }
   1476 static inline ULONG IMalloc_AddRef(IMalloc* This) {
   1477     return This->lpVtbl->AddRef(This);
   1478 }
   1479 static inline ULONG IMalloc_Release(IMalloc* This) {
   1480     return This->lpVtbl->Release(This);
   1481 }
   1482 /*** IMalloc methods ***/
   1483 static inline void * IMalloc_Alloc(IMalloc* This,SIZE_T cb) {
   1484     return This->lpVtbl->Alloc(This,cb);
   1485 }
   1486 static inline void * IMalloc_Realloc(IMalloc* This,void *pv,SIZE_T cb) {
   1487     return This->lpVtbl->Realloc(This,pv,cb);
   1488 }
   1489 static inline void IMalloc_Free(IMalloc* This,void *pv) {
   1490     This->lpVtbl->Free(This,pv);
   1491 }
   1492 static inline SIZE_T IMalloc_GetSize(IMalloc* This,void *pv) {
   1493     return This->lpVtbl->GetSize(This,pv);
   1494 }
   1495 static inline int IMalloc_DidAlloc(IMalloc* This,void *pv) {
   1496     return This->lpVtbl->DidAlloc(This,pv);
   1497 }
   1498 static inline void IMalloc_HeapMinimize(IMalloc* This) {
   1499     This->lpVtbl->HeapMinimize(This);
   1500 }
   1501 #endif
   1502 #endif
   1503 
   1504 #endif
   1505 
   1506 
   1507 #endif  /* __IMalloc_INTERFACE_DEFINED__ */
   1508 
   1509 
   1510 /*****************************************************************************
   1511  * IStdMarshalInfo interface
   1512  */
   1513 #ifndef __IStdMarshalInfo_INTERFACE_DEFINED__
   1514 #define __IStdMarshalInfo_INTERFACE_DEFINED__
   1515 
   1516 typedef IStdMarshalInfo *LPSTDMARSHALINFO;
   1517 
   1518 DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1519 #if defined(__cplusplus) && !defined(CINTERFACE)
   1520 MIDL_INTERFACE("00000018-0000-0000-c000-000000000046")
   1521 IStdMarshalInfo : public IUnknown
   1522 {
   1523     virtual HRESULT STDMETHODCALLTYPE GetClassForHandler(
   1524         DWORD dwDestContext,
   1525         void *pvDestContext,
   1526         CLSID *pClsid) = 0;
   1527 
   1528 };
   1529 #ifdef __CRT_UUID_DECL
   1530 __CRT_UUID_DECL(IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1531 #endif
   1532 #else
   1533 typedef struct IStdMarshalInfoVtbl {
   1534     BEGIN_INTERFACE
   1535 
   1536     /*** IUnknown methods ***/
   1537     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1538         IStdMarshalInfo *This,
   1539         REFIID riid,
   1540         void **ppvObject);
   1541 
   1542     ULONG (STDMETHODCALLTYPE *AddRef)(
   1543         IStdMarshalInfo *This);
   1544 
   1545     ULONG (STDMETHODCALLTYPE *Release)(
   1546         IStdMarshalInfo *This);
   1547 
   1548     /*** IStdMarshalInfo methods ***/
   1549     HRESULT (STDMETHODCALLTYPE *GetClassForHandler)(
   1550         IStdMarshalInfo *This,
   1551         DWORD dwDestContext,
   1552         void *pvDestContext,
   1553         CLSID *pClsid);
   1554 
   1555     END_INTERFACE
   1556 } IStdMarshalInfoVtbl;
   1557 
   1558 interface IStdMarshalInfo {
   1559     CONST_VTBL IStdMarshalInfoVtbl* lpVtbl;
   1560 };
   1561 
   1562 #ifdef COBJMACROS
   1563 #ifndef WIDL_C_INLINE_WRAPPERS
   1564 /*** IUnknown methods ***/
   1565 #define IStdMarshalInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1566 #define IStdMarshalInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   1567 #define IStdMarshalInfo_Release(This) (This)->lpVtbl->Release(This)
   1568 /*** IStdMarshalInfo methods ***/
   1569 #define IStdMarshalInfo_GetClassForHandler(This,dwDestContext,pvDestContext,pClsid) (This)->lpVtbl->GetClassForHandler(This,dwDestContext,pvDestContext,pClsid)
   1570 #else
   1571 /*** IUnknown methods ***/
   1572 static inline HRESULT IStdMarshalInfo_QueryInterface(IStdMarshalInfo* This,REFIID riid,void **ppvObject) {
   1573     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1574 }
   1575 static inline ULONG IStdMarshalInfo_AddRef(IStdMarshalInfo* This) {
   1576     return This->lpVtbl->AddRef(This);
   1577 }
   1578 static inline ULONG IStdMarshalInfo_Release(IStdMarshalInfo* This) {
   1579     return This->lpVtbl->Release(This);
   1580 }
   1581 /*** IStdMarshalInfo methods ***/
   1582 static inline HRESULT IStdMarshalInfo_GetClassForHandler(IStdMarshalInfo* This,DWORD dwDestContext,void *pvDestContext,CLSID *pClsid) {
   1583     return This->lpVtbl->GetClassForHandler(This,dwDestContext,pvDestContext,pClsid);
   1584 }
   1585 #endif
   1586 #endif
   1587 
   1588 #endif
   1589 
   1590 
   1591 #endif  /* __IStdMarshalInfo_INTERFACE_DEFINED__ */
   1592 
   1593 
   1594 /*****************************************************************************
   1595  * IExternalConnection interface
   1596  */
   1597 #ifndef __IExternalConnection_INTERFACE_DEFINED__
   1598 #define __IExternalConnection_INTERFACE_DEFINED__
   1599 
   1600 typedef IExternalConnection *LPEXTERNALCONNECTION;
   1601 
   1602 typedef enum tagEXTCONN {
   1603     EXTCONN_STRONG = 0x1,
   1604     EXTCONN_WEAK = 0x2,
   1605     EXTCONN_CALLABLE = 0x4
   1606 } EXTCONN;
   1607 
   1608 DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1609 #if defined(__cplusplus) && !defined(CINTERFACE)
   1610 MIDL_INTERFACE("00000019-0000-0000-c000-000000000046")
   1611 IExternalConnection : public IUnknown
   1612 {
   1613     virtual DWORD STDMETHODCALLTYPE AddConnection(
   1614         DWORD extconn,
   1615         DWORD reserved) = 0;
   1616 
   1617     virtual DWORD STDMETHODCALLTYPE ReleaseConnection(
   1618         DWORD extconn,
   1619         DWORD reserved,
   1620         WINBOOL fLastReleaseCloses) = 0;
   1621 
   1622 };
   1623 #ifdef __CRT_UUID_DECL
   1624 __CRT_UUID_DECL(IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1625 #endif
   1626 #else
   1627 typedef struct IExternalConnectionVtbl {
   1628     BEGIN_INTERFACE
   1629 
   1630     /*** IUnknown methods ***/
   1631     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1632         IExternalConnection *This,
   1633         REFIID riid,
   1634         void **ppvObject);
   1635 
   1636     ULONG (STDMETHODCALLTYPE *AddRef)(
   1637         IExternalConnection *This);
   1638 
   1639     ULONG (STDMETHODCALLTYPE *Release)(
   1640         IExternalConnection *This);
   1641 
   1642     /*** IExternalConnection methods ***/
   1643     DWORD (STDMETHODCALLTYPE *AddConnection)(
   1644         IExternalConnection *This,
   1645         DWORD extconn,
   1646         DWORD reserved);
   1647 
   1648     DWORD (STDMETHODCALLTYPE *ReleaseConnection)(
   1649         IExternalConnection *This,
   1650         DWORD extconn,
   1651         DWORD reserved,
   1652         WINBOOL fLastReleaseCloses);
   1653 
   1654     END_INTERFACE
   1655 } IExternalConnectionVtbl;
   1656 
   1657 interface IExternalConnection {
   1658     CONST_VTBL IExternalConnectionVtbl* lpVtbl;
   1659 };
   1660 
   1661 #ifdef COBJMACROS
   1662 #ifndef WIDL_C_INLINE_WRAPPERS
   1663 /*** IUnknown methods ***/
   1664 #define IExternalConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1665 #define IExternalConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
   1666 #define IExternalConnection_Release(This) (This)->lpVtbl->Release(This)
   1667 /*** IExternalConnection methods ***/
   1668 #define IExternalConnection_AddConnection(This,extconn,reserved) (This)->lpVtbl->AddConnection(This,extconn,reserved)
   1669 #define IExternalConnection_ReleaseConnection(This,extconn,reserved,fLastReleaseCloses) (This)->lpVtbl->ReleaseConnection(This,extconn,reserved,fLastReleaseCloses)
   1670 #else
   1671 /*** IUnknown methods ***/
   1672 static inline HRESULT IExternalConnection_QueryInterface(IExternalConnection* This,REFIID riid,void **ppvObject) {
   1673     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1674 }
   1675 static inline ULONG IExternalConnection_AddRef(IExternalConnection* This) {
   1676     return This->lpVtbl->AddRef(This);
   1677 }
   1678 static inline ULONG IExternalConnection_Release(IExternalConnection* This) {
   1679     return This->lpVtbl->Release(This);
   1680 }
   1681 /*** IExternalConnection methods ***/
   1682 static inline DWORD IExternalConnection_AddConnection(IExternalConnection* This,DWORD extconn,DWORD reserved) {
   1683     return This->lpVtbl->AddConnection(This,extconn,reserved);
   1684 }
   1685 static inline DWORD IExternalConnection_ReleaseConnection(IExternalConnection* This,DWORD extconn,DWORD reserved,WINBOOL fLastReleaseCloses) {
   1686     return This->lpVtbl->ReleaseConnection(This,extconn,reserved,fLastReleaseCloses);
   1687 }
   1688 #endif
   1689 #endif
   1690 
   1691 #endif
   1692 
   1693 
   1694 #endif  /* __IExternalConnection_INTERFACE_DEFINED__ */
   1695 
   1696 
   1697 typedef IMultiQI *LPMULTIQI;
   1698 #endif
   1699 
   1700 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   1701 typedef struct tagMULTI_QI {
   1702     const IID *pIID;
   1703     IUnknown *pItf;
   1704     HRESULT hr;
   1705 } MULTI_QI;
   1706 
   1707 /*****************************************************************************
   1708  * IMultiQI interface
   1709  */
   1710 #ifndef __IMultiQI_INTERFACE_DEFINED__
   1711 #define __IMultiQI_INTERFACE_DEFINED__
   1712 
   1713 DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1714 #if defined(__cplusplus) && !defined(CINTERFACE)
   1715 MIDL_INTERFACE("00000020-0000-0000-c000-000000000046")
   1716 IMultiQI : public IUnknown
   1717 {
   1718     virtual HRESULT STDMETHODCALLTYPE QueryMultipleInterfaces(
   1719         ULONG cMQIs,
   1720         MULTI_QI *pMQIs) = 0;
   1721 
   1722 };
   1723 #ifdef __CRT_UUID_DECL
   1724 __CRT_UUID_DECL(IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1725 #endif
   1726 #else
   1727 typedef struct IMultiQIVtbl {
   1728     BEGIN_INTERFACE
   1729 
   1730     /*** IUnknown methods ***/
   1731     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1732         IMultiQI *This,
   1733         REFIID riid,
   1734         void **ppvObject);
   1735 
   1736     ULONG (STDMETHODCALLTYPE *AddRef)(
   1737         IMultiQI *This);
   1738 
   1739     ULONG (STDMETHODCALLTYPE *Release)(
   1740         IMultiQI *This);
   1741 
   1742     /*** IMultiQI methods ***/
   1743     HRESULT (STDMETHODCALLTYPE *QueryMultipleInterfaces)(
   1744         IMultiQI *This,
   1745         ULONG cMQIs,
   1746         MULTI_QI *pMQIs);
   1747 
   1748     END_INTERFACE
   1749 } IMultiQIVtbl;
   1750 
   1751 interface IMultiQI {
   1752     CONST_VTBL IMultiQIVtbl* lpVtbl;
   1753 };
   1754 
   1755 #ifdef COBJMACROS
   1756 #ifndef WIDL_C_INLINE_WRAPPERS
   1757 /*** IUnknown methods ***/
   1758 #define IMultiQI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1759 #define IMultiQI_AddRef(This) (This)->lpVtbl->AddRef(This)
   1760 #define IMultiQI_Release(This) (This)->lpVtbl->Release(This)
   1761 /*** IMultiQI methods ***/
   1762 #define IMultiQI_QueryMultipleInterfaces(This,cMQIs,pMQIs) (This)->lpVtbl->QueryMultipleInterfaces(This,cMQIs,pMQIs)
   1763 #else
   1764 /*** IUnknown methods ***/
   1765 static inline HRESULT IMultiQI_QueryInterface(IMultiQI* This,REFIID riid,void **ppvObject) {
   1766     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1767 }
   1768 static inline ULONG IMultiQI_AddRef(IMultiQI* This) {
   1769     return This->lpVtbl->AddRef(This);
   1770 }
   1771 static inline ULONG IMultiQI_Release(IMultiQI* This) {
   1772     return This->lpVtbl->Release(This);
   1773 }
   1774 /*** IMultiQI methods ***/
   1775 static inline HRESULT IMultiQI_QueryMultipleInterfaces(IMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
   1776     return This->lpVtbl->QueryMultipleInterfaces(This,cMQIs,pMQIs);
   1777 }
   1778 #endif
   1779 #endif
   1780 
   1781 #endif
   1782 
   1783 
   1784 #endif  /* __IMultiQI_INTERFACE_DEFINED__ */
   1785 
   1786 /*****************************************************************************
   1787  * AsyncIMultiQI interface
   1788  */
   1789 #ifndef __AsyncIMultiQI_INTERFACE_DEFINED__
   1790 #define __AsyncIMultiQI_INTERFACE_DEFINED__
   1791 
   1792 DEFINE_GUID(IID_AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1793 #if defined(__cplusplus) && !defined(CINTERFACE)
   1794 MIDL_INTERFACE("000e0020-0000-0000-c000-000000000046")
   1795 AsyncIMultiQI : public IUnknown
   1796 {
   1797     virtual HRESULT STDMETHODCALLTYPE Begin_QueryMultipleInterfaces(
   1798         ULONG cMQIs,
   1799         MULTI_QI *pMQIs) = 0;
   1800 
   1801     virtual HRESULT STDMETHODCALLTYPE Finish_QueryMultipleInterfaces(
   1802         MULTI_QI *pMQIs) = 0;
   1803 
   1804 };
   1805 #ifdef __CRT_UUID_DECL
   1806 __CRT_UUID_DECL(AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1807 #endif
   1808 #else
   1809 typedef struct AsyncIMultiQIVtbl {
   1810     BEGIN_INTERFACE
   1811 
   1812     /*** IUnknown methods ***/
   1813     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1814         AsyncIMultiQI *This,
   1815         REFIID riid,
   1816         void **ppvObject);
   1817 
   1818     ULONG (STDMETHODCALLTYPE *AddRef)(
   1819         AsyncIMultiQI *This);
   1820 
   1821     ULONG (STDMETHODCALLTYPE *Release)(
   1822         AsyncIMultiQI *This);
   1823 
   1824     /*** AsyncIMultiQI methods ***/
   1825     HRESULT (STDMETHODCALLTYPE *Begin_QueryMultipleInterfaces)(
   1826         AsyncIMultiQI *This,
   1827         ULONG cMQIs,
   1828         MULTI_QI *pMQIs);
   1829 
   1830     HRESULT (STDMETHODCALLTYPE *Finish_QueryMultipleInterfaces)(
   1831         AsyncIMultiQI *This,
   1832         MULTI_QI *pMQIs);
   1833 
   1834     END_INTERFACE
   1835 } AsyncIMultiQIVtbl;
   1836 
   1837 interface AsyncIMultiQI {
   1838     CONST_VTBL AsyncIMultiQIVtbl* lpVtbl;
   1839 };
   1840 
   1841 #ifdef COBJMACROS
   1842 #ifndef WIDL_C_INLINE_WRAPPERS
   1843 /*** IUnknown methods ***/
   1844 #define AsyncIMultiQI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1845 #define AsyncIMultiQI_AddRef(This) (This)->lpVtbl->AddRef(This)
   1846 #define AsyncIMultiQI_Release(This) (This)->lpVtbl->Release(This)
   1847 /*** AsyncIMultiQI methods ***/
   1848 #define AsyncIMultiQI_Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs) (This)->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs)
   1849 #define AsyncIMultiQI_Finish_QueryMultipleInterfaces(This,pMQIs) (This)->lpVtbl->Finish_QueryMultipleInterfaces(This,pMQIs)
   1850 #else
   1851 /*** IUnknown methods ***/
   1852 static inline HRESULT AsyncIMultiQI_QueryInterface(AsyncIMultiQI* This,REFIID riid,void **ppvObject) {
   1853     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1854 }
   1855 static inline ULONG AsyncIMultiQI_AddRef(AsyncIMultiQI* This) {
   1856     return This->lpVtbl->AddRef(This);
   1857 }
   1858 static inline ULONG AsyncIMultiQI_Release(AsyncIMultiQI* This) {
   1859     return This->lpVtbl->Release(This);
   1860 }
   1861 /*** AsyncIMultiQI methods ***/
   1862 static inline HRESULT AsyncIMultiQI_Begin_QueryMultipleInterfaces(AsyncIMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
   1863     return This->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs);
   1864 }
   1865 static inline HRESULT AsyncIMultiQI_Finish_QueryMultipleInterfaces(AsyncIMultiQI* This,MULTI_QI *pMQIs) {
   1866     return This->lpVtbl->Finish_QueryMultipleInterfaces(This,pMQIs);
   1867 }
   1868 #endif
   1869 #endif
   1870 
   1871 #endif
   1872 
   1873 
   1874 #endif  /* __AsyncIMultiQI_INTERFACE_DEFINED__ */
   1875 
   1876 #endif
   1877 
   1878 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   1879 /*****************************************************************************
   1880  * IInternalUnknown interface
   1881  */
   1882 #ifndef __IInternalUnknown_INTERFACE_DEFINED__
   1883 #define __IInternalUnknown_INTERFACE_DEFINED__
   1884 
   1885 DEFINE_GUID(IID_IInternalUnknown, 0x00000021, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1886 #if defined(__cplusplus) && !defined(CINTERFACE)
   1887 MIDL_INTERFACE("00000021-0000-0000-c000-000000000046")
   1888 IInternalUnknown : public IUnknown
   1889 {
   1890     virtual HRESULT STDMETHODCALLTYPE QueryInternalInterface(
   1891         REFIID riid,
   1892         void **ppv) = 0;
   1893 
   1894 };
   1895 #ifdef __CRT_UUID_DECL
   1896 __CRT_UUID_DECL(IInternalUnknown, 0x00000021, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1897 #endif
   1898 #else
   1899 typedef struct IInternalUnknownVtbl {
   1900     BEGIN_INTERFACE
   1901 
   1902     /*** IUnknown methods ***/
   1903     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1904         IInternalUnknown *This,
   1905         REFIID riid,
   1906         void **ppvObject);
   1907 
   1908     ULONG (STDMETHODCALLTYPE *AddRef)(
   1909         IInternalUnknown *This);
   1910 
   1911     ULONG (STDMETHODCALLTYPE *Release)(
   1912         IInternalUnknown *This);
   1913 
   1914     /*** IInternalUnknown methods ***/
   1915     HRESULT (STDMETHODCALLTYPE *QueryInternalInterface)(
   1916         IInternalUnknown *This,
   1917         REFIID riid,
   1918         void **ppv);
   1919 
   1920     END_INTERFACE
   1921 } IInternalUnknownVtbl;
   1922 
   1923 interface IInternalUnknown {
   1924     CONST_VTBL IInternalUnknownVtbl* lpVtbl;
   1925 };
   1926 
   1927 #ifdef COBJMACROS
   1928 #ifndef WIDL_C_INLINE_WRAPPERS
   1929 /*** IUnknown methods ***/
   1930 #define IInternalUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1931 #define IInternalUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
   1932 #define IInternalUnknown_Release(This) (This)->lpVtbl->Release(This)
   1933 /*** IInternalUnknown methods ***/
   1934 #define IInternalUnknown_QueryInternalInterface(This,riid,ppv) (This)->lpVtbl->QueryInternalInterface(This,riid,ppv)
   1935 #else
   1936 /*** IUnknown methods ***/
   1937 static inline HRESULT IInternalUnknown_QueryInterface(IInternalUnknown* This,REFIID riid,void **ppvObject) {
   1938     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1939 }
   1940 static inline ULONG IInternalUnknown_AddRef(IInternalUnknown* This) {
   1941     return This->lpVtbl->AddRef(This);
   1942 }
   1943 static inline ULONG IInternalUnknown_Release(IInternalUnknown* This) {
   1944     return This->lpVtbl->Release(This);
   1945 }
   1946 /*** IInternalUnknown methods ***/
   1947 static inline HRESULT IInternalUnknown_QueryInternalInterface(IInternalUnknown* This,REFIID riid,void **ppv) {
   1948     return This->lpVtbl->QueryInternalInterface(This,riid,ppv);
   1949 }
   1950 #endif
   1951 #endif
   1952 
   1953 #endif
   1954 
   1955 
   1956 #endif  /* __IInternalUnknown_INTERFACE_DEFINED__ */
   1957 
   1958 #endif
   1959 
   1960 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   1961 /*****************************************************************************
   1962  * IEnumUnknown interface
   1963  */
   1964 #ifndef __IEnumUnknown_INTERFACE_DEFINED__
   1965 #define __IEnumUnknown_INTERFACE_DEFINED__
   1966 
   1967 typedef IEnumUnknown *LPENUMUNKNOWN;
   1968 
   1969 DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1970 #if defined(__cplusplus) && !defined(CINTERFACE)
   1971 MIDL_INTERFACE("00000100-0000-0000-c000-000000000046")
   1972 IEnumUnknown : public IUnknown
   1973 {
   1974     virtual HRESULT STDMETHODCALLTYPE Next(
   1975         ULONG celt,
   1976         IUnknown **rgelt,
   1977         ULONG *pceltFetched) = 0;
   1978 
   1979     virtual HRESULT STDMETHODCALLTYPE Skip(
   1980         ULONG celt) = 0;
   1981 
   1982     virtual HRESULT STDMETHODCALLTYPE Reset(
   1983         ) = 0;
   1984 
   1985     virtual HRESULT STDMETHODCALLTYPE Clone(
   1986         IEnumUnknown **ppenum) = 0;
   1987 
   1988 };
   1989 #ifdef __CRT_UUID_DECL
   1990 __CRT_UUID_DECL(IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1991 #endif
   1992 #else
   1993 typedef struct IEnumUnknownVtbl {
   1994     BEGIN_INTERFACE
   1995 
   1996     /*** IUnknown methods ***/
   1997     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1998         IEnumUnknown *This,
   1999         REFIID riid,
   2000         void **ppvObject);
   2001 
   2002     ULONG (STDMETHODCALLTYPE *AddRef)(
   2003         IEnumUnknown *This);
   2004 
   2005     ULONG (STDMETHODCALLTYPE *Release)(
   2006         IEnumUnknown *This);
   2007 
   2008     /*** IEnumUnknown methods ***/
   2009     HRESULT (STDMETHODCALLTYPE *Next)(
   2010         IEnumUnknown *This,
   2011         ULONG celt,
   2012         IUnknown **rgelt,
   2013         ULONG *pceltFetched);
   2014 
   2015     HRESULT (STDMETHODCALLTYPE *Skip)(
   2016         IEnumUnknown *This,
   2017         ULONG celt);
   2018 
   2019     HRESULT (STDMETHODCALLTYPE *Reset)(
   2020         IEnumUnknown *This);
   2021 
   2022     HRESULT (STDMETHODCALLTYPE *Clone)(
   2023         IEnumUnknown *This,
   2024         IEnumUnknown **ppenum);
   2025 
   2026     END_INTERFACE
   2027 } IEnumUnknownVtbl;
   2028 
   2029 interface IEnumUnknown {
   2030     CONST_VTBL IEnumUnknownVtbl* lpVtbl;
   2031 };
   2032 
   2033 #ifdef COBJMACROS
   2034 #ifndef WIDL_C_INLINE_WRAPPERS
   2035 /*** IUnknown methods ***/
   2036 #define IEnumUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2037 #define IEnumUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
   2038 #define IEnumUnknown_Release(This) (This)->lpVtbl->Release(This)
   2039 /*** IEnumUnknown methods ***/
   2040 #define IEnumUnknown_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   2041 #define IEnumUnknown_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   2042 #define IEnumUnknown_Reset(This) (This)->lpVtbl->Reset(This)
   2043 #define IEnumUnknown_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   2044 #else
   2045 /*** IUnknown methods ***/
   2046 static inline HRESULT IEnumUnknown_QueryInterface(IEnumUnknown* This,REFIID riid,void **ppvObject) {
   2047     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2048 }
   2049 static inline ULONG IEnumUnknown_AddRef(IEnumUnknown* This) {
   2050     return This->lpVtbl->AddRef(This);
   2051 }
   2052 static inline ULONG IEnumUnknown_Release(IEnumUnknown* This) {
   2053     return This->lpVtbl->Release(This);
   2054 }
   2055 /*** IEnumUnknown methods ***/
   2056 static inline HRESULT IEnumUnknown_Next(IEnumUnknown* This,ULONG celt,IUnknown **rgelt,ULONG *pceltFetched) {
   2057     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   2058 }
   2059 static inline HRESULT IEnumUnknown_Skip(IEnumUnknown* This,ULONG celt) {
   2060     return This->lpVtbl->Skip(This,celt);
   2061 }
   2062 static inline HRESULT IEnumUnknown_Reset(IEnumUnknown* This) {
   2063     return This->lpVtbl->Reset(This);
   2064 }
   2065 static inline HRESULT IEnumUnknown_Clone(IEnumUnknown* This,IEnumUnknown **ppenum) {
   2066     return This->lpVtbl->Clone(This,ppenum);
   2067 }
   2068 #endif
   2069 #endif
   2070 
   2071 #endif
   2072 
   2073 HRESULT STDMETHODCALLTYPE IEnumUnknown_RemoteNext_Proxy(
   2074     IEnumUnknown* This,
   2075     ULONG celt,
   2076     IUnknown **rgelt,
   2077     ULONG *pceltFetched);
   2078 void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
   2079     IRpcStubBuffer* This,
   2080     IRpcChannelBuffer* pRpcChannelBuffer,
   2081     PRPC_MESSAGE pRpcMessage,
   2082     DWORD* pdwStubPhase);
   2083 HRESULT CALLBACK IEnumUnknown_Next_Proxy(
   2084     IEnumUnknown* This,
   2085     ULONG celt,
   2086     IUnknown **rgelt,
   2087     ULONG *pceltFetched);
   2088 HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
   2089     IEnumUnknown* This,
   2090     ULONG celt,
   2091     IUnknown **rgelt,
   2092     ULONG *pceltFetched);
   2093 
   2094 #endif  /* __IEnumUnknown_INTERFACE_DEFINED__ */
   2095 
   2096 
   2097 /*****************************************************************************
   2098  * IEnumString interface
   2099  */
   2100 #ifndef __IEnumString_INTERFACE_DEFINED__
   2101 #define __IEnumString_INTERFACE_DEFINED__
   2102 
   2103 typedef IEnumString *LPENUMSTRING;
   2104 
   2105 DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   2106 #if defined(__cplusplus) && !defined(CINTERFACE)
   2107 MIDL_INTERFACE("00000101-0000-0000-c000-000000000046")
   2108 IEnumString : public IUnknown
   2109 {
   2110     virtual HRESULT STDMETHODCALLTYPE Next(
   2111         ULONG celt,
   2112         LPOLESTR *rgelt,
   2113         ULONG *pceltFetched) = 0;
   2114 
   2115     virtual HRESULT STDMETHODCALLTYPE Skip(
   2116         ULONG celt) = 0;
   2117 
   2118     virtual HRESULT STDMETHODCALLTYPE Reset(
   2119         ) = 0;
   2120 
   2121     virtual HRESULT STDMETHODCALLTYPE Clone(
   2122         IEnumString **ppenum) = 0;
   2123 
   2124 };
   2125 #ifdef __CRT_UUID_DECL
   2126 __CRT_UUID_DECL(IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   2127 #endif
   2128 #else
   2129 typedef struct IEnumStringVtbl {
   2130     BEGIN_INTERFACE
   2131 
   2132     /*** IUnknown methods ***/
   2133     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2134         IEnumString *This,
   2135         REFIID riid,
   2136         void **ppvObject);
   2137 
   2138     ULONG (STDMETHODCALLTYPE *AddRef)(
   2139         IEnumString *This);
   2140 
   2141     ULONG (STDMETHODCALLTYPE *Release)(
   2142         IEnumString *This);
   2143 
   2144     /*** IEnumString methods ***/
   2145     HRESULT (STDMETHODCALLTYPE *Next)(
   2146         IEnumString *This,
   2147         ULONG celt,
   2148         LPOLESTR *rgelt,
   2149         ULONG *pceltFetched);
   2150 
   2151     HRESULT (STDMETHODCALLTYPE *Skip)(
   2152         IEnumString *This,
   2153         ULONG celt);
   2154 
   2155     HRESULT (STDMETHODCALLTYPE *Reset)(
   2156         IEnumString *This);
   2157 
   2158     HRESULT (STDMETHODCALLTYPE *Clone)(
   2159         IEnumString *This,
   2160         IEnumString **ppenum);
   2161 
   2162     END_INTERFACE
   2163 } IEnumStringVtbl;
   2164 
   2165 interface IEnumString {
   2166     CONST_VTBL IEnumStringVtbl* lpVtbl;
   2167 };
   2168 
   2169 #ifdef COBJMACROS
   2170 #ifndef WIDL_C_INLINE_WRAPPERS
   2171 /*** IUnknown methods ***/
   2172 #define IEnumString_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2173 #define IEnumString_AddRef(This) (This)->lpVtbl->AddRef(This)
   2174 #define IEnumString_Release(This) (This)->lpVtbl->Release(This)
   2175 /*** IEnumString methods ***/
   2176 #define IEnumString_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   2177 #define IEnumString_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   2178 #define IEnumString_Reset(This) (This)->lpVtbl->Reset(This)
   2179 #define IEnumString_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   2180 #else
   2181 /*** IUnknown methods ***/
   2182 static inline HRESULT IEnumString_QueryInterface(IEnumString* This,REFIID riid,void **ppvObject) {
   2183     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2184 }
   2185 static inline ULONG IEnumString_AddRef(IEnumString* This) {
   2186     return This->lpVtbl->AddRef(This);
   2187 }
   2188 static inline ULONG IEnumString_Release(IEnumString* This) {
   2189     return This->lpVtbl->Release(This);
   2190 }
   2191 /*** IEnumString methods ***/
   2192 static inline HRESULT IEnumString_Next(IEnumString* This,ULONG celt,LPOLESTR *rgelt,ULONG *pceltFetched) {
   2193     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   2194 }
   2195 static inline HRESULT IEnumString_Skip(IEnumString* This,ULONG celt) {
   2196     return This->lpVtbl->Skip(This,celt);
   2197 }
   2198 static inline HRESULT IEnumString_Reset(IEnumString* This) {
   2199     return This->lpVtbl->Reset(This);
   2200 }
   2201 static inline HRESULT IEnumString_Clone(IEnumString* This,IEnumString **ppenum) {
   2202     return This->lpVtbl->Clone(This,ppenum);
   2203 }
   2204 #endif
   2205 #endif
   2206 
   2207 #endif
   2208 
   2209 HRESULT STDMETHODCALLTYPE IEnumString_RemoteNext_Proxy(
   2210     IEnumString* This,
   2211     ULONG celt,
   2212     LPOLESTR *rgelt,
   2213     ULONG *pceltFetched);
   2214 void __RPC_STUB IEnumString_RemoteNext_Stub(
   2215     IRpcStubBuffer* This,
   2216     IRpcChannelBuffer* pRpcChannelBuffer,
   2217     PRPC_MESSAGE pRpcMessage,
   2218     DWORD* pdwStubPhase);
   2219 HRESULT CALLBACK IEnumString_Next_Proxy(
   2220     IEnumString* This,
   2221     ULONG celt,
   2222     LPOLESTR *rgelt,
   2223     ULONG *pceltFetched);
   2224 HRESULT __RPC_STUB IEnumString_Next_Stub(
   2225     IEnumString* This,
   2226     ULONG celt,
   2227     LPOLESTR *rgelt,
   2228     ULONG *pceltFetched);
   2229 
   2230 #endif  /* __IEnumString_INTERFACE_DEFINED__ */
   2231 
   2232 
   2233 /*****************************************************************************
   2234  * ISequentialStream interface
   2235  */
   2236 #ifndef __ISequentialStream_INTERFACE_DEFINED__
   2237 #define __ISequentialStream_INTERFACE_DEFINED__
   2238 
   2239 DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
   2240 #if defined(__cplusplus) && !defined(CINTERFACE)
   2241 MIDL_INTERFACE("0c733a30-2a1c-11ce-ade5-00aa0044773d")
   2242 ISequentialStream : public IUnknown
   2243 {
   2244     virtual HRESULT STDMETHODCALLTYPE Read(
   2245         void *pv,
   2246         ULONG cb,
   2247         ULONG *pcbRead) = 0;
   2248 
   2249     virtual HRESULT STDMETHODCALLTYPE Write(
   2250         const void *pv,
   2251         ULONG cb,
   2252         ULONG *pcbWritten) = 0;
   2253 
   2254 };
   2255 #ifdef __CRT_UUID_DECL
   2256 __CRT_UUID_DECL(ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d)
   2257 #endif
   2258 #else
   2259 typedef struct ISequentialStreamVtbl {
   2260     BEGIN_INTERFACE
   2261 
   2262     /*** IUnknown methods ***/
   2263     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2264         ISequentialStream *This,
   2265         REFIID riid,
   2266         void **ppvObject);
   2267 
   2268     ULONG (STDMETHODCALLTYPE *AddRef)(
   2269         ISequentialStream *This);
   2270 
   2271     ULONG (STDMETHODCALLTYPE *Release)(
   2272         ISequentialStream *This);
   2273 
   2274     /*** ISequentialStream methods ***/
   2275     HRESULT (STDMETHODCALLTYPE *Read)(
   2276         ISequentialStream *This,
   2277         void *pv,
   2278         ULONG cb,
   2279         ULONG *pcbRead);
   2280 
   2281     HRESULT (STDMETHODCALLTYPE *Write)(
   2282         ISequentialStream *This,
   2283         const void *pv,
   2284         ULONG cb,
   2285         ULONG *pcbWritten);
   2286 
   2287     END_INTERFACE
   2288 } ISequentialStreamVtbl;
   2289 
   2290 interface ISequentialStream {
   2291     CONST_VTBL ISequentialStreamVtbl* lpVtbl;
   2292 };
   2293 
   2294 #ifdef COBJMACROS
   2295 #ifndef WIDL_C_INLINE_WRAPPERS
   2296 /*** IUnknown methods ***/
   2297 #define ISequentialStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2298 #define ISequentialStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   2299 #define ISequentialStream_Release(This) (This)->lpVtbl->Release(This)
   2300 /*** ISequentialStream methods ***/
   2301 #define ISequentialStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   2302 #define ISequentialStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   2303 #else
   2304 /*** IUnknown methods ***/
   2305 static inline HRESULT ISequentialStream_QueryInterface(ISequentialStream* This,REFIID riid,void **ppvObject) {
   2306     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2307 }
   2308 static inline ULONG ISequentialStream_AddRef(ISequentialStream* This) {
   2309     return This->lpVtbl->AddRef(This);
   2310 }
   2311 static inline ULONG ISequentialStream_Release(ISequentialStream* This) {
   2312     return This->lpVtbl->Release(This);
   2313 }
   2314 /*** ISequentialStream methods ***/
   2315 static inline HRESULT ISequentialStream_Read(ISequentialStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
   2316     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   2317 }
   2318 static inline HRESULT ISequentialStream_Write(ISequentialStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   2319     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   2320 }
   2321 #endif
   2322 #endif
   2323 
   2324 #endif
   2325 
   2326 HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteRead_Proxy(
   2327     ISequentialStream* This,
   2328     byte *pv,
   2329     ULONG cb,
   2330     ULONG *pcbRead);
   2331 void __RPC_STUB ISequentialStream_RemoteRead_Stub(
   2332     IRpcStubBuffer* This,
   2333     IRpcChannelBuffer* pRpcChannelBuffer,
   2334     PRPC_MESSAGE pRpcMessage,
   2335     DWORD* pdwStubPhase);
   2336 HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteWrite_Proxy(
   2337     ISequentialStream* This,
   2338     const byte *pv,
   2339     ULONG cb,
   2340     ULONG *pcbWritten);
   2341 void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
   2342     IRpcStubBuffer* This,
   2343     IRpcChannelBuffer* pRpcChannelBuffer,
   2344     PRPC_MESSAGE pRpcMessage,
   2345     DWORD* pdwStubPhase);
   2346 HRESULT CALLBACK ISequentialStream_Read_Proxy(
   2347     ISequentialStream* This,
   2348     void *pv,
   2349     ULONG cb,
   2350     ULONG *pcbRead);
   2351 HRESULT __RPC_STUB ISequentialStream_Read_Stub(
   2352     ISequentialStream* This,
   2353     byte *pv,
   2354     ULONG cb,
   2355     ULONG *pcbRead);
   2356 HRESULT CALLBACK ISequentialStream_Write_Proxy(
   2357     ISequentialStream* This,
   2358     const void *pv,
   2359     ULONG cb,
   2360     ULONG *pcbWritten);
   2361 HRESULT __RPC_STUB ISequentialStream_Write_Stub(
   2362     ISequentialStream* This,
   2363     const byte *pv,
   2364     ULONG cb,
   2365     ULONG *pcbWritten);
   2366 
   2367 #endif  /* __ISequentialStream_INTERFACE_DEFINED__ */
   2368 
   2369 
   2370 /*****************************************************************************
   2371  * IStream interface
   2372  */
   2373 #ifndef __IStream_INTERFACE_DEFINED__
   2374 #define __IStream_INTERFACE_DEFINED__
   2375 
   2376 typedef IStream *LPSTREAM;
   2377 
   2378 typedef struct tagSTATSTG {
   2379     LPOLESTR pwcsName;
   2380     DWORD type;
   2381     ULARGE_INTEGER cbSize;
   2382     FILETIME mtime;
   2383     FILETIME ctime;
   2384     FILETIME atime;
   2385     DWORD grfMode;
   2386     DWORD grfLocksSupported;
   2387     CLSID clsid;
   2388     DWORD grfStateBits;
   2389     DWORD reserved;
   2390 } STATSTG;
   2391 
   2392 typedef enum tagSTGTY {
   2393     STGTY_STORAGE = 1,
   2394     STGTY_STREAM = 2,
   2395     STGTY_LOCKBYTES = 3,
   2396     STGTY_PROPERTY = 4
   2397 } STGTY;
   2398 
   2399 typedef enum tagSTREAM_SEEK {
   2400     STREAM_SEEK_SET = 0,
   2401     STREAM_SEEK_CUR = 1,
   2402     STREAM_SEEK_END = 2
   2403 } STREAM_SEEK;
   2404 
   2405 typedef enum tagLOCKTYPE {
   2406     LOCK_WRITE = 1,
   2407     LOCK_EXCLUSIVE = 2,
   2408     LOCK_ONLYONCE = 4
   2409 } LOCKTYPE;
   2410 
   2411 DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   2412 #if defined(__cplusplus) && !defined(CINTERFACE)
   2413 MIDL_INTERFACE("0000000c-0000-0000-c000-000000000046")
   2414 IStream : public ISequentialStream
   2415 {
   2416     virtual HRESULT STDMETHODCALLTYPE Seek(
   2417         LARGE_INTEGER dlibMove,
   2418         DWORD dwOrigin,
   2419         ULARGE_INTEGER *plibNewPosition) = 0;
   2420 
   2421     virtual HRESULT STDMETHODCALLTYPE SetSize(
   2422         ULARGE_INTEGER libNewSize) = 0;
   2423 
   2424     virtual HRESULT STDMETHODCALLTYPE CopyTo(
   2425         IStream *pstm,
   2426         ULARGE_INTEGER cb,
   2427         ULARGE_INTEGER *pcbRead,
   2428         ULARGE_INTEGER *pcbWritten) = 0;
   2429 
   2430     virtual HRESULT STDMETHODCALLTYPE Commit(
   2431         DWORD grfCommitFlags) = 0;
   2432 
   2433     virtual HRESULT STDMETHODCALLTYPE Revert(
   2434         ) = 0;
   2435 
   2436     virtual HRESULT STDMETHODCALLTYPE LockRegion(
   2437         ULARGE_INTEGER libOffset,
   2438         ULARGE_INTEGER cb,
   2439         DWORD dwLockType) = 0;
   2440 
   2441     virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
   2442         ULARGE_INTEGER libOffset,
   2443         ULARGE_INTEGER cb,
   2444         DWORD dwLockType) = 0;
   2445 
   2446     virtual HRESULT STDMETHODCALLTYPE Stat(
   2447         STATSTG *pstatstg,
   2448         DWORD grfStatFlag) = 0;
   2449 
   2450     virtual HRESULT STDMETHODCALLTYPE Clone(
   2451         IStream **ppstm) = 0;
   2452 
   2453 };
   2454 #ifdef __CRT_UUID_DECL
   2455 __CRT_UUID_DECL(IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   2456 #endif
   2457 #else
   2458 typedef struct IStreamVtbl {
   2459     BEGIN_INTERFACE
   2460 
   2461     /*** IUnknown methods ***/
   2462     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2463         IStream *This,
   2464         REFIID riid,
   2465         void **ppvObject);
   2466 
   2467     ULONG (STDMETHODCALLTYPE *AddRef)(
   2468         IStream *This);
   2469 
   2470     ULONG (STDMETHODCALLTYPE *Release)(
   2471         IStream *This);
   2472 
   2473     /*** ISequentialStream methods ***/
   2474     HRESULT (STDMETHODCALLTYPE *Read)(
   2475         IStream *This,
   2476         void *pv,
   2477         ULONG cb,
   2478         ULONG *pcbRead);
   2479 
   2480     HRESULT (STDMETHODCALLTYPE *Write)(
   2481         IStream *This,
   2482         const void *pv,
   2483         ULONG cb,
   2484         ULONG *pcbWritten);
   2485 
   2486     /*** IStream methods ***/
   2487     HRESULT (STDMETHODCALLTYPE *Seek)(
   2488         IStream *This,
   2489         LARGE_INTEGER dlibMove,
   2490         DWORD dwOrigin,
   2491         ULARGE_INTEGER *plibNewPosition);
   2492 
   2493     HRESULT (STDMETHODCALLTYPE *SetSize)(
   2494         IStream *This,
   2495         ULARGE_INTEGER libNewSize);
   2496 
   2497     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   2498         IStream *This,
   2499         IStream *pstm,
   2500         ULARGE_INTEGER cb,
   2501         ULARGE_INTEGER *pcbRead,
   2502         ULARGE_INTEGER *pcbWritten);
   2503 
   2504     HRESULT (STDMETHODCALLTYPE *Commit)(
   2505         IStream *This,
   2506         DWORD grfCommitFlags);
   2507 
   2508     HRESULT (STDMETHODCALLTYPE *Revert)(
   2509         IStream *This);
   2510 
   2511     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   2512         IStream *This,
   2513         ULARGE_INTEGER libOffset,
   2514         ULARGE_INTEGER cb,
   2515         DWORD dwLockType);
   2516 
   2517     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   2518         IStream *This,
   2519         ULARGE_INTEGER libOffset,
   2520         ULARGE_INTEGER cb,
   2521         DWORD dwLockType);
   2522 
   2523     HRESULT (STDMETHODCALLTYPE *Stat)(
   2524         IStream *This,
   2525         STATSTG *pstatstg,
   2526         DWORD grfStatFlag);
   2527 
   2528     HRESULT (STDMETHODCALLTYPE *Clone)(
   2529         IStream *This,
   2530         IStream **ppstm);
   2531 
   2532     END_INTERFACE
   2533 } IStreamVtbl;
   2534 
   2535 interface IStream {
   2536     CONST_VTBL IStreamVtbl* lpVtbl;
   2537 };
   2538 
   2539 #ifdef COBJMACROS
   2540 #ifndef WIDL_C_INLINE_WRAPPERS
   2541 /*** IUnknown methods ***/
   2542 #define IStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2543 #define IStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   2544 #define IStream_Release(This) (This)->lpVtbl->Release(This)
   2545 /*** ISequentialStream methods ***/
   2546 #define IStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   2547 #define IStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   2548 /*** IStream methods ***/
   2549 #define IStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   2550 #define IStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   2551 #define IStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   2552 #define IStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   2553 #define IStream_Revert(This) (This)->lpVtbl->Revert(This)
   2554 #define IStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   2555 #define IStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   2556 #define IStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   2557 #define IStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   2558 #else
   2559 /*** IUnknown methods ***/
   2560 static inline HRESULT IStream_QueryInterface(IStream* This,REFIID riid,void **ppvObject) {
   2561     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2562 }
   2563 static inline ULONG IStream_AddRef(IStream* This) {
   2564     return This->lpVtbl->AddRef(This);
   2565 }
   2566 static inline ULONG IStream_Release(IStream* This) {
   2567     return This->lpVtbl->Release(This);
   2568 }
   2569 /*** ISequentialStream methods ***/
   2570 static inline HRESULT IStream_Read(IStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
   2571     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   2572 }
   2573 static inline HRESULT IStream_Write(IStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   2574     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   2575 }
   2576 /*** IStream methods ***/
   2577 static inline HRESULT IStream_Seek(IStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   2578     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   2579 }
   2580 static inline HRESULT IStream_SetSize(IStream* This,ULARGE_INTEGER libNewSize) {
   2581     return This->lpVtbl->SetSize(This,libNewSize);
   2582 }
   2583 static inline HRESULT IStream_CopyTo(IStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   2584     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   2585 }
   2586 static inline HRESULT IStream_Commit(IStream* This,DWORD grfCommitFlags) {
   2587     return This->lpVtbl->Commit(This,grfCommitFlags);
   2588 }
   2589 static inline HRESULT IStream_Revert(IStream* This) {
   2590     return This->lpVtbl->Revert(This);
   2591 }
   2592 static inline HRESULT IStream_LockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   2593     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   2594 }
   2595 static inline HRESULT IStream_UnlockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   2596     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   2597 }
   2598 static inline HRESULT IStream_Stat(IStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   2599     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   2600 }
   2601 static inline HRESULT IStream_Clone(IStream* This,IStream **ppstm) {
   2602     return This->lpVtbl->Clone(This,ppstm);
   2603 }
   2604 #endif
   2605 #endif
   2606 
   2607 #endif
   2608 
   2609 HRESULT STDMETHODCALLTYPE IStream_RemoteSeek_Proxy(
   2610     IStream* This,
   2611     LARGE_INTEGER dlibMove,
   2612     DWORD dwOrigin,
   2613     ULARGE_INTEGER *plibNewPosition);
   2614 void __RPC_STUB IStream_RemoteSeek_Stub(
   2615     IRpcStubBuffer* This,
   2616     IRpcChannelBuffer* pRpcChannelBuffer,
   2617     PRPC_MESSAGE pRpcMessage,
   2618     DWORD* pdwStubPhase);
   2619 HRESULT STDMETHODCALLTYPE IStream_RemoteCopyTo_Proxy(
   2620     IStream* This,
   2621     IStream *pstm,
   2622     ULARGE_INTEGER cb,
   2623     ULARGE_INTEGER *pcbRead,
   2624     ULARGE_INTEGER *pcbWritten);
   2625 void __RPC_STUB IStream_RemoteCopyTo_Stub(
   2626     IRpcStubBuffer* This,
   2627     IRpcChannelBuffer* pRpcChannelBuffer,
   2628     PRPC_MESSAGE pRpcMessage,
   2629     DWORD* pdwStubPhase);
   2630 HRESULT CALLBACK IStream_Seek_Proxy(
   2631     IStream* This,
   2632     LARGE_INTEGER dlibMove,
   2633     DWORD dwOrigin,
   2634     ULARGE_INTEGER *plibNewPosition);
   2635 HRESULT __RPC_STUB IStream_Seek_Stub(
   2636     IStream* This,
   2637     LARGE_INTEGER dlibMove,
   2638     DWORD dwOrigin,
   2639     ULARGE_INTEGER *plibNewPosition);
   2640 HRESULT CALLBACK IStream_CopyTo_Proxy(
   2641     IStream* This,
   2642     IStream *pstm,
   2643     ULARGE_INTEGER cb,
   2644     ULARGE_INTEGER *pcbRead,
   2645     ULARGE_INTEGER *pcbWritten);
   2646 HRESULT __RPC_STUB IStream_CopyTo_Stub(
   2647     IStream* This,
   2648     IStream *pstm,
   2649     ULARGE_INTEGER cb,
   2650     ULARGE_INTEGER *pcbRead,
   2651     ULARGE_INTEGER *pcbWritten);
   2652 
   2653 #endif  /* __IStream_INTERFACE_DEFINED__ */
   2654 
   2655 
   2656 /*****************************************************************************
   2657  * IRpcChannelBuffer interface
   2658  */
   2659 #ifndef __IRpcChannelBuffer_INTERFACE_DEFINED__
   2660 #define __IRpcChannelBuffer_INTERFACE_DEFINED__
   2661 
   2662 typedef ULONG RPCOLEDATAREP;
   2663 
   2664 typedef struct tagRPCOLEMESSAGE {
   2665     void *reserved1;
   2666     RPCOLEDATAREP dataRepresentation;
   2667     void *Buffer;
   2668     ULONG cbBuffer;
   2669     ULONG iMethod;
   2670     void * reserved2[5];
   2671     ULONG rpcFlags;
   2672 } RPCOLEMESSAGE;
   2673 
   2674 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
   2675 
   2676 DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
   2677 #if defined(__cplusplus) && !defined(CINTERFACE)
   2678 MIDL_INTERFACE("d5f56b60-593b-101a-b569-08002b2dbf7a")
   2679 IRpcChannelBuffer : public IUnknown
   2680 {
   2681     virtual HRESULT STDMETHODCALLTYPE GetBuffer(
   2682         RPCOLEMESSAGE *pMessage,
   2683         REFIID riid) = 0;
   2684 
   2685     virtual HRESULT STDMETHODCALLTYPE SendReceive(
   2686         RPCOLEMESSAGE *pMessage,
   2687         ULONG *pStatus) = 0;
   2688 
   2689     virtual HRESULT STDMETHODCALLTYPE FreeBuffer(
   2690         RPCOLEMESSAGE *pMessage) = 0;
   2691 
   2692     virtual HRESULT STDMETHODCALLTYPE GetDestCtx(
   2693         DWORD *pdwDestContext,
   2694         void **ppvDestContext) = 0;
   2695 
   2696     virtual HRESULT STDMETHODCALLTYPE IsConnected(
   2697         ) = 0;
   2698 
   2699 };
   2700 #ifdef __CRT_UUID_DECL
   2701 __CRT_UUID_DECL(IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
   2702 #endif
   2703 #else
   2704 typedef struct IRpcChannelBufferVtbl {
   2705     BEGIN_INTERFACE
   2706 
   2707     /*** IUnknown methods ***/
   2708     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2709         IRpcChannelBuffer *This,
   2710         REFIID riid,
   2711         void **ppvObject);
   2712 
   2713     ULONG (STDMETHODCALLTYPE *AddRef)(
   2714         IRpcChannelBuffer *This);
   2715 
   2716     ULONG (STDMETHODCALLTYPE *Release)(
   2717         IRpcChannelBuffer *This);
   2718 
   2719     /*** IRpcChannelBuffer methods ***/
   2720     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
   2721         IRpcChannelBuffer *This,
   2722         RPCOLEMESSAGE *pMessage,
   2723         REFIID riid);
   2724 
   2725     HRESULT (STDMETHODCALLTYPE *SendReceive)(
   2726         IRpcChannelBuffer *This,
   2727         RPCOLEMESSAGE *pMessage,
   2728         ULONG *pStatus);
   2729 
   2730     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
   2731         IRpcChannelBuffer *This,
   2732         RPCOLEMESSAGE *pMessage);
   2733 
   2734     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
   2735         IRpcChannelBuffer *This,
   2736         DWORD *pdwDestContext,
   2737         void **ppvDestContext);
   2738 
   2739     HRESULT (STDMETHODCALLTYPE *IsConnected)(
   2740         IRpcChannelBuffer *This);
   2741 
   2742     END_INTERFACE
   2743 } IRpcChannelBufferVtbl;
   2744 
   2745 interface IRpcChannelBuffer {
   2746     CONST_VTBL IRpcChannelBufferVtbl* lpVtbl;
   2747 };
   2748 
   2749 #ifdef COBJMACROS
   2750 #ifndef WIDL_C_INLINE_WRAPPERS
   2751 /*** IUnknown methods ***/
   2752 #define IRpcChannelBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2753 #define IRpcChannelBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
   2754 #define IRpcChannelBuffer_Release(This) (This)->lpVtbl->Release(This)
   2755 /*** IRpcChannelBuffer methods ***/
   2756 #define IRpcChannelBuffer_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
   2757 #define IRpcChannelBuffer_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
   2758 #define IRpcChannelBuffer_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
   2759 #define IRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
   2760 #define IRpcChannelBuffer_IsConnected(This) (This)->lpVtbl->IsConnected(This)
   2761 #else
   2762 /*** IUnknown methods ***/
   2763 static inline HRESULT IRpcChannelBuffer_QueryInterface(IRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
   2764     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2765 }
   2766 static inline ULONG IRpcChannelBuffer_AddRef(IRpcChannelBuffer* This) {
   2767     return This->lpVtbl->AddRef(This);
   2768 }
   2769 static inline ULONG IRpcChannelBuffer_Release(IRpcChannelBuffer* This) {
   2770     return This->lpVtbl->Release(This);
   2771 }
   2772 /*** IRpcChannelBuffer methods ***/
   2773 static inline HRESULT IRpcChannelBuffer_GetBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
   2774     return This->lpVtbl->GetBuffer(This,pMessage,riid);
   2775 }
   2776 static inline HRESULT IRpcChannelBuffer_SendReceive(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
   2777     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
   2778 }
   2779 static inline HRESULT IRpcChannelBuffer_FreeBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
   2780     return This->lpVtbl->FreeBuffer(This,pMessage);
   2781 }
   2782 static inline HRESULT IRpcChannelBuffer_GetDestCtx(IRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
   2783     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
   2784 }
   2785 static inline HRESULT IRpcChannelBuffer_IsConnected(IRpcChannelBuffer* This) {
   2786     return This->lpVtbl->IsConnected(This);
   2787 }
   2788 #endif
   2789 #endif
   2790 
   2791 #endif
   2792 
   2793 
   2794 #endif  /* __IRpcChannelBuffer_INTERFACE_DEFINED__ */
   2795 
   2796 #endif
   2797 
   2798 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   2799 /*****************************************************************************
   2800  * IRpcChannelBuffer2 interface
   2801  */
   2802 #ifndef __IRpcChannelBuffer2_INTERFACE_DEFINED__
   2803 #define __IRpcChannelBuffer2_INTERFACE_DEFINED__
   2804 
   2805 DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
   2806 #if defined(__cplusplus) && !defined(CINTERFACE)
   2807 MIDL_INTERFACE("594f31d0-7f19-11d0-b194-00a0c90dc8bf")
   2808 IRpcChannelBuffer2 : public IRpcChannelBuffer
   2809 {
   2810     virtual HRESULT STDMETHODCALLTYPE GetProtocolVersion(
   2811         DWORD *pdwVersion) = 0;
   2812 
   2813 };
   2814 #ifdef __CRT_UUID_DECL
   2815 __CRT_UUID_DECL(IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf)
   2816 #endif
   2817 #else
   2818 typedef struct IRpcChannelBuffer2Vtbl {
   2819     BEGIN_INTERFACE
   2820 
   2821     /*** IUnknown methods ***/
   2822     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2823         IRpcChannelBuffer2 *This,
   2824         REFIID riid,
   2825         void **ppvObject);
   2826 
   2827     ULONG (STDMETHODCALLTYPE *AddRef)(
   2828         IRpcChannelBuffer2 *This);
   2829 
   2830     ULONG (STDMETHODCALLTYPE *Release)(
   2831         IRpcChannelBuffer2 *This);
   2832 
   2833     /*** IRpcChannelBuffer methods ***/
   2834     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
   2835         IRpcChannelBuffer2 *This,
   2836         RPCOLEMESSAGE *pMessage,
   2837         REFIID riid);
   2838 
   2839     HRESULT (STDMETHODCALLTYPE *SendReceive)(
   2840         IRpcChannelBuffer2 *This,
   2841         RPCOLEMESSAGE *pMessage,
   2842         ULONG *pStatus);
   2843 
   2844     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
   2845         IRpcChannelBuffer2 *This,
   2846         RPCOLEMESSAGE *pMessage);
   2847 
   2848     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
   2849         IRpcChannelBuffer2 *This,
   2850         DWORD *pdwDestContext,
   2851         void **ppvDestContext);
   2852 
   2853     HRESULT (STDMETHODCALLTYPE *IsConnected)(
   2854         IRpcChannelBuffer2 *This);
   2855 
   2856     /*** IRpcChannelBuffer2 methods ***/
   2857     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
   2858         IRpcChannelBuffer2 *This,
   2859         DWORD *pdwVersion);
   2860 
   2861     END_INTERFACE
   2862 } IRpcChannelBuffer2Vtbl;
   2863 
   2864 interface IRpcChannelBuffer2 {
   2865     CONST_VTBL IRpcChannelBuffer2Vtbl* lpVtbl;
   2866 };
   2867 
   2868 #ifdef COBJMACROS
   2869 #ifndef WIDL_C_INLINE_WRAPPERS
   2870 /*** IUnknown methods ***/
   2871 #define IRpcChannelBuffer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2872 #define IRpcChannelBuffer2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2873 #define IRpcChannelBuffer2_Release(This) (This)->lpVtbl->Release(This)
   2874 /*** IRpcChannelBuffer methods ***/
   2875 #define IRpcChannelBuffer2_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
   2876 #define IRpcChannelBuffer2_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
   2877 #define IRpcChannelBuffer2_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
   2878 #define IRpcChannelBuffer2_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
   2879 #define IRpcChannelBuffer2_IsConnected(This) (This)->lpVtbl->IsConnected(This)
   2880 /*** IRpcChannelBuffer2 methods ***/
   2881 #define IRpcChannelBuffer2_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
   2882 #else
   2883 /*** IUnknown methods ***/
   2884 static inline HRESULT IRpcChannelBuffer2_QueryInterface(IRpcChannelBuffer2* This,REFIID riid,void **ppvObject) {
   2885     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2886 }
   2887 static inline ULONG IRpcChannelBuffer2_AddRef(IRpcChannelBuffer2* This) {
   2888     return This->lpVtbl->AddRef(This);
   2889 }
   2890 static inline ULONG IRpcChannelBuffer2_Release(IRpcChannelBuffer2* This) {
   2891     return This->lpVtbl->Release(This);
   2892 }
   2893 /*** IRpcChannelBuffer methods ***/
   2894 static inline HRESULT IRpcChannelBuffer2_GetBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
   2895     return This->lpVtbl->GetBuffer(This,pMessage,riid);
   2896 }
   2897 static inline HRESULT IRpcChannelBuffer2_SendReceive(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
   2898     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
   2899 }
   2900 static inline HRESULT IRpcChannelBuffer2_FreeBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage) {
   2901     return This->lpVtbl->FreeBuffer(This,pMessage);
   2902 }
   2903 static inline HRESULT IRpcChannelBuffer2_GetDestCtx(IRpcChannelBuffer2* This,DWORD *pdwDestContext,void **ppvDestContext) {
   2904     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
   2905 }
   2906 static inline HRESULT IRpcChannelBuffer2_IsConnected(IRpcChannelBuffer2* This) {
   2907     return This->lpVtbl->IsConnected(This);
   2908 }
   2909 /*** IRpcChannelBuffer2 methods ***/
   2910 static inline HRESULT IRpcChannelBuffer2_GetProtocolVersion(IRpcChannelBuffer2* This,DWORD *pdwVersion) {
   2911     return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
   2912 }
   2913 #endif
   2914 #endif
   2915 
   2916 #endif
   2917 
   2918 
   2919 #endif  /* __IRpcChannelBuffer2_INTERFACE_DEFINED__ */
   2920 
   2921 
   2922 /*****************************************************************************
   2923  * IAsyncRpcChannelBuffer interface
   2924  */
   2925 #ifndef __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__
   2926 #define __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__
   2927 
   2928 DEFINE_GUID(IID_IAsyncRpcChannelBuffer, 0xa5029fb6, 0x3c34, 0x11d1, 0x9c,0x99, 0x00,0xc0,0x4f,0xb9,0x98,0xaa);
   2929 #if defined(__cplusplus) && !defined(CINTERFACE)
   2930 MIDL_INTERFACE("a5029fb6-3c34-11d1-9c99-00c04fb998aa")
   2931 IAsyncRpcChannelBuffer : public IRpcChannelBuffer2
   2932 {
   2933     virtual HRESULT STDMETHODCALLTYPE Send(
   2934         RPCOLEMESSAGE *pMsg,
   2935         ISynchronize *pSync,
   2936         ULONG *pulStatus) = 0;
   2937 
   2938     virtual HRESULT STDMETHODCALLTYPE Receive(
   2939         RPCOLEMESSAGE *pMsg,
   2940         ULONG *pulStatus) = 0;
   2941 
   2942     virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
   2943         RPCOLEMESSAGE *pMsg,
   2944         DWORD *pdwDestContext,
   2945         void **ppvDestContext) = 0;
   2946 
   2947 };
   2948 #ifdef __CRT_UUID_DECL
   2949 __CRT_UUID_DECL(IAsyncRpcChannelBuffer, 0xa5029fb6, 0x3c34, 0x11d1, 0x9c,0x99, 0x00,0xc0,0x4f,0xb9,0x98,0xaa)
   2950 #endif
   2951 #else
   2952 typedef struct IAsyncRpcChannelBufferVtbl {
   2953     BEGIN_INTERFACE
   2954 
   2955     /*** IUnknown methods ***/
   2956     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2957         IAsyncRpcChannelBuffer *This,
   2958         REFIID riid,
   2959         void **ppvObject);
   2960 
   2961     ULONG (STDMETHODCALLTYPE *AddRef)(
   2962         IAsyncRpcChannelBuffer *This);
   2963 
   2964     ULONG (STDMETHODCALLTYPE *Release)(
   2965         IAsyncRpcChannelBuffer *This);
   2966 
   2967     /*** IRpcChannelBuffer methods ***/
   2968     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
   2969         IAsyncRpcChannelBuffer *This,
   2970         RPCOLEMESSAGE *pMessage,
   2971         REFIID riid);
   2972 
   2973     HRESULT (STDMETHODCALLTYPE *SendReceive)(
   2974         IAsyncRpcChannelBuffer *This,
   2975         RPCOLEMESSAGE *pMessage,
   2976         ULONG *pStatus);
   2977 
   2978     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
   2979         IAsyncRpcChannelBuffer *This,
   2980         RPCOLEMESSAGE *pMessage);
   2981 
   2982     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
   2983         IAsyncRpcChannelBuffer *This,
   2984         DWORD *pdwDestContext,
   2985         void **ppvDestContext);
   2986 
   2987     HRESULT (STDMETHODCALLTYPE *IsConnected)(
   2988         IAsyncRpcChannelBuffer *This);
   2989 
   2990     /*** IRpcChannelBuffer2 methods ***/
   2991     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
   2992         IAsyncRpcChannelBuffer *This,
   2993         DWORD *pdwVersion);
   2994 
   2995     /*** IAsyncRpcChannelBuffer methods ***/
   2996     HRESULT (STDMETHODCALLTYPE *Send)(
   2997         IAsyncRpcChannelBuffer *This,
   2998         RPCOLEMESSAGE *pMsg,
   2999         ISynchronize *pSync,
   3000         ULONG *pulStatus);
   3001 
   3002     HRESULT (STDMETHODCALLTYPE *Receive)(
   3003         IAsyncRpcChannelBuffer *This,
   3004         RPCOLEMESSAGE *pMsg,
   3005         ULONG *pulStatus);
   3006 
   3007     HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
   3008         IAsyncRpcChannelBuffer *This,
   3009         RPCOLEMESSAGE *pMsg,
   3010         DWORD *pdwDestContext,
   3011         void **ppvDestContext);
   3012 
   3013     END_INTERFACE
   3014 } IAsyncRpcChannelBufferVtbl;
   3015 
   3016 interface IAsyncRpcChannelBuffer {
   3017     CONST_VTBL IAsyncRpcChannelBufferVtbl* lpVtbl;
   3018 };
   3019 
   3020 #ifdef COBJMACROS
   3021 #ifndef WIDL_C_INLINE_WRAPPERS
   3022 /*** IUnknown methods ***/
   3023 #define IAsyncRpcChannelBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3024 #define IAsyncRpcChannelBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
   3025 #define IAsyncRpcChannelBuffer_Release(This) (This)->lpVtbl->Release(This)
   3026 /*** IRpcChannelBuffer methods ***/
   3027 #define IAsyncRpcChannelBuffer_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
   3028 #define IAsyncRpcChannelBuffer_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
   3029 #define IAsyncRpcChannelBuffer_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
   3030 #define IAsyncRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
   3031 #define IAsyncRpcChannelBuffer_IsConnected(This) (This)->lpVtbl->IsConnected(This)
   3032 /*** IRpcChannelBuffer2 methods ***/
   3033 #define IAsyncRpcChannelBuffer_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
   3034 /*** IAsyncRpcChannelBuffer methods ***/
   3035 #define IAsyncRpcChannelBuffer_Send(This,pMsg,pSync,pulStatus) (This)->lpVtbl->Send(This,pMsg,pSync,pulStatus)
   3036 #define IAsyncRpcChannelBuffer_Receive(This,pMsg,pulStatus) (This)->lpVtbl->Receive(This,pMsg,pulStatus)
   3037 #define IAsyncRpcChannelBuffer_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext)
   3038 #else
   3039 /*** IUnknown methods ***/
   3040 static inline HRESULT IAsyncRpcChannelBuffer_QueryInterface(IAsyncRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
   3041     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3042 }
   3043 static inline ULONG IAsyncRpcChannelBuffer_AddRef(IAsyncRpcChannelBuffer* This) {
   3044     return This->lpVtbl->AddRef(This);
   3045 }
   3046 static inline ULONG IAsyncRpcChannelBuffer_Release(IAsyncRpcChannelBuffer* This) {
   3047     return This->lpVtbl->Release(This);
   3048 }
   3049 /*** IRpcChannelBuffer methods ***/
   3050 static inline HRESULT IAsyncRpcChannelBuffer_GetBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
   3051     return This->lpVtbl->GetBuffer(This,pMessage,riid);
   3052 }
   3053 static inline HRESULT IAsyncRpcChannelBuffer_SendReceive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
   3054     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
   3055 }
   3056 static inline HRESULT IAsyncRpcChannelBuffer_FreeBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
   3057     return This->lpVtbl->FreeBuffer(This,pMessage);
   3058 }
   3059 static inline HRESULT IAsyncRpcChannelBuffer_GetDestCtx(IAsyncRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
   3060     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
   3061 }
   3062 static inline HRESULT IAsyncRpcChannelBuffer_IsConnected(IAsyncRpcChannelBuffer* This) {
   3063     return This->lpVtbl->IsConnected(This);
   3064 }
   3065 /*** IRpcChannelBuffer2 methods ***/
   3066 static inline HRESULT IAsyncRpcChannelBuffer_GetProtocolVersion(IAsyncRpcChannelBuffer* This,DWORD *pdwVersion) {
   3067     return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
   3068 }
   3069 /*** IAsyncRpcChannelBuffer methods ***/
   3070 static inline HRESULT IAsyncRpcChannelBuffer_Send(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ISynchronize *pSync,ULONG *pulStatus) {
   3071     return This->lpVtbl->Send(This,pMsg,pSync,pulStatus);
   3072 }
   3073 static inline HRESULT IAsyncRpcChannelBuffer_Receive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
   3074     return This->lpVtbl->Receive(This,pMsg,pulStatus);
   3075 }
   3076 static inline HRESULT IAsyncRpcChannelBuffer_GetDestCtxEx(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext) {
   3077     return This->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext);
   3078 }
   3079 #endif
   3080 #endif
   3081 
   3082 #endif
   3083 
   3084 
   3085 #endif  /* __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__ */
   3086 
   3087 
   3088 /*****************************************************************************
   3089  * IRpcChannelBuffer3 interface
   3090  */
   3091 #ifndef __IRpcChannelBuffer3_INTERFACE_DEFINED__
   3092 #define __IRpcChannelBuffer3_INTERFACE_DEFINED__
   3093 
   3094 DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
   3095 #if defined(__cplusplus) && !defined(CINTERFACE)
   3096 MIDL_INTERFACE("25b15600-0115-11d0-bf0d-00aa00b8dfd2")
   3097 IRpcChannelBuffer3 : public IRpcChannelBuffer2
   3098 {
   3099     virtual HRESULT STDMETHODCALLTYPE Send(
   3100         RPCOLEMESSAGE *pMsg,
   3101         ULONG *pulStatus) = 0;
   3102 
   3103     virtual HRESULT STDMETHODCALLTYPE Receive(
   3104         RPCOLEMESSAGE *pMsg,
   3105         ULONG ulSize,
   3106         ULONG *pulStatus) = 0;
   3107 
   3108     virtual HRESULT STDMETHODCALLTYPE Cancel(
   3109         RPCOLEMESSAGE *pMsg) = 0;
   3110 
   3111     virtual HRESULT STDMETHODCALLTYPE GetCallContext(
   3112         RPCOLEMESSAGE *pMsg,
   3113         REFIID riid,
   3114         void **pInterface) = 0;
   3115 
   3116     virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
   3117         RPCOLEMESSAGE *pMsg,
   3118         DWORD *pdwDestContext,
   3119         void **ppvDestContext) = 0;
   3120 
   3121     virtual HRESULT STDMETHODCALLTYPE GetState(
   3122         RPCOLEMESSAGE *pMsg,
   3123         DWORD *pState) = 0;
   3124 
   3125     virtual HRESULT STDMETHODCALLTYPE RegisterAsync(
   3126         RPCOLEMESSAGE *pMsg,
   3127         IAsyncManager *pAsyncMgr) = 0;
   3128 
   3129 };
   3130 #ifdef __CRT_UUID_DECL
   3131 __CRT_UUID_DECL(IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2)
   3132 #endif
   3133 #else
   3134 typedef struct IRpcChannelBuffer3Vtbl {
   3135     BEGIN_INTERFACE
   3136 
   3137     /*** IUnknown methods ***/
   3138     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3139         IRpcChannelBuffer3 *This,
   3140         REFIID riid,
   3141         void **ppvObject);
   3142 
   3143     ULONG (STDMETHODCALLTYPE *AddRef)(
   3144         IRpcChannelBuffer3 *This);
   3145 
   3146     ULONG (STDMETHODCALLTYPE *Release)(
   3147         IRpcChannelBuffer3 *This);
   3148 
   3149     /*** IRpcChannelBuffer methods ***/
   3150     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
   3151         IRpcChannelBuffer3 *This,
   3152         RPCOLEMESSAGE *pMessage,
   3153         REFIID riid);
   3154 
   3155     HRESULT (STDMETHODCALLTYPE *SendReceive)(
   3156         IRpcChannelBuffer3 *This,
   3157         RPCOLEMESSAGE *pMessage,
   3158         ULONG *pStatus);
   3159 
   3160     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
   3161         IRpcChannelBuffer3 *This,
   3162         RPCOLEMESSAGE *pMessage);
   3163 
   3164     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
   3165         IRpcChannelBuffer3 *This,
   3166         DWORD *pdwDestContext,
   3167         void **ppvDestContext);
   3168 
   3169     HRESULT (STDMETHODCALLTYPE *IsConnected)(
   3170         IRpcChannelBuffer3 *This);
   3171 
   3172     /*** IRpcChannelBuffer2 methods ***/
   3173     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
   3174         IRpcChannelBuffer3 *This,
   3175         DWORD *pdwVersion);
   3176 
   3177     /*** IRpcChannelBuffer3 methods ***/
   3178     HRESULT (STDMETHODCALLTYPE *Send)(
   3179         IRpcChannelBuffer3 *This,
   3180         RPCOLEMESSAGE *pMsg,
   3181         ULONG *pulStatus);
   3182 
   3183     HRESULT (STDMETHODCALLTYPE *Receive)(
   3184         IRpcChannelBuffer3 *This,
   3185         RPCOLEMESSAGE *pMsg,
   3186         ULONG ulSize,
   3187         ULONG *pulStatus);
   3188 
   3189     HRESULT (STDMETHODCALLTYPE *Cancel)(
   3190         IRpcChannelBuffer3 *This,
   3191         RPCOLEMESSAGE *pMsg);
   3192 
   3193     HRESULT (STDMETHODCALLTYPE *GetCallContext)(
   3194         IRpcChannelBuffer3 *This,
   3195         RPCOLEMESSAGE *pMsg,
   3196         REFIID riid,
   3197         void **pInterface);
   3198 
   3199     HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
   3200         IRpcChannelBuffer3 *This,
   3201         RPCOLEMESSAGE *pMsg,
   3202         DWORD *pdwDestContext,
   3203         void **ppvDestContext);
   3204 
   3205     HRESULT (STDMETHODCALLTYPE *GetState)(
   3206         IRpcChannelBuffer3 *This,
   3207         RPCOLEMESSAGE *pMsg,
   3208         DWORD *pState);
   3209 
   3210     HRESULT (STDMETHODCALLTYPE *RegisterAsync)(
   3211         IRpcChannelBuffer3 *This,
   3212         RPCOLEMESSAGE *pMsg,
   3213         IAsyncManager *pAsyncMgr);
   3214 
   3215     END_INTERFACE
   3216 } IRpcChannelBuffer3Vtbl;
   3217 
   3218 interface IRpcChannelBuffer3 {
   3219     CONST_VTBL IRpcChannelBuffer3Vtbl* lpVtbl;
   3220 };
   3221 
   3222 #ifdef COBJMACROS
   3223 #ifndef WIDL_C_INLINE_WRAPPERS
   3224 /*** IUnknown methods ***/
   3225 #define IRpcChannelBuffer3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3226 #define IRpcChannelBuffer3_AddRef(This) (This)->lpVtbl->AddRef(This)
   3227 #define IRpcChannelBuffer3_Release(This) (This)->lpVtbl->Release(This)
   3228 /*** IRpcChannelBuffer methods ***/
   3229 #define IRpcChannelBuffer3_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
   3230 #define IRpcChannelBuffer3_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
   3231 #define IRpcChannelBuffer3_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
   3232 #define IRpcChannelBuffer3_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
   3233 #define IRpcChannelBuffer3_IsConnected(This) (This)->lpVtbl->IsConnected(This)
   3234 /*** IRpcChannelBuffer2 methods ***/
   3235 #define IRpcChannelBuffer3_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
   3236 /*** IRpcChannelBuffer3 methods ***/
   3237 #define IRpcChannelBuffer3_Send(This,pMsg,pulStatus) (This)->lpVtbl->Send(This,pMsg,pulStatus)
   3238 #define IRpcChannelBuffer3_Receive(This,pMsg,ulSize,pulStatus) (This)->lpVtbl->Receive(This,pMsg,ulSize,pulStatus)
   3239 #define IRpcChannelBuffer3_Cancel(This,pMsg) (This)->lpVtbl->Cancel(This,pMsg)
   3240 #define IRpcChannelBuffer3_GetCallContext(This,pMsg,riid,pInterface) (This)->lpVtbl->GetCallContext(This,pMsg,riid,pInterface)
   3241 #define IRpcChannelBuffer3_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext)
   3242 #define IRpcChannelBuffer3_GetState(This,pMsg,pState) (This)->lpVtbl->GetState(This,pMsg,pState)
   3243 #define IRpcChannelBuffer3_RegisterAsync(This,pMsg,pAsyncMgr) (This)->lpVtbl->RegisterAsync(This,pMsg,pAsyncMgr)
   3244 #else
   3245 /*** IUnknown methods ***/
   3246 static inline HRESULT IRpcChannelBuffer3_QueryInterface(IRpcChannelBuffer3* This,REFIID riid,void **ppvObject) {
   3247     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3248 }
   3249 static inline ULONG IRpcChannelBuffer3_AddRef(IRpcChannelBuffer3* This) {
   3250     return This->lpVtbl->AddRef(This);
   3251 }
   3252 static inline ULONG IRpcChannelBuffer3_Release(IRpcChannelBuffer3* This) {
   3253     return This->lpVtbl->Release(This);
   3254 }
   3255 /*** IRpcChannelBuffer methods ***/
   3256 static inline HRESULT IRpcChannelBuffer3_GetBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
   3257     return This->lpVtbl->GetBuffer(This,pMessage,riid);
   3258 }
   3259 static inline HRESULT IRpcChannelBuffer3_SendReceive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
   3260     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
   3261 }
   3262 static inline HRESULT IRpcChannelBuffer3_FreeBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage) {
   3263     return This->lpVtbl->FreeBuffer(This,pMessage);
   3264 }
   3265 static inline HRESULT IRpcChannelBuffer3_GetDestCtx(IRpcChannelBuffer3* This,DWORD *pdwDestContext,void **ppvDestContext) {
   3266     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
   3267 }
   3268 static inline HRESULT IRpcChannelBuffer3_IsConnected(IRpcChannelBuffer3* This) {
   3269     return This->lpVtbl->IsConnected(This);
   3270 }
   3271 /*** IRpcChannelBuffer2 methods ***/
   3272 static inline HRESULT IRpcChannelBuffer3_GetProtocolVersion(IRpcChannelBuffer3* This,DWORD *pdwVersion) {
   3273     return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
   3274 }
   3275 /*** IRpcChannelBuffer3 methods ***/
   3276 static inline HRESULT IRpcChannelBuffer3_Send(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
   3277     return This->lpVtbl->Send(This,pMsg,pulStatus);
   3278 }
   3279 static inline HRESULT IRpcChannelBuffer3_Receive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG ulSize,ULONG *pulStatus) {
   3280     return This->lpVtbl->Receive(This,pMsg,ulSize,pulStatus);
   3281 }
   3282 static inline HRESULT IRpcChannelBuffer3_Cancel(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg) {
   3283     return This->lpVtbl->Cancel(This,pMsg);
   3284 }
   3285 static inline HRESULT IRpcChannelBuffer3_GetCallContext(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,REFIID riid,void **pInterface) {
   3286     return This->lpVtbl->GetCallContext(This,pMsg,riid,pInterface);
   3287 }
   3288 static inline HRESULT IRpcChannelBuffer3_GetDestCtxEx(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext) {
   3289     return This->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext);
   3290 }
   3291 static inline HRESULT IRpcChannelBuffer3_GetState(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pState) {
   3292     return This->lpVtbl->GetState(This,pMsg,pState);
   3293 }
   3294 static inline HRESULT IRpcChannelBuffer3_RegisterAsync(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,IAsyncManager *pAsyncMgr) {
   3295     return This->lpVtbl->RegisterAsync(This,pMsg,pAsyncMgr);
   3296 }
   3297 #endif
   3298 #endif
   3299 
   3300 #endif
   3301 
   3302 
   3303 #endif  /* __IRpcChannelBuffer3_INTERFACE_DEFINED__ */
   3304 
   3305 
   3306 /*****************************************************************************
   3307  * IRpcSyntaxNegotiate interface
   3308  */
   3309 #ifndef __IRpcSyntaxNegotiate_INTERFACE_DEFINED__
   3310 #define __IRpcSyntaxNegotiate_INTERFACE_DEFINED__
   3311 
   3312 DEFINE_GUID(IID_IRpcSyntaxNegotiate, 0x58a08519, 0x24c8, 0x4935, 0xb4,0x82, 0x3f,0xd8,0x23,0x33,0x3a,0x4f);
   3313 #if defined(__cplusplus) && !defined(CINTERFACE)
   3314 MIDL_INTERFACE("58a08519-24c8-4935-b482-3fd823333a4f")
   3315 IRpcSyntaxNegotiate : public IUnknown
   3316 {
   3317     virtual HRESULT STDMETHODCALLTYPE NegotiateSyntax(
   3318         RPCOLEMESSAGE *pMsg) = 0;
   3319 
   3320 };
   3321 #ifdef __CRT_UUID_DECL
   3322 __CRT_UUID_DECL(IRpcSyntaxNegotiate, 0x58a08519, 0x24c8, 0x4935, 0xb4,0x82, 0x3f,0xd8,0x23,0x33,0x3a,0x4f)
   3323 #endif
   3324 #else
   3325 typedef struct IRpcSyntaxNegotiateVtbl {
   3326     BEGIN_INTERFACE
   3327 
   3328     /*** IUnknown methods ***/
   3329     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3330         IRpcSyntaxNegotiate *This,
   3331         REFIID riid,
   3332         void **ppvObject);
   3333 
   3334     ULONG (STDMETHODCALLTYPE *AddRef)(
   3335         IRpcSyntaxNegotiate *This);
   3336 
   3337     ULONG (STDMETHODCALLTYPE *Release)(
   3338         IRpcSyntaxNegotiate *This);
   3339 
   3340     /*** IRpcSyntaxNegotiate methods ***/
   3341     HRESULT (STDMETHODCALLTYPE *NegotiateSyntax)(
   3342         IRpcSyntaxNegotiate *This,
   3343         RPCOLEMESSAGE *pMsg);
   3344 
   3345     END_INTERFACE
   3346 } IRpcSyntaxNegotiateVtbl;
   3347 
   3348 interface IRpcSyntaxNegotiate {
   3349     CONST_VTBL IRpcSyntaxNegotiateVtbl* lpVtbl;
   3350 };
   3351 
   3352 #ifdef COBJMACROS
   3353 #ifndef WIDL_C_INLINE_WRAPPERS
   3354 /*** IUnknown methods ***/
   3355 #define IRpcSyntaxNegotiate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3356 #define IRpcSyntaxNegotiate_AddRef(This) (This)->lpVtbl->AddRef(This)
   3357 #define IRpcSyntaxNegotiate_Release(This) (This)->lpVtbl->Release(This)
   3358 /*** IRpcSyntaxNegotiate methods ***/
   3359 #define IRpcSyntaxNegotiate_NegotiateSyntax(This,pMsg) (This)->lpVtbl->NegotiateSyntax(This,pMsg)
   3360 #else
   3361 /*** IUnknown methods ***/
   3362 static inline HRESULT IRpcSyntaxNegotiate_QueryInterface(IRpcSyntaxNegotiate* This,REFIID riid,void **ppvObject) {
   3363     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3364 }
   3365 static inline ULONG IRpcSyntaxNegotiate_AddRef(IRpcSyntaxNegotiate* This) {
   3366     return This->lpVtbl->AddRef(This);
   3367 }
   3368 static inline ULONG IRpcSyntaxNegotiate_Release(IRpcSyntaxNegotiate* This) {
   3369     return This->lpVtbl->Release(This);
   3370 }
   3371 /*** IRpcSyntaxNegotiate methods ***/
   3372 static inline HRESULT IRpcSyntaxNegotiate_NegotiateSyntax(IRpcSyntaxNegotiate* This,RPCOLEMESSAGE *pMsg) {
   3373     return This->lpVtbl->NegotiateSyntax(This,pMsg);
   3374 }
   3375 #endif
   3376 #endif
   3377 
   3378 #endif
   3379 
   3380 
   3381 #endif  /* __IRpcSyntaxNegotiate_INTERFACE_DEFINED__ */
   3382 
   3383 
   3384 /*****************************************************************************
   3385  * IRpcProxyBuffer interface
   3386  */
   3387 #ifndef __IRpcProxyBuffer_INTERFACE_DEFINED__
   3388 #define __IRpcProxyBuffer_INTERFACE_DEFINED__
   3389 
   3390 DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
   3391 #if defined(__cplusplus) && !defined(CINTERFACE)
   3392 MIDL_INTERFACE("d5f56a34-593b-101a-b569-08002b2dbf7a")
   3393 IRpcProxyBuffer : public IUnknown
   3394 {
   3395     virtual HRESULT STDMETHODCALLTYPE Connect(
   3396         IRpcChannelBuffer *pRpcChannelBuffer) = 0;
   3397 
   3398     virtual void STDMETHODCALLTYPE Disconnect(
   3399         ) = 0;
   3400 
   3401 };
   3402 #ifdef __CRT_UUID_DECL
   3403 __CRT_UUID_DECL(IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
   3404 #endif
   3405 #else
   3406 typedef struct IRpcProxyBufferVtbl {
   3407     BEGIN_INTERFACE
   3408 
   3409     /*** IUnknown methods ***/
   3410     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3411         IRpcProxyBuffer *This,
   3412         REFIID riid,
   3413         void **ppvObject);
   3414 
   3415     ULONG (STDMETHODCALLTYPE *AddRef)(
   3416         IRpcProxyBuffer *This);
   3417 
   3418     ULONG (STDMETHODCALLTYPE *Release)(
   3419         IRpcProxyBuffer *This);
   3420 
   3421     /*** IRpcProxyBuffer methods ***/
   3422     HRESULT (STDMETHODCALLTYPE *Connect)(
   3423         IRpcProxyBuffer *This,
   3424         IRpcChannelBuffer *pRpcChannelBuffer);
   3425 
   3426     void (STDMETHODCALLTYPE *Disconnect)(
   3427         IRpcProxyBuffer *This);
   3428 
   3429     END_INTERFACE
   3430 } IRpcProxyBufferVtbl;
   3431 
   3432 interface IRpcProxyBuffer {
   3433     CONST_VTBL IRpcProxyBufferVtbl* lpVtbl;
   3434 };
   3435 
   3436 #ifdef COBJMACROS
   3437 #ifndef WIDL_C_INLINE_WRAPPERS
   3438 /*** IUnknown methods ***/
   3439 #define IRpcProxyBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3440 #define IRpcProxyBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
   3441 #define IRpcProxyBuffer_Release(This) (This)->lpVtbl->Release(This)
   3442 /*** IRpcProxyBuffer methods ***/
   3443 #define IRpcProxyBuffer_Connect(This,pRpcChannelBuffer) (This)->lpVtbl->Connect(This,pRpcChannelBuffer)
   3444 #define IRpcProxyBuffer_Disconnect(This) (This)->lpVtbl->Disconnect(This)
   3445 #else
   3446 /*** IUnknown methods ***/
   3447 static inline HRESULT IRpcProxyBuffer_QueryInterface(IRpcProxyBuffer* This,REFIID riid,void **ppvObject) {
   3448     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3449 }
   3450 static inline ULONG IRpcProxyBuffer_AddRef(IRpcProxyBuffer* This) {
   3451     return This->lpVtbl->AddRef(This);
   3452 }
   3453 static inline ULONG IRpcProxyBuffer_Release(IRpcProxyBuffer* This) {
   3454     return This->lpVtbl->Release(This);
   3455 }
   3456 /*** IRpcProxyBuffer methods ***/
   3457 static inline HRESULT IRpcProxyBuffer_Connect(IRpcProxyBuffer* This,IRpcChannelBuffer *pRpcChannelBuffer) {
   3458     return This->lpVtbl->Connect(This,pRpcChannelBuffer);
   3459 }
   3460 static inline void IRpcProxyBuffer_Disconnect(IRpcProxyBuffer* This) {
   3461     This->lpVtbl->Disconnect(This);
   3462 }
   3463 #endif
   3464 #endif
   3465 
   3466 #endif
   3467 
   3468 
   3469 #endif  /* __IRpcProxyBuffer_INTERFACE_DEFINED__ */
   3470 
   3471 #endif
   3472 
   3473 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   3474 /*****************************************************************************
   3475  * IRpcStubBuffer interface
   3476  */
   3477 #ifndef __IRpcStubBuffer_INTERFACE_DEFINED__
   3478 #define __IRpcStubBuffer_INTERFACE_DEFINED__
   3479 
   3480 DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
   3481 #if defined(__cplusplus) && !defined(CINTERFACE)
   3482 MIDL_INTERFACE("d5f56afc-593b-101a-b569-08002b2dbf7a")
   3483 IRpcStubBuffer : public IUnknown
   3484 {
   3485     virtual HRESULT STDMETHODCALLTYPE Connect(
   3486         IUnknown *pUnkServer) = 0;
   3487 
   3488     virtual void STDMETHODCALLTYPE Disconnect(
   3489         ) = 0;
   3490 
   3491     virtual HRESULT STDMETHODCALLTYPE Invoke(
   3492         RPCOLEMESSAGE *_prpcmsg,
   3493         IRpcChannelBuffer *_pRpcChannelBuffer) = 0;
   3494 
   3495     virtual IRpcStubBuffer * STDMETHODCALLTYPE IsIIDSupported(
   3496         REFIID riid) = 0;
   3497 
   3498     virtual ULONG STDMETHODCALLTYPE CountRefs(
   3499         ) = 0;
   3500 
   3501     virtual HRESULT STDMETHODCALLTYPE DebugServerQueryInterface(
   3502         void **ppv) = 0;
   3503 
   3504     virtual void STDMETHODCALLTYPE DebugServerRelease(
   3505         void *pv) = 0;
   3506 
   3507 };
   3508 #ifdef __CRT_UUID_DECL
   3509 __CRT_UUID_DECL(IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
   3510 #endif
   3511 #else
   3512 typedef struct IRpcStubBufferVtbl {
   3513     BEGIN_INTERFACE
   3514 
   3515     /*** IUnknown methods ***/
   3516     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3517         IRpcStubBuffer *This,
   3518         REFIID riid,
   3519         void **ppvObject);
   3520 
   3521     ULONG (STDMETHODCALLTYPE *AddRef)(
   3522         IRpcStubBuffer *This);
   3523 
   3524     ULONG (STDMETHODCALLTYPE *Release)(
   3525         IRpcStubBuffer *This);
   3526 
   3527     /*** IRpcStubBuffer methods ***/
   3528     HRESULT (STDMETHODCALLTYPE *Connect)(
   3529         IRpcStubBuffer *This,
   3530         IUnknown *pUnkServer);
   3531 
   3532     void (STDMETHODCALLTYPE *Disconnect)(
   3533         IRpcStubBuffer *This);
   3534 
   3535     HRESULT (STDMETHODCALLTYPE *Invoke)(
   3536         IRpcStubBuffer *This,
   3537         RPCOLEMESSAGE *_prpcmsg,
   3538         IRpcChannelBuffer *_pRpcChannelBuffer);
   3539 
   3540     IRpcStubBuffer * (STDMETHODCALLTYPE *IsIIDSupported)(
   3541         IRpcStubBuffer *This,
   3542         REFIID riid);
   3543 
   3544     ULONG (STDMETHODCALLTYPE *CountRefs)(
   3545         IRpcStubBuffer *This);
   3546 
   3547     HRESULT (STDMETHODCALLTYPE *DebugServerQueryInterface)(
   3548         IRpcStubBuffer *This,
   3549         void **ppv);
   3550 
   3551     void (STDMETHODCALLTYPE *DebugServerRelease)(
   3552         IRpcStubBuffer *This,
   3553         void *pv);
   3554 
   3555     END_INTERFACE
   3556 } IRpcStubBufferVtbl;
   3557 
   3558 interface IRpcStubBuffer {
   3559     CONST_VTBL IRpcStubBufferVtbl* lpVtbl;
   3560 };
   3561 
   3562 #ifdef COBJMACROS
   3563 #ifndef WIDL_C_INLINE_WRAPPERS
   3564 /*** IUnknown methods ***/
   3565 #define IRpcStubBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3566 #define IRpcStubBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
   3567 #define IRpcStubBuffer_Release(This) (This)->lpVtbl->Release(This)
   3568 /*** IRpcStubBuffer methods ***/
   3569 #define IRpcStubBuffer_Connect(This,pUnkServer) (This)->lpVtbl->Connect(This,pUnkServer)
   3570 #define IRpcStubBuffer_Disconnect(This) (This)->lpVtbl->Disconnect(This)
   3571 #define IRpcStubBuffer_Invoke(This,_prpcmsg,_pRpcChannelBuffer) (This)->lpVtbl->Invoke(This,_prpcmsg,_pRpcChannelBuffer)
   3572 #define IRpcStubBuffer_IsIIDSupported(This,riid) (This)->lpVtbl->IsIIDSupported(This,riid)
   3573 #define IRpcStubBuffer_CountRefs(This) (This)->lpVtbl->CountRefs(This)
   3574 #define IRpcStubBuffer_DebugServerQueryInterface(This,ppv) (This)->lpVtbl->DebugServerQueryInterface(This,ppv)
   3575 #define IRpcStubBuffer_DebugServerRelease(This,pv) (This)->lpVtbl->DebugServerRelease(This,pv)
   3576 #else
   3577 /*** IUnknown methods ***/
   3578 static inline HRESULT IRpcStubBuffer_QueryInterface(IRpcStubBuffer* This,REFIID riid,void **ppvObject) {
   3579     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3580 }
   3581 static inline ULONG IRpcStubBuffer_AddRef(IRpcStubBuffer* This) {
   3582     return This->lpVtbl->AddRef(This);
   3583 }
   3584 static inline ULONG IRpcStubBuffer_Release(IRpcStubBuffer* This) {
   3585     return This->lpVtbl->Release(This);
   3586 }
   3587 /*** IRpcStubBuffer methods ***/
   3588 static inline HRESULT IRpcStubBuffer_Connect(IRpcStubBuffer* This,IUnknown *pUnkServer) {
   3589     return This->lpVtbl->Connect(This,pUnkServer);
   3590 }
   3591 static inline void IRpcStubBuffer_Disconnect(IRpcStubBuffer* This) {
   3592     This->lpVtbl->Disconnect(This);
   3593 }
   3594 static inline HRESULT IRpcStubBuffer_Invoke(IRpcStubBuffer* This,RPCOLEMESSAGE *_prpcmsg,IRpcChannelBuffer *_pRpcChannelBuffer) {
   3595     return This->lpVtbl->Invoke(This,_prpcmsg,_pRpcChannelBuffer);
   3596 }
   3597 static inline IRpcStubBuffer * IRpcStubBuffer_IsIIDSupported(IRpcStubBuffer* This,REFIID riid) {
   3598     return This->lpVtbl->IsIIDSupported(This,riid);
   3599 }
   3600 static inline ULONG IRpcStubBuffer_CountRefs(IRpcStubBuffer* This) {
   3601     return This->lpVtbl->CountRefs(This);
   3602 }
   3603 static inline HRESULT IRpcStubBuffer_DebugServerQueryInterface(IRpcStubBuffer* This,void **ppv) {
   3604     return This->lpVtbl->DebugServerQueryInterface(This,ppv);
   3605 }
   3606 static inline void IRpcStubBuffer_DebugServerRelease(IRpcStubBuffer* This,void *pv) {
   3607     This->lpVtbl->DebugServerRelease(This,pv);
   3608 }
   3609 #endif
   3610 #endif
   3611 
   3612 #endif
   3613 
   3614 
   3615 #endif  /* __IRpcStubBuffer_INTERFACE_DEFINED__ */
   3616 
   3617 
   3618 /*****************************************************************************
   3619  * IPSFactoryBuffer interface
   3620  */
   3621 #ifndef __IPSFactoryBuffer_INTERFACE_DEFINED__
   3622 #define __IPSFactoryBuffer_INTERFACE_DEFINED__
   3623 
   3624 DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
   3625 #if defined(__cplusplus) && !defined(CINTERFACE)
   3626 MIDL_INTERFACE("d5f569d0-593b-101a-b569-08002b2dbf7a")
   3627 IPSFactoryBuffer : public IUnknown
   3628 {
   3629     virtual HRESULT STDMETHODCALLTYPE CreateProxy(
   3630         IUnknown *pUnkOuter,
   3631         REFIID riid,
   3632         IRpcProxyBuffer **ppProxy,
   3633         void **ppv) = 0;
   3634 
   3635     virtual HRESULT STDMETHODCALLTYPE CreateStub(
   3636         REFIID riid,
   3637         IUnknown *pUnkServer,
   3638         IRpcStubBuffer **ppStub) = 0;
   3639 
   3640 };
   3641 #ifdef __CRT_UUID_DECL
   3642 __CRT_UUID_DECL(IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
   3643 #endif
   3644 #else
   3645 typedef struct IPSFactoryBufferVtbl {
   3646     BEGIN_INTERFACE
   3647 
   3648     /*** IUnknown methods ***/
   3649     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3650         IPSFactoryBuffer *This,
   3651         REFIID riid,
   3652         void **ppvObject);
   3653 
   3654     ULONG (STDMETHODCALLTYPE *AddRef)(
   3655         IPSFactoryBuffer *This);
   3656 
   3657     ULONG (STDMETHODCALLTYPE *Release)(
   3658         IPSFactoryBuffer *This);
   3659 
   3660     /*** IPSFactoryBuffer methods ***/
   3661     HRESULT (STDMETHODCALLTYPE *CreateProxy)(
   3662         IPSFactoryBuffer *This,
   3663         IUnknown *pUnkOuter,
   3664         REFIID riid,
   3665         IRpcProxyBuffer **ppProxy,
   3666         void **ppv);
   3667 
   3668     HRESULT (STDMETHODCALLTYPE *CreateStub)(
   3669         IPSFactoryBuffer *This,
   3670         REFIID riid,
   3671         IUnknown *pUnkServer,
   3672         IRpcStubBuffer **ppStub);
   3673 
   3674     END_INTERFACE
   3675 } IPSFactoryBufferVtbl;
   3676 
   3677 interface IPSFactoryBuffer {
   3678     CONST_VTBL IPSFactoryBufferVtbl* lpVtbl;
   3679 };
   3680 
   3681 #ifdef COBJMACROS
   3682 #ifndef WIDL_C_INLINE_WRAPPERS
   3683 /*** IUnknown methods ***/
   3684 #define IPSFactoryBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3685 #define IPSFactoryBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
   3686 #define IPSFactoryBuffer_Release(This) (This)->lpVtbl->Release(This)
   3687 /*** IPSFactoryBuffer methods ***/
   3688 #define IPSFactoryBuffer_CreateProxy(This,pUnkOuter,riid,ppProxy,ppv) (This)->lpVtbl->CreateProxy(This,pUnkOuter,riid,ppProxy,ppv)
   3689 #define IPSFactoryBuffer_CreateStub(This,riid,pUnkServer,ppStub) (This)->lpVtbl->CreateStub(This,riid,pUnkServer,ppStub)
   3690 #else
   3691 /*** IUnknown methods ***/
   3692 static inline HRESULT IPSFactoryBuffer_QueryInterface(IPSFactoryBuffer* This,REFIID riid,void **ppvObject) {
   3693     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3694 }
   3695 static inline ULONG IPSFactoryBuffer_AddRef(IPSFactoryBuffer* This) {
   3696     return This->lpVtbl->AddRef(This);
   3697 }
   3698 static inline ULONG IPSFactoryBuffer_Release(IPSFactoryBuffer* This) {
   3699     return This->lpVtbl->Release(This);
   3700 }
   3701 /*** IPSFactoryBuffer methods ***/
   3702 static inline HRESULT IPSFactoryBuffer_CreateProxy(IPSFactoryBuffer* This,IUnknown *pUnkOuter,REFIID riid,IRpcProxyBuffer **ppProxy,void **ppv) {
   3703     return This->lpVtbl->CreateProxy(This,pUnkOuter,riid,ppProxy,ppv);
   3704 }
   3705 static inline HRESULT IPSFactoryBuffer_CreateStub(IPSFactoryBuffer* This,REFIID riid,IUnknown *pUnkServer,IRpcStubBuffer **ppStub) {
   3706     return This->lpVtbl->CreateStub(This,riid,pUnkServer,ppStub);
   3707 }
   3708 #endif
   3709 #endif
   3710 
   3711 #endif
   3712 
   3713 
   3714 #endif  /* __IPSFactoryBuffer_INTERFACE_DEFINED__ */
   3715 
   3716 #endif
   3717 
   3718 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   3719 #if  (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)
   3720 typedef struct SChannelHookCallInfo {
   3721     IID iid;
   3722     DWORD cbSize;
   3723     GUID uCausality;
   3724     DWORD dwServerPid;
   3725     DWORD iMethod;
   3726     void *pObject;
   3727 } SChannelHookCallInfo;
   3728 
   3729 /*****************************************************************************
   3730  * IChannelHook interface
   3731  */
   3732 #ifndef __IChannelHook_INTERFACE_DEFINED__
   3733 #define __IChannelHook_INTERFACE_DEFINED__
   3734 
   3735 DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
   3736 #if defined(__cplusplus) && !defined(CINTERFACE)
   3737 MIDL_INTERFACE("1008c4a0-7613-11cf-9af1-0020af6e72f4")
   3738 IChannelHook : public IUnknown
   3739 {
   3740     virtual void STDMETHODCALLTYPE ClientGetSize(
   3741         REFGUID uExtent,
   3742         REFIID riid,
   3743         ULONG *pDataSize) = 0;
   3744 
   3745     virtual void STDMETHODCALLTYPE ClientFillBuffer(
   3746         REFGUID uExtent,
   3747         REFIID riid,
   3748         ULONG *pDataSize,
   3749         void *pDataBuffer) = 0;
   3750 
   3751     virtual void STDMETHODCALLTYPE ClientNotify(
   3752         REFGUID uExtent,
   3753         REFIID riid,
   3754         ULONG cbDataSize,
   3755         void *pDataBuffer,
   3756         DWORD lDataRep,
   3757         HRESULT hrFault) = 0;
   3758 
   3759     virtual void STDMETHODCALLTYPE ServerNotify(
   3760         REFGUID uExtent,
   3761         REFIID riid,
   3762         ULONG cbDataSize,
   3763         void *pDataBuffer,
   3764         DWORD lDataRep) = 0;
   3765 
   3766     virtual void STDMETHODCALLTYPE ServerGetSize(
   3767         REFGUID uExtent,
   3768         REFIID riid,
   3769         HRESULT hrFault,
   3770         ULONG *pDataSize) = 0;
   3771 
   3772     virtual void STDMETHODCALLTYPE ServerFillBuffer(
   3773         REFGUID uExtent,
   3774         REFIID riid,
   3775         ULONG *pDataSize,
   3776         void *pDataBuffer,
   3777         HRESULT hrFault) = 0;
   3778 
   3779 };
   3780 #ifdef __CRT_UUID_DECL
   3781 __CRT_UUID_DECL(IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4)
   3782 #endif
   3783 #else
   3784 typedef struct IChannelHookVtbl {
   3785     BEGIN_INTERFACE
   3786 
   3787     /*** IUnknown methods ***/
   3788     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3789         IChannelHook *This,
   3790         REFIID riid,
   3791         void **ppvObject);
   3792 
   3793     ULONG (STDMETHODCALLTYPE *AddRef)(
   3794         IChannelHook *This);
   3795 
   3796     ULONG (STDMETHODCALLTYPE *Release)(
   3797         IChannelHook *This);
   3798 
   3799     /*** IChannelHook methods ***/
   3800     void (STDMETHODCALLTYPE *ClientGetSize)(
   3801         IChannelHook *This,
   3802         REFGUID uExtent,
   3803         REFIID riid,
   3804         ULONG *pDataSize);
   3805 
   3806     void (STDMETHODCALLTYPE *ClientFillBuffer)(
   3807         IChannelHook *This,
   3808         REFGUID uExtent,
   3809         REFIID riid,
   3810         ULONG *pDataSize,
   3811         void *pDataBuffer);
   3812 
   3813     void (STDMETHODCALLTYPE *ClientNotify)(
   3814         IChannelHook *This,
   3815         REFGUID uExtent,
   3816         REFIID riid,
   3817         ULONG cbDataSize,
   3818         void *pDataBuffer,
   3819         DWORD lDataRep,
   3820         HRESULT hrFault);
   3821 
   3822     void (STDMETHODCALLTYPE *ServerNotify)(
   3823         IChannelHook *This,
   3824         REFGUID uExtent,
   3825         REFIID riid,
   3826         ULONG cbDataSize,
   3827         void *pDataBuffer,
   3828         DWORD lDataRep);
   3829 
   3830     void (STDMETHODCALLTYPE *ServerGetSize)(
   3831         IChannelHook *This,
   3832         REFGUID uExtent,
   3833         REFIID riid,
   3834         HRESULT hrFault,
   3835         ULONG *pDataSize);
   3836 
   3837     void (STDMETHODCALLTYPE *ServerFillBuffer)(
   3838         IChannelHook *This,
   3839         REFGUID uExtent,
   3840         REFIID riid,
   3841         ULONG *pDataSize,
   3842         void *pDataBuffer,
   3843         HRESULT hrFault);
   3844 
   3845     END_INTERFACE
   3846 } IChannelHookVtbl;
   3847 
   3848 interface IChannelHook {
   3849     CONST_VTBL IChannelHookVtbl* lpVtbl;
   3850 };
   3851 
   3852 #ifdef COBJMACROS
   3853 #ifndef WIDL_C_INLINE_WRAPPERS
   3854 /*** IUnknown methods ***/
   3855 #define IChannelHook_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3856 #define IChannelHook_AddRef(This) (This)->lpVtbl->AddRef(This)
   3857 #define IChannelHook_Release(This) (This)->lpVtbl->Release(This)
   3858 /*** IChannelHook methods ***/
   3859 #define IChannelHook_ClientGetSize(This,uExtent,riid,pDataSize) (This)->lpVtbl->ClientGetSize(This,uExtent,riid,pDataSize)
   3860 #define IChannelHook_ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer) (This)->lpVtbl->ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer)
   3861 #define IChannelHook_ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault) (This)->lpVtbl->ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault)
   3862 #define IChannelHook_ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep) (This)->lpVtbl->ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep)
   3863 #define IChannelHook_ServerGetSize(This,uExtent,riid,hrFault,pDataSize) (This)->lpVtbl->ServerGetSize(This,uExtent,riid,hrFault,pDataSize)
   3864 #define IChannelHook_ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault) (This)->lpVtbl->ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault)
   3865 #else
   3866 /*** IUnknown methods ***/
   3867 static inline HRESULT IChannelHook_QueryInterface(IChannelHook* This,REFIID riid,void **ppvObject) {
   3868     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3869 }
   3870 static inline ULONG IChannelHook_AddRef(IChannelHook* This) {
   3871     return This->lpVtbl->AddRef(This);
   3872 }
   3873 static inline ULONG IChannelHook_Release(IChannelHook* This) {
   3874     return This->lpVtbl->Release(This);
   3875 }
   3876 /*** IChannelHook methods ***/
   3877 static inline void IChannelHook_ClientGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize) {
   3878     This->lpVtbl->ClientGetSize(This,uExtent,riid,pDataSize);
   3879 }
   3880 static inline void IChannelHook_ClientFillBuffer(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer) {
   3881     This->lpVtbl->ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer);
   3882 }
   3883 static inline void IChannelHook_ClientNotify(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG cbDataSize,void *pDataBuffer,DWORD lDataRep,HRESULT hrFault) {
   3884     This->lpVtbl->ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault);
   3885 }
   3886 static inline void IChannelHook_ServerNotify(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG cbDataSize,void *pDataBuffer,DWORD lDataRep) {
   3887     This->lpVtbl->ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep);
   3888 }
   3889 static inline void IChannelHook_ServerGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,HRESULT hrFault,ULONG *pDataSize) {
   3890     This->lpVtbl->ServerGetSize(This,uExtent,riid,hrFault,pDataSize);
   3891 }
   3892 static inline void IChannelHook_ServerFillBuffer(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer,HRESULT hrFault) {
   3893     This->lpVtbl->ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault);
   3894 }
   3895 #endif
   3896 #endif
   3897 
   3898 #endif
   3899 
   3900 
   3901 #endif  /* __IChannelHook_INTERFACE_DEFINED__ */
   3902 
   3903 #endif
   3904 #endif
   3905 
   3906 #if  (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)
   3907 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   3908 /*****************************************************************************
   3909  * IClientSecurity interface
   3910  */
   3911 #ifndef __IClientSecurity_INTERFACE_DEFINED__
   3912 #define __IClientSecurity_INTERFACE_DEFINED__
   3913 
   3914 typedef struct tagSOLE_AUTHENTICATION_SERVICE {
   3915     DWORD dwAuthnSvc;
   3916     DWORD dwAuthzSvc;
   3917     OLECHAR *pPrincipalName;
   3918     HRESULT hr;
   3919 } SOLE_AUTHENTICATION_SERVICE;
   3920 
   3921 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
   3922 
   3923 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
   3924     EOAC_NONE = 0x0,
   3925     EOAC_MUTUAL_AUTH = 0x1,
   3926     EOAC_STATIC_CLOAKING = 0x20,
   3927     EOAC_DYNAMIC_CLOAKING = 0x40,
   3928     EOAC_ANY_AUTHORITY = 0x80,
   3929     EOAC_MAKE_FULLSIC = 0x100,
   3930     EOAC_DEFAULT = 0x800,
   3931     EOAC_SECURE_REFS = 0x2,
   3932     EOAC_ACCESS_CONTROL = 0x4,
   3933     EOAC_APPID = 0x8,
   3934     EOAC_DYNAMIC = 0x10,
   3935     EOAC_REQUIRE_FULLSIC = 0x200,
   3936     EOAC_AUTO_IMPERSONATE = 0x400,
   3937     EOAC_NO_CUSTOM_MARSHAL = 0x2000,
   3938     EOAC_DISABLE_AAA = 0x1000
   3939 } EOLE_AUTHENTICATION_CAPABILITIES;
   3940 
   3941 #define COLE_DEFAULT_PRINCIPAL ((OLECHAR *)(INT_PTR)-1)
   3942 
   3943 #define COLE_DEFAULT_AUTHINFO ((void *)(INT_PTR)-1)
   3944 
   3945 
   3946 typedef struct tagSOLE_AUTHENTICATION_INFO {
   3947     DWORD dwAuthnSvc;
   3948     DWORD dwAuthzSvc;
   3949     void *pAuthInfo;
   3950 } SOLE_AUTHENTICATION_INFO;
   3951 typedef struct tagSOLE_AUTHENTICATION_INFO *PSOLE_AUTHENTICATION_INFO;
   3952 
   3953 typedef struct tagSOLE_AUTHENTICATION_LIST {
   3954     DWORD cAuthInfo;
   3955     SOLE_AUTHENTICATION_INFO *aAuthInfo;
   3956 } SOLE_AUTHENTICATION_LIST;
   3957 typedef struct tagSOLE_AUTHENTICATION_LIST *PSOLE_AUTHENTICATION_LIST;
   3958 
   3959 DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   3960 #if defined(__cplusplus) && !defined(CINTERFACE)
   3961 MIDL_INTERFACE("0000013d-0000-0000-c000-000000000046")
   3962 IClientSecurity : public IUnknown
   3963 {
   3964     virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
   3965         IUnknown *pProxy,
   3966         DWORD *pAuthnSvc,
   3967         DWORD *pAuthzSvc,
   3968         OLECHAR **pServerPrincName,
   3969         DWORD *pAuthnLevel,
   3970         DWORD *pImpLevel,
   3971         void **pAuthInfo,
   3972         DWORD *pCapabilites) = 0;
   3973 
   3974     virtual HRESULT STDMETHODCALLTYPE SetBlanket(
   3975         IUnknown *pProxy,
   3976         DWORD dwAuthnSvc,
   3977         DWORD dwAuthzSvc,
   3978         OLECHAR *pServerPrincName,
   3979         DWORD dwAuthnLevel,
   3980         DWORD dwImpLevel,
   3981         void *pAuthInfo,
   3982         DWORD dwCapabilities) = 0;
   3983 
   3984     virtual HRESULT STDMETHODCALLTYPE CopyProxy(
   3985         IUnknown *pProxy,
   3986         IUnknown **ppCopy) = 0;
   3987 
   3988 };
   3989 #ifdef __CRT_UUID_DECL
   3990 __CRT_UUID_DECL(IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   3991 #endif
   3992 #else
   3993 typedef struct IClientSecurityVtbl {
   3994     BEGIN_INTERFACE
   3995 
   3996     /*** IUnknown methods ***/
   3997     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3998         IClientSecurity *This,
   3999         REFIID riid,
   4000         void **ppvObject);
   4001 
   4002     ULONG (STDMETHODCALLTYPE *AddRef)(
   4003         IClientSecurity *This);
   4004 
   4005     ULONG (STDMETHODCALLTYPE *Release)(
   4006         IClientSecurity *This);
   4007 
   4008     /*** IClientSecurity methods ***/
   4009     HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
   4010         IClientSecurity *This,
   4011         IUnknown *pProxy,
   4012         DWORD *pAuthnSvc,
   4013         DWORD *pAuthzSvc,
   4014         OLECHAR **pServerPrincName,
   4015         DWORD *pAuthnLevel,
   4016         DWORD *pImpLevel,
   4017         void **pAuthInfo,
   4018         DWORD *pCapabilites);
   4019 
   4020     HRESULT (STDMETHODCALLTYPE *SetBlanket)(
   4021         IClientSecurity *This,
   4022         IUnknown *pProxy,
   4023         DWORD dwAuthnSvc,
   4024         DWORD dwAuthzSvc,
   4025         OLECHAR *pServerPrincName,
   4026         DWORD dwAuthnLevel,
   4027         DWORD dwImpLevel,
   4028         void *pAuthInfo,
   4029         DWORD dwCapabilities);
   4030 
   4031     HRESULT (STDMETHODCALLTYPE *CopyProxy)(
   4032         IClientSecurity *This,
   4033         IUnknown *pProxy,
   4034         IUnknown **ppCopy);
   4035 
   4036     END_INTERFACE
   4037 } IClientSecurityVtbl;
   4038 
   4039 interface IClientSecurity {
   4040     CONST_VTBL IClientSecurityVtbl* lpVtbl;
   4041 };
   4042 
   4043 #ifdef COBJMACROS
   4044 #ifndef WIDL_C_INLINE_WRAPPERS
   4045 /*** IUnknown methods ***/
   4046 #define IClientSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4047 #define IClientSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
   4048 #define IClientSecurity_Release(This) (This)->lpVtbl->Release(This)
   4049 /*** IClientSecurity methods ***/
   4050 #define IClientSecurity_QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites) (This)->lpVtbl->QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites)
   4051 #define IClientSecurity_SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities) (This)->lpVtbl->SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities)
   4052 #define IClientSecurity_CopyProxy(This,pProxy,ppCopy) (This)->lpVtbl->CopyProxy(This,pProxy,ppCopy)
   4053 #else
   4054 /*** IUnknown methods ***/
   4055 static inline HRESULT IClientSecurity_QueryInterface(IClientSecurity* This,REFIID riid,void **ppvObject) {
   4056     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4057 }
   4058 static inline ULONG IClientSecurity_AddRef(IClientSecurity* This) {
   4059     return This->lpVtbl->AddRef(This);
   4060 }
   4061 static inline ULONG IClientSecurity_Release(IClientSecurity* This) {
   4062     return This->lpVtbl->Release(This);
   4063 }
   4064 /*** IClientSecurity methods ***/
   4065 static inline HRESULT IClientSecurity_QueryBlanket(IClientSecurity* This,IUnknown *pProxy,DWORD *pAuthnSvc,DWORD *pAuthzSvc,OLECHAR **pServerPrincName,DWORD *pAuthnLevel,DWORD *pImpLevel,void **pAuthInfo,DWORD *pCapabilites) {
   4066     return This->lpVtbl->QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites);
   4067 }
   4068 static inline HRESULT IClientSecurity_SetBlanket(IClientSecurity* This,IUnknown *pProxy,DWORD dwAuthnSvc,DWORD dwAuthzSvc,OLECHAR *pServerPrincName,DWORD dwAuthnLevel,DWORD dwImpLevel,void *pAuthInfo,DWORD dwCapabilities) {
   4069     return This->lpVtbl->SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities);
   4070 }
   4071 static inline HRESULT IClientSecurity_CopyProxy(IClientSecurity* This,IUnknown *pProxy,IUnknown **ppCopy) {
   4072     return This->lpVtbl->CopyProxy(This,pProxy,ppCopy);
   4073 }
   4074 #endif
   4075 #endif
   4076 
   4077 #endif
   4078 
   4079 
   4080 #endif  /* __IClientSecurity_INTERFACE_DEFINED__ */
   4081 
   4082 #endif
   4083 
   4084 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   4085 /*****************************************************************************
   4086  * IServerSecurity interface
   4087  */
   4088 #ifndef __IServerSecurity_INTERFACE_DEFINED__
   4089 #define __IServerSecurity_INTERFACE_DEFINED__
   4090 
   4091 DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4092 #if defined(__cplusplus) && !defined(CINTERFACE)
   4093 MIDL_INTERFACE("0000013e-0000-0000-c000-000000000046")
   4094 IServerSecurity : public IUnknown
   4095 {
   4096     virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
   4097         DWORD *pAuthnSvc,
   4098         DWORD *pAuthzSvc,
   4099         OLECHAR **pServerPrincName,
   4100         DWORD *pAuthnLevel,
   4101         DWORD *pImpLevel,
   4102         void **pPrivs,
   4103         DWORD *pCapabilities) = 0;
   4104 
   4105     virtual HRESULT STDMETHODCALLTYPE ImpersonateClient(
   4106         ) = 0;
   4107 
   4108     virtual HRESULT STDMETHODCALLTYPE RevertToSelf(
   4109         ) = 0;
   4110 
   4111     virtual WINBOOL STDMETHODCALLTYPE IsImpersonating(
   4112         ) = 0;
   4113 
   4114 };
   4115 #ifdef __CRT_UUID_DECL
   4116 __CRT_UUID_DECL(IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4117 #endif
   4118 #else
   4119 typedef struct IServerSecurityVtbl {
   4120     BEGIN_INTERFACE
   4121 
   4122     /*** IUnknown methods ***/
   4123     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4124         IServerSecurity *This,
   4125         REFIID riid,
   4126         void **ppvObject);
   4127 
   4128     ULONG (STDMETHODCALLTYPE *AddRef)(
   4129         IServerSecurity *This);
   4130 
   4131     ULONG (STDMETHODCALLTYPE *Release)(
   4132         IServerSecurity *This);
   4133 
   4134     /*** IServerSecurity methods ***/
   4135     HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
   4136         IServerSecurity *This,
   4137         DWORD *pAuthnSvc,
   4138         DWORD *pAuthzSvc,
   4139         OLECHAR **pServerPrincName,
   4140         DWORD *pAuthnLevel,
   4141         DWORD *pImpLevel,
   4142         void **pPrivs,
   4143         DWORD *pCapabilities);
   4144 
   4145     HRESULT (STDMETHODCALLTYPE *ImpersonateClient)(
   4146         IServerSecurity *This);
   4147 
   4148     HRESULT (STDMETHODCALLTYPE *RevertToSelf)(
   4149         IServerSecurity *This);
   4150 
   4151     WINBOOL (STDMETHODCALLTYPE *IsImpersonating)(
   4152         IServerSecurity *This);
   4153 
   4154     END_INTERFACE
   4155 } IServerSecurityVtbl;
   4156 
   4157 interface IServerSecurity {
   4158     CONST_VTBL IServerSecurityVtbl* lpVtbl;
   4159 };
   4160 
   4161 #ifdef COBJMACROS
   4162 #ifndef WIDL_C_INLINE_WRAPPERS
   4163 /*** IUnknown methods ***/
   4164 #define IServerSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4165 #define IServerSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
   4166 #define IServerSecurity_Release(This) (This)->lpVtbl->Release(This)
   4167 /*** IServerSecurity methods ***/
   4168 #define IServerSecurity_QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities) (This)->lpVtbl->QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities)
   4169 #define IServerSecurity_ImpersonateClient(This) (This)->lpVtbl->ImpersonateClient(This)
   4170 #define IServerSecurity_RevertToSelf(This) (This)->lpVtbl->RevertToSelf(This)
   4171 #define IServerSecurity_IsImpersonating(This) (This)->lpVtbl->IsImpersonating(This)
   4172 #else
   4173 /*** IUnknown methods ***/
   4174 static inline HRESULT IServerSecurity_QueryInterface(IServerSecurity* This,REFIID riid,void **ppvObject) {
   4175     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4176 }
   4177 static inline ULONG IServerSecurity_AddRef(IServerSecurity* This) {
   4178     return This->lpVtbl->AddRef(This);
   4179 }
   4180 static inline ULONG IServerSecurity_Release(IServerSecurity* This) {
   4181     return This->lpVtbl->Release(This);
   4182 }
   4183 /*** IServerSecurity methods ***/
   4184 static inline HRESULT IServerSecurity_QueryBlanket(IServerSecurity* This,DWORD *pAuthnSvc,DWORD *pAuthzSvc,OLECHAR **pServerPrincName,DWORD *pAuthnLevel,DWORD *pImpLevel,void **pPrivs,DWORD *pCapabilities) {
   4185     return This->lpVtbl->QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities);
   4186 }
   4187 static inline HRESULT IServerSecurity_ImpersonateClient(IServerSecurity* This) {
   4188     return This->lpVtbl->ImpersonateClient(This);
   4189 }
   4190 static inline HRESULT IServerSecurity_RevertToSelf(IServerSecurity* This) {
   4191     return This->lpVtbl->RevertToSelf(This);
   4192 }
   4193 static inline WINBOOL IServerSecurity_IsImpersonating(IServerSecurity* This) {
   4194     return This->lpVtbl->IsImpersonating(This);
   4195 }
   4196 #endif
   4197 #endif
   4198 
   4199 #endif
   4200 
   4201 
   4202 #endif  /* __IServerSecurity_INTERFACE_DEFINED__ */
   4203 
   4204 
   4205 typedef enum tagRPCOPT_PROPERTIES {
   4206     COMBND_RPCTIMEOUT = 0x1,
   4207     COMBND_SERVER_LOCALITY = 0x2,
   4208     COMBND_RESERVED1 = 0x4
   4209 } RPCOPT_PROPERTIES;
   4210 
   4211 typedef enum tagRPCOPT_SERVER_LOCALITY_VALUES {
   4212     SERVER_LOCALITY_PROCESS_LOCAL = 0,
   4213     SERVER_LOCALITY_MACHINE_LOCAL = 1,
   4214     SERVER_LOCALITY_REMOTE = 2
   4215 } RPCOPT_SERVER_LOCALITY_VALUES;
   4216 
   4217 /*****************************************************************************
   4218  * IRpcOptions interface
   4219  */
   4220 #ifndef __IRpcOptions_INTERFACE_DEFINED__
   4221 #define __IRpcOptions_INTERFACE_DEFINED__
   4222 
   4223 DEFINE_GUID(IID_IRpcOptions, 0x00000144, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4224 #if defined(__cplusplus) && !defined(CINTERFACE)
   4225 MIDL_INTERFACE("00000144-0000-0000-c000-000000000046")
   4226 IRpcOptions : public IUnknown
   4227 {
   4228     virtual HRESULT STDMETHODCALLTYPE Set(
   4229         IUnknown *pPrx,
   4230         RPCOPT_PROPERTIES dwProperty,
   4231         ULONG_PTR dwValue) = 0;
   4232 
   4233     virtual HRESULT STDMETHODCALLTYPE Query(
   4234         IUnknown *pPrx,
   4235         RPCOPT_PROPERTIES dwProperty,
   4236         ULONG_PTR *pdwValue) = 0;
   4237 
   4238 };
   4239 #ifdef __CRT_UUID_DECL
   4240 __CRT_UUID_DECL(IRpcOptions, 0x00000144, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4241 #endif
   4242 #else
   4243 typedef struct IRpcOptionsVtbl {
   4244     BEGIN_INTERFACE
   4245 
   4246     /*** IUnknown methods ***/
   4247     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4248         IRpcOptions *This,
   4249         REFIID riid,
   4250         void **ppvObject);
   4251 
   4252     ULONG (STDMETHODCALLTYPE *AddRef)(
   4253         IRpcOptions *This);
   4254 
   4255     ULONG (STDMETHODCALLTYPE *Release)(
   4256         IRpcOptions *This);
   4257 
   4258     /*** IRpcOptions methods ***/
   4259     HRESULT (STDMETHODCALLTYPE *Set)(
   4260         IRpcOptions *This,
   4261         IUnknown *pPrx,
   4262         RPCOPT_PROPERTIES dwProperty,
   4263         ULONG_PTR dwValue);
   4264 
   4265     HRESULT (STDMETHODCALLTYPE *Query)(
   4266         IRpcOptions *This,
   4267         IUnknown *pPrx,
   4268         RPCOPT_PROPERTIES dwProperty,
   4269         ULONG_PTR *pdwValue);
   4270 
   4271     END_INTERFACE
   4272 } IRpcOptionsVtbl;
   4273 
   4274 interface IRpcOptions {
   4275     CONST_VTBL IRpcOptionsVtbl* lpVtbl;
   4276 };
   4277 
   4278 #ifdef COBJMACROS
   4279 #ifndef WIDL_C_INLINE_WRAPPERS
   4280 /*** IUnknown methods ***/
   4281 #define IRpcOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4282 #define IRpcOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
   4283 #define IRpcOptions_Release(This) (This)->lpVtbl->Release(This)
   4284 /*** IRpcOptions methods ***/
   4285 #define IRpcOptions_Set(This,pPrx,dwProperty,dwValue) (This)->lpVtbl->Set(This,pPrx,dwProperty,dwValue)
   4286 #define IRpcOptions_Query(This,pPrx,dwProperty,pdwValue) (This)->lpVtbl->Query(This,pPrx,dwProperty,pdwValue)
   4287 #else
   4288 /*** IUnknown methods ***/
   4289 static inline HRESULT IRpcOptions_QueryInterface(IRpcOptions* This,REFIID riid,void **ppvObject) {
   4290     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4291 }
   4292 static inline ULONG IRpcOptions_AddRef(IRpcOptions* This) {
   4293     return This->lpVtbl->AddRef(This);
   4294 }
   4295 static inline ULONG IRpcOptions_Release(IRpcOptions* This) {
   4296     return This->lpVtbl->Release(This);
   4297 }
   4298 /*** IRpcOptions methods ***/
   4299 static inline HRESULT IRpcOptions_Set(IRpcOptions* This,IUnknown *pPrx,RPCOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
   4300     return This->lpVtbl->Set(This,pPrx,dwProperty,dwValue);
   4301 }
   4302 static inline HRESULT IRpcOptions_Query(IRpcOptions* This,IUnknown *pPrx,RPCOPT_PROPERTIES dwProperty,ULONG_PTR *pdwValue) {
   4303     return This->lpVtbl->Query(This,pPrx,dwProperty,pdwValue);
   4304 }
   4305 #endif
   4306 #endif
   4307 
   4308 #endif
   4309 
   4310 
   4311 #endif  /* __IRpcOptions_INTERFACE_DEFINED__ */
   4312 
   4313 #endif
   4314 
   4315 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   4316 typedef enum tagGLOBALOPT_PROPERTIES {
   4317     COMGLB_EXCEPTION_HANDLING = 1,
   4318     COMGLB_APPID = 2,
   4319     COMGLB_RPC_THREADPOOL_SETTING = 3,
   4320     COMGLB_RO_SETTINGS = 4,
   4321     COMGLB_UNMARSHALING_POLICY = 5
   4322 } GLOBALOPT_PROPERTIES;
   4323 
   4324 typedef enum tagGLOBALOPT_EH_VALUES {
   4325     COMGLB_EXCEPTION_HANDLE = 0,
   4326     COMGLB_EXCEPTION_DONOT_HANDLE_FATAL = 1,
   4327     COMGLB_EXCEPTION_DONOT_HANDLE = COMGLB_EXCEPTION_DONOT_HANDLE_FATAL,
   4328     COMGLB_EXCEPTION_DONOT_HANDLE_ANY = 2
   4329 } GLOBALOPT_EH_VALUES;
   4330 
   4331 typedef enum tagGLOBALOPT_RPCTP_VALUES {
   4332     COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL = 0,
   4333     COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL = 1
   4334 } GLOBALOPT_RPCTP_VALUES;
   4335 
   4336 typedef enum tagGLOBALOPT_RO_FLAGS {
   4337     COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES = 0x1,
   4338     COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES = 0x2,
   4339     COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES = 0x4,
   4340     COMGLB_FAST_RUNDOWN = 0x8,
   4341     COMGLB_RESERVED1 = 0x10,
   4342     COMGLB_RESERVED2 = 0x20,
   4343     COMGLB_RESERVED3 = 0x40,
   4344     COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES = 0x80
   4345 } GLOBALOPT_RO_FLAGS;
   4346 
   4347 typedef enum tagGLOBALOPT_UNMARSHALING_POLICY_VALUES {
   4348     COMGLB_UNMARSHALING_POLICY_NORMAL = 0,
   4349     COMGLB_UNMARSHALING_POLICY_STRONG = 1,
   4350     COMGLB_UNMARSHALING_POLICY_HYBRID = 2
   4351 } GLOBALOPT_UNMARSHALING_POLICY_VALUES;
   4352 
   4353 /*****************************************************************************
   4354  * IGlobalOptions interface
   4355  */
   4356 #ifndef __IGlobalOptions_INTERFACE_DEFINED__
   4357 #define __IGlobalOptions_INTERFACE_DEFINED__
   4358 
   4359 DEFINE_GUID(IID_IGlobalOptions, 0x0000015b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4360 #if defined(__cplusplus) && !defined(CINTERFACE)
   4361 MIDL_INTERFACE("0000015b-0000-0000-c000-000000000046")
   4362 IGlobalOptions : public IUnknown
   4363 {
   4364     virtual HRESULT STDMETHODCALLTYPE Set(
   4365         GLOBALOPT_PROPERTIES dwProperty,
   4366         ULONG_PTR dwValue) = 0;
   4367 
   4368     virtual HRESULT STDMETHODCALLTYPE Query(
   4369         GLOBALOPT_PROPERTIES dwProperty,
   4370         ULONG_PTR *pdwValue) = 0;
   4371 
   4372 };
   4373 #ifdef __CRT_UUID_DECL
   4374 __CRT_UUID_DECL(IGlobalOptions, 0x0000015b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4375 #endif
   4376 #else
   4377 typedef struct IGlobalOptionsVtbl {
   4378     BEGIN_INTERFACE
   4379 
   4380     /*** IUnknown methods ***/
   4381     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4382         IGlobalOptions *This,
   4383         REFIID riid,
   4384         void **ppvObject);
   4385 
   4386     ULONG (STDMETHODCALLTYPE *AddRef)(
   4387         IGlobalOptions *This);
   4388 
   4389     ULONG (STDMETHODCALLTYPE *Release)(
   4390         IGlobalOptions *This);
   4391 
   4392     /*** IGlobalOptions methods ***/
   4393     HRESULT (STDMETHODCALLTYPE *Set)(
   4394         IGlobalOptions *This,
   4395         GLOBALOPT_PROPERTIES dwProperty,
   4396         ULONG_PTR dwValue);
   4397 
   4398     HRESULT (STDMETHODCALLTYPE *Query)(
   4399         IGlobalOptions *This,
   4400         GLOBALOPT_PROPERTIES dwProperty,
   4401         ULONG_PTR *pdwValue);
   4402 
   4403     END_INTERFACE
   4404 } IGlobalOptionsVtbl;
   4405 
   4406 interface IGlobalOptions {
   4407     CONST_VTBL IGlobalOptionsVtbl* lpVtbl;
   4408 };
   4409 
   4410 #ifdef COBJMACROS
   4411 #ifndef WIDL_C_INLINE_WRAPPERS
   4412 /*** IUnknown methods ***/
   4413 #define IGlobalOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4414 #define IGlobalOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
   4415 #define IGlobalOptions_Release(This) (This)->lpVtbl->Release(This)
   4416 /*** IGlobalOptions methods ***/
   4417 #define IGlobalOptions_Set(This,dwProperty,dwValue) (This)->lpVtbl->Set(This,dwProperty,dwValue)
   4418 #define IGlobalOptions_Query(This,dwProperty,pdwValue) (This)->lpVtbl->Query(This,dwProperty,pdwValue)
   4419 #else
   4420 /*** IUnknown methods ***/
   4421 static inline HRESULT IGlobalOptions_QueryInterface(IGlobalOptions* This,REFIID riid,void **ppvObject) {
   4422     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4423 }
   4424 static inline ULONG IGlobalOptions_AddRef(IGlobalOptions* This) {
   4425     return This->lpVtbl->AddRef(This);
   4426 }
   4427 static inline ULONG IGlobalOptions_Release(IGlobalOptions* This) {
   4428     return This->lpVtbl->Release(This);
   4429 }
   4430 /*** IGlobalOptions methods ***/
   4431 static inline HRESULT IGlobalOptions_Set(IGlobalOptions* This,GLOBALOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
   4432     return This->lpVtbl->Set(This,dwProperty,dwValue);
   4433 }
   4434 static inline HRESULT IGlobalOptions_Query(IGlobalOptions* This,GLOBALOPT_PROPERTIES dwProperty,ULONG_PTR *pdwValue) {
   4435     return This->lpVtbl->Query(This,dwProperty,pdwValue);
   4436 }
   4437 #endif
   4438 #endif
   4439 
   4440 #endif
   4441 
   4442 
   4443 #endif  /* __IGlobalOptions_INTERFACE_DEFINED__ */
   4444 
   4445 #endif
   4446 #endif
   4447 
   4448 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   4449 /*****************************************************************************
   4450  * ISurrogate interface
   4451  */
   4452 #ifndef __ISurrogate_INTERFACE_DEFINED__
   4453 #define __ISurrogate_INTERFACE_DEFINED__
   4454 
   4455 typedef ISurrogate *LPSURROGATE;
   4456 
   4457 DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4458 #if defined(__cplusplus) && !defined(CINTERFACE)
   4459 MIDL_INTERFACE("00000022-0000-0000-c000-000000000046")
   4460 ISurrogate : public IUnknown
   4461 {
   4462     virtual HRESULT STDMETHODCALLTYPE LoadDllServer(
   4463         REFCLSID Clsid) = 0;
   4464 
   4465     virtual HRESULT STDMETHODCALLTYPE FreeSurrogate(
   4466         ) = 0;
   4467 
   4468 };
   4469 #ifdef __CRT_UUID_DECL
   4470 __CRT_UUID_DECL(ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4471 #endif
   4472 #else
   4473 typedef struct ISurrogateVtbl {
   4474     BEGIN_INTERFACE
   4475 
   4476     /*** IUnknown methods ***/
   4477     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4478         ISurrogate *This,
   4479         REFIID riid,
   4480         void **ppvObject);
   4481 
   4482     ULONG (STDMETHODCALLTYPE *AddRef)(
   4483         ISurrogate *This);
   4484 
   4485     ULONG (STDMETHODCALLTYPE *Release)(
   4486         ISurrogate *This);
   4487 
   4488     /*** ISurrogate methods ***/
   4489     HRESULT (STDMETHODCALLTYPE *LoadDllServer)(
   4490         ISurrogate *This,
   4491         REFCLSID Clsid);
   4492 
   4493     HRESULT (STDMETHODCALLTYPE *FreeSurrogate)(
   4494         ISurrogate *This);
   4495 
   4496     END_INTERFACE
   4497 } ISurrogateVtbl;
   4498 
   4499 interface ISurrogate {
   4500     CONST_VTBL ISurrogateVtbl* lpVtbl;
   4501 };
   4502 
   4503 #ifdef COBJMACROS
   4504 #ifndef WIDL_C_INLINE_WRAPPERS
   4505 /*** IUnknown methods ***/
   4506 #define ISurrogate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4507 #define ISurrogate_AddRef(This) (This)->lpVtbl->AddRef(This)
   4508 #define ISurrogate_Release(This) (This)->lpVtbl->Release(This)
   4509 /*** ISurrogate methods ***/
   4510 #define ISurrogate_LoadDllServer(This,Clsid) (This)->lpVtbl->LoadDllServer(This,Clsid)
   4511 #define ISurrogate_FreeSurrogate(This) (This)->lpVtbl->FreeSurrogate(This)
   4512 #else
   4513 /*** IUnknown methods ***/
   4514 static inline HRESULT ISurrogate_QueryInterface(ISurrogate* This,REFIID riid,void **ppvObject) {
   4515     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4516 }
   4517 static inline ULONG ISurrogate_AddRef(ISurrogate* This) {
   4518     return This->lpVtbl->AddRef(This);
   4519 }
   4520 static inline ULONG ISurrogate_Release(ISurrogate* This) {
   4521     return This->lpVtbl->Release(This);
   4522 }
   4523 /*** ISurrogate methods ***/
   4524 static inline HRESULT ISurrogate_LoadDllServer(ISurrogate* This,REFCLSID Clsid) {
   4525     return This->lpVtbl->LoadDllServer(This,Clsid);
   4526 }
   4527 static inline HRESULT ISurrogate_FreeSurrogate(ISurrogate* This) {
   4528     return This->lpVtbl->FreeSurrogate(This);
   4529 }
   4530 #endif
   4531 #endif
   4532 
   4533 #endif
   4534 
   4535 
   4536 #endif  /* __ISurrogate_INTERFACE_DEFINED__ */
   4537 
   4538 
   4539 /*****************************************************************************
   4540  * IGlobalInterfaceTable interface
   4541  */
   4542 #ifndef __IGlobalInterfaceTable_INTERFACE_DEFINED__
   4543 #define __IGlobalInterfaceTable_INTERFACE_DEFINED__
   4544 
   4545 typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
   4546 
   4547 DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4548 #if defined(__cplusplus) && !defined(CINTERFACE)
   4549 MIDL_INTERFACE("00000146-0000-0000-c000-000000000046")
   4550 IGlobalInterfaceTable : public IUnknown
   4551 {
   4552     virtual HRESULT STDMETHODCALLTYPE RegisterInterfaceInGlobal(
   4553         IUnknown *pUnk,
   4554         REFIID riid,
   4555         DWORD *pdwCookie) = 0;
   4556 
   4557     virtual HRESULT STDMETHODCALLTYPE RevokeInterfaceFromGlobal(
   4558         DWORD dwCookie) = 0;
   4559 
   4560     virtual HRESULT STDMETHODCALLTYPE GetInterfaceFromGlobal(
   4561         DWORD dwCookie,
   4562         REFIID riid,
   4563         void **ppv) = 0;
   4564 
   4565 };
   4566 #ifdef __CRT_UUID_DECL
   4567 __CRT_UUID_DECL(IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4568 #endif
   4569 #else
   4570 typedef struct IGlobalInterfaceTableVtbl {
   4571     BEGIN_INTERFACE
   4572 
   4573     /*** IUnknown methods ***/
   4574     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4575         IGlobalInterfaceTable *This,
   4576         REFIID riid,
   4577         void **ppvObject);
   4578 
   4579     ULONG (STDMETHODCALLTYPE *AddRef)(
   4580         IGlobalInterfaceTable *This);
   4581 
   4582     ULONG (STDMETHODCALLTYPE *Release)(
   4583         IGlobalInterfaceTable *This);
   4584 
   4585     /*** IGlobalInterfaceTable methods ***/
   4586     HRESULT (STDMETHODCALLTYPE *RegisterInterfaceInGlobal)(
   4587         IGlobalInterfaceTable *This,
   4588         IUnknown *pUnk,
   4589         REFIID riid,
   4590         DWORD *pdwCookie);
   4591 
   4592     HRESULT (STDMETHODCALLTYPE *RevokeInterfaceFromGlobal)(
   4593         IGlobalInterfaceTable *This,
   4594         DWORD dwCookie);
   4595 
   4596     HRESULT (STDMETHODCALLTYPE *GetInterfaceFromGlobal)(
   4597         IGlobalInterfaceTable *This,
   4598         DWORD dwCookie,
   4599         REFIID riid,
   4600         void **ppv);
   4601 
   4602     END_INTERFACE
   4603 } IGlobalInterfaceTableVtbl;
   4604 
   4605 interface IGlobalInterfaceTable {
   4606     CONST_VTBL IGlobalInterfaceTableVtbl* lpVtbl;
   4607 };
   4608 
   4609 #ifdef COBJMACROS
   4610 #ifndef WIDL_C_INLINE_WRAPPERS
   4611 /*** IUnknown methods ***/
   4612 #define IGlobalInterfaceTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4613 #define IGlobalInterfaceTable_AddRef(This) (This)->lpVtbl->AddRef(This)
   4614 #define IGlobalInterfaceTable_Release(This) (This)->lpVtbl->Release(This)
   4615 /*** IGlobalInterfaceTable methods ***/
   4616 #define IGlobalInterfaceTable_RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie) (This)->lpVtbl->RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie)
   4617 #define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(This,dwCookie) (This)->lpVtbl->RevokeInterfaceFromGlobal(This,dwCookie)
   4618 #define IGlobalInterfaceTable_GetInterfaceFromGlobal(This,dwCookie,riid,ppv) (This)->lpVtbl->GetInterfaceFromGlobal(This,dwCookie,riid,ppv)
   4619 #else
   4620 /*** IUnknown methods ***/
   4621 static inline HRESULT IGlobalInterfaceTable_QueryInterface(IGlobalInterfaceTable* This,REFIID riid,void **ppvObject) {
   4622     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4623 }
   4624 static inline ULONG IGlobalInterfaceTable_AddRef(IGlobalInterfaceTable* This) {
   4625     return This->lpVtbl->AddRef(This);
   4626 }
   4627 static inline ULONG IGlobalInterfaceTable_Release(IGlobalInterfaceTable* This) {
   4628     return This->lpVtbl->Release(This);
   4629 }
   4630 /*** IGlobalInterfaceTable methods ***/
   4631 static inline HRESULT IGlobalInterfaceTable_RegisterInterfaceInGlobal(IGlobalInterfaceTable* This,IUnknown *pUnk,REFIID riid,DWORD *pdwCookie) {
   4632     return This->lpVtbl->RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie);
   4633 }
   4634 static inline HRESULT IGlobalInterfaceTable_RevokeInterfaceFromGlobal(IGlobalInterfaceTable* This,DWORD dwCookie) {
   4635     return This->lpVtbl->RevokeInterfaceFromGlobal(This,dwCookie);
   4636 }
   4637 static inline HRESULT IGlobalInterfaceTable_GetInterfaceFromGlobal(IGlobalInterfaceTable* This,DWORD dwCookie,REFIID riid,void **ppv) {
   4638     return This->lpVtbl->GetInterfaceFromGlobal(This,dwCookie,riid,ppv);
   4639 }
   4640 #endif
   4641 #endif
   4642 
   4643 #endif
   4644 
   4645 
   4646 #endif  /* __IGlobalInterfaceTable_INTERFACE_DEFINED__ */
   4647 
   4648 #endif
   4649 
   4650 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   4651 /*****************************************************************************
   4652  * ISynchronize interface
   4653  */
   4654 #ifndef __ISynchronize_INTERFACE_DEFINED__
   4655 #define __ISynchronize_INTERFACE_DEFINED__
   4656 
   4657 DEFINE_GUID(IID_ISynchronize, 0x00000030, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4658 #if defined(__cplusplus) && !defined(CINTERFACE)
   4659 MIDL_INTERFACE("00000030-0000-0000-c000-000000000046")
   4660 ISynchronize : public IUnknown
   4661 {
   4662     virtual HRESULT STDMETHODCALLTYPE Wait(
   4663         DWORD dwFlags,
   4664         DWORD dwMilliseconds) = 0;
   4665 
   4666     virtual HRESULT STDMETHODCALLTYPE Signal(
   4667         ) = 0;
   4668 
   4669     virtual HRESULT STDMETHODCALLTYPE Reset(
   4670         ) = 0;
   4671 
   4672 };
   4673 #ifdef __CRT_UUID_DECL
   4674 __CRT_UUID_DECL(ISynchronize, 0x00000030, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4675 #endif
   4676 #else
   4677 typedef struct ISynchronizeVtbl {
   4678     BEGIN_INTERFACE
   4679 
   4680     /*** IUnknown methods ***/
   4681     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4682         ISynchronize *This,
   4683         REFIID riid,
   4684         void **ppvObject);
   4685 
   4686     ULONG (STDMETHODCALLTYPE *AddRef)(
   4687         ISynchronize *This);
   4688 
   4689     ULONG (STDMETHODCALLTYPE *Release)(
   4690         ISynchronize *This);
   4691 
   4692     /*** ISynchronize methods ***/
   4693     HRESULT (STDMETHODCALLTYPE *Wait)(
   4694         ISynchronize *This,
   4695         DWORD dwFlags,
   4696         DWORD dwMilliseconds);
   4697 
   4698     HRESULT (STDMETHODCALLTYPE *Signal)(
   4699         ISynchronize *This);
   4700 
   4701     HRESULT (STDMETHODCALLTYPE *Reset)(
   4702         ISynchronize *This);
   4703 
   4704     END_INTERFACE
   4705 } ISynchronizeVtbl;
   4706 
   4707 interface ISynchronize {
   4708     CONST_VTBL ISynchronizeVtbl* lpVtbl;
   4709 };
   4710 
   4711 #ifdef COBJMACROS
   4712 #ifndef WIDL_C_INLINE_WRAPPERS
   4713 /*** IUnknown methods ***/
   4714 #define ISynchronize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4715 #define ISynchronize_AddRef(This) (This)->lpVtbl->AddRef(This)
   4716 #define ISynchronize_Release(This) (This)->lpVtbl->Release(This)
   4717 /*** ISynchronize methods ***/
   4718 #define ISynchronize_Wait(This,dwFlags,dwMilliseconds) (This)->lpVtbl->Wait(This,dwFlags,dwMilliseconds)
   4719 #define ISynchronize_Signal(This) (This)->lpVtbl->Signal(This)
   4720 #define ISynchronize_Reset(This) (This)->lpVtbl->Reset(This)
   4721 #else
   4722 /*** IUnknown methods ***/
   4723 static inline HRESULT ISynchronize_QueryInterface(ISynchronize* This,REFIID riid,void **ppvObject) {
   4724     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4725 }
   4726 static inline ULONG ISynchronize_AddRef(ISynchronize* This) {
   4727     return This->lpVtbl->AddRef(This);
   4728 }
   4729 static inline ULONG ISynchronize_Release(ISynchronize* This) {
   4730     return This->lpVtbl->Release(This);
   4731 }
   4732 /*** ISynchronize methods ***/
   4733 static inline HRESULT ISynchronize_Wait(ISynchronize* This,DWORD dwFlags,DWORD dwMilliseconds) {
   4734     return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
   4735 }
   4736 static inline HRESULT ISynchronize_Signal(ISynchronize* This) {
   4737     return This->lpVtbl->Signal(This);
   4738 }
   4739 static inline HRESULT ISynchronize_Reset(ISynchronize* This) {
   4740     return This->lpVtbl->Reset(This);
   4741 }
   4742 #endif
   4743 #endif
   4744 
   4745 #endif
   4746 
   4747 
   4748 #endif  /* __ISynchronize_INTERFACE_DEFINED__ */
   4749 
   4750 
   4751 /*****************************************************************************
   4752  * ISynchronizeHandle interface
   4753  */
   4754 #ifndef __ISynchronizeHandle_INTERFACE_DEFINED__
   4755 #define __ISynchronizeHandle_INTERFACE_DEFINED__
   4756 
   4757 DEFINE_GUID(IID_ISynchronizeHandle, 0x00000031, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4758 #if defined(__cplusplus) && !defined(CINTERFACE)
   4759 MIDL_INTERFACE("00000031-0000-0000-c000-000000000046")
   4760 ISynchronizeHandle : public IUnknown
   4761 {
   4762     virtual HRESULT STDMETHODCALLTYPE GetHandle(
   4763         HANDLE *ph) = 0;
   4764 
   4765 };
   4766 #ifdef __CRT_UUID_DECL
   4767 __CRT_UUID_DECL(ISynchronizeHandle, 0x00000031, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4768 #endif
   4769 #else
   4770 typedef struct ISynchronizeHandleVtbl {
   4771     BEGIN_INTERFACE
   4772 
   4773     /*** IUnknown methods ***/
   4774     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4775         ISynchronizeHandle *This,
   4776         REFIID riid,
   4777         void **ppvObject);
   4778 
   4779     ULONG (STDMETHODCALLTYPE *AddRef)(
   4780         ISynchronizeHandle *This);
   4781 
   4782     ULONG (STDMETHODCALLTYPE *Release)(
   4783         ISynchronizeHandle *This);
   4784 
   4785     /*** ISynchronizeHandle methods ***/
   4786     HRESULT (STDMETHODCALLTYPE *GetHandle)(
   4787         ISynchronizeHandle *This,
   4788         HANDLE *ph);
   4789 
   4790     END_INTERFACE
   4791 } ISynchronizeHandleVtbl;
   4792 
   4793 interface ISynchronizeHandle {
   4794     CONST_VTBL ISynchronizeHandleVtbl* lpVtbl;
   4795 };
   4796 
   4797 #ifdef COBJMACROS
   4798 #ifndef WIDL_C_INLINE_WRAPPERS
   4799 /*** IUnknown methods ***/
   4800 #define ISynchronizeHandle_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4801 #define ISynchronizeHandle_AddRef(This) (This)->lpVtbl->AddRef(This)
   4802 #define ISynchronizeHandle_Release(This) (This)->lpVtbl->Release(This)
   4803 /*** ISynchronizeHandle methods ***/
   4804 #define ISynchronizeHandle_GetHandle(This,ph) (This)->lpVtbl->GetHandle(This,ph)
   4805 #else
   4806 /*** IUnknown methods ***/
   4807 static inline HRESULT ISynchronizeHandle_QueryInterface(ISynchronizeHandle* This,REFIID riid,void **ppvObject) {
   4808     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4809 }
   4810 static inline ULONG ISynchronizeHandle_AddRef(ISynchronizeHandle* This) {
   4811     return This->lpVtbl->AddRef(This);
   4812 }
   4813 static inline ULONG ISynchronizeHandle_Release(ISynchronizeHandle* This) {
   4814     return This->lpVtbl->Release(This);
   4815 }
   4816 /*** ISynchronizeHandle methods ***/
   4817 static inline HRESULT ISynchronizeHandle_GetHandle(ISynchronizeHandle* This,HANDLE *ph) {
   4818     return This->lpVtbl->GetHandle(This,ph);
   4819 }
   4820 #endif
   4821 #endif
   4822 
   4823 #endif
   4824 
   4825 
   4826 #endif  /* __ISynchronizeHandle_INTERFACE_DEFINED__ */
   4827 
   4828 
   4829 /*****************************************************************************
   4830  * ISynchronizeEvent interface
   4831  */
   4832 #ifndef __ISynchronizeEvent_INTERFACE_DEFINED__
   4833 #define __ISynchronizeEvent_INTERFACE_DEFINED__
   4834 
   4835 DEFINE_GUID(IID_ISynchronizeEvent, 0x00000032, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4836 #if defined(__cplusplus) && !defined(CINTERFACE)
   4837 MIDL_INTERFACE("00000032-0000-0000-c000-000000000046")
   4838 ISynchronizeEvent : public ISynchronizeHandle
   4839 {
   4840     virtual HRESULT STDMETHODCALLTYPE SetEventHandle(
   4841         HANDLE *ph) = 0;
   4842 
   4843 };
   4844 #ifdef __CRT_UUID_DECL
   4845 __CRT_UUID_DECL(ISynchronizeEvent, 0x00000032, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4846 #endif
   4847 #else
   4848 typedef struct ISynchronizeEventVtbl {
   4849     BEGIN_INTERFACE
   4850 
   4851     /*** IUnknown methods ***/
   4852     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4853         ISynchronizeEvent *This,
   4854         REFIID riid,
   4855         void **ppvObject);
   4856 
   4857     ULONG (STDMETHODCALLTYPE *AddRef)(
   4858         ISynchronizeEvent *This);
   4859 
   4860     ULONG (STDMETHODCALLTYPE *Release)(
   4861         ISynchronizeEvent *This);
   4862 
   4863     /*** ISynchronizeHandle methods ***/
   4864     HRESULT (STDMETHODCALLTYPE *GetHandle)(
   4865         ISynchronizeEvent *This,
   4866         HANDLE *ph);
   4867 
   4868     /*** ISynchronizeEvent methods ***/
   4869     HRESULT (STDMETHODCALLTYPE *SetEventHandle)(
   4870         ISynchronizeEvent *This,
   4871         HANDLE *ph);
   4872 
   4873     END_INTERFACE
   4874 } ISynchronizeEventVtbl;
   4875 
   4876 interface ISynchronizeEvent {
   4877     CONST_VTBL ISynchronizeEventVtbl* lpVtbl;
   4878 };
   4879 
   4880 #ifdef COBJMACROS
   4881 #ifndef WIDL_C_INLINE_WRAPPERS
   4882 /*** IUnknown methods ***/
   4883 #define ISynchronizeEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4884 #define ISynchronizeEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
   4885 #define ISynchronizeEvent_Release(This) (This)->lpVtbl->Release(This)
   4886 /*** ISynchronizeHandle methods ***/
   4887 #define ISynchronizeEvent_GetHandle(This,ph) (This)->lpVtbl->GetHandle(This,ph)
   4888 /*** ISynchronizeEvent methods ***/
   4889 #define ISynchronizeEvent_SetEventHandle(This,ph) (This)->lpVtbl->SetEventHandle(This,ph)
   4890 #else
   4891 /*** IUnknown methods ***/
   4892 static inline HRESULT ISynchronizeEvent_QueryInterface(ISynchronizeEvent* This,REFIID riid,void **ppvObject) {
   4893     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4894 }
   4895 static inline ULONG ISynchronizeEvent_AddRef(ISynchronizeEvent* This) {
   4896     return This->lpVtbl->AddRef(This);
   4897 }
   4898 static inline ULONG ISynchronizeEvent_Release(ISynchronizeEvent* This) {
   4899     return This->lpVtbl->Release(This);
   4900 }
   4901 /*** ISynchronizeHandle methods ***/
   4902 static inline HRESULT ISynchronizeEvent_GetHandle(ISynchronizeEvent* This,HANDLE *ph) {
   4903     return This->lpVtbl->GetHandle(This,ph);
   4904 }
   4905 /*** ISynchronizeEvent methods ***/
   4906 static inline HRESULT ISynchronizeEvent_SetEventHandle(ISynchronizeEvent* This,HANDLE *ph) {
   4907     return This->lpVtbl->SetEventHandle(This,ph);
   4908 }
   4909 #endif
   4910 #endif
   4911 
   4912 #endif
   4913 
   4914 
   4915 #endif  /* __ISynchronizeEvent_INTERFACE_DEFINED__ */
   4916 
   4917 
   4918 /*****************************************************************************
   4919  * ISynchronizeContainer interface
   4920  */
   4921 #ifndef __ISynchronizeContainer_INTERFACE_DEFINED__
   4922 #define __ISynchronizeContainer_INTERFACE_DEFINED__
   4923 
   4924 DEFINE_GUID(IID_ISynchronizeContainer, 0x00000033, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4925 #if defined(__cplusplus) && !defined(CINTERFACE)
   4926 MIDL_INTERFACE("00000033-0000-0000-c000-000000000046")
   4927 ISynchronizeContainer : public IUnknown
   4928 {
   4929     virtual HRESULT STDMETHODCALLTYPE AddSynchronize(
   4930         ISynchronize *pSync) = 0;
   4931 
   4932     virtual HRESULT STDMETHODCALLTYPE WaitMultiple(
   4933         DWORD dwFlags,
   4934         DWORD dwTimeOut,
   4935         ISynchronize **ppSync) = 0;
   4936 
   4937 };
   4938 #ifdef __CRT_UUID_DECL
   4939 __CRT_UUID_DECL(ISynchronizeContainer, 0x00000033, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4940 #endif
   4941 #else
   4942 typedef struct ISynchronizeContainerVtbl {
   4943     BEGIN_INTERFACE
   4944 
   4945     /*** IUnknown methods ***/
   4946     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4947         ISynchronizeContainer *This,
   4948         REFIID riid,
   4949         void **ppvObject);
   4950 
   4951     ULONG (STDMETHODCALLTYPE *AddRef)(
   4952         ISynchronizeContainer *This);
   4953 
   4954     ULONG (STDMETHODCALLTYPE *Release)(
   4955         ISynchronizeContainer *This);
   4956 
   4957     /*** ISynchronizeContainer methods ***/
   4958     HRESULT (STDMETHODCALLTYPE *AddSynchronize)(
   4959         ISynchronizeContainer *This,
   4960         ISynchronize *pSync);
   4961 
   4962     HRESULT (STDMETHODCALLTYPE *WaitMultiple)(
   4963         ISynchronizeContainer *This,
   4964         DWORD dwFlags,
   4965         DWORD dwTimeOut,
   4966         ISynchronize **ppSync);
   4967 
   4968     END_INTERFACE
   4969 } ISynchronizeContainerVtbl;
   4970 
   4971 interface ISynchronizeContainer {
   4972     CONST_VTBL ISynchronizeContainerVtbl* lpVtbl;
   4973 };
   4974 
   4975 #ifdef COBJMACROS
   4976 #ifndef WIDL_C_INLINE_WRAPPERS
   4977 /*** IUnknown methods ***/
   4978 #define ISynchronizeContainer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4979 #define ISynchronizeContainer_AddRef(This) (This)->lpVtbl->AddRef(This)
   4980 #define ISynchronizeContainer_Release(This) (This)->lpVtbl->Release(This)
   4981 /*** ISynchronizeContainer methods ***/
   4982 #define ISynchronizeContainer_AddSynchronize(This,pSync) (This)->lpVtbl->AddSynchronize(This,pSync)
   4983 #define ISynchronizeContainer_WaitMultiple(This,dwFlags,dwTimeOut,ppSync) (This)->lpVtbl->WaitMultiple(This,dwFlags,dwTimeOut,ppSync)
   4984 #else
   4985 /*** IUnknown methods ***/
   4986 static inline HRESULT ISynchronizeContainer_QueryInterface(ISynchronizeContainer* This,REFIID riid,void **ppvObject) {
   4987     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4988 }
   4989 static inline ULONG ISynchronizeContainer_AddRef(ISynchronizeContainer* This) {
   4990     return This->lpVtbl->AddRef(This);
   4991 }
   4992 static inline ULONG ISynchronizeContainer_Release(ISynchronizeContainer* This) {
   4993     return This->lpVtbl->Release(This);
   4994 }
   4995 /*** ISynchronizeContainer methods ***/
   4996 static inline HRESULT ISynchronizeContainer_AddSynchronize(ISynchronizeContainer* This,ISynchronize *pSync) {
   4997     return This->lpVtbl->AddSynchronize(This,pSync);
   4998 }
   4999 static inline HRESULT ISynchronizeContainer_WaitMultiple(ISynchronizeContainer* This,DWORD dwFlags,DWORD dwTimeOut,ISynchronize **ppSync) {
   5000     return This->lpVtbl->WaitMultiple(This,dwFlags,dwTimeOut,ppSync);
   5001 }
   5002 #endif
   5003 #endif
   5004 
   5005 #endif
   5006 
   5007 
   5008 #endif  /* __ISynchronizeContainer_INTERFACE_DEFINED__ */
   5009 
   5010 
   5011 /*****************************************************************************
   5012  * ISynchronizeMutex interface
   5013  */
   5014 #ifndef __ISynchronizeMutex_INTERFACE_DEFINED__
   5015 #define __ISynchronizeMutex_INTERFACE_DEFINED__
   5016 
   5017 DEFINE_GUID(IID_ISynchronizeMutex, 0x00000025, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5018 #if defined(__cplusplus) && !defined(CINTERFACE)
   5019 MIDL_INTERFACE("00000025-0000-0000-c000-000000000046")
   5020 ISynchronizeMutex : public ISynchronize
   5021 {
   5022     virtual HRESULT STDMETHODCALLTYPE ReleaseMutex(
   5023         ) = 0;
   5024 
   5025 };
   5026 #ifdef __CRT_UUID_DECL
   5027 __CRT_UUID_DECL(ISynchronizeMutex, 0x00000025, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5028 #endif
   5029 #else
   5030 typedef struct ISynchronizeMutexVtbl {
   5031     BEGIN_INTERFACE
   5032 
   5033     /*** IUnknown methods ***/
   5034     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5035         ISynchronizeMutex *This,
   5036         REFIID riid,
   5037         void **ppvObject);
   5038 
   5039     ULONG (STDMETHODCALLTYPE *AddRef)(
   5040         ISynchronizeMutex *This);
   5041 
   5042     ULONG (STDMETHODCALLTYPE *Release)(
   5043         ISynchronizeMutex *This);
   5044 
   5045     /*** ISynchronize methods ***/
   5046     HRESULT (STDMETHODCALLTYPE *Wait)(
   5047         ISynchronizeMutex *This,
   5048         DWORD dwFlags,
   5049         DWORD dwMilliseconds);
   5050 
   5051     HRESULT (STDMETHODCALLTYPE *Signal)(
   5052         ISynchronizeMutex *This);
   5053 
   5054     HRESULT (STDMETHODCALLTYPE *Reset)(
   5055         ISynchronizeMutex *This);
   5056 
   5057     /*** ISynchronizeMutex methods ***/
   5058     HRESULT (STDMETHODCALLTYPE *ReleaseMutex)(
   5059         ISynchronizeMutex *This);
   5060 
   5061     END_INTERFACE
   5062 } ISynchronizeMutexVtbl;
   5063 
   5064 interface ISynchronizeMutex {
   5065     CONST_VTBL ISynchronizeMutexVtbl* lpVtbl;
   5066 };
   5067 
   5068 #ifdef COBJMACROS
   5069 #ifndef WIDL_C_INLINE_WRAPPERS
   5070 /*** IUnknown methods ***/
   5071 #define ISynchronizeMutex_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5072 #define ISynchronizeMutex_AddRef(This) (This)->lpVtbl->AddRef(This)
   5073 #define ISynchronizeMutex_Release(This) (This)->lpVtbl->Release(This)
   5074 /*** ISynchronize methods ***/
   5075 #define ISynchronizeMutex_Wait(This,dwFlags,dwMilliseconds) (This)->lpVtbl->Wait(This,dwFlags,dwMilliseconds)
   5076 #define ISynchronizeMutex_Signal(This) (This)->lpVtbl->Signal(This)
   5077 #define ISynchronizeMutex_Reset(This) (This)->lpVtbl->Reset(This)
   5078 /*** ISynchronizeMutex methods ***/
   5079 #define ISynchronizeMutex_ReleaseMutex(This) (This)->lpVtbl->ReleaseMutex(This)
   5080 #else
   5081 /*** IUnknown methods ***/
   5082 static inline HRESULT ISynchronizeMutex_QueryInterface(ISynchronizeMutex* This,REFIID riid,void **ppvObject) {
   5083     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5084 }
   5085 static inline ULONG ISynchronizeMutex_AddRef(ISynchronizeMutex* This) {
   5086     return This->lpVtbl->AddRef(This);
   5087 }
   5088 static inline ULONG ISynchronizeMutex_Release(ISynchronizeMutex* This) {
   5089     return This->lpVtbl->Release(This);
   5090 }
   5091 /*** ISynchronize methods ***/
   5092 static inline HRESULT ISynchronizeMutex_Wait(ISynchronizeMutex* This,DWORD dwFlags,DWORD dwMilliseconds) {
   5093     return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
   5094 }
   5095 static inline HRESULT ISynchronizeMutex_Signal(ISynchronizeMutex* This) {
   5096     return This->lpVtbl->Signal(This);
   5097 }
   5098 static inline HRESULT ISynchronizeMutex_Reset(ISynchronizeMutex* This) {
   5099     return This->lpVtbl->Reset(This);
   5100 }
   5101 /*** ISynchronizeMutex methods ***/
   5102 static inline HRESULT ISynchronizeMutex_ReleaseMutex(ISynchronizeMutex* This) {
   5103     return This->lpVtbl->ReleaseMutex(This);
   5104 }
   5105 #endif
   5106 #endif
   5107 
   5108 #endif
   5109 
   5110 
   5111 #endif  /* __ISynchronizeMutex_INTERFACE_DEFINED__ */
   5112 
   5113 
   5114 /*****************************************************************************
   5115  * ICancelMethodCalls interface
   5116  */
   5117 #ifndef __ICancelMethodCalls_INTERFACE_DEFINED__
   5118 #define __ICancelMethodCalls_INTERFACE_DEFINED__
   5119 
   5120 typedef ICancelMethodCalls *LPCANCELMETHODCALLS;
   5121 
   5122 DEFINE_GUID(IID_ICancelMethodCalls, 0x00000029, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5123 #if defined(__cplusplus) && !defined(CINTERFACE)
   5124 MIDL_INTERFACE("00000029-0000-0000-c000-000000000046")
   5125 ICancelMethodCalls : public IUnknown
   5126 {
   5127     virtual HRESULT STDMETHODCALLTYPE Cancel(
   5128         ULONG ulSeconds) = 0;
   5129 
   5130     virtual HRESULT STDMETHODCALLTYPE TestCancel(
   5131         ) = 0;
   5132 
   5133 };
   5134 #ifdef __CRT_UUID_DECL
   5135 __CRT_UUID_DECL(ICancelMethodCalls, 0x00000029, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5136 #endif
   5137 #else
   5138 typedef struct ICancelMethodCallsVtbl {
   5139     BEGIN_INTERFACE
   5140 
   5141     /*** IUnknown methods ***/
   5142     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5143         ICancelMethodCalls *This,
   5144         REFIID riid,
   5145         void **ppvObject);
   5146 
   5147     ULONG (STDMETHODCALLTYPE *AddRef)(
   5148         ICancelMethodCalls *This);
   5149 
   5150     ULONG (STDMETHODCALLTYPE *Release)(
   5151         ICancelMethodCalls *This);
   5152 
   5153     /*** ICancelMethodCalls methods ***/
   5154     HRESULT (STDMETHODCALLTYPE *Cancel)(
   5155         ICancelMethodCalls *This,
   5156         ULONG ulSeconds);
   5157 
   5158     HRESULT (STDMETHODCALLTYPE *TestCancel)(
   5159         ICancelMethodCalls *This);
   5160 
   5161     END_INTERFACE
   5162 } ICancelMethodCallsVtbl;
   5163 
   5164 interface ICancelMethodCalls {
   5165     CONST_VTBL ICancelMethodCallsVtbl* lpVtbl;
   5166 };
   5167 
   5168 #ifdef COBJMACROS
   5169 #ifndef WIDL_C_INLINE_WRAPPERS
   5170 /*** IUnknown methods ***/
   5171 #define ICancelMethodCalls_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5172 #define ICancelMethodCalls_AddRef(This) (This)->lpVtbl->AddRef(This)
   5173 #define ICancelMethodCalls_Release(This) (This)->lpVtbl->Release(This)
   5174 /*** ICancelMethodCalls methods ***/
   5175 #define ICancelMethodCalls_Cancel(This,ulSeconds) (This)->lpVtbl->Cancel(This,ulSeconds)
   5176 #define ICancelMethodCalls_TestCancel(This) (This)->lpVtbl->TestCancel(This)
   5177 #else
   5178 /*** IUnknown methods ***/
   5179 static inline HRESULT ICancelMethodCalls_QueryInterface(ICancelMethodCalls* This,REFIID riid,void **ppvObject) {
   5180     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5181 }
   5182 static inline ULONG ICancelMethodCalls_AddRef(ICancelMethodCalls* This) {
   5183     return This->lpVtbl->AddRef(This);
   5184 }
   5185 static inline ULONG ICancelMethodCalls_Release(ICancelMethodCalls* This) {
   5186     return This->lpVtbl->Release(This);
   5187 }
   5188 /*** ICancelMethodCalls methods ***/
   5189 static inline HRESULT ICancelMethodCalls_Cancel(ICancelMethodCalls* This,ULONG ulSeconds) {
   5190     return This->lpVtbl->Cancel(This,ulSeconds);
   5191 }
   5192 static inline HRESULT ICancelMethodCalls_TestCancel(ICancelMethodCalls* This) {
   5193     return This->lpVtbl->TestCancel(This);
   5194 }
   5195 #endif
   5196 #endif
   5197 
   5198 #endif
   5199 
   5200 
   5201 #endif  /* __ICancelMethodCalls_INTERFACE_DEFINED__ */
   5202 
   5203 
   5204 /*****************************************************************************
   5205  * IAsyncManager interface
   5206  */
   5207 #ifndef __IAsyncManager_INTERFACE_DEFINED__
   5208 #define __IAsyncManager_INTERFACE_DEFINED__
   5209 
   5210 typedef enum tagDCOM_CALL_STATE {
   5211     DCOM_NONE = 0x0,
   5212     DCOM_CALL_COMPLETE = 0x1,
   5213     DCOM_CALL_CANCELED = 0x2
   5214 } DCOM_CALL_STATE;
   5215 
   5216 DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5217 #if defined(__cplusplus) && !defined(CINTERFACE)
   5218 MIDL_INTERFACE("0000002a-0000-0000-c000-000000000046")
   5219 IAsyncManager : public IUnknown
   5220 {
   5221     virtual HRESULT STDMETHODCALLTYPE CompleteCall(
   5222         HRESULT Result) = 0;
   5223 
   5224     virtual HRESULT STDMETHODCALLTYPE GetCallContext(
   5225         REFIID riid,
   5226         void **pInterface) = 0;
   5227 
   5228     virtual HRESULT STDMETHODCALLTYPE GetState(
   5229         ULONG *pulStateFlags) = 0;
   5230 
   5231 };
   5232 #ifdef __CRT_UUID_DECL
   5233 __CRT_UUID_DECL(IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5234 #endif
   5235 #else
   5236 typedef struct IAsyncManagerVtbl {
   5237     BEGIN_INTERFACE
   5238 
   5239     /*** IUnknown methods ***/
   5240     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5241         IAsyncManager *This,
   5242         REFIID riid,
   5243         void **ppvObject);
   5244 
   5245     ULONG (STDMETHODCALLTYPE *AddRef)(
   5246         IAsyncManager *This);
   5247 
   5248     ULONG (STDMETHODCALLTYPE *Release)(
   5249         IAsyncManager *This);
   5250 
   5251     /*** IAsyncManager methods ***/
   5252     HRESULT (STDMETHODCALLTYPE *CompleteCall)(
   5253         IAsyncManager *This,
   5254         HRESULT Result);
   5255 
   5256     HRESULT (STDMETHODCALLTYPE *GetCallContext)(
   5257         IAsyncManager *This,
   5258         REFIID riid,
   5259         void **pInterface);
   5260 
   5261     HRESULT (STDMETHODCALLTYPE *GetState)(
   5262         IAsyncManager *This,
   5263         ULONG *pulStateFlags);
   5264 
   5265     END_INTERFACE
   5266 } IAsyncManagerVtbl;
   5267 
   5268 interface IAsyncManager {
   5269     CONST_VTBL IAsyncManagerVtbl* lpVtbl;
   5270 };
   5271 
   5272 #ifdef COBJMACROS
   5273 #ifndef WIDL_C_INLINE_WRAPPERS
   5274 /*** IUnknown methods ***/
   5275 #define IAsyncManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5276 #define IAsyncManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   5277 #define IAsyncManager_Release(This) (This)->lpVtbl->Release(This)
   5278 /*** IAsyncManager methods ***/
   5279 #define IAsyncManager_CompleteCall(This,Result) (This)->lpVtbl->CompleteCall(This,Result)
   5280 #define IAsyncManager_GetCallContext(This,riid,pInterface) (This)->lpVtbl->GetCallContext(This,riid,pInterface)
   5281 #define IAsyncManager_GetState(This,pulStateFlags) (This)->lpVtbl->GetState(This,pulStateFlags)
   5282 #else
   5283 /*** IUnknown methods ***/
   5284 static inline HRESULT IAsyncManager_QueryInterface(IAsyncManager* This,REFIID riid,void **ppvObject) {
   5285     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5286 }
   5287 static inline ULONG IAsyncManager_AddRef(IAsyncManager* This) {
   5288     return This->lpVtbl->AddRef(This);
   5289 }
   5290 static inline ULONG IAsyncManager_Release(IAsyncManager* This) {
   5291     return This->lpVtbl->Release(This);
   5292 }
   5293 /*** IAsyncManager methods ***/
   5294 static inline HRESULT IAsyncManager_CompleteCall(IAsyncManager* This,HRESULT Result) {
   5295     return This->lpVtbl->CompleteCall(This,Result);
   5296 }
   5297 static inline HRESULT IAsyncManager_GetCallContext(IAsyncManager* This,REFIID riid,void **pInterface) {
   5298     return This->lpVtbl->GetCallContext(This,riid,pInterface);
   5299 }
   5300 static inline HRESULT IAsyncManager_GetState(IAsyncManager* This,ULONG *pulStateFlags) {
   5301     return This->lpVtbl->GetState(This,pulStateFlags);
   5302 }
   5303 #endif
   5304 #endif
   5305 
   5306 #endif
   5307 
   5308 
   5309 #endif  /* __IAsyncManager_INTERFACE_DEFINED__ */
   5310 
   5311 
   5312 /*****************************************************************************
   5313  * ICallFactory interface
   5314  */
   5315 #ifndef __ICallFactory_INTERFACE_DEFINED__
   5316 #define __ICallFactory_INTERFACE_DEFINED__
   5317 
   5318 DEFINE_GUID(IID_ICallFactory, 0x1c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
   5319 #if defined(__cplusplus) && !defined(CINTERFACE)
   5320 MIDL_INTERFACE("1c733a30-2a1c-11ce-ade5-00aa0044773d")
   5321 ICallFactory : public IUnknown
   5322 {
   5323     virtual HRESULT STDMETHODCALLTYPE CreateCall(
   5324         REFIID riid,
   5325         IUnknown *pCtrlUnk,
   5326         REFIID riid2,
   5327         IUnknown **ppv) = 0;
   5328 
   5329 };
   5330 #ifdef __CRT_UUID_DECL
   5331 __CRT_UUID_DECL(ICallFactory, 0x1c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d)
   5332 #endif
   5333 #else
   5334 typedef struct ICallFactoryVtbl {
   5335     BEGIN_INTERFACE
   5336 
   5337     /*** IUnknown methods ***/
   5338     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5339         ICallFactory *This,
   5340         REFIID riid,
   5341         void **ppvObject);
   5342 
   5343     ULONG (STDMETHODCALLTYPE *AddRef)(
   5344         ICallFactory *This);
   5345 
   5346     ULONG (STDMETHODCALLTYPE *Release)(
   5347         ICallFactory *This);
   5348 
   5349     /*** ICallFactory methods ***/
   5350     HRESULT (STDMETHODCALLTYPE *CreateCall)(
   5351         ICallFactory *This,
   5352         REFIID riid,
   5353         IUnknown *pCtrlUnk,
   5354         REFIID riid2,
   5355         IUnknown **ppv);
   5356 
   5357     END_INTERFACE
   5358 } ICallFactoryVtbl;
   5359 
   5360 interface ICallFactory {
   5361     CONST_VTBL ICallFactoryVtbl* lpVtbl;
   5362 };
   5363 
   5364 #ifdef COBJMACROS
   5365 #ifndef WIDL_C_INLINE_WRAPPERS
   5366 /*** IUnknown methods ***/
   5367 #define ICallFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5368 #define ICallFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
   5369 #define ICallFactory_Release(This) (This)->lpVtbl->Release(This)
   5370 /*** ICallFactory methods ***/
   5371 #define ICallFactory_CreateCall(This,riid,pCtrlUnk,riid2,ppv) (This)->lpVtbl->CreateCall(This,riid,pCtrlUnk,riid2,ppv)
   5372 #else
   5373 /*** IUnknown methods ***/
   5374 static inline HRESULT ICallFactory_QueryInterface(ICallFactory* This,REFIID riid,void **ppvObject) {
   5375     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5376 }
   5377 static inline ULONG ICallFactory_AddRef(ICallFactory* This) {
   5378     return This->lpVtbl->AddRef(This);
   5379 }
   5380 static inline ULONG ICallFactory_Release(ICallFactory* This) {
   5381     return This->lpVtbl->Release(This);
   5382 }
   5383 /*** ICallFactory methods ***/
   5384 static inline HRESULT ICallFactory_CreateCall(ICallFactory* This,REFIID riid,IUnknown *pCtrlUnk,REFIID riid2,IUnknown **ppv) {
   5385     return This->lpVtbl->CreateCall(This,riid,pCtrlUnk,riid2,ppv);
   5386 }
   5387 #endif
   5388 #endif
   5389 
   5390 #endif
   5391 
   5392 
   5393 #endif  /* __ICallFactory_INTERFACE_DEFINED__ */
   5394 
   5395 
   5396 /*****************************************************************************
   5397  * IRpcHelper interface
   5398  */
   5399 #ifndef __IRpcHelper_INTERFACE_DEFINED__
   5400 #define __IRpcHelper_INTERFACE_DEFINED__
   5401 
   5402 DEFINE_GUID(IID_IRpcHelper, 0x00000149, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5403 #if defined(__cplusplus) && !defined(CINTERFACE)
   5404 MIDL_INTERFACE("00000149-0000-0000-c000-000000000046")
   5405 IRpcHelper : public IUnknown
   5406 {
   5407     virtual HRESULT STDMETHODCALLTYPE GetDCOMProtocolVersion(
   5408         DWORD *pComVersion) = 0;
   5409 
   5410     virtual HRESULT STDMETHODCALLTYPE GetIIDFromOBJREF(
   5411         void *pObjRef,
   5412         IID **piid) = 0;
   5413 
   5414 };
   5415 #ifdef __CRT_UUID_DECL
   5416 __CRT_UUID_DECL(IRpcHelper, 0x00000149, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5417 #endif
   5418 #else
   5419 typedef struct IRpcHelperVtbl {
   5420     BEGIN_INTERFACE
   5421 
   5422     /*** IUnknown methods ***/
   5423     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5424         IRpcHelper *This,
   5425         REFIID riid,
   5426         void **ppvObject);
   5427 
   5428     ULONG (STDMETHODCALLTYPE *AddRef)(
   5429         IRpcHelper *This);
   5430 
   5431     ULONG (STDMETHODCALLTYPE *Release)(
   5432         IRpcHelper *This);
   5433 
   5434     /*** IRpcHelper methods ***/
   5435     HRESULT (STDMETHODCALLTYPE *GetDCOMProtocolVersion)(
   5436         IRpcHelper *This,
   5437         DWORD *pComVersion);
   5438 
   5439     HRESULT (STDMETHODCALLTYPE *GetIIDFromOBJREF)(
   5440         IRpcHelper *This,
   5441         void *pObjRef,
   5442         IID **piid);
   5443 
   5444     END_INTERFACE
   5445 } IRpcHelperVtbl;
   5446 
   5447 interface IRpcHelper {
   5448     CONST_VTBL IRpcHelperVtbl* lpVtbl;
   5449 };
   5450 
   5451 #ifdef COBJMACROS
   5452 #ifndef WIDL_C_INLINE_WRAPPERS
   5453 /*** IUnknown methods ***/
   5454 #define IRpcHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5455 #define IRpcHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
   5456 #define IRpcHelper_Release(This) (This)->lpVtbl->Release(This)
   5457 /*** IRpcHelper methods ***/
   5458 #define IRpcHelper_GetDCOMProtocolVersion(This,pComVersion) (This)->lpVtbl->GetDCOMProtocolVersion(This,pComVersion)
   5459 #define IRpcHelper_GetIIDFromOBJREF(This,pObjRef,piid) (This)->lpVtbl->GetIIDFromOBJREF(This,pObjRef,piid)
   5460 #else
   5461 /*** IUnknown methods ***/
   5462 static inline HRESULT IRpcHelper_QueryInterface(IRpcHelper* This,REFIID riid,void **ppvObject) {
   5463     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5464 }
   5465 static inline ULONG IRpcHelper_AddRef(IRpcHelper* This) {
   5466     return This->lpVtbl->AddRef(This);
   5467 }
   5468 static inline ULONG IRpcHelper_Release(IRpcHelper* This) {
   5469     return This->lpVtbl->Release(This);
   5470 }
   5471 /*** IRpcHelper methods ***/
   5472 static inline HRESULT IRpcHelper_GetDCOMProtocolVersion(IRpcHelper* This,DWORD *pComVersion) {
   5473     return This->lpVtbl->GetDCOMProtocolVersion(This,pComVersion);
   5474 }
   5475 static inline HRESULT IRpcHelper_GetIIDFromOBJREF(IRpcHelper* This,void *pObjRef,IID **piid) {
   5476     return This->lpVtbl->GetIIDFromOBJREF(This,pObjRef,piid);
   5477 }
   5478 #endif
   5479 #endif
   5480 
   5481 #endif
   5482 
   5483 
   5484 #endif  /* __IRpcHelper_INTERFACE_DEFINED__ */
   5485 
   5486 
   5487 /*****************************************************************************
   5488  * IReleaseMarshalBuffers interface
   5489  */
   5490 #ifndef __IReleaseMarshalBuffers_INTERFACE_DEFINED__
   5491 #define __IReleaseMarshalBuffers_INTERFACE_DEFINED__
   5492 
   5493 DEFINE_GUID(IID_IReleaseMarshalBuffers, 0xeb0cb9e8, 0x7996, 0x11d2, 0x87,0x2e, 0x00,0x00,0xf8,0x08,0x08,0x59);
   5494 #if defined(__cplusplus) && !defined(CINTERFACE)
   5495 MIDL_INTERFACE("eb0cb9e8-7996-11d2-872e-0000f8080859")
   5496 IReleaseMarshalBuffers : public IUnknown
   5497 {
   5498     virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalBuffer(
   5499         RPCOLEMESSAGE *pMsg,
   5500         DWORD dwFlags,
   5501         IUnknown *pChnl) = 0;
   5502 
   5503 };
   5504 #ifdef __CRT_UUID_DECL
   5505 __CRT_UUID_DECL(IReleaseMarshalBuffers, 0xeb0cb9e8, 0x7996, 0x11d2, 0x87,0x2e, 0x00,0x00,0xf8,0x08,0x08,0x59)
   5506 #endif
   5507 #else
   5508 typedef struct IReleaseMarshalBuffersVtbl {
   5509     BEGIN_INTERFACE
   5510 
   5511     /*** IUnknown methods ***/
   5512     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5513         IReleaseMarshalBuffers *This,
   5514         REFIID riid,
   5515         void **ppvObject);
   5516 
   5517     ULONG (STDMETHODCALLTYPE *AddRef)(
   5518         IReleaseMarshalBuffers *This);
   5519 
   5520     ULONG (STDMETHODCALLTYPE *Release)(
   5521         IReleaseMarshalBuffers *This);
   5522 
   5523     /*** IReleaseMarshalBuffers methods ***/
   5524     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalBuffer)(
   5525         IReleaseMarshalBuffers *This,
   5526         RPCOLEMESSAGE *pMsg,
   5527         DWORD dwFlags,
   5528         IUnknown *pChnl);
   5529 
   5530     END_INTERFACE
   5531 } IReleaseMarshalBuffersVtbl;
   5532 
   5533 interface IReleaseMarshalBuffers {
   5534     CONST_VTBL IReleaseMarshalBuffersVtbl* lpVtbl;
   5535 };
   5536 
   5537 #ifdef COBJMACROS
   5538 #ifndef WIDL_C_INLINE_WRAPPERS
   5539 /*** IUnknown methods ***/
   5540 #define IReleaseMarshalBuffers_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5541 #define IReleaseMarshalBuffers_AddRef(This) (This)->lpVtbl->AddRef(This)
   5542 #define IReleaseMarshalBuffers_Release(This) (This)->lpVtbl->Release(This)
   5543 /*** IReleaseMarshalBuffers methods ***/
   5544 #define IReleaseMarshalBuffers_ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl) (This)->lpVtbl->ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl)
   5545 #else
   5546 /*** IUnknown methods ***/
   5547 static inline HRESULT IReleaseMarshalBuffers_QueryInterface(IReleaseMarshalBuffers* This,REFIID riid,void **ppvObject) {
   5548     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5549 }
   5550 static inline ULONG IReleaseMarshalBuffers_AddRef(IReleaseMarshalBuffers* This) {
   5551     return This->lpVtbl->AddRef(This);
   5552 }
   5553 static inline ULONG IReleaseMarshalBuffers_Release(IReleaseMarshalBuffers* This) {
   5554     return This->lpVtbl->Release(This);
   5555 }
   5556 /*** IReleaseMarshalBuffers methods ***/
   5557 static inline HRESULT IReleaseMarshalBuffers_ReleaseMarshalBuffer(IReleaseMarshalBuffers* This,RPCOLEMESSAGE *pMsg,DWORD dwFlags,IUnknown *pChnl) {
   5558     return This->lpVtbl->ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl);
   5559 }
   5560 #endif
   5561 #endif
   5562 
   5563 #endif
   5564 
   5565 
   5566 #endif  /* __IReleaseMarshalBuffers_INTERFACE_DEFINED__ */
   5567 
   5568 
   5569 /*****************************************************************************
   5570  * IWaitMultiple interface
   5571  */
   5572 #ifndef __IWaitMultiple_INTERFACE_DEFINED__
   5573 #define __IWaitMultiple_INTERFACE_DEFINED__
   5574 
   5575 DEFINE_GUID(IID_IWaitMultiple, 0x0000002b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5576 #if defined(__cplusplus) && !defined(CINTERFACE)
   5577 MIDL_INTERFACE("0000002b-0000-0000-c000-000000000046")
   5578 IWaitMultiple : public IUnknown
   5579 {
   5580     virtual HRESULT STDMETHODCALLTYPE WaitMultiple(
   5581         DWORD timeout,
   5582         ISynchronize **pSync) = 0;
   5583 
   5584     virtual HRESULT STDMETHODCALLTYPE AddSynchronize(
   5585         ISynchronize *pSync) = 0;
   5586 
   5587 };
   5588 #ifdef __CRT_UUID_DECL
   5589 __CRT_UUID_DECL(IWaitMultiple, 0x0000002b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5590 #endif
   5591 #else
   5592 typedef struct IWaitMultipleVtbl {
   5593     BEGIN_INTERFACE
   5594 
   5595     /*** IUnknown methods ***/
   5596     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5597         IWaitMultiple *This,
   5598         REFIID riid,
   5599         void **ppvObject);
   5600 
   5601     ULONG (STDMETHODCALLTYPE *AddRef)(
   5602         IWaitMultiple *This);
   5603 
   5604     ULONG (STDMETHODCALLTYPE *Release)(
   5605         IWaitMultiple *This);
   5606 
   5607     /*** IWaitMultiple methods ***/
   5608     HRESULT (STDMETHODCALLTYPE *WaitMultiple)(
   5609         IWaitMultiple *This,
   5610         DWORD timeout,
   5611         ISynchronize **pSync);
   5612 
   5613     HRESULT (STDMETHODCALLTYPE *AddSynchronize)(
   5614         IWaitMultiple *This,
   5615         ISynchronize *pSync);
   5616 
   5617     END_INTERFACE
   5618 } IWaitMultipleVtbl;
   5619 
   5620 interface IWaitMultiple {
   5621     CONST_VTBL IWaitMultipleVtbl* lpVtbl;
   5622 };
   5623 
   5624 #ifdef COBJMACROS
   5625 #ifndef WIDL_C_INLINE_WRAPPERS
   5626 /*** IUnknown methods ***/
   5627 #define IWaitMultiple_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5628 #define IWaitMultiple_AddRef(This) (This)->lpVtbl->AddRef(This)
   5629 #define IWaitMultiple_Release(This) (This)->lpVtbl->Release(This)
   5630 /*** IWaitMultiple methods ***/
   5631 #define IWaitMultiple_WaitMultiple(This,timeout,pSync) (This)->lpVtbl->WaitMultiple(This,timeout,pSync)
   5632 #define IWaitMultiple_AddSynchronize(This,pSync) (This)->lpVtbl->AddSynchronize(This,pSync)
   5633 #else
   5634 /*** IUnknown methods ***/
   5635 static inline HRESULT IWaitMultiple_QueryInterface(IWaitMultiple* This,REFIID riid,void **ppvObject) {
   5636     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5637 }
   5638 static inline ULONG IWaitMultiple_AddRef(IWaitMultiple* This) {
   5639     return This->lpVtbl->AddRef(This);
   5640 }
   5641 static inline ULONG IWaitMultiple_Release(IWaitMultiple* This) {
   5642     return This->lpVtbl->Release(This);
   5643 }
   5644 /*** IWaitMultiple methods ***/
   5645 static inline HRESULT IWaitMultiple_WaitMultiple(IWaitMultiple* This,DWORD timeout,ISynchronize **pSync) {
   5646     return This->lpVtbl->WaitMultiple(This,timeout,pSync);
   5647 }
   5648 static inline HRESULT IWaitMultiple_AddSynchronize(IWaitMultiple* This,ISynchronize *pSync) {
   5649     return This->lpVtbl->AddSynchronize(This,pSync);
   5650 }
   5651 #endif
   5652 #endif
   5653 
   5654 #endif
   5655 
   5656 
   5657 #endif  /* __IWaitMultiple_INTERFACE_DEFINED__ */
   5658 
   5659 
   5660 /*****************************************************************************
   5661  * IAddrTrackingControl interface
   5662  */
   5663 #ifndef __IAddrTrackingControl_INTERFACE_DEFINED__
   5664 #define __IAddrTrackingControl_INTERFACE_DEFINED__
   5665 
   5666 typedef IAddrTrackingControl *LPADDRTRACKINGCONTROL;
   5667 DEFINE_GUID(IID_IAddrTrackingControl, 0x00000147, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5668 #if defined(__cplusplus) && !defined(CINTERFACE)
   5669 MIDL_INTERFACE("00000147-0000-0000-c000-000000000046")
   5670 IAddrTrackingControl : public IUnknown
   5671 {
   5672     virtual HRESULT STDMETHODCALLTYPE EnableCOMDynamicAddrTracking(
   5673         ) = 0;
   5674 
   5675     virtual HRESULT STDMETHODCALLTYPE DisableCOMDynamicAddrTracking(
   5676         ) = 0;
   5677 
   5678 };
   5679 #ifdef __CRT_UUID_DECL
   5680 __CRT_UUID_DECL(IAddrTrackingControl, 0x00000147, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5681 #endif
   5682 #else
   5683 typedef struct IAddrTrackingControlVtbl {
   5684     BEGIN_INTERFACE
   5685 
   5686     /*** IUnknown methods ***/
   5687     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5688         IAddrTrackingControl *This,
   5689         REFIID riid,
   5690         void **ppvObject);
   5691 
   5692     ULONG (STDMETHODCALLTYPE *AddRef)(
   5693         IAddrTrackingControl *This);
   5694 
   5695     ULONG (STDMETHODCALLTYPE *Release)(
   5696         IAddrTrackingControl *This);
   5697 
   5698     /*** IAddrTrackingControl methods ***/
   5699     HRESULT (STDMETHODCALLTYPE *EnableCOMDynamicAddrTracking)(
   5700         IAddrTrackingControl *This);
   5701 
   5702     HRESULT (STDMETHODCALLTYPE *DisableCOMDynamicAddrTracking)(
   5703         IAddrTrackingControl *This);
   5704 
   5705     END_INTERFACE
   5706 } IAddrTrackingControlVtbl;
   5707 
   5708 interface IAddrTrackingControl {
   5709     CONST_VTBL IAddrTrackingControlVtbl* lpVtbl;
   5710 };
   5711 
   5712 #ifdef COBJMACROS
   5713 #ifndef WIDL_C_INLINE_WRAPPERS
   5714 /*** IUnknown methods ***/
   5715 #define IAddrTrackingControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5716 #define IAddrTrackingControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   5717 #define IAddrTrackingControl_Release(This) (This)->lpVtbl->Release(This)
   5718 /*** IAddrTrackingControl methods ***/
   5719 #define IAddrTrackingControl_EnableCOMDynamicAddrTracking(This) (This)->lpVtbl->EnableCOMDynamicAddrTracking(This)
   5720 #define IAddrTrackingControl_DisableCOMDynamicAddrTracking(This) (This)->lpVtbl->DisableCOMDynamicAddrTracking(This)
   5721 #else
   5722 /*** IUnknown methods ***/
   5723 static inline HRESULT IAddrTrackingControl_QueryInterface(IAddrTrackingControl* This,REFIID riid,void **ppvObject) {
   5724     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5725 }
   5726 static inline ULONG IAddrTrackingControl_AddRef(IAddrTrackingControl* This) {
   5727     return This->lpVtbl->AddRef(This);
   5728 }
   5729 static inline ULONG IAddrTrackingControl_Release(IAddrTrackingControl* This) {
   5730     return This->lpVtbl->Release(This);
   5731 }
   5732 /*** IAddrTrackingControl methods ***/
   5733 static inline HRESULT IAddrTrackingControl_EnableCOMDynamicAddrTracking(IAddrTrackingControl* This) {
   5734     return This->lpVtbl->EnableCOMDynamicAddrTracking(This);
   5735 }
   5736 static inline HRESULT IAddrTrackingControl_DisableCOMDynamicAddrTracking(IAddrTrackingControl* This) {
   5737     return This->lpVtbl->DisableCOMDynamicAddrTracking(This);
   5738 }
   5739 #endif
   5740 #endif
   5741 
   5742 #endif
   5743 
   5744 
   5745 #endif  /* __IAddrTrackingControl_INTERFACE_DEFINED__ */
   5746 
   5747 
   5748 /*****************************************************************************
   5749  * IAddrExclusionControl interface
   5750  */
   5751 #ifndef __IAddrExclusionControl_INTERFACE_DEFINED__
   5752 #define __IAddrExclusionControl_INTERFACE_DEFINED__
   5753 
   5754 typedef IAddrExclusionControl *LPADDREXCLUSIONCONTROL;
   5755 DEFINE_GUID(IID_IAddrExclusionControl, 0x00000148, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5756 #if defined(__cplusplus) && !defined(CINTERFACE)
   5757 MIDL_INTERFACE("00000148-0000-0000-c000-000000000046")
   5758 IAddrExclusionControl : public IUnknown
   5759 {
   5760     virtual HRESULT STDMETHODCALLTYPE GetCurrentAddrExclusionList(
   5761         REFIID riid,
   5762         void **ppEnumerator) = 0;
   5763 
   5764     virtual HRESULT STDMETHODCALLTYPE UpdateAddrExclusionList(
   5765         IUnknown *pEnumerator) = 0;
   5766 
   5767 };
   5768 #ifdef __CRT_UUID_DECL
   5769 __CRT_UUID_DECL(IAddrExclusionControl, 0x00000148, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5770 #endif
   5771 #else
   5772 typedef struct IAddrExclusionControlVtbl {
   5773     BEGIN_INTERFACE
   5774 
   5775     /*** IUnknown methods ***/
   5776     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5777         IAddrExclusionControl *This,
   5778         REFIID riid,
   5779         void **ppvObject);
   5780 
   5781     ULONG (STDMETHODCALLTYPE *AddRef)(
   5782         IAddrExclusionControl *This);
   5783 
   5784     ULONG (STDMETHODCALLTYPE *Release)(
   5785         IAddrExclusionControl *This);
   5786 
   5787     /*** IAddrExclusionControl methods ***/
   5788     HRESULT (STDMETHODCALLTYPE *GetCurrentAddrExclusionList)(
   5789         IAddrExclusionControl *This,
   5790         REFIID riid,
   5791         void **ppEnumerator);
   5792 
   5793     HRESULT (STDMETHODCALLTYPE *UpdateAddrExclusionList)(
   5794         IAddrExclusionControl *This,
   5795         IUnknown *pEnumerator);
   5796 
   5797     END_INTERFACE
   5798 } IAddrExclusionControlVtbl;
   5799 
   5800 interface IAddrExclusionControl {
   5801     CONST_VTBL IAddrExclusionControlVtbl* lpVtbl;
   5802 };
   5803 
   5804 #ifdef COBJMACROS
   5805 #ifndef WIDL_C_INLINE_WRAPPERS
   5806 /*** IUnknown methods ***/
   5807 #define IAddrExclusionControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5808 #define IAddrExclusionControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   5809 #define IAddrExclusionControl_Release(This) (This)->lpVtbl->Release(This)
   5810 /*** IAddrExclusionControl methods ***/
   5811 #define IAddrExclusionControl_GetCurrentAddrExclusionList(This,riid,ppEnumerator) (This)->lpVtbl->GetCurrentAddrExclusionList(This,riid,ppEnumerator)
   5812 #define IAddrExclusionControl_UpdateAddrExclusionList(This,pEnumerator) (This)->lpVtbl->UpdateAddrExclusionList(This,pEnumerator)
   5813 #else
   5814 /*** IUnknown methods ***/
   5815 static inline HRESULT IAddrExclusionControl_QueryInterface(IAddrExclusionControl* This,REFIID riid,void **ppvObject) {
   5816     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5817 }
   5818 static inline ULONG IAddrExclusionControl_AddRef(IAddrExclusionControl* This) {
   5819     return This->lpVtbl->AddRef(This);
   5820 }
   5821 static inline ULONG IAddrExclusionControl_Release(IAddrExclusionControl* This) {
   5822     return This->lpVtbl->Release(This);
   5823 }
   5824 /*** IAddrExclusionControl methods ***/
   5825 static inline HRESULT IAddrExclusionControl_GetCurrentAddrExclusionList(IAddrExclusionControl* This,REFIID riid,void **ppEnumerator) {
   5826     return This->lpVtbl->GetCurrentAddrExclusionList(This,riid,ppEnumerator);
   5827 }
   5828 static inline HRESULT IAddrExclusionControl_UpdateAddrExclusionList(IAddrExclusionControl* This,IUnknown *pEnumerator) {
   5829     return This->lpVtbl->UpdateAddrExclusionList(This,pEnumerator);
   5830 }
   5831 #endif
   5832 #endif
   5833 
   5834 #endif
   5835 
   5836 
   5837 #endif  /* __IAddrExclusionControl_INTERFACE_DEFINED__ */
   5838 
   5839 
   5840 /*****************************************************************************
   5841  * IPipeByte interface
   5842  */
   5843 #ifndef __IPipeByte_INTERFACE_DEFINED__
   5844 #define __IPipeByte_INTERFACE_DEFINED__
   5845 
   5846 DEFINE_GUID(IID_IPipeByte, 0xdb2f3aca, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
   5847 #if defined(__cplusplus) && !defined(CINTERFACE)
   5848 MIDL_INTERFACE("db2f3aca-2f86-11d1-8e04-00c04fb9989a")
   5849 IPipeByte : public IUnknown
   5850 {
   5851     virtual HRESULT STDMETHODCALLTYPE Pull(
   5852         BYTE *buf,
   5853         ULONG cRequest,
   5854         ULONG *pcReturned) = 0;
   5855 
   5856     virtual HRESULT STDMETHODCALLTYPE Push(
   5857         BYTE *buf,
   5858         ULONG cSent) = 0;
   5859 
   5860 };
   5861 #ifdef __CRT_UUID_DECL
   5862 __CRT_UUID_DECL(IPipeByte, 0xdb2f3aca, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
   5863 #endif
   5864 #else
   5865 typedef struct IPipeByteVtbl {
   5866     BEGIN_INTERFACE
   5867 
   5868     /*** IUnknown methods ***/
   5869     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5870         IPipeByte *This,
   5871         REFIID riid,
   5872         void **ppvObject);
   5873 
   5874     ULONG (STDMETHODCALLTYPE *AddRef)(
   5875         IPipeByte *This);
   5876 
   5877     ULONG (STDMETHODCALLTYPE *Release)(
   5878         IPipeByte *This);
   5879 
   5880     /*** IPipeByte methods ***/
   5881     HRESULT (STDMETHODCALLTYPE *Pull)(
   5882         IPipeByte *This,
   5883         BYTE *buf,
   5884         ULONG cRequest,
   5885         ULONG *pcReturned);
   5886 
   5887     HRESULT (STDMETHODCALLTYPE *Push)(
   5888         IPipeByte *This,
   5889         BYTE *buf,
   5890         ULONG cSent);
   5891 
   5892     END_INTERFACE
   5893 } IPipeByteVtbl;
   5894 
   5895 interface IPipeByte {
   5896     CONST_VTBL IPipeByteVtbl* lpVtbl;
   5897 };
   5898 
   5899 #ifdef COBJMACROS
   5900 #ifndef WIDL_C_INLINE_WRAPPERS
   5901 /*** IUnknown methods ***/
   5902 #define IPipeByte_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5903 #define IPipeByte_AddRef(This) (This)->lpVtbl->AddRef(This)
   5904 #define IPipeByte_Release(This) (This)->lpVtbl->Release(This)
   5905 /*** IPipeByte methods ***/
   5906 #define IPipeByte_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
   5907 #define IPipeByte_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
   5908 #else
   5909 /*** IUnknown methods ***/
   5910 static inline HRESULT IPipeByte_QueryInterface(IPipeByte* This,REFIID riid,void **ppvObject) {
   5911     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5912 }
   5913 static inline ULONG IPipeByte_AddRef(IPipeByte* This) {
   5914     return This->lpVtbl->AddRef(This);
   5915 }
   5916 static inline ULONG IPipeByte_Release(IPipeByte* This) {
   5917     return This->lpVtbl->Release(This);
   5918 }
   5919 /*** IPipeByte methods ***/
   5920 static inline HRESULT IPipeByte_Pull(IPipeByte* This,BYTE *buf,ULONG cRequest,ULONG *pcReturned) {
   5921     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
   5922 }
   5923 static inline HRESULT IPipeByte_Push(IPipeByte* This,BYTE *buf,ULONG cSent) {
   5924     return This->lpVtbl->Push(This,buf,cSent);
   5925 }
   5926 #endif
   5927 #endif
   5928 
   5929 #endif
   5930 
   5931 
   5932 #endif  /* __IPipeByte_INTERFACE_DEFINED__ */
   5933 
   5934 
   5935 /*****************************************************************************
   5936  * IPipeLong interface
   5937  */
   5938 #ifndef __IPipeLong_INTERFACE_DEFINED__
   5939 #define __IPipeLong_INTERFACE_DEFINED__
   5940 
   5941 DEFINE_GUID(IID_IPipeLong, 0xdb2f3acc, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
   5942 #if defined(__cplusplus) && !defined(CINTERFACE)
   5943 MIDL_INTERFACE("db2f3acc-2f86-11d1-8e04-00c04fb9989a")
   5944 IPipeLong : public IUnknown
   5945 {
   5946     virtual HRESULT STDMETHODCALLTYPE Pull(
   5947         LONG *buf,
   5948         ULONG cRequest,
   5949         ULONG *pcReturned) = 0;
   5950 
   5951     virtual HRESULT STDMETHODCALLTYPE Push(
   5952         LONG *buf,
   5953         ULONG cSent) = 0;
   5954 
   5955 };
   5956 #ifdef __CRT_UUID_DECL
   5957 __CRT_UUID_DECL(IPipeLong, 0xdb2f3acc, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
   5958 #endif
   5959 #else
   5960 typedef struct IPipeLongVtbl {
   5961     BEGIN_INTERFACE
   5962 
   5963     /*** IUnknown methods ***/
   5964     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5965         IPipeLong *This,
   5966         REFIID riid,
   5967         void **ppvObject);
   5968 
   5969     ULONG (STDMETHODCALLTYPE *AddRef)(
   5970         IPipeLong *This);
   5971 
   5972     ULONG (STDMETHODCALLTYPE *Release)(
   5973         IPipeLong *This);
   5974 
   5975     /*** IPipeLong methods ***/
   5976     HRESULT (STDMETHODCALLTYPE *Pull)(
   5977         IPipeLong *This,
   5978         LONG *buf,
   5979         ULONG cRequest,
   5980         ULONG *pcReturned);
   5981 
   5982     HRESULT (STDMETHODCALLTYPE *Push)(
   5983         IPipeLong *This,
   5984         LONG *buf,
   5985         ULONG cSent);
   5986 
   5987     END_INTERFACE
   5988 } IPipeLongVtbl;
   5989 
   5990 interface IPipeLong {
   5991     CONST_VTBL IPipeLongVtbl* lpVtbl;
   5992 };
   5993 
   5994 #ifdef COBJMACROS
   5995 #ifndef WIDL_C_INLINE_WRAPPERS
   5996 /*** IUnknown methods ***/
   5997 #define IPipeLong_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5998 #define IPipeLong_AddRef(This) (This)->lpVtbl->AddRef(This)
   5999 #define IPipeLong_Release(This) (This)->lpVtbl->Release(This)
   6000 /*** IPipeLong methods ***/
   6001 #define IPipeLong_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
   6002 #define IPipeLong_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
   6003 #else
   6004 /*** IUnknown methods ***/
   6005 static inline HRESULT IPipeLong_QueryInterface(IPipeLong* This,REFIID riid,void **ppvObject) {
   6006     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6007 }
   6008 static inline ULONG IPipeLong_AddRef(IPipeLong* This) {
   6009     return This->lpVtbl->AddRef(This);
   6010 }
   6011 static inline ULONG IPipeLong_Release(IPipeLong* This) {
   6012     return This->lpVtbl->Release(This);
   6013 }
   6014 /*** IPipeLong methods ***/
   6015 static inline HRESULT IPipeLong_Pull(IPipeLong* This,LONG *buf,ULONG cRequest,ULONG *pcReturned) {
   6016     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
   6017 }
   6018 static inline HRESULT IPipeLong_Push(IPipeLong* This,LONG *buf,ULONG cSent) {
   6019     return This->lpVtbl->Push(This,buf,cSent);
   6020 }
   6021 #endif
   6022 #endif
   6023 
   6024 #endif
   6025 
   6026 
   6027 #endif  /* __IPipeLong_INTERFACE_DEFINED__ */
   6028 
   6029 
   6030 /*****************************************************************************
   6031  * IPipeDouble interface
   6032  */
   6033 #ifndef __IPipeDouble_INTERFACE_DEFINED__
   6034 #define __IPipeDouble_INTERFACE_DEFINED__
   6035 
   6036 DEFINE_GUID(IID_IPipeDouble, 0xdb2f3ace, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
   6037 #if defined(__cplusplus) && !defined(CINTERFACE)
   6038 MIDL_INTERFACE("db2f3ace-2f86-11d1-8e04-00c04fb9989a")
   6039 IPipeDouble : public IUnknown
   6040 {
   6041     virtual HRESULT STDMETHODCALLTYPE Pull(
   6042         DOUBLE *buf,
   6043         ULONG cRequest,
   6044         ULONG *pcReturned) = 0;
   6045 
   6046     virtual HRESULT STDMETHODCALLTYPE Push(
   6047         DOUBLE *buf,
   6048         ULONG cSent) = 0;
   6049 
   6050 };
   6051 #ifdef __CRT_UUID_DECL
   6052 __CRT_UUID_DECL(IPipeDouble, 0xdb2f3ace, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
   6053 #endif
   6054 #else
   6055 typedef struct IPipeDoubleVtbl {
   6056     BEGIN_INTERFACE
   6057 
   6058     /*** IUnknown methods ***/
   6059     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6060         IPipeDouble *This,
   6061         REFIID riid,
   6062         void **ppvObject);
   6063 
   6064     ULONG (STDMETHODCALLTYPE *AddRef)(
   6065         IPipeDouble *This);
   6066 
   6067     ULONG (STDMETHODCALLTYPE *Release)(
   6068         IPipeDouble *This);
   6069 
   6070     /*** IPipeDouble methods ***/
   6071     HRESULT (STDMETHODCALLTYPE *Pull)(
   6072         IPipeDouble *This,
   6073         DOUBLE *buf,
   6074         ULONG cRequest,
   6075         ULONG *pcReturned);
   6076 
   6077     HRESULT (STDMETHODCALLTYPE *Push)(
   6078         IPipeDouble *This,
   6079         DOUBLE *buf,
   6080         ULONG cSent);
   6081 
   6082     END_INTERFACE
   6083 } IPipeDoubleVtbl;
   6084 
   6085 interface IPipeDouble {
   6086     CONST_VTBL IPipeDoubleVtbl* lpVtbl;
   6087 };
   6088 
   6089 #ifdef COBJMACROS
   6090 #ifndef WIDL_C_INLINE_WRAPPERS
   6091 /*** IUnknown methods ***/
   6092 #define IPipeDouble_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6093 #define IPipeDouble_AddRef(This) (This)->lpVtbl->AddRef(This)
   6094 #define IPipeDouble_Release(This) (This)->lpVtbl->Release(This)
   6095 /*** IPipeDouble methods ***/
   6096 #define IPipeDouble_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
   6097 #define IPipeDouble_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
   6098 #else
   6099 /*** IUnknown methods ***/
   6100 static inline HRESULT IPipeDouble_QueryInterface(IPipeDouble* This,REFIID riid,void **ppvObject) {
   6101     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6102 }
   6103 static inline ULONG IPipeDouble_AddRef(IPipeDouble* This) {
   6104     return This->lpVtbl->AddRef(This);
   6105 }
   6106 static inline ULONG IPipeDouble_Release(IPipeDouble* This) {
   6107     return This->lpVtbl->Release(This);
   6108 }
   6109 /*** IPipeDouble methods ***/
   6110 static inline HRESULT IPipeDouble_Pull(IPipeDouble* This,DOUBLE *buf,ULONG cRequest,ULONG *pcReturned) {
   6111     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
   6112 }
   6113 static inline HRESULT IPipeDouble_Push(IPipeDouble* This,DOUBLE *buf,ULONG cSent) {
   6114     return This->lpVtbl->Push(This,buf,cSent);
   6115 }
   6116 #endif
   6117 #endif
   6118 
   6119 #endif
   6120 
   6121 
   6122 #endif  /* __IPipeDouble_INTERFACE_DEFINED__ */
   6123 
   6124 
   6125 #if defined USE_COM_CONTEXT_DEF || defined BUILDTYPE_COMSVCS || defined _COMBASEAPI_ || defined _OLE32_
   6126 
   6127 typedef DWORD CPFLAGS;
   6128 
   6129 typedef struct tagContextProperty {
   6130     GUID policyId;
   6131     CPFLAGS flags;
   6132     IUnknown *pUnk;
   6133 } ContextProperty;
   6134 
   6135 /*****************************************************************************
   6136  * IEnumContextProps interface
   6137  */
   6138 #ifndef __IEnumContextProps_INTERFACE_DEFINED__
   6139 #define __IEnumContextProps_INTERFACE_DEFINED__
   6140 
   6141 typedef IEnumContextProps *LPENUMCONTEXTPROPS;
   6142 
   6143 DEFINE_GUID(IID_IEnumContextProps, 0x000001c1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   6144 #if defined(__cplusplus) && !defined(CINTERFACE)
   6145 MIDL_INTERFACE("000001c1-0000-0000-c000-000000000046")
   6146 IEnumContextProps : public IUnknown
   6147 {
   6148     virtual HRESULT STDMETHODCALLTYPE Next(
   6149         ULONG celt,
   6150         ContextProperty *pContextProperties,
   6151         ULONG *pceltFetched) = 0;
   6152 
   6153     virtual HRESULT STDMETHODCALLTYPE Skip(
   6154         ULONG celt) = 0;
   6155 
   6156     virtual HRESULT STDMETHODCALLTYPE Reset(
   6157         ) = 0;
   6158 
   6159     virtual HRESULT STDMETHODCALLTYPE Clone(
   6160         IEnumContextProps **ppEnumContextProps) = 0;
   6161 
   6162     virtual HRESULT STDMETHODCALLTYPE Count(
   6163         ULONG *pcelt) = 0;
   6164 
   6165 };
   6166 #ifdef __CRT_UUID_DECL
   6167 __CRT_UUID_DECL(IEnumContextProps, 0x000001c1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   6168 #endif
   6169 #else
   6170 typedef struct IEnumContextPropsVtbl {
   6171     BEGIN_INTERFACE
   6172 
   6173     /*** IUnknown methods ***/
   6174     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6175         IEnumContextProps *This,
   6176         REFIID riid,
   6177         void **ppvObject);
   6178 
   6179     ULONG (STDMETHODCALLTYPE *AddRef)(
   6180         IEnumContextProps *This);
   6181 
   6182     ULONG (STDMETHODCALLTYPE *Release)(
   6183         IEnumContextProps *This);
   6184 
   6185     /*** IEnumContextProps methods ***/
   6186     HRESULT (STDMETHODCALLTYPE *Next)(
   6187         IEnumContextProps *This,
   6188         ULONG celt,
   6189         ContextProperty *pContextProperties,
   6190         ULONG *pceltFetched);
   6191 
   6192     HRESULT (STDMETHODCALLTYPE *Skip)(
   6193         IEnumContextProps *This,
   6194         ULONG celt);
   6195 
   6196     HRESULT (STDMETHODCALLTYPE *Reset)(
   6197         IEnumContextProps *This);
   6198 
   6199     HRESULT (STDMETHODCALLTYPE *Clone)(
   6200         IEnumContextProps *This,
   6201         IEnumContextProps **ppEnumContextProps);
   6202 
   6203     HRESULT (STDMETHODCALLTYPE *Count)(
   6204         IEnumContextProps *This,
   6205         ULONG *pcelt);
   6206 
   6207     END_INTERFACE
   6208 } IEnumContextPropsVtbl;
   6209 
   6210 interface IEnumContextProps {
   6211     CONST_VTBL IEnumContextPropsVtbl* lpVtbl;
   6212 };
   6213 
   6214 #ifdef COBJMACROS
   6215 #ifndef WIDL_C_INLINE_WRAPPERS
   6216 /*** IUnknown methods ***/
   6217 #define IEnumContextProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6218 #define IEnumContextProps_AddRef(This) (This)->lpVtbl->AddRef(This)
   6219 #define IEnumContextProps_Release(This) (This)->lpVtbl->Release(This)
   6220 /*** IEnumContextProps methods ***/
   6221 #define IEnumContextProps_Next(This,celt,pContextProperties,pceltFetched) (This)->lpVtbl->Next(This,celt,pContextProperties,pceltFetched)
   6222 #define IEnumContextProps_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   6223 #define IEnumContextProps_Reset(This) (This)->lpVtbl->Reset(This)
   6224 #define IEnumContextProps_Clone(This,ppEnumContextProps) (This)->lpVtbl->Clone(This,ppEnumContextProps)
   6225 #define IEnumContextProps_Count(This,pcelt) (This)->lpVtbl->Count(This,pcelt)
   6226 #else
   6227 /*** IUnknown methods ***/
   6228 static inline HRESULT IEnumContextProps_QueryInterface(IEnumContextProps* This,REFIID riid,void **ppvObject) {
   6229     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6230 }
   6231 static inline ULONG IEnumContextProps_AddRef(IEnumContextProps* This) {
   6232     return This->lpVtbl->AddRef(This);
   6233 }
   6234 static inline ULONG IEnumContextProps_Release(IEnumContextProps* This) {
   6235     return This->lpVtbl->Release(This);
   6236 }
   6237 /*** IEnumContextProps methods ***/
   6238 static inline HRESULT IEnumContextProps_Next(IEnumContextProps* This,ULONG celt,ContextProperty *pContextProperties,ULONG *pceltFetched) {
   6239     return This->lpVtbl->Next(This,celt,pContextProperties,pceltFetched);
   6240 }
   6241 static inline HRESULT IEnumContextProps_Skip(IEnumContextProps* This,ULONG celt) {
   6242     return This->lpVtbl->Skip(This,celt);
   6243 }
   6244 static inline HRESULT IEnumContextProps_Reset(IEnumContextProps* This) {
   6245     return This->lpVtbl->Reset(This);
   6246 }
   6247 static inline HRESULT IEnumContextProps_Clone(IEnumContextProps* This,IEnumContextProps **ppEnumContextProps) {
   6248     return This->lpVtbl->Clone(This,ppEnumContextProps);
   6249 }
   6250 static inline HRESULT IEnumContextProps_Count(IEnumContextProps* This,ULONG *pcelt) {
   6251     return This->lpVtbl->Count(This,pcelt);
   6252 }
   6253 #endif
   6254 #endif
   6255 
   6256 #endif
   6257 
   6258 
   6259 #endif  /* __IEnumContextProps_INTERFACE_DEFINED__ */
   6260 
   6261 
   6262 /*****************************************************************************
   6263  * IContext interface
   6264  */
   6265 #ifndef __IContext_INTERFACE_DEFINED__
   6266 #define __IContext_INTERFACE_DEFINED__
   6267 
   6268 DEFINE_GUID(IID_IContext, 0x000001c0, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   6269 #if defined(__cplusplus) && !defined(CINTERFACE)
   6270 MIDL_INTERFACE("000001c0-0000-0000-c000-000000000046")
   6271 IContext : public IUnknown
   6272 {
   6273     virtual HRESULT STDMETHODCALLTYPE SetProperty(
   6274         REFGUID rpolicyId,
   6275         CPFLAGS flags,
   6276         IUnknown *pUnk) = 0;
   6277 
   6278     virtual HRESULT STDMETHODCALLTYPE RemoveProperty(
   6279         REFGUID rPolicyId) = 0;
   6280 
   6281     virtual HRESULT STDMETHODCALLTYPE GetProperty(
   6282         REFGUID rGuid,
   6283         CPFLAGS *pFlags,
   6284         IUnknown **ppUnk) = 0;
   6285 
   6286     virtual HRESULT STDMETHODCALLTYPE EnumContextProps(
   6287         IEnumContextProps **ppEnumContextProps) = 0;
   6288 
   6289 };
   6290 #ifdef __CRT_UUID_DECL
   6291 __CRT_UUID_DECL(IContext, 0x000001c0, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   6292 #endif
   6293 #else
   6294 typedef struct IContextVtbl {
   6295     BEGIN_INTERFACE
   6296 
   6297     /*** IUnknown methods ***/
   6298     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6299         IContext *This,
   6300         REFIID riid,
   6301         void **ppvObject);
   6302 
   6303     ULONG (STDMETHODCALLTYPE *AddRef)(
   6304         IContext *This);
   6305 
   6306     ULONG (STDMETHODCALLTYPE *Release)(
   6307         IContext *This);
   6308 
   6309     /*** IContext methods ***/
   6310     HRESULT (STDMETHODCALLTYPE *SetProperty)(
   6311         IContext *This,
   6312         REFGUID rpolicyId,
   6313         CPFLAGS flags,
   6314         IUnknown *pUnk);
   6315 
   6316     HRESULT (STDMETHODCALLTYPE *RemoveProperty)(
   6317         IContext *This,
   6318         REFGUID rPolicyId);
   6319 
   6320     HRESULT (STDMETHODCALLTYPE *GetProperty)(
   6321         IContext *This,
   6322         REFGUID rGuid,
   6323         CPFLAGS *pFlags,
   6324         IUnknown **ppUnk);
   6325 
   6326     HRESULT (STDMETHODCALLTYPE *EnumContextProps)(
   6327         IContext *This,
   6328         IEnumContextProps **ppEnumContextProps);
   6329 
   6330     END_INTERFACE
   6331 } IContextVtbl;
   6332 
   6333 interface IContext {
   6334     CONST_VTBL IContextVtbl* lpVtbl;
   6335 };
   6336 
   6337 #ifdef COBJMACROS
   6338 #ifndef WIDL_C_INLINE_WRAPPERS
   6339 /*** IUnknown methods ***/
   6340 #define IContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6341 #define IContext_AddRef(This) (This)->lpVtbl->AddRef(This)
   6342 #define IContext_Release(This) (This)->lpVtbl->Release(This)
   6343 /*** IContext methods ***/
   6344 #define IContext_SetProperty(This,rpolicyId,flags,pUnk) (This)->lpVtbl->SetProperty(This,rpolicyId,flags,pUnk)
   6345 #define IContext_RemoveProperty(This,rPolicyId) (This)->lpVtbl->RemoveProperty(This,rPolicyId)
   6346 #define IContext_GetProperty(This,rGuid,pFlags,ppUnk) (This)->lpVtbl->GetProperty(This,rGuid,pFlags,ppUnk)
   6347 #define IContext_EnumContextProps(This,ppEnumContextProps) (This)->lpVtbl->EnumContextProps(This,ppEnumContextProps)
   6348 #else
   6349 /*** IUnknown methods ***/
   6350 static inline HRESULT IContext_QueryInterface(IContext* This,REFIID riid,void **ppvObject) {
   6351     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6352 }
   6353 static inline ULONG IContext_AddRef(IContext* This) {
   6354     return This->lpVtbl->AddRef(This);
   6355 }
   6356 static inline ULONG IContext_Release(IContext* This) {
   6357     return This->lpVtbl->Release(This);
   6358 }
   6359 /*** IContext methods ***/
   6360 static inline HRESULT IContext_SetProperty(IContext* This,REFGUID rpolicyId,CPFLAGS flags,IUnknown *pUnk) {
   6361     return This->lpVtbl->SetProperty(This,rpolicyId,flags,pUnk);
   6362 }
   6363 static inline HRESULT IContext_RemoveProperty(IContext* This,REFGUID rPolicyId) {
   6364     return This->lpVtbl->RemoveProperty(This,rPolicyId);
   6365 }
   6366 static inline HRESULT IContext_GetProperty(IContext* This,REFGUID rGuid,CPFLAGS *pFlags,IUnknown **ppUnk) {
   6367     return This->lpVtbl->GetProperty(This,rGuid,pFlags,ppUnk);
   6368 }
   6369 static inline HRESULT IContext_EnumContextProps(IContext* This,IEnumContextProps **ppEnumContextProps) {
   6370     return This->lpVtbl->EnumContextProps(This,ppEnumContextProps);
   6371 }
   6372 #endif
   6373 #endif
   6374 
   6375 #endif
   6376 
   6377 
   6378 #endif  /* __IContext_INTERFACE_DEFINED__ */
   6379 
   6380 #endif
   6381 #endif
   6382 
   6383 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   6384 typedef enum _APTTYPEQUALIFIER {
   6385     APTTYPEQUALIFIER_NONE = 0,
   6386     APTTYPEQUALIFIER_IMPLICIT_MTA = 1,
   6387     APTTYPEQUALIFIER_NA_ON_MTA = 2,
   6388     APTTYPEQUALIFIER_NA_ON_STA = 3,
   6389     APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA = 4,
   6390     APTTYPEQUALIFIER_NA_ON_MAINSTA = 5,
   6391     APTTYPEQUALIFIER_APPLICATION_STA = 6
   6392 } APTTYPEQUALIFIER;
   6393 
   6394 typedef enum _APTTYPE {
   6395     APTTYPE_CURRENT = -1,
   6396     APTTYPE_STA = 0,
   6397     APTTYPE_MTA = 1,
   6398     APTTYPE_NA = 2,
   6399     APTTYPE_MAINSTA = 3
   6400 } APTTYPE;
   6401 #endif
   6402 
   6403 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   6404 typedef enum _THDTYPE {
   6405     THDTYPE_BLOCKMESSAGES = 0,
   6406     THDTYPE_PROCESSMESSAGES = 1
   6407 } THDTYPE;
   6408 
   6409 typedef DWORD APARTMENTID;
   6410 
   6411 /*****************************************************************************
   6412  * IComThreadingInfo interface
   6413  */
   6414 #ifndef __IComThreadingInfo_INTERFACE_DEFINED__
   6415 #define __IComThreadingInfo_INTERFACE_DEFINED__
   6416 
   6417 DEFINE_GUID(IID_IComThreadingInfo, 0x000001ce, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   6418 #if defined(__cplusplus) && !defined(CINTERFACE)
   6419 MIDL_INTERFACE("000001ce-0000-0000-c000-000000000046")
   6420 IComThreadingInfo : public IUnknown
   6421 {
   6422     virtual HRESULT STDMETHODCALLTYPE GetCurrentApartmentType(
   6423         APTTYPE *pAptType) = 0;
   6424 
   6425     virtual HRESULT STDMETHODCALLTYPE GetCurrentThreadType(
   6426         THDTYPE *pThreadType) = 0;
   6427 
   6428     virtual HRESULT STDMETHODCALLTYPE GetCurrentLogicalThreadId(
   6429         GUID *pguidLogicalThreadId) = 0;
   6430 
   6431     virtual HRESULT STDMETHODCALLTYPE SetCurrentLogicalThreadId(
   6432         REFGUID rguid) = 0;
   6433 
   6434 };
   6435 #ifdef __CRT_UUID_DECL
   6436 __CRT_UUID_DECL(IComThreadingInfo, 0x000001ce, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   6437 #endif
   6438 #else
   6439 typedef struct IComThreadingInfoVtbl {
   6440     BEGIN_INTERFACE
   6441 
   6442     /*** IUnknown methods ***/
   6443     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6444         IComThreadingInfo *This,
   6445         REFIID riid,
   6446         void **ppvObject);
   6447 
   6448     ULONG (STDMETHODCALLTYPE *AddRef)(
   6449         IComThreadingInfo *This);
   6450 
   6451     ULONG (STDMETHODCALLTYPE *Release)(
   6452         IComThreadingInfo *This);
   6453 
   6454     /*** IComThreadingInfo methods ***/
   6455     HRESULT (STDMETHODCALLTYPE *GetCurrentApartmentType)(
   6456         IComThreadingInfo *This,
   6457         APTTYPE *pAptType);
   6458 
   6459     HRESULT (STDMETHODCALLTYPE *GetCurrentThreadType)(
   6460         IComThreadingInfo *This,
   6461         THDTYPE *pThreadType);
   6462 
   6463     HRESULT (STDMETHODCALLTYPE *GetCurrentLogicalThreadId)(
   6464         IComThreadingInfo *This,
   6465         GUID *pguidLogicalThreadId);
   6466 
   6467     HRESULT (STDMETHODCALLTYPE *SetCurrentLogicalThreadId)(
   6468         IComThreadingInfo *This,
   6469         REFGUID rguid);
   6470 
   6471     END_INTERFACE
   6472 } IComThreadingInfoVtbl;
   6473 
   6474 interface IComThreadingInfo {
   6475     CONST_VTBL IComThreadingInfoVtbl* lpVtbl;
   6476 };
   6477 
   6478 #ifdef COBJMACROS
   6479 #ifndef WIDL_C_INLINE_WRAPPERS
   6480 /*** IUnknown methods ***/
   6481 #define IComThreadingInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6482 #define IComThreadingInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   6483 #define IComThreadingInfo_Release(This) (This)->lpVtbl->Release(This)
   6484 /*** IComThreadingInfo methods ***/
   6485 #define IComThreadingInfo_GetCurrentApartmentType(This,pAptType) (This)->lpVtbl->GetCurrentApartmentType(This,pAptType)
   6486 #define IComThreadingInfo_GetCurrentThreadType(This,pThreadType) (This)->lpVtbl->GetCurrentThreadType(This,pThreadType)
   6487 #define IComThreadingInfo_GetCurrentLogicalThreadId(This,pguidLogicalThreadId) (This)->lpVtbl->GetCurrentLogicalThreadId(This,pguidLogicalThreadId)
   6488 #define IComThreadingInfo_SetCurrentLogicalThreadId(This,rguid) (This)->lpVtbl->SetCurrentLogicalThreadId(This,rguid)
   6489 #else
   6490 /*** IUnknown methods ***/
   6491 static inline HRESULT IComThreadingInfo_QueryInterface(IComThreadingInfo* This,REFIID riid,void **ppvObject) {
   6492     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6493 }
   6494 static inline ULONG IComThreadingInfo_AddRef(IComThreadingInfo* This) {
   6495     return This->lpVtbl->AddRef(This);
   6496 }
   6497 static inline ULONG IComThreadingInfo_Release(IComThreadingInfo* This) {
   6498     return This->lpVtbl->Release(This);
   6499 }
   6500 /*** IComThreadingInfo methods ***/
   6501 static inline HRESULT IComThreadingInfo_GetCurrentApartmentType(IComThreadingInfo* This,APTTYPE *pAptType) {
   6502     return This->lpVtbl->GetCurrentApartmentType(This,pAptType);
   6503 }
   6504 static inline HRESULT IComThreadingInfo_GetCurrentThreadType(IComThreadingInfo* This,THDTYPE *pThreadType) {
   6505     return This->lpVtbl->GetCurrentThreadType(This,pThreadType);
   6506 }
   6507 static inline HRESULT IComThreadingInfo_GetCurrentLogicalThreadId(IComThreadingInfo* This,GUID *pguidLogicalThreadId) {
   6508     return This->lpVtbl->GetCurrentLogicalThreadId(This,pguidLogicalThreadId);
   6509 }
   6510 static inline HRESULT IComThreadingInfo_SetCurrentLogicalThreadId(IComThreadingInfo* This,REFGUID rguid) {
   6511     return This->lpVtbl->SetCurrentLogicalThreadId(This,rguid);
   6512 }
   6513 #endif
   6514 #endif
   6515 
   6516 #endif
   6517 
   6518 
   6519 #endif  /* __IComThreadingInfo_INTERFACE_DEFINED__ */
   6520 
   6521 
   6522 /*****************************************************************************
   6523  * IProcessInitControl interface
   6524  */
   6525 #ifndef __IProcessInitControl_INTERFACE_DEFINED__
   6526 #define __IProcessInitControl_INTERFACE_DEFINED__
   6527 
   6528 DEFINE_GUID(IID_IProcessInitControl, 0x72380d55, 0x8d2b, 0x43a3, 0x85,0x13, 0x2b,0x6e,0xf3,0x14,0x34,0xe9);
   6529 #if defined(__cplusplus) && !defined(CINTERFACE)
   6530 MIDL_INTERFACE("72380d55-8d2b-43a3-8513-2b6ef31434e9")
   6531 IProcessInitControl : public IUnknown
   6532 {
   6533     virtual HRESULT STDMETHODCALLTYPE ResetInitializerTimeout(
   6534         DWORD dwSecondsRemaining) = 0;
   6535 
   6536 };
   6537 #ifdef __CRT_UUID_DECL
   6538 __CRT_UUID_DECL(IProcessInitControl, 0x72380d55, 0x8d2b, 0x43a3, 0x85,0x13, 0x2b,0x6e,0xf3,0x14,0x34,0xe9)
   6539 #endif
   6540 #else
   6541 typedef struct IProcessInitControlVtbl {
   6542     BEGIN_INTERFACE
   6543 
   6544     /*** IUnknown methods ***/
   6545     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6546         IProcessInitControl *This,
   6547         REFIID riid,
   6548         void **ppvObject);
   6549 
   6550     ULONG (STDMETHODCALLTYPE *AddRef)(
   6551         IProcessInitControl *This);
   6552 
   6553     ULONG (STDMETHODCALLTYPE *Release)(
   6554         IProcessInitControl *This);
   6555 
   6556     /*** IProcessInitControl methods ***/
   6557     HRESULT (STDMETHODCALLTYPE *ResetInitializerTimeout)(
   6558         IProcessInitControl *This,
   6559         DWORD dwSecondsRemaining);
   6560 
   6561     END_INTERFACE
   6562 } IProcessInitControlVtbl;
   6563 
   6564 interface IProcessInitControl {
   6565     CONST_VTBL IProcessInitControlVtbl* lpVtbl;
   6566 };
   6567 
   6568 #ifdef COBJMACROS
   6569 #ifndef WIDL_C_INLINE_WRAPPERS
   6570 /*** IUnknown methods ***/
   6571 #define IProcessInitControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6572 #define IProcessInitControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   6573 #define IProcessInitControl_Release(This) (This)->lpVtbl->Release(This)
   6574 /*** IProcessInitControl methods ***/
   6575 #define IProcessInitControl_ResetInitializerTimeout(This,dwSecondsRemaining) (This)->lpVtbl->ResetInitializerTimeout(This,dwSecondsRemaining)
   6576 #else
   6577 /*** IUnknown methods ***/
   6578 static inline HRESULT IProcessInitControl_QueryInterface(IProcessInitControl* This,REFIID riid,void **ppvObject) {
   6579     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6580 }
   6581 static inline ULONG IProcessInitControl_AddRef(IProcessInitControl* This) {
   6582     return This->lpVtbl->AddRef(This);
   6583 }
   6584 static inline ULONG IProcessInitControl_Release(IProcessInitControl* This) {
   6585     return This->lpVtbl->Release(This);
   6586 }
   6587 /*** IProcessInitControl methods ***/
   6588 static inline HRESULT IProcessInitControl_ResetInitializerTimeout(IProcessInitControl* This,DWORD dwSecondsRemaining) {
   6589     return This->lpVtbl->ResetInitializerTimeout(This,dwSecondsRemaining);
   6590 }
   6591 #endif
   6592 #endif
   6593 
   6594 #endif
   6595 
   6596 
   6597 #endif  /* __IProcessInitControl_INTERFACE_DEFINED__ */
   6598 
   6599 
   6600 /*****************************************************************************
   6601  * IFastRundown interface
   6602  */
   6603 #ifndef __IFastRundown_INTERFACE_DEFINED__
   6604 #define __IFastRundown_INTERFACE_DEFINED__
   6605 
   6606 DEFINE_GUID(IID_IFastRundown, 0x00000040, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   6607 #if defined(__cplusplus) && !defined(CINTERFACE)
   6608 MIDL_INTERFACE("00000040-0000-0000-c000-000000000046")
   6609 IFastRundown : public IUnknown
   6610 {
   6611 };
   6612 #ifdef __CRT_UUID_DECL
   6613 __CRT_UUID_DECL(IFastRundown, 0x00000040, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   6614 #endif
   6615 #else
   6616 typedef struct IFastRundownVtbl {
   6617     BEGIN_INTERFACE
   6618 
   6619     /*** IUnknown methods ***/
   6620     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6621         IFastRundown *This,
   6622         REFIID riid,
   6623         void **ppvObject);
   6624 
   6625     ULONG (STDMETHODCALLTYPE *AddRef)(
   6626         IFastRundown *This);
   6627 
   6628     ULONG (STDMETHODCALLTYPE *Release)(
   6629         IFastRundown *This);
   6630 
   6631     END_INTERFACE
   6632 } IFastRundownVtbl;
   6633 
   6634 interface IFastRundown {
   6635     CONST_VTBL IFastRundownVtbl* lpVtbl;
   6636 };
   6637 
   6638 #ifdef COBJMACROS
   6639 #ifndef WIDL_C_INLINE_WRAPPERS
   6640 /*** IUnknown methods ***/
   6641 #define IFastRundown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6642 #define IFastRundown_AddRef(This) (This)->lpVtbl->AddRef(This)
   6643 #define IFastRundown_Release(This) (This)->lpVtbl->Release(This)
   6644 #else
   6645 /*** IUnknown methods ***/
   6646 static inline HRESULT IFastRundown_QueryInterface(IFastRundown* This,REFIID riid,void **ppvObject) {
   6647     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6648 }
   6649 static inline ULONG IFastRundown_AddRef(IFastRundown* This) {
   6650     return This->lpVtbl->AddRef(This);
   6651 }
   6652 static inline ULONG IFastRundown_Release(IFastRundown* This) {
   6653     return This->lpVtbl->Release(This);
   6654 }
   6655 #endif
   6656 #endif
   6657 
   6658 #endif
   6659 
   6660 
   6661 #endif  /* __IFastRundown_INTERFACE_DEFINED__ */
   6662 
   6663 
   6664 typedef enum CO_MARSHALING_CONTEXT_ATTRIBUTES {
   6665     CO_MARSHALING_SOURCE_IS_APP_CONTAINER = 0
   6666 } CO_MARSHALING_CONTEXT_ATTRIBUTES;
   6667 
   6668 /*****************************************************************************
   6669  * IMarshalingStream interface
   6670  */
   6671 #ifndef __IMarshalingStream_INTERFACE_DEFINED__
   6672 #define __IMarshalingStream_INTERFACE_DEFINED__
   6673 
   6674 DEFINE_GUID(IID_IMarshalingStream, 0xd8f2f5e6, 0x6102, 0x4863, 0x9f,0x26, 0x38,0x9a,0x46,0x76,0xef,0xde);
   6675 #if defined(__cplusplus) && !defined(CINTERFACE)
   6676 MIDL_INTERFACE("d8f2f5e6-6102-4863-9f26-389a4676efde")
   6677 IMarshalingStream : public IStream
   6678 {
   6679     virtual HRESULT STDMETHODCALLTYPE GetMarshalingContextAttribute(
   6680         CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
   6681         ULONG_PTR *pAttributeValue) = 0;
   6682 
   6683 };
   6684 #ifdef __CRT_UUID_DECL
   6685 __CRT_UUID_DECL(IMarshalingStream, 0xd8f2f5e6, 0x6102, 0x4863, 0x9f,0x26, 0x38,0x9a,0x46,0x76,0xef,0xde)
   6686 #endif
   6687 #else
   6688 typedef struct IMarshalingStreamVtbl {
   6689     BEGIN_INTERFACE
   6690 
   6691     /*** IUnknown methods ***/
   6692     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6693         IMarshalingStream *This,
   6694         REFIID riid,
   6695         void **ppvObject);
   6696 
   6697     ULONG (STDMETHODCALLTYPE *AddRef)(
   6698         IMarshalingStream *This);
   6699 
   6700     ULONG (STDMETHODCALLTYPE *Release)(
   6701         IMarshalingStream *This);
   6702 
   6703     /*** ISequentialStream methods ***/
   6704     HRESULT (STDMETHODCALLTYPE *Read)(
   6705         IMarshalingStream *This,
   6706         void *pv,
   6707         ULONG cb,
   6708         ULONG *pcbRead);
   6709 
   6710     HRESULT (STDMETHODCALLTYPE *Write)(
   6711         IMarshalingStream *This,
   6712         const void *pv,
   6713         ULONG cb,
   6714         ULONG *pcbWritten);
   6715 
   6716     /*** IStream methods ***/
   6717     HRESULT (STDMETHODCALLTYPE *Seek)(
   6718         IMarshalingStream *This,
   6719         LARGE_INTEGER dlibMove,
   6720         DWORD dwOrigin,
   6721         ULARGE_INTEGER *plibNewPosition);
   6722 
   6723     HRESULT (STDMETHODCALLTYPE *SetSize)(
   6724         IMarshalingStream *This,
   6725         ULARGE_INTEGER libNewSize);
   6726 
   6727     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   6728         IMarshalingStream *This,
   6729         IStream *pstm,
   6730         ULARGE_INTEGER cb,
   6731         ULARGE_INTEGER *pcbRead,
   6732         ULARGE_INTEGER *pcbWritten);
   6733 
   6734     HRESULT (STDMETHODCALLTYPE *Commit)(
   6735         IMarshalingStream *This,
   6736         DWORD grfCommitFlags);
   6737 
   6738     HRESULT (STDMETHODCALLTYPE *Revert)(
   6739         IMarshalingStream *This);
   6740 
   6741     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   6742         IMarshalingStream *This,
   6743         ULARGE_INTEGER libOffset,
   6744         ULARGE_INTEGER cb,
   6745         DWORD dwLockType);
   6746 
   6747     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   6748         IMarshalingStream *This,
   6749         ULARGE_INTEGER libOffset,
   6750         ULARGE_INTEGER cb,
   6751         DWORD dwLockType);
   6752 
   6753     HRESULT (STDMETHODCALLTYPE *Stat)(
   6754         IMarshalingStream *This,
   6755         STATSTG *pstatstg,
   6756         DWORD grfStatFlag);
   6757 
   6758     HRESULT (STDMETHODCALLTYPE *Clone)(
   6759         IMarshalingStream *This,
   6760         IStream **ppstm);
   6761 
   6762     /*** IMarshalingStream methods ***/
   6763     HRESULT (STDMETHODCALLTYPE *GetMarshalingContextAttribute)(
   6764         IMarshalingStream *This,
   6765         CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
   6766         ULONG_PTR *pAttributeValue);
   6767 
   6768     END_INTERFACE
   6769 } IMarshalingStreamVtbl;
   6770 
   6771 interface IMarshalingStream {
   6772     CONST_VTBL IMarshalingStreamVtbl* lpVtbl;
   6773 };
   6774 
   6775 #ifdef COBJMACROS
   6776 #ifndef WIDL_C_INLINE_WRAPPERS
   6777 /*** IUnknown methods ***/
   6778 #define IMarshalingStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6779 #define IMarshalingStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   6780 #define IMarshalingStream_Release(This) (This)->lpVtbl->Release(This)
   6781 /*** ISequentialStream methods ***/
   6782 #define IMarshalingStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   6783 #define IMarshalingStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   6784 /*** IStream methods ***/
   6785 #define IMarshalingStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   6786 #define IMarshalingStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   6787 #define IMarshalingStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   6788 #define IMarshalingStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   6789 #define IMarshalingStream_Revert(This) (This)->lpVtbl->Revert(This)
   6790 #define IMarshalingStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   6791 #define IMarshalingStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   6792 #define IMarshalingStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   6793 #define IMarshalingStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   6794 /*** IMarshalingStream methods ***/
   6795 #define IMarshalingStream_GetMarshalingContextAttribute(This,attribute,pAttributeValue) (This)->lpVtbl->GetMarshalingContextAttribute(This,attribute,pAttributeValue)
   6796 #else
   6797 /*** IUnknown methods ***/
   6798 static inline HRESULT IMarshalingStream_QueryInterface(IMarshalingStream* This,REFIID riid,void **ppvObject) {
   6799     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6800 }
   6801 static inline ULONG IMarshalingStream_AddRef(IMarshalingStream* This) {
   6802     return This->lpVtbl->AddRef(This);
   6803 }
   6804 static inline ULONG IMarshalingStream_Release(IMarshalingStream* This) {
   6805     return This->lpVtbl->Release(This);
   6806 }
   6807 /*** ISequentialStream methods ***/
   6808 static inline HRESULT IMarshalingStream_Read(IMarshalingStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
   6809     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   6810 }
   6811 static inline HRESULT IMarshalingStream_Write(IMarshalingStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   6812     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   6813 }
   6814 /*** IStream methods ***/
   6815 static inline HRESULT IMarshalingStream_Seek(IMarshalingStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   6816     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   6817 }
   6818 static inline HRESULT IMarshalingStream_SetSize(IMarshalingStream* This,ULARGE_INTEGER libNewSize) {
   6819     return This->lpVtbl->SetSize(This,libNewSize);
   6820 }
   6821 static inline HRESULT IMarshalingStream_CopyTo(IMarshalingStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   6822     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   6823 }
   6824 static inline HRESULT IMarshalingStream_Commit(IMarshalingStream* This,DWORD grfCommitFlags) {
   6825     return This->lpVtbl->Commit(This,grfCommitFlags);
   6826 }
   6827 static inline HRESULT IMarshalingStream_Revert(IMarshalingStream* This) {
   6828     return This->lpVtbl->Revert(This);
   6829 }
   6830 static inline HRESULT IMarshalingStream_LockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   6831     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   6832 }
   6833 static inline HRESULT IMarshalingStream_UnlockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   6834     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   6835 }
   6836 static inline HRESULT IMarshalingStream_Stat(IMarshalingStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   6837     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   6838 }
   6839 static inline HRESULT IMarshalingStream_Clone(IMarshalingStream* This,IStream **ppstm) {
   6840     return This->lpVtbl->Clone(This,ppstm);
   6841 }
   6842 /*** IMarshalingStream methods ***/
   6843 static inline HRESULT IMarshalingStream_GetMarshalingContextAttribute(IMarshalingStream* This,CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,ULONG_PTR *pAttributeValue) {
   6844     return This->lpVtbl->GetMarshalingContextAttribute(This,attribute,pAttributeValue);
   6845 }
   6846 #endif
   6847 #endif
   6848 
   6849 #endif
   6850 
   6851 
   6852 #endif  /* __IMarshalingStream_INTERFACE_DEFINED__ */
   6853 
   6854 #endif
   6855 
   6856 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   6857 EXTERN_C const GUID  IID_ICallbackWithNoReentrancyToApplicationSTA;
   6858 #endif
   6859 #define _OBJIDLBASE_
   6860 #endif
   6861 #ifndef __IMoniker_FWD_DEFINED__
   6862 #define __IMoniker_FWD_DEFINED__
   6863 typedef interface IMoniker IMoniker;
   6864 #ifdef __cplusplus
   6865 interface IMoniker;
   6866 #endif /* __cplusplus */
   6867 #endif
   6868 
   6869 #ifndef __IEnumMoniker_FWD_DEFINED__
   6870 #define __IEnumMoniker_FWD_DEFINED__
   6871 typedef interface IEnumMoniker IEnumMoniker;
   6872 #ifdef __cplusplus
   6873 interface IEnumMoniker;
   6874 #endif /* __cplusplus */
   6875 #endif
   6876 
   6877 #ifndef __IRunningObjectTable_FWD_DEFINED__
   6878 #define __IRunningObjectTable_FWD_DEFINED__
   6879 typedef interface IRunningObjectTable IRunningObjectTable;
   6880 #ifdef __cplusplus
   6881 interface IRunningObjectTable;
   6882 #endif /* __cplusplus */
   6883 #endif
   6884 
   6885 #ifndef __IStorage_FWD_DEFINED__
   6886 #define __IStorage_FWD_DEFINED__
   6887 typedef interface IStorage IStorage;
   6888 #ifdef __cplusplus
   6889 interface IStorage;
   6890 #endif /* __cplusplus */
   6891 #endif
   6892 
   6893 #ifndef __IEnumSTATSTG_FWD_DEFINED__
   6894 #define __IEnumSTATSTG_FWD_DEFINED__
   6895 typedef interface IEnumSTATSTG IEnumSTATSTG;
   6896 #ifdef __cplusplus
   6897 interface IEnumSTATSTG;
   6898 #endif /* __cplusplus */
   6899 #endif
   6900 
   6901 #ifndef __IAdviseSink_FWD_DEFINED__
   6902 #define __IAdviseSink_FWD_DEFINED__
   6903 typedef interface IAdviseSink IAdviseSink;
   6904 #ifdef __cplusplus
   6905 interface IAdviseSink;
   6906 #endif /* __cplusplus */
   6907 #endif
   6908 
   6909 #ifndef __IBindCtx_FWD_DEFINED__
   6910 #define __IBindCtx_FWD_DEFINED__
   6911 typedef interface IBindCtx IBindCtx;
   6912 #ifdef __cplusplus
   6913 interface IBindCtx;
   6914 #endif /* __cplusplus */
   6915 #endif
   6916 
   6917 #ifndef __IEnumMoniker_FWD_DEFINED__
   6918 #define __IEnumMoniker_FWD_DEFINED__
   6919 typedef interface IEnumMoniker IEnumMoniker;
   6920 #ifdef __cplusplus
   6921 interface IEnumMoniker;
   6922 #endif /* __cplusplus */
   6923 #endif
   6924 
   6925 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   6926 /*****************************************************************************
   6927  * IMallocSpy interface
   6928  */
   6929 #ifndef __IMallocSpy_INTERFACE_DEFINED__
   6930 #define __IMallocSpy_INTERFACE_DEFINED__
   6931 
   6932 typedef IMallocSpy *LPMALLOCSPY;
   6933 DEFINE_GUID(IID_IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   6934 #if defined(__cplusplus) && !defined(CINTERFACE)
   6935 MIDL_INTERFACE("0000001d-0000-0000-c000-000000000046")
   6936 IMallocSpy : public IUnknown
   6937 {
   6938     virtual SIZE_T STDMETHODCALLTYPE PreAlloc(
   6939         SIZE_T cbRequest) = 0;
   6940 
   6941     virtual void * STDMETHODCALLTYPE PostAlloc(
   6942         void *pActual) = 0;
   6943 
   6944     virtual void * STDMETHODCALLTYPE PreFree(
   6945         void *pRequest,
   6946         WINBOOL fSpyed) = 0;
   6947 
   6948     virtual void STDMETHODCALLTYPE PostFree(
   6949         WINBOOL fSpyed) = 0;
   6950 
   6951     virtual SIZE_T STDMETHODCALLTYPE PreRealloc(
   6952         void *pRequest,
   6953         SIZE_T cbRequest,
   6954         void **ppNewRequest,
   6955         WINBOOL fSpyed) = 0;
   6956 
   6957     virtual void * STDMETHODCALLTYPE PostRealloc(
   6958         void *pActual,
   6959         WINBOOL fSpyed) = 0;
   6960 
   6961     virtual void * STDMETHODCALLTYPE PreGetSize(
   6962         void *pRequest,
   6963         WINBOOL fSpyed) = 0;
   6964 
   6965     virtual SIZE_T STDMETHODCALLTYPE PostGetSize(
   6966         SIZE_T cbActual,
   6967         WINBOOL fSpyed) = 0;
   6968 
   6969     virtual void * STDMETHODCALLTYPE PreDidAlloc(
   6970         void *pRequest,
   6971         WINBOOL fSpyed) = 0;
   6972 
   6973     virtual int STDMETHODCALLTYPE PostDidAlloc(
   6974         void *pRequest,
   6975         WINBOOL fSpyed,
   6976         int fActual) = 0;
   6977 
   6978     virtual void STDMETHODCALLTYPE PreHeapMinimize(
   6979         ) = 0;
   6980 
   6981     virtual void STDMETHODCALLTYPE PostHeapMinimize(
   6982         ) = 0;
   6983 
   6984 };
   6985 #ifdef __CRT_UUID_DECL
   6986 __CRT_UUID_DECL(IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   6987 #endif
   6988 #else
   6989 typedef struct IMallocSpyVtbl {
   6990     BEGIN_INTERFACE
   6991 
   6992     /*** IUnknown methods ***/
   6993     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6994         IMallocSpy *This,
   6995         REFIID riid,
   6996         void **ppvObject);
   6997 
   6998     ULONG (STDMETHODCALLTYPE *AddRef)(
   6999         IMallocSpy *This);
   7000 
   7001     ULONG (STDMETHODCALLTYPE *Release)(
   7002         IMallocSpy *This);
   7003 
   7004     /*** IMallocSpy methods ***/
   7005     SIZE_T (STDMETHODCALLTYPE *PreAlloc)(
   7006         IMallocSpy *This,
   7007         SIZE_T cbRequest);
   7008 
   7009     void * (STDMETHODCALLTYPE *PostAlloc)(
   7010         IMallocSpy *This,
   7011         void *pActual);
   7012 
   7013     void * (STDMETHODCALLTYPE *PreFree)(
   7014         IMallocSpy *This,
   7015         void *pRequest,
   7016         WINBOOL fSpyed);
   7017 
   7018     void (STDMETHODCALLTYPE *PostFree)(
   7019         IMallocSpy *This,
   7020         WINBOOL fSpyed);
   7021 
   7022     SIZE_T (STDMETHODCALLTYPE *PreRealloc)(
   7023         IMallocSpy *This,
   7024         void *pRequest,
   7025         SIZE_T cbRequest,
   7026         void **ppNewRequest,
   7027         WINBOOL fSpyed);
   7028 
   7029     void * (STDMETHODCALLTYPE *PostRealloc)(
   7030         IMallocSpy *This,
   7031         void *pActual,
   7032         WINBOOL fSpyed);
   7033 
   7034     void * (STDMETHODCALLTYPE *PreGetSize)(
   7035         IMallocSpy *This,
   7036         void *pRequest,
   7037         WINBOOL fSpyed);
   7038 
   7039     SIZE_T (STDMETHODCALLTYPE *PostGetSize)(
   7040         IMallocSpy *This,
   7041         SIZE_T cbActual,
   7042         WINBOOL fSpyed);
   7043 
   7044     void * (STDMETHODCALLTYPE *PreDidAlloc)(
   7045         IMallocSpy *This,
   7046         void *pRequest,
   7047         WINBOOL fSpyed);
   7048 
   7049     int (STDMETHODCALLTYPE *PostDidAlloc)(
   7050         IMallocSpy *This,
   7051         void *pRequest,
   7052         WINBOOL fSpyed,
   7053         int fActual);
   7054 
   7055     void (STDMETHODCALLTYPE *PreHeapMinimize)(
   7056         IMallocSpy *This);
   7057 
   7058     void (STDMETHODCALLTYPE *PostHeapMinimize)(
   7059         IMallocSpy *This);
   7060 
   7061     END_INTERFACE
   7062 } IMallocSpyVtbl;
   7063 
   7064 interface IMallocSpy {
   7065     CONST_VTBL IMallocSpyVtbl* lpVtbl;
   7066 };
   7067 
   7068 #ifdef COBJMACROS
   7069 #ifndef WIDL_C_INLINE_WRAPPERS
   7070 /*** IUnknown methods ***/
   7071 #define IMallocSpy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7072 #define IMallocSpy_AddRef(This) (This)->lpVtbl->AddRef(This)
   7073 #define IMallocSpy_Release(This) (This)->lpVtbl->Release(This)
   7074 /*** IMallocSpy methods ***/
   7075 #define IMallocSpy_PreAlloc(This,cbRequest) (This)->lpVtbl->PreAlloc(This,cbRequest)
   7076 #define IMallocSpy_PostAlloc(This,pActual) (This)->lpVtbl->PostAlloc(This,pActual)
   7077 #define IMallocSpy_PreFree(This,pRequest,fSpyed) (This)->lpVtbl->PreFree(This,pRequest,fSpyed)
   7078 #define IMallocSpy_PostFree(This,fSpyed) (This)->lpVtbl->PostFree(This,fSpyed)
   7079 #define IMallocSpy_PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed) (This)->lpVtbl->PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed)
   7080 #define IMallocSpy_PostRealloc(This,pActual,fSpyed) (This)->lpVtbl->PostRealloc(This,pActual,fSpyed)
   7081 #define IMallocSpy_PreGetSize(This,pRequest,fSpyed) (This)->lpVtbl->PreGetSize(This,pRequest,fSpyed)
   7082 #define IMallocSpy_PostGetSize(This,cbActual,fSpyed) (This)->lpVtbl->PostGetSize(This,cbActual,fSpyed)
   7083 #define IMallocSpy_PreDidAlloc(This,pRequest,fSpyed) (This)->lpVtbl->PreDidAlloc(This,pRequest,fSpyed)
   7084 #define IMallocSpy_PostDidAlloc(This,pRequest,fSpyed,fActual) (This)->lpVtbl->PostDidAlloc(This,pRequest,fSpyed,fActual)
   7085 #define IMallocSpy_PreHeapMinimize(This) (This)->lpVtbl->PreHeapMinimize(This)
   7086 #define IMallocSpy_PostHeapMinimize(This) (This)->lpVtbl->PostHeapMinimize(This)
   7087 #else
   7088 /*** IUnknown methods ***/
   7089 static inline HRESULT IMallocSpy_QueryInterface(IMallocSpy* This,REFIID riid,void **ppvObject) {
   7090     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7091 }
   7092 static inline ULONG IMallocSpy_AddRef(IMallocSpy* This) {
   7093     return This->lpVtbl->AddRef(This);
   7094 }
   7095 static inline ULONG IMallocSpy_Release(IMallocSpy* This) {
   7096     return This->lpVtbl->Release(This);
   7097 }
   7098 /*** IMallocSpy methods ***/
   7099 static inline SIZE_T IMallocSpy_PreAlloc(IMallocSpy* This,SIZE_T cbRequest) {
   7100     return This->lpVtbl->PreAlloc(This,cbRequest);
   7101 }
   7102 static inline void * IMallocSpy_PostAlloc(IMallocSpy* This,void *pActual) {
   7103     return This->lpVtbl->PostAlloc(This,pActual);
   7104 }
   7105 static inline void * IMallocSpy_PreFree(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
   7106     return This->lpVtbl->PreFree(This,pRequest,fSpyed);
   7107 }
   7108 static inline void IMallocSpy_PostFree(IMallocSpy* This,WINBOOL fSpyed) {
   7109     This->lpVtbl->PostFree(This,fSpyed);
   7110 }
   7111 static inline SIZE_T IMallocSpy_PreRealloc(IMallocSpy* This,void *pRequest,SIZE_T cbRequest,void **ppNewRequest,WINBOOL fSpyed) {
   7112     return This->lpVtbl->PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed);
   7113 }
   7114 static inline void * IMallocSpy_PostRealloc(IMallocSpy* This,void *pActual,WINBOOL fSpyed) {
   7115     return This->lpVtbl->PostRealloc(This,pActual,fSpyed);
   7116 }
   7117 static inline void * IMallocSpy_PreGetSize(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
   7118     return This->lpVtbl->PreGetSize(This,pRequest,fSpyed);
   7119 }
   7120 static inline SIZE_T IMallocSpy_PostGetSize(IMallocSpy* This,SIZE_T cbActual,WINBOOL fSpyed) {
   7121     return This->lpVtbl->PostGetSize(This,cbActual,fSpyed);
   7122 }
   7123 static inline void * IMallocSpy_PreDidAlloc(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
   7124     return This->lpVtbl->PreDidAlloc(This,pRequest,fSpyed);
   7125 }
   7126 static inline int IMallocSpy_PostDidAlloc(IMallocSpy* This,void *pRequest,WINBOOL fSpyed,int fActual) {
   7127     return This->lpVtbl->PostDidAlloc(This,pRequest,fSpyed,fActual);
   7128 }
   7129 static inline void IMallocSpy_PreHeapMinimize(IMallocSpy* This) {
   7130     This->lpVtbl->PreHeapMinimize(This);
   7131 }
   7132 static inline void IMallocSpy_PostHeapMinimize(IMallocSpy* This) {
   7133     This->lpVtbl->PostHeapMinimize(This);
   7134 }
   7135 #endif
   7136 #endif
   7137 
   7138 #endif
   7139 
   7140 
   7141 #endif  /* __IMallocSpy_INTERFACE_DEFINED__ */
   7142 
   7143 #endif
   7144 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   7145 /*****************************************************************************
   7146  * IBindCtx interface
   7147  */
   7148 #ifndef __IBindCtx_INTERFACE_DEFINED__
   7149 #define __IBindCtx_INTERFACE_DEFINED__
   7150 
   7151 typedef IBindCtx *LPBC;
   7152 typedef IBindCtx *LPBINDCTX;
   7153 #if defined(__cplusplus)
   7154 typedef struct tagBIND_OPTS {
   7155   DWORD cbStruct;
   7156   DWORD grfFlags;
   7157   DWORD grfMode;
   7158   DWORD dwTickCountDeadline;
   7159 } BIND_OPTS, *LPBIND_OPTS;
   7160 #else
   7161 typedef struct tagBIND_OPTS {
   7162     DWORD cbStruct;
   7163     DWORD grfFlags;
   7164     DWORD grfMode;
   7165     DWORD dwTickCountDeadline;
   7166 } BIND_OPTS;
   7167 typedef struct tagBIND_OPTS *LPBIND_OPTS;
   7168 #endif
   7169 #if defined(__cplusplus)
   7170 typedef struct tagBIND_OPTS2 : tagBIND_OPTS {
   7171 DWORD           dwTrackFlags;
   7172 DWORD           dwClassContext;
   7173 LCID            locale;
   7174 COSERVERINFO *  pServerInfo;
   7175 } BIND_OPTS2, * LPBIND_OPTS2;
   7176 #else
   7177 typedef struct tagBIND_OPTS2 {
   7178     DWORD cbStruct;
   7179     DWORD grfFlags;
   7180     DWORD grfMode;
   7181     DWORD dwTickCountDeadline;
   7182     DWORD dwTrackFlags;
   7183     DWORD dwClassContext;
   7184     LCID locale;
   7185     COSERVERINFO *pServerInfo;
   7186 } BIND_OPTS2;
   7187 typedef struct tagBIND_OPTS2 *LPBIND_OPTS2;
   7188 #endif
   7189 #if defined(__cplusplus)
   7190 typedef struct tagBIND_OPTS3 : tagBIND_OPTS2 {
   7191 HWND           hwnd;
   7192 } BIND_OPTS3, * LPBIND_OPTS3;
   7193 #else
   7194 typedef struct tagBIND_OPTS3 {
   7195     DWORD cbStruct;
   7196     DWORD grfFlags;
   7197     DWORD grfMode;
   7198     DWORD dwTickCountDeadline;
   7199     DWORD dwTrackFlags;
   7200     DWORD dwClassContext;
   7201     LCID locale;
   7202     COSERVERINFO *pServerInfo;
   7203     HWND hwnd;
   7204 } BIND_OPTS3;
   7205 typedef struct tagBIND_OPTS3 *LPBIND_OPTS3;
   7206 #endif
   7207 typedef enum tagBIND_FLAGS {
   7208     BIND_MAYBOTHERUSER = 1,
   7209     BIND_JUSTTESTEXISTENCE = 2
   7210 } BIND_FLAGS;
   7211 DEFINE_GUID(IID_IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   7212 #if defined(__cplusplus) && !defined(CINTERFACE)
   7213 MIDL_INTERFACE("0000000e-0000-0000-c000-000000000046")
   7214 IBindCtx : public IUnknown
   7215 {
   7216     virtual HRESULT STDMETHODCALLTYPE RegisterObjectBound(
   7217         IUnknown *punk) = 0;
   7218 
   7219     virtual HRESULT STDMETHODCALLTYPE RevokeObjectBound(
   7220         IUnknown *punk) = 0;
   7221 
   7222     virtual HRESULT STDMETHODCALLTYPE ReleaseBoundObjects(
   7223         ) = 0;
   7224 
   7225     virtual HRESULT STDMETHODCALLTYPE SetBindOptions(
   7226         BIND_OPTS *pbindopts) = 0;
   7227 
   7228     virtual HRESULT STDMETHODCALLTYPE GetBindOptions(
   7229         BIND_OPTS *pbindopts) = 0;
   7230 
   7231     virtual HRESULT STDMETHODCALLTYPE GetRunningObjectTable(
   7232         IRunningObjectTable **pprot) = 0;
   7233 
   7234     virtual HRESULT STDMETHODCALLTYPE RegisterObjectParam(
   7235         LPOLESTR pszKey,
   7236         IUnknown *punk) = 0;
   7237 
   7238     virtual HRESULT STDMETHODCALLTYPE GetObjectParam(
   7239         LPOLESTR pszKey,
   7240         IUnknown **ppunk) = 0;
   7241 
   7242     virtual HRESULT STDMETHODCALLTYPE EnumObjectParam(
   7243         IEnumString **ppenum) = 0;
   7244 
   7245     virtual HRESULT STDMETHODCALLTYPE RevokeObjectParam(
   7246         LPOLESTR pszKey) = 0;
   7247 
   7248 };
   7249 #ifdef __CRT_UUID_DECL
   7250 __CRT_UUID_DECL(IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   7251 #endif
   7252 #else
   7253 typedef struct IBindCtxVtbl {
   7254     BEGIN_INTERFACE
   7255 
   7256     /*** IUnknown methods ***/
   7257     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7258         IBindCtx *This,
   7259         REFIID riid,
   7260         void **ppvObject);
   7261 
   7262     ULONG (STDMETHODCALLTYPE *AddRef)(
   7263         IBindCtx *This);
   7264 
   7265     ULONG (STDMETHODCALLTYPE *Release)(
   7266         IBindCtx *This);
   7267 
   7268     /*** IBindCtx methods ***/
   7269     HRESULT (STDMETHODCALLTYPE *RegisterObjectBound)(
   7270         IBindCtx *This,
   7271         IUnknown *punk);
   7272 
   7273     HRESULT (STDMETHODCALLTYPE *RevokeObjectBound)(
   7274         IBindCtx *This,
   7275         IUnknown *punk);
   7276 
   7277     HRESULT (STDMETHODCALLTYPE *ReleaseBoundObjects)(
   7278         IBindCtx *This);
   7279 
   7280     HRESULT (STDMETHODCALLTYPE *SetBindOptions)(
   7281         IBindCtx *This,
   7282         BIND_OPTS *pbindopts);
   7283 
   7284     HRESULT (STDMETHODCALLTYPE *GetBindOptions)(
   7285         IBindCtx *This,
   7286         BIND_OPTS *pbindopts);
   7287 
   7288     HRESULT (STDMETHODCALLTYPE *GetRunningObjectTable)(
   7289         IBindCtx *This,
   7290         IRunningObjectTable **pprot);
   7291 
   7292     HRESULT (STDMETHODCALLTYPE *RegisterObjectParam)(
   7293         IBindCtx *This,
   7294         LPOLESTR pszKey,
   7295         IUnknown *punk);
   7296 
   7297     HRESULT (STDMETHODCALLTYPE *GetObjectParam)(
   7298         IBindCtx *This,
   7299         LPOLESTR pszKey,
   7300         IUnknown **ppunk);
   7301 
   7302     HRESULT (STDMETHODCALLTYPE *EnumObjectParam)(
   7303         IBindCtx *This,
   7304         IEnumString **ppenum);
   7305 
   7306     HRESULT (STDMETHODCALLTYPE *RevokeObjectParam)(
   7307         IBindCtx *This,
   7308         LPOLESTR pszKey);
   7309 
   7310     END_INTERFACE
   7311 } IBindCtxVtbl;
   7312 
   7313 interface IBindCtx {
   7314     CONST_VTBL IBindCtxVtbl* lpVtbl;
   7315 };
   7316 
   7317 #ifdef COBJMACROS
   7318 #ifndef WIDL_C_INLINE_WRAPPERS
   7319 /*** IUnknown methods ***/
   7320 #define IBindCtx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7321 #define IBindCtx_AddRef(This) (This)->lpVtbl->AddRef(This)
   7322 #define IBindCtx_Release(This) (This)->lpVtbl->Release(This)
   7323 /*** IBindCtx methods ***/
   7324 #define IBindCtx_RegisterObjectBound(This,punk) (This)->lpVtbl->RegisterObjectBound(This,punk)
   7325 #define IBindCtx_RevokeObjectBound(This,punk) (This)->lpVtbl->RevokeObjectBound(This,punk)
   7326 #define IBindCtx_ReleaseBoundObjects(This) (This)->lpVtbl->ReleaseBoundObjects(This)
   7327 #define IBindCtx_SetBindOptions(This,pbindopts) (This)->lpVtbl->SetBindOptions(This,pbindopts)
   7328 #define IBindCtx_GetBindOptions(This,pbindopts) (This)->lpVtbl->GetBindOptions(This,pbindopts)
   7329 #define IBindCtx_GetRunningObjectTable(This,pprot) (This)->lpVtbl->GetRunningObjectTable(This,pprot)
   7330 #define IBindCtx_RegisterObjectParam(This,pszKey,punk) (This)->lpVtbl->RegisterObjectParam(This,pszKey,punk)
   7331 #define IBindCtx_GetObjectParam(This,pszKey,ppunk) (This)->lpVtbl->GetObjectParam(This,pszKey,ppunk)
   7332 #define IBindCtx_EnumObjectParam(This,ppenum) (This)->lpVtbl->EnumObjectParam(This,ppenum)
   7333 #define IBindCtx_RevokeObjectParam(This,pszKey) (This)->lpVtbl->RevokeObjectParam(This,pszKey)
   7334 #else
   7335 /*** IUnknown methods ***/
   7336 static inline HRESULT IBindCtx_QueryInterface(IBindCtx* This,REFIID riid,void **ppvObject) {
   7337     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7338 }
   7339 static inline ULONG IBindCtx_AddRef(IBindCtx* This) {
   7340     return This->lpVtbl->AddRef(This);
   7341 }
   7342 static inline ULONG IBindCtx_Release(IBindCtx* This) {
   7343     return This->lpVtbl->Release(This);
   7344 }
   7345 /*** IBindCtx methods ***/
   7346 static inline HRESULT IBindCtx_RegisterObjectBound(IBindCtx* This,IUnknown *punk) {
   7347     return This->lpVtbl->RegisterObjectBound(This,punk);
   7348 }
   7349 static inline HRESULT IBindCtx_RevokeObjectBound(IBindCtx* This,IUnknown *punk) {
   7350     return This->lpVtbl->RevokeObjectBound(This,punk);
   7351 }
   7352 static inline HRESULT IBindCtx_ReleaseBoundObjects(IBindCtx* This) {
   7353     return This->lpVtbl->ReleaseBoundObjects(This);
   7354 }
   7355 static inline HRESULT IBindCtx_SetBindOptions(IBindCtx* This,BIND_OPTS *pbindopts) {
   7356     return This->lpVtbl->SetBindOptions(This,pbindopts);
   7357 }
   7358 static inline HRESULT IBindCtx_GetBindOptions(IBindCtx* This,BIND_OPTS *pbindopts) {
   7359     return This->lpVtbl->GetBindOptions(This,pbindopts);
   7360 }
   7361 static inline HRESULT IBindCtx_GetRunningObjectTable(IBindCtx* This,IRunningObjectTable **pprot) {
   7362     return This->lpVtbl->GetRunningObjectTable(This,pprot);
   7363 }
   7364 static inline HRESULT IBindCtx_RegisterObjectParam(IBindCtx* This,LPOLESTR pszKey,IUnknown *punk) {
   7365     return This->lpVtbl->RegisterObjectParam(This,pszKey,punk);
   7366 }
   7367 static inline HRESULT IBindCtx_GetObjectParam(IBindCtx* This,LPOLESTR pszKey,IUnknown **ppunk) {
   7368     return This->lpVtbl->GetObjectParam(This,pszKey,ppunk);
   7369 }
   7370 static inline HRESULT IBindCtx_EnumObjectParam(IBindCtx* This,IEnumString **ppenum) {
   7371     return This->lpVtbl->EnumObjectParam(This,ppenum);
   7372 }
   7373 static inline HRESULT IBindCtx_RevokeObjectParam(IBindCtx* This,LPOLESTR pszKey) {
   7374     return This->lpVtbl->RevokeObjectParam(This,pszKey);
   7375 }
   7376 #endif
   7377 #endif
   7378 
   7379 #endif
   7380 
   7381 HRESULT STDMETHODCALLTYPE IBindCtx_RemoteSetBindOptions_Proxy(
   7382     IBindCtx* This,
   7383     BIND_OPTS2 *pbindopts);
   7384 void __RPC_STUB IBindCtx_RemoteSetBindOptions_Stub(
   7385     IRpcStubBuffer* This,
   7386     IRpcChannelBuffer* pRpcChannelBuffer,
   7387     PRPC_MESSAGE pRpcMessage,
   7388     DWORD* pdwStubPhase);
   7389 HRESULT STDMETHODCALLTYPE IBindCtx_RemoteGetBindOptions_Proxy(
   7390     IBindCtx* This,
   7391     BIND_OPTS2 *pbindopts);
   7392 void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub(
   7393     IRpcStubBuffer* This,
   7394     IRpcChannelBuffer* pRpcChannelBuffer,
   7395     PRPC_MESSAGE pRpcMessage,
   7396     DWORD* pdwStubPhase);
   7397 HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
   7398     IBindCtx* This,
   7399     BIND_OPTS *pbindopts);
   7400 HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
   7401     IBindCtx* This,
   7402     BIND_OPTS2 *pbindopts);
   7403 HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
   7404     IBindCtx* This,
   7405     BIND_OPTS *pbindopts);
   7406 HRESULT __RPC_STUB IBindCtx_GetBindOptions_Stub(
   7407     IBindCtx* This,
   7408     BIND_OPTS2 *pbindopts);
   7409 
   7410 #endif  /* __IBindCtx_INTERFACE_DEFINED__ */
   7411 
   7412 /*****************************************************************************
   7413  * IEnumMoniker interface
   7414  */
   7415 #ifndef __IEnumMoniker_INTERFACE_DEFINED__
   7416 #define __IEnumMoniker_INTERFACE_DEFINED__
   7417 
   7418 typedef IEnumMoniker *LPENUMMONIKER;
   7419 DEFINE_GUID(IID_IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   7420 #if defined(__cplusplus) && !defined(CINTERFACE)
   7421 MIDL_INTERFACE("00000102-0000-0000-c000-000000000046")
   7422 IEnumMoniker : public IUnknown
   7423 {
   7424     virtual HRESULT STDMETHODCALLTYPE Next(
   7425         ULONG celt,
   7426         IMoniker **rgelt,
   7427         ULONG *pceltFetched) = 0;
   7428 
   7429     virtual HRESULT STDMETHODCALLTYPE Skip(
   7430         ULONG celt) = 0;
   7431 
   7432     virtual HRESULT STDMETHODCALLTYPE Reset(
   7433         ) = 0;
   7434 
   7435     virtual HRESULT STDMETHODCALLTYPE Clone(
   7436         IEnumMoniker **ppenum) = 0;
   7437 
   7438 };
   7439 #ifdef __CRT_UUID_DECL
   7440 __CRT_UUID_DECL(IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   7441 #endif
   7442 #else
   7443 typedef struct IEnumMonikerVtbl {
   7444     BEGIN_INTERFACE
   7445 
   7446     /*** IUnknown methods ***/
   7447     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7448         IEnumMoniker *This,
   7449         REFIID riid,
   7450         void **ppvObject);
   7451 
   7452     ULONG (STDMETHODCALLTYPE *AddRef)(
   7453         IEnumMoniker *This);
   7454 
   7455     ULONG (STDMETHODCALLTYPE *Release)(
   7456         IEnumMoniker *This);
   7457 
   7458     /*** IEnumMoniker methods ***/
   7459     HRESULT (STDMETHODCALLTYPE *Next)(
   7460         IEnumMoniker *This,
   7461         ULONG celt,
   7462         IMoniker **rgelt,
   7463         ULONG *pceltFetched);
   7464 
   7465     HRESULT (STDMETHODCALLTYPE *Skip)(
   7466         IEnumMoniker *This,
   7467         ULONG celt);
   7468 
   7469     HRESULT (STDMETHODCALLTYPE *Reset)(
   7470         IEnumMoniker *This);
   7471 
   7472     HRESULT (STDMETHODCALLTYPE *Clone)(
   7473         IEnumMoniker *This,
   7474         IEnumMoniker **ppenum);
   7475 
   7476     END_INTERFACE
   7477 } IEnumMonikerVtbl;
   7478 
   7479 interface IEnumMoniker {
   7480     CONST_VTBL IEnumMonikerVtbl* lpVtbl;
   7481 };
   7482 
   7483 #ifdef COBJMACROS
   7484 #ifndef WIDL_C_INLINE_WRAPPERS
   7485 /*** IUnknown methods ***/
   7486 #define IEnumMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7487 #define IEnumMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
   7488 #define IEnumMoniker_Release(This) (This)->lpVtbl->Release(This)
   7489 /*** IEnumMoniker methods ***/
   7490 #define IEnumMoniker_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   7491 #define IEnumMoniker_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   7492 #define IEnumMoniker_Reset(This) (This)->lpVtbl->Reset(This)
   7493 #define IEnumMoniker_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   7494 #else
   7495 /*** IUnknown methods ***/
   7496 static inline HRESULT IEnumMoniker_QueryInterface(IEnumMoniker* This,REFIID riid,void **ppvObject) {
   7497     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7498 }
   7499 static inline ULONG IEnumMoniker_AddRef(IEnumMoniker* This) {
   7500     return This->lpVtbl->AddRef(This);
   7501 }
   7502 static inline ULONG IEnumMoniker_Release(IEnumMoniker* This) {
   7503     return This->lpVtbl->Release(This);
   7504 }
   7505 /*** IEnumMoniker methods ***/
   7506 static inline HRESULT IEnumMoniker_Next(IEnumMoniker* This,ULONG celt,IMoniker **rgelt,ULONG *pceltFetched) {
   7507     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   7508 }
   7509 static inline HRESULT IEnumMoniker_Skip(IEnumMoniker* This,ULONG celt) {
   7510     return This->lpVtbl->Skip(This,celt);
   7511 }
   7512 static inline HRESULT IEnumMoniker_Reset(IEnumMoniker* This) {
   7513     return This->lpVtbl->Reset(This);
   7514 }
   7515 static inline HRESULT IEnumMoniker_Clone(IEnumMoniker* This,IEnumMoniker **ppenum) {
   7516     return This->lpVtbl->Clone(This,ppenum);
   7517 }
   7518 #endif
   7519 #endif
   7520 
   7521 #endif
   7522 
   7523 HRESULT STDMETHODCALLTYPE IEnumMoniker_RemoteNext_Proxy(
   7524     IEnumMoniker* This,
   7525     ULONG celt,
   7526     IMoniker **rgelt,
   7527     ULONG *pceltFetched);
   7528 void __RPC_STUB IEnumMoniker_RemoteNext_Stub(
   7529     IRpcStubBuffer* This,
   7530     IRpcChannelBuffer* pRpcChannelBuffer,
   7531     PRPC_MESSAGE pRpcMessage,
   7532     DWORD* pdwStubPhase);
   7533 HRESULT CALLBACK IEnumMoniker_Next_Proxy(
   7534     IEnumMoniker* This,
   7535     ULONG celt,
   7536     IMoniker **rgelt,
   7537     ULONG *pceltFetched);
   7538 HRESULT __RPC_STUB IEnumMoniker_Next_Stub(
   7539     IEnumMoniker* This,
   7540     ULONG celt,
   7541     IMoniker **rgelt,
   7542     ULONG *pceltFetched);
   7543 
   7544 #endif  /* __IEnumMoniker_INTERFACE_DEFINED__ */
   7545 
   7546 #endif
   7547 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   7548 /*****************************************************************************
   7549  * IRunnableObject interface
   7550  */
   7551 #ifndef __IRunnableObject_INTERFACE_DEFINED__
   7552 #define __IRunnableObject_INTERFACE_DEFINED__
   7553 
   7554 typedef IRunnableObject *LPRUNNABLEOBJECT;
   7555 DEFINE_GUID(IID_IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   7556 #if defined(__cplusplus) && !defined(CINTERFACE)
   7557 MIDL_INTERFACE("00000126-0000-0000-c000-000000000046")
   7558 IRunnableObject : public IUnknown
   7559 {
   7560     virtual HRESULT STDMETHODCALLTYPE GetRunningClass(
   7561         LPCLSID lpClsid) = 0;
   7562 
   7563     virtual HRESULT STDMETHODCALLTYPE Run(
   7564         LPBINDCTX pbc) = 0;
   7565 
   7566     virtual WINBOOL STDMETHODCALLTYPE IsRunning(
   7567         ) = 0;
   7568 
   7569     virtual HRESULT STDMETHODCALLTYPE LockRunning(
   7570         WINBOOL fLock,
   7571         WINBOOL fLastUnlockCloses) = 0;
   7572 
   7573     virtual HRESULT STDMETHODCALLTYPE SetContainedObject(
   7574         WINBOOL fContained) = 0;
   7575 
   7576 };
   7577 #ifdef __CRT_UUID_DECL
   7578 __CRT_UUID_DECL(IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   7579 #endif
   7580 #else
   7581 typedef struct IRunnableObjectVtbl {
   7582     BEGIN_INTERFACE
   7583 
   7584     /*** IUnknown methods ***/
   7585     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7586         IRunnableObject *This,
   7587         REFIID riid,
   7588         void **ppvObject);
   7589 
   7590     ULONG (STDMETHODCALLTYPE *AddRef)(
   7591         IRunnableObject *This);
   7592 
   7593     ULONG (STDMETHODCALLTYPE *Release)(
   7594         IRunnableObject *This);
   7595 
   7596     /*** IRunnableObject methods ***/
   7597     HRESULT (STDMETHODCALLTYPE *GetRunningClass)(
   7598         IRunnableObject *This,
   7599         LPCLSID lpClsid);
   7600 
   7601     HRESULT (STDMETHODCALLTYPE *Run)(
   7602         IRunnableObject *This,
   7603         LPBINDCTX pbc);
   7604 
   7605     WINBOOL (STDMETHODCALLTYPE *IsRunning)(
   7606         IRunnableObject *This);
   7607 
   7608     HRESULT (STDMETHODCALLTYPE *LockRunning)(
   7609         IRunnableObject *This,
   7610         WINBOOL fLock,
   7611         WINBOOL fLastUnlockCloses);
   7612 
   7613     HRESULT (STDMETHODCALLTYPE *SetContainedObject)(
   7614         IRunnableObject *This,
   7615         WINBOOL fContained);
   7616 
   7617     END_INTERFACE
   7618 } IRunnableObjectVtbl;
   7619 
   7620 interface IRunnableObject {
   7621     CONST_VTBL IRunnableObjectVtbl* lpVtbl;
   7622 };
   7623 
   7624 #ifdef COBJMACROS
   7625 #ifndef WIDL_C_INLINE_WRAPPERS
   7626 /*** IUnknown methods ***/
   7627 #define IRunnableObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7628 #define IRunnableObject_AddRef(This) (This)->lpVtbl->AddRef(This)
   7629 #define IRunnableObject_Release(This) (This)->lpVtbl->Release(This)
   7630 /*** IRunnableObject methods ***/
   7631 #define IRunnableObject_GetRunningClass(This,lpClsid) (This)->lpVtbl->GetRunningClass(This,lpClsid)
   7632 #define IRunnableObject_Run(This,pbc) (This)->lpVtbl->Run(This,pbc)
   7633 #define IRunnableObject_IsRunning(This) (This)->lpVtbl->IsRunning(This)
   7634 #define IRunnableObject_LockRunning(This,fLock,fLastUnlockCloses) (This)->lpVtbl->LockRunning(This,fLock,fLastUnlockCloses)
   7635 #define IRunnableObject_SetContainedObject(This,fContained) (This)->lpVtbl->SetContainedObject(This,fContained)
   7636 #else
   7637 /*** IUnknown methods ***/
   7638 static inline HRESULT IRunnableObject_QueryInterface(IRunnableObject* This,REFIID riid,void **ppvObject) {
   7639     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7640 }
   7641 static inline ULONG IRunnableObject_AddRef(IRunnableObject* This) {
   7642     return This->lpVtbl->AddRef(This);
   7643 }
   7644 static inline ULONG IRunnableObject_Release(IRunnableObject* This) {
   7645     return This->lpVtbl->Release(This);
   7646 }
   7647 /*** IRunnableObject methods ***/
   7648 static inline HRESULT IRunnableObject_GetRunningClass(IRunnableObject* This,LPCLSID lpClsid) {
   7649     return This->lpVtbl->GetRunningClass(This,lpClsid);
   7650 }
   7651 static inline HRESULT IRunnableObject_Run(IRunnableObject* This,LPBINDCTX pbc) {
   7652     return This->lpVtbl->Run(This,pbc);
   7653 }
   7654 static inline WINBOOL IRunnableObject_IsRunning(IRunnableObject* This) {
   7655     return This->lpVtbl->IsRunning(This);
   7656 }
   7657 static inline HRESULT IRunnableObject_LockRunning(IRunnableObject* This,WINBOOL fLock,WINBOOL fLastUnlockCloses) {
   7658     return This->lpVtbl->LockRunning(This,fLock,fLastUnlockCloses);
   7659 }
   7660 static inline HRESULT IRunnableObject_SetContainedObject(IRunnableObject* This,WINBOOL fContained) {
   7661     return This->lpVtbl->SetContainedObject(This,fContained);
   7662 }
   7663 #endif
   7664 #endif
   7665 
   7666 #endif
   7667 
   7668 HRESULT STDMETHODCALLTYPE IRunnableObject_RemoteIsRunning_Proxy(
   7669     IRunnableObject* This);
   7670 void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
   7671     IRpcStubBuffer* This,
   7672     IRpcChannelBuffer* pRpcChannelBuffer,
   7673     PRPC_MESSAGE pRpcMessage,
   7674     DWORD* pdwStubPhase);
   7675 WINBOOL CALLBACK IRunnableObject_IsRunning_Proxy(
   7676     IRunnableObject* This);
   7677 HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
   7678     IRunnableObject* This);
   7679 
   7680 #endif  /* __IRunnableObject_INTERFACE_DEFINED__ */
   7681 
   7682 /*****************************************************************************
   7683  * IRunningObjectTable interface
   7684  */
   7685 #ifndef __IRunningObjectTable_INTERFACE_DEFINED__
   7686 #define __IRunningObjectTable_INTERFACE_DEFINED__
   7687 
   7688 typedef IRunningObjectTable *LPRUNNINGOBJECTTABLE;
   7689 DEFINE_GUID(IID_IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   7690 #if defined(__cplusplus) && !defined(CINTERFACE)
   7691 MIDL_INTERFACE("00000010-0000-0000-c000-000000000046")
   7692 IRunningObjectTable : public IUnknown
   7693 {
   7694     virtual HRESULT STDMETHODCALLTYPE Register(
   7695         DWORD grfFlags,
   7696         IUnknown *punkObject,
   7697         IMoniker *pmkObjectName,
   7698         DWORD *pdwRegister) = 0;
   7699 
   7700     virtual HRESULT STDMETHODCALLTYPE Revoke(
   7701         DWORD dwRegister) = 0;
   7702 
   7703     virtual HRESULT STDMETHODCALLTYPE IsRunning(
   7704         IMoniker *pmkObjectName) = 0;
   7705 
   7706     virtual HRESULT STDMETHODCALLTYPE GetObject(
   7707         IMoniker *pmkObjectName,
   7708         IUnknown **ppunkObject) = 0;
   7709 
   7710     virtual HRESULT STDMETHODCALLTYPE NoteChangeTime(
   7711         DWORD dwRegister,
   7712         FILETIME *pfiletime) = 0;
   7713 
   7714     virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
   7715         IMoniker *pmkObjectName,
   7716         FILETIME *pfiletime) = 0;
   7717 
   7718     virtual HRESULT STDMETHODCALLTYPE EnumRunning(
   7719         IEnumMoniker **ppenumMoniker) = 0;
   7720 
   7721 };
   7722 #ifdef __CRT_UUID_DECL
   7723 __CRT_UUID_DECL(IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   7724 #endif
   7725 #else
   7726 typedef struct IRunningObjectTableVtbl {
   7727     BEGIN_INTERFACE
   7728 
   7729     /*** IUnknown methods ***/
   7730     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7731         IRunningObjectTable *This,
   7732         REFIID riid,
   7733         void **ppvObject);
   7734 
   7735     ULONG (STDMETHODCALLTYPE *AddRef)(
   7736         IRunningObjectTable *This);
   7737 
   7738     ULONG (STDMETHODCALLTYPE *Release)(
   7739         IRunningObjectTable *This);
   7740 
   7741     /*** IRunningObjectTable methods ***/
   7742     HRESULT (STDMETHODCALLTYPE *Register)(
   7743         IRunningObjectTable *This,
   7744         DWORD grfFlags,
   7745         IUnknown *punkObject,
   7746         IMoniker *pmkObjectName,
   7747         DWORD *pdwRegister);
   7748 
   7749     HRESULT (STDMETHODCALLTYPE *Revoke)(
   7750         IRunningObjectTable *This,
   7751         DWORD dwRegister);
   7752 
   7753     HRESULT (STDMETHODCALLTYPE *IsRunning)(
   7754         IRunningObjectTable *This,
   7755         IMoniker *pmkObjectName);
   7756 
   7757     HRESULT (STDMETHODCALLTYPE *GetObject)(
   7758         IRunningObjectTable *This,
   7759         IMoniker *pmkObjectName,
   7760         IUnknown **ppunkObject);
   7761 
   7762     HRESULT (STDMETHODCALLTYPE *NoteChangeTime)(
   7763         IRunningObjectTable *This,
   7764         DWORD dwRegister,
   7765         FILETIME *pfiletime);
   7766 
   7767     HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
   7768         IRunningObjectTable *This,
   7769         IMoniker *pmkObjectName,
   7770         FILETIME *pfiletime);
   7771 
   7772     HRESULT (STDMETHODCALLTYPE *EnumRunning)(
   7773         IRunningObjectTable *This,
   7774         IEnumMoniker **ppenumMoniker);
   7775 
   7776     END_INTERFACE
   7777 } IRunningObjectTableVtbl;
   7778 
   7779 interface IRunningObjectTable {
   7780     CONST_VTBL IRunningObjectTableVtbl* lpVtbl;
   7781 };
   7782 
   7783 #ifdef COBJMACROS
   7784 #ifndef WIDL_C_INLINE_WRAPPERS
   7785 /*** IUnknown methods ***/
   7786 #define IRunningObjectTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7787 #define IRunningObjectTable_AddRef(This) (This)->lpVtbl->AddRef(This)
   7788 #define IRunningObjectTable_Release(This) (This)->lpVtbl->Release(This)
   7789 /*** IRunningObjectTable methods ***/
   7790 #define IRunningObjectTable_Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister) (This)->lpVtbl->Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister)
   7791 #define IRunningObjectTable_Revoke(This,dwRegister) (This)->lpVtbl->Revoke(This,dwRegister)
   7792 #define IRunningObjectTable_IsRunning(This,pmkObjectName) (This)->lpVtbl->IsRunning(This,pmkObjectName)
   7793 #define IRunningObjectTable_GetObject(This,pmkObjectName,ppunkObject) (This)->lpVtbl->GetObject(This,pmkObjectName,ppunkObject)
   7794 #define IRunningObjectTable_NoteChangeTime(This,dwRegister,pfiletime) (This)->lpVtbl->NoteChangeTime(This,dwRegister,pfiletime)
   7795 #define IRunningObjectTable_GetTimeOfLastChange(This,pmkObjectName,pfiletime) (This)->lpVtbl->GetTimeOfLastChange(This,pmkObjectName,pfiletime)
   7796 #define IRunningObjectTable_EnumRunning(This,ppenumMoniker) (This)->lpVtbl->EnumRunning(This,ppenumMoniker)
   7797 #else
   7798 /*** IUnknown methods ***/
   7799 static inline HRESULT IRunningObjectTable_QueryInterface(IRunningObjectTable* This,REFIID riid,void **ppvObject) {
   7800     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7801 }
   7802 static inline ULONG IRunningObjectTable_AddRef(IRunningObjectTable* This) {
   7803     return This->lpVtbl->AddRef(This);
   7804 }
   7805 static inline ULONG IRunningObjectTable_Release(IRunningObjectTable* This) {
   7806     return This->lpVtbl->Release(This);
   7807 }
   7808 /*** IRunningObjectTable methods ***/
   7809 static inline HRESULT IRunningObjectTable_Register(IRunningObjectTable* This,DWORD grfFlags,IUnknown *punkObject,IMoniker *pmkObjectName,DWORD *pdwRegister) {
   7810     return This->lpVtbl->Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister);
   7811 }
   7812 static inline HRESULT IRunningObjectTable_Revoke(IRunningObjectTable* This,DWORD dwRegister) {
   7813     return This->lpVtbl->Revoke(This,dwRegister);
   7814 }
   7815 static inline HRESULT IRunningObjectTable_IsRunning(IRunningObjectTable* This,IMoniker *pmkObjectName) {
   7816     return This->lpVtbl->IsRunning(This,pmkObjectName);
   7817 }
   7818 static inline HRESULT IRunningObjectTable_GetObject(IRunningObjectTable* This,IMoniker *pmkObjectName,IUnknown **ppunkObject) {
   7819     return This->lpVtbl->GetObject(This,pmkObjectName,ppunkObject);
   7820 }
   7821 static inline HRESULT IRunningObjectTable_NoteChangeTime(IRunningObjectTable* This,DWORD dwRegister,FILETIME *pfiletime) {
   7822     return This->lpVtbl->NoteChangeTime(This,dwRegister,pfiletime);
   7823 }
   7824 static inline HRESULT IRunningObjectTable_GetTimeOfLastChange(IRunningObjectTable* This,IMoniker *pmkObjectName,FILETIME *pfiletime) {
   7825     return This->lpVtbl->GetTimeOfLastChange(This,pmkObjectName,pfiletime);
   7826 }
   7827 static inline HRESULT IRunningObjectTable_EnumRunning(IRunningObjectTable* This,IEnumMoniker **ppenumMoniker) {
   7828     return This->lpVtbl->EnumRunning(This,ppenumMoniker);
   7829 }
   7830 #endif
   7831 #endif
   7832 
   7833 #endif
   7834 
   7835 
   7836 #endif  /* __IRunningObjectTable_INTERFACE_DEFINED__ */
   7837 
   7838 #endif
   7839 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   7840 /*****************************************************************************
   7841  * IPersist interface
   7842  */
   7843 #ifndef __IPersist_INTERFACE_DEFINED__
   7844 #define __IPersist_INTERFACE_DEFINED__
   7845 
   7846 typedef IPersist *LPPERSIST;
   7847 DEFINE_GUID(IID_IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   7848 #if defined(__cplusplus) && !defined(CINTERFACE)
   7849 MIDL_INTERFACE("0000010c-0000-0000-c000-000000000046")
   7850 IPersist : public IUnknown
   7851 {
   7852     virtual HRESULT STDMETHODCALLTYPE GetClassID(
   7853         CLSID *pClassID) = 0;
   7854 
   7855 };
   7856 #ifdef __CRT_UUID_DECL
   7857 __CRT_UUID_DECL(IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   7858 #endif
   7859 #else
   7860 typedef struct IPersistVtbl {
   7861     BEGIN_INTERFACE
   7862 
   7863     /*** IUnknown methods ***/
   7864     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7865         IPersist *This,
   7866         REFIID riid,
   7867         void **ppvObject);
   7868 
   7869     ULONG (STDMETHODCALLTYPE *AddRef)(
   7870         IPersist *This);
   7871 
   7872     ULONG (STDMETHODCALLTYPE *Release)(
   7873         IPersist *This);
   7874 
   7875     /*** IPersist methods ***/
   7876     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   7877         IPersist *This,
   7878         CLSID *pClassID);
   7879 
   7880     END_INTERFACE
   7881 } IPersistVtbl;
   7882 
   7883 interface IPersist {
   7884     CONST_VTBL IPersistVtbl* lpVtbl;
   7885 };
   7886 
   7887 #ifdef COBJMACROS
   7888 #ifndef WIDL_C_INLINE_WRAPPERS
   7889 /*** IUnknown methods ***/
   7890 #define IPersist_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7891 #define IPersist_AddRef(This) (This)->lpVtbl->AddRef(This)
   7892 #define IPersist_Release(This) (This)->lpVtbl->Release(This)
   7893 /*** IPersist methods ***/
   7894 #define IPersist_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   7895 #else
   7896 /*** IUnknown methods ***/
   7897 static inline HRESULT IPersist_QueryInterface(IPersist* This,REFIID riid,void **ppvObject) {
   7898     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7899 }
   7900 static inline ULONG IPersist_AddRef(IPersist* This) {
   7901     return This->lpVtbl->AddRef(This);
   7902 }
   7903 static inline ULONG IPersist_Release(IPersist* This) {
   7904     return This->lpVtbl->Release(This);
   7905 }
   7906 /*** IPersist methods ***/
   7907 static inline HRESULT IPersist_GetClassID(IPersist* This,CLSID *pClassID) {
   7908     return This->lpVtbl->GetClassID(This,pClassID);
   7909 }
   7910 #endif
   7911 #endif
   7912 
   7913 #endif
   7914 
   7915 
   7916 #endif  /* __IPersist_INTERFACE_DEFINED__ */
   7917 
   7918 /*****************************************************************************
   7919  * IPersistStream interface
   7920  */
   7921 #ifndef __IPersistStream_INTERFACE_DEFINED__
   7922 #define __IPersistStream_INTERFACE_DEFINED__
   7923 
   7924 typedef IPersistStream *LPPERSISTSTREAM;
   7925 DEFINE_GUID(IID_IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   7926 #if defined(__cplusplus) && !defined(CINTERFACE)
   7927 MIDL_INTERFACE("00000109-0000-0000-c000-000000000046")
   7928 IPersistStream : public IPersist
   7929 {
   7930     virtual HRESULT STDMETHODCALLTYPE IsDirty(
   7931         ) = 0;
   7932 
   7933     virtual HRESULT STDMETHODCALLTYPE Load(
   7934         IStream *pStm) = 0;
   7935 
   7936     virtual HRESULT STDMETHODCALLTYPE Save(
   7937         IStream *pStm,
   7938         WINBOOL fClearDirty) = 0;
   7939 
   7940     virtual HRESULT STDMETHODCALLTYPE GetSizeMax(
   7941         ULARGE_INTEGER *pcbSize) = 0;
   7942 
   7943 };
   7944 #ifdef __CRT_UUID_DECL
   7945 __CRT_UUID_DECL(IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   7946 #endif
   7947 #else
   7948 typedef struct IPersistStreamVtbl {
   7949     BEGIN_INTERFACE
   7950 
   7951     /*** IUnknown methods ***/
   7952     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7953         IPersistStream *This,
   7954         REFIID riid,
   7955         void **ppvObject);
   7956 
   7957     ULONG (STDMETHODCALLTYPE *AddRef)(
   7958         IPersistStream *This);
   7959 
   7960     ULONG (STDMETHODCALLTYPE *Release)(
   7961         IPersistStream *This);
   7962 
   7963     /*** IPersist methods ***/
   7964     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   7965         IPersistStream *This,
   7966         CLSID *pClassID);
   7967 
   7968     /*** IPersistStream methods ***/
   7969     HRESULT (STDMETHODCALLTYPE *IsDirty)(
   7970         IPersistStream *This);
   7971 
   7972     HRESULT (STDMETHODCALLTYPE *Load)(
   7973         IPersistStream *This,
   7974         IStream *pStm);
   7975 
   7976     HRESULT (STDMETHODCALLTYPE *Save)(
   7977         IPersistStream *This,
   7978         IStream *pStm,
   7979         WINBOOL fClearDirty);
   7980 
   7981     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
   7982         IPersistStream *This,
   7983         ULARGE_INTEGER *pcbSize);
   7984 
   7985     END_INTERFACE
   7986 } IPersistStreamVtbl;
   7987 
   7988 interface IPersistStream {
   7989     CONST_VTBL IPersistStreamVtbl* lpVtbl;
   7990 };
   7991 
   7992 #ifdef COBJMACROS
   7993 #ifndef WIDL_C_INLINE_WRAPPERS
   7994 /*** IUnknown methods ***/
   7995 #define IPersistStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7996 #define IPersistStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   7997 #define IPersistStream_Release(This) (This)->lpVtbl->Release(This)
   7998 /*** IPersist methods ***/
   7999 #define IPersistStream_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   8000 /*** IPersistStream methods ***/
   8001 #define IPersistStream_IsDirty(This) (This)->lpVtbl->IsDirty(This)
   8002 #define IPersistStream_Load(This,pStm) (This)->lpVtbl->Load(This,pStm)
   8003 #define IPersistStream_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty)
   8004 #define IPersistStream_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize)
   8005 #else
   8006 /*** IUnknown methods ***/
   8007 static inline HRESULT IPersistStream_QueryInterface(IPersistStream* This,REFIID riid,void **ppvObject) {
   8008     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8009 }
   8010 static inline ULONG IPersistStream_AddRef(IPersistStream* This) {
   8011     return This->lpVtbl->AddRef(This);
   8012 }
   8013 static inline ULONG IPersistStream_Release(IPersistStream* This) {
   8014     return This->lpVtbl->Release(This);
   8015 }
   8016 /*** IPersist methods ***/
   8017 static inline HRESULT IPersistStream_GetClassID(IPersistStream* This,CLSID *pClassID) {
   8018     return This->lpVtbl->GetClassID(This,pClassID);
   8019 }
   8020 /*** IPersistStream methods ***/
   8021 static inline HRESULT IPersistStream_IsDirty(IPersistStream* This) {
   8022     return This->lpVtbl->IsDirty(This);
   8023 }
   8024 static inline HRESULT IPersistStream_Load(IPersistStream* This,IStream *pStm) {
   8025     return This->lpVtbl->Load(This,pStm);
   8026 }
   8027 static inline HRESULT IPersistStream_Save(IPersistStream* This,IStream *pStm,WINBOOL fClearDirty) {
   8028     return This->lpVtbl->Save(This,pStm,fClearDirty);
   8029 }
   8030 static inline HRESULT IPersistStream_GetSizeMax(IPersistStream* This,ULARGE_INTEGER *pcbSize) {
   8031     return This->lpVtbl->GetSizeMax(This,pcbSize);
   8032 }
   8033 #endif
   8034 #endif
   8035 
   8036 #endif
   8037 
   8038 
   8039 #endif  /* __IPersistStream_INTERFACE_DEFINED__ */
   8040 
   8041 /*****************************************************************************
   8042  * IMoniker interface
   8043  */
   8044 #ifndef __IMoniker_INTERFACE_DEFINED__
   8045 #define __IMoniker_INTERFACE_DEFINED__
   8046 
   8047 typedef IMoniker *LPMONIKER;
   8048 typedef enum tagMKSYS {
   8049     MKSYS_NONE = 0,
   8050     MKSYS_GENERICCOMPOSITE = 1,
   8051     MKSYS_FILEMONIKER = 2,
   8052     MKSYS_ANTIMONIKER = 3,
   8053     MKSYS_ITEMMONIKER = 4,
   8054     MKSYS_POINTERMONIKER = 5,
   8055     MKSYS_CLASSMONIKER = 7,
   8056     MKSYS_OBJREFMONIKER = 8,
   8057     MKSYS_SESSIONMONIKER = 9,
   8058     MKSYS_LUAMONIKER = 10
   8059 } MKSYS;
   8060 typedef enum tagMKREDUCE {
   8061     MKRREDUCE_ONE = 3 << 16,
   8062     MKRREDUCE_TOUSER = 2 << 16,
   8063     MKRREDUCE_THROUGHUSER = 1 << 16,
   8064     MKRREDUCE_ALL = 0
   8065 } MKRREDUCE;
   8066 DEFINE_GUID(IID_IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   8067 #if defined(__cplusplus) && !defined(CINTERFACE)
   8068 MIDL_INTERFACE("0000000f-0000-0000-c000-000000000046")
   8069 IMoniker : public IPersistStream
   8070 {
   8071     virtual HRESULT STDMETHODCALLTYPE BindToObject(
   8072         IBindCtx *pbc,
   8073         IMoniker *pmkToLeft,
   8074         REFIID riidResult,
   8075         void **ppvResult) = 0;
   8076 
   8077     virtual HRESULT STDMETHODCALLTYPE BindToStorage(
   8078         IBindCtx *pbc,
   8079         IMoniker *pmkToLeft,
   8080         REFIID riid,
   8081         void **ppvObj) = 0;
   8082 
   8083     virtual HRESULT STDMETHODCALLTYPE Reduce(
   8084         IBindCtx *pbc,
   8085         DWORD dwReduceHowFar,
   8086         IMoniker **ppmkToLeft,
   8087         IMoniker **ppmkReduced) = 0;
   8088 
   8089     virtual HRESULT STDMETHODCALLTYPE ComposeWith(
   8090         IMoniker *pmkRight,
   8091         WINBOOL fOnlyIfNotGeneric,
   8092         IMoniker **ppmkComposite) = 0;
   8093 
   8094     virtual HRESULT STDMETHODCALLTYPE Enum(
   8095         WINBOOL fForward,
   8096         IEnumMoniker **ppenumMoniker) = 0;
   8097 
   8098     virtual HRESULT STDMETHODCALLTYPE IsEqual(
   8099         IMoniker *pmkOtherMoniker) = 0;
   8100 
   8101     virtual HRESULT STDMETHODCALLTYPE Hash(
   8102         DWORD *pdwHash) = 0;
   8103 
   8104     virtual HRESULT STDMETHODCALLTYPE IsRunning(
   8105         IBindCtx *pbc,
   8106         IMoniker *pmkToLeft,
   8107         IMoniker *pmkNewlyRunning) = 0;
   8108 
   8109     virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
   8110         IBindCtx *pbc,
   8111         IMoniker *pmkToLeft,
   8112         FILETIME *pFileTime) = 0;
   8113 
   8114     virtual HRESULT STDMETHODCALLTYPE Inverse(
   8115         IMoniker **ppmk) = 0;
   8116 
   8117     virtual HRESULT STDMETHODCALLTYPE CommonPrefixWith(
   8118         IMoniker *pmkOther,
   8119         IMoniker **ppmkPrefix) = 0;
   8120 
   8121     virtual HRESULT STDMETHODCALLTYPE RelativePathTo(
   8122         IMoniker *pmkOther,
   8123         IMoniker **ppmkRelPath) = 0;
   8124 
   8125     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
   8126         IBindCtx *pbc,
   8127         IMoniker *pmkToLeft,
   8128         LPOLESTR *ppszDisplayName) = 0;
   8129 
   8130     virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
   8131         IBindCtx *pbc,
   8132         IMoniker *pmkToLeft,
   8133         LPOLESTR pszDisplayName,
   8134         ULONG *pchEaten,
   8135         IMoniker **ppmkOut) = 0;
   8136 
   8137     virtual HRESULT STDMETHODCALLTYPE IsSystemMoniker(
   8138         DWORD *pdwMksys) = 0;
   8139 
   8140 };
   8141 #ifdef __CRT_UUID_DECL
   8142 __CRT_UUID_DECL(IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   8143 #endif
   8144 #else
   8145 typedef struct IMonikerVtbl {
   8146     BEGIN_INTERFACE
   8147 
   8148     /*** IUnknown methods ***/
   8149     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8150         IMoniker *This,
   8151         REFIID riid,
   8152         void **ppvObject);
   8153 
   8154     ULONG (STDMETHODCALLTYPE *AddRef)(
   8155         IMoniker *This);
   8156 
   8157     ULONG (STDMETHODCALLTYPE *Release)(
   8158         IMoniker *This);
   8159 
   8160     /*** IPersist methods ***/
   8161     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   8162         IMoniker *This,
   8163         CLSID *pClassID);
   8164 
   8165     /*** IPersistStream methods ***/
   8166     HRESULT (STDMETHODCALLTYPE *IsDirty)(
   8167         IMoniker *This);
   8168 
   8169     HRESULT (STDMETHODCALLTYPE *Load)(
   8170         IMoniker *This,
   8171         IStream *pStm);
   8172 
   8173     HRESULT (STDMETHODCALLTYPE *Save)(
   8174         IMoniker *This,
   8175         IStream *pStm,
   8176         WINBOOL fClearDirty);
   8177 
   8178     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
   8179         IMoniker *This,
   8180         ULARGE_INTEGER *pcbSize);
   8181 
   8182     /*** IMoniker methods ***/
   8183     HRESULT (STDMETHODCALLTYPE *BindToObject)(
   8184         IMoniker *This,
   8185         IBindCtx *pbc,
   8186         IMoniker *pmkToLeft,
   8187         REFIID riidResult,
   8188         void **ppvResult);
   8189 
   8190     HRESULT (STDMETHODCALLTYPE *BindToStorage)(
   8191         IMoniker *This,
   8192         IBindCtx *pbc,
   8193         IMoniker *pmkToLeft,
   8194         REFIID riid,
   8195         void **ppvObj);
   8196 
   8197     HRESULT (STDMETHODCALLTYPE *Reduce)(
   8198         IMoniker *This,
   8199         IBindCtx *pbc,
   8200         DWORD dwReduceHowFar,
   8201         IMoniker **ppmkToLeft,
   8202         IMoniker **ppmkReduced);
   8203 
   8204     HRESULT (STDMETHODCALLTYPE *ComposeWith)(
   8205         IMoniker *This,
   8206         IMoniker *pmkRight,
   8207         WINBOOL fOnlyIfNotGeneric,
   8208         IMoniker **ppmkComposite);
   8209 
   8210     HRESULT (STDMETHODCALLTYPE *Enum)(
   8211         IMoniker *This,
   8212         WINBOOL fForward,
   8213         IEnumMoniker **ppenumMoniker);
   8214 
   8215     HRESULT (STDMETHODCALLTYPE *IsEqual)(
   8216         IMoniker *This,
   8217         IMoniker *pmkOtherMoniker);
   8218 
   8219     HRESULT (STDMETHODCALLTYPE *Hash)(
   8220         IMoniker *This,
   8221         DWORD *pdwHash);
   8222 
   8223     HRESULT (STDMETHODCALLTYPE *IsRunning)(
   8224         IMoniker *This,
   8225         IBindCtx *pbc,
   8226         IMoniker *pmkToLeft,
   8227         IMoniker *pmkNewlyRunning);
   8228 
   8229     HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
   8230         IMoniker *This,
   8231         IBindCtx *pbc,
   8232         IMoniker *pmkToLeft,
   8233         FILETIME *pFileTime);
   8234 
   8235     HRESULT (STDMETHODCALLTYPE *Inverse)(
   8236         IMoniker *This,
   8237         IMoniker **ppmk);
   8238 
   8239     HRESULT (STDMETHODCALLTYPE *CommonPrefixWith)(
   8240         IMoniker *This,
   8241         IMoniker *pmkOther,
   8242         IMoniker **ppmkPrefix);
   8243 
   8244     HRESULT (STDMETHODCALLTYPE *RelativePathTo)(
   8245         IMoniker *This,
   8246         IMoniker *pmkOther,
   8247         IMoniker **ppmkRelPath);
   8248 
   8249     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
   8250         IMoniker *This,
   8251         IBindCtx *pbc,
   8252         IMoniker *pmkToLeft,
   8253         LPOLESTR *ppszDisplayName);
   8254 
   8255     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
   8256         IMoniker *This,
   8257         IBindCtx *pbc,
   8258         IMoniker *pmkToLeft,
   8259         LPOLESTR pszDisplayName,
   8260         ULONG *pchEaten,
   8261         IMoniker **ppmkOut);
   8262 
   8263     HRESULT (STDMETHODCALLTYPE *IsSystemMoniker)(
   8264         IMoniker *This,
   8265         DWORD *pdwMksys);
   8266 
   8267     END_INTERFACE
   8268 } IMonikerVtbl;
   8269 
   8270 interface IMoniker {
   8271     CONST_VTBL IMonikerVtbl* lpVtbl;
   8272 };
   8273 
   8274 #ifdef COBJMACROS
   8275 #ifndef WIDL_C_INLINE_WRAPPERS
   8276 /*** IUnknown methods ***/
   8277 #define IMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8278 #define IMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
   8279 #define IMoniker_Release(This) (This)->lpVtbl->Release(This)
   8280 /*** IPersist methods ***/
   8281 #define IMoniker_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   8282 /*** IPersistStream methods ***/
   8283 #define IMoniker_IsDirty(This) (This)->lpVtbl->IsDirty(This)
   8284 #define IMoniker_Load(This,pStm) (This)->lpVtbl->Load(This,pStm)
   8285 #define IMoniker_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty)
   8286 #define IMoniker_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize)
   8287 /*** IMoniker methods ***/
   8288 #define IMoniker_BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult) (This)->lpVtbl->BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult)
   8289 #define IMoniker_BindToStorage(This,pbc,pmkToLeft,riid,ppvObj) (This)->lpVtbl->BindToStorage(This,pbc,pmkToLeft,riid,ppvObj)
   8290 #define IMoniker_Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced) (This)->lpVtbl->Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced)
   8291 #define IMoniker_ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite) (This)->lpVtbl->ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite)
   8292 #define IMoniker_Enum(This,fForward,ppenumMoniker) (This)->lpVtbl->Enum(This,fForward,ppenumMoniker)
   8293 #define IMoniker_IsEqual(This,pmkOtherMoniker) (This)->lpVtbl->IsEqual(This,pmkOtherMoniker)
   8294 #define IMoniker_Hash(This,pdwHash) (This)->lpVtbl->Hash(This,pdwHash)
   8295 #define IMoniker_IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning) (This)->lpVtbl->IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning)
   8296 #define IMoniker_GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime) (This)->lpVtbl->GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime)
   8297 #define IMoniker_Inverse(This,ppmk) (This)->lpVtbl->Inverse(This,ppmk)
   8298 #define IMoniker_CommonPrefixWith(This,pmkOther,ppmkPrefix) (This)->lpVtbl->CommonPrefixWith(This,pmkOther,ppmkPrefix)
   8299 #define IMoniker_RelativePathTo(This,pmkOther,ppmkRelPath) (This)->lpVtbl->RelativePathTo(This,pmkOther,ppmkRelPath)
   8300 #define IMoniker_GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName) (This)->lpVtbl->GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName)
   8301 #define IMoniker_ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut) (This)->lpVtbl->ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut)
   8302 #define IMoniker_IsSystemMoniker(This,pdwMksys) (This)->lpVtbl->IsSystemMoniker(This,pdwMksys)
   8303 #else
   8304 /*** IUnknown methods ***/
   8305 static inline HRESULT IMoniker_QueryInterface(IMoniker* This,REFIID riid,void **ppvObject) {
   8306     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8307 }
   8308 static inline ULONG IMoniker_AddRef(IMoniker* This) {
   8309     return This->lpVtbl->AddRef(This);
   8310 }
   8311 static inline ULONG IMoniker_Release(IMoniker* This) {
   8312     return This->lpVtbl->Release(This);
   8313 }
   8314 /*** IPersist methods ***/
   8315 static inline HRESULT IMoniker_GetClassID(IMoniker* This,CLSID *pClassID) {
   8316     return This->lpVtbl->GetClassID(This,pClassID);
   8317 }
   8318 /*** IPersistStream methods ***/
   8319 static inline HRESULT IMoniker_IsDirty(IMoniker* This) {
   8320     return This->lpVtbl->IsDirty(This);
   8321 }
   8322 static inline HRESULT IMoniker_Load(IMoniker* This,IStream *pStm) {
   8323     return This->lpVtbl->Load(This,pStm);
   8324 }
   8325 static inline HRESULT IMoniker_Save(IMoniker* This,IStream *pStm,WINBOOL fClearDirty) {
   8326     return This->lpVtbl->Save(This,pStm,fClearDirty);
   8327 }
   8328 static inline HRESULT IMoniker_GetSizeMax(IMoniker* This,ULARGE_INTEGER *pcbSize) {
   8329     return This->lpVtbl->GetSizeMax(This,pcbSize);
   8330 }
   8331 /*** IMoniker methods ***/
   8332 static inline HRESULT IMoniker_BindToObject(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,REFIID riidResult,void **ppvResult) {
   8333     return This->lpVtbl->BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult);
   8334 }
   8335 static inline HRESULT IMoniker_BindToStorage(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,REFIID riid,void **ppvObj) {
   8336     return This->lpVtbl->BindToStorage(This,pbc,pmkToLeft,riid,ppvObj);
   8337 }
   8338 static inline HRESULT IMoniker_Reduce(IMoniker* This,IBindCtx *pbc,DWORD dwReduceHowFar,IMoniker **ppmkToLeft,IMoniker **ppmkReduced) {
   8339     return This->lpVtbl->Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced);
   8340 }
   8341 static inline HRESULT IMoniker_ComposeWith(IMoniker* This,IMoniker *pmkRight,WINBOOL fOnlyIfNotGeneric,IMoniker **ppmkComposite) {
   8342     return This->lpVtbl->ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite);
   8343 }
   8344 static inline HRESULT IMoniker_Enum(IMoniker* This,WINBOOL fForward,IEnumMoniker **ppenumMoniker) {
   8345     return This->lpVtbl->Enum(This,fForward,ppenumMoniker);
   8346 }
   8347 static inline HRESULT IMoniker_IsEqual(IMoniker* This,IMoniker *pmkOtherMoniker) {
   8348     return This->lpVtbl->IsEqual(This,pmkOtherMoniker);
   8349 }
   8350 static inline HRESULT IMoniker_Hash(IMoniker* This,DWORD *pdwHash) {
   8351     return This->lpVtbl->Hash(This,pdwHash);
   8352 }
   8353 static inline HRESULT IMoniker_IsRunning(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,IMoniker *pmkNewlyRunning) {
   8354     return This->lpVtbl->IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning);
   8355 }
   8356 static inline HRESULT IMoniker_GetTimeOfLastChange(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,FILETIME *pFileTime) {
   8357     return This->lpVtbl->GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime);
   8358 }
   8359 static inline HRESULT IMoniker_Inverse(IMoniker* This,IMoniker **ppmk) {
   8360     return This->lpVtbl->Inverse(This,ppmk);
   8361 }
   8362 static inline HRESULT IMoniker_CommonPrefixWith(IMoniker* This,IMoniker *pmkOther,IMoniker **ppmkPrefix) {
   8363     return This->lpVtbl->CommonPrefixWith(This,pmkOther,ppmkPrefix);
   8364 }
   8365 static inline HRESULT IMoniker_RelativePathTo(IMoniker* This,IMoniker *pmkOther,IMoniker **ppmkRelPath) {
   8366     return This->lpVtbl->RelativePathTo(This,pmkOther,ppmkRelPath);
   8367 }
   8368 static inline HRESULT IMoniker_GetDisplayName(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,LPOLESTR *ppszDisplayName) {
   8369     return This->lpVtbl->GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName);
   8370 }
   8371 static inline HRESULT IMoniker_ParseDisplayName(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,LPOLESTR pszDisplayName,ULONG *pchEaten,IMoniker **ppmkOut) {
   8372     return This->lpVtbl->ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut);
   8373 }
   8374 static inline HRESULT IMoniker_IsSystemMoniker(IMoniker* This,DWORD *pdwMksys) {
   8375     return This->lpVtbl->IsSystemMoniker(This,pdwMksys);
   8376 }
   8377 #endif
   8378 #endif
   8379 
   8380 #endif
   8381 
   8382 HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToObject_Proxy(
   8383     IMoniker* This,
   8384     IBindCtx *pbc,
   8385     IMoniker *pmkToLeft,
   8386     REFIID riidResult,
   8387     IUnknown **ppvResult);
   8388 void __RPC_STUB IMoniker_RemoteBindToObject_Stub(
   8389     IRpcStubBuffer* This,
   8390     IRpcChannelBuffer* pRpcChannelBuffer,
   8391     PRPC_MESSAGE pRpcMessage,
   8392     DWORD* pdwStubPhase);
   8393 HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToStorage_Proxy(
   8394     IMoniker* This,
   8395     IBindCtx *pbc,
   8396     IMoniker *pmkToLeft,
   8397     REFIID riid,
   8398     IUnknown **ppvObj);
   8399 void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
   8400     IRpcStubBuffer* This,
   8401     IRpcChannelBuffer* pRpcChannelBuffer,
   8402     PRPC_MESSAGE pRpcMessage,
   8403     DWORD* pdwStubPhase);
   8404 HRESULT CALLBACK IMoniker_BindToObject_Proxy(
   8405     IMoniker* This,
   8406     IBindCtx *pbc,
   8407     IMoniker *pmkToLeft,
   8408     REFIID riidResult,
   8409     void **ppvResult);
   8410 HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
   8411     IMoniker* This,
   8412     IBindCtx *pbc,
   8413     IMoniker *pmkToLeft,
   8414     REFIID riidResult,
   8415     IUnknown **ppvResult);
   8416 HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
   8417     IMoniker* This,
   8418     IBindCtx *pbc,
   8419     IMoniker *pmkToLeft,
   8420     REFIID riid,
   8421     void **ppvObj);
   8422 HRESULT __RPC_STUB IMoniker_BindToStorage_Stub(
   8423     IMoniker* This,
   8424     IBindCtx *pbc,
   8425     IMoniker *pmkToLeft,
   8426     REFIID riid,
   8427     IUnknown **ppvObj);
   8428 
   8429 #endif  /* __IMoniker_INTERFACE_DEFINED__ */
   8430 
   8431 #endif
   8432 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   8433 /*****************************************************************************
   8434  * IROTData interface
   8435  */
   8436 #ifndef __IROTData_INTERFACE_DEFINED__
   8437 #define __IROTData_INTERFACE_DEFINED__
   8438 
   8439 DEFINE_GUID(IID_IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f);
   8440 #if defined(__cplusplus) && !defined(CINTERFACE)
   8441 MIDL_INTERFACE("f29f6bc0-5021-11ce-aa15-00006901293f")
   8442 IROTData : public IUnknown
   8443 {
   8444     virtual HRESULT STDMETHODCALLTYPE GetComparisonData(
   8445         byte *pbData,
   8446         ULONG cbMax,
   8447         ULONG *pcbData) = 0;
   8448 
   8449 };
   8450 #ifdef __CRT_UUID_DECL
   8451 __CRT_UUID_DECL(IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f)
   8452 #endif
   8453 #else
   8454 typedef struct IROTDataVtbl {
   8455     BEGIN_INTERFACE
   8456 
   8457     /*** IUnknown methods ***/
   8458     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8459         IROTData *This,
   8460         REFIID riid,
   8461         void **ppvObject);
   8462 
   8463     ULONG (STDMETHODCALLTYPE *AddRef)(
   8464         IROTData *This);
   8465 
   8466     ULONG (STDMETHODCALLTYPE *Release)(
   8467         IROTData *This);
   8468 
   8469     /*** IROTData methods ***/
   8470     HRESULT (STDMETHODCALLTYPE *GetComparisonData)(
   8471         IROTData *This,
   8472         byte *pbData,
   8473         ULONG cbMax,
   8474         ULONG *pcbData);
   8475 
   8476     END_INTERFACE
   8477 } IROTDataVtbl;
   8478 
   8479 interface IROTData {
   8480     CONST_VTBL IROTDataVtbl* lpVtbl;
   8481 };
   8482 
   8483 #ifdef COBJMACROS
   8484 #ifndef WIDL_C_INLINE_WRAPPERS
   8485 /*** IUnknown methods ***/
   8486 #define IROTData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8487 #define IROTData_AddRef(This) (This)->lpVtbl->AddRef(This)
   8488 #define IROTData_Release(This) (This)->lpVtbl->Release(This)
   8489 /*** IROTData methods ***/
   8490 #define IROTData_GetComparisonData(This,pbData,cbMax,pcbData) (This)->lpVtbl->GetComparisonData(This,pbData,cbMax,pcbData)
   8491 #else
   8492 /*** IUnknown methods ***/
   8493 static inline HRESULT IROTData_QueryInterface(IROTData* This,REFIID riid,void **ppvObject) {
   8494     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8495 }
   8496 static inline ULONG IROTData_AddRef(IROTData* This) {
   8497     return This->lpVtbl->AddRef(This);
   8498 }
   8499 static inline ULONG IROTData_Release(IROTData* This) {
   8500     return This->lpVtbl->Release(This);
   8501 }
   8502 /*** IROTData methods ***/
   8503 static inline HRESULT IROTData_GetComparisonData(IROTData* This,byte *pbData,ULONG cbMax,ULONG *pcbData) {
   8504     return This->lpVtbl->GetComparisonData(This,pbData,cbMax,pcbData);
   8505 }
   8506 #endif
   8507 #endif
   8508 
   8509 #endif
   8510 
   8511 
   8512 #endif  /* __IROTData_INTERFACE_DEFINED__ */
   8513 
   8514 #endif
   8515 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   8516 /*****************************************************************************
   8517  * IEnumSTATSTG interface
   8518  */
   8519 #ifndef __IEnumSTATSTG_INTERFACE_DEFINED__
   8520 #define __IEnumSTATSTG_INTERFACE_DEFINED__
   8521 
   8522 typedef IEnumSTATSTG *LPENUMSTATSTG;
   8523 DEFINE_GUID(IID_IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   8524 #if defined(__cplusplus) && !defined(CINTERFACE)
   8525 MIDL_INTERFACE("0000000d-0000-0000-c000-000000000046")
   8526 IEnumSTATSTG : public IUnknown
   8527 {
   8528     virtual HRESULT STDMETHODCALLTYPE Next(
   8529         ULONG celt,
   8530         STATSTG *rgelt,
   8531         ULONG *pceltFetched) = 0;
   8532 
   8533     virtual HRESULT STDMETHODCALLTYPE Skip(
   8534         ULONG celt) = 0;
   8535 
   8536     virtual HRESULT STDMETHODCALLTYPE Reset(
   8537         ) = 0;
   8538 
   8539     virtual HRESULT STDMETHODCALLTYPE Clone(
   8540         IEnumSTATSTG **ppenum) = 0;
   8541 
   8542 };
   8543 #ifdef __CRT_UUID_DECL
   8544 __CRT_UUID_DECL(IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   8545 #endif
   8546 #else
   8547 typedef struct IEnumSTATSTGVtbl {
   8548     BEGIN_INTERFACE
   8549 
   8550     /*** IUnknown methods ***/
   8551     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8552         IEnumSTATSTG *This,
   8553         REFIID riid,
   8554         void **ppvObject);
   8555 
   8556     ULONG (STDMETHODCALLTYPE *AddRef)(
   8557         IEnumSTATSTG *This);
   8558 
   8559     ULONG (STDMETHODCALLTYPE *Release)(
   8560         IEnumSTATSTG *This);
   8561 
   8562     /*** IEnumSTATSTG methods ***/
   8563     HRESULT (STDMETHODCALLTYPE *Next)(
   8564         IEnumSTATSTG *This,
   8565         ULONG celt,
   8566         STATSTG *rgelt,
   8567         ULONG *pceltFetched);
   8568 
   8569     HRESULT (STDMETHODCALLTYPE *Skip)(
   8570         IEnumSTATSTG *This,
   8571         ULONG celt);
   8572 
   8573     HRESULT (STDMETHODCALLTYPE *Reset)(
   8574         IEnumSTATSTG *This);
   8575 
   8576     HRESULT (STDMETHODCALLTYPE *Clone)(
   8577         IEnumSTATSTG *This,
   8578         IEnumSTATSTG **ppenum);
   8579 
   8580     END_INTERFACE
   8581 } IEnumSTATSTGVtbl;
   8582 
   8583 interface IEnumSTATSTG {
   8584     CONST_VTBL IEnumSTATSTGVtbl* lpVtbl;
   8585 };
   8586 
   8587 #ifdef COBJMACROS
   8588 #ifndef WIDL_C_INLINE_WRAPPERS
   8589 /*** IUnknown methods ***/
   8590 #define IEnumSTATSTG_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8591 #define IEnumSTATSTG_AddRef(This) (This)->lpVtbl->AddRef(This)
   8592 #define IEnumSTATSTG_Release(This) (This)->lpVtbl->Release(This)
   8593 /*** IEnumSTATSTG methods ***/
   8594 #define IEnumSTATSTG_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   8595 #define IEnumSTATSTG_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   8596 #define IEnumSTATSTG_Reset(This) (This)->lpVtbl->Reset(This)
   8597 #define IEnumSTATSTG_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   8598 #else
   8599 /*** IUnknown methods ***/
   8600 static inline HRESULT IEnumSTATSTG_QueryInterface(IEnumSTATSTG* This,REFIID riid,void **ppvObject) {
   8601     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8602 }
   8603 static inline ULONG IEnumSTATSTG_AddRef(IEnumSTATSTG* This) {
   8604     return This->lpVtbl->AddRef(This);
   8605 }
   8606 static inline ULONG IEnumSTATSTG_Release(IEnumSTATSTG* This) {
   8607     return This->lpVtbl->Release(This);
   8608 }
   8609 /*** IEnumSTATSTG methods ***/
   8610 static inline HRESULT IEnumSTATSTG_Next(IEnumSTATSTG* This,ULONG celt,STATSTG *rgelt,ULONG *pceltFetched) {
   8611     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   8612 }
   8613 static inline HRESULT IEnumSTATSTG_Skip(IEnumSTATSTG* This,ULONG celt) {
   8614     return This->lpVtbl->Skip(This,celt);
   8615 }
   8616 static inline HRESULT IEnumSTATSTG_Reset(IEnumSTATSTG* This) {
   8617     return This->lpVtbl->Reset(This);
   8618 }
   8619 static inline HRESULT IEnumSTATSTG_Clone(IEnumSTATSTG* This,IEnumSTATSTG **ppenum) {
   8620     return This->lpVtbl->Clone(This,ppenum);
   8621 }
   8622 #endif
   8623 #endif
   8624 
   8625 #endif
   8626 
   8627 HRESULT STDMETHODCALLTYPE IEnumSTATSTG_RemoteNext_Proxy(
   8628     IEnumSTATSTG* This,
   8629     ULONG celt,
   8630     STATSTG *rgelt,
   8631     ULONG *pceltFetched);
   8632 void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
   8633     IRpcStubBuffer* This,
   8634     IRpcChannelBuffer* pRpcChannelBuffer,
   8635     PRPC_MESSAGE pRpcMessage,
   8636     DWORD* pdwStubPhase);
   8637 HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
   8638     IEnumSTATSTG* This,
   8639     ULONG celt,
   8640     STATSTG *rgelt,
   8641     ULONG *pceltFetched);
   8642 HRESULT __RPC_STUB IEnumSTATSTG_Next_Stub(
   8643     IEnumSTATSTG* This,
   8644     ULONG celt,
   8645     STATSTG *rgelt,
   8646     ULONG *pceltFetched);
   8647 
   8648 #endif  /* __IEnumSTATSTG_INTERFACE_DEFINED__ */
   8649 
   8650 /*****************************************************************************
   8651  * IStorage interface
   8652  */
   8653 #ifndef __IStorage_INTERFACE_DEFINED__
   8654 #define __IStorage_INTERFACE_DEFINED__
   8655 
   8656 typedef IStorage *LPSTORAGE;
   8657 typedef struct tagRemSNB {
   8658     ULONG ulCntStr;
   8659     ULONG ulCntChar;
   8660     OLECHAR rgString[1];
   8661 } RemSNB;
   8662 typedef RemSNB *wireSNB;
   8663 typedef LPOLESTR *SNB;
   8664 DEFINE_GUID(IID_IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   8665 #if defined(__cplusplus) && !defined(CINTERFACE)
   8666 MIDL_INTERFACE("0000000b-0000-0000-c000-000000000046")
   8667 IStorage : public IUnknown
   8668 {
   8669     virtual HRESULT STDMETHODCALLTYPE CreateStream(
   8670         const OLECHAR *pwcsName,
   8671         DWORD grfMode,
   8672         DWORD reserved1,
   8673         DWORD reserved2,
   8674         IStream **ppstm) = 0;
   8675 
   8676     virtual HRESULT STDMETHODCALLTYPE OpenStream(
   8677         const OLECHAR *pwcsName,
   8678         void *reserved1,
   8679         DWORD grfMode,
   8680         DWORD reserved2,
   8681         IStream **ppstm) = 0;
   8682 
   8683     virtual HRESULT STDMETHODCALLTYPE CreateStorage(
   8684         const OLECHAR *pwcsName,
   8685         DWORD grfMode,
   8686         DWORD reserved1,
   8687         DWORD reserved2,
   8688         IStorage **ppstg) = 0;
   8689 
   8690     virtual HRESULT STDMETHODCALLTYPE OpenStorage(
   8691         const OLECHAR *pwcsName,
   8692         IStorage *pstgPriority,
   8693         DWORD grfMode,
   8694         SNB snbExclude,
   8695         DWORD reserved,
   8696         IStorage **ppstg) = 0;
   8697 
   8698     virtual HRESULT STDMETHODCALLTYPE CopyTo(
   8699         DWORD ciidExclude,
   8700         const IID *rgiidExclude,
   8701         SNB snbExclude,
   8702         IStorage *pstgDest) = 0;
   8703 
   8704     virtual HRESULT STDMETHODCALLTYPE MoveElementTo(
   8705         const OLECHAR *pwcsName,
   8706         IStorage *pstgDest,
   8707         const OLECHAR *pwcsNewName,
   8708         DWORD grfFlags) = 0;
   8709 
   8710     virtual HRESULT STDMETHODCALLTYPE Commit(
   8711         DWORD grfCommitFlags) = 0;
   8712 
   8713     virtual HRESULT STDMETHODCALLTYPE Revert(
   8714         ) = 0;
   8715 
   8716     virtual HRESULT STDMETHODCALLTYPE EnumElements(
   8717         DWORD reserved1,
   8718         void *reserved2,
   8719         DWORD reserved3,
   8720         IEnumSTATSTG **ppenum) = 0;
   8721 
   8722     virtual HRESULT STDMETHODCALLTYPE DestroyElement(
   8723         const OLECHAR *pwcsName) = 0;
   8724 
   8725     virtual HRESULT STDMETHODCALLTYPE RenameElement(
   8726         const OLECHAR *pwcsOldName,
   8727         const OLECHAR *pwcsNewName) = 0;
   8728 
   8729     virtual HRESULT STDMETHODCALLTYPE SetElementTimes(
   8730         const OLECHAR *pwcsName,
   8731         const FILETIME *pctime,
   8732         const FILETIME *patime,
   8733         const FILETIME *pmtime) = 0;
   8734 
   8735     virtual HRESULT STDMETHODCALLTYPE SetClass(
   8736         REFCLSID clsid) = 0;
   8737 
   8738     virtual HRESULT STDMETHODCALLTYPE SetStateBits(
   8739         DWORD grfStateBits,
   8740         DWORD grfMask) = 0;
   8741 
   8742     virtual HRESULT STDMETHODCALLTYPE Stat(
   8743         STATSTG *pstatstg,
   8744         DWORD grfStatFlag) = 0;
   8745 
   8746 };
   8747 #ifdef __CRT_UUID_DECL
   8748 __CRT_UUID_DECL(IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   8749 #endif
   8750 #else
   8751 typedef struct IStorageVtbl {
   8752     BEGIN_INTERFACE
   8753 
   8754     /*** IUnknown methods ***/
   8755     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8756         IStorage *This,
   8757         REFIID riid,
   8758         void **ppvObject);
   8759 
   8760     ULONG (STDMETHODCALLTYPE *AddRef)(
   8761         IStorage *This);
   8762 
   8763     ULONG (STDMETHODCALLTYPE *Release)(
   8764         IStorage *This);
   8765 
   8766     /*** IStorage methods ***/
   8767     HRESULT (STDMETHODCALLTYPE *CreateStream)(
   8768         IStorage *This,
   8769         const OLECHAR *pwcsName,
   8770         DWORD grfMode,
   8771         DWORD reserved1,
   8772         DWORD reserved2,
   8773         IStream **ppstm);
   8774 
   8775     HRESULT (STDMETHODCALLTYPE *OpenStream)(
   8776         IStorage *This,
   8777         const OLECHAR *pwcsName,
   8778         void *reserved1,
   8779         DWORD grfMode,
   8780         DWORD reserved2,
   8781         IStream **ppstm);
   8782 
   8783     HRESULT (STDMETHODCALLTYPE *CreateStorage)(
   8784         IStorage *This,
   8785         const OLECHAR *pwcsName,
   8786         DWORD grfMode,
   8787         DWORD reserved1,
   8788         DWORD reserved2,
   8789         IStorage **ppstg);
   8790 
   8791     HRESULT (STDMETHODCALLTYPE *OpenStorage)(
   8792         IStorage *This,
   8793         const OLECHAR *pwcsName,
   8794         IStorage *pstgPriority,
   8795         DWORD grfMode,
   8796         SNB snbExclude,
   8797         DWORD reserved,
   8798         IStorage **ppstg);
   8799 
   8800     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   8801         IStorage *This,
   8802         DWORD ciidExclude,
   8803         const IID *rgiidExclude,
   8804         SNB snbExclude,
   8805         IStorage *pstgDest);
   8806 
   8807     HRESULT (STDMETHODCALLTYPE *MoveElementTo)(
   8808         IStorage *This,
   8809         const OLECHAR *pwcsName,
   8810         IStorage *pstgDest,
   8811         const OLECHAR *pwcsNewName,
   8812         DWORD grfFlags);
   8813 
   8814     HRESULT (STDMETHODCALLTYPE *Commit)(
   8815         IStorage *This,
   8816         DWORD grfCommitFlags);
   8817 
   8818     HRESULT (STDMETHODCALLTYPE *Revert)(
   8819         IStorage *This);
   8820 
   8821     HRESULT (STDMETHODCALLTYPE *EnumElements)(
   8822         IStorage *This,
   8823         DWORD reserved1,
   8824         void *reserved2,
   8825         DWORD reserved3,
   8826         IEnumSTATSTG **ppenum);
   8827 
   8828     HRESULT (STDMETHODCALLTYPE *DestroyElement)(
   8829         IStorage *This,
   8830         const OLECHAR *pwcsName);
   8831 
   8832     HRESULT (STDMETHODCALLTYPE *RenameElement)(
   8833         IStorage *This,
   8834         const OLECHAR *pwcsOldName,
   8835         const OLECHAR *pwcsNewName);
   8836 
   8837     HRESULT (STDMETHODCALLTYPE *SetElementTimes)(
   8838         IStorage *This,
   8839         const OLECHAR *pwcsName,
   8840         const FILETIME *pctime,
   8841         const FILETIME *patime,
   8842         const FILETIME *pmtime);
   8843 
   8844     HRESULT (STDMETHODCALLTYPE *SetClass)(
   8845         IStorage *This,
   8846         REFCLSID clsid);
   8847 
   8848     HRESULT (STDMETHODCALLTYPE *SetStateBits)(
   8849         IStorage *This,
   8850         DWORD grfStateBits,
   8851         DWORD grfMask);
   8852 
   8853     HRESULT (STDMETHODCALLTYPE *Stat)(
   8854         IStorage *This,
   8855         STATSTG *pstatstg,
   8856         DWORD grfStatFlag);
   8857 
   8858     END_INTERFACE
   8859 } IStorageVtbl;
   8860 
   8861 interface IStorage {
   8862     CONST_VTBL IStorageVtbl* lpVtbl;
   8863 };
   8864 
   8865 #ifdef COBJMACROS
   8866 #ifndef WIDL_C_INLINE_WRAPPERS
   8867 /*** IUnknown methods ***/
   8868 #define IStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8869 #define IStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
   8870 #define IStorage_Release(This) (This)->lpVtbl->Release(This)
   8871 /*** IStorage methods ***/
   8872 #define IStorage_CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm) (This)->lpVtbl->CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm)
   8873 #define IStorage_OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm) (This)->lpVtbl->OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm)
   8874 #define IStorage_CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg) (This)->lpVtbl->CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg)
   8875 #define IStorage_OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg) (This)->lpVtbl->OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg)
   8876 #define IStorage_CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest) (This)->lpVtbl->CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest)
   8877 #define IStorage_MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags) (This)->lpVtbl->MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags)
   8878 #define IStorage_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   8879 #define IStorage_Revert(This) (This)->lpVtbl->Revert(This)
   8880 #define IStorage_EnumElements(This,reserved1,reserved2,reserved3,ppenum) (This)->lpVtbl->EnumElements(This,reserved1,reserved2,reserved3,ppenum)
   8881 #define IStorage_DestroyElement(This,pwcsName) (This)->lpVtbl->DestroyElement(This,pwcsName)
   8882 #define IStorage_RenameElement(This,pwcsOldName,pwcsNewName) (This)->lpVtbl->RenameElement(This,pwcsOldName,pwcsNewName)
   8883 #define IStorage_SetElementTimes(This,pwcsName,pctime,patime,pmtime) (This)->lpVtbl->SetElementTimes(This,pwcsName,pctime,patime,pmtime)
   8884 #define IStorage_SetClass(This,clsid) (This)->lpVtbl->SetClass(This,clsid)
   8885 #define IStorage_SetStateBits(This,grfStateBits,grfMask) (This)->lpVtbl->SetStateBits(This,grfStateBits,grfMask)
   8886 #define IStorage_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   8887 #else
   8888 /*** IUnknown methods ***/
   8889 static inline HRESULT IStorage_QueryInterface(IStorage* This,REFIID riid,void **ppvObject) {
   8890     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8891 }
   8892 static inline ULONG IStorage_AddRef(IStorage* This) {
   8893     return This->lpVtbl->AddRef(This);
   8894 }
   8895 static inline ULONG IStorage_Release(IStorage* This) {
   8896     return This->lpVtbl->Release(This);
   8897 }
   8898 /*** IStorage methods ***/
   8899 static inline HRESULT IStorage_CreateStream(IStorage* This,const OLECHAR *pwcsName,DWORD grfMode,DWORD reserved1,DWORD reserved2,IStream **ppstm) {
   8900     return This->lpVtbl->CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm);
   8901 }
   8902 static inline HRESULT IStorage_OpenStream(IStorage* This,const OLECHAR *pwcsName,void *reserved1,DWORD grfMode,DWORD reserved2,IStream **ppstm) {
   8903     return This->lpVtbl->OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm);
   8904 }
   8905 static inline HRESULT IStorage_CreateStorage(IStorage* This,const OLECHAR *pwcsName,DWORD grfMode,DWORD reserved1,DWORD reserved2,IStorage **ppstg) {
   8906     return This->lpVtbl->CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg);
   8907 }
   8908 static inline HRESULT IStorage_OpenStorage(IStorage* This,const OLECHAR *pwcsName,IStorage *pstgPriority,DWORD grfMode,SNB snbExclude,DWORD reserved,IStorage **ppstg) {
   8909     return This->lpVtbl->OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg);
   8910 }
   8911 static inline HRESULT IStorage_CopyTo(IStorage* This,DWORD ciidExclude,const IID *rgiidExclude,SNB snbExclude,IStorage *pstgDest) {
   8912     return This->lpVtbl->CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest);
   8913 }
   8914 static inline HRESULT IStorage_MoveElementTo(IStorage* This,const OLECHAR *pwcsName,IStorage *pstgDest,const OLECHAR *pwcsNewName,DWORD grfFlags) {
   8915     return This->lpVtbl->MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags);
   8916 }
   8917 static inline HRESULT IStorage_Commit(IStorage* This,DWORD grfCommitFlags) {
   8918     return This->lpVtbl->Commit(This,grfCommitFlags);
   8919 }
   8920 static inline HRESULT IStorage_Revert(IStorage* This) {
   8921     return This->lpVtbl->Revert(This);
   8922 }
   8923 static inline HRESULT IStorage_EnumElements(IStorage* This,DWORD reserved1,void *reserved2,DWORD reserved3,IEnumSTATSTG **ppenum) {
   8924     return This->lpVtbl->EnumElements(This,reserved1,reserved2,reserved3,ppenum);
   8925 }
   8926 static inline HRESULT IStorage_DestroyElement(IStorage* This,const OLECHAR *pwcsName) {
   8927     return This->lpVtbl->DestroyElement(This,pwcsName);
   8928 }
   8929 static inline HRESULT IStorage_RenameElement(IStorage* This,const OLECHAR *pwcsOldName,const OLECHAR *pwcsNewName) {
   8930     return This->lpVtbl->RenameElement(This,pwcsOldName,pwcsNewName);
   8931 }
   8932 static inline HRESULT IStorage_SetElementTimes(IStorage* This,const OLECHAR *pwcsName,const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime) {
   8933     return This->lpVtbl->SetElementTimes(This,pwcsName,pctime,patime,pmtime);
   8934 }
   8935 static inline HRESULT IStorage_SetClass(IStorage* This,REFCLSID clsid) {
   8936     return This->lpVtbl->SetClass(This,clsid);
   8937 }
   8938 static inline HRESULT IStorage_SetStateBits(IStorage* This,DWORD grfStateBits,DWORD grfMask) {
   8939     return This->lpVtbl->SetStateBits(This,grfStateBits,grfMask);
   8940 }
   8941 static inline HRESULT IStorage_Stat(IStorage* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   8942     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   8943 }
   8944 #endif
   8945 #endif
   8946 
   8947 #endif
   8948 
   8949 HRESULT STDMETHODCALLTYPE IStorage_RemoteOpenStream_Proxy(
   8950     IStorage* This,
   8951     const OLECHAR *pwcsName,
   8952     ULONG cbReserved1,
   8953     byte *reserved1,
   8954     DWORD grfMode,
   8955     DWORD reserved2,
   8956     IStream **ppstm);
   8957 void __RPC_STUB IStorage_RemoteOpenStream_Stub(
   8958     IRpcStubBuffer* This,
   8959     IRpcChannelBuffer* pRpcChannelBuffer,
   8960     PRPC_MESSAGE pRpcMessage,
   8961     DWORD* pdwStubPhase);
   8962 HRESULT STDMETHODCALLTYPE IStorage_RemoteCopyTo_Proxy(
   8963     IStorage* This,
   8964     DWORD ciidExclude,
   8965     const IID *rgiidExclude,
   8966     SNB snbExclude,
   8967     IStorage *pstgDest);
   8968 void __RPC_STUB IStorage_RemoteCopyTo_Stub(
   8969     IRpcStubBuffer* This,
   8970     IRpcChannelBuffer* pRpcChannelBuffer,
   8971     PRPC_MESSAGE pRpcMessage,
   8972     DWORD* pdwStubPhase);
   8973 HRESULT STDMETHODCALLTYPE IStorage_RemoteEnumElements_Proxy(
   8974     IStorage* This,
   8975     DWORD reserved1,
   8976     ULONG cbReserved2,
   8977     byte *reserved2,
   8978     DWORD reserved3,
   8979     IEnumSTATSTG **ppenum);
   8980 void __RPC_STUB IStorage_RemoteEnumElements_Stub(
   8981     IRpcStubBuffer* This,
   8982     IRpcChannelBuffer* pRpcChannelBuffer,
   8983     PRPC_MESSAGE pRpcMessage,
   8984     DWORD* pdwStubPhase);
   8985 HRESULT CALLBACK IStorage_OpenStream_Proxy(
   8986     IStorage* This,
   8987     const OLECHAR *pwcsName,
   8988     void *reserved1,
   8989     DWORD grfMode,
   8990     DWORD reserved2,
   8991     IStream **ppstm);
   8992 HRESULT __RPC_STUB IStorage_OpenStream_Stub(
   8993     IStorage* This,
   8994     const OLECHAR *pwcsName,
   8995     ULONG cbReserved1,
   8996     byte *reserved1,
   8997     DWORD grfMode,
   8998     DWORD reserved2,
   8999     IStream **ppstm);
   9000 HRESULT CALLBACK IStorage_CopyTo_Proxy(
   9001     IStorage* This,
   9002     DWORD ciidExclude,
   9003     const IID *rgiidExclude,
   9004     SNB snbExclude,
   9005     IStorage *pstgDest);
   9006 HRESULT __RPC_STUB IStorage_CopyTo_Stub(
   9007     IStorage* This,
   9008     DWORD ciidExclude,
   9009     const IID *rgiidExclude,
   9010     SNB snbExclude,
   9011     IStorage *pstgDest);
   9012 HRESULT CALLBACK IStorage_EnumElements_Proxy(
   9013     IStorage* This,
   9014     DWORD reserved1,
   9015     void *reserved2,
   9016     DWORD reserved3,
   9017     IEnumSTATSTG **ppenum);
   9018 HRESULT __RPC_STUB IStorage_EnumElements_Stub(
   9019     IStorage* This,
   9020     DWORD reserved1,
   9021     ULONG cbReserved2,
   9022     byte *reserved2,
   9023     DWORD reserved3,
   9024     IEnumSTATSTG **ppenum);
   9025 
   9026 #endif  /* __IStorage_INTERFACE_DEFINED__ */
   9027 
   9028 #endif
   9029 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   9030 /*****************************************************************************
   9031  * IPersistFile interface
   9032  */
   9033 #ifndef __IPersistFile_INTERFACE_DEFINED__
   9034 #define __IPersistFile_INTERFACE_DEFINED__
   9035 
   9036 typedef IPersistFile *LPPERSISTFILE;
   9037 DEFINE_GUID(IID_IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   9038 #if defined(__cplusplus) && !defined(CINTERFACE)
   9039 MIDL_INTERFACE("0000010b-0000-0000-c000-000000000046")
   9040 IPersistFile : public IPersist
   9041 {
   9042     virtual HRESULT STDMETHODCALLTYPE IsDirty(
   9043         ) = 0;
   9044 
   9045     virtual HRESULT STDMETHODCALLTYPE Load(
   9046         LPCOLESTR pszFileName,
   9047         DWORD dwMode) = 0;
   9048 
   9049     virtual HRESULT STDMETHODCALLTYPE Save(
   9050         LPCOLESTR pszFileName,
   9051         WINBOOL fRemember) = 0;
   9052 
   9053     virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
   9054         LPCOLESTR pszFileName) = 0;
   9055 
   9056     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
   9057         LPOLESTR *ppszFileName) = 0;
   9058 
   9059 };
   9060 #ifdef __CRT_UUID_DECL
   9061 __CRT_UUID_DECL(IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   9062 #endif
   9063 #else
   9064 typedef struct IPersistFileVtbl {
   9065     BEGIN_INTERFACE
   9066 
   9067     /*** IUnknown methods ***/
   9068     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9069         IPersistFile *This,
   9070         REFIID riid,
   9071         void **ppvObject);
   9072 
   9073     ULONG (STDMETHODCALLTYPE *AddRef)(
   9074         IPersistFile *This);
   9075 
   9076     ULONG (STDMETHODCALLTYPE *Release)(
   9077         IPersistFile *This);
   9078 
   9079     /*** IPersist methods ***/
   9080     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   9081         IPersistFile *This,
   9082         CLSID *pClassID);
   9083 
   9084     /*** IPersistFile methods ***/
   9085     HRESULT (STDMETHODCALLTYPE *IsDirty)(
   9086         IPersistFile *This);
   9087 
   9088     HRESULT (STDMETHODCALLTYPE *Load)(
   9089         IPersistFile *This,
   9090         LPCOLESTR pszFileName,
   9091         DWORD dwMode);
   9092 
   9093     HRESULT (STDMETHODCALLTYPE *Save)(
   9094         IPersistFile *This,
   9095         LPCOLESTR pszFileName,
   9096         WINBOOL fRemember);
   9097 
   9098     HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
   9099         IPersistFile *This,
   9100         LPCOLESTR pszFileName);
   9101 
   9102     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
   9103         IPersistFile *This,
   9104         LPOLESTR *ppszFileName);
   9105 
   9106     END_INTERFACE
   9107 } IPersistFileVtbl;
   9108 
   9109 interface IPersistFile {
   9110     CONST_VTBL IPersistFileVtbl* lpVtbl;
   9111 };
   9112 
   9113 #ifdef COBJMACROS
   9114 #ifndef WIDL_C_INLINE_WRAPPERS
   9115 /*** IUnknown methods ***/
   9116 #define IPersistFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9117 #define IPersistFile_AddRef(This) (This)->lpVtbl->AddRef(This)
   9118 #define IPersistFile_Release(This) (This)->lpVtbl->Release(This)
   9119 /*** IPersist methods ***/
   9120 #define IPersistFile_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   9121 /*** IPersistFile methods ***/
   9122 #define IPersistFile_IsDirty(This) (This)->lpVtbl->IsDirty(This)
   9123 #define IPersistFile_Load(This,pszFileName,dwMode) (This)->lpVtbl->Load(This,pszFileName,dwMode)
   9124 #define IPersistFile_Save(This,pszFileName,fRemember) (This)->lpVtbl->Save(This,pszFileName,fRemember)
   9125 #define IPersistFile_SaveCompleted(This,pszFileName) (This)->lpVtbl->SaveCompleted(This,pszFileName)
   9126 #define IPersistFile_GetCurFile(This,ppszFileName) (This)->lpVtbl->GetCurFile(This,ppszFileName)
   9127 #else
   9128 /*** IUnknown methods ***/
   9129 static inline HRESULT IPersistFile_QueryInterface(IPersistFile* This,REFIID riid,void **ppvObject) {
   9130     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9131 }
   9132 static inline ULONG IPersistFile_AddRef(IPersistFile* This) {
   9133     return This->lpVtbl->AddRef(This);
   9134 }
   9135 static inline ULONG IPersistFile_Release(IPersistFile* This) {
   9136     return This->lpVtbl->Release(This);
   9137 }
   9138 /*** IPersist methods ***/
   9139 static inline HRESULT IPersistFile_GetClassID(IPersistFile* This,CLSID *pClassID) {
   9140     return This->lpVtbl->GetClassID(This,pClassID);
   9141 }
   9142 /*** IPersistFile methods ***/
   9143 static inline HRESULT IPersistFile_IsDirty(IPersistFile* This) {
   9144     return This->lpVtbl->IsDirty(This);
   9145 }
   9146 static inline HRESULT IPersistFile_Load(IPersistFile* This,LPCOLESTR pszFileName,DWORD dwMode) {
   9147     return This->lpVtbl->Load(This,pszFileName,dwMode);
   9148 }
   9149 static inline HRESULT IPersistFile_Save(IPersistFile* This,LPCOLESTR pszFileName,WINBOOL fRemember) {
   9150     return This->lpVtbl->Save(This,pszFileName,fRemember);
   9151 }
   9152 static inline HRESULT IPersistFile_SaveCompleted(IPersistFile* This,LPCOLESTR pszFileName) {
   9153     return This->lpVtbl->SaveCompleted(This,pszFileName);
   9154 }
   9155 static inline HRESULT IPersistFile_GetCurFile(IPersistFile* This,LPOLESTR *ppszFileName) {
   9156     return This->lpVtbl->GetCurFile(This,ppszFileName);
   9157 }
   9158 #endif
   9159 #endif
   9160 
   9161 #endif
   9162 
   9163 
   9164 #endif  /* __IPersistFile_INTERFACE_DEFINED__ */
   9165 
   9166 /*****************************************************************************
   9167  * IPersistStorage interface
   9168  */
   9169 #ifndef __IPersistStorage_INTERFACE_DEFINED__
   9170 #define __IPersistStorage_INTERFACE_DEFINED__
   9171 
   9172 typedef IPersistStorage *LPPERSISTSTORAGE;
   9173 DEFINE_GUID(IID_IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   9174 #if defined(__cplusplus) && !defined(CINTERFACE)
   9175 MIDL_INTERFACE("0000010a-0000-0000-c000-000000000046")
   9176 IPersistStorage : public IPersist
   9177 {
   9178     virtual HRESULT STDMETHODCALLTYPE IsDirty(
   9179         ) = 0;
   9180 
   9181     virtual HRESULT STDMETHODCALLTYPE InitNew(
   9182         IStorage *pStg) = 0;
   9183 
   9184     virtual HRESULT STDMETHODCALLTYPE Load(
   9185         IStorage *pStg) = 0;
   9186 
   9187     virtual HRESULT STDMETHODCALLTYPE Save(
   9188         IStorage *pStgSave,
   9189         WINBOOL fSameAsLoad) = 0;
   9190 
   9191     virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
   9192         IStorage *pStgNew) = 0;
   9193 
   9194     virtual HRESULT STDMETHODCALLTYPE HandsOffStorage(
   9195         ) = 0;
   9196 
   9197 };
   9198 #ifdef __CRT_UUID_DECL
   9199 __CRT_UUID_DECL(IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   9200 #endif
   9201 #else
   9202 typedef struct IPersistStorageVtbl {
   9203     BEGIN_INTERFACE
   9204 
   9205     /*** IUnknown methods ***/
   9206     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9207         IPersistStorage *This,
   9208         REFIID riid,
   9209         void **ppvObject);
   9210 
   9211     ULONG (STDMETHODCALLTYPE *AddRef)(
   9212         IPersistStorage *This);
   9213 
   9214     ULONG (STDMETHODCALLTYPE *Release)(
   9215         IPersistStorage *This);
   9216 
   9217     /*** IPersist methods ***/
   9218     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   9219         IPersistStorage *This,
   9220         CLSID *pClassID);
   9221 
   9222     /*** IPersistStorage methods ***/
   9223     HRESULT (STDMETHODCALLTYPE *IsDirty)(
   9224         IPersistStorage *This);
   9225 
   9226     HRESULT (STDMETHODCALLTYPE *InitNew)(
   9227         IPersistStorage *This,
   9228         IStorage *pStg);
   9229 
   9230     HRESULT (STDMETHODCALLTYPE *Load)(
   9231         IPersistStorage *This,
   9232         IStorage *pStg);
   9233 
   9234     HRESULT (STDMETHODCALLTYPE *Save)(
   9235         IPersistStorage *This,
   9236         IStorage *pStgSave,
   9237         WINBOOL fSameAsLoad);
   9238 
   9239     HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
   9240         IPersistStorage *This,
   9241         IStorage *pStgNew);
   9242 
   9243     HRESULT (STDMETHODCALLTYPE *HandsOffStorage)(
   9244         IPersistStorage *This);
   9245 
   9246     END_INTERFACE
   9247 } IPersistStorageVtbl;
   9248 
   9249 interface IPersistStorage {
   9250     CONST_VTBL IPersistStorageVtbl* lpVtbl;
   9251 };
   9252 
   9253 #ifdef COBJMACROS
   9254 #ifndef WIDL_C_INLINE_WRAPPERS
   9255 /*** IUnknown methods ***/
   9256 #define IPersistStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9257 #define IPersistStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
   9258 #define IPersistStorage_Release(This) (This)->lpVtbl->Release(This)
   9259 /*** IPersist methods ***/
   9260 #define IPersistStorage_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   9261 /*** IPersistStorage methods ***/
   9262 #define IPersistStorage_IsDirty(This) (This)->lpVtbl->IsDirty(This)
   9263 #define IPersistStorage_InitNew(This,pStg) (This)->lpVtbl->InitNew(This,pStg)
   9264 #define IPersistStorage_Load(This,pStg) (This)->lpVtbl->Load(This,pStg)
   9265 #define IPersistStorage_Save(This,pStgSave,fSameAsLoad) (This)->lpVtbl->Save(This,pStgSave,fSameAsLoad)
   9266 #define IPersistStorage_SaveCompleted(This,pStgNew) (This)->lpVtbl->SaveCompleted(This,pStgNew)
   9267 #define IPersistStorage_HandsOffStorage(This) (This)->lpVtbl->HandsOffStorage(This)
   9268 #else
   9269 /*** IUnknown methods ***/
   9270 static inline HRESULT IPersistStorage_QueryInterface(IPersistStorage* This,REFIID riid,void **ppvObject) {
   9271     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9272 }
   9273 static inline ULONG IPersistStorage_AddRef(IPersistStorage* This) {
   9274     return This->lpVtbl->AddRef(This);
   9275 }
   9276 static inline ULONG IPersistStorage_Release(IPersistStorage* This) {
   9277     return This->lpVtbl->Release(This);
   9278 }
   9279 /*** IPersist methods ***/
   9280 static inline HRESULT IPersistStorage_GetClassID(IPersistStorage* This,CLSID *pClassID) {
   9281     return This->lpVtbl->GetClassID(This,pClassID);
   9282 }
   9283 /*** IPersistStorage methods ***/
   9284 static inline HRESULT IPersistStorage_IsDirty(IPersistStorage* This) {
   9285     return This->lpVtbl->IsDirty(This);
   9286 }
   9287 static inline HRESULT IPersistStorage_InitNew(IPersistStorage* This,IStorage *pStg) {
   9288     return This->lpVtbl->InitNew(This,pStg);
   9289 }
   9290 static inline HRESULT IPersistStorage_Load(IPersistStorage* This,IStorage *pStg) {
   9291     return This->lpVtbl->Load(This,pStg);
   9292 }
   9293 static inline HRESULT IPersistStorage_Save(IPersistStorage* This,IStorage *pStgSave,WINBOOL fSameAsLoad) {
   9294     return This->lpVtbl->Save(This,pStgSave,fSameAsLoad);
   9295 }
   9296 static inline HRESULT IPersistStorage_SaveCompleted(IPersistStorage* This,IStorage *pStgNew) {
   9297     return This->lpVtbl->SaveCompleted(This,pStgNew);
   9298 }
   9299 static inline HRESULT IPersistStorage_HandsOffStorage(IPersistStorage* This) {
   9300     return This->lpVtbl->HandsOffStorage(This);
   9301 }
   9302 #endif
   9303 #endif
   9304 
   9305 #endif
   9306 
   9307 
   9308 #endif  /* __IPersistStorage_INTERFACE_DEFINED__ */
   9309 
   9310 #endif
   9311 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   9312 /*****************************************************************************
   9313  * ILockBytes interface
   9314  */
   9315 #ifndef __ILockBytes_INTERFACE_DEFINED__
   9316 #define __ILockBytes_INTERFACE_DEFINED__
   9317 
   9318 typedef ILockBytes *LPLOCKBYTES;
   9319 DEFINE_GUID(IID_ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   9320 #if defined(__cplusplus) && !defined(CINTERFACE)
   9321 MIDL_INTERFACE("0000000a-0000-0000-c000-000000000046")
   9322 ILockBytes : public IUnknown
   9323 {
   9324     virtual HRESULT STDMETHODCALLTYPE ReadAt(
   9325         ULARGE_INTEGER ulOffset,
   9326         void *pv,
   9327         ULONG cb,
   9328         ULONG *pcbRead) = 0;
   9329 
   9330     virtual HRESULT STDMETHODCALLTYPE WriteAt(
   9331         ULARGE_INTEGER ulOffset,
   9332         const void *pv,
   9333         ULONG cb,
   9334         ULONG *pcbWritten) = 0;
   9335 
   9336     virtual HRESULT STDMETHODCALLTYPE Flush(
   9337         ) = 0;
   9338 
   9339     virtual HRESULT STDMETHODCALLTYPE SetSize(
   9340         ULARGE_INTEGER cb) = 0;
   9341 
   9342     virtual HRESULT STDMETHODCALLTYPE LockRegion(
   9343         ULARGE_INTEGER libOffset,
   9344         ULARGE_INTEGER cb,
   9345         DWORD dwLockType) = 0;
   9346 
   9347     virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
   9348         ULARGE_INTEGER libOffset,
   9349         ULARGE_INTEGER cb,
   9350         DWORD dwLockType) = 0;
   9351 
   9352     virtual HRESULT STDMETHODCALLTYPE Stat(
   9353         STATSTG *pstatstg,
   9354         DWORD grfStatFlag) = 0;
   9355 
   9356 };
   9357 #ifdef __CRT_UUID_DECL
   9358 __CRT_UUID_DECL(ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   9359 #endif
   9360 #else
   9361 typedef struct ILockBytesVtbl {
   9362     BEGIN_INTERFACE
   9363 
   9364     /*** IUnknown methods ***/
   9365     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9366         ILockBytes *This,
   9367         REFIID riid,
   9368         void **ppvObject);
   9369 
   9370     ULONG (STDMETHODCALLTYPE *AddRef)(
   9371         ILockBytes *This);
   9372 
   9373     ULONG (STDMETHODCALLTYPE *Release)(
   9374         ILockBytes *This);
   9375 
   9376     /*** ILockBytes methods ***/
   9377     HRESULT (STDMETHODCALLTYPE *ReadAt)(
   9378         ILockBytes *This,
   9379         ULARGE_INTEGER ulOffset,
   9380         void *pv,
   9381         ULONG cb,
   9382         ULONG *pcbRead);
   9383 
   9384     HRESULT (STDMETHODCALLTYPE *WriteAt)(
   9385         ILockBytes *This,
   9386         ULARGE_INTEGER ulOffset,
   9387         const void *pv,
   9388         ULONG cb,
   9389         ULONG *pcbWritten);
   9390 
   9391     HRESULT (STDMETHODCALLTYPE *Flush)(
   9392         ILockBytes *This);
   9393 
   9394     HRESULT (STDMETHODCALLTYPE *SetSize)(
   9395         ILockBytes *This,
   9396         ULARGE_INTEGER cb);
   9397 
   9398     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   9399         ILockBytes *This,
   9400         ULARGE_INTEGER libOffset,
   9401         ULARGE_INTEGER cb,
   9402         DWORD dwLockType);
   9403 
   9404     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   9405         ILockBytes *This,
   9406         ULARGE_INTEGER libOffset,
   9407         ULARGE_INTEGER cb,
   9408         DWORD dwLockType);
   9409 
   9410     HRESULT (STDMETHODCALLTYPE *Stat)(
   9411         ILockBytes *This,
   9412         STATSTG *pstatstg,
   9413         DWORD grfStatFlag);
   9414 
   9415     END_INTERFACE
   9416 } ILockBytesVtbl;
   9417 
   9418 interface ILockBytes {
   9419     CONST_VTBL ILockBytesVtbl* lpVtbl;
   9420 };
   9421 
   9422 #ifdef COBJMACROS
   9423 #ifndef WIDL_C_INLINE_WRAPPERS
   9424 /*** IUnknown methods ***/
   9425 #define ILockBytes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9426 #define ILockBytes_AddRef(This) (This)->lpVtbl->AddRef(This)
   9427 #define ILockBytes_Release(This) (This)->lpVtbl->Release(This)
   9428 /*** ILockBytes methods ***/
   9429 #define ILockBytes_ReadAt(This,ulOffset,pv,cb,pcbRead) (This)->lpVtbl->ReadAt(This,ulOffset,pv,cb,pcbRead)
   9430 #define ILockBytes_WriteAt(This,ulOffset,pv,cb,pcbWritten) (This)->lpVtbl->WriteAt(This,ulOffset,pv,cb,pcbWritten)
   9431 #define ILockBytes_Flush(This) (This)->lpVtbl->Flush(This)
   9432 #define ILockBytes_SetSize(This,cb) (This)->lpVtbl->SetSize(This,cb)
   9433 #define ILockBytes_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   9434 #define ILockBytes_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   9435 #define ILockBytes_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   9436 #else
   9437 /*** IUnknown methods ***/
   9438 static inline HRESULT ILockBytes_QueryInterface(ILockBytes* This,REFIID riid,void **ppvObject) {
   9439     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9440 }
   9441 static inline ULONG ILockBytes_AddRef(ILockBytes* This) {
   9442     return This->lpVtbl->AddRef(This);
   9443 }
   9444 static inline ULONG ILockBytes_Release(ILockBytes* This) {
   9445     return This->lpVtbl->Release(This);
   9446 }
   9447 /*** ILockBytes methods ***/
   9448 static inline HRESULT ILockBytes_ReadAt(ILockBytes* This,ULARGE_INTEGER ulOffset,void *pv,ULONG cb,ULONG *pcbRead) {
   9449     return This->lpVtbl->ReadAt(This,ulOffset,pv,cb,pcbRead);
   9450 }
   9451 static inline HRESULT ILockBytes_WriteAt(ILockBytes* This,ULARGE_INTEGER ulOffset,const void *pv,ULONG cb,ULONG *pcbWritten) {
   9452     return This->lpVtbl->WriteAt(This,ulOffset,pv,cb,pcbWritten);
   9453 }
   9454 static inline HRESULT ILockBytes_Flush(ILockBytes* This) {
   9455     return This->lpVtbl->Flush(This);
   9456 }
   9457 static inline HRESULT ILockBytes_SetSize(ILockBytes* This,ULARGE_INTEGER cb) {
   9458     return This->lpVtbl->SetSize(This,cb);
   9459 }
   9460 static inline HRESULT ILockBytes_LockRegion(ILockBytes* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   9461     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   9462 }
   9463 static inline HRESULT ILockBytes_UnlockRegion(ILockBytes* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   9464     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   9465 }
   9466 static inline HRESULT ILockBytes_Stat(ILockBytes* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   9467     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   9468 }
   9469 #endif
   9470 #endif
   9471 
   9472 #endif
   9473 
   9474 HRESULT __stdcall ILockBytes_RemoteReadAt_Proxy(
   9475     ILockBytes* This,
   9476     ULARGE_INTEGER ulOffset,
   9477     byte *pv,
   9478     ULONG cb,
   9479     ULONG *pcbRead);
   9480 void __RPC_STUB ILockBytes_RemoteReadAt_Stub(
   9481     IRpcStubBuffer* This,
   9482     IRpcChannelBuffer* pRpcChannelBuffer,
   9483     PRPC_MESSAGE pRpcMessage,
   9484     DWORD* pdwStubPhase);
   9485 HRESULT STDMETHODCALLTYPE ILockBytes_RemoteWriteAt_Proxy(
   9486     ILockBytes* This,
   9487     ULARGE_INTEGER ulOffset,
   9488     const byte *pv,
   9489     ULONG cb,
   9490     ULONG *pcbWritten);
   9491 void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
   9492     IRpcStubBuffer* This,
   9493     IRpcChannelBuffer* pRpcChannelBuffer,
   9494     PRPC_MESSAGE pRpcMessage,
   9495     DWORD* pdwStubPhase);
   9496 HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
   9497     ILockBytes* This,
   9498     ULARGE_INTEGER ulOffset,
   9499     void *pv,
   9500     ULONG cb,
   9501     ULONG *pcbRead);
   9502 HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
   9503     ILockBytes* This,
   9504     ULARGE_INTEGER ulOffset,
   9505     byte *pv,
   9506     ULONG cb,
   9507     ULONG *pcbRead);
   9508 HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
   9509     ILockBytes* This,
   9510     ULARGE_INTEGER ulOffset,
   9511     const void *pv,
   9512     ULONG cb,
   9513     ULONG *pcbWritten);
   9514 HRESULT __RPC_STUB ILockBytes_WriteAt_Stub(
   9515     ILockBytes* This,
   9516     ULARGE_INTEGER ulOffset,
   9517     const byte *pv,
   9518     ULONG cb,
   9519     ULONG *pcbWritten);
   9520 
   9521 #endif  /* __ILockBytes_INTERFACE_DEFINED__ */
   9522 
   9523 /*****************************************************************************
   9524  * IEnumFORMATETC interface
   9525  */
   9526 #ifndef __IEnumFORMATETC_INTERFACE_DEFINED__
   9527 #define __IEnumFORMATETC_INTERFACE_DEFINED__
   9528 
   9529 typedef IEnumFORMATETC *LPENUMFORMATETC;
   9530 typedef struct tagDVTARGETDEVICE {
   9531     DWORD tdSize;
   9532     WORD tdDriverNameOffset;
   9533     WORD tdDeviceNameOffset;
   9534     WORD tdPortNameOffset;
   9535     WORD tdExtDevmodeOffset;
   9536     BYTE tdData[1];
   9537 } DVTARGETDEVICE;
   9538 typedef CLIPFORMAT *LPCLIPFORMAT;
   9539 typedef struct tagFORMATETC {
   9540     CLIPFORMAT cfFormat;
   9541     DVTARGETDEVICE *ptd;
   9542     DWORD dwAspect;
   9543     LONG lindex;
   9544     DWORD tymed;
   9545 } FORMATETC;
   9546 typedef struct tagFORMATETC *LPFORMATETC;
   9547 DEFINE_GUID(IID_IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   9548 #if defined(__cplusplus) && !defined(CINTERFACE)
   9549 MIDL_INTERFACE("00000103-0000-0000-c000-000000000046")
   9550 IEnumFORMATETC : public IUnknown
   9551 {
   9552     virtual HRESULT STDMETHODCALLTYPE Next(
   9553         ULONG celt,
   9554         FORMATETC *rgelt,
   9555         ULONG *pceltFetched) = 0;
   9556 
   9557     virtual HRESULT STDMETHODCALLTYPE Skip(
   9558         ULONG celt) = 0;
   9559 
   9560     virtual HRESULT STDMETHODCALLTYPE Reset(
   9561         ) = 0;
   9562 
   9563     virtual HRESULT STDMETHODCALLTYPE Clone(
   9564         IEnumFORMATETC **ppenum) = 0;
   9565 
   9566 };
   9567 #ifdef __CRT_UUID_DECL
   9568 __CRT_UUID_DECL(IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   9569 #endif
   9570 #else
   9571 typedef struct IEnumFORMATETCVtbl {
   9572     BEGIN_INTERFACE
   9573 
   9574     /*** IUnknown methods ***/
   9575     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9576         IEnumFORMATETC *This,
   9577         REFIID riid,
   9578         void **ppvObject);
   9579 
   9580     ULONG (STDMETHODCALLTYPE *AddRef)(
   9581         IEnumFORMATETC *This);
   9582 
   9583     ULONG (STDMETHODCALLTYPE *Release)(
   9584         IEnumFORMATETC *This);
   9585 
   9586     /*** IEnumFORMATETC methods ***/
   9587     HRESULT (STDMETHODCALLTYPE *Next)(
   9588         IEnumFORMATETC *This,
   9589         ULONG celt,
   9590         FORMATETC *rgelt,
   9591         ULONG *pceltFetched);
   9592 
   9593     HRESULT (STDMETHODCALLTYPE *Skip)(
   9594         IEnumFORMATETC *This,
   9595         ULONG celt);
   9596 
   9597     HRESULT (STDMETHODCALLTYPE *Reset)(
   9598         IEnumFORMATETC *This);
   9599 
   9600     HRESULT (STDMETHODCALLTYPE *Clone)(
   9601         IEnumFORMATETC *This,
   9602         IEnumFORMATETC **ppenum);
   9603 
   9604     END_INTERFACE
   9605 } IEnumFORMATETCVtbl;
   9606 
   9607 interface IEnumFORMATETC {
   9608     CONST_VTBL IEnumFORMATETCVtbl* lpVtbl;
   9609 };
   9610 
   9611 #ifdef COBJMACROS
   9612 #ifndef WIDL_C_INLINE_WRAPPERS
   9613 /*** IUnknown methods ***/
   9614 #define IEnumFORMATETC_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9615 #define IEnumFORMATETC_AddRef(This) (This)->lpVtbl->AddRef(This)
   9616 #define IEnumFORMATETC_Release(This) (This)->lpVtbl->Release(This)
   9617 /*** IEnumFORMATETC methods ***/
   9618 #define IEnumFORMATETC_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   9619 #define IEnumFORMATETC_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   9620 #define IEnumFORMATETC_Reset(This) (This)->lpVtbl->Reset(This)
   9621 #define IEnumFORMATETC_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   9622 #else
   9623 /*** IUnknown methods ***/
   9624 static inline HRESULT IEnumFORMATETC_QueryInterface(IEnumFORMATETC* This,REFIID riid,void **ppvObject) {
   9625     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9626 }
   9627 static inline ULONG IEnumFORMATETC_AddRef(IEnumFORMATETC* This) {
   9628     return This->lpVtbl->AddRef(This);
   9629 }
   9630 static inline ULONG IEnumFORMATETC_Release(IEnumFORMATETC* This) {
   9631     return This->lpVtbl->Release(This);
   9632 }
   9633 /*** IEnumFORMATETC methods ***/
   9634 static inline HRESULT IEnumFORMATETC_Next(IEnumFORMATETC* This,ULONG celt,FORMATETC *rgelt,ULONG *pceltFetched) {
   9635     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   9636 }
   9637 static inline HRESULT IEnumFORMATETC_Skip(IEnumFORMATETC* This,ULONG celt) {
   9638     return This->lpVtbl->Skip(This,celt);
   9639 }
   9640 static inline HRESULT IEnumFORMATETC_Reset(IEnumFORMATETC* This) {
   9641     return This->lpVtbl->Reset(This);
   9642 }
   9643 static inline HRESULT IEnumFORMATETC_Clone(IEnumFORMATETC* This,IEnumFORMATETC **ppenum) {
   9644     return This->lpVtbl->Clone(This,ppenum);
   9645 }
   9646 #endif
   9647 #endif
   9648 
   9649 #endif
   9650 
   9651 HRESULT STDMETHODCALLTYPE IEnumFORMATETC_RemoteNext_Proxy(
   9652     IEnumFORMATETC* This,
   9653     ULONG celt,
   9654     FORMATETC *rgelt,
   9655     ULONG *pceltFetched);
   9656 void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
   9657     IRpcStubBuffer* This,
   9658     IRpcChannelBuffer* pRpcChannelBuffer,
   9659     PRPC_MESSAGE pRpcMessage,
   9660     DWORD* pdwStubPhase);
   9661 HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
   9662     IEnumFORMATETC* This,
   9663     ULONG celt,
   9664     FORMATETC *rgelt,
   9665     ULONG *pceltFetched);
   9666 HRESULT __RPC_STUB IEnumFORMATETC_Next_Stub(
   9667     IEnumFORMATETC* This,
   9668     ULONG celt,
   9669     FORMATETC *rgelt,
   9670     ULONG *pceltFetched);
   9671 
   9672 #endif  /* __IEnumFORMATETC_INTERFACE_DEFINED__ */
   9673 
   9674 /*****************************************************************************
   9675  * IEnumSTATDATA interface
   9676  */
   9677 #ifndef __IEnumSTATDATA_INTERFACE_DEFINED__
   9678 #define __IEnumSTATDATA_INTERFACE_DEFINED__
   9679 
   9680 typedef IEnumSTATDATA *LPENUMSTATDATA;
   9681 typedef enum tagADVF {
   9682     ADVF_NODATA = 1,
   9683     ADVF_PRIMEFIRST = 2,
   9684     ADVF_ONLYONCE = 4,
   9685     ADVF_DATAONSTOP = 64,
   9686     ADVFCACHE_NOHANDLER = 8,
   9687     ADVFCACHE_FORCEBUILTIN = 16,
   9688     ADVFCACHE_ONSAVE = 32
   9689 } ADVF;
   9690 typedef struct tagSTATDATA {
   9691     FORMATETC formatetc;
   9692     DWORD advf;
   9693     IAdviseSink *pAdvSink;
   9694     DWORD dwConnection;
   9695 } STATDATA;
   9696 typedef STATDATA *LPSTATDATA;
   9697 DEFINE_GUID(IID_IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   9698 #if defined(__cplusplus) && !defined(CINTERFACE)
   9699 MIDL_INTERFACE("00000105-0000-0000-c000-000000000046")
   9700 IEnumSTATDATA : public IUnknown
   9701 {
   9702     virtual HRESULT STDMETHODCALLTYPE Next(
   9703         ULONG celt,
   9704         STATDATA *rgelt,
   9705         ULONG *pceltFetched) = 0;
   9706 
   9707     virtual HRESULT STDMETHODCALLTYPE Skip(
   9708         ULONG celt) = 0;
   9709 
   9710     virtual HRESULT STDMETHODCALLTYPE Reset(
   9711         ) = 0;
   9712 
   9713     virtual HRESULT STDMETHODCALLTYPE Clone(
   9714         IEnumSTATDATA **ppenum) = 0;
   9715 
   9716 };
   9717 #ifdef __CRT_UUID_DECL
   9718 __CRT_UUID_DECL(IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   9719 #endif
   9720 #else
   9721 typedef struct IEnumSTATDATAVtbl {
   9722     BEGIN_INTERFACE
   9723 
   9724     /*** IUnknown methods ***/
   9725     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9726         IEnumSTATDATA *This,
   9727         REFIID riid,
   9728         void **ppvObject);
   9729 
   9730     ULONG (STDMETHODCALLTYPE *AddRef)(
   9731         IEnumSTATDATA *This);
   9732 
   9733     ULONG (STDMETHODCALLTYPE *Release)(
   9734         IEnumSTATDATA *This);
   9735 
   9736     /*** IEnumSTATDATA methods ***/
   9737     HRESULT (STDMETHODCALLTYPE *Next)(
   9738         IEnumSTATDATA *This,
   9739         ULONG celt,
   9740         STATDATA *rgelt,
   9741         ULONG *pceltFetched);
   9742 
   9743     HRESULT (STDMETHODCALLTYPE *Skip)(
   9744         IEnumSTATDATA *This,
   9745         ULONG celt);
   9746 
   9747     HRESULT (STDMETHODCALLTYPE *Reset)(
   9748         IEnumSTATDATA *This);
   9749 
   9750     HRESULT (STDMETHODCALLTYPE *Clone)(
   9751         IEnumSTATDATA *This,
   9752         IEnumSTATDATA **ppenum);
   9753 
   9754     END_INTERFACE
   9755 } IEnumSTATDATAVtbl;
   9756 
   9757 interface IEnumSTATDATA {
   9758     CONST_VTBL IEnumSTATDATAVtbl* lpVtbl;
   9759 };
   9760 
   9761 #ifdef COBJMACROS
   9762 #ifndef WIDL_C_INLINE_WRAPPERS
   9763 /*** IUnknown methods ***/
   9764 #define IEnumSTATDATA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9765 #define IEnumSTATDATA_AddRef(This) (This)->lpVtbl->AddRef(This)
   9766 #define IEnumSTATDATA_Release(This) (This)->lpVtbl->Release(This)
   9767 /*** IEnumSTATDATA methods ***/
   9768 #define IEnumSTATDATA_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   9769 #define IEnumSTATDATA_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   9770 #define IEnumSTATDATA_Reset(This) (This)->lpVtbl->Reset(This)
   9771 #define IEnumSTATDATA_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   9772 #else
   9773 /*** IUnknown methods ***/
   9774 static inline HRESULT IEnumSTATDATA_QueryInterface(IEnumSTATDATA* This,REFIID riid,void **ppvObject) {
   9775     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9776 }
   9777 static inline ULONG IEnumSTATDATA_AddRef(IEnumSTATDATA* This) {
   9778     return This->lpVtbl->AddRef(This);
   9779 }
   9780 static inline ULONG IEnumSTATDATA_Release(IEnumSTATDATA* This) {
   9781     return This->lpVtbl->Release(This);
   9782 }
   9783 /*** IEnumSTATDATA methods ***/
   9784 static inline HRESULT IEnumSTATDATA_Next(IEnumSTATDATA* This,ULONG celt,STATDATA *rgelt,ULONG *pceltFetched) {
   9785     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   9786 }
   9787 static inline HRESULT IEnumSTATDATA_Skip(IEnumSTATDATA* This,ULONG celt) {
   9788     return This->lpVtbl->Skip(This,celt);
   9789 }
   9790 static inline HRESULT IEnumSTATDATA_Reset(IEnumSTATDATA* This) {
   9791     return This->lpVtbl->Reset(This);
   9792 }
   9793 static inline HRESULT IEnumSTATDATA_Clone(IEnumSTATDATA* This,IEnumSTATDATA **ppenum) {
   9794     return This->lpVtbl->Clone(This,ppenum);
   9795 }
   9796 #endif
   9797 #endif
   9798 
   9799 #endif
   9800 
   9801 HRESULT STDMETHODCALLTYPE IEnumSTATDATA_RemoteNext_Proxy(
   9802     IEnumSTATDATA* This,
   9803     ULONG celt,
   9804     STATDATA *rgelt,
   9805     ULONG *pceltFetched);
   9806 void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
   9807     IRpcStubBuffer* This,
   9808     IRpcChannelBuffer* pRpcChannelBuffer,
   9809     PRPC_MESSAGE pRpcMessage,
   9810     DWORD* pdwStubPhase);
   9811 HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
   9812     IEnumSTATDATA* This,
   9813     ULONG celt,
   9814     STATDATA *rgelt,
   9815     ULONG *pceltFetched);
   9816 HRESULT __RPC_STUB IEnumSTATDATA_Next_Stub(
   9817     IEnumSTATDATA* This,
   9818     ULONG celt,
   9819     STATDATA *rgelt,
   9820     ULONG *pceltFetched);
   9821 
   9822 #endif  /* __IEnumSTATDATA_INTERFACE_DEFINED__ */
   9823 
   9824 /*****************************************************************************
   9825  * IRootStorage interface
   9826  */
   9827 #ifndef __IRootStorage_INTERFACE_DEFINED__
   9828 #define __IRootStorage_INTERFACE_DEFINED__
   9829 
   9830 typedef IRootStorage *LPROOTSTORAGE;
   9831 DEFINE_GUID(IID_IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   9832 #if defined(__cplusplus) && !defined(CINTERFACE)
   9833 MIDL_INTERFACE("00000012-0000-0000-c000-000000000046")
   9834 IRootStorage : public IUnknown
   9835 {
   9836     virtual HRESULT STDMETHODCALLTYPE SwitchToFile(
   9837         LPOLESTR pszFile) = 0;
   9838 
   9839 };
   9840 #ifdef __CRT_UUID_DECL
   9841 __CRT_UUID_DECL(IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   9842 #endif
   9843 #else
   9844 typedef struct IRootStorageVtbl {
   9845     BEGIN_INTERFACE
   9846 
   9847     /*** IUnknown methods ***/
   9848     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9849         IRootStorage *This,
   9850         REFIID riid,
   9851         void **ppvObject);
   9852 
   9853     ULONG (STDMETHODCALLTYPE *AddRef)(
   9854         IRootStorage *This);
   9855 
   9856     ULONG (STDMETHODCALLTYPE *Release)(
   9857         IRootStorage *This);
   9858 
   9859     /*** IRootStorage methods ***/
   9860     HRESULT (STDMETHODCALLTYPE *SwitchToFile)(
   9861         IRootStorage *This,
   9862         LPOLESTR pszFile);
   9863 
   9864     END_INTERFACE
   9865 } IRootStorageVtbl;
   9866 
   9867 interface IRootStorage {
   9868     CONST_VTBL IRootStorageVtbl* lpVtbl;
   9869 };
   9870 
   9871 #ifdef COBJMACROS
   9872 #ifndef WIDL_C_INLINE_WRAPPERS
   9873 /*** IUnknown methods ***/
   9874 #define IRootStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9875 #define IRootStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
   9876 #define IRootStorage_Release(This) (This)->lpVtbl->Release(This)
   9877 /*** IRootStorage methods ***/
   9878 #define IRootStorage_SwitchToFile(This,pszFile) (This)->lpVtbl->SwitchToFile(This,pszFile)
   9879 #else
   9880 /*** IUnknown methods ***/
   9881 static inline HRESULT IRootStorage_QueryInterface(IRootStorage* This,REFIID riid,void **ppvObject) {
   9882     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9883 }
   9884 static inline ULONG IRootStorage_AddRef(IRootStorage* This) {
   9885     return This->lpVtbl->AddRef(This);
   9886 }
   9887 static inline ULONG IRootStorage_Release(IRootStorage* This) {
   9888     return This->lpVtbl->Release(This);
   9889 }
   9890 /*** IRootStorage methods ***/
   9891 static inline HRESULT IRootStorage_SwitchToFile(IRootStorage* This,LPOLESTR pszFile) {
   9892     return This->lpVtbl->SwitchToFile(This,pszFile);
   9893 }
   9894 #endif
   9895 #endif
   9896 
   9897 #endif
   9898 
   9899 
   9900 #endif  /* __IRootStorage_INTERFACE_DEFINED__ */
   9901 
   9902 /*****************************************************************************
   9903  * IAdviseSink interface
   9904  */
   9905 #ifndef __IAdviseSink_INTERFACE_DEFINED__
   9906 #define __IAdviseSink_INTERFACE_DEFINED__
   9907 
   9908 typedef IAdviseSink *LPADVISESINK;
   9909 typedef enum tagTYMED {
   9910     TYMED_HGLOBAL = 1,
   9911     TYMED_FILE = 2,
   9912     TYMED_ISTREAM = 4,
   9913     TYMED_ISTORAGE = 8,
   9914     TYMED_GDI = 16,
   9915     TYMED_MFPICT = 32,
   9916     TYMED_ENHMF = 64,
   9917     TYMED_NULL = 0
   9918 } TYMED;
   9919 typedef struct tagRemSTGMEDIUM {
   9920     DWORD tymed;
   9921     DWORD dwHandleType;
   9922     ULONG pData;
   9923     ULONG pUnkForRelease;
   9924     ULONG cbData;
   9925     byte data[1];
   9926 } RemSTGMEDIUM;
   9927 #ifdef NONAMELESSUNION
   9928 typedef struct tagSTGMEDIUM {
   9929 DWORD tymed;
   9930 union {
   9931 HBITMAP hBitmap;
   9932 HMETAFILEPICT hMetaFilePict;
   9933 HENHMETAFILE hEnhMetaFile;
   9934 HGLOBAL hGlobal;
   9935 LPOLESTR lpszFileName;
   9936 IStream *pstm;
   9937 IStorage *pstg;
   9938 } u;
   9939 IUnknown *pUnkForRelease;
   9940 }uSTGMEDIUM;
   9941 #else
   9942 typedef struct tagSTGMEDIUM {
   9943     DWORD tymed;
   9944     union {
   9945         HBITMAP hBitmap;
   9946         HMETAFILEPICT hMetaFilePict;
   9947         HENHMETAFILE hEnhMetaFile;
   9948         HGLOBAL hGlobal;
   9949         LPOLESTR lpszFileName;
   9950         IStream *pstm;
   9951         IStorage *pstg;
   9952     } DUMMYUNIONNAME;
   9953     IUnknown *pUnkForRelease;
   9954 } uSTGMEDIUM;
   9955 #endif
   9956 typedef struct _GDI_OBJECT {
   9957     DWORD ObjectType;
   9958     union __WIDL_objidl_generated_name_0000000C {
   9959         wireHBITMAP hBitmap;
   9960         wireHPALETTE hPalette;
   9961         wireHGLOBAL hGeneric;
   9962     } u;
   9963 } GDI_OBJECT;
   9964 typedef struct _userSTGMEDIUM {
   9965     struct _STGMEDIUM_UNION {
   9966         DWORD tymed;
   9967         union __WIDL_objidl_generated_name_0000000D {
   9968             wireHMETAFILEPICT hMetaFilePict;
   9969             wireHENHMETAFILE hHEnhMetaFile;
   9970             GDI_OBJECT *hGdiHandle;
   9971             wireHGLOBAL hGlobal;
   9972             LPOLESTR lpszFileName;
   9973             BYTE_BLOB *pstm;
   9974             BYTE_BLOB *pstg;
   9975         } u;
   9976     } DUMMYUNIONNAME;
   9977     IUnknown *pUnkForRelease;
   9978 } userSTGMEDIUM;
   9979 typedef userSTGMEDIUM *wireSTGMEDIUM;
   9980 typedef uSTGMEDIUM STGMEDIUM;
   9981 typedef userSTGMEDIUM *wireASYNC_STGMEDIUM;
   9982 typedef STGMEDIUM ASYNC_STGMEDIUM;
   9983 typedef STGMEDIUM *LPSTGMEDIUM;
   9984 typedef struct _userFLAG_STGMEDIUM {
   9985     LONG ContextFlags;
   9986     LONG fPassOwnership;
   9987     userSTGMEDIUM Stgmed;
   9988 } userFLAG_STGMEDIUM;
   9989 typedef userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
   9990 typedef struct _FLAG_STGMEDIUM {
   9991     LONG ContextFlags;
   9992     LONG fPassOwnership;
   9993     STGMEDIUM Stgmed;
   9994 } FLAG_STGMEDIUM;
   9995 DEFINE_GUID(IID_IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   9996 #if defined(__cplusplus) && !defined(CINTERFACE)
   9997 MIDL_INTERFACE("0000010f-0000-0000-c000-000000000046")
   9998 IAdviseSink : public IUnknown
   9999 {
  10000     virtual void STDMETHODCALLTYPE OnDataChange(
  10001         FORMATETC *pFormatetc,
  10002         STGMEDIUM *pStgmed) = 0;
  10003 
  10004     virtual void STDMETHODCALLTYPE OnViewChange(
  10005         DWORD dwAspect,
  10006         LONG lindex) = 0;
  10007 
  10008     virtual void STDMETHODCALLTYPE OnRename(
  10009         IMoniker *pmk) = 0;
  10010 
  10011     virtual void STDMETHODCALLTYPE OnSave(
  10012         ) = 0;
  10013 
  10014     virtual void STDMETHODCALLTYPE OnClose(
  10015         ) = 0;
  10016 
  10017 };
  10018 #ifdef __CRT_UUID_DECL
  10019 __CRT_UUID_DECL(IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  10020 #endif
  10021 #else
  10022 typedef struct IAdviseSinkVtbl {
  10023     BEGIN_INTERFACE
  10024 
  10025     /*** IUnknown methods ***/
  10026     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10027         IAdviseSink *This,
  10028         REFIID riid,
  10029         void **ppvObject);
  10030 
  10031     ULONG (STDMETHODCALLTYPE *AddRef)(
  10032         IAdviseSink *This);
  10033 
  10034     ULONG (STDMETHODCALLTYPE *Release)(
  10035         IAdviseSink *This);
  10036 
  10037     /*** IAdviseSink methods ***/
  10038     void (STDMETHODCALLTYPE *OnDataChange)(
  10039         IAdviseSink *This,
  10040         FORMATETC *pFormatetc,
  10041         STGMEDIUM *pStgmed);
  10042 
  10043     void (STDMETHODCALLTYPE *OnViewChange)(
  10044         IAdviseSink *This,
  10045         DWORD dwAspect,
  10046         LONG lindex);
  10047 
  10048     void (STDMETHODCALLTYPE *OnRename)(
  10049         IAdviseSink *This,
  10050         IMoniker *pmk);
  10051 
  10052     void (STDMETHODCALLTYPE *OnSave)(
  10053         IAdviseSink *This);
  10054 
  10055     void (STDMETHODCALLTYPE *OnClose)(
  10056         IAdviseSink *This);
  10057 
  10058     END_INTERFACE
  10059 } IAdviseSinkVtbl;
  10060 
  10061 interface IAdviseSink {
  10062     CONST_VTBL IAdviseSinkVtbl* lpVtbl;
  10063 };
  10064 
  10065 #ifdef COBJMACROS
  10066 #ifndef WIDL_C_INLINE_WRAPPERS
  10067 /*** IUnknown methods ***/
  10068 #define IAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10069 #define IAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
  10070 #define IAdviseSink_Release(This) (This)->lpVtbl->Release(This)
  10071 /*** IAdviseSink methods ***/
  10072 #define IAdviseSink_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->OnDataChange(This,pFormatetc,pStgmed)
  10073 #define IAdviseSink_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->OnViewChange(This,dwAspect,lindex)
  10074 #define IAdviseSink_OnRename(This,pmk) (This)->lpVtbl->OnRename(This,pmk)
  10075 #define IAdviseSink_OnSave(This) (This)->lpVtbl->OnSave(This)
  10076 #define IAdviseSink_OnClose(This) (This)->lpVtbl->OnClose(This)
  10077 #else
  10078 /*** IUnknown methods ***/
  10079 static inline HRESULT IAdviseSink_QueryInterface(IAdviseSink* This,REFIID riid,void **ppvObject) {
  10080     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10081 }
  10082 static inline ULONG IAdviseSink_AddRef(IAdviseSink* This) {
  10083     return This->lpVtbl->AddRef(This);
  10084 }
  10085 static inline ULONG IAdviseSink_Release(IAdviseSink* This) {
  10086     return This->lpVtbl->Release(This);
  10087 }
  10088 /*** IAdviseSink methods ***/
  10089 static inline void IAdviseSink_OnDataChange(IAdviseSink* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
  10090     This->lpVtbl->OnDataChange(This,pFormatetc,pStgmed);
  10091 }
  10092 static inline void IAdviseSink_OnViewChange(IAdviseSink* This,DWORD dwAspect,LONG lindex) {
  10093     This->lpVtbl->OnViewChange(This,dwAspect,lindex);
  10094 }
  10095 static inline void IAdviseSink_OnRename(IAdviseSink* This,IMoniker *pmk) {
  10096     This->lpVtbl->OnRename(This,pmk);
  10097 }
  10098 static inline void IAdviseSink_OnSave(IAdviseSink* This) {
  10099     This->lpVtbl->OnSave(This);
  10100 }
  10101 static inline void IAdviseSink_OnClose(IAdviseSink* This) {
  10102     This->lpVtbl->OnClose(This);
  10103 }
  10104 #endif
  10105 #endif
  10106 
  10107 #endif
  10108 
  10109 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnDataChange_Proxy(
  10110     IAdviseSink* This,
  10111     FORMATETC *pFormatetc,
  10112     ASYNC_STGMEDIUM *pStgmed);
  10113 void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub(
  10114     IRpcStubBuffer* This,
  10115     IRpcChannelBuffer* pRpcChannelBuffer,
  10116     PRPC_MESSAGE pRpcMessage,
  10117     DWORD* pdwStubPhase);
  10118 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnViewChange_Proxy(
  10119     IAdviseSink* This,
  10120     DWORD dwAspect,
  10121     LONG lindex);
  10122 void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub(
  10123     IRpcStubBuffer* This,
  10124     IRpcChannelBuffer* pRpcChannelBuffer,
  10125     PRPC_MESSAGE pRpcMessage,
  10126     DWORD* pdwStubPhase);
  10127 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnRename_Proxy(
  10128     IAdviseSink* This,
  10129     IMoniker *pmk);
  10130 void __RPC_STUB IAdviseSink_RemoteOnRename_Stub(
  10131     IRpcStubBuffer* This,
  10132     IRpcChannelBuffer* pRpcChannelBuffer,
  10133     PRPC_MESSAGE pRpcMessage,
  10134     DWORD* pdwStubPhase);
  10135 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnSave_Proxy(
  10136     IAdviseSink* This);
  10137 void __RPC_STUB IAdviseSink_RemoteOnSave_Stub(
  10138     IRpcStubBuffer* This,
  10139     IRpcChannelBuffer* pRpcChannelBuffer,
  10140     PRPC_MESSAGE pRpcMessage,
  10141     DWORD* pdwStubPhase);
  10142 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnClose_Proxy(
  10143     IAdviseSink* This);
  10144 void __RPC_STUB IAdviseSink_RemoteOnClose_Stub(
  10145     IRpcStubBuffer* This,
  10146     IRpcChannelBuffer* pRpcChannelBuffer,
  10147     PRPC_MESSAGE pRpcMessage,
  10148     DWORD* pdwStubPhase);
  10149 void CALLBACK IAdviseSink_OnDataChange_Proxy(
  10150     IAdviseSink* This,
  10151     FORMATETC *pFormatetc,
  10152     STGMEDIUM *pStgmed);
  10153 HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
  10154     IAdviseSink* This,
  10155     FORMATETC *pFormatetc,
  10156     ASYNC_STGMEDIUM *pStgmed);
  10157 void CALLBACK IAdviseSink_OnViewChange_Proxy(
  10158     IAdviseSink* This,
  10159     DWORD dwAspect,
  10160     LONG lindex);
  10161 HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
  10162     IAdviseSink* This,
  10163     DWORD dwAspect,
  10164     LONG lindex);
  10165 void CALLBACK IAdviseSink_OnRename_Proxy(
  10166     IAdviseSink* This,
  10167     IMoniker *pmk);
  10168 HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
  10169     IAdviseSink* This,
  10170     IMoniker *pmk);
  10171 void CALLBACK IAdviseSink_OnSave_Proxy(
  10172     IAdviseSink* This);
  10173 HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
  10174     IAdviseSink* This);
  10175 void CALLBACK IAdviseSink_OnClose_Proxy(
  10176     IAdviseSink* This);
  10177 HRESULT __RPC_STUB IAdviseSink_OnClose_Stub(
  10178     IAdviseSink* This);
  10179 
  10180 #endif  /* __IAdviseSink_INTERFACE_DEFINED__ */
  10181 
  10182 /*****************************************************************************
  10183  * AsyncIAdviseSink interface
  10184  */
  10185 #ifndef __AsyncIAdviseSink_INTERFACE_DEFINED__
  10186 #define __AsyncIAdviseSink_INTERFACE_DEFINED__
  10187 
  10188 DEFINE_GUID(IID_AsyncIAdviseSink, 0x00000150, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  10189 #if defined(__cplusplus) && !defined(CINTERFACE)
  10190 MIDL_INTERFACE("00000150-0000-0000-c000-000000000046")
  10191 AsyncIAdviseSink : public IUnknown
  10192 {
  10193     virtual void STDMETHODCALLTYPE Begin_OnDataChange(
  10194         FORMATETC *pFormatetc,
  10195         STGMEDIUM *pStgmed) = 0;
  10196 
  10197     virtual void STDMETHODCALLTYPE Finish_OnDataChange(
  10198         ) = 0;
  10199 
  10200     virtual void STDMETHODCALLTYPE Begin_OnViewChange(
  10201         DWORD dwAspect,
  10202         LONG lindex) = 0;
  10203 
  10204     virtual void STDMETHODCALLTYPE Finish_OnViewChange(
  10205         ) = 0;
  10206 
  10207     virtual void STDMETHODCALLTYPE Begin_OnRename(
  10208         IMoniker *pmk) = 0;
  10209 
  10210     virtual void STDMETHODCALLTYPE Finish_OnRename(
  10211         ) = 0;
  10212 
  10213     virtual void STDMETHODCALLTYPE Begin_OnSave(
  10214         ) = 0;
  10215 
  10216     virtual void STDMETHODCALLTYPE Finish_OnSave(
  10217         ) = 0;
  10218 
  10219     virtual void STDMETHODCALLTYPE Begin_OnClose(
  10220         ) = 0;
  10221 
  10222     virtual void STDMETHODCALLTYPE Finish_OnClose(
  10223         ) = 0;
  10224 
  10225 };
  10226 #ifdef __CRT_UUID_DECL
  10227 __CRT_UUID_DECL(AsyncIAdviseSink, 0x00000150, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  10228 #endif
  10229 #else
  10230 typedef struct AsyncIAdviseSinkVtbl {
  10231     BEGIN_INTERFACE
  10232 
  10233     /*** IUnknown methods ***/
  10234     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10235         AsyncIAdviseSink *This,
  10236         REFIID riid,
  10237         void **ppvObject);
  10238 
  10239     ULONG (STDMETHODCALLTYPE *AddRef)(
  10240         AsyncIAdviseSink *This);
  10241 
  10242     ULONG (STDMETHODCALLTYPE *Release)(
  10243         AsyncIAdviseSink *This);
  10244 
  10245     /*** AsyncIAdviseSink methods ***/
  10246     void (STDMETHODCALLTYPE *Begin_OnDataChange)(
  10247         AsyncIAdviseSink *This,
  10248         FORMATETC *pFormatetc,
  10249         STGMEDIUM *pStgmed);
  10250 
  10251     void (STDMETHODCALLTYPE *Finish_OnDataChange)(
  10252         AsyncIAdviseSink *This);
  10253 
  10254     void (STDMETHODCALLTYPE *Begin_OnViewChange)(
  10255         AsyncIAdviseSink *This,
  10256         DWORD dwAspect,
  10257         LONG lindex);
  10258 
  10259     void (STDMETHODCALLTYPE *Finish_OnViewChange)(
  10260         AsyncIAdviseSink *This);
  10261 
  10262     void (STDMETHODCALLTYPE *Begin_OnRename)(
  10263         AsyncIAdviseSink *This,
  10264         IMoniker *pmk);
  10265 
  10266     void (STDMETHODCALLTYPE *Finish_OnRename)(
  10267         AsyncIAdviseSink *This);
  10268 
  10269     void (STDMETHODCALLTYPE *Begin_OnSave)(
  10270         AsyncIAdviseSink *This);
  10271 
  10272     void (STDMETHODCALLTYPE *Finish_OnSave)(
  10273         AsyncIAdviseSink *This);
  10274 
  10275     void (STDMETHODCALLTYPE *Begin_OnClose)(
  10276         AsyncIAdviseSink *This);
  10277 
  10278     void (STDMETHODCALLTYPE *Finish_OnClose)(
  10279         AsyncIAdviseSink *This);
  10280 
  10281     END_INTERFACE
  10282 } AsyncIAdviseSinkVtbl;
  10283 
  10284 interface AsyncIAdviseSink {
  10285     CONST_VTBL AsyncIAdviseSinkVtbl* lpVtbl;
  10286 };
  10287 
  10288 #ifdef COBJMACROS
  10289 #ifndef WIDL_C_INLINE_WRAPPERS
  10290 /*** IUnknown methods ***/
  10291 #define AsyncIAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10292 #define AsyncIAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
  10293 #define AsyncIAdviseSink_Release(This) (This)->lpVtbl->Release(This)
  10294 /*** AsyncIAdviseSink methods ***/
  10295 #define AsyncIAdviseSink_Begin_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed)
  10296 #define AsyncIAdviseSink_Finish_OnDataChange(This) (This)->lpVtbl->Finish_OnDataChange(This)
  10297 #define AsyncIAdviseSink_Begin_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex)
  10298 #define AsyncIAdviseSink_Finish_OnViewChange(This) (This)->lpVtbl->Finish_OnViewChange(This)
  10299 #define AsyncIAdviseSink_Begin_OnRename(This,pmk) (This)->lpVtbl->Begin_OnRename(This,pmk)
  10300 #define AsyncIAdviseSink_Finish_OnRename(This) (This)->lpVtbl->Finish_OnRename(This)
  10301 #define AsyncIAdviseSink_Begin_OnSave(This) (This)->lpVtbl->Begin_OnSave(This)
  10302 #define AsyncIAdviseSink_Finish_OnSave(This) (This)->lpVtbl->Finish_OnSave(This)
  10303 #define AsyncIAdviseSink_Begin_OnClose(This) (This)->lpVtbl->Begin_OnClose(This)
  10304 #define AsyncIAdviseSink_Finish_OnClose(This) (This)->lpVtbl->Finish_OnClose(This)
  10305 #else
  10306 /*** IUnknown methods ***/
  10307 static inline HRESULT AsyncIAdviseSink_QueryInterface(AsyncIAdviseSink* This,REFIID riid,void **ppvObject) {
  10308     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10309 }
  10310 static inline ULONG AsyncIAdviseSink_AddRef(AsyncIAdviseSink* This) {
  10311     return This->lpVtbl->AddRef(This);
  10312 }
  10313 static inline ULONG AsyncIAdviseSink_Release(AsyncIAdviseSink* This) {
  10314     return This->lpVtbl->Release(This);
  10315 }
  10316 /*** AsyncIAdviseSink methods ***/
  10317 static inline void AsyncIAdviseSink_Begin_OnDataChange(AsyncIAdviseSink* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
  10318     This->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed);
  10319 }
  10320 static inline void AsyncIAdviseSink_Finish_OnDataChange(AsyncIAdviseSink* This) {
  10321     This->lpVtbl->Finish_OnDataChange(This);
  10322 }
  10323 static inline void AsyncIAdviseSink_Begin_OnViewChange(AsyncIAdviseSink* This,DWORD dwAspect,LONG lindex) {
  10324     This->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex);
  10325 }
  10326 static inline void AsyncIAdviseSink_Finish_OnViewChange(AsyncIAdviseSink* This) {
  10327     This->lpVtbl->Finish_OnViewChange(This);
  10328 }
  10329 static inline void AsyncIAdviseSink_Begin_OnRename(AsyncIAdviseSink* This,IMoniker *pmk) {
  10330     This->lpVtbl->Begin_OnRename(This,pmk);
  10331 }
  10332 static inline void AsyncIAdviseSink_Finish_OnRename(AsyncIAdviseSink* This) {
  10333     This->lpVtbl->Finish_OnRename(This);
  10334 }
  10335 static inline void AsyncIAdviseSink_Begin_OnSave(AsyncIAdviseSink* This) {
  10336     This->lpVtbl->Begin_OnSave(This);
  10337 }
  10338 static inline void AsyncIAdviseSink_Finish_OnSave(AsyncIAdviseSink* This) {
  10339     This->lpVtbl->Finish_OnSave(This);
  10340 }
  10341 static inline void AsyncIAdviseSink_Begin_OnClose(AsyncIAdviseSink* This) {
  10342     This->lpVtbl->Begin_OnClose(This);
  10343 }
  10344 static inline void AsyncIAdviseSink_Finish_OnClose(AsyncIAdviseSink* This) {
  10345     This->lpVtbl->Finish_OnClose(This);
  10346 }
  10347 #endif
  10348 #endif
  10349 
  10350 #endif
  10351 
  10352 
  10353 #endif  /* __AsyncIAdviseSink_INTERFACE_DEFINED__ */
  10354 
  10355 #endif
  10356 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  10357 /*****************************************************************************
  10358  * IAdviseSink2 interface
  10359  */
  10360 #ifndef __IAdviseSink2_INTERFACE_DEFINED__
  10361 #define __IAdviseSink2_INTERFACE_DEFINED__
  10362 
  10363 typedef IAdviseSink2 *LPADVISESINK2;
  10364 DEFINE_GUID(IID_IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  10365 #if defined(__cplusplus) && !defined(CINTERFACE)
  10366 MIDL_INTERFACE("00000125-0000-0000-c000-000000000046")
  10367 IAdviseSink2 : public IAdviseSink
  10368 {
  10369     virtual void STDMETHODCALLTYPE OnLinkSrcChange(
  10370         IMoniker *pmk) = 0;
  10371 
  10372 };
  10373 #ifdef __CRT_UUID_DECL
  10374 __CRT_UUID_DECL(IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  10375 #endif
  10376 #else
  10377 typedef struct IAdviseSink2Vtbl {
  10378     BEGIN_INTERFACE
  10379 
  10380     /*** IUnknown methods ***/
  10381     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10382         IAdviseSink2 *This,
  10383         REFIID riid,
  10384         void **ppvObject);
  10385 
  10386     ULONG (STDMETHODCALLTYPE *AddRef)(
  10387         IAdviseSink2 *This);
  10388 
  10389     ULONG (STDMETHODCALLTYPE *Release)(
  10390         IAdviseSink2 *This);
  10391 
  10392     /*** IAdviseSink methods ***/
  10393     void (STDMETHODCALLTYPE *OnDataChange)(
  10394         IAdviseSink2 *This,
  10395         FORMATETC *pFormatetc,
  10396         STGMEDIUM *pStgmed);
  10397 
  10398     void (STDMETHODCALLTYPE *OnViewChange)(
  10399         IAdviseSink2 *This,
  10400         DWORD dwAspect,
  10401         LONG lindex);
  10402 
  10403     void (STDMETHODCALLTYPE *OnRename)(
  10404         IAdviseSink2 *This,
  10405         IMoniker *pmk);
  10406 
  10407     void (STDMETHODCALLTYPE *OnSave)(
  10408         IAdviseSink2 *This);
  10409 
  10410     void (STDMETHODCALLTYPE *OnClose)(
  10411         IAdviseSink2 *This);
  10412 
  10413     /*** IAdviseSink2 methods ***/
  10414     void (STDMETHODCALLTYPE *OnLinkSrcChange)(
  10415         IAdviseSink2 *This,
  10416         IMoniker *pmk);
  10417 
  10418     END_INTERFACE
  10419 } IAdviseSink2Vtbl;
  10420 
  10421 interface IAdviseSink2 {
  10422     CONST_VTBL IAdviseSink2Vtbl* lpVtbl;
  10423 };
  10424 
  10425 #ifdef COBJMACROS
  10426 #ifndef WIDL_C_INLINE_WRAPPERS
  10427 /*** IUnknown methods ***/
  10428 #define IAdviseSink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10429 #define IAdviseSink2_AddRef(This) (This)->lpVtbl->AddRef(This)
  10430 #define IAdviseSink2_Release(This) (This)->lpVtbl->Release(This)
  10431 /*** IAdviseSink methods ***/
  10432 #define IAdviseSink2_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->OnDataChange(This,pFormatetc,pStgmed)
  10433 #define IAdviseSink2_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->OnViewChange(This,dwAspect,lindex)
  10434 #define IAdviseSink2_OnRename(This,pmk) (This)->lpVtbl->OnRename(This,pmk)
  10435 #define IAdviseSink2_OnSave(This) (This)->lpVtbl->OnSave(This)
  10436 #define IAdviseSink2_OnClose(This) (This)->lpVtbl->OnClose(This)
  10437 /*** IAdviseSink2 methods ***/
  10438 #define IAdviseSink2_OnLinkSrcChange(This,pmk) (This)->lpVtbl->OnLinkSrcChange(This,pmk)
  10439 #else
  10440 /*** IUnknown methods ***/
  10441 static inline HRESULT IAdviseSink2_QueryInterface(IAdviseSink2* This,REFIID riid,void **ppvObject) {
  10442     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10443 }
  10444 static inline ULONG IAdviseSink2_AddRef(IAdviseSink2* This) {
  10445     return This->lpVtbl->AddRef(This);
  10446 }
  10447 static inline ULONG IAdviseSink2_Release(IAdviseSink2* This) {
  10448     return This->lpVtbl->Release(This);
  10449 }
  10450 /*** IAdviseSink methods ***/
  10451 static inline void IAdviseSink2_OnDataChange(IAdviseSink2* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
  10452     This->lpVtbl->OnDataChange(This,pFormatetc,pStgmed);
  10453 }
  10454 static inline void IAdviseSink2_OnViewChange(IAdviseSink2* This,DWORD dwAspect,LONG lindex) {
  10455     This->lpVtbl->OnViewChange(This,dwAspect,lindex);
  10456 }
  10457 static inline void IAdviseSink2_OnRename(IAdviseSink2* This,IMoniker *pmk) {
  10458     This->lpVtbl->OnRename(This,pmk);
  10459 }
  10460 static inline void IAdviseSink2_OnSave(IAdviseSink2* This) {
  10461     This->lpVtbl->OnSave(This);
  10462 }
  10463 static inline void IAdviseSink2_OnClose(IAdviseSink2* This) {
  10464     This->lpVtbl->OnClose(This);
  10465 }
  10466 /*** IAdviseSink2 methods ***/
  10467 static inline void IAdviseSink2_OnLinkSrcChange(IAdviseSink2* This,IMoniker *pmk) {
  10468     This->lpVtbl->OnLinkSrcChange(This,pmk);
  10469 }
  10470 #endif
  10471 #endif
  10472 
  10473 #endif
  10474 
  10475 HRESULT STDMETHODCALLTYPE IAdviseSink2_RemoteOnLinkSrcChange_Proxy(
  10476     IAdviseSink2* This,
  10477     IMoniker *pmk);
  10478 void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub(
  10479     IRpcStubBuffer* This,
  10480     IRpcChannelBuffer* pRpcChannelBuffer,
  10481     PRPC_MESSAGE pRpcMessage,
  10482     DWORD* pdwStubPhase);
  10483 void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
  10484     IAdviseSink2* This,
  10485     IMoniker *pmk);
  10486 HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
  10487     IAdviseSink2* This,
  10488     IMoniker *pmk);
  10489 
  10490 #endif  /* __IAdviseSink2_INTERFACE_DEFINED__ */
  10491 
  10492 /*****************************************************************************
  10493  * AsyncIAdviseSink2 interface
  10494  */
  10495 #ifndef __AsyncIAdviseSink2_INTERFACE_DEFINED__
  10496 #define __AsyncIAdviseSink2_INTERFACE_DEFINED__
  10497 
  10498 DEFINE_GUID(IID_AsyncIAdviseSink2, 0x00000151, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  10499 #if defined(__cplusplus) && !defined(CINTERFACE)
  10500 MIDL_INTERFACE("00000151-0000-0000-c000-000000000046")
  10501 AsyncIAdviseSink2 : public AsyncIAdviseSink
  10502 {
  10503     virtual void STDMETHODCALLTYPE Begin_OnLinkSrcChange(
  10504         IMoniker *pmk) = 0;
  10505 
  10506     virtual void STDMETHODCALLTYPE Finish_OnLinkSrcChange(
  10507         ) = 0;
  10508 
  10509 };
  10510 #ifdef __CRT_UUID_DECL
  10511 __CRT_UUID_DECL(AsyncIAdviseSink2, 0x00000151, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  10512 #endif
  10513 #else
  10514 typedef struct AsyncIAdviseSink2Vtbl {
  10515     BEGIN_INTERFACE
  10516 
  10517     /*** IUnknown methods ***/
  10518     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10519         AsyncIAdviseSink2 *This,
  10520         REFIID riid,
  10521         void **ppvObject);
  10522 
  10523     ULONG (STDMETHODCALLTYPE *AddRef)(
  10524         AsyncIAdviseSink2 *This);
  10525 
  10526     ULONG (STDMETHODCALLTYPE *Release)(
  10527         AsyncIAdviseSink2 *This);
  10528 
  10529     /*** AsyncIAdviseSink methods ***/
  10530     void (STDMETHODCALLTYPE *Begin_OnDataChange)(
  10531         AsyncIAdviseSink2 *This,
  10532         FORMATETC *pFormatetc,
  10533         STGMEDIUM *pStgmed);
  10534 
  10535     void (STDMETHODCALLTYPE *Finish_OnDataChange)(
  10536         AsyncIAdviseSink2 *This);
  10537 
  10538     void (STDMETHODCALLTYPE *Begin_OnViewChange)(
  10539         AsyncIAdviseSink2 *This,
  10540         DWORD dwAspect,
  10541         LONG lindex);
  10542 
  10543     void (STDMETHODCALLTYPE *Finish_OnViewChange)(
  10544         AsyncIAdviseSink2 *This);
  10545 
  10546     void (STDMETHODCALLTYPE *Begin_OnRename)(
  10547         AsyncIAdviseSink2 *This,
  10548         IMoniker *pmk);
  10549 
  10550     void (STDMETHODCALLTYPE *Finish_OnRename)(
  10551         AsyncIAdviseSink2 *This);
  10552 
  10553     void (STDMETHODCALLTYPE *Begin_OnSave)(
  10554         AsyncIAdviseSink2 *This);
  10555 
  10556     void (STDMETHODCALLTYPE *Finish_OnSave)(
  10557         AsyncIAdviseSink2 *This);
  10558 
  10559     void (STDMETHODCALLTYPE *Begin_OnClose)(
  10560         AsyncIAdviseSink2 *This);
  10561 
  10562     void (STDMETHODCALLTYPE *Finish_OnClose)(
  10563         AsyncIAdviseSink2 *This);
  10564 
  10565     /*** AsyncIAdviseSink2 methods ***/
  10566     void (STDMETHODCALLTYPE *Begin_OnLinkSrcChange)(
  10567         AsyncIAdviseSink2 *This,
  10568         IMoniker *pmk);
  10569 
  10570     void (STDMETHODCALLTYPE *Finish_OnLinkSrcChange)(
  10571         AsyncIAdviseSink2 *This);
  10572 
  10573     END_INTERFACE
  10574 } AsyncIAdviseSink2Vtbl;
  10575 
  10576 interface AsyncIAdviseSink2 {
  10577     CONST_VTBL AsyncIAdviseSink2Vtbl* lpVtbl;
  10578 };
  10579 
  10580 #ifdef COBJMACROS
  10581 #ifndef WIDL_C_INLINE_WRAPPERS
  10582 /*** IUnknown methods ***/
  10583 #define AsyncIAdviseSink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10584 #define AsyncIAdviseSink2_AddRef(This) (This)->lpVtbl->AddRef(This)
  10585 #define AsyncIAdviseSink2_Release(This) (This)->lpVtbl->Release(This)
  10586 /*** AsyncIAdviseSink methods ***/
  10587 #define AsyncIAdviseSink2_Begin_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed)
  10588 #define AsyncIAdviseSink2_Finish_OnDataChange(This) (This)->lpVtbl->Finish_OnDataChange(This)
  10589 #define AsyncIAdviseSink2_Begin_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex)
  10590 #define AsyncIAdviseSink2_Finish_OnViewChange(This) (This)->lpVtbl->Finish_OnViewChange(This)
  10591 #define AsyncIAdviseSink2_Begin_OnRename(This,pmk) (This)->lpVtbl->Begin_OnRename(This,pmk)
  10592 #define AsyncIAdviseSink2_Finish_OnRename(This) (This)->lpVtbl->Finish_OnRename(This)
  10593 #define AsyncIAdviseSink2_Begin_OnSave(This) (This)->lpVtbl->Begin_OnSave(This)
  10594 #define AsyncIAdviseSink2_Finish_OnSave(This) (This)->lpVtbl->Finish_OnSave(This)
  10595 #define AsyncIAdviseSink2_Begin_OnClose(This) (This)->lpVtbl->Begin_OnClose(This)
  10596 #define AsyncIAdviseSink2_Finish_OnClose(This) (This)->lpVtbl->Finish_OnClose(This)
  10597 /*** AsyncIAdviseSink2 methods ***/
  10598 #define AsyncIAdviseSink2_Begin_OnLinkSrcChange(This,pmk) (This)->lpVtbl->Begin_OnLinkSrcChange(This,pmk)
  10599 #define AsyncIAdviseSink2_Finish_OnLinkSrcChange(This) (This)->lpVtbl->Finish_OnLinkSrcChange(This)
  10600 #else
  10601 /*** IUnknown methods ***/
  10602 static inline HRESULT AsyncIAdviseSink2_QueryInterface(AsyncIAdviseSink2* This,REFIID riid,void **ppvObject) {
  10603     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10604 }
  10605 static inline ULONG AsyncIAdviseSink2_AddRef(AsyncIAdviseSink2* This) {
  10606     return This->lpVtbl->AddRef(This);
  10607 }
  10608 static inline ULONG AsyncIAdviseSink2_Release(AsyncIAdviseSink2* This) {
  10609     return This->lpVtbl->Release(This);
  10610 }
  10611 /*** AsyncIAdviseSink methods ***/
  10612 static inline void AsyncIAdviseSink2_Begin_OnDataChange(AsyncIAdviseSink2* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
  10613     This->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed);
  10614 }
  10615 static inline void AsyncIAdviseSink2_Finish_OnDataChange(AsyncIAdviseSink2* This) {
  10616     This->lpVtbl->Finish_OnDataChange(This);
  10617 }
  10618 static inline void AsyncIAdviseSink2_Begin_OnViewChange(AsyncIAdviseSink2* This,DWORD dwAspect,LONG lindex) {
  10619     This->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex);
  10620 }
  10621 static inline void AsyncIAdviseSink2_Finish_OnViewChange(AsyncIAdviseSink2* This) {
  10622     This->lpVtbl->Finish_OnViewChange(This);
  10623 }
  10624 static inline void AsyncIAdviseSink2_Begin_OnRename(AsyncIAdviseSink2* This,IMoniker *pmk) {
  10625     This->lpVtbl->Begin_OnRename(This,pmk);
  10626 }
  10627 static inline void AsyncIAdviseSink2_Finish_OnRename(AsyncIAdviseSink2* This) {
  10628     This->lpVtbl->Finish_OnRename(This);
  10629 }
  10630 static inline void AsyncIAdviseSink2_Begin_OnSave(AsyncIAdviseSink2* This) {
  10631     This->lpVtbl->Begin_OnSave(This);
  10632 }
  10633 static inline void AsyncIAdviseSink2_Finish_OnSave(AsyncIAdviseSink2* This) {
  10634     This->lpVtbl->Finish_OnSave(This);
  10635 }
  10636 static inline void AsyncIAdviseSink2_Begin_OnClose(AsyncIAdviseSink2* This) {
  10637     This->lpVtbl->Begin_OnClose(This);
  10638 }
  10639 static inline void AsyncIAdviseSink2_Finish_OnClose(AsyncIAdviseSink2* This) {
  10640     This->lpVtbl->Finish_OnClose(This);
  10641 }
  10642 /*** AsyncIAdviseSink2 methods ***/
  10643 static inline void AsyncIAdviseSink2_Begin_OnLinkSrcChange(AsyncIAdviseSink2* This,IMoniker *pmk) {
  10644     This->lpVtbl->Begin_OnLinkSrcChange(This,pmk);
  10645 }
  10646 static inline void AsyncIAdviseSink2_Finish_OnLinkSrcChange(AsyncIAdviseSink2* This) {
  10647     This->lpVtbl->Finish_OnLinkSrcChange(This);
  10648 }
  10649 #endif
  10650 #endif
  10651 
  10652 #endif
  10653 
  10654 
  10655 #endif  /* __AsyncIAdviseSink2_INTERFACE_DEFINED__ */
  10656 
  10657 #endif
  10658 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  10659 /*****************************************************************************
  10660  * IDataObject interface
  10661  */
  10662 #ifndef __IDataObject_INTERFACE_DEFINED__
  10663 #define __IDataObject_INTERFACE_DEFINED__
  10664 
  10665 typedef IDataObject *LPDATAOBJECT;
  10666 typedef enum tagDATADIR {
  10667     DATADIR_GET = 1,
  10668     DATADIR_SET = 2
  10669 } DATADIR;
  10670 DEFINE_GUID(IID_IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  10671 #if defined(__cplusplus) && !defined(CINTERFACE)
  10672 MIDL_INTERFACE("0000010e-0000-0000-c000-000000000046")
  10673 IDataObject : public IUnknown
  10674 {
  10675     virtual HRESULT STDMETHODCALLTYPE GetData(
  10676         FORMATETC *pformatetcIn,
  10677         STGMEDIUM *pmedium) = 0;
  10678 
  10679     virtual HRESULT STDMETHODCALLTYPE GetDataHere(
  10680         FORMATETC *pformatetc,
  10681         STGMEDIUM *pmedium) = 0;
  10682 
  10683     virtual HRESULT STDMETHODCALLTYPE QueryGetData(
  10684         FORMATETC *pformatetc) = 0;
  10685 
  10686     virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(
  10687         FORMATETC *pformatectIn,
  10688         FORMATETC *pformatetcOut) = 0;
  10689 
  10690     virtual HRESULT STDMETHODCALLTYPE SetData(
  10691         FORMATETC *pformatetc,
  10692         STGMEDIUM *pmedium,
  10693         WINBOOL fRelease) = 0;
  10694 
  10695     virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc(
  10696         DWORD dwDirection,
  10697         IEnumFORMATETC **ppenumFormatEtc) = 0;
  10698 
  10699     virtual HRESULT STDMETHODCALLTYPE DAdvise(
  10700         FORMATETC *pformatetc,
  10701         DWORD advf,
  10702         IAdviseSink *pAdvSink,
  10703         DWORD *pdwConnection) = 0;
  10704 
  10705     virtual HRESULT STDMETHODCALLTYPE DUnadvise(
  10706         DWORD dwConnection) = 0;
  10707 
  10708     virtual HRESULT STDMETHODCALLTYPE EnumDAdvise(
  10709         IEnumSTATDATA **ppenumAdvise) = 0;
  10710 
  10711 };
  10712 #ifdef __CRT_UUID_DECL
  10713 __CRT_UUID_DECL(IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  10714 #endif
  10715 #else
  10716 typedef struct IDataObjectVtbl {
  10717     BEGIN_INTERFACE
  10718 
  10719     /*** IUnknown methods ***/
  10720     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10721         IDataObject *This,
  10722         REFIID riid,
  10723         void **ppvObject);
  10724 
  10725     ULONG (STDMETHODCALLTYPE *AddRef)(
  10726         IDataObject *This);
  10727 
  10728     ULONG (STDMETHODCALLTYPE *Release)(
  10729         IDataObject *This);
  10730 
  10731     /*** IDataObject methods ***/
  10732     HRESULT (STDMETHODCALLTYPE *GetData)(
  10733         IDataObject *This,
  10734         FORMATETC *pformatetcIn,
  10735         STGMEDIUM *pmedium);
  10736 
  10737     HRESULT (STDMETHODCALLTYPE *GetDataHere)(
  10738         IDataObject *This,
  10739         FORMATETC *pformatetc,
  10740         STGMEDIUM *pmedium);
  10741 
  10742     HRESULT (STDMETHODCALLTYPE *QueryGetData)(
  10743         IDataObject *This,
  10744         FORMATETC *pformatetc);
  10745 
  10746     HRESULT (STDMETHODCALLTYPE *GetCanonicalFormatEtc)(
  10747         IDataObject *This,
  10748         FORMATETC *pformatectIn,
  10749         FORMATETC *pformatetcOut);
  10750 
  10751     HRESULT (STDMETHODCALLTYPE *SetData)(
  10752         IDataObject *This,
  10753         FORMATETC *pformatetc,
  10754         STGMEDIUM *pmedium,
  10755         WINBOOL fRelease);
  10756 
  10757     HRESULT (STDMETHODCALLTYPE *EnumFormatEtc)(
  10758         IDataObject *This,
  10759         DWORD dwDirection,
  10760         IEnumFORMATETC **ppenumFormatEtc);
  10761 
  10762     HRESULT (STDMETHODCALLTYPE *DAdvise)(
  10763         IDataObject *This,
  10764         FORMATETC *pformatetc,
  10765         DWORD advf,
  10766         IAdviseSink *pAdvSink,
  10767         DWORD *pdwConnection);
  10768 
  10769     HRESULT (STDMETHODCALLTYPE *DUnadvise)(
  10770         IDataObject *This,
  10771         DWORD dwConnection);
  10772 
  10773     HRESULT (STDMETHODCALLTYPE *EnumDAdvise)(
  10774         IDataObject *This,
  10775         IEnumSTATDATA **ppenumAdvise);
  10776 
  10777     END_INTERFACE
  10778 } IDataObjectVtbl;
  10779 
  10780 interface IDataObject {
  10781     CONST_VTBL IDataObjectVtbl* lpVtbl;
  10782 };
  10783 
  10784 #ifdef COBJMACROS
  10785 #ifndef WIDL_C_INLINE_WRAPPERS
  10786 /*** IUnknown methods ***/
  10787 #define IDataObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10788 #define IDataObject_AddRef(This) (This)->lpVtbl->AddRef(This)
  10789 #define IDataObject_Release(This) (This)->lpVtbl->Release(This)
  10790 /*** IDataObject methods ***/
  10791 #define IDataObject_GetData(This,pformatetcIn,pmedium) (This)->lpVtbl->GetData(This,pformatetcIn,pmedium)
  10792 #define IDataObject_GetDataHere(This,pformatetc,pmedium) (This)->lpVtbl->GetDataHere(This,pformatetc,pmedium)
  10793 #define IDataObject_QueryGetData(This,pformatetc) (This)->lpVtbl->QueryGetData(This,pformatetc)
  10794 #define IDataObject_GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut) (This)->lpVtbl->GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut)
  10795 #define IDataObject_SetData(This,pformatetc,pmedium,fRelease) (This)->lpVtbl->SetData(This,pformatetc,pmedium,fRelease)
  10796 #define IDataObject_EnumFormatEtc(This,dwDirection,ppenumFormatEtc) (This)->lpVtbl->EnumFormatEtc(This,dwDirection,ppenumFormatEtc)
  10797 #define IDataObject_DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection) (This)->lpVtbl->DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection)
  10798 #define IDataObject_DUnadvise(This,dwConnection) (This)->lpVtbl->DUnadvise(This,dwConnection)
  10799 #define IDataObject_EnumDAdvise(This,ppenumAdvise) (This)->lpVtbl->EnumDAdvise(This,ppenumAdvise)
  10800 #else
  10801 /*** IUnknown methods ***/
  10802 static inline HRESULT IDataObject_QueryInterface(IDataObject* This,REFIID riid,void **ppvObject) {
  10803     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10804 }
  10805 static inline ULONG IDataObject_AddRef(IDataObject* This) {
  10806     return This->lpVtbl->AddRef(This);
  10807 }
  10808 static inline ULONG IDataObject_Release(IDataObject* This) {
  10809     return This->lpVtbl->Release(This);
  10810 }
  10811 /*** IDataObject methods ***/
  10812 static inline HRESULT IDataObject_GetData(IDataObject* This,FORMATETC *pformatetcIn,STGMEDIUM *pmedium) {
  10813     return This->lpVtbl->GetData(This,pformatetcIn,pmedium);
  10814 }
  10815 static inline HRESULT IDataObject_GetDataHere(IDataObject* This,FORMATETC *pformatetc,STGMEDIUM *pmedium) {
  10816     return This->lpVtbl->GetDataHere(This,pformatetc,pmedium);
  10817 }
  10818 static inline HRESULT IDataObject_QueryGetData(IDataObject* This,FORMATETC *pformatetc) {
  10819     return This->lpVtbl->QueryGetData(This,pformatetc);
  10820 }
  10821 static inline HRESULT IDataObject_GetCanonicalFormatEtc(IDataObject* This,FORMATETC *pformatectIn,FORMATETC *pformatetcOut) {
  10822     return This->lpVtbl->GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut);
  10823 }
  10824 static inline HRESULT IDataObject_SetData(IDataObject* This,FORMATETC *pformatetc,STGMEDIUM *pmedium,WINBOOL fRelease) {
  10825     return This->lpVtbl->SetData(This,pformatetc,pmedium,fRelease);
  10826 }
  10827 static inline HRESULT IDataObject_EnumFormatEtc(IDataObject* This,DWORD dwDirection,IEnumFORMATETC **ppenumFormatEtc) {
  10828     return This->lpVtbl->EnumFormatEtc(This,dwDirection,ppenumFormatEtc);
  10829 }
  10830 static inline HRESULT IDataObject_DAdvise(IDataObject* This,FORMATETC *pformatetc,DWORD advf,IAdviseSink *pAdvSink,DWORD *pdwConnection) {
  10831     return This->lpVtbl->DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection);
  10832 }
  10833 static inline HRESULT IDataObject_DUnadvise(IDataObject* This,DWORD dwConnection) {
  10834     return This->lpVtbl->DUnadvise(This,dwConnection);
  10835 }
  10836 static inline HRESULT IDataObject_EnumDAdvise(IDataObject* This,IEnumSTATDATA **ppenumAdvise) {
  10837     return This->lpVtbl->EnumDAdvise(This,ppenumAdvise);
  10838 }
  10839 #endif
  10840 #endif
  10841 
  10842 #endif
  10843 
  10844 HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetData_Proxy(
  10845     IDataObject* This,
  10846     FORMATETC *pformatetcIn,
  10847     STGMEDIUM *pRemoteMedium);
  10848 void __RPC_STUB IDataObject_RemoteGetData_Stub(
  10849     IRpcStubBuffer* This,
  10850     IRpcChannelBuffer* pRpcChannelBuffer,
  10851     PRPC_MESSAGE pRpcMessage,
  10852     DWORD* pdwStubPhase);
  10853 HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetDataHere_Proxy(
  10854     IDataObject* This,
  10855     FORMATETC *pformatetc,
  10856     STGMEDIUM *pRemoteMedium);
  10857 void __RPC_STUB IDataObject_RemoteGetDataHere_Stub(
  10858     IRpcStubBuffer* This,
  10859     IRpcChannelBuffer* pRpcChannelBuffer,
  10860     PRPC_MESSAGE pRpcMessage,
  10861     DWORD* pdwStubPhase);
  10862 HRESULT STDMETHODCALLTYPE IDataObject_RemoteSetData_Proxy(
  10863     IDataObject* This,
  10864     FORMATETC *pformatetc,
  10865     FLAG_STGMEDIUM *pmedium,
  10866     WINBOOL fRelease);
  10867 void __RPC_STUB IDataObject_RemoteSetData_Stub(
  10868     IRpcStubBuffer* This,
  10869     IRpcChannelBuffer* pRpcChannelBuffer,
  10870     PRPC_MESSAGE pRpcMessage,
  10871     DWORD* pdwStubPhase);
  10872 HRESULT CALLBACK IDataObject_GetData_Proxy(
  10873     IDataObject* This,
  10874     FORMATETC *pformatetcIn,
  10875     STGMEDIUM *pmedium);
  10876 HRESULT __RPC_STUB IDataObject_GetData_Stub(
  10877     IDataObject* This,
  10878     FORMATETC *pformatetcIn,
  10879     STGMEDIUM *pRemoteMedium);
  10880 HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
  10881     IDataObject* This,
  10882     FORMATETC *pformatetc,
  10883     STGMEDIUM *pmedium);
  10884 HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
  10885     IDataObject* This,
  10886     FORMATETC *pformatetc,
  10887     STGMEDIUM *pRemoteMedium);
  10888 HRESULT CALLBACK IDataObject_SetData_Proxy(
  10889     IDataObject* This,
  10890     FORMATETC *pformatetc,
  10891     STGMEDIUM *pmedium,
  10892     WINBOOL fRelease);
  10893 HRESULT __RPC_STUB IDataObject_SetData_Stub(
  10894     IDataObject* This,
  10895     FORMATETC *pformatetc,
  10896     FLAG_STGMEDIUM *pmedium,
  10897     WINBOOL fRelease);
  10898 
  10899 #endif  /* __IDataObject_INTERFACE_DEFINED__ */
  10900 
  10901 #endif
  10902 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  10903 /*****************************************************************************
  10904  * IDataAdviseHolder interface
  10905  */
  10906 #ifndef __IDataAdviseHolder_INTERFACE_DEFINED__
  10907 #define __IDataAdviseHolder_INTERFACE_DEFINED__
  10908 
  10909 typedef IDataAdviseHolder *LPDATAADVISEHOLDER;
  10910 DEFINE_GUID(IID_IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  10911 #if defined(__cplusplus) && !defined(CINTERFACE)
  10912 MIDL_INTERFACE("00000110-0000-0000-c000-000000000046")
  10913 IDataAdviseHolder : public IUnknown
  10914 {
  10915     virtual HRESULT STDMETHODCALLTYPE Advise(
  10916         IDataObject *pDataObject,
  10917         FORMATETC *pFetc,
  10918         DWORD advf,
  10919         IAdviseSink *pAdvise,
  10920         DWORD *pdwConnection) = 0;
  10921 
  10922     virtual HRESULT STDMETHODCALLTYPE Unadvise(
  10923         DWORD dwConnection) = 0;
  10924 
  10925     virtual HRESULT STDMETHODCALLTYPE EnumAdvise(
  10926         IEnumSTATDATA **ppenumAdvise) = 0;
  10927 
  10928     virtual HRESULT STDMETHODCALLTYPE SendOnDataChange(
  10929         IDataObject *pDataObject,
  10930         DWORD dwReserved,
  10931         DWORD advf) = 0;
  10932 
  10933 };
  10934 #ifdef __CRT_UUID_DECL
  10935 __CRT_UUID_DECL(IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  10936 #endif
  10937 #else
  10938 typedef struct IDataAdviseHolderVtbl {
  10939     BEGIN_INTERFACE
  10940 
  10941     /*** IUnknown methods ***/
  10942     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10943         IDataAdviseHolder *This,
  10944         REFIID riid,
  10945         void **ppvObject);
  10946 
  10947     ULONG (STDMETHODCALLTYPE *AddRef)(
  10948         IDataAdviseHolder *This);
  10949 
  10950     ULONG (STDMETHODCALLTYPE *Release)(
  10951         IDataAdviseHolder *This);
  10952 
  10953     /*** IDataAdviseHolder methods ***/
  10954     HRESULT (STDMETHODCALLTYPE *Advise)(
  10955         IDataAdviseHolder *This,
  10956         IDataObject *pDataObject,
  10957         FORMATETC *pFetc,
  10958         DWORD advf,
  10959         IAdviseSink *pAdvise,
  10960         DWORD *pdwConnection);
  10961 
  10962     HRESULT (STDMETHODCALLTYPE *Unadvise)(
  10963         IDataAdviseHolder *This,
  10964         DWORD dwConnection);
  10965 
  10966     HRESULT (STDMETHODCALLTYPE *EnumAdvise)(
  10967         IDataAdviseHolder *This,
  10968         IEnumSTATDATA **ppenumAdvise);
  10969 
  10970     HRESULT (STDMETHODCALLTYPE *SendOnDataChange)(
  10971         IDataAdviseHolder *This,
  10972         IDataObject *pDataObject,
  10973         DWORD dwReserved,
  10974         DWORD advf);
  10975 
  10976     END_INTERFACE
  10977 } IDataAdviseHolderVtbl;
  10978 
  10979 interface IDataAdviseHolder {
  10980     CONST_VTBL IDataAdviseHolderVtbl* lpVtbl;
  10981 };
  10982 
  10983 #ifdef COBJMACROS
  10984 #ifndef WIDL_C_INLINE_WRAPPERS
  10985 /*** IUnknown methods ***/
  10986 #define IDataAdviseHolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10987 #define IDataAdviseHolder_AddRef(This) (This)->lpVtbl->AddRef(This)
  10988 #define IDataAdviseHolder_Release(This) (This)->lpVtbl->Release(This)
  10989 /*** IDataAdviseHolder methods ***/
  10990 #define IDataAdviseHolder_Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection) (This)->lpVtbl->Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection)
  10991 #define IDataAdviseHolder_Unadvise(This,dwConnection) (This)->lpVtbl->Unadvise(This,dwConnection)
  10992 #define IDataAdviseHolder_EnumAdvise(This,ppenumAdvise) (This)->lpVtbl->EnumAdvise(This,ppenumAdvise)
  10993 #define IDataAdviseHolder_SendOnDataChange(This,pDataObject,dwReserved,advf) (This)->lpVtbl->SendOnDataChange(This,pDataObject,dwReserved,advf)
  10994 #else
  10995 /*** IUnknown methods ***/
  10996 static inline HRESULT IDataAdviseHolder_QueryInterface(IDataAdviseHolder* This,REFIID riid,void **ppvObject) {
  10997     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10998 }
  10999 static inline ULONG IDataAdviseHolder_AddRef(IDataAdviseHolder* This) {
  11000     return This->lpVtbl->AddRef(This);
  11001 }
  11002 static inline ULONG IDataAdviseHolder_Release(IDataAdviseHolder* This) {
  11003     return This->lpVtbl->Release(This);
  11004 }
  11005 /*** IDataAdviseHolder methods ***/
  11006 static inline HRESULT IDataAdviseHolder_Advise(IDataAdviseHolder* This,IDataObject *pDataObject,FORMATETC *pFetc,DWORD advf,IAdviseSink *pAdvise,DWORD *pdwConnection) {
  11007     return This->lpVtbl->Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection);
  11008 }
  11009 static inline HRESULT IDataAdviseHolder_Unadvise(IDataAdviseHolder* This,DWORD dwConnection) {
  11010     return This->lpVtbl->Unadvise(This,dwConnection);
  11011 }
  11012 static inline HRESULT IDataAdviseHolder_EnumAdvise(IDataAdviseHolder* This,IEnumSTATDATA **ppenumAdvise) {
  11013     return This->lpVtbl->EnumAdvise(This,ppenumAdvise);
  11014 }
  11015 static inline HRESULT IDataAdviseHolder_SendOnDataChange(IDataAdviseHolder* This,IDataObject *pDataObject,DWORD dwReserved,DWORD advf) {
  11016     return This->lpVtbl->SendOnDataChange(This,pDataObject,dwReserved,advf);
  11017 }
  11018 #endif
  11019 #endif
  11020 
  11021 #endif
  11022 
  11023 
  11024 #endif  /* __IDataAdviseHolder_INTERFACE_DEFINED__ */
  11025 
  11026 /*****************************************************************************
  11027  * IMessageFilter interface
  11028  */
  11029 #ifndef __IMessageFilter_INTERFACE_DEFINED__
  11030 #define __IMessageFilter_INTERFACE_DEFINED__
  11031 
  11032 typedef IMessageFilter *LPMESSAGEFILTER;
  11033 typedef enum tagCALLTYPE {
  11034     CALLTYPE_TOPLEVEL = 1,
  11035     CALLTYPE_NESTED = 2,
  11036     CALLTYPE_ASYNC = 3,
  11037     CALLTYPE_TOPLEVEL_CALLPENDING = 4,
  11038     CALLTYPE_ASYNC_CALLPENDING = 5
  11039 } CALLTYPE;
  11040 typedef enum tagSERVERCALL {
  11041     SERVERCALL_ISHANDLED = 0,
  11042     SERVERCALL_REJECTED = 1,
  11043     SERVERCALL_RETRYLATER = 2
  11044 } SERVERCALL;
  11045 typedef enum tagPENDINGTYPE {
  11046     PENDINGTYPE_TOPLEVEL = 1,
  11047     PENDINGTYPE_NESTED = 2
  11048 } PENDINGTYPE;
  11049 typedef enum tagPENDINGMSG {
  11050     PENDINGMSG_CANCELCALL = 0,
  11051     PENDINGMSG_WAITNOPROCESS = 1,
  11052     PENDINGMSG_WAITDEFPROCESS = 2
  11053 } PENDINGMSG;
  11054 typedef struct tagINTERFACEINFO {
  11055     IUnknown *pUnk;
  11056     IID iid;
  11057     WORD wMethod;
  11058 } INTERFACEINFO;
  11059 typedef struct tagINTERFACEINFO *LPINTERFACEINFO;
  11060 DEFINE_GUID(IID_IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  11061 #if defined(__cplusplus) && !defined(CINTERFACE)
  11062 MIDL_INTERFACE("00000016-0000-0000-c000-000000000046")
  11063 IMessageFilter : public IUnknown
  11064 {
  11065     virtual DWORD STDMETHODCALLTYPE HandleInComingCall(
  11066         DWORD dwCallType,
  11067         HTASK htaskCaller,
  11068         DWORD dwTickCount,
  11069         LPINTERFACEINFO lpInterfaceInfo) = 0;
  11070 
  11071     virtual DWORD STDMETHODCALLTYPE RetryRejectedCall(
  11072         HTASK htaskCallee,
  11073         DWORD dwTickCount,
  11074         DWORD dwRejectType) = 0;
  11075 
  11076     virtual DWORD STDMETHODCALLTYPE MessagePending(
  11077         HTASK htaskCallee,
  11078         DWORD dwTickCount,
  11079         DWORD dwPendingType) = 0;
  11080 
  11081 };
  11082 #ifdef __CRT_UUID_DECL
  11083 __CRT_UUID_DECL(IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  11084 #endif
  11085 #else
  11086 typedef struct IMessageFilterVtbl {
  11087     BEGIN_INTERFACE
  11088 
  11089     /*** IUnknown methods ***/
  11090     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11091         IMessageFilter *This,
  11092         REFIID riid,
  11093         void **ppvObject);
  11094 
  11095     ULONG (STDMETHODCALLTYPE *AddRef)(
  11096         IMessageFilter *This);
  11097 
  11098     ULONG (STDMETHODCALLTYPE *Release)(
  11099         IMessageFilter *This);
  11100 
  11101     /*** IMessageFilter methods ***/
  11102     DWORD (STDMETHODCALLTYPE *HandleInComingCall)(
  11103         IMessageFilter *This,
  11104         DWORD dwCallType,
  11105         HTASK htaskCaller,
  11106         DWORD dwTickCount,
  11107         LPINTERFACEINFO lpInterfaceInfo);
  11108 
  11109     DWORD (STDMETHODCALLTYPE *RetryRejectedCall)(
  11110         IMessageFilter *This,
  11111         HTASK htaskCallee,
  11112         DWORD dwTickCount,
  11113         DWORD dwRejectType);
  11114 
  11115     DWORD (STDMETHODCALLTYPE *MessagePending)(
  11116         IMessageFilter *This,
  11117         HTASK htaskCallee,
  11118         DWORD dwTickCount,
  11119         DWORD dwPendingType);
  11120 
  11121     END_INTERFACE
  11122 } IMessageFilterVtbl;
  11123 
  11124 interface IMessageFilter {
  11125     CONST_VTBL IMessageFilterVtbl* lpVtbl;
  11126 };
  11127 
  11128 #ifdef COBJMACROS
  11129 #ifndef WIDL_C_INLINE_WRAPPERS
  11130 /*** IUnknown methods ***/
  11131 #define IMessageFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11132 #define IMessageFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
  11133 #define IMessageFilter_Release(This) (This)->lpVtbl->Release(This)
  11134 /*** IMessageFilter methods ***/
  11135 #define IMessageFilter_HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo) (This)->lpVtbl->HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo)
  11136 #define IMessageFilter_RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType) (This)->lpVtbl->RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType)
  11137 #define IMessageFilter_MessagePending(This,htaskCallee,dwTickCount,dwPendingType) (This)->lpVtbl->MessagePending(This,htaskCallee,dwTickCount,dwPendingType)
  11138 #else
  11139 /*** IUnknown methods ***/
  11140 static inline HRESULT IMessageFilter_QueryInterface(IMessageFilter* This,REFIID riid,void **ppvObject) {
  11141     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11142 }
  11143 static inline ULONG IMessageFilter_AddRef(IMessageFilter* This) {
  11144     return This->lpVtbl->AddRef(This);
  11145 }
  11146 static inline ULONG IMessageFilter_Release(IMessageFilter* This) {
  11147     return This->lpVtbl->Release(This);
  11148 }
  11149 /*** IMessageFilter methods ***/
  11150 static inline DWORD IMessageFilter_HandleInComingCall(IMessageFilter* This,DWORD dwCallType,HTASK htaskCaller,DWORD dwTickCount,LPINTERFACEINFO lpInterfaceInfo) {
  11151     return This->lpVtbl->HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo);
  11152 }
  11153 static inline DWORD IMessageFilter_RetryRejectedCall(IMessageFilter* This,HTASK htaskCallee,DWORD dwTickCount,DWORD dwRejectType) {
  11154     return This->lpVtbl->RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType);
  11155 }
  11156 static inline DWORD IMessageFilter_MessagePending(IMessageFilter* This,HTASK htaskCallee,DWORD dwTickCount,DWORD dwPendingType) {
  11157     return This->lpVtbl->MessagePending(This,htaskCallee,dwTickCount,dwPendingType);
  11158 }
  11159 #endif
  11160 #endif
  11161 
  11162 #endif
  11163 
  11164 
  11165 #endif  /* __IMessageFilter_INTERFACE_DEFINED__ */
  11166 
  11167 
  11168 extern const FMTID FMTID_SummaryInformation;
  11169 
  11170 extern const FMTID FMTID_DocSummaryInformation;
  11171 
  11172 extern const FMTID FMTID_UserDefinedProperties;
  11173 
  11174 extern const FMTID FMTID_DiscardableInformation;
  11175 
  11176 extern const FMTID FMTID_ImageSummaryInformation;
  11177 
  11178 extern const FMTID FMTID_AudioSummaryInformation;
  11179 
  11180 extern const FMTID FMTID_VideoSummaryInformation;
  11181 
  11182 extern const FMTID FMTID_MediaFileSummaryInformation;
  11183 
  11184 /*****************************************************************************
  11185  * IClassActivator interface
  11186  */
  11187 #ifndef __IClassActivator_INTERFACE_DEFINED__
  11188 #define __IClassActivator_INTERFACE_DEFINED__
  11189 
  11190 DEFINE_GUID(IID_IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  11191 #if defined(__cplusplus) && !defined(CINTERFACE)
  11192 MIDL_INTERFACE("00000140-0000-0000-c000-000000000046")
  11193 IClassActivator : public IUnknown
  11194 {
  11195     virtual HRESULT STDMETHODCALLTYPE GetClassObject(
  11196         REFCLSID rclsid,
  11197         DWORD dwClassContext,
  11198         LCID locale,
  11199         REFIID riid,
  11200         void **ppv) = 0;
  11201 
  11202 };
  11203 #ifdef __CRT_UUID_DECL
  11204 __CRT_UUID_DECL(IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  11205 #endif
  11206 #else
  11207 typedef struct IClassActivatorVtbl {
  11208     BEGIN_INTERFACE
  11209 
  11210     /*** IUnknown methods ***/
  11211     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11212         IClassActivator *This,
  11213         REFIID riid,
  11214         void **ppvObject);
  11215 
  11216     ULONG (STDMETHODCALLTYPE *AddRef)(
  11217         IClassActivator *This);
  11218 
  11219     ULONG (STDMETHODCALLTYPE *Release)(
  11220         IClassActivator *This);
  11221 
  11222     /*** IClassActivator methods ***/
  11223     HRESULT (STDMETHODCALLTYPE *GetClassObject)(
  11224         IClassActivator *This,
  11225         REFCLSID rclsid,
  11226         DWORD dwClassContext,
  11227         LCID locale,
  11228         REFIID riid,
  11229         void **ppv);
  11230 
  11231     END_INTERFACE
  11232 } IClassActivatorVtbl;
  11233 
  11234 interface IClassActivator {
  11235     CONST_VTBL IClassActivatorVtbl* lpVtbl;
  11236 };
  11237 
  11238 #ifdef COBJMACROS
  11239 #ifndef WIDL_C_INLINE_WRAPPERS
  11240 /*** IUnknown methods ***/
  11241 #define IClassActivator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11242 #define IClassActivator_AddRef(This) (This)->lpVtbl->AddRef(This)
  11243 #define IClassActivator_Release(This) (This)->lpVtbl->Release(This)
  11244 /*** IClassActivator methods ***/
  11245 #define IClassActivator_GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv) (This)->lpVtbl->GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv)
  11246 #else
  11247 /*** IUnknown methods ***/
  11248 static inline HRESULT IClassActivator_QueryInterface(IClassActivator* This,REFIID riid,void **ppvObject) {
  11249     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11250 }
  11251 static inline ULONG IClassActivator_AddRef(IClassActivator* This) {
  11252     return This->lpVtbl->AddRef(This);
  11253 }
  11254 static inline ULONG IClassActivator_Release(IClassActivator* This) {
  11255     return This->lpVtbl->Release(This);
  11256 }
  11257 /*** IClassActivator methods ***/
  11258 static inline HRESULT IClassActivator_GetClassObject(IClassActivator* This,REFCLSID rclsid,DWORD dwClassContext,LCID locale,REFIID riid,void **ppv) {
  11259     return This->lpVtbl->GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv);
  11260 }
  11261 #endif
  11262 #endif
  11263 
  11264 #endif
  11265 
  11266 
  11267 #endif  /* __IClassActivator_INTERFACE_DEFINED__ */
  11268 
  11269 #endif
  11270 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  11271 /*****************************************************************************
  11272  * IFillLockBytes interface
  11273  */
  11274 #ifndef __IFillLockBytes_INTERFACE_DEFINED__
  11275 #define __IFillLockBytes_INTERFACE_DEFINED__
  11276 
  11277 DEFINE_GUID(IID_IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5);
  11278 #if defined(__cplusplus) && !defined(CINTERFACE)
  11279 MIDL_INTERFACE("99caf010-415e-11cf-8814-00aa00b569f5")
  11280 IFillLockBytes : public IUnknown
  11281 {
  11282     virtual HRESULT STDMETHODCALLTYPE FillAppend(
  11283         const void *pv,
  11284         ULONG cb,
  11285         ULONG *pcbWritten) = 0;
  11286 
  11287     virtual HRESULT STDMETHODCALLTYPE FillAt(
  11288         ULARGE_INTEGER ulOffset,
  11289         const void *pv,
  11290         ULONG cb,
  11291         ULONG *pcbWritten) = 0;
  11292 
  11293     virtual HRESULT STDMETHODCALLTYPE SetFillSize(
  11294         ULARGE_INTEGER ulSize) = 0;
  11295 
  11296     virtual HRESULT STDMETHODCALLTYPE Terminate(
  11297         WINBOOL bCanceled) = 0;
  11298 
  11299 };
  11300 #ifdef __CRT_UUID_DECL
  11301 __CRT_UUID_DECL(IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5)
  11302 #endif
  11303 #else
  11304 typedef struct IFillLockBytesVtbl {
  11305     BEGIN_INTERFACE
  11306 
  11307     /*** IUnknown methods ***/
  11308     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11309         IFillLockBytes *This,
  11310         REFIID riid,
  11311         void **ppvObject);
  11312 
  11313     ULONG (STDMETHODCALLTYPE *AddRef)(
  11314         IFillLockBytes *This);
  11315 
  11316     ULONG (STDMETHODCALLTYPE *Release)(
  11317         IFillLockBytes *This);
  11318 
  11319     /*** IFillLockBytes methods ***/
  11320     HRESULT (STDMETHODCALLTYPE *FillAppend)(
  11321         IFillLockBytes *This,
  11322         const void *pv,
  11323         ULONG cb,
  11324         ULONG *pcbWritten);
  11325 
  11326     HRESULT (STDMETHODCALLTYPE *FillAt)(
  11327         IFillLockBytes *This,
  11328         ULARGE_INTEGER ulOffset,
  11329         const void *pv,
  11330         ULONG cb,
  11331         ULONG *pcbWritten);
  11332 
  11333     HRESULT (STDMETHODCALLTYPE *SetFillSize)(
  11334         IFillLockBytes *This,
  11335         ULARGE_INTEGER ulSize);
  11336 
  11337     HRESULT (STDMETHODCALLTYPE *Terminate)(
  11338         IFillLockBytes *This,
  11339         WINBOOL bCanceled);
  11340 
  11341     END_INTERFACE
  11342 } IFillLockBytesVtbl;
  11343 
  11344 interface IFillLockBytes {
  11345     CONST_VTBL IFillLockBytesVtbl* lpVtbl;
  11346 };
  11347 
  11348 #ifdef COBJMACROS
  11349 #ifndef WIDL_C_INLINE_WRAPPERS
  11350 /*** IUnknown methods ***/
  11351 #define IFillLockBytes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11352 #define IFillLockBytes_AddRef(This) (This)->lpVtbl->AddRef(This)
  11353 #define IFillLockBytes_Release(This) (This)->lpVtbl->Release(This)
  11354 /*** IFillLockBytes methods ***/
  11355 #define IFillLockBytes_FillAppend(This,pv,cb,pcbWritten) (This)->lpVtbl->FillAppend(This,pv,cb,pcbWritten)
  11356 #define IFillLockBytes_FillAt(This,ulOffset,pv,cb,pcbWritten) (This)->lpVtbl->FillAt(This,ulOffset,pv,cb,pcbWritten)
  11357 #define IFillLockBytes_SetFillSize(This,ulSize) (This)->lpVtbl->SetFillSize(This,ulSize)
  11358 #define IFillLockBytes_Terminate(This,bCanceled) (This)->lpVtbl->Terminate(This,bCanceled)
  11359 #else
  11360 /*** IUnknown methods ***/
  11361 static inline HRESULT IFillLockBytes_QueryInterface(IFillLockBytes* This,REFIID riid,void **ppvObject) {
  11362     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11363 }
  11364 static inline ULONG IFillLockBytes_AddRef(IFillLockBytes* This) {
  11365     return This->lpVtbl->AddRef(This);
  11366 }
  11367 static inline ULONG IFillLockBytes_Release(IFillLockBytes* This) {
  11368     return This->lpVtbl->Release(This);
  11369 }
  11370 /*** IFillLockBytes methods ***/
  11371 static inline HRESULT IFillLockBytes_FillAppend(IFillLockBytes* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
  11372     return This->lpVtbl->FillAppend(This,pv,cb,pcbWritten);
  11373 }
  11374 static inline HRESULT IFillLockBytes_FillAt(IFillLockBytes* This,ULARGE_INTEGER ulOffset,const void *pv,ULONG cb,ULONG *pcbWritten) {
  11375     return This->lpVtbl->FillAt(This,ulOffset,pv,cb,pcbWritten);
  11376 }
  11377 static inline HRESULT IFillLockBytes_SetFillSize(IFillLockBytes* This,ULARGE_INTEGER ulSize) {
  11378     return This->lpVtbl->SetFillSize(This,ulSize);
  11379 }
  11380 static inline HRESULT IFillLockBytes_Terminate(IFillLockBytes* This,WINBOOL bCanceled) {
  11381     return This->lpVtbl->Terminate(This,bCanceled);
  11382 }
  11383 #endif
  11384 #endif
  11385 
  11386 #endif
  11387 
  11388 HRESULT __stdcall IFillLockBytes_RemoteFillAppend_Proxy(
  11389     IFillLockBytes* This,
  11390     const byte *pv,
  11391     ULONG cb,
  11392     ULONG *pcbWritten);
  11393 void __RPC_STUB IFillLockBytes_RemoteFillAppend_Stub(
  11394     IRpcStubBuffer* This,
  11395     IRpcChannelBuffer* pRpcChannelBuffer,
  11396     PRPC_MESSAGE pRpcMessage,
  11397     DWORD* pdwStubPhase);
  11398 HRESULT __stdcall IFillLockBytes_RemoteFillAt_Proxy(
  11399     IFillLockBytes* This,
  11400     ULARGE_INTEGER ulOffset,
  11401     const byte *pv,
  11402     ULONG cb,
  11403     ULONG *pcbWritten);
  11404 void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub(
  11405     IRpcStubBuffer* This,
  11406     IRpcChannelBuffer* pRpcChannelBuffer,
  11407     PRPC_MESSAGE pRpcMessage,
  11408     DWORD* pdwStubPhase);
  11409 HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
  11410     IFillLockBytes* This,
  11411     const void *pv,
  11412     ULONG cb,
  11413     ULONG *pcbWritten);
  11414 HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
  11415     IFillLockBytes* This,
  11416     const byte *pv,
  11417     ULONG cb,
  11418     ULONG *pcbWritten);
  11419 HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
  11420     IFillLockBytes* This,
  11421     ULARGE_INTEGER ulOffset,
  11422     const void *pv,
  11423     ULONG cb,
  11424     ULONG *pcbWritten);
  11425 HRESULT __RPC_STUB IFillLockBytes_FillAt_Stub(
  11426     IFillLockBytes* This,
  11427     ULARGE_INTEGER ulOffset,
  11428     const byte *pv,
  11429     ULONG cb,
  11430     ULONG *pcbWritten);
  11431 
  11432 #endif  /* __IFillLockBytes_INTERFACE_DEFINED__ */
  11433 
  11434 #endif
  11435 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  11436 /*****************************************************************************
  11437  * IProgressNotify interface
  11438  */
  11439 #ifndef __IProgressNotify_INTERFACE_DEFINED__
  11440 #define __IProgressNotify_INTERFACE_DEFINED__
  11441 
  11442 DEFINE_GUID(IID_IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
  11443 #if defined(__cplusplus) && !defined(CINTERFACE)
  11444 MIDL_INTERFACE("a9d758a0-4617-11cf-95fc-00aa00680db4")
  11445 IProgressNotify : public IUnknown
  11446 {
  11447     virtual HRESULT STDMETHODCALLTYPE OnProgress(
  11448         DWORD dwProgressCurrent,
  11449         DWORD dwProgressMaximum,
  11450         WINBOOL fAccurate,
  11451         WINBOOL fOwner) = 0;
  11452 
  11453 };
  11454 #ifdef __CRT_UUID_DECL
  11455 __CRT_UUID_DECL(IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
  11456 #endif
  11457 #else
  11458 typedef struct IProgressNotifyVtbl {
  11459     BEGIN_INTERFACE
  11460 
  11461     /*** IUnknown methods ***/
  11462     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11463         IProgressNotify *This,
  11464         REFIID riid,
  11465         void **ppvObject);
  11466 
  11467     ULONG (STDMETHODCALLTYPE *AddRef)(
  11468         IProgressNotify *This);
  11469 
  11470     ULONG (STDMETHODCALLTYPE *Release)(
  11471         IProgressNotify *This);
  11472 
  11473     /*** IProgressNotify methods ***/
  11474     HRESULT (STDMETHODCALLTYPE *OnProgress)(
  11475         IProgressNotify *This,
  11476         DWORD dwProgressCurrent,
  11477         DWORD dwProgressMaximum,
  11478         WINBOOL fAccurate,
  11479         WINBOOL fOwner);
  11480 
  11481     END_INTERFACE
  11482 } IProgressNotifyVtbl;
  11483 
  11484 interface IProgressNotify {
  11485     CONST_VTBL IProgressNotifyVtbl* lpVtbl;
  11486 };
  11487 
  11488 #ifdef COBJMACROS
  11489 #ifndef WIDL_C_INLINE_WRAPPERS
  11490 /*** IUnknown methods ***/
  11491 #define IProgressNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11492 #define IProgressNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
  11493 #define IProgressNotify_Release(This) (This)->lpVtbl->Release(This)
  11494 /*** IProgressNotify methods ***/
  11495 #define IProgressNotify_OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner) (This)->lpVtbl->OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner)
  11496 #else
  11497 /*** IUnknown methods ***/
  11498 static inline HRESULT IProgressNotify_QueryInterface(IProgressNotify* This,REFIID riid,void **ppvObject) {
  11499     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11500 }
  11501 static inline ULONG IProgressNotify_AddRef(IProgressNotify* This) {
  11502     return This->lpVtbl->AddRef(This);
  11503 }
  11504 static inline ULONG IProgressNotify_Release(IProgressNotify* This) {
  11505     return This->lpVtbl->Release(This);
  11506 }
  11507 /*** IProgressNotify methods ***/
  11508 static inline HRESULT IProgressNotify_OnProgress(IProgressNotify* This,DWORD dwProgressCurrent,DWORD dwProgressMaximum,WINBOOL fAccurate,WINBOOL fOwner) {
  11509     return This->lpVtbl->OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner);
  11510 }
  11511 #endif
  11512 #endif
  11513 
  11514 #endif
  11515 
  11516 
  11517 #endif  /* __IProgressNotify_INTERFACE_DEFINED__ */
  11518 
  11519 #endif
  11520 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  11521 /*****************************************************************************
  11522  * ILayoutStorage interface
  11523  */
  11524 #ifndef __ILayoutStorage_INTERFACE_DEFINED__
  11525 #define __ILayoutStorage_INTERFACE_DEFINED__
  11526 
  11527 typedef struct tagStorageLayout {
  11528     DWORD LayoutType;
  11529     OLECHAR *pwcsElementName;
  11530     LARGE_INTEGER cOffset;
  11531     LARGE_INTEGER cBytes;
  11532 } StorageLayout;
  11533 DEFINE_GUID(IID_ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
  11534 #if defined(__cplusplus) && !defined(CINTERFACE)
  11535 MIDL_INTERFACE("0e6d4d90-6738-11cf-9608-00aa00680db4")
  11536 ILayoutStorage : public IUnknown
  11537 {
  11538     virtual HRESULT __stdcall LayoutScript(
  11539         StorageLayout *pStorageLayout,
  11540         DWORD nEntries,
  11541         DWORD glfInterleavedFlag) = 0;
  11542 
  11543     virtual HRESULT __stdcall BeginMonitor(
  11544         ) = 0;
  11545 
  11546     virtual HRESULT __stdcall EndMonitor(
  11547         ) = 0;
  11548 
  11549     virtual HRESULT __stdcall ReLayoutDocfile(
  11550         OLECHAR *pwcsNewDfName) = 0;
  11551 
  11552     virtual HRESULT __stdcall ReLayoutDocfileOnILockBytes(
  11553         ILockBytes *pILockBytes) = 0;
  11554 
  11555 };
  11556 #ifdef __CRT_UUID_DECL
  11557 __CRT_UUID_DECL(ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
  11558 #endif
  11559 #else
  11560 typedef struct ILayoutStorageVtbl {
  11561     BEGIN_INTERFACE
  11562 
  11563     /*** IUnknown methods ***/
  11564     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11565         ILayoutStorage *This,
  11566         REFIID riid,
  11567         void **ppvObject);
  11568 
  11569     ULONG (STDMETHODCALLTYPE *AddRef)(
  11570         ILayoutStorage *This);
  11571 
  11572     ULONG (STDMETHODCALLTYPE *Release)(
  11573         ILayoutStorage *This);
  11574 
  11575     /*** ILayoutStorage methods ***/
  11576     HRESULT (__stdcall *LayoutScript)(
  11577         ILayoutStorage *This,
  11578         StorageLayout *pStorageLayout,
  11579         DWORD nEntries,
  11580         DWORD glfInterleavedFlag);
  11581 
  11582     HRESULT (__stdcall *BeginMonitor)(
  11583         ILayoutStorage *This);
  11584 
  11585     HRESULT (__stdcall *EndMonitor)(
  11586         ILayoutStorage *This);
  11587 
  11588     HRESULT (__stdcall *ReLayoutDocfile)(
  11589         ILayoutStorage *This,
  11590         OLECHAR *pwcsNewDfName);
  11591 
  11592     HRESULT (__stdcall *ReLayoutDocfileOnILockBytes)(
  11593         ILayoutStorage *This,
  11594         ILockBytes *pILockBytes);
  11595 
  11596     END_INTERFACE
  11597 } ILayoutStorageVtbl;
  11598 
  11599 interface ILayoutStorage {
  11600     CONST_VTBL ILayoutStorageVtbl* lpVtbl;
  11601 };
  11602 
  11603 #ifdef COBJMACROS
  11604 #ifndef WIDL_C_INLINE_WRAPPERS
  11605 /*** IUnknown methods ***/
  11606 #define ILayoutStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11607 #define ILayoutStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
  11608 #define ILayoutStorage_Release(This) (This)->lpVtbl->Release(This)
  11609 /*** ILayoutStorage methods ***/
  11610 #define ILayoutStorage_LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag) (This)->lpVtbl->LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag)
  11611 #define ILayoutStorage_BeginMonitor(This) (This)->lpVtbl->BeginMonitor(This)
  11612 #define ILayoutStorage_EndMonitor(This) (This)->lpVtbl->EndMonitor(This)
  11613 #define ILayoutStorage_ReLayoutDocfile(This,pwcsNewDfName) (This)->lpVtbl->ReLayoutDocfile(This,pwcsNewDfName)
  11614 #define ILayoutStorage_ReLayoutDocfileOnILockBytes(This,pILockBytes) (This)->lpVtbl->ReLayoutDocfileOnILockBytes(This,pILockBytes)
  11615 #else
  11616 /*** IUnknown methods ***/
  11617 static inline HRESULT ILayoutStorage_QueryInterface(ILayoutStorage* This,REFIID riid,void **ppvObject) {
  11618     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11619 }
  11620 static inline ULONG ILayoutStorage_AddRef(ILayoutStorage* This) {
  11621     return This->lpVtbl->AddRef(This);
  11622 }
  11623 static inline ULONG ILayoutStorage_Release(ILayoutStorage* This) {
  11624     return This->lpVtbl->Release(This);
  11625 }
  11626 /*** ILayoutStorage methods ***/
  11627 static inline HRESULT ILayoutStorage_LayoutScript(ILayoutStorage* This,StorageLayout *pStorageLayout,DWORD nEntries,DWORD glfInterleavedFlag) {
  11628     return This->lpVtbl->LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag);
  11629 }
  11630 static inline HRESULT ILayoutStorage_BeginMonitor(ILayoutStorage* This) {
  11631     return This->lpVtbl->BeginMonitor(This);
  11632 }
  11633 static inline HRESULT ILayoutStorage_EndMonitor(ILayoutStorage* This) {
  11634     return This->lpVtbl->EndMonitor(This);
  11635 }
  11636 static inline HRESULT ILayoutStorage_ReLayoutDocfile(ILayoutStorage* This,OLECHAR *pwcsNewDfName) {
  11637     return This->lpVtbl->ReLayoutDocfile(This,pwcsNewDfName);
  11638 }
  11639 static inline HRESULT ILayoutStorage_ReLayoutDocfileOnILockBytes(ILayoutStorage* This,ILockBytes *pILockBytes) {
  11640     return This->lpVtbl->ReLayoutDocfileOnILockBytes(This,pILockBytes);
  11641 }
  11642 #endif
  11643 #endif
  11644 
  11645 #endif
  11646 
  11647 
  11648 #endif  /* __ILayoutStorage_INTERFACE_DEFINED__ */
  11649 
  11650 #endif
  11651 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  11652 /*****************************************************************************
  11653  * IBlockingLock interface
  11654  */
  11655 #ifndef __IBlockingLock_INTERFACE_DEFINED__
  11656 #define __IBlockingLock_INTERFACE_DEFINED__
  11657 
  11658 DEFINE_GUID(IID_IBlockingLock, 0x30f3d47a, 0x6447, 0x11d1, 0x8e,0x3c, 0x00,0xc0,0x4f,0xb9,0x38,0x6d);
  11659 #if defined(__cplusplus) && !defined(CINTERFACE)
  11660 MIDL_INTERFACE("30f3d47a-6447-11d1-8e3c-00c04fb9386d")
  11661 IBlockingLock : public IUnknown
  11662 {
  11663     virtual HRESULT STDMETHODCALLTYPE Lock(
  11664         DWORD dwTimeout) = 0;
  11665 
  11666     virtual HRESULT STDMETHODCALLTYPE Unlock(
  11667         ) = 0;
  11668 
  11669 };
  11670 #ifdef __CRT_UUID_DECL
  11671 __CRT_UUID_DECL(IBlockingLock, 0x30f3d47a, 0x6447, 0x11d1, 0x8e,0x3c, 0x00,0xc0,0x4f,0xb9,0x38,0x6d)
  11672 #endif
  11673 #else
  11674 typedef struct IBlockingLockVtbl {
  11675     BEGIN_INTERFACE
  11676 
  11677     /*** IUnknown methods ***/
  11678     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11679         IBlockingLock *This,
  11680         REFIID riid,
  11681         void **ppvObject);
  11682 
  11683     ULONG (STDMETHODCALLTYPE *AddRef)(
  11684         IBlockingLock *This);
  11685 
  11686     ULONG (STDMETHODCALLTYPE *Release)(
  11687         IBlockingLock *This);
  11688 
  11689     /*** IBlockingLock methods ***/
  11690     HRESULT (STDMETHODCALLTYPE *Lock)(
  11691         IBlockingLock *This,
  11692         DWORD dwTimeout);
  11693 
  11694     HRESULT (STDMETHODCALLTYPE *Unlock)(
  11695         IBlockingLock *This);
  11696 
  11697     END_INTERFACE
  11698 } IBlockingLockVtbl;
  11699 
  11700 interface IBlockingLock {
  11701     CONST_VTBL IBlockingLockVtbl* lpVtbl;
  11702 };
  11703 
  11704 #ifdef COBJMACROS
  11705 #ifndef WIDL_C_INLINE_WRAPPERS
  11706 /*** IUnknown methods ***/
  11707 #define IBlockingLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11708 #define IBlockingLock_AddRef(This) (This)->lpVtbl->AddRef(This)
  11709 #define IBlockingLock_Release(This) (This)->lpVtbl->Release(This)
  11710 /*** IBlockingLock methods ***/
  11711 #define IBlockingLock_Lock(This,dwTimeout) (This)->lpVtbl->Lock(This,dwTimeout)
  11712 #define IBlockingLock_Unlock(This) (This)->lpVtbl->Unlock(This)
  11713 #else
  11714 /*** IUnknown methods ***/
  11715 static inline HRESULT IBlockingLock_QueryInterface(IBlockingLock* This,REFIID riid,void **ppvObject) {
  11716     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11717 }
  11718 static inline ULONG IBlockingLock_AddRef(IBlockingLock* This) {
  11719     return This->lpVtbl->AddRef(This);
  11720 }
  11721 static inline ULONG IBlockingLock_Release(IBlockingLock* This) {
  11722     return This->lpVtbl->Release(This);
  11723 }
  11724 /*** IBlockingLock methods ***/
  11725 static inline HRESULT IBlockingLock_Lock(IBlockingLock* This,DWORD dwTimeout) {
  11726     return This->lpVtbl->Lock(This,dwTimeout);
  11727 }
  11728 static inline HRESULT IBlockingLock_Unlock(IBlockingLock* This) {
  11729     return This->lpVtbl->Unlock(This);
  11730 }
  11731 #endif
  11732 #endif
  11733 
  11734 #endif
  11735 
  11736 
  11737 #endif  /* __IBlockingLock_INTERFACE_DEFINED__ */
  11738 
  11739 /*****************************************************************************
  11740  * ITimeAndNoticeControl interface
  11741  */
  11742 #ifndef __ITimeAndNoticeControl_INTERFACE_DEFINED__
  11743 #define __ITimeAndNoticeControl_INTERFACE_DEFINED__
  11744 
  11745 DEFINE_GUID(IID_ITimeAndNoticeControl, 0xbc0bf6ae, 0x8878, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4);
  11746 #if defined(__cplusplus) && !defined(CINTERFACE)
  11747 MIDL_INTERFACE("bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4")
  11748 ITimeAndNoticeControl : public IUnknown
  11749 {
  11750     virtual HRESULT STDMETHODCALLTYPE SuppressChanges(
  11751         DWORD res1,
  11752         DWORD res2) = 0;
  11753 
  11754 };
  11755 #ifdef __CRT_UUID_DECL
  11756 __CRT_UUID_DECL(ITimeAndNoticeControl, 0xbc0bf6ae, 0x8878, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4)
  11757 #endif
  11758 #else
  11759 typedef struct ITimeAndNoticeControlVtbl {
  11760     BEGIN_INTERFACE
  11761 
  11762     /*** IUnknown methods ***/
  11763     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11764         ITimeAndNoticeControl *This,
  11765         REFIID riid,
  11766         void **ppvObject);
  11767 
  11768     ULONG (STDMETHODCALLTYPE *AddRef)(
  11769         ITimeAndNoticeControl *This);
  11770 
  11771     ULONG (STDMETHODCALLTYPE *Release)(
  11772         ITimeAndNoticeControl *This);
  11773 
  11774     /*** ITimeAndNoticeControl methods ***/
  11775     HRESULT (STDMETHODCALLTYPE *SuppressChanges)(
  11776         ITimeAndNoticeControl *This,
  11777         DWORD res1,
  11778         DWORD res2);
  11779 
  11780     END_INTERFACE
  11781 } ITimeAndNoticeControlVtbl;
  11782 
  11783 interface ITimeAndNoticeControl {
  11784     CONST_VTBL ITimeAndNoticeControlVtbl* lpVtbl;
  11785 };
  11786 
  11787 #ifdef COBJMACROS
  11788 #ifndef WIDL_C_INLINE_WRAPPERS
  11789 /*** IUnknown methods ***/
  11790 #define ITimeAndNoticeControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11791 #define ITimeAndNoticeControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  11792 #define ITimeAndNoticeControl_Release(This) (This)->lpVtbl->Release(This)
  11793 /*** ITimeAndNoticeControl methods ***/
  11794 #define ITimeAndNoticeControl_SuppressChanges(This,res1,res2) (This)->lpVtbl->SuppressChanges(This,res1,res2)
  11795 #else
  11796 /*** IUnknown methods ***/
  11797 static inline HRESULT ITimeAndNoticeControl_QueryInterface(ITimeAndNoticeControl* This,REFIID riid,void **ppvObject) {
  11798     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11799 }
  11800 static inline ULONG ITimeAndNoticeControl_AddRef(ITimeAndNoticeControl* This) {
  11801     return This->lpVtbl->AddRef(This);
  11802 }
  11803 static inline ULONG ITimeAndNoticeControl_Release(ITimeAndNoticeControl* This) {
  11804     return This->lpVtbl->Release(This);
  11805 }
  11806 /*** ITimeAndNoticeControl methods ***/
  11807 static inline HRESULT ITimeAndNoticeControl_SuppressChanges(ITimeAndNoticeControl* This,DWORD res1,DWORD res2) {
  11808     return This->lpVtbl->SuppressChanges(This,res1,res2);
  11809 }
  11810 #endif
  11811 #endif
  11812 
  11813 #endif
  11814 
  11815 
  11816 #endif  /* __ITimeAndNoticeControl_INTERFACE_DEFINED__ */
  11817 
  11818 /*****************************************************************************
  11819  * IOplockStorage interface
  11820  */
  11821 #ifndef __IOplockStorage_INTERFACE_DEFINED__
  11822 #define __IOplockStorage_INTERFACE_DEFINED__
  11823 
  11824 DEFINE_GUID(IID_IOplockStorage, 0x8d19c834, 0x8879, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4);
  11825 #if defined(__cplusplus) && !defined(CINTERFACE)
  11826 MIDL_INTERFACE("8d19c834-8879-11d1-83e9-00c04fc2c6d4")
  11827 IOplockStorage : public IUnknown
  11828 {
  11829     virtual HRESULT STDMETHODCALLTYPE CreateStorageEx(
  11830         LPCWSTR pwcsName,
  11831         DWORD grfMode,
  11832         DWORD stgfmt,
  11833         DWORD grfAttrs,
  11834         REFIID riid,
  11835         void **ppstgOpen) = 0;
  11836 
  11837     virtual HRESULT STDMETHODCALLTYPE OpenStorageEx(
  11838         LPCWSTR pwcsName,
  11839         DWORD grfMode,
  11840         DWORD stgfmt,
  11841         DWORD grfAttrs,
  11842         REFIID riid,
  11843         void **ppstgOpen) = 0;
  11844 
  11845 };
  11846 #ifdef __CRT_UUID_DECL
  11847 __CRT_UUID_DECL(IOplockStorage, 0x8d19c834, 0x8879, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4)
  11848 #endif
  11849 #else
  11850 typedef struct IOplockStorageVtbl {
  11851     BEGIN_INTERFACE
  11852 
  11853     /*** IUnknown methods ***/
  11854     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11855         IOplockStorage *This,
  11856         REFIID riid,
  11857         void **ppvObject);
  11858 
  11859     ULONG (STDMETHODCALLTYPE *AddRef)(
  11860         IOplockStorage *This);
  11861 
  11862     ULONG (STDMETHODCALLTYPE *Release)(
  11863         IOplockStorage *This);
  11864 
  11865     /*** IOplockStorage methods ***/
  11866     HRESULT (STDMETHODCALLTYPE *CreateStorageEx)(
  11867         IOplockStorage *This,
  11868         LPCWSTR pwcsName,
  11869         DWORD grfMode,
  11870         DWORD stgfmt,
  11871         DWORD grfAttrs,
  11872         REFIID riid,
  11873         void **ppstgOpen);
  11874 
  11875     HRESULT (STDMETHODCALLTYPE *OpenStorageEx)(
  11876         IOplockStorage *This,
  11877         LPCWSTR pwcsName,
  11878         DWORD grfMode,
  11879         DWORD stgfmt,
  11880         DWORD grfAttrs,
  11881         REFIID riid,
  11882         void **ppstgOpen);
  11883 
  11884     END_INTERFACE
  11885 } IOplockStorageVtbl;
  11886 
  11887 interface IOplockStorage {
  11888     CONST_VTBL IOplockStorageVtbl* lpVtbl;
  11889 };
  11890 
  11891 #ifdef COBJMACROS
  11892 #ifndef WIDL_C_INLINE_WRAPPERS
  11893 /*** IUnknown methods ***/
  11894 #define IOplockStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11895 #define IOplockStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
  11896 #define IOplockStorage_Release(This) (This)->lpVtbl->Release(This)
  11897 /*** IOplockStorage methods ***/
  11898 #define IOplockStorage_CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen) (This)->lpVtbl->CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen)
  11899 #define IOplockStorage_OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen) (This)->lpVtbl->OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen)
  11900 #else
  11901 /*** IUnknown methods ***/
  11902 static inline HRESULT IOplockStorage_QueryInterface(IOplockStorage* This,REFIID riid,void **ppvObject) {
  11903     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11904 }
  11905 static inline ULONG IOplockStorage_AddRef(IOplockStorage* This) {
  11906     return This->lpVtbl->AddRef(This);
  11907 }
  11908 static inline ULONG IOplockStorage_Release(IOplockStorage* This) {
  11909     return This->lpVtbl->Release(This);
  11910 }
  11911 /*** IOplockStorage methods ***/
  11912 static inline HRESULT IOplockStorage_CreateStorageEx(IOplockStorage* This,LPCWSTR pwcsName,DWORD grfMode,DWORD stgfmt,DWORD grfAttrs,REFIID riid,void **ppstgOpen) {
  11913     return This->lpVtbl->CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen);
  11914 }
  11915 static inline HRESULT IOplockStorage_OpenStorageEx(IOplockStorage* This,LPCWSTR pwcsName,DWORD grfMode,DWORD stgfmt,DWORD grfAttrs,REFIID riid,void **ppstgOpen) {
  11916     return This->lpVtbl->OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen);
  11917 }
  11918 #endif
  11919 #endif
  11920 
  11921 #endif
  11922 
  11923 
  11924 #endif  /* __IOplockStorage_INTERFACE_DEFINED__ */
  11925 
  11926 #endif
  11927 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  11928 /*****************************************************************************
  11929  * IDirectWriterLock interface
  11930  */
  11931 #ifndef __IDirectWriterLock_INTERFACE_DEFINED__
  11932 #define __IDirectWriterLock_INTERFACE_DEFINED__
  11933 
  11934 DEFINE_GUID(IID_IDirectWriterLock, 0x0e6d4d92, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
  11935 #if defined(__cplusplus) && !defined(CINTERFACE)
  11936 MIDL_INTERFACE("0e6d4d92-6738-11cf-9608-00aa00680db4")
  11937 IDirectWriterLock : public IUnknown
  11938 {
  11939     virtual HRESULT STDMETHODCALLTYPE WaitForWriteAccess(
  11940         DWORD dwTimeout) = 0;
  11941 
  11942     virtual HRESULT STDMETHODCALLTYPE ReleaseWriteAccess(
  11943         ) = 0;
  11944 
  11945     virtual HRESULT STDMETHODCALLTYPE HaveWriteAccess(
  11946         ) = 0;
  11947 
  11948 };
  11949 #ifdef __CRT_UUID_DECL
  11950 __CRT_UUID_DECL(IDirectWriterLock, 0x0e6d4d92, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
  11951 #endif
  11952 #else
  11953 typedef struct IDirectWriterLockVtbl {
  11954     BEGIN_INTERFACE
  11955 
  11956     /*** IUnknown methods ***/
  11957     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11958         IDirectWriterLock *This,
  11959         REFIID riid,
  11960         void **ppvObject);
  11961 
  11962     ULONG (STDMETHODCALLTYPE *AddRef)(
  11963         IDirectWriterLock *This);
  11964 
  11965     ULONG (STDMETHODCALLTYPE *Release)(
  11966         IDirectWriterLock *This);
  11967 
  11968     /*** IDirectWriterLock methods ***/
  11969     HRESULT (STDMETHODCALLTYPE *WaitForWriteAccess)(
  11970         IDirectWriterLock *This,
  11971         DWORD dwTimeout);
  11972 
  11973     HRESULT (STDMETHODCALLTYPE *ReleaseWriteAccess)(
  11974         IDirectWriterLock *This);
  11975 
  11976     HRESULT (STDMETHODCALLTYPE *HaveWriteAccess)(
  11977         IDirectWriterLock *This);
  11978 
  11979     END_INTERFACE
  11980 } IDirectWriterLockVtbl;
  11981 
  11982 interface IDirectWriterLock {
  11983     CONST_VTBL IDirectWriterLockVtbl* lpVtbl;
  11984 };
  11985 
  11986 #ifdef COBJMACROS
  11987 #ifndef WIDL_C_INLINE_WRAPPERS
  11988 /*** IUnknown methods ***/
  11989 #define IDirectWriterLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11990 #define IDirectWriterLock_AddRef(This) (This)->lpVtbl->AddRef(This)
  11991 #define IDirectWriterLock_Release(This) (This)->lpVtbl->Release(This)
  11992 /*** IDirectWriterLock methods ***/
  11993 #define IDirectWriterLock_WaitForWriteAccess(This,dwTimeout) (This)->lpVtbl->WaitForWriteAccess(This,dwTimeout)
  11994 #define IDirectWriterLock_ReleaseWriteAccess(This) (This)->lpVtbl->ReleaseWriteAccess(This)
  11995 #define IDirectWriterLock_HaveWriteAccess(This) (This)->lpVtbl->HaveWriteAccess(This)
  11996 #else
  11997 /*** IUnknown methods ***/
  11998 static inline HRESULT IDirectWriterLock_QueryInterface(IDirectWriterLock* This,REFIID riid,void **ppvObject) {
  11999     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12000 }
  12001 static inline ULONG IDirectWriterLock_AddRef(IDirectWriterLock* This) {
  12002     return This->lpVtbl->AddRef(This);
  12003 }
  12004 static inline ULONG IDirectWriterLock_Release(IDirectWriterLock* This) {
  12005     return This->lpVtbl->Release(This);
  12006 }
  12007 /*** IDirectWriterLock methods ***/
  12008 static inline HRESULT IDirectWriterLock_WaitForWriteAccess(IDirectWriterLock* This,DWORD dwTimeout) {
  12009     return This->lpVtbl->WaitForWriteAccess(This,dwTimeout);
  12010 }
  12011 static inline HRESULT IDirectWriterLock_ReleaseWriteAccess(IDirectWriterLock* This) {
  12012     return This->lpVtbl->ReleaseWriteAccess(This);
  12013 }
  12014 static inline HRESULT IDirectWriterLock_HaveWriteAccess(IDirectWriterLock* This) {
  12015     return This->lpVtbl->HaveWriteAccess(This);
  12016 }
  12017 #endif
  12018 #endif
  12019 
  12020 #endif
  12021 
  12022 
  12023 #endif  /* __IDirectWriterLock_INTERFACE_DEFINED__ */
  12024 
  12025 #endif
  12026 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  12027 /*****************************************************************************
  12028  * IUrlMon interface
  12029  */
  12030 #ifndef __IUrlMon_INTERFACE_DEFINED__
  12031 #define __IUrlMon_INTERFACE_DEFINED__
  12032 
  12033 DEFINE_GUID(IID_IUrlMon, 0x00000026, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  12034 #if defined(__cplusplus) && !defined(CINTERFACE)
  12035 MIDL_INTERFACE("00000026-0000-0000-c000-000000000046")
  12036 IUrlMon : public IUnknown
  12037 {
  12038     virtual HRESULT STDMETHODCALLTYPE AsyncGetClassBits(
  12039         REFCLSID rclsid,
  12040         LPCWSTR pszTYPE,
  12041         LPCWSTR pszExt,
  12042         DWORD dwFileVersionMS,
  12043         DWORD dwFileVersionLS,
  12044         LPCWSTR pszCodeBase,
  12045         IBindCtx *pbc,
  12046         DWORD dwClassContext,
  12047         REFIID riid,
  12048         DWORD flags) = 0;
  12049 
  12050 };
  12051 #ifdef __CRT_UUID_DECL
  12052 __CRT_UUID_DECL(IUrlMon, 0x00000026, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  12053 #endif
  12054 #else
  12055 typedef struct IUrlMonVtbl {
  12056     BEGIN_INTERFACE
  12057 
  12058     /*** IUnknown methods ***/
  12059     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12060         IUrlMon *This,
  12061         REFIID riid,
  12062         void **ppvObject);
  12063 
  12064     ULONG (STDMETHODCALLTYPE *AddRef)(
  12065         IUrlMon *This);
  12066 
  12067     ULONG (STDMETHODCALLTYPE *Release)(
  12068         IUrlMon *This);
  12069 
  12070     /*** IUrlMon methods ***/
  12071     HRESULT (STDMETHODCALLTYPE *AsyncGetClassBits)(
  12072         IUrlMon *This,
  12073         REFCLSID rclsid,
  12074         LPCWSTR pszTYPE,
  12075         LPCWSTR pszExt,
  12076         DWORD dwFileVersionMS,
  12077         DWORD dwFileVersionLS,
  12078         LPCWSTR pszCodeBase,
  12079         IBindCtx *pbc,
  12080         DWORD dwClassContext,
  12081         REFIID riid,
  12082         DWORD flags);
  12083 
  12084     END_INTERFACE
  12085 } IUrlMonVtbl;
  12086 
  12087 interface IUrlMon {
  12088     CONST_VTBL IUrlMonVtbl* lpVtbl;
  12089 };
  12090 
  12091 #ifdef COBJMACROS
  12092 #ifndef WIDL_C_INLINE_WRAPPERS
  12093 /*** IUnknown methods ***/
  12094 #define IUrlMon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12095 #define IUrlMon_AddRef(This) (This)->lpVtbl->AddRef(This)
  12096 #define IUrlMon_Release(This) (This)->lpVtbl->Release(This)
  12097 /*** IUrlMon methods ***/
  12098 #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)
  12099 #else
  12100 /*** IUnknown methods ***/
  12101 static inline HRESULT IUrlMon_QueryInterface(IUrlMon* This,REFIID riid,void **ppvObject) {
  12102     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12103 }
  12104 static inline ULONG IUrlMon_AddRef(IUrlMon* This) {
  12105     return This->lpVtbl->AddRef(This);
  12106 }
  12107 static inline ULONG IUrlMon_Release(IUrlMon* This) {
  12108     return This->lpVtbl->Release(This);
  12109 }
  12110 /*** IUrlMon methods ***/
  12111 static inline 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) {
  12112     return This->lpVtbl->AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags);
  12113 }
  12114 #endif
  12115 #endif
  12116 
  12117 #endif
  12118 
  12119 
  12120 #endif  /* __IUrlMon_INTERFACE_DEFINED__ */
  12121 
  12122 /*****************************************************************************
  12123  * IForegroundTransfer interface
  12124  */
  12125 #ifndef __IForegroundTransfer_INTERFACE_DEFINED__
  12126 #define __IForegroundTransfer_INTERFACE_DEFINED__
  12127 
  12128 DEFINE_GUID(IID_IForegroundTransfer, 0x00000145, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  12129 #if defined(__cplusplus) && !defined(CINTERFACE)
  12130 MIDL_INTERFACE("00000145-0000-0000-c000-000000000046")
  12131 IForegroundTransfer : public IUnknown
  12132 {
  12133     virtual HRESULT STDMETHODCALLTYPE AllowForegroundTransfer(
  12134         void *lpvReserved) = 0;
  12135 
  12136 };
  12137 #ifdef __CRT_UUID_DECL
  12138 __CRT_UUID_DECL(IForegroundTransfer, 0x00000145, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  12139 #endif
  12140 #else
  12141 typedef struct IForegroundTransferVtbl {
  12142     BEGIN_INTERFACE
  12143 
  12144     /*** IUnknown methods ***/
  12145     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12146         IForegroundTransfer *This,
  12147         REFIID riid,
  12148         void **ppvObject);
  12149 
  12150     ULONG (STDMETHODCALLTYPE *AddRef)(
  12151         IForegroundTransfer *This);
  12152 
  12153     ULONG (STDMETHODCALLTYPE *Release)(
  12154         IForegroundTransfer *This);
  12155 
  12156     /*** IForegroundTransfer methods ***/
  12157     HRESULT (STDMETHODCALLTYPE *AllowForegroundTransfer)(
  12158         IForegroundTransfer *This,
  12159         void *lpvReserved);
  12160 
  12161     END_INTERFACE
  12162 } IForegroundTransferVtbl;
  12163 
  12164 interface IForegroundTransfer {
  12165     CONST_VTBL IForegroundTransferVtbl* lpVtbl;
  12166 };
  12167 
  12168 #ifdef COBJMACROS
  12169 #ifndef WIDL_C_INLINE_WRAPPERS
  12170 /*** IUnknown methods ***/
  12171 #define IForegroundTransfer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12172 #define IForegroundTransfer_AddRef(This) (This)->lpVtbl->AddRef(This)
  12173 #define IForegroundTransfer_Release(This) (This)->lpVtbl->Release(This)
  12174 /*** IForegroundTransfer methods ***/
  12175 #define IForegroundTransfer_AllowForegroundTransfer(This,lpvReserved) (This)->lpVtbl->AllowForegroundTransfer(This,lpvReserved)
  12176 #else
  12177 /*** IUnknown methods ***/
  12178 static inline HRESULT IForegroundTransfer_QueryInterface(IForegroundTransfer* This,REFIID riid,void **ppvObject) {
  12179     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12180 }
  12181 static inline ULONG IForegroundTransfer_AddRef(IForegroundTransfer* This) {
  12182     return This->lpVtbl->AddRef(This);
  12183 }
  12184 static inline ULONG IForegroundTransfer_Release(IForegroundTransfer* This) {
  12185     return This->lpVtbl->Release(This);
  12186 }
  12187 /*** IForegroundTransfer methods ***/
  12188 static inline HRESULT IForegroundTransfer_AllowForegroundTransfer(IForegroundTransfer* This,void *lpvReserved) {
  12189     return This->lpVtbl->AllowForegroundTransfer(This,lpvReserved);
  12190 }
  12191 #endif
  12192 #endif
  12193 
  12194 #endif
  12195 
  12196 
  12197 #endif  /* __IForegroundTransfer_INTERFACE_DEFINED__ */
  12198 
  12199 /*****************************************************************************
  12200  * IThumbnailExtractor interface
  12201  */
  12202 #ifndef __IThumbnailExtractor_INTERFACE_DEFINED__
  12203 #define __IThumbnailExtractor_INTERFACE_DEFINED__
  12204 
  12205 DEFINE_GUID(IID_IThumbnailExtractor, 0x969dc708, 0x5c76, 0x11d1, 0x8d,0x86, 0x00,0x00,0xf8,0x04,0xb0,0x57);
  12206 #if defined(__cplusplus) && !defined(CINTERFACE)
  12207 MIDL_INTERFACE("969dc708-5c76-11d1-8d86-0000f804b057")
  12208 IThumbnailExtractor : public IUnknown
  12209 {
  12210     virtual HRESULT STDMETHODCALLTYPE ExtractThumbnail(
  12211         IStorage *pStg,
  12212         ULONG ulLength,
  12213         ULONG ulHeight,
  12214         ULONG *pulOutputLength,
  12215         ULONG *pulOutputHeight,
  12216         HBITMAP *phOutputBitmap) = 0;
  12217 
  12218     virtual HRESULT STDMETHODCALLTYPE OnFileUpdated(
  12219         IStorage *pStg) = 0;
  12220 
  12221 };
  12222 #ifdef __CRT_UUID_DECL
  12223 __CRT_UUID_DECL(IThumbnailExtractor, 0x969dc708, 0x5c76, 0x11d1, 0x8d,0x86, 0x00,0x00,0xf8,0x04,0xb0,0x57)
  12224 #endif
  12225 #else
  12226 typedef struct IThumbnailExtractorVtbl {
  12227     BEGIN_INTERFACE
  12228 
  12229     /*** IUnknown methods ***/
  12230     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12231         IThumbnailExtractor *This,
  12232         REFIID riid,
  12233         void **ppvObject);
  12234 
  12235     ULONG (STDMETHODCALLTYPE *AddRef)(
  12236         IThumbnailExtractor *This);
  12237 
  12238     ULONG (STDMETHODCALLTYPE *Release)(
  12239         IThumbnailExtractor *This);
  12240 
  12241     /*** IThumbnailExtractor methods ***/
  12242     HRESULT (STDMETHODCALLTYPE *ExtractThumbnail)(
  12243         IThumbnailExtractor *This,
  12244         IStorage *pStg,
  12245         ULONG ulLength,
  12246         ULONG ulHeight,
  12247         ULONG *pulOutputLength,
  12248         ULONG *pulOutputHeight,
  12249         HBITMAP *phOutputBitmap);
  12250 
  12251     HRESULT (STDMETHODCALLTYPE *OnFileUpdated)(
  12252         IThumbnailExtractor *This,
  12253         IStorage *pStg);
  12254 
  12255     END_INTERFACE
  12256 } IThumbnailExtractorVtbl;
  12257 
  12258 interface IThumbnailExtractor {
  12259     CONST_VTBL IThumbnailExtractorVtbl* lpVtbl;
  12260 };
  12261 
  12262 #ifdef COBJMACROS
  12263 #ifndef WIDL_C_INLINE_WRAPPERS
  12264 /*** IUnknown methods ***/
  12265 #define IThumbnailExtractor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12266 #define IThumbnailExtractor_AddRef(This) (This)->lpVtbl->AddRef(This)
  12267 #define IThumbnailExtractor_Release(This) (This)->lpVtbl->Release(This)
  12268 /*** IThumbnailExtractor methods ***/
  12269 #define IThumbnailExtractor_ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap) (This)->lpVtbl->ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap)
  12270 #define IThumbnailExtractor_OnFileUpdated(This,pStg) (This)->lpVtbl->OnFileUpdated(This,pStg)
  12271 #else
  12272 /*** IUnknown methods ***/
  12273 static inline HRESULT IThumbnailExtractor_QueryInterface(IThumbnailExtractor* This,REFIID riid,void **ppvObject) {
  12274     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12275 }
  12276 static inline ULONG IThumbnailExtractor_AddRef(IThumbnailExtractor* This) {
  12277     return This->lpVtbl->AddRef(This);
  12278 }
  12279 static inline ULONG IThumbnailExtractor_Release(IThumbnailExtractor* This) {
  12280     return This->lpVtbl->Release(This);
  12281 }
  12282 /*** IThumbnailExtractor methods ***/
  12283 static inline HRESULT IThumbnailExtractor_ExtractThumbnail(IThumbnailExtractor* This,IStorage *pStg,ULONG ulLength,ULONG ulHeight,ULONG *pulOutputLength,ULONG *pulOutputHeight,HBITMAP *phOutputBitmap) {
  12284     return This->lpVtbl->ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap);
  12285 }
  12286 static inline HRESULT IThumbnailExtractor_OnFileUpdated(IThumbnailExtractor* This,IStorage *pStg) {
  12287     return This->lpVtbl->OnFileUpdated(This,pStg);
  12288 }
  12289 #endif
  12290 #endif
  12291 
  12292 #endif
  12293 
  12294 
  12295 #endif  /* __IThumbnailExtractor_INTERFACE_DEFINED__ */
  12296 
  12297 /*****************************************************************************
  12298  * IDummyHICONIncluder interface
  12299  */
  12300 #ifndef __IDummyHICONIncluder_INTERFACE_DEFINED__
  12301 #define __IDummyHICONIncluder_INTERFACE_DEFINED__
  12302 
  12303 DEFINE_GUID(IID_IDummyHICONIncluder, 0x947990de, 0xcc28, 0x11d2, 0xa0,0xf7, 0x00,0x80,0x5f,0x85,0x8f,0xb1);
  12304 #if defined(__cplusplus) && !defined(CINTERFACE)
  12305 MIDL_INTERFACE("947990de-cc28-11d2-a0f7-00805f858fb1")
  12306 IDummyHICONIncluder : public IUnknown
  12307 {
  12308     virtual HRESULT STDMETHODCALLTYPE Dummy(
  12309         HICON h1,
  12310         HDC h2) = 0;
  12311 
  12312 };
  12313 #ifdef __CRT_UUID_DECL
  12314 __CRT_UUID_DECL(IDummyHICONIncluder, 0x947990de, 0xcc28, 0x11d2, 0xa0,0xf7, 0x00,0x80,0x5f,0x85,0x8f,0xb1)
  12315 #endif
  12316 #else
  12317 typedef struct IDummyHICONIncluderVtbl {
  12318     BEGIN_INTERFACE
  12319 
  12320     /*** IUnknown methods ***/
  12321     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12322         IDummyHICONIncluder *This,
  12323         REFIID riid,
  12324         void **ppvObject);
  12325 
  12326     ULONG (STDMETHODCALLTYPE *AddRef)(
  12327         IDummyHICONIncluder *This);
  12328 
  12329     ULONG (STDMETHODCALLTYPE *Release)(
  12330         IDummyHICONIncluder *This);
  12331 
  12332     /*** IDummyHICONIncluder methods ***/
  12333     HRESULT (STDMETHODCALLTYPE *Dummy)(
  12334         IDummyHICONIncluder *This,
  12335         HICON h1,
  12336         HDC h2);
  12337 
  12338     END_INTERFACE
  12339 } IDummyHICONIncluderVtbl;
  12340 
  12341 interface IDummyHICONIncluder {
  12342     CONST_VTBL IDummyHICONIncluderVtbl* lpVtbl;
  12343 };
  12344 
  12345 #ifdef COBJMACROS
  12346 #ifndef WIDL_C_INLINE_WRAPPERS
  12347 /*** IUnknown methods ***/
  12348 #define IDummyHICONIncluder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12349 #define IDummyHICONIncluder_AddRef(This) (This)->lpVtbl->AddRef(This)
  12350 #define IDummyHICONIncluder_Release(This) (This)->lpVtbl->Release(This)
  12351 /*** IDummyHICONIncluder methods ***/
  12352 #define IDummyHICONIncluder_Dummy(This,h1,h2) (This)->lpVtbl->Dummy(This,h1,h2)
  12353 #else
  12354 /*** IUnknown methods ***/
  12355 static inline HRESULT IDummyHICONIncluder_QueryInterface(IDummyHICONIncluder* This,REFIID riid,void **ppvObject) {
  12356     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12357 }
  12358 static inline ULONG IDummyHICONIncluder_AddRef(IDummyHICONIncluder* This) {
  12359     return This->lpVtbl->AddRef(This);
  12360 }
  12361 static inline ULONG IDummyHICONIncluder_Release(IDummyHICONIncluder* This) {
  12362     return This->lpVtbl->Release(This);
  12363 }
  12364 /*** IDummyHICONIncluder methods ***/
  12365 static inline HRESULT IDummyHICONIncluder_Dummy(IDummyHICONIncluder* This,HICON h1,HDC h2) {
  12366     return This->lpVtbl->Dummy(This,h1,h2);
  12367 }
  12368 #endif
  12369 #endif
  12370 
  12371 #endif
  12372 
  12373 
  12374 #endif  /* __IDummyHICONIncluder_INTERFACE_DEFINED__ */
  12375 
  12376 typedef enum tagApplicationType {
  12377     ServerApplication = 0,
  12378     LibraryApplication = 1
  12379 } ApplicationType;
  12380 typedef enum tagShutdownType {
  12381     IdleShutdown = 0,
  12382     ForcedShutdown = 1
  12383 } ShutdownType;
  12384 /*****************************************************************************
  12385  * IProcessLock interface
  12386  */
  12387 #ifndef __IProcessLock_INTERFACE_DEFINED__
  12388 #define __IProcessLock_INTERFACE_DEFINED__
  12389 
  12390 DEFINE_GUID(IID_IProcessLock, 0x000001d5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  12391 #if defined(__cplusplus) && !defined(CINTERFACE)
  12392 MIDL_INTERFACE("000001d5-0000-0000-c000-000000000046")
  12393 IProcessLock : public IUnknown
  12394 {
  12395     virtual ULONG STDMETHODCALLTYPE AddRefOnProcess(
  12396         ) = 0;
  12397 
  12398     virtual ULONG STDMETHODCALLTYPE ReleaseRefOnProcess(
  12399         ) = 0;
  12400 
  12401 };
  12402 #ifdef __CRT_UUID_DECL
  12403 __CRT_UUID_DECL(IProcessLock, 0x000001d5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  12404 #endif
  12405 #else
  12406 typedef struct IProcessLockVtbl {
  12407     BEGIN_INTERFACE
  12408 
  12409     /*** IUnknown methods ***/
  12410     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12411         IProcessLock *This,
  12412         REFIID riid,
  12413         void **ppvObject);
  12414 
  12415     ULONG (STDMETHODCALLTYPE *AddRef)(
  12416         IProcessLock *This);
  12417 
  12418     ULONG (STDMETHODCALLTYPE *Release)(
  12419         IProcessLock *This);
  12420 
  12421     /*** IProcessLock methods ***/
  12422     ULONG (STDMETHODCALLTYPE *AddRefOnProcess)(
  12423         IProcessLock *This);
  12424 
  12425     ULONG (STDMETHODCALLTYPE *ReleaseRefOnProcess)(
  12426         IProcessLock *This);
  12427 
  12428     END_INTERFACE
  12429 } IProcessLockVtbl;
  12430 
  12431 interface IProcessLock {
  12432     CONST_VTBL IProcessLockVtbl* lpVtbl;
  12433 };
  12434 
  12435 #ifdef COBJMACROS
  12436 #ifndef WIDL_C_INLINE_WRAPPERS
  12437 /*** IUnknown methods ***/
  12438 #define IProcessLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12439 #define IProcessLock_AddRef(This) (This)->lpVtbl->AddRef(This)
  12440 #define IProcessLock_Release(This) (This)->lpVtbl->Release(This)
  12441 /*** IProcessLock methods ***/
  12442 #define IProcessLock_AddRefOnProcess(This) (This)->lpVtbl->AddRefOnProcess(This)
  12443 #define IProcessLock_ReleaseRefOnProcess(This) (This)->lpVtbl->ReleaseRefOnProcess(This)
  12444 #else
  12445 /*** IUnknown methods ***/
  12446 static inline HRESULT IProcessLock_QueryInterface(IProcessLock* This,REFIID riid,void **ppvObject) {
  12447     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12448 }
  12449 static inline ULONG IProcessLock_AddRef(IProcessLock* This) {
  12450     return This->lpVtbl->AddRef(This);
  12451 }
  12452 static inline ULONG IProcessLock_Release(IProcessLock* This) {
  12453     return This->lpVtbl->Release(This);
  12454 }
  12455 /*** IProcessLock methods ***/
  12456 static inline ULONG IProcessLock_AddRefOnProcess(IProcessLock* This) {
  12457     return This->lpVtbl->AddRefOnProcess(This);
  12458 }
  12459 static inline ULONG IProcessLock_ReleaseRefOnProcess(IProcessLock* This) {
  12460     return This->lpVtbl->ReleaseRefOnProcess(This);
  12461 }
  12462 #endif
  12463 #endif
  12464 
  12465 #endif
  12466 
  12467 
  12468 #endif  /* __IProcessLock_INTERFACE_DEFINED__ */
  12469 
  12470 /*****************************************************************************
  12471  * ISurrogateService interface
  12472  */
  12473 #ifndef __ISurrogateService_INTERFACE_DEFINED__
  12474 #define __ISurrogateService_INTERFACE_DEFINED__
  12475 
  12476 DEFINE_GUID(IID_ISurrogateService, 0x000001d4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  12477 #if defined(__cplusplus) && !defined(CINTERFACE)
  12478 MIDL_INTERFACE("000001d4-0000-0000-c000-000000000046")
  12479 ISurrogateService : public IUnknown
  12480 {
  12481     virtual HRESULT STDMETHODCALLTYPE Init(
  12482         REFGUID rguidProcessID,
  12483         IProcessLock *pProcessLock,
  12484         WINBOOL *pfApplicationAware) = 0;
  12485 
  12486     virtual HRESULT STDMETHODCALLTYPE ApplicationLaunch(
  12487         REFGUID rguidApplID,
  12488         ApplicationType appType) = 0;
  12489 
  12490     virtual HRESULT STDMETHODCALLTYPE ApplicationFree(
  12491         REFGUID rguidApplID) = 0;
  12492 
  12493     virtual HRESULT STDMETHODCALLTYPE CatalogRefresh(
  12494         ULONG ulReserved) = 0;
  12495 
  12496     virtual HRESULT STDMETHODCALLTYPE ProcessShutdown(
  12497         ShutdownType shutdownType) = 0;
  12498 
  12499 };
  12500 #ifdef __CRT_UUID_DECL
  12501 __CRT_UUID_DECL(ISurrogateService, 0x000001d4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  12502 #endif
  12503 #else
  12504 typedef struct ISurrogateServiceVtbl {
  12505     BEGIN_INTERFACE
  12506 
  12507     /*** IUnknown methods ***/
  12508     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12509         ISurrogateService *This,
  12510         REFIID riid,
  12511         void **ppvObject);
  12512 
  12513     ULONG (STDMETHODCALLTYPE *AddRef)(
  12514         ISurrogateService *This);
  12515 
  12516     ULONG (STDMETHODCALLTYPE *Release)(
  12517         ISurrogateService *This);
  12518 
  12519     /*** ISurrogateService methods ***/
  12520     HRESULT (STDMETHODCALLTYPE *Init)(
  12521         ISurrogateService *This,
  12522         REFGUID rguidProcessID,
  12523         IProcessLock *pProcessLock,
  12524         WINBOOL *pfApplicationAware);
  12525 
  12526     HRESULT (STDMETHODCALLTYPE *ApplicationLaunch)(
  12527         ISurrogateService *This,
  12528         REFGUID rguidApplID,
  12529         ApplicationType appType);
  12530 
  12531     HRESULT (STDMETHODCALLTYPE *ApplicationFree)(
  12532         ISurrogateService *This,
  12533         REFGUID rguidApplID);
  12534 
  12535     HRESULT (STDMETHODCALLTYPE *CatalogRefresh)(
  12536         ISurrogateService *This,
  12537         ULONG ulReserved);
  12538 
  12539     HRESULT (STDMETHODCALLTYPE *ProcessShutdown)(
  12540         ISurrogateService *This,
  12541         ShutdownType shutdownType);
  12542 
  12543     END_INTERFACE
  12544 } ISurrogateServiceVtbl;
  12545 
  12546 interface ISurrogateService {
  12547     CONST_VTBL ISurrogateServiceVtbl* lpVtbl;
  12548 };
  12549 
  12550 #ifdef COBJMACROS
  12551 #ifndef WIDL_C_INLINE_WRAPPERS
  12552 /*** IUnknown methods ***/
  12553 #define ISurrogateService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12554 #define ISurrogateService_AddRef(This) (This)->lpVtbl->AddRef(This)
  12555 #define ISurrogateService_Release(This) (This)->lpVtbl->Release(This)
  12556 /*** ISurrogateService methods ***/
  12557 #define ISurrogateService_Init(This,rguidProcessID,pProcessLock,pfApplicationAware) (This)->lpVtbl->Init(This,rguidProcessID,pProcessLock,pfApplicationAware)
  12558 #define ISurrogateService_ApplicationLaunch(This,rguidApplID,appType) (This)->lpVtbl->ApplicationLaunch(This,rguidApplID,appType)
  12559 #define ISurrogateService_ApplicationFree(This,rguidApplID) (This)->lpVtbl->ApplicationFree(This,rguidApplID)
  12560 #define ISurrogateService_CatalogRefresh(This,ulReserved) (This)->lpVtbl->CatalogRefresh(This,ulReserved)
  12561 #define ISurrogateService_ProcessShutdown(This,shutdownType) (This)->lpVtbl->ProcessShutdown(This,shutdownType)
  12562 #else
  12563 /*** IUnknown methods ***/
  12564 static inline HRESULT ISurrogateService_QueryInterface(ISurrogateService* This,REFIID riid,void **ppvObject) {
  12565     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12566 }
  12567 static inline ULONG ISurrogateService_AddRef(ISurrogateService* This) {
  12568     return This->lpVtbl->AddRef(This);
  12569 }
  12570 static inline ULONG ISurrogateService_Release(ISurrogateService* This) {
  12571     return This->lpVtbl->Release(This);
  12572 }
  12573 /*** ISurrogateService methods ***/
  12574 static inline HRESULT ISurrogateService_Init(ISurrogateService* This,REFGUID rguidProcessID,IProcessLock *pProcessLock,WINBOOL *pfApplicationAware) {
  12575     return This->lpVtbl->Init(This,rguidProcessID,pProcessLock,pfApplicationAware);
  12576 }
  12577 static inline HRESULT ISurrogateService_ApplicationLaunch(ISurrogateService* This,REFGUID rguidApplID,ApplicationType appType) {
  12578     return This->lpVtbl->ApplicationLaunch(This,rguidApplID,appType);
  12579 }
  12580 static inline HRESULT ISurrogateService_ApplicationFree(ISurrogateService* This,REFGUID rguidApplID) {
  12581     return This->lpVtbl->ApplicationFree(This,rguidApplID);
  12582 }
  12583 static inline HRESULT ISurrogateService_CatalogRefresh(ISurrogateService* This,ULONG ulReserved) {
  12584     return This->lpVtbl->CatalogRefresh(This,ulReserved);
  12585 }
  12586 static inline HRESULT ISurrogateService_ProcessShutdown(ISurrogateService* This,ShutdownType shutdownType) {
  12587     return This->lpVtbl->ProcessShutdown(This,shutdownType);
  12588 }
  12589 #endif
  12590 #endif
  12591 
  12592 #endif
  12593 
  12594 
  12595 #endif  /* __ISurrogateService_INTERFACE_DEFINED__ */
  12596 
  12597 /*****************************************************************************
  12598  * IInitializeSpy interface
  12599  */
  12600 #ifndef __IInitializeSpy_INTERFACE_DEFINED__
  12601 #define __IInitializeSpy_INTERFACE_DEFINED__
  12602 
  12603 typedef IInitializeSpy *LPINITIALIZESPY;
  12604 DEFINE_GUID(IID_IInitializeSpy, 0x00000034, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  12605 #if defined(__cplusplus) && !defined(CINTERFACE)
  12606 MIDL_INTERFACE("00000034-0000-0000-c000-000000000046")
  12607 IInitializeSpy : public IUnknown
  12608 {
  12609     virtual HRESULT STDMETHODCALLTYPE PreInitialize(
  12610         DWORD dwCoInit,
  12611         DWORD dwCurThreadAptRefs) = 0;
  12612 
  12613     virtual HRESULT STDMETHODCALLTYPE PostInitialize(
  12614         HRESULT hrCoInit,
  12615         DWORD dwCoInit,
  12616         DWORD dwNewThreadAptRefs) = 0;
  12617 
  12618     virtual HRESULT STDMETHODCALLTYPE PreUninitialize(
  12619         DWORD dwCurThreadAptRefs) = 0;
  12620 
  12621     virtual HRESULT STDMETHODCALLTYPE PostUninitialize(
  12622         DWORD dwNewThreadAptRefs) = 0;
  12623 
  12624 };
  12625 #ifdef __CRT_UUID_DECL
  12626 __CRT_UUID_DECL(IInitializeSpy, 0x00000034, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  12627 #endif
  12628 #else
  12629 typedef struct IInitializeSpyVtbl {
  12630     BEGIN_INTERFACE
  12631 
  12632     /*** IUnknown methods ***/
  12633     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12634         IInitializeSpy *This,
  12635         REFIID riid,
  12636         void **ppvObject);
  12637 
  12638     ULONG (STDMETHODCALLTYPE *AddRef)(
  12639         IInitializeSpy *This);
  12640 
  12641     ULONG (STDMETHODCALLTYPE *Release)(
  12642         IInitializeSpy *This);
  12643 
  12644     /*** IInitializeSpy methods ***/
  12645     HRESULT (STDMETHODCALLTYPE *PreInitialize)(
  12646         IInitializeSpy *This,
  12647         DWORD dwCoInit,
  12648         DWORD dwCurThreadAptRefs);
  12649 
  12650     HRESULT (STDMETHODCALLTYPE *PostInitialize)(
  12651         IInitializeSpy *This,
  12652         HRESULT hrCoInit,
  12653         DWORD dwCoInit,
  12654         DWORD dwNewThreadAptRefs);
  12655 
  12656     HRESULT (STDMETHODCALLTYPE *PreUninitialize)(
  12657         IInitializeSpy *This,
  12658         DWORD dwCurThreadAptRefs);
  12659 
  12660     HRESULT (STDMETHODCALLTYPE *PostUninitialize)(
  12661         IInitializeSpy *This,
  12662         DWORD dwNewThreadAptRefs);
  12663 
  12664     END_INTERFACE
  12665 } IInitializeSpyVtbl;
  12666 
  12667 interface IInitializeSpy {
  12668     CONST_VTBL IInitializeSpyVtbl* lpVtbl;
  12669 };
  12670 
  12671 #ifdef COBJMACROS
  12672 #ifndef WIDL_C_INLINE_WRAPPERS
  12673 /*** IUnknown methods ***/
  12674 #define IInitializeSpy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12675 #define IInitializeSpy_AddRef(This) (This)->lpVtbl->AddRef(This)
  12676 #define IInitializeSpy_Release(This) (This)->lpVtbl->Release(This)
  12677 /*** IInitializeSpy methods ***/
  12678 #define IInitializeSpy_PreInitialize(This,dwCoInit,dwCurThreadAptRefs) (This)->lpVtbl->PreInitialize(This,dwCoInit,dwCurThreadAptRefs)
  12679 #define IInitializeSpy_PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs) (This)->lpVtbl->PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs)
  12680 #define IInitializeSpy_PreUninitialize(This,dwCurThreadAptRefs) (This)->lpVtbl->PreUninitialize(This,dwCurThreadAptRefs)
  12681 #define IInitializeSpy_PostUninitialize(This,dwNewThreadAptRefs) (This)->lpVtbl->PostUninitialize(This,dwNewThreadAptRefs)
  12682 #else
  12683 /*** IUnknown methods ***/
  12684 static inline HRESULT IInitializeSpy_QueryInterface(IInitializeSpy* This,REFIID riid,void **ppvObject) {
  12685     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12686 }
  12687 static inline ULONG IInitializeSpy_AddRef(IInitializeSpy* This) {
  12688     return This->lpVtbl->AddRef(This);
  12689 }
  12690 static inline ULONG IInitializeSpy_Release(IInitializeSpy* This) {
  12691     return This->lpVtbl->Release(This);
  12692 }
  12693 /*** IInitializeSpy methods ***/
  12694 static inline HRESULT IInitializeSpy_PreInitialize(IInitializeSpy* This,DWORD dwCoInit,DWORD dwCurThreadAptRefs) {
  12695     return This->lpVtbl->PreInitialize(This,dwCoInit,dwCurThreadAptRefs);
  12696 }
  12697 static inline HRESULT IInitializeSpy_PostInitialize(IInitializeSpy* This,HRESULT hrCoInit,DWORD dwCoInit,DWORD dwNewThreadAptRefs) {
  12698     return This->lpVtbl->PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs);
  12699 }
  12700 static inline HRESULT IInitializeSpy_PreUninitialize(IInitializeSpy* This,DWORD dwCurThreadAptRefs) {
  12701     return This->lpVtbl->PreUninitialize(This,dwCurThreadAptRefs);
  12702 }
  12703 static inline HRESULT IInitializeSpy_PostUninitialize(IInitializeSpy* This,DWORD dwNewThreadAptRefs) {
  12704     return This->lpVtbl->PostUninitialize(This,dwNewThreadAptRefs);
  12705 }
  12706 #endif
  12707 #endif
  12708 
  12709 #endif
  12710 
  12711 
  12712 #endif  /* __IInitializeSpy_INTERFACE_DEFINED__ */
  12713 
  12714 #endif
  12715 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  12716 /*****************************************************************************
  12717  * IApartmentShutdown interface
  12718  */
  12719 #ifndef __IApartmentShutdown_INTERFACE_DEFINED__
  12720 #define __IApartmentShutdown_INTERFACE_DEFINED__
  12721 
  12722 DEFINE_GUID(IID_IApartmentShutdown, 0xa2f05a09, 0x27a2, 0x42b5, 0xbc,0x0e, 0xac,0x16,0x3e,0xf4,0x9d,0x9b);
  12723 #if defined(__cplusplus) && !defined(CINTERFACE)
  12724 MIDL_INTERFACE("a2f05a09-27a2-42b5-bc0e-ac163ef49d9b")
  12725 IApartmentShutdown : public IUnknown
  12726 {
  12727     virtual void STDMETHODCALLTYPE OnUninitialize(
  12728         UINT64 ui64ApartmentIdentifier) = 0;
  12729 
  12730 };
  12731 #ifdef __CRT_UUID_DECL
  12732 __CRT_UUID_DECL(IApartmentShutdown, 0xa2f05a09, 0x27a2, 0x42b5, 0xbc,0x0e, 0xac,0x16,0x3e,0xf4,0x9d,0x9b)
  12733 #endif
  12734 #else
  12735 typedef struct IApartmentShutdownVtbl {
  12736     BEGIN_INTERFACE
  12737 
  12738     /*** IUnknown methods ***/
  12739     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12740         IApartmentShutdown *This,
  12741         REFIID riid,
  12742         void **ppvObject);
  12743 
  12744     ULONG (STDMETHODCALLTYPE *AddRef)(
  12745         IApartmentShutdown *This);
  12746 
  12747     ULONG (STDMETHODCALLTYPE *Release)(
  12748         IApartmentShutdown *This);
  12749 
  12750     /*** IApartmentShutdown methods ***/
  12751     void (STDMETHODCALLTYPE *OnUninitialize)(
  12752         IApartmentShutdown *This,
  12753         UINT64 ui64ApartmentIdentifier);
  12754 
  12755     END_INTERFACE
  12756 } IApartmentShutdownVtbl;
  12757 
  12758 interface IApartmentShutdown {
  12759     CONST_VTBL IApartmentShutdownVtbl* lpVtbl;
  12760 };
  12761 
  12762 #ifdef COBJMACROS
  12763 #ifndef WIDL_C_INLINE_WRAPPERS
  12764 /*** IUnknown methods ***/
  12765 #define IApartmentShutdown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12766 #define IApartmentShutdown_AddRef(This) (This)->lpVtbl->AddRef(This)
  12767 #define IApartmentShutdown_Release(This) (This)->lpVtbl->Release(This)
  12768 /*** IApartmentShutdown methods ***/
  12769 #define IApartmentShutdown_OnUninitialize(This,ui64ApartmentIdentifier) (This)->lpVtbl->OnUninitialize(This,ui64ApartmentIdentifier)
  12770 #else
  12771 /*** IUnknown methods ***/
  12772 static inline HRESULT IApartmentShutdown_QueryInterface(IApartmentShutdown* This,REFIID riid,void **ppvObject) {
  12773     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12774 }
  12775 static inline ULONG IApartmentShutdown_AddRef(IApartmentShutdown* This) {
  12776     return This->lpVtbl->AddRef(This);
  12777 }
  12778 static inline ULONG IApartmentShutdown_Release(IApartmentShutdown* This) {
  12779     return This->lpVtbl->Release(This);
  12780 }
  12781 /*** IApartmentShutdown methods ***/
  12782 static inline void IApartmentShutdown_OnUninitialize(IApartmentShutdown* This,UINT64 ui64ApartmentIdentifier) {
  12783     This->lpVtbl->OnUninitialize(This,ui64ApartmentIdentifier);
  12784 }
  12785 #endif
  12786 #endif
  12787 
  12788 #endif
  12789 
  12790 
  12791 #endif  /* __IApartmentShutdown_INTERFACE_DEFINED__ */
  12792 
  12793 #endif
  12794 /* Begin additional prototypes for all interfaces */
  12795 
  12796 ULONG           __RPC_USER SNB_UserSize     (ULONG *, ULONG, SNB *);
  12797 unsigned char * __RPC_USER SNB_UserMarshal  (ULONG *, unsigned char *, SNB *);
  12798 unsigned char * __RPC_USER SNB_UserUnmarshal(ULONG *, unsigned char *, SNB *);
  12799 void            __RPC_USER SNB_UserFree     (ULONG *, SNB *);
  12800 ULONG           __RPC_USER CLIPFORMAT_UserSize     (ULONG *, ULONG, CLIPFORMAT *);
  12801 unsigned char * __RPC_USER CLIPFORMAT_UserMarshal  (ULONG *, unsigned char *, CLIPFORMAT *);
  12802 unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
  12803 void            __RPC_USER CLIPFORMAT_UserFree     (ULONG *, CLIPFORMAT *);
  12804 ULONG           __RPC_USER STGMEDIUM_UserSize     (ULONG *, ULONG, STGMEDIUM *);
  12805 unsigned char * __RPC_USER STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, STGMEDIUM *);
  12806 unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, STGMEDIUM *);
  12807 void            __RPC_USER STGMEDIUM_UserFree     (ULONG *, STGMEDIUM *);
  12808 ULONG           __RPC_USER ASYNC_STGMEDIUM_UserSize     (ULONG *, ULONG, ASYNC_STGMEDIUM *);
  12809 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, ASYNC_STGMEDIUM *);
  12810 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, ASYNC_STGMEDIUM *);
  12811 void            __RPC_USER ASYNC_STGMEDIUM_UserFree     (ULONG *, ASYNC_STGMEDIUM *);
  12812 ULONG           __RPC_USER FLAG_STGMEDIUM_UserSize     (ULONG *, ULONG, FLAG_STGMEDIUM *);
  12813 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, FLAG_STGMEDIUM *);
  12814 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, FLAG_STGMEDIUM *);
  12815 void            __RPC_USER FLAG_STGMEDIUM_UserFree     (ULONG *, FLAG_STGMEDIUM *);
  12816 ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
  12817 unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
  12818 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
  12819 void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
  12820 ULONG           __RPC_USER HICON_UserSize     (ULONG *, ULONG, HICON *);
  12821 unsigned char * __RPC_USER HICON_UserMarshal  (ULONG *, unsigned char *, HICON *);
  12822 unsigned char * __RPC_USER HICON_UserUnmarshal(ULONG *, unsigned char *, HICON *);
  12823 void            __RPC_USER HICON_UserFree     (ULONG *, HICON *);
  12824 ULONG           __RPC_USER HDC_UserSize     (ULONG *, ULONG, HDC *);
  12825 unsigned char * __RPC_USER HDC_UserMarshal  (ULONG *, unsigned char *, HDC *);
  12826 unsigned char * __RPC_USER HDC_UserUnmarshal(ULONG *, unsigned char *, HDC *);
  12827 void            __RPC_USER HDC_UserFree     (ULONG *, HDC *);
  12828 
  12829 /* End additional prototypes */
  12830 
  12831 #ifdef __cplusplus
  12832 }
  12833 #endif
  12834 
  12835 #endif /* __objidl_h__ */