master
    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__
   23typedef interface IMarshal IMarshal;
   24#ifdef __cplusplus
   25interface IMarshal;
   26#endif /* __cplusplus */
   27#endif
   28
   29#ifndef __INoMarshal_FWD_DEFINED__
   30#define __INoMarshal_FWD_DEFINED__
   31typedef interface INoMarshal INoMarshal;
   32#ifdef __cplusplus
   33interface INoMarshal;
   34#endif /* __cplusplus */
   35#endif
   36
   37#ifndef __IAgileObject_FWD_DEFINED__
   38#define __IAgileObject_FWD_DEFINED__
   39typedef interface IAgileObject IAgileObject;
   40#ifdef __cplusplus
   41interface IAgileObject;
   42#endif /* __cplusplus */
   43#endif
   44
   45#ifndef __IAgileReference_FWD_DEFINED__
   46#define __IAgileReference_FWD_DEFINED__
   47typedef interface IAgileReference IAgileReference;
   48#ifdef __cplusplus
   49interface IAgileReference;
   50#endif /* __cplusplus */
   51#endif
   52
   53#ifndef __IMarshal2_FWD_DEFINED__
   54#define __IMarshal2_FWD_DEFINED__
   55typedef interface IMarshal2 IMarshal2;
   56#ifdef __cplusplus
   57interface IMarshal2;
   58#endif /* __cplusplus */
   59#endif
   60
   61#ifndef __IMalloc_FWD_DEFINED__
   62#define __IMalloc_FWD_DEFINED__
   63typedef interface IMalloc IMalloc;
   64#ifdef __cplusplus
   65interface IMalloc;
   66#endif /* __cplusplus */
   67#endif
   68
   69#ifndef __IStdMarshalInfo_FWD_DEFINED__
   70#define __IStdMarshalInfo_FWD_DEFINED__
   71typedef interface IStdMarshalInfo IStdMarshalInfo;
   72#ifdef __cplusplus
   73interface IStdMarshalInfo;
   74#endif /* __cplusplus */
   75#endif
   76
   77#ifndef __IExternalConnection_FWD_DEFINED__
   78#define __IExternalConnection_FWD_DEFINED__
   79typedef interface IExternalConnection IExternalConnection;
   80#ifdef __cplusplus
   81interface IExternalConnection;
   82#endif /* __cplusplus */
   83#endif
   84
   85#ifndef __IMultiQI_FWD_DEFINED__
   86#define __IMultiQI_FWD_DEFINED__
   87typedef interface IMultiQI IMultiQI;
   88#ifdef __cplusplus
   89interface IMultiQI;
   90#endif /* __cplusplus */
   91#endif
   92
   93#ifndef __AsyncIMultiQI_FWD_DEFINED__
   94#define __AsyncIMultiQI_FWD_DEFINED__
   95typedef interface AsyncIMultiQI AsyncIMultiQI;
   96#ifdef __cplusplus
   97interface AsyncIMultiQI;
   98#endif /* __cplusplus */
   99#endif
  100
  101#ifndef __IInternalUnknown_FWD_DEFINED__
  102#define __IInternalUnknown_FWD_DEFINED__
  103typedef interface IInternalUnknown IInternalUnknown;
  104#ifdef __cplusplus
  105interface IInternalUnknown;
  106#endif /* __cplusplus */
  107#endif
  108
  109#ifndef __IEnumUnknown_FWD_DEFINED__
  110#define __IEnumUnknown_FWD_DEFINED__
  111typedef interface IEnumUnknown IEnumUnknown;
  112#ifdef __cplusplus
  113interface IEnumUnknown;
  114#endif /* __cplusplus */
  115#endif
  116
  117#ifndef __IEnumString_FWD_DEFINED__
  118#define __IEnumString_FWD_DEFINED__
  119typedef interface IEnumString IEnumString;
  120#ifdef __cplusplus
  121interface IEnumString;
  122#endif /* __cplusplus */
  123#endif
  124
  125#ifndef __ISequentialStream_FWD_DEFINED__
  126#define __ISequentialStream_FWD_DEFINED__
  127typedef interface ISequentialStream ISequentialStream;
  128#ifdef __cplusplus
  129interface ISequentialStream;
  130#endif /* __cplusplus */
  131#endif
  132
  133#ifndef __IStream_FWD_DEFINED__
  134#define __IStream_FWD_DEFINED__
  135typedef interface IStream IStream;
  136#ifdef __cplusplus
  137interface IStream;
  138#endif /* __cplusplus */
  139#endif
  140
  141#ifndef __IRpcChannelBuffer_FWD_DEFINED__
  142#define __IRpcChannelBuffer_FWD_DEFINED__
  143typedef interface IRpcChannelBuffer IRpcChannelBuffer;
  144#ifdef __cplusplus
  145interface IRpcChannelBuffer;
  146#endif /* __cplusplus */
  147#endif
  148
  149#ifndef __IRpcChannelBuffer2_FWD_DEFINED__
  150#define __IRpcChannelBuffer2_FWD_DEFINED__
  151typedef interface IRpcChannelBuffer2 IRpcChannelBuffer2;
  152#ifdef __cplusplus
  153interface IRpcChannelBuffer2;
  154#endif /* __cplusplus */
  155#endif
  156
  157#ifndef __IAsyncRpcChannelBuffer_FWD_DEFINED__
  158#define __IAsyncRpcChannelBuffer_FWD_DEFINED__
  159typedef interface IAsyncRpcChannelBuffer IAsyncRpcChannelBuffer;
  160#ifdef __cplusplus
  161interface IAsyncRpcChannelBuffer;
  162#endif /* __cplusplus */
  163#endif
  164
  165#ifndef __IRpcChannelBuffer3_FWD_DEFINED__
  166#define __IRpcChannelBuffer3_FWD_DEFINED__
  167typedef interface IRpcChannelBuffer3 IRpcChannelBuffer3;
  168#ifdef __cplusplus
  169interface IRpcChannelBuffer3;
  170#endif /* __cplusplus */
  171#endif
  172
  173#ifndef __IRpcSyntaxNegotiate_FWD_DEFINED__
  174#define __IRpcSyntaxNegotiate_FWD_DEFINED__
  175typedef interface IRpcSyntaxNegotiate IRpcSyntaxNegotiate;
  176#ifdef __cplusplus
  177interface IRpcSyntaxNegotiate;
  178#endif /* __cplusplus */
  179#endif
  180
  181#ifndef __IRpcProxyBuffer_FWD_DEFINED__
  182#define __IRpcProxyBuffer_FWD_DEFINED__
  183typedef interface IRpcProxyBuffer IRpcProxyBuffer;
  184#ifdef __cplusplus
  185interface IRpcProxyBuffer;
  186#endif /* __cplusplus */
  187#endif
  188
  189#ifndef __IRpcStubBuffer_FWD_DEFINED__
  190#define __IRpcStubBuffer_FWD_DEFINED__
  191typedef interface IRpcStubBuffer IRpcStubBuffer;
  192#ifdef __cplusplus
  193interface IRpcStubBuffer;
  194#endif /* __cplusplus */
  195#endif
  196
  197#ifndef __IPSFactoryBuffer_FWD_DEFINED__
  198#define __IPSFactoryBuffer_FWD_DEFINED__
  199typedef interface IPSFactoryBuffer IPSFactoryBuffer;
  200#ifdef __cplusplus
  201interface IPSFactoryBuffer;
  202#endif /* __cplusplus */
  203#endif
  204
  205#ifndef __IChannelHook_FWD_DEFINED__
  206#define __IChannelHook_FWD_DEFINED__
  207typedef interface IChannelHook IChannelHook;
  208#ifdef __cplusplus
  209interface IChannelHook;
  210#endif /* __cplusplus */
  211#endif
  212
  213#ifndef __IClientSecurity_FWD_DEFINED__
  214#define __IClientSecurity_FWD_DEFINED__
  215typedef interface IClientSecurity IClientSecurity;
  216#ifdef __cplusplus
  217interface IClientSecurity;
  218#endif /* __cplusplus */
  219#endif
  220
  221#ifndef __IServerSecurity_FWD_DEFINED__
  222#define __IServerSecurity_FWD_DEFINED__
  223typedef interface IServerSecurity IServerSecurity;
  224#ifdef __cplusplus
  225interface IServerSecurity;
  226#endif /* __cplusplus */
  227#endif
  228
  229#ifndef __IRpcOptions_FWD_DEFINED__
  230#define __IRpcOptions_FWD_DEFINED__
  231typedef interface IRpcOptions IRpcOptions;
  232#ifdef __cplusplus
  233interface IRpcOptions;
  234#endif /* __cplusplus */
  235#endif
  236
  237#ifndef __IGlobalOptions_FWD_DEFINED__
  238#define __IGlobalOptions_FWD_DEFINED__
  239typedef interface IGlobalOptions IGlobalOptions;
  240#ifdef __cplusplus
  241interface IGlobalOptions;
  242#endif /* __cplusplus */
  243#endif
  244
  245#ifndef __ISurrogate_FWD_DEFINED__
  246#define __ISurrogate_FWD_DEFINED__
  247typedef interface ISurrogate ISurrogate;
  248#ifdef __cplusplus
  249interface ISurrogate;
  250#endif /* __cplusplus */
  251#endif
  252
  253#ifndef __IGlobalInterfaceTable_FWD_DEFINED__
  254#define __IGlobalInterfaceTable_FWD_DEFINED__
  255typedef interface IGlobalInterfaceTable IGlobalInterfaceTable;
  256#ifdef __cplusplus
  257interface IGlobalInterfaceTable;
  258#endif /* __cplusplus */
  259#endif
  260
  261#ifndef __ISynchronize_FWD_DEFINED__
  262#define __ISynchronize_FWD_DEFINED__
  263typedef interface ISynchronize ISynchronize;
  264#ifdef __cplusplus
  265interface ISynchronize;
  266#endif /* __cplusplus */
  267#endif
  268
  269#ifndef __ISynchronizeHandle_FWD_DEFINED__
  270#define __ISynchronizeHandle_FWD_DEFINED__
  271typedef interface ISynchronizeHandle ISynchronizeHandle;
  272#ifdef __cplusplus
  273interface ISynchronizeHandle;
  274#endif /* __cplusplus */
  275#endif
  276
  277#ifndef __ISynchronizeEvent_FWD_DEFINED__
  278#define __ISynchronizeEvent_FWD_DEFINED__
  279typedef interface ISynchronizeEvent ISynchronizeEvent;
  280#ifdef __cplusplus
  281interface ISynchronizeEvent;
  282#endif /* __cplusplus */
  283#endif
  284
  285#ifndef __ISynchronizeContainer_FWD_DEFINED__
  286#define __ISynchronizeContainer_FWD_DEFINED__
  287typedef interface ISynchronizeContainer ISynchronizeContainer;
  288#ifdef __cplusplus
  289interface ISynchronizeContainer;
  290#endif /* __cplusplus */
  291#endif
  292
  293#ifndef __ISynchronizeMutex_FWD_DEFINED__
  294#define __ISynchronizeMutex_FWD_DEFINED__
  295typedef interface ISynchronizeMutex ISynchronizeMutex;
  296#ifdef __cplusplus
  297interface ISynchronizeMutex;
  298#endif /* __cplusplus */
  299#endif
  300
  301#ifndef __ICancelMethodCalls_FWD_DEFINED__
  302#define __ICancelMethodCalls_FWD_DEFINED__
  303typedef interface ICancelMethodCalls ICancelMethodCalls;
  304#ifdef __cplusplus
  305interface ICancelMethodCalls;
  306#endif /* __cplusplus */
  307#endif
  308
  309#ifndef __IAsyncManager_FWD_DEFINED__
  310#define __IAsyncManager_FWD_DEFINED__
  311typedef interface IAsyncManager IAsyncManager;
  312#ifdef __cplusplus
  313interface IAsyncManager;
  314#endif /* __cplusplus */
  315#endif
  316
  317#ifndef __ICallFactory_FWD_DEFINED__
  318#define __ICallFactory_FWD_DEFINED__
  319typedef interface ICallFactory ICallFactory;
  320#ifdef __cplusplus
  321interface ICallFactory;
  322#endif /* __cplusplus */
  323#endif
  324
  325#ifndef __IRpcHelper_FWD_DEFINED__
  326#define __IRpcHelper_FWD_DEFINED__
  327typedef interface IRpcHelper IRpcHelper;
  328#ifdef __cplusplus
  329interface IRpcHelper;
  330#endif /* __cplusplus */
  331#endif
  332
  333#ifndef __IReleaseMarshalBuffers_FWD_DEFINED__
  334#define __IReleaseMarshalBuffers_FWD_DEFINED__
  335typedef interface IReleaseMarshalBuffers IReleaseMarshalBuffers;
  336#ifdef __cplusplus
  337interface IReleaseMarshalBuffers;
  338#endif /* __cplusplus */
  339#endif
  340
  341#ifndef __IWaitMultiple_FWD_DEFINED__
  342#define __IWaitMultiple_FWD_DEFINED__
  343typedef interface IWaitMultiple IWaitMultiple;
  344#ifdef __cplusplus
  345interface IWaitMultiple;
  346#endif /* __cplusplus */
  347#endif
  348
  349#ifndef __IAddrTrackingControl_FWD_DEFINED__
  350#define __IAddrTrackingControl_FWD_DEFINED__
  351typedef interface IAddrTrackingControl IAddrTrackingControl;
  352#ifdef __cplusplus
  353interface IAddrTrackingControl;
  354#endif /* __cplusplus */
  355#endif
  356
  357#ifndef __IAddrExclusionControl_FWD_DEFINED__
  358#define __IAddrExclusionControl_FWD_DEFINED__
  359typedef interface IAddrExclusionControl IAddrExclusionControl;
  360#ifdef __cplusplus
  361interface IAddrExclusionControl;
  362#endif /* __cplusplus */
  363#endif
  364
  365#ifndef __IPipeByte_FWD_DEFINED__
  366#define __IPipeByte_FWD_DEFINED__
  367typedef interface IPipeByte IPipeByte;
  368#ifdef __cplusplus
  369interface IPipeByte;
  370#endif /* __cplusplus */
  371#endif
  372
  373#ifndef __IPipeLong_FWD_DEFINED__
  374#define __IPipeLong_FWD_DEFINED__
  375typedef interface IPipeLong IPipeLong;
  376#ifdef __cplusplus
  377interface IPipeLong;
  378#endif /* __cplusplus */
  379#endif
  380
  381#ifndef __IPipeDouble_FWD_DEFINED__
  382#define __IPipeDouble_FWD_DEFINED__
  383typedef interface IPipeDouble IPipeDouble;
  384#ifdef __cplusplus
  385interface IPipeDouble;
  386#endif /* __cplusplus */
  387#endif
  388
  389#ifndef __IEnumContextProps_FWD_DEFINED__
  390#define __IEnumContextProps_FWD_DEFINED__
  391typedef interface IEnumContextProps IEnumContextProps;
  392#ifdef __cplusplus
  393interface IEnumContextProps;
  394#endif /* __cplusplus */
  395#endif
  396
  397#ifndef __IContext_FWD_DEFINED__
  398#define __IContext_FWD_DEFINED__
  399typedef interface IContext IContext;
  400#ifdef __cplusplus
  401interface IContext;
  402#endif /* __cplusplus */
  403#endif
  404
  405#ifndef __IComThreadingInfo_FWD_DEFINED__
  406#define __IComThreadingInfo_FWD_DEFINED__
  407typedef interface IComThreadingInfo IComThreadingInfo;
  408#ifdef __cplusplus
  409interface IComThreadingInfo;
  410#endif /* __cplusplus */
  411#endif
  412
  413#ifndef __IProcessInitControl_FWD_DEFINED__
  414#define __IProcessInitControl_FWD_DEFINED__
  415typedef interface IProcessInitControl IProcessInitControl;
  416#ifdef __cplusplus
  417interface IProcessInitControl;
  418#endif /* __cplusplus */
  419#endif
  420
  421#ifndef __IFastRundown_FWD_DEFINED__
  422#define __IFastRundown_FWD_DEFINED__
  423typedef interface IFastRundown IFastRundown;
  424#ifdef __cplusplus
  425interface IFastRundown;
  426#endif /* __cplusplus */
  427#endif
  428
  429#ifndef __IMarshalingStream_FWD_DEFINED__
  430#define __IMarshalingStream_FWD_DEFINED__
  431typedef interface IMarshalingStream IMarshalingStream;
  432#ifdef __cplusplus
  433interface IMarshalingStream;
  434#endif /* __cplusplus */
  435#endif
  436
  437#ifndef __IMallocSpy_FWD_DEFINED__
  438#define __IMallocSpy_FWD_DEFINED__
  439typedef interface IMallocSpy IMallocSpy;
  440#ifdef __cplusplus
  441interface IMallocSpy;
  442#endif /* __cplusplus */
  443#endif
  444
  445#ifndef __IBindCtx_FWD_DEFINED__
  446#define __IBindCtx_FWD_DEFINED__
  447typedef interface IBindCtx IBindCtx;
  448#ifdef __cplusplus
  449interface IBindCtx;
  450#endif /* __cplusplus */
  451#endif
  452
  453#ifndef __IEnumMoniker_FWD_DEFINED__
  454#define __IEnumMoniker_FWD_DEFINED__
  455typedef interface IEnumMoniker IEnumMoniker;
  456#ifdef __cplusplus
  457interface IEnumMoniker;
  458#endif /* __cplusplus */
  459#endif
  460
  461#ifndef __IRunnableObject_FWD_DEFINED__
  462#define __IRunnableObject_FWD_DEFINED__
  463typedef interface IRunnableObject IRunnableObject;
  464#ifdef __cplusplus
  465interface IRunnableObject;
  466#endif /* __cplusplus */
  467#endif
  468
  469#ifndef __IRunningObjectTable_FWD_DEFINED__
  470#define __IRunningObjectTable_FWD_DEFINED__
  471typedef interface IRunningObjectTable IRunningObjectTable;
  472#ifdef __cplusplus
  473interface IRunningObjectTable;
  474#endif /* __cplusplus */
  475#endif
  476
  477#ifndef __IPersist_FWD_DEFINED__
  478#define __IPersist_FWD_DEFINED__
  479typedef interface IPersist IPersist;
  480#ifdef __cplusplus
  481interface IPersist;
  482#endif /* __cplusplus */
  483#endif
  484
  485#ifndef __IPersistStream_FWD_DEFINED__
  486#define __IPersistStream_FWD_DEFINED__
  487typedef interface IPersistStream IPersistStream;
  488#ifdef __cplusplus
  489interface IPersistStream;
  490#endif /* __cplusplus */
  491#endif
  492
  493#ifndef __IMoniker_FWD_DEFINED__
  494#define __IMoniker_FWD_DEFINED__
  495typedef interface IMoniker IMoniker;
  496#ifdef __cplusplus
  497interface IMoniker;
  498#endif /* __cplusplus */
  499#endif
  500
  501#ifndef __IROTData_FWD_DEFINED__
  502#define __IROTData_FWD_DEFINED__
  503typedef interface IROTData IROTData;
  504#ifdef __cplusplus
  505interface IROTData;
  506#endif /* __cplusplus */
  507#endif
  508
  509#ifndef __IEnumSTATSTG_FWD_DEFINED__
  510#define __IEnumSTATSTG_FWD_DEFINED__
  511typedef interface IEnumSTATSTG IEnumSTATSTG;
  512#ifdef __cplusplus
  513interface IEnumSTATSTG;
  514#endif /* __cplusplus */
  515#endif
  516
  517#ifndef __IStorage_FWD_DEFINED__
  518#define __IStorage_FWD_DEFINED__
  519typedef interface IStorage IStorage;
  520#ifdef __cplusplus
  521interface IStorage;
  522#endif /* __cplusplus */
  523#endif
  524
  525#ifndef __IPersistFile_FWD_DEFINED__
  526#define __IPersistFile_FWD_DEFINED__
  527typedef interface IPersistFile IPersistFile;
  528#ifdef __cplusplus
  529interface IPersistFile;
  530#endif /* __cplusplus */
  531#endif
  532
  533#ifndef __IPersistStorage_FWD_DEFINED__
  534#define __IPersistStorage_FWD_DEFINED__
  535typedef interface IPersistStorage IPersistStorage;
  536#ifdef __cplusplus
  537interface IPersistStorage;
  538#endif /* __cplusplus */
  539#endif
  540
  541#ifndef __ILockBytes_FWD_DEFINED__
  542#define __ILockBytes_FWD_DEFINED__
  543typedef interface ILockBytes ILockBytes;
  544#ifdef __cplusplus
  545interface ILockBytes;
  546#endif /* __cplusplus */
  547#endif
  548
  549#ifndef __IEnumFORMATETC_FWD_DEFINED__
  550#define __IEnumFORMATETC_FWD_DEFINED__
  551typedef interface IEnumFORMATETC IEnumFORMATETC;
  552#ifdef __cplusplus
  553interface IEnumFORMATETC;
  554#endif /* __cplusplus */
  555#endif
  556
  557#ifndef __IEnumSTATDATA_FWD_DEFINED__
  558#define __IEnumSTATDATA_FWD_DEFINED__
  559typedef interface IEnumSTATDATA IEnumSTATDATA;
  560#ifdef __cplusplus
  561interface IEnumSTATDATA;
  562#endif /* __cplusplus */
  563#endif
  564
  565#ifndef __IRootStorage_FWD_DEFINED__
  566#define __IRootStorage_FWD_DEFINED__
  567typedef interface IRootStorage IRootStorage;
  568#ifdef __cplusplus
  569interface IRootStorage;
  570#endif /* __cplusplus */
  571#endif
  572
  573#ifndef __IAdviseSink_FWD_DEFINED__
  574#define __IAdviseSink_FWD_DEFINED__
  575typedef interface IAdviseSink IAdviseSink;
  576#ifdef __cplusplus
  577interface IAdviseSink;
  578#endif /* __cplusplus */
  579#endif
  580
  581#ifndef __AsyncIAdviseSink_FWD_DEFINED__
  582#define __AsyncIAdviseSink_FWD_DEFINED__
  583typedef interface AsyncIAdviseSink AsyncIAdviseSink;
  584#ifdef __cplusplus
  585interface AsyncIAdviseSink;
  586#endif /* __cplusplus */
  587#endif
  588
  589#ifndef __IAdviseSink2_FWD_DEFINED__
  590#define __IAdviseSink2_FWD_DEFINED__
  591typedef interface IAdviseSink2 IAdviseSink2;
  592#ifdef __cplusplus
  593interface IAdviseSink2;
  594#endif /* __cplusplus */
  595#endif
  596
  597#ifndef __AsyncIAdviseSink2_FWD_DEFINED__
  598#define __AsyncIAdviseSink2_FWD_DEFINED__
  599typedef interface AsyncIAdviseSink2 AsyncIAdviseSink2;
  600#ifdef __cplusplus
  601interface AsyncIAdviseSink2;
  602#endif /* __cplusplus */
  603#endif
  604
  605#ifndef __IDataObject_FWD_DEFINED__
  606#define __IDataObject_FWD_DEFINED__
  607typedef interface IDataObject IDataObject;
  608#ifdef __cplusplus
  609interface IDataObject;
  610#endif /* __cplusplus */
  611#endif
  612
  613#ifndef __IDataAdviseHolder_FWD_DEFINED__
  614#define __IDataAdviseHolder_FWD_DEFINED__
  615typedef interface IDataAdviseHolder IDataAdviseHolder;
  616#ifdef __cplusplus
  617interface IDataAdviseHolder;
  618#endif /* __cplusplus */
  619#endif
  620
  621#ifndef __IMessageFilter_FWD_DEFINED__
  622#define __IMessageFilter_FWD_DEFINED__
  623typedef interface IMessageFilter IMessageFilter;
  624#ifdef __cplusplus
  625interface IMessageFilter;
  626#endif /* __cplusplus */
  627#endif
  628
  629#ifndef __IClassActivator_FWD_DEFINED__
  630#define __IClassActivator_FWD_DEFINED__
  631typedef interface IClassActivator IClassActivator;
  632#ifdef __cplusplus
  633interface IClassActivator;
  634#endif /* __cplusplus */
  635#endif
  636
  637#ifndef __IFillLockBytes_FWD_DEFINED__
  638#define __IFillLockBytes_FWD_DEFINED__
  639typedef interface IFillLockBytes IFillLockBytes;
  640#ifdef __cplusplus
  641interface IFillLockBytes;
  642#endif /* __cplusplus */
  643#endif
  644
  645#ifndef __IProgressNotify_FWD_DEFINED__
  646#define __IProgressNotify_FWD_DEFINED__
  647typedef interface IProgressNotify IProgressNotify;
  648#ifdef __cplusplus
  649interface IProgressNotify;
  650#endif /* __cplusplus */
  651#endif
  652
  653#ifndef __ILayoutStorage_FWD_DEFINED__
  654#define __ILayoutStorage_FWD_DEFINED__
  655typedef interface ILayoutStorage ILayoutStorage;
  656#ifdef __cplusplus
  657interface ILayoutStorage;
  658#endif /* __cplusplus */
  659#endif
  660
  661#ifndef __IBlockingLock_FWD_DEFINED__
  662#define __IBlockingLock_FWD_DEFINED__
  663typedef interface IBlockingLock IBlockingLock;
  664#ifdef __cplusplus
  665interface IBlockingLock;
  666#endif /* __cplusplus */
  667#endif
  668
  669#ifndef __ITimeAndNoticeControl_FWD_DEFINED__
  670#define __ITimeAndNoticeControl_FWD_DEFINED__
  671typedef interface ITimeAndNoticeControl ITimeAndNoticeControl;
  672#ifdef __cplusplus
  673interface ITimeAndNoticeControl;
  674#endif /* __cplusplus */
  675#endif
  676
  677#ifndef __IOplockStorage_FWD_DEFINED__
  678#define __IOplockStorage_FWD_DEFINED__
  679typedef interface IOplockStorage IOplockStorage;
  680#ifdef __cplusplus
  681interface IOplockStorage;
  682#endif /* __cplusplus */
  683#endif
  684
  685#ifndef __IDirectWriterLock_FWD_DEFINED__
  686#define __IDirectWriterLock_FWD_DEFINED__
  687typedef interface IDirectWriterLock IDirectWriterLock;
  688#ifdef __cplusplus
  689interface IDirectWriterLock;
  690#endif /* __cplusplus */
  691#endif
  692
  693#ifndef __IUrlMon_FWD_DEFINED__
  694#define __IUrlMon_FWD_DEFINED__
  695typedef interface IUrlMon IUrlMon;
  696#ifdef __cplusplus
  697interface IUrlMon;
  698#endif /* __cplusplus */
  699#endif
  700
  701#ifndef __IForegroundTransfer_FWD_DEFINED__
  702#define __IForegroundTransfer_FWD_DEFINED__
  703typedef interface IForegroundTransfer IForegroundTransfer;
  704#ifdef __cplusplus
  705interface IForegroundTransfer;
  706#endif /* __cplusplus */
  707#endif
  708
  709#ifndef __IThumbnailExtractor_FWD_DEFINED__
  710#define __IThumbnailExtractor_FWD_DEFINED__
  711typedef interface IThumbnailExtractor IThumbnailExtractor;
  712#ifdef __cplusplus
  713interface IThumbnailExtractor;
  714#endif /* __cplusplus */
  715#endif
  716
  717#ifndef __IDummyHICONIncluder_FWD_DEFINED__
  718#define __IDummyHICONIncluder_FWD_DEFINED__
  719typedef interface IDummyHICONIncluder IDummyHICONIncluder;
  720#ifdef __cplusplus
  721interface IDummyHICONIncluder;
  722#endif /* __cplusplus */
  723#endif
  724
  725#ifndef __IProcessLock_FWD_DEFINED__
  726#define __IProcessLock_FWD_DEFINED__
  727typedef interface IProcessLock IProcessLock;
  728#ifdef __cplusplus
  729interface IProcessLock;
  730#endif /* __cplusplus */
  731#endif
  732
  733#ifndef __ISurrogateService_FWD_DEFINED__
  734#define __ISurrogateService_FWD_DEFINED__
  735typedef interface ISurrogateService ISurrogateService;
  736#ifdef __cplusplus
  737interface ISurrogateService;
  738#endif /* __cplusplus */
  739#endif
  740
  741#ifndef __IInitializeSpy_FWD_DEFINED__
  742#define __IInitializeSpy_FWD_DEFINED__
  743typedef interface IInitializeSpy IInitializeSpy;
  744#ifdef __cplusplus
  745interface IInitializeSpy;
  746#endif /* __cplusplus */
  747#endif
  748
  749#ifndef __IApartmentShutdown_FWD_DEFINED__
  750#define __IApartmentShutdown_FWD_DEFINED__
  751typedef interface IApartmentShutdown IApartmentShutdown;
  752#ifdef __cplusplus
  753interface 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
  763extern "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__
  805typedef interface IStream IStream;
  806#ifdef __cplusplus
  807interface IStream;
  808#endif /* __cplusplus */
  809#endif
  810
  811#ifndef __IEnumString_FWD_DEFINED__
  812#define __IEnumString_FWD_DEFINED__
  813typedef interface IEnumString IEnumString;
  814#ifdef __cplusplus
  815interface IEnumString;
  816#endif /* __cplusplus */
  817#endif
  818
  819#ifndef __IMultiQI_FWD_DEFINED__
  820#define __IMultiQI_FWD_DEFINED__
  821typedef interface IMultiQI IMultiQI;
  822#ifdef __cplusplus
  823interface 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__
  832typedef interface IAsyncManager IAsyncManager;
  833#ifdef __cplusplus
  834interface IAsyncManager;
  835#endif /* __cplusplus */
  836#endif
  837
  838#ifndef __ICallFactory_FWD_DEFINED__
  839#define __ICallFactory_FWD_DEFINED__
  840typedef interface ICallFactory ICallFactory;
  841#ifdef __cplusplus
  842interface ICallFactory;
  843#endif /* __cplusplus */
  844#endif
  845
  846#ifndef __ISynchronize_FWD_DEFINED__
  847#define __ISynchronize_FWD_DEFINED__
  848typedef interface ISynchronize ISynchronize;
  849#ifdef __cplusplus
  850interface ISynchronize;
  851#endif /* __cplusplus */
  852#endif
  853
  854#endif
  855
  856#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  857typedef 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
  870typedef IMarshal *LPMARSHAL;
  871DEFINE_GUID(IID_IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  872#if defined(__cplusplus) && !defined(CINTERFACE)
  873MIDL_INTERFACE("00000003-0000-0000-c000-000000000046")
  874IMarshal : 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
  916typedef 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
  976interface 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 ***/
  995static inline HRESULT IMarshal_QueryInterface(IMarshal* This,REFIID riid,void **ppvObject) {
  996    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  997}
  998static inline ULONG IMarshal_AddRef(IMarshal* This) {
  999    return This->lpVtbl->AddRef(This);
 1000}
 1001static inline ULONG IMarshal_Release(IMarshal* This) {
 1002    return This->lpVtbl->Release(This);
 1003}
 1004/*** IMarshal methods ***/
 1005static 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}
 1008static 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}
 1011static 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}
 1014static inline HRESULT IMarshal_UnmarshalInterface(IMarshal* This,IStream *pStm,REFIID riid,void **ppv) {
 1015    return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
 1016}
 1017static inline HRESULT IMarshal_ReleaseMarshalData(IMarshal* This,IStream *pStm) {
 1018    return This->lpVtbl->ReleaseMarshalData(This,pStm);
 1019}
 1020static 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
 1038DEFINE_GUID(IID_INoMarshal, 0xecc8691b, 0xc1db, 0x4dc0, 0x85,0x5e, 0x65,0xf6,0xc5,0x51,0xaf,0x49);
 1039#if defined(__cplusplus) && !defined(CINTERFACE)
 1040MIDL_INTERFACE("ecc8691b-c1db-4dc0-855e-65f6c551af49")
 1041INoMarshal : 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
 1048typedef 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
 1066interface 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 ***/
 1078static inline HRESULT INoMarshal_QueryInterface(INoMarshal* This,REFIID riid,void **ppvObject) {
 1079    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1080}
 1081static inline ULONG INoMarshal_AddRef(INoMarshal* This) {
 1082    return This->lpVtbl->AddRef(This);
 1083}
 1084static 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
 1102DEFINE_GUID(IID_IAgileObject, 0x94ea2b94, 0xe9cc, 0x49e0, 0xc0,0xff, 0xee,0x64,0xca,0x8f,0x5b,0x90);
 1103#if defined(__cplusplus) && !defined(CINTERFACE)
 1104MIDL_INTERFACE("94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90")
 1105IAgileObject : 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
 1112typedef 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
 1130interface 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 ***/
 1142static inline HRESULT IAgileObject_QueryInterface(IAgileObject* This,REFIID riid,void **ppvObject) {
 1143    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1144}
 1145static inline ULONG IAgileObject_AddRef(IAgileObject* This) {
 1146    return This->lpVtbl->AddRef(This);
 1147}
 1148static 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
 1165DEFINE_GUID(IID_IAgileReference, 0xc03f6a43, 0x65a4, 0x9818, 0x98,0x7e, 0xe0,0xb8,0x10,0xd2,0xa6,0xf2);
 1166#if defined(__cplusplus) && !defined(CINTERFACE)
 1167MIDL_INTERFACE("c03f6a43-65a4-9818-987e-e0b810d2a6f2")
 1168IAgileReference : 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
 1179typedef 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
 1203interface 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 ***/
 1217static inline HRESULT IAgileReference_QueryInterface(IAgileReference* This,REFIID riid,void **ppvObject) {
 1218    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1219}
 1220static inline ULONG IAgileReference_AddRef(IAgileReference* This) {
 1221    return This->lpVtbl->AddRef(This);
 1222}
 1223static inline ULONG IAgileReference_Release(IAgileReference* This) {
 1224    return This->lpVtbl->Release(This);
 1225}
 1226/*** IAgileReference methods ***/
 1227static 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
 1247typedef IMarshal2 *LPMARSHAL2;
 1248DEFINE_GUID(IID_IMarshal2, 0x000001cf, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 1249#if defined(__cplusplus) && !defined(CINTERFACE)
 1250MIDL_INTERFACE("000001cf-0000-0000-c000-000000000046")
 1251IMarshal2 : 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
 1258typedef 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
 1318interface 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 ***/
 1337static inline HRESULT IMarshal2_QueryInterface(IMarshal2* This,REFIID riid,void **ppvObject) {
 1338    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1339}
 1340static inline ULONG IMarshal2_AddRef(IMarshal2* This) {
 1341    return This->lpVtbl->AddRef(This);
 1342}
 1343static inline ULONG IMarshal2_Release(IMarshal2* This) {
 1344    return This->lpVtbl->Release(This);
 1345}
 1346/*** IMarshal methods ***/
 1347static 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}
 1350static 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}
 1353static 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}
 1356static inline HRESULT IMarshal2_UnmarshalInterface(IMarshal2* This,IStream *pStm,REFIID riid,void **ppv) {
 1357    return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
 1358}
 1359static inline HRESULT IMarshal2_ReleaseMarshalData(IMarshal2* This,IStream *pStm) {
 1360    return This->lpVtbl->ReleaseMarshalData(This,pStm);
 1361}
 1362static 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
 1380typedef IMalloc *LPMALLOC;
 1381
 1382DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 1383#if defined(__cplusplus) && !defined(CINTERFACE)
 1384MIDL_INTERFACE("00000002-0000-0000-c000-000000000046")
 1385IMalloc : 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
 1411typedef 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
 1454interface 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 ***/
 1473static inline HRESULT IMalloc_QueryInterface(IMalloc* This,REFIID riid,void **ppvObject) {
 1474    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1475}
 1476static inline ULONG IMalloc_AddRef(IMalloc* This) {
 1477    return This->lpVtbl->AddRef(This);
 1478}
 1479static inline ULONG IMalloc_Release(IMalloc* This) {
 1480    return This->lpVtbl->Release(This);
 1481}
 1482/*** IMalloc methods ***/
 1483static inline void * IMalloc_Alloc(IMalloc* This,SIZE_T cb) {
 1484    return This->lpVtbl->Alloc(This,cb);
 1485}
 1486static inline void * IMalloc_Realloc(IMalloc* This,void *pv,SIZE_T cb) {
 1487    return This->lpVtbl->Realloc(This,pv,cb);
 1488}
 1489static inline void IMalloc_Free(IMalloc* This,void *pv) {
 1490    This->lpVtbl->Free(This,pv);
 1491}
 1492static inline SIZE_T IMalloc_GetSize(IMalloc* This,void *pv) {
 1493    return This->lpVtbl->GetSize(This,pv);
 1494}
 1495static inline int IMalloc_DidAlloc(IMalloc* This,void *pv) {
 1496    return This->lpVtbl->DidAlloc(This,pv);
 1497}
 1498static 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
 1516typedef IStdMarshalInfo *LPSTDMARSHALINFO;
 1517
 1518DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 1519#if defined(__cplusplus) && !defined(CINTERFACE)
 1520MIDL_INTERFACE("00000018-0000-0000-c000-000000000046")
 1521IStdMarshalInfo : 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
 1533typedef 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
 1558interface 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 ***/
 1572static inline HRESULT IStdMarshalInfo_QueryInterface(IStdMarshalInfo* This,REFIID riid,void **ppvObject) {
 1573    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1574}
 1575static inline ULONG IStdMarshalInfo_AddRef(IStdMarshalInfo* This) {
 1576    return This->lpVtbl->AddRef(This);
 1577}
 1578static inline ULONG IStdMarshalInfo_Release(IStdMarshalInfo* This) {
 1579    return This->lpVtbl->Release(This);
 1580}
 1581/*** IStdMarshalInfo methods ***/
 1582static 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
 1600typedef IExternalConnection *LPEXTERNALCONNECTION;
 1601
 1602typedef enum tagEXTCONN {
 1603    EXTCONN_STRONG = 0x1,
 1604    EXTCONN_WEAK = 0x2,
 1605    EXTCONN_CALLABLE = 0x4
 1606} EXTCONN;
 1607
 1608DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 1609#if defined(__cplusplus) && !defined(CINTERFACE)
 1610MIDL_INTERFACE("00000019-0000-0000-c000-000000000046")
 1611IExternalConnection : 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
 1627typedef 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
 1657interface 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 ***/
 1672static inline HRESULT IExternalConnection_QueryInterface(IExternalConnection* This,REFIID riid,void **ppvObject) {
 1673    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1674}
 1675static inline ULONG IExternalConnection_AddRef(IExternalConnection* This) {
 1676    return This->lpVtbl->AddRef(This);
 1677}
 1678static inline ULONG IExternalConnection_Release(IExternalConnection* This) {
 1679    return This->lpVtbl->Release(This);
 1680}
 1681/*** IExternalConnection methods ***/
 1682static inline DWORD IExternalConnection_AddConnection(IExternalConnection* This,DWORD extconn,DWORD reserved) {
 1683    return This->lpVtbl->AddConnection(This,extconn,reserved);
 1684}
 1685static 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
 1697typedef IMultiQI *LPMULTIQI;
 1698#endif
 1699
 1700#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
 1701typedef 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
 1713DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 1714#if defined(__cplusplus) && !defined(CINTERFACE)
 1715MIDL_INTERFACE("00000020-0000-0000-c000-000000000046")
 1716IMultiQI : 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
 1727typedef 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
 1751interface 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 ***/
 1765static inline HRESULT IMultiQI_QueryInterface(IMultiQI* This,REFIID riid,void **ppvObject) {
 1766    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1767}
 1768static inline ULONG IMultiQI_AddRef(IMultiQI* This) {
 1769    return This->lpVtbl->AddRef(This);
 1770}
 1771static inline ULONG IMultiQI_Release(IMultiQI* This) {
 1772    return This->lpVtbl->Release(This);
 1773}
 1774/*** IMultiQI methods ***/
 1775static 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
 1792DEFINE_GUID(IID_AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 1793#if defined(__cplusplus) && !defined(CINTERFACE)
 1794MIDL_INTERFACE("000e0020-0000-0000-c000-000000000046")
 1795AsyncIMultiQI : 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
 1809typedef 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
 1837interface 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 ***/
 1852static inline HRESULT AsyncIMultiQI_QueryInterface(AsyncIMultiQI* This,REFIID riid,void **ppvObject) {
 1853    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1854}
 1855static inline ULONG AsyncIMultiQI_AddRef(AsyncIMultiQI* This) {
 1856    return This->lpVtbl->AddRef(This);
 1857}
 1858static inline ULONG AsyncIMultiQI_Release(AsyncIMultiQI* This) {
 1859    return This->lpVtbl->Release(This);
 1860}
 1861/*** AsyncIMultiQI methods ***/
 1862static inline HRESULT AsyncIMultiQI_Begin_QueryMultipleInterfaces(AsyncIMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
 1863    return This->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs);
 1864}
 1865static 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
 1885DEFINE_GUID(IID_IInternalUnknown, 0x00000021, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 1886#if defined(__cplusplus) && !defined(CINTERFACE)
 1887MIDL_INTERFACE("00000021-0000-0000-c000-000000000046")
 1888IInternalUnknown : 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
 1899typedef 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
 1923interface 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 ***/
 1937static inline HRESULT IInternalUnknown_QueryInterface(IInternalUnknown* This,REFIID riid,void **ppvObject) {
 1938    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1939}
 1940static inline ULONG IInternalUnknown_AddRef(IInternalUnknown* This) {
 1941    return This->lpVtbl->AddRef(This);
 1942}
 1943static inline ULONG IInternalUnknown_Release(IInternalUnknown* This) {
 1944    return This->lpVtbl->Release(This);
 1945}
 1946/*** IInternalUnknown methods ***/
 1947static 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
 1967typedef IEnumUnknown *LPENUMUNKNOWN;
 1968
 1969DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 1970#if defined(__cplusplus) && !defined(CINTERFACE)
 1971MIDL_INTERFACE("00000100-0000-0000-c000-000000000046")
 1972IEnumUnknown : 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
 1993typedef 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
 2029interface 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 ***/
 2046static inline HRESULT IEnumUnknown_QueryInterface(IEnumUnknown* This,REFIID riid,void **ppvObject) {
 2047    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2048}
 2049static inline ULONG IEnumUnknown_AddRef(IEnumUnknown* This) {
 2050    return This->lpVtbl->AddRef(This);
 2051}
 2052static inline ULONG IEnumUnknown_Release(IEnumUnknown* This) {
 2053    return This->lpVtbl->Release(This);
 2054}
 2055/*** IEnumUnknown methods ***/
 2056static inline HRESULT IEnumUnknown_Next(IEnumUnknown* This,ULONG celt,IUnknown **rgelt,ULONG *pceltFetched) {
 2057    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
 2058}
 2059static inline HRESULT IEnumUnknown_Skip(IEnumUnknown* This,ULONG celt) {
 2060    return This->lpVtbl->Skip(This,celt);
 2061}
 2062static inline HRESULT IEnumUnknown_Reset(IEnumUnknown* This) {
 2063    return This->lpVtbl->Reset(This);
 2064}
 2065static inline HRESULT IEnumUnknown_Clone(IEnumUnknown* This,IEnumUnknown **ppenum) {
 2066    return This->lpVtbl->Clone(This,ppenum);
 2067}
 2068#endif
 2069#endif
 2070
 2071#endif
 2072
 2073HRESULT STDMETHODCALLTYPE IEnumUnknown_RemoteNext_Proxy(
 2074    IEnumUnknown* This,
 2075    ULONG celt,
 2076    IUnknown **rgelt,
 2077    ULONG *pceltFetched);
 2078void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
 2079    IRpcStubBuffer* This,
 2080    IRpcChannelBuffer* pRpcChannelBuffer,
 2081    PRPC_MESSAGE pRpcMessage,
 2082    DWORD* pdwStubPhase);
 2083HRESULT CALLBACK IEnumUnknown_Next_Proxy(
 2084    IEnumUnknown* This,
 2085    ULONG celt,
 2086    IUnknown **rgelt,
 2087    ULONG *pceltFetched);
 2088HRESULT __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
 2103typedef IEnumString *LPENUMSTRING;
 2104
 2105DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 2106#if defined(__cplusplus) && !defined(CINTERFACE)
 2107MIDL_INTERFACE("00000101-0000-0000-c000-000000000046")
 2108IEnumString : 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
 2129typedef 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
 2165interface 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 ***/
 2182static inline HRESULT IEnumString_QueryInterface(IEnumString* This,REFIID riid,void **ppvObject) {
 2183    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2184}
 2185static inline ULONG IEnumString_AddRef(IEnumString* This) {
 2186    return This->lpVtbl->AddRef(This);
 2187}
 2188static inline ULONG IEnumString_Release(IEnumString* This) {
 2189    return This->lpVtbl->Release(This);
 2190}
 2191/*** IEnumString methods ***/
 2192static inline HRESULT IEnumString_Next(IEnumString* This,ULONG celt,LPOLESTR *rgelt,ULONG *pceltFetched) {
 2193    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
 2194}
 2195static inline HRESULT IEnumString_Skip(IEnumString* This,ULONG celt) {
 2196    return This->lpVtbl->Skip(This,celt);
 2197}
 2198static inline HRESULT IEnumString_Reset(IEnumString* This) {
 2199    return This->lpVtbl->Reset(This);
 2200}
 2201static inline HRESULT IEnumString_Clone(IEnumString* This,IEnumString **ppenum) {
 2202    return This->lpVtbl->Clone(This,ppenum);
 2203}
 2204#endif
 2205#endif
 2206
 2207#endif
 2208
 2209HRESULT STDMETHODCALLTYPE IEnumString_RemoteNext_Proxy(
 2210    IEnumString* This,
 2211    ULONG celt,
 2212    LPOLESTR *rgelt,
 2213    ULONG *pceltFetched);
 2214void __RPC_STUB IEnumString_RemoteNext_Stub(
 2215    IRpcStubBuffer* This,
 2216    IRpcChannelBuffer* pRpcChannelBuffer,
 2217    PRPC_MESSAGE pRpcMessage,
 2218    DWORD* pdwStubPhase);
 2219HRESULT CALLBACK IEnumString_Next_Proxy(
 2220    IEnumString* This,
 2221    ULONG celt,
 2222    LPOLESTR *rgelt,
 2223    ULONG *pceltFetched);
 2224HRESULT __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
 2239DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
 2240#if defined(__cplusplus) && !defined(CINTERFACE)
 2241MIDL_INTERFACE("0c733a30-2a1c-11ce-ade5-00aa0044773d")
 2242ISequentialStream : 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
 2259typedef 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
 2290interface 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 ***/
 2305static inline HRESULT ISequentialStream_QueryInterface(ISequentialStream* This,REFIID riid,void **ppvObject) {
 2306    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2307}
 2308static inline ULONG ISequentialStream_AddRef(ISequentialStream* This) {
 2309    return This->lpVtbl->AddRef(This);
 2310}
 2311static inline ULONG ISequentialStream_Release(ISequentialStream* This) {
 2312    return This->lpVtbl->Release(This);
 2313}
 2314/*** ISequentialStream methods ***/
 2315static inline HRESULT ISequentialStream_Read(ISequentialStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
 2316    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 2317}
 2318static 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
 2326HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteRead_Proxy(
 2327    ISequentialStream* This,
 2328    byte *pv,
 2329    ULONG cb,
 2330    ULONG *pcbRead);
 2331void __RPC_STUB ISequentialStream_RemoteRead_Stub(
 2332    IRpcStubBuffer* This,
 2333    IRpcChannelBuffer* pRpcChannelBuffer,
 2334    PRPC_MESSAGE pRpcMessage,
 2335    DWORD* pdwStubPhase);
 2336HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteWrite_Proxy(
 2337    ISequentialStream* This,
 2338    const byte *pv,
 2339    ULONG cb,
 2340    ULONG *pcbWritten);
 2341void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
 2342    IRpcStubBuffer* This,
 2343    IRpcChannelBuffer* pRpcChannelBuffer,
 2344    PRPC_MESSAGE pRpcMessage,
 2345    DWORD* pdwStubPhase);
 2346HRESULT CALLBACK ISequentialStream_Read_Proxy(
 2347    ISequentialStream* This,
 2348    void *pv,
 2349    ULONG cb,
 2350    ULONG *pcbRead);
 2351HRESULT __RPC_STUB ISequentialStream_Read_Stub(
 2352    ISequentialStream* This,
 2353    byte *pv,
 2354    ULONG cb,
 2355    ULONG *pcbRead);
 2356HRESULT CALLBACK ISequentialStream_Write_Proxy(
 2357    ISequentialStream* This,
 2358    const void *pv,
 2359    ULONG cb,
 2360    ULONG *pcbWritten);
 2361HRESULT __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
 2376typedef IStream *LPSTREAM;
 2377
 2378typedef 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
 2392typedef enum tagSTGTY {
 2393    STGTY_STORAGE = 1,
 2394    STGTY_STREAM = 2,
 2395    STGTY_LOCKBYTES = 3,
 2396    STGTY_PROPERTY = 4
 2397} STGTY;
 2398
 2399typedef enum tagSTREAM_SEEK {
 2400    STREAM_SEEK_SET = 0,
 2401    STREAM_SEEK_CUR = 1,
 2402    STREAM_SEEK_END = 2
 2403} STREAM_SEEK;
 2404
 2405typedef enum tagLOCKTYPE {
 2406    LOCK_WRITE = 1,
 2407    LOCK_EXCLUSIVE = 2,
 2408    LOCK_ONLYONCE = 4
 2409} LOCKTYPE;
 2410
 2411DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 2412#if defined(__cplusplus) && !defined(CINTERFACE)
 2413MIDL_INTERFACE("0000000c-0000-0000-c000-000000000046")
 2414IStream : 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
 2458typedef 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
 2535interface 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 ***/
 2560static inline HRESULT IStream_QueryInterface(IStream* This,REFIID riid,void **ppvObject) {
 2561    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2562}
 2563static inline ULONG IStream_AddRef(IStream* This) {
 2564    return This->lpVtbl->AddRef(This);
 2565}
 2566static inline ULONG IStream_Release(IStream* This) {
 2567    return This->lpVtbl->Release(This);
 2568}
 2569/*** ISequentialStream methods ***/
 2570static inline HRESULT IStream_Read(IStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
 2571    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 2572}
 2573static 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 ***/
 2577static inline HRESULT IStream_Seek(IStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 2578    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 2579}
 2580static inline HRESULT IStream_SetSize(IStream* This,ULARGE_INTEGER libNewSize) {
 2581    return This->lpVtbl->SetSize(This,libNewSize);
 2582}
 2583static 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}
 2586static inline HRESULT IStream_Commit(IStream* This,DWORD grfCommitFlags) {
 2587    return This->lpVtbl->Commit(This,grfCommitFlags);
 2588}
 2589static inline HRESULT IStream_Revert(IStream* This) {
 2590    return This->lpVtbl->Revert(This);
 2591}
 2592static inline HRESULT IStream_LockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 2593    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 2594}
 2595static inline HRESULT IStream_UnlockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 2596    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 2597}
 2598static inline HRESULT IStream_Stat(IStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 2599    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 2600}
 2601static inline HRESULT IStream_Clone(IStream* This,IStream **ppstm) {
 2602    return This->lpVtbl->Clone(This,ppstm);
 2603}
 2604#endif
 2605#endif
 2606
 2607#endif
 2608
 2609HRESULT STDMETHODCALLTYPE IStream_RemoteSeek_Proxy(
 2610    IStream* This,
 2611    LARGE_INTEGER dlibMove,
 2612    DWORD dwOrigin,
 2613    ULARGE_INTEGER *plibNewPosition);
 2614void __RPC_STUB IStream_RemoteSeek_Stub(
 2615    IRpcStubBuffer* This,
 2616    IRpcChannelBuffer* pRpcChannelBuffer,
 2617    PRPC_MESSAGE pRpcMessage,
 2618    DWORD* pdwStubPhase);
 2619HRESULT STDMETHODCALLTYPE IStream_RemoteCopyTo_Proxy(
 2620    IStream* This,
 2621    IStream *pstm,
 2622    ULARGE_INTEGER cb,
 2623    ULARGE_INTEGER *pcbRead,
 2624    ULARGE_INTEGER *pcbWritten);
 2625void __RPC_STUB IStream_RemoteCopyTo_Stub(
 2626    IRpcStubBuffer* This,
 2627    IRpcChannelBuffer* pRpcChannelBuffer,
 2628    PRPC_MESSAGE pRpcMessage,
 2629    DWORD* pdwStubPhase);
 2630HRESULT CALLBACK IStream_Seek_Proxy(
 2631    IStream* This,
 2632    LARGE_INTEGER dlibMove,
 2633    DWORD dwOrigin,
 2634    ULARGE_INTEGER *plibNewPosition);
 2635HRESULT __RPC_STUB IStream_Seek_Stub(
 2636    IStream* This,
 2637    LARGE_INTEGER dlibMove,
 2638    DWORD dwOrigin,
 2639    ULARGE_INTEGER *plibNewPosition);
 2640HRESULT CALLBACK IStream_CopyTo_Proxy(
 2641    IStream* This,
 2642    IStream *pstm,
 2643    ULARGE_INTEGER cb,
 2644    ULARGE_INTEGER *pcbRead,
 2645    ULARGE_INTEGER *pcbWritten);
 2646HRESULT __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
 2662typedef ULONG RPCOLEDATAREP;
 2663
 2664typedef 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
 2674typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
 2675
 2676DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
 2677#if defined(__cplusplus) && !defined(CINTERFACE)
 2678MIDL_INTERFACE("d5f56b60-593b-101a-b569-08002b2dbf7a")
 2679IRpcChannelBuffer : 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
 2704typedef 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
 2745interface 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 ***/
 2763static inline HRESULT IRpcChannelBuffer_QueryInterface(IRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
 2764    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2765}
 2766static inline ULONG IRpcChannelBuffer_AddRef(IRpcChannelBuffer* This) {
 2767    return This->lpVtbl->AddRef(This);
 2768}
 2769static inline ULONG IRpcChannelBuffer_Release(IRpcChannelBuffer* This) {
 2770    return This->lpVtbl->Release(This);
 2771}
 2772/*** IRpcChannelBuffer methods ***/
 2773static inline HRESULT IRpcChannelBuffer_GetBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
 2774    return This->lpVtbl->GetBuffer(This,pMessage,riid);
 2775}
 2776static inline HRESULT IRpcChannelBuffer_SendReceive(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
 2777    return This->lpVtbl->SendReceive(This,pMessage,pStatus);
 2778}
 2779static inline HRESULT IRpcChannelBuffer_FreeBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
 2780    return This->lpVtbl->FreeBuffer(This,pMessage);
 2781}
 2782static inline HRESULT IRpcChannelBuffer_GetDestCtx(IRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
 2783    return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
 2784}
 2785static 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
 2805DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
 2806#if defined(__cplusplus) && !defined(CINTERFACE)
 2807MIDL_INTERFACE("594f31d0-7f19-11d0-b194-00a0c90dc8bf")
 2808IRpcChannelBuffer2 : 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
 2818typedef 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
 2864interface 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 ***/
 2884static inline HRESULT IRpcChannelBuffer2_QueryInterface(IRpcChannelBuffer2* This,REFIID riid,void **ppvObject) {
 2885    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2886}
 2887static inline ULONG IRpcChannelBuffer2_AddRef(IRpcChannelBuffer2* This) {
 2888    return This->lpVtbl->AddRef(This);
 2889}
 2890static inline ULONG IRpcChannelBuffer2_Release(IRpcChannelBuffer2* This) {
 2891    return This->lpVtbl->Release(This);
 2892}
 2893/*** IRpcChannelBuffer methods ***/
 2894static inline HRESULT IRpcChannelBuffer2_GetBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
 2895    return This->lpVtbl->GetBuffer(This,pMessage,riid);
 2896}
 2897static inline HRESULT IRpcChannelBuffer2_SendReceive(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
 2898    return This->lpVtbl->SendReceive(This,pMessage,pStatus);
 2899}
 2900static inline HRESULT IRpcChannelBuffer2_FreeBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage) {
 2901    return This->lpVtbl->FreeBuffer(This,pMessage);
 2902}
 2903static inline HRESULT IRpcChannelBuffer2_GetDestCtx(IRpcChannelBuffer2* This,DWORD *pdwDestContext,void **ppvDestContext) {
 2904    return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
 2905}
 2906static inline HRESULT IRpcChannelBuffer2_IsConnected(IRpcChannelBuffer2* This) {
 2907    return This->lpVtbl->IsConnected(This);
 2908}
 2909/*** IRpcChannelBuffer2 methods ***/
 2910static 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
 2928DEFINE_GUID(IID_IAsyncRpcChannelBuffer, 0xa5029fb6, 0x3c34, 0x11d1, 0x9c,0x99, 0x00,0xc0,0x4f,0xb9,0x98,0xaa);
 2929#if defined(__cplusplus) && !defined(CINTERFACE)
 2930MIDL_INTERFACE("a5029fb6-3c34-11d1-9c99-00c04fb998aa")
 2931IAsyncRpcChannelBuffer : 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
 2952typedef 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
 3016interface 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 ***/
 3040static inline HRESULT IAsyncRpcChannelBuffer_QueryInterface(IAsyncRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
 3041    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3042}
 3043static inline ULONG IAsyncRpcChannelBuffer_AddRef(IAsyncRpcChannelBuffer* This) {
 3044    return This->lpVtbl->AddRef(This);
 3045}
 3046static inline ULONG IAsyncRpcChannelBuffer_Release(IAsyncRpcChannelBuffer* This) {
 3047    return This->lpVtbl->Release(This);
 3048}
 3049/*** IRpcChannelBuffer methods ***/
 3050static inline HRESULT IAsyncRpcChannelBuffer_GetBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
 3051    return This->lpVtbl->GetBuffer(This,pMessage,riid);
 3052}
 3053static inline HRESULT IAsyncRpcChannelBuffer_SendReceive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
 3054    return This->lpVtbl->SendReceive(This,pMessage,pStatus);
 3055}
 3056static inline HRESULT IAsyncRpcChannelBuffer_FreeBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
 3057    return This->lpVtbl->FreeBuffer(This,pMessage);
 3058}
 3059static inline HRESULT IAsyncRpcChannelBuffer_GetDestCtx(IAsyncRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
 3060    return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
 3061}
 3062static inline HRESULT IAsyncRpcChannelBuffer_IsConnected(IAsyncRpcChannelBuffer* This) {
 3063    return This->lpVtbl->IsConnected(This);
 3064}
 3065/*** IRpcChannelBuffer2 methods ***/
 3066static inline HRESULT IAsyncRpcChannelBuffer_GetProtocolVersion(IAsyncRpcChannelBuffer* This,DWORD *pdwVersion) {
 3067    return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
 3068}
 3069/*** IAsyncRpcChannelBuffer methods ***/
 3070static inline HRESULT IAsyncRpcChannelBuffer_Send(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ISynchronize *pSync,ULONG *pulStatus) {
 3071    return This->lpVtbl->Send(This,pMsg,pSync,pulStatus);
 3072}
 3073static inline HRESULT IAsyncRpcChannelBuffer_Receive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
 3074    return This->lpVtbl->Receive(This,pMsg,pulStatus);
 3075}
 3076static 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
 3094DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
 3095#if defined(__cplusplus) && !defined(CINTERFACE)
 3096MIDL_INTERFACE("25b15600-0115-11d0-bf0d-00aa00b8dfd2")
 3097IRpcChannelBuffer3 : 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
 3134typedef 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
 3218interface 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 ***/
 3246static inline HRESULT IRpcChannelBuffer3_QueryInterface(IRpcChannelBuffer3* This,REFIID riid,void **ppvObject) {
 3247    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3248}
 3249static inline ULONG IRpcChannelBuffer3_AddRef(IRpcChannelBuffer3* This) {
 3250    return This->lpVtbl->AddRef(This);
 3251}
 3252static inline ULONG IRpcChannelBuffer3_Release(IRpcChannelBuffer3* This) {
 3253    return This->lpVtbl->Release(This);
 3254}
 3255/*** IRpcChannelBuffer methods ***/
 3256static inline HRESULT IRpcChannelBuffer3_GetBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
 3257    return This->lpVtbl->GetBuffer(This,pMessage,riid);
 3258}
 3259static inline HRESULT IRpcChannelBuffer3_SendReceive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
 3260    return This->lpVtbl->SendReceive(This,pMessage,pStatus);
 3261}
 3262static inline HRESULT IRpcChannelBuffer3_FreeBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage) {
 3263    return This->lpVtbl->FreeBuffer(This,pMessage);
 3264}
 3265static inline HRESULT IRpcChannelBuffer3_GetDestCtx(IRpcChannelBuffer3* This,DWORD *pdwDestContext,void **ppvDestContext) {
 3266    return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
 3267}
 3268static inline HRESULT IRpcChannelBuffer3_IsConnected(IRpcChannelBuffer3* This) {
 3269    return This->lpVtbl->IsConnected(This);
 3270}
 3271/*** IRpcChannelBuffer2 methods ***/
 3272static inline HRESULT IRpcChannelBuffer3_GetProtocolVersion(IRpcChannelBuffer3* This,DWORD *pdwVersion) {
 3273    return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
 3274}
 3275/*** IRpcChannelBuffer3 methods ***/
 3276static inline HRESULT IRpcChannelBuffer3_Send(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
 3277    return This->lpVtbl->Send(This,pMsg,pulStatus);
 3278}
 3279static inline HRESULT IRpcChannelBuffer3_Receive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG ulSize,ULONG *pulStatus) {
 3280    return This->lpVtbl->Receive(This,pMsg,ulSize,pulStatus);
 3281}
 3282static inline HRESULT IRpcChannelBuffer3_Cancel(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg) {
 3283    return This->lpVtbl->Cancel(This,pMsg);
 3284}
 3285static inline HRESULT IRpcChannelBuffer3_GetCallContext(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,REFIID riid,void **pInterface) {
 3286    return This->lpVtbl->GetCallContext(This,pMsg,riid,pInterface);
 3287}
 3288static inline HRESULT IRpcChannelBuffer3_GetDestCtxEx(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext) {
 3289    return This->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext);
 3290}
 3291static inline HRESULT IRpcChannelBuffer3_GetState(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pState) {
 3292    return This->lpVtbl->GetState(This,pMsg,pState);
 3293}
 3294static 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
 3312DEFINE_GUID(IID_IRpcSyntaxNegotiate, 0x58a08519, 0x24c8, 0x4935, 0xb4,0x82, 0x3f,0xd8,0x23,0x33,0x3a,0x4f);
 3313#if defined(__cplusplus) && !defined(CINTERFACE)
 3314MIDL_INTERFACE("58a08519-24c8-4935-b482-3fd823333a4f")
 3315IRpcSyntaxNegotiate : 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
 3325typedef 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
 3348interface 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 ***/
 3362static inline HRESULT IRpcSyntaxNegotiate_QueryInterface(IRpcSyntaxNegotiate* This,REFIID riid,void **ppvObject) {
 3363    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3364}
 3365static inline ULONG IRpcSyntaxNegotiate_AddRef(IRpcSyntaxNegotiate* This) {
 3366    return This->lpVtbl->AddRef(This);
 3367}
 3368static inline ULONG IRpcSyntaxNegotiate_Release(IRpcSyntaxNegotiate* This) {
 3369    return This->lpVtbl->Release(This);
 3370}
 3371/*** IRpcSyntaxNegotiate methods ***/
 3372static 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
 3390DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
 3391#if defined(__cplusplus) && !defined(CINTERFACE)
 3392MIDL_INTERFACE("d5f56a34-593b-101a-b569-08002b2dbf7a")
 3393IRpcProxyBuffer : 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
 3406typedef 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
 3432interface 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 ***/
 3447static inline HRESULT IRpcProxyBuffer_QueryInterface(IRpcProxyBuffer* This,REFIID riid,void **ppvObject) {
 3448    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3449}
 3450static inline ULONG IRpcProxyBuffer_AddRef(IRpcProxyBuffer* This) {
 3451    return This->lpVtbl->AddRef(This);
 3452}
 3453static inline ULONG IRpcProxyBuffer_Release(IRpcProxyBuffer* This) {
 3454    return This->lpVtbl->Release(This);
 3455}
 3456/*** IRpcProxyBuffer methods ***/
 3457static inline HRESULT IRpcProxyBuffer_Connect(IRpcProxyBuffer* This,IRpcChannelBuffer *pRpcChannelBuffer) {
 3458    return This->lpVtbl->Connect(This,pRpcChannelBuffer);
 3459}
 3460static 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
 3480DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
 3481#if defined(__cplusplus) && !defined(CINTERFACE)
 3482MIDL_INTERFACE("d5f56afc-593b-101a-b569-08002b2dbf7a")
 3483IRpcStubBuffer : 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
 3512typedef 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
 3558interface 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 ***/
 3578static inline HRESULT IRpcStubBuffer_QueryInterface(IRpcStubBuffer* This,REFIID riid,void **ppvObject) {
 3579    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3580}
 3581static inline ULONG IRpcStubBuffer_AddRef(IRpcStubBuffer* This) {
 3582    return This->lpVtbl->AddRef(This);
 3583}
 3584static inline ULONG IRpcStubBuffer_Release(IRpcStubBuffer* This) {
 3585    return This->lpVtbl->Release(This);
 3586}
 3587/*** IRpcStubBuffer methods ***/
 3588static inline HRESULT IRpcStubBuffer_Connect(IRpcStubBuffer* This,IUnknown *pUnkServer) {
 3589    return This->lpVtbl->Connect(This,pUnkServer);
 3590}
 3591static inline void IRpcStubBuffer_Disconnect(IRpcStubBuffer* This) {
 3592    This->lpVtbl->Disconnect(This);
 3593}
 3594static inline HRESULT IRpcStubBuffer_Invoke(IRpcStubBuffer* This,RPCOLEMESSAGE *_prpcmsg,IRpcChannelBuffer *_pRpcChannelBuffer) {
 3595    return This->lpVtbl->Invoke(This,_prpcmsg,_pRpcChannelBuffer);
 3596}
 3597static inline IRpcStubBuffer * IRpcStubBuffer_IsIIDSupported(IRpcStubBuffer* This,REFIID riid) {
 3598    return This->lpVtbl->IsIIDSupported(This,riid);
 3599}
 3600static inline ULONG IRpcStubBuffer_CountRefs(IRpcStubBuffer* This) {
 3601    return This->lpVtbl->CountRefs(This);
 3602}
 3603static inline HRESULT IRpcStubBuffer_DebugServerQueryInterface(IRpcStubBuffer* This,void **ppv) {
 3604    return This->lpVtbl->DebugServerQueryInterface(This,ppv);
 3605}
 3606static 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
 3624DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
 3625#if defined(__cplusplus) && !defined(CINTERFACE)
 3626MIDL_INTERFACE("d5f569d0-593b-101a-b569-08002b2dbf7a")
 3627IPSFactoryBuffer : 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
 3645typedef 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
 3677interface 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 ***/
 3692static inline HRESULT IPSFactoryBuffer_QueryInterface(IPSFactoryBuffer* This,REFIID riid,void **ppvObject) {
 3693    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3694}
 3695static inline ULONG IPSFactoryBuffer_AddRef(IPSFactoryBuffer* This) {
 3696    return This->lpVtbl->AddRef(This);
 3697}
 3698static inline ULONG IPSFactoryBuffer_Release(IPSFactoryBuffer* This) {
 3699    return This->lpVtbl->Release(This);
 3700}
 3701/*** IPSFactoryBuffer methods ***/
 3702static 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}
 3705static 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)
 3720typedef 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
 3735DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
 3736#if defined(__cplusplus) && !defined(CINTERFACE)
 3737MIDL_INTERFACE("1008c4a0-7613-11cf-9af1-0020af6e72f4")
 3738IChannelHook : 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
 3784typedef 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
 3848interface 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 ***/
 3867static inline HRESULT IChannelHook_QueryInterface(IChannelHook* This,REFIID riid,void **ppvObject) {
 3868    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3869}
 3870static inline ULONG IChannelHook_AddRef(IChannelHook* This) {
 3871    return This->lpVtbl->AddRef(This);
 3872}
 3873static inline ULONG IChannelHook_Release(IChannelHook* This) {
 3874    return This->lpVtbl->Release(This);
 3875}
 3876/*** IChannelHook methods ***/
 3877static inline void IChannelHook_ClientGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize) {
 3878    This->lpVtbl->ClientGetSize(This,uExtent,riid,pDataSize);
 3879}
 3880static inline void IChannelHook_ClientFillBuffer(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer) {
 3881    This->lpVtbl->ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer);
 3882}
 3883static 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}
 3886static 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}
 3889static inline void IChannelHook_ServerGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,HRESULT hrFault,ULONG *pDataSize) {
 3890    This->lpVtbl->ServerGetSize(This,uExtent,riid,hrFault,pDataSize);
 3891}
 3892static 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
 3914typedef struct tagSOLE_AUTHENTICATION_SERVICE {
 3915    DWORD dwAuthnSvc;
 3916    DWORD dwAuthzSvc;
 3917    OLECHAR *pPrincipalName;
 3918    HRESULT hr;
 3919} SOLE_AUTHENTICATION_SERVICE;
 3920
 3921typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
 3922
 3923typedef 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
 3946typedef struct tagSOLE_AUTHENTICATION_INFO {
 3947    DWORD dwAuthnSvc;
 3948    DWORD dwAuthzSvc;
 3949    void *pAuthInfo;
 3950} SOLE_AUTHENTICATION_INFO;
 3951typedef struct tagSOLE_AUTHENTICATION_INFO *PSOLE_AUTHENTICATION_INFO;
 3952
 3953typedef struct tagSOLE_AUTHENTICATION_LIST {
 3954    DWORD cAuthInfo;
 3955    SOLE_AUTHENTICATION_INFO *aAuthInfo;
 3956} SOLE_AUTHENTICATION_LIST;
 3957typedef struct tagSOLE_AUTHENTICATION_LIST *PSOLE_AUTHENTICATION_LIST;
 3958
 3959DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 3960#if defined(__cplusplus) && !defined(CINTERFACE)
 3961MIDL_INTERFACE("0000013d-0000-0000-c000-000000000046")
 3962IClientSecurity : 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
 3993typedef 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
 4039interface 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 ***/
 4055static inline HRESULT IClientSecurity_QueryInterface(IClientSecurity* This,REFIID riid,void **ppvObject) {
 4056    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4057}
 4058static inline ULONG IClientSecurity_AddRef(IClientSecurity* This) {
 4059    return This->lpVtbl->AddRef(This);
 4060}
 4061static inline ULONG IClientSecurity_Release(IClientSecurity* This) {
 4062    return This->lpVtbl->Release(This);
 4063}
 4064/*** IClientSecurity methods ***/
 4065static 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}
 4068static 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}
 4071static 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
 4091DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 4092#if defined(__cplusplus) && !defined(CINTERFACE)
 4093MIDL_INTERFACE("0000013e-0000-0000-c000-000000000046")
 4094IServerSecurity : 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
 4119typedef 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
 4157interface 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 ***/
 4174static inline HRESULT IServerSecurity_QueryInterface(IServerSecurity* This,REFIID riid,void **ppvObject) {
 4175    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4176}
 4177static inline ULONG IServerSecurity_AddRef(IServerSecurity* This) {
 4178    return This->lpVtbl->AddRef(This);
 4179}
 4180static inline ULONG IServerSecurity_Release(IServerSecurity* This) {
 4181    return This->lpVtbl->Release(This);
 4182}
 4183/*** IServerSecurity methods ***/
 4184static 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}
 4187static inline HRESULT IServerSecurity_ImpersonateClient(IServerSecurity* This) {
 4188    return This->lpVtbl->ImpersonateClient(This);
 4189}
 4190static inline HRESULT IServerSecurity_RevertToSelf(IServerSecurity* This) {
 4191    return This->lpVtbl->RevertToSelf(This);
 4192}
 4193static 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
 4205typedef enum tagRPCOPT_PROPERTIES {
 4206    COMBND_RPCTIMEOUT = 0x1,
 4207    COMBND_SERVER_LOCALITY = 0x2,
 4208    COMBND_RESERVED1 = 0x4
 4209} RPCOPT_PROPERTIES;
 4210
 4211typedef 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
 4223DEFINE_GUID(IID_IRpcOptions, 0x00000144, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 4224#if defined(__cplusplus) && !defined(CINTERFACE)
 4225MIDL_INTERFACE("00000144-0000-0000-c000-000000000046")
 4226IRpcOptions : 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
 4243typedef 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
 4274interface 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 ***/
 4289static inline HRESULT IRpcOptions_QueryInterface(IRpcOptions* This,REFIID riid,void **ppvObject) {
 4290    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4291}
 4292static inline ULONG IRpcOptions_AddRef(IRpcOptions* This) {
 4293    return This->lpVtbl->AddRef(This);
 4294}
 4295static inline ULONG IRpcOptions_Release(IRpcOptions* This) {
 4296    return This->lpVtbl->Release(This);
 4297}
 4298/*** IRpcOptions methods ***/
 4299static inline HRESULT IRpcOptions_Set(IRpcOptions* This,IUnknown *pPrx,RPCOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
 4300    return This->lpVtbl->Set(This,pPrx,dwProperty,dwValue);
 4301}
 4302static 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)
 4316typedef 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
 4324typedef 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
 4331typedef 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
 4336typedef 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
 4347typedef 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
 4359DEFINE_GUID(IID_IGlobalOptions, 0x0000015b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 4360#if defined(__cplusplus) && !defined(CINTERFACE)
 4361MIDL_INTERFACE("0000015b-0000-0000-c000-000000000046")
 4362IGlobalOptions : 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
 4377typedef 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
 4406interface 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 ***/
 4421static inline HRESULT IGlobalOptions_QueryInterface(IGlobalOptions* This,REFIID riid,void **ppvObject) {
 4422    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4423}
 4424static inline ULONG IGlobalOptions_AddRef(IGlobalOptions* This) {
 4425    return This->lpVtbl->AddRef(This);
 4426}
 4427static inline ULONG IGlobalOptions_Release(IGlobalOptions* This) {
 4428    return This->lpVtbl->Release(This);
 4429}
 4430/*** IGlobalOptions methods ***/
 4431static inline HRESULT IGlobalOptions_Set(IGlobalOptions* This,GLOBALOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
 4432    return This->lpVtbl->Set(This,dwProperty,dwValue);
 4433}
 4434static 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
 4455typedef ISurrogate *LPSURROGATE;
 4456
 4457DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 4458#if defined(__cplusplus) && !defined(CINTERFACE)
 4459MIDL_INTERFACE("00000022-0000-0000-c000-000000000046")
 4460ISurrogate : 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
 4473typedef 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
 4499interface 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 ***/
 4514static inline HRESULT ISurrogate_QueryInterface(ISurrogate* This,REFIID riid,void **ppvObject) {
 4515    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4516}
 4517static inline ULONG ISurrogate_AddRef(ISurrogate* This) {
 4518    return This->lpVtbl->AddRef(This);
 4519}
 4520static inline ULONG ISurrogate_Release(ISurrogate* This) {
 4521    return This->lpVtbl->Release(This);
 4522}
 4523/*** ISurrogate methods ***/
 4524static inline HRESULT ISurrogate_LoadDllServer(ISurrogate* This,REFCLSID Clsid) {
 4525    return This->lpVtbl->LoadDllServer(This,Clsid);
 4526}
 4527static 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
 4545typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
 4546
 4547DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 4548#if defined(__cplusplus) && !defined(CINTERFACE)
 4549MIDL_INTERFACE("00000146-0000-0000-c000-000000000046")
 4550IGlobalInterfaceTable : 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
 4570typedef 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
 4605interface 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 ***/
 4621static inline HRESULT IGlobalInterfaceTable_QueryInterface(IGlobalInterfaceTable* This,REFIID riid,void **ppvObject) {
 4622    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4623}
 4624static inline ULONG IGlobalInterfaceTable_AddRef(IGlobalInterfaceTable* This) {
 4625    return This->lpVtbl->AddRef(This);
 4626}
 4627static inline ULONG IGlobalInterfaceTable_Release(IGlobalInterfaceTable* This) {
 4628    return This->lpVtbl->Release(This);
 4629}
 4630/*** IGlobalInterfaceTable methods ***/
 4631static inline HRESULT IGlobalInterfaceTable_RegisterInterfaceInGlobal(IGlobalInterfaceTable* This,IUnknown *pUnk,REFIID riid,DWORD *pdwCookie) {
 4632    return This->lpVtbl->RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie);
 4633}
 4634static inline HRESULT IGlobalInterfaceTable_RevokeInterfaceFromGlobal(IGlobalInterfaceTable* This,DWORD dwCookie) {
 4635    return This->lpVtbl->RevokeInterfaceFromGlobal(This,dwCookie);
 4636}
 4637static 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
 4657DEFINE_GUID(IID_ISynchronize, 0x00000030, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 4658#if defined(__cplusplus) && !defined(CINTERFACE)
 4659MIDL_INTERFACE("00000030-0000-0000-c000-000000000046")
 4660ISynchronize : 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
 4677typedef 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
 4707interface 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 ***/
 4723static inline HRESULT ISynchronize_QueryInterface(ISynchronize* This,REFIID riid,void **ppvObject) {
 4724    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4725}
 4726static inline ULONG ISynchronize_AddRef(ISynchronize* This) {
 4727    return This->lpVtbl->AddRef(This);
 4728}
 4729static inline ULONG ISynchronize_Release(ISynchronize* This) {
 4730    return This->lpVtbl->Release(This);
 4731}
 4732/*** ISynchronize methods ***/
 4733static inline HRESULT ISynchronize_Wait(ISynchronize* This,DWORD dwFlags,DWORD dwMilliseconds) {
 4734    return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
 4735}
 4736static inline HRESULT ISynchronize_Signal(ISynchronize* This) {
 4737    return This->lpVtbl->Signal(This);
 4738}
 4739static 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
 4757DEFINE_GUID(IID_ISynchronizeHandle, 0x00000031, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 4758#if defined(__cplusplus) && !defined(CINTERFACE)
 4759MIDL_INTERFACE("00000031-0000-0000-c000-000000000046")
 4760ISynchronizeHandle : 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
 4770typedef 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
 4793interface 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 ***/
 4807static inline HRESULT ISynchronizeHandle_QueryInterface(ISynchronizeHandle* This,REFIID riid,void **ppvObject) {
 4808    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4809}
 4810static inline ULONG ISynchronizeHandle_AddRef(ISynchronizeHandle* This) {
 4811    return This->lpVtbl->AddRef(This);
 4812}
 4813static inline ULONG ISynchronizeHandle_Release(ISynchronizeHandle* This) {
 4814    return This->lpVtbl->Release(This);
 4815}
 4816/*** ISynchronizeHandle methods ***/
 4817static 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
 4835DEFINE_GUID(IID_ISynchronizeEvent, 0x00000032, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 4836#if defined(__cplusplus) && !defined(CINTERFACE)
 4837MIDL_INTERFACE("00000032-0000-0000-c000-000000000046")
 4838ISynchronizeEvent : 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
 4848typedef 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
 4876interface 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 ***/
 4892static inline HRESULT ISynchronizeEvent_QueryInterface(ISynchronizeEvent* This,REFIID riid,void **ppvObject) {
 4893    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4894}
 4895static inline ULONG ISynchronizeEvent_AddRef(ISynchronizeEvent* This) {
 4896    return This->lpVtbl->AddRef(This);
 4897}
 4898static inline ULONG ISynchronizeEvent_Release(ISynchronizeEvent* This) {
 4899    return This->lpVtbl->Release(This);
 4900}
 4901/*** ISynchronizeHandle methods ***/
 4902static inline HRESULT ISynchronizeEvent_GetHandle(ISynchronizeEvent* This,HANDLE *ph) {
 4903    return This->lpVtbl->GetHandle(This,ph);
 4904}
 4905/*** ISynchronizeEvent methods ***/
 4906static 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
 4924DEFINE_GUID(IID_ISynchronizeContainer, 0x00000033, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 4925#if defined(__cplusplus) && !defined(CINTERFACE)
 4926MIDL_INTERFACE("00000033-0000-0000-c000-000000000046")
 4927ISynchronizeContainer : 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
 4942typedef 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
 4971interface 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 ***/
 4986static inline HRESULT ISynchronizeContainer_QueryInterface(ISynchronizeContainer* This,REFIID riid,void **ppvObject) {
 4987    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4988}
 4989static inline ULONG ISynchronizeContainer_AddRef(ISynchronizeContainer* This) {
 4990    return This->lpVtbl->AddRef(This);
 4991}
 4992static inline ULONG ISynchronizeContainer_Release(ISynchronizeContainer* This) {
 4993    return This->lpVtbl->Release(This);
 4994}
 4995/*** ISynchronizeContainer methods ***/
 4996static inline HRESULT ISynchronizeContainer_AddSynchronize(ISynchronizeContainer* This,ISynchronize *pSync) {
 4997    return This->lpVtbl->AddSynchronize(This,pSync);
 4998}
 4999static 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
 5017DEFINE_GUID(IID_ISynchronizeMutex, 0x00000025, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 5018#if defined(__cplusplus) && !defined(CINTERFACE)
 5019MIDL_INTERFACE("00000025-0000-0000-c000-000000000046")
 5020ISynchronizeMutex : 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
 5030typedef 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
 5064interface 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 ***/
 5082static inline HRESULT ISynchronizeMutex_QueryInterface(ISynchronizeMutex* This,REFIID riid,void **ppvObject) {
 5083    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5084}
 5085static inline ULONG ISynchronizeMutex_AddRef(ISynchronizeMutex* This) {
 5086    return This->lpVtbl->AddRef(This);
 5087}
 5088static inline ULONG ISynchronizeMutex_Release(ISynchronizeMutex* This) {
 5089    return This->lpVtbl->Release(This);
 5090}
 5091/*** ISynchronize methods ***/
 5092static inline HRESULT ISynchronizeMutex_Wait(ISynchronizeMutex* This,DWORD dwFlags,DWORD dwMilliseconds) {
 5093    return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
 5094}
 5095static inline HRESULT ISynchronizeMutex_Signal(ISynchronizeMutex* This) {
 5096    return This->lpVtbl->Signal(This);
 5097}
 5098static inline HRESULT ISynchronizeMutex_Reset(ISynchronizeMutex* This) {
 5099    return This->lpVtbl->Reset(This);
 5100}
 5101/*** ISynchronizeMutex methods ***/
 5102static 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
 5120typedef ICancelMethodCalls *LPCANCELMETHODCALLS;
 5121
 5122DEFINE_GUID(IID_ICancelMethodCalls, 0x00000029, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 5123#if defined(__cplusplus) && !defined(CINTERFACE)
 5124MIDL_INTERFACE("00000029-0000-0000-c000-000000000046")
 5125ICancelMethodCalls : 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
 5138typedef 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
 5164interface 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 ***/
 5179static inline HRESULT ICancelMethodCalls_QueryInterface(ICancelMethodCalls* This,REFIID riid,void **ppvObject) {
 5180    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5181}
 5182static inline ULONG ICancelMethodCalls_AddRef(ICancelMethodCalls* This) {
 5183    return This->lpVtbl->AddRef(This);
 5184}
 5185static inline ULONG ICancelMethodCalls_Release(ICancelMethodCalls* This) {
 5186    return This->lpVtbl->Release(This);
 5187}
 5188/*** ICancelMethodCalls methods ***/
 5189static inline HRESULT ICancelMethodCalls_Cancel(ICancelMethodCalls* This,ULONG ulSeconds) {
 5190    return This->lpVtbl->Cancel(This,ulSeconds);
 5191}
 5192static 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
 5210typedef enum tagDCOM_CALL_STATE {
 5211    DCOM_NONE = 0x0,
 5212    DCOM_CALL_COMPLETE = 0x1,
 5213    DCOM_CALL_CANCELED = 0x2
 5214} DCOM_CALL_STATE;
 5215
 5216DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 5217#if defined(__cplusplus) && !defined(CINTERFACE)
 5218MIDL_INTERFACE("0000002a-0000-0000-c000-000000000046")
 5219IAsyncManager : 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
 5236typedef 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
 5268interface 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 ***/
 5284static inline HRESULT IAsyncManager_QueryInterface(IAsyncManager* This,REFIID riid,void **ppvObject) {
 5285    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5286}
 5287static inline ULONG IAsyncManager_AddRef(IAsyncManager* This) {
 5288    return This->lpVtbl->AddRef(This);
 5289}
 5290static inline ULONG IAsyncManager_Release(IAsyncManager* This) {
 5291    return This->lpVtbl->Release(This);
 5292}
 5293/*** IAsyncManager methods ***/
 5294static inline HRESULT IAsyncManager_CompleteCall(IAsyncManager* This,HRESULT Result) {
 5295    return This->lpVtbl->CompleteCall(This,Result);
 5296}
 5297static inline HRESULT IAsyncManager_GetCallContext(IAsyncManager* This,REFIID riid,void **pInterface) {
 5298    return This->lpVtbl->GetCallContext(This,riid,pInterface);
 5299}
 5300static 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
 5318DEFINE_GUID(IID_ICallFactory, 0x1c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
 5319#if defined(__cplusplus) && !defined(CINTERFACE)
 5320MIDL_INTERFACE("1c733a30-2a1c-11ce-ade5-00aa0044773d")
 5321ICallFactory : 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
 5334typedef 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
 5360interface 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 ***/
 5374static inline HRESULT ICallFactory_QueryInterface(ICallFactory* This,REFIID riid,void **ppvObject) {
 5375    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5376}
 5377static inline ULONG ICallFactory_AddRef(ICallFactory* This) {
 5378    return This->lpVtbl->AddRef(This);
 5379}
 5380static inline ULONG ICallFactory_Release(ICallFactory* This) {
 5381    return This->lpVtbl->Release(This);
 5382}
 5383/*** ICallFactory methods ***/
 5384static 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
 5402DEFINE_GUID(IID_IRpcHelper, 0x00000149, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 5403#if defined(__cplusplus) && !defined(CINTERFACE)
 5404MIDL_INTERFACE("00000149-0000-0000-c000-000000000046")
 5405IRpcHelper : 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
 5419typedef 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
 5447interface 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 ***/
 5462static inline HRESULT IRpcHelper_QueryInterface(IRpcHelper* This,REFIID riid,void **ppvObject) {
 5463    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5464}
 5465static inline ULONG IRpcHelper_AddRef(IRpcHelper* This) {
 5466    return This->lpVtbl->AddRef(This);
 5467}
 5468static inline ULONG IRpcHelper_Release(IRpcHelper* This) {
 5469    return This->lpVtbl->Release(This);
 5470}
 5471/*** IRpcHelper methods ***/
 5472static inline HRESULT IRpcHelper_GetDCOMProtocolVersion(IRpcHelper* This,DWORD *pComVersion) {
 5473    return This->lpVtbl->GetDCOMProtocolVersion(This,pComVersion);
 5474}
 5475static 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
 5493DEFINE_GUID(IID_IReleaseMarshalBuffers, 0xeb0cb9e8, 0x7996, 0x11d2, 0x87,0x2e, 0x00,0x00,0xf8,0x08,0x08,0x59);
 5494#if defined(__cplusplus) && !defined(CINTERFACE)
 5495MIDL_INTERFACE("eb0cb9e8-7996-11d2-872e-0000f8080859")
 5496IReleaseMarshalBuffers : 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
 5508typedef 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
 5533interface 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 ***/
 5547static inline HRESULT IReleaseMarshalBuffers_QueryInterface(IReleaseMarshalBuffers* This,REFIID riid,void **ppvObject) {
 5548    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5549}
 5550static inline ULONG IReleaseMarshalBuffers_AddRef(IReleaseMarshalBuffers* This) {
 5551    return This->lpVtbl->AddRef(This);
 5552}
 5553static inline ULONG IReleaseMarshalBuffers_Release(IReleaseMarshalBuffers* This) {
 5554    return This->lpVtbl->Release(This);
 5555}
 5556/*** IReleaseMarshalBuffers methods ***/
 5557static 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
 5575DEFINE_GUID(IID_IWaitMultiple, 0x0000002b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 5576#if defined(__cplusplus) && !defined(CINTERFACE)
 5577MIDL_INTERFACE("0000002b-0000-0000-c000-000000000046")
 5578IWaitMultiple : 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
 5592typedef 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
 5620interface 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 ***/
 5635static inline HRESULT IWaitMultiple_QueryInterface(IWaitMultiple* This,REFIID riid,void **ppvObject) {
 5636    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5637}
 5638static inline ULONG IWaitMultiple_AddRef(IWaitMultiple* This) {
 5639    return This->lpVtbl->AddRef(This);
 5640}
 5641static inline ULONG IWaitMultiple_Release(IWaitMultiple* This) {
 5642    return This->lpVtbl->Release(This);
 5643}
 5644/*** IWaitMultiple methods ***/
 5645static inline HRESULT IWaitMultiple_WaitMultiple(IWaitMultiple* This,DWORD timeout,ISynchronize **pSync) {
 5646    return This->lpVtbl->WaitMultiple(This,timeout,pSync);
 5647}
 5648static 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
 5666typedef IAddrTrackingControl *LPADDRTRACKINGCONTROL;
 5667DEFINE_GUID(IID_IAddrTrackingControl, 0x00000147, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 5668#if defined(__cplusplus) && !defined(CINTERFACE)
 5669MIDL_INTERFACE("00000147-0000-0000-c000-000000000046")
 5670IAddrTrackingControl : 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
 5683typedef 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
 5708interface 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 ***/
 5723static inline HRESULT IAddrTrackingControl_QueryInterface(IAddrTrackingControl* This,REFIID riid,void **ppvObject) {
 5724    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5725}
 5726static inline ULONG IAddrTrackingControl_AddRef(IAddrTrackingControl* This) {
 5727    return This->lpVtbl->AddRef(This);
 5728}
 5729static inline ULONG IAddrTrackingControl_Release(IAddrTrackingControl* This) {
 5730    return This->lpVtbl->Release(This);
 5731}
 5732/*** IAddrTrackingControl methods ***/
 5733static inline HRESULT IAddrTrackingControl_EnableCOMDynamicAddrTracking(IAddrTrackingControl* This) {
 5734    return This->lpVtbl->EnableCOMDynamicAddrTracking(This);
 5735}
 5736static 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
 5754typedef IAddrExclusionControl *LPADDREXCLUSIONCONTROL;
 5755DEFINE_GUID(IID_IAddrExclusionControl, 0x00000148, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 5756#if defined(__cplusplus) && !defined(CINTERFACE)
 5757MIDL_INTERFACE("00000148-0000-0000-c000-000000000046")
 5758IAddrExclusionControl : 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
 5772typedef 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
 5800interface 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 ***/
 5815static inline HRESULT IAddrExclusionControl_QueryInterface(IAddrExclusionControl* This,REFIID riid,void **ppvObject) {
 5816    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5817}
 5818static inline ULONG IAddrExclusionControl_AddRef(IAddrExclusionControl* This) {
 5819    return This->lpVtbl->AddRef(This);
 5820}
 5821static inline ULONG IAddrExclusionControl_Release(IAddrExclusionControl* This) {
 5822    return This->lpVtbl->Release(This);
 5823}
 5824/*** IAddrExclusionControl methods ***/
 5825static inline HRESULT IAddrExclusionControl_GetCurrentAddrExclusionList(IAddrExclusionControl* This,REFIID riid,void **ppEnumerator) {
 5826    return This->lpVtbl->GetCurrentAddrExclusionList(This,riid,ppEnumerator);
 5827}
 5828static 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
 5846DEFINE_GUID(IID_IPipeByte, 0xdb2f3aca, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
 5847#if defined(__cplusplus) && !defined(CINTERFACE)
 5848MIDL_INTERFACE("db2f3aca-2f86-11d1-8e04-00c04fb9989a")
 5849IPipeByte : 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
 5865typedef 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
 5895interface 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 ***/
 5910static inline HRESULT IPipeByte_QueryInterface(IPipeByte* This,REFIID riid,void **ppvObject) {
 5911    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5912}
 5913static inline ULONG IPipeByte_AddRef(IPipeByte* This) {
 5914    return This->lpVtbl->AddRef(This);
 5915}
 5916static inline ULONG IPipeByte_Release(IPipeByte* This) {
 5917    return This->lpVtbl->Release(This);
 5918}
 5919/*** IPipeByte methods ***/
 5920static inline HRESULT IPipeByte_Pull(IPipeByte* This,BYTE *buf,ULONG cRequest,ULONG *pcReturned) {
 5921    return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
 5922}
 5923static 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
 5941DEFINE_GUID(IID_IPipeLong, 0xdb2f3acc, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
 5942#if defined(__cplusplus) && !defined(CINTERFACE)
 5943MIDL_INTERFACE("db2f3acc-2f86-11d1-8e04-00c04fb9989a")
 5944IPipeLong : 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
 5960typedef 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
 5990interface 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 ***/
 6005static inline HRESULT IPipeLong_QueryInterface(IPipeLong* This,REFIID riid,void **ppvObject) {
 6006    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6007}
 6008static inline ULONG IPipeLong_AddRef(IPipeLong* This) {
 6009    return This->lpVtbl->AddRef(This);
 6010}
 6011static inline ULONG IPipeLong_Release(IPipeLong* This) {
 6012    return This->lpVtbl->Release(This);
 6013}
 6014/*** IPipeLong methods ***/
 6015static inline HRESULT IPipeLong_Pull(IPipeLong* This,LONG *buf,ULONG cRequest,ULONG *pcReturned) {
 6016    return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
 6017}
 6018static 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
 6036DEFINE_GUID(IID_IPipeDouble, 0xdb2f3ace, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
 6037#if defined(__cplusplus) && !defined(CINTERFACE)
 6038MIDL_INTERFACE("db2f3ace-2f86-11d1-8e04-00c04fb9989a")
 6039IPipeDouble : 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
 6055typedef 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
 6085interface 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 ***/
 6100static inline HRESULT IPipeDouble_QueryInterface(IPipeDouble* This,REFIID riid,void **ppvObject) {
 6101    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6102}
 6103static inline ULONG IPipeDouble_AddRef(IPipeDouble* This) {
 6104    return This->lpVtbl->AddRef(This);
 6105}
 6106static inline ULONG IPipeDouble_Release(IPipeDouble* This) {
 6107    return This->lpVtbl->Release(This);
 6108}
 6109/*** IPipeDouble methods ***/
 6110static inline HRESULT IPipeDouble_Pull(IPipeDouble* This,DOUBLE *buf,ULONG cRequest,ULONG *pcReturned) {
 6111    return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
 6112}
 6113static 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
 6127typedef DWORD CPFLAGS;
 6128
 6129typedef 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
 6141typedef IEnumContextProps *LPENUMCONTEXTPROPS;
 6142
 6143DEFINE_GUID(IID_IEnumContextProps, 0x000001c1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 6144#if defined(__cplusplus) && !defined(CINTERFACE)
 6145MIDL_INTERFACE("000001c1-0000-0000-c000-000000000046")
 6146IEnumContextProps : 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
 6170typedef 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
 6210interface 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 ***/
 6228static inline HRESULT IEnumContextProps_QueryInterface(IEnumContextProps* This,REFIID riid,void **ppvObject) {
 6229    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6230}
 6231static inline ULONG IEnumContextProps_AddRef(IEnumContextProps* This) {
 6232    return This->lpVtbl->AddRef(This);
 6233}
 6234static inline ULONG IEnumContextProps_Release(IEnumContextProps* This) {
 6235    return This->lpVtbl->Release(This);
 6236}
 6237/*** IEnumContextProps methods ***/
 6238static inline HRESULT IEnumContextProps_Next(IEnumContextProps* This,ULONG celt,ContextProperty *pContextProperties,ULONG *pceltFetched) {
 6239    return This->lpVtbl->Next(This,celt,pContextProperties,pceltFetched);
 6240}
 6241static inline HRESULT IEnumContextProps_Skip(IEnumContextProps* This,ULONG celt) {
 6242    return This->lpVtbl->Skip(This,celt);
 6243}
 6244static inline HRESULT IEnumContextProps_Reset(IEnumContextProps* This) {
 6245    return This->lpVtbl->Reset(This);
 6246}
 6247static inline HRESULT IEnumContextProps_Clone(IEnumContextProps* This,IEnumContextProps **ppEnumContextProps) {
 6248    return This->lpVtbl->Clone(This,ppEnumContextProps);
 6249}
 6250static 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
 6268DEFINE_GUID(IID_IContext, 0x000001c0, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 6269#if defined(__cplusplus) && !defined(CINTERFACE)
 6270MIDL_INTERFACE("000001c0-0000-0000-c000-000000000046")
 6271IContext : 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
 6294typedef 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
 6333interface 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 ***/
 6350static inline HRESULT IContext_QueryInterface(IContext* This,REFIID riid,void **ppvObject) {
 6351    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6352}
 6353static inline ULONG IContext_AddRef(IContext* This) {
 6354    return This->lpVtbl->AddRef(This);
 6355}
 6356static inline ULONG IContext_Release(IContext* This) {
 6357    return This->lpVtbl->Release(This);
 6358}
 6359/*** IContext methods ***/
 6360static inline HRESULT IContext_SetProperty(IContext* This,REFGUID rpolicyId,CPFLAGS flags,IUnknown *pUnk) {
 6361    return This->lpVtbl->SetProperty(This,rpolicyId,flags,pUnk);
 6362}
 6363static inline HRESULT IContext_RemoveProperty(IContext* This,REFGUID rPolicyId) {
 6364    return This->lpVtbl->RemoveProperty(This,rPolicyId);
 6365}
 6366static inline HRESULT IContext_GetProperty(IContext* This,REFGUID rGuid,CPFLAGS *pFlags,IUnknown **ppUnk) {
 6367    return This->lpVtbl->GetProperty(This,rGuid,pFlags,ppUnk);
 6368}
 6369static 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)
 6384typedef 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
 6394typedef 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)
 6404typedef enum _THDTYPE {
 6405    THDTYPE_BLOCKMESSAGES = 0,
 6406    THDTYPE_PROCESSMESSAGES = 1
 6407} THDTYPE;
 6408
 6409typedef DWORD APARTMENTID;
 6410
 6411/*****************************************************************************
 6412 * IComThreadingInfo interface
 6413 */
 6414#ifndef __IComThreadingInfo_INTERFACE_DEFINED__
 6415#define __IComThreadingInfo_INTERFACE_DEFINED__
 6416
 6417DEFINE_GUID(IID_IComThreadingInfo, 0x000001ce, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 6418#if defined(__cplusplus) && !defined(CINTERFACE)
 6419MIDL_INTERFACE("000001ce-0000-0000-c000-000000000046")
 6420IComThreadingInfo : 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
 6439typedef 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
 6474interface 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 ***/
 6491static inline HRESULT IComThreadingInfo_QueryInterface(IComThreadingInfo* This,REFIID riid,void **ppvObject) {
 6492    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6493}
 6494static inline ULONG IComThreadingInfo_AddRef(IComThreadingInfo* This) {
 6495    return This->lpVtbl->AddRef(This);
 6496}
 6497static inline ULONG IComThreadingInfo_Release(IComThreadingInfo* This) {
 6498    return This->lpVtbl->Release(This);
 6499}
 6500/*** IComThreadingInfo methods ***/
 6501static inline HRESULT IComThreadingInfo_GetCurrentApartmentType(IComThreadingInfo* This,APTTYPE *pAptType) {
 6502    return This->lpVtbl->GetCurrentApartmentType(This,pAptType);
 6503}
 6504static inline HRESULT IComThreadingInfo_GetCurrentThreadType(IComThreadingInfo* This,THDTYPE *pThreadType) {
 6505    return This->lpVtbl->GetCurrentThreadType(This,pThreadType);
 6506}
 6507static inline HRESULT IComThreadingInfo_GetCurrentLogicalThreadId(IComThreadingInfo* This,GUID *pguidLogicalThreadId) {
 6508    return This->lpVtbl->GetCurrentLogicalThreadId(This,pguidLogicalThreadId);
 6509}
 6510static 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
 6528DEFINE_GUID(IID_IProcessInitControl, 0x72380d55, 0x8d2b, 0x43a3, 0x85,0x13, 0x2b,0x6e,0xf3,0x14,0x34,0xe9);
 6529#if defined(__cplusplus) && !defined(CINTERFACE)
 6530MIDL_INTERFACE("72380d55-8d2b-43a3-8513-2b6ef31434e9")
 6531IProcessInitControl : 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
 6541typedef 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
 6564interface 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 ***/
 6578static inline HRESULT IProcessInitControl_QueryInterface(IProcessInitControl* This,REFIID riid,void **ppvObject) {
 6579    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6580}
 6581static inline ULONG IProcessInitControl_AddRef(IProcessInitControl* This) {
 6582    return This->lpVtbl->AddRef(This);
 6583}
 6584static inline ULONG IProcessInitControl_Release(IProcessInitControl* This) {
 6585    return This->lpVtbl->Release(This);
 6586}
 6587/*** IProcessInitControl methods ***/
 6588static 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
 6606DEFINE_GUID(IID_IFastRundown, 0x00000040, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 6607#if defined(__cplusplus) && !defined(CINTERFACE)
 6608MIDL_INTERFACE("00000040-0000-0000-c000-000000000046")
 6609IFastRundown : 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
 6616typedef 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
 6634interface 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 ***/
 6646static inline HRESULT IFastRundown_QueryInterface(IFastRundown* This,REFIID riid,void **ppvObject) {
 6647    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6648}
 6649static inline ULONG IFastRundown_AddRef(IFastRundown* This) {
 6650    return This->lpVtbl->AddRef(This);
 6651}
 6652static 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
 6664typedef 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
 6674DEFINE_GUID(IID_IMarshalingStream, 0xd8f2f5e6, 0x6102, 0x4863, 0x9f,0x26, 0x38,0x9a,0x46,0x76,0xef,0xde);
 6675#if defined(__cplusplus) && !defined(CINTERFACE)
 6676MIDL_INTERFACE("d8f2f5e6-6102-4863-9f26-389a4676efde")
 6677IMarshalingStream : 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
 6688typedef 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
 6771interface 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 ***/
 6798static inline HRESULT IMarshalingStream_QueryInterface(IMarshalingStream* This,REFIID riid,void **ppvObject) {
 6799    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6800}
 6801static inline ULONG IMarshalingStream_AddRef(IMarshalingStream* This) {
 6802    return This->lpVtbl->AddRef(This);
 6803}
 6804static inline ULONG IMarshalingStream_Release(IMarshalingStream* This) {
 6805    return This->lpVtbl->Release(This);
 6806}
 6807/*** ISequentialStream methods ***/
 6808static inline HRESULT IMarshalingStream_Read(IMarshalingStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
 6809    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 6810}
 6811static 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 ***/
 6815static inline HRESULT IMarshalingStream_Seek(IMarshalingStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 6816    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 6817}
 6818static inline HRESULT IMarshalingStream_SetSize(IMarshalingStream* This,ULARGE_INTEGER libNewSize) {
 6819    return This->lpVtbl->SetSize(This,libNewSize);
 6820}
 6821static 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}
 6824static inline HRESULT IMarshalingStream_Commit(IMarshalingStream* This,DWORD grfCommitFlags) {
 6825    return This->lpVtbl->Commit(This,grfCommitFlags);
 6826}
 6827static inline HRESULT IMarshalingStream_Revert(IMarshalingStream* This) {
 6828    return This->lpVtbl->Revert(This);
 6829}
 6830static inline HRESULT IMarshalingStream_LockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 6831    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 6832}
 6833static inline HRESULT IMarshalingStream_UnlockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 6834    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 6835}
 6836static inline HRESULT IMarshalingStream_Stat(IMarshalingStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 6837    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 6838}
 6839static inline HRESULT IMarshalingStream_Clone(IMarshalingStream* This,IStream **ppstm) {
 6840    return This->lpVtbl->Clone(This,ppstm);
 6841}
 6842/*** IMarshalingStream methods ***/
 6843static 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)
 6857EXTERN_C const GUID  IID_ICallbackWithNoReentrancyToApplicationSTA;
 6858#endif
 6859#define _OBJIDLBASE_
 6860#endif
 6861#ifndef __IMoniker_FWD_DEFINED__
 6862#define __IMoniker_FWD_DEFINED__
 6863typedef interface IMoniker IMoniker;
 6864#ifdef __cplusplus
 6865interface IMoniker;
 6866#endif /* __cplusplus */
 6867#endif
 6868
 6869#ifndef __IEnumMoniker_FWD_DEFINED__
 6870#define __IEnumMoniker_FWD_DEFINED__
 6871typedef interface IEnumMoniker IEnumMoniker;
 6872#ifdef __cplusplus
 6873interface IEnumMoniker;
 6874#endif /* __cplusplus */
 6875#endif
 6876
 6877#ifndef __IRunningObjectTable_FWD_DEFINED__
 6878#define __IRunningObjectTable_FWD_DEFINED__
 6879typedef interface IRunningObjectTable IRunningObjectTable;
 6880#ifdef __cplusplus
 6881interface IRunningObjectTable;
 6882#endif /* __cplusplus */
 6883#endif
 6884
 6885#ifndef __IStorage_FWD_DEFINED__
 6886#define __IStorage_FWD_DEFINED__
 6887typedef interface IStorage IStorage;
 6888#ifdef __cplusplus
 6889interface IStorage;
 6890#endif /* __cplusplus */
 6891#endif
 6892
 6893#ifndef __IEnumSTATSTG_FWD_DEFINED__
 6894#define __IEnumSTATSTG_FWD_DEFINED__
 6895typedef interface IEnumSTATSTG IEnumSTATSTG;
 6896#ifdef __cplusplus
 6897interface IEnumSTATSTG;
 6898#endif /* __cplusplus */
 6899#endif
 6900
 6901#ifndef __IAdviseSink_FWD_DEFINED__
 6902#define __IAdviseSink_FWD_DEFINED__
 6903typedef interface IAdviseSink IAdviseSink;
 6904#ifdef __cplusplus
 6905interface IAdviseSink;
 6906#endif /* __cplusplus */
 6907#endif
 6908
 6909#ifndef __IBindCtx_FWD_DEFINED__
 6910#define __IBindCtx_FWD_DEFINED__
 6911typedef interface IBindCtx IBindCtx;
 6912#ifdef __cplusplus
 6913interface IBindCtx;
 6914#endif /* __cplusplus */
 6915#endif
 6916
 6917#ifndef __IEnumMoniker_FWD_DEFINED__
 6918#define __IEnumMoniker_FWD_DEFINED__
 6919typedef interface IEnumMoniker IEnumMoniker;
 6920#ifdef __cplusplus
 6921interface 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
 6932typedef IMallocSpy *LPMALLOCSPY;
 6933DEFINE_GUID(IID_IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 6934#if defined(__cplusplus) && !defined(CINTERFACE)
 6935MIDL_INTERFACE("0000001d-0000-0000-c000-000000000046")
 6936IMallocSpy : 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
 6989typedef 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
 7064interface 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 ***/
 7089static inline HRESULT IMallocSpy_QueryInterface(IMallocSpy* This,REFIID riid,void **ppvObject) {
 7090    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7091}
 7092static inline ULONG IMallocSpy_AddRef(IMallocSpy* This) {
 7093    return This->lpVtbl->AddRef(This);
 7094}
 7095static inline ULONG IMallocSpy_Release(IMallocSpy* This) {
 7096    return This->lpVtbl->Release(This);
 7097}
 7098/*** IMallocSpy methods ***/
 7099static inline SIZE_T IMallocSpy_PreAlloc(IMallocSpy* This,SIZE_T cbRequest) {
 7100    return This->lpVtbl->PreAlloc(This,cbRequest);
 7101}
 7102static inline void * IMallocSpy_PostAlloc(IMallocSpy* This,void *pActual) {
 7103    return This->lpVtbl->PostAlloc(This,pActual);
 7104}
 7105static inline void * IMallocSpy_PreFree(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
 7106    return This->lpVtbl->PreFree(This,pRequest,fSpyed);
 7107}
 7108static inline void IMallocSpy_PostFree(IMallocSpy* This,WINBOOL fSpyed) {
 7109    This->lpVtbl->PostFree(This,fSpyed);
 7110}
 7111static 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}
 7114static inline void * IMallocSpy_PostRealloc(IMallocSpy* This,void *pActual,WINBOOL fSpyed) {
 7115    return This->lpVtbl->PostRealloc(This,pActual,fSpyed);
 7116}
 7117static inline void * IMallocSpy_PreGetSize(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
 7118    return This->lpVtbl->PreGetSize(This,pRequest,fSpyed);
 7119}
 7120static inline SIZE_T IMallocSpy_PostGetSize(IMallocSpy* This,SIZE_T cbActual,WINBOOL fSpyed) {
 7121    return This->lpVtbl->PostGetSize(This,cbActual,fSpyed);
 7122}
 7123static inline void * IMallocSpy_PreDidAlloc(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
 7124    return This->lpVtbl->PreDidAlloc(This,pRequest,fSpyed);
 7125}
 7126static inline int IMallocSpy_PostDidAlloc(IMallocSpy* This,void *pRequest,WINBOOL fSpyed,int fActual) {
 7127    return This->lpVtbl->PostDidAlloc(This,pRequest,fSpyed,fActual);
 7128}
 7129static inline void IMallocSpy_PreHeapMinimize(IMallocSpy* This) {
 7130    This->lpVtbl->PreHeapMinimize(This);
 7131}
 7132static 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
 7151typedef IBindCtx *LPBC;
 7152typedef IBindCtx *LPBINDCTX;
 7153#if defined(__cplusplus)
 7154typedef struct tagBIND_OPTS {
 7155  DWORD cbStruct;
 7156  DWORD grfFlags;
 7157  DWORD grfMode;
 7158  DWORD dwTickCountDeadline;
 7159} BIND_OPTS, *LPBIND_OPTS;
 7160#else
 7161typedef struct tagBIND_OPTS {
 7162    DWORD cbStruct;
 7163    DWORD grfFlags;
 7164    DWORD grfMode;
 7165    DWORD dwTickCountDeadline;
 7166} BIND_OPTS;
 7167typedef struct tagBIND_OPTS *LPBIND_OPTS;
 7168#endif
 7169#if defined(__cplusplus)
 7170typedef struct tagBIND_OPTS2 : tagBIND_OPTS {
 7171DWORD           dwTrackFlags;
 7172DWORD           dwClassContext;
 7173LCID            locale;
 7174COSERVERINFO *  pServerInfo;
 7175} BIND_OPTS2, * LPBIND_OPTS2;
 7176#else
 7177typedef 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;
 7187typedef struct tagBIND_OPTS2 *LPBIND_OPTS2;
 7188#endif
 7189#if defined(__cplusplus)
 7190typedef struct tagBIND_OPTS3 : tagBIND_OPTS2 {
 7191HWND           hwnd;
 7192} BIND_OPTS3, * LPBIND_OPTS3;
 7193#else
 7194typedef 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;
 7205typedef struct tagBIND_OPTS3 *LPBIND_OPTS3;
 7206#endif
 7207typedef enum tagBIND_FLAGS {
 7208    BIND_MAYBOTHERUSER = 1,
 7209    BIND_JUSTTESTEXISTENCE = 2
 7210} BIND_FLAGS;
 7211DEFINE_GUID(IID_IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 7212#if defined(__cplusplus) && !defined(CINTERFACE)
 7213MIDL_INTERFACE("0000000e-0000-0000-c000-000000000046")
 7214IBindCtx : 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
 7253typedef 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
 7313interface 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 ***/
 7336static inline HRESULT IBindCtx_QueryInterface(IBindCtx* This,REFIID riid,void **ppvObject) {
 7337    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7338}
 7339static inline ULONG IBindCtx_AddRef(IBindCtx* This) {
 7340    return This->lpVtbl->AddRef(This);
 7341}
 7342static inline ULONG IBindCtx_Release(IBindCtx* This) {
 7343    return This->lpVtbl->Release(This);
 7344}
 7345/*** IBindCtx methods ***/
 7346static inline HRESULT IBindCtx_RegisterObjectBound(IBindCtx* This,IUnknown *punk) {
 7347    return This->lpVtbl->RegisterObjectBound(This,punk);
 7348}
 7349static inline HRESULT IBindCtx_RevokeObjectBound(IBindCtx* This,IUnknown *punk) {
 7350    return This->lpVtbl->RevokeObjectBound(This,punk);
 7351}
 7352static inline HRESULT IBindCtx_ReleaseBoundObjects(IBindCtx* This) {
 7353    return This->lpVtbl->ReleaseBoundObjects(This);
 7354}
 7355static inline HRESULT IBindCtx_SetBindOptions(IBindCtx* This,BIND_OPTS *pbindopts) {
 7356    return This->lpVtbl->SetBindOptions(This,pbindopts);
 7357}
 7358static inline HRESULT IBindCtx_GetBindOptions(IBindCtx* This,BIND_OPTS *pbindopts) {
 7359    return This->lpVtbl->GetBindOptions(This,pbindopts);
 7360}
 7361static inline HRESULT IBindCtx_GetRunningObjectTable(IBindCtx* This,IRunningObjectTable **pprot) {
 7362    return This->lpVtbl->GetRunningObjectTable(This,pprot);
 7363}
 7364static inline HRESULT IBindCtx_RegisterObjectParam(IBindCtx* This,LPOLESTR pszKey,IUnknown *punk) {
 7365    return This->lpVtbl->RegisterObjectParam(This,pszKey,punk);
 7366}
 7367static inline HRESULT IBindCtx_GetObjectParam(IBindCtx* This,LPOLESTR pszKey,IUnknown **ppunk) {
 7368    return This->lpVtbl->GetObjectParam(This,pszKey,ppunk);
 7369}
 7370static inline HRESULT IBindCtx_EnumObjectParam(IBindCtx* This,IEnumString **ppenum) {
 7371    return This->lpVtbl->EnumObjectParam(This,ppenum);
 7372}
 7373static inline HRESULT IBindCtx_RevokeObjectParam(IBindCtx* This,LPOLESTR pszKey) {
 7374    return This->lpVtbl->RevokeObjectParam(This,pszKey);
 7375}
 7376#endif
 7377#endif
 7378
 7379#endif
 7380
 7381HRESULT STDMETHODCALLTYPE IBindCtx_RemoteSetBindOptions_Proxy(
 7382    IBindCtx* This,
 7383    BIND_OPTS2 *pbindopts);
 7384void __RPC_STUB IBindCtx_RemoteSetBindOptions_Stub(
 7385    IRpcStubBuffer* This,
 7386    IRpcChannelBuffer* pRpcChannelBuffer,
 7387    PRPC_MESSAGE pRpcMessage,
 7388    DWORD* pdwStubPhase);
 7389HRESULT STDMETHODCALLTYPE IBindCtx_RemoteGetBindOptions_Proxy(
 7390    IBindCtx* This,
 7391    BIND_OPTS2 *pbindopts);
 7392void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub(
 7393    IRpcStubBuffer* This,
 7394    IRpcChannelBuffer* pRpcChannelBuffer,
 7395    PRPC_MESSAGE pRpcMessage,
 7396    DWORD* pdwStubPhase);
 7397HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
 7398    IBindCtx* This,
 7399    BIND_OPTS *pbindopts);
 7400HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
 7401    IBindCtx* This,
 7402    BIND_OPTS2 *pbindopts);
 7403HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
 7404    IBindCtx* This,
 7405    BIND_OPTS *pbindopts);
 7406HRESULT __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
 7418typedef IEnumMoniker *LPENUMMONIKER;
 7419DEFINE_GUID(IID_IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 7420#if defined(__cplusplus) && !defined(CINTERFACE)
 7421MIDL_INTERFACE("00000102-0000-0000-c000-000000000046")
 7422IEnumMoniker : 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
 7443typedef 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
 7479interface 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 ***/
 7496static inline HRESULT IEnumMoniker_QueryInterface(IEnumMoniker* This,REFIID riid,void **ppvObject) {
 7497    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7498}
 7499static inline ULONG IEnumMoniker_AddRef(IEnumMoniker* This) {
 7500    return This->lpVtbl->AddRef(This);
 7501}
 7502static inline ULONG IEnumMoniker_Release(IEnumMoniker* This) {
 7503    return This->lpVtbl->Release(This);
 7504}
 7505/*** IEnumMoniker methods ***/
 7506static inline HRESULT IEnumMoniker_Next(IEnumMoniker* This,ULONG celt,IMoniker **rgelt,ULONG *pceltFetched) {
 7507    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
 7508}
 7509static inline HRESULT IEnumMoniker_Skip(IEnumMoniker* This,ULONG celt) {
 7510    return This->lpVtbl->Skip(This,celt);
 7511}
 7512static inline HRESULT IEnumMoniker_Reset(IEnumMoniker* This) {
 7513    return This->lpVtbl->Reset(This);
 7514}
 7515static inline HRESULT IEnumMoniker_Clone(IEnumMoniker* This,IEnumMoniker **ppenum) {
 7516    return This->lpVtbl->Clone(This,ppenum);
 7517}
 7518#endif
 7519#endif
 7520
 7521#endif
 7522
 7523HRESULT STDMETHODCALLTYPE IEnumMoniker_RemoteNext_Proxy(
 7524    IEnumMoniker* This,
 7525    ULONG celt,
 7526    IMoniker **rgelt,
 7527    ULONG *pceltFetched);
 7528void __RPC_STUB IEnumMoniker_RemoteNext_Stub(
 7529    IRpcStubBuffer* This,
 7530    IRpcChannelBuffer* pRpcChannelBuffer,
 7531    PRPC_MESSAGE pRpcMessage,
 7532    DWORD* pdwStubPhase);
 7533HRESULT CALLBACK IEnumMoniker_Next_Proxy(
 7534    IEnumMoniker* This,
 7535    ULONG celt,
 7536    IMoniker **rgelt,
 7537    ULONG *pceltFetched);
 7538HRESULT __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
 7554typedef IRunnableObject *LPRUNNABLEOBJECT;
 7555DEFINE_GUID(IID_IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 7556#if defined(__cplusplus) && !defined(CINTERFACE)
 7557MIDL_INTERFACE("00000126-0000-0000-c000-000000000046")
 7558IRunnableObject : 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
 7581typedef 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
 7620interface 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 ***/
 7638static inline HRESULT IRunnableObject_QueryInterface(IRunnableObject* This,REFIID riid,void **ppvObject) {
 7639    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7640}
 7641static inline ULONG IRunnableObject_AddRef(IRunnableObject* This) {
 7642    return This->lpVtbl->AddRef(This);
 7643}
 7644static inline ULONG IRunnableObject_Release(IRunnableObject* This) {
 7645    return This->lpVtbl->Release(This);
 7646}
 7647/*** IRunnableObject methods ***/
 7648static inline HRESULT IRunnableObject_GetRunningClass(IRunnableObject* This,LPCLSID lpClsid) {
 7649    return This->lpVtbl->GetRunningClass(This,lpClsid);
 7650}
 7651static inline HRESULT IRunnableObject_Run(IRunnableObject* This,LPBINDCTX pbc) {
 7652    return This->lpVtbl->Run(This,pbc);
 7653}
 7654static inline WINBOOL IRunnableObject_IsRunning(IRunnableObject* This) {
 7655    return This->lpVtbl->IsRunning(This);
 7656}
 7657static inline HRESULT IRunnableObject_LockRunning(IRunnableObject* This,WINBOOL fLock,WINBOOL fLastUnlockCloses) {
 7658    return This->lpVtbl->LockRunning(This,fLock,fLastUnlockCloses);
 7659}
 7660static inline HRESULT IRunnableObject_SetContainedObject(IRunnableObject* This,WINBOOL fContained) {
 7661    return This->lpVtbl->SetContainedObject(This,fContained);
 7662}
 7663#endif
 7664#endif
 7665
 7666#endif
 7667
 7668HRESULT STDMETHODCALLTYPE IRunnableObject_RemoteIsRunning_Proxy(
 7669    IRunnableObject* This);
 7670void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
 7671    IRpcStubBuffer* This,
 7672    IRpcChannelBuffer* pRpcChannelBuffer,
 7673    PRPC_MESSAGE pRpcMessage,
 7674    DWORD* pdwStubPhase);
 7675WINBOOL CALLBACK IRunnableObject_IsRunning_Proxy(
 7676    IRunnableObject* This);
 7677HRESULT __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
 7688typedef IRunningObjectTable *LPRUNNINGOBJECTTABLE;
 7689DEFINE_GUID(IID_IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 7690#if defined(__cplusplus) && !defined(CINTERFACE)
 7691MIDL_INTERFACE("00000010-0000-0000-c000-000000000046")
 7692IRunningObjectTable : 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
 7726typedef 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
 7779interface 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 ***/
 7799static inline HRESULT IRunningObjectTable_QueryInterface(IRunningObjectTable* This,REFIID riid,void **ppvObject) {
 7800    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7801}
 7802static inline ULONG IRunningObjectTable_AddRef(IRunningObjectTable* This) {
 7803    return This->lpVtbl->AddRef(This);
 7804}
 7805static inline ULONG IRunningObjectTable_Release(IRunningObjectTable* This) {
 7806    return This->lpVtbl->Release(This);
 7807}
 7808/*** IRunningObjectTable methods ***/
 7809static 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}
 7812static inline HRESULT IRunningObjectTable_Revoke(IRunningObjectTable* This,DWORD dwRegister) {
 7813    return This->lpVtbl->Revoke(This,dwRegister);
 7814}
 7815static inline HRESULT IRunningObjectTable_IsRunning(IRunningObjectTable* This,IMoniker *pmkObjectName) {
 7816    return This->lpVtbl->IsRunning(This,pmkObjectName);
 7817}
 7818static inline HRESULT IRunningObjectTable_GetObject(IRunningObjectTable* This,IMoniker *pmkObjectName,IUnknown **ppunkObject) {
 7819    return This->lpVtbl->GetObject(This,pmkObjectName,ppunkObject);
 7820}
 7821static inline HRESULT IRunningObjectTable_NoteChangeTime(IRunningObjectTable* This,DWORD dwRegister,FILETIME *pfiletime) {
 7822    return This->lpVtbl->NoteChangeTime(This,dwRegister,pfiletime);
 7823}
 7824static inline HRESULT IRunningObjectTable_GetTimeOfLastChange(IRunningObjectTable* This,IMoniker *pmkObjectName,FILETIME *pfiletime) {
 7825    return This->lpVtbl->GetTimeOfLastChange(This,pmkObjectName,pfiletime);
 7826}
 7827static 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
 7846typedef IPersist *LPPERSIST;
 7847DEFINE_GUID(IID_IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 7848#if defined(__cplusplus) && !defined(CINTERFACE)
 7849MIDL_INTERFACE("0000010c-0000-0000-c000-000000000046")
 7850IPersist : 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
 7860typedef 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
 7883interface 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 ***/
 7897static inline HRESULT IPersist_QueryInterface(IPersist* This,REFIID riid,void **ppvObject) {
 7898    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7899}
 7900static inline ULONG IPersist_AddRef(IPersist* This) {
 7901    return This->lpVtbl->AddRef(This);
 7902}
 7903static inline ULONG IPersist_Release(IPersist* This) {
 7904    return This->lpVtbl->Release(This);
 7905}
 7906/*** IPersist methods ***/
 7907static 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
 7924typedef IPersistStream *LPPERSISTSTREAM;
 7925DEFINE_GUID(IID_IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 7926#if defined(__cplusplus) && !defined(CINTERFACE)
 7927MIDL_INTERFACE("00000109-0000-0000-c000-000000000046")
 7928IPersistStream : 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
 7948typedef 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
 7988interface 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 ***/
 8007static inline HRESULT IPersistStream_QueryInterface(IPersistStream* This,REFIID riid,void **ppvObject) {
 8008    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8009}
 8010static inline ULONG IPersistStream_AddRef(IPersistStream* This) {
 8011    return This->lpVtbl->AddRef(This);
 8012}
 8013static inline ULONG IPersistStream_Release(IPersistStream* This) {
 8014    return This->lpVtbl->Release(This);
 8015}
 8016/*** IPersist methods ***/
 8017static inline HRESULT IPersistStream_GetClassID(IPersistStream* This,CLSID *pClassID) {
 8018    return This->lpVtbl->GetClassID(This,pClassID);
 8019}
 8020/*** IPersistStream methods ***/
 8021static inline HRESULT IPersistStream_IsDirty(IPersistStream* This) {
 8022    return This->lpVtbl->IsDirty(This);
 8023}
 8024static inline HRESULT IPersistStream_Load(IPersistStream* This,IStream *pStm) {
 8025    return This->lpVtbl->Load(This,pStm);
 8026}
 8027static inline HRESULT IPersistStream_Save(IPersistStream* This,IStream *pStm,WINBOOL fClearDirty) {
 8028    return This->lpVtbl->Save(This,pStm,fClearDirty);
 8029}
 8030static 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
 8047typedef IMoniker *LPMONIKER;
 8048typedef 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;
 8060typedef enum tagMKREDUCE {
 8061    MKRREDUCE_ONE = 3 << 16,
 8062    MKRREDUCE_TOUSER = 2 << 16,
 8063    MKRREDUCE_THROUGHUSER = 1 << 16,
 8064    MKRREDUCE_ALL = 0
 8065} MKRREDUCE;
 8066DEFINE_GUID(IID_IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 8067#if defined(__cplusplus) && !defined(CINTERFACE)
 8068MIDL_INTERFACE("0000000f-0000-0000-c000-000000000046")
 8069IMoniker : 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
 8145typedef 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
 8270interface 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 ***/
 8305static inline HRESULT IMoniker_QueryInterface(IMoniker* This,REFIID riid,void **ppvObject) {
 8306    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8307}
 8308static inline ULONG IMoniker_AddRef(IMoniker* This) {
 8309    return This->lpVtbl->AddRef(This);
 8310}
 8311static inline ULONG IMoniker_Release(IMoniker* This) {
 8312    return This->lpVtbl->Release(This);
 8313}
 8314/*** IPersist methods ***/
 8315static inline HRESULT IMoniker_GetClassID(IMoniker* This,CLSID *pClassID) {
 8316    return This->lpVtbl->GetClassID(This,pClassID);
 8317}
 8318/*** IPersistStream methods ***/
 8319static inline HRESULT IMoniker_IsDirty(IMoniker* This) {
 8320    return This->lpVtbl->IsDirty(This);
 8321}
 8322static inline HRESULT IMoniker_Load(IMoniker* This,IStream *pStm) {
 8323    return This->lpVtbl->Load(This,pStm);
 8324}
 8325static inline HRESULT IMoniker_Save(IMoniker* This,IStream *pStm,WINBOOL fClearDirty) {
 8326    return This->lpVtbl->Save(This,pStm,fClearDirty);
 8327}
 8328static inline HRESULT IMoniker_GetSizeMax(IMoniker* This,ULARGE_INTEGER *pcbSize) {
 8329    return This->lpVtbl->GetSizeMax(This,pcbSize);
 8330}
 8331/*** IMoniker methods ***/
 8332static 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}
 8335static 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}
 8338static 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}
 8341static inline HRESULT IMoniker_ComposeWith(IMoniker* This,IMoniker *pmkRight,WINBOOL fOnlyIfNotGeneric,IMoniker **ppmkComposite) {
 8342    return This->lpVtbl->ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite);
 8343}
 8344static inline HRESULT IMoniker_Enum(IMoniker* This,WINBOOL fForward,IEnumMoniker **ppenumMoniker) {
 8345    return This->lpVtbl->Enum(This,fForward,ppenumMoniker);
 8346}
 8347static inline HRESULT IMoniker_IsEqual(IMoniker* This,IMoniker *pmkOtherMoniker) {
 8348    return This->lpVtbl->IsEqual(This,pmkOtherMoniker);
 8349}
 8350static inline HRESULT IMoniker_Hash(IMoniker* This,DWORD *pdwHash) {
 8351    return This->lpVtbl->Hash(This,pdwHash);
 8352}
 8353static inline HRESULT IMoniker_IsRunning(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,IMoniker *pmkNewlyRunning) {
 8354    return This->lpVtbl->IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning);
 8355}
 8356static inline HRESULT IMoniker_GetTimeOfLastChange(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,FILETIME *pFileTime) {
 8357    return This->lpVtbl->GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime);
 8358}
 8359static inline HRESULT IMoniker_Inverse(IMoniker* This,IMoniker **ppmk) {
 8360    return This->lpVtbl->Inverse(This,ppmk);
 8361}
 8362static inline HRESULT IMoniker_CommonPrefixWith(IMoniker* This,IMoniker *pmkOther,IMoniker **ppmkPrefix) {
 8363    return This->lpVtbl->CommonPrefixWith(This,pmkOther,ppmkPrefix);
 8364}
 8365static inline HRESULT IMoniker_RelativePathTo(IMoniker* This,IMoniker *pmkOther,IMoniker **ppmkRelPath) {
 8366    return This->lpVtbl->RelativePathTo(This,pmkOther,ppmkRelPath);
 8367}
 8368static inline HRESULT IMoniker_GetDisplayName(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,LPOLESTR *ppszDisplayName) {
 8369    return This->lpVtbl->GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName);
 8370}
 8371static 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}
 8374static inline HRESULT IMoniker_IsSystemMoniker(IMoniker* This,DWORD *pdwMksys) {
 8375    return This->lpVtbl->IsSystemMoniker(This,pdwMksys);
 8376}
 8377#endif
 8378#endif
 8379
 8380#endif
 8381
 8382HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToObject_Proxy(
 8383    IMoniker* This,
 8384    IBindCtx *pbc,
 8385    IMoniker *pmkToLeft,
 8386    REFIID riidResult,
 8387    IUnknown **ppvResult);
 8388void __RPC_STUB IMoniker_RemoteBindToObject_Stub(
 8389    IRpcStubBuffer* This,
 8390    IRpcChannelBuffer* pRpcChannelBuffer,
 8391    PRPC_MESSAGE pRpcMessage,
 8392    DWORD* pdwStubPhase);
 8393HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToStorage_Proxy(
 8394    IMoniker* This,
 8395    IBindCtx *pbc,
 8396    IMoniker *pmkToLeft,
 8397    REFIID riid,
 8398    IUnknown **ppvObj);
 8399void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
 8400    IRpcStubBuffer* This,
 8401    IRpcChannelBuffer* pRpcChannelBuffer,
 8402    PRPC_MESSAGE pRpcMessage,
 8403    DWORD* pdwStubPhase);
 8404HRESULT CALLBACK IMoniker_BindToObject_Proxy(
 8405    IMoniker* This,
 8406    IBindCtx *pbc,
 8407    IMoniker *pmkToLeft,
 8408    REFIID riidResult,
 8409    void **ppvResult);
 8410HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
 8411    IMoniker* This,
 8412    IBindCtx *pbc,
 8413    IMoniker *pmkToLeft,
 8414    REFIID riidResult,
 8415    IUnknown **ppvResult);
 8416HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
 8417    IMoniker* This,
 8418    IBindCtx *pbc,
 8419    IMoniker *pmkToLeft,
 8420    REFIID riid,
 8421    void **ppvObj);
 8422HRESULT __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
 8439DEFINE_GUID(IID_IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f);
 8440#if defined(__cplusplus) && !defined(CINTERFACE)
 8441MIDL_INTERFACE("f29f6bc0-5021-11ce-aa15-00006901293f")
 8442IROTData : 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
 8454typedef 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
 8479interface 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 ***/
 8493static inline HRESULT IROTData_QueryInterface(IROTData* This,REFIID riid,void **ppvObject) {
 8494    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8495}
 8496static inline ULONG IROTData_AddRef(IROTData* This) {
 8497    return This->lpVtbl->AddRef(This);
 8498}
 8499static inline ULONG IROTData_Release(IROTData* This) {
 8500    return This->lpVtbl->Release(This);
 8501}
 8502/*** IROTData methods ***/
 8503static 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
 8522typedef IEnumSTATSTG *LPENUMSTATSTG;
 8523DEFINE_GUID(IID_IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 8524#if defined(__cplusplus) && !defined(CINTERFACE)
 8525MIDL_INTERFACE("0000000d-0000-0000-c000-000000000046")
 8526IEnumSTATSTG : 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
 8547typedef 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
 8583interface 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 ***/
 8600static inline HRESULT IEnumSTATSTG_QueryInterface(IEnumSTATSTG* This,REFIID riid,void **ppvObject) {
 8601    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8602}
 8603static inline ULONG IEnumSTATSTG_AddRef(IEnumSTATSTG* This) {
 8604    return This->lpVtbl->AddRef(This);
 8605}
 8606static inline ULONG IEnumSTATSTG_Release(IEnumSTATSTG* This) {
 8607    return This->lpVtbl->Release(This);
 8608}
 8609/*** IEnumSTATSTG methods ***/
 8610static inline HRESULT IEnumSTATSTG_Next(IEnumSTATSTG* This,ULONG celt,STATSTG *rgelt,ULONG *pceltFetched) {
 8611    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
 8612}
 8613static inline HRESULT IEnumSTATSTG_Skip(IEnumSTATSTG* This,ULONG celt) {
 8614    return This->lpVtbl->Skip(This,celt);
 8615}
 8616static inline HRESULT IEnumSTATSTG_Reset(IEnumSTATSTG* This) {
 8617    return This->lpVtbl->Reset(This);
 8618}
 8619static inline HRESULT IEnumSTATSTG_Clone(IEnumSTATSTG* This,IEnumSTATSTG **ppenum) {
 8620    return This->lpVtbl->Clone(This,ppenum);
 8621}
 8622#endif
 8623#endif
 8624
 8625#endif
 8626
 8627HRESULT STDMETHODCALLTYPE IEnumSTATSTG_RemoteNext_Proxy(
 8628    IEnumSTATSTG* This,
 8629    ULONG celt,
 8630    STATSTG *rgelt,
 8631    ULONG *pceltFetched);
 8632void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
 8633    IRpcStubBuffer* This,
 8634    IRpcChannelBuffer* pRpcChannelBuffer,
 8635    PRPC_MESSAGE pRpcMessage,
 8636    DWORD* pdwStubPhase);
 8637HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
 8638    IEnumSTATSTG* This,
 8639    ULONG celt,
 8640    STATSTG *rgelt,
 8641    ULONG *pceltFetched);
 8642HRESULT __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
 8656typedef IStorage *LPSTORAGE;
 8657typedef struct tagRemSNB {
 8658    ULONG ulCntStr;
 8659    ULONG ulCntChar;
 8660    OLECHAR rgString[1];
 8661} RemSNB;
 8662typedef RemSNB *wireSNB;
 8663typedef LPOLESTR *SNB;
 8664DEFINE_GUID(IID_IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 8665#if defined(__cplusplus) && !defined(CINTERFACE)
 8666MIDL_INTERFACE("0000000b-0000-0000-c000-000000000046")
 8667IStorage : 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
 8751typedef 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
 8861interface 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 ***/
 8889static inline HRESULT IStorage_QueryInterface(IStorage* This,REFIID riid,void **ppvObject) {
 8890    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8891}
 8892static inline ULONG IStorage_AddRef(IStorage* This) {
 8893    return This->lpVtbl->AddRef(This);
 8894}
 8895static inline ULONG IStorage_Release(IStorage* This) {
 8896    return This->lpVtbl->Release(This);
 8897}
 8898/*** IStorage methods ***/
 8899static 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}
 8902static 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}
 8905static 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}
 8908static 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}
 8911static 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}
 8914static 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}
 8917static inline HRESULT IStorage_Commit(IStorage* This,DWORD grfCommitFlags) {
 8918    return This->lpVtbl->Commit(This,grfCommitFlags);
 8919}
 8920static inline HRESULT IStorage_Revert(IStorage* This) {
 8921    return This->lpVtbl->Revert(This);
 8922}
 8923static 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}
 8926static inline HRESULT IStorage_DestroyElement(IStorage* This,const OLECHAR *pwcsName) {
 8927    return This->lpVtbl->DestroyElement(This,pwcsName);
 8928}
 8929static inline HRESULT IStorage_RenameElement(IStorage* This,const OLECHAR *pwcsOldName,const OLECHAR *pwcsNewName) {
 8930    return This->lpVtbl->RenameElement(This,pwcsOldName,pwcsNewName);
 8931}
 8932static 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}
 8935static inline HRESULT IStorage_SetClass(IStorage* This,REFCLSID clsid) {
 8936    return This->lpVtbl->SetClass(This,clsid);
 8937}
 8938static inline HRESULT IStorage_SetStateBits(IStorage* This,DWORD grfStateBits,DWORD grfMask) {
 8939    return This->lpVtbl->SetStateBits(This,grfStateBits,grfMask);
 8940}
 8941static 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
 8949HRESULT 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);
 8957void __RPC_STUB IStorage_RemoteOpenStream_Stub(
 8958    IRpcStubBuffer* This,
 8959    IRpcChannelBuffer* pRpcChannelBuffer,
 8960    PRPC_MESSAGE pRpcMessage,
 8961    DWORD* pdwStubPhase);
 8962HRESULT STDMETHODCALLTYPE IStorage_RemoteCopyTo_Proxy(
 8963    IStorage* This,
 8964    DWORD ciidExclude,
 8965    const IID *rgiidExclude,
 8966    SNB snbExclude,
 8967    IStorage *pstgDest);
 8968void __RPC_STUB IStorage_RemoteCopyTo_Stub(
 8969    IRpcStubBuffer* This,
 8970    IRpcChannelBuffer* pRpcChannelBuffer,
 8971    PRPC_MESSAGE pRpcMessage,
 8972    DWORD* pdwStubPhase);
 8973HRESULT STDMETHODCALLTYPE IStorage_RemoteEnumElements_Proxy(
 8974    IStorage* This,
 8975    DWORD reserved1,
 8976    ULONG cbReserved2,
 8977    byte *reserved2,
 8978    DWORD reserved3,
 8979    IEnumSTATSTG **ppenum);
 8980void __RPC_STUB IStorage_RemoteEnumElements_Stub(
 8981    IRpcStubBuffer* This,
 8982    IRpcChannelBuffer* pRpcChannelBuffer,
 8983    PRPC_MESSAGE pRpcMessage,
 8984    DWORD* pdwStubPhase);
 8985HRESULT CALLBACK IStorage_OpenStream_Proxy(
 8986    IStorage* This,
 8987    const OLECHAR *pwcsName,
 8988    void *reserved1,
 8989    DWORD grfMode,
 8990    DWORD reserved2,
 8991    IStream **ppstm);
 8992HRESULT __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);
 9000HRESULT CALLBACK IStorage_CopyTo_Proxy(
 9001    IStorage* This,
 9002    DWORD ciidExclude,
 9003    const IID *rgiidExclude,
 9004    SNB snbExclude,
 9005    IStorage *pstgDest);
 9006HRESULT __RPC_STUB IStorage_CopyTo_Stub(
 9007    IStorage* This,
 9008    DWORD ciidExclude,
 9009    const IID *rgiidExclude,
 9010    SNB snbExclude,
 9011    IStorage *pstgDest);
 9012HRESULT CALLBACK IStorage_EnumElements_Proxy(
 9013    IStorage* This,
 9014    DWORD reserved1,
 9015    void *reserved2,
 9016    DWORD reserved3,
 9017    IEnumSTATSTG **ppenum);
 9018HRESULT __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
 9036typedef IPersistFile *LPPERSISTFILE;
 9037DEFINE_GUID(IID_IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 9038#if defined(__cplusplus) && !defined(CINTERFACE)
 9039MIDL_INTERFACE("0000010b-0000-0000-c000-000000000046")
 9040IPersistFile : 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
 9064typedef 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
 9109interface 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 ***/
 9129static inline HRESULT IPersistFile_QueryInterface(IPersistFile* This,REFIID riid,void **ppvObject) {
 9130    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9131}
 9132static inline ULONG IPersistFile_AddRef(IPersistFile* This) {
 9133    return This->lpVtbl->AddRef(This);
 9134}
 9135static inline ULONG IPersistFile_Release(IPersistFile* This) {
 9136    return This->lpVtbl->Release(This);
 9137}
 9138/*** IPersist methods ***/
 9139static inline HRESULT IPersistFile_GetClassID(IPersistFile* This,CLSID *pClassID) {
 9140    return This->lpVtbl->GetClassID(This,pClassID);
 9141}
 9142/*** IPersistFile methods ***/
 9143static inline HRESULT IPersistFile_IsDirty(IPersistFile* This) {
 9144    return This->lpVtbl->IsDirty(This);
 9145}
 9146static inline HRESULT IPersistFile_Load(IPersistFile* This,LPCOLESTR pszFileName,DWORD dwMode) {
 9147    return This->lpVtbl->Load(This,pszFileName,dwMode);
 9148}
 9149static inline HRESULT IPersistFile_Save(IPersistFile* This,LPCOLESTR pszFileName,WINBOOL fRemember) {
 9150    return This->lpVtbl->Save(This,pszFileName,fRemember);
 9151}
 9152static inline HRESULT IPersistFile_SaveCompleted(IPersistFile* This,LPCOLESTR pszFileName) {
 9153    return This->lpVtbl->SaveCompleted(This,pszFileName);
 9154}
 9155static 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
 9172typedef IPersistStorage *LPPERSISTSTORAGE;
 9173DEFINE_GUID(IID_IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 9174#if defined(__cplusplus) && !defined(CINTERFACE)
 9175MIDL_INTERFACE("0000010a-0000-0000-c000-000000000046")
 9176IPersistStorage : 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
 9202typedef 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
 9249interface 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 ***/
 9270static inline HRESULT IPersistStorage_QueryInterface(IPersistStorage* This,REFIID riid,void **ppvObject) {
 9271    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9272}
 9273static inline ULONG IPersistStorage_AddRef(IPersistStorage* This) {
 9274    return This->lpVtbl->AddRef(This);
 9275}
 9276static inline ULONG IPersistStorage_Release(IPersistStorage* This) {
 9277    return This->lpVtbl->Release(This);
 9278}
 9279/*** IPersist methods ***/
 9280static inline HRESULT IPersistStorage_GetClassID(IPersistStorage* This,CLSID *pClassID) {
 9281    return This->lpVtbl->GetClassID(This,pClassID);
 9282}
 9283/*** IPersistStorage methods ***/
 9284static inline HRESULT IPersistStorage_IsDirty(IPersistStorage* This) {
 9285    return This->lpVtbl->IsDirty(This);
 9286}
 9287static inline HRESULT IPersistStorage_InitNew(IPersistStorage* This,IStorage *pStg) {
 9288    return This->lpVtbl->InitNew(This,pStg);
 9289}
 9290static inline HRESULT IPersistStorage_Load(IPersistStorage* This,IStorage *pStg) {
 9291    return This->lpVtbl->Load(This,pStg);
 9292}
 9293static inline HRESULT IPersistStorage_Save(IPersistStorage* This,IStorage *pStgSave,WINBOOL fSameAsLoad) {
 9294    return This->lpVtbl->Save(This,pStgSave,fSameAsLoad);
 9295}
 9296static inline HRESULT IPersistStorage_SaveCompleted(IPersistStorage* This,IStorage *pStgNew) {
 9297    return This->lpVtbl->SaveCompleted(This,pStgNew);
 9298}
 9299static 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
 9318typedef ILockBytes *LPLOCKBYTES;
 9319DEFINE_GUID(IID_ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 9320#if defined(__cplusplus) && !defined(CINTERFACE)
 9321MIDL_INTERFACE("0000000a-0000-0000-c000-000000000046")
 9322ILockBytes : 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
 9361typedef 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
 9418interface 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 ***/
 9438static inline HRESULT ILockBytes_QueryInterface(ILockBytes* This,REFIID riid,void **ppvObject) {
 9439    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9440}
 9441static inline ULONG ILockBytes_AddRef(ILockBytes* This) {
 9442    return This->lpVtbl->AddRef(This);
 9443}
 9444static inline ULONG ILockBytes_Release(ILockBytes* This) {
 9445    return This->lpVtbl->Release(This);
 9446}
 9447/*** ILockBytes methods ***/
 9448static 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}
 9451static 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}
 9454static inline HRESULT ILockBytes_Flush(ILockBytes* This) {
 9455    return This->lpVtbl->Flush(This);
 9456}
 9457static inline HRESULT ILockBytes_SetSize(ILockBytes* This,ULARGE_INTEGER cb) {
 9458    return This->lpVtbl->SetSize(This,cb);
 9459}
 9460static inline HRESULT ILockBytes_LockRegion(ILockBytes* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 9461    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 9462}
 9463static inline HRESULT ILockBytes_UnlockRegion(ILockBytes* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 9464    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 9465}
 9466static 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
 9474HRESULT __stdcall ILockBytes_RemoteReadAt_Proxy(
 9475    ILockBytes* This,
 9476    ULARGE_INTEGER ulOffset,
 9477    byte *pv,
 9478    ULONG cb,
 9479    ULONG *pcbRead);
 9480void __RPC_STUB ILockBytes_RemoteReadAt_Stub(
 9481    IRpcStubBuffer* This,
 9482    IRpcChannelBuffer* pRpcChannelBuffer,
 9483    PRPC_MESSAGE pRpcMessage,
 9484    DWORD* pdwStubPhase);
 9485HRESULT STDMETHODCALLTYPE ILockBytes_RemoteWriteAt_Proxy(
 9486    ILockBytes* This,
 9487    ULARGE_INTEGER ulOffset,
 9488    const byte *pv,
 9489    ULONG cb,
 9490    ULONG *pcbWritten);
 9491void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
 9492    IRpcStubBuffer* This,
 9493    IRpcChannelBuffer* pRpcChannelBuffer,
 9494    PRPC_MESSAGE pRpcMessage,
 9495    DWORD* pdwStubPhase);
 9496HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
 9497    ILockBytes* This,
 9498    ULARGE_INTEGER ulOffset,
 9499    void *pv,
 9500    ULONG cb,
 9501    ULONG *pcbRead);
 9502HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
 9503    ILockBytes* This,
 9504    ULARGE_INTEGER ulOffset,
 9505    byte *pv,
 9506    ULONG cb,
 9507    ULONG *pcbRead);
 9508HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
 9509    ILockBytes* This,
 9510    ULARGE_INTEGER ulOffset,
 9511    const void *pv,
 9512    ULONG cb,
 9513    ULONG *pcbWritten);
 9514HRESULT __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
 9529typedef IEnumFORMATETC *LPENUMFORMATETC;
 9530typedef struct tagDVTARGETDEVICE {
 9531    DWORD tdSize;
 9532    WORD tdDriverNameOffset;
 9533    WORD tdDeviceNameOffset;
 9534    WORD tdPortNameOffset;
 9535    WORD tdExtDevmodeOffset;
 9536    BYTE tdData[1];
 9537} DVTARGETDEVICE;
 9538typedef CLIPFORMAT *LPCLIPFORMAT;
 9539typedef struct tagFORMATETC {
 9540    CLIPFORMAT cfFormat;
 9541    DVTARGETDEVICE *ptd;
 9542    DWORD dwAspect;
 9543    LONG lindex;
 9544    DWORD tymed;
 9545} FORMATETC;
 9546typedef struct tagFORMATETC *LPFORMATETC;
 9547DEFINE_GUID(IID_IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 9548#if defined(__cplusplus) && !defined(CINTERFACE)
 9549MIDL_INTERFACE("00000103-0000-0000-c000-000000000046")
 9550IEnumFORMATETC : 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
 9571typedef 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
 9607interface 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 ***/
 9624static inline HRESULT IEnumFORMATETC_QueryInterface(IEnumFORMATETC* This,REFIID riid,void **ppvObject) {
 9625    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9626}
 9627static inline ULONG IEnumFORMATETC_AddRef(IEnumFORMATETC* This) {
 9628    return This->lpVtbl->AddRef(This);
 9629}
 9630static inline ULONG IEnumFORMATETC_Release(IEnumFORMATETC* This) {
 9631    return This->lpVtbl->Release(This);
 9632}
 9633/*** IEnumFORMATETC methods ***/
 9634static inline HRESULT IEnumFORMATETC_Next(IEnumFORMATETC* This,ULONG celt,FORMATETC *rgelt,ULONG *pceltFetched) {
 9635    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
 9636}
 9637static inline HRESULT IEnumFORMATETC_Skip(IEnumFORMATETC* This,ULONG celt) {
 9638    return This->lpVtbl->Skip(This,celt);
 9639}
 9640static inline HRESULT IEnumFORMATETC_Reset(IEnumFORMATETC* This) {
 9641    return This->lpVtbl->Reset(This);
 9642}
 9643static inline HRESULT IEnumFORMATETC_Clone(IEnumFORMATETC* This,IEnumFORMATETC **ppenum) {
 9644    return This->lpVtbl->Clone(This,ppenum);
 9645}
 9646#endif
 9647#endif
 9648
 9649#endif
 9650
 9651HRESULT STDMETHODCALLTYPE IEnumFORMATETC_RemoteNext_Proxy(
 9652    IEnumFORMATETC* This,
 9653    ULONG celt,
 9654    FORMATETC *rgelt,
 9655    ULONG *pceltFetched);
 9656void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
 9657    IRpcStubBuffer* This,
 9658    IRpcChannelBuffer* pRpcChannelBuffer,
 9659    PRPC_MESSAGE pRpcMessage,
 9660    DWORD* pdwStubPhase);
 9661HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
 9662    IEnumFORMATETC* This,
 9663    ULONG celt,
 9664    FORMATETC *rgelt,
 9665    ULONG *pceltFetched);
 9666HRESULT __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
 9680typedef IEnumSTATDATA *LPENUMSTATDATA;
 9681typedef 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;
 9690typedef struct tagSTATDATA {
 9691    FORMATETC formatetc;
 9692    DWORD advf;
 9693    IAdviseSink *pAdvSink;
 9694    DWORD dwConnection;
 9695} STATDATA;
 9696typedef STATDATA *LPSTATDATA;
 9697DEFINE_GUID(IID_IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 9698#if defined(__cplusplus) && !defined(CINTERFACE)
 9699MIDL_INTERFACE("00000105-0000-0000-c000-000000000046")
 9700IEnumSTATDATA : 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
 9721typedef 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
 9757interface 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 ***/
 9774static inline HRESULT IEnumSTATDATA_QueryInterface(IEnumSTATDATA* This,REFIID riid,void **ppvObject) {
 9775    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9776}
 9777static inline ULONG IEnumSTATDATA_AddRef(IEnumSTATDATA* This) {
 9778    return This->lpVtbl->AddRef(This);
 9779}
 9780static inline ULONG IEnumSTATDATA_Release(IEnumSTATDATA* This) {
 9781    return This->lpVtbl->Release(This);
 9782}
 9783/*** IEnumSTATDATA methods ***/
 9784static inline HRESULT IEnumSTATDATA_Next(IEnumSTATDATA* This,ULONG celt,STATDATA *rgelt,ULONG *pceltFetched) {
 9785    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
 9786}
 9787static inline HRESULT IEnumSTATDATA_Skip(IEnumSTATDATA* This,ULONG celt) {
 9788    return This->lpVtbl->Skip(This,celt);
 9789}
 9790static inline HRESULT IEnumSTATDATA_Reset(IEnumSTATDATA* This) {
 9791    return This->lpVtbl->Reset(This);
 9792}
 9793static inline HRESULT IEnumSTATDATA_Clone(IEnumSTATDATA* This,IEnumSTATDATA **ppenum) {
 9794    return This->lpVtbl->Clone(This,ppenum);
 9795}
 9796#endif
 9797#endif
 9798
 9799#endif
 9800
 9801HRESULT STDMETHODCALLTYPE IEnumSTATDATA_RemoteNext_Proxy(
 9802    IEnumSTATDATA* This,
 9803    ULONG celt,
 9804    STATDATA *rgelt,
 9805    ULONG *pceltFetched);
 9806void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
 9807    IRpcStubBuffer* This,
 9808    IRpcChannelBuffer* pRpcChannelBuffer,
 9809    PRPC_MESSAGE pRpcMessage,
 9810    DWORD* pdwStubPhase);
 9811HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
 9812    IEnumSTATDATA* This,
 9813    ULONG celt,
 9814    STATDATA *rgelt,
 9815    ULONG *pceltFetched);
 9816HRESULT __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
 9830typedef IRootStorage *LPROOTSTORAGE;
 9831DEFINE_GUID(IID_IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 9832#if defined(__cplusplus) && !defined(CINTERFACE)
 9833MIDL_INTERFACE("00000012-0000-0000-c000-000000000046")
 9834IRootStorage : 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
 9844typedef 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
 9867interface 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 ***/
 9881static inline HRESULT IRootStorage_QueryInterface(IRootStorage* This,REFIID riid,void **ppvObject) {
 9882    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9883}
 9884static inline ULONG IRootStorage_AddRef(IRootStorage* This) {
 9885    return This->lpVtbl->AddRef(This);
 9886}
 9887static inline ULONG IRootStorage_Release(IRootStorage* This) {
 9888    return This->lpVtbl->Release(This);
 9889}
 9890/*** IRootStorage methods ***/
 9891static 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
 9908typedef IAdviseSink *LPADVISESINK;
 9909typedef 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;
 9919typedef 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
 9928typedef struct tagSTGMEDIUM {
 9929DWORD tymed;
 9930union {
 9931HBITMAP hBitmap;
 9932HMETAFILEPICT hMetaFilePict;
 9933HENHMETAFILE hEnhMetaFile;
 9934HGLOBAL hGlobal;
 9935LPOLESTR lpszFileName;
 9936IStream *pstm;
 9937IStorage *pstg;
 9938} u;
 9939IUnknown *pUnkForRelease;
 9940}uSTGMEDIUM;
 9941#else
 9942typedef 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
 9956typedef 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;
 9964typedef 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;
 9979typedef userSTGMEDIUM *wireSTGMEDIUM;
 9980typedef uSTGMEDIUM STGMEDIUM;
 9981typedef userSTGMEDIUM *wireASYNC_STGMEDIUM;
 9982typedef STGMEDIUM ASYNC_STGMEDIUM;
 9983typedef STGMEDIUM *LPSTGMEDIUM;
 9984typedef struct _userFLAG_STGMEDIUM {
 9985    LONG ContextFlags;
 9986    LONG fPassOwnership;
 9987    userSTGMEDIUM Stgmed;
 9988} userFLAG_STGMEDIUM;
 9989typedef userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
 9990typedef struct _FLAG_STGMEDIUM {
 9991    LONG ContextFlags;
 9992    LONG fPassOwnership;
 9993    STGMEDIUM Stgmed;
 9994} FLAG_STGMEDIUM;
 9995DEFINE_GUID(IID_IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 9996#if defined(__cplusplus) && !defined(CINTERFACE)
 9997MIDL_INTERFACE("0000010f-0000-0000-c000-000000000046")
 9998IAdviseSink : 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
10022typedef 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
10061interface 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 ***/
10079static inline HRESULT IAdviseSink_QueryInterface(IAdviseSink* This,REFIID riid,void **ppvObject) {
10080    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10081}
10082static inline ULONG IAdviseSink_AddRef(IAdviseSink* This) {
10083    return This->lpVtbl->AddRef(This);
10084}
10085static inline ULONG IAdviseSink_Release(IAdviseSink* This) {
10086    return This->lpVtbl->Release(This);
10087}
10088/*** IAdviseSink methods ***/
10089static inline void IAdviseSink_OnDataChange(IAdviseSink* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
10090    This->lpVtbl->OnDataChange(This,pFormatetc,pStgmed);
10091}
10092static inline void IAdviseSink_OnViewChange(IAdviseSink* This,DWORD dwAspect,LONG lindex) {
10093    This->lpVtbl->OnViewChange(This,dwAspect,lindex);
10094}
10095static inline void IAdviseSink_OnRename(IAdviseSink* This,IMoniker *pmk) {
10096    This->lpVtbl->OnRename(This,pmk);
10097}
10098static inline void IAdviseSink_OnSave(IAdviseSink* This) {
10099    This->lpVtbl->OnSave(This);
10100}
10101static inline void IAdviseSink_OnClose(IAdviseSink* This) {
10102    This->lpVtbl->OnClose(This);
10103}
10104#endif
10105#endif
10106
10107#endif
10108
10109HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnDataChange_Proxy(
10110    IAdviseSink* This,
10111    FORMATETC *pFormatetc,
10112    ASYNC_STGMEDIUM *pStgmed);
10113void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub(
10114    IRpcStubBuffer* This,
10115    IRpcChannelBuffer* pRpcChannelBuffer,
10116    PRPC_MESSAGE pRpcMessage,
10117    DWORD* pdwStubPhase);
10118HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnViewChange_Proxy(
10119    IAdviseSink* This,
10120    DWORD dwAspect,
10121    LONG lindex);
10122void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub(
10123    IRpcStubBuffer* This,
10124    IRpcChannelBuffer* pRpcChannelBuffer,
10125    PRPC_MESSAGE pRpcMessage,
10126    DWORD* pdwStubPhase);
10127HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnRename_Proxy(
10128    IAdviseSink* This,
10129    IMoniker *pmk);
10130void __RPC_STUB IAdviseSink_RemoteOnRename_Stub(
10131    IRpcStubBuffer* This,
10132    IRpcChannelBuffer* pRpcChannelBuffer,
10133    PRPC_MESSAGE pRpcMessage,
10134    DWORD* pdwStubPhase);
10135HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnSave_Proxy(
10136    IAdviseSink* This);
10137void __RPC_STUB IAdviseSink_RemoteOnSave_Stub(
10138    IRpcStubBuffer* This,
10139    IRpcChannelBuffer* pRpcChannelBuffer,
10140    PRPC_MESSAGE pRpcMessage,
10141    DWORD* pdwStubPhase);
10142HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnClose_Proxy(
10143    IAdviseSink* This);
10144void __RPC_STUB IAdviseSink_RemoteOnClose_Stub(
10145    IRpcStubBuffer* This,
10146    IRpcChannelBuffer* pRpcChannelBuffer,
10147    PRPC_MESSAGE pRpcMessage,
10148    DWORD* pdwStubPhase);
10149void CALLBACK IAdviseSink_OnDataChange_Proxy(
10150    IAdviseSink* This,
10151    FORMATETC *pFormatetc,
10152    STGMEDIUM *pStgmed);
10153HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
10154    IAdviseSink* This,
10155    FORMATETC *pFormatetc,
10156    ASYNC_STGMEDIUM *pStgmed);
10157void CALLBACK IAdviseSink_OnViewChange_Proxy(
10158    IAdviseSink* This,
10159    DWORD dwAspect,
10160    LONG lindex);
10161HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
10162    IAdviseSink* This,
10163    DWORD dwAspect,
10164    LONG lindex);
10165void CALLBACK IAdviseSink_OnRename_Proxy(
10166    IAdviseSink* This,
10167    IMoniker *pmk);
10168HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
10169    IAdviseSink* This,
10170    IMoniker *pmk);
10171void CALLBACK IAdviseSink_OnSave_Proxy(
10172    IAdviseSink* This);
10173HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
10174    IAdviseSink* This);
10175void CALLBACK IAdviseSink_OnClose_Proxy(
10176    IAdviseSink* This);
10177HRESULT __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
10188DEFINE_GUID(IID_AsyncIAdviseSink, 0x00000150, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10189#if defined(__cplusplus) && !defined(CINTERFACE)
10190MIDL_INTERFACE("00000150-0000-0000-c000-000000000046")
10191AsyncIAdviseSink : 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
10230typedef 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
10284interface 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 ***/
10307static inline HRESULT AsyncIAdviseSink_QueryInterface(AsyncIAdviseSink* This,REFIID riid,void **ppvObject) {
10308    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10309}
10310static inline ULONG AsyncIAdviseSink_AddRef(AsyncIAdviseSink* This) {
10311    return This->lpVtbl->AddRef(This);
10312}
10313static inline ULONG AsyncIAdviseSink_Release(AsyncIAdviseSink* This) {
10314    return This->lpVtbl->Release(This);
10315}
10316/*** AsyncIAdviseSink methods ***/
10317static inline void AsyncIAdviseSink_Begin_OnDataChange(AsyncIAdviseSink* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
10318    This->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed);
10319}
10320static inline void AsyncIAdviseSink_Finish_OnDataChange(AsyncIAdviseSink* This) {
10321    This->lpVtbl->Finish_OnDataChange(This);
10322}
10323static inline void AsyncIAdviseSink_Begin_OnViewChange(AsyncIAdviseSink* This,DWORD dwAspect,LONG lindex) {
10324    This->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex);
10325}
10326static inline void AsyncIAdviseSink_Finish_OnViewChange(AsyncIAdviseSink* This) {
10327    This->lpVtbl->Finish_OnViewChange(This);
10328}
10329static inline void AsyncIAdviseSink_Begin_OnRename(AsyncIAdviseSink* This,IMoniker *pmk) {
10330    This->lpVtbl->Begin_OnRename(This,pmk);
10331}
10332static inline void AsyncIAdviseSink_Finish_OnRename(AsyncIAdviseSink* This) {
10333    This->lpVtbl->Finish_OnRename(This);
10334}
10335static inline void AsyncIAdviseSink_Begin_OnSave(AsyncIAdviseSink* This) {
10336    This->lpVtbl->Begin_OnSave(This);
10337}
10338static inline void AsyncIAdviseSink_Finish_OnSave(AsyncIAdviseSink* This) {
10339    This->lpVtbl->Finish_OnSave(This);
10340}
10341static inline void AsyncIAdviseSink_Begin_OnClose(AsyncIAdviseSink* This) {
10342    This->lpVtbl->Begin_OnClose(This);
10343}
10344static 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
10363typedef IAdviseSink2 *LPADVISESINK2;
10364DEFINE_GUID(IID_IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10365#if defined(__cplusplus) && !defined(CINTERFACE)
10366MIDL_INTERFACE("00000125-0000-0000-c000-000000000046")
10367IAdviseSink2 : 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
10377typedef 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
10421interface 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 ***/
10441static inline HRESULT IAdviseSink2_QueryInterface(IAdviseSink2* This,REFIID riid,void **ppvObject) {
10442    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10443}
10444static inline ULONG IAdviseSink2_AddRef(IAdviseSink2* This) {
10445    return This->lpVtbl->AddRef(This);
10446}
10447static inline ULONG IAdviseSink2_Release(IAdviseSink2* This) {
10448    return This->lpVtbl->Release(This);
10449}
10450/*** IAdviseSink methods ***/
10451static inline void IAdviseSink2_OnDataChange(IAdviseSink2* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
10452    This->lpVtbl->OnDataChange(This,pFormatetc,pStgmed);
10453}
10454static inline void IAdviseSink2_OnViewChange(IAdviseSink2* This,DWORD dwAspect,LONG lindex) {
10455    This->lpVtbl->OnViewChange(This,dwAspect,lindex);
10456}
10457static inline void IAdviseSink2_OnRename(IAdviseSink2* This,IMoniker *pmk) {
10458    This->lpVtbl->OnRename(This,pmk);
10459}
10460static inline void IAdviseSink2_OnSave(IAdviseSink2* This) {
10461    This->lpVtbl->OnSave(This);
10462}
10463static inline void IAdviseSink2_OnClose(IAdviseSink2* This) {
10464    This->lpVtbl->OnClose(This);
10465}
10466/*** IAdviseSink2 methods ***/
10467static inline void IAdviseSink2_OnLinkSrcChange(IAdviseSink2* This,IMoniker *pmk) {
10468    This->lpVtbl->OnLinkSrcChange(This,pmk);
10469}
10470#endif
10471#endif
10472
10473#endif
10474
10475HRESULT STDMETHODCALLTYPE IAdviseSink2_RemoteOnLinkSrcChange_Proxy(
10476    IAdviseSink2* This,
10477    IMoniker *pmk);
10478void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub(
10479    IRpcStubBuffer* This,
10480    IRpcChannelBuffer* pRpcChannelBuffer,
10481    PRPC_MESSAGE pRpcMessage,
10482    DWORD* pdwStubPhase);
10483void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
10484    IAdviseSink2* This,
10485    IMoniker *pmk);
10486HRESULT __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
10498DEFINE_GUID(IID_AsyncIAdviseSink2, 0x00000151, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10499#if defined(__cplusplus) && !defined(CINTERFACE)
10500MIDL_INTERFACE("00000151-0000-0000-c000-000000000046")
10501AsyncIAdviseSink2 : 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
10514typedef 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
10576interface 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 ***/
10602static inline HRESULT AsyncIAdviseSink2_QueryInterface(AsyncIAdviseSink2* This,REFIID riid,void **ppvObject) {
10603    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10604}
10605static inline ULONG AsyncIAdviseSink2_AddRef(AsyncIAdviseSink2* This) {
10606    return This->lpVtbl->AddRef(This);
10607}
10608static inline ULONG AsyncIAdviseSink2_Release(AsyncIAdviseSink2* This) {
10609    return This->lpVtbl->Release(This);
10610}
10611/*** AsyncIAdviseSink methods ***/
10612static inline void AsyncIAdviseSink2_Begin_OnDataChange(AsyncIAdviseSink2* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
10613    This->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed);
10614}
10615static inline void AsyncIAdviseSink2_Finish_OnDataChange(AsyncIAdviseSink2* This) {
10616    This->lpVtbl->Finish_OnDataChange(This);
10617}
10618static inline void AsyncIAdviseSink2_Begin_OnViewChange(AsyncIAdviseSink2* This,DWORD dwAspect,LONG lindex) {
10619    This->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex);
10620}
10621static inline void AsyncIAdviseSink2_Finish_OnViewChange(AsyncIAdviseSink2* This) {
10622    This->lpVtbl->Finish_OnViewChange(This);
10623}
10624static inline void AsyncIAdviseSink2_Begin_OnRename(AsyncIAdviseSink2* This,IMoniker *pmk) {
10625    This->lpVtbl->Begin_OnRename(This,pmk);
10626}
10627static inline void AsyncIAdviseSink2_Finish_OnRename(AsyncIAdviseSink2* This) {
10628    This->lpVtbl->Finish_OnRename(This);
10629}
10630static inline void AsyncIAdviseSink2_Begin_OnSave(AsyncIAdviseSink2* This) {
10631    This->lpVtbl->Begin_OnSave(This);
10632}
10633static inline void AsyncIAdviseSink2_Finish_OnSave(AsyncIAdviseSink2* This) {
10634    This->lpVtbl->Finish_OnSave(This);
10635}
10636static inline void AsyncIAdviseSink2_Begin_OnClose(AsyncIAdviseSink2* This) {
10637    This->lpVtbl->Begin_OnClose(This);
10638}
10639static inline void AsyncIAdviseSink2_Finish_OnClose(AsyncIAdviseSink2* This) {
10640    This->lpVtbl->Finish_OnClose(This);
10641}
10642/*** AsyncIAdviseSink2 methods ***/
10643static inline void AsyncIAdviseSink2_Begin_OnLinkSrcChange(AsyncIAdviseSink2* This,IMoniker *pmk) {
10644    This->lpVtbl->Begin_OnLinkSrcChange(This,pmk);
10645}
10646static 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
10665typedef IDataObject *LPDATAOBJECT;
10666typedef enum tagDATADIR {
10667    DATADIR_GET = 1,
10668    DATADIR_SET = 2
10669} DATADIR;
10670DEFINE_GUID(IID_IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10671#if defined(__cplusplus) && !defined(CINTERFACE)
10672MIDL_INTERFACE("0000010e-0000-0000-c000-000000000046")
10673IDataObject : 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
10716typedef 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
10780interface 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 ***/
10802static inline HRESULT IDataObject_QueryInterface(IDataObject* This,REFIID riid,void **ppvObject) {
10803    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10804}
10805static inline ULONG IDataObject_AddRef(IDataObject* This) {
10806    return This->lpVtbl->AddRef(This);
10807}
10808static inline ULONG IDataObject_Release(IDataObject* This) {
10809    return This->lpVtbl->Release(This);
10810}
10811/*** IDataObject methods ***/
10812static inline HRESULT IDataObject_GetData(IDataObject* This,FORMATETC *pformatetcIn,STGMEDIUM *pmedium) {
10813    return This->lpVtbl->GetData(This,pformatetcIn,pmedium);
10814}
10815static inline HRESULT IDataObject_GetDataHere(IDataObject* This,FORMATETC *pformatetc,STGMEDIUM *pmedium) {
10816    return This->lpVtbl->GetDataHere(This,pformatetc,pmedium);
10817}
10818static inline HRESULT IDataObject_QueryGetData(IDataObject* This,FORMATETC *pformatetc) {
10819    return This->lpVtbl->QueryGetData(This,pformatetc);
10820}
10821static inline HRESULT IDataObject_GetCanonicalFormatEtc(IDataObject* This,FORMATETC *pformatectIn,FORMATETC *pformatetcOut) {
10822    return This->lpVtbl->GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut);
10823}
10824static inline HRESULT IDataObject_SetData(IDataObject* This,FORMATETC *pformatetc,STGMEDIUM *pmedium,WINBOOL fRelease) {
10825    return This->lpVtbl->SetData(This,pformatetc,pmedium,fRelease);
10826}
10827static inline HRESULT IDataObject_EnumFormatEtc(IDataObject* This,DWORD dwDirection,IEnumFORMATETC **ppenumFormatEtc) {
10828    return This->lpVtbl->EnumFormatEtc(This,dwDirection,ppenumFormatEtc);
10829}
10830static 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}
10833static inline HRESULT IDataObject_DUnadvise(IDataObject* This,DWORD dwConnection) {
10834    return This->lpVtbl->DUnadvise(This,dwConnection);
10835}
10836static inline HRESULT IDataObject_EnumDAdvise(IDataObject* This,IEnumSTATDATA **ppenumAdvise) {
10837    return This->lpVtbl->EnumDAdvise(This,ppenumAdvise);
10838}
10839#endif
10840#endif
10841
10842#endif
10843
10844HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetData_Proxy(
10845    IDataObject* This,
10846    FORMATETC *pformatetcIn,
10847    STGMEDIUM *pRemoteMedium);
10848void __RPC_STUB IDataObject_RemoteGetData_Stub(
10849    IRpcStubBuffer* This,
10850    IRpcChannelBuffer* pRpcChannelBuffer,
10851    PRPC_MESSAGE pRpcMessage,
10852    DWORD* pdwStubPhase);
10853HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetDataHere_Proxy(
10854    IDataObject* This,
10855    FORMATETC *pformatetc,
10856    STGMEDIUM *pRemoteMedium);
10857void __RPC_STUB IDataObject_RemoteGetDataHere_Stub(
10858    IRpcStubBuffer* This,
10859    IRpcChannelBuffer* pRpcChannelBuffer,
10860    PRPC_MESSAGE pRpcMessage,
10861    DWORD* pdwStubPhase);
10862HRESULT STDMETHODCALLTYPE IDataObject_RemoteSetData_Proxy(
10863    IDataObject* This,
10864    FORMATETC *pformatetc,
10865    FLAG_STGMEDIUM *pmedium,
10866    WINBOOL fRelease);
10867void __RPC_STUB IDataObject_RemoteSetData_Stub(
10868    IRpcStubBuffer* This,
10869    IRpcChannelBuffer* pRpcChannelBuffer,
10870    PRPC_MESSAGE pRpcMessage,
10871    DWORD* pdwStubPhase);
10872HRESULT CALLBACK IDataObject_GetData_Proxy(
10873    IDataObject* This,
10874    FORMATETC *pformatetcIn,
10875    STGMEDIUM *pmedium);
10876HRESULT __RPC_STUB IDataObject_GetData_Stub(
10877    IDataObject* This,
10878    FORMATETC *pformatetcIn,
10879    STGMEDIUM *pRemoteMedium);
10880HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
10881    IDataObject* This,
10882    FORMATETC *pformatetc,
10883    STGMEDIUM *pmedium);
10884HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
10885    IDataObject* This,
10886    FORMATETC *pformatetc,
10887    STGMEDIUM *pRemoteMedium);
10888HRESULT CALLBACK IDataObject_SetData_Proxy(
10889    IDataObject* This,
10890    FORMATETC *pformatetc,
10891    STGMEDIUM *pmedium,
10892    WINBOOL fRelease);
10893HRESULT __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
10909typedef IDataAdviseHolder *LPDATAADVISEHOLDER;
10910DEFINE_GUID(IID_IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10911#if defined(__cplusplus) && !defined(CINTERFACE)
10912MIDL_INTERFACE("00000110-0000-0000-c000-000000000046")
10913IDataAdviseHolder : 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
10938typedef 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
10979interface 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 ***/
10996static inline HRESULT IDataAdviseHolder_QueryInterface(IDataAdviseHolder* This,REFIID riid,void **ppvObject) {
10997    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10998}
10999static inline ULONG IDataAdviseHolder_AddRef(IDataAdviseHolder* This) {
11000    return This->lpVtbl->AddRef(This);
11001}
11002static inline ULONG IDataAdviseHolder_Release(IDataAdviseHolder* This) {
11003    return This->lpVtbl->Release(This);
11004}
11005/*** IDataAdviseHolder methods ***/
11006static 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}
11009static inline HRESULT IDataAdviseHolder_Unadvise(IDataAdviseHolder* This,DWORD dwConnection) {
11010    return This->lpVtbl->Unadvise(This,dwConnection);
11011}
11012static inline HRESULT IDataAdviseHolder_EnumAdvise(IDataAdviseHolder* This,IEnumSTATDATA **ppenumAdvise) {
11013    return This->lpVtbl->EnumAdvise(This,ppenumAdvise);
11014}
11015static 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
11032typedef IMessageFilter *LPMESSAGEFILTER;
11033typedef 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;
11040typedef enum tagSERVERCALL {
11041    SERVERCALL_ISHANDLED = 0,
11042    SERVERCALL_REJECTED = 1,
11043    SERVERCALL_RETRYLATER = 2
11044} SERVERCALL;
11045typedef enum tagPENDINGTYPE {
11046    PENDINGTYPE_TOPLEVEL = 1,
11047    PENDINGTYPE_NESTED = 2
11048} PENDINGTYPE;
11049typedef enum tagPENDINGMSG {
11050    PENDINGMSG_CANCELCALL = 0,
11051    PENDINGMSG_WAITNOPROCESS = 1,
11052    PENDINGMSG_WAITDEFPROCESS = 2
11053} PENDINGMSG;
11054typedef struct tagINTERFACEINFO {
11055    IUnknown *pUnk;
11056    IID iid;
11057    WORD wMethod;
11058} INTERFACEINFO;
11059typedef struct tagINTERFACEINFO *LPINTERFACEINFO;
11060DEFINE_GUID(IID_IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
11061#if defined(__cplusplus) && !defined(CINTERFACE)
11062MIDL_INTERFACE("00000016-0000-0000-c000-000000000046")
11063IMessageFilter : 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
11086typedef 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
11124interface 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 ***/
11140static inline HRESULT IMessageFilter_QueryInterface(IMessageFilter* This,REFIID riid,void **ppvObject) {
11141    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11142}
11143static inline ULONG IMessageFilter_AddRef(IMessageFilter* This) {
11144    return This->lpVtbl->AddRef(This);
11145}
11146static inline ULONG IMessageFilter_Release(IMessageFilter* This) {
11147    return This->lpVtbl->Release(This);
11148}
11149/*** IMessageFilter methods ***/
11150static 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}
11153static inline DWORD IMessageFilter_RetryRejectedCall(IMessageFilter* This,HTASK htaskCallee,DWORD dwTickCount,DWORD dwRejectType) {
11154    return This->lpVtbl->RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType);
11155}
11156static 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
11168extern const FMTID FMTID_SummaryInformation;
11169
11170extern const FMTID FMTID_DocSummaryInformation;
11171
11172extern const FMTID FMTID_UserDefinedProperties;
11173
11174extern const FMTID FMTID_DiscardableInformation;
11175
11176extern const FMTID FMTID_ImageSummaryInformation;
11177
11178extern const FMTID FMTID_AudioSummaryInformation;
11179
11180extern const FMTID FMTID_VideoSummaryInformation;
11181
11182extern const FMTID FMTID_MediaFileSummaryInformation;
11183
11184/*****************************************************************************
11185 * IClassActivator interface
11186 */
11187#ifndef __IClassActivator_INTERFACE_DEFINED__
11188#define __IClassActivator_INTERFACE_DEFINED__
11189
11190DEFINE_GUID(IID_IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
11191#if defined(__cplusplus) && !defined(CINTERFACE)
11192MIDL_INTERFACE("00000140-0000-0000-c000-000000000046")
11193IClassActivator : 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
11207typedef 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
11234interface 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 ***/
11248static inline HRESULT IClassActivator_QueryInterface(IClassActivator* This,REFIID riid,void **ppvObject) {
11249    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11250}
11251static inline ULONG IClassActivator_AddRef(IClassActivator* This) {
11252    return This->lpVtbl->AddRef(This);
11253}
11254static inline ULONG IClassActivator_Release(IClassActivator* This) {
11255    return This->lpVtbl->Release(This);
11256}
11257/*** IClassActivator methods ***/
11258static 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
11277DEFINE_GUID(IID_IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5);
11278#if defined(__cplusplus) && !defined(CINTERFACE)
11279MIDL_INTERFACE("99caf010-415e-11cf-8814-00aa00b569f5")
11280IFillLockBytes : 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
11304typedef 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
11344interface 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 ***/
11361static inline HRESULT IFillLockBytes_QueryInterface(IFillLockBytes* This,REFIID riid,void **ppvObject) {
11362    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11363}
11364static inline ULONG IFillLockBytes_AddRef(IFillLockBytes* This) {
11365    return This->lpVtbl->AddRef(This);
11366}
11367static inline ULONG IFillLockBytes_Release(IFillLockBytes* This) {
11368    return This->lpVtbl->Release(This);
11369}
11370/*** IFillLockBytes methods ***/
11371static inline HRESULT IFillLockBytes_FillAppend(IFillLockBytes* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
11372    return This->lpVtbl->FillAppend(This,pv,cb,pcbWritten);
11373}
11374static 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}
11377static inline HRESULT IFillLockBytes_SetFillSize(IFillLockBytes* This,ULARGE_INTEGER ulSize) {
11378    return This->lpVtbl->SetFillSize(This,ulSize);
11379}
11380static inline HRESULT IFillLockBytes_Terminate(IFillLockBytes* This,WINBOOL bCanceled) {
11381    return This->lpVtbl->Terminate(This,bCanceled);
11382}
11383#endif
11384#endif
11385
11386#endif
11387
11388HRESULT __stdcall IFillLockBytes_RemoteFillAppend_Proxy(
11389    IFillLockBytes* This,
11390    const byte *pv,
11391    ULONG cb,
11392    ULONG *pcbWritten);
11393void __RPC_STUB IFillLockBytes_RemoteFillAppend_Stub(
11394    IRpcStubBuffer* This,
11395    IRpcChannelBuffer* pRpcChannelBuffer,
11396    PRPC_MESSAGE pRpcMessage,
11397    DWORD* pdwStubPhase);
11398HRESULT __stdcall IFillLockBytes_RemoteFillAt_Proxy(
11399    IFillLockBytes* This,
11400    ULARGE_INTEGER ulOffset,
11401    const byte *pv,
11402    ULONG cb,
11403    ULONG *pcbWritten);
11404void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub(
11405    IRpcStubBuffer* This,
11406    IRpcChannelBuffer* pRpcChannelBuffer,
11407    PRPC_MESSAGE pRpcMessage,
11408    DWORD* pdwStubPhase);
11409HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
11410    IFillLockBytes* This,
11411    const void *pv,
11412    ULONG cb,
11413    ULONG *pcbWritten);
11414HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
11415    IFillLockBytes* This,
11416    const byte *pv,
11417    ULONG cb,
11418    ULONG *pcbWritten);
11419HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
11420    IFillLockBytes* This,
11421    ULARGE_INTEGER ulOffset,
11422    const void *pv,
11423    ULONG cb,
11424    ULONG *pcbWritten);
11425HRESULT __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
11442DEFINE_GUID(IID_IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
11443#if defined(__cplusplus) && !defined(CINTERFACE)
11444MIDL_INTERFACE("a9d758a0-4617-11cf-95fc-00aa00680db4")
11445IProgressNotify : 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
11458typedef 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
11484interface 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 ***/
11498static inline HRESULT IProgressNotify_QueryInterface(IProgressNotify* This,REFIID riid,void **ppvObject) {
11499    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11500}
11501static inline ULONG IProgressNotify_AddRef(IProgressNotify* This) {
11502    return This->lpVtbl->AddRef(This);
11503}
11504static inline ULONG IProgressNotify_Release(IProgressNotify* This) {
11505    return This->lpVtbl->Release(This);
11506}
11507/*** IProgressNotify methods ***/
11508static 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
11527typedef struct tagStorageLayout {
11528    DWORD LayoutType;
11529    OLECHAR *pwcsElementName;
11530    LARGE_INTEGER cOffset;
11531    LARGE_INTEGER cBytes;
11532} StorageLayout;
11533DEFINE_GUID(IID_ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
11534#if defined(__cplusplus) && !defined(CINTERFACE)
11535MIDL_INTERFACE("0e6d4d90-6738-11cf-9608-00aa00680db4")
11536ILayoutStorage : 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
11560typedef 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
11599interface 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 ***/
11617static inline HRESULT ILayoutStorage_QueryInterface(ILayoutStorage* This,REFIID riid,void **ppvObject) {
11618    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11619}
11620static inline ULONG ILayoutStorage_AddRef(ILayoutStorage* This) {
11621    return This->lpVtbl->AddRef(This);
11622}
11623static inline ULONG ILayoutStorage_Release(ILayoutStorage* This) {
11624    return This->lpVtbl->Release(This);
11625}
11626/*** ILayoutStorage methods ***/
11627static inline HRESULT ILayoutStorage_LayoutScript(ILayoutStorage* This,StorageLayout *pStorageLayout,DWORD nEntries,DWORD glfInterleavedFlag) {
11628    return This->lpVtbl->LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag);
11629}
11630static inline HRESULT ILayoutStorage_BeginMonitor(ILayoutStorage* This) {
11631    return This->lpVtbl->BeginMonitor(This);
11632}
11633static inline HRESULT ILayoutStorage_EndMonitor(ILayoutStorage* This) {
11634    return This->lpVtbl->EndMonitor(This);
11635}
11636static inline HRESULT ILayoutStorage_ReLayoutDocfile(ILayoutStorage* This,OLECHAR *pwcsNewDfName) {
11637    return This->lpVtbl->ReLayoutDocfile(This,pwcsNewDfName);
11638}
11639static 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
11658DEFINE_GUID(IID_IBlockingLock, 0x30f3d47a, 0x6447, 0x11d1, 0x8e,0x3c, 0x00,0xc0,0x4f,0xb9,0x38,0x6d);
11659#if defined(__cplusplus) && !defined(CINTERFACE)
11660MIDL_INTERFACE("30f3d47a-6447-11d1-8e3c-00c04fb9386d")
11661IBlockingLock : 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
11674typedef 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
11700interface 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 ***/
11715static inline HRESULT IBlockingLock_QueryInterface(IBlockingLock* This,REFIID riid,void **ppvObject) {
11716    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11717}
11718static inline ULONG IBlockingLock_AddRef(IBlockingLock* This) {
11719    return This->lpVtbl->AddRef(This);
11720}
11721static inline ULONG IBlockingLock_Release(IBlockingLock* This) {
11722    return This->lpVtbl->Release(This);
11723}
11724/*** IBlockingLock methods ***/
11725static inline HRESULT IBlockingLock_Lock(IBlockingLock* This,DWORD dwTimeout) {
11726    return This->lpVtbl->Lock(This,dwTimeout);
11727}
11728static 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
11745DEFINE_GUID(IID_ITimeAndNoticeControl, 0xbc0bf6ae, 0x8878, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4);
11746#if defined(__cplusplus) && !defined(CINTERFACE)
11747MIDL_INTERFACE("bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4")
11748ITimeAndNoticeControl : 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
11759typedef 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
11783interface 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 ***/
11797static inline HRESULT ITimeAndNoticeControl_QueryInterface(ITimeAndNoticeControl* This,REFIID riid,void **ppvObject) {
11798    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11799}
11800static inline ULONG ITimeAndNoticeControl_AddRef(ITimeAndNoticeControl* This) {
11801    return This->lpVtbl->AddRef(This);
11802}
11803static inline ULONG ITimeAndNoticeControl_Release(ITimeAndNoticeControl* This) {
11804    return This->lpVtbl->Release(This);
11805}
11806/*** ITimeAndNoticeControl methods ***/
11807static 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
11824DEFINE_GUID(IID_IOplockStorage, 0x8d19c834, 0x8879, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4);
11825#if defined(__cplusplus) && !defined(CINTERFACE)
11826MIDL_INTERFACE("8d19c834-8879-11d1-83e9-00c04fc2c6d4")
11827IOplockStorage : 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
11850typedef 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
11887interface 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 ***/
11902static inline HRESULT IOplockStorage_QueryInterface(IOplockStorage* This,REFIID riid,void **ppvObject) {
11903    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11904}
11905static inline ULONG IOplockStorage_AddRef(IOplockStorage* This) {
11906    return This->lpVtbl->AddRef(This);
11907}
11908static inline ULONG IOplockStorage_Release(IOplockStorage* This) {
11909    return This->lpVtbl->Release(This);
11910}
11911/*** IOplockStorage methods ***/
11912static 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}
11915static 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
11934DEFINE_GUID(IID_IDirectWriterLock, 0x0e6d4d92, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
11935#if defined(__cplusplus) && !defined(CINTERFACE)
11936MIDL_INTERFACE("0e6d4d92-6738-11cf-9608-00aa00680db4")
11937IDirectWriterLock : 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
11953typedef 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
11982interface 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 ***/
11998static inline HRESULT IDirectWriterLock_QueryInterface(IDirectWriterLock* This,REFIID riid,void **ppvObject) {
11999    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12000}
12001static inline ULONG IDirectWriterLock_AddRef(IDirectWriterLock* This) {
12002    return This->lpVtbl->AddRef(This);
12003}
12004static inline ULONG IDirectWriterLock_Release(IDirectWriterLock* This) {
12005    return This->lpVtbl->Release(This);
12006}
12007/*** IDirectWriterLock methods ***/
12008static inline HRESULT IDirectWriterLock_WaitForWriteAccess(IDirectWriterLock* This,DWORD dwTimeout) {
12009    return This->lpVtbl->WaitForWriteAccess(This,dwTimeout);
12010}
12011static inline HRESULT IDirectWriterLock_ReleaseWriteAccess(IDirectWriterLock* This) {
12012    return This->lpVtbl->ReleaseWriteAccess(This);
12013}
12014static 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
12033DEFINE_GUID(IID_IUrlMon, 0x00000026, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12034#if defined(__cplusplus) && !defined(CINTERFACE)
12035MIDL_INTERFACE("00000026-0000-0000-c000-000000000046")
12036IUrlMon : 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
12055typedef 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
12087interface 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 ***/
12101static inline HRESULT IUrlMon_QueryInterface(IUrlMon* This,REFIID riid,void **ppvObject) {
12102    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12103}
12104static inline ULONG IUrlMon_AddRef(IUrlMon* This) {
12105    return This->lpVtbl->AddRef(This);
12106}
12107static inline ULONG IUrlMon_Release(IUrlMon* This) {
12108    return This->lpVtbl->Release(This);
12109}
12110/*** IUrlMon methods ***/
12111static 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
12128DEFINE_GUID(IID_IForegroundTransfer, 0x00000145, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12129#if defined(__cplusplus) && !defined(CINTERFACE)
12130MIDL_INTERFACE("00000145-0000-0000-c000-000000000046")
12131IForegroundTransfer : 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
12141typedef 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
12164interface 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 ***/
12178static inline HRESULT IForegroundTransfer_QueryInterface(IForegroundTransfer* This,REFIID riid,void **ppvObject) {
12179    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12180}
12181static inline ULONG IForegroundTransfer_AddRef(IForegroundTransfer* This) {
12182    return This->lpVtbl->AddRef(This);
12183}
12184static inline ULONG IForegroundTransfer_Release(IForegroundTransfer* This) {
12185    return This->lpVtbl->Release(This);
12186}
12187/*** IForegroundTransfer methods ***/
12188static 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
12205DEFINE_GUID(IID_IThumbnailExtractor, 0x969dc708, 0x5c76, 0x11d1, 0x8d,0x86, 0x00,0x00,0xf8,0x04,0xb0,0x57);
12206#if defined(__cplusplus) && !defined(CINTERFACE)
12207MIDL_INTERFACE("969dc708-5c76-11d1-8d86-0000f804b057")
12208IThumbnailExtractor : 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
12226typedef 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
12258interface 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 ***/
12273static inline HRESULT IThumbnailExtractor_QueryInterface(IThumbnailExtractor* This,REFIID riid,void **ppvObject) {
12274    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12275}
12276static inline ULONG IThumbnailExtractor_AddRef(IThumbnailExtractor* This) {
12277    return This->lpVtbl->AddRef(This);
12278}
12279static inline ULONG IThumbnailExtractor_Release(IThumbnailExtractor* This) {
12280    return This->lpVtbl->Release(This);
12281}
12282/*** IThumbnailExtractor methods ***/
12283static 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}
12286static 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
12303DEFINE_GUID(IID_IDummyHICONIncluder, 0x947990de, 0xcc28, 0x11d2, 0xa0,0xf7, 0x00,0x80,0x5f,0x85,0x8f,0xb1);
12304#if defined(__cplusplus) && !defined(CINTERFACE)
12305MIDL_INTERFACE("947990de-cc28-11d2-a0f7-00805f858fb1")
12306IDummyHICONIncluder : 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
12317typedef 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
12341interface 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 ***/
12355static inline HRESULT IDummyHICONIncluder_QueryInterface(IDummyHICONIncluder* This,REFIID riid,void **ppvObject) {
12356    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12357}
12358static inline ULONG IDummyHICONIncluder_AddRef(IDummyHICONIncluder* This) {
12359    return This->lpVtbl->AddRef(This);
12360}
12361static inline ULONG IDummyHICONIncluder_Release(IDummyHICONIncluder* This) {
12362    return This->lpVtbl->Release(This);
12363}
12364/*** IDummyHICONIncluder methods ***/
12365static 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
12376typedef enum tagApplicationType {
12377    ServerApplication = 0,
12378    LibraryApplication = 1
12379} ApplicationType;
12380typedef 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
12390DEFINE_GUID(IID_IProcessLock, 0x000001d5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12391#if defined(__cplusplus) && !defined(CINTERFACE)
12392MIDL_INTERFACE("000001d5-0000-0000-c000-000000000046")
12393IProcessLock : 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
12406typedef 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
12431interface 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 ***/
12446static inline HRESULT IProcessLock_QueryInterface(IProcessLock* This,REFIID riid,void **ppvObject) {
12447    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12448}
12449static inline ULONG IProcessLock_AddRef(IProcessLock* This) {
12450    return This->lpVtbl->AddRef(This);
12451}
12452static inline ULONG IProcessLock_Release(IProcessLock* This) {
12453    return This->lpVtbl->Release(This);
12454}
12455/*** IProcessLock methods ***/
12456static inline ULONG IProcessLock_AddRefOnProcess(IProcessLock* This) {
12457    return This->lpVtbl->AddRefOnProcess(This);
12458}
12459static 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
12476DEFINE_GUID(IID_ISurrogateService, 0x000001d4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12477#if defined(__cplusplus) && !defined(CINTERFACE)
12478MIDL_INTERFACE("000001d4-0000-0000-c000-000000000046")
12479ISurrogateService : 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
12504typedef 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
12546interface 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 ***/
12564static inline HRESULT ISurrogateService_QueryInterface(ISurrogateService* This,REFIID riid,void **ppvObject) {
12565    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12566}
12567static inline ULONG ISurrogateService_AddRef(ISurrogateService* This) {
12568    return This->lpVtbl->AddRef(This);
12569}
12570static inline ULONG ISurrogateService_Release(ISurrogateService* This) {
12571    return This->lpVtbl->Release(This);
12572}
12573/*** ISurrogateService methods ***/
12574static inline HRESULT ISurrogateService_Init(ISurrogateService* This,REFGUID rguidProcessID,IProcessLock *pProcessLock,WINBOOL *pfApplicationAware) {
12575    return This->lpVtbl->Init(This,rguidProcessID,pProcessLock,pfApplicationAware);
12576}
12577static inline HRESULT ISurrogateService_ApplicationLaunch(ISurrogateService* This,REFGUID rguidApplID,ApplicationType appType) {
12578    return This->lpVtbl->ApplicationLaunch(This,rguidApplID,appType);
12579}
12580static inline HRESULT ISurrogateService_ApplicationFree(ISurrogateService* This,REFGUID rguidApplID) {
12581    return This->lpVtbl->ApplicationFree(This,rguidApplID);
12582}
12583static inline HRESULT ISurrogateService_CatalogRefresh(ISurrogateService* This,ULONG ulReserved) {
12584    return This->lpVtbl->CatalogRefresh(This,ulReserved);
12585}
12586static 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
12603typedef IInitializeSpy *LPINITIALIZESPY;
12604DEFINE_GUID(IID_IInitializeSpy, 0x00000034, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12605#if defined(__cplusplus) && !defined(CINTERFACE)
12606MIDL_INTERFACE("00000034-0000-0000-c000-000000000046")
12607IInitializeSpy : 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
12629typedef 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
12667interface 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 ***/
12684static inline HRESULT IInitializeSpy_QueryInterface(IInitializeSpy* This,REFIID riid,void **ppvObject) {
12685    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12686}
12687static inline ULONG IInitializeSpy_AddRef(IInitializeSpy* This) {
12688    return This->lpVtbl->AddRef(This);
12689}
12690static inline ULONG IInitializeSpy_Release(IInitializeSpy* This) {
12691    return This->lpVtbl->Release(This);
12692}
12693/*** IInitializeSpy methods ***/
12694static inline HRESULT IInitializeSpy_PreInitialize(IInitializeSpy* This,DWORD dwCoInit,DWORD dwCurThreadAptRefs) {
12695    return This->lpVtbl->PreInitialize(This,dwCoInit,dwCurThreadAptRefs);
12696}
12697static inline HRESULT IInitializeSpy_PostInitialize(IInitializeSpy* This,HRESULT hrCoInit,DWORD dwCoInit,DWORD dwNewThreadAptRefs) {
12698    return This->lpVtbl->PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs);
12699}
12700static inline HRESULT IInitializeSpy_PreUninitialize(IInitializeSpy* This,DWORD dwCurThreadAptRefs) {
12701    return This->lpVtbl->PreUninitialize(This,dwCurThreadAptRefs);
12702}
12703static 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
12722DEFINE_GUID(IID_IApartmentShutdown, 0xa2f05a09, 0x27a2, 0x42b5, 0xbc,0x0e, 0xac,0x16,0x3e,0xf4,0x9d,0x9b);
12723#if defined(__cplusplus) && !defined(CINTERFACE)
12724MIDL_INTERFACE("a2f05a09-27a2-42b5-bc0e-ac163ef49d9b")
12725IApartmentShutdown : 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
12735typedef 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
12758interface 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 ***/
12772static inline HRESULT IApartmentShutdown_QueryInterface(IApartmentShutdown* This,REFIID riid,void **ppvObject) {
12773    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12774}
12775static inline ULONG IApartmentShutdown_AddRef(IApartmentShutdown* This) {
12776    return This->lpVtbl->AddRef(This);
12777}
12778static inline ULONG IApartmentShutdown_Release(IApartmentShutdown* This) {
12779    return This->lpVtbl->Release(This);
12780}
12781/*** IApartmentShutdown methods ***/
12782static 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
12796ULONG           __RPC_USER SNB_UserSize     (ULONG *, ULONG, SNB *);
12797unsigned char * __RPC_USER SNB_UserMarshal  (ULONG *, unsigned char *, SNB *);
12798unsigned char * __RPC_USER SNB_UserUnmarshal(ULONG *, unsigned char *, SNB *);
12799void            __RPC_USER SNB_UserFree     (ULONG *, SNB *);
12800ULONG           __RPC_USER CLIPFORMAT_UserSize     (ULONG *, ULONG, CLIPFORMAT *);
12801unsigned char * __RPC_USER CLIPFORMAT_UserMarshal  (ULONG *, unsigned char *, CLIPFORMAT *);
12802unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
12803void            __RPC_USER CLIPFORMAT_UserFree     (ULONG *, CLIPFORMAT *);
12804ULONG           __RPC_USER STGMEDIUM_UserSize     (ULONG *, ULONG, STGMEDIUM *);
12805unsigned char * __RPC_USER STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, STGMEDIUM *);
12806unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, STGMEDIUM *);
12807void            __RPC_USER STGMEDIUM_UserFree     (ULONG *, STGMEDIUM *);
12808ULONG           __RPC_USER ASYNC_STGMEDIUM_UserSize     (ULONG *, ULONG, ASYNC_STGMEDIUM *);
12809unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, ASYNC_STGMEDIUM *);
12810unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, ASYNC_STGMEDIUM *);
12811void            __RPC_USER ASYNC_STGMEDIUM_UserFree     (ULONG *, ASYNC_STGMEDIUM *);
12812ULONG           __RPC_USER FLAG_STGMEDIUM_UserSize     (ULONG *, ULONG, FLAG_STGMEDIUM *);
12813unsigned char * __RPC_USER FLAG_STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, FLAG_STGMEDIUM *);
12814unsigned char * __RPC_USER FLAG_STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, FLAG_STGMEDIUM *);
12815void            __RPC_USER FLAG_STGMEDIUM_UserFree     (ULONG *, FLAG_STGMEDIUM *);
12816ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
12817unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
12818unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
12819void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
12820ULONG           __RPC_USER HICON_UserSize     (ULONG *, ULONG, HICON *);
12821unsigned char * __RPC_USER HICON_UserMarshal  (ULONG *, unsigned char *, HICON *);
12822unsigned char * __RPC_USER HICON_UserUnmarshal(ULONG *, unsigned char *, HICON *);
12823void            __RPC_USER HICON_UserFree     (ULONG *, HICON *);
12824ULONG           __RPC_USER HDC_UserSize     (ULONG *, ULONG, HDC *);
12825unsigned char * __RPC_USER HDC_UserMarshal  (ULONG *, unsigned char *, HDC *);
12826unsigned char * __RPC_USER HDC_UserUnmarshal(ULONG *, unsigned char *, HDC *);
12827void            __RPC_USER HDC_UserFree     (ULONG *, HDC *);
12828
12829/* End additional prototypes */
12830
12831#ifdef __cplusplus
12832}
12833#endif
12834
12835#endif /* __objidl_h__ */