1/*** Autogenerated by WIDL 1.6 from include/objidl.idl - Do not edit ***/
2
3#ifndef __REQUIRED_RPCNDR_H_VERSION__
4#define __REQUIRED_RPCNDR_H_VERSION__ 475
5#endif
6
7#include <rpc.h>
8#include <rpcndr.h>
9
10#ifndef COM_NO_WINDOWS_H
11#include <windows.h>
12#include <ole2.h>
13#endif
14
15#ifndef __objidl_h__
16#define __objidl_h__
17
18/* Forward declarations */
19
20#ifndef __IMarshal_FWD_DEFINED__
21#define __IMarshal_FWD_DEFINED__
22typedef interface IMarshal IMarshal;
23#endif
24
25#ifndef __INoMarshal_FWD_DEFINED__
26#define __INoMarshal_FWD_DEFINED__
27typedef interface INoMarshal INoMarshal;
28#endif
29
30#ifndef __IAgileObject_FWD_DEFINED__
31#define __IAgileObject_FWD_DEFINED__
32typedef interface IAgileObject IAgileObject;
33#endif
34
35#ifndef __IMarshal2_FWD_DEFINED__
36#define __IMarshal2_FWD_DEFINED__
37typedef interface IMarshal2 IMarshal2;
38#endif
39
40#ifndef __IMalloc_FWD_DEFINED__
41#define __IMalloc_FWD_DEFINED__
42typedef interface IMalloc IMalloc;
43#endif
44
45#ifndef __IStdMarshalInfo_FWD_DEFINED__
46#define __IStdMarshalInfo_FWD_DEFINED__
47typedef interface IStdMarshalInfo IStdMarshalInfo;
48#endif
49
50#ifndef __IExternalConnection_FWD_DEFINED__
51#define __IExternalConnection_FWD_DEFINED__
52typedef interface IExternalConnection IExternalConnection;
53#endif
54
55#ifndef __IMultiQI_FWD_DEFINED__
56#define __IMultiQI_FWD_DEFINED__
57typedef interface IMultiQI IMultiQI;
58#endif
59
60#ifndef __AsyncIMultiQI_FWD_DEFINED__
61#define __AsyncIMultiQI_FWD_DEFINED__
62typedef interface AsyncIMultiQI AsyncIMultiQI;
63#endif
64
65#ifndef __IInternalUnknown_FWD_DEFINED__
66#define __IInternalUnknown_FWD_DEFINED__
67typedef interface IInternalUnknown IInternalUnknown;
68#endif
69
70#ifndef __IEnumUnknown_FWD_DEFINED__
71#define __IEnumUnknown_FWD_DEFINED__
72typedef interface IEnumUnknown IEnumUnknown;
73#endif
74
75#ifndef __IEnumString_FWD_DEFINED__
76#define __IEnumString_FWD_DEFINED__
77typedef interface IEnumString IEnumString;
78#endif
79
80#ifndef __ISequentialStream_FWD_DEFINED__
81#define __ISequentialStream_FWD_DEFINED__
82typedef interface ISequentialStream ISequentialStream;
83#endif
84
85#ifndef __IStream_FWD_DEFINED__
86#define __IStream_FWD_DEFINED__
87typedef interface IStream IStream;
88#endif
89
90#ifndef __IRpcChannelBuffer_FWD_DEFINED__
91#define __IRpcChannelBuffer_FWD_DEFINED__
92typedef interface IRpcChannelBuffer IRpcChannelBuffer;
93#endif
94
95#ifndef __IRpcChannelBuffer2_FWD_DEFINED__
96#define __IRpcChannelBuffer2_FWD_DEFINED__
97typedef interface IRpcChannelBuffer2 IRpcChannelBuffer2;
98#endif
99
100#ifndef __IAsyncRpcChannelBuffer_FWD_DEFINED__
101#define __IAsyncRpcChannelBuffer_FWD_DEFINED__
102typedef interface IAsyncRpcChannelBuffer IAsyncRpcChannelBuffer;
103#endif
104
105#ifndef __IRpcChannelBuffer3_FWD_DEFINED__
106#define __IRpcChannelBuffer3_FWD_DEFINED__
107typedef interface IRpcChannelBuffer3 IRpcChannelBuffer3;
108#endif
109
110#ifndef __IRpcSyntaxNegotiate_FWD_DEFINED__
111#define __IRpcSyntaxNegotiate_FWD_DEFINED__
112typedef interface IRpcSyntaxNegotiate IRpcSyntaxNegotiate;
113#endif
114
115#ifndef __IRpcProxyBuffer_FWD_DEFINED__
116#define __IRpcProxyBuffer_FWD_DEFINED__
117typedef interface IRpcProxyBuffer IRpcProxyBuffer;
118#endif
119
120#ifndef __IRpcStubBuffer_FWD_DEFINED__
121#define __IRpcStubBuffer_FWD_DEFINED__
122typedef interface IRpcStubBuffer IRpcStubBuffer;
123#endif
124
125#ifndef __IPSFactoryBuffer_FWD_DEFINED__
126#define __IPSFactoryBuffer_FWD_DEFINED__
127typedef interface IPSFactoryBuffer IPSFactoryBuffer;
128#endif
129
130#ifndef __IChannelHook_FWD_DEFINED__
131#define __IChannelHook_FWD_DEFINED__
132typedef interface IChannelHook IChannelHook;
133#endif
134
135#ifndef __IClientSecurity_FWD_DEFINED__
136#define __IClientSecurity_FWD_DEFINED__
137typedef interface IClientSecurity IClientSecurity;
138#endif
139
140#ifndef __IServerSecurity_FWD_DEFINED__
141#define __IServerSecurity_FWD_DEFINED__
142typedef interface IServerSecurity IServerSecurity;
143#endif
144
145#ifndef __IRpcOptions_FWD_DEFINED__
146#define __IRpcOptions_FWD_DEFINED__
147typedef interface IRpcOptions IRpcOptions;
148#endif
149
150#ifndef __IGlobalOptions_FWD_DEFINED__
151#define __IGlobalOptions_FWD_DEFINED__
152typedef interface IGlobalOptions IGlobalOptions;
153#endif
154
155#ifndef __ISurrogate_FWD_DEFINED__
156#define __ISurrogate_FWD_DEFINED__
157typedef interface ISurrogate ISurrogate;
158#endif
159
160#ifndef __IGlobalInterfaceTable_FWD_DEFINED__
161#define __IGlobalInterfaceTable_FWD_DEFINED__
162typedef interface IGlobalInterfaceTable IGlobalInterfaceTable;
163#endif
164
165#ifndef __ISynchronize_FWD_DEFINED__
166#define __ISynchronize_FWD_DEFINED__
167typedef interface ISynchronize ISynchronize;
168#endif
169
170#ifndef __ISynchronizeHandle_FWD_DEFINED__
171#define __ISynchronizeHandle_FWD_DEFINED__
172typedef interface ISynchronizeHandle ISynchronizeHandle;
173#endif
174
175#ifndef __ISynchronizeEvent_FWD_DEFINED__
176#define __ISynchronizeEvent_FWD_DEFINED__
177typedef interface ISynchronizeEvent ISynchronizeEvent;
178#endif
179
180#ifndef __ISynchronizeContainer_FWD_DEFINED__
181#define __ISynchronizeContainer_FWD_DEFINED__
182typedef interface ISynchronizeContainer ISynchronizeContainer;
183#endif
184
185#ifndef __ISynchronizeMutex_FWD_DEFINED__
186#define __ISynchronizeMutex_FWD_DEFINED__
187typedef interface ISynchronizeMutex ISynchronizeMutex;
188#endif
189
190#ifndef __ICancelMethodCalls_FWD_DEFINED__
191#define __ICancelMethodCalls_FWD_DEFINED__
192typedef interface ICancelMethodCalls ICancelMethodCalls;
193#endif
194
195#ifndef __IAsyncManager_FWD_DEFINED__
196#define __IAsyncManager_FWD_DEFINED__
197typedef interface IAsyncManager IAsyncManager;
198#endif
199
200#ifndef __ICallFactory_FWD_DEFINED__
201#define __ICallFactory_FWD_DEFINED__
202typedef interface ICallFactory ICallFactory;
203#endif
204
205#ifndef __IRpcHelper_FWD_DEFINED__
206#define __IRpcHelper_FWD_DEFINED__
207typedef interface IRpcHelper IRpcHelper;
208#endif
209
210#ifndef __IReleaseMarshalBuffers_FWD_DEFINED__
211#define __IReleaseMarshalBuffers_FWD_DEFINED__
212typedef interface IReleaseMarshalBuffers IReleaseMarshalBuffers;
213#endif
214
215#ifndef __IWaitMultiple_FWD_DEFINED__
216#define __IWaitMultiple_FWD_DEFINED__
217typedef interface IWaitMultiple IWaitMultiple;
218#endif
219
220#ifndef __IAddrTrackingControl_FWD_DEFINED__
221#define __IAddrTrackingControl_FWD_DEFINED__
222typedef interface IAddrTrackingControl IAddrTrackingControl;
223#endif
224
225#ifndef __IAddrExclusionControl_FWD_DEFINED__
226#define __IAddrExclusionControl_FWD_DEFINED__
227typedef interface IAddrExclusionControl IAddrExclusionControl;
228#endif
229
230#ifndef __IPipeByte_FWD_DEFINED__
231#define __IPipeByte_FWD_DEFINED__
232typedef interface IPipeByte IPipeByte;
233#endif
234
235#ifndef __IPipeLong_FWD_DEFINED__
236#define __IPipeLong_FWD_DEFINED__
237typedef interface IPipeLong IPipeLong;
238#endif
239
240#ifndef __IPipeDouble_FWD_DEFINED__
241#define __IPipeDouble_FWD_DEFINED__
242typedef interface IPipeDouble IPipeDouble;
243#endif
244
245#ifndef __IEnumContextProps_FWD_DEFINED__
246#define __IEnumContextProps_FWD_DEFINED__
247typedef interface IEnumContextProps IEnumContextProps;
248#endif
249
250#ifndef __IContext_FWD_DEFINED__
251#define __IContext_FWD_DEFINED__
252typedef interface IContext IContext;
253#endif
254
255#ifndef __IComThreadingInfo_FWD_DEFINED__
256#define __IComThreadingInfo_FWD_DEFINED__
257typedef interface IComThreadingInfo IComThreadingInfo;
258#endif
259
260#ifndef __IProcessInitControl_FWD_DEFINED__
261#define __IProcessInitControl_FWD_DEFINED__
262typedef interface IProcessInitControl IProcessInitControl;
263#endif
264
265#ifndef __IFastRundown_FWD_DEFINED__
266#define __IFastRundown_FWD_DEFINED__
267typedef interface IFastRundown IFastRundown;
268#endif
269
270#ifndef __IMarshalingStream_FWD_DEFINED__
271#define __IMarshalingStream_FWD_DEFINED__
272typedef interface IMarshalingStream IMarshalingStream;
273#endif
274
275#ifndef __IMallocSpy_FWD_DEFINED__
276#define __IMallocSpy_FWD_DEFINED__
277typedef interface IMallocSpy IMallocSpy;
278#endif
279
280#ifndef __IBindCtx_FWD_DEFINED__
281#define __IBindCtx_FWD_DEFINED__
282typedef interface IBindCtx IBindCtx;
283#endif
284
285#ifndef __IEnumMoniker_FWD_DEFINED__
286#define __IEnumMoniker_FWD_DEFINED__
287typedef interface IEnumMoniker IEnumMoniker;
288#endif
289
290#ifndef __IRunnableObject_FWD_DEFINED__
291#define __IRunnableObject_FWD_DEFINED__
292typedef interface IRunnableObject IRunnableObject;
293#endif
294
295#ifndef __IRunningObjectTable_FWD_DEFINED__
296#define __IRunningObjectTable_FWD_DEFINED__
297typedef interface IRunningObjectTable IRunningObjectTable;
298#endif
299
300#ifndef __IPersist_FWD_DEFINED__
301#define __IPersist_FWD_DEFINED__
302typedef interface IPersist IPersist;
303#endif
304
305#ifndef __IPersistStream_FWD_DEFINED__
306#define __IPersistStream_FWD_DEFINED__
307typedef interface IPersistStream IPersistStream;
308#endif
309
310#ifndef __IMoniker_FWD_DEFINED__
311#define __IMoniker_FWD_DEFINED__
312typedef interface IMoniker IMoniker;
313#endif
314
315#ifndef __IROTData_FWD_DEFINED__
316#define __IROTData_FWD_DEFINED__
317typedef interface IROTData IROTData;
318#endif
319
320#ifndef __IEnumSTATSTG_FWD_DEFINED__
321#define __IEnumSTATSTG_FWD_DEFINED__
322typedef interface IEnumSTATSTG IEnumSTATSTG;
323#endif
324
325#ifndef __IStorage_FWD_DEFINED__
326#define __IStorage_FWD_DEFINED__
327typedef interface IStorage IStorage;
328#endif
329
330#ifndef __IPersistFile_FWD_DEFINED__
331#define __IPersistFile_FWD_DEFINED__
332typedef interface IPersistFile IPersistFile;
333#endif
334
335#ifndef __IPersistStorage_FWD_DEFINED__
336#define __IPersistStorage_FWD_DEFINED__
337typedef interface IPersistStorage IPersistStorage;
338#endif
339
340#ifndef __ILockBytes_FWD_DEFINED__
341#define __ILockBytes_FWD_DEFINED__
342typedef interface ILockBytes ILockBytes;
343#endif
344
345#ifndef __IEnumFORMATETC_FWD_DEFINED__
346#define __IEnumFORMATETC_FWD_DEFINED__
347typedef interface IEnumFORMATETC IEnumFORMATETC;
348#endif
349
350#ifndef __IEnumSTATDATA_FWD_DEFINED__
351#define __IEnumSTATDATA_FWD_DEFINED__
352typedef interface IEnumSTATDATA IEnumSTATDATA;
353#endif
354
355#ifndef __IRootStorage_FWD_DEFINED__
356#define __IRootStorage_FWD_DEFINED__
357typedef interface IRootStorage IRootStorage;
358#endif
359
360#ifndef __IAdviseSink_FWD_DEFINED__
361#define __IAdviseSink_FWD_DEFINED__
362typedef interface IAdviseSink IAdviseSink;
363#endif
364
365#ifndef __AsyncIAdviseSink_FWD_DEFINED__
366#define __AsyncIAdviseSink_FWD_DEFINED__
367typedef interface AsyncIAdviseSink AsyncIAdviseSink;
368#endif
369
370#ifndef __IAdviseSink2_FWD_DEFINED__
371#define __IAdviseSink2_FWD_DEFINED__
372typedef interface IAdviseSink2 IAdviseSink2;
373#endif
374
375#ifndef __AsyncIAdviseSink2_FWD_DEFINED__
376#define __AsyncIAdviseSink2_FWD_DEFINED__
377typedef interface AsyncIAdviseSink2 AsyncIAdviseSink2;
378#endif
379
380#ifndef __IDataObject_FWD_DEFINED__
381#define __IDataObject_FWD_DEFINED__
382typedef interface IDataObject IDataObject;
383#endif
384
385#ifndef __IDataAdviseHolder_FWD_DEFINED__
386#define __IDataAdviseHolder_FWD_DEFINED__
387typedef interface IDataAdviseHolder IDataAdviseHolder;
388#endif
389
390#ifndef __IMessageFilter_FWD_DEFINED__
391#define __IMessageFilter_FWD_DEFINED__
392typedef interface IMessageFilter IMessageFilter;
393#endif
394
395#ifndef __IClassActivator_FWD_DEFINED__
396#define __IClassActivator_FWD_DEFINED__
397typedef interface IClassActivator IClassActivator;
398#endif
399
400#ifndef __IFillLockBytes_FWD_DEFINED__
401#define __IFillLockBytes_FWD_DEFINED__
402typedef interface IFillLockBytes IFillLockBytes;
403#endif
404
405#ifndef __IProgressNotify_FWD_DEFINED__
406#define __IProgressNotify_FWD_DEFINED__
407typedef interface IProgressNotify IProgressNotify;
408#endif
409
410#ifndef __ILayoutStorage_FWD_DEFINED__
411#define __ILayoutStorage_FWD_DEFINED__
412typedef interface ILayoutStorage ILayoutStorage;
413#endif
414
415#ifndef __IBlockingLock_FWD_DEFINED__
416#define __IBlockingLock_FWD_DEFINED__
417typedef interface IBlockingLock IBlockingLock;
418#endif
419
420#ifndef __ITimeAndNoticeControl_FWD_DEFINED__
421#define __ITimeAndNoticeControl_FWD_DEFINED__
422typedef interface ITimeAndNoticeControl ITimeAndNoticeControl;
423#endif
424
425#ifndef __IOplockStorage_FWD_DEFINED__
426#define __IOplockStorage_FWD_DEFINED__
427typedef interface IOplockStorage IOplockStorage;
428#endif
429
430#ifndef __IDirectWriterLock_FWD_DEFINED__
431#define __IDirectWriterLock_FWD_DEFINED__
432typedef interface IDirectWriterLock IDirectWriterLock;
433#endif
434
435#ifndef __IUrlMon_FWD_DEFINED__
436#define __IUrlMon_FWD_DEFINED__
437typedef interface IUrlMon IUrlMon;
438#endif
439
440#ifndef __IForegroundTransfer_FWD_DEFINED__
441#define __IForegroundTransfer_FWD_DEFINED__
442typedef interface IForegroundTransfer IForegroundTransfer;
443#endif
444
445#ifndef __IThumbnailExtractor_FWD_DEFINED__
446#define __IThumbnailExtractor_FWD_DEFINED__
447typedef interface IThumbnailExtractor IThumbnailExtractor;
448#endif
449
450#ifndef __IDummyHICONIncluder_FWD_DEFINED__
451#define __IDummyHICONIncluder_FWD_DEFINED__
452typedef interface IDummyHICONIncluder IDummyHICONIncluder;
453#endif
454
455#ifndef __IProcessLock_FWD_DEFINED__
456#define __IProcessLock_FWD_DEFINED__
457typedef interface IProcessLock IProcessLock;
458#endif
459
460#ifndef __ISurrogateService_FWD_DEFINED__
461#define __ISurrogateService_FWD_DEFINED__
462typedef interface ISurrogateService ISurrogateService;
463#endif
464
465#ifndef __IInitializeSpy_FWD_DEFINED__
466#define __IInitializeSpy_FWD_DEFINED__
467typedef interface IInitializeSpy IInitializeSpy;
468#endif
469
470#ifndef __IApartmentShutdown_FWD_DEFINED__
471#define __IApartmentShutdown_FWD_DEFINED__
472typedef interface IApartmentShutdown IApartmentShutdown;
473#endif
474
475/* Headers for imported files */
476
477#include <unknwn.h>
478#include <wtypes.h>
479
480#ifdef __cplusplus
481extern "C" {
482#endif
483
484/**
485 * This file is part of the mingw-w64 runtime package.
486 * No warranty is given; refer to the file DISCLAIMER within this package.
487 */
488
489#include <winapifamily.h>
490
491#if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))
492#define _WIN32_WINNT 0x0600
493#endif
494#if(NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))
495#define _WIN32_WINNT 0x0502
496#endif
497#if(NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))
498#define _WIN32_WINNT 0x0501
499#endif
500/**
501 * This file is part of the mingw-w64 runtime package.
502 * No warranty is given; refer to the file DISCLAIMER within this package.
503 */
504
505#include <winapifamily.h>
506
507#if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))
508#define _WIN32_WINNT 0x0600
509#endif
510
511#if (NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))
512#define _WIN32_WINNT 0x0502
513#endif
514
515#if (NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))
516#define _WIN32_WINNT 0x0501
517#endif
518
519#ifndef _OBJIDLBASE_
520#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
521#ifndef __IStream_FWD_DEFINED__
522#define __IStream_FWD_DEFINED__
523typedef interface IStream IStream;
524#endif
525
526#ifndef __IEnumString_FWD_DEFINED__
527#define __IEnumString_FWD_DEFINED__
528typedef interface IEnumString IEnumString;
529#endif
530
531#ifndef __IMultiQI_FWD_DEFINED__
532#define __IMultiQI_FWD_DEFINED__
533typedef interface IMultiQI IMultiQI;
534#endif
535
536#ifndef __AsyncIMultiQI_FWD_DEFINED__
537#define __AsyncIMultiQI_FWD_DEFINED__
538typedef interface AsyncIMultiQI AsyncIMultiQI;
539#endif
540
541#endif
542
543#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
544#ifndef __IAsyncManager_FWD_DEFINED__
545#define __IAsyncManager_FWD_DEFINED__
546typedef interface IAsyncManager IAsyncManager;
547#endif
548
549#ifndef __ICallFactory_FWD_DEFINED__
550#define __ICallFactory_FWD_DEFINED__
551typedef interface ICallFactory ICallFactory;
552#endif
553
554#ifndef __ISynchronize_FWD_DEFINED__
555#define __ISynchronize_FWD_DEFINED__
556typedef interface ISynchronize ISynchronize;
557#endif
558
559#endif
560
561#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
562typedef struct _COSERVERINFO {
563    DWORD dwReserved1;
564    LPWSTR pwszName;
565    COAUTHINFO *pAuthInfo;
566    DWORD dwReserved2;
567} COSERVERINFO;
568
569/*****************************************************************************
570 * IMarshal interface
571 */
572#ifndef __IMarshal_INTERFACE_DEFINED__
573#define __IMarshal_INTERFACE_DEFINED__
574
575typedef IMarshal *LPMARSHAL;
576DEFINE_GUID(IID_IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
577#if defined(__cplusplus) && !defined(CINTERFACE)
578MIDL_INTERFACE("00000003-0000-0000-c000-000000000046")
579IMarshal : public IUnknown
580{
581    virtual HRESULT STDMETHODCALLTYPE GetUnmarshalClass(
582        REFIID riid,
583        void *pv,
584        DWORD dwDestContext,
585        void *pvDestContext,
586        DWORD mshlflags,
587        CLSID *pCid) = 0;
588
589    virtual HRESULT STDMETHODCALLTYPE GetMarshalSizeMax(
590        REFIID riid,
591        void *pv,
592        DWORD dwDestContext,
593        void *pvDestContext,
594        DWORD mshlflags,
595        DWORD *pSize) = 0;
596
597    virtual HRESULT STDMETHODCALLTYPE MarshalInterface(
598        IStream *pStm,
599        REFIID riid,
600        void *pv,
601        DWORD dwDestContext,
602        void *pvDestContext,
603        DWORD mshlflags) = 0;
604
605    virtual HRESULT STDMETHODCALLTYPE UnmarshalInterface(
606        IStream *pStm,
607        REFIID riid,
608        void **ppv) = 0;
609
610    virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalData(
611        IStream *pStm) = 0;
612
613    virtual HRESULT STDMETHODCALLTYPE DisconnectObject(
614        DWORD dwReserved) = 0;
615
616};
617#ifdef __CRT_UUID_DECL
618__CRT_UUID_DECL(IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
619#endif
620#else
621typedef struct IMarshalVtbl {
622    BEGIN_INTERFACE
623
624    /*** IUnknown methods ***/
625    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
626        IMarshal* This,
627        REFIID riid,
628        void **ppvObject);
629
630    ULONG (STDMETHODCALLTYPE *AddRef)(
631        IMarshal* This);
632
633    ULONG (STDMETHODCALLTYPE *Release)(
634        IMarshal* This);
635
636    /*** IMarshal methods ***/
637    HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
638        IMarshal* This,
639        REFIID riid,
640        void *pv,
641        DWORD dwDestContext,
642        void *pvDestContext,
643        DWORD mshlflags,
644        CLSID *pCid);
645
646    HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
647        IMarshal* This,
648        REFIID riid,
649        void *pv,
650        DWORD dwDestContext,
651        void *pvDestContext,
652        DWORD mshlflags,
653        DWORD *pSize);
654
655    HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
656        IMarshal* This,
657        IStream *pStm,
658        REFIID riid,
659        void *pv,
660        DWORD dwDestContext,
661        void *pvDestContext,
662        DWORD mshlflags);
663
664    HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
665        IMarshal* This,
666        IStream *pStm,
667        REFIID riid,
668        void **ppv);
669
670    HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
671        IMarshal* This,
672        IStream *pStm);
673
674    HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
675        IMarshal* This,
676        DWORD dwReserved);
677
678    END_INTERFACE
679} IMarshalVtbl;
680interface IMarshal {
681    CONST_VTBL IMarshalVtbl* lpVtbl;
682};
683
684#ifdef COBJMACROS
685#ifndef WIDL_C_INLINE_WRAPPERS
686/*** IUnknown methods ***/
687#define IMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
688#define IMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
689#define IMarshal_Release(This) (This)->lpVtbl->Release(This)
690/*** IMarshal methods ***/
691#define IMarshal_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) (This)->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid)
692#define IMarshal_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) (This)->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize)
693#define IMarshal_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) (This)->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags)
694#define IMarshal_UnmarshalInterface(This,pStm,riid,ppv) (This)->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv)
695#define IMarshal_ReleaseMarshalData(This,pStm) (This)->lpVtbl->ReleaseMarshalData(This,pStm)
696#define IMarshal_DisconnectObject(This,dwReserved) (This)->lpVtbl->DisconnectObject(This,dwReserved)
697#else
698/*** IUnknown methods ***/
699static FORCEINLINE HRESULT IMarshal_QueryInterface(IMarshal* This,REFIID riid,void **ppvObject) {
700    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
701}
702static FORCEINLINE ULONG IMarshal_AddRef(IMarshal* This) {
703    return This->lpVtbl->AddRef(This);
704}
705static FORCEINLINE ULONG IMarshal_Release(IMarshal* This) {
706    return This->lpVtbl->Release(This);
707}
708/*** IMarshal methods ***/
709static FORCEINLINE HRESULT IMarshal_GetUnmarshalClass(IMarshal* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,CLSID *pCid) {
710    return This->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid);
711}
712static FORCEINLINE HRESULT IMarshal_GetMarshalSizeMax(IMarshal* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,DWORD *pSize) {
713    return This->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize);
714}
715static FORCEINLINE HRESULT IMarshal_MarshalInterface(IMarshal* This,IStream *pStm,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags) {
716    return This->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags);
717}
718static FORCEINLINE HRESULT IMarshal_UnmarshalInterface(IMarshal* This,IStream *pStm,REFIID riid,void **ppv) {
719    return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
720}
721static FORCEINLINE HRESULT IMarshal_ReleaseMarshalData(IMarshal* This,IStream *pStm) {
722    return This->lpVtbl->ReleaseMarshalData(This,pStm);
723}
724static FORCEINLINE HRESULT IMarshal_DisconnectObject(IMarshal* This,DWORD dwReserved) {
725    return This->lpVtbl->DisconnectObject(This,dwReserved);
726}
727#endif
728#endif
729
730#endif
731
732HRESULT STDMETHODCALLTYPE IMarshal_GetUnmarshalClass_Proxy(
733    IMarshal* This,
734    REFIID riid,
735    void *pv,
736    DWORD dwDestContext,
737    void *pvDestContext,
738    DWORD mshlflags,
739    CLSID *pCid);
740void __RPC_STUB IMarshal_GetUnmarshalClass_Stub(
741    IRpcStubBuffer* This,
742    IRpcChannelBuffer* pRpcChannelBuffer,
743    PRPC_MESSAGE pRpcMessage,
744    DWORD* pdwStubPhase);
745HRESULT STDMETHODCALLTYPE IMarshal_GetMarshalSizeMax_Proxy(
746    IMarshal* This,
747    REFIID riid,
748    void *pv,
749    DWORD dwDestContext,
750    void *pvDestContext,
751    DWORD mshlflags,
752    DWORD *pSize);
753void __RPC_STUB IMarshal_GetMarshalSizeMax_Stub(
754    IRpcStubBuffer* This,
755    IRpcChannelBuffer* pRpcChannelBuffer,
756    PRPC_MESSAGE pRpcMessage,
757    DWORD* pdwStubPhase);
758HRESULT STDMETHODCALLTYPE IMarshal_MarshalInterface_Proxy(
759    IMarshal* This,
760    IStream *pStm,
761    REFIID riid,
762    void *pv,
763    DWORD dwDestContext,
764    void *pvDestContext,
765    DWORD mshlflags);
766void __RPC_STUB IMarshal_MarshalInterface_Stub(
767    IRpcStubBuffer* This,
768    IRpcChannelBuffer* pRpcChannelBuffer,
769    PRPC_MESSAGE pRpcMessage,
770    DWORD* pdwStubPhase);
771HRESULT STDMETHODCALLTYPE IMarshal_UnmarshalInterface_Proxy(
772    IMarshal* This,
773    IStream *pStm,
774    REFIID riid,
775    void **ppv);
776void __RPC_STUB IMarshal_UnmarshalInterface_Stub(
777    IRpcStubBuffer* This,
778    IRpcChannelBuffer* pRpcChannelBuffer,
779    PRPC_MESSAGE pRpcMessage,
780    DWORD* pdwStubPhase);
781HRESULT STDMETHODCALLTYPE IMarshal_ReleaseMarshalData_Proxy(
782    IMarshal* This,
783    IStream *pStm);
784void __RPC_STUB IMarshal_ReleaseMarshalData_Stub(
785    IRpcStubBuffer* This,
786    IRpcChannelBuffer* pRpcChannelBuffer,
787    PRPC_MESSAGE pRpcMessage,
788    DWORD* pdwStubPhase);
789HRESULT STDMETHODCALLTYPE IMarshal_DisconnectObject_Proxy(
790    IMarshal* This,
791    DWORD dwReserved);
792void __RPC_STUB IMarshal_DisconnectObject_Stub(
793    IRpcStubBuffer* This,
794    IRpcChannelBuffer* pRpcChannelBuffer,
795    PRPC_MESSAGE pRpcMessage,
796    DWORD* pdwStubPhase);
797
798#endif  /* __IMarshal_INTERFACE_DEFINED__ */
799
800
801/*****************************************************************************
802 * INoMarshal interface
803 */
804#ifndef __INoMarshal_INTERFACE_DEFINED__
805#define __INoMarshal_INTERFACE_DEFINED__
806
807DEFINE_GUID(IID_INoMarshal, 0xecc8691b, 0xc1db, 0x4dc0, 0x85,0x5e, 0x65,0xf6,0xc5,0x51,0xaf,0x49);
808#if defined(__cplusplus) && !defined(CINTERFACE)
809MIDL_INTERFACE("ecc8691b-c1db-4dc0-855e-65f6c551af49")
810INoMarshal : public IUnknown
811{
812};
813#ifdef __CRT_UUID_DECL
814__CRT_UUID_DECL(INoMarshal, 0xecc8691b, 0xc1db, 0x4dc0, 0x85,0x5e, 0x65,0xf6,0xc5,0x51,0xaf,0x49)
815#endif
816#else
817typedef struct INoMarshalVtbl {
818    BEGIN_INTERFACE
819
820    /*** IUnknown methods ***/
821    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
822        INoMarshal* This,
823        REFIID riid,
824        void **ppvObject);
825
826    ULONG (STDMETHODCALLTYPE *AddRef)(
827        INoMarshal* This);
828
829    ULONG (STDMETHODCALLTYPE *Release)(
830        INoMarshal* This);
831
832    END_INTERFACE
833} INoMarshalVtbl;
834interface INoMarshal {
835    CONST_VTBL INoMarshalVtbl* lpVtbl;
836};
837
838#ifdef COBJMACROS
839#ifndef WIDL_C_INLINE_WRAPPERS
840/*** IUnknown methods ***/
841#define INoMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
842#define INoMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
843#define INoMarshal_Release(This) (This)->lpVtbl->Release(This)
844#else
845/*** IUnknown methods ***/
846static FORCEINLINE HRESULT INoMarshal_QueryInterface(INoMarshal* This,REFIID riid,void **ppvObject) {
847    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
848}
849static FORCEINLINE ULONG INoMarshal_AddRef(INoMarshal* This) {
850    return This->lpVtbl->AddRef(This);
851}
852static FORCEINLINE ULONG INoMarshal_Release(INoMarshal* This) {
853    return This->lpVtbl->Release(This);
854}
855#endif
856#endif
857
858#endif
859
860
861#endif  /* __INoMarshal_INTERFACE_DEFINED__ */
862
863
864/*****************************************************************************
865 * IAgileObject interface
866 */
867#ifndef __IAgileObject_INTERFACE_DEFINED__
868#define __IAgileObject_INTERFACE_DEFINED__
869
870DEFINE_GUID(IID_IAgileObject, 0x94ea2b94, 0xe9cc, 0x49e0, 0xc0,0xff, 0xee,0x64,0xca,0x8f,0x5b,0x90);
871#if defined(__cplusplus) && !defined(CINTERFACE)
872MIDL_INTERFACE("94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90")
873IAgileObject : public IUnknown
874{
875};
876#ifdef __CRT_UUID_DECL
877__CRT_UUID_DECL(IAgileObject, 0x94ea2b94, 0xe9cc, 0x49e0, 0xc0,0xff, 0xee,0x64,0xca,0x8f,0x5b,0x90)
878#endif
879#else
880typedef struct IAgileObjectVtbl {
881    BEGIN_INTERFACE
882
883    /*** IUnknown methods ***/
884    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
885        IAgileObject* This,
886        REFIID riid,
887        void **ppvObject);
888
889    ULONG (STDMETHODCALLTYPE *AddRef)(
890        IAgileObject* This);
891
892    ULONG (STDMETHODCALLTYPE *Release)(
893        IAgileObject* This);
894
895    END_INTERFACE
896} IAgileObjectVtbl;
897interface IAgileObject {
898    CONST_VTBL IAgileObjectVtbl* lpVtbl;
899};
900
901#ifdef COBJMACROS
902#ifndef WIDL_C_INLINE_WRAPPERS
903/*** IUnknown methods ***/
904#define IAgileObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
905#define IAgileObject_AddRef(This) (This)->lpVtbl->AddRef(This)
906#define IAgileObject_Release(This) (This)->lpVtbl->Release(This)
907#else
908/*** IUnknown methods ***/
909static FORCEINLINE HRESULT IAgileObject_QueryInterface(IAgileObject* This,REFIID riid,void **ppvObject) {
910    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
911}
912static FORCEINLINE ULONG IAgileObject_AddRef(IAgileObject* This) {
913    return This->lpVtbl->AddRef(This);
914}
915static FORCEINLINE ULONG IAgileObject_Release(IAgileObject* This) {
916    return This->lpVtbl->Release(This);
917}
918#endif
919#endif
920
921#endif
922
923
924#endif  /* __IAgileObject_INTERFACE_DEFINED__ */
925
926#endif
927
928#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
929/*****************************************************************************
930 * IMarshal2 interface
931 */
932#ifndef __IMarshal2_INTERFACE_DEFINED__
933#define __IMarshal2_INTERFACE_DEFINED__
934
935typedef IMarshal2 *LPMARSHAL2;
936DEFINE_GUID(IID_IMarshal2, 0x000001cf, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
937#if defined(__cplusplus) && !defined(CINTERFACE)
938MIDL_INTERFACE("000001cf-0000-0000-c000-000000000046")
939IMarshal2 : public IMarshal
940{
941};
942#ifdef __CRT_UUID_DECL
943__CRT_UUID_DECL(IMarshal2, 0x000001cf, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
944#endif
945#else
946typedef struct IMarshal2Vtbl {
947    BEGIN_INTERFACE
948
949    /*** IUnknown methods ***/
950    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
951        IMarshal2* This,
952        REFIID riid,
953        void **ppvObject);
954
955    ULONG (STDMETHODCALLTYPE *AddRef)(
956        IMarshal2* This);
957
958    ULONG (STDMETHODCALLTYPE *Release)(
959        IMarshal2* This);
960
961    /*** IMarshal methods ***/
962    HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
963        IMarshal2* This,
964        REFIID riid,
965        void *pv,
966        DWORD dwDestContext,
967        void *pvDestContext,
968        DWORD mshlflags,
969        CLSID *pCid);
970
971    HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
972        IMarshal2* This,
973        REFIID riid,
974        void *pv,
975        DWORD dwDestContext,
976        void *pvDestContext,
977        DWORD mshlflags,
978        DWORD *pSize);
979
980    HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
981        IMarshal2* This,
982        IStream *pStm,
983        REFIID riid,
984        void *pv,
985        DWORD dwDestContext,
986        void *pvDestContext,
987        DWORD mshlflags);
988
989    HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
990        IMarshal2* This,
991        IStream *pStm,
992        REFIID riid,
993        void **ppv);
994
995    HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
996        IMarshal2* This,
997        IStream *pStm);
998
999    HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
1000        IMarshal2* This,
1001        DWORD dwReserved);
1002
1003    END_INTERFACE
1004} IMarshal2Vtbl;
1005interface IMarshal2 {
1006    CONST_VTBL IMarshal2Vtbl* lpVtbl;
1007};
1008
1009#ifdef COBJMACROS
1010#ifndef WIDL_C_INLINE_WRAPPERS
1011/*** IUnknown methods ***/
1012#define IMarshal2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1013#define IMarshal2_AddRef(This) (This)->lpVtbl->AddRef(This)
1014#define IMarshal2_Release(This) (This)->lpVtbl->Release(This)
1015/*** IMarshal methods ***/
1016#define IMarshal2_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) (This)->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid)
1017#define IMarshal2_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) (This)->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize)
1018#define IMarshal2_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) (This)->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags)
1019#define IMarshal2_UnmarshalInterface(This,pStm,riid,ppv) (This)->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv)
1020#define IMarshal2_ReleaseMarshalData(This,pStm) (This)->lpVtbl->ReleaseMarshalData(This,pStm)
1021#define IMarshal2_DisconnectObject(This,dwReserved) (This)->lpVtbl->DisconnectObject(This,dwReserved)
1022#else
1023/*** IUnknown methods ***/
1024static FORCEINLINE HRESULT IMarshal2_QueryInterface(IMarshal2* This,REFIID riid,void **ppvObject) {
1025    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1026}
1027static FORCEINLINE ULONG IMarshal2_AddRef(IMarshal2* This) {
1028    return This->lpVtbl->AddRef(This);
1029}
1030static FORCEINLINE ULONG IMarshal2_Release(IMarshal2* This) {
1031    return This->lpVtbl->Release(This);
1032}
1033/*** IMarshal methods ***/
1034static FORCEINLINE HRESULT IMarshal2_GetUnmarshalClass(IMarshal2* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,CLSID *pCid) {
1035    return This->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid);
1036}
1037static FORCEINLINE HRESULT IMarshal2_GetMarshalSizeMax(IMarshal2* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,DWORD *pSize) {
1038    return This->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize);
1039}
1040static FORCEINLINE HRESULT IMarshal2_MarshalInterface(IMarshal2* This,IStream *pStm,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags) {
1041    return This->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags);
1042}
1043static FORCEINLINE HRESULT IMarshal2_UnmarshalInterface(IMarshal2* This,IStream *pStm,REFIID riid,void **ppv) {
1044    return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
1045}
1046static FORCEINLINE HRESULT IMarshal2_ReleaseMarshalData(IMarshal2* This,IStream *pStm) {
1047    return This->lpVtbl->ReleaseMarshalData(This,pStm);
1048}
1049static FORCEINLINE HRESULT IMarshal2_DisconnectObject(IMarshal2* This,DWORD dwReserved) {
1050    return This->lpVtbl->DisconnectObject(This,dwReserved);
1051}
1052#endif
1053#endif
1054
1055#endif
1056
1057
1058#endif  /* __IMarshal2_INTERFACE_DEFINED__ */
1059
1060
1061/*****************************************************************************
1062 * IMalloc interface
1063 */
1064#ifndef __IMalloc_INTERFACE_DEFINED__
1065#define __IMalloc_INTERFACE_DEFINED__
1066
1067typedef IMalloc *LPMALLOC;
1068
1069DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1070#if defined(__cplusplus) && !defined(CINTERFACE)
1071MIDL_INTERFACE("00000002-0000-0000-c000-000000000046")
1072IMalloc : public IUnknown
1073{
1074    virtual void * STDMETHODCALLTYPE Alloc(
1075        SIZE_T cb) = 0;
1076
1077    virtual void * STDMETHODCALLTYPE Realloc(
1078        void *pv,
1079        SIZE_T cb) = 0;
1080
1081    virtual void STDMETHODCALLTYPE Free(
1082        void *pv) = 0;
1083
1084    virtual SIZE_T STDMETHODCALLTYPE GetSize(
1085        void *pv) = 0;
1086
1087    virtual int STDMETHODCALLTYPE DidAlloc(
1088        void *pv) = 0;
1089
1090    virtual void STDMETHODCALLTYPE HeapMinimize(
1091        ) = 0;
1092
1093};
1094#ifdef __CRT_UUID_DECL
1095__CRT_UUID_DECL(IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1096#endif
1097#else
1098typedef struct IMallocVtbl {
1099    BEGIN_INTERFACE
1100
1101    /*** IUnknown methods ***/
1102    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1103        IMalloc* This,
1104        REFIID riid,
1105        void **ppvObject);
1106
1107    ULONG (STDMETHODCALLTYPE *AddRef)(
1108        IMalloc* This);
1109
1110    ULONG (STDMETHODCALLTYPE *Release)(
1111        IMalloc* This);
1112
1113    /*** IMalloc methods ***/
1114    void * (STDMETHODCALLTYPE *Alloc)(
1115        IMalloc* This,
1116        SIZE_T cb);
1117
1118    void * (STDMETHODCALLTYPE *Realloc)(
1119        IMalloc* This,
1120        void *pv,
1121        SIZE_T cb);
1122
1123    void (STDMETHODCALLTYPE *Free)(
1124        IMalloc* This,
1125        void *pv);
1126
1127    SIZE_T (STDMETHODCALLTYPE *GetSize)(
1128        IMalloc* This,
1129        void *pv);
1130
1131    int (STDMETHODCALLTYPE *DidAlloc)(
1132        IMalloc* This,
1133        void *pv);
1134
1135    void (STDMETHODCALLTYPE *HeapMinimize)(
1136        IMalloc* This);
1137
1138    END_INTERFACE
1139} IMallocVtbl;
1140interface IMalloc {
1141    CONST_VTBL IMallocVtbl* lpVtbl;
1142};
1143
1144#ifdef COBJMACROS
1145#ifndef WIDL_C_INLINE_WRAPPERS
1146/*** IUnknown methods ***/
1147#define IMalloc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1148#define IMalloc_AddRef(This) (This)->lpVtbl->AddRef(This)
1149#define IMalloc_Release(This) (This)->lpVtbl->Release(This)
1150/*** IMalloc methods ***/
1151#define IMalloc_Alloc(This,cb) (This)->lpVtbl->Alloc(This,cb)
1152#define IMalloc_Realloc(This,pv,cb) (This)->lpVtbl->Realloc(This,pv,cb)
1153#define IMalloc_Free(This,pv) (This)->lpVtbl->Free(This,pv)
1154#define IMalloc_GetSize(This,pv) (This)->lpVtbl->GetSize(This,pv)
1155#define IMalloc_DidAlloc(This,pv) (This)->lpVtbl->DidAlloc(This,pv)
1156#define IMalloc_HeapMinimize(This) (This)->lpVtbl->HeapMinimize(This)
1157#else
1158/*** IUnknown methods ***/
1159static FORCEINLINE HRESULT IMalloc_QueryInterface(IMalloc* This,REFIID riid,void **ppvObject) {
1160    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1161}
1162static FORCEINLINE ULONG IMalloc_AddRef(IMalloc* This) {
1163    return This->lpVtbl->AddRef(This);
1164}
1165static FORCEINLINE ULONG IMalloc_Release(IMalloc* This) {
1166    return This->lpVtbl->Release(This);
1167}
1168/*** IMalloc methods ***/
1169static FORCEINLINE void * IMalloc_Alloc(IMalloc* This,SIZE_T cb) {
1170    return This->lpVtbl->Alloc(This,cb);
1171}
1172static FORCEINLINE void * IMalloc_Realloc(IMalloc* This,void *pv,SIZE_T cb) {
1173    return This->lpVtbl->Realloc(This,pv,cb);
1174}
1175static FORCEINLINE void IMalloc_Free(IMalloc* This,void *pv) {
1176    This->lpVtbl->Free(This,pv);
1177}
1178static FORCEINLINE SIZE_T IMalloc_GetSize(IMalloc* This,void *pv) {
1179    return This->lpVtbl->GetSize(This,pv);
1180}
1181static FORCEINLINE int IMalloc_DidAlloc(IMalloc* This,void *pv) {
1182    return This->lpVtbl->DidAlloc(This,pv);
1183}
1184static FORCEINLINE void IMalloc_HeapMinimize(IMalloc* This) {
1185    This->lpVtbl->HeapMinimize(This);
1186}
1187#endif
1188#endif
1189
1190#endif
1191
1192void * STDMETHODCALLTYPE IMalloc_Alloc_Proxy(
1193    IMalloc* This,
1194    SIZE_T cb);
1195void __RPC_STUB IMalloc_Alloc_Stub(
1196    IRpcStubBuffer* This,
1197    IRpcChannelBuffer* pRpcChannelBuffer,
1198    PRPC_MESSAGE pRpcMessage,
1199    DWORD* pdwStubPhase);
1200void * STDMETHODCALLTYPE IMalloc_Realloc_Proxy(
1201    IMalloc* This,
1202    void *pv,
1203    SIZE_T cb);
1204void __RPC_STUB IMalloc_Realloc_Stub(
1205    IRpcStubBuffer* This,
1206    IRpcChannelBuffer* pRpcChannelBuffer,
1207    PRPC_MESSAGE pRpcMessage,
1208    DWORD* pdwStubPhase);
1209void STDMETHODCALLTYPE IMalloc_Free_Proxy(
1210    IMalloc* This,
1211    void *pv);
1212void __RPC_STUB IMalloc_Free_Stub(
1213    IRpcStubBuffer* This,
1214    IRpcChannelBuffer* pRpcChannelBuffer,
1215    PRPC_MESSAGE pRpcMessage,
1216    DWORD* pdwStubPhase);
1217SIZE_T STDMETHODCALLTYPE IMalloc_GetSize_Proxy(
1218    IMalloc* This,
1219    void *pv);
1220void __RPC_STUB IMalloc_GetSize_Stub(
1221    IRpcStubBuffer* This,
1222    IRpcChannelBuffer* pRpcChannelBuffer,
1223    PRPC_MESSAGE pRpcMessage,
1224    DWORD* pdwStubPhase);
1225int STDMETHODCALLTYPE IMalloc_DidAlloc_Proxy(
1226    IMalloc* This,
1227    void *pv);
1228void __RPC_STUB IMalloc_DidAlloc_Stub(
1229    IRpcStubBuffer* This,
1230    IRpcChannelBuffer* pRpcChannelBuffer,
1231    PRPC_MESSAGE pRpcMessage,
1232    DWORD* pdwStubPhase);
1233void STDMETHODCALLTYPE IMalloc_HeapMinimize_Proxy(
1234    IMalloc* This);
1235void __RPC_STUB IMalloc_HeapMinimize_Stub(
1236    IRpcStubBuffer* This,
1237    IRpcChannelBuffer* pRpcChannelBuffer,
1238    PRPC_MESSAGE pRpcMessage,
1239    DWORD* pdwStubPhase);
1240
1241#endif  /* __IMalloc_INTERFACE_DEFINED__ */
1242
1243
1244/*****************************************************************************
1245 * IStdMarshalInfo interface
1246 */
1247#ifndef __IStdMarshalInfo_INTERFACE_DEFINED__
1248#define __IStdMarshalInfo_INTERFACE_DEFINED__
1249
1250typedef IStdMarshalInfo *LPSTDMARSHALINFO;
1251
1252DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1253#if defined(__cplusplus) && !defined(CINTERFACE)
1254MIDL_INTERFACE("00000018-0000-0000-c000-000000000046")
1255IStdMarshalInfo : public IUnknown
1256{
1257    virtual HRESULT STDMETHODCALLTYPE GetClassForHandler(
1258        DWORD dwDestContext,
1259        void *pvDestContext,
1260        CLSID *pClsid) = 0;
1261
1262};
1263#ifdef __CRT_UUID_DECL
1264__CRT_UUID_DECL(IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1265#endif
1266#else
1267typedef struct IStdMarshalInfoVtbl {
1268    BEGIN_INTERFACE
1269
1270    /*** IUnknown methods ***/
1271    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1272        IStdMarshalInfo* This,
1273        REFIID riid,
1274        void **ppvObject);
1275
1276    ULONG (STDMETHODCALLTYPE *AddRef)(
1277        IStdMarshalInfo* This);
1278
1279    ULONG (STDMETHODCALLTYPE *Release)(
1280        IStdMarshalInfo* This);
1281
1282    /*** IStdMarshalInfo methods ***/
1283    HRESULT (STDMETHODCALLTYPE *GetClassForHandler)(
1284        IStdMarshalInfo* This,
1285        DWORD dwDestContext,
1286        void *pvDestContext,
1287        CLSID *pClsid);
1288
1289    END_INTERFACE
1290} IStdMarshalInfoVtbl;
1291interface IStdMarshalInfo {
1292    CONST_VTBL IStdMarshalInfoVtbl* lpVtbl;
1293};
1294
1295#ifdef COBJMACROS
1296#ifndef WIDL_C_INLINE_WRAPPERS
1297/*** IUnknown methods ***/
1298#define IStdMarshalInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1299#define IStdMarshalInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
1300#define IStdMarshalInfo_Release(This) (This)->lpVtbl->Release(This)
1301/*** IStdMarshalInfo methods ***/
1302#define IStdMarshalInfo_GetClassForHandler(This,dwDestContext,pvDestContext,pClsid) (This)->lpVtbl->GetClassForHandler(This,dwDestContext,pvDestContext,pClsid)
1303#else
1304/*** IUnknown methods ***/
1305static FORCEINLINE HRESULT IStdMarshalInfo_QueryInterface(IStdMarshalInfo* This,REFIID riid,void **ppvObject) {
1306    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1307}
1308static FORCEINLINE ULONG IStdMarshalInfo_AddRef(IStdMarshalInfo* This) {
1309    return This->lpVtbl->AddRef(This);
1310}
1311static FORCEINLINE ULONG IStdMarshalInfo_Release(IStdMarshalInfo* This) {
1312    return This->lpVtbl->Release(This);
1313}
1314/*** IStdMarshalInfo methods ***/
1315static FORCEINLINE HRESULT IStdMarshalInfo_GetClassForHandler(IStdMarshalInfo* This,DWORD dwDestContext,void *pvDestContext,CLSID *pClsid) {
1316    return This->lpVtbl->GetClassForHandler(This,dwDestContext,pvDestContext,pClsid);
1317}
1318#endif
1319#endif
1320
1321#endif
1322
1323HRESULT STDMETHODCALLTYPE IStdMarshalInfo_GetClassForHandler_Proxy(
1324    IStdMarshalInfo* This,
1325    DWORD dwDestContext,
1326    void *pvDestContext,
1327    CLSID *pClsid);
1328void __RPC_STUB IStdMarshalInfo_GetClassForHandler_Stub(
1329    IRpcStubBuffer* This,
1330    IRpcChannelBuffer* pRpcChannelBuffer,
1331    PRPC_MESSAGE pRpcMessage,
1332    DWORD* pdwStubPhase);
1333
1334#endif  /* __IStdMarshalInfo_INTERFACE_DEFINED__ */
1335
1336
1337/*****************************************************************************
1338 * IExternalConnection interface
1339 */
1340#ifndef __IExternalConnection_INTERFACE_DEFINED__
1341#define __IExternalConnection_INTERFACE_DEFINED__
1342
1343typedef IExternalConnection *LPEXTERNALCONNECTION;
1344
1345typedef enum tagEXTCONN {
1346    EXTCONN_STRONG = 0x1,
1347    EXTCONN_WEAK = 0x2,
1348    EXTCONN_CALLABLE = 0x4
1349} EXTCONN;
1350
1351DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1352#if defined(__cplusplus) && !defined(CINTERFACE)
1353MIDL_INTERFACE("00000019-0000-0000-c000-000000000046")
1354IExternalConnection : public IUnknown
1355{
1356    virtual DWORD STDMETHODCALLTYPE AddConnection(
1357        DWORD extconn,
1358        DWORD reserved) = 0;
1359
1360    virtual DWORD STDMETHODCALLTYPE ReleaseConnection(
1361        DWORD extconn,
1362        DWORD reserved,
1363        WINBOOL fLastReleaseCloses) = 0;
1364
1365};
1366#ifdef __CRT_UUID_DECL
1367__CRT_UUID_DECL(IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1368#endif
1369#else
1370typedef struct IExternalConnectionVtbl {
1371    BEGIN_INTERFACE
1372
1373    /*** IUnknown methods ***/
1374    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1375        IExternalConnection* This,
1376        REFIID riid,
1377        void **ppvObject);
1378
1379    ULONG (STDMETHODCALLTYPE *AddRef)(
1380        IExternalConnection* This);
1381
1382    ULONG (STDMETHODCALLTYPE *Release)(
1383        IExternalConnection* This);
1384
1385    /*** IExternalConnection methods ***/
1386    DWORD (STDMETHODCALLTYPE *AddConnection)(
1387        IExternalConnection* This,
1388        DWORD extconn,
1389        DWORD reserved);
1390
1391    DWORD (STDMETHODCALLTYPE *ReleaseConnection)(
1392        IExternalConnection* This,
1393        DWORD extconn,
1394        DWORD reserved,
1395        WINBOOL fLastReleaseCloses);
1396
1397    END_INTERFACE
1398} IExternalConnectionVtbl;
1399interface IExternalConnection {
1400    CONST_VTBL IExternalConnectionVtbl* lpVtbl;
1401};
1402
1403#ifdef COBJMACROS
1404#ifndef WIDL_C_INLINE_WRAPPERS
1405/*** IUnknown methods ***/
1406#define IExternalConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1407#define IExternalConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
1408#define IExternalConnection_Release(This) (This)->lpVtbl->Release(This)
1409/*** IExternalConnection methods ***/
1410#define IExternalConnection_AddConnection(This,extconn,reserved) (This)->lpVtbl->AddConnection(This,extconn,reserved)
1411#define IExternalConnection_ReleaseConnection(This,extconn,reserved,fLastReleaseCloses) (This)->lpVtbl->ReleaseConnection(This,extconn,reserved,fLastReleaseCloses)
1412#else
1413/*** IUnknown methods ***/
1414static FORCEINLINE HRESULT IExternalConnection_QueryInterface(IExternalConnection* This,REFIID riid,void **ppvObject) {
1415    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1416}
1417static FORCEINLINE ULONG IExternalConnection_AddRef(IExternalConnection* This) {
1418    return This->lpVtbl->AddRef(This);
1419}
1420static FORCEINLINE ULONG IExternalConnection_Release(IExternalConnection* This) {
1421    return This->lpVtbl->Release(This);
1422}
1423/*** IExternalConnection methods ***/
1424static FORCEINLINE DWORD IExternalConnection_AddConnection(IExternalConnection* This,DWORD extconn,DWORD reserved) {
1425    return This->lpVtbl->AddConnection(This,extconn,reserved);
1426}
1427static FORCEINLINE DWORD IExternalConnection_ReleaseConnection(IExternalConnection* This,DWORD extconn,DWORD reserved,WINBOOL fLastReleaseCloses) {
1428    return This->lpVtbl->ReleaseConnection(This,extconn,reserved,fLastReleaseCloses);
1429}
1430#endif
1431#endif
1432
1433#endif
1434
1435DWORD STDMETHODCALLTYPE IExternalConnection_AddConnection_Proxy(
1436    IExternalConnection* This,
1437    DWORD extconn,
1438    DWORD reserved);
1439void __RPC_STUB IExternalConnection_AddConnection_Stub(
1440    IRpcStubBuffer* This,
1441    IRpcChannelBuffer* pRpcChannelBuffer,
1442    PRPC_MESSAGE pRpcMessage,
1443    DWORD* pdwStubPhase);
1444DWORD STDMETHODCALLTYPE IExternalConnection_ReleaseConnection_Proxy(
1445    IExternalConnection* This,
1446    DWORD extconn,
1447    DWORD reserved,
1448    WINBOOL fLastReleaseCloses);
1449void __RPC_STUB IExternalConnection_ReleaseConnection_Stub(
1450    IRpcStubBuffer* This,
1451    IRpcChannelBuffer* pRpcChannelBuffer,
1452    PRPC_MESSAGE pRpcMessage,
1453    DWORD* pdwStubPhase);
1454
1455#endif  /* __IExternalConnection_INTERFACE_DEFINED__ */
1456
1457
1458typedef IMultiQI *LPMULTIQI;
1459#endif
1460
1461#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
1462typedef struct tagMULTI_QI {
1463    const IID *pIID;
1464    IUnknown *pItf;
1465    HRESULT hr;
1466} MULTI_QI;
1467
1468/*****************************************************************************
1469 * IMultiQI interface
1470 */
1471#ifndef __IMultiQI_INTERFACE_DEFINED__
1472#define __IMultiQI_INTERFACE_DEFINED__
1473
1474DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1475#if defined(__cplusplus) && !defined(CINTERFACE)
1476MIDL_INTERFACE("00000020-0000-0000-c000-000000000046")
1477IMultiQI : public IUnknown
1478{
1479    virtual HRESULT STDMETHODCALLTYPE QueryMultipleInterfaces(
1480        ULONG cMQIs,
1481        MULTI_QI *pMQIs) = 0;
1482
1483};
1484#ifdef __CRT_UUID_DECL
1485__CRT_UUID_DECL(IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1486#endif
1487#else
1488typedef struct IMultiQIVtbl {
1489    BEGIN_INTERFACE
1490
1491    /*** IUnknown methods ***/
1492    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1493        IMultiQI* This,
1494        REFIID riid,
1495        void **ppvObject);
1496
1497    ULONG (STDMETHODCALLTYPE *AddRef)(
1498        IMultiQI* This);
1499
1500    ULONG (STDMETHODCALLTYPE *Release)(
1501        IMultiQI* This);
1502
1503    /*** IMultiQI methods ***/
1504    HRESULT (STDMETHODCALLTYPE *QueryMultipleInterfaces)(
1505        IMultiQI* This,
1506        ULONG cMQIs,
1507        MULTI_QI *pMQIs);
1508
1509    END_INTERFACE
1510} IMultiQIVtbl;
1511interface IMultiQI {
1512    CONST_VTBL IMultiQIVtbl* lpVtbl;
1513};
1514
1515#ifdef COBJMACROS
1516#ifndef WIDL_C_INLINE_WRAPPERS
1517/*** IUnknown methods ***/
1518#define IMultiQI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1519#define IMultiQI_AddRef(This) (This)->lpVtbl->AddRef(This)
1520#define IMultiQI_Release(This) (This)->lpVtbl->Release(This)
1521/*** IMultiQI methods ***/
1522#define IMultiQI_QueryMultipleInterfaces(This,cMQIs,pMQIs) (This)->lpVtbl->QueryMultipleInterfaces(This,cMQIs,pMQIs)
1523#else
1524/*** IUnknown methods ***/
1525static FORCEINLINE HRESULT IMultiQI_QueryInterface(IMultiQI* This,REFIID riid,void **ppvObject) {
1526    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1527}
1528static FORCEINLINE ULONG IMultiQI_AddRef(IMultiQI* This) {
1529    return This->lpVtbl->AddRef(This);
1530}
1531static FORCEINLINE ULONG IMultiQI_Release(IMultiQI* This) {
1532    return This->lpVtbl->Release(This);
1533}
1534/*** IMultiQI methods ***/
1535static FORCEINLINE HRESULT IMultiQI_QueryMultipleInterfaces(IMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
1536    return This->lpVtbl->QueryMultipleInterfaces(This,cMQIs,pMQIs);
1537}
1538#endif
1539#endif
1540
1541#endif
1542
1543HRESULT STDMETHODCALLTYPE IMultiQI_QueryMultipleInterfaces_Proxy(
1544    IMultiQI* This,
1545    ULONG cMQIs,
1546    MULTI_QI *pMQIs);
1547void __RPC_STUB IMultiQI_QueryMultipleInterfaces_Stub(
1548    IRpcStubBuffer* This,
1549    IRpcChannelBuffer* pRpcChannelBuffer,
1550    PRPC_MESSAGE pRpcMessage,
1551    DWORD* pdwStubPhase);
1552
1553#endif  /* __IMultiQI_INTERFACE_DEFINED__ */
1554
1555/*****************************************************************************
1556 * AsyncIMultiQI interface
1557 */
1558#ifndef __AsyncIMultiQI_INTERFACE_DEFINED__
1559#define __AsyncIMultiQI_INTERFACE_DEFINED__
1560
1561DEFINE_GUID(IID_AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1562#if defined(__cplusplus) && !defined(CINTERFACE)
1563MIDL_INTERFACE("000e0020-0000-0000-c000-000000000046")
1564AsyncIMultiQI : public IUnknown
1565{
1566    virtual void STDMETHODCALLTYPE Begin_QueryMultipleInterfaces(
1567        ULONG cMQIs,
1568        MULTI_QI *pMQIs) = 0;
1569
1570    virtual HRESULT STDMETHODCALLTYPE Finish_QueryMultipleInterfaces(
1571        MULTI_QI *pMQIs) = 0;
1572
1573};
1574#ifdef __CRT_UUID_DECL
1575__CRT_UUID_DECL(AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1576#endif
1577#else
1578typedef struct AsyncIMultiQIVtbl {
1579    BEGIN_INTERFACE
1580
1581    /*** IUnknown methods ***/
1582    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1583        AsyncIMultiQI* This,
1584        REFIID riid,
1585        void **ppvObject);
1586
1587    ULONG (STDMETHODCALLTYPE *AddRef)(
1588        AsyncIMultiQI* This);
1589
1590    ULONG (STDMETHODCALLTYPE *Release)(
1591        AsyncIMultiQI* This);
1592
1593    /*** IMultiQI methods ***/
1594    void (STDMETHODCALLTYPE *Begin_QueryMultipleInterfaces)(
1595        AsyncIMultiQI* This,
1596        ULONG cMQIs,
1597        MULTI_QI *pMQIs);
1598
1599    HRESULT (STDMETHODCALLTYPE *Finish_QueryMultipleInterfaces)(
1600        AsyncIMultiQI* This,
1601        MULTI_QI *pMQIs);
1602
1603    END_INTERFACE
1604} AsyncIMultiQIVtbl;
1605interface AsyncIMultiQI {
1606    CONST_VTBL AsyncIMultiQIVtbl* lpVtbl;
1607};
1608
1609#ifdef COBJMACROS
1610#ifndef WIDL_C_INLINE_WRAPPERS
1611/*** IUnknown methods ***/
1612#define AsyncIMultiQI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1613#define AsyncIMultiQI_AddRef(This) (This)->lpVtbl->AddRef(This)
1614#define AsyncIMultiQI_Release(This) (This)->lpVtbl->Release(This)
1615/*** IMultiQI methods ***/
1616#define AsyncIMultiQI_Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs) (This)->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs)
1617#define AsyncIMultiQI_Finish_QueryMultipleInterfaces(This,pMQIs) (This)->lpVtbl->Finish_QueryMultipleInterfaces(This,pMQIs)
1618#else
1619/*** IUnknown methods ***/
1620static FORCEINLINE HRESULT AsyncIMultiQI_QueryInterface(AsyncIMultiQI* This,REFIID riid,void **ppvObject) {
1621    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1622}
1623static FORCEINLINE ULONG AsyncIMultiQI_AddRef(AsyncIMultiQI* This) {
1624    return This->lpVtbl->AddRef(This);
1625}
1626static FORCEINLINE ULONG AsyncIMultiQI_Release(AsyncIMultiQI* This) {
1627    return This->lpVtbl->Release(This);
1628}
1629/*** IMultiQI methods ***/
1630static FORCEINLINE void Begin_AsyncIMultiQI_QueryMultipleInterfaces(AsyncIMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
1631    This->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs);
1632}
1633static FORCEINLINE HRESULT Finish_AsyncIMultiQI_QueryMultipleInterfaces(AsyncIMultiQI* This,MULTI_QI *pMQIs) {
1634    return This->lpVtbl->Finish_QueryMultipleInterfaces(This);
1635}
1636#endif
1637#endif
1638
1639#endif
1640
1641HRESULT STDMETHODCALLTYPE AsyncIMultiQI_Begin_QueryMultipleInterfaces_Proxy(
1642    IMultiQI* This,
1643    ULONG cMQIs,
1644    MULTI_QI *pMQIs);
1645void __RPC_STUB AsyncIMultiQI_Begin_QueryMultipleInterfaces_Stub(
1646    IRpcStubBuffer* This,
1647    IRpcChannelBuffer* pRpcChannelBuffer,
1648    PRPC_MESSAGE pRpcMessage,
1649    DWORD* pdwStubPhase);
1650HRESULT STDMETHODCALLTYPE AsyncIMultiQI_Finish_QueryMultipleInterfaces_Proxy(
1651    IMultiQI* This,
1652    ULONG cMQIs,
1653    MULTI_QI *pMQIs);
1654void __RPC_STUB AsyncIMultiQI_Finish_QueryMultipleInterfaces_Stub(
1655    IRpcStubBuffer* This,
1656    IRpcChannelBuffer* pRpcChannelBuffer,
1657    PRPC_MESSAGE pRpcMessage,
1658    DWORD* pdwStubPhase);
1659
1660#endif  /* __AsyncIMultiQI_INTERFACE_DEFINED__ */
1661
1662#endif
1663
1664#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
1665/*****************************************************************************
1666 * IInternalUnknown interface
1667 */
1668#ifndef __IInternalUnknown_INTERFACE_DEFINED__
1669#define __IInternalUnknown_INTERFACE_DEFINED__
1670
1671DEFINE_GUID(IID_IInternalUnknown, 0x00000021, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1672#if defined(__cplusplus) && !defined(CINTERFACE)
1673MIDL_INTERFACE("00000021-0000-0000-c000-000000000046")
1674IInternalUnknown : public IUnknown
1675{
1676    virtual HRESULT STDMETHODCALLTYPE QueryInternalInterface(
1677        REFIID riid,
1678        void **ppv) = 0;
1679
1680};
1681#ifdef __CRT_UUID_DECL
1682__CRT_UUID_DECL(IInternalUnknown, 0x00000021, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1683#endif
1684#else
1685typedef struct IInternalUnknownVtbl {
1686    BEGIN_INTERFACE
1687
1688    /*** IUnknown methods ***/
1689    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1690        IInternalUnknown* This,
1691        REFIID riid,
1692        void **ppvObject);
1693
1694    ULONG (STDMETHODCALLTYPE *AddRef)(
1695        IInternalUnknown* This);
1696
1697    ULONG (STDMETHODCALLTYPE *Release)(
1698        IInternalUnknown* This);
1699
1700    /*** IInternalUnknown methods ***/
1701    HRESULT (STDMETHODCALLTYPE *QueryInternalInterface)(
1702        IInternalUnknown* This,
1703        REFIID riid,
1704        void **ppv);
1705
1706    END_INTERFACE
1707} IInternalUnknownVtbl;
1708interface IInternalUnknown {
1709    CONST_VTBL IInternalUnknownVtbl* lpVtbl;
1710};
1711
1712#ifdef COBJMACROS
1713#ifndef WIDL_C_INLINE_WRAPPERS
1714/*** IUnknown methods ***/
1715#define IInternalUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1716#define IInternalUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
1717#define IInternalUnknown_Release(This) (This)->lpVtbl->Release(This)
1718/*** IInternalUnknown methods ***/
1719#define IInternalUnknown_QueryInternalInterface(This,riid,ppv) (This)->lpVtbl->QueryInternalInterface(This,riid,ppv)
1720#else
1721/*** IUnknown methods ***/
1722static FORCEINLINE HRESULT IInternalUnknown_QueryInterface(IInternalUnknown* This,REFIID riid,void **ppvObject) {
1723    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1724}
1725static FORCEINLINE ULONG IInternalUnknown_AddRef(IInternalUnknown* This) {
1726    return This->lpVtbl->AddRef(This);
1727}
1728static FORCEINLINE ULONG IInternalUnknown_Release(IInternalUnknown* This) {
1729    return This->lpVtbl->Release(This);
1730}
1731/*** IInternalUnknown methods ***/
1732static FORCEINLINE HRESULT IInternalUnknown_QueryInternalInterface(IInternalUnknown* This,REFIID riid,void **ppv) {
1733    return This->lpVtbl->QueryInternalInterface(This,riid,ppv);
1734}
1735#endif
1736#endif
1737
1738#endif
1739
1740HRESULT STDMETHODCALLTYPE IInternalUnknown_QueryInternalInterface_Proxy(
1741    IInternalUnknown* This,
1742    REFIID riid,
1743    void **ppv);
1744void __RPC_STUB IInternalUnknown_QueryInternalInterface_Stub(
1745    IRpcStubBuffer* This,
1746    IRpcChannelBuffer* pRpcChannelBuffer,
1747    PRPC_MESSAGE pRpcMessage,
1748    DWORD* pdwStubPhase);
1749
1750#endif  /* __IInternalUnknown_INTERFACE_DEFINED__ */
1751
1752#endif
1753
1754#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
1755/*****************************************************************************
1756 * IEnumUnknown interface
1757 */
1758#ifndef __IEnumUnknown_INTERFACE_DEFINED__
1759#define __IEnumUnknown_INTERFACE_DEFINED__
1760
1761typedef IEnumUnknown *LPENUMUNKNOWN;
1762
1763DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1764#if defined(__cplusplus) && !defined(CINTERFACE)
1765MIDL_INTERFACE("00000100-0000-0000-c000-000000000046")
1766IEnumUnknown : public IUnknown
1767{
1768    virtual HRESULT STDMETHODCALLTYPE Next(
1769        ULONG celt,
1770        IUnknown **rgelt,
1771        ULONG *pceltFetched) = 0;
1772
1773    virtual HRESULT STDMETHODCALLTYPE Skip(
1774        ULONG celt) = 0;
1775
1776    virtual HRESULT STDMETHODCALLTYPE Reset(
1777        ) = 0;
1778
1779    virtual HRESULT STDMETHODCALLTYPE Clone(
1780        IEnumUnknown **ppenum) = 0;
1781
1782};
1783#ifdef __CRT_UUID_DECL
1784__CRT_UUID_DECL(IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1785#endif
1786#else
1787typedef struct IEnumUnknownVtbl {
1788    BEGIN_INTERFACE
1789
1790    /*** IUnknown methods ***/
1791    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1792        IEnumUnknown* This,
1793        REFIID riid,
1794        void **ppvObject);
1795
1796    ULONG (STDMETHODCALLTYPE *AddRef)(
1797        IEnumUnknown* This);
1798
1799    ULONG (STDMETHODCALLTYPE *Release)(
1800        IEnumUnknown* This);
1801
1802    /*** IEnumUnknown methods ***/
1803    HRESULT (STDMETHODCALLTYPE *Next)(
1804        IEnumUnknown* This,
1805        ULONG celt,
1806        IUnknown **rgelt,
1807        ULONG *pceltFetched);
1808
1809    HRESULT (STDMETHODCALLTYPE *Skip)(
1810        IEnumUnknown* This,
1811        ULONG celt);
1812
1813    HRESULT (STDMETHODCALLTYPE *Reset)(
1814        IEnumUnknown* This);
1815
1816    HRESULT (STDMETHODCALLTYPE *Clone)(
1817        IEnumUnknown* This,
1818        IEnumUnknown **ppenum);
1819
1820    END_INTERFACE
1821} IEnumUnknownVtbl;
1822interface IEnumUnknown {
1823    CONST_VTBL IEnumUnknownVtbl* lpVtbl;
1824};
1825
1826#ifdef COBJMACROS
1827#ifndef WIDL_C_INLINE_WRAPPERS
1828/*** IUnknown methods ***/
1829#define IEnumUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1830#define IEnumUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
1831#define IEnumUnknown_Release(This) (This)->lpVtbl->Release(This)
1832/*** IEnumUnknown methods ***/
1833#define IEnumUnknown_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
1834#define IEnumUnknown_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
1835#define IEnumUnknown_Reset(This) (This)->lpVtbl->Reset(This)
1836#define IEnumUnknown_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
1837#else
1838/*** IUnknown methods ***/
1839static FORCEINLINE HRESULT IEnumUnknown_QueryInterface(IEnumUnknown* This,REFIID riid,void **ppvObject) {
1840    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1841}
1842static FORCEINLINE ULONG IEnumUnknown_AddRef(IEnumUnknown* This) {
1843    return This->lpVtbl->AddRef(This);
1844}
1845static FORCEINLINE ULONG IEnumUnknown_Release(IEnumUnknown* This) {
1846    return This->lpVtbl->Release(This);
1847}
1848/*** IEnumUnknown methods ***/
1849static FORCEINLINE HRESULT IEnumUnknown_Next(IEnumUnknown* This,ULONG celt,IUnknown **rgelt,ULONG *pceltFetched) {
1850    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
1851}
1852static FORCEINLINE HRESULT IEnumUnknown_Skip(IEnumUnknown* This,ULONG celt) {
1853    return This->lpVtbl->Skip(This,celt);
1854}
1855static FORCEINLINE HRESULT IEnumUnknown_Reset(IEnumUnknown* This) {
1856    return This->lpVtbl->Reset(This);
1857}
1858static FORCEINLINE HRESULT IEnumUnknown_Clone(IEnumUnknown* This,IEnumUnknown **ppenum) {
1859    return This->lpVtbl->Clone(This,ppenum);
1860}
1861#endif
1862#endif
1863
1864#endif
1865
1866HRESULT STDMETHODCALLTYPE IEnumUnknown_RemoteNext_Proxy(
1867    IEnumUnknown* This,
1868    ULONG celt,
1869    IUnknown **rgelt,
1870    ULONG *pceltFetched);
1871void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
1872    IRpcStubBuffer* This,
1873    IRpcChannelBuffer* pRpcChannelBuffer,
1874    PRPC_MESSAGE pRpcMessage,
1875    DWORD* pdwStubPhase);
1876HRESULT STDMETHODCALLTYPE IEnumUnknown_Skip_Proxy(
1877    IEnumUnknown* This,
1878    ULONG celt);
1879void __RPC_STUB IEnumUnknown_Skip_Stub(
1880    IRpcStubBuffer* This,
1881    IRpcChannelBuffer* pRpcChannelBuffer,
1882    PRPC_MESSAGE pRpcMessage,
1883    DWORD* pdwStubPhase);
1884HRESULT STDMETHODCALLTYPE IEnumUnknown_Reset_Proxy(
1885    IEnumUnknown* This);
1886void __RPC_STUB IEnumUnknown_Reset_Stub(
1887    IRpcStubBuffer* This,
1888    IRpcChannelBuffer* pRpcChannelBuffer,
1889    PRPC_MESSAGE pRpcMessage,
1890    DWORD* pdwStubPhase);
1891HRESULT STDMETHODCALLTYPE IEnumUnknown_Clone_Proxy(
1892    IEnumUnknown* This,
1893    IEnumUnknown **ppenum);
1894void __RPC_STUB IEnumUnknown_Clone_Stub(
1895    IRpcStubBuffer* This,
1896    IRpcChannelBuffer* pRpcChannelBuffer,
1897    PRPC_MESSAGE pRpcMessage,
1898    DWORD* pdwStubPhase);
1899HRESULT CALLBACK IEnumUnknown_Next_Proxy(
1900    IEnumUnknown* This,
1901    ULONG celt,
1902    IUnknown **rgelt,
1903    ULONG *pceltFetched);
1904HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
1905    IEnumUnknown* This,
1906    ULONG celt,
1907    IUnknown **rgelt,
1908    ULONG *pceltFetched);
1909
1910#endif  /* __IEnumUnknown_INTERFACE_DEFINED__ */
1911
1912
1913/*****************************************************************************
1914 * IEnumString interface
1915 */
1916#ifndef __IEnumString_INTERFACE_DEFINED__
1917#define __IEnumString_INTERFACE_DEFINED__
1918
1919typedef IEnumString *LPENUMSTRING;
1920
1921DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1922#if defined(__cplusplus) && !defined(CINTERFACE)
1923MIDL_INTERFACE("00000101-0000-0000-c000-000000000046")
1924IEnumString : public IUnknown
1925{
1926    virtual HRESULT STDMETHODCALLTYPE Next(
1927        ULONG celt,
1928        LPOLESTR *rgelt,
1929        ULONG *pceltFetched) = 0;
1930
1931    virtual HRESULT STDMETHODCALLTYPE Skip(
1932        ULONG celt) = 0;
1933
1934    virtual HRESULT STDMETHODCALLTYPE Reset(
1935        ) = 0;
1936
1937    virtual HRESULT STDMETHODCALLTYPE Clone(
1938        IEnumString **ppenum) = 0;
1939
1940};
1941#ifdef __CRT_UUID_DECL
1942__CRT_UUID_DECL(IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1943#endif
1944#else
1945typedef struct IEnumStringVtbl {
1946    BEGIN_INTERFACE
1947
1948    /*** IUnknown methods ***/
1949    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1950        IEnumString* This,
1951        REFIID riid,
1952        void **ppvObject);
1953
1954    ULONG (STDMETHODCALLTYPE *AddRef)(
1955        IEnumString* This);
1956
1957    ULONG (STDMETHODCALLTYPE *Release)(
1958        IEnumString* This);
1959
1960    /*** IEnumString methods ***/
1961    HRESULT (STDMETHODCALLTYPE *Next)(
1962        IEnumString* This,
1963        ULONG celt,
1964        LPOLESTR *rgelt,
1965        ULONG *pceltFetched);
1966
1967    HRESULT (STDMETHODCALLTYPE *Skip)(
1968        IEnumString* This,
1969        ULONG celt);
1970
1971    HRESULT (STDMETHODCALLTYPE *Reset)(
1972        IEnumString* This);
1973
1974    HRESULT (STDMETHODCALLTYPE *Clone)(
1975        IEnumString* This,
1976        IEnumString **ppenum);
1977
1978    END_INTERFACE
1979} IEnumStringVtbl;
1980interface IEnumString {
1981    CONST_VTBL IEnumStringVtbl* lpVtbl;
1982};
1983
1984#ifdef COBJMACROS
1985#ifndef WIDL_C_INLINE_WRAPPERS
1986/*** IUnknown methods ***/
1987#define IEnumString_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1988#define IEnumString_AddRef(This) (This)->lpVtbl->AddRef(This)
1989#define IEnumString_Release(This) (This)->lpVtbl->Release(This)
1990/*** IEnumString methods ***/
1991#define IEnumString_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
1992#define IEnumString_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
1993#define IEnumString_Reset(This) (This)->lpVtbl->Reset(This)
1994#define IEnumString_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
1995#else
1996/*** IUnknown methods ***/
1997static FORCEINLINE HRESULT IEnumString_QueryInterface(IEnumString* This,REFIID riid,void **ppvObject) {
1998    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1999}
2000static FORCEINLINE ULONG IEnumString_AddRef(IEnumString* This) {
2001    return This->lpVtbl->AddRef(This);
2002}
2003static FORCEINLINE ULONG IEnumString_Release(IEnumString* This) {
2004    return This->lpVtbl->Release(This);
2005}
2006/*** IEnumString methods ***/
2007static FORCEINLINE HRESULT IEnumString_Next(IEnumString* This,ULONG celt,LPOLESTR *rgelt,ULONG *pceltFetched) {
2008    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
2009}
2010static FORCEINLINE HRESULT IEnumString_Skip(IEnumString* This,ULONG celt) {
2011    return This->lpVtbl->Skip(This,celt);
2012}
2013static FORCEINLINE HRESULT IEnumString_Reset(IEnumString* This) {
2014    return This->lpVtbl->Reset(This);
2015}
2016static FORCEINLINE HRESULT IEnumString_Clone(IEnumString* This,IEnumString **ppenum) {
2017    return This->lpVtbl->Clone(This,ppenum);
2018}
2019#endif
2020#endif
2021
2022#endif
2023
2024HRESULT STDMETHODCALLTYPE IEnumString_RemoteNext_Proxy(
2025    IEnumString* This,
2026    ULONG celt,
2027    LPOLESTR *rgelt,
2028    ULONG *pceltFetched);
2029void __RPC_STUB IEnumString_RemoteNext_Stub(
2030    IRpcStubBuffer* This,
2031    IRpcChannelBuffer* pRpcChannelBuffer,
2032    PRPC_MESSAGE pRpcMessage,
2033    DWORD* pdwStubPhase);
2034HRESULT STDMETHODCALLTYPE IEnumString_Skip_Proxy(
2035    IEnumString* This,
2036    ULONG celt);
2037void __RPC_STUB IEnumString_Skip_Stub(
2038    IRpcStubBuffer* This,
2039    IRpcChannelBuffer* pRpcChannelBuffer,
2040    PRPC_MESSAGE pRpcMessage,
2041    DWORD* pdwStubPhase);
2042HRESULT STDMETHODCALLTYPE IEnumString_Reset_Proxy(
2043    IEnumString* This);
2044void __RPC_STUB IEnumString_Reset_Stub(
2045    IRpcStubBuffer* This,
2046    IRpcChannelBuffer* pRpcChannelBuffer,
2047    PRPC_MESSAGE pRpcMessage,
2048    DWORD* pdwStubPhase);
2049HRESULT STDMETHODCALLTYPE IEnumString_Clone_Proxy(
2050    IEnumString* This,
2051    IEnumString **ppenum);
2052void __RPC_STUB IEnumString_Clone_Stub(
2053    IRpcStubBuffer* This,
2054    IRpcChannelBuffer* pRpcChannelBuffer,
2055    PRPC_MESSAGE pRpcMessage,
2056    DWORD* pdwStubPhase);
2057HRESULT CALLBACK IEnumString_Next_Proxy(
2058    IEnumString* This,
2059    ULONG celt,
2060    LPOLESTR *rgelt,
2061    ULONG *pceltFetched);
2062HRESULT __RPC_STUB IEnumString_Next_Stub(
2063    IEnumString* This,
2064    ULONG celt,
2065    LPOLESTR *rgelt,
2066    ULONG *pceltFetched);
2067
2068#endif  /* __IEnumString_INTERFACE_DEFINED__ */
2069
2070
2071/*****************************************************************************
2072 * ISequentialStream interface
2073 */
2074#ifndef __ISequentialStream_INTERFACE_DEFINED__
2075#define __ISequentialStream_INTERFACE_DEFINED__
2076
2077DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
2078#if defined(__cplusplus) && !defined(CINTERFACE)
2079MIDL_INTERFACE("0c733a30-2a1c-11ce-ade5-00aa0044773d")
2080ISequentialStream : public IUnknown
2081{
2082    virtual HRESULT STDMETHODCALLTYPE Read(
2083        void *pv,
2084        ULONG cb,
2085        ULONG *pcbRead) = 0;
2086
2087    virtual HRESULT STDMETHODCALLTYPE Write(
2088        const void *pv,
2089        ULONG cb,
2090        ULONG *pcbWritten) = 0;
2091
2092};
2093#ifdef __CRT_UUID_DECL
2094__CRT_UUID_DECL(ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d)
2095#endif
2096#else
2097typedef struct ISequentialStreamVtbl {
2098    BEGIN_INTERFACE
2099
2100    /*** IUnknown methods ***/
2101    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2102        ISequentialStream* This,
2103        REFIID riid,
2104        void **ppvObject);
2105
2106    ULONG (STDMETHODCALLTYPE *AddRef)(
2107        ISequentialStream* This);
2108
2109    ULONG (STDMETHODCALLTYPE *Release)(
2110        ISequentialStream* This);
2111
2112    /*** ISequentialStream methods ***/
2113    HRESULT (STDMETHODCALLTYPE *Read)(
2114        ISequentialStream* This,
2115        void *pv,
2116        ULONG cb,
2117        ULONG *pcbRead);
2118
2119    HRESULT (STDMETHODCALLTYPE *Write)(
2120        ISequentialStream* This,
2121        const void *pv,
2122        ULONG cb,
2123        ULONG *pcbWritten);
2124
2125    END_INTERFACE
2126} ISequentialStreamVtbl;
2127interface ISequentialStream {
2128    CONST_VTBL ISequentialStreamVtbl* lpVtbl;
2129};
2130
2131#ifdef COBJMACROS
2132#ifndef WIDL_C_INLINE_WRAPPERS
2133/*** IUnknown methods ***/
2134#define ISequentialStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2135#define ISequentialStream_AddRef(This) (This)->lpVtbl->AddRef(This)
2136#define ISequentialStream_Release(This) (This)->lpVtbl->Release(This)
2137/*** ISequentialStream methods ***/
2138#define ISequentialStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
2139#define ISequentialStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
2140#else
2141/*** IUnknown methods ***/
2142static FORCEINLINE HRESULT ISequentialStream_QueryInterface(ISequentialStream* This,REFIID riid,void **ppvObject) {
2143    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2144}
2145static FORCEINLINE ULONG ISequentialStream_AddRef(ISequentialStream* This) {
2146    return This->lpVtbl->AddRef(This);
2147}
2148static FORCEINLINE ULONG ISequentialStream_Release(ISequentialStream* This) {
2149    return This->lpVtbl->Release(This);
2150}
2151/*** ISequentialStream methods ***/
2152static FORCEINLINE HRESULT ISequentialStream_Read(ISequentialStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
2153    return This->lpVtbl->Read(This,pv,cb,pcbRead);
2154}
2155static FORCEINLINE HRESULT ISequentialStream_Write(ISequentialStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
2156    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
2157}
2158#endif
2159#endif
2160
2161#endif
2162
2163HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteRead_Proxy(
2164    ISequentialStream* This,
2165    byte *pv,
2166    ULONG cb,
2167    ULONG *pcbRead);
2168void __RPC_STUB ISequentialStream_RemoteRead_Stub(
2169    IRpcStubBuffer* This,
2170    IRpcChannelBuffer* pRpcChannelBuffer,
2171    PRPC_MESSAGE pRpcMessage,
2172    DWORD* pdwStubPhase);
2173HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteWrite_Proxy(
2174    ISequentialStream* This,
2175    const byte *pv,
2176    ULONG cb,
2177    ULONG *pcbWritten);
2178void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
2179    IRpcStubBuffer* This,
2180    IRpcChannelBuffer* pRpcChannelBuffer,
2181    PRPC_MESSAGE pRpcMessage,
2182    DWORD* pdwStubPhase);
2183HRESULT CALLBACK ISequentialStream_Read_Proxy(
2184    ISequentialStream* This,
2185    void *pv,
2186    ULONG cb,
2187    ULONG *pcbRead);
2188HRESULT __RPC_STUB ISequentialStream_Read_Stub(
2189    ISequentialStream* This,
2190    byte *pv,
2191    ULONG cb,
2192    ULONG *pcbRead);
2193HRESULT CALLBACK ISequentialStream_Write_Proxy(
2194    ISequentialStream* This,
2195    const void *pv,
2196    ULONG cb,
2197    ULONG *pcbWritten);
2198HRESULT __RPC_STUB ISequentialStream_Write_Stub(
2199    ISequentialStream* This,
2200    const byte *pv,
2201    ULONG cb,
2202    ULONG *pcbWritten);
2203
2204#endif  /* __ISequentialStream_INTERFACE_DEFINED__ */
2205
2206
2207/*****************************************************************************
2208 * IStream interface
2209 */
2210#ifndef __IStream_INTERFACE_DEFINED__
2211#define __IStream_INTERFACE_DEFINED__
2212
2213typedef IStream *LPSTREAM;
2214
2215typedef struct tagSTATSTG {
2216    LPOLESTR pwcsName;
2217    DWORD type;
2218    ULARGE_INTEGER cbSize;
2219    FILETIME mtime;
2220    FILETIME ctime;
2221    FILETIME atime;
2222    DWORD grfMode;
2223    DWORD grfLocksSupported;
2224    CLSID clsid;
2225    DWORD grfStateBits;
2226    DWORD reserved;
2227} STATSTG;
2228
2229typedef enum tagSTGTY {
2230    STGTY_STORAGE = 1,
2231    STGTY_STREAM = 2,
2232    STGTY_LOCKBYTES = 3,
2233    STGTY_PROPERTY = 4
2234} STGTY;
2235
2236typedef enum tagSTREAM_SEEK {
2237    STREAM_SEEK_SET = 0,
2238    STREAM_SEEK_CUR = 1,
2239    STREAM_SEEK_END = 2
2240} STREAM_SEEK;
2241
2242typedef enum tagLOCKTYPE {
2243    LOCK_WRITE = 1,
2244    LOCK_EXCLUSIVE = 2,
2245    LOCK_ONLYONCE = 4
2246} LOCKTYPE;
2247
2248DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2249#if defined(__cplusplus) && !defined(CINTERFACE)
2250MIDL_INTERFACE("0000000c-0000-0000-c000-000000000046")
2251IStream : public ISequentialStream
2252{
2253    virtual HRESULT STDMETHODCALLTYPE Seek(
2254        LARGE_INTEGER dlibMove,
2255        DWORD dwOrigin,
2256        ULARGE_INTEGER *plibNewPosition) = 0;
2257
2258    virtual HRESULT STDMETHODCALLTYPE SetSize(
2259        ULARGE_INTEGER libNewSize) = 0;
2260
2261    virtual HRESULT STDMETHODCALLTYPE CopyTo(
2262        IStream *pstm,
2263        ULARGE_INTEGER cb,
2264        ULARGE_INTEGER *pcbRead,
2265        ULARGE_INTEGER *pcbWritten) = 0;
2266
2267    virtual HRESULT STDMETHODCALLTYPE Commit(
2268        DWORD grfCommitFlags) = 0;
2269
2270    virtual HRESULT STDMETHODCALLTYPE Revert(
2271        ) = 0;
2272
2273    virtual HRESULT STDMETHODCALLTYPE LockRegion(
2274        ULARGE_INTEGER libOffset,
2275        ULARGE_INTEGER cb,
2276        DWORD dwLockType) = 0;
2277
2278    virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
2279        ULARGE_INTEGER libOffset,
2280        ULARGE_INTEGER cb,
2281        DWORD dwLockType) = 0;
2282
2283    virtual HRESULT STDMETHODCALLTYPE Stat(
2284        STATSTG *pstatstg,
2285        DWORD grfStatFlag) = 0;
2286
2287    virtual HRESULT STDMETHODCALLTYPE Clone(
2288        IStream **ppstm) = 0;
2289
2290};
2291#ifdef __CRT_UUID_DECL
2292__CRT_UUID_DECL(IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
2293#endif
2294#else
2295typedef struct IStreamVtbl {
2296    BEGIN_INTERFACE
2297
2298    /*** IUnknown methods ***/
2299    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2300        IStream* This,
2301        REFIID riid,
2302        void **ppvObject);
2303
2304    ULONG (STDMETHODCALLTYPE *AddRef)(
2305        IStream* This);
2306
2307    ULONG (STDMETHODCALLTYPE *Release)(
2308        IStream* This);
2309
2310    /*** ISequentialStream methods ***/
2311    HRESULT (STDMETHODCALLTYPE *Read)(
2312        IStream* This,
2313        void *pv,
2314        ULONG cb,
2315        ULONG *pcbRead);
2316
2317    HRESULT (STDMETHODCALLTYPE *Write)(
2318        IStream* This,
2319        const void *pv,
2320        ULONG cb,
2321        ULONG *pcbWritten);
2322
2323    /*** IStream methods ***/
2324    HRESULT (STDMETHODCALLTYPE *Seek)(
2325        IStream* This,
2326        LARGE_INTEGER dlibMove,
2327        DWORD dwOrigin,
2328        ULARGE_INTEGER *plibNewPosition);
2329
2330    HRESULT (STDMETHODCALLTYPE *SetSize)(
2331        IStream* This,
2332        ULARGE_INTEGER libNewSize);
2333
2334    HRESULT (STDMETHODCALLTYPE *CopyTo)(
2335        IStream* This,
2336        IStream *pstm,
2337        ULARGE_INTEGER cb,
2338        ULARGE_INTEGER *pcbRead,
2339        ULARGE_INTEGER *pcbWritten);
2340
2341    HRESULT (STDMETHODCALLTYPE *Commit)(
2342        IStream* This,
2343        DWORD grfCommitFlags);
2344
2345    HRESULT (STDMETHODCALLTYPE *Revert)(
2346        IStream* This);
2347
2348    HRESULT (STDMETHODCALLTYPE *LockRegion)(
2349        IStream* This,
2350        ULARGE_INTEGER libOffset,
2351        ULARGE_INTEGER cb,
2352        DWORD dwLockType);
2353
2354    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
2355        IStream* This,
2356        ULARGE_INTEGER libOffset,
2357        ULARGE_INTEGER cb,
2358        DWORD dwLockType);
2359
2360    HRESULT (STDMETHODCALLTYPE *Stat)(
2361        IStream* This,
2362        STATSTG *pstatstg,
2363        DWORD grfStatFlag);
2364
2365    HRESULT (STDMETHODCALLTYPE *Clone)(
2366        IStream* This,
2367        IStream **ppstm);
2368
2369    END_INTERFACE
2370} IStreamVtbl;
2371interface IStream {
2372    CONST_VTBL IStreamVtbl* lpVtbl;
2373};
2374
2375#ifdef COBJMACROS
2376#ifndef WIDL_C_INLINE_WRAPPERS
2377/*** IUnknown methods ***/
2378#define IStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2379#define IStream_AddRef(This) (This)->lpVtbl->AddRef(This)
2380#define IStream_Release(This) (This)->lpVtbl->Release(This)
2381/*** ISequentialStream methods ***/
2382#define IStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
2383#define IStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
2384/*** IStream methods ***/
2385#define IStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
2386#define IStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
2387#define IStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
2388#define IStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
2389#define IStream_Revert(This) (This)->lpVtbl->Revert(This)
2390#define IStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
2391#define IStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
2392#define IStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
2393#define IStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
2394#else
2395/*** IUnknown methods ***/
2396static FORCEINLINE HRESULT IStream_QueryInterface(IStream* This,REFIID riid,void **ppvObject) {
2397    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2398}
2399static FORCEINLINE ULONG IStream_AddRef(IStream* This) {
2400    return This->lpVtbl->AddRef(This);
2401}
2402static FORCEINLINE ULONG IStream_Release(IStream* This) {
2403    return This->lpVtbl->Release(This);
2404}
2405/*** ISequentialStream methods ***/
2406static FORCEINLINE HRESULT IStream_Read(IStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
2407    return This->lpVtbl->Read(This,pv,cb,pcbRead);
2408}
2409static FORCEINLINE HRESULT IStream_Write(IStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
2410    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
2411}
2412/*** IStream methods ***/
2413static FORCEINLINE HRESULT IStream_Seek(IStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
2414    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
2415}
2416static FORCEINLINE HRESULT IStream_SetSize(IStream* This,ULARGE_INTEGER libNewSize) {
2417    return This->lpVtbl->SetSize(This,libNewSize);
2418}
2419static FORCEINLINE HRESULT IStream_CopyTo(IStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
2420    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
2421}
2422static FORCEINLINE HRESULT IStream_Commit(IStream* This,DWORD grfCommitFlags) {
2423    return This->lpVtbl->Commit(This,grfCommitFlags);
2424}
2425static FORCEINLINE HRESULT IStream_Revert(IStream* This) {
2426    return This->lpVtbl->Revert(This);
2427}
2428static FORCEINLINE HRESULT IStream_LockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
2429    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
2430}
2431static FORCEINLINE HRESULT IStream_UnlockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
2432    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
2433}
2434static FORCEINLINE HRESULT IStream_Stat(IStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
2435    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
2436}
2437static FORCEINLINE HRESULT IStream_Clone(IStream* This,IStream **ppstm) {
2438    return This->lpVtbl->Clone(This,ppstm);
2439}
2440#endif
2441#endif
2442
2443#endif
2444
2445HRESULT STDMETHODCALLTYPE IStream_RemoteSeek_Proxy(
2446    IStream* This,
2447    LARGE_INTEGER dlibMove,
2448    DWORD dwOrigin,
2449    ULARGE_INTEGER *plibNewPosition);
2450void __RPC_STUB IStream_RemoteSeek_Stub(
2451    IRpcStubBuffer* This,
2452    IRpcChannelBuffer* pRpcChannelBuffer,
2453    PRPC_MESSAGE pRpcMessage,
2454    DWORD* pdwStubPhase);
2455HRESULT STDMETHODCALLTYPE IStream_SetSize_Proxy(
2456    IStream* This,
2457    ULARGE_INTEGER libNewSize);
2458void __RPC_STUB IStream_SetSize_Stub(
2459    IRpcStubBuffer* This,
2460    IRpcChannelBuffer* pRpcChannelBuffer,
2461    PRPC_MESSAGE pRpcMessage,
2462    DWORD* pdwStubPhase);
2463HRESULT STDMETHODCALLTYPE IStream_RemoteCopyTo_Proxy(
2464    IStream* This,
2465    IStream *pstm,
2466    ULARGE_INTEGER cb,
2467    ULARGE_INTEGER *pcbRead,
2468    ULARGE_INTEGER *pcbWritten);
2469void __RPC_STUB IStream_RemoteCopyTo_Stub(
2470    IRpcStubBuffer* This,
2471    IRpcChannelBuffer* pRpcChannelBuffer,
2472    PRPC_MESSAGE pRpcMessage,
2473    DWORD* pdwStubPhase);
2474HRESULT STDMETHODCALLTYPE IStream_Commit_Proxy(
2475    IStream* This,
2476    DWORD grfCommitFlags);
2477void __RPC_STUB IStream_Commit_Stub(
2478    IRpcStubBuffer* This,
2479    IRpcChannelBuffer* pRpcChannelBuffer,
2480    PRPC_MESSAGE pRpcMessage,
2481    DWORD* pdwStubPhase);
2482HRESULT STDMETHODCALLTYPE IStream_Revert_Proxy(
2483    IStream* This);
2484void __RPC_STUB IStream_Revert_Stub(
2485    IRpcStubBuffer* This,
2486    IRpcChannelBuffer* pRpcChannelBuffer,
2487    PRPC_MESSAGE pRpcMessage,
2488    DWORD* pdwStubPhase);
2489HRESULT STDMETHODCALLTYPE IStream_LockRegion_Proxy(
2490    IStream* This,
2491    ULARGE_INTEGER libOffset,
2492    ULARGE_INTEGER cb,
2493    DWORD dwLockType);
2494void __RPC_STUB IStream_LockRegion_Stub(
2495    IRpcStubBuffer* This,
2496    IRpcChannelBuffer* pRpcChannelBuffer,
2497    PRPC_MESSAGE pRpcMessage,
2498    DWORD* pdwStubPhase);
2499HRESULT STDMETHODCALLTYPE IStream_UnlockRegion_Proxy(
2500    IStream* This,
2501    ULARGE_INTEGER libOffset,
2502    ULARGE_INTEGER cb,
2503    DWORD dwLockType);
2504void __RPC_STUB IStream_UnlockRegion_Stub(
2505    IRpcStubBuffer* This,
2506    IRpcChannelBuffer* pRpcChannelBuffer,
2507    PRPC_MESSAGE pRpcMessage,
2508    DWORD* pdwStubPhase);
2509HRESULT STDMETHODCALLTYPE IStream_Stat_Proxy(
2510    IStream* This,
2511    STATSTG *pstatstg,
2512    DWORD grfStatFlag);
2513void __RPC_STUB IStream_Stat_Stub(
2514    IRpcStubBuffer* This,
2515    IRpcChannelBuffer* pRpcChannelBuffer,
2516    PRPC_MESSAGE pRpcMessage,
2517    DWORD* pdwStubPhase);
2518HRESULT STDMETHODCALLTYPE IStream_Clone_Proxy(
2519    IStream* This,
2520    IStream **ppstm);
2521void __RPC_STUB IStream_Clone_Stub(
2522    IRpcStubBuffer* This,
2523    IRpcChannelBuffer* pRpcChannelBuffer,
2524    PRPC_MESSAGE pRpcMessage,
2525    DWORD* pdwStubPhase);
2526HRESULT CALLBACK IStream_Seek_Proxy(
2527    IStream* This,
2528    LARGE_INTEGER dlibMove,
2529    DWORD dwOrigin,
2530    ULARGE_INTEGER *plibNewPosition);
2531HRESULT __RPC_STUB IStream_Seek_Stub(
2532    IStream* This,
2533    LARGE_INTEGER dlibMove,
2534    DWORD dwOrigin,
2535    ULARGE_INTEGER *plibNewPosition);
2536HRESULT CALLBACK IStream_CopyTo_Proxy(
2537    IStream* This,
2538    IStream *pstm,
2539    ULARGE_INTEGER cb,
2540    ULARGE_INTEGER *pcbRead,
2541    ULARGE_INTEGER *pcbWritten);
2542HRESULT __RPC_STUB IStream_CopyTo_Stub(
2543    IStream* This,
2544    IStream *pstm,
2545    ULARGE_INTEGER cb,
2546    ULARGE_INTEGER *pcbRead,
2547    ULARGE_INTEGER *pcbWritten);
2548
2549#endif  /* __IStream_INTERFACE_DEFINED__ */
2550
2551
2552/*****************************************************************************
2553 * IRpcChannelBuffer interface
2554 */
2555#ifndef __IRpcChannelBuffer_INTERFACE_DEFINED__
2556#define __IRpcChannelBuffer_INTERFACE_DEFINED__
2557
2558typedef ULONG RPCOLEDATAREP;
2559
2560typedef struct tagRPCOLEMESSAGE {
2561    void *reserved1;
2562    RPCOLEDATAREP dataRepresentation;
2563    void *Buffer;
2564    ULONG cbBuffer;
2565    ULONG iMethod;
2566    void * reserved2[5];
2567    ULONG rpcFlags;
2568} RPCOLEMESSAGE;
2569
2570typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
2571
2572DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
2573#if defined(__cplusplus) && !defined(CINTERFACE)
2574MIDL_INTERFACE("d5f56b60-593b-101a-b569-08002b2dbf7a")
2575IRpcChannelBuffer : public IUnknown
2576{
2577    virtual HRESULT STDMETHODCALLTYPE GetBuffer(
2578        RPCOLEMESSAGE *pMessage,
2579        REFIID riid) = 0;
2580
2581    virtual HRESULT STDMETHODCALLTYPE SendReceive(
2582        RPCOLEMESSAGE *pMessage,
2583        ULONG *pStatus) = 0;
2584
2585    virtual HRESULT STDMETHODCALLTYPE FreeBuffer(
2586        RPCOLEMESSAGE *pMessage) = 0;
2587
2588    virtual HRESULT STDMETHODCALLTYPE GetDestCtx(
2589        DWORD *pdwDestContext,
2590        void **ppvDestContext) = 0;
2591
2592    virtual HRESULT STDMETHODCALLTYPE IsConnected(
2593        ) = 0;
2594
2595};
2596#ifdef __CRT_UUID_DECL
2597__CRT_UUID_DECL(IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
2598#endif
2599#else
2600typedef struct IRpcChannelBufferVtbl {
2601    BEGIN_INTERFACE
2602
2603    /*** IUnknown methods ***/
2604    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2605        IRpcChannelBuffer* This,
2606        REFIID riid,
2607        void **ppvObject);
2608
2609    ULONG (STDMETHODCALLTYPE *AddRef)(
2610        IRpcChannelBuffer* This);
2611
2612    ULONG (STDMETHODCALLTYPE *Release)(
2613        IRpcChannelBuffer* This);
2614
2615    /*** IRpcChannelBuffer methods ***/
2616    HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2617        IRpcChannelBuffer* This,
2618        RPCOLEMESSAGE *pMessage,
2619        REFIID riid);
2620
2621    HRESULT (STDMETHODCALLTYPE *SendReceive)(
2622        IRpcChannelBuffer* This,
2623        RPCOLEMESSAGE *pMessage,
2624        ULONG *pStatus);
2625
2626    HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
2627        IRpcChannelBuffer* This,
2628        RPCOLEMESSAGE *pMessage);
2629
2630    HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
2631        IRpcChannelBuffer* This,
2632        DWORD *pdwDestContext,
2633        void **ppvDestContext);
2634
2635    HRESULT (STDMETHODCALLTYPE *IsConnected)(
2636        IRpcChannelBuffer* This);
2637
2638    END_INTERFACE
2639} IRpcChannelBufferVtbl;
2640interface IRpcChannelBuffer {
2641    CONST_VTBL IRpcChannelBufferVtbl* lpVtbl;
2642};
2643
2644#ifdef COBJMACROS
2645#ifndef WIDL_C_INLINE_WRAPPERS
2646/*** IUnknown methods ***/
2647#define IRpcChannelBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2648#define IRpcChannelBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
2649#define IRpcChannelBuffer_Release(This) (This)->lpVtbl->Release(This)
2650/*** IRpcChannelBuffer methods ***/
2651#define IRpcChannelBuffer_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
2652#define IRpcChannelBuffer_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
2653#define IRpcChannelBuffer_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
2654#define IRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
2655#define IRpcChannelBuffer_IsConnected(This) (This)->lpVtbl->IsConnected(This)
2656#else
2657/*** IUnknown methods ***/
2658static FORCEINLINE HRESULT IRpcChannelBuffer_QueryInterface(IRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
2659    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2660}
2661static FORCEINLINE ULONG IRpcChannelBuffer_AddRef(IRpcChannelBuffer* This) {
2662    return This->lpVtbl->AddRef(This);
2663}
2664static FORCEINLINE ULONG IRpcChannelBuffer_Release(IRpcChannelBuffer* This) {
2665    return This->lpVtbl->Release(This);
2666}
2667/*** IRpcChannelBuffer methods ***/
2668static FORCEINLINE HRESULT IRpcChannelBuffer_GetBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
2669    return This->lpVtbl->GetBuffer(This,pMessage,riid);
2670}
2671static FORCEINLINE HRESULT IRpcChannelBuffer_SendReceive(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
2672    return This->lpVtbl->SendReceive(This,pMessage,pStatus);
2673}
2674static FORCEINLINE HRESULT IRpcChannelBuffer_FreeBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
2675    return This->lpVtbl->FreeBuffer(This,pMessage);
2676}
2677static FORCEINLINE HRESULT IRpcChannelBuffer_GetDestCtx(IRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
2678    return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
2679}
2680static FORCEINLINE HRESULT IRpcChannelBuffer_IsConnected(IRpcChannelBuffer* This) {
2681    return This->lpVtbl->IsConnected(This);
2682}
2683#endif
2684#endif
2685
2686#endif
2687
2688HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_GetBuffer_Proxy(
2689    IRpcChannelBuffer* This,
2690    RPCOLEMESSAGE *pMessage,
2691    REFIID riid);
2692void __RPC_STUB IRpcChannelBuffer_GetBuffer_Stub(
2693    IRpcStubBuffer* This,
2694    IRpcChannelBuffer* pRpcChannelBuffer,
2695    PRPC_MESSAGE pRpcMessage,
2696    DWORD* pdwStubPhase);
2697HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_SendReceive_Proxy(
2698    IRpcChannelBuffer* This,
2699    RPCOLEMESSAGE *pMessage,
2700    ULONG *pStatus);
2701void __RPC_STUB IRpcChannelBuffer_SendReceive_Stub(
2702    IRpcStubBuffer* This,
2703    IRpcChannelBuffer* pRpcChannelBuffer,
2704    PRPC_MESSAGE pRpcMessage,
2705    DWORD* pdwStubPhase);
2706HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_FreeBuffer_Proxy(
2707    IRpcChannelBuffer* This,
2708    RPCOLEMESSAGE *pMessage);
2709void __RPC_STUB IRpcChannelBuffer_FreeBuffer_Stub(
2710    IRpcStubBuffer* This,
2711    IRpcChannelBuffer* pRpcChannelBuffer,
2712    PRPC_MESSAGE pRpcMessage,
2713    DWORD* pdwStubPhase);
2714HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_GetDestCtx_Proxy(
2715    IRpcChannelBuffer* This,
2716    DWORD *pdwDestContext,
2717    void **ppvDestContext);
2718void __RPC_STUB IRpcChannelBuffer_GetDestCtx_Stub(
2719    IRpcStubBuffer* This,
2720    IRpcChannelBuffer* pRpcChannelBuffer,
2721    PRPC_MESSAGE pRpcMessage,
2722    DWORD* pdwStubPhase);
2723HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_IsConnected_Proxy(
2724    IRpcChannelBuffer* This);
2725void __RPC_STUB IRpcChannelBuffer_IsConnected_Stub(
2726    IRpcStubBuffer* This,
2727    IRpcChannelBuffer* pRpcChannelBuffer,
2728    PRPC_MESSAGE pRpcMessage,
2729    DWORD* pdwStubPhase);
2730
2731#endif  /* __IRpcChannelBuffer_INTERFACE_DEFINED__ */
2732
2733#endif
2734
2735#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
2736/*****************************************************************************
2737 * IRpcChannelBuffer2 interface
2738 */
2739#ifndef __IRpcChannelBuffer2_INTERFACE_DEFINED__
2740#define __IRpcChannelBuffer2_INTERFACE_DEFINED__
2741
2742DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
2743#if defined(__cplusplus) && !defined(CINTERFACE)
2744MIDL_INTERFACE("594f31d0-7f19-11d0-b194-00a0c90dc8bf")
2745IRpcChannelBuffer2 : public IRpcChannelBuffer
2746{
2747    virtual HRESULT STDMETHODCALLTYPE GetProtocolVersion(
2748        DWORD *pdwVersion) = 0;
2749
2750};
2751#ifdef __CRT_UUID_DECL
2752__CRT_UUID_DECL(IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf)
2753#endif
2754#else
2755typedef struct IRpcChannelBuffer2Vtbl {
2756    BEGIN_INTERFACE
2757
2758    /*** IUnknown methods ***/
2759    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2760        IRpcChannelBuffer2* This,
2761        REFIID riid,
2762        void **ppvObject);
2763
2764    ULONG (STDMETHODCALLTYPE *AddRef)(
2765        IRpcChannelBuffer2* This);
2766
2767    ULONG (STDMETHODCALLTYPE *Release)(
2768        IRpcChannelBuffer2* This);
2769
2770    /*** IRpcChannelBuffer methods ***/
2771    HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2772        IRpcChannelBuffer2* This,
2773        RPCOLEMESSAGE *pMessage,
2774        REFIID riid);
2775
2776    HRESULT (STDMETHODCALLTYPE *SendReceive)(
2777        IRpcChannelBuffer2* This,
2778        RPCOLEMESSAGE *pMessage,
2779        ULONG *pStatus);
2780
2781    HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
2782        IRpcChannelBuffer2* This,
2783        RPCOLEMESSAGE *pMessage);
2784
2785    HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
2786        IRpcChannelBuffer2* This,
2787        DWORD *pdwDestContext,
2788        void **ppvDestContext);
2789
2790    HRESULT (STDMETHODCALLTYPE *IsConnected)(
2791        IRpcChannelBuffer2* This);
2792
2793    /*** IRpcChannelBuffer2 methods ***/
2794    HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
2795        IRpcChannelBuffer2* This,
2796        DWORD *pdwVersion);
2797
2798    END_INTERFACE
2799} IRpcChannelBuffer2Vtbl;
2800interface IRpcChannelBuffer2 {
2801    CONST_VTBL IRpcChannelBuffer2Vtbl* lpVtbl;
2802};
2803
2804#ifdef COBJMACROS
2805#ifndef WIDL_C_INLINE_WRAPPERS
2806/*** IUnknown methods ***/
2807#define IRpcChannelBuffer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2808#define IRpcChannelBuffer2_AddRef(This) (This)->lpVtbl->AddRef(This)
2809#define IRpcChannelBuffer2_Release(This) (This)->lpVtbl->Release(This)
2810/*** IRpcChannelBuffer methods ***/
2811#define IRpcChannelBuffer2_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
2812#define IRpcChannelBuffer2_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
2813#define IRpcChannelBuffer2_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
2814#define IRpcChannelBuffer2_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
2815#define IRpcChannelBuffer2_IsConnected(This) (This)->lpVtbl->IsConnected(This)
2816/*** IRpcChannelBuffer2 methods ***/
2817#define IRpcChannelBuffer2_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
2818#else
2819/*** IUnknown methods ***/
2820static FORCEINLINE HRESULT IRpcChannelBuffer2_QueryInterface(IRpcChannelBuffer2* This,REFIID riid,void **ppvObject) {
2821    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2822}
2823static FORCEINLINE ULONG IRpcChannelBuffer2_AddRef(IRpcChannelBuffer2* This) {
2824    return This->lpVtbl->AddRef(This);
2825}
2826static FORCEINLINE ULONG IRpcChannelBuffer2_Release(IRpcChannelBuffer2* This) {
2827    return This->lpVtbl->Release(This);
2828}
2829/*** IRpcChannelBuffer methods ***/
2830static FORCEINLINE HRESULT IRpcChannelBuffer2_GetBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
2831    return This->lpVtbl->GetBuffer(This,pMessage,riid);
2832}
2833static FORCEINLINE HRESULT IRpcChannelBuffer2_SendReceive(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
2834    return This->lpVtbl->SendReceive(This,pMessage,pStatus);
2835}
2836static FORCEINLINE HRESULT IRpcChannelBuffer2_FreeBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage) {
2837    return This->lpVtbl->FreeBuffer(This,pMessage);
2838}
2839static FORCEINLINE HRESULT IRpcChannelBuffer2_GetDestCtx(IRpcChannelBuffer2* This,DWORD *pdwDestContext,void **ppvDestContext) {
2840    return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
2841}
2842static FORCEINLINE HRESULT IRpcChannelBuffer2_IsConnected(IRpcChannelBuffer2* This) {
2843    return This->lpVtbl->IsConnected(This);
2844}
2845/*** IRpcChannelBuffer2 methods ***/
2846static FORCEINLINE HRESULT IRpcChannelBuffer2_GetProtocolVersion(IRpcChannelBuffer2* This,DWORD *pdwVersion) {
2847    return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
2848}
2849#endif
2850#endif
2851
2852#endif
2853
2854HRESULT STDMETHODCALLTYPE IRpcChannelBuffer2_GetProtocolVersion_Proxy(
2855    IRpcChannelBuffer2* This,
2856    DWORD *pdwVersion);
2857void __RPC_STUB IRpcChannelBuffer2_GetProtocolVersion_Stub(
2858    IRpcStubBuffer* This,
2859    IRpcChannelBuffer* pRpcChannelBuffer,
2860    PRPC_MESSAGE pRpcMessage,
2861    DWORD* pdwStubPhase);
2862
2863#endif  /* __IRpcChannelBuffer2_INTERFACE_DEFINED__ */
2864
2865
2866/*****************************************************************************
2867 * IAsyncRpcChannelBuffer interface
2868 */
2869#ifndef __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__
2870#define __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__
2871
2872DEFINE_GUID(IID_IAsyncRpcChannelBuffer, 0xa5029fb6, 0x3c34, 0x11d1, 0x9c,0x99, 0x00,0xc0,0x4f,0xb9,0x98,0xaa);
2873#if defined(__cplusplus) && !defined(CINTERFACE)
2874MIDL_INTERFACE("a5029fb6-3c34-11d1-9c99-00c04fb998aa")
2875IAsyncRpcChannelBuffer : public IRpcChannelBuffer2
2876{
2877    virtual HRESULT STDMETHODCALLTYPE Send(
2878        RPCOLEMESSAGE *pMsg,
2879        ISynchronize *pSync,
2880        ULONG *pulStatus) = 0;
2881
2882    virtual HRESULT STDMETHODCALLTYPE Receive(
2883        RPCOLEMESSAGE *pMsg,
2884        ULONG *pulStatus) = 0;
2885
2886    virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
2887        RPCOLEMESSAGE *pMsg,
2888        DWORD *pdwDestContext,
2889        void **ppvDestContext) = 0;
2890
2891};
2892#ifdef __CRT_UUID_DECL
2893__CRT_UUID_DECL(IAsyncRpcChannelBuffer, 0xa5029fb6, 0x3c34, 0x11d1, 0x9c,0x99, 0x00,0xc0,0x4f,0xb9,0x98,0xaa)
2894#endif
2895#else
2896typedef struct IAsyncRpcChannelBufferVtbl {
2897    BEGIN_INTERFACE
2898
2899    /*** IUnknown methods ***/
2900    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2901        IAsyncRpcChannelBuffer* This,
2902        REFIID riid,
2903        void **ppvObject);
2904
2905    ULONG (STDMETHODCALLTYPE *AddRef)(
2906        IAsyncRpcChannelBuffer* This);
2907
2908    ULONG (STDMETHODCALLTYPE *Release)(
2909        IAsyncRpcChannelBuffer* This);
2910
2911    /*** IRpcChannelBuffer methods ***/
2912    HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2913        IAsyncRpcChannelBuffer* This,
2914        RPCOLEMESSAGE *pMessage,
2915        REFIID riid);
2916
2917    HRESULT (STDMETHODCALLTYPE *SendReceive)(
2918        IAsyncRpcChannelBuffer* This,
2919        RPCOLEMESSAGE *pMessage,
2920        ULONG *pStatus);
2921
2922    HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
2923        IAsyncRpcChannelBuffer* This,
2924        RPCOLEMESSAGE *pMessage);
2925
2926    HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
2927        IAsyncRpcChannelBuffer* This,
2928        DWORD *pdwDestContext,
2929        void **ppvDestContext);
2930
2931    HRESULT (STDMETHODCALLTYPE *IsConnected)(
2932        IAsyncRpcChannelBuffer* This);
2933
2934    /*** IRpcChannelBuffer2 methods ***/
2935    HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
2936        IAsyncRpcChannelBuffer* This,
2937        DWORD *pdwVersion);
2938
2939    /*** IAsyncRpcChannelBuffer methods ***/
2940    HRESULT (STDMETHODCALLTYPE *Send)(
2941        IAsyncRpcChannelBuffer* This,
2942        RPCOLEMESSAGE *pMsg,
2943        ISynchronize *pSync,
2944        ULONG *pulStatus);
2945
2946    HRESULT (STDMETHODCALLTYPE *Receive)(
2947        IAsyncRpcChannelBuffer* This,
2948        RPCOLEMESSAGE *pMsg,
2949        ULONG *pulStatus);
2950
2951    HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
2952        IAsyncRpcChannelBuffer* This,
2953        RPCOLEMESSAGE *pMsg,
2954        DWORD *pdwDestContext,
2955        void **ppvDestContext);
2956
2957    END_INTERFACE
2958} IAsyncRpcChannelBufferVtbl;
2959interface IAsyncRpcChannelBuffer {
2960    CONST_VTBL IAsyncRpcChannelBufferVtbl* lpVtbl;
2961};
2962
2963#ifdef COBJMACROS
2964#ifndef WIDL_C_INLINE_WRAPPERS
2965/*** IUnknown methods ***/
2966#define IAsyncRpcChannelBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2967#define IAsyncRpcChannelBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
2968#define IAsyncRpcChannelBuffer_Release(This) (This)->lpVtbl->Release(This)
2969/*** IRpcChannelBuffer methods ***/
2970#define IAsyncRpcChannelBuffer_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
2971#define IAsyncRpcChannelBuffer_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
2972#define IAsyncRpcChannelBuffer_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
2973#define IAsyncRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
2974#define IAsyncRpcChannelBuffer_IsConnected(This) (This)->lpVtbl->IsConnected(This)
2975/*** IRpcChannelBuffer2 methods ***/
2976#define IAsyncRpcChannelBuffer_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
2977/*** IAsyncRpcChannelBuffer methods ***/
2978#define IAsyncRpcChannelBuffer_Send(This,pMsg,pSync,pulStatus) (This)->lpVtbl->Send(This,pMsg,pSync,pulStatus)
2979#define IAsyncRpcChannelBuffer_Receive(This,pMsg,pulStatus) (This)->lpVtbl->Receive(This,pMsg,pulStatus)
2980#define IAsyncRpcChannelBuffer_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext)
2981#else
2982/*** IUnknown methods ***/
2983static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_QueryInterface(IAsyncRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
2984    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2985}
2986static FORCEINLINE ULONG IAsyncRpcChannelBuffer_AddRef(IAsyncRpcChannelBuffer* This) {
2987    return This->lpVtbl->AddRef(This);
2988}
2989static FORCEINLINE ULONG IAsyncRpcChannelBuffer_Release(IAsyncRpcChannelBuffer* This) {
2990    return This->lpVtbl->Release(This);
2991}
2992/*** IRpcChannelBuffer methods ***/
2993static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
2994    return This->lpVtbl->GetBuffer(This,pMessage,riid);
2995}
2996static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_SendReceive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
2997    return This->lpVtbl->SendReceive(This,pMessage,pStatus);
2998}
2999static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_FreeBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
3000    return This->lpVtbl->FreeBuffer(This,pMessage);
3001}
3002static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetDestCtx(IAsyncRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
3003    return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
3004}
3005static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_IsConnected(IAsyncRpcChannelBuffer* This) {
3006    return This->lpVtbl->IsConnected(This);
3007}
3008/*** IRpcChannelBuffer2 methods ***/
3009static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetProtocolVersion(IAsyncRpcChannelBuffer* This,DWORD *pdwVersion) {
3010    return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
3011}
3012/*** IAsyncRpcChannelBuffer methods ***/
3013static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_Send(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ISynchronize *pSync,ULONG *pulStatus) {
3014    return This->lpVtbl->Send(This,pMsg,pSync,pulStatus);
3015}
3016static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_Receive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
3017    return This->lpVtbl->Receive(This,pMsg,pulStatus);
3018}
3019static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetDestCtxEx(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext) {
3020    return This->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext);
3021}
3022#endif
3023#endif
3024
3025#endif
3026
3027HRESULT STDMETHODCALLTYPE IAsyncRpcChannelBuffer_Send_Proxy(
3028    IAsyncRpcChannelBuffer* This,
3029    RPCOLEMESSAGE *pMsg,
3030    ISynchronize *pSync,
3031    ULONG *pulStatus);
3032void __RPC_STUB IAsyncRpcChannelBuffer_Send_Stub(
3033    IRpcStubBuffer* This,
3034    IRpcChannelBuffer* pRpcChannelBuffer,
3035    PRPC_MESSAGE pRpcMessage,
3036    DWORD* pdwStubPhase);
3037HRESULT STDMETHODCALLTYPE IAsyncRpcChannelBuffer_Receive_Proxy(
3038    IAsyncRpcChannelBuffer* This,
3039    RPCOLEMESSAGE *pMsg,
3040    ULONG *pulStatus);
3041void __RPC_STUB IAsyncRpcChannelBuffer_Receive_Stub(
3042    IRpcStubBuffer* This,
3043    IRpcChannelBuffer* pRpcChannelBuffer,
3044    PRPC_MESSAGE pRpcMessage,
3045    DWORD* pdwStubPhase);
3046HRESULT STDMETHODCALLTYPE IAsyncRpcChannelBuffer_GetDestCtxEx_Proxy(
3047    IAsyncRpcChannelBuffer* This,
3048    RPCOLEMESSAGE *pMsg,
3049    DWORD *pdwDestContext,
3050    void **ppvDestContext);
3051void __RPC_STUB IAsyncRpcChannelBuffer_GetDestCtxEx_Stub(
3052    IRpcStubBuffer* This,
3053    IRpcChannelBuffer* pRpcChannelBuffer,
3054    PRPC_MESSAGE pRpcMessage,
3055    DWORD* pdwStubPhase);
3056
3057#endif  /* __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__ */
3058
3059
3060/*****************************************************************************
3061 * IRpcChannelBuffer3 interface
3062 */
3063#ifndef __IRpcChannelBuffer3_INTERFACE_DEFINED__
3064#define __IRpcChannelBuffer3_INTERFACE_DEFINED__
3065
3066DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
3067#if defined(__cplusplus) && !defined(CINTERFACE)
3068MIDL_INTERFACE("25b15600-0115-11d0-bf0d-00aa00b8dfd2")
3069IRpcChannelBuffer3 : public IRpcChannelBuffer2
3070{
3071    virtual HRESULT STDMETHODCALLTYPE Send(
3072        RPCOLEMESSAGE *pMsg,
3073        ULONG *pulStatus) = 0;
3074
3075    virtual HRESULT STDMETHODCALLTYPE Receive(
3076        RPCOLEMESSAGE *pMsg,
3077        ULONG ulSize,
3078        ULONG *pulStatus) = 0;
3079
3080    virtual HRESULT STDMETHODCALLTYPE Cancel(
3081        RPCOLEMESSAGE *pMsg) = 0;
3082
3083    virtual HRESULT STDMETHODCALLTYPE GetCallContext(
3084        RPCOLEMESSAGE *pMsg,
3085        REFIID riid,
3086        void **pInterface) = 0;
3087
3088    virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
3089        RPCOLEMESSAGE *pMsg,
3090        DWORD *pdwDestContext,
3091        void **ppvDestContext) = 0;
3092
3093    virtual HRESULT STDMETHODCALLTYPE GetState(
3094        RPCOLEMESSAGE *pMsg,
3095        DWORD *pState) = 0;
3096
3097    virtual HRESULT STDMETHODCALLTYPE RegisterAsync(
3098        RPCOLEMESSAGE *pMsg,
3099        IAsyncManager *pAsyncMgr) = 0;
3100
3101};
3102#ifdef __CRT_UUID_DECL
3103__CRT_UUID_DECL(IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2)
3104#endif
3105#else
3106typedef struct IRpcChannelBuffer3Vtbl {
3107    BEGIN_INTERFACE
3108
3109    /*** IUnknown methods ***/
3110    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3111        IRpcChannelBuffer3* This,
3112        REFIID riid,
3113        void **ppvObject);
3114
3115    ULONG (STDMETHODCALLTYPE *AddRef)(
3116        IRpcChannelBuffer3* This);
3117
3118    ULONG (STDMETHODCALLTYPE *Release)(
3119        IRpcChannelBuffer3* This);
3120
3121    /*** IRpcChannelBuffer methods ***/
3122    HRESULT (STDMETHODCALLTYPE *GetBuffer)(
3123        IRpcChannelBuffer3* This,
3124        RPCOLEMESSAGE *pMessage,
3125        REFIID riid);
3126
3127    HRESULT (STDMETHODCALLTYPE *SendReceive)(
3128        IRpcChannelBuffer3* This,
3129        RPCOLEMESSAGE *pMessage,
3130        ULONG *pStatus);
3131
3132    HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
3133        IRpcChannelBuffer3* This,
3134        RPCOLEMESSAGE *pMessage);
3135
3136    HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
3137        IRpcChannelBuffer3* This,
3138        DWORD *pdwDestContext,
3139        void **ppvDestContext);
3140
3141    HRESULT (STDMETHODCALLTYPE *IsConnected)(
3142        IRpcChannelBuffer3* This);
3143
3144    /*** IRpcChannelBuffer2 methods ***/
3145    HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
3146        IRpcChannelBuffer3* This,
3147        DWORD *pdwVersion);
3148
3149    /*** IRpcChannelBuffer3 methods ***/
3150    HRESULT (STDMETHODCALLTYPE *Send)(
3151        IRpcChannelBuffer3* This,
3152        RPCOLEMESSAGE *pMsg,
3153        ULONG *pulStatus);
3154
3155    HRESULT (STDMETHODCALLTYPE *Receive)(
3156        IRpcChannelBuffer3* This,
3157        RPCOLEMESSAGE *pMsg,
3158        ULONG ulSize,
3159        ULONG *pulStatus);
3160
3161    HRESULT (STDMETHODCALLTYPE *Cancel)(
3162        IRpcChannelBuffer3* This,
3163        RPCOLEMESSAGE *pMsg);
3164
3165    HRESULT (STDMETHODCALLTYPE *GetCallContext)(
3166        IRpcChannelBuffer3* This,
3167        RPCOLEMESSAGE *pMsg,
3168        REFIID riid,
3169        void **pInterface);
3170
3171    HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
3172        IRpcChannelBuffer3* This,
3173        RPCOLEMESSAGE *pMsg,
3174        DWORD *pdwDestContext,
3175        void **ppvDestContext);
3176
3177    HRESULT (STDMETHODCALLTYPE *GetState)(
3178        IRpcChannelBuffer3* This,
3179        RPCOLEMESSAGE *pMsg,
3180        DWORD *pState);
3181
3182    HRESULT (STDMETHODCALLTYPE *RegisterAsync)(
3183        IRpcChannelBuffer3* This,
3184        RPCOLEMESSAGE *pMsg,
3185        IAsyncManager *pAsyncMgr);
3186
3187    END_INTERFACE
3188} IRpcChannelBuffer3Vtbl;
3189interface IRpcChannelBuffer3 {
3190    CONST_VTBL IRpcChannelBuffer3Vtbl* lpVtbl;
3191};
3192
3193#ifdef COBJMACROS
3194#ifndef WIDL_C_INLINE_WRAPPERS
3195/*** IUnknown methods ***/
3196#define IRpcChannelBuffer3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3197#define IRpcChannelBuffer3_AddRef(This) (This)->lpVtbl->AddRef(This)
3198#define IRpcChannelBuffer3_Release(This) (This)->lpVtbl->Release(This)
3199/*** IRpcChannelBuffer methods ***/
3200#define IRpcChannelBuffer3_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
3201#define IRpcChannelBuffer3_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
3202#define IRpcChannelBuffer3_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
3203#define IRpcChannelBuffer3_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
3204#define IRpcChannelBuffer3_IsConnected(This) (This)->lpVtbl->IsConnected(This)
3205/*** IRpcChannelBuffer2 methods ***/
3206#define IRpcChannelBuffer3_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
3207/*** IRpcChannelBuffer3 methods ***/
3208#define IRpcChannelBuffer3_Send(This,pMsg,pulStatus) (This)->lpVtbl->Send(This,pMsg,pulStatus)
3209#define IRpcChannelBuffer3_Receive(This,pMsg,ulSize,pulStatus) (This)->lpVtbl->Receive(This,pMsg,ulSize,pulStatus)
3210#define IRpcChannelBuffer3_Cancel(This,pMsg) (This)->lpVtbl->Cancel(This,pMsg)
3211#define IRpcChannelBuffer3_GetCallContext(This,pMsg,riid,pInterface) (This)->lpVtbl->GetCallContext(This,pMsg,riid,pInterface)
3212#define IRpcChannelBuffer3_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext)
3213#define IRpcChannelBuffer3_GetState(This,pMsg,pState) (This)->lpVtbl->GetState(This,pMsg,pState)
3214#define IRpcChannelBuffer3_RegisterAsync(This,pMsg,pAsyncMgr) (This)->lpVtbl->RegisterAsync(This,pMsg,pAsyncMgr)
3215#else
3216/*** IUnknown methods ***/
3217static FORCEINLINE HRESULT IRpcChannelBuffer3_QueryInterface(IRpcChannelBuffer3* This,REFIID riid,void **ppvObject) {
3218    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3219}
3220static FORCEINLINE ULONG IRpcChannelBuffer3_AddRef(IRpcChannelBuffer3* This) {
3221    return This->lpVtbl->AddRef(This);
3222}
3223static FORCEINLINE ULONG IRpcChannelBuffer3_Release(IRpcChannelBuffer3* This) {
3224    return This->lpVtbl->Release(This);
3225}
3226/*** IRpcChannelBuffer methods ***/
3227static FORCEINLINE HRESULT IRpcChannelBuffer3_GetBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
3228    return This->lpVtbl->GetBuffer(This,pMessage,riid);
3229}
3230static FORCEINLINE HRESULT IRpcChannelBuffer3_SendReceive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
3231    return This->lpVtbl->SendReceive(This,pMessage,pStatus);
3232}
3233static FORCEINLINE HRESULT IRpcChannelBuffer3_FreeBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage) {
3234    return This->lpVtbl->FreeBuffer(This,pMessage);
3235}
3236static FORCEINLINE HRESULT IRpcChannelBuffer3_GetDestCtx(IRpcChannelBuffer3* This,DWORD *pdwDestContext,void **ppvDestContext) {
3237    return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
3238}
3239static FORCEINLINE HRESULT IRpcChannelBuffer3_IsConnected(IRpcChannelBuffer3* This) {
3240    return This->lpVtbl->IsConnected(This);
3241}
3242/*** IRpcChannelBuffer2 methods ***/
3243static FORCEINLINE HRESULT IRpcChannelBuffer3_GetProtocolVersion(IRpcChannelBuffer3* This,DWORD *pdwVersion) {
3244    return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
3245}
3246/*** IRpcChannelBuffer3 methods ***/
3247static FORCEINLINE HRESULT IRpcChannelBuffer3_Send(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
3248    return This->lpVtbl->Send(This,pMsg,pulStatus);
3249}
3250static FORCEINLINE HRESULT IRpcChannelBuffer3_Receive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG ulSize,ULONG *pulStatus) {
3251    return This->lpVtbl->Receive(This,pMsg,ulSize,pulStatus);
3252}
3253static FORCEINLINE HRESULT IRpcChannelBuffer3_Cancel(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg) {
3254    return This->lpVtbl->Cancel(This,pMsg);
3255}
3256static FORCEINLINE HRESULT IRpcChannelBuffer3_GetCallContext(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,REFIID riid,void **pInterface) {
3257    return This->lpVtbl->GetCallContext(This,pMsg,riid,pInterface);
3258}
3259static FORCEINLINE HRESULT IRpcChannelBuffer3_GetDestCtxEx(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext) {
3260    return This->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext);
3261}
3262static FORCEINLINE HRESULT IRpcChannelBuffer3_GetState(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pState) {
3263    return This->lpVtbl->GetState(This,pMsg,pState);
3264}
3265static FORCEINLINE HRESULT IRpcChannelBuffer3_RegisterAsync(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,IAsyncManager *pAsyncMgr) {
3266    return This->lpVtbl->RegisterAsync(This,pMsg,pAsyncMgr);
3267}
3268#endif
3269#endif
3270
3271#endif
3272
3273HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_Send_Proxy(
3274    IRpcChannelBuffer3* This,
3275    RPCOLEMESSAGE *pMsg,
3276    ULONG *pulStatus);
3277void __RPC_STUB IRpcChannelBuffer3_Send_Stub(
3278    IRpcStubBuffer* This,
3279    IRpcChannelBuffer* pRpcChannelBuffer,
3280    PRPC_MESSAGE pRpcMessage,
3281    DWORD* pdwStubPhase);
3282HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_Receive_Proxy(
3283    IRpcChannelBuffer3* This,
3284    RPCOLEMESSAGE *pMsg,
3285    ULONG ulSize,
3286    ULONG *pulStatus);
3287void __RPC_STUB IRpcChannelBuffer3_Receive_Stub(
3288    IRpcStubBuffer* This,
3289    IRpcChannelBuffer* pRpcChannelBuffer,
3290    PRPC_MESSAGE pRpcMessage,
3291    DWORD* pdwStubPhase);
3292HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_Cancel_Proxy(
3293    IRpcChannelBuffer3* This,
3294    RPCOLEMESSAGE *pMsg);
3295void __RPC_STUB IRpcChannelBuffer3_Cancel_Stub(
3296    IRpcStubBuffer* This,
3297    IRpcChannelBuffer* pRpcChannelBuffer,
3298    PRPC_MESSAGE pRpcMessage,
3299    DWORD* pdwStubPhase);
3300HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_GetCallContext_Proxy(
3301    IRpcChannelBuffer3* This,
3302    RPCOLEMESSAGE *pMsg,
3303    REFIID riid,
3304    void **pInterface);
3305void __RPC_STUB IRpcChannelBuffer3_GetCallContext_Stub(
3306    IRpcStubBuffer* This,
3307    IRpcChannelBuffer* pRpcChannelBuffer,
3308    PRPC_MESSAGE pRpcMessage,
3309    DWORD* pdwStubPhase);
3310HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_GetDestCtxEx_Proxy(
3311    IRpcChannelBuffer3* This,
3312    RPCOLEMESSAGE *pMsg,
3313    DWORD *pdwDestContext,
3314    void **ppvDestContext);
3315void __RPC_STUB IRpcChannelBuffer3_GetDestCtxEx_Stub(
3316    IRpcStubBuffer* This,
3317    IRpcChannelBuffer* pRpcChannelBuffer,
3318    PRPC_MESSAGE pRpcMessage,
3319    DWORD* pdwStubPhase);
3320HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_GetState_Proxy(
3321    IRpcChannelBuffer3* This,
3322    RPCOLEMESSAGE *pMsg,
3323    DWORD *pState);
3324void __RPC_STUB IRpcChannelBuffer3_GetState_Stub(
3325    IRpcStubBuffer* This,
3326    IRpcChannelBuffer* pRpcChannelBuffer,
3327    PRPC_MESSAGE pRpcMessage,
3328    DWORD* pdwStubPhase);
3329HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_RegisterAsync_Proxy(
3330    IRpcChannelBuffer3* This,
3331    RPCOLEMESSAGE *pMsg,
3332    IAsyncManager *pAsyncMgr);
3333void __RPC_STUB IRpcChannelBuffer3_RegisterAsync_Stub(
3334    IRpcStubBuffer* This,
3335    IRpcChannelBuffer* pRpcChannelBuffer,
3336    PRPC_MESSAGE pRpcMessage,
3337    DWORD* pdwStubPhase);
3338
3339#endif  /* __IRpcChannelBuffer3_INTERFACE_DEFINED__ */
3340
3341
3342/*****************************************************************************
3343 * IRpcSyntaxNegotiate interface
3344 */
3345#ifndef __IRpcSyntaxNegotiate_INTERFACE_DEFINED__
3346#define __IRpcSyntaxNegotiate_INTERFACE_DEFINED__
3347
3348DEFINE_GUID(IID_IRpcSyntaxNegotiate, 0x58a08519, 0x24c8, 0x4935, 0xb4,0x82, 0x3f,0xd8,0x23,0x33,0x3a,0x4f);
3349#if defined(__cplusplus) && !defined(CINTERFACE)
3350MIDL_INTERFACE("58a08519-24c8-4935-b482-3fd823333a4f")
3351IRpcSyntaxNegotiate : public IUnknown
3352{
3353    virtual HRESULT STDMETHODCALLTYPE NegotiateSyntax(
3354        RPCOLEMESSAGE *pMsg) = 0;
3355
3356};
3357#ifdef __CRT_UUID_DECL
3358__CRT_UUID_DECL(IRpcSyntaxNegotiate, 0x58a08519, 0x24c8, 0x4935, 0xb4,0x82, 0x3f,0xd8,0x23,0x33,0x3a,0x4f)
3359#endif
3360#else
3361typedef struct IRpcSyntaxNegotiateVtbl {
3362    BEGIN_INTERFACE
3363
3364    /*** IUnknown methods ***/
3365    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3366        IRpcSyntaxNegotiate* This,
3367        REFIID riid,
3368        void **ppvObject);
3369
3370    ULONG (STDMETHODCALLTYPE *AddRef)(
3371        IRpcSyntaxNegotiate* This);
3372
3373    ULONG (STDMETHODCALLTYPE *Release)(
3374        IRpcSyntaxNegotiate* This);
3375
3376    /*** IRpcSyntaxNegotiate methods ***/
3377    HRESULT (STDMETHODCALLTYPE *NegotiateSyntax)(
3378        IRpcSyntaxNegotiate* This,
3379        RPCOLEMESSAGE *pMsg);
3380
3381    END_INTERFACE
3382} IRpcSyntaxNegotiateVtbl;
3383interface IRpcSyntaxNegotiate {
3384    CONST_VTBL IRpcSyntaxNegotiateVtbl* lpVtbl;
3385};
3386
3387#ifdef COBJMACROS
3388#ifndef WIDL_C_INLINE_WRAPPERS
3389/*** IUnknown methods ***/
3390#define IRpcSyntaxNegotiate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3391#define IRpcSyntaxNegotiate_AddRef(This) (This)->lpVtbl->AddRef(This)
3392#define IRpcSyntaxNegotiate_Release(This) (This)->lpVtbl->Release(This)
3393/*** IRpcSyntaxNegotiate methods ***/
3394#define IRpcSyntaxNegotiate_NegotiateSyntax(This,pMsg) (This)->lpVtbl->NegotiateSyntax(This,pMsg)
3395#else
3396/*** IUnknown methods ***/
3397static FORCEINLINE HRESULT IRpcSyntaxNegotiate_QueryInterface(IRpcSyntaxNegotiate* This,REFIID riid,void **ppvObject) {
3398    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3399}
3400static FORCEINLINE ULONG IRpcSyntaxNegotiate_AddRef(IRpcSyntaxNegotiate* This) {
3401    return This->lpVtbl->AddRef(This);
3402}
3403static FORCEINLINE ULONG IRpcSyntaxNegotiate_Release(IRpcSyntaxNegotiate* This) {
3404    return This->lpVtbl->Release(This);
3405}
3406/*** IRpcSyntaxNegotiate methods ***/
3407static FORCEINLINE HRESULT IRpcSyntaxNegotiate_NegotiateSyntax(IRpcSyntaxNegotiate* This,RPCOLEMESSAGE *pMsg) {
3408    return This->lpVtbl->NegotiateSyntax(This,pMsg);
3409}
3410#endif
3411#endif
3412
3413#endif
3414
3415HRESULT STDMETHODCALLTYPE IRpcSyntaxNegotiate_NegotiateSyntax_Proxy(
3416    IRpcSyntaxNegotiate* This,
3417    RPCOLEMESSAGE *pMsg);
3418void __RPC_STUB IRpcSyntaxNegotiate_NegotiateSyntax_Stub(
3419    IRpcStubBuffer* This,
3420    IRpcChannelBuffer* pRpcChannelBuffer,
3421    PRPC_MESSAGE pRpcMessage,
3422    DWORD* pdwStubPhase);
3423
3424#endif  /* __IRpcSyntaxNegotiate_INTERFACE_DEFINED__ */
3425
3426
3427/*****************************************************************************
3428 * IRpcProxyBuffer interface
3429 */
3430#ifndef __IRpcProxyBuffer_INTERFACE_DEFINED__
3431#define __IRpcProxyBuffer_INTERFACE_DEFINED__
3432
3433DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
3434#if defined(__cplusplus) && !defined(CINTERFACE)
3435MIDL_INTERFACE("d5f56a34-593b-101a-b569-08002b2dbf7a")
3436IRpcProxyBuffer : public IUnknown
3437{
3438    virtual HRESULT STDMETHODCALLTYPE Connect(
3439        IRpcChannelBuffer *pRpcChannelBuffer) = 0;
3440
3441    virtual void STDMETHODCALLTYPE Disconnect(
3442        ) = 0;
3443
3444};
3445#ifdef __CRT_UUID_DECL
3446__CRT_UUID_DECL(IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
3447#endif
3448#else
3449typedef struct IRpcProxyBufferVtbl {
3450    BEGIN_INTERFACE
3451
3452    /*** IUnknown methods ***/
3453    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3454        IRpcProxyBuffer* This,
3455        REFIID riid,
3456        void **ppvObject);
3457
3458    ULONG (STDMETHODCALLTYPE *AddRef)(
3459        IRpcProxyBuffer* This);
3460
3461    ULONG (STDMETHODCALLTYPE *Release)(
3462        IRpcProxyBuffer* This);
3463
3464    /*** IRpcProxyBuffer methods ***/
3465    HRESULT (STDMETHODCALLTYPE *Connect)(
3466        IRpcProxyBuffer* This,
3467        IRpcChannelBuffer *pRpcChannelBuffer);
3468
3469    void (STDMETHODCALLTYPE *Disconnect)(
3470        IRpcProxyBuffer* This);
3471
3472    END_INTERFACE
3473} IRpcProxyBufferVtbl;
3474interface IRpcProxyBuffer {
3475    CONST_VTBL IRpcProxyBufferVtbl* lpVtbl;
3476};
3477
3478#ifdef COBJMACROS
3479#ifndef WIDL_C_INLINE_WRAPPERS
3480/*** IUnknown methods ***/
3481#define IRpcProxyBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3482#define IRpcProxyBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
3483#define IRpcProxyBuffer_Release(This) (This)->lpVtbl->Release(This)
3484/*** IRpcProxyBuffer methods ***/
3485#define IRpcProxyBuffer_Connect(This,pRpcChannelBuffer) (This)->lpVtbl->Connect(This,pRpcChannelBuffer)
3486#define IRpcProxyBuffer_Disconnect(This) (This)->lpVtbl->Disconnect(This)
3487#else
3488/*** IUnknown methods ***/
3489static FORCEINLINE HRESULT IRpcProxyBuffer_QueryInterface(IRpcProxyBuffer* This,REFIID riid,void **ppvObject) {
3490    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3491}
3492static FORCEINLINE ULONG IRpcProxyBuffer_AddRef(IRpcProxyBuffer* This) {
3493    return This->lpVtbl->AddRef(This);
3494}
3495static FORCEINLINE ULONG IRpcProxyBuffer_Release(IRpcProxyBuffer* This) {
3496    return This->lpVtbl->Release(This);
3497}
3498/*** IRpcProxyBuffer methods ***/
3499static FORCEINLINE HRESULT IRpcProxyBuffer_Connect(IRpcProxyBuffer* This,IRpcChannelBuffer *pRpcChannelBuffer) {
3500    return This->lpVtbl->Connect(This,pRpcChannelBuffer);
3501}
3502static FORCEINLINE void IRpcProxyBuffer_Disconnect(IRpcProxyBuffer* This) {
3503    This->lpVtbl->Disconnect(This);
3504}
3505#endif
3506#endif
3507
3508#endif
3509
3510HRESULT STDMETHODCALLTYPE IRpcProxyBuffer_Connect_Proxy(
3511    IRpcProxyBuffer* This,
3512    IRpcChannelBuffer *pRpcChannelBuffer);
3513void __RPC_STUB IRpcProxyBuffer_Connect_Stub(
3514    IRpcStubBuffer* This,
3515    IRpcChannelBuffer* pRpcChannelBuffer,
3516    PRPC_MESSAGE pRpcMessage,
3517    DWORD* pdwStubPhase);
3518void STDMETHODCALLTYPE IRpcProxyBuffer_Disconnect_Proxy(
3519    IRpcProxyBuffer* This);
3520void __RPC_STUB IRpcProxyBuffer_Disconnect_Stub(
3521    IRpcStubBuffer* This,
3522    IRpcChannelBuffer* pRpcChannelBuffer,
3523    PRPC_MESSAGE pRpcMessage,
3524    DWORD* pdwStubPhase);
3525
3526#endif  /* __IRpcProxyBuffer_INTERFACE_DEFINED__ */
3527
3528#endif
3529
3530#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
3531/*****************************************************************************
3532 * IRpcStubBuffer interface
3533 */
3534#ifndef __IRpcStubBuffer_INTERFACE_DEFINED__
3535#define __IRpcStubBuffer_INTERFACE_DEFINED__
3536
3537DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
3538#if defined(__cplusplus) && !defined(CINTERFACE)
3539MIDL_INTERFACE("d5f56afc-593b-101a-b569-08002b2dbf7a")
3540IRpcStubBuffer : public IUnknown
3541{
3542    virtual HRESULT STDMETHODCALLTYPE Connect(
3543        IUnknown *pUnkServer) = 0;
3544
3545    virtual void STDMETHODCALLTYPE Disconnect(
3546        ) = 0;
3547
3548    virtual HRESULT STDMETHODCALLTYPE Invoke(
3549        RPCOLEMESSAGE *_prpcmsg,
3550        IRpcChannelBuffer *_pRpcChannelBuffer) = 0;
3551
3552    virtual IRpcStubBuffer * STDMETHODCALLTYPE IsIIDSupported(
3553        REFIID riid) = 0;
3554
3555    virtual ULONG STDMETHODCALLTYPE CountRefs(
3556        ) = 0;
3557
3558    virtual HRESULT STDMETHODCALLTYPE DebugServerQueryInterface(
3559        void **ppv) = 0;
3560
3561    virtual void STDMETHODCALLTYPE DebugServerRelease(
3562        void *pv) = 0;
3563
3564};
3565#ifdef __CRT_UUID_DECL
3566__CRT_UUID_DECL(IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
3567#endif
3568#else
3569typedef struct IRpcStubBufferVtbl {
3570    BEGIN_INTERFACE
3571
3572    /*** IUnknown methods ***/
3573    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3574        IRpcStubBuffer* This,
3575        REFIID riid,
3576        void **ppvObject);
3577
3578    ULONG (STDMETHODCALLTYPE *AddRef)(
3579        IRpcStubBuffer* This);
3580
3581    ULONG (STDMETHODCALLTYPE *Release)(
3582        IRpcStubBuffer* This);
3583
3584    /*** IRpcStubBuffer methods ***/
3585    HRESULT (STDMETHODCALLTYPE *Connect)(
3586        IRpcStubBuffer* This,
3587        IUnknown *pUnkServer);
3588
3589    void (STDMETHODCALLTYPE *Disconnect)(
3590        IRpcStubBuffer* This);
3591
3592    HRESULT (STDMETHODCALLTYPE *Invoke)(
3593        IRpcStubBuffer* This,
3594        RPCOLEMESSAGE *_prpcmsg,
3595        IRpcChannelBuffer *_pRpcChannelBuffer);
3596
3597    IRpcStubBuffer * (STDMETHODCALLTYPE *IsIIDSupported)(
3598        IRpcStubBuffer* This,
3599        REFIID riid);
3600
3601    ULONG (STDMETHODCALLTYPE *CountRefs)(
3602        IRpcStubBuffer* This);
3603
3604    HRESULT (STDMETHODCALLTYPE *DebugServerQueryInterface)(
3605        IRpcStubBuffer* This,
3606        void **ppv);
3607
3608    void (STDMETHODCALLTYPE *DebugServerRelease)(
3609        IRpcStubBuffer* This,
3610        void *pv);
3611
3612    END_INTERFACE
3613} IRpcStubBufferVtbl;
3614interface IRpcStubBuffer {
3615    CONST_VTBL IRpcStubBufferVtbl* lpVtbl;
3616};
3617
3618#ifdef COBJMACROS
3619#ifndef WIDL_C_INLINE_WRAPPERS
3620/*** IUnknown methods ***/
3621#define IRpcStubBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3622#define IRpcStubBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
3623#define IRpcStubBuffer_Release(This) (This)->lpVtbl->Release(This)
3624/*** IRpcStubBuffer methods ***/
3625#define IRpcStubBuffer_Connect(This,pUnkServer) (This)->lpVtbl->Connect(This,pUnkServer)
3626#define IRpcStubBuffer_Disconnect(This) (This)->lpVtbl->Disconnect(This)
3627#define IRpcStubBuffer_Invoke(This,_prpcmsg,_pRpcChannelBuffer) (This)->lpVtbl->Invoke(This,_prpcmsg,_pRpcChannelBuffer)
3628#define IRpcStubBuffer_IsIIDSupported(This,riid) (This)->lpVtbl->IsIIDSupported(This,riid)
3629#define IRpcStubBuffer_CountRefs(This) (This)->lpVtbl->CountRefs(This)
3630#define IRpcStubBuffer_DebugServerQueryInterface(This,ppv) (This)->lpVtbl->DebugServerQueryInterface(This,ppv)
3631#define IRpcStubBuffer_DebugServerRelease(This,pv) (This)->lpVtbl->DebugServerRelease(This,pv)
3632#else
3633/*** IUnknown methods ***/
3634static FORCEINLINE HRESULT IRpcStubBuffer_QueryInterface(IRpcStubBuffer* This,REFIID riid,void **ppvObject) {
3635    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3636}
3637static FORCEINLINE ULONG IRpcStubBuffer_AddRef(IRpcStubBuffer* This) {
3638    return This->lpVtbl->AddRef(This);
3639}
3640static FORCEINLINE ULONG IRpcStubBuffer_Release(IRpcStubBuffer* This) {
3641    return This->lpVtbl->Release(This);
3642}
3643/*** IRpcStubBuffer methods ***/
3644static FORCEINLINE HRESULT IRpcStubBuffer_Connect(IRpcStubBuffer* This,IUnknown *pUnkServer) {
3645    return This->lpVtbl->Connect(This,pUnkServer);
3646}
3647static FORCEINLINE void IRpcStubBuffer_Disconnect(IRpcStubBuffer* This) {
3648    This->lpVtbl->Disconnect(This);
3649}
3650static FORCEINLINE HRESULT IRpcStubBuffer_Invoke(IRpcStubBuffer* This,RPCOLEMESSAGE *_prpcmsg,IRpcChannelBuffer *_pRpcChannelBuffer) {
3651    return This->lpVtbl->Invoke(This,_prpcmsg,_pRpcChannelBuffer);
3652}
3653static FORCEINLINE IRpcStubBuffer * IRpcStubBuffer_IsIIDSupported(IRpcStubBuffer* This,REFIID riid) {
3654    return This->lpVtbl->IsIIDSupported(This,riid);
3655}
3656static FORCEINLINE ULONG IRpcStubBuffer_CountRefs(IRpcStubBuffer* This) {
3657    return This->lpVtbl->CountRefs(This);
3658}
3659static FORCEINLINE HRESULT IRpcStubBuffer_DebugServerQueryInterface(IRpcStubBuffer* This,void **ppv) {
3660    return This->lpVtbl->DebugServerQueryInterface(This,ppv);
3661}
3662static FORCEINLINE void IRpcStubBuffer_DebugServerRelease(IRpcStubBuffer* This,void *pv) {
3663    This->lpVtbl->DebugServerRelease(This,pv);
3664}
3665#endif
3666#endif
3667
3668#endif
3669
3670HRESULT STDMETHODCALLTYPE IRpcStubBuffer_Connect_Proxy(
3671    IRpcStubBuffer* This,
3672    IUnknown *pUnkServer);
3673void __RPC_STUB IRpcStubBuffer_Connect_Stub(
3674    IRpcStubBuffer* This,
3675    IRpcChannelBuffer* pRpcChannelBuffer,
3676    PRPC_MESSAGE pRpcMessage,
3677    DWORD* pdwStubPhase);
3678void STDMETHODCALLTYPE IRpcStubBuffer_Disconnect_Proxy(
3679    IRpcStubBuffer* This);
3680void __RPC_STUB IRpcStubBuffer_Disconnect_Stub(
3681    IRpcStubBuffer* This,
3682    IRpcChannelBuffer* pRpcChannelBuffer,
3683    PRPC_MESSAGE pRpcMessage,
3684    DWORD* pdwStubPhase);
3685HRESULT STDMETHODCALLTYPE IRpcStubBuffer_Invoke_Proxy(
3686    IRpcStubBuffer* This,
3687    RPCOLEMESSAGE *_prpcmsg,
3688    IRpcChannelBuffer *_pRpcChannelBuffer);
3689void __RPC_STUB IRpcStubBuffer_Invoke_Stub(
3690    IRpcStubBuffer* This,
3691    IRpcChannelBuffer* pRpcChannelBuffer,
3692    PRPC_MESSAGE pRpcMessage,
3693    DWORD* pdwStubPhase);
3694IRpcStubBuffer * STDMETHODCALLTYPE IRpcStubBuffer_IsIIDSupported_Proxy(
3695    IRpcStubBuffer* This,
3696    REFIID riid);
3697void __RPC_STUB IRpcStubBuffer_IsIIDSupported_Stub(
3698    IRpcStubBuffer* This,
3699    IRpcChannelBuffer* pRpcChannelBuffer,
3700    PRPC_MESSAGE pRpcMessage,
3701    DWORD* pdwStubPhase);
3702ULONG STDMETHODCALLTYPE IRpcStubBuffer_CountRefs_Proxy(
3703    IRpcStubBuffer* This);
3704void __RPC_STUB IRpcStubBuffer_CountRefs_Stub(
3705    IRpcStubBuffer* This,
3706    IRpcChannelBuffer* pRpcChannelBuffer,
3707    PRPC_MESSAGE pRpcMessage,
3708    DWORD* pdwStubPhase);
3709HRESULT STDMETHODCALLTYPE IRpcStubBuffer_DebugServerQueryInterface_Proxy(
3710    IRpcStubBuffer* This,
3711    void **ppv);
3712void __RPC_STUB IRpcStubBuffer_DebugServerQueryInterface_Stub(
3713    IRpcStubBuffer* This,
3714    IRpcChannelBuffer* pRpcChannelBuffer,
3715    PRPC_MESSAGE pRpcMessage,
3716    DWORD* pdwStubPhase);
3717void STDMETHODCALLTYPE IRpcStubBuffer_DebugServerRelease_Proxy(
3718    IRpcStubBuffer* This,
3719    void *pv);
3720void __RPC_STUB IRpcStubBuffer_DebugServerRelease_Stub(
3721    IRpcStubBuffer* This,
3722    IRpcChannelBuffer* pRpcChannelBuffer,
3723    PRPC_MESSAGE pRpcMessage,
3724    DWORD* pdwStubPhase);
3725
3726#endif  /* __IRpcStubBuffer_INTERFACE_DEFINED__ */
3727
3728
3729/*****************************************************************************
3730 * IPSFactoryBuffer interface
3731 */
3732#ifndef __IPSFactoryBuffer_INTERFACE_DEFINED__
3733#define __IPSFactoryBuffer_INTERFACE_DEFINED__
3734
3735DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
3736#if defined(__cplusplus) && !defined(CINTERFACE)
3737MIDL_INTERFACE("d5f569d0-593b-101a-b569-08002b2dbf7a")
3738IPSFactoryBuffer : public IUnknown
3739{
3740    virtual HRESULT STDMETHODCALLTYPE CreateProxy(
3741        IUnknown *pUnkOuter,
3742        REFIID riid,
3743        IRpcProxyBuffer **ppProxy,
3744        void **ppv) = 0;
3745
3746    virtual HRESULT STDMETHODCALLTYPE CreateStub(
3747        REFIID riid,
3748        IUnknown *pUnkServer,
3749        IRpcStubBuffer **ppStub) = 0;
3750
3751};
3752#ifdef __CRT_UUID_DECL
3753__CRT_UUID_DECL(IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
3754#endif
3755#else
3756typedef struct IPSFactoryBufferVtbl {
3757    BEGIN_INTERFACE
3758
3759    /*** IUnknown methods ***/
3760    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3761        IPSFactoryBuffer* This,
3762        REFIID riid,
3763        void **ppvObject);
3764
3765    ULONG (STDMETHODCALLTYPE *AddRef)(
3766        IPSFactoryBuffer* This);
3767
3768    ULONG (STDMETHODCALLTYPE *Release)(
3769        IPSFactoryBuffer* This);
3770
3771    /*** IPSFactoryBuffer methods ***/
3772    HRESULT (STDMETHODCALLTYPE *CreateProxy)(
3773        IPSFactoryBuffer* This,
3774        IUnknown *pUnkOuter,
3775        REFIID riid,
3776        IRpcProxyBuffer **ppProxy,
3777        void **ppv);
3778
3779    HRESULT (STDMETHODCALLTYPE *CreateStub)(
3780        IPSFactoryBuffer* This,
3781        REFIID riid,
3782        IUnknown *pUnkServer,
3783        IRpcStubBuffer **ppStub);
3784
3785    END_INTERFACE
3786} IPSFactoryBufferVtbl;
3787interface IPSFactoryBuffer {
3788    CONST_VTBL IPSFactoryBufferVtbl* lpVtbl;
3789};
3790
3791#ifdef COBJMACROS
3792#ifndef WIDL_C_INLINE_WRAPPERS
3793/*** IUnknown methods ***/
3794#define IPSFactoryBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3795#define IPSFactoryBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
3796#define IPSFactoryBuffer_Release(This) (This)->lpVtbl->Release(This)
3797/*** IPSFactoryBuffer methods ***/
3798#define IPSFactoryBuffer_CreateProxy(This,pUnkOuter,riid,ppProxy,ppv) (This)->lpVtbl->CreateProxy(This,pUnkOuter,riid,ppProxy,ppv)
3799#define IPSFactoryBuffer_CreateStub(This,riid,pUnkServer,ppStub) (This)->lpVtbl->CreateStub(This,riid,pUnkServer,ppStub)
3800#else
3801/*** IUnknown methods ***/
3802static FORCEINLINE HRESULT IPSFactoryBuffer_QueryInterface(IPSFactoryBuffer* This,REFIID riid,void **ppvObject) {
3803    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3804}
3805static FORCEINLINE ULONG IPSFactoryBuffer_AddRef(IPSFactoryBuffer* This) {
3806    return This->lpVtbl->AddRef(This);
3807}
3808static FORCEINLINE ULONG IPSFactoryBuffer_Release(IPSFactoryBuffer* This) {
3809    return This->lpVtbl->Release(This);
3810}
3811/*** IPSFactoryBuffer methods ***/
3812static FORCEINLINE HRESULT IPSFactoryBuffer_CreateProxy(IPSFactoryBuffer* This,IUnknown *pUnkOuter,REFIID riid,IRpcProxyBuffer **ppProxy,void **ppv) {
3813    return This->lpVtbl->CreateProxy(This,pUnkOuter,riid,ppProxy,ppv);
3814}
3815static FORCEINLINE HRESULT IPSFactoryBuffer_CreateStub(IPSFactoryBuffer* This,REFIID riid,IUnknown *pUnkServer,IRpcStubBuffer **ppStub) {
3816    return This->lpVtbl->CreateStub(This,riid,pUnkServer,ppStub);
3817}
3818#endif
3819#endif
3820
3821#endif
3822
3823HRESULT STDMETHODCALLTYPE IPSFactoryBuffer_CreateProxy_Proxy(
3824    IPSFactoryBuffer* This,
3825    IUnknown *pUnkOuter,
3826    REFIID riid,
3827    IRpcProxyBuffer **ppProxy,
3828    void **ppv);
3829void __RPC_STUB IPSFactoryBuffer_CreateProxy_Stub(
3830    IRpcStubBuffer* This,
3831    IRpcChannelBuffer* pRpcChannelBuffer,
3832    PRPC_MESSAGE pRpcMessage,
3833    DWORD* pdwStubPhase);
3834HRESULT STDMETHODCALLTYPE IPSFactoryBuffer_CreateStub_Proxy(
3835    IPSFactoryBuffer* This,
3836    REFIID riid,
3837    IUnknown *pUnkServer,
3838    IRpcStubBuffer **ppStub);
3839void __RPC_STUB IPSFactoryBuffer_CreateStub_Stub(
3840    IRpcStubBuffer* This,
3841    IRpcChannelBuffer* pRpcChannelBuffer,
3842    PRPC_MESSAGE pRpcMessage,
3843    DWORD* pdwStubPhase);
3844
3845#endif  /* __IPSFactoryBuffer_INTERFACE_DEFINED__ */
3846
3847#endif
3848
3849#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
3850#if  (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)
3851typedef struct SChannelHookCallInfo {
3852    IID iid;
3853    DWORD cbSize;
3854    GUID uCausality;
3855    DWORD dwServerPid;
3856    DWORD iMethod;
3857    void *pObject;
3858} SChannelHookCallInfo;
3859
3860/*****************************************************************************
3861 * IChannelHook interface
3862 */
3863#ifndef __IChannelHook_INTERFACE_DEFINED__
3864#define __IChannelHook_INTERFACE_DEFINED__
3865
3866DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
3867#if defined(__cplusplus) && !defined(CINTERFACE)
3868MIDL_INTERFACE("1008c4a0-7613-11cf-9af1-0020af6e72f4")
3869IChannelHook : public IUnknown
3870{
3871    virtual void STDMETHODCALLTYPE ClientGetSize(
3872        REFGUID uExtent,
3873        REFIID riid,
3874        ULONG *pDataSize) = 0;
3875
3876    virtual void STDMETHODCALLTYPE ClientFillBuffer(
3877        REFGUID uExtent,
3878        REFIID riid,
3879        ULONG *pDataSize,
3880        void *pDataBuffer) = 0;
3881
3882    virtual void STDMETHODCALLTYPE ClientNotify(
3883        REFGUID uExtent,
3884        REFIID riid,
3885        ULONG cbDataSize,
3886        void *pDataBuffer,
3887        DWORD lDataRep,
3888        HRESULT hrFault) = 0;
3889
3890    virtual void STDMETHODCALLTYPE ServerNotify(
3891        REFGUID uExtent,
3892        REFIID riid,
3893        ULONG cbDataSize,
3894        void *pDataBuffer,
3895        DWORD lDataRep) = 0;
3896
3897    virtual void STDMETHODCALLTYPE ServerGetSize(
3898        REFGUID uExtent,
3899        REFIID riid,
3900        HRESULT hrFault,
3901        ULONG *pDataSize) = 0;
3902
3903    virtual void STDMETHODCALLTYPE ServerFillBuffer(
3904        REFGUID uExtent,
3905        REFIID riid,
3906        ULONG *pDataSize,
3907        void *pDataBuffer,
3908        HRESULT hrFault) = 0;
3909
3910};
3911#ifdef __CRT_UUID_DECL
3912__CRT_UUID_DECL(IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4)
3913#endif
3914#else
3915typedef struct IChannelHookVtbl {
3916    BEGIN_INTERFACE
3917
3918    /*** IUnknown methods ***/
3919    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3920        IChannelHook* This,
3921        REFIID riid,
3922        void **ppvObject);
3923
3924    ULONG (STDMETHODCALLTYPE *AddRef)(
3925        IChannelHook* This);
3926
3927    ULONG (STDMETHODCALLTYPE *Release)(
3928        IChannelHook* This);
3929
3930    /*** IChannelHook methods ***/
3931    void (STDMETHODCALLTYPE *ClientGetSize)(
3932        IChannelHook* This,
3933        REFGUID uExtent,
3934        REFIID riid,
3935        ULONG *pDataSize);
3936
3937    void (STDMETHODCALLTYPE *ClientFillBuffer)(
3938        IChannelHook* This,
3939        REFGUID uExtent,
3940        REFIID riid,
3941        ULONG *pDataSize,
3942        void *pDataBuffer);
3943
3944    void (STDMETHODCALLTYPE *ClientNotify)(
3945        IChannelHook* This,
3946        REFGUID uExtent,
3947        REFIID riid,
3948        ULONG cbDataSize,
3949        void *pDataBuffer,
3950        DWORD lDataRep,
3951        HRESULT hrFault);
3952
3953    void (STDMETHODCALLTYPE *ServerNotify)(
3954        IChannelHook* This,
3955        REFGUID uExtent,
3956        REFIID riid,
3957        ULONG cbDataSize,
3958        void *pDataBuffer,
3959        DWORD lDataRep);
3960
3961    void (STDMETHODCALLTYPE *ServerGetSize)(
3962        IChannelHook* This,
3963        REFGUID uExtent,
3964        REFIID riid,
3965        HRESULT hrFault,
3966        ULONG *pDataSize);
3967
3968    void (STDMETHODCALLTYPE *ServerFillBuffer)(
3969        IChannelHook* This,
3970        REFGUID uExtent,
3971        REFIID riid,
3972        ULONG *pDataSize,
3973        void *pDataBuffer,
3974        HRESULT hrFault);
3975
3976    END_INTERFACE
3977} IChannelHookVtbl;
3978interface IChannelHook {
3979    CONST_VTBL IChannelHookVtbl* lpVtbl;
3980};
3981
3982#ifdef COBJMACROS
3983#ifndef WIDL_C_INLINE_WRAPPERS
3984/*** IUnknown methods ***/
3985#define IChannelHook_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3986#define IChannelHook_AddRef(This) (This)->lpVtbl->AddRef(This)
3987#define IChannelHook_Release(This) (This)->lpVtbl->Release(This)
3988/*** IChannelHook methods ***/
3989#define IChannelHook_ClientGetSize(This,uExtent,riid,pDataSize) (This)->lpVtbl->ClientGetSize(This,uExtent,riid,pDataSize)
3990#define IChannelHook_ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer) (This)->lpVtbl->ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer)
3991#define IChannelHook_ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault) (This)->lpVtbl->ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault)
3992#define IChannelHook_ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep) (This)->lpVtbl->ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep)
3993#define IChannelHook_ServerGetSize(This,uExtent,riid,hrFault,pDataSize) (This)->lpVtbl->ServerGetSize(This,uExtent,riid,hrFault,pDataSize)
3994#define IChannelHook_ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault) (This)->lpVtbl->ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault)
3995#else
3996/*** IUnknown methods ***/
3997static FORCEINLINE HRESULT IChannelHook_QueryInterface(IChannelHook* This,REFIID riid,void **ppvObject) {
3998    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3999}
4000static FORCEINLINE ULONG IChannelHook_AddRef(IChannelHook* This) {
4001    return This->lpVtbl->AddRef(This);
4002}
4003static FORCEINLINE ULONG IChannelHook_Release(IChannelHook* This) {
4004    return This->lpVtbl->Release(This);
4005}
4006/*** IChannelHook methods ***/
4007static FORCEINLINE void IChannelHook_ClientGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize) {
4008    This->lpVtbl->ClientGetSize(This,uExtent,riid,pDataSize);
4009}
4010static FORCEINLINE void IChannelHook_ClientFillBuffer(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer) {
4011    This->lpVtbl->ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer);
4012}
4013static FORCEINLINE void IChannelHook_ClientNotify(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG cbDataSize,void *pDataBuffer,DWORD lDataRep,HRESULT hrFault) {
4014    This->lpVtbl->ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault);
4015}
4016static FORCEINLINE void IChannelHook_ServerNotify(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG cbDataSize,void *pDataBuffer,DWORD lDataRep) {
4017    This->lpVtbl->ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep);
4018}
4019static FORCEINLINE void IChannelHook_ServerGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,HRESULT hrFault,ULONG *pDataSize) {
4020    This->lpVtbl->ServerGetSize(This,uExtent,riid,hrFault,pDataSize);
4021}
4022static FORCEINLINE void IChannelHook_ServerFillBuffer(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer,HRESULT hrFault) {
4023    This->lpVtbl->ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault);
4024}
4025#endif
4026#endif
4027
4028#endif
4029
4030void STDMETHODCALLTYPE IChannelHook_ClientGetSize_Proxy(
4031    IChannelHook* This,
4032    REFGUID uExtent,
4033    REFIID riid,
4034    ULONG *pDataSize);
4035void __RPC_STUB IChannelHook_ClientGetSize_Stub(
4036    IRpcStubBuffer* This,
4037    IRpcChannelBuffer* pRpcChannelBuffer,
4038    PRPC_MESSAGE pRpcMessage,
4039    DWORD* pdwStubPhase);
4040void STDMETHODCALLTYPE IChannelHook_ClientFillBuffer_Proxy(
4041    IChannelHook* This,
4042    REFGUID uExtent,
4043    REFIID riid,
4044    ULONG *pDataSize,
4045    void *pDataBuffer);
4046void __RPC_STUB IChannelHook_ClientFillBuffer_Stub(
4047    IRpcStubBuffer* This,
4048    IRpcChannelBuffer* pRpcChannelBuffer,
4049    PRPC_MESSAGE pRpcMessage,
4050    DWORD* pdwStubPhase);
4051void STDMETHODCALLTYPE IChannelHook_ClientNotify_Proxy(
4052    IChannelHook* This,
4053    REFGUID uExtent,
4054    REFIID riid,
4055    ULONG cbDataSize,
4056    void *pDataBuffer,
4057    DWORD lDataRep,
4058    HRESULT hrFault);
4059void __RPC_STUB IChannelHook_ClientNotify_Stub(
4060    IRpcStubBuffer* This,
4061    IRpcChannelBuffer* pRpcChannelBuffer,
4062    PRPC_MESSAGE pRpcMessage,
4063    DWORD* pdwStubPhase);
4064void STDMETHODCALLTYPE IChannelHook_ServerNotify_Proxy(
4065    IChannelHook* This,
4066    REFGUID uExtent,
4067    REFIID riid,
4068    ULONG cbDataSize,
4069    void *pDataBuffer,
4070    DWORD lDataRep);
4071void __RPC_STUB IChannelHook_ServerNotify_Stub(
4072    IRpcStubBuffer* This,
4073    IRpcChannelBuffer* pRpcChannelBuffer,
4074    PRPC_MESSAGE pRpcMessage,
4075    DWORD* pdwStubPhase);
4076void STDMETHODCALLTYPE IChannelHook_ServerGetSize_Proxy(
4077    IChannelHook* This,
4078    REFGUID uExtent,
4079    REFIID riid,
4080    HRESULT hrFault,
4081    ULONG *pDataSize);
4082void __RPC_STUB IChannelHook_ServerGetSize_Stub(
4083    IRpcStubBuffer* This,
4084    IRpcChannelBuffer* pRpcChannelBuffer,
4085    PRPC_MESSAGE pRpcMessage,
4086    DWORD* pdwStubPhase);
4087void STDMETHODCALLTYPE IChannelHook_ServerFillBuffer_Proxy(
4088    IChannelHook* This,
4089    REFGUID uExtent,
4090    REFIID riid,
4091    ULONG *pDataSize,
4092    void *pDataBuffer,
4093    HRESULT hrFault);
4094void __RPC_STUB IChannelHook_ServerFillBuffer_Stub(
4095    IRpcStubBuffer* This,
4096    IRpcChannelBuffer* pRpcChannelBuffer,
4097    PRPC_MESSAGE pRpcMessage,
4098    DWORD* pdwStubPhase);
4099
4100#endif  /* __IChannelHook_INTERFACE_DEFINED__ */
4101
4102#endif
4103#endif
4104
4105#if  (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)
4106#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
4107/*****************************************************************************
4108 * IClientSecurity interface
4109 */
4110#ifndef __IClientSecurity_INTERFACE_DEFINED__
4111#define __IClientSecurity_INTERFACE_DEFINED__
4112
4113typedef struct tagSOLE_AUTHENTICATION_SERVICE {
4114    DWORD dwAuthnSvc;
4115    DWORD dwAuthzSvc;
4116    OLECHAR *pPrincipalName;
4117    HRESULT hr;
4118} SOLE_AUTHENTICATION_SERVICE;
4119
4120typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
4121
4122typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
4123    EOAC_NONE = 0x0,
4124    EOAC_MUTUAL_AUTH = 0x1,
4125    EOAC_STATIC_CLOAKING = 0x20,
4126    EOAC_DYNAMIC_CLOAKING = 0x40,
4127    EOAC_ANY_AUTHORITY = 0x80,
4128    EOAC_MAKE_FULLSIC = 0x100,
4129    EOAC_DEFAULT = 0x800,
4130    EOAC_SECURE_REFS = 0x2,
4131    EOAC_ACCESS_CONTROL = 0x4,
4132    EOAC_APPID = 0x8,
4133    EOAC_DYNAMIC = 0x10,
4134    EOAC_REQUIRE_FULLSIC = 0x200,
4135    EOAC_AUTO_IMPERSONATE = 0x400,
4136    EOAC_NO_CUSTOM_MARSHAL = 0x2000,
4137    EOAC_DISABLE_AAA = 0x1000
4138} EOLE_AUTHENTICATION_CAPABILITIES;
4139
4140#define COLE_DEFAULT_PRINCIPAL ((OLECHAR *)(INT_PTR)-1)
4141
4142#define COLE_DEFAULT_AUTHINFO ((void *)(INT_PTR)-1)
4143
4144
4145typedef struct tagSOLE_AUTHENTICATION_INFO {
4146    DWORD dwAuthnSvc;
4147    DWORD dwAuthzSvc;
4148    void *pAuthInfo;
4149} SOLE_AUTHENTICATION_INFO;
4150typedef struct tagSOLE_AUTHENTICATION_INFO *PSOLE_AUTHENTICATION_INFO;
4151
4152typedef struct tagSOLE_AUTHENTICATION_LIST {
4153    DWORD cAuthInfo;
4154    SOLE_AUTHENTICATION_INFO *aAuthInfo;
4155} SOLE_AUTHENTICATION_LIST;
4156typedef struct tagSOLE_AUTHENTICATION_LIST *PSOLE_AUTHENTICATION_LIST;
4157
4158DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4159#if defined(__cplusplus) && !defined(CINTERFACE)
4160MIDL_INTERFACE("0000013d-0000-0000-c000-000000000046")
4161IClientSecurity : public IUnknown
4162{
4163    virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
4164        IUnknown *pProxy,
4165        DWORD *pAuthnSvc,
4166        DWORD *pAuthzSvc,
4167        OLECHAR **pServerPrincName,
4168        DWORD *pAuthnLevel,
4169        DWORD *pImpLevel,
4170        void **pAuthInfo,
4171        DWORD *pCapabilites) = 0;
4172
4173    virtual HRESULT STDMETHODCALLTYPE SetBlanket(
4174        IUnknown *pProxy,
4175        DWORD dwAuthnSvc,
4176        DWORD dwAuthzSvc,
4177        OLECHAR *pServerPrincName,
4178        DWORD dwAuthnLevel,
4179        DWORD dwImpLevel,
4180        void *pAuthInfo,
4181        DWORD dwCapabilities) = 0;
4182
4183    virtual HRESULT STDMETHODCALLTYPE CopyProxy(
4184        IUnknown *pProxy,
4185        IUnknown **ppCopy) = 0;
4186
4187};
4188#ifdef __CRT_UUID_DECL
4189__CRT_UUID_DECL(IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4190#endif
4191#else
4192typedef struct IClientSecurityVtbl {
4193    BEGIN_INTERFACE
4194
4195    /*** IUnknown methods ***/
4196    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4197        IClientSecurity* This,
4198        REFIID riid,
4199        void **ppvObject);
4200
4201    ULONG (STDMETHODCALLTYPE *AddRef)(
4202        IClientSecurity* This);
4203
4204    ULONG (STDMETHODCALLTYPE *Release)(
4205        IClientSecurity* This);
4206
4207    /*** IClientSecurity methods ***/
4208    HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
4209        IClientSecurity* This,
4210        IUnknown *pProxy,
4211        DWORD *pAuthnSvc,
4212        DWORD *pAuthzSvc,
4213        OLECHAR **pServerPrincName,
4214        DWORD *pAuthnLevel,
4215        DWORD *pImpLevel,
4216        void **pAuthInfo,
4217        DWORD *pCapabilites);
4218
4219    HRESULT (STDMETHODCALLTYPE *SetBlanket)(
4220        IClientSecurity* This,
4221        IUnknown *pProxy,
4222        DWORD dwAuthnSvc,
4223        DWORD dwAuthzSvc,
4224        OLECHAR *pServerPrincName,
4225        DWORD dwAuthnLevel,
4226        DWORD dwImpLevel,
4227        void *pAuthInfo,
4228        DWORD dwCapabilities);
4229
4230    HRESULT (STDMETHODCALLTYPE *CopyProxy)(
4231        IClientSecurity* This,
4232        IUnknown *pProxy,
4233        IUnknown **ppCopy);
4234
4235    END_INTERFACE
4236} IClientSecurityVtbl;
4237interface IClientSecurity {
4238    CONST_VTBL IClientSecurityVtbl* lpVtbl;
4239};
4240
4241#ifdef COBJMACROS
4242#ifndef WIDL_C_INLINE_WRAPPERS
4243/*** IUnknown methods ***/
4244#define IClientSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4245#define IClientSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
4246#define IClientSecurity_Release(This) (This)->lpVtbl->Release(This)
4247/*** IClientSecurity methods ***/
4248#define IClientSecurity_QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites) (This)->lpVtbl->QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites)
4249#define IClientSecurity_SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities) (This)->lpVtbl->SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities)
4250#define IClientSecurity_CopyProxy(This,pProxy,ppCopy) (This)->lpVtbl->CopyProxy(This,pProxy,ppCopy)
4251#else
4252/*** IUnknown methods ***/
4253static FORCEINLINE HRESULT IClientSecurity_QueryInterface(IClientSecurity* This,REFIID riid,void **ppvObject) {
4254    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4255}
4256static FORCEINLINE ULONG IClientSecurity_AddRef(IClientSecurity* This) {
4257    return This->lpVtbl->AddRef(This);
4258}
4259static FORCEINLINE ULONG IClientSecurity_Release(IClientSecurity* This) {
4260    return This->lpVtbl->Release(This);
4261}
4262/*** IClientSecurity methods ***/
4263static FORCEINLINE HRESULT IClientSecurity_QueryBlanket(IClientSecurity* This,IUnknown *pProxy,DWORD *pAuthnSvc,DWORD *pAuthzSvc,OLECHAR **pServerPrincName,DWORD *pAuthnLevel,DWORD *pImpLevel,void **pAuthInfo,DWORD *pCapabilites) {
4264    return This->lpVtbl->QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites);
4265}
4266static FORCEINLINE HRESULT IClientSecurity_SetBlanket(IClientSecurity* This,IUnknown *pProxy,DWORD dwAuthnSvc,DWORD dwAuthzSvc,OLECHAR *pServerPrincName,DWORD dwAuthnLevel,DWORD dwImpLevel,void *pAuthInfo,DWORD dwCapabilities) {
4267    return This->lpVtbl->SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities);
4268}
4269static FORCEINLINE HRESULT IClientSecurity_CopyProxy(IClientSecurity* This,IUnknown *pProxy,IUnknown **ppCopy) {
4270    return This->lpVtbl->CopyProxy(This,pProxy,ppCopy);
4271}
4272#endif
4273#endif
4274
4275#endif
4276
4277HRESULT STDMETHODCALLTYPE IClientSecurity_QueryBlanket_Proxy(
4278    IClientSecurity* This,
4279    IUnknown *pProxy,
4280    DWORD *pAuthnSvc,
4281    DWORD *pAuthzSvc,
4282    OLECHAR **pServerPrincName,
4283    DWORD *pAuthnLevel,
4284    DWORD *pImpLevel,
4285    void **pAuthInfo,
4286    DWORD *pCapabilites);
4287void __RPC_STUB IClientSecurity_QueryBlanket_Stub(
4288    IRpcStubBuffer* This,
4289    IRpcChannelBuffer* pRpcChannelBuffer,
4290    PRPC_MESSAGE pRpcMessage,
4291    DWORD* pdwStubPhase);
4292HRESULT STDMETHODCALLTYPE IClientSecurity_SetBlanket_Proxy(
4293    IClientSecurity* This,
4294    IUnknown *pProxy,
4295    DWORD dwAuthnSvc,
4296    DWORD dwAuthzSvc,
4297    OLECHAR *pServerPrincName,
4298    DWORD dwAuthnLevel,
4299    DWORD dwImpLevel,
4300    void *pAuthInfo,
4301    DWORD dwCapabilities);
4302void __RPC_STUB IClientSecurity_SetBlanket_Stub(
4303    IRpcStubBuffer* This,
4304    IRpcChannelBuffer* pRpcChannelBuffer,
4305    PRPC_MESSAGE pRpcMessage,
4306    DWORD* pdwStubPhase);
4307HRESULT STDMETHODCALLTYPE IClientSecurity_CopyProxy_Proxy(
4308    IClientSecurity* This,
4309    IUnknown *pProxy,
4310    IUnknown **ppCopy);
4311void __RPC_STUB IClientSecurity_CopyProxy_Stub(
4312    IRpcStubBuffer* This,
4313    IRpcChannelBuffer* pRpcChannelBuffer,
4314    PRPC_MESSAGE pRpcMessage,
4315    DWORD* pdwStubPhase);
4316
4317#endif  /* __IClientSecurity_INTERFACE_DEFINED__ */
4318
4319#endif
4320
4321#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
4322/*****************************************************************************
4323 * IServerSecurity interface
4324 */
4325#ifndef __IServerSecurity_INTERFACE_DEFINED__
4326#define __IServerSecurity_INTERFACE_DEFINED__
4327
4328DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4329#if defined(__cplusplus) && !defined(CINTERFACE)
4330MIDL_INTERFACE("0000013e-0000-0000-c000-000000000046")
4331IServerSecurity : public IUnknown
4332{
4333    virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
4334        DWORD *pAuthnSvc,
4335        DWORD *pAuthzSvc,
4336        OLECHAR **pServerPrincName,
4337        DWORD *pAuthnLevel,
4338        DWORD *pImpLevel,
4339        void **pPrivs,
4340        DWORD *pCapabilities) = 0;
4341
4342    virtual HRESULT STDMETHODCALLTYPE ImpersonateClient(
4343        ) = 0;
4344
4345    virtual HRESULT STDMETHODCALLTYPE RevertToSelf(
4346        ) = 0;
4347
4348    virtual WINBOOL STDMETHODCALLTYPE IsImpersonating(
4349        ) = 0;
4350
4351};
4352#ifdef __CRT_UUID_DECL
4353__CRT_UUID_DECL(IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4354#endif
4355#else
4356typedef struct IServerSecurityVtbl {
4357    BEGIN_INTERFACE
4358
4359    /*** IUnknown methods ***/
4360    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4361        IServerSecurity* This,
4362        REFIID riid,
4363        void **ppvObject);
4364
4365    ULONG (STDMETHODCALLTYPE *AddRef)(
4366        IServerSecurity* This);
4367
4368    ULONG (STDMETHODCALLTYPE *Release)(
4369        IServerSecurity* This);
4370
4371    /*** IServerSecurity methods ***/
4372    HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
4373        IServerSecurity* This,
4374        DWORD *pAuthnSvc,
4375        DWORD *pAuthzSvc,
4376        OLECHAR **pServerPrincName,
4377        DWORD *pAuthnLevel,
4378        DWORD *pImpLevel,
4379        void **pPrivs,
4380        DWORD *pCapabilities);
4381
4382    HRESULT (STDMETHODCALLTYPE *ImpersonateClient)(
4383        IServerSecurity* This);
4384
4385    HRESULT (STDMETHODCALLTYPE *RevertToSelf)(
4386        IServerSecurity* This);
4387
4388    WINBOOL (STDMETHODCALLTYPE *IsImpersonating)(
4389        IServerSecurity* This);
4390
4391    END_INTERFACE
4392} IServerSecurityVtbl;
4393interface IServerSecurity {
4394    CONST_VTBL IServerSecurityVtbl* lpVtbl;
4395};
4396
4397#ifdef COBJMACROS
4398#ifndef WIDL_C_INLINE_WRAPPERS
4399/*** IUnknown methods ***/
4400#define IServerSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4401#define IServerSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
4402#define IServerSecurity_Release(This) (This)->lpVtbl->Release(This)
4403/*** IServerSecurity methods ***/
4404#define IServerSecurity_QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities) (This)->lpVtbl->QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities)
4405#define IServerSecurity_ImpersonateClient(This) (This)->lpVtbl->ImpersonateClient(This)
4406#define IServerSecurity_RevertToSelf(This) (This)->lpVtbl->RevertToSelf(This)
4407#define IServerSecurity_IsImpersonating(This) (This)->lpVtbl->IsImpersonating(This)
4408#else
4409/*** IUnknown methods ***/
4410static FORCEINLINE HRESULT IServerSecurity_QueryInterface(IServerSecurity* This,REFIID riid,void **ppvObject) {
4411    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4412}
4413static FORCEINLINE ULONG IServerSecurity_AddRef(IServerSecurity* This) {
4414    return This->lpVtbl->AddRef(This);
4415}
4416static FORCEINLINE ULONG IServerSecurity_Release(IServerSecurity* This) {
4417    return This->lpVtbl->Release(This);
4418}
4419/*** IServerSecurity methods ***/
4420static FORCEINLINE HRESULT IServerSecurity_QueryBlanket(IServerSecurity* This,DWORD *pAuthnSvc,DWORD *pAuthzSvc,OLECHAR **pServerPrincName,DWORD *pAuthnLevel,DWORD *pImpLevel,void **pPrivs,DWORD *pCapabilities) {
4421    return This->lpVtbl->QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities);
4422}
4423static FORCEINLINE HRESULT IServerSecurity_ImpersonateClient(IServerSecurity* This) {
4424    return This->lpVtbl->ImpersonateClient(This);
4425}
4426static FORCEINLINE HRESULT IServerSecurity_RevertToSelf(IServerSecurity* This) {
4427    return This->lpVtbl->RevertToSelf(This);
4428}
4429static FORCEINLINE WINBOOL IServerSecurity_IsImpersonating(IServerSecurity* This) {
4430    return This->lpVtbl->IsImpersonating(This);
4431}
4432#endif
4433#endif
4434
4435#endif
4436
4437HRESULT STDMETHODCALLTYPE IServerSecurity_QueryBlanket_Proxy(
4438    IServerSecurity* This,
4439    DWORD *pAuthnSvc,
4440    DWORD *pAuthzSvc,
4441    OLECHAR **pServerPrincName,
4442    DWORD *pAuthnLevel,
4443    DWORD *pImpLevel,
4444    void **pPrivs,
4445    DWORD *pCapabilities);
4446void __RPC_STUB IServerSecurity_QueryBlanket_Stub(
4447    IRpcStubBuffer* This,
4448    IRpcChannelBuffer* pRpcChannelBuffer,
4449    PRPC_MESSAGE pRpcMessage,
4450    DWORD* pdwStubPhase);
4451HRESULT STDMETHODCALLTYPE IServerSecurity_ImpersonateClient_Proxy(
4452    IServerSecurity* This);
4453void __RPC_STUB IServerSecurity_ImpersonateClient_Stub(
4454    IRpcStubBuffer* This,
4455    IRpcChannelBuffer* pRpcChannelBuffer,
4456    PRPC_MESSAGE pRpcMessage,
4457    DWORD* pdwStubPhase);
4458HRESULT STDMETHODCALLTYPE IServerSecurity_RevertToSelf_Proxy(
4459    IServerSecurity* This);
4460void __RPC_STUB IServerSecurity_RevertToSelf_Stub(
4461    IRpcStubBuffer* This,
4462    IRpcChannelBuffer* pRpcChannelBuffer,
4463    PRPC_MESSAGE pRpcMessage,
4464    DWORD* pdwStubPhase);
4465WINBOOL STDMETHODCALLTYPE IServerSecurity_IsImpersonating_Proxy(
4466    IServerSecurity* This);
4467void __RPC_STUB IServerSecurity_IsImpersonating_Stub(
4468    IRpcStubBuffer* This,
4469    IRpcChannelBuffer* pRpcChannelBuffer,
4470    PRPC_MESSAGE pRpcMessage,
4471    DWORD* pdwStubPhase);
4472
4473#endif  /* __IServerSecurity_INTERFACE_DEFINED__ */
4474
4475
4476typedef enum tagRPCOPT_PROPERTIES {
4477    COMBND_RPCTIMEOUT = 0x1,
4478    COMBND_SERVER_LOCALITY = 0x2,
4479    COMBND_RESERVED1 = 0x4
4480} RPCOPT_PROPERTIES;
4481
4482typedef enum tagRPCOPT_SERVER_LOCALITY_VALUES {
4483    SERVER_LOCALITY_PROCESS_LOCAL = 0,
4484    SERVER_LOCALITY_MACHINE_LOCAL = 1,
4485    SERVER_LOCALITY_REMOTE = 2
4486} RPCOPT_SERVER_LOCALITY_VALUES;
4487
4488/*****************************************************************************
4489 * IRpcOptions interface
4490 */
4491#ifndef __IRpcOptions_INTERFACE_DEFINED__
4492#define __IRpcOptions_INTERFACE_DEFINED__
4493
4494DEFINE_GUID(IID_IRpcOptions, 0x00000144, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4495#if defined(__cplusplus) && !defined(CINTERFACE)
4496MIDL_INTERFACE("00000144-0000-0000-c000-000000000046")
4497IRpcOptions : public IUnknown
4498{
4499    virtual HRESULT STDMETHODCALLTYPE Set(
4500        IUnknown *pPrx,
4501        RPCOPT_PROPERTIES dwProperty,
4502        ULONG_PTR dwValue) = 0;
4503
4504    virtual HRESULT STDMETHODCALLTYPE Query(
4505        IUnknown *pPrx,
4506        RPCOPT_PROPERTIES dwProperty,
4507        ULONG_PTR *pdwValue) = 0;
4508
4509};
4510#ifdef __CRT_UUID_DECL
4511__CRT_UUID_DECL(IRpcOptions, 0x00000144, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4512#endif
4513#else
4514typedef struct IRpcOptionsVtbl {
4515    BEGIN_INTERFACE
4516
4517    /*** IUnknown methods ***/
4518    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4519        IRpcOptions* This,
4520        REFIID riid,
4521        void **ppvObject);
4522
4523    ULONG (STDMETHODCALLTYPE *AddRef)(
4524        IRpcOptions* This);
4525
4526    ULONG (STDMETHODCALLTYPE *Release)(
4527        IRpcOptions* This);
4528
4529    /*** IRpcOptions methods ***/
4530    HRESULT (STDMETHODCALLTYPE *Set)(
4531        IRpcOptions* This,
4532        IUnknown *pPrx,
4533        RPCOPT_PROPERTIES dwProperty,
4534        ULONG_PTR dwValue);
4535
4536    HRESULT (STDMETHODCALLTYPE *Query)(
4537        IRpcOptions* This,
4538        IUnknown *pPrx,
4539        RPCOPT_PROPERTIES dwProperty,
4540        ULONG_PTR *pdwValue);
4541
4542    END_INTERFACE
4543} IRpcOptionsVtbl;
4544interface IRpcOptions {
4545    CONST_VTBL IRpcOptionsVtbl* lpVtbl;
4546};
4547
4548#ifdef COBJMACROS
4549#ifndef WIDL_C_INLINE_WRAPPERS
4550/*** IUnknown methods ***/
4551#define IRpcOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4552#define IRpcOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
4553#define IRpcOptions_Release(This) (This)->lpVtbl->Release(This)
4554/*** IRpcOptions methods ***/
4555#define IRpcOptions_Set(This,pPrx,dwProperty,dwValue) (This)->lpVtbl->Set(This,pPrx,dwProperty,dwValue)
4556#define IRpcOptions_Query(This,pPrx,dwProperty,pdwValue) (This)->lpVtbl->Query(This,pPrx,dwProperty,pdwValue)
4557#else
4558/*** IUnknown methods ***/
4559static FORCEINLINE HRESULT IRpcOptions_QueryInterface(IRpcOptions* This,REFIID riid,void **ppvObject) {
4560    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4561}
4562static FORCEINLINE ULONG IRpcOptions_AddRef(IRpcOptions* This) {
4563    return This->lpVtbl->AddRef(This);
4564}
4565static FORCEINLINE ULONG IRpcOptions_Release(IRpcOptions* This) {
4566    return This->lpVtbl->Release(This);
4567}
4568/*** IRpcOptions methods ***/
4569static FORCEINLINE HRESULT IRpcOptions_Set(IRpcOptions* This,IUnknown *pPrx,RPCOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
4570    return This->lpVtbl->Set(This,pPrx,dwProperty,dwValue);
4571}
4572static FORCEINLINE HRESULT IRpcOptions_Query(IRpcOptions* This,IUnknown *pPrx,RPCOPT_PROPERTIES dwProperty,ULONG_PTR *pdwValue) {
4573    return This->lpVtbl->Query(This,pPrx,dwProperty,pdwValue);
4574}
4575#endif
4576#endif
4577
4578#endif
4579
4580HRESULT STDMETHODCALLTYPE IRpcOptions_Set_Proxy(
4581    IRpcOptions* This,
4582    IUnknown *pPrx,
4583    RPCOPT_PROPERTIES dwProperty,
4584    ULONG_PTR dwValue);
4585void __RPC_STUB IRpcOptions_Set_Stub(
4586    IRpcStubBuffer* This,
4587    IRpcChannelBuffer* pRpcChannelBuffer,
4588    PRPC_MESSAGE pRpcMessage,
4589    DWORD* pdwStubPhase);
4590HRESULT STDMETHODCALLTYPE IRpcOptions_Query_Proxy(
4591    IRpcOptions* This,
4592    IUnknown *pPrx,
4593    RPCOPT_PROPERTIES dwProperty,
4594    ULONG_PTR *pdwValue);
4595void __RPC_STUB IRpcOptions_Query_Stub(
4596    IRpcStubBuffer* This,
4597    IRpcChannelBuffer* pRpcChannelBuffer,
4598    PRPC_MESSAGE pRpcMessage,
4599    DWORD* pdwStubPhase);
4600
4601#endif  /* __IRpcOptions_INTERFACE_DEFINED__ */
4602
4603#endif
4604
4605#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
4606typedef enum tagGLOBALOPT_PROPERTIES {
4607    COMGLB_EXCEPTION_HANDLING = 1,
4608    COMGLB_APPID = 2,
4609    COMGLB_RPC_THREADPOOL_SETTING = 3,
4610    COMGLB_RO_SETTINGS = 4,
4611    COMGLB_UNMARSHALING_POLICY = 5
4612} GLOBALOPT_PROPERTIES;
4613
4614typedef enum tagGLOBALOPT_EH_VALUES {
4615    COMGLB_EXCEPTION_HANDLE = 0,
4616    COMGLB_EXCEPTION_DONOT_HANDLE_FATAL = 1,
4617    COMGLB_EXCEPTION_DONOT_HANDLE = COMGLB_EXCEPTION_DONOT_HANDLE_FATAL,
4618    COMGLB_EXCEPTION_DONOT_HANDLE_ANY = 2
4619} GLOBALOPT_EH_VALUES;
4620
4621typedef enum tagGLOBALOPT_RPCTP_VALUES {
4622    COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL = 0,
4623    COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL = 1
4624} GLOBALOPT_RPCTP_VALUES;
4625
4626typedef enum tagGLOBALOPT_RO_FLAGS {
4627    COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES = 0x1,
4628    COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES = 0x2,
4629    COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES = 0x4,
4630    COMGLB_FAST_RUNDOWN = 0x8,
4631    COMGLB_RESERVED1 = 0x10,
4632    COMGLB_RESERVED2 = 0x20,
4633    COMGLB_RESERVED3 = 0x40,
4634    COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES = 0x80
4635} GLOBALOPT_RO_FLAGS;
4636
4637typedef enum tagGLOBALOPT_UNMARSHALING_POLICY_VALUES {
4638    COMGLB_UNMARSHALING_POLICY_NORMAL = 0,
4639    COMGLB_UNMARSHALING_POLICY_STRONG = 1,
4640    COMGLB_UNMARSHALING_POLICY_HYBRID = 2
4641} GLOBALOPT_UNMARSHALING_POLICY_VALUES;
4642
4643/*****************************************************************************
4644 * IGlobalOptions interface
4645 */
4646#ifndef __IGlobalOptions_INTERFACE_DEFINED__
4647#define __IGlobalOptions_INTERFACE_DEFINED__
4648
4649DEFINE_GUID(IID_IGlobalOptions, 0x0000015b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4650#if defined(__cplusplus) && !defined(CINTERFACE)
4651MIDL_INTERFACE("0000015b-0000-0000-c000-000000000046")
4652IGlobalOptions : public IUnknown
4653{
4654    virtual HRESULT STDMETHODCALLTYPE Set(
4655        GLOBALOPT_PROPERTIES dwProperty,
4656        ULONG_PTR dwValue) = 0;
4657
4658    virtual HRESULT STDMETHODCALLTYPE Query(
4659        GLOBALOPT_PROPERTIES dwProperty,
4660        ULONG_PTR *pdwValue) = 0;
4661
4662};
4663#ifdef __CRT_UUID_DECL
4664__CRT_UUID_DECL(IGlobalOptions, 0x0000015b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4665#endif
4666#else
4667typedef struct IGlobalOptionsVtbl {
4668    BEGIN_INTERFACE
4669
4670    /*** IUnknown methods ***/
4671    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4672        IGlobalOptions* This,
4673        REFIID riid,
4674        void **ppvObject);
4675
4676    ULONG (STDMETHODCALLTYPE *AddRef)(
4677        IGlobalOptions* This);
4678
4679    ULONG (STDMETHODCALLTYPE *Release)(
4680        IGlobalOptions* This);
4681
4682    /*** IGlobalOptions methods ***/
4683    HRESULT (STDMETHODCALLTYPE *Set)(
4684        IGlobalOptions* This,
4685        GLOBALOPT_PROPERTIES dwProperty,
4686        ULONG_PTR dwValue);
4687
4688    HRESULT (STDMETHODCALLTYPE *Query)(
4689        IGlobalOptions* This,
4690        GLOBALOPT_PROPERTIES dwProperty,
4691        ULONG_PTR *pdwValue);
4692
4693    END_INTERFACE
4694} IGlobalOptionsVtbl;
4695interface IGlobalOptions {
4696    CONST_VTBL IGlobalOptionsVtbl* lpVtbl;
4697};
4698
4699#ifdef COBJMACROS
4700#ifndef WIDL_C_INLINE_WRAPPERS
4701/*** IUnknown methods ***/
4702#define IGlobalOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4703#define IGlobalOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
4704#define IGlobalOptions_Release(This) (This)->lpVtbl->Release(This)
4705/*** IGlobalOptions methods ***/
4706#define IGlobalOptions_Set(This,dwProperty,dwValue) (This)->lpVtbl->Set(This,dwProperty,dwValue)
4707#define IGlobalOptions_Query(This,dwProperty,pdwValue) (This)->lpVtbl->Query(This,dwProperty,pdwValue)
4708#else
4709/*** IUnknown methods ***/
4710static FORCEINLINE HRESULT IGlobalOptions_QueryInterface(IGlobalOptions* This,REFIID riid,void **ppvObject) {
4711    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4712}
4713static FORCEINLINE ULONG IGlobalOptions_AddRef(IGlobalOptions* This) {
4714    return This->lpVtbl->AddRef(This);
4715}
4716static FORCEINLINE ULONG IGlobalOptions_Release(IGlobalOptions* This) {
4717    return This->lpVtbl->Release(This);
4718}
4719/*** IGlobalOptions methods ***/
4720static FORCEINLINE HRESULT IGlobalOptions_Set(IGlobalOptions* This,GLOBALOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
4721    return This->lpVtbl->Set(This,dwProperty,dwValue);
4722}
4723static FORCEINLINE HRESULT IGlobalOptions_Query(IGlobalOptions* This,GLOBALOPT_PROPERTIES dwProperty,ULONG_PTR *pdwValue) {
4724    return This->lpVtbl->Query(This,dwProperty,pdwValue);
4725}
4726#endif
4727#endif
4728
4729#endif
4730
4731HRESULT STDMETHODCALLTYPE IGlobalOptions_Set_Proxy(
4732    IGlobalOptions* This,
4733    GLOBALOPT_PROPERTIES dwProperty,
4734    ULONG_PTR dwValue);
4735void __RPC_STUB IGlobalOptions_Set_Stub(
4736    IRpcStubBuffer* This,
4737    IRpcChannelBuffer* pRpcChannelBuffer,
4738    PRPC_MESSAGE pRpcMessage,
4739    DWORD* pdwStubPhase);
4740HRESULT STDMETHODCALLTYPE IGlobalOptions_Query_Proxy(
4741    IGlobalOptions* This,
4742    GLOBALOPT_PROPERTIES dwProperty,
4743    ULONG_PTR *pdwValue);
4744void __RPC_STUB IGlobalOptions_Query_Stub(
4745    IRpcStubBuffer* This,
4746    IRpcChannelBuffer* pRpcChannelBuffer,
4747    PRPC_MESSAGE pRpcMessage,
4748    DWORD* pdwStubPhase);
4749
4750#endif  /* __IGlobalOptions_INTERFACE_DEFINED__ */
4751
4752#endif
4753#endif
4754
4755#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
4756/*****************************************************************************
4757 * ISurrogate interface
4758 */
4759#ifndef __ISurrogate_INTERFACE_DEFINED__
4760#define __ISurrogate_INTERFACE_DEFINED__
4761
4762typedef ISurrogate *LPSURROGATE;
4763
4764DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4765#if defined(__cplusplus) && !defined(CINTERFACE)
4766MIDL_INTERFACE("00000022-0000-0000-c000-000000000046")
4767ISurrogate : public IUnknown
4768{
4769    virtual HRESULT STDMETHODCALLTYPE LoadDllServer(
4770        REFCLSID Clsid) = 0;
4771
4772    virtual HRESULT STDMETHODCALLTYPE FreeSurrogate(
4773        ) = 0;
4774
4775};
4776#ifdef __CRT_UUID_DECL
4777__CRT_UUID_DECL(ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4778#endif
4779#else
4780typedef struct ISurrogateVtbl {
4781    BEGIN_INTERFACE
4782
4783    /*** IUnknown methods ***/
4784    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4785        ISurrogate* This,
4786        REFIID riid,
4787        void **ppvObject);
4788
4789    ULONG (STDMETHODCALLTYPE *AddRef)(
4790        ISurrogate* This);
4791
4792    ULONG (STDMETHODCALLTYPE *Release)(
4793        ISurrogate* This);
4794
4795    /*** ISurrogate methods ***/
4796    HRESULT (STDMETHODCALLTYPE *LoadDllServer)(
4797        ISurrogate* This,
4798        REFCLSID Clsid);
4799
4800    HRESULT (STDMETHODCALLTYPE *FreeSurrogate)(
4801        ISurrogate* This);
4802
4803    END_INTERFACE
4804} ISurrogateVtbl;
4805interface ISurrogate {
4806    CONST_VTBL ISurrogateVtbl* lpVtbl;
4807};
4808
4809#ifdef COBJMACROS
4810#ifndef WIDL_C_INLINE_WRAPPERS
4811/*** IUnknown methods ***/
4812#define ISurrogate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4813#define ISurrogate_AddRef(This) (This)->lpVtbl->AddRef(This)
4814#define ISurrogate_Release(This) (This)->lpVtbl->Release(This)
4815/*** ISurrogate methods ***/
4816#define ISurrogate_LoadDllServer(This,Clsid) (This)->lpVtbl->LoadDllServer(This,Clsid)
4817#define ISurrogate_FreeSurrogate(This) (This)->lpVtbl->FreeSurrogate(This)
4818#else
4819/*** IUnknown methods ***/
4820static FORCEINLINE HRESULT ISurrogate_QueryInterface(ISurrogate* This,REFIID riid,void **ppvObject) {
4821    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4822}
4823static FORCEINLINE ULONG ISurrogate_AddRef(ISurrogate* This) {
4824    return This->lpVtbl->AddRef(This);
4825}
4826static FORCEINLINE ULONG ISurrogate_Release(ISurrogate* This) {
4827    return This->lpVtbl->Release(This);
4828}
4829/*** ISurrogate methods ***/
4830static FORCEINLINE HRESULT ISurrogate_LoadDllServer(ISurrogate* This,REFCLSID Clsid) {
4831    return This->lpVtbl->LoadDllServer(This,Clsid);
4832}
4833static FORCEINLINE HRESULT ISurrogate_FreeSurrogate(ISurrogate* This) {
4834    return This->lpVtbl->FreeSurrogate(This);
4835}
4836#endif
4837#endif
4838
4839#endif
4840
4841HRESULT STDMETHODCALLTYPE ISurrogate_LoadDllServer_Proxy(
4842    ISurrogate* This,
4843    REFCLSID Clsid);
4844void __RPC_STUB ISurrogate_LoadDllServer_Stub(
4845    IRpcStubBuffer* This,
4846    IRpcChannelBuffer* pRpcChannelBuffer,
4847    PRPC_MESSAGE pRpcMessage,
4848    DWORD* pdwStubPhase);
4849HRESULT STDMETHODCALLTYPE ISurrogate_FreeSurrogate_Proxy(
4850    ISurrogate* This);
4851void __RPC_STUB ISurrogate_FreeSurrogate_Stub(
4852    IRpcStubBuffer* This,
4853    IRpcChannelBuffer* pRpcChannelBuffer,
4854    PRPC_MESSAGE pRpcMessage,
4855    DWORD* pdwStubPhase);
4856
4857#endif  /* __ISurrogate_INTERFACE_DEFINED__ */
4858
4859
4860/*****************************************************************************
4861 * IGlobalInterfaceTable interface
4862 */
4863#ifndef __IGlobalInterfaceTable_INTERFACE_DEFINED__
4864#define __IGlobalInterfaceTable_INTERFACE_DEFINED__
4865
4866typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
4867
4868DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4869#if defined(__cplusplus) && !defined(CINTERFACE)
4870MIDL_INTERFACE("00000146-0000-0000-c000-000000000046")
4871IGlobalInterfaceTable : public IUnknown
4872{
4873    virtual HRESULT STDMETHODCALLTYPE RegisterInterfaceInGlobal(
4874        IUnknown *pUnk,
4875        REFIID riid,
4876        DWORD *pdwCookie) = 0;
4877
4878    virtual HRESULT STDMETHODCALLTYPE RevokeInterfaceFromGlobal(
4879        DWORD dwCookie) = 0;
4880
4881    virtual HRESULT STDMETHODCALLTYPE GetInterfaceFromGlobal(
4882        DWORD dwCookie,
4883        REFIID riid,
4884        void **ppv) = 0;
4885
4886};
4887#ifdef __CRT_UUID_DECL
4888__CRT_UUID_DECL(IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4889#endif
4890#else
4891typedef struct IGlobalInterfaceTableVtbl {
4892    BEGIN_INTERFACE
4893
4894    /*** IUnknown methods ***/
4895    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4896        IGlobalInterfaceTable* This,
4897        REFIID riid,
4898        void **ppvObject);
4899
4900    ULONG (STDMETHODCALLTYPE *AddRef)(
4901        IGlobalInterfaceTable* This);
4902
4903    ULONG (STDMETHODCALLTYPE *Release)(
4904        IGlobalInterfaceTable* This);
4905
4906    /*** IGlobalInterfaceTable methods ***/
4907    HRESULT (STDMETHODCALLTYPE *RegisterInterfaceInGlobal)(
4908        IGlobalInterfaceTable* This,
4909        IUnknown *pUnk,
4910        REFIID riid,
4911        DWORD *pdwCookie);
4912
4913    HRESULT (STDMETHODCALLTYPE *RevokeInterfaceFromGlobal)(
4914        IGlobalInterfaceTable* This,
4915        DWORD dwCookie);
4916
4917    HRESULT (STDMETHODCALLTYPE *GetInterfaceFromGlobal)(
4918        IGlobalInterfaceTable* This,
4919        DWORD dwCookie,
4920        REFIID riid,
4921        void **ppv);
4922
4923    END_INTERFACE
4924} IGlobalInterfaceTableVtbl;
4925interface IGlobalInterfaceTable {
4926    CONST_VTBL IGlobalInterfaceTableVtbl* lpVtbl;
4927};
4928
4929#ifdef COBJMACROS
4930#ifndef WIDL_C_INLINE_WRAPPERS
4931/*** IUnknown methods ***/
4932#define IGlobalInterfaceTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4933#define IGlobalInterfaceTable_AddRef(This) (This)->lpVtbl->AddRef(This)
4934#define IGlobalInterfaceTable_Release(This) (This)->lpVtbl->Release(This)
4935/*** IGlobalInterfaceTable methods ***/
4936#define IGlobalInterfaceTable_RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie) (This)->lpVtbl->RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie)
4937#define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(This,dwCookie) (This)->lpVtbl->RevokeInterfaceFromGlobal(This,dwCookie)
4938#define IGlobalInterfaceTable_GetInterfaceFromGlobal(This,dwCookie,riid,ppv) (This)->lpVtbl->GetInterfaceFromGlobal(This,dwCookie,riid,ppv)
4939#else
4940/*** IUnknown methods ***/
4941static FORCEINLINE HRESULT IGlobalInterfaceTable_QueryInterface(IGlobalInterfaceTable* This,REFIID riid,void **ppvObject) {
4942    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4943}
4944static FORCEINLINE ULONG IGlobalInterfaceTable_AddRef(IGlobalInterfaceTable* This) {
4945    return This->lpVtbl->AddRef(This);
4946}
4947static FORCEINLINE ULONG IGlobalInterfaceTable_Release(IGlobalInterfaceTable* This) {
4948    return This->lpVtbl->Release(This);
4949}
4950/*** IGlobalInterfaceTable methods ***/
4951static FORCEINLINE HRESULT IGlobalInterfaceTable_RegisterInterfaceInGlobal(IGlobalInterfaceTable* This,IUnknown *pUnk,REFIID riid,DWORD *pdwCookie) {
4952    return This->lpVtbl->RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie);
4953}
4954static FORCEINLINE HRESULT IGlobalInterfaceTable_RevokeInterfaceFromGlobal(IGlobalInterfaceTable* This,DWORD dwCookie) {
4955    return This->lpVtbl->RevokeInterfaceFromGlobal(This,dwCookie);
4956}
4957static FORCEINLINE HRESULT IGlobalInterfaceTable_GetInterfaceFromGlobal(IGlobalInterfaceTable* This,DWORD dwCookie,REFIID riid,void **ppv) {
4958    return This->lpVtbl->GetInterfaceFromGlobal(This,dwCookie,riid,ppv);
4959}
4960#endif
4961#endif
4962
4963#endif
4964
4965HRESULT STDMETHODCALLTYPE IGlobalInterfaceTable_RegisterInterfaceInGlobal_Proxy(
4966    IGlobalInterfaceTable* This,
4967    IUnknown *pUnk,
4968    REFIID riid,
4969    DWORD *pdwCookie);
4970void __RPC_STUB IGlobalInterfaceTable_RegisterInterfaceInGlobal_Stub(
4971    IRpcStubBuffer* This,
4972    IRpcChannelBuffer* pRpcChannelBuffer,
4973    PRPC_MESSAGE pRpcMessage,
4974    DWORD* pdwStubPhase);
4975HRESULT STDMETHODCALLTYPE IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Proxy(
4976    IGlobalInterfaceTable* This,
4977    DWORD dwCookie);
4978void __RPC_STUB IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Stub(
4979    IRpcStubBuffer* This,
4980    IRpcChannelBuffer* pRpcChannelBuffer,
4981    PRPC_MESSAGE pRpcMessage,
4982    DWORD* pdwStubPhase);
4983HRESULT STDMETHODCALLTYPE IGlobalInterfaceTable_GetInterfaceFromGlobal_Proxy(
4984    IGlobalInterfaceTable* This,
4985    DWORD dwCookie,
4986    REFIID riid,
4987    void **ppv);
4988void __RPC_STUB IGlobalInterfaceTable_GetInterfaceFromGlobal_Stub(
4989    IRpcStubBuffer* This,
4990    IRpcChannelBuffer* pRpcChannelBuffer,
4991    PRPC_MESSAGE pRpcMessage,
4992    DWORD* pdwStubPhase);
4993
4994#endif  /* __IGlobalInterfaceTable_INTERFACE_DEFINED__ */
4995
4996#endif
4997
4998#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
4999/*****************************************************************************
5000 * ISynchronize interface
5001 */
5002#ifndef __ISynchronize_INTERFACE_DEFINED__
5003#define __ISynchronize_INTERFACE_DEFINED__
5004
5005DEFINE_GUID(IID_ISynchronize, 0x00000030, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5006#if defined(__cplusplus) && !defined(CINTERFACE)
5007MIDL_INTERFACE("00000030-0000-0000-c000-000000000046")
5008ISynchronize : public IUnknown
5009{
5010    virtual HRESULT STDMETHODCALLTYPE Wait(
5011        DWORD dwFlags,
5012        DWORD dwMilliseconds) = 0;
5013
5014    virtual HRESULT STDMETHODCALLTYPE Signal(
5015        ) = 0;
5016
5017    virtual HRESULT STDMETHODCALLTYPE Reset(
5018        ) = 0;
5019
5020};
5021#ifdef __CRT_UUID_DECL
5022__CRT_UUID_DECL(ISynchronize, 0x00000030, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5023#endif
5024#else
5025typedef struct ISynchronizeVtbl {
5026    BEGIN_INTERFACE
5027
5028    /*** IUnknown methods ***/
5029    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5030        ISynchronize* This,
5031        REFIID riid,
5032        void **ppvObject);
5033
5034    ULONG (STDMETHODCALLTYPE *AddRef)(
5035        ISynchronize* This);
5036
5037    ULONG (STDMETHODCALLTYPE *Release)(
5038        ISynchronize* This);
5039
5040    /*** ISynchronize methods ***/
5041    HRESULT (STDMETHODCALLTYPE *Wait)(
5042        ISynchronize* This,
5043        DWORD dwFlags,
5044        DWORD dwMilliseconds);
5045
5046    HRESULT (STDMETHODCALLTYPE *Signal)(
5047        ISynchronize* This);
5048
5049    HRESULT (STDMETHODCALLTYPE *Reset)(
5050        ISynchronize* This);
5051
5052    END_INTERFACE
5053} ISynchronizeVtbl;
5054interface ISynchronize {
5055    CONST_VTBL ISynchronizeVtbl* lpVtbl;
5056};
5057
5058#ifdef COBJMACROS
5059#ifndef WIDL_C_INLINE_WRAPPERS
5060/*** IUnknown methods ***/
5061#define ISynchronize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5062#define ISynchronize_AddRef(This) (This)->lpVtbl->AddRef(This)
5063#define ISynchronize_Release(This) (This)->lpVtbl->Release(This)
5064/*** ISynchronize methods ***/
5065#define ISynchronize_Wait(This,dwFlags,dwMilliseconds) (This)->lpVtbl->Wait(This,dwFlags,dwMilliseconds)
5066#define ISynchronize_Signal(This) (This)->lpVtbl->Signal(This)
5067#define ISynchronize_Reset(This) (This)->lpVtbl->Reset(This)
5068#else
5069/*** IUnknown methods ***/
5070static FORCEINLINE HRESULT ISynchronize_QueryInterface(ISynchronize* This,REFIID riid,void **ppvObject) {
5071    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5072}
5073static FORCEINLINE ULONG ISynchronize_AddRef(ISynchronize* This) {
5074    return This->lpVtbl->AddRef(This);
5075}
5076static FORCEINLINE ULONG ISynchronize_Release(ISynchronize* This) {
5077    return This->lpVtbl->Release(This);
5078}
5079/*** ISynchronize methods ***/
5080static FORCEINLINE HRESULT ISynchronize_Wait(ISynchronize* This,DWORD dwFlags,DWORD dwMilliseconds) {
5081    return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
5082}
5083static FORCEINLINE HRESULT ISynchronize_Signal(ISynchronize* This) {
5084    return This->lpVtbl->Signal(This);
5085}
5086static FORCEINLINE HRESULT ISynchronize_Reset(ISynchronize* This) {
5087    return This->lpVtbl->Reset(This);
5088}
5089#endif
5090#endif
5091
5092#endif
5093
5094HRESULT STDMETHODCALLTYPE ISynchronize_Wait_Proxy(
5095    ISynchronize* This,
5096    DWORD dwFlags,
5097    DWORD dwMilliseconds);
5098void __RPC_STUB ISynchronize_Wait_Stub(
5099    IRpcStubBuffer* This,
5100    IRpcChannelBuffer* pRpcChannelBuffer,
5101    PRPC_MESSAGE pRpcMessage,
5102    DWORD* pdwStubPhase);
5103HRESULT STDMETHODCALLTYPE ISynchronize_Signal_Proxy(
5104    ISynchronize* This);
5105void __RPC_STUB ISynchronize_Signal_Stub(
5106    IRpcStubBuffer* This,
5107    IRpcChannelBuffer* pRpcChannelBuffer,
5108    PRPC_MESSAGE pRpcMessage,
5109    DWORD* pdwStubPhase);
5110HRESULT STDMETHODCALLTYPE ISynchronize_Reset_Proxy(
5111    ISynchronize* This);
5112void __RPC_STUB ISynchronize_Reset_Stub(
5113    IRpcStubBuffer* This,
5114    IRpcChannelBuffer* pRpcChannelBuffer,
5115    PRPC_MESSAGE pRpcMessage,
5116    DWORD* pdwStubPhase);
5117
5118#endif  /* __ISynchronize_INTERFACE_DEFINED__ */
5119
5120
5121/*****************************************************************************
5122 * ISynchronizeHandle interface
5123 */
5124#ifndef __ISynchronizeHandle_INTERFACE_DEFINED__
5125#define __ISynchronizeHandle_INTERFACE_DEFINED__
5126
5127DEFINE_GUID(IID_ISynchronizeHandle, 0x00000031, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5128#if defined(__cplusplus) && !defined(CINTERFACE)
5129MIDL_INTERFACE("00000031-0000-0000-c000-000000000046")
5130ISynchronizeHandle : public IUnknown
5131{
5132    virtual HRESULT STDMETHODCALLTYPE GetHandle(
5133        HANDLE *ph) = 0;
5134
5135};
5136#ifdef __CRT_UUID_DECL
5137__CRT_UUID_DECL(ISynchronizeHandle, 0x00000031, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5138#endif
5139#else
5140typedef struct ISynchronizeHandleVtbl {
5141    BEGIN_INTERFACE
5142
5143    /*** IUnknown methods ***/
5144    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5145        ISynchronizeHandle* This,
5146        REFIID riid,
5147        void **ppvObject);
5148
5149    ULONG (STDMETHODCALLTYPE *AddRef)(
5150        ISynchronizeHandle* This);
5151
5152    ULONG (STDMETHODCALLTYPE *Release)(
5153        ISynchronizeHandle* This);
5154
5155    /*** ISynchronizeHandle methods ***/
5156    HRESULT (STDMETHODCALLTYPE *GetHandle)(
5157        ISynchronizeHandle* This,
5158        HANDLE *ph);
5159
5160    END_INTERFACE
5161} ISynchronizeHandleVtbl;
5162interface ISynchronizeHandle {
5163    CONST_VTBL ISynchronizeHandleVtbl* lpVtbl;
5164};
5165
5166#ifdef COBJMACROS
5167#ifndef WIDL_C_INLINE_WRAPPERS
5168/*** IUnknown methods ***/
5169#define ISynchronizeHandle_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5170#define ISynchronizeHandle_AddRef(This) (This)->lpVtbl->AddRef(This)
5171#define ISynchronizeHandle_Release(This) (This)->lpVtbl->Release(This)
5172/*** ISynchronizeHandle methods ***/
5173#define ISynchronizeHandle_GetHandle(This,ph) (This)->lpVtbl->GetHandle(This,ph)
5174#else
5175/*** IUnknown methods ***/
5176static FORCEINLINE HRESULT ISynchronizeHandle_QueryInterface(ISynchronizeHandle* This,REFIID riid,void **ppvObject) {
5177    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5178}
5179static FORCEINLINE ULONG ISynchronizeHandle_AddRef(ISynchronizeHandle* This) {
5180    return This->lpVtbl->AddRef(This);
5181}
5182static FORCEINLINE ULONG ISynchronizeHandle_Release(ISynchronizeHandle* This) {
5183    return This->lpVtbl->Release(This);
5184}
5185/*** ISynchronizeHandle methods ***/
5186static FORCEINLINE HRESULT ISynchronizeHandle_GetHandle(ISynchronizeHandle* This,HANDLE *ph) {
5187    return This->lpVtbl->GetHandle(This,ph);
5188}
5189#endif
5190#endif
5191
5192#endif
5193
5194HRESULT STDMETHODCALLTYPE ISynchronizeHandle_GetHandle_Proxy(
5195    ISynchronizeHandle* This,
5196    HANDLE *ph);
5197void __RPC_STUB ISynchronizeHandle_GetHandle_Stub(
5198    IRpcStubBuffer* This,
5199    IRpcChannelBuffer* pRpcChannelBuffer,
5200    PRPC_MESSAGE pRpcMessage,
5201    DWORD* pdwStubPhase);
5202
5203#endif  /* __ISynchronizeHandle_INTERFACE_DEFINED__ */
5204
5205
5206/*****************************************************************************
5207 * ISynchronizeEvent interface
5208 */
5209#ifndef __ISynchronizeEvent_INTERFACE_DEFINED__
5210#define __ISynchronizeEvent_INTERFACE_DEFINED__
5211
5212DEFINE_GUID(IID_ISynchronizeEvent, 0x00000032, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5213#if defined(__cplusplus) && !defined(CINTERFACE)
5214MIDL_INTERFACE("00000032-0000-0000-c000-000000000046")
5215ISynchronizeEvent : public ISynchronizeHandle
5216{
5217    virtual HRESULT STDMETHODCALLTYPE SetEventHandle(
5218        HANDLE *ph) = 0;
5219
5220};
5221#ifdef __CRT_UUID_DECL
5222__CRT_UUID_DECL(ISynchronizeEvent, 0x00000032, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5223#endif
5224#else
5225typedef struct ISynchronizeEventVtbl {
5226    BEGIN_INTERFACE
5227
5228    /*** IUnknown methods ***/
5229    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5230        ISynchronizeEvent* This,
5231        REFIID riid,
5232        void **ppvObject);
5233
5234    ULONG (STDMETHODCALLTYPE *AddRef)(
5235        ISynchronizeEvent* This);
5236
5237    ULONG (STDMETHODCALLTYPE *Release)(
5238        ISynchronizeEvent* This);
5239
5240    /*** ISynchronizeHandle methods ***/
5241    HRESULT (STDMETHODCALLTYPE *GetHandle)(
5242        ISynchronizeEvent* This,
5243        HANDLE *ph);
5244
5245    /*** ISynchronizeEvent methods ***/
5246    HRESULT (STDMETHODCALLTYPE *SetEventHandle)(
5247        ISynchronizeEvent* This,
5248        HANDLE *ph);
5249
5250    END_INTERFACE
5251} ISynchronizeEventVtbl;
5252interface ISynchronizeEvent {
5253    CONST_VTBL ISynchronizeEventVtbl* lpVtbl;
5254};
5255
5256#ifdef COBJMACROS
5257#ifndef WIDL_C_INLINE_WRAPPERS
5258/*** IUnknown methods ***/
5259#define ISynchronizeEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5260#define ISynchronizeEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
5261#define ISynchronizeEvent_Release(This) (This)->lpVtbl->Release(This)
5262/*** ISynchronizeHandle methods ***/
5263#define ISynchronizeEvent_GetHandle(This,ph) (This)->lpVtbl->GetHandle(This,ph)
5264/*** ISynchronizeEvent methods ***/
5265#define ISynchronizeEvent_SetEventHandle(This,ph) (This)->lpVtbl->SetEventHandle(This,ph)
5266#else
5267/*** IUnknown methods ***/
5268static FORCEINLINE HRESULT ISynchronizeEvent_QueryInterface(ISynchronizeEvent* This,REFIID riid,void **ppvObject) {
5269    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5270}
5271static FORCEINLINE ULONG ISynchronizeEvent_AddRef(ISynchronizeEvent* This) {
5272    return This->lpVtbl->AddRef(This);
5273}
5274static FORCEINLINE ULONG ISynchronizeEvent_Release(ISynchronizeEvent* This) {
5275    return This->lpVtbl->Release(This);
5276}
5277/*** ISynchronizeHandle methods ***/
5278static FORCEINLINE HRESULT ISynchronizeEvent_GetHandle(ISynchronizeEvent* This,HANDLE *ph) {
5279    return This->lpVtbl->GetHandle(This,ph);
5280}
5281/*** ISynchronizeEvent methods ***/
5282static FORCEINLINE HRESULT ISynchronizeEvent_SetEventHandle(ISynchronizeEvent* This,HANDLE *ph) {
5283    return This->lpVtbl->SetEventHandle(This,ph);
5284}
5285#endif
5286#endif
5287
5288#endif
5289
5290HRESULT STDMETHODCALLTYPE ISynchronizeEvent_SetEventHandle_Proxy(
5291    ISynchronizeEvent* This,
5292    HANDLE *ph);
5293void __RPC_STUB ISynchronizeEvent_SetEventHandle_Stub(
5294    IRpcStubBuffer* This,
5295    IRpcChannelBuffer* pRpcChannelBuffer,
5296    PRPC_MESSAGE pRpcMessage,
5297    DWORD* pdwStubPhase);
5298
5299#endif  /* __ISynchronizeEvent_INTERFACE_DEFINED__ */
5300
5301
5302/*****************************************************************************
5303 * ISynchronizeContainer interface
5304 */
5305#ifndef __ISynchronizeContainer_INTERFACE_DEFINED__
5306#define __ISynchronizeContainer_INTERFACE_DEFINED__
5307
5308DEFINE_GUID(IID_ISynchronizeContainer, 0x00000033, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5309#if defined(__cplusplus) && !defined(CINTERFACE)
5310MIDL_INTERFACE("00000033-0000-0000-c000-000000000046")
5311ISynchronizeContainer : public IUnknown
5312{
5313    virtual HRESULT STDMETHODCALLTYPE AddSynchronize(
5314        ISynchronize *pSync) = 0;
5315
5316    virtual HRESULT STDMETHODCALLTYPE WaitMultiple(
5317        DWORD dwFlags,
5318        DWORD dwTimeOut,
5319        ISynchronize **ppSync) = 0;
5320
5321};
5322#ifdef __CRT_UUID_DECL
5323__CRT_UUID_DECL(ISynchronizeContainer, 0x00000033, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5324#endif
5325#else
5326typedef struct ISynchronizeContainerVtbl {
5327    BEGIN_INTERFACE
5328
5329    /*** IUnknown methods ***/
5330    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5331        ISynchronizeContainer* This,
5332        REFIID riid,
5333        void **ppvObject);
5334
5335    ULONG (STDMETHODCALLTYPE *AddRef)(
5336        ISynchronizeContainer* This);
5337
5338    ULONG (STDMETHODCALLTYPE *Release)(
5339        ISynchronizeContainer* This);
5340
5341    /*** ISynchronizeContainer methods ***/
5342    HRESULT (STDMETHODCALLTYPE *AddSynchronize)(
5343        ISynchronizeContainer* This,
5344        ISynchronize *pSync);
5345
5346    HRESULT (STDMETHODCALLTYPE *WaitMultiple)(
5347        ISynchronizeContainer* This,
5348        DWORD dwFlags,
5349        DWORD dwTimeOut,
5350        ISynchronize **ppSync);
5351
5352    END_INTERFACE
5353} ISynchronizeContainerVtbl;
5354interface ISynchronizeContainer {
5355    CONST_VTBL ISynchronizeContainerVtbl* lpVtbl;
5356};
5357
5358#ifdef COBJMACROS
5359#ifndef WIDL_C_INLINE_WRAPPERS
5360/*** IUnknown methods ***/
5361#define ISynchronizeContainer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5362#define ISynchronizeContainer_AddRef(This) (This)->lpVtbl->AddRef(This)
5363#define ISynchronizeContainer_Release(This) (This)->lpVtbl->Release(This)
5364/*** ISynchronizeContainer methods ***/
5365#define ISynchronizeContainer_AddSynchronize(This,pSync) (This)->lpVtbl->AddSynchronize(This,pSync)
5366#define ISynchronizeContainer_WaitMultiple(This,dwFlags,dwTimeOut,ppSync) (This)->lpVtbl->WaitMultiple(This,dwFlags,dwTimeOut,ppSync)
5367#else
5368/*** IUnknown methods ***/
5369static FORCEINLINE HRESULT ISynchronizeContainer_QueryInterface(ISynchronizeContainer* This,REFIID riid,void **ppvObject) {
5370    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5371}
5372static FORCEINLINE ULONG ISynchronizeContainer_AddRef(ISynchronizeContainer* This) {
5373    return This->lpVtbl->AddRef(This);
5374}
5375static FORCEINLINE ULONG ISynchronizeContainer_Release(ISynchronizeContainer* This) {
5376    return This->lpVtbl->Release(This);
5377}
5378/*** ISynchronizeContainer methods ***/
5379static FORCEINLINE HRESULT ISynchronizeContainer_AddSynchronize(ISynchronizeContainer* This,ISynchronize *pSync) {
5380    return This->lpVtbl->AddSynchronize(This,pSync);
5381}
5382static FORCEINLINE HRESULT ISynchronizeContainer_WaitMultiple(ISynchronizeContainer* This,DWORD dwFlags,DWORD dwTimeOut,ISynchronize **ppSync) {
5383    return This->lpVtbl->WaitMultiple(This,dwFlags,dwTimeOut,ppSync);
5384}
5385#endif
5386#endif
5387
5388#endif
5389
5390HRESULT STDMETHODCALLTYPE ISynchronizeContainer_AddSynchronize_Proxy(
5391    ISynchronizeContainer* This,
5392    ISynchronize *pSync);
5393void __RPC_STUB ISynchronizeContainer_AddSynchronize_Stub(
5394    IRpcStubBuffer* This,
5395    IRpcChannelBuffer* pRpcChannelBuffer,
5396    PRPC_MESSAGE pRpcMessage,
5397    DWORD* pdwStubPhase);
5398HRESULT STDMETHODCALLTYPE ISynchronizeContainer_WaitMultiple_Proxy(
5399    ISynchronizeContainer* This,
5400    DWORD dwFlags,
5401    DWORD dwTimeOut,
5402    ISynchronize **ppSync);
5403void __RPC_STUB ISynchronizeContainer_WaitMultiple_Stub(
5404    IRpcStubBuffer* This,
5405    IRpcChannelBuffer* pRpcChannelBuffer,
5406    PRPC_MESSAGE pRpcMessage,
5407    DWORD* pdwStubPhase);
5408
5409#endif  /* __ISynchronizeContainer_INTERFACE_DEFINED__ */
5410
5411
5412/*****************************************************************************
5413 * ISynchronizeMutex interface
5414 */
5415#ifndef __ISynchronizeMutex_INTERFACE_DEFINED__
5416#define __ISynchronizeMutex_INTERFACE_DEFINED__
5417
5418DEFINE_GUID(IID_ISynchronizeMutex, 0x00000025, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5419#if defined(__cplusplus) && !defined(CINTERFACE)
5420MIDL_INTERFACE("00000025-0000-0000-c000-000000000046")
5421ISynchronizeMutex : public ISynchronize
5422{
5423    virtual HRESULT STDMETHODCALLTYPE ReleaseMutex(
5424        ) = 0;
5425
5426};
5427#ifdef __CRT_UUID_DECL
5428__CRT_UUID_DECL(ISynchronizeMutex, 0x00000025, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5429#endif
5430#else
5431typedef struct ISynchronizeMutexVtbl {
5432    BEGIN_INTERFACE
5433
5434    /*** IUnknown methods ***/
5435    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5436        ISynchronizeMutex* This,
5437        REFIID riid,
5438        void **ppvObject);
5439
5440    ULONG (STDMETHODCALLTYPE *AddRef)(
5441        ISynchronizeMutex* This);
5442
5443    ULONG (STDMETHODCALLTYPE *Release)(
5444        ISynchronizeMutex* This);
5445
5446    /*** ISynchronize methods ***/
5447    HRESULT (STDMETHODCALLTYPE *Wait)(
5448        ISynchronizeMutex* This,
5449        DWORD dwFlags,
5450        DWORD dwMilliseconds);
5451
5452    HRESULT (STDMETHODCALLTYPE *Signal)(
5453        ISynchronizeMutex* This);
5454
5455    HRESULT (STDMETHODCALLTYPE *Reset)(
5456        ISynchronizeMutex* This);
5457
5458    /*** ISynchronizeMutex methods ***/
5459    HRESULT (STDMETHODCALLTYPE *ReleaseMutex)(
5460        ISynchronizeMutex* This);
5461
5462    END_INTERFACE
5463} ISynchronizeMutexVtbl;
5464interface ISynchronizeMutex {
5465    CONST_VTBL ISynchronizeMutexVtbl* lpVtbl;
5466};
5467
5468#ifdef COBJMACROS
5469#ifndef WIDL_C_INLINE_WRAPPERS
5470/*** IUnknown methods ***/
5471#define ISynchronizeMutex_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5472#define ISynchronizeMutex_AddRef(This) (This)->lpVtbl->AddRef(This)
5473#define ISynchronizeMutex_Release(This) (This)->lpVtbl->Release(This)
5474/*** ISynchronize methods ***/
5475#define ISynchronizeMutex_Wait(This,dwFlags,dwMilliseconds) (This)->lpVtbl->Wait(This,dwFlags,dwMilliseconds)
5476#define ISynchronizeMutex_Signal(This) (This)->lpVtbl->Signal(This)
5477#define ISynchronizeMutex_Reset(This) (This)->lpVtbl->Reset(This)
5478/*** ISynchronizeMutex methods ***/
5479#define ISynchronizeMutex_ReleaseMutex(This) (This)->lpVtbl->ReleaseMutex(This)
5480#else
5481/*** IUnknown methods ***/
5482static FORCEINLINE HRESULT ISynchronizeMutex_QueryInterface(ISynchronizeMutex* This,REFIID riid,void **ppvObject) {
5483    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5484}
5485static FORCEINLINE ULONG ISynchronizeMutex_AddRef(ISynchronizeMutex* This) {
5486    return This->lpVtbl->AddRef(This);
5487}
5488static FORCEINLINE ULONG ISynchronizeMutex_Release(ISynchronizeMutex* This) {
5489    return This->lpVtbl->Release(This);
5490}
5491/*** ISynchronize methods ***/
5492static FORCEINLINE HRESULT ISynchronizeMutex_Wait(ISynchronizeMutex* This,DWORD dwFlags,DWORD dwMilliseconds) {
5493    return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
5494}
5495static FORCEINLINE HRESULT ISynchronizeMutex_Signal(ISynchronizeMutex* This) {
5496    return This->lpVtbl->Signal(This);
5497}
5498static FORCEINLINE HRESULT ISynchronizeMutex_Reset(ISynchronizeMutex* This) {
5499    return This->lpVtbl->Reset(This);
5500}
5501/*** ISynchronizeMutex methods ***/
5502static FORCEINLINE HRESULT ISynchronizeMutex_ReleaseMutex(ISynchronizeMutex* This) {
5503    return This->lpVtbl->ReleaseMutex(This);
5504}
5505#endif
5506#endif
5507
5508#endif
5509
5510HRESULT STDMETHODCALLTYPE ISynchronizeMutex_ReleaseMutex_Proxy(
5511    ISynchronizeMutex* This);
5512void __RPC_STUB ISynchronizeMutex_ReleaseMutex_Stub(
5513    IRpcStubBuffer* This,
5514    IRpcChannelBuffer* pRpcChannelBuffer,
5515    PRPC_MESSAGE pRpcMessage,
5516    DWORD* pdwStubPhase);
5517
5518#endif  /* __ISynchronizeMutex_INTERFACE_DEFINED__ */
5519
5520
5521/*****************************************************************************
5522 * ICancelMethodCalls interface
5523 */
5524#ifndef __ICancelMethodCalls_INTERFACE_DEFINED__
5525#define __ICancelMethodCalls_INTERFACE_DEFINED__
5526
5527typedef ICancelMethodCalls *LPCANCELMETHODCALLS;
5528
5529DEFINE_GUID(IID_ICancelMethodCalls, 0x00000029, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5530#if defined(__cplusplus) && !defined(CINTERFACE)
5531MIDL_INTERFACE("00000029-0000-0000-c000-000000000046")
5532ICancelMethodCalls : public IUnknown
5533{
5534    virtual HRESULT STDMETHODCALLTYPE Cancel(
5535        ULONG ulSeconds) = 0;
5536
5537    virtual HRESULT STDMETHODCALLTYPE TestCancel(
5538        ) = 0;
5539
5540};
5541#ifdef __CRT_UUID_DECL
5542__CRT_UUID_DECL(ICancelMethodCalls, 0x00000029, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5543#endif
5544#else
5545typedef struct ICancelMethodCallsVtbl {
5546    BEGIN_INTERFACE
5547
5548    /*** IUnknown methods ***/
5549    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5550        ICancelMethodCalls* This,
5551        REFIID riid,
5552        void **ppvObject);
5553
5554    ULONG (STDMETHODCALLTYPE *AddRef)(
5555        ICancelMethodCalls* This);
5556
5557    ULONG (STDMETHODCALLTYPE *Release)(
5558        ICancelMethodCalls* This);
5559
5560    /*** ICancelMethodCalls methods ***/
5561    HRESULT (STDMETHODCALLTYPE *Cancel)(
5562        ICancelMethodCalls* This,
5563        ULONG ulSeconds);
5564
5565    HRESULT (STDMETHODCALLTYPE *TestCancel)(
5566        ICancelMethodCalls* This);
5567
5568    END_INTERFACE
5569} ICancelMethodCallsVtbl;
5570interface ICancelMethodCalls {
5571    CONST_VTBL ICancelMethodCallsVtbl* lpVtbl;
5572};
5573
5574#ifdef COBJMACROS
5575#ifndef WIDL_C_INLINE_WRAPPERS
5576/*** IUnknown methods ***/
5577#define ICancelMethodCalls_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5578#define ICancelMethodCalls_AddRef(This) (This)->lpVtbl->AddRef(This)
5579#define ICancelMethodCalls_Release(This) (This)->lpVtbl->Release(This)
5580/*** ICancelMethodCalls methods ***/
5581#define ICancelMethodCalls_Cancel(This,ulSeconds) (This)->lpVtbl->Cancel(This,ulSeconds)
5582#define ICancelMethodCalls_TestCancel(This) (This)->lpVtbl->TestCancel(This)
5583#else
5584/*** IUnknown methods ***/
5585static FORCEINLINE HRESULT ICancelMethodCalls_QueryInterface(ICancelMethodCalls* This,REFIID riid,void **ppvObject) {
5586    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5587}
5588static FORCEINLINE ULONG ICancelMethodCalls_AddRef(ICancelMethodCalls* This) {
5589    return This->lpVtbl->AddRef(This);
5590}
5591static FORCEINLINE ULONG ICancelMethodCalls_Release(ICancelMethodCalls* This) {
5592    return This->lpVtbl->Release(This);
5593}
5594/*** ICancelMethodCalls methods ***/
5595static FORCEINLINE HRESULT ICancelMethodCalls_Cancel(ICancelMethodCalls* This,ULONG ulSeconds) {
5596    return This->lpVtbl->Cancel(This,ulSeconds);
5597}
5598static FORCEINLINE HRESULT ICancelMethodCalls_TestCancel(ICancelMethodCalls* This) {
5599    return This->lpVtbl->TestCancel(This);
5600}
5601#endif
5602#endif
5603
5604#endif
5605
5606HRESULT STDMETHODCALLTYPE ICancelMethodCalls_Cancel_Proxy(
5607    ICancelMethodCalls* This,
5608    ULONG ulSeconds);
5609void __RPC_STUB ICancelMethodCalls_Cancel_Stub(
5610    IRpcStubBuffer* This,
5611    IRpcChannelBuffer* pRpcChannelBuffer,
5612    PRPC_MESSAGE pRpcMessage,
5613    DWORD* pdwStubPhase);
5614HRESULT STDMETHODCALLTYPE ICancelMethodCalls_TestCancel_Proxy(
5615    ICancelMethodCalls* This);
5616void __RPC_STUB ICancelMethodCalls_TestCancel_Stub(
5617    IRpcStubBuffer* This,
5618    IRpcChannelBuffer* pRpcChannelBuffer,
5619    PRPC_MESSAGE pRpcMessage,
5620    DWORD* pdwStubPhase);
5621
5622#endif  /* __ICancelMethodCalls_INTERFACE_DEFINED__ */
5623
5624
5625/*****************************************************************************
5626 * IAsyncManager interface
5627 */
5628#ifndef __IAsyncManager_INTERFACE_DEFINED__
5629#define __IAsyncManager_INTERFACE_DEFINED__
5630
5631typedef enum tagDCOM_CALL_STATE {
5632    DCOM_NONE = 0x0,
5633    DCOM_CALL_COMPLETE = 0x1,
5634    DCOM_CALL_CANCELED = 0x2
5635} DCOM_CALL_STATE;
5636
5637DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5638#if defined(__cplusplus) && !defined(CINTERFACE)
5639MIDL_INTERFACE("0000002a-0000-0000-c000-000000000046")
5640IAsyncManager : public IUnknown
5641{
5642    virtual HRESULT STDMETHODCALLTYPE CompleteCall(
5643        HRESULT Result) = 0;
5644
5645    virtual HRESULT STDMETHODCALLTYPE GetCallContext(
5646        REFIID riid,
5647        void **pInterface) = 0;
5648
5649    virtual HRESULT STDMETHODCALLTYPE GetState(
5650        ULONG *pulStateFlags) = 0;
5651
5652};
5653#ifdef __CRT_UUID_DECL
5654__CRT_UUID_DECL(IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5655#endif
5656#else
5657typedef struct IAsyncManagerVtbl {
5658    BEGIN_INTERFACE
5659
5660    /*** IUnknown methods ***/
5661    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5662        IAsyncManager* This,
5663        REFIID riid,
5664        void **ppvObject);
5665
5666    ULONG (STDMETHODCALLTYPE *AddRef)(
5667        IAsyncManager* This);
5668
5669    ULONG (STDMETHODCALLTYPE *Release)(
5670        IAsyncManager* This);
5671
5672    /*** IAsyncManager methods ***/
5673    HRESULT (STDMETHODCALLTYPE *CompleteCall)(
5674        IAsyncManager* This,
5675        HRESULT Result);
5676
5677    HRESULT (STDMETHODCALLTYPE *GetCallContext)(
5678        IAsyncManager* This,
5679        REFIID riid,
5680        void **pInterface);
5681
5682    HRESULT (STDMETHODCALLTYPE *GetState)(
5683        IAsyncManager* This,
5684        ULONG *pulStateFlags);
5685
5686    END_INTERFACE
5687} IAsyncManagerVtbl;
5688interface IAsyncManager {
5689    CONST_VTBL IAsyncManagerVtbl* lpVtbl;
5690};
5691
5692#ifdef COBJMACROS
5693#ifndef WIDL_C_INLINE_WRAPPERS
5694/*** IUnknown methods ***/
5695#define IAsyncManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5696#define IAsyncManager_AddRef(This) (This)->lpVtbl->AddRef(This)
5697#define IAsyncManager_Release(This) (This)->lpVtbl->Release(This)
5698/*** IAsyncManager methods ***/
5699#define IAsyncManager_CompleteCall(This,Result) (This)->lpVtbl->CompleteCall(This,Result)
5700#define IAsyncManager_GetCallContext(This,riid,pInterface) (This)->lpVtbl->GetCallContext(This,riid,pInterface)
5701#define IAsyncManager_GetState(This,pulStateFlags) (This)->lpVtbl->GetState(This,pulStateFlags)
5702#else
5703/*** IUnknown methods ***/
5704static FORCEINLINE HRESULT IAsyncManager_QueryInterface(IAsyncManager* This,REFIID riid,void **ppvObject) {
5705    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5706}
5707static FORCEINLINE ULONG IAsyncManager_AddRef(IAsyncManager* This) {
5708    return This->lpVtbl->AddRef(This);
5709}
5710static FORCEINLINE ULONG IAsyncManager_Release(IAsyncManager* This) {
5711    return This->lpVtbl->Release(This);
5712}
5713/*** IAsyncManager methods ***/
5714static FORCEINLINE HRESULT IAsyncManager_CompleteCall(IAsyncManager* This,HRESULT Result) {
5715    return This->lpVtbl->CompleteCall(This,Result);
5716}
5717static FORCEINLINE HRESULT IAsyncManager_GetCallContext(IAsyncManager* This,REFIID riid,void **pInterface) {
5718    return This->lpVtbl->GetCallContext(This,riid,pInterface);
5719}
5720static FORCEINLINE HRESULT IAsyncManager_GetState(IAsyncManager* This,ULONG *pulStateFlags) {
5721    return This->lpVtbl->GetState(This,pulStateFlags);
5722}
5723#endif
5724#endif
5725
5726#endif
5727
5728HRESULT STDMETHODCALLTYPE IAsyncManager_CompleteCall_Proxy(
5729    IAsyncManager* This,
5730    HRESULT Result);
5731void __RPC_STUB IAsyncManager_CompleteCall_Stub(
5732    IRpcStubBuffer* This,
5733    IRpcChannelBuffer* pRpcChannelBuffer,
5734    PRPC_MESSAGE pRpcMessage,
5735    DWORD* pdwStubPhase);
5736HRESULT STDMETHODCALLTYPE IAsyncManager_GetCallContext_Proxy(
5737    IAsyncManager* This,
5738    REFIID riid,
5739    void **pInterface);
5740void __RPC_STUB IAsyncManager_GetCallContext_Stub(
5741    IRpcStubBuffer* This,
5742    IRpcChannelBuffer* pRpcChannelBuffer,
5743    PRPC_MESSAGE pRpcMessage,
5744    DWORD* pdwStubPhase);
5745HRESULT STDMETHODCALLTYPE IAsyncManager_GetState_Proxy(
5746    IAsyncManager* This,
5747    ULONG *pulStateFlags);
5748void __RPC_STUB IAsyncManager_GetState_Stub(
5749    IRpcStubBuffer* This,
5750    IRpcChannelBuffer* pRpcChannelBuffer,
5751    PRPC_MESSAGE pRpcMessage,
5752    DWORD* pdwStubPhase);
5753
5754#endif  /* __IAsyncManager_INTERFACE_DEFINED__ */
5755
5756
5757/*****************************************************************************
5758 * ICallFactory interface
5759 */
5760#ifndef __ICallFactory_INTERFACE_DEFINED__
5761#define __ICallFactory_INTERFACE_DEFINED__
5762
5763DEFINE_GUID(IID_ICallFactory, 0x1c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
5764#if defined(__cplusplus) && !defined(CINTERFACE)
5765MIDL_INTERFACE("1c733a30-2a1c-11ce-ade5-00aa0044773d")
5766ICallFactory : public IUnknown
5767{
5768    virtual HRESULT STDMETHODCALLTYPE CreateCall(
5769        REFIID riid,
5770        IUnknown *pCtrlUnk,
5771        REFIID riid2,
5772        IUnknown **ppv) = 0;
5773
5774};
5775#ifdef __CRT_UUID_DECL
5776__CRT_UUID_DECL(ICallFactory, 0x1c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d)
5777#endif
5778#else
5779typedef struct ICallFactoryVtbl {
5780    BEGIN_INTERFACE
5781
5782    /*** IUnknown methods ***/
5783    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5784        ICallFactory* This,
5785        REFIID riid,
5786        void **ppvObject);
5787
5788    ULONG (STDMETHODCALLTYPE *AddRef)(
5789        ICallFactory* This);
5790
5791    ULONG (STDMETHODCALLTYPE *Release)(
5792        ICallFactory* This);
5793
5794    /*** ICallFactory methods ***/
5795    HRESULT (STDMETHODCALLTYPE *CreateCall)(
5796        ICallFactory* This,
5797        REFIID riid,
5798        IUnknown *pCtrlUnk,
5799        REFIID riid2,
5800        IUnknown **ppv);
5801
5802    END_INTERFACE
5803} ICallFactoryVtbl;
5804interface ICallFactory {
5805    CONST_VTBL ICallFactoryVtbl* lpVtbl;
5806};
5807
5808#ifdef COBJMACROS
5809#ifndef WIDL_C_INLINE_WRAPPERS
5810/*** IUnknown methods ***/
5811#define ICallFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5812#define ICallFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
5813#define ICallFactory_Release(This) (This)->lpVtbl->Release(This)
5814/*** ICallFactory methods ***/
5815#define ICallFactory_CreateCall(This,riid,pCtrlUnk,riid2,ppv) (This)->lpVtbl->CreateCall(This,riid,pCtrlUnk,riid2,ppv)
5816#else
5817/*** IUnknown methods ***/
5818static FORCEINLINE HRESULT ICallFactory_QueryInterface(ICallFactory* This,REFIID riid,void **ppvObject) {
5819    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5820}
5821static FORCEINLINE ULONG ICallFactory_AddRef(ICallFactory* This) {
5822    return This->lpVtbl->AddRef(This);
5823}
5824static FORCEINLINE ULONG ICallFactory_Release(ICallFactory* This) {
5825    return This->lpVtbl->Release(This);
5826}
5827/*** ICallFactory methods ***/
5828static FORCEINLINE HRESULT ICallFactory_CreateCall(ICallFactory* This,REFIID riid,IUnknown *pCtrlUnk,REFIID riid2,IUnknown **ppv) {
5829    return This->lpVtbl->CreateCall(This,riid,pCtrlUnk,riid2,ppv);
5830}
5831#endif
5832#endif
5833
5834#endif
5835
5836HRESULT STDMETHODCALLTYPE ICallFactory_CreateCall_Proxy(
5837    ICallFactory* This,
5838    REFIID riid,
5839    IUnknown *pCtrlUnk,
5840    REFIID riid2,
5841    IUnknown **ppv);
5842void __RPC_STUB ICallFactory_CreateCall_Stub(
5843    IRpcStubBuffer* This,
5844    IRpcChannelBuffer* pRpcChannelBuffer,
5845    PRPC_MESSAGE pRpcMessage,
5846    DWORD* pdwStubPhase);
5847
5848#endif  /* __ICallFactory_INTERFACE_DEFINED__ */
5849
5850
5851/*****************************************************************************
5852 * IRpcHelper interface
5853 */
5854#ifndef __IRpcHelper_INTERFACE_DEFINED__
5855#define __IRpcHelper_INTERFACE_DEFINED__
5856
5857DEFINE_GUID(IID_IRpcHelper, 0x00000149, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5858#if defined(__cplusplus) && !defined(CINTERFACE)
5859MIDL_INTERFACE("00000149-0000-0000-c000-000000000046")
5860IRpcHelper : public IUnknown
5861{
5862    virtual HRESULT STDMETHODCALLTYPE GetDCOMProtocolVersion(
5863        DWORD *pComVersion) = 0;
5864
5865    virtual HRESULT STDMETHODCALLTYPE GetIIDFromOBJREF(
5866        void *pObjRef,
5867        IID **piid) = 0;
5868
5869};
5870#ifdef __CRT_UUID_DECL
5871__CRT_UUID_DECL(IRpcHelper, 0x00000149, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5872#endif
5873#else
5874typedef struct IRpcHelperVtbl {
5875    BEGIN_INTERFACE
5876
5877    /*** IUnknown methods ***/
5878    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5879        IRpcHelper* This,
5880        REFIID riid,
5881        void **ppvObject);
5882
5883    ULONG (STDMETHODCALLTYPE *AddRef)(
5884        IRpcHelper* This);
5885
5886    ULONG (STDMETHODCALLTYPE *Release)(
5887        IRpcHelper* This);
5888
5889    /*** IRpcHelper methods ***/
5890    HRESULT (STDMETHODCALLTYPE *GetDCOMProtocolVersion)(
5891        IRpcHelper* This,
5892        DWORD *pComVersion);
5893
5894    HRESULT (STDMETHODCALLTYPE *GetIIDFromOBJREF)(
5895        IRpcHelper* This,
5896        void *pObjRef,
5897        IID **piid);
5898
5899    END_INTERFACE
5900} IRpcHelperVtbl;
5901interface IRpcHelper {
5902    CONST_VTBL IRpcHelperVtbl* lpVtbl;
5903};
5904
5905#ifdef COBJMACROS
5906#ifndef WIDL_C_INLINE_WRAPPERS
5907/*** IUnknown methods ***/
5908#define IRpcHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5909#define IRpcHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
5910#define IRpcHelper_Release(This) (This)->lpVtbl->Release(This)
5911/*** IRpcHelper methods ***/
5912#define IRpcHelper_GetDCOMProtocolVersion(This,pComVersion) (This)->lpVtbl->GetDCOMProtocolVersion(This,pComVersion)
5913#define IRpcHelper_GetIIDFromOBJREF(This,pObjRef,piid) (This)->lpVtbl->GetIIDFromOBJREF(This,pObjRef,piid)
5914#else
5915/*** IUnknown methods ***/
5916static FORCEINLINE HRESULT IRpcHelper_QueryInterface(IRpcHelper* This,REFIID riid,void **ppvObject) {
5917    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5918}
5919static FORCEINLINE ULONG IRpcHelper_AddRef(IRpcHelper* This) {
5920    return This->lpVtbl->AddRef(This);
5921}
5922static FORCEINLINE ULONG IRpcHelper_Release(IRpcHelper* This) {
5923    return This->lpVtbl->Release(This);
5924}
5925/*** IRpcHelper methods ***/
5926static FORCEINLINE HRESULT IRpcHelper_GetDCOMProtocolVersion(IRpcHelper* This,DWORD *pComVersion) {
5927    return This->lpVtbl->GetDCOMProtocolVersion(This,pComVersion);
5928}
5929static FORCEINLINE HRESULT IRpcHelper_GetIIDFromOBJREF(IRpcHelper* This,void *pObjRef,IID **piid) {
5930    return This->lpVtbl->GetIIDFromOBJREF(This,pObjRef,piid);
5931}
5932#endif
5933#endif
5934
5935#endif
5936
5937HRESULT STDMETHODCALLTYPE IRpcHelper_GetDCOMProtocolVersion_Proxy(
5938    IRpcHelper* This,
5939    DWORD *pComVersion);
5940void __RPC_STUB IRpcHelper_GetDCOMProtocolVersion_Stub(
5941    IRpcStubBuffer* This,
5942    IRpcChannelBuffer* pRpcChannelBuffer,
5943    PRPC_MESSAGE pRpcMessage,
5944    DWORD* pdwStubPhase);
5945HRESULT STDMETHODCALLTYPE IRpcHelper_GetIIDFromOBJREF_Proxy(
5946    IRpcHelper* This,
5947    void *pObjRef,
5948    IID **piid);
5949void __RPC_STUB IRpcHelper_GetIIDFromOBJREF_Stub(
5950    IRpcStubBuffer* This,
5951    IRpcChannelBuffer* pRpcChannelBuffer,
5952    PRPC_MESSAGE pRpcMessage,
5953    DWORD* pdwStubPhase);
5954
5955#endif  /* __IRpcHelper_INTERFACE_DEFINED__ */
5956
5957
5958/*****************************************************************************
5959 * IReleaseMarshalBuffers interface
5960 */
5961#ifndef __IReleaseMarshalBuffers_INTERFACE_DEFINED__
5962#define __IReleaseMarshalBuffers_INTERFACE_DEFINED__
5963
5964DEFINE_GUID(IID_IReleaseMarshalBuffers, 0xeb0cb9e8, 0x7996, 0x11d2, 0x87,0x2e, 0x00,0x00,0xf8,0x08,0x08,0x59);
5965#if defined(__cplusplus) && !defined(CINTERFACE)
5966MIDL_INTERFACE("eb0cb9e8-7996-11d2-872e-0000f8080859")
5967IReleaseMarshalBuffers : public IUnknown
5968{
5969    virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalBuffer(
5970        RPCOLEMESSAGE *pMsg,
5971        DWORD dwFlags,
5972        IUnknown *pChnl) = 0;
5973
5974};
5975#ifdef __CRT_UUID_DECL
5976__CRT_UUID_DECL(IReleaseMarshalBuffers, 0xeb0cb9e8, 0x7996, 0x11d2, 0x87,0x2e, 0x00,0x00,0xf8,0x08,0x08,0x59)
5977#endif
5978#else
5979typedef struct IReleaseMarshalBuffersVtbl {
5980    BEGIN_INTERFACE
5981
5982    /*** IUnknown methods ***/
5983    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5984        IReleaseMarshalBuffers* This,
5985        REFIID riid,
5986        void **ppvObject);
5987
5988    ULONG (STDMETHODCALLTYPE *AddRef)(
5989        IReleaseMarshalBuffers* This);
5990
5991    ULONG (STDMETHODCALLTYPE *Release)(
5992        IReleaseMarshalBuffers* This);
5993
5994    /*** IReleaseMarshalBuffers methods ***/
5995    HRESULT (STDMETHODCALLTYPE *ReleaseMarshalBuffer)(
5996        IReleaseMarshalBuffers* This,
5997        RPCOLEMESSAGE *pMsg,
5998        DWORD dwFlags,
5999        IUnknown *pChnl);
6000
6001    END_INTERFACE
6002} IReleaseMarshalBuffersVtbl;
6003interface IReleaseMarshalBuffers {
6004    CONST_VTBL IReleaseMarshalBuffersVtbl* lpVtbl;
6005};
6006
6007#ifdef COBJMACROS
6008#ifndef WIDL_C_INLINE_WRAPPERS
6009/*** IUnknown methods ***/
6010#define IReleaseMarshalBuffers_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6011#define IReleaseMarshalBuffers_AddRef(This) (This)->lpVtbl->AddRef(This)
6012#define IReleaseMarshalBuffers_Release(This) (This)->lpVtbl->Release(This)
6013/*** IReleaseMarshalBuffers methods ***/
6014#define IReleaseMarshalBuffers_ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl) (This)->lpVtbl->ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl)
6015#else
6016/*** IUnknown methods ***/
6017static FORCEINLINE HRESULT IReleaseMarshalBuffers_QueryInterface(IReleaseMarshalBuffers* This,REFIID riid,void **ppvObject) {
6018    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6019}
6020static FORCEINLINE ULONG IReleaseMarshalBuffers_AddRef(IReleaseMarshalBuffers* This) {
6021    return This->lpVtbl->AddRef(This);
6022}
6023static FORCEINLINE ULONG IReleaseMarshalBuffers_Release(IReleaseMarshalBuffers* This) {
6024    return This->lpVtbl->Release(This);
6025}
6026/*** IReleaseMarshalBuffers methods ***/
6027static FORCEINLINE HRESULT IReleaseMarshalBuffers_ReleaseMarshalBuffer(IReleaseMarshalBuffers* This,RPCOLEMESSAGE *pMsg,DWORD dwFlags,IUnknown *pChnl) {
6028    return This->lpVtbl->ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl);
6029}
6030#endif
6031#endif
6032
6033#endif
6034
6035HRESULT STDMETHODCALLTYPE IReleaseMarshalBuffers_ReleaseMarshalBuffer_Proxy(
6036    IReleaseMarshalBuffers* This,
6037    RPCOLEMESSAGE *pMsg,
6038    DWORD dwFlags,
6039    IUnknown *pChnl);
6040void __RPC_STUB IReleaseMarshalBuffers_ReleaseMarshalBuffer_Stub(
6041    IRpcStubBuffer* This,
6042    IRpcChannelBuffer* pRpcChannelBuffer,
6043    PRPC_MESSAGE pRpcMessage,
6044    DWORD* pdwStubPhase);
6045
6046#endif  /* __IReleaseMarshalBuffers_INTERFACE_DEFINED__ */
6047
6048
6049/*****************************************************************************
6050 * IWaitMultiple interface
6051 */
6052#ifndef __IWaitMultiple_INTERFACE_DEFINED__
6053#define __IWaitMultiple_INTERFACE_DEFINED__
6054
6055DEFINE_GUID(IID_IWaitMultiple, 0x0000002b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6056#if defined(__cplusplus) && !defined(CINTERFACE)
6057MIDL_INTERFACE("0000002b-0000-0000-c000-000000000046")
6058IWaitMultiple : public IUnknown
6059{
6060    virtual HRESULT STDMETHODCALLTYPE WaitMultiple(
6061        DWORD timeout,
6062        ISynchronize **pSync) = 0;
6063
6064    virtual HRESULT STDMETHODCALLTYPE AddSynchronize(
6065        ISynchronize *pSync) = 0;
6066
6067};
6068#ifdef __CRT_UUID_DECL
6069__CRT_UUID_DECL(IWaitMultiple, 0x0000002b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6070#endif
6071#else
6072typedef struct IWaitMultipleVtbl {
6073    BEGIN_INTERFACE
6074
6075    /*** IUnknown methods ***/
6076    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6077        IWaitMultiple* This,
6078        REFIID riid,
6079        void **ppvObject);
6080
6081    ULONG (STDMETHODCALLTYPE *AddRef)(
6082        IWaitMultiple* This);
6083
6084    ULONG (STDMETHODCALLTYPE *Release)(
6085        IWaitMultiple* This);
6086
6087    /*** IWaitMultiple methods ***/
6088    HRESULT (STDMETHODCALLTYPE *WaitMultiple)(
6089        IWaitMultiple* This,
6090        DWORD timeout,
6091        ISynchronize **pSync);
6092
6093    HRESULT (STDMETHODCALLTYPE *AddSynchronize)(
6094        IWaitMultiple* This,
6095        ISynchronize *pSync);
6096
6097    END_INTERFACE
6098} IWaitMultipleVtbl;
6099interface IWaitMultiple {
6100    CONST_VTBL IWaitMultipleVtbl* lpVtbl;
6101};
6102
6103#ifdef COBJMACROS
6104#ifndef WIDL_C_INLINE_WRAPPERS
6105/*** IUnknown methods ***/
6106#define IWaitMultiple_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6107#define IWaitMultiple_AddRef(This) (This)->lpVtbl->AddRef(This)
6108#define IWaitMultiple_Release(This) (This)->lpVtbl->Release(This)
6109/*** IWaitMultiple methods ***/
6110#define IWaitMultiple_WaitMultiple(This,timeout,pSync) (This)->lpVtbl->WaitMultiple(This,timeout,pSync)
6111#define IWaitMultiple_AddSynchronize(This,pSync) (This)->lpVtbl->AddSynchronize(This,pSync)
6112#else
6113/*** IUnknown methods ***/
6114static FORCEINLINE HRESULT IWaitMultiple_QueryInterface(IWaitMultiple* This,REFIID riid,void **ppvObject) {
6115    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6116}
6117static FORCEINLINE ULONG IWaitMultiple_AddRef(IWaitMultiple* This) {
6118    return This->lpVtbl->AddRef(This);
6119}
6120static FORCEINLINE ULONG IWaitMultiple_Release(IWaitMultiple* This) {
6121    return This->lpVtbl->Release(This);
6122}
6123/*** IWaitMultiple methods ***/
6124static FORCEINLINE HRESULT IWaitMultiple_WaitMultiple(IWaitMultiple* This,DWORD timeout,ISynchronize **pSync) {
6125    return This->lpVtbl->WaitMultiple(This,timeout,pSync);
6126}
6127static FORCEINLINE HRESULT IWaitMultiple_AddSynchronize(IWaitMultiple* This,ISynchronize *pSync) {
6128    return This->lpVtbl->AddSynchronize(This,pSync);
6129}
6130#endif
6131#endif
6132
6133#endif
6134
6135HRESULT STDMETHODCALLTYPE IWaitMultiple_WaitMultiple_Proxy(
6136    IWaitMultiple* This,
6137    DWORD timeout,
6138    ISynchronize **pSync);
6139void __RPC_STUB IWaitMultiple_WaitMultiple_Stub(
6140    IRpcStubBuffer* This,
6141    IRpcChannelBuffer* pRpcChannelBuffer,
6142    PRPC_MESSAGE pRpcMessage,
6143    DWORD* pdwStubPhase);
6144HRESULT STDMETHODCALLTYPE IWaitMultiple_AddSynchronize_Proxy(
6145    IWaitMultiple* This,
6146    ISynchronize *pSync);
6147void __RPC_STUB IWaitMultiple_AddSynchronize_Stub(
6148    IRpcStubBuffer* This,
6149    IRpcChannelBuffer* pRpcChannelBuffer,
6150    PRPC_MESSAGE pRpcMessage,
6151    DWORD* pdwStubPhase);
6152
6153#endif  /* __IWaitMultiple_INTERFACE_DEFINED__ */
6154
6155
6156/*****************************************************************************
6157 * IAddrTrackingControl interface
6158 */
6159#ifndef __IAddrTrackingControl_INTERFACE_DEFINED__
6160#define __IAddrTrackingControl_INTERFACE_DEFINED__
6161
6162typedef IAddrTrackingControl *LPADDRTRACKINGCONTROL;
6163DEFINE_GUID(IID_IAddrTrackingControl, 0x00000147, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6164#if defined(__cplusplus) && !defined(CINTERFACE)
6165MIDL_INTERFACE("00000147-0000-0000-c000-000000000046")
6166IAddrTrackingControl : public IUnknown
6167{
6168    virtual HRESULT STDMETHODCALLTYPE EnableCOMDynamicAddrTracking(
6169        ) = 0;
6170
6171    virtual HRESULT STDMETHODCALLTYPE DisableCOMDynamicAddrTracking(
6172        ) = 0;
6173
6174};
6175#ifdef __CRT_UUID_DECL
6176__CRT_UUID_DECL(IAddrTrackingControl, 0x00000147, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6177#endif
6178#else
6179typedef struct IAddrTrackingControlVtbl {
6180    BEGIN_INTERFACE
6181
6182    /*** IUnknown methods ***/
6183    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6184        IAddrTrackingControl* This,
6185        REFIID riid,
6186        void **ppvObject);
6187
6188    ULONG (STDMETHODCALLTYPE *AddRef)(
6189        IAddrTrackingControl* This);
6190
6191    ULONG (STDMETHODCALLTYPE *Release)(
6192        IAddrTrackingControl* This);
6193
6194    /*** IAddrTrackingControl methods ***/
6195    HRESULT (STDMETHODCALLTYPE *EnableCOMDynamicAddrTracking)(
6196        IAddrTrackingControl* This);
6197
6198    HRESULT (STDMETHODCALLTYPE *DisableCOMDynamicAddrTracking)(
6199        IAddrTrackingControl* This);
6200
6201    END_INTERFACE
6202} IAddrTrackingControlVtbl;
6203interface IAddrTrackingControl {
6204    CONST_VTBL IAddrTrackingControlVtbl* lpVtbl;
6205};
6206
6207#ifdef COBJMACROS
6208#ifndef WIDL_C_INLINE_WRAPPERS
6209/*** IUnknown methods ***/
6210#define IAddrTrackingControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6211#define IAddrTrackingControl_AddRef(This) (This)->lpVtbl->AddRef(This)
6212#define IAddrTrackingControl_Release(This) (This)->lpVtbl->Release(This)
6213/*** IAddrTrackingControl methods ***/
6214#define IAddrTrackingControl_EnableCOMDynamicAddrTracking(This) (This)->lpVtbl->EnableCOMDynamicAddrTracking(This)
6215#define IAddrTrackingControl_DisableCOMDynamicAddrTracking(This) (This)->lpVtbl->DisableCOMDynamicAddrTracking(This)
6216#else
6217/*** IUnknown methods ***/
6218static FORCEINLINE HRESULT IAddrTrackingControl_QueryInterface(IAddrTrackingControl* This,REFIID riid,void **ppvObject) {
6219    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6220}
6221static FORCEINLINE ULONG IAddrTrackingControl_AddRef(IAddrTrackingControl* This) {
6222    return This->lpVtbl->AddRef(This);
6223}
6224static FORCEINLINE ULONG IAddrTrackingControl_Release(IAddrTrackingControl* This) {
6225    return This->lpVtbl->Release(This);
6226}
6227/*** IAddrTrackingControl methods ***/
6228static FORCEINLINE HRESULT IAddrTrackingControl_EnableCOMDynamicAddrTracking(IAddrTrackingControl* This) {
6229    return This->lpVtbl->EnableCOMDynamicAddrTracking(This);
6230}
6231static FORCEINLINE HRESULT IAddrTrackingControl_DisableCOMDynamicAddrTracking(IAddrTrackingControl* This) {
6232    return This->lpVtbl->DisableCOMDynamicAddrTracking(This);
6233}
6234#endif
6235#endif
6236
6237#endif
6238
6239HRESULT STDMETHODCALLTYPE IAddrTrackingControl_EnableCOMDynamicAddrTracking_Proxy(
6240    IAddrTrackingControl* This);
6241void __RPC_STUB IAddrTrackingControl_EnableCOMDynamicAddrTracking_Stub(
6242    IRpcStubBuffer* This,
6243    IRpcChannelBuffer* pRpcChannelBuffer,
6244    PRPC_MESSAGE pRpcMessage,
6245    DWORD* pdwStubPhase);
6246HRESULT STDMETHODCALLTYPE IAddrTrackingControl_DisableCOMDynamicAddrTracking_Proxy(
6247    IAddrTrackingControl* This);
6248void __RPC_STUB IAddrTrackingControl_DisableCOMDynamicAddrTracking_Stub(
6249    IRpcStubBuffer* This,
6250    IRpcChannelBuffer* pRpcChannelBuffer,
6251    PRPC_MESSAGE pRpcMessage,
6252    DWORD* pdwStubPhase);
6253
6254#endif  /* __IAddrTrackingControl_INTERFACE_DEFINED__ */
6255
6256
6257/*****************************************************************************
6258 * IAddrExclusionControl interface
6259 */
6260#ifndef __IAddrExclusionControl_INTERFACE_DEFINED__
6261#define __IAddrExclusionControl_INTERFACE_DEFINED__
6262
6263typedef IAddrExclusionControl *LPADDREXCLUSIONCONTROL;
6264DEFINE_GUID(IID_IAddrExclusionControl, 0x00000148, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6265#if defined(__cplusplus) && !defined(CINTERFACE)
6266MIDL_INTERFACE("00000148-0000-0000-c000-000000000046")
6267IAddrExclusionControl : public IUnknown
6268{
6269    virtual HRESULT STDMETHODCALLTYPE GetCurrentAddrExclusionList(
6270        REFIID riid,
6271        void **ppEnumerator) = 0;
6272
6273    virtual HRESULT STDMETHODCALLTYPE UpdateAddrExclusionList(
6274        IUnknown *pEnumerator) = 0;
6275
6276};
6277#ifdef __CRT_UUID_DECL
6278__CRT_UUID_DECL(IAddrExclusionControl, 0x00000148, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6279#endif
6280#else
6281typedef struct IAddrExclusionControlVtbl {
6282    BEGIN_INTERFACE
6283
6284    /*** IUnknown methods ***/
6285    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6286        IAddrExclusionControl* This,
6287        REFIID riid,
6288        void **ppvObject);
6289
6290    ULONG (STDMETHODCALLTYPE *AddRef)(
6291        IAddrExclusionControl* This);
6292
6293    ULONG (STDMETHODCALLTYPE *Release)(
6294        IAddrExclusionControl* This);
6295
6296    /*** IAddrExclusionControl methods ***/
6297    HRESULT (STDMETHODCALLTYPE *GetCurrentAddrExclusionList)(
6298        IAddrExclusionControl* This,
6299        REFIID riid,
6300        void **ppEnumerator);
6301
6302    HRESULT (STDMETHODCALLTYPE *UpdateAddrExclusionList)(
6303        IAddrExclusionControl* This,
6304        IUnknown *pEnumerator);
6305
6306    END_INTERFACE
6307} IAddrExclusionControlVtbl;
6308interface IAddrExclusionControl {
6309    CONST_VTBL IAddrExclusionControlVtbl* lpVtbl;
6310};
6311
6312#ifdef COBJMACROS
6313#ifndef WIDL_C_INLINE_WRAPPERS
6314/*** IUnknown methods ***/
6315#define IAddrExclusionControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6316#define IAddrExclusionControl_AddRef(This) (This)->lpVtbl->AddRef(This)
6317#define IAddrExclusionControl_Release(This) (This)->lpVtbl->Release(This)
6318/*** IAddrExclusionControl methods ***/
6319#define IAddrExclusionControl_GetCurrentAddrExclusionList(This,riid,ppEnumerator) (This)->lpVtbl->GetCurrentAddrExclusionList(This,riid,ppEnumerator)
6320#define IAddrExclusionControl_UpdateAddrExclusionList(This,pEnumerator) (This)->lpVtbl->UpdateAddrExclusionList(This,pEnumerator)
6321#else
6322/*** IUnknown methods ***/
6323static FORCEINLINE HRESULT IAddrExclusionControl_QueryInterface(IAddrExclusionControl* This,REFIID riid,void **ppvObject) {
6324    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6325}
6326static FORCEINLINE ULONG IAddrExclusionControl_AddRef(IAddrExclusionControl* This) {
6327    return This->lpVtbl->AddRef(This);
6328}
6329static FORCEINLINE ULONG IAddrExclusionControl_Release(IAddrExclusionControl* This) {
6330    return This->lpVtbl->Release(This);
6331}
6332/*** IAddrExclusionControl methods ***/
6333static FORCEINLINE HRESULT IAddrExclusionControl_GetCurrentAddrExclusionList(IAddrExclusionControl* This,REFIID riid,void **ppEnumerator) {
6334    return This->lpVtbl->GetCurrentAddrExclusionList(This,riid,ppEnumerator);
6335}
6336static FORCEINLINE HRESULT IAddrExclusionControl_UpdateAddrExclusionList(IAddrExclusionControl* This,IUnknown *pEnumerator) {
6337    return This->lpVtbl->UpdateAddrExclusionList(This,pEnumerator);
6338}
6339#endif
6340#endif
6341
6342#endif
6343
6344HRESULT STDMETHODCALLTYPE IAddrExclusionControl_GetCurrentAddrExclusionList_Proxy(
6345    IAddrExclusionControl* This,
6346    REFIID riid,
6347    void **ppEnumerator);
6348void __RPC_STUB IAddrExclusionControl_GetCurrentAddrExclusionList_Stub(
6349    IRpcStubBuffer* This,
6350    IRpcChannelBuffer* pRpcChannelBuffer,
6351    PRPC_MESSAGE pRpcMessage,
6352    DWORD* pdwStubPhase);
6353HRESULT STDMETHODCALLTYPE IAddrExclusionControl_UpdateAddrExclusionList_Proxy(
6354    IAddrExclusionControl* This,
6355    IUnknown *pEnumerator);
6356void __RPC_STUB IAddrExclusionControl_UpdateAddrExclusionList_Stub(
6357    IRpcStubBuffer* This,
6358    IRpcChannelBuffer* pRpcChannelBuffer,
6359    PRPC_MESSAGE pRpcMessage,
6360    DWORD* pdwStubPhase);
6361
6362#endif  /* __IAddrExclusionControl_INTERFACE_DEFINED__ */
6363
6364
6365/*****************************************************************************
6366 * IPipeByte interface
6367 */
6368#ifndef __IPipeByte_INTERFACE_DEFINED__
6369#define __IPipeByte_INTERFACE_DEFINED__
6370
6371DEFINE_GUID(IID_IPipeByte, 0xdb2f3aca, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
6372#if defined(__cplusplus) && !defined(CINTERFACE)
6373MIDL_INTERFACE("db2f3aca-2f86-11d1-8e04-00c04fb9989a")
6374IPipeByte : public IUnknown
6375{
6376    virtual HRESULT STDMETHODCALLTYPE Pull(
6377        BYTE *buf,
6378        ULONG cRequest,
6379        ULONG *pcReturned) = 0;
6380
6381    virtual HRESULT STDMETHODCALLTYPE Push(
6382        BYTE *buf,
6383        ULONG cSent) = 0;
6384
6385};
6386#ifdef __CRT_UUID_DECL
6387__CRT_UUID_DECL(IPipeByte, 0xdb2f3aca, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
6388#endif
6389#else
6390typedef struct IPipeByteVtbl {
6391    BEGIN_INTERFACE
6392
6393    /*** IUnknown methods ***/
6394    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6395        IPipeByte* This,
6396        REFIID riid,
6397        void **ppvObject);
6398
6399    ULONG (STDMETHODCALLTYPE *AddRef)(
6400        IPipeByte* This);
6401
6402    ULONG (STDMETHODCALLTYPE *Release)(
6403        IPipeByte* This);
6404
6405    /*** IPipeByte methods ***/
6406    HRESULT (STDMETHODCALLTYPE *Pull)(
6407        IPipeByte* This,
6408        BYTE *buf,
6409        ULONG cRequest,
6410        ULONG *pcReturned);
6411
6412    HRESULT (STDMETHODCALLTYPE *Push)(
6413        IPipeByte* This,
6414        BYTE *buf,
6415        ULONG cSent);
6416
6417    END_INTERFACE
6418} IPipeByteVtbl;
6419interface IPipeByte {
6420    CONST_VTBL IPipeByteVtbl* lpVtbl;
6421};
6422
6423#ifdef COBJMACROS
6424#ifndef WIDL_C_INLINE_WRAPPERS
6425/*** IUnknown methods ***/
6426#define IPipeByte_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6427#define IPipeByte_AddRef(This) (This)->lpVtbl->AddRef(This)
6428#define IPipeByte_Release(This) (This)->lpVtbl->Release(This)
6429/*** IPipeByte methods ***/
6430#define IPipeByte_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
6431#define IPipeByte_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
6432#else
6433/*** IUnknown methods ***/
6434static FORCEINLINE HRESULT IPipeByte_QueryInterface(IPipeByte* This,REFIID riid,void **ppvObject) {
6435    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6436}
6437static FORCEINLINE ULONG IPipeByte_AddRef(IPipeByte* This) {
6438    return This->lpVtbl->AddRef(This);
6439}
6440static FORCEINLINE ULONG IPipeByte_Release(IPipeByte* This) {
6441    return This->lpVtbl->Release(This);
6442}
6443/*** IPipeByte methods ***/
6444static FORCEINLINE HRESULT IPipeByte_Pull(IPipeByte* This,BYTE *buf,ULONG cRequest,ULONG *pcReturned) {
6445    return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
6446}
6447static FORCEINLINE HRESULT IPipeByte_Push(IPipeByte* This,BYTE *buf,ULONG cSent) {
6448    return This->lpVtbl->Push(This,buf,cSent);
6449}
6450#endif
6451#endif
6452
6453#endif
6454
6455HRESULT STDMETHODCALLTYPE IPipeByte_Pull_Proxy(
6456    IPipeByte* This,
6457    BYTE *buf,
6458    ULONG cRequest,
6459    ULONG *pcReturned);
6460void __RPC_STUB IPipeByte_Pull_Stub(
6461    IRpcStubBuffer* This,
6462    IRpcChannelBuffer* pRpcChannelBuffer,
6463    PRPC_MESSAGE pRpcMessage,
6464    DWORD* pdwStubPhase);
6465HRESULT STDMETHODCALLTYPE IPipeByte_Push_Proxy(
6466    IPipeByte* This,
6467    BYTE *buf,
6468    ULONG cSent);
6469void __RPC_STUB IPipeByte_Push_Stub(
6470    IRpcStubBuffer* This,
6471    IRpcChannelBuffer* pRpcChannelBuffer,
6472    PRPC_MESSAGE pRpcMessage,
6473    DWORD* pdwStubPhase);
6474
6475#endif  /* __IPipeByte_INTERFACE_DEFINED__ */
6476
6477
6478/*****************************************************************************
6479 * IPipeLong interface
6480 */
6481#ifndef __IPipeLong_INTERFACE_DEFINED__
6482#define __IPipeLong_INTERFACE_DEFINED__
6483
6484DEFINE_GUID(IID_IPipeLong, 0xdb2f3acc, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
6485#if defined(__cplusplus) && !defined(CINTERFACE)
6486MIDL_INTERFACE("db2f3acc-2f86-11d1-8e04-00c04fb9989a")
6487IPipeLong : public IUnknown
6488{
6489    virtual HRESULT STDMETHODCALLTYPE Pull(
6490        LONG *buf,
6491        ULONG cRequest,
6492        ULONG *pcReturned) = 0;
6493
6494    virtual HRESULT STDMETHODCALLTYPE Push(
6495        LONG *buf,
6496        ULONG cSent) = 0;
6497
6498};
6499#ifdef __CRT_UUID_DECL
6500__CRT_UUID_DECL(IPipeLong, 0xdb2f3acc, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
6501#endif
6502#else
6503typedef struct IPipeLongVtbl {
6504    BEGIN_INTERFACE
6505
6506    /*** IUnknown methods ***/
6507    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6508        IPipeLong* This,
6509        REFIID riid,
6510        void **ppvObject);
6511
6512    ULONG (STDMETHODCALLTYPE *AddRef)(
6513        IPipeLong* This);
6514
6515    ULONG (STDMETHODCALLTYPE *Release)(
6516        IPipeLong* This);
6517
6518    /*** IPipeLong methods ***/
6519    HRESULT (STDMETHODCALLTYPE *Pull)(
6520        IPipeLong* This,
6521        LONG *buf,
6522        ULONG cRequest,
6523        ULONG *pcReturned);
6524
6525    HRESULT (STDMETHODCALLTYPE *Push)(
6526        IPipeLong* This,
6527        LONG *buf,
6528        ULONG cSent);
6529
6530    END_INTERFACE
6531} IPipeLongVtbl;
6532interface IPipeLong {
6533    CONST_VTBL IPipeLongVtbl* lpVtbl;
6534};
6535
6536#ifdef COBJMACROS
6537#ifndef WIDL_C_INLINE_WRAPPERS
6538/*** IUnknown methods ***/
6539#define IPipeLong_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6540#define IPipeLong_AddRef(This) (This)->lpVtbl->AddRef(This)
6541#define IPipeLong_Release(This) (This)->lpVtbl->Release(This)
6542/*** IPipeLong methods ***/
6543#define IPipeLong_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
6544#define IPipeLong_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
6545#else
6546/*** IUnknown methods ***/
6547static FORCEINLINE HRESULT IPipeLong_QueryInterface(IPipeLong* This,REFIID riid,void **ppvObject) {
6548    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6549}
6550static FORCEINLINE ULONG IPipeLong_AddRef(IPipeLong* This) {
6551    return This->lpVtbl->AddRef(This);
6552}
6553static FORCEINLINE ULONG IPipeLong_Release(IPipeLong* This) {
6554    return This->lpVtbl->Release(This);
6555}
6556/*** IPipeLong methods ***/
6557static FORCEINLINE HRESULT IPipeLong_Pull(IPipeLong* This,LONG *buf,ULONG cRequest,ULONG *pcReturned) {
6558    return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
6559}
6560static FORCEINLINE HRESULT IPipeLong_Push(IPipeLong* This,LONG *buf,ULONG cSent) {
6561    return This->lpVtbl->Push(This,buf,cSent);
6562}
6563#endif
6564#endif
6565
6566#endif
6567
6568HRESULT STDMETHODCALLTYPE IPipeLong_Pull_Proxy(
6569    IPipeLong* This,
6570    LONG *buf,
6571    ULONG cRequest,
6572    ULONG *pcReturned);
6573void __RPC_STUB IPipeLong_Pull_Stub(
6574    IRpcStubBuffer* This,
6575    IRpcChannelBuffer* pRpcChannelBuffer,
6576    PRPC_MESSAGE pRpcMessage,
6577    DWORD* pdwStubPhase);
6578HRESULT STDMETHODCALLTYPE IPipeLong_Push_Proxy(
6579    IPipeLong* This,
6580    LONG *buf,
6581    ULONG cSent);
6582void __RPC_STUB IPipeLong_Push_Stub(
6583    IRpcStubBuffer* This,
6584    IRpcChannelBuffer* pRpcChannelBuffer,
6585    PRPC_MESSAGE pRpcMessage,
6586    DWORD* pdwStubPhase);
6587
6588#endif  /* __IPipeLong_INTERFACE_DEFINED__ */
6589
6590
6591/*****************************************************************************
6592 * IPipeDouble interface
6593 */
6594#ifndef __IPipeDouble_INTERFACE_DEFINED__
6595#define __IPipeDouble_INTERFACE_DEFINED__
6596
6597DEFINE_GUID(IID_IPipeDouble, 0xdb2f3ace, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
6598#if defined(__cplusplus) && !defined(CINTERFACE)
6599MIDL_INTERFACE("db2f3ace-2f86-11d1-8e04-00c04fb9989a")
6600IPipeDouble : public IUnknown
6601{
6602    virtual HRESULT STDMETHODCALLTYPE Pull(
6603        DOUBLE *buf,
6604        ULONG cRequest,
6605        ULONG *pcReturned) = 0;
6606
6607    virtual HRESULT STDMETHODCALLTYPE Push(
6608        DOUBLE *buf,
6609        ULONG cSent) = 0;
6610
6611};
6612#ifdef __CRT_UUID_DECL
6613__CRT_UUID_DECL(IPipeDouble, 0xdb2f3ace, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
6614#endif
6615#else
6616typedef struct IPipeDoubleVtbl {
6617    BEGIN_INTERFACE
6618
6619    /*** IUnknown methods ***/
6620    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6621        IPipeDouble* This,
6622        REFIID riid,
6623        void **ppvObject);
6624
6625    ULONG (STDMETHODCALLTYPE *AddRef)(
6626        IPipeDouble* This);
6627
6628    ULONG (STDMETHODCALLTYPE *Release)(
6629        IPipeDouble* This);
6630
6631    /*** IPipeDouble methods ***/
6632    HRESULT (STDMETHODCALLTYPE *Pull)(
6633        IPipeDouble* This,
6634        DOUBLE *buf,
6635        ULONG cRequest,
6636        ULONG *pcReturned);
6637
6638    HRESULT (STDMETHODCALLTYPE *Push)(
6639        IPipeDouble* This,
6640        DOUBLE *buf,
6641        ULONG cSent);
6642
6643    END_INTERFACE
6644} IPipeDoubleVtbl;
6645interface IPipeDouble {
6646    CONST_VTBL IPipeDoubleVtbl* lpVtbl;
6647};
6648
6649#ifdef COBJMACROS
6650#ifndef WIDL_C_INLINE_WRAPPERS
6651/*** IUnknown methods ***/
6652#define IPipeDouble_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6653#define IPipeDouble_AddRef(This) (This)->lpVtbl->AddRef(This)
6654#define IPipeDouble_Release(This) (This)->lpVtbl->Release(This)
6655/*** IPipeDouble methods ***/
6656#define IPipeDouble_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
6657#define IPipeDouble_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
6658#else
6659/*** IUnknown methods ***/
6660static FORCEINLINE HRESULT IPipeDouble_QueryInterface(IPipeDouble* This,REFIID riid,void **ppvObject) {
6661    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6662}
6663static FORCEINLINE ULONG IPipeDouble_AddRef(IPipeDouble* This) {
6664    return This->lpVtbl->AddRef(This);
6665}
6666static FORCEINLINE ULONG IPipeDouble_Release(IPipeDouble* This) {
6667    return This->lpVtbl->Release(This);
6668}
6669/*** IPipeDouble methods ***/
6670static FORCEINLINE HRESULT IPipeDouble_Pull(IPipeDouble* This,DOUBLE *buf,ULONG cRequest,ULONG *pcReturned) {
6671    return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
6672}
6673static FORCEINLINE HRESULT IPipeDouble_Push(IPipeDouble* This,DOUBLE *buf,ULONG cSent) {
6674    return This->lpVtbl->Push(This,buf,cSent);
6675}
6676#endif
6677#endif
6678
6679#endif
6680
6681HRESULT STDMETHODCALLTYPE IPipeDouble_Pull_Proxy(
6682    IPipeDouble* This,
6683    DOUBLE *buf,
6684    ULONG cRequest,
6685    ULONG *pcReturned);
6686void __RPC_STUB IPipeDouble_Pull_Stub(
6687    IRpcStubBuffer* This,
6688    IRpcChannelBuffer* pRpcChannelBuffer,
6689    PRPC_MESSAGE pRpcMessage,
6690    DWORD* pdwStubPhase);
6691HRESULT STDMETHODCALLTYPE IPipeDouble_Push_Proxy(
6692    IPipeDouble* This,
6693    DOUBLE *buf,
6694    ULONG cSent);
6695void __RPC_STUB IPipeDouble_Push_Stub(
6696    IRpcStubBuffer* This,
6697    IRpcChannelBuffer* pRpcChannelBuffer,
6698    PRPC_MESSAGE pRpcMessage,
6699    DWORD* pdwStubPhase);
6700
6701#endif  /* __IPipeDouble_INTERFACE_DEFINED__ */
6702
6703
6704#if defined USE_COM_CONTEXT_DEF || defined BUILDTYPE_COMSVCS || defined _COMBASEAPI_ || defined _OLE32_
6705
6706typedef DWORD CPFLAGS;
6707
6708typedef struct tagContextProperty {
6709    GUID policyId;
6710    CPFLAGS flags;
6711    IUnknown *pUnk;
6712} ContextProperty;
6713
6714/*****************************************************************************
6715 * IEnumContextProps interface
6716 */
6717#ifndef __IEnumContextProps_INTERFACE_DEFINED__
6718#define __IEnumContextProps_INTERFACE_DEFINED__
6719
6720typedef IEnumContextProps *LPENUMCONTEXTPROPS;
6721
6722DEFINE_GUID(IID_IEnumContextProps, 0x000001c1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6723#if defined(__cplusplus) && !defined(CINTERFACE)
6724MIDL_INTERFACE("000001c1-0000-0000-c000-000000000046")
6725IEnumContextProps : public IUnknown
6726{
6727    virtual HRESULT STDMETHODCALLTYPE Next(
6728        ULONG celt,
6729        ContextProperty *pContextProperties,
6730        ULONG *pceltFetched) = 0;
6731
6732    virtual HRESULT STDMETHODCALLTYPE Skip(
6733        ULONG celt) = 0;
6734
6735    virtual HRESULT STDMETHODCALLTYPE Reset(
6736        ) = 0;
6737
6738    virtual HRESULT STDMETHODCALLTYPE Clone(
6739        IEnumContextProps **ppEnumContextProps) = 0;
6740
6741    virtual HRESULT STDMETHODCALLTYPE Count(
6742        ULONG *pcelt) = 0;
6743
6744};
6745#ifdef __CRT_UUID_DECL
6746__CRT_UUID_DECL(IEnumContextProps, 0x000001c1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6747#endif
6748#else
6749typedef struct IEnumContextPropsVtbl {
6750    BEGIN_INTERFACE
6751
6752    /*** IUnknown methods ***/
6753    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6754        IEnumContextProps* This,
6755        REFIID riid,
6756        void **ppvObject);
6757
6758    ULONG (STDMETHODCALLTYPE *AddRef)(
6759        IEnumContextProps* This);
6760
6761    ULONG (STDMETHODCALLTYPE *Release)(
6762        IEnumContextProps* This);
6763
6764    /*** IEnumContextProps methods ***/
6765    HRESULT (STDMETHODCALLTYPE *Next)(
6766        IEnumContextProps* This,
6767        ULONG celt,
6768        ContextProperty *pContextProperties,
6769        ULONG *pceltFetched);
6770
6771    HRESULT (STDMETHODCALLTYPE *Skip)(
6772        IEnumContextProps* This,
6773        ULONG celt);
6774
6775    HRESULT (STDMETHODCALLTYPE *Reset)(
6776        IEnumContextProps* This);
6777
6778    HRESULT (STDMETHODCALLTYPE *Clone)(
6779        IEnumContextProps* This,
6780        IEnumContextProps **ppEnumContextProps);
6781
6782    HRESULT (STDMETHODCALLTYPE *Count)(
6783        IEnumContextProps* This,
6784        ULONG *pcelt);
6785
6786    END_INTERFACE
6787} IEnumContextPropsVtbl;
6788interface IEnumContextProps {
6789    CONST_VTBL IEnumContextPropsVtbl* lpVtbl;
6790};
6791
6792#ifdef COBJMACROS
6793#ifndef WIDL_C_INLINE_WRAPPERS
6794/*** IUnknown methods ***/
6795#define IEnumContextProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6796#define IEnumContextProps_AddRef(This) (This)->lpVtbl->AddRef(This)
6797#define IEnumContextProps_Release(This) (This)->lpVtbl->Release(This)
6798/*** IEnumContextProps methods ***/
6799#define IEnumContextProps_Next(This,celt,pContextProperties,pceltFetched) (This)->lpVtbl->Next(This,celt,pContextProperties,pceltFetched)
6800#define IEnumContextProps_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
6801#define IEnumContextProps_Reset(This) (This)->lpVtbl->Reset(This)
6802#define IEnumContextProps_Clone(This,ppEnumContextProps) (This)->lpVtbl->Clone(This,ppEnumContextProps)
6803#define IEnumContextProps_Count(This,pcelt) (This)->lpVtbl->Count(This,pcelt)
6804#else
6805/*** IUnknown methods ***/
6806static FORCEINLINE HRESULT IEnumContextProps_QueryInterface(IEnumContextProps* This,REFIID riid,void **ppvObject) {
6807    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6808}
6809static FORCEINLINE ULONG IEnumContextProps_AddRef(IEnumContextProps* This) {
6810    return This->lpVtbl->AddRef(This);
6811}
6812static FORCEINLINE ULONG IEnumContextProps_Release(IEnumContextProps* This) {
6813    return This->lpVtbl->Release(This);
6814}
6815/*** IEnumContextProps methods ***/
6816static FORCEINLINE HRESULT IEnumContextProps_Next(IEnumContextProps* This,ULONG celt,ContextProperty *pContextProperties,ULONG *pceltFetched) {
6817    return This->lpVtbl->Next(This,celt,pContextProperties,pceltFetched);
6818}
6819static FORCEINLINE HRESULT IEnumContextProps_Skip(IEnumContextProps* This,ULONG celt) {
6820    return This->lpVtbl->Skip(This,celt);
6821}
6822static FORCEINLINE HRESULT IEnumContextProps_Reset(IEnumContextProps* This) {
6823    return This->lpVtbl->Reset(This);
6824}
6825static FORCEINLINE HRESULT IEnumContextProps_Clone(IEnumContextProps* This,IEnumContextProps **ppEnumContextProps) {
6826    return This->lpVtbl->Clone(This,ppEnumContextProps);
6827}
6828static FORCEINLINE HRESULT IEnumContextProps_Count(IEnumContextProps* This,ULONG *pcelt) {
6829    return This->lpVtbl->Count(This,pcelt);
6830}
6831#endif
6832#endif
6833
6834#endif
6835
6836HRESULT STDMETHODCALLTYPE IEnumContextProps_Next_Proxy(
6837    IEnumContextProps* This,
6838    ULONG celt,
6839    ContextProperty *pContextProperties,
6840    ULONG *pceltFetched);
6841void __RPC_STUB IEnumContextProps_Next_Stub(
6842    IRpcStubBuffer* This,
6843    IRpcChannelBuffer* pRpcChannelBuffer,
6844    PRPC_MESSAGE pRpcMessage,
6845    DWORD* pdwStubPhase);
6846HRESULT STDMETHODCALLTYPE IEnumContextProps_Skip_Proxy(
6847    IEnumContextProps* This,
6848    ULONG celt);
6849void __RPC_STUB IEnumContextProps_Skip_Stub(
6850    IRpcStubBuffer* This,
6851    IRpcChannelBuffer* pRpcChannelBuffer,
6852    PRPC_MESSAGE pRpcMessage,
6853    DWORD* pdwStubPhase);
6854HRESULT STDMETHODCALLTYPE IEnumContextProps_Reset_Proxy(
6855    IEnumContextProps* This);
6856void __RPC_STUB IEnumContextProps_Reset_Stub(
6857    IRpcStubBuffer* This,
6858    IRpcChannelBuffer* pRpcChannelBuffer,
6859    PRPC_MESSAGE pRpcMessage,
6860    DWORD* pdwStubPhase);
6861HRESULT STDMETHODCALLTYPE IEnumContextProps_Clone_Proxy(
6862    IEnumContextProps* This,
6863    IEnumContextProps **ppEnumContextProps);
6864void __RPC_STUB IEnumContextProps_Clone_Stub(
6865    IRpcStubBuffer* This,
6866    IRpcChannelBuffer* pRpcChannelBuffer,
6867    PRPC_MESSAGE pRpcMessage,
6868    DWORD* pdwStubPhase);
6869HRESULT STDMETHODCALLTYPE IEnumContextProps_Count_Proxy(
6870    IEnumContextProps* This,
6871    ULONG *pcelt);
6872void __RPC_STUB IEnumContextProps_Count_Stub(
6873    IRpcStubBuffer* This,
6874    IRpcChannelBuffer* pRpcChannelBuffer,
6875    PRPC_MESSAGE pRpcMessage,
6876    DWORD* pdwStubPhase);
6877
6878#endif  /* __IEnumContextProps_INTERFACE_DEFINED__ */
6879
6880
6881/*****************************************************************************
6882 * IContext interface
6883 */
6884#ifndef __IContext_INTERFACE_DEFINED__
6885#define __IContext_INTERFACE_DEFINED__
6886
6887DEFINE_GUID(IID_IContext, 0x000001c0, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6888#if defined(__cplusplus) && !defined(CINTERFACE)
6889MIDL_INTERFACE("000001c0-0000-0000-c000-000000000046")
6890IContext : public IUnknown
6891{
6892    virtual HRESULT STDMETHODCALLTYPE SetProperty(
6893        REFGUID rpolicyId,
6894        CPFLAGS flags,
6895        IUnknown *pUnk) = 0;
6896
6897    virtual HRESULT STDMETHODCALLTYPE RemoveProperty(
6898        REFGUID rPolicyId) = 0;
6899
6900    virtual HRESULT STDMETHODCALLTYPE GetProperty(
6901        REFGUID rGuid,
6902        CPFLAGS *pFlags,
6903        IUnknown **ppUnk) = 0;
6904
6905    virtual HRESULT STDMETHODCALLTYPE EnumContextProps(
6906        IEnumContextProps **ppEnumContextProps) = 0;
6907
6908};
6909#ifdef __CRT_UUID_DECL
6910__CRT_UUID_DECL(IContext, 0x000001c0, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6911#endif
6912#else
6913typedef struct IContextVtbl {
6914    BEGIN_INTERFACE
6915
6916    /*** IUnknown methods ***/
6917    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6918        IContext* This,
6919        REFIID riid,
6920        void **ppvObject);
6921
6922    ULONG (STDMETHODCALLTYPE *AddRef)(
6923        IContext* This);
6924
6925    ULONG (STDMETHODCALLTYPE *Release)(
6926        IContext* This);
6927
6928    /*** IContext methods ***/
6929    HRESULT (STDMETHODCALLTYPE *SetProperty)(
6930        IContext* This,
6931        REFGUID rpolicyId,
6932        CPFLAGS flags,
6933        IUnknown *pUnk);
6934
6935    HRESULT (STDMETHODCALLTYPE *RemoveProperty)(
6936        IContext* This,
6937        REFGUID rPolicyId);
6938
6939    HRESULT (STDMETHODCALLTYPE *GetProperty)(
6940        IContext* This,
6941        REFGUID rGuid,
6942        CPFLAGS *pFlags,
6943        IUnknown **ppUnk);
6944
6945    HRESULT (STDMETHODCALLTYPE *EnumContextProps)(
6946        IContext* This,
6947        IEnumContextProps **ppEnumContextProps);
6948
6949    END_INTERFACE
6950} IContextVtbl;
6951interface IContext {
6952    CONST_VTBL IContextVtbl* lpVtbl;
6953};
6954
6955#ifdef COBJMACROS
6956#ifndef WIDL_C_INLINE_WRAPPERS
6957/*** IUnknown methods ***/
6958#define IContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6959#define IContext_AddRef(This) (This)->lpVtbl->AddRef(This)
6960#define IContext_Release(This) (This)->lpVtbl->Release(This)
6961/*** IContext methods ***/
6962#define IContext_SetProperty(This,rpolicyId,flags,pUnk) (This)->lpVtbl->SetProperty(This,rpolicyId,flags,pUnk)
6963#define IContext_RemoveProperty(This,rPolicyId) (This)->lpVtbl->RemoveProperty(This,rPolicyId)
6964#define IContext_GetProperty(This,rGuid,pFlags,ppUnk) (This)->lpVtbl->GetProperty(This,rGuid,pFlags,ppUnk)
6965#define IContext_EnumContextProps(This,ppEnumContextProps) (This)->lpVtbl->EnumContextProps(This,ppEnumContextProps)
6966#else
6967/*** IUnknown methods ***/
6968static FORCEINLINE HRESULT IContext_QueryInterface(IContext* This,REFIID riid,void **ppvObject) {
6969    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6970}
6971static FORCEINLINE ULONG IContext_AddRef(IContext* This) {
6972    return This->lpVtbl->AddRef(This);
6973}
6974static FORCEINLINE ULONG IContext_Release(IContext* This) {
6975    return This->lpVtbl->Release(This);
6976}
6977/*** IContext methods ***/
6978static FORCEINLINE HRESULT IContext_SetProperty(IContext* This,REFGUID rpolicyId,CPFLAGS flags,IUnknown *pUnk) {
6979    return This->lpVtbl->SetProperty(This,rpolicyId,flags,pUnk);
6980}
6981static FORCEINLINE HRESULT IContext_RemoveProperty(IContext* This,REFGUID rPolicyId) {
6982    return This->lpVtbl->RemoveProperty(This,rPolicyId);
6983}
6984static FORCEINLINE HRESULT IContext_GetProperty(IContext* This,REFGUID rGuid,CPFLAGS *pFlags,IUnknown **ppUnk) {
6985    return This->lpVtbl->GetProperty(This,rGuid,pFlags,ppUnk);
6986}
6987static FORCEINLINE HRESULT IContext_EnumContextProps(IContext* This,IEnumContextProps **ppEnumContextProps) {
6988    return This->lpVtbl->EnumContextProps(This,ppEnumContextProps);
6989}
6990#endif
6991#endif
6992
6993#endif
6994
6995HRESULT STDMETHODCALLTYPE IContext_SetProperty_Proxy(
6996    IContext* This,
6997    REFGUID rpolicyId,
6998    CPFLAGS flags,
6999    IUnknown *pUnk);
7000void __RPC_STUB IContext_SetProperty_Stub(
7001    IRpcStubBuffer* This,
7002    IRpcChannelBuffer* pRpcChannelBuffer,
7003    PRPC_MESSAGE pRpcMessage,
7004    DWORD* pdwStubPhase);
7005HRESULT STDMETHODCALLTYPE IContext_RemoveProperty_Proxy(
7006    IContext* This,
7007    REFGUID rPolicyId);
7008void __RPC_STUB IContext_RemoveProperty_Stub(
7009    IRpcStubBuffer* This,
7010    IRpcChannelBuffer* pRpcChannelBuffer,
7011    PRPC_MESSAGE pRpcMessage,
7012    DWORD* pdwStubPhase);
7013HRESULT STDMETHODCALLTYPE IContext_GetProperty_Proxy(
7014    IContext* This,
7015    REFGUID rGuid,
7016    CPFLAGS *pFlags,
7017    IUnknown **ppUnk);
7018void __RPC_STUB IContext_GetProperty_Stub(
7019    IRpcStubBuffer* This,
7020    IRpcChannelBuffer* pRpcChannelBuffer,
7021    PRPC_MESSAGE pRpcMessage,
7022    DWORD* pdwStubPhase);
7023HRESULT STDMETHODCALLTYPE IContext_EnumContextProps_Proxy(
7024    IContext* This,
7025    IEnumContextProps **ppEnumContextProps);
7026void __RPC_STUB IContext_EnumContextProps_Stub(
7027    IRpcStubBuffer* This,
7028    IRpcChannelBuffer* pRpcChannelBuffer,
7029    PRPC_MESSAGE pRpcMessage,
7030    DWORD* pdwStubPhase);
7031
7032#endif  /* __IContext_INTERFACE_DEFINED__ */
7033
7034#endif
7035#endif
7036
7037#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
7038typedef enum _APTTYPEQUALIFIER {
7039    APTTYPEQUALIFIER_NONE = 0,
7040    APTTYPEQUALIFIER_IMPLICIT_MTA = 1,
7041    APTTYPEQUALIFIER_NA_ON_MTA = 2,
7042    APTTYPEQUALIFIER_NA_ON_STA = 3,
7043    APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA = 4,
7044    APTTYPEQUALIFIER_NA_ON_MAINSTA = 5,
7045    APTTYPEQUALIFIER_APPLICATION_STA = 6
7046} APTTYPEQUALIFIER;
7047
7048typedef enum _APTTYPE {
7049    APTTYPE_CURRENT = -1,
7050    APTTYPE_STA = 0,
7051    APTTYPE_MTA = 1,
7052    APTTYPE_NA = 2,
7053    APTTYPE_MAINSTA = 3
7054} APTTYPE;
7055#endif
7056
7057#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
7058typedef enum _THDTYPE {
7059    THDTYPE_BLOCKMESSAGES = 0,
7060    THDTYPE_PROCESSMESSAGES = 1
7061} THDTYPE;
7062
7063typedef DWORD APARTMENTID;
7064
7065/*****************************************************************************
7066 * IComThreadingInfo interface
7067 */
7068#ifndef __IComThreadingInfo_INTERFACE_DEFINED__
7069#define __IComThreadingInfo_INTERFACE_DEFINED__
7070
7071DEFINE_GUID(IID_IComThreadingInfo, 0x000001ce, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7072#if defined(__cplusplus) && !defined(CINTERFACE)
7073MIDL_INTERFACE("000001ce-0000-0000-c000-000000000046")
7074IComThreadingInfo : public IUnknown
7075{
7076    virtual HRESULT STDMETHODCALLTYPE GetCurrentApartmentType(
7077        APTTYPE *pAptType) = 0;
7078
7079    virtual HRESULT STDMETHODCALLTYPE GetCurrentThreadType(
7080        THDTYPE *pThreadType) = 0;
7081
7082    virtual HRESULT STDMETHODCALLTYPE GetCurrentLogicalThreadId(
7083        GUID *pguidLogicalThreadId) = 0;
7084
7085    virtual HRESULT STDMETHODCALLTYPE SetCurrentLogicalThreadId(
7086        REFGUID rguid) = 0;
7087
7088};
7089#ifdef __CRT_UUID_DECL
7090__CRT_UUID_DECL(IComThreadingInfo, 0x000001ce, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
7091#endif
7092#else
7093typedef struct IComThreadingInfoVtbl {
7094    BEGIN_INTERFACE
7095
7096    /*** IUnknown methods ***/
7097    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7098        IComThreadingInfo* This,
7099        REFIID riid,
7100        void **ppvObject);
7101
7102    ULONG (STDMETHODCALLTYPE *AddRef)(
7103        IComThreadingInfo* This);
7104
7105    ULONG (STDMETHODCALLTYPE *Release)(
7106        IComThreadingInfo* This);
7107
7108    /*** IComThreadingInfo methods ***/
7109    HRESULT (STDMETHODCALLTYPE *GetCurrentApartmentType)(
7110        IComThreadingInfo* This,
7111        APTTYPE *pAptType);
7112
7113    HRESULT (STDMETHODCALLTYPE *GetCurrentThreadType)(
7114        IComThreadingInfo* This,
7115        THDTYPE *pThreadType);
7116
7117    HRESULT (STDMETHODCALLTYPE *GetCurrentLogicalThreadId)(
7118        IComThreadingInfo* This,
7119        GUID *pguidLogicalThreadId);
7120
7121    HRESULT (STDMETHODCALLTYPE *SetCurrentLogicalThreadId)(
7122        IComThreadingInfo* This,
7123        REFGUID rguid);
7124
7125    END_INTERFACE
7126} IComThreadingInfoVtbl;
7127interface IComThreadingInfo {
7128    CONST_VTBL IComThreadingInfoVtbl* lpVtbl;
7129};
7130
7131#ifdef COBJMACROS
7132#ifndef WIDL_C_INLINE_WRAPPERS
7133/*** IUnknown methods ***/
7134#define IComThreadingInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7135#define IComThreadingInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
7136#define IComThreadingInfo_Release(This) (This)->lpVtbl->Release(This)
7137/*** IComThreadingInfo methods ***/
7138#define IComThreadingInfo_GetCurrentApartmentType(This,pAptType) (This)->lpVtbl->GetCurrentApartmentType(This,pAptType)
7139#define IComThreadingInfo_GetCurrentThreadType(This,pThreadType) (This)->lpVtbl->GetCurrentThreadType(This,pThreadType)
7140#define IComThreadingInfo_GetCurrentLogicalThreadId(This,pguidLogicalThreadId) (This)->lpVtbl->GetCurrentLogicalThreadId(This,pguidLogicalThreadId)
7141#define IComThreadingInfo_SetCurrentLogicalThreadId(This,rguid) (This)->lpVtbl->SetCurrentLogicalThreadId(This,rguid)
7142#else
7143/*** IUnknown methods ***/
7144static FORCEINLINE HRESULT IComThreadingInfo_QueryInterface(IComThreadingInfo* This,REFIID riid,void **ppvObject) {
7145    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7146}
7147static FORCEINLINE ULONG IComThreadingInfo_AddRef(IComThreadingInfo* This) {
7148    return This->lpVtbl->AddRef(This);
7149}
7150static FORCEINLINE ULONG IComThreadingInfo_Release(IComThreadingInfo* This) {
7151    return This->lpVtbl->Release(This);
7152}
7153/*** IComThreadingInfo methods ***/
7154static FORCEINLINE HRESULT IComThreadingInfo_GetCurrentApartmentType(IComThreadingInfo* This,APTTYPE *pAptType) {
7155    return This->lpVtbl->GetCurrentApartmentType(This,pAptType);
7156}
7157static FORCEINLINE HRESULT IComThreadingInfo_GetCurrentThreadType(IComThreadingInfo* This,THDTYPE *pThreadType) {
7158    return This->lpVtbl->GetCurrentThreadType(This,pThreadType);
7159}
7160static FORCEINLINE HRESULT IComThreadingInfo_GetCurrentLogicalThreadId(IComThreadingInfo* This,GUID *pguidLogicalThreadId) {
7161    return This->lpVtbl->GetCurrentLogicalThreadId(This,pguidLogicalThreadId);
7162}
7163static FORCEINLINE HRESULT IComThreadingInfo_SetCurrentLogicalThreadId(IComThreadingInfo* This,REFGUID rguid) {
7164    return This->lpVtbl->SetCurrentLogicalThreadId(This,rguid);
7165}
7166#endif
7167#endif
7168
7169#endif
7170
7171HRESULT STDMETHODCALLTYPE IComThreadingInfo_GetCurrentApartmentType_Proxy(
7172    IComThreadingInfo* This,
7173    APTTYPE *pAptType);
7174void __RPC_STUB IComThreadingInfo_GetCurrentApartmentType_Stub(
7175    IRpcStubBuffer* This,
7176    IRpcChannelBuffer* pRpcChannelBuffer,
7177    PRPC_MESSAGE pRpcMessage,
7178    DWORD* pdwStubPhase);
7179HRESULT STDMETHODCALLTYPE IComThreadingInfo_GetCurrentThreadType_Proxy(
7180    IComThreadingInfo* This,
7181    THDTYPE *pThreadType);
7182void __RPC_STUB IComThreadingInfo_GetCurrentThreadType_Stub(
7183    IRpcStubBuffer* This,
7184    IRpcChannelBuffer* pRpcChannelBuffer,
7185    PRPC_MESSAGE pRpcMessage,
7186    DWORD* pdwStubPhase);
7187HRESULT STDMETHODCALLTYPE IComThreadingInfo_GetCurrentLogicalThreadId_Proxy(
7188    IComThreadingInfo* This,
7189    GUID *pguidLogicalThreadId);
7190void __RPC_STUB IComThreadingInfo_GetCurrentLogicalThreadId_Stub(
7191    IRpcStubBuffer* This,
7192    IRpcChannelBuffer* pRpcChannelBuffer,
7193    PRPC_MESSAGE pRpcMessage,
7194    DWORD* pdwStubPhase);
7195HRESULT STDMETHODCALLTYPE IComThreadingInfo_SetCurrentLogicalThreadId_Proxy(
7196    IComThreadingInfo* This,
7197    REFGUID rguid);
7198void __RPC_STUB IComThreadingInfo_SetCurrentLogicalThreadId_Stub(
7199    IRpcStubBuffer* This,
7200    IRpcChannelBuffer* pRpcChannelBuffer,
7201    PRPC_MESSAGE pRpcMessage,
7202    DWORD* pdwStubPhase);
7203
7204#endif  /* __IComThreadingInfo_INTERFACE_DEFINED__ */
7205
7206
7207/*****************************************************************************
7208 * IProcessInitControl interface
7209 */
7210#ifndef __IProcessInitControl_INTERFACE_DEFINED__
7211#define __IProcessInitControl_INTERFACE_DEFINED__
7212
7213DEFINE_GUID(IID_IProcessInitControl, 0x72380d55, 0x8d2b, 0x43a3, 0x85,0x13, 0x2b,0x6e,0xf3,0x14,0x34,0xe9);
7214#if defined(__cplusplus) && !defined(CINTERFACE)
7215MIDL_INTERFACE("72380d55-8d2b-43a3-8513-2b6ef31434e9")
7216IProcessInitControl : public IUnknown
7217{
7218    virtual HRESULT STDMETHODCALLTYPE ResetInitializerTimeout(
7219        DWORD dwSecondsRemaining) = 0;
7220
7221};
7222#ifdef __CRT_UUID_DECL
7223__CRT_UUID_DECL(IProcessInitControl, 0x72380d55, 0x8d2b, 0x43a3, 0x85,0x13, 0x2b,0x6e,0xf3,0x14,0x34,0xe9)
7224#endif
7225#else
7226typedef struct IProcessInitControlVtbl {
7227    BEGIN_INTERFACE
7228
7229    /*** IUnknown methods ***/
7230    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7231        IProcessInitControl* This,
7232        REFIID riid,
7233        void **ppvObject);
7234
7235    ULONG (STDMETHODCALLTYPE *AddRef)(
7236        IProcessInitControl* This);
7237
7238    ULONG (STDMETHODCALLTYPE *Release)(
7239        IProcessInitControl* This);
7240
7241    /*** IProcessInitControl methods ***/
7242    HRESULT (STDMETHODCALLTYPE *ResetInitializerTimeout)(
7243        IProcessInitControl* This,
7244        DWORD dwSecondsRemaining);
7245
7246    END_INTERFACE
7247} IProcessInitControlVtbl;
7248interface IProcessInitControl {
7249    CONST_VTBL IProcessInitControlVtbl* lpVtbl;
7250};
7251
7252#ifdef COBJMACROS
7253#ifndef WIDL_C_INLINE_WRAPPERS
7254/*** IUnknown methods ***/
7255#define IProcessInitControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7256#define IProcessInitControl_AddRef(This) (This)->lpVtbl->AddRef(This)
7257#define IProcessInitControl_Release(This) (This)->lpVtbl->Release(This)
7258/*** IProcessInitControl methods ***/
7259#define IProcessInitControl_ResetInitializerTimeout(This,dwSecondsRemaining) (This)->lpVtbl->ResetInitializerTimeout(This,dwSecondsRemaining)
7260#else
7261/*** IUnknown methods ***/
7262static FORCEINLINE HRESULT IProcessInitControl_QueryInterface(IProcessInitControl* This,REFIID riid,void **ppvObject) {
7263    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7264}
7265static FORCEINLINE ULONG IProcessInitControl_AddRef(IProcessInitControl* This) {
7266    return This->lpVtbl->AddRef(This);
7267}
7268static FORCEINLINE ULONG IProcessInitControl_Release(IProcessInitControl* This) {
7269    return This->lpVtbl->Release(This);
7270}
7271/*** IProcessInitControl methods ***/
7272static FORCEINLINE HRESULT IProcessInitControl_ResetInitializerTimeout(IProcessInitControl* This,DWORD dwSecondsRemaining) {
7273    return This->lpVtbl->ResetInitializerTimeout(This,dwSecondsRemaining);
7274}
7275#endif
7276#endif
7277
7278#endif
7279
7280HRESULT STDMETHODCALLTYPE IProcessInitControl_ResetInitializerTimeout_Proxy(
7281    IProcessInitControl* This,
7282    DWORD dwSecondsRemaining);
7283void __RPC_STUB IProcessInitControl_ResetInitializerTimeout_Stub(
7284    IRpcStubBuffer* This,
7285    IRpcChannelBuffer* pRpcChannelBuffer,
7286    PRPC_MESSAGE pRpcMessage,
7287    DWORD* pdwStubPhase);
7288
7289#endif  /* __IProcessInitControl_INTERFACE_DEFINED__ */
7290
7291
7292/*****************************************************************************
7293 * IFastRundown interface
7294 */
7295#ifndef __IFastRundown_INTERFACE_DEFINED__
7296#define __IFastRundown_INTERFACE_DEFINED__
7297
7298DEFINE_GUID(IID_IFastRundown, 0x00000040, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7299#if defined(__cplusplus) && !defined(CINTERFACE)
7300MIDL_INTERFACE("00000040-0000-0000-c000-000000000046")
7301IFastRundown : public IUnknown
7302{
7303};
7304#ifdef __CRT_UUID_DECL
7305__CRT_UUID_DECL(IFastRundown, 0x00000040, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
7306#endif
7307#else
7308typedef struct IFastRundownVtbl {
7309    BEGIN_INTERFACE
7310
7311    /*** IUnknown methods ***/
7312    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7313        IFastRundown* This,
7314        REFIID riid,
7315        void **ppvObject);
7316
7317    ULONG (STDMETHODCALLTYPE *AddRef)(
7318        IFastRundown* This);
7319
7320    ULONG (STDMETHODCALLTYPE *Release)(
7321        IFastRundown* This);
7322
7323    END_INTERFACE
7324} IFastRundownVtbl;
7325interface IFastRundown {
7326    CONST_VTBL IFastRundownVtbl* lpVtbl;
7327};
7328
7329#ifdef COBJMACROS
7330#ifndef WIDL_C_INLINE_WRAPPERS
7331/*** IUnknown methods ***/
7332#define IFastRundown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7333#define IFastRundown_AddRef(This) (This)->lpVtbl->AddRef(This)
7334#define IFastRundown_Release(This) (This)->lpVtbl->Release(This)
7335#else
7336/*** IUnknown methods ***/
7337static FORCEINLINE HRESULT IFastRundown_QueryInterface(IFastRundown* This,REFIID riid,void **ppvObject) {
7338    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7339}
7340static FORCEINLINE ULONG IFastRundown_AddRef(IFastRundown* This) {
7341    return This->lpVtbl->AddRef(This);
7342}
7343static FORCEINLINE ULONG IFastRundown_Release(IFastRundown* This) {
7344    return This->lpVtbl->Release(This);
7345}
7346#endif
7347#endif
7348
7349#endif
7350
7351
7352#endif  /* __IFastRundown_INTERFACE_DEFINED__ */
7353
7354
7355typedef enum CO_MARSHALING_CONTEXT_ATTRIBUTES {
7356    CO_MARSHALING_SOURCE_IS_APP_CONTAINER = 0
7357} CO_MARSHALING_CONTEXT_ATTRIBUTES;
7358
7359/*****************************************************************************
7360 * IMarshalingStream interface
7361 */
7362#ifndef __IMarshalingStream_INTERFACE_DEFINED__
7363#define __IMarshalingStream_INTERFACE_DEFINED__
7364
7365DEFINE_GUID(IID_IMarshalingStream, 0xd8f2f5e6, 0x6102, 0x4863, 0x9f,0x26, 0x38,0x9a,0x46,0x76,0xef,0xde);
7366#if defined(__cplusplus) && !defined(CINTERFACE)
7367MIDL_INTERFACE("d8f2f5e6-6102-4863-9f26-389a4676efde")
7368IMarshalingStream : public IStream
7369{
7370    virtual HRESULT STDMETHODCALLTYPE GetMarshalingContextAttribute(
7371        CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
7372        ULONG_PTR *pAttributeValue) = 0;
7373
7374};
7375#ifdef __CRT_UUID_DECL
7376__CRT_UUID_DECL(IMarshalingStream, 0xd8f2f5e6, 0x6102, 0x4863, 0x9f,0x26, 0x38,0x9a,0x46,0x76,0xef,0xde)
7377#endif
7378#else
7379typedef struct IMarshalingStreamVtbl {
7380    BEGIN_INTERFACE
7381
7382    /*** IUnknown methods ***/
7383    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7384        IMarshalingStream* This,
7385        REFIID riid,
7386        void **ppvObject);
7387
7388    ULONG (STDMETHODCALLTYPE *AddRef)(
7389        IMarshalingStream* This);
7390
7391    ULONG (STDMETHODCALLTYPE *Release)(
7392        IMarshalingStream* This);
7393
7394    /*** ISequentialStream methods ***/
7395    HRESULT (STDMETHODCALLTYPE *Read)(
7396        IMarshalingStream* This,
7397        void *pv,
7398        ULONG cb,
7399        ULONG *pcbRead);
7400
7401    HRESULT (STDMETHODCALLTYPE *Write)(
7402        IMarshalingStream* This,
7403        const void *pv,
7404        ULONG cb,
7405        ULONG *pcbWritten);
7406
7407    /*** IStream methods ***/
7408    HRESULT (STDMETHODCALLTYPE *Seek)(
7409        IMarshalingStream* This,
7410        LARGE_INTEGER dlibMove,
7411        DWORD dwOrigin,
7412        ULARGE_INTEGER *plibNewPosition);
7413
7414    HRESULT (STDMETHODCALLTYPE *SetSize)(
7415        IMarshalingStream* This,
7416        ULARGE_INTEGER libNewSize);
7417
7418    HRESULT (STDMETHODCALLTYPE *CopyTo)(
7419        IMarshalingStream* This,
7420        IStream *pstm,
7421        ULARGE_INTEGER cb,
7422        ULARGE_INTEGER *pcbRead,
7423        ULARGE_INTEGER *pcbWritten);
7424
7425    HRESULT (STDMETHODCALLTYPE *Commit)(
7426        IMarshalingStream* This,
7427        DWORD grfCommitFlags);
7428
7429    HRESULT (STDMETHODCALLTYPE *Revert)(
7430        IMarshalingStream* This);
7431
7432    HRESULT (STDMETHODCALLTYPE *LockRegion)(
7433        IMarshalingStream* This,
7434        ULARGE_INTEGER libOffset,
7435        ULARGE_INTEGER cb,
7436        DWORD dwLockType);
7437
7438    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
7439        IMarshalingStream* This,
7440        ULARGE_INTEGER libOffset,
7441        ULARGE_INTEGER cb,
7442        DWORD dwLockType);
7443
7444    HRESULT (STDMETHODCALLTYPE *Stat)(
7445        IMarshalingStream* This,
7446        STATSTG *pstatstg,
7447        DWORD grfStatFlag);
7448
7449    HRESULT (STDMETHODCALLTYPE *Clone)(
7450        IMarshalingStream* This,
7451        IStream **ppstm);
7452
7453    /*** IMarshalingStream methods ***/
7454    HRESULT (STDMETHODCALLTYPE *GetMarshalingContextAttribute)(
7455        IMarshalingStream* This,
7456        CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
7457        ULONG_PTR *pAttributeValue);
7458
7459    END_INTERFACE
7460} IMarshalingStreamVtbl;
7461interface IMarshalingStream {
7462    CONST_VTBL IMarshalingStreamVtbl* lpVtbl;
7463};
7464
7465#ifdef COBJMACROS
7466#ifndef WIDL_C_INLINE_WRAPPERS
7467/*** IUnknown methods ***/
7468#define IMarshalingStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7469#define IMarshalingStream_AddRef(This) (This)->lpVtbl->AddRef(This)
7470#define IMarshalingStream_Release(This) (This)->lpVtbl->Release(This)
7471/*** ISequentialStream methods ***/
7472#define IMarshalingStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
7473#define IMarshalingStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
7474/*** IStream methods ***/
7475#define IMarshalingStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
7476#define IMarshalingStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
7477#define IMarshalingStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
7478#define IMarshalingStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
7479#define IMarshalingStream_Revert(This) (This)->lpVtbl->Revert(This)
7480#define IMarshalingStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
7481#define IMarshalingStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
7482#define IMarshalingStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
7483#define IMarshalingStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
7484/*** IMarshalingStream methods ***/
7485#define IMarshalingStream_GetMarshalingContextAttribute(This,attribute,pAttributeValue) (This)->lpVtbl->GetMarshalingContextAttribute(This,attribute,pAttributeValue)
7486#else
7487/*** IUnknown methods ***/
7488static FORCEINLINE HRESULT IMarshalingStream_QueryInterface(IMarshalingStream* This,REFIID riid,void **ppvObject) {
7489    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7490}
7491static FORCEINLINE ULONG IMarshalingStream_AddRef(IMarshalingStream* This) {
7492    return This->lpVtbl->AddRef(This);
7493}
7494static FORCEINLINE ULONG IMarshalingStream_Release(IMarshalingStream* This) {
7495    return This->lpVtbl->Release(This);
7496}
7497/*** ISequentialStream methods ***/
7498static FORCEINLINE HRESULT IMarshalingStream_Read(IMarshalingStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
7499    return This->lpVtbl->Read(This,pv,cb,pcbRead);
7500}
7501static FORCEINLINE HRESULT IMarshalingStream_Write(IMarshalingStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
7502    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
7503}
7504/*** IStream methods ***/
7505static FORCEINLINE HRESULT IMarshalingStream_Seek(IMarshalingStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
7506    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
7507}
7508static FORCEINLINE HRESULT IMarshalingStream_SetSize(IMarshalingStream* This,ULARGE_INTEGER libNewSize) {
7509    return This->lpVtbl->SetSize(This,libNewSize);
7510}
7511static FORCEINLINE HRESULT IMarshalingStream_CopyTo(IMarshalingStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
7512    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
7513}
7514static FORCEINLINE HRESULT IMarshalingStream_Commit(IMarshalingStream* This,DWORD grfCommitFlags) {
7515    return This->lpVtbl->Commit(This,grfCommitFlags);
7516}
7517static FORCEINLINE HRESULT IMarshalingStream_Revert(IMarshalingStream* This) {
7518    return This->lpVtbl->Revert(This);
7519}
7520static FORCEINLINE HRESULT IMarshalingStream_LockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
7521    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
7522}
7523static FORCEINLINE HRESULT IMarshalingStream_UnlockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
7524    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
7525}
7526static FORCEINLINE HRESULT IMarshalingStream_Stat(IMarshalingStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
7527    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
7528}
7529static FORCEINLINE HRESULT IMarshalingStream_Clone(IMarshalingStream* This,IStream **ppstm) {
7530    return This->lpVtbl->Clone(This,ppstm);
7531}
7532/*** IMarshalingStream methods ***/
7533static FORCEINLINE HRESULT IMarshalingStream_GetMarshalingContextAttribute(IMarshalingStream* This,CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,ULONG_PTR *pAttributeValue) {
7534    return This->lpVtbl->GetMarshalingContextAttribute(This,attribute,pAttributeValue);
7535}
7536#endif
7537#endif
7538
7539#endif
7540
7541HRESULT STDMETHODCALLTYPE IMarshalingStream_GetMarshalingContextAttribute_Proxy(
7542    IMarshalingStream* This,
7543    CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
7544    ULONG_PTR *pAttributeValue);
7545void __RPC_STUB IMarshalingStream_GetMarshalingContextAttribute_Stub(
7546    IRpcStubBuffer* This,
7547    IRpcChannelBuffer* pRpcChannelBuffer,
7548    PRPC_MESSAGE pRpcMessage,
7549    DWORD* pdwStubPhase);
7550
7551#endif  /* __IMarshalingStream_INTERFACE_DEFINED__ */
7552
7553#endif
7554
7555#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
7556EXTERN_C const GUID  IID_ICallbackWithNoReentrancyToApplicationSTA;
7557#endif
7558#define _OBJIDLBASE_
7559#endif
7560#ifndef __IMoniker_FWD_DEFINED__
7561#define __IMoniker_FWD_DEFINED__
7562typedef interface IMoniker IMoniker;
7563#endif
7564
7565#ifndef __IEnumMoniker_FWD_DEFINED__
7566#define __IEnumMoniker_FWD_DEFINED__
7567typedef interface IEnumMoniker IEnumMoniker;
7568#endif
7569
7570#ifndef __IRunningObjectTable_FWD_DEFINED__
7571#define __IRunningObjectTable_FWD_DEFINED__
7572typedef interface IRunningObjectTable IRunningObjectTable;
7573#endif
7574
7575#ifndef __IStorage_FWD_DEFINED__
7576#define __IStorage_FWD_DEFINED__
7577typedef interface IStorage IStorage;
7578#endif
7579
7580#ifndef __IEnumSTATSTG_FWD_DEFINED__
7581#define __IEnumSTATSTG_FWD_DEFINED__
7582typedef interface IEnumSTATSTG IEnumSTATSTG;
7583#endif
7584
7585#ifndef __IAdviseSink_FWD_DEFINED__
7586#define __IAdviseSink_FWD_DEFINED__
7587typedef interface IAdviseSink IAdviseSink;
7588#endif
7589
7590#ifndef __AsyncIAdviseSink_FWD_DEFINED__
7591#define __AsyncIAdviseSink_FWD_DEFINED__
7592typedef interface AsyncIAdviseSink AsyncIAdviseSink;
7593#endif
7594
7595#ifndef __IBindCtx_FWD_DEFINED__
7596#define __IBindCtx_FWD_DEFINED__
7597typedef interface IBindCtx IBindCtx;
7598#endif
7599
7600#ifndef __IEnumMoniker_FWD_DEFINED__
7601#define __IEnumMoniker_FWD_DEFINED__
7602typedef interface IEnumMoniker IEnumMoniker;
7603#endif
7604
7605#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
7606/*****************************************************************************
7607 * IMallocSpy interface
7608 */
7609#ifndef __IMallocSpy_INTERFACE_DEFINED__
7610#define __IMallocSpy_INTERFACE_DEFINED__
7611
7612typedef IMallocSpy *LPMALLOCSPY;
7613DEFINE_GUID(IID_IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7614#if defined(__cplusplus) && !defined(CINTERFACE)
7615MIDL_INTERFACE("0000001d-0000-0000-c000-000000000046")
7616IMallocSpy : public IUnknown
7617{
7618    virtual SIZE_T STDMETHODCALLTYPE PreAlloc(
7619        SIZE_T cbRequest) = 0;
7620
7621    virtual void * STDMETHODCALLTYPE PostAlloc(
7622        void *pActual) = 0;
7623
7624    virtual void * STDMETHODCALLTYPE PreFree(
7625        void *pRequest,
7626        WINBOOL fSpyed) = 0;
7627
7628    virtual void STDMETHODCALLTYPE PostFree(
7629        WINBOOL fSpyed) = 0;
7630
7631    virtual SIZE_T STDMETHODCALLTYPE PreRealloc(
7632        void *pRequest,
7633        SIZE_T cbRequest,
7634        void **ppNewRequest,
7635        WINBOOL fSpyed) = 0;
7636
7637    virtual void * STDMETHODCALLTYPE PostRealloc(
7638        void *pActual,
7639        WINBOOL fSpyed) = 0;
7640
7641    virtual void * STDMETHODCALLTYPE PreGetSize(
7642        void *pRequest,
7643        WINBOOL fSpyed) = 0;
7644
7645    virtual SIZE_T STDMETHODCALLTYPE PostGetSize(
7646        SIZE_T cbActual,
7647        WINBOOL fSpyed) = 0;
7648
7649    virtual void * STDMETHODCALLTYPE PreDidAlloc(
7650        void *pRequest,
7651        WINBOOL fSpyed) = 0;
7652
7653    virtual int STDMETHODCALLTYPE PostDidAlloc(
7654        void *pRequest,
7655        WINBOOL fSpyed,
7656        int fActual) = 0;
7657
7658    virtual void STDMETHODCALLTYPE PreHeapMinimize(
7659        ) = 0;
7660
7661    virtual void STDMETHODCALLTYPE PostHeapMinimize(
7662        ) = 0;
7663
7664};
7665#ifdef __CRT_UUID_DECL
7666__CRT_UUID_DECL(IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
7667#endif
7668#else
7669typedef struct IMallocSpyVtbl {
7670    BEGIN_INTERFACE
7671
7672    /*** IUnknown methods ***/
7673    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7674        IMallocSpy* This,
7675        REFIID riid,
7676        void **ppvObject);
7677
7678    ULONG (STDMETHODCALLTYPE *AddRef)(
7679        IMallocSpy* This);
7680
7681    ULONG (STDMETHODCALLTYPE *Release)(
7682        IMallocSpy* This);
7683
7684    /*** IMallocSpy methods ***/
7685    SIZE_T (STDMETHODCALLTYPE *PreAlloc)(
7686        IMallocSpy* This,
7687        SIZE_T cbRequest);
7688
7689    void * (STDMETHODCALLTYPE *PostAlloc)(
7690        IMallocSpy* This,
7691        void *pActual);
7692
7693    void * (STDMETHODCALLTYPE *PreFree)(
7694        IMallocSpy* This,
7695        void *pRequest,
7696        WINBOOL fSpyed);
7697
7698    void (STDMETHODCALLTYPE *PostFree)(
7699        IMallocSpy* This,
7700        WINBOOL fSpyed);
7701
7702    SIZE_T (STDMETHODCALLTYPE *PreRealloc)(
7703        IMallocSpy* This,
7704        void *pRequest,
7705        SIZE_T cbRequest,
7706        void **ppNewRequest,
7707        WINBOOL fSpyed);
7708
7709    void * (STDMETHODCALLTYPE *PostRealloc)(
7710        IMallocSpy* This,
7711        void *pActual,
7712        WINBOOL fSpyed);
7713
7714    void * (STDMETHODCALLTYPE *PreGetSize)(
7715        IMallocSpy* This,
7716        void *pRequest,
7717        WINBOOL fSpyed);
7718
7719    SIZE_T (STDMETHODCALLTYPE *PostGetSize)(
7720        IMallocSpy* This,
7721        SIZE_T cbActual,
7722        WINBOOL fSpyed);
7723
7724    void * (STDMETHODCALLTYPE *PreDidAlloc)(
7725        IMallocSpy* This,
7726        void *pRequest,
7727        WINBOOL fSpyed);
7728
7729    int (STDMETHODCALLTYPE *PostDidAlloc)(
7730        IMallocSpy* This,
7731        void *pRequest,
7732        WINBOOL fSpyed,
7733        int fActual);
7734
7735    void (STDMETHODCALLTYPE *PreHeapMinimize)(
7736        IMallocSpy* This);
7737
7738    void (STDMETHODCALLTYPE *PostHeapMinimize)(
7739        IMallocSpy* This);
7740
7741    END_INTERFACE
7742} IMallocSpyVtbl;
7743interface IMallocSpy {
7744    CONST_VTBL IMallocSpyVtbl* lpVtbl;
7745};
7746
7747#ifdef COBJMACROS
7748#ifndef WIDL_C_INLINE_WRAPPERS
7749/*** IUnknown methods ***/
7750#define IMallocSpy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7751#define IMallocSpy_AddRef(This) (This)->lpVtbl->AddRef(This)
7752#define IMallocSpy_Release(This) (This)->lpVtbl->Release(This)
7753/*** IMallocSpy methods ***/
7754#define IMallocSpy_PreAlloc(This,cbRequest) (This)->lpVtbl->PreAlloc(This,cbRequest)
7755#define IMallocSpy_PostAlloc(This,pActual) (This)->lpVtbl->PostAlloc(This,pActual)
7756#define IMallocSpy_PreFree(This,pRequest,fSpyed) (This)->lpVtbl->PreFree(This,pRequest,fSpyed)
7757#define IMallocSpy_PostFree(This,fSpyed) (This)->lpVtbl->PostFree(This,fSpyed)
7758#define IMallocSpy_PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed) (This)->lpVtbl->PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed)
7759#define IMallocSpy_PostRealloc(This,pActual,fSpyed) (This)->lpVtbl->PostRealloc(This,pActual,fSpyed)
7760#define IMallocSpy_PreGetSize(This,pRequest,fSpyed) (This)->lpVtbl->PreGetSize(This,pRequest,fSpyed)
7761#define IMallocSpy_PostGetSize(This,cbActual,fSpyed) (This)->lpVtbl->PostGetSize(This,cbActual,fSpyed)
7762#define IMallocSpy_PreDidAlloc(This,pRequest,fSpyed) (This)->lpVtbl->PreDidAlloc(This,pRequest,fSpyed)
7763#define IMallocSpy_PostDidAlloc(This,pRequest,fSpyed,fActual) (This)->lpVtbl->PostDidAlloc(This,pRequest,fSpyed,fActual)
7764#define IMallocSpy_PreHeapMinimize(This) (This)->lpVtbl->PreHeapMinimize(This)
7765#define IMallocSpy_PostHeapMinimize(This) (This)->lpVtbl->PostHeapMinimize(This)
7766#else
7767/*** IUnknown methods ***/
7768static FORCEINLINE HRESULT IMallocSpy_QueryInterface(IMallocSpy* This,REFIID riid,void **ppvObject) {
7769    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7770}
7771static FORCEINLINE ULONG IMallocSpy_AddRef(IMallocSpy* This) {
7772    return This->lpVtbl->AddRef(This);
7773}
7774static FORCEINLINE ULONG IMallocSpy_Release(IMallocSpy* This) {
7775    return This->lpVtbl->Release(This);
7776}
7777/*** IMallocSpy methods ***/
7778static FORCEINLINE SIZE_T IMallocSpy_PreAlloc(IMallocSpy* This,SIZE_T cbRequest) {
7779    return This->lpVtbl->PreAlloc(This,cbRequest);
7780}
7781static FORCEINLINE void * IMallocSpy_PostAlloc(IMallocSpy* This,void *pActual) {
7782    return This->lpVtbl->PostAlloc(This,pActual);
7783}
7784static FORCEINLINE void * IMallocSpy_PreFree(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
7785    return This->lpVtbl->PreFree(This,pRequest,fSpyed);
7786}
7787static FORCEINLINE void IMallocSpy_PostFree(IMallocSpy* This,WINBOOL fSpyed) {
7788    This->lpVtbl->PostFree(This,fSpyed);
7789}
7790static FORCEINLINE SIZE_T IMallocSpy_PreRealloc(IMallocSpy* This,void *pRequest,SIZE_T cbRequest,void **ppNewRequest,WINBOOL fSpyed) {
7791    return This->lpVtbl->PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed);
7792}
7793static FORCEINLINE void * IMallocSpy_PostRealloc(IMallocSpy* This,void *pActual,WINBOOL fSpyed) {
7794    return This->lpVtbl->PostRealloc(This,pActual,fSpyed);
7795}
7796static FORCEINLINE void * IMallocSpy_PreGetSize(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
7797    return This->lpVtbl->PreGetSize(This,pRequest,fSpyed);
7798}
7799static FORCEINLINE SIZE_T IMallocSpy_PostGetSize(IMallocSpy* This,SIZE_T cbActual,WINBOOL fSpyed) {
7800    return This->lpVtbl->PostGetSize(This,cbActual,fSpyed);
7801}
7802static FORCEINLINE void * IMallocSpy_PreDidAlloc(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
7803    return This->lpVtbl->PreDidAlloc(This,pRequest,fSpyed);
7804}
7805static FORCEINLINE int IMallocSpy_PostDidAlloc(IMallocSpy* This,void *pRequest,WINBOOL fSpyed,int fActual) {
7806    return This->lpVtbl->PostDidAlloc(This,pRequest,fSpyed,fActual);
7807}
7808static FORCEINLINE void IMallocSpy_PreHeapMinimize(IMallocSpy* This) {
7809    This->lpVtbl->PreHeapMinimize(This);
7810}
7811static FORCEINLINE void IMallocSpy_PostHeapMinimize(IMallocSpy* This) {
7812    This->lpVtbl->PostHeapMinimize(This);
7813}
7814#endif
7815#endif
7816
7817#endif
7818
7819SIZE_T STDMETHODCALLTYPE IMallocSpy_PreAlloc_Proxy(
7820    IMallocSpy* This,
7821    SIZE_T cbRequest);
7822void __RPC_STUB IMallocSpy_PreAlloc_Stub(
7823    IRpcStubBuffer* This,
7824    IRpcChannelBuffer* pRpcChannelBuffer,
7825    PRPC_MESSAGE pRpcMessage,
7826    DWORD* pdwStubPhase);
7827void * STDMETHODCALLTYPE IMallocSpy_PostAlloc_Proxy(
7828    IMallocSpy* This,
7829    void *pActual);
7830void __RPC_STUB IMallocSpy_PostAlloc_Stub(
7831    IRpcStubBuffer* This,
7832    IRpcChannelBuffer* pRpcChannelBuffer,
7833    PRPC_MESSAGE pRpcMessage,
7834    DWORD* pdwStubPhase);
7835void * STDMETHODCALLTYPE IMallocSpy_PreFree_Proxy(
7836    IMallocSpy* This,
7837    void *pRequest,
7838    WINBOOL fSpyed);
7839void __RPC_STUB IMallocSpy_PreFree_Stub(
7840    IRpcStubBuffer* This,
7841    IRpcChannelBuffer* pRpcChannelBuffer,
7842    PRPC_MESSAGE pRpcMessage,
7843    DWORD* pdwStubPhase);
7844void STDMETHODCALLTYPE IMallocSpy_PostFree_Proxy(
7845    IMallocSpy* This,
7846    WINBOOL fSpyed);
7847void __RPC_STUB IMallocSpy_PostFree_Stub(
7848    IRpcStubBuffer* This,
7849    IRpcChannelBuffer* pRpcChannelBuffer,
7850    PRPC_MESSAGE pRpcMessage,
7851    DWORD* pdwStubPhase);
7852SIZE_T STDMETHODCALLTYPE IMallocSpy_PreRealloc_Proxy(
7853    IMallocSpy* This,
7854    void *pRequest,
7855    SIZE_T cbRequest,
7856    void **ppNewRequest,
7857    WINBOOL fSpyed);
7858void __RPC_STUB IMallocSpy_PreRealloc_Stub(
7859    IRpcStubBuffer* This,
7860    IRpcChannelBuffer* pRpcChannelBuffer,
7861    PRPC_MESSAGE pRpcMessage,
7862    DWORD* pdwStubPhase);
7863void * STDMETHODCALLTYPE IMallocSpy_PostRealloc_Proxy(
7864    IMallocSpy* This,
7865    void *pActual,
7866    WINBOOL fSpyed);
7867void __RPC_STUB IMallocSpy_PostRealloc_Stub(
7868    IRpcStubBuffer* This,
7869    IRpcChannelBuffer* pRpcChannelBuffer,
7870    PRPC_MESSAGE pRpcMessage,
7871    DWORD* pdwStubPhase);
7872void * STDMETHODCALLTYPE IMallocSpy_PreGetSize_Proxy(
7873    IMallocSpy* This,
7874    void *pRequest,
7875    WINBOOL fSpyed);
7876void __RPC_STUB IMallocSpy_PreGetSize_Stub(
7877    IRpcStubBuffer* This,
7878    IRpcChannelBuffer* pRpcChannelBuffer,
7879    PRPC_MESSAGE pRpcMessage,
7880    DWORD* pdwStubPhase);
7881SIZE_T STDMETHODCALLTYPE IMallocSpy_PostGetSize_Proxy(
7882    IMallocSpy* This,
7883    SIZE_T cbActual,
7884    WINBOOL fSpyed);
7885void __RPC_STUB IMallocSpy_PostGetSize_Stub(
7886    IRpcStubBuffer* This,
7887    IRpcChannelBuffer* pRpcChannelBuffer,
7888    PRPC_MESSAGE pRpcMessage,
7889    DWORD* pdwStubPhase);
7890void * STDMETHODCALLTYPE IMallocSpy_PreDidAlloc_Proxy(
7891    IMallocSpy* This,
7892    void *pRequest,
7893    WINBOOL fSpyed);
7894void __RPC_STUB IMallocSpy_PreDidAlloc_Stub(
7895    IRpcStubBuffer* This,
7896    IRpcChannelBuffer* pRpcChannelBuffer,
7897    PRPC_MESSAGE pRpcMessage,
7898    DWORD* pdwStubPhase);
7899int STDMETHODCALLTYPE IMallocSpy_PostDidAlloc_Proxy(
7900    IMallocSpy* This,
7901    void *pRequest,
7902    WINBOOL fSpyed,
7903    int fActual);
7904void __RPC_STUB IMallocSpy_PostDidAlloc_Stub(
7905    IRpcStubBuffer* This,
7906    IRpcChannelBuffer* pRpcChannelBuffer,
7907    PRPC_MESSAGE pRpcMessage,
7908    DWORD* pdwStubPhase);
7909void STDMETHODCALLTYPE IMallocSpy_PreHeapMinimize_Proxy(
7910    IMallocSpy* This);
7911void __RPC_STUB IMallocSpy_PreHeapMinimize_Stub(
7912    IRpcStubBuffer* This,
7913    IRpcChannelBuffer* pRpcChannelBuffer,
7914    PRPC_MESSAGE pRpcMessage,
7915    DWORD* pdwStubPhase);
7916void STDMETHODCALLTYPE IMallocSpy_PostHeapMinimize_Proxy(
7917    IMallocSpy* This);
7918void __RPC_STUB IMallocSpy_PostHeapMinimize_Stub(
7919    IRpcStubBuffer* This,
7920    IRpcChannelBuffer* pRpcChannelBuffer,
7921    PRPC_MESSAGE pRpcMessage,
7922    DWORD* pdwStubPhase);
7923
7924#endif  /* __IMallocSpy_INTERFACE_DEFINED__ */
7925
7926#endif
7927#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
7928/*****************************************************************************
7929 * IBindCtx interface
7930 */
7931#ifndef __IBindCtx_INTERFACE_DEFINED__
7932#define __IBindCtx_INTERFACE_DEFINED__
7933
7934typedef IBindCtx *LPBC;
7935typedef IBindCtx *LPBINDCTX;
7936#if defined(__cplusplus)
7937typedef struct tagBIND_OPTS {
7938  DWORD cbStruct;
7939  DWORD grfFlags;
7940  DWORD grfMode;
7941  DWORD dwTickCountDeadline;
7942} BIND_OPTS, *LPBIND_OPTS;
7943#else
7944typedef struct tagBIND_OPTS {
7945    DWORD cbStruct;
7946    DWORD grfFlags;
7947    DWORD grfMode;
7948    DWORD dwTickCountDeadline;
7949} BIND_OPTS;
7950typedef struct tagBIND_OPTS *LPBIND_OPTS;
7951#endif
7952#if defined(__cplusplus)
7953typedef struct tagBIND_OPTS2 : tagBIND_OPTS {
7954DWORD           dwTrackFlags;
7955DWORD           dwClassContext;
7956LCID            locale;
7957COSERVERINFO *  pServerInfo;
7958} BIND_OPTS2, * LPBIND_OPTS2;
7959#else
7960typedef struct tagBIND_OPTS2 {
7961    DWORD cbStruct;
7962    DWORD grfFlags;
7963    DWORD grfMode;
7964    DWORD dwTickCountDeadline;
7965    DWORD dwTrackFlags;
7966    DWORD dwClassContext;
7967    LCID locale;
7968    COSERVERINFO *pServerInfo;
7969} BIND_OPTS2;
7970typedef struct tagBIND_OPTS2 *LPBIND_OPTS2;
7971#endif
7972#if defined(__cplusplus)
7973typedef struct tagBIND_OPTS3 : tagBIND_OPTS2 {
7974HWND           hwnd;
7975} BIND_OPTS3, * LPBIND_OPTS3;
7976#else
7977typedef struct tagBIND_OPTS3 {
7978    DWORD cbStruct;
7979    DWORD grfFlags;
7980    DWORD grfMode;
7981    DWORD dwTickCountDeadline;
7982    DWORD dwTrackFlags;
7983    DWORD dwClassContext;
7984    LCID locale;
7985    COSERVERINFO *pServerInfo;
7986    HWND hwnd;
7987} BIND_OPTS3;
7988typedef struct tagBIND_OPTS3 *LPBIND_OPTS3;
7989#endif
7990typedef enum tagBIND_FLAGS {
7991    BIND_MAYBOTHERUSER = 1,
7992    BIND_JUSTTESTEXISTENCE = 2
7993} BIND_FLAGS;
7994DEFINE_GUID(IID_IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7995#if defined(__cplusplus) && !defined(CINTERFACE)
7996MIDL_INTERFACE("0000000e-0000-0000-c000-000000000046")
7997IBindCtx : public IUnknown
7998{
7999    virtual HRESULT STDMETHODCALLTYPE RegisterObjectBound(
8000        IUnknown *punk) = 0;
8001
8002    virtual HRESULT STDMETHODCALLTYPE RevokeObjectBound(
8003        IUnknown *punk) = 0;
8004
8005    virtual HRESULT STDMETHODCALLTYPE ReleaseBoundObjects(
8006        ) = 0;
8007
8008    virtual HRESULT STDMETHODCALLTYPE SetBindOptions(
8009        BIND_OPTS *pbindopts) = 0;
8010
8011    virtual HRESULT STDMETHODCALLTYPE GetBindOptions(
8012        BIND_OPTS *pbindopts) = 0;
8013
8014    virtual HRESULT STDMETHODCALLTYPE GetRunningObjectTable(
8015        IRunningObjectTable **pprot) = 0;
8016
8017    virtual HRESULT STDMETHODCALLTYPE RegisterObjectParam(
8018        LPOLESTR pszKey,
8019        IUnknown *punk) = 0;
8020
8021    virtual HRESULT STDMETHODCALLTYPE GetObjectParam(
8022        LPOLESTR pszKey,
8023        IUnknown **ppunk) = 0;
8024
8025    virtual HRESULT STDMETHODCALLTYPE EnumObjectParam(
8026        IEnumString **ppenum) = 0;
8027
8028    virtual HRESULT STDMETHODCALLTYPE RevokeObjectParam(
8029        LPOLESTR pszKey) = 0;
8030
8031};
8032#ifdef __CRT_UUID_DECL
8033__CRT_UUID_DECL(IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8034#endif
8035#else
8036typedef struct IBindCtxVtbl {
8037    BEGIN_INTERFACE
8038
8039    /*** IUnknown methods ***/
8040    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8041        IBindCtx* This,
8042        REFIID riid,
8043        void **ppvObject);
8044
8045    ULONG (STDMETHODCALLTYPE *AddRef)(
8046        IBindCtx* This);
8047
8048    ULONG (STDMETHODCALLTYPE *Release)(
8049        IBindCtx* This);
8050
8051    /*** IBindCtx methods ***/
8052    HRESULT (STDMETHODCALLTYPE *RegisterObjectBound)(
8053        IBindCtx* This,
8054        IUnknown *punk);
8055
8056    HRESULT (STDMETHODCALLTYPE *RevokeObjectBound)(
8057        IBindCtx* This,
8058        IUnknown *punk);
8059
8060    HRESULT (STDMETHODCALLTYPE *ReleaseBoundObjects)(
8061        IBindCtx* This);
8062
8063    HRESULT (STDMETHODCALLTYPE *SetBindOptions)(
8064        IBindCtx* This,
8065        BIND_OPTS *pbindopts);
8066
8067    HRESULT (STDMETHODCALLTYPE *GetBindOptions)(
8068        IBindCtx* This,
8069        BIND_OPTS *pbindopts);
8070
8071    HRESULT (STDMETHODCALLTYPE *GetRunningObjectTable)(
8072        IBindCtx* This,
8073        IRunningObjectTable **pprot);
8074
8075    HRESULT (STDMETHODCALLTYPE *RegisterObjectParam)(
8076        IBindCtx* This,
8077        LPOLESTR pszKey,
8078        IUnknown *punk);
8079
8080    HRESULT (STDMETHODCALLTYPE *GetObjectParam)(
8081        IBindCtx* This,
8082        LPOLESTR pszKey,
8083        IUnknown **ppunk);
8084
8085    HRESULT (STDMETHODCALLTYPE *EnumObjectParam)(
8086        IBindCtx* This,
8087        IEnumString **ppenum);
8088
8089    HRESULT (STDMETHODCALLTYPE *RevokeObjectParam)(
8090        IBindCtx* This,
8091        LPOLESTR pszKey);
8092
8093    END_INTERFACE
8094} IBindCtxVtbl;
8095interface IBindCtx {
8096    CONST_VTBL IBindCtxVtbl* lpVtbl;
8097};
8098
8099#ifdef COBJMACROS
8100#ifndef WIDL_C_INLINE_WRAPPERS
8101/*** IUnknown methods ***/
8102#define IBindCtx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8103#define IBindCtx_AddRef(This) (This)->lpVtbl->AddRef(This)
8104#define IBindCtx_Release(This) (This)->lpVtbl->Release(This)
8105/*** IBindCtx methods ***/
8106#define IBindCtx_RegisterObjectBound(This,punk) (This)->lpVtbl->RegisterObjectBound(This,punk)
8107#define IBindCtx_RevokeObjectBound(This,punk) (This)->lpVtbl->RevokeObjectBound(This,punk)
8108#define IBindCtx_ReleaseBoundObjects(This) (This)->lpVtbl->ReleaseBoundObjects(This)
8109#define IBindCtx_SetBindOptions(This,pbindopts) (This)->lpVtbl->SetBindOptions(This,pbindopts)
8110#define IBindCtx_GetBindOptions(This,pbindopts) (This)->lpVtbl->GetBindOptions(This,pbindopts)
8111#define IBindCtx_GetRunningObjectTable(This,pprot) (This)->lpVtbl->GetRunningObjectTable(This,pprot)
8112#define IBindCtx_RegisterObjectParam(This,pszKey,punk) (This)->lpVtbl->RegisterObjectParam(This,pszKey,punk)
8113#define IBindCtx_GetObjectParam(This,pszKey,ppunk) (This)->lpVtbl->GetObjectParam(This,pszKey,ppunk)
8114#define IBindCtx_EnumObjectParam(This,ppenum) (This)->lpVtbl->EnumObjectParam(This,ppenum)
8115#define IBindCtx_RevokeObjectParam(This,pszKey) (This)->lpVtbl->RevokeObjectParam(This,pszKey)
8116#else
8117/*** IUnknown methods ***/
8118static FORCEINLINE HRESULT IBindCtx_QueryInterface(IBindCtx* This,REFIID riid,void **ppvObject) {
8119    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8120}
8121static FORCEINLINE ULONG IBindCtx_AddRef(IBindCtx* This) {
8122    return This->lpVtbl->AddRef(This);
8123}
8124static FORCEINLINE ULONG IBindCtx_Release(IBindCtx* This) {
8125    return This->lpVtbl->Release(This);
8126}
8127/*** IBindCtx methods ***/
8128static FORCEINLINE HRESULT IBindCtx_RegisterObjectBound(IBindCtx* This,IUnknown *punk) {
8129    return This->lpVtbl->RegisterObjectBound(This,punk);
8130}
8131static FORCEINLINE HRESULT IBindCtx_RevokeObjectBound(IBindCtx* This,IUnknown *punk) {
8132    return This->lpVtbl->RevokeObjectBound(This,punk);
8133}
8134static FORCEINLINE HRESULT IBindCtx_ReleaseBoundObjects(IBindCtx* This) {
8135    return This->lpVtbl->ReleaseBoundObjects(This);
8136}
8137static FORCEINLINE HRESULT IBindCtx_SetBindOptions(IBindCtx* This,BIND_OPTS *pbindopts) {
8138    return This->lpVtbl->SetBindOptions(This,pbindopts);
8139}
8140static FORCEINLINE HRESULT IBindCtx_GetBindOptions(IBindCtx* This,BIND_OPTS *pbindopts) {
8141    return This->lpVtbl->GetBindOptions(This,pbindopts);
8142}
8143static FORCEINLINE HRESULT IBindCtx_GetRunningObjectTable(IBindCtx* This,IRunningObjectTable **pprot) {
8144    return This->lpVtbl->GetRunningObjectTable(This,pprot);
8145}
8146static FORCEINLINE HRESULT IBindCtx_RegisterObjectParam(IBindCtx* This,LPOLESTR pszKey,IUnknown *punk) {
8147    return This->lpVtbl->RegisterObjectParam(This,pszKey,punk);
8148}
8149static FORCEINLINE HRESULT IBindCtx_GetObjectParam(IBindCtx* This,LPOLESTR pszKey,IUnknown **ppunk) {
8150    return This->lpVtbl->GetObjectParam(This,pszKey,ppunk);
8151}
8152static FORCEINLINE HRESULT IBindCtx_EnumObjectParam(IBindCtx* This,IEnumString **ppenum) {
8153    return This->lpVtbl->EnumObjectParam(This,ppenum);
8154}
8155static FORCEINLINE HRESULT IBindCtx_RevokeObjectParam(IBindCtx* This,LPOLESTR pszKey) {
8156    return This->lpVtbl->RevokeObjectParam(This,pszKey);
8157}
8158#endif
8159#endif
8160
8161#endif
8162
8163HRESULT STDMETHODCALLTYPE IBindCtx_RegisterObjectBound_Proxy(
8164    IBindCtx* This,
8165    IUnknown *punk);
8166void __RPC_STUB IBindCtx_RegisterObjectBound_Stub(
8167    IRpcStubBuffer* This,
8168    IRpcChannelBuffer* pRpcChannelBuffer,
8169    PRPC_MESSAGE pRpcMessage,
8170    DWORD* pdwStubPhase);
8171HRESULT STDMETHODCALLTYPE IBindCtx_RevokeObjectBound_Proxy(
8172    IBindCtx* This,
8173    IUnknown *punk);
8174void __RPC_STUB IBindCtx_RevokeObjectBound_Stub(
8175    IRpcStubBuffer* This,
8176    IRpcChannelBuffer* pRpcChannelBuffer,
8177    PRPC_MESSAGE pRpcMessage,
8178    DWORD* pdwStubPhase);
8179HRESULT STDMETHODCALLTYPE IBindCtx_ReleaseBoundObjects_Proxy(
8180    IBindCtx* This);
8181void __RPC_STUB IBindCtx_ReleaseBoundObjects_Stub(
8182    IRpcStubBuffer* This,
8183    IRpcChannelBuffer* pRpcChannelBuffer,
8184    PRPC_MESSAGE pRpcMessage,
8185    DWORD* pdwStubPhase);
8186HRESULT STDMETHODCALLTYPE IBindCtx_RemoteSetBindOptions_Proxy(
8187    IBindCtx* This,
8188    BIND_OPTS2 *pbindopts);
8189void __RPC_STUB IBindCtx_RemoteSetBindOptions_Stub(
8190    IRpcStubBuffer* This,
8191    IRpcChannelBuffer* pRpcChannelBuffer,
8192    PRPC_MESSAGE pRpcMessage,
8193    DWORD* pdwStubPhase);
8194HRESULT STDMETHODCALLTYPE IBindCtx_RemoteGetBindOptions_Proxy(
8195    IBindCtx* This,
8196    BIND_OPTS2 *pbindopts);
8197void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub(
8198    IRpcStubBuffer* This,
8199    IRpcChannelBuffer* pRpcChannelBuffer,
8200    PRPC_MESSAGE pRpcMessage,
8201    DWORD* pdwStubPhase);
8202HRESULT STDMETHODCALLTYPE IBindCtx_GetRunningObjectTable_Proxy(
8203    IBindCtx* This,
8204    IRunningObjectTable **pprot);
8205void __RPC_STUB IBindCtx_GetRunningObjectTable_Stub(
8206    IRpcStubBuffer* This,
8207    IRpcChannelBuffer* pRpcChannelBuffer,
8208    PRPC_MESSAGE pRpcMessage,
8209    DWORD* pdwStubPhase);
8210HRESULT STDMETHODCALLTYPE IBindCtx_RegisterObjectParam_Proxy(
8211    IBindCtx* This,
8212    LPOLESTR pszKey,
8213    IUnknown *punk);
8214void __RPC_STUB IBindCtx_RegisterObjectParam_Stub(
8215    IRpcStubBuffer* This,
8216    IRpcChannelBuffer* pRpcChannelBuffer,
8217    PRPC_MESSAGE pRpcMessage,
8218    DWORD* pdwStubPhase);
8219HRESULT STDMETHODCALLTYPE IBindCtx_GetObjectParam_Proxy(
8220    IBindCtx* This,
8221    LPOLESTR pszKey,
8222    IUnknown **ppunk);
8223void __RPC_STUB IBindCtx_GetObjectParam_Stub(
8224    IRpcStubBuffer* This,
8225    IRpcChannelBuffer* pRpcChannelBuffer,
8226    PRPC_MESSAGE pRpcMessage,
8227    DWORD* pdwStubPhase);
8228HRESULT STDMETHODCALLTYPE IBindCtx_EnumObjectParam_Proxy(
8229    IBindCtx* This,
8230    IEnumString **ppenum);
8231void __RPC_STUB IBindCtx_EnumObjectParam_Stub(
8232    IRpcStubBuffer* This,
8233    IRpcChannelBuffer* pRpcChannelBuffer,
8234    PRPC_MESSAGE pRpcMessage,
8235    DWORD* pdwStubPhase);
8236HRESULT STDMETHODCALLTYPE IBindCtx_RevokeObjectParam_Proxy(
8237    IBindCtx* This,
8238    LPOLESTR pszKey);
8239void __RPC_STUB IBindCtx_RevokeObjectParam_Stub(
8240    IRpcStubBuffer* This,
8241    IRpcChannelBuffer* pRpcChannelBuffer,
8242    PRPC_MESSAGE pRpcMessage,
8243    DWORD* pdwStubPhase);
8244HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
8245    IBindCtx* This,
8246    BIND_OPTS *pbindopts);
8247HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
8248    IBindCtx* This,
8249    BIND_OPTS2 *pbindopts);
8250HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
8251    IBindCtx* This,
8252    BIND_OPTS *pbindopts);
8253HRESULT __RPC_STUB IBindCtx_GetBindOptions_Stub(
8254    IBindCtx* This,
8255    BIND_OPTS2 *pbindopts);
8256
8257#endif  /* __IBindCtx_INTERFACE_DEFINED__ */
8258
8259/*****************************************************************************
8260 * IEnumMoniker interface
8261 */
8262#ifndef __IEnumMoniker_INTERFACE_DEFINED__
8263#define __IEnumMoniker_INTERFACE_DEFINED__
8264
8265typedef IEnumMoniker *LPENUMMONIKER;
8266DEFINE_GUID(IID_IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8267#if defined(__cplusplus) && !defined(CINTERFACE)
8268MIDL_INTERFACE("00000102-0000-0000-c000-000000000046")
8269IEnumMoniker : public IUnknown
8270{
8271    virtual HRESULT STDMETHODCALLTYPE Next(
8272        ULONG celt,
8273        IMoniker **rgelt,
8274        ULONG *pceltFetched) = 0;
8275
8276    virtual HRESULT STDMETHODCALLTYPE Skip(
8277        ULONG celt) = 0;
8278
8279    virtual HRESULT STDMETHODCALLTYPE Reset(
8280        ) = 0;
8281
8282    virtual HRESULT STDMETHODCALLTYPE Clone(
8283        IEnumMoniker **ppenum) = 0;
8284
8285};
8286#ifdef __CRT_UUID_DECL
8287__CRT_UUID_DECL(IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8288#endif
8289#else
8290typedef struct IEnumMonikerVtbl {
8291    BEGIN_INTERFACE
8292
8293    /*** IUnknown methods ***/
8294    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8295        IEnumMoniker* This,
8296        REFIID riid,
8297        void **ppvObject);
8298
8299    ULONG (STDMETHODCALLTYPE *AddRef)(
8300        IEnumMoniker* This);
8301
8302    ULONG (STDMETHODCALLTYPE *Release)(
8303        IEnumMoniker* This);
8304
8305    /*** IEnumMoniker methods ***/
8306    HRESULT (STDMETHODCALLTYPE *Next)(
8307        IEnumMoniker* This,
8308        ULONG celt,
8309        IMoniker **rgelt,
8310        ULONG *pceltFetched);
8311
8312    HRESULT (STDMETHODCALLTYPE *Skip)(
8313        IEnumMoniker* This,
8314        ULONG celt);
8315
8316    HRESULT (STDMETHODCALLTYPE *Reset)(
8317        IEnumMoniker* This);
8318
8319    HRESULT (STDMETHODCALLTYPE *Clone)(
8320        IEnumMoniker* This,
8321        IEnumMoniker **ppenum);
8322
8323    END_INTERFACE
8324} IEnumMonikerVtbl;
8325interface IEnumMoniker {
8326    CONST_VTBL IEnumMonikerVtbl* lpVtbl;
8327};
8328
8329#ifdef COBJMACROS
8330#ifndef WIDL_C_INLINE_WRAPPERS
8331/*** IUnknown methods ***/
8332#define IEnumMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8333#define IEnumMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
8334#define IEnumMoniker_Release(This) (This)->lpVtbl->Release(This)
8335/*** IEnumMoniker methods ***/
8336#define IEnumMoniker_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
8337#define IEnumMoniker_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
8338#define IEnumMoniker_Reset(This) (This)->lpVtbl->Reset(This)
8339#define IEnumMoniker_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
8340#else
8341/*** IUnknown methods ***/
8342static FORCEINLINE HRESULT IEnumMoniker_QueryInterface(IEnumMoniker* This,REFIID riid,void **ppvObject) {
8343    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8344}
8345static FORCEINLINE ULONG IEnumMoniker_AddRef(IEnumMoniker* This) {
8346    return This->lpVtbl->AddRef(This);
8347}
8348static FORCEINLINE ULONG IEnumMoniker_Release(IEnumMoniker* This) {
8349    return This->lpVtbl->Release(This);
8350}
8351/*** IEnumMoniker methods ***/
8352static FORCEINLINE HRESULT IEnumMoniker_Next(IEnumMoniker* This,ULONG celt,IMoniker **rgelt,ULONG *pceltFetched) {
8353    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
8354}
8355static FORCEINLINE HRESULT IEnumMoniker_Skip(IEnumMoniker* This,ULONG celt) {
8356    return This->lpVtbl->Skip(This,celt);
8357}
8358static FORCEINLINE HRESULT IEnumMoniker_Reset(IEnumMoniker* This) {
8359    return This->lpVtbl->Reset(This);
8360}
8361static FORCEINLINE HRESULT IEnumMoniker_Clone(IEnumMoniker* This,IEnumMoniker **ppenum) {
8362    return This->lpVtbl->Clone(This,ppenum);
8363}
8364#endif
8365#endif
8366
8367#endif
8368
8369HRESULT STDMETHODCALLTYPE IEnumMoniker_RemoteNext_Proxy(
8370    IEnumMoniker* This,
8371    ULONG celt,
8372    IMoniker **rgelt,
8373    ULONG *pceltFetched);
8374void __RPC_STUB IEnumMoniker_RemoteNext_Stub(
8375    IRpcStubBuffer* This,
8376    IRpcChannelBuffer* pRpcChannelBuffer,
8377    PRPC_MESSAGE pRpcMessage,
8378    DWORD* pdwStubPhase);
8379HRESULT STDMETHODCALLTYPE IEnumMoniker_Skip_Proxy(
8380    IEnumMoniker* This,
8381    ULONG celt);
8382void __RPC_STUB IEnumMoniker_Skip_Stub(
8383    IRpcStubBuffer* This,
8384    IRpcChannelBuffer* pRpcChannelBuffer,
8385    PRPC_MESSAGE pRpcMessage,
8386    DWORD* pdwStubPhase);
8387HRESULT STDMETHODCALLTYPE IEnumMoniker_Reset_Proxy(
8388    IEnumMoniker* This);
8389void __RPC_STUB IEnumMoniker_Reset_Stub(
8390    IRpcStubBuffer* This,
8391    IRpcChannelBuffer* pRpcChannelBuffer,
8392    PRPC_MESSAGE pRpcMessage,
8393    DWORD* pdwStubPhase);
8394HRESULT STDMETHODCALLTYPE IEnumMoniker_Clone_Proxy(
8395    IEnumMoniker* This,
8396    IEnumMoniker **ppenum);
8397void __RPC_STUB IEnumMoniker_Clone_Stub(
8398    IRpcStubBuffer* This,
8399    IRpcChannelBuffer* pRpcChannelBuffer,
8400    PRPC_MESSAGE pRpcMessage,
8401    DWORD* pdwStubPhase);
8402HRESULT CALLBACK IEnumMoniker_Next_Proxy(
8403    IEnumMoniker* This,
8404    ULONG celt,
8405    IMoniker **rgelt,
8406    ULONG *pceltFetched);
8407HRESULT __RPC_STUB IEnumMoniker_Next_Stub(
8408    IEnumMoniker* This,
8409    ULONG celt,
8410    IMoniker **rgelt,
8411    ULONG *pceltFetched);
8412
8413#endif  /* __IEnumMoniker_INTERFACE_DEFINED__ */
8414
8415#endif
8416#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
8417/*****************************************************************************
8418 * IRunnableObject interface
8419 */
8420#ifndef __IRunnableObject_INTERFACE_DEFINED__
8421#define __IRunnableObject_INTERFACE_DEFINED__
8422
8423typedef IRunnableObject *LPRUNNABLEOBJECT;
8424DEFINE_GUID(IID_IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8425#if defined(__cplusplus) && !defined(CINTERFACE)
8426MIDL_INTERFACE("00000126-0000-0000-c000-000000000046")
8427IRunnableObject : public IUnknown
8428{
8429    virtual HRESULT STDMETHODCALLTYPE GetRunningClass(
8430        LPCLSID lpClsid) = 0;
8431
8432    virtual HRESULT STDMETHODCALLTYPE Run(
8433        LPBINDCTX pbc) = 0;
8434
8435    virtual WINBOOL STDMETHODCALLTYPE IsRunning(
8436        ) = 0;
8437
8438    virtual HRESULT STDMETHODCALLTYPE LockRunning(
8439        WINBOOL fLock,
8440        WINBOOL fLastUnlockCloses) = 0;
8441
8442    virtual HRESULT STDMETHODCALLTYPE SetContainedObject(
8443        WINBOOL fContained) = 0;
8444
8445};
8446#ifdef __CRT_UUID_DECL
8447__CRT_UUID_DECL(IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8448#endif
8449#else
8450typedef struct IRunnableObjectVtbl {
8451    BEGIN_INTERFACE
8452
8453    /*** IUnknown methods ***/
8454    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8455        IRunnableObject* This,
8456        REFIID riid,
8457        void **ppvObject);
8458
8459    ULONG (STDMETHODCALLTYPE *AddRef)(
8460        IRunnableObject* This);
8461
8462    ULONG (STDMETHODCALLTYPE *Release)(
8463        IRunnableObject* This);
8464
8465    /*** IRunnableObject methods ***/
8466    HRESULT (STDMETHODCALLTYPE *GetRunningClass)(
8467        IRunnableObject* This,
8468        LPCLSID lpClsid);
8469
8470    HRESULT (STDMETHODCALLTYPE *Run)(
8471        IRunnableObject* This,
8472        LPBINDCTX pbc);
8473
8474    WINBOOL (STDMETHODCALLTYPE *IsRunning)(
8475        IRunnableObject* This);
8476
8477    HRESULT (STDMETHODCALLTYPE *LockRunning)(
8478        IRunnableObject* This,
8479        WINBOOL fLock,
8480        WINBOOL fLastUnlockCloses);
8481
8482    HRESULT (STDMETHODCALLTYPE *SetContainedObject)(
8483        IRunnableObject* This,
8484        WINBOOL fContained);
8485
8486    END_INTERFACE
8487} IRunnableObjectVtbl;
8488interface IRunnableObject {
8489    CONST_VTBL IRunnableObjectVtbl* lpVtbl;
8490};
8491
8492#ifdef COBJMACROS
8493#ifndef WIDL_C_INLINE_WRAPPERS
8494/*** IUnknown methods ***/
8495#define IRunnableObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8496#define IRunnableObject_AddRef(This) (This)->lpVtbl->AddRef(This)
8497#define IRunnableObject_Release(This) (This)->lpVtbl->Release(This)
8498/*** IRunnableObject methods ***/
8499#define IRunnableObject_GetRunningClass(This,lpClsid) (This)->lpVtbl->GetRunningClass(This,lpClsid)
8500#define IRunnableObject_Run(This,pbc) (This)->lpVtbl->Run(This,pbc)
8501#define IRunnableObject_IsRunning(This) (This)->lpVtbl->IsRunning(This)
8502#define IRunnableObject_LockRunning(This,fLock,fLastUnlockCloses) (This)->lpVtbl->LockRunning(This,fLock,fLastUnlockCloses)
8503#define IRunnableObject_SetContainedObject(This,fContained) (This)->lpVtbl->SetContainedObject(This,fContained)
8504#else
8505/*** IUnknown methods ***/
8506static FORCEINLINE HRESULT IRunnableObject_QueryInterface(IRunnableObject* This,REFIID riid,void **ppvObject) {
8507    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8508}
8509static FORCEINLINE ULONG IRunnableObject_AddRef(IRunnableObject* This) {
8510    return This->lpVtbl->AddRef(This);
8511}
8512static FORCEINLINE ULONG IRunnableObject_Release(IRunnableObject* This) {
8513    return This->lpVtbl->Release(This);
8514}
8515/*** IRunnableObject methods ***/
8516static FORCEINLINE HRESULT IRunnableObject_GetRunningClass(IRunnableObject* This,LPCLSID lpClsid) {
8517    return This->lpVtbl->GetRunningClass(This,lpClsid);
8518}
8519static FORCEINLINE HRESULT IRunnableObject_Run(IRunnableObject* This,LPBINDCTX pbc) {
8520    return This->lpVtbl->Run(This,pbc);
8521}
8522static FORCEINLINE WINBOOL IRunnableObject_IsRunning(IRunnableObject* This) {
8523    return This->lpVtbl->IsRunning(This);
8524}
8525static FORCEINLINE HRESULT IRunnableObject_LockRunning(IRunnableObject* This,WINBOOL fLock,WINBOOL fLastUnlockCloses) {
8526    return This->lpVtbl->LockRunning(This,fLock,fLastUnlockCloses);
8527}
8528static FORCEINLINE HRESULT IRunnableObject_SetContainedObject(IRunnableObject* This,WINBOOL fContained) {
8529    return This->lpVtbl->SetContainedObject(This,fContained);
8530}
8531#endif
8532#endif
8533
8534#endif
8535
8536HRESULT STDMETHODCALLTYPE IRunnableObject_GetRunningClass_Proxy(
8537    IRunnableObject* This,
8538    LPCLSID lpClsid);
8539void __RPC_STUB IRunnableObject_GetRunningClass_Stub(
8540    IRpcStubBuffer* This,
8541    IRpcChannelBuffer* pRpcChannelBuffer,
8542    PRPC_MESSAGE pRpcMessage,
8543    DWORD* pdwStubPhase);
8544HRESULT STDMETHODCALLTYPE IRunnableObject_Run_Proxy(
8545    IRunnableObject* This,
8546    LPBINDCTX pbc);
8547void __RPC_STUB IRunnableObject_Run_Stub(
8548    IRpcStubBuffer* This,
8549    IRpcChannelBuffer* pRpcChannelBuffer,
8550    PRPC_MESSAGE pRpcMessage,
8551    DWORD* pdwStubPhase);
8552HRESULT STDMETHODCALLTYPE IRunnableObject_RemoteIsRunning_Proxy(
8553    IRunnableObject* This);
8554void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
8555    IRpcStubBuffer* This,
8556    IRpcChannelBuffer* pRpcChannelBuffer,
8557    PRPC_MESSAGE pRpcMessage,
8558    DWORD* pdwStubPhase);
8559HRESULT STDMETHODCALLTYPE IRunnableObject_LockRunning_Proxy(
8560    IRunnableObject* This,
8561    WINBOOL fLock,
8562    WINBOOL fLastUnlockCloses);
8563void __RPC_STUB IRunnableObject_LockRunning_Stub(
8564    IRpcStubBuffer* This,
8565    IRpcChannelBuffer* pRpcChannelBuffer,
8566    PRPC_MESSAGE pRpcMessage,
8567    DWORD* pdwStubPhase);
8568HRESULT STDMETHODCALLTYPE IRunnableObject_SetContainedObject_Proxy(
8569    IRunnableObject* This,
8570    WINBOOL fContained);
8571void __RPC_STUB IRunnableObject_SetContainedObject_Stub(
8572    IRpcStubBuffer* This,
8573    IRpcChannelBuffer* pRpcChannelBuffer,
8574    PRPC_MESSAGE pRpcMessage,
8575    DWORD* pdwStubPhase);
8576WINBOOL CALLBACK IRunnableObject_IsRunning_Proxy(
8577    IRunnableObject* This);
8578HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
8579    IRunnableObject* This);
8580
8581#endif  /* __IRunnableObject_INTERFACE_DEFINED__ */
8582
8583/*****************************************************************************
8584 * IRunningObjectTable interface
8585 */
8586#ifndef __IRunningObjectTable_INTERFACE_DEFINED__
8587#define __IRunningObjectTable_INTERFACE_DEFINED__
8588
8589typedef IRunningObjectTable *LPRUNNINGOBJECTTABLE;
8590DEFINE_GUID(IID_IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8591#if defined(__cplusplus) && !defined(CINTERFACE)
8592MIDL_INTERFACE("00000010-0000-0000-c000-000000000046")
8593IRunningObjectTable : public IUnknown
8594{
8595    virtual HRESULT STDMETHODCALLTYPE Register(
8596        DWORD grfFlags,
8597        IUnknown *punkObject,
8598        IMoniker *pmkObjectName,
8599        DWORD *pdwRegister) = 0;
8600
8601    virtual HRESULT STDMETHODCALLTYPE Revoke(
8602        DWORD dwRegister) = 0;
8603
8604    virtual HRESULT STDMETHODCALLTYPE IsRunning(
8605        IMoniker *pmkObjectName) = 0;
8606
8607    virtual HRESULT STDMETHODCALLTYPE GetObject(
8608        IMoniker *pmkObjectName,
8609        IUnknown **ppunkObject) = 0;
8610
8611    virtual HRESULT STDMETHODCALLTYPE NoteChangeTime(
8612        DWORD dwRegister,
8613        FILETIME *pfiletime) = 0;
8614
8615    virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
8616        IMoniker *pmkObjectName,
8617        FILETIME *pfiletime) = 0;
8618
8619    virtual HRESULT STDMETHODCALLTYPE EnumRunning(
8620        IEnumMoniker **ppenumMoniker) = 0;
8621
8622};
8623#ifdef __CRT_UUID_DECL
8624__CRT_UUID_DECL(IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8625#endif
8626#else
8627typedef struct IRunningObjectTableVtbl {
8628    BEGIN_INTERFACE
8629
8630    /*** IUnknown methods ***/
8631    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8632        IRunningObjectTable* This,
8633        REFIID riid,
8634        void **ppvObject);
8635
8636    ULONG (STDMETHODCALLTYPE *AddRef)(
8637        IRunningObjectTable* This);
8638
8639    ULONG (STDMETHODCALLTYPE *Release)(
8640        IRunningObjectTable* This);
8641
8642    /*** IRunningObjectTable methods ***/
8643    HRESULT (STDMETHODCALLTYPE *Register)(
8644        IRunningObjectTable* This,
8645        DWORD grfFlags,
8646        IUnknown *punkObject,
8647        IMoniker *pmkObjectName,
8648        DWORD *pdwRegister);
8649
8650    HRESULT (STDMETHODCALLTYPE *Revoke)(
8651        IRunningObjectTable* This,
8652        DWORD dwRegister);
8653
8654    HRESULT (STDMETHODCALLTYPE *IsRunning)(
8655        IRunningObjectTable* This,
8656        IMoniker *pmkObjectName);
8657
8658    HRESULT (STDMETHODCALLTYPE *GetObject)(
8659        IRunningObjectTable* This,
8660        IMoniker *pmkObjectName,
8661        IUnknown **ppunkObject);
8662
8663    HRESULT (STDMETHODCALLTYPE *NoteChangeTime)(
8664        IRunningObjectTable* This,
8665        DWORD dwRegister,
8666        FILETIME *pfiletime);
8667
8668    HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
8669        IRunningObjectTable* This,
8670        IMoniker *pmkObjectName,
8671        FILETIME *pfiletime);
8672
8673    HRESULT (STDMETHODCALLTYPE *EnumRunning)(
8674        IRunningObjectTable* This,
8675        IEnumMoniker **ppenumMoniker);
8676
8677    END_INTERFACE
8678} IRunningObjectTableVtbl;
8679interface IRunningObjectTable {
8680    CONST_VTBL IRunningObjectTableVtbl* lpVtbl;
8681};
8682
8683#ifdef COBJMACROS
8684#ifndef WIDL_C_INLINE_WRAPPERS
8685/*** IUnknown methods ***/
8686#define IRunningObjectTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8687#define IRunningObjectTable_AddRef(This) (This)->lpVtbl->AddRef(This)
8688#define IRunningObjectTable_Release(This) (This)->lpVtbl->Release(This)
8689/*** IRunningObjectTable methods ***/
8690#define IRunningObjectTable_Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister) (This)->lpVtbl->Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister)
8691#define IRunningObjectTable_Revoke(This,dwRegister) (This)->lpVtbl->Revoke(This,dwRegister)
8692#define IRunningObjectTable_IsRunning(This,pmkObjectName) (This)->lpVtbl->IsRunning(This,pmkObjectName)
8693#define IRunningObjectTable_GetObject(This,pmkObjectName,ppunkObject) (This)->lpVtbl->GetObject(This,pmkObjectName,ppunkObject)
8694#define IRunningObjectTable_NoteChangeTime(This,dwRegister,pfiletime) (This)->lpVtbl->NoteChangeTime(This,dwRegister,pfiletime)
8695#define IRunningObjectTable_GetTimeOfLastChange(This,pmkObjectName,pfiletime) (This)->lpVtbl->GetTimeOfLastChange(This,pmkObjectName,pfiletime)
8696#define IRunningObjectTable_EnumRunning(This,ppenumMoniker) (This)->lpVtbl->EnumRunning(This,ppenumMoniker)
8697#else
8698/*** IUnknown methods ***/
8699static FORCEINLINE HRESULT IRunningObjectTable_QueryInterface(IRunningObjectTable* This,REFIID riid,void **ppvObject) {
8700    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8701}
8702static FORCEINLINE ULONG IRunningObjectTable_AddRef(IRunningObjectTable* This) {
8703    return This->lpVtbl->AddRef(This);
8704}
8705static FORCEINLINE ULONG IRunningObjectTable_Release(IRunningObjectTable* This) {
8706    return This->lpVtbl->Release(This);
8707}
8708/*** IRunningObjectTable methods ***/
8709static FORCEINLINE HRESULT IRunningObjectTable_Register(IRunningObjectTable* This,DWORD grfFlags,IUnknown *punkObject,IMoniker *pmkObjectName,DWORD *pdwRegister) {
8710    return This->lpVtbl->Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister);
8711}
8712static FORCEINLINE HRESULT IRunningObjectTable_Revoke(IRunningObjectTable* This,DWORD dwRegister) {
8713    return This->lpVtbl->Revoke(This,dwRegister);
8714}
8715static FORCEINLINE HRESULT IRunningObjectTable_IsRunning(IRunningObjectTable* This,IMoniker *pmkObjectName) {
8716    return This->lpVtbl->IsRunning(This,pmkObjectName);
8717}
8718static FORCEINLINE HRESULT IRunningObjectTable_GetObject(IRunningObjectTable* This,IMoniker *pmkObjectName,IUnknown **ppunkObject) {
8719    return This->lpVtbl->GetObject(This,pmkObjectName,ppunkObject);
8720}
8721static FORCEINLINE HRESULT IRunningObjectTable_NoteChangeTime(IRunningObjectTable* This,DWORD dwRegister,FILETIME *pfiletime) {
8722    return This->lpVtbl->NoteChangeTime(This,dwRegister,pfiletime);
8723}
8724static FORCEINLINE HRESULT IRunningObjectTable_GetTimeOfLastChange(IRunningObjectTable* This,IMoniker *pmkObjectName,FILETIME *pfiletime) {
8725    return This->lpVtbl->GetTimeOfLastChange(This,pmkObjectName,pfiletime);
8726}
8727static FORCEINLINE HRESULT IRunningObjectTable_EnumRunning(IRunningObjectTable* This,IEnumMoniker **ppenumMoniker) {
8728    return This->lpVtbl->EnumRunning(This,ppenumMoniker);
8729}
8730#endif
8731#endif
8732
8733#endif
8734
8735HRESULT STDMETHODCALLTYPE IRunningObjectTable_Register_Proxy(
8736    IRunningObjectTable* This,
8737    DWORD grfFlags,
8738    IUnknown *punkObject,
8739    IMoniker *pmkObjectName,
8740    DWORD *pdwRegister);
8741void __RPC_STUB IRunningObjectTable_Register_Stub(
8742    IRpcStubBuffer* This,
8743    IRpcChannelBuffer* pRpcChannelBuffer,
8744    PRPC_MESSAGE pRpcMessage,
8745    DWORD* pdwStubPhase);
8746HRESULT STDMETHODCALLTYPE IRunningObjectTable_Revoke_Proxy(
8747    IRunningObjectTable* This,
8748    DWORD dwRegister);
8749void __RPC_STUB IRunningObjectTable_Revoke_Stub(
8750    IRpcStubBuffer* This,
8751    IRpcChannelBuffer* pRpcChannelBuffer,
8752    PRPC_MESSAGE pRpcMessage,
8753    DWORD* pdwStubPhase);
8754HRESULT STDMETHODCALLTYPE IRunningObjectTable_IsRunning_Proxy(
8755    IRunningObjectTable* This,
8756    IMoniker *pmkObjectName);
8757void __RPC_STUB IRunningObjectTable_IsRunning_Stub(
8758    IRpcStubBuffer* This,
8759    IRpcChannelBuffer* pRpcChannelBuffer,
8760    PRPC_MESSAGE pRpcMessage,
8761    DWORD* pdwStubPhase);
8762HRESULT STDMETHODCALLTYPE IRunningObjectTable_GetObject_Proxy(
8763    IRunningObjectTable* This,
8764    IMoniker *pmkObjectName,
8765    IUnknown **ppunkObject);
8766void __RPC_STUB IRunningObjectTable_GetObject_Stub(
8767    IRpcStubBuffer* This,
8768    IRpcChannelBuffer* pRpcChannelBuffer,
8769    PRPC_MESSAGE pRpcMessage,
8770    DWORD* pdwStubPhase);
8771HRESULT STDMETHODCALLTYPE IRunningObjectTable_NoteChangeTime_Proxy(
8772    IRunningObjectTable* This,
8773    DWORD dwRegister,
8774    FILETIME *pfiletime);
8775void __RPC_STUB IRunningObjectTable_NoteChangeTime_Stub(
8776    IRpcStubBuffer* This,
8777    IRpcChannelBuffer* pRpcChannelBuffer,
8778    PRPC_MESSAGE pRpcMessage,
8779    DWORD* pdwStubPhase);
8780HRESULT STDMETHODCALLTYPE IRunningObjectTable_GetTimeOfLastChange_Proxy(
8781    IRunningObjectTable* This,
8782    IMoniker *pmkObjectName,
8783    FILETIME *pfiletime);
8784void __RPC_STUB IRunningObjectTable_GetTimeOfLastChange_Stub(
8785    IRpcStubBuffer* This,
8786    IRpcChannelBuffer* pRpcChannelBuffer,
8787    PRPC_MESSAGE pRpcMessage,
8788    DWORD* pdwStubPhase);
8789HRESULT STDMETHODCALLTYPE IRunningObjectTable_EnumRunning_Proxy(
8790    IRunningObjectTable* This,
8791    IEnumMoniker **ppenumMoniker);
8792void __RPC_STUB IRunningObjectTable_EnumRunning_Stub(
8793    IRpcStubBuffer* This,
8794    IRpcChannelBuffer* pRpcChannelBuffer,
8795    PRPC_MESSAGE pRpcMessage,
8796    DWORD* pdwStubPhase);
8797
8798#endif  /* __IRunningObjectTable_INTERFACE_DEFINED__ */
8799
8800#endif
8801#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
8802/*****************************************************************************
8803 * IPersist interface
8804 */
8805#ifndef __IPersist_INTERFACE_DEFINED__
8806#define __IPersist_INTERFACE_DEFINED__
8807
8808typedef IPersist *LPPERSIST;
8809DEFINE_GUID(IID_IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8810#if defined(__cplusplus) && !defined(CINTERFACE)
8811MIDL_INTERFACE("0000010c-0000-0000-c000-000000000046")
8812IPersist : public IUnknown
8813{
8814    virtual HRESULT STDMETHODCALLTYPE GetClassID(
8815        CLSID *pClassID) = 0;
8816
8817};
8818#ifdef __CRT_UUID_DECL
8819__CRT_UUID_DECL(IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8820#endif
8821#else
8822typedef struct IPersistVtbl {
8823    BEGIN_INTERFACE
8824
8825    /*** IUnknown methods ***/
8826    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8827        IPersist* This,
8828        REFIID riid,
8829        void **ppvObject);
8830
8831    ULONG (STDMETHODCALLTYPE *AddRef)(
8832        IPersist* This);
8833
8834    ULONG (STDMETHODCALLTYPE *Release)(
8835        IPersist* This);
8836
8837    /*** IPersist methods ***/
8838    HRESULT (STDMETHODCALLTYPE *GetClassID)(
8839        IPersist* This,
8840        CLSID *pClassID);
8841
8842    END_INTERFACE
8843} IPersistVtbl;
8844interface IPersist {
8845    CONST_VTBL IPersistVtbl* lpVtbl;
8846};
8847
8848#ifdef COBJMACROS
8849#ifndef WIDL_C_INLINE_WRAPPERS
8850/*** IUnknown methods ***/
8851#define IPersist_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8852#define IPersist_AddRef(This) (This)->lpVtbl->AddRef(This)
8853#define IPersist_Release(This) (This)->lpVtbl->Release(This)
8854/*** IPersist methods ***/
8855#define IPersist_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
8856#else
8857/*** IUnknown methods ***/
8858static FORCEINLINE HRESULT IPersist_QueryInterface(IPersist* This,REFIID riid,void **ppvObject) {
8859    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8860}
8861static FORCEINLINE ULONG IPersist_AddRef(IPersist* This) {
8862    return This->lpVtbl->AddRef(This);
8863}
8864static FORCEINLINE ULONG IPersist_Release(IPersist* This) {
8865    return This->lpVtbl->Release(This);
8866}
8867/*** IPersist methods ***/
8868static FORCEINLINE HRESULT IPersist_GetClassID(IPersist* This,CLSID *pClassID) {
8869    return This->lpVtbl->GetClassID(This,pClassID);
8870}
8871#endif
8872#endif
8873
8874#endif
8875
8876HRESULT STDMETHODCALLTYPE IPersist_GetClassID_Proxy(
8877    IPersist* This,
8878    CLSID *pClassID);
8879void __RPC_STUB IPersist_GetClassID_Stub(
8880    IRpcStubBuffer* This,
8881    IRpcChannelBuffer* pRpcChannelBuffer,
8882    PRPC_MESSAGE pRpcMessage,
8883    DWORD* pdwStubPhase);
8884
8885#endif  /* __IPersist_INTERFACE_DEFINED__ */
8886
8887/*****************************************************************************
8888 * IPersistStream interface
8889 */
8890#ifndef __IPersistStream_INTERFACE_DEFINED__
8891#define __IPersistStream_INTERFACE_DEFINED__
8892
8893typedef IPersistStream *LPPERSISTSTREAM;
8894DEFINE_GUID(IID_IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8895#if defined(__cplusplus) && !defined(CINTERFACE)
8896MIDL_INTERFACE("00000109-0000-0000-c000-000000000046")
8897IPersistStream : public IPersist
8898{
8899    virtual HRESULT STDMETHODCALLTYPE IsDirty(
8900        ) = 0;
8901
8902    virtual HRESULT STDMETHODCALLTYPE Load(
8903        IStream *pStm) = 0;
8904
8905    virtual HRESULT STDMETHODCALLTYPE Save(
8906        IStream *pStm,
8907        WINBOOL fClearDirty) = 0;
8908
8909    virtual HRESULT STDMETHODCALLTYPE GetSizeMax(
8910        ULARGE_INTEGER *pcbSize) = 0;
8911
8912};
8913#ifdef __CRT_UUID_DECL
8914__CRT_UUID_DECL(IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8915#endif
8916#else
8917typedef struct IPersistStreamVtbl {
8918    BEGIN_INTERFACE
8919
8920    /*** IUnknown methods ***/
8921    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8922        IPersistStream* This,
8923        REFIID riid,
8924        void **ppvObject);
8925
8926    ULONG (STDMETHODCALLTYPE *AddRef)(
8927        IPersistStream* This);
8928
8929    ULONG (STDMETHODCALLTYPE *Release)(
8930        IPersistStream* This);
8931
8932    /*** IPersist methods ***/
8933    HRESULT (STDMETHODCALLTYPE *GetClassID)(
8934        IPersistStream* This,
8935        CLSID *pClassID);
8936
8937    /*** IPersistStream methods ***/
8938    HRESULT (STDMETHODCALLTYPE *IsDirty)(
8939        IPersistStream* This);
8940
8941    HRESULT (STDMETHODCALLTYPE *Load)(
8942        IPersistStream* This,
8943        IStream *pStm);
8944
8945    HRESULT (STDMETHODCALLTYPE *Save)(
8946        IPersistStream* This,
8947        IStream *pStm,
8948        WINBOOL fClearDirty);
8949
8950    HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
8951        IPersistStream* This,
8952        ULARGE_INTEGER *pcbSize);
8953
8954    END_INTERFACE
8955} IPersistStreamVtbl;
8956interface IPersistStream {
8957    CONST_VTBL IPersistStreamVtbl* lpVtbl;
8958};
8959
8960#ifdef COBJMACROS
8961#ifndef WIDL_C_INLINE_WRAPPERS
8962/*** IUnknown methods ***/
8963#define IPersistStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8964#define IPersistStream_AddRef(This) (This)->lpVtbl->AddRef(This)
8965#define IPersistStream_Release(This) (This)->lpVtbl->Release(This)
8966/*** IPersist methods ***/
8967#define IPersistStream_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
8968/*** IPersistStream methods ***/
8969#define IPersistStream_IsDirty(This) (This)->lpVtbl->IsDirty(This)
8970#define IPersistStream_Load(This,pStm) (This)->lpVtbl->Load(This,pStm)
8971#define IPersistStream_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty)
8972#define IPersistStream_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize)
8973#else
8974/*** IUnknown methods ***/
8975static FORCEINLINE HRESULT IPersistStream_QueryInterface(IPersistStream* This,REFIID riid,void **ppvObject) {
8976    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8977}
8978static FORCEINLINE ULONG IPersistStream_AddRef(IPersistStream* This) {
8979    return This->lpVtbl->AddRef(This);
8980}
8981static FORCEINLINE ULONG IPersistStream_Release(IPersistStream* This) {
8982    return This->lpVtbl->Release(This);
8983}
8984/*** IPersist methods ***/
8985static FORCEINLINE HRESULT IPersistStream_GetClassID(IPersistStream* This,CLSID *pClassID) {
8986    return This->lpVtbl->GetClassID(This,pClassID);
8987}
8988/*** IPersistStream methods ***/
8989static FORCEINLINE HRESULT IPersistStream_IsDirty(IPersistStream* This) {
8990    return This->lpVtbl->IsDirty(This);
8991}
8992static FORCEINLINE HRESULT IPersistStream_Load(IPersistStream* This,IStream *pStm) {
8993    return This->lpVtbl->Load(This,pStm);
8994}
8995static FORCEINLINE HRESULT IPersistStream_Save(IPersistStream* This,IStream *pStm,WINBOOL fClearDirty) {
8996    return This->lpVtbl->Save(This,pStm,fClearDirty);
8997}
8998static FORCEINLINE HRESULT IPersistStream_GetSizeMax(IPersistStream* This,ULARGE_INTEGER *pcbSize) {
8999    return This->lpVtbl->GetSizeMax(This,pcbSize);
9000}
9001#endif
9002#endif
9003
9004#endif
9005
9006HRESULT STDMETHODCALLTYPE IPersistStream_IsDirty_Proxy(
9007    IPersistStream* This);
9008void __RPC_STUB IPersistStream_IsDirty_Stub(
9009    IRpcStubBuffer* This,
9010    IRpcChannelBuffer* pRpcChannelBuffer,
9011    PRPC_MESSAGE pRpcMessage,
9012    DWORD* pdwStubPhase);
9013HRESULT STDMETHODCALLTYPE IPersistStream_Load_Proxy(
9014    IPersistStream* This,
9015    IStream *pStm);
9016void __RPC_STUB IPersistStream_Load_Stub(
9017    IRpcStubBuffer* This,
9018    IRpcChannelBuffer* pRpcChannelBuffer,
9019    PRPC_MESSAGE pRpcMessage,
9020    DWORD* pdwStubPhase);
9021HRESULT STDMETHODCALLTYPE IPersistStream_Save_Proxy(
9022    IPersistStream* This,
9023    IStream *pStm,
9024    WINBOOL fClearDirty);
9025void __RPC_STUB IPersistStream_Save_Stub(
9026    IRpcStubBuffer* This,
9027    IRpcChannelBuffer* pRpcChannelBuffer,
9028    PRPC_MESSAGE pRpcMessage,
9029    DWORD* pdwStubPhase);
9030HRESULT STDMETHODCALLTYPE IPersistStream_GetSizeMax_Proxy(
9031    IPersistStream* This,
9032    ULARGE_INTEGER *pcbSize);
9033void __RPC_STUB IPersistStream_GetSizeMax_Stub(
9034    IRpcStubBuffer* This,
9035    IRpcChannelBuffer* pRpcChannelBuffer,
9036    PRPC_MESSAGE pRpcMessage,
9037    DWORD* pdwStubPhase);
9038
9039#endif  /* __IPersistStream_INTERFACE_DEFINED__ */
9040
9041/*****************************************************************************
9042 * IMoniker interface
9043 */
9044#ifndef __IMoniker_INTERFACE_DEFINED__
9045#define __IMoniker_INTERFACE_DEFINED__
9046
9047typedef IMoniker *LPMONIKER;
9048typedef enum tagMKSYS {
9049    MKSYS_NONE = 0,
9050    MKSYS_GENERICCOMPOSITE = 1,
9051    MKSYS_FILEMONIKER = 2,
9052    MKSYS_ANTIMONIKER = 3,
9053    MKSYS_ITEMMONIKER = 4,
9054    MKSYS_POINTERMONIKER = 5,
9055    MKSYS_CLASSMONIKER = 7,
9056    MKSYS_OBJREFMONIKER = 8,
9057    MKSYS_SESSIONMONIKER = 9,
9058    MKSYS_LUAMONIKER = 10
9059} MKSYS;
9060typedef enum tagMKREDUCE {
9061    MKRREDUCE_ONE = 3 << 16,
9062    MKRREDUCE_TOUSER = 2 << 16,
9063    MKRREDUCE_THROUGHUSER = 1 << 16,
9064    MKRREDUCE_ALL = 0
9065} MKRREDUCE;
9066DEFINE_GUID(IID_IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9067#if defined(__cplusplus) && !defined(CINTERFACE)
9068MIDL_INTERFACE("0000000f-0000-0000-c000-000000000046")
9069IMoniker : public IPersistStream
9070{
9071    virtual HRESULT STDMETHODCALLTYPE BindToObject(
9072        IBindCtx *pbc,
9073        IMoniker *pmkToLeft,
9074        REFIID riidResult,
9075        void **ppvResult) = 0;
9076
9077    virtual HRESULT STDMETHODCALLTYPE BindToStorage(
9078        IBindCtx *pbc,
9079        IMoniker *pmkToLeft,
9080        REFIID riid,
9081        void **ppvObj) = 0;
9082
9083    virtual HRESULT STDMETHODCALLTYPE Reduce(
9084        IBindCtx *pbc,
9085        DWORD dwReduceHowFar,
9086        IMoniker **ppmkToLeft,
9087        IMoniker **ppmkReduced) = 0;
9088
9089    virtual HRESULT STDMETHODCALLTYPE ComposeWith(
9090        IMoniker *pmkRight,
9091        WINBOOL fOnlyIfNotGeneric,
9092        IMoniker **ppmkComposite) = 0;
9093
9094    virtual HRESULT STDMETHODCALLTYPE Enum(
9095        WINBOOL fForward,
9096        IEnumMoniker **ppenumMoniker) = 0;
9097
9098    virtual HRESULT STDMETHODCALLTYPE IsEqual(
9099        IMoniker *pmkOtherMoniker) = 0;
9100
9101    virtual HRESULT STDMETHODCALLTYPE Hash(
9102        DWORD *pdwHash) = 0;
9103
9104    virtual HRESULT STDMETHODCALLTYPE IsRunning(
9105        IBindCtx *pbc,
9106        IMoniker *pmkToLeft,
9107        IMoniker *pmkNewlyRunning) = 0;
9108
9109    virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
9110        IBindCtx *pbc,
9111        IMoniker *pmkToLeft,
9112        FILETIME *pFileTime) = 0;
9113
9114    virtual HRESULT STDMETHODCALLTYPE Inverse(
9115        IMoniker **ppmk) = 0;
9116
9117    virtual HRESULT STDMETHODCALLTYPE CommonPrefixWith(
9118        IMoniker *pmkOther,
9119        IMoniker **ppmkPrefix) = 0;
9120
9121    virtual HRESULT STDMETHODCALLTYPE RelativePathTo(
9122        IMoniker *pmkOther,
9123        IMoniker **ppmkRelPath) = 0;
9124
9125    virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
9126        IBindCtx *pbc,
9127        IMoniker *pmkToLeft,
9128        LPOLESTR *ppszDisplayName) = 0;
9129
9130    virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
9131        IBindCtx *pbc,
9132        IMoniker *pmkToLeft,
9133        LPOLESTR pszDisplayName,
9134        ULONG *pchEaten,
9135        IMoniker **ppmkOut) = 0;
9136
9137    virtual HRESULT STDMETHODCALLTYPE IsSystemMoniker(
9138        DWORD *pdwMksys) = 0;
9139
9140};
9141#ifdef __CRT_UUID_DECL
9142__CRT_UUID_DECL(IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
9143#endif
9144#else
9145typedef struct IMonikerVtbl {
9146    BEGIN_INTERFACE
9147
9148    /*** IUnknown methods ***/
9149    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9150        IMoniker* This,
9151        REFIID riid,
9152        void **ppvObject);
9153
9154    ULONG (STDMETHODCALLTYPE *AddRef)(
9155        IMoniker* This);
9156
9157    ULONG (STDMETHODCALLTYPE *Release)(
9158        IMoniker* This);
9159
9160    /*** IPersist methods ***/
9161    HRESULT (STDMETHODCALLTYPE *GetClassID)(
9162        IMoniker* This,
9163        CLSID *pClassID);
9164
9165    /*** IPersistStream methods ***/
9166    HRESULT (STDMETHODCALLTYPE *IsDirty)(
9167        IMoniker* This);
9168
9169    HRESULT (STDMETHODCALLTYPE *Load)(
9170        IMoniker* This,
9171        IStream *pStm);
9172
9173    HRESULT (STDMETHODCALLTYPE *Save)(
9174        IMoniker* This,
9175        IStream *pStm,
9176        WINBOOL fClearDirty);
9177
9178    HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
9179        IMoniker* This,
9180        ULARGE_INTEGER *pcbSize);
9181
9182    /*** IMoniker methods ***/
9183    HRESULT (STDMETHODCALLTYPE *BindToObject)(
9184        IMoniker* This,
9185        IBindCtx *pbc,
9186        IMoniker *pmkToLeft,
9187        REFIID riidResult,
9188        void **ppvResult);
9189
9190    HRESULT (STDMETHODCALLTYPE *BindToStorage)(
9191        IMoniker* This,
9192        IBindCtx *pbc,
9193        IMoniker *pmkToLeft,
9194        REFIID riid,
9195        void **ppvObj);
9196
9197    HRESULT (STDMETHODCALLTYPE *Reduce)(
9198        IMoniker* This,
9199        IBindCtx *pbc,
9200        DWORD dwReduceHowFar,
9201        IMoniker **ppmkToLeft,
9202        IMoniker **ppmkReduced);
9203
9204    HRESULT (STDMETHODCALLTYPE *ComposeWith)(
9205        IMoniker* This,
9206        IMoniker *pmkRight,
9207        WINBOOL fOnlyIfNotGeneric,
9208        IMoniker **ppmkComposite);
9209
9210    HRESULT (STDMETHODCALLTYPE *Enum)(
9211        IMoniker* This,
9212        WINBOOL fForward,
9213        IEnumMoniker **ppenumMoniker);
9214
9215    HRESULT (STDMETHODCALLTYPE *IsEqual)(
9216        IMoniker* This,
9217        IMoniker *pmkOtherMoniker);
9218
9219    HRESULT (STDMETHODCALLTYPE *Hash)(
9220        IMoniker* This,
9221        DWORD *pdwHash);
9222
9223    HRESULT (STDMETHODCALLTYPE *IsRunning)(
9224        IMoniker* This,
9225        IBindCtx *pbc,
9226        IMoniker *pmkToLeft,
9227        IMoniker *pmkNewlyRunning);
9228
9229    HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
9230        IMoniker* This,
9231        IBindCtx *pbc,
9232        IMoniker *pmkToLeft,
9233        FILETIME *pFileTime);
9234
9235    HRESULT (STDMETHODCALLTYPE *Inverse)(
9236        IMoniker* This,
9237        IMoniker **ppmk);
9238
9239    HRESULT (STDMETHODCALLTYPE *CommonPrefixWith)(
9240        IMoniker* This,
9241        IMoniker *pmkOther,
9242        IMoniker **ppmkPrefix);
9243
9244    HRESULT (STDMETHODCALLTYPE *RelativePathTo)(
9245        IMoniker* This,
9246        IMoniker *pmkOther,
9247        IMoniker **ppmkRelPath);
9248
9249    HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
9250        IMoniker* This,
9251        IBindCtx *pbc,
9252        IMoniker *pmkToLeft,
9253        LPOLESTR *ppszDisplayName);
9254
9255    HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
9256        IMoniker* This,
9257        IBindCtx *pbc,
9258        IMoniker *pmkToLeft,
9259        LPOLESTR pszDisplayName,
9260        ULONG *pchEaten,
9261        IMoniker **ppmkOut);
9262
9263    HRESULT (STDMETHODCALLTYPE *IsSystemMoniker)(
9264        IMoniker* This,
9265        DWORD *pdwMksys);
9266
9267    END_INTERFACE
9268} IMonikerVtbl;
9269interface IMoniker {
9270    CONST_VTBL IMonikerVtbl* lpVtbl;
9271};
9272
9273#ifdef COBJMACROS
9274#ifndef WIDL_C_INLINE_WRAPPERS
9275/*** IUnknown methods ***/
9276#define IMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9277#define IMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
9278#define IMoniker_Release(This) (This)->lpVtbl->Release(This)
9279/*** IPersist methods ***/
9280#define IMoniker_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
9281/*** IPersistStream methods ***/
9282#define IMoniker_IsDirty(This) (This)->lpVtbl->IsDirty(This)
9283#define IMoniker_Load(This,pStm) (This)->lpVtbl->Load(This,pStm)
9284#define IMoniker_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty)
9285#define IMoniker_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize)
9286/*** IMoniker methods ***/
9287#define IMoniker_BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult) (This)->lpVtbl->BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult)
9288#define IMoniker_BindToStorage(This,pbc,pmkToLeft,riid,ppvObj) (This)->lpVtbl->BindToStorage(This,pbc,pmkToLeft,riid,ppvObj)
9289#define IMoniker_Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced) (This)->lpVtbl->Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced)
9290#define IMoniker_ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite) (This)->lpVtbl->ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite)
9291#define IMoniker_Enum(This,fForward,ppenumMoniker) (This)->lpVtbl->Enum(This,fForward,ppenumMoniker)
9292#define IMoniker_IsEqual(This,pmkOtherMoniker) (This)->lpVtbl->IsEqual(This,pmkOtherMoniker)
9293#define IMoniker_Hash(This,pdwHash) (This)->lpVtbl->Hash(This,pdwHash)
9294#define IMoniker_IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning) (This)->lpVtbl->IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning)
9295#define IMoniker_GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime) (This)->lpVtbl->GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime)
9296#define IMoniker_Inverse(This,ppmk) (This)->lpVtbl->Inverse(This,ppmk)
9297#define IMoniker_CommonPrefixWith(This,pmkOther,ppmkPrefix) (This)->lpVtbl->CommonPrefixWith(This,pmkOther,ppmkPrefix)
9298#define IMoniker_RelativePathTo(This,pmkOther,ppmkRelPath) (This)->lpVtbl->RelativePathTo(This,pmkOther,ppmkRelPath)
9299#define IMoniker_GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName) (This)->lpVtbl->GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName)
9300#define IMoniker_ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut) (This)->lpVtbl->ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut)
9301#define IMoniker_IsSystemMoniker(This,pdwMksys) (This)->lpVtbl->IsSystemMoniker(This,pdwMksys)
9302#else
9303/*** IUnknown methods ***/
9304static FORCEINLINE HRESULT IMoniker_QueryInterface(IMoniker* This,REFIID riid,void **ppvObject) {
9305    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9306}
9307static FORCEINLINE ULONG IMoniker_AddRef(IMoniker* This) {
9308    return This->lpVtbl->AddRef(This);
9309}
9310static FORCEINLINE ULONG IMoniker_Release(IMoniker* This) {
9311    return This->lpVtbl->Release(This);
9312}
9313/*** IPersist methods ***/
9314static FORCEINLINE HRESULT IMoniker_GetClassID(IMoniker* This,CLSID *pClassID) {
9315    return This->lpVtbl->GetClassID(This,pClassID);
9316}
9317/*** IPersistStream methods ***/
9318static FORCEINLINE HRESULT IMoniker_IsDirty(IMoniker* This) {
9319    return This->lpVtbl->IsDirty(This);
9320}
9321static FORCEINLINE HRESULT IMoniker_Load(IMoniker* This,IStream *pStm) {
9322    return This->lpVtbl->Load(This,pStm);
9323}
9324static FORCEINLINE HRESULT IMoniker_Save(IMoniker* This,IStream *pStm,WINBOOL fClearDirty) {
9325    return This->lpVtbl->Save(This,pStm,fClearDirty);
9326}
9327static FORCEINLINE HRESULT IMoniker_GetSizeMax(IMoniker* This,ULARGE_INTEGER *pcbSize) {
9328    return This->lpVtbl->GetSizeMax(This,pcbSize);
9329}
9330/*** IMoniker methods ***/
9331static FORCEINLINE HRESULT IMoniker_BindToObject(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,REFIID riidResult,void **ppvResult) {
9332    return This->lpVtbl->BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult);
9333}
9334static FORCEINLINE HRESULT IMoniker_BindToStorage(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,REFIID riid,void **ppvObj) {
9335    return This->lpVtbl->BindToStorage(This,pbc,pmkToLeft,riid,ppvObj);
9336}
9337static FORCEINLINE HRESULT IMoniker_Reduce(IMoniker* This,IBindCtx *pbc,DWORD dwReduceHowFar,IMoniker **ppmkToLeft,IMoniker **ppmkReduced) {
9338    return This->lpVtbl->Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced);
9339}
9340static FORCEINLINE HRESULT IMoniker_ComposeWith(IMoniker* This,IMoniker *pmkRight,WINBOOL fOnlyIfNotGeneric,IMoniker **ppmkComposite) {
9341    return This->lpVtbl->ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite);
9342}
9343static FORCEINLINE HRESULT IMoniker_Enum(IMoniker* This,WINBOOL fForward,IEnumMoniker **ppenumMoniker) {
9344    return This->lpVtbl->Enum(This,fForward,ppenumMoniker);
9345}
9346static FORCEINLINE HRESULT IMoniker_IsEqual(IMoniker* This,IMoniker *pmkOtherMoniker) {
9347    return This->lpVtbl->IsEqual(This,pmkOtherMoniker);
9348}
9349static FORCEINLINE HRESULT IMoniker_Hash(IMoniker* This,DWORD *pdwHash) {
9350    return This->lpVtbl->Hash(This,pdwHash);
9351}
9352static FORCEINLINE HRESULT IMoniker_IsRunning(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,IMoniker *pmkNewlyRunning) {
9353    return This->lpVtbl->IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning);
9354}
9355static FORCEINLINE HRESULT IMoniker_GetTimeOfLastChange(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,FILETIME *pFileTime) {
9356    return This->lpVtbl->GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime);
9357}
9358static FORCEINLINE HRESULT IMoniker_Inverse(IMoniker* This,IMoniker **ppmk) {
9359    return This->lpVtbl->Inverse(This,ppmk);
9360}
9361static FORCEINLINE HRESULT IMoniker_CommonPrefixWith(IMoniker* This,IMoniker *pmkOther,IMoniker **ppmkPrefix) {
9362    return This->lpVtbl->CommonPrefixWith(This,pmkOther,ppmkPrefix);
9363}
9364static FORCEINLINE HRESULT IMoniker_RelativePathTo(IMoniker* This,IMoniker *pmkOther,IMoniker **ppmkRelPath) {
9365    return This->lpVtbl->RelativePathTo(This,pmkOther,ppmkRelPath);
9366}
9367static FORCEINLINE HRESULT IMoniker_GetDisplayName(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,LPOLESTR *ppszDisplayName) {
9368    return This->lpVtbl->GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName);
9369}
9370static FORCEINLINE HRESULT IMoniker_ParseDisplayName(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,LPOLESTR pszDisplayName,ULONG *pchEaten,IMoniker **ppmkOut) {
9371    return This->lpVtbl->ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut);
9372}
9373static FORCEINLINE HRESULT IMoniker_IsSystemMoniker(IMoniker* This,DWORD *pdwMksys) {
9374    return This->lpVtbl->IsSystemMoniker(This,pdwMksys);
9375}
9376#endif
9377#endif
9378
9379#endif
9380
9381HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToObject_Proxy(
9382    IMoniker* This,
9383    IBindCtx *pbc,
9384    IMoniker *pmkToLeft,
9385    REFIID riidResult,
9386    IUnknown **ppvResult);
9387void __RPC_STUB IMoniker_RemoteBindToObject_Stub(
9388    IRpcStubBuffer* This,
9389    IRpcChannelBuffer* pRpcChannelBuffer,
9390    PRPC_MESSAGE pRpcMessage,
9391    DWORD* pdwStubPhase);
9392HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToStorage_Proxy(
9393    IMoniker* This,
9394    IBindCtx *pbc,
9395    IMoniker *pmkToLeft,
9396    REFIID riid,
9397    IUnknown **ppvObj);
9398void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
9399    IRpcStubBuffer* This,
9400    IRpcChannelBuffer* pRpcChannelBuffer,
9401    PRPC_MESSAGE pRpcMessage,
9402    DWORD* pdwStubPhase);
9403HRESULT STDMETHODCALLTYPE IMoniker_Reduce_Proxy(
9404    IMoniker* This,
9405    IBindCtx *pbc,
9406    DWORD dwReduceHowFar,
9407    IMoniker **ppmkToLeft,
9408    IMoniker **ppmkReduced);
9409void __RPC_STUB IMoniker_Reduce_Stub(
9410    IRpcStubBuffer* This,
9411    IRpcChannelBuffer* pRpcChannelBuffer,
9412    PRPC_MESSAGE pRpcMessage,
9413    DWORD* pdwStubPhase);
9414HRESULT STDMETHODCALLTYPE IMoniker_ComposeWith_Proxy(
9415    IMoniker* This,
9416    IMoniker *pmkRight,
9417    WINBOOL fOnlyIfNotGeneric,
9418    IMoniker **ppmkComposite);
9419void __RPC_STUB IMoniker_ComposeWith_Stub(
9420    IRpcStubBuffer* This,
9421    IRpcChannelBuffer* pRpcChannelBuffer,
9422    PRPC_MESSAGE pRpcMessage,
9423    DWORD* pdwStubPhase);
9424HRESULT STDMETHODCALLTYPE IMoniker_Enum_Proxy(
9425    IMoniker* This,
9426    WINBOOL fForward,
9427    IEnumMoniker **ppenumMoniker);
9428void __RPC_STUB IMoniker_Enum_Stub(
9429    IRpcStubBuffer* This,
9430    IRpcChannelBuffer* pRpcChannelBuffer,
9431    PRPC_MESSAGE pRpcMessage,
9432    DWORD* pdwStubPhase);
9433HRESULT STDMETHODCALLTYPE IMoniker_IsEqual_Proxy(
9434    IMoniker* This,
9435    IMoniker *pmkOtherMoniker);
9436void __RPC_STUB IMoniker_IsEqual_Stub(
9437    IRpcStubBuffer* This,
9438    IRpcChannelBuffer* pRpcChannelBuffer,
9439    PRPC_MESSAGE pRpcMessage,
9440    DWORD* pdwStubPhase);
9441HRESULT STDMETHODCALLTYPE IMoniker_Hash_Proxy(
9442    IMoniker* This,
9443    DWORD *pdwHash);
9444void __RPC_STUB IMoniker_Hash_Stub(
9445    IRpcStubBuffer* This,
9446    IRpcChannelBuffer* pRpcChannelBuffer,
9447    PRPC_MESSAGE pRpcMessage,
9448    DWORD* pdwStubPhase);
9449HRESULT STDMETHODCALLTYPE IMoniker_IsRunning_Proxy(
9450    IMoniker* This,
9451    IBindCtx *pbc,
9452    IMoniker *pmkToLeft,
9453    IMoniker *pmkNewlyRunning);
9454void __RPC_STUB IMoniker_IsRunning_Stub(
9455    IRpcStubBuffer* This,
9456    IRpcChannelBuffer* pRpcChannelBuffer,
9457    PRPC_MESSAGE pRpcMessage,
9458    DWORD* pdwStubPhase);
9459HRESULT STDMETHODCALLTYPE IMoniker_GetTimeOfLastChange_Proxy(
9460    IMoniker* This,
9461    IBindCtx *pbc,
9462    IMoniker *pmkToLeft,
9463    FILETIME *pFileTime);
9464void __RPC_STUB IMoniker_GetTimeOfLastChange_Stub(
9465    IRpcStubBuffer* This,
9466    IRpcChannelBuffer* pRpcChannelBuffer,
9467    PRPC_MESSAGE pRpcMessage,
9468    DWORD* pdwStubPhase);
9469HRESULT STDMETHODCALLTYPE IMoniker_Inverse_Proxy(
9470    IMoniker* This,
9471    IMoniker **ppmk);
9472void __RPC_STUB IMoniker_Inverse_Stub(
9473    IRpcStubBuffer* This,
9474    IRpcChannelBuffer* pRpcChannelBuffer,
9475    PRPC_MESSAGE pRpcMessage,
9476    DWORD* pdwStubPhase);
9477HRESULT STDMETHODCALLTYPE IMoniker_CommonPrefixWith_Proxy(
9478    IMoniker* This,
9479    IMoniker *pmkOther,
9480    IMoniker **ppmkPrefix);
9481void __RPC_STUB IMoniker_CommonPrefixWith_Stub(
9482    IRpcStubBuffer* This,
9483    IRpcChannelBuffer* pRpcChannelBuffer,
9484    PRPC_MESSAGE pRpcMessage,
9485    DWORD* pdwStubPhase);
9486HRESULT STDMETHODCALLTYPE IMoniker_RelativePathTo_Proxy(
9487    IMoniker* This,
9488    IMoniker *pmkOther,
9489    IMoniker **ppmkRelPath);
9490void __RPC_STUB IMoniker_RelativePathTo_Stub(
9491    IRpcStubBuffer* This,
9492    IRpcChannelBuffer* pRpcChannelBuffer,
9493    PRPC_MESSAGE pRpcMessage,
9494    DWORD* pdwStubPhase);
9495HRESULT STDMETHODCALLTYPE IMoniker_GetDisplayName_Proxy(
9496    IMoniker* This,
9497    IBindCtx *pbc,
9498    IMoniker *pmkToLeft,
9499    LPOLESTR *ppszDisplayName);
9500void __RPC_STUB IMoniker_GetDisplayName_Stub(
9501    IRpcStubBuffer* This,
9502    IRpcChannelBuffer* pRpcChannelBuffer,
9503    PRPC_MESSAGE pRpcMessage,
9504    DWORD* pdwStubPhase);
9505HRESULT STDMETHODCALLTYPE IMoniker_ParseDisplayName_Proxy(
9506    IMoniker* This,
9507    IBindCtx *pbc,
9508    IMoniker *pmkToLeft,
9509    LPOLESTR pszDisplayName,
9510    ULONG *pchEaten,
9511    IMoniker **ppmkOut);
9512void __RPC_STUB IMoniker_ParseDisplayName_Stub(
9513    IRpcStubBuffer* This,
9514    IRpcChannelBuffer* pRpcChannelBuffer,
9515    PRPC_MESSAGE pRpcMessage,
9516    DWORD* pdwStubPhase);
9517HRESULT STDMETHODCALLTYPE IMoniker_IsSystemMoniker_Proxy(
9518    IMoniker* This,
9519    DWORD *pdwMksys);
9520void __RPC_STUB IMoniker_IsSystemMoniker_Stub(
9521    IRpcStubBuffer* This,
9522    IRpcChannelBuffer* pRpcChannelBuffer,
9523    PRPC_MESSAGE pRpcMessage,
9524    DWORD* pdwStubPhase);
9525HRESULT CALLBACK IMoniker_BindToObject_Proxy(
9526    IMoniker* This,
9527    IBindCtx *pbc,
9528    IMoniker *pmkToLeft,
9529    REFIID riidResult,
9530    void **ppvResult);
9531HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
9532    IMoniker* This,
9533    IBindCtx *pbc,
9534    IMoniker *pmkToLeft,
9535    REFIID riidResult,
9536    IUnknown **ppvResult);
9537HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
9538    IMoniker* This,
9539    IBindCtx *pbc,
9540    IMoniker *pmkToLeft,
9541    REFIID riid,
9542    void **ppvObj);
9543HRESULT __RPC_STUB IMoniker_BindToStorage_Stub(
9544    IMoniker* This,
9545    IBindCtx *pbc,
9546    IMoniker *pmkToLeft,
9547    REFIID riid,
9548    IUnknown **ppvObj);
9549
9550#endif  /* __IMoniker_INTERFACE_DEFINED__ */
9551
9552#endif
9553#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
9554/*****************************************************************************
9555 * IROTData interface
9556 */
9557#ifndef __IROTData_INTERFACE_DEFINED__
9558#define __IROTData_INTERFACE_DEFINED__
9559
9560DEFINE_GUID(IID_IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f);
9561#if defined(__cplusplus) && !defined(CINTERFACE)
9562MIDL_INTERFACE("f29f6bc0-5021-11ce-aa15-00006901293f")
9563IROTData : public IUnknown
9564{
9565    virtual HRESULT STDMETHODCALLTYPE GetComparisonData(
9566        byte *pbData,
9567        ULONG cbMax,
9568        ULONG *pcbData) = 0;
9569
9570};
9571#ifdef __CRT_UUID_DECL
9572__CRT_UUID_DECL(IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f)
9573#endif
9574#else
9575typedef struct IROTDataVtbl {
9576    BEGIN_INTERFACE
9577
9578    /*** IUnknown methods ***/
9579    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9580        IROTData* This,
9581        REFIID riid,
9582        void **ppvObject);
9583
9584    ULONG (STDMETHODCALLTYPE *AddRef)(
9585        IROTData* This);
9586
9587    ULONG (STDMETHODCALLTYPE *Release)(
9588        IROTData* This);
9589
9590    /*** IROTData methods ***/
9591    HRESULT (STDMETHODCALLTYPE *GetComparisonData)(
9592        IROTData* This,
9593        byte *pbData,
9594        ULONG cbMax,
9595        ULONG *pcbData);
9596
9597    END_INTERFACE
9598} IROTDataVtbl;
9599interface IROTData {
9600    CONST_VTBL IROTDataVtbl* lpVtbl;
9601};
9602
9603#ifdef COBJMACROS
9604#ifndef WIDL_C_INLINE_WRAPPERS
9605/*** IUnknown methods ***/
9606#define IROTData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9607#define IROTData_AddRef(This) (This)->lpVtbl->AddRef(This)
9608#define IROTData_Release(This) (This)->lpVtbl->Release(This)
9609/*** IROTData methods ***/
9610#define IROTData_GetComparisonData(This,pbData,cbMax,pcbData) (This)->lpVtbl->GetComparisonData(This,pbData,cbMax,pcbData)
9611#else
9612/*** IUnknown methods ***/
9613static FORCEINLINE HRESULT IROTData_QueryInterface(IROTData* This,REFIID riid,void **ppvObject) {
9614    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9615}
9616static FORCEINLINE ULONG IROTData_AddRef(IROTData* This) {
9617    return This->lpVtbl->AddRef(This);
9618}
9619static FORCEINLINE ULONG IROTData_Release(IROTData* This) {
9620    return This->lpVtbl->Release(This);
9621}
9622/*** IROTData methods ***/
9623static FORCEINLINE HRESULT IROTData_GetComparisonData(IROTData* This,byte *pbData,ULONG cbMax,ULONG *pcbData) {
9624    return This->lpVtbl->GetComparisonData(This,pbData,cbMax,pcbData);
9625}
9626#endif
9627#endif
9628
9629#endif
9630
9631HRESULT STDMETHODCALLTYPE IROTData_GetComparisonData_Proxy(
9632    IROTData* This,
9633    byte *pbData,
9634    ULONG cbMax,
9635    ULONG *pcbData);
9636void __RPC_STUB IROTData_GetComparisonData_Stub(
9637    IRpcStubBuffer* This,
9638    IRpcChannelBuffer* pRpcChannelBuffer,
9639    PRPC_MESSAGE pRpcMessage,
9640    DWORD* pdwStubPhase);
9641
9642#endif  /* __IROTData_INTERFACE_DEFINED__ */
9643
9644#endif
9645#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
9646/*****************************************************************************
9647 * IEnumSTATSTG interface
9648 */
9649#ifndef __IEnumSTATSTG_INTERFACE_DEFINED__
9650#define __IEnumSTATSTG_INTERFACE_DEFINED__
9651
9652typedef IEnumSTATSTG *LPENUMSTATSTG;
9653DEFINE_GUID(IID_IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9654#if defined(__cplusplus) && !defined(CINTERFACE)
9655MIDL_INTERFACE("0000000d-0000-0000-c000-000000000046")
9656IEnumSTATSTG : public IUnknown
9657{
9658    virtual HRESULT STDMETHODCALLTYPE Next(
9659        ULONG celt,
9660        STATSTG *rgelt,
9661        ULONG *pceltFetched) = 0;
9662
9663    virtual HRESULT STDMETHODCALLTYPE Skip(
9664        ULONG celt) = 0;
9665
9666    virtual HRESULT STDMETHODCALLTYPE Reset(
9667        ) = 0;
9668
9669    virtual HRESULT STDMETHODCALLTYPE Clone(
9670        IEnumSTATSTG **ppenum) = 0;
9671
9672};
9673#ifdef __CRT_UUID_DECL
9674__CRT_UUID_DECL(IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
9675#endif
9676#else
9677typedef struct IEnumSTATSTGVtbl {
9678    BEGIN_INTERFACE
9679
9680    /*** IUnknown methods ***/
9681    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9682        IEnumSTATSTG* This,
9683        REFIID riid,
9684        void **ppvObject);
9685
9686    ULONG (STDMETHODCALLTYPE *AddRef)(
9687        IEnumSTATSTG* This);
9688
9689    ULONG (STDMETHODCALLTYPE *Release)(
9690        IEnumSTATSTG* This);
9691
9692    /*** IEnumSTATSTG methods ***/
9693    HRESULT (STDMETHODCALLTYPE *Next)(
9694        IEnumSTATSTG* This,
9695        ULONG celt,
9696        STATSTG *rgelt,
9697        ULONG *pceltFetched);
9698
9699    HRESULT (STDMETHODCALLTYPE *Skip)(
9700        IEnumSTATSTG* This,
9701        ULONG celt);
9702
9703    HRESULT (STDMETHODCALLTYPE *Reset)(
9704        IEnumSTATSTG* This);
9705
9706    HRESULT (STDMETHODCALLTYPE *Clone)(
9707        IEnumSTATSTG* This,
9708        IEnumSTATSTG **ppenum);
9709
9710    END_INTERFACE
9711} IEnumSTATSTGVtbl;
9712interface IEnumSTATSTG {
9713    CONST_VTBL IEnumSTATSTGVtbl* lpVtbl;
9714};
9715
9716#ifdef COBJMACROS
9717#ifndef WIDL_C_INLINE_WRAPPERS
9718/*** IUnknown methods ***/
9719#define IEnumSTATSTG_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9720#define IEnumSTATSTG_AddRef(This) (This)->lpVtbl->AddRef(This)
9721#define IEnumSTATSTG_Release(This) (This)->lpVtbl->Release(This)
9722/*** IEnumSTATSTG methods ***/
9723#define IEnumSTATSTG_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
9724#define IEnumSTATSTG_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
9725#define IEnumSTATSTG_Reset(This) (This)->lpVtbl->Reset(This)
9726#define IEnumSTATSTG_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
9727#else
9728/*** IUnknown methods ***/
9729static FORCEINLINE HRESULT IEnumSTATSTG_QueryInterface(IEnumSTATSTG* This,REFIID riid,void **ppvObject) {
9730    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9731}
9732static FORCEINLINE ULONG IEnumSTATSTG_AddRef(IEnumSTATSTG* This) {
9733    return This->lpVtbl->AddRef(This);
9734}
9735static FORCEINLINE ULONG IEnumSTATSTG_Release(IEnumSTATSTG* This) {
9736    return This->lpVtbl->Release(This);
9737}
9738/*** IEnumSTATSTG methods ***/
9739static FORCEINLINE HRESULT IEnumSTATSTG_Next(IEnumSTATSTG* This,ULONG celt,STATSTG *rgelt,ULONG *pceltFetched) {
9740    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
9741}
9742static FORCEINLINE HRESULT IEnumSTATSTG_Skip(IEnumSTATSTG* This,ULONG celt) {
9743    return This->lpVtbl->Skip(This,celt);
9744}
9745static FORCEINLINE HRESULT IEnumSTATSTG_Reset(IEnumSTATSTG* This) {
9746    return This->lpVtbl->Reset(This);
9747}
9748static FORCEINLINE HRESULT IEnumSTATSTG_Clone(IEnumSTATSTG* This,IEnumSTATSTG **ppenum) {
9749    return This->lpVtbl->Clone(This,ppenum);
9750}
9751#endif
9752#endif
9753
9754#endif
9755
9756HRESULT STDMETHODCALLTYPE IEnumSTATSTG_RemoteNext_Proxy(
9757    IEnumSTATSTG* This,
9758    ULONG celt,
9759    STATSTG *rgelt,
9760    ULONG *pceltFetched);
9761void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
9762    IRpcStubBuffer* This,
9763    IRpcChannelBuffer* pRpcChannelBuffer,
9764    PRPC_MESSAGE pRpcMessage,
9765    DWORD* pdwStubPhase);
9766HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Skip_Proxy(
9767    IEnumSTATSTG* This,
9768    ULONG celt);
9769void __RPC_STUB IEnumSTATSTG_Skip_Stub(
9770    IRpcStubBuffer* This,
9771    IRpcChannelBuffer* pRpcChannelBuffer,
9772    PRPC_MESSAGE pRpcMessage,
9773    DWORD* pdwStubPhase);
9774HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Reset_Proxy(
9775    IEnumSTATSTG* This);
9776void __RPC_STUB IEnumSTATSTG_Reset_Stub(
9777    IRpcStubBuffer* This,
9778    IRpcChannelBuffer* pRpcChannelBuffer,
9779    PRPC_MESSAGE pRpcMessage,
9780    DWORD* pdwStubPhase);
9781HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Clone_Proxy(
9782    IEnumSTATSTG* This,
9783    IEnumSTATSTG **ppenum);
9784void __RPC_STUB IEnumSTATSTG_Clone_Stub(
9785    IRpcStubBuffer* This,
9786    IRpcChannelBuffer* pRpcChannelBuffer,
9787    PRPC_MESSAGE pRpcMessage,
9788    DWORD* pdwStubPhase);
9789HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
9790    IEnumSTATSTG* This,
9791    ULONG celt,
9792    STATSTG *rgelt,
9793    ULONG *pceltFetched);
9794HRESULT __RPC_STUB IEnumSTATSTG_Next_Stub(
9795    IEnumSTATSTG* This,
9796    ULONG celt,
9797    STATSTG *rgelt,
9798    ULONG *pceltFetched);
9799
9800#endif  /* __IEnumSTATSTG_INTERFACE_DEFINED__ */
9801
9802/*****************************************************************************
9803 * IStorage interface
9804 */
9805#ifndef __IStorage_INTERFACE_DEFINED__
9806#define __IStorage_INTERFACE_DEFINED__
9807
9808typedef IStorage *LPSTORAGE;
9809typedef struct tagRemSNB {
9810    ULONG ulCntStr;
9811    ULONG ulCntChar;
9812    OLECHAR rgString[1];
9813} RemSNB;
9814typedef RemSNB *wireSNB;
9815typedef LPOLESTR *SNB;
9816DEFINE_GUID(IID_IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9817#if defined(__cplusplus) && !defined(CINTERFACE)
9818MIDL_INTERFACE("0000000b-0000-0000-c000-000000000046")
9819IStorage : public IUnknown
9820{
9821    virtual HRESULT STDMETHODCALLTYPE CreateStream(
9822        const OLECHAR *pwcsName,
9823        DWORD grfMode,
9824        DWORD reserved1,
9825        DWORD reserved2,
9826        IStream **ppstm) = 0;
9827
9828    virtual HRESULT STDMETHODCALLTYPE OpenStream(
9829        const OLECHAR *pwcsName,
9830        void *reserved1,
9831        DWORD grfMode,
9832        DWORD reserved2,
9833        IStream **ppstm) = 0;
9834
9835    virtual HRESULT STDMETHODCALLTYPE CreateStorage(
9836        const OLECHAR *pwcsName,
9837        DWORD grfMode,
9838        DWORD reserved1,
9839        DWORD reserved2,
9840        IStorage **ppstg) = 0;
9841
9842    virtual HRESULT STDMETHODCALLTYPE OpenStorage(
9843        const OLECHAR *pwcsName,
9844        IStorage *pstgPriority,
9845        DWORD grfMode,
9846        SNB snbExclude,
9847        DWORD reserved,
9848        IStorage **ppstg) = 0;
9849
9850    virtual HRESULT STDMETHODCALLTYPE CopyTo(
9851        DWORD ciidExclude,
9852        const IID *rgiidExclude,
9853        SNB snbExclude,
9854        IStorage *pstgDest) = 0;
9855
9856    virtual HRESULT STDMETHODCALLTYPE MoveElementTo(
9857        const OLECHAR *pwcsName,
9858        IStorage *pstgDest,
9859        const OLECHAR *pwcsNewName,
9860        DWORD grfFlags) = 0;
9861
9862    virtual HRESULT STDMETHODCALLTYPE Commit(
9863        DWORD grfCommitFlags) = 0;
9864
9865    virtual HRESULT STDMETHODCALLTYPE Revert(
9866        ) = 0;
9867
9868    virtual HRESULT STDMETHODCALLTYPE EnumElements(
9869        DWORD reserved1,
9870        void *reserved2,
9871        DWORD reserved3,
9872        IEnumSTATSTG **ppenum) = 0;
9873
9874    virtual HRESULT STDMETHODCALLTYPE DestroyElement(
9875        const OLECHAR *pwcsName) = 0;
9876
9877    virtual HRESULT STDMETHODCALLTYPE RenameElement(
9878        const OLECHAR *pwcsOldName,
9879        const OLECHAR *pwcsNewName) = 0;
9880
9881    virtual HRESULT STDMETHODCALLTYPE SetElementTimes(
9882        const OLECHAR *pwcsName,
9883        const FILETIME *pctime,
9884        const FILETIME *patime,
9885        const FILETIME *pmtime) = 0;
9886
9887    virtual HRESULT STDMETHODCALLTYPE SetClass(
9888        REFCLSID clsid) = 0;
9889
9890    virtual HRESULT STDMETHODCALLTYPE SetStateBits(
9891        DWORD grfStateBits,
9892        DWORD grfMask) = 0;
9893
9894    virtual HRESULT STDMETHODCALLTYPE Stat(
9895        STATSTG *pstatstg,
9896        DWORD grfStatFlag) = 0;
9897
9898};
9899#ifdef __CRT_UUID_DECL
9900__CRT_UUID_DECL(IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
9901#endif
9902#else
9903typedef struct IStorageVtbl {
9904    BEGIN_INTERFACE
9905
9906    /*** IUnknown methods ***/
9907    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9908        IStorage* This,
9909        REFIID riid,
9910        void **ppvObject);
9911
9912    ULONG (STDMETHODCALLTYPE *AddRef)(
9913        IStorage* This);
9914
9915    ULONG (STDMETHODCALLTYPE *Release)(
9916        IStorage* This);
9917
9918    /*** IStorage methods ***/
9919    HRESULT (STDMETHODCALLTYPE *CreateStream)(
9920        IStorage* This,
9921        const OLECHAR *pwcsName,
9922        DWORD grfMode,
9923        DWORD reserved1,
9924        DWORD reserved2,
9925        IStream **ppstm);
9926
9927    HRESULT (STDMETHODCALLTYPE *OpenStream)(
9928        IStorage* This,
9929        const OLECHAR *pwcsName,
9930        void *reserved1,
9931        DWORD grfMode,
9932        DWORD reserved2,
9933        IStream **ppstm);
9934
9935    HRESULT (STDMETHODCALLTYPE *CreateStorage)(
9936        IStorage* This,
9937        const OLECHAR *pwcsName,
9938        DWORD grfMode,
9939        DWORD reserved1,
9940        DWORD reserved2,
9941        IStorage **ppstg);
9942
9943    HRESULT (STDMETHODCALLTYPE *OpenStorage)(
9944        IStorage* This,
9945        const OLECHAR *pwcsName,
9946        IStorage *pstgPriority,
9947        DWORD grfMode,
9948        SNB snbExclude,
9949        DWORD reserved,
9950        IStorage **ppstg);
9951
9952    HRESULT (STDMETHODCALLTYPE *CopyTo)(
9953        IStorage* This,
9954        DWORD ciidExclude,
9955        const IID *rgiidExclude,
9956        SNB snbExclude,
9957        IStorage *pstgDest);
9958
9959    HRESULT (STDMETHODCALLTYPE *MoveElementTo)(
9960        IStorage* This,
9961        const OLECHAR *pwcsName,
9962        IStorage *pstgDest,
9963        const OLECHAR *pwcsNewName,
9964        DWORD grfFlags);
9965
9966    HRESULT (STDMETHODCALLTYPE *Commit)(
9967        IStorage* This,
9968        DWORD grfCommitFlags);
9969
9970    HRESULT (STDMETHODCALLTYPE *Revert)(
9971        IStorage* This);
9972
9973    HRESULT (STDMETHODCALLTYPE *EnumElements)(
9974        IStorage* This,
9975        DWORD reserved1,
9976        void *reserved2,
9977        DWORD reserved3,
9978        IEnumSTATSTG **ppenum);
9979
9980    HRESULT (STDMETHODCALLTYPE *DestroyElement)(
9981        IStorage* This,
9982        const OLECHAR *pwcsName);
9983
9984    HRESULT (STDMETHODCALLTYPE *RenameElement)(
9985        IStorage* This,
9986        const OLECHAR *pwcsOldName,
9987        const OLECHAR *pwcsNewName);
9988
9989    HRESULT (STDMETHODCALLTYPE *SetElementTimes)(
9990        IStorage* This,
9991        const OLECHAR *pwcsName,
9992        const FILETIME *pctime,
9993        const FILETIME *patime,
9994        const FILETIME *pmtime);
9995
9996    HRESULT (STDMETHODCALLTYPE *SetClass)(
9997        IStorage* This,
9998        REFCLSID clsid);
9999
10000    HRESULT (STDMETHODCALLTYPE *SetStateBits)(
10001        IStorage* This,
10002        DWORD grfStateBits,
10003        DWORD grfMask);
10004
10005    HRESULT (STDMETHODCALLTYPE *Stat)(
10006        IStorage* This,
10007        STATSTG *pstatstg,
10008        DWORD grfStatFlag);
10009
10010    END_INTERFACE
10011} IStorageVtbl;
10012interface IStorage {
10013    CONST_VTBL IStorageVtbl* lpVtbl;
10014};
10015
10016#ifdef COBJMACROS
10017#ifndef WIDL_C_INLINE_WRAPPERS
10018/*** IUnknown methods ***/
10019#define IStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10020#define IStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
10021#define IStorage_Release(This) (This)->lpVtbl->Release(This)
10022/*** IStorage methods ***/
10023#define IStorage_CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm) (This)->lpVtbl->CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm)
10024#define IStorage_OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm) (This)->lpVtbl->OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm)
10025#define IStorage_CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg) (This)->lpVtbl->CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg)
10026#define IStorage_OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg) (This)->lpVtbl->OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg)
10027#define IStorage_CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest) (This)->lpVtbl->CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest)
10028#define IStorage_MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags) (This)->lpVtbl->MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags)
10029#define IStorage_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
10030#define IStorage_Revert(This) (This)->lpVtbl->Revert(This)
10031#define IStorage_EnumElements(This,reserved1,reserved2,reserved3,ppenum) (This)->lpVtbl->EnumElements(This,reserved1,reserved2,reserved3,ppenum)
10032#define IStorage_DestroyElement(This,pwcsName) (This)->lpVtbl->DestroyElement(This,pwcsName)
10033#define IStorage_RenameElement(This,pwcsOldName,pwcsNewName) (This)->lpVtbl->RenameElement(This,pwcsOldName,pwcsNewName)
10034#define IStorage_SetElementTimes(This,pwcsName,pctime,patime,pmtime) (This)->lpVtbl->SetElementTimes(This,pwcsName,pctime,patime,pmtime)
10035#define IStorage_SetClass(This,clsid) (This)->lpVtbl->SetClass(This,clsid)
10036#define IStorage_SetStateBits(This,grfStateBits,grfMask) (This)->lpVtbl->SetStateBits(This,grfStateBits,grfMask)
10037#define IStorage_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
10038#else
10039/*** IUnknown methods ***/
10040static FORCEINLINE HRESULT IStorage_QueryInterface(IStorage* This,REFIID riid,void **ppvObject) {
10041    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10042}
10043static FORCEINLINE ULONG IStorage_AddRef(IStorage* This) {
10044    return This->lpVtbl->AddRef(This);
10045}
10046static FORCEINLINE ULONG IStorage_Release(IStorage* This) {
10047    return This->lpVtbl->Release(This);
10048}
10049/*** IStorage methods ***/
10050static FORCEINLINE HRESULT IStorage_CreateStream(IStorage* This,const OLECHAR *pwcsName,DWORD grfMode,DWORD reserved1,DWORD reserved2,IStream **ppstm) {
10051    return This->lpVtbl->CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm);
10052}
10053static FORCEINLINE HRESULT IStorage_OpenStream(IStorage* This,const OLECHAR *pwcsName,void *reserved1,DWORD grfMode,DWORD reserved2,IStream **ppstm) {
10054    return This->lpVtbl->OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm);
10055}
10056static FORCEINLINE HRESULT IStorage_CreateStorage(IStorage* This,const OLECHAR *pwcsName,DWORD grfMode,DWORD reserved1,DWORD reserved2,IStorage **ppstg) {
10057    return This->lpVtbl->CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg);
10058}
10059static FORCEINLINE HRESULT IStorage_OpenStorage(IStorage* This,const OLECHAR *pwcsName,IStorage *pstgPriority,DWORD grfMode,SNB snbExclude,DWORD reserved,IStorage **ppstg) {
10060    return This->lpVtbl->OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg);
10061}
10062static FORCEINLINE HRESULT IStorage_CopyTo(IStorage* This,DWORD ciidExclude,const IID *rgiidExclude,SNB snbExclude,IStorage *pstgDest) {
10063    return This->lpVtbl->CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest);
10064}
10065static FORCEINLINE HRESULT IStorage_MoveElementTo(IStorage* This,const OLECHAR *pwcsName,IStorage *pstgDest,const OLECHAR *pwcsNewName,DWORD grfFlags) {
10066    return This->lpVtbl->MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags);
10067}
10068static FORCEINLINE HRESULT IStorage_Commit(IStorage* This,DWORD grfCommitFlags) {
10069    return This->lpVtbl->Commit(This,grfCommitFlags);
10070}
10071static FORCEINLINE HRESULT IStorage_Revert(IStorage* This) {
10072    return This->lpVtbl->Revert(This);
10073}
10074static FORCEINLINE HRESULT IStorage_EnumElements(IStorage* This,DWORD reserved1,void *reserved2,DWORD reserved3,IEnumSTATSTG **ppenum) {
10075    return This->lpVtbl->EnumElements(This,reserved1,reserved2,reserved3,ppenum);
10076}
10077static FORCEINLINE HRESULT IStorage_DestroyElement(IStorage* This,const OLECHAR *pwcsName) {
10078    return This->lpVtbl->DestroyElement(This,pwcsName);
10079}
10080static FORCEINLINE HRESULT IStorage_RenameElement(IStorage* This,const OLECHAR *pwcsOldName,const OLECHAR *pwcsNewName) {
10081    return This->lpVtbl->RenameElement(This,pwcsOldName,pwcsNewName);
10082}
10083static FORCEINLINE HRESULT IStorage_SetElementTimes(IStorage* This,const OLECHAR *pwcsName,const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime) {
10084    return This->lpVtbl->SetElementTimes(This,pwcsName,pctime,patime,pmtime);
10085}
10086static FORCEINLINE HRESULT IStorage_SetClass(IStorage* This,REFCLSID clsid) {
10087    return This->lpVtbl->SetClass(This,clsid);
10088}
10089static FORCEINLINE HRESULT IStorage_SetStateBits(IStorage* This,DWORD grfStateBits,DWORD grfMask) {
10090    return This->lpVtbl->SetStateBits(This,grfStateBits,grfMask);
10091}
10092static FORCEINLINE HRESULT IStorage_Stat(IStorage* This,STATSTG *pstatstg,DWORD grfStatFlag) {
10093    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
10094}
10095#endif
10096#endif
10097
10098#endif
10099
10100HRESULT STDMETHODCALLTYPE IStorage_CreateStream_Proxy(
10101    IStorage* This,
10102    const OLECHAR *pwcsName,
10103    DWORD grfMode,
10104    DWORD reserved1,
10105    DWORD reserved2,
10106    IStream **ppstm);
10107void __RPC_STUB IStorage_CreateStream_Stub(
10108    IRpcStubBuffer* This,
10109    IRpcChannelBuffer* pRpcChannelBuffer,
10110    PRPC_MESSAGE pRpcMessage,
10111    DWORD* pdwStubPhase);
10112HRESULT STDMETHODCALLTYPE IStorage_RemoteOpenStream_Proxy(
10113    IStorage* This,
10114    const OLECHAR *pwcsName,
10115    ULONG cbReserved1,
10116    byte *reserved1,
10117    DWORD grfMode,
10118    DWORD reserved2,
10119    IStream **ppstm);
10120void __RPC_STUB IStorage_RemoteOpenStream_Stub(
10121    IRpcStubBuffer* This,
10122    IRpcChannelBuffer* pRpcChannelBuffer,
10123    PRPC_MESSAGE pRpcMessage,
10124    DWORD* pdwStubPhase);
10125HRESULT STDMETHODCALLTYPE IStorage_CreateStorage_Proxy(
10126    IStorage* This,
10127    const OLECHAR *pwcsName,
10128    DWORD grfMode,
10129    DWORD reserved1,
10130    DWORD reserved2,
10131    IStorage **ppstg);
10132void __RPC_STUB IStorage_CreateStorage_Stub(
10133    IRpcStubBuffer* This,
10134    IRpcChannelBuffer* pRpcChannelBuffer,
10135    PRPC_MESSAGE pRpcMessage,
10136    DWORD* pdwStubPhase);
10137HRESULT STDMETHODCALLTYPE IStorage_OpenStorage_Proxy(
10138    IStorage* This,
10139    const OLECHAR *pwcsName,
10140    IStorage *pstgPriority,
10141    DWORD grfMode,
10142    SNB snbExclude,
10143    DWORD reserved,
10144    IStorage **ppstg);
10145void __RPC_STUB IStorage_OpenStorage_Stub(
10146    IRpcStubBuffer* This,
10147    IRpcChannelBuffer* pRpcChannelBuffer,
10148    PRPC_MESSAGE pRpcMessage,
10149    DWORD* pdwStubPhase);
10150HRESULT STDMETHODCALLTYPE IStorage_RemoteCopyTo_Proxy(
10151    IStorage* This,
10152    DWORD ciidExclude,
10153    const IID *rgiidExclude,
10154    SNB snbExclude,
10155    IStorage *pstgDest);
10156void __RPC_STUB IStorage_RemoteCopyTo_Stub(
10157    IRpcStubBuffer* This,
10158    IRpcChannelBuffer* pRpcChannelBuffer,
10159    PRPC_MESSAGE pRpcMessage,
10160    DWORD* pdwStubPhase);
10161HRESULT STDMETHODCALLTYPE IStorage_MoveElementTo_Proxy(
10162    IStorage* This,
10163    const OLECHAR *pwcsName,
10164    IStorage *pstgDest,
10165    const OLECHAR *pwcsNewName,
10166    DWORD grfFlags);
10167void __RPC_STUB IStorage_MoveElementTo_Stub(
10168    IRpcStubBuffer* This,
10169    IRpcChannelBuffer* pRpcChannelBuffer,
10170    PRPC_MESSAGE pRpcMessage,
10171    DWORD* pdwStubPhase);
10172HRESULT STDMETHODCALLTYPE IStorage_Commit_Proxy(
10173    IStorage* This,
10174    DWORD grfCommitFlags);
10175void __RPC_STUB IStorage_Commit_Stub(
10176    IRpcStubBuffer* This,
10177    IRpcChannelBuffer* pRpcChannelBuffer,
10178    PRPC_MESSAGE pRpcMessage,
10179    DWORD* pdwStubPhase);
10180HRESULT STDMETHODCALLTYPE IStorage_Revert_Proxy(
10181    IStorage* This);
10182void __RPC_STUB IStorage_Revert_Stub(
10183    IRpcStubBuffer* This,
10184    IRpcChannelBuffer* pRpcChannelBuffer,
10185    PRPC_MESSAGE pRpcMessage,
10186    DWORD* pdwStubPhase);
10187HRESULT STDMETHODCALLTYPE IStorage_RemoteEnumElements_Proxy(
10188    IStorage* This,
10189    DWORD reserved1,
10190    ULONG cbReserved2,
10191    byte *reserved2,
10192    DWORD reserved3,
10193    IEnumSTATSTG **ppenum);
10194void __RPC_STUB IStorage_RemoteEnumElements_Stub(
10195    IRpcStubBuffer* This,
10196    IRpcChannelBuffer* pRpcChannelBuffer,
10197    PRPC_MESSAGE pRpcMessage,
10198    DWORD* pdwStubPhase);
10199HRESULT STDMETHODCALLTYPE IStorage_DestroyElement_Proxy(
10200    IStorage* This,
10201    const OLECHAR *pwcsName);
10202void __RPC_STUB IStorage_DestroyElement_Stub(
10203    IRpcStubBuffer* This,
10204    IRpcChannelBuffer* pRpcChannelBuffer,
10205    PRPC_MESSAGE pRpcMessage,
10206    DWORD* pdwStubPhase);
10207HRESULT STDMETHODCALLTYPE IStorage_RenameElement_Proxy(
10208    IStorage* This,
10209    const OLECHAR *pwcsOldName,
10210    const OLECHAR *pwcsNewName);
10211void __RPC_STUB IStorage_RenameElement_Stub(
10212    IRpcStubBuffer* This,
10213    IRpcChannelBuffer* pRpcChannelBuffer,
10214    PRPC_MESSAGE pRpcMessage,
10215    DWORD* pdwStubPhase);
10216HRESULT STDMETHODCALLTYPE IStorage_SetElementTimes_Proxy(
10217    IStorage* This,
10218    const OLECHAR *pwcsName,
10219    const FILETIME *pctime,
10220    const FILETIME *patime,
10221    const FILETIME *pmtime);
10222void __RPC_STUB IStorage_SetElementTimes_Stub(
10223    IRpcStubBuffer* This,
10224    IRpcChannelBuffer* pRpcChannelBuffer,
10225    PRPC_MESSAGE pRpcMessage,
10226    DWORD* pdwStubPhase);
10227HRESULT STDMETHODCALLTYPE IStorage_SetClass_Proxy(
10228    IStorage* This,
10229    REFCLSID clsid);
10230void __RPC_STUB IStorage_SetClass_Stub(
10231    IRpcStubBuffer* This,
10232    IRpcChannelBuffer* pRpcChannelBuffer,
10233    PRPC_MESSAGE pRpcMessage,
10234    DWORD* pdwStubPhase);
10235HRESULT STDMETHODCALLTYPE IStorage_SetStateBits_Proxy(
10236    IStorage* This,
10237    DWORD grfStateBits,
10238    DWORD grfMask);
10239void __RPC_STUB IStorage_SetStateBits_Stub(
10240    IRpcStubBuffer* This,
10241    IRpcChannelBuffer* pRpcChannelBuffer,
10242    PRPC_MESSAGE pRpcMessage,
10243    DWORD* pdwStubPhase);
10244HRESULT STDMETHODCALLTYPE IStorage_Stat_Proxy(
10245    IStorage* This,
10246    STATSTG *pstatstg,
10247    DWORD grfStatFlag);
10248void __RPC_STUB IStorage_Stat_Stub(
10249    IRpcStubBuffer* This,
10250    IRpcChannelBuffer* pRpcChannelBuffer,
10251    PRPC_MESSAGE pRpcMessage,
10252    DWORD* pdwStubPhase);
10253HRESULT CALLBACK IStorage_OpenStream_Proxy(
10254    IStorage* This,
10255    const OLECHAR *pwcsName,
10256    void *reserved1,
10257    DWORD grfMode,
10258    DWORD reserved2,
10259    IStream **ppstm);
10260HRESULT __RPC_STUB IStorage_OpenStream_Stub(
10261    IStorage* This,
10262    const OLECHAR *pwcsName,
10263    ULONG cbReserved1,
10264    byte *reserved1,
10265    DWORD grfMode,
10266    DWORD reserved2,
10267    IStream **ppstm);
10268HRESULT CALLBACK IStorage_CopyTo_Proxy(
10269    IStorage* This,
10270    DWORD ciidExclude,
10271    const IID *rgiidExclude,
10272    SNB snbExclude,
10273    IStorage *pstgDest);
10274HRESULT __RPC_STUB IStorage_CopyTo_Stub(
10275    IStorage* This,
10276    DWORD ciidExclude,
10277    const IID *rgiidExclude,
10278    SNB snbExclude,
10279    IStorage *pstgDest);
10280HRESULT CALLBACK IStorage_EnumElements_Proxy(
10281    IStorage* This,
10282    DWORD reserved1,
10283    void *reserved2,
10284    DWORD reserved3,
10285    IEnumSTATSTG **ppenum);
10286HRESULT __RPC_STUB IStorage_EnumElements_Stub(
10287    IStorage* This,
10288    DWORD reserved1,
10289    ULONG cbReserved2,
10290    byte *reserved2,
10291    DWORD reserved3,
10292    IEnumSTATSTG **ppenum);
10293
10294#endif  /* __IStorage_INTERFACE_DEFINED__ */
10295
10296#endif
10297#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
10298/*****************************************************************************
10299 * IPersistFile interface
10300 */
10301#ifndef __IPersistFile_INTERFACE_DEFINED__
10302#define __IPersistFile_INTERFACE_DEFINED__
10303
10304typedef IPersistFile *LPPERSISTFILE;
10305DEFINE_GUID(IID_IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10306#if defined(__cplusplus) && !defined(CINTERFACE)
10307MIDL_INTERFACE("0000010b-0000-0000-c000-000000000046")
10308IPersistFile : public IPersist
10309{
10310    virtual HRESULT STDMETHODCALLTYPE IsDirty(
10311        ) = 0;
10312
10313    virtual HRESULT STDMETHODCALLTYPE Load(
10314        LPCOLESTR pszFileName,
10315        DWORD dwMode) = 0;
10316
10317    virtual HRESULT STDMETHODCALLTYPE Save(
10318        LPCOLESTR pszFileName,
10319        WINBOOL fRemember) = 0;
10320
10321    virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
10322        LPCOLESTR pszFileName) = 0;
10323
10324    virtual HRESULT STDMETHODCALLTYPE GetCurFile(
10325        LPOLESTR *ppszFileName) = 0;
10326
10327};
10328#ifdef __CRT_UUID_DECL
10329__CRT_UUID_DECL(IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
10330#endif
10331#else
10332typedef struct IPersistFileVtbl {
10333    BEGIN_INTERFACE
10334
10335    /*** IUnknown methods ***/
10336    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10337        IPersistFile* This,
10338        REFIID riid,
10339        void **ppvObject);
10340
10341    ULONG (STDMETHODCALLTYPE *AddRef)(
10342        IPersistFile* This);
10343
10344    ULONG (STDMETHODCALLTYPE *Release)(
10345        IPersistFile* This);
10346
10347    /*** IPersist methods ***/
10348    HRESULT (STDMETHODCALLTYPE *GetClassID)(
10349        IPersistFile* This,
10350        CLSID *pClassID);
10351
10352    /*** IPersistFile methods ***/
10353    HRESULT (STDMETHODCALLTYPE *IsDirty)(
10354        IPersistFile* This);
10355
10356    HRESULT (STDMETHODCALLTYPE *Load)(
10357        IPersistFile* This,
10358        LPCOLESTR pszFileName,
10359        DWORD dwMode);
10360
10361    HRESULT (STDMETHODCALLTYPE *Save)(
10362        IPersistFile* This,
10363        LPCOLESTR pszFileName,
10364        WINBOOL fRemember);
10365
10366    HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
10367        IPersistFile* This,
10368        LPCOLESTR pszFileName);
10369
10370    HRESULT (STDMETHODCALLTYPE *GetCurFile)(
10371        IPersistFile* This,
10372        LPOLESTR *ppszFileName);
10373
10374    END_INTERFACE
10375} IPersistFileVtbl;
10376interface IPersistFile {
10377    CONST_VTBL IPersistFileVtbl* lpVtbl;
10378};
10379
10380#ifdef COBJMACROS
10381#ifndef WIDL_C_INLINE_WRAPPERS
10382/*** IUnknown methods ***/
10383#define IPersistFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10384#define IPersistFile_AddRef(This) (This)->lpVtbl->AddRef(This)
10385#define IPersistFile_Release(This) (This)->lpVtbl->Release(This)
10386/*** IPersist methods ***/
10387#define IPersistFile_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
10388/*** IPersistFile methods ***/
10389#define IPersistFile_IsDirty(This) (This)->lpVtbl->IsDirty(This)
10390#define IPersistFile_Load(This,pszFileName,dwMode) (This)->lpVtbl->Load(This,pszFileName,dwMode)
10391#define IPersistFile_Save(This,pszFileName,fRemember) (This)->lpVtbl->Save(This,pszFileName,fRemember)
10392#define IPersistFile_SaveCompleted(This,pszFileName) (This)->lpVtbl->SaveCompleted(This,pszFileName)
10393#define IPersistFile_GetCurFile(This,ppszFileName) (This)->lpVtbl->GetCurFile(This,ppszFileName)
10394#else
10395/*** IUnknown methods ***/
10396static FORCEINLINE HRESULT IPersistFile_QueryInterface(IPersistFile* This,REFIID riid,void **ppvObject) {
10397    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10398}
10399static FORCEINLINE ULONG IPersistFile_AddRef(IPersistFile* This) {
10400    return This->lpVtbl->AddRef(This);
10401}
10402static FORCEINLINE ULONG IPersistFile_Release(IPersistFile* This) {
10403    return This->lpVtbl->Release(This);
10404}
10405/*** IPersist methods ***/
10406static FORCEINLINE HRESULT IPersistFile_GetClassID(IPersistFile* This,CLSID *pClassID) {
10407    return This->lpVtbl->GetClassID(This,pClassID);
10408}
10409/*** IPersistFile methods ***/
10410static FORCEINLINE HRESULT IPersistFile_IsDirty(IPersistFile* This) {
10411    return This->lpVtbl->IsDirty(This);
10412}
10413static FORCEINLINE HRESULT IPersistFile_Load(IPersistFile* This,LPCOLESTR pszFileName,DWORD dwMode) {
10414    return This->lpVtbl->Load(This,pszFileName,dwMode);
10415}
10416static FORCEINLINE HRESULT IPersistFile_Save(IPersistFile* This,LPCOLESTR pszFileName,WINBOOL fRemember) {
10417    return This->lpVtbl->Save(This,pszFileName,fRemember);
10418}
10419static FORCEINLINE HRESULT IPersistFile_SaveCompleted(IPersistFile* This,LPCOLESTR pszFileName) {
10420    return This->lpVtbl->SaveCompleted(This,pszFileName);
10421}
10422static FORCEINLINE HRESULT IPersistFile_GetCurFile(IPersistFile* This,LPOLESTR *ppszFileName) {
10423    return This->lpVtbl->GetCurFile(This,ppszFileName);
10424}
10425#endif
10426#endif
10427
10428#endif
10429
10430HRESULT STDMETHODCALLTYPE IPersistFile_IsDirty_Proxy(
10431    IPersistFile* This);
10432void __RPC_STUB IPersistFile_IsDirty_Stub(
10433    IRpcStubBuffer* This,
10434    IRpcChannelBuffer* pRpcChannelBuffer,
10435    PRPC_MESSAGE pRpcMessage,
10436    DWORD* pdwStubPhase);
10437HRESULT STDMETHODCALLTYPE IPersistFile_Load_Proxy(
10438    IPersistFile* This,
10439    LPCOLESTR pszFileName,
10440    DWORD dwMode);
10441void __RPC_STUB IPersistFile_Load_Stub(
10442    IRpcStubBuffer* This,
10443    IRpcChannelBuffer* pRpcChannelBuffer,
10444    PRPC_MESSAGE pRpcMessage,
10445    DWORD* pdwStubPhase);
10446HRESULT STDMETHODCALLTYPE IPersistFile_Save_Proxy(
10447    IPersistFile* This,
10448    LPCOLESTR pszFileName,
10449    WINBOOL fRemember);
10450void __RPC_STUB IPersistFile_Save_Stub(
10451    IRpcStubBuffer* This,
10452    IRpcChannelBuffer* pRpcChannelBuffer,
10453    PRPC_MESSAGE pRpcMessage,
10454    DWORD* pdwStubPhase);
10455HRESULT STDMETHODCALLTYPE IPersistFile_SaveCompleted_Proxy(
10456    IPersistFile* This,
10457    LPCOLESTR pszFileName);
10458void __RPC_STUB IPersistFile_SaveCompleted_Stub(
10459    IRpcStubBuffer* This,
10460    IRpcChannelBuffer* pRpcChannelBuffer,
10461    PRPC_MESSAGE pRpcMessage,
10462    DWORD* pdwStubPhase);
10463HRESULT STDMETHODCALLTYPE IPersistFile_GetCurFile_Proxy(
10464    IPersistFile* This,
10465    LPOLESTR *ppszFileName);
10466void __RPC_STUB IPersistFile_GetCurFile_Stub(
10467    IRpcStubBuffer* This,
10468    IRpcChannelBuffer* pRpcChannelBuffer,
10469    PRPC_MESSAGE pRpcMessage,
10470    DWORD* pdwStubPhase);
10471
10472#endif  /* __IPersistFile_INTERFACE_DEFINED__ */
10473
10474/*****************************************************************************
10475 * IPersistStorage interface
10476 */
10477#ifndef __IPersistStorage_INTERFACE_DEFINED__
10478#define __IPersistStorage_INTERFACE_DEFINED__
10479
10480typedef IPersistStorage *LPPERSISTSTORAGE;
10481DEFINE_GUID(IID_IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10482#if defined(__cplusplus) && !defined(CINTERFACE)
10483MIDL_INTERFACE("0000010a-0000-0000-c000-000000000046")
10484IPersistStorage : public IPersist
10485{
10486    virtual HRESULT STDMETHODCALLTYPE IsDirty(
10487        ) = 0;
10488
10489    virtual HRESULT STDMETHODCALLTYPE InitNew(
10490        IStorage *pStg) = 0;
10491
10492    virtual HRESULT STDMETHODCALLTYPE Load(
10493        IStorage *pStg) = 0;
10494
10495    virtual HRESULT STDMETHODCALLTYPE Save(
10496        IStorage *pStgSave,
10497        WINBOOL fSameAsLoad) = 0;
10498
10499    virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
10500        IStorage *pStgNew) = 0;
10501
10502    virtual HRESULT STDMETHODCALLTYPE HandsOffStorage(
10503        ) = 0;
10504
10505};
10506#ifdef __CRT_UUID_DECL
10507__CRT_UUID_DECL(IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
10508#endif
10509#else
10510typedef struct IPersistStorageVtbl {
10511    BEGIN_INTERFACE
10512
10513    /*** IUnknown methods ***/
10514    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10515        IPersistStorage* This,
10516        REFIID riid,
10517        void **ppvObject);
10518
10519    ULONG (STDMETHODCALLTYPE *AddRef)(
10520        IPersistStorage* This);
10521
10522    ULONG (STDMETHODCALLTYPE *Release)(
10523        IPersistStorage* This);
10524
10525    /*** IPersist methods ***/
10526    HRESULT (STDMETHODCALLTYPE *GetClassID)(
10527        IPersistStorage* This,
10528        CLSID *pClassID);
10529
10530    /*** IPersistStorage methods ***/
10531    HRESULT (STDMETHODCALLTYPE *IsDirty)(
10532        IPersistStorage* This);
10533
10534    HRESULT (STDMETHODCALLTYPE *InitNew)(
10535        IPersistStorage* This,
10536        IStorage *pStg);
10537
10538    HRESULT (STDMETHODCALLTYPE *Load)(
10539        IPersistStorage* This,
10540        IStorage *pStg);
10541
10542    HRESULT (STDMETHODCALLTYPE *Save)(
10543        IPersistStorage* This,
10544        IStorage *pStgSave,
10545        WINBOOL fSameAsLoad);
10546
10547    HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
10548        IPersistStorage* This,
10549        IStorage *pStgNew);
10550
10551    HRESULT (STDMETHODCALLTYPE *HandsOffStorage)(
10552        IPersistStorage* This);
10553
10554    END_INTERFACE
10555} IPersistStorageVtbl;
10556interface IPersistStorage {
10557    CONST_VTBL IPersistStorageVtbl* lpVtbl;
10558};
10559
10560#ifdef COBJMACROS
10561#ifndef WIDL_C_INLINE_WRAPPERS
10562/*** IUnknown methods ***/
10563#define IPersistStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10564#define IPersistStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
10565#define IPersistStorage_Release(This) (This)->lpVtbl->Release(This)
10566/*** IPersist methods ***/
10567#define IPersistStorage_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
10568/*** IPersistStorage methods ***/
10569#define IPersistStorage_IsDirty(This) (This)->lpVtbl->IsDirty(This)
10570#define IPersistStorage_InitNew(This,pStg) (This)->lpVtbl->InitNew(This,pStg)
10571#define IPersistStorage_Load(This,pStg) (This)->lpVtbl->Load(This,pStg)
10572#define IPersistStorage_Save(This,pStgSave,fSameAsLoad) (This)->lpVtbl->Save(This,pStgSave,fSameAsLoad)
10573#define IPersistStorage_SaveCompleted(This,pStgNew) (This)->lpVtbl->SaveCompleted(This,pStgNew)
10574#define IPersistStorage_HandsOffStorage(This) (This)->lpVtbl->HandsOffStorage(This)
10575#else
10576/*** IUnknown methods ***/
10577static FORCEINLINE HRESULT IPersistStorage_QueryInterface(IPersistStorage* This,REFIID riid,void **ppvObject) {
10578    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10579}
10580static FORCEINLINE ULONG IPersistStorage_AddRef(IPersistStorage* This) {
10581    return This->lpVtbl->AddRef(This);
10582}
10583static FORCEINLINE ULONG IPersistStorage_Release(IPersistStorage* This) {
10584    return This->lpVtbl->Release(This);
10585}
10586/*** IPersist methods ***/
10587static FORCEINLINE HRESULT IPersistStorage_GetClassID(IPersistStorage* This,CLSID *pClassID) {
10588    return This->lpVtbl->GetClassID(This,pClassID);
10589}
10590/*** IPersistStorage methods ***/
10591static FORCEINLINE HRESULT IPersistStorage_IsDirty(IPersistStorage* This) {
10592    return This->lpVtbl->IsDirty(This);
10593}
10594static FORCEINLINE HRESULT IPersistStorage_InitNew(IPersistStorage* This,IStorage *pStg) {
10595    return This->lpVtbl->InitNew(This,pStg);
10596}
10597static FORCEINLINE HRESULT IPersistStorage_Load(IPersistStorage* This,IStorage *pStg) {
10598    return This->lpVtbl->Load(This,pStg);
10599}
10600static FORCEINLINE HRESULT IPersistStorage_Save(IPersistStorage* This,IStorage *pStgSave,WINBOOL fSameAsLoad) {
10601    return This->lpVtbl->Save(This,pStgSave,fSameAsLoad);
10602}
10603static FORCEINLINE HRESULT IPersistStorage_SaveCompleted(IPersistStorage* This,IStorage *pStgNew) {
10604    return This->lpVtbl->SaveCompleted(This,pStgNew);
10605}
10606static FORCEINLINE HRESULT IPersistStorage_HandsOffStorage(IPersistStorage* This) {
10607    return This->lpVtbl->HandsOffStorage(This);
10608}
10609#endif
10610#endif
10611
10612#endif
10613
10614HRESULT STDMETHODCALLTYPE IPersistStorage_IsDirty_Proxy(
10615    IPersistStorage* This);
10616void __RPC_STUB IPersistStorage_IsDirty_Stub(
10617    IRpcStubBuffer* This,
10618    IRpcChannelBuffer* pRpcChannelBuffer,
10619    PRPC_MESSAGE pRpcMessage,
10620    DWORD* pdwStubPhase);
10621HRESULT STDMETHODCALLTYPE IPersistStorage_InitNew_Proxy(
10622    IPersistStorage* This,
10623    IStorage *pStg);
10624void __RPC_STUB IPersistStorage_InitNew_Stub(
10625    IRpcStubBuffer* This,
10626    IRpcChannelBuffer* pRpcChannelBuffer,
10627    PRPC_MESSAGE pRpcMessage,
10628    DWORD* pdwStubPhase);
10629HRESULT STDMETHODCALLTYPE IPersistStorage_Load_Proxy(
10630    IPersistStorage* This,
10631    IStorage *pStg);
10632void __RPC_STUB IPersistStorage_Load_Stub(
10633    IRpcStubBuffer* This,
10634    IRpcChannelBuffer* pRpcChannelBuffer,
10635    PRPC_MESSAGE pRpcMessage,
10636    DWORD* pdwStubPhase);
10637HRESULT STDMETHODCALLTYPE IPersistStorage_Save_Proxy(
10638    IPersistStorage* This,
10639    IStorage *pStgSave,
10640    WINBOOL fSameAsLoad);
10641void __RPC_STUB IPersistStorage_Save_Stub(
10642    IRpcStubBuffer* This,
10643    IRpcChannelBuffer* pRpcChannelBuffer,
10644    PRPC_MESSAGE pRpcMessage,
10645    DWORD* pdwStubPhase);
10646HRESULT STDMETHODCALLTYPE IPersistStorage_SaveCompleted_Proxy(
10647    IPersistStorage* This,
10648    IStorage *pStgNew);
10649void __RPC_STUB IPersistStorage_SaveCompleted_Stub(
10650    IRpcStubBuffer* This,
10651    IRpcChannelBuffer* pRpcChannelBuffer,
10652    PRPC_MESSAGE pRpcMessage,
10653    DWORD* pdwStubPhase);
10654HRESULT STDMETHODCALLTYPE IPersistStorage_HandsOffStorage_Proxy(
10655    IPersistStorage* This);
10656void __RPC_STUB IPersistStorage_HandsOffStorage_Stub(
10657    IRpcStubBuffer* This,
10658    IRpcChannelBuffer* pRpcChannelBuffer,
10659    PRPC_MESSAGE pRpcMessage,
10660    DWORD* pdwStubPhase);
10661
10662#endif  /* __IPersistStorage_INTERFACE_DEFINED__ */
10663
10664#endif
10665#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
10666/*****************************************************************************
10667 * ILockBytes interface
10668 */
10669#ifndef __ILockBytes_INTERFACE_DEFINED__
10670#define __ILockBytes_INTERFACE_DEFINED__
10671
10672typedef ILockBytes *LPLOCKBYTES;
10673DEFINE_GUID(IID_ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10674#if defined(__cplusplus) && !defined(CINTERFACE)
10675MIDL_INTERFACE("0000000a-0000-0000-c000-000000000046")
10676ILockBytes : public IUnknown
10677{
10678    virtual HRESULT STDMETHODCALLTYPE ReadAt(
10679        ULARGE_INTEGER ulOffset,
10680        void *pv,
10681        ULONG cb,
10682        ULONG *pcbRead) = 0;
10683
10684    virtual HRESULT STDMETHODCALLTYPE WriteAt(
10685        ULARGE_INTEGER ulOffset,
10686        const void *pv,
10687        ULONG cb,
10688        ULONG *pcbWritten) = 0;
10689
10690    virtual HRESULT STDMETHODCALLTYPE Flush(
10691        ) = 0;
10692
10693    virtual HRESULT STDMETHODCALLTYPE SetSize(
10694        ULARGE_INTEGER cb) = 0;
10695
10696    virtual HRESULT STDMETHODCALLTYPE LockRegion(
10697        ULARGE_INTEGER libOffset,
10698        ULARGE_INTEGER cb,
10699        DWORD dwLockType) = 0;
10700
10701    virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
10702        ULARGE_INTEGER libOffset,
10703        ULARGE_INTEGER cb,
10704        DWORD dwLockType) = 0;
10705
10706    virtual HRESULT STDMETHODCALLTYPE Stat(
10707        STATSTG *pstatstg,
10708        DWORD grfStatFlag) = 0;
10709
10710};
10711#ifdef __CRT_UUID_DECL
10712__CRT_UUID_DECL(ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
10713#endif
10714#else
10715typedef struct ILockBytesVtbl {
10716    BEGIN_INTERFACE
10717
10718    /*** IUnknown methods ***/
10719    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10720        ILockBytes* This,
10721        REFIID riid,
10722        void **ppvObject);
10723
10724    ULONG (STDMETHODCALLTYPE *AddRef)(
10725        ILockBytes* This);
10726
10727    ULONG (STDMETHODCALLTYPE *Release)(
10728        ILockBytes* This);
10729
10730    /*** ILockBytes methods ***/
10731    HRESULT (STDMETHODCALLTYPE *ReadAt)(
10732        ILockBytes* This,
10733        ULARGE_INTEGER ulOffset,
10734        void *pv,
10735        ULONG cb,
10736        ULONG *pcbRead);
10737
10738    HRESULT (STDMETHODCALLTYPE *WriteAt)(
10739        ILockBytes* This,
10740        ULARGE_INTEGER ulOffset,
10741        const void *pv,
10742        ULONG cb,
10743        ULONG *pcbWritten);
10744
10745    HRESULT (STDMETHODCALLTYPE *Flush)(
10746        ILockBytes* This);
10747
10748    HRESULT (STDMETHODCALLTYPE *SetSize)(
10749        ILockBytes* This,
10750        ULARGE_INTEGER cb);
10751
10752    HRESULT (STDMETHODCALLTYPE *LockRegion)(
10753        ILockBytes* This,
10754        ULARGE_INTEGER libOffset,
10755        ULARGE_INTEGER cb,
10756        DWORD dwLockType);
10757
10758    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
10759        ILockBytes* This,
10760        ULARGE_INTEGER libOffset,
10761        ULARGE_INTEGER cb,
10762        DWORD dwLockType);
10763
10764    HRESULT (STDMETHODCALLTYPE *Stat)(
10765        ILockBytes* This,
10766        STATSTG *pstatstg,
10767        DWORD grfStatFlag);
10768
10769    END_INTERFACE
10770} ILockBytesVtbl;
10771interface ILockBytes {
10772    CONST_VTBL ILockBytesVtbl* lpVtbl;
10773};
10774
10775#ifdef COBJMACROS
10776#ifndef WIDL_C_INLINE_WRAPPERS
10777/*** IUnknown methods ***/
10778#define ILockBytes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10779#define ILockBytes_AddRef(This) (This)->lpVtbl->AddRef(This)
10780#define ILockBytes_Release(This) (This)->lpVtbl->Release(This)
10781/*** ILockBytes methods ***/
10782#define ILockBytes_ReadAt(This,ulOffset,pv,cb,pcbRead) (This)->lpVtbl->ReadAt(This,ulOffset,pv,cb,pcbRead)
10783#define ILockBytes_WriteAt(This,ulOffset,pv,cb,pcbWritten) (This)->lpVtbl->WriteAt(This,ulOffset,pv,cb,pcbWritten)
10784#define ILockBytes_Flush(This) (This)->lpVtbl->Flush(This)
10785#define ILockBytes_SetSize(This,cb) (This)->lpVtbl->SetSize(This,cb)
10786#define ILockBytes_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
10787#define ILockBytes_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
10788#define ILockBytes_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
10789#else
10790/*** IUnknown methods ***/
10791static FORCEINLINE HRESULT ILockBytes_QueryInterface(ILockBytes* This,REFIID riid,void **ppvObject) {
10792    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10793}
10794static FORCEINLINE ULONG ILockBytes_AddRef(ILockBytes* This) {
10795    return This->lpVtbl->AddRef(This);
10796}
10797static FORCEINLINE ULONG ILockBytes_Release(ILockBytes* This) {
10798    return This->lpVtbl->Release(This);
10799}
10800/*** ILockBytes methods ***/
10801static FORCEINLINE HRESULT ILockBytes_ReadAt(ILockBytes* This,ULARGE_INTEGER ulOffset,void *pv,ULONG cb,ULONG *pcbRead) {
10802    return This->lpVtbl->ReadAt(This,ulOffset,pv,cb,pcbRead);
10803}
10804static FORCEINLINE HRESULT ILockBytes_WriteAt(ILockBytes* This,ULARGE_INTEGER ulOffset,const void *pv,ULONG cb,ULONG *pcbWritten) {
10805    return This->lpVtbl->WriteAt(This,ulOffset,pv,cb,pcbWritten);
10806}
10807static FORCEINLINE HRESULT ILockBytes_Flush(ILockBytes* This) {
10808    return This->lpVtbl->Flush(This);
10809}
10810static FORCEINLINE HRESULT ILockBytes_SetSize(ILockBytes* This,ULARGE_INTEGER cb) {
10811    return This->lpVtbl->SetSize(This,cb);
10812}
10813static FORCEINLINE HRESULT ILockBytes_LockRegion(ILockBytes* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
10814    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
10815}
10816static FORCEINLINE HRESULT ILockBytes_UnlockRegion(ILockBytes* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
10817    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
10818}
10819static FORCEINLINE HRESULT ILockBytes_Stat(ILockBytes* This,STATSTG *pstatstg,DWORD grfStatFlag) {
10820    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
10821}
10822#endif
10823#endif
10824
10825#endif
10826
10827HRESULT __stdcall ILockBytes_RemoteReadAt_Proxy(
10828    ILockBytes* This,
10829    ULARGE_INTEGER ulOffset,
10830    byte *pv,
10831    ULONG cb,
10832    ULONG *pcbRead);
10833void __RPC_STUB ILockBytes_RemoteReadAt_Stub(
10834    IRpcStubBuffer* This,
10835    IRpcChannelBuffer* pRpcChannelBuffer,
10836    PRPC_MESSAGE pRpcMessage,
10837    DWORD* pdwStubPhase);
10838HRESULT STDMETHODCALLTYPE ILockBytes_RemoteWriteAt_Proxy(
10839    ILockBytes* This,
10840    ULARGE_INTEGER ulOffset,
10841    const byte *pv,
10842    ULONG cb,
10843    ULONG *pcbWritten);
10844void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
10845    IRpcStubBuffer* This,
10846    IRpcChannelBuffer* pRpcChannelBuffer,
10847    PRPC_MESSAGE pRpcMessage,
10848    DWORD* pdwStubPhase);
10849HRESULT STDMETHODCALLTYPE ILockBytes_Flush_Proxy(
10850    ILockBytes* This);
10851void __RPC_STUB ILockBytes_Flush_Stub(
10852    IRpcStubBuffer* This,
10853    IRpcChannelBuffer* pRpcChannelBuffer,
10854    PRPC_MESSAGE pRpcMessage,
10855    DWORD* pdwStubPhase);
10856HRESULT STDMETHODCALLTYPE ILockBytes_SetSize_Proxy(
10857    ILockBytes* This,
10858    ULARGE_INTEGER cb);
10859void __RPC_STUB ILockBytes_SetSize_Stub(
10860    IRpcStubBuffer* This,
10861    IRpcChannelBuffer* pRpcChannelBuffer,
10862    PRPC_MESSAGE pRpcMessage,
10863    DWORD* pdwStubPhase);
10864HRESULT STDMETHODCALLTYPE ILockBytes_LockRegion_Proxy(
10865    ILockBytes* This,
10866    ULARGE_INTEGER libOffset,
10867    ULARGE_INTEGER cb,
10868    DWORD dwLockType);
10869void __RPC_STUB ILockBytes_LockRegion_Stub(
10870    IRpcStubBuffer* This,
10871    IRpcChannelBuffer* pRpcChannelBuffer,
10872    PRPC_MESSAGE pRpcMessage,
10873    DWORD* pdwStubPhase);
10874HRESULT STDMETHODCALLTYPE ILockBytes_UnlockRegion_Proxy(
10875    ILockBytes* This,
10876    ULARGE_INTEGER libOffset,
10877    ULARGE_INTEGER cb,
10878    DWORD dwLockType);
10879void __RPC_STUB ILockBytes_UnlockRegion_Stub(
10880    IRpcStubBuffer* This,
10881    IRpcChannelBuffer* pRpcChannelBuffer,
10882    PRPC_MESSAGE pRpcMessage,
10883    DWORD* pdwStubPhase);
10884HRESULT STDMETHODCALLTYPE ILockBytes_Stat_Proxy(
10885    ILockBytes* This,
10886    STATSTG *pstatstg,
10887    DWORD grfStatFlag);
10888void __RPC_STUB ILockBytes_Stat_Stub(
10889    IRpcStubBuffer* This,
10890    IRpcChannelBuffer* pRpcChannelBuffer,
10891    PRPC_MESSAGE pRpcMessage,
10892    DWORD* pdwStubPhase);
10893HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
10894    ILockBytes* This,
10895    ULARGE_INTEGER ulOffset,
10896    void *pv,
10897    ULONG cb,
10898    ULONG *pcbRead);
10899HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
10900    ILockBytes* This,
10901    ULARGE_INTEGER ulOffset,
10902    byte *pv,
10903    ULONG cb,
10904    ULONG *pcbRead);
10905HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
10906    ILockBytes* This,
10907    ULARGE_INTEGER ulOffset,
10908    const void *pv,
10909    ULONG cb,
10910    ULONG *pcbWritten);
10911HRESULT __RPC_STUB ILockBytes_WriteAt_Stub(
10912    ILockBytes* This,
10913    ULARGE_INTEGER ulOffset,
10914    const byte *pv,
10915    ULONG cb,
10916    ULONG *pcbWritten);
10917
10918#endif  /* __ILockBytes_INTERFACE_DEFINED__ */
10919
10920/*****************************************************************************
10921 * IEnumFORMATETC interface
10922 */
10923#ifndef __IEnumFORMATETC_INTERFACE_DEFINED__
10924#define __IEnumFORMATETC_INTERFACE_DEFINED__
10925
10926typedef IEnumFORMATETC *LPENUMFORMATETC;
10927typedef struct tagDVTARGETDEVICE {
10928    DWORD tdSize;
10929    WORD tdDriverNameOffset;
10930    WORD tdDeviceNameOffset;
10931    WORD tdPortNameOffset;
10932    WORD tdExtDevmodeOffset;
10933    BYTE tdData[1];
10934} DVTARGETDEVICE;
10935typedef CLIPFORMAT *LPCLIPFORMAT;
10936typedef struct tagFORMATETC {
10937    CLIPFORMAT cfFormat;
10938    DVTARGETDEVICE *ptd;
10939    DWORD dwAspect;
10940    LONG lindex;
10941    DWORD tymed;
10942} FORMATETC;
10943typedef struct tagFORMATETC *LPFORMATETC;
10944DEFINE_GUID(IID_IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10945#if defined(__cplusplus) && !defined(CINTERFACE)
10946MIDL_INTERFACE("00000103-0000-0000-c000-000000000046")
10947IEnumFORMATETC : public IUnknown
10948{
10949    virtual HRESULT STDMETHODCALLTYPE Next(
10950        ULONG celt,
10951        FORMATETC *rgelt,
10952        ULONG *pceltFetched) = 0;
10953
10954    virtual HRESULT STDMETHODCALLTYPE Skip(
10955        ULONG celt) = 0;
10956
10957    virtual HRESULT STDMETHODCALLTYPE Reset(
10958        ) = 0;
10959
10960    virtual HRESULT STDMETHODCALLTYPE Clone(
10961        IEnumFORMATETC **ppenum) = 0;
10962
10963};
10964#ifdef __CRT_UUID_DECL
10965__CRT_UUID_DECL(IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
10966#endif
10967#else
10968typedef struct IEnumFORMATETCVtbl {
10969    BEGIN_INTERFACE
10970
10971    /*** IUnknown methods ***/
10972    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10973        IEnumFORMATETC* This,
10974        REFIID riid,
10975        void **ppvObject);
10976
10977    ULONG (STDMETHODCALLTYPE *AddRef)(
10978        IEnumFORMATETC* This);
10979
10980    ULONG (STDMETHODCALLTYPE *Release)(
10981        IEnumFORMATETC* This);
10982
10983    /*** IEnumFORMATETC methods ***/
10984    HRESULT (STDMETHODCALLTYPE *Next)(
10985        IEnumFORMATETC* This,
10986        ULONG celt,
10987        FORMATETC *rgelt,
10988        ULONG *pceltFetched);
10989
10990    HRESULT (STDMETHODCALLTYPE *Skip)(
10991        IEnumFORMATETC* This,
10992        ULONG celt);
10993
10994    HRESULT (STDMETHODCALLTYPE *Reset)(
10995        IEnumFORMATETC* This);
10996
10997    HRESULT (STDMETHODCALLTYPE *Clone)(
10998        IEnumFORMATETC* This,
10999        IEnumFORMATETC **ppenum);
11000
11001    END_INTERFACE
11002} IEnumFORMATETCVtbl;
11003interface IEnumFORMATETC {
11004    CONST_VTBL IEnumFORMATETCVtbl* lpVtbl;
11005};
11006
11007#ifdef COBJMACROS
11008#ifndef WIDL_C_INLINE_WRAPPERS
11009/*** IUnknown methods ***/
11010#define IEnumFORMATETC_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11011#define IEnumFORMATETC_AddRef(This) (This)->lpVtbl->AddRef(This)
11012#define IEnumFORMATETC_Release(This) (This)->lpVtbl->Release(This)
11013/*** IEnumFORMATETC methods ***/
11014#define IEnumFORMATETC_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
11015#define IEnumFORMATETC_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
11016#define IEnumFORMATETC_Reset(This) (This)->lpVtbl->Reset(This)
11017#define IEnumFORMATETC_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
11018#else
11019/*** IUnknown methods ***/
11020static FORCEINLINE HRESULT IEnumFORMATETC_QueryInterface(IEnumFORMATETC* This,REFIID riid,void **ppvObject) {
11021    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11022}
11023static FORCEINLINE ULONG IEnumFORMATETC_AddRef(IEnumFORMATETC* This) {
11024    return This->lpVtbl->AddRef(This);
11025}
11026static FORCEINLINE ULONG IEnumFORMATETC_Release(IEnumFORMATETC* This) {
11027    return This->lpVtbl->Release(This);
11028}
11029/*** IEnumFORMATETC methods ***/
11030static FORCEINLINE HRESULT IEnumFORMATETC_Next(IEnumFORMATETC* This,ULONG celt,FORMATETC *rgelt,ULONG *pceltFetched) {
11031    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
11032}
11033static FORCEINLINE HRESULT IEnumFORMATETC_Skip(IEnumFORMATETC* This,ULONG celt) {
11034    return This->lpVtbl->Skip(This,celt);
11035}
11036static FORCEINLINE HRESULT IEnumFORMATETC_Reset(IEnumFORMATETC* This) {
11037    return This->lpVtbl->Reset(This);
11038}
11039static FORCEINLINE HRESULT IEnumFORMATETC_Clone(IEnumFORMATETC* This,IEnumFORMATETC **ppenum) {
11040    return This->lpVtbl->Clone(This,ppenum);
11041}
11042#endif
11043#endif
11044
11045#endif
11046
11047HRESULT STDMETHODCALLTYPE IEnumFORMATETC_RemoteNext_Proxy(
11048    IEnumFORMATETC* This,
11049    ULONG celt,
11050    FORMATETC *rgelt,
11051    ULONG *pceltFetched);
11052void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
11053    IRpcStubBuffer* This,
11054    IRpcChannelBuffer* pRpcChannelBuffer,
11055    PRPC_MESSAGE pRpcMessage,
11056    DWORD* pdwStubPhase);
11057HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Skip_Proxy(
11058    IEnumFORMATETC* This,
11059    ULONG celt);
11060void __RPC_STUB IEnumFORMATETC_Skip_Stub(
11061    IRpcStubBuffer* This,
11062    IRpcChannelBuffer* pRpcChannelBuffer,
11063    PRPC_MESSAGE pRpcMessage,
11064    DWORD* pdwStubPhase);
11065HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Reset_Proxy(
11066    IEnumFORMATETC* This);
11067void __RPC_STUB IEnumFORMATETC_Reset_Stub(
11068    IRpcStubBuffer* This,
11069    IRpcChannelBuffer* pRpcChannelBuffer,
11070    PRPC_MESSAGE pRpcMessage,
11071    DWORD* pdwStubPhase);
11072HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Clone_Proxy(
11073    IEnumFORMATETC* This,
11074    IEnumFORMATETC **ppenum);
11075void __RPC_STUB IEnumFORMATETC_Clone_Stub(
11076    IRpcStubBuffer* This,
11077    IRpcChannelBuffer* pRpcChannelBuffer,
11078    PRPC_MESSAGE pRpcMessage,
11079    DWORD* pdwStubPhase);
11080HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
11081    IEnumFORMATETC* This,
11082    ULONG celt,
11083    FORMATETC *rgelt,
11084    ULONG *pceltFetched);
11085HRESULT __RPC_STUB IEnumFORMATETC_Next_Stub(
11086    IEnumFORMATETC* This,
11087    ULONG celt,
11088    FORMATETC *rgelt,
11089    ULONG *pceltFetched);
11090
11091#endif  /* __IEnumFORMATETC_INTERFACE_DEFINED__ */
11092
11093/*****************************************************************************
11094 * IEnumSTATDATA interface
11095 */
11096#ifndef __IEnumSTATDATA_INTERFACE_DEFINED__
11097#define __IEnumSTATDATA_INTERFACE_DEFINED__
11098
11099typedef IEnumSTATDATA *LPENUMSTATDATA;
11100typedef enum tagADVF {
11101    ADVF_NODATA = 1,
11102    ADVF_PRIMEFIRST = 2,
11103    ADVF_ONLYONCE = 4,
11104    ADVF_DATAONSTOP = 64,
11105    ADVFCACHE_NOHANDLER = 8,
11106    ADVFCACHE_FORCEBUILTIN = 16,
11107    ADVFCACHE_ONSAVE = 32
11108} ADVF;
11109typedef struct tagSTATDATA {
11110    FORMATETC formatetc;
11111    DWORD advf;
11112    IAdviseSink *pAdvSink;
11113    DWORD dwConnection;
11114} STATDATA;
11115typedef STATDATA *LPSTATDATA;
11116DEFINE_GUID(IID_IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
11117#if defined(__cplusplus) && !defined(CINTERFACE)
11118MIDL_INTERFACE("00000105-0000-0000-c000-000000000046")
11119IEnumSTATDATA : public IUnknown
11120{
11121    virtual HRESULT STDMETHODCALLTYPE Next(
11122        ULONG celt,
11123        STATDATA *rgelt,
11124        ULONG *pceltFetched) = 0;
11125
11126    virtual HRESULT STDMETHODCALLTYPE Skip(
11127        ULONG celt) = 0;
11128
11129    virtual HRESULT STDMETHODCALLTYPE Reset(
11130        ) = 0;
11131
11132    virtual HRESULT STDMETHODCALLTYPE Clone(
11133        IEnumSTATDATA **ppenum) = 0;
11134
11135};
11136#ifdef __CRT_UUID_DECL
11137__CRT_UUID_DECL(IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
11138#endif
11139#else
11140typedef struct IEnumSTATDATAVtbl {
11141    BEGIN_INTERFACE
11142
11143    /*** IUnknown methods ***/
11144    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11145        IEnumSTATDATA* This,
11146        REFIID riid,
11147        void **ppvObject);
11148
11149    ULONG (STDMETHODCALLTYPE *AddRef)(
11150        IEnumSTATDATA* This);
11151
11152    ULONG (STDMETHODCALLTYPE *Release)(
11153        IEnumSTATDATA* This);
11154
11155    /*** IEnumSTATDATA methods ***/
11156    HRESULT (STDMETHODCALLTYPE *Next)(
11157        IEnumSTATDATA* This,
11158        ULONG celt,
11159        STATDATA *rgelt,
11160        ULONG *pceltFetched);
11161
11162    HRESULT (STDMETHODCALLTYPE *Skip)(
11163        IEnumSTATDATA* This,
11164        ULONG celt);
11165
11166    HRESULT (STDMETHODCALLTYPE *Reset)(
11167        IEnumSTATDATA* This);
11168
11169    HRESULT (STDMETHODCALLTYPE *Clone)(
11170        IEnumSTATDATA* This,
11171        IEnumSTATDATA **ppenum);
11172
11173    END_INTERFACE
11174} IEnumSTATDATAVtbl;
11175interface IEnumSTATDATA {
11176    CONST_VTBL IEnumSTATDATAVtbl* lpVtbl;
11177};
11178
11179#ifdef COBJMACROS
11180#ifndef WIDL_C_INLINE_WRAPPERS
11181/*** IUnknown methods ***/
11182#define IEnumSTATDATA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11183#define IEnumSTATDATA_AddRef(This) (This)->lpVtbl->AddRef(This)
11184#define IEnumSTATDATA_Release(This) (This)->lpVtbl->Release(This)
11185/*** IEnumSTATDATA methods ***/
11186#define IEnumSTATDATA_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
11187#define IEnumSTATDATA_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
11188#define IEnumSTATDATA_Reset(This) (This)->lpVtbl->Reset(This)
11189#define IEnumSTATDATA_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
11190#else
11191/*** IUnknown methods ***/
11192static FORCEINLINE HRESULT IEnumSTATDATA_QueryInterface(IEnumSTATDATA* This,REFIID riid,void **ppvObject) {
11193    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11194}
11195static FORCEINLINE ULONG IEnumSTATDATA_AddRef(IEnumSTATDATA* This) {
11196    return This->lpVtbl->AddRef(This);
11197}
11198static FORCEINLINE ULONG IEnumSTATDATA_Release(IEnumSTATDATA* This) {
11199    return This->lpVtbl->Release(This);
11200}
11201/*** IEnumSTATDATA methods ***/
11202static FORCEINLINE HRESULT IEnumSTATDATA_Next(IEnumSTATDATA* This,ULONG celt,STATDATA *rgelt,ULONG *pceltFetched) {
11203    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
11204}
11205static FORCEINLINE HRESULT IEnumSTATDATA_Skip(IEnumSTATDATA* This,ULONG celt) {
11206    return This->lpVtbl->Skip(This,celt);
11207}
11208static FORCEINLINE HRESULT IEnumSTATDATA_Reset(IEnumSTATDATA* This) {
11209    return This->lpVtbl->Reset(This);
11210}
11211static FORCEINLINE HRESULT IEnumSTATDATA_Clone(IEnumSTATDATA* This,IEnumSTATDATA **ppenum) {
11212    return This->lpVtbl->Clone(This,ppenum);
11213}
11214#endif
11215#endif
11216
11217#endif
11218
11219HRESULT STDMETHODCALLTYPE IEnumSTATDATA_RemoteNext_Proxy(
11220    IEnumSTATDATA* This,
11221    ULONG celt,
11222    STATDATA *rgelt,
11223    ULONG *pceltFetched);
11224void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
11225    IRpcStubBuffer* This,
11226    IRpcChannelBuffer* pRpcChannelBuffer,
11227    PRPC_MESSAGE pRpcMessage,
11228    DWORD* pdwStubPhase);
11229HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Skip_Proxy(
11230    IEnumSTATDATA* This,
11231    ULONG celt);
11232void __RPC_STUB IEnumSTATDATA_Skip_Stub(
11233    IRpcStubBuffer* This,
11234    IRpcChannelBuffer* pRpcChannelBuffer,
11235    PRPC_MESSAGE pRpcMessage,
11236    DWORD* pdwStubPhase);
11237HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Reset_Proxy(
11238    IEnumSTATDATA* This);
11239void __RPC_STUB IEnumSTATDATA_Reset_Stub(
11240    IRpcStubBuffer* This,
11241    IRpcChannelBuffer* pRpcChannelBuffer,
11242    PRPC_MESSAGE pRpcMessage,
11243    DWORD* pdwStubPhase);
11244HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Clone_Proxy(
11245    IEnumSTATDATA* This,
11246    IEnumSTATDATA **ppenum);
11247void __RPC_STUB IEnumSTATDATA_Clone_Stub(
11248    IRpcStubBuffer* This,
11249    IRpcChannelBuffer* pRpcChannelBuffer,
11250    PRPC_MESSAGE pRpcMessage,
11251    DWORD* pdwStubPhase);
11252HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
11253    IEnumSTATDATA* This,
11254    ULONG celt,
11255    STATDATA *rgelt,
11256    ULONG *pceltFetched);
11257HRESULT __RPC_STUB IEnumSTATDATA_Next_Stub(
11258    IEnumSTATDATA* This,
11259    ULONG celt,
11260    STATDATA *rgelt,
11261    ULONG *pceltFetched);
11262
11263#endif  /* __IEnumSTATDATA_INTERFACE_DEFINED__ */
11264
11265/*****************************************************************************
11266 * IRootStorage interface
11267 */
11268#ifndef __IRootStorage_INTERFACE_DEFINED__
11269#define __IRootStorage_INTERFACE_DEFINED__
11270
11271typedef IRootStorage *LPROOTSTORAGE;
11272DEFINE_GUID(IID_IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
11273#if defined(__cplusplus) && !defined(CINTERFACE)
11274MIDL_INTERFACE("00000012-0000-0000-c000-000000000046")
11275IRootStorage : public IUnknown
11276{
11277    virtual HRESULT STDMETHODCALLTYPE SwitchToFile(
11278        LPOLESTR pszFile) = 0;
11279
11280};
11281#ifdef __CRT_UUID_DECL
11282__CRT_UUID_DECL(IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
11283#endif
11284#else
11285typedef struct IRootStorageVtbl {
11286    BEGIN_INTERFACE
11287
11288    /*** IUnknown methods ***/
11289    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11290        IRootStorage* This,
11291        REFIID riid,
11292        void **ppvObject);
11293
11294    ULONG (STDMETHODCALLTYPE *AddRef)(
11295        IRootStorage* This);
11296
11297    ULONG (STDMETHODCALLTYPE *Release)(
11298        IRootStorage* This);
11299
11300    /*** IRootStorage methods ***/
11301    HRESULT (STDMETHODCALLTYPE *SwitchToFile)(
11302        IRootStorage* This,
11303        LPOLESTR pszFile);
11304
11305    END_INTERFACE
11306} IRootStorageVtbl;
11307interface IRootStorage {
11308    CONST_VTBL IRootStorageVtbl* lpVtbl;
11309};
11310
11311#ifdef COBJMACROS
11312#ifndef WIDL_C_INLINE_WRAPPERS
11313/*** IUnknown methods ***/
11314#define IRootStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11315#define IRootStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
11316#define IRootStorage_Release(This) (This)->lpVtbl->Release(This)
11317/*** IRootStorage methods ***/
11318#define IRootStorage_SwitchToFile(This,pszFile) (This)->lpVtbl->SwitchToFile(This,pszFile)
11319#else
11320/*** IUnknown methods ***/
11321static FORCEINLINE HRESULT IRootStorage_QueryInterface(IRootStorage* This,REFIID riid,void **ppvObject) {
11322    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11323}
11324static FORCEINLINE ULONG IRootStorage_AddRef(IRootStorage* This) {
11325    return This->lpVtbl->AddRef(This);
11326}
11327static FORCEINLINE ULONG IRootStorage_Release(IRootStorage* This) {
11328    return This->lpVtbl->Release(This);
11329}
11330/*** IRootStorage methods ***/
11331static FORCEINLINE HRESULT IRootStorage_SwitchToFile(IRootStorage* This,LPOLESTR pszFile) {
11332    return This->lpVtbl->SwitchToFile(This,pszFile);
11333}
11334#endif
11335#endif
11336
11337#endif
11338
11339HRESULT STDMETHODCALLTYPE IRootStorage_SwitchToFile_Proxy(
11340    IRootStorage* This,
11341    LPOLESTR pszFile);
11342void __RPC_STUB IRootStorage_SwitchToFile_Stub(
11343    IRpcStubBuffer* This,
11344    IRpcChannelBuffer* pRpcChannelBuffer,
11345    PRPC_MESSAGE pRpcMessage,
11346    DWORD* pdwStubPhase);
11347
11348#endif  /* __IRootStorage_INTERFACE_DEFINED__ */
11349
11350/*****************************************************************************
11351 * IAdviseSink interface
11352 */
11353#ifndef __IAdviseSink_INTERFACE_DEFINED__
11354#define __IAdviseSink_INTERFACE_DEFINED__
11355
11356typedef IAdviseSink *LPADVISESINK;
11357typedef enum tagTYMED {
11358    TYMED_HGLOBAL = 1,
11359    TYMED_FILE = 2,
11360    TYMED_ISTREAM = 4,
11361    TYMED_ISTORAGE = 8,
11362    TYMED_GDI = 16,
11363    TYMED_MFPICT = 32,
11364    TYMED_ENHMF = 64,
11365    TYMED_NULL = 0
11366} TYMED;
11367typedef struct tagRemSTGMEDIUM {
11368    DWORD tymed;
11369    DWORD dwHandleType;
11370    ULONG pData;
11371    ULONG pUnkForRelease;
11372    ULONG cbData;
11373    byte data[1];
11374} RemSTGMEDIUM;
11375#ifdef NONAMELESSUNION
11376typedef struct tagSTGMEDIUM {
11377DWORD tymed;
11378union {
11379HBITMAP hBitmap;
11380HMETAFILEPICT hMetaFilePict;
11381HENHMETAFILE hEnhMetaFile;
11382HGLOBAL hGlobal;
11383LPOLESTR lpszFileName;
11384IStream *pstm;
11385IStorage *pstg;
11386} u;
11387IUnknown *pUnkForRelease;
11388}uSTGMEDIUM;
11389#else
11390typedef struct tagSTGMEDIUM {
11391    DWORD tymed;
11392    __C89_NAMELESS union {
11393        HBITMAP hBitmap;
11394        HMETAFILEPICT hMetaFilePict;
11395        HENHMETAFILE hEnhMetaFile;
11396        HGLOBAL hGlobal;
11397        LPOLESTR lpszFileName;
11398        IStream *pstm;
11399        IStorage *pstg;
11400    } DUMMYUNIONNAME;
11401    IUnknown *pUnkForRelease;
11402} uSTGMEDIUM;
11403#endif
11404typedef struct _GDI_OBJECT {
11405    DWORD ObjectType;
11406    union {
11407        wireHBITMAP hBitmap;
11408        wireHPALETTE hPalette;
11409        wireHGLOBAL hGeneric;
11410    } u;
11411} GDI_OBJECT;
11412typedef struct _userSTGMEDIUM {
11413    __C89_NAMELESS struct _STGMEDIUM_UNION {
11414        DWORD tymed;
11415        union {
11416            wireHMETAFILEPICT hMetaFilePict;
11417            wireHENHMETAFILE hHEnhMetaFile;
11418            GDI_OBJECT *hGdiHandle;
11419            wireHGLOBAL hGlobal;
11420            LPOLESTR lpszFileName;
11421            BYTE_BLOB *pstm;
11422            BYTE_BLOB *pstg;
11423        } u;
11424    } DUMMYUNIONNAME;
11425    IUnknown *pUnkForRelease;
11426} userSTGMEDIUM;
11427typedef userSTGMEDIUM *wireSTGMEDIUM;
11428typedef uSTGMEDIUM STGMEDIUM;
11429typedef userSTGMEDIUM *wireASYNC_STGMEDIUM;
11430typedef STGMEDIUM ASYNC_STGMEDIUM;
11431typedef STGMEDIUM *LPSTGMEDIUM;
11432typedef struct _userFLAG_STGMEDIUM {
11433    LONG ContextFlags;
11434    LONG fPassOwnership;
11435    userSTGMEDIUM Stgmed;
11436} userFLAG_STGMEDIUM;
11437typedef userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
11438typedef struct _FLAG_STGMEDIUM {
11439    LONG ContextFlags;
11440    LONG fPassOwnership;
11441    STGMEDIUM Stgmed;
11442} FLAG_STGMEDIUM;
11443DEFINE_GUID(IID_IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
11444#if defined(__cplusplus) && !defined(CINTERFACE)
11445MIDL_INTERFACE("0000010f-0000-0000-c000-000000000046")
11446IAdviseSink : public IUnknown
11447{
11448    virtual void STDMETHODCALLTYPE OnDataChange(
11449        FORMATETC *pFormatetc,
11450        STGMEDIUM *pStgmed) = 0;
11451
11452    virtual void STDMETHODCALLTYPE OnViewChange(
11453        DWORD dwAspect,
11454        LONG lindex) = 0;
11455
11456    virtual void STDMETHODCALLTYPE OnRename(
11457        IMoniker *pmk) = 0;
11458
11459    virtual void STDMETHODCALLTYPE OnSave(
11460        ) = 0;
11461
11462    virtual void STDMETHODCALLTYPE OnClose(
11463        ) = 0;
11464
11465};
11466#ifdef __CRT_UUID_DECL
11467__CRT_UUID_DECL(IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
11468#endif
11469#else
11470typedef struct IAdviseSinkVtbl {
11471    BEGIN_INTERFACE
11472
11473    /*** IUnknown methods ***/
11474    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11475        IAdviseSink* This,
11476        REFIID riid,
11477        void **ppvObject);
11478
11479    ULONG (STDMETHODCALLTYPE *AddRef)(
11480        IAdviseSink* This);
11481
11482    ULONG (STDMETHODCALLTYPE *Release)(
11483        IAdviseSink* This);
11484
11485    /*** IAdviseSink methods ***/
11486    void (STDMETHODCALLTYPE *OnDataChange)(
11487        IAdviseSink* This,
11488        FORMATETC *pFormatetc,
11489        STGMEDIUM *pStgmed);
11490
11491    void (STDMETHODCALLTYPE *OnViewChange)(
11492        IAdviseSink* This,
11493        DWORD dwAspect,
11494        LONG lindex);
11495
11496    void (STDMETHODCALLTYPE *OnRename)(
11497        IAdviseSink* This,
11498        IMoniker *pmk);
11499
11500    void (STDMETHODCALLTYPE *OnSave)(
11501        IAdviseSink* This);
11502
11503    void (STDMETHODCALLTYPE *OnClose)(
11504        IAdviseSink* This);
11505
11506    END_INTERFACE
11507} IAdviseSinkVtbl;
11508interface IAdviseSink {
11509    CONST_VTBL IAdviseSinkVtbl* lpVtbl;
11510};
11511
11512#ifdef COBJMACROS
11513#ifndef WIDL_C_INLINE_WRAPPERS
11514/*** IUnknown methods ***/
11515#define IAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11516#define IAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
11517#define IAdviseSink_Release(This) (This)->lpVtbl->Release(This)
11518/*** IAdviseSink methods ***/
11519#define IAdviseSink_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->OnDataChange(This,pFormatetc,pStgmed)
11520#define IAdviseSink_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->OnViewChange(This,dwAspect,lindex)
11521#define IAdviseSink_OnRename(This,pmk) (This)->lpVtbl->OnRename(This,pmk)
11522#define IAdviseSink_OnSave(This) (This)->lpVtbl->OnSave(This)
11523#define IAdviseSink_OnClose(This) (This)->lpVtbl->OnClose(This)
11524#else
11525/*** IUnknown methods ***/
11526static FORCEINLINE HRESULT IAdviseSink_QueryInterface(IAdviseSink* This,REFIID riid,void **ppvObject) {
11527    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11528}
11529static FORCEINLINE ULONG IAdviseSink_AddRef(IAdviseSink* This) {
11530    return This->lpVtbl->AddRef(This);
11531}
11532static FORCEINLINE ULONG IAdviseSink_Release(IAdviseSink* This) {
11533    return This->lpVtbl->Release(This);
11534}
11535/*** IAdviseSink methods ***/
11536static FORCEINLINE void IAdviseSink_OnDataChange(IAdviseSink* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
11537    This->lpVtbl->OnDataChange(This,pFormatetc,pStgmed);
11538}
11539static FORCEINLINE void IAdviseSink_OnViewChange(IAdviseSink* This,DWORD dwAspect,LONG lindex) {
11540    This->lpVtbl->OnViewChange(This,dwAspect,lindex);
11541}
11542static FORCEINLINE void IAdviseSink_OnRename(IAdviseSink* This,IMoniker *pmk) {
11543    This->lpVtbl->OnRename(This,pmk);
11544}
11545static FORCEINLINE void IAdviseSink_OnSave(IAdviseSink* This) {
11546    This->lpVtbl->OnSave(This);
11547}
11548static FORCEINLINE void IAdviseSink_OnClose(IAdviseSink* This) {
11549    This->lpVtbl->OnClose(This);
11550}
11551#endif
11552#endif
11553
11554#endif
11555
11556HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnDataChange_Proxy(
11557    IAdviseSink* This,
11558    FORMATETC *pFormatetc,
11559    ASYNC_STGMEDIUM *pStgmed);
11560void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub(
11561    IRpcStubBuffer* This,
11562    IRpcChannelBuffer* pRpcChannelBuffer,
11563    PRPC_MESSAGE pRpcMessage,
11564    DWORD* pdwStubPhase);
11565HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnViewChange_Proxy(
11566    IAdviseSink* This,
11567    DWORD dwAspect,
11568    LONG lindex);
11569void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub(
11570    IRpcStubBuffer* This,
11571    IRpcChannelBuffer* pRpcChannelBuffer,
11572    PRPC_MESSAGE pRpcMessage,
11573    DWORD* pdwStubPhase);
11574HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnRename_Proxy(
11575    IAdviseSink* This,
11576    IMoniker *pmk);
11577void __RPC_STUB IAdviseSink_RemoteOnRename_Stub(
11578    IRpcStubBuffer* This,
11579    IRpcChannelBuffer* pRpcChannelBuffer,
11580    PRPC_MESSAGE pRpcMessage,
11581    DWORD* pdwStubPhase);
11582HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnSave_Proxy(
11583    IAdviseSink* This);
11584void __RPC_STUB IAdviseSink_RemoteOnSave_Stub(
11585    IRpcStubBuffer* This,
11586    IRpcChannelBuffer* pRpcChannelBuffer,
11587    PRPC_MESSAGE pRpcMessage,
11588    DWORD* pdwStubPhase);
11589HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnClose_Proxy(
11590    IAdviseSink* This);
11591void __RPC_STUB IAdviseSink_RemoteOnClose_Stub(
11592    IRpcStubBuffer* This,
11593    IRpcChannelBuffer* pRpcChannelBuffer,
11594    PRPC_MESSAGE pRpcMessage,
11595    DWORD* pdwStubPhase);
11596void CALLBACK IAdviseSink_OnDataChange_Proxy(
11597    IAdviseSink* This,
11598    FORMATETC *pFormatetc,
11599    STGMEDIUM *pStgmed);
11600HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
11601    IAdviseSink* This,
11602    FORMATETC *pFormatetc,
11603    ASYNC_STGMEDIUM *pStgmed);
11604void CALLBACK IAdviseSink_OnViewChange_Proxy(
11605    IAdviseSink* This,
11606    DWORD dwAspect,
11607    LONG lindex);
11608HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
11609    IAdviseSink* This,
11610    DWORD dwAspect,
11611    LONG lindex);
11612void CALLBACK IAdviseSink_OnRename_Proxy(
11613    IAdviseSink* This,
11614    IMoniker *pmk);
11615HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
11616    IAdviseSink* This,
11617    IMoniker *pmk);
11618void CALLBACK IAdviseSink_OnSave_Proxy(
11619    IAdviseSink* This);
11620HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
11621    IAdviseSink* This);
11622void CALLBACK IAdviseSink_OnClose_Proxy(
11623    IAdviseSink* This);
11624HRESULT __RPC_STUB IAdviseSink_OnClose_Stub(
11625    IAdviseSink* This);
11626
11627#endif  /* __IAdviseSink_INTERFACE_DEFINED__ */
11628
11629/*****************************************************************************
11630 * AsyncIAdviseSink interface
11631 */
11632#ifndef __AsyncIAdviseSink_INTERFACE_DEFINED__
11633#define __AsyncIAdviseSink_INTERFACE_DEFINED__
11634
11635DEFINE_GUID(IID_AsyncIAdviseSink, 0x00000150, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
11636#if defined(__cplusplus) && !defined(CINTERFACE)
11637MIDL_INTERFACE("00000150-0000-0000-c000-000000000046")
11638AsyncIAdviseSink : public IUnknown
11639{
11640    virtual void STDMETHODCALLTYPE Begin_OnDataChange(
11641        FORMATETC *pFormatetc,
11642        STGMEDIUM *pStgmed) = 0;
11643
11644    virtual void STDMETHODCALLTYPE Finish_OnDataChange(
11645        ) = 0;
11646
11647    virtual void STDMETHODCALLTYPE Begin_OnViewChange(
11648        DWORD dwAspect,
11649        LONG lindex) = 0;
11650
11651    virtual void STDMETHODCALLTYPE Finish_OnViewChange(
11652        ) = 0;
11653
11654    virtual void STDMETHODCALLTYPE Begin_OnRename(
11655        IMoniker *pmk) = 0;
11656
11657    virtual void STDMETHODCALLTYPE Finish_OnRename(
11658        ) = 0;
11659
11660    virtual void STDMETHODCALLTYPE Begin_OnSave(
11661        ) = 0;
11662
11663    virtual void STDMETHODCALLTYPE Finish_OnSave(
11664        ) = 0;
11665
11666    virtual void STDMETHODCALLTYPE Begin_OnClose(
11667        ) = 0;
11668
11669    virtual void STDMETHODCALLTYPE Finish_OnClose(
11670        ) = 0;
11671
11672};
11673#ifdef __CRT_UUID_DECL
11674__CRT_UUID_DECL(AsyncIAdviseSink, 0x00000150, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
11675#endif
11676#else
11677typedef struct AsyncIAdviseSinkVtbl {
11678    BEGIN_INTERFACE
11679
11680    /*** IUnknown methods ***/
11681    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11682        AsyncIAdviseSink* This,
11683        REFIID riid,
11684        void **ppvObject);
11685
11686    ULONG (STDMETHODCALLTYPE *AddRef)(
11687        AsyncIAdviseSink* This);
11688
11689    ULONG (STDMETHODCALLTYPE *Release)(
11690        AsyncIAdviseSink* This);
11691
11692    /*** IAdviseSink methods ***/
11693    void (STDMETHODCALLTYPE *Begin_OnDataChange)(
11694        AsyncIAdviseSink* This,
11695        FORMATETC *pFormatetc,
11696        STGMEDIUM *pStgmed);
11697
11698    void (STDMETHODCALLTYPE *Finish_OnDataChange)(
11699        AsyncIAdviseSink* This);
11700
11701    void (STDMETHODCALLTYPE *Begin_OnViewChange)(
11702        AsyncIAdviseSink* This,
11703        DWORD dwAspect,
11704        LONG lindex);
11705
11706    void (STDMETHODCALLTYPE *Finish_OnViewChange)(
11707        AsyncIAdviseSink* This);
11708
11709    void (STDMETHODCALLTYPE *Begin_OnRename)(
11710        AsyncIAdviseSink* This,
11711        IMoniker *pmk);
11712
11713    void (STDMETHODCALLTYPE *Finish_OnRename)(
11714        AsyncIAdviseSink* This);
11715
11716    void (STDMETHODCALLTYPE *Begin_OnSave)(
11717        AsyncIAdviseSink* This);
11718
11719    void (STDMETHODCALLTYPE *Finish_OnSave)(
11720        AsyncIAdviseSink* This);
11721
11722    void (STDMETHODCALLTYPE *Begin_OnClose)(
11723        AsyncIAdviseSink* This);
11724
11725    void (STDMETHODCALLTYPE *Finish_OnClose)(
11726        AsyncIAdviseSink* This);
11727
11728    END_INTERFACE
11729} AsyncIAdviseSinkVtbl;
11730interface AsyncIAdviseSink {
11731    CONST_VTBL AsyncIAdviseSinkVtbl* lpVtbl;
11732};
11733
11734#ifdef COBJMACROS
11735#ifndef WIDL_C_INLINE_WRAPPERS
11736/*** IUnknown methods ***/
11737#define AsyncIAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11738#define AsyncIAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
11739#define AsyncIAdviseSink_Release(This) (This)->lpVtbl->Release(This)
11740/*** IAdviseSink methods ***/
11741#define AsyncIAdviseSink_Begin_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed)
11742#define AsyncIAdviseSink_Finish_OnDataChange(This) (This)->lpVtbl->Finish_OnDataChange(This)
11743#define AsyncIAdviseSink_Begin_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex)
11744#define AsyncIAdviseSink_Finish_OnViewChange(This) (This)->lpVtbl->Finish_OnViewChange(This)
11745#define AsyncIAdviseSink_Begin_OnRename(This,pmk) (This)->lpVtbl->Begin_OnRename(This,pmk)
11746#define AsyncIAdviseSink_Finish_OnRename(This) (This)->lpVtbl->Finish_OnRename(This)
11747#define AsyncIAdviseSink_Begin_OnSave(This) (This)->lpVtbl->Begin_OnSave(This)
11748#define AsyncIAdviseSink_Finish_OnSave(This) (This)->lpVtbl->Finish_OnSave(This)
11749#define AsyncIAdviseSink_Begin_OnClose(This) (This)->lpVtbl->Begin_OnClose(This)
11750#define AsyncIAdviseSink_Finish_OnClose(This) (This)->lpVtbl->Finish_OnClose(This)
11751#else
11752/*** IUnknown methods ***/
11753static FORCEINLINE HRESULT AsyncIAdviseSink_QueryInterface(AsyncIAdviseSink* This,REFIID riid,void **ppvObject) {
11754    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11755}
11756static FORCEINLINE ULONG AsyncIAdviseSink_AddRef(AsyncIAdviseSink* This) {
11757    return This->lpVtbl->AddRef(This);
11758}
11759static FORCEINLINE ULONG AsyncIAdviseSink_Release(AsyncIAdviseSink* This) {
11760    return This->lpVtbl->Release(This);
11761}
11762/*** IAdviseSink methods ***/
11763static FORCEINLINE void Begin_AsyncIAdviseSink_OnDataChange(AsyncIAdviseSink* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
11764    This->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed);
11765}
11766static FORCEINLINE void Finish_AsyncIAdviseSink_OnDataChange(AsyncIAdviseSink* This) {
11767    This->lpVtbl->Finish_OnDataChange(This);
11768}
11769static FORCEINLINE void Begin_AsyncIAdviseSink_OnViewChange(AsyncIAdviseSink* This,DWORD dwAspect,LONG lindex) {
11770    This->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex);
11771}
11772static FORCEINLINE void Finish_AsyncIAdviseSink_OnViewChange(AsyncIAdviseSink* This) {
11773    This->lpVtbl->Finish_OnViewChange(This);
11774}
11775static FORCEINLINE void Begin_AsyncIAdviseSink_OnRename(AsyncIAdviseSink* This,IMoniker *pmk) {
11776    This->lpVtbl->Begin_OnRename(This,pmk);
11777}
11778static FORCEINLINE void Finish_AsyncIAdviseSink_OnRename(AsyncIAdviseSink* This) {
11779    This->lpVtbl->Finish_OnRename(This);
11780}
11781static FORCEINLINE void Begin_AsyncIAdviseSink_OnSave(AsyncIAdviseSink* This) {
11782    This->lpVtbl->Begin_OnSave(This);
11783}
11784static FORCEINLINE void Finish_AsyncIAdviseSink_OnSave(AsyncIAdviseSink* This) {
11785    This->lpVtbl->Finish_OnSave(This);
11786}
11787static FORCEINLINE void Begin_AsyncIAdviseSink_OnClose(AsyncIAdviseSink* This) {
11788    This->lpVtbl->Begin_OnClose(This);
11789}
11790static FORCEINLINE void Finish_AsyncIAdviseSink_OnClose(AsyncIAdviseSink* This) {
11791    This->lpVtbl->Finish_OnClose(This);
11792}
11793#endif
11794#endif
11795
11796#endif
11797
11798HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnDataChange_Proxy(
11799    IAdviseSink* This,
11800    FORMATETC *pFormatetc,
11801    ASYNC_STGMEDIUM *pStgmed);
11802void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnDataChange_Stub(
11803    IRpcStubBuffer* This,
11804    IRpcChannelBuffer* pRpcChannelBuffer,
11805    PRPC_MESSAGE pRpcMessage,
11806    DWORD* pdwStubPhase);
11807HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnDataChange_Proxy(
11808    IAdviseSink* This,
11809    FORMATETC *pFormatetc,
11810    ASYNC_STGMEDIUM *pStgmed);
11811void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnDataChange_Stub(
11812    IRpcStubBuffer* This,
11813    IRpcChannelBuffer* pRpcChannelBuffer,
11814    PRPC_MESSAGE pRpcMessage,
11815    DWORD* pdwStubPhase);
11816HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnViewChange_Proxy(
11817    IAdviseSink* This,
11818    DWORD dwAspect,
11819    LONG lindex);
11820void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnViewChange_Stub(
11821    IRpcStubBuffer* This,
11822    IRpcChannelBuffer* pRpcChannelBuffer,
11823    PRPC_MESSAGE pRpcMessage,
11824    DWORD* pdwStubPhase);
11825HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnViewChange_Proxy(
11826    IAdviseSink* This,
11827    DWORD dwAspect,
11828    LONG lindex);
11829void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnViewChange_Stub(
11830    IRpcStubBuffer* This,
11831    IRpcChannelBuffer* pRpcChannelBuffer,
11832    PRPC_MESSAGE pRpcMessage,
11833    DWORD* pdwStubPhase);
11834HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnRename_Proxy(
11835    IAdviseSink* This,
11836    IMoniker *pmk);
11837void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnRename_Stub(
11838    IRpcStubBuffer* This,
11839    IRpcChannelBuffer* pRpcChannelBuffer,
11840    PRPC_MESSAGE pRpcMessage,
11841    DWORD* pdwStubPhase);
11842HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnRename_Proxy(
11843    IAdviseSink* This,
11844    IMoniker *pmk);
11845void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnRename_Stub(
11846    IRpcStubBuffer* This,
11847    IRpcChannelBuffer* pRpcChannelBuffer,
11848    PRPC_MESSAGE pRpcMessage,
11849    DWORD* pdwStubPhase);
11850HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnSave_Proxy(
11851    IAdviseSink* This);
11852void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnSave_Stub(
11853    IRpcStubBuffer* This,
11854    IRpcChannelBuffer* pRpcChannelBuffer,
11855    PRPC_MESSAGE pRpcMessage,
11856    DWORD* pdwStubPhase);
11857HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnSave_Proxy(
11858    IAdviseSink* This);
11859void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnSave_Stub(
11860    IRpcStubBuffer* This,
11861    IRpcChannelBuffer* pRpcChannelBuffer,
11862    PRPC_MESSAGE pRpcMessage,
11863    DWORD* pdwStubPhase);
11864HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnClose_Proxy(
11865    IAdviseSink* This);
11866void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnClose_Stub(
11867    IRpcStubBuffer* This,
11868    IRpcChannelBuffer* pRpcChannelBuffer,
11869    PRPC_MESSAGE pRpcMessage,
11870    DWORD* pdwStubPhase);
11871HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnClose_Proxy(
11872    IAdviseSink* This);
11873void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnClose_Stub(
11874    IRpcStubBuffer* This,
11875    IRpcChannelBuffer* pRpcChannelBuffer,
11876    PRPC_MESSAGE pRpcMessage,
11877    DWORD* pdwStubPhase);
11878void CALLBACK AsyncIAdviseSink_Begin_OnDataChange_Proxy(
11879    IAdviseSink* This,
11880    FORMATETC *pFormatetc,
11881    STGMEDIUM *pStgmed);
11882HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnDataChange_Stub(
11883    IAdviseSink* This,
11884    FORMATETC *pFormatetc,
11885    ASYNC_STGMEDIUM *pStgmed);
11886void CALLBACK AsyncIAdviseSink_Finish_OnDataChange_Proxy(
11887    IAdviseSink* This);
11888HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnDataChange_Stub(
11889    IAdviseSink* This,
11890    FORMATETC *pFormatetc,
11891    ASYNC_STGMEDIUM *pStgmed);
11892void CALLBACK AsyncIAdviseSink_Begin_OnViewChange_Proxy(
11893    IAdviseSink* This,
11894    DWORD dwAspect,
11895    LONG lindex);
11896HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnViewChange_Stub(
11897    IAdviseSink* This,
11898    DWORD dwAspect,
11899    LONG lindex);
11900void CALLBACK AsyncIAdviseSink_Finish_OnViewChange_Proxy(
11901    IAdviseSink* This);
11902HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnViewChange_Stub(
11903    IAdviseSink* This,
11904    DWORD dwAspect,
11905    LONG lindex);
11906void CALLBACK AsyncIAdviseSink_Begin_OnRename_Proxy(
11907    IAdviseSink* This,
11908    IMoniker *pmk);
11909HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnRename_Stub(
11910    IAdviseSink* This,
11911    IMoniker *pmk);
11912void CALLBACK AsyncIAdviseSink_Finish_OnRename_Proxy(
11913    IAdviseSink* This);
11914HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnRename_Stub(
11915    IAdviseSink* This,
11916    IMoniker *pmk);
11917void CALLBACK AsyncIAdviseSink_Begin_OnSave_Proxy(
11918    IAdviseSink* This);
11919HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnSave_Stub(
11920    IAdviseSink* This);
11921void CALLBACK AsyncIAdviseSink_Finish_OnSave_Proxy(
11922    IAdviseSink* This);
11923HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnSave_Stub(
11924    IAdviseSink* This);
11925void CALLBACK AsyncIAdviseSink_Begin_OnClose_Proxy(
11926    IAdviseSink* This);
11927HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnClose_Stub(
11928    IAdviseSink* This);
11929void CALLBACK AsyncIAdviseSink_Finish_OnClose_Proxy(
11930    IAdviseSink* This);
11931HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnClose_Stub(
11932    IAdviseSink* This);
11933
11934#endif  /* __AsyncIAdviseSink_INTERFACE_DEFINED__ */
11935
11936#endif
11937#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
11938/*****************************************************************************
11939 * IAdviseSink2 interface
11940 */
11941#ifndef __IAdviseSink2_INTERFACE_DEFINED__
11942#define __IAdviseSink2_INTERFACE_DEFINED__
11943
11944typedef IAdviseSink2 *LPADVISESINK2;
11945DEFINE_GUID(IID_IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
11946#if defined(__cplusplus) && !defined(CINTERFACE)
11947MIDL_INTERFACE("00000125-0000-0000-c000-000000000046")
11948IAdviseSink2 : public IAdviseSink
11949{
11950    virtual void STDMETHODCALLTYPE OnLinkSrcChange(
11951        IMoniker *pmk) = 0;
11952
11953};
11954#ifdef __CRT_UUID_DECL
11955__CRT_UUID_DECL(IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
11956#endif
11957#else
11958typedef struct IAdviseSink2Vtbl {
11959    BEGIN_INTERFACE
11960
11961    /*** IUnknown methods ***/
11962    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11963        IAdviseSink2* This,
11964        REFIID riid,
11965        void **ppvObject);
11966
11967    ULONG (STDMETHODCALLTYPE *AddRef)(
11968        IAdviseSink2* This);
11969
11970    ULONG (STDMETHODCALLTYPE *Release)(
11971        IAdviseSink2* This);
11972
11973    /*** IAdviseSink methods ***/
11974    void (STDMETHODCALLTYPE *OnDataChange)(
11975        IAdviseSink2* This,
11976        FORMATETC *pFormatetc,
11977        STGMEDIUM *pStgmed);
11978
11979    void (STDMETHODCALLTYPE *OnViewChange)(
11980        IAdviseSink2* This,
11981        DWORD dwAspect,
11982        LONG lindex);
11983
11984    void (STDMETHODCALLTYPE *OnRename)(
11985        IAdviseSink2* This,
11986        IMoniker *pmk);
11987
11988    void (STDMETHODCALLTYPE *OnSave)(
11989        IAdviseSink2* This);
11990
11991    void (STDMETHODCALLTYPE *OnClose)(
11992        IAdviseSink2* This);
11993
11994    /*** IAdviseSink2 methods ***/
11995    void (STDMETHODCALLTYPE *OnLinkSrcChange)(
11996        IAdviseSink2* This,
11997        IMoniker *pmk);
11998
11999    END_INTERFACE
12000} IAdviseSink2Vtbl;
12001interface IAdviseSink2 {
12002    CONST_VTBL IAdviseSink2Vtbl* lpVtbl;
12003};
12004
12005#ifdef COBJMACROS
12006#ifndef WIDL_C_INLINE_WRAPPERS
12007/*** IUnknown methods ***/
12008#define IAdviseSink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12009#define IAdviseSink2_AddRef(This) (This)->lpVtbl->AddRef(This)
12010#define IAdviseSink2_Release(This) (This)->lpVtbl->Release(This)
12011/*** IAdviseSink methods ***/
12012#define IAdviseSink2_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->OnDataChange(This,pFormatetc,pStgmed)
12013#define IAdviseSink2_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->OnViewChange(This,dwAspect,lindex)
12014#define IAdviseSink2_OnRename(This,pmk) (This)->lpVtbl->OnRename(This,pmk)
12015#define IAdviseSink2_OnSave(This) (This)->lpVtbl->OnSave(This)
12016#define IAdviseSink2_OnClose(This) (This)->lpVtbl->OnClose(This)
12017/*** IAdviseSink2 methods ***/
12018#define IAdviseSink2_OnLinkSrcChange(This,pmk) (This)->lpVtbl->OnLinkSrcChange(This,pmk)
12019#else
12020/*** IUnknown methods ***/
12021static FORCEINLINE HRESULT IAdviseSink2_QueryInterface(IAdviseSink2* This,REFIID riid,void **ppvObject) {
12022    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12023}
12024static FORCEINLINE ULONG IAdviseSink2_AddRef(IAdviseSink2* This) {
12025    return This->lpVtbl->AddRef(This);
12026}
12027static FORCEINLINE ULONG IAdviseSink2_Release(IAdviseSink2* This) {
12028    return This->lpVtbl->Release(This);
12029}
12030/*** IAdviseSink methods ***/
12031static FORCEINLINE void IAdviseSink2_OnDataChange(IAdviseSink2* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
12032    This->lpVtbl->OnDataChange(This,pFormatetc,pStgmed);
12033}
12034static FORCEINLINE void IAdviseSink2_OnViewChange(IAdviseSink2* This,DWORD dwAspect,LONG lindex) {
12035    This->lpVtbl->OnViewChange(This,dwAspect,lindex);
12036}
12037static FORCEINLINE void IAdviseSink2_OnRename(IAdviseSink2* This,IMoniker *pmk) {
12038    This->lpVtbl->OnRename(This,pmk);
12039}
12040static FORCEINLINE void IAdviseSink2_OnSave(IAdviseSink2* This) {
12041    This->lpVtbl->OnSave(This);
12042}
12043static FORCEINLINE void IAdviseSink2_OnClose(IAdviseSink2* This) {
12044    This->lpVtbl->OnClose(This);
12045}
12046/*** IAdviseSink2 methods ***/
12047static FORCEINLINE void IAdviseSink2_OnLinkSrcChange(IAdviseSink2* This,IMoniker *pmk) {
12048    This->lpVtbl->OnLinkSrcChange(This,pmk);
12049}
12050#endif
12051#endif
12052
12053#endif
12054
12055HRESULT STDMETHODCALLTYPE IAdviseSink2_RemoteOnLinkSrcChange_Proxy(
12056    IAdviseSink2* This,
12057    IMoniker *pmk);
12058void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub(
12059    IRpcStubBuffer* This,
12060    IRpcChannelBuffer* pRpcChannelBuffer,
12061    PRPC_MESSAGE pRpcMessage,
12062    DWORD* pdwStubPhase);
12063void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
12064    IAdviseSink2* This,
12065    IMoniker *pmk);
12066HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
12067    IAdviseSink2* This,
12068    IMoniker *pmk);
12069
12070#endif  /* __IAdviseSink2_INTERFACE_DEFINED__ */
12071
12072/*****************************************************************************
12073 * AsyncIAdviseSink2 interface
12074 */
12075#ifndef __AsyncIAdviseSink2_INTERFACE_DEFINED__
12076#define __AsyncIAdviseSink2_INTERFACE_DEFINED__
12077
12078DEFINE_GUID(IID_AsyncIAdviseSink2, 0x00000151, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12079#if defined(__cplusplus) && !defined(CINTERFACE)
12080MIDL_INTERFACE("00000151-0000-0000-c000-000000000046")
12081AsyncIAdviseSink2 : public IAdviseSink
12082{
12083    virtual void STDMETHODCALLTYPE Begin_OnLinkSrcChange(
12084        IMoniker *pmk) = 0;
12085
12086    virtual void STDMETHODCALLTYPE Finish_OnLinkSrcChange(
12087        ) = 0;
12088
12089};
12090#ifdef __CRT_UUID_DECL
12091__CRT_UUID_DECL(AsyncIAdviseSink2, 0x00000151, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12092#endif
12093#else
12094typedef struct AsyncIAdviseSink2Vtbl {
12095    BEGIN_INTERFACE
12096
12097    /*** IUnknown methods ***/
12098    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12099        AsyncIAdviseSink2* This,
12100        REFIID riid,
12101        void **ppvObject);
12102
12103    ULONG (STDMETHODCALLTYPE *AddRef)(
12104        AsyncIAdviseSink2* This);
12105
12106    ULONG (STDMETHODCALLTYPE *Release)(
12107        AsyncIAdviseSink2* This);
12108
12109    /*** IAdviseSink methods ***/
12110    void (STDMETHODCALLTYPE *Begin_OnDataChange)(
12111        AsyncIAdviseSink2* This,
12112        FORMATETC *pFormatetc,
12113        STGMEDIUM *pStgmed);
12114
12115    void (STDMETHODCALLTYPE *Finish_OnDataChange)(
12116        AsyncIAdviseSink2* This);
12117
12118    void (STDMETHODCALLTYPE *Begin_OnViewChange)(
12119        AsyncIAdviseSink2* This,
12120        DWORD dwAspect,
12121        LONG lindex);
12122
12123    void (STDMETHODCALLTYPE *Finish_OnViewChange)(
12124        AsyncIAdviseSink2* This);
12125
12126    void (STDMETHODCALLTYPE *Begin_OnRename)(
12127        AsyncIAdviseSink2* This,
12128        IMoniker *pmk);
12129
12130    void (STDMETHODCALLTYPE *Finish_OnRename)(
12131        AsyncIAdviseSink2* This);
12132
12133    void (STDMETHODCALLTYPE *Begin_OnSave)(
12134        AsyncIAdviseSink2* This);
12135
12136    void (STDMETHODCALLTYPE *Finish_OnSave)(
12137        AsyncIAdviseSink2* This);
12138
12139    void (STDMETHODCALLTYPE *Begin_OnClose)(
12140        AsyncIAdviseSink2* This);
12141
12142    void (STDMETHODCALLTYPE *Finish_OnClose)(
12143        AsyncIAdviseSink2* This);
12144
12145    /*** IAdviseSink2 methods ***/
12146    void (STDMETHODCALLTYPE *Begin_OnLinkSrcChange)(
12147        AsyncIAdviseSink2* This,
12148        IMoniker *pmk);
12149
12150    void (STDMETHODCALLTYPE *Finish_OnLinkSrcChange)(
12151        AsyncIAdviseSink2* This);
12152
12153    END_INTERFACE
12154} AsyncIAdviseSink2Vtbl;
12155interface AsyncIAdviseSink2 {
12156    CONST_VTBL AsyncIAdviseSink2Vtbl* lpVtbl;
12157};
12158
12159#ifdef COBJMACROS
12160#ifndef WIDL_C_INLINE_WRAPPERS
12161/*** IUnknown methods ***/
12162#define AsyncIAdviseSink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12163#define AsyncIAdviseSink2_AddRef(This) (This)->lpVtbl->AddRef(This)
12164#define AsyncIAdviseSink2_Release(This) (This)->lpVtbl->Release(This)
12165/*** IAdviseSink methods ***/
12166#define AsyncIAdviseSink2_Begin_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed)
12167#define AsyncIAdviseSink2_Finish_OnDataChange(This) (This)->lpVtbl->Finish_OnDataChange(This)
12168#define AsyncIAdviseSink2_Begin_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex)
12169#define AsyncIAdviseSink2_Finish_OnViewChange(This) (This)->lpVtbl->Finish_OnViewChange(This)
12170#define AsyncIAdviseSink2_Begin_OnRename(This,pmk) (This)->lpVtbl->Begin_OnRename(This,pmk)
12171#define AsyncIAdviseSink2_Finish_OnRename(This) (This)->lpVtbl->Finish_OnRename(This)
12172#define AsyncIAdviseSink2_Begin_OnSave(This) (This)->lpVtbl->Begin_OnSave(This)
12173#define AsyncIAdviseSink2_Finish_OnSave(This) (This)->lpVtbl->Finish_OnSave(This)
12174#define AsyncIAdviseSink2_Begin_OnClose(This) (This)->lpVtbl->Begin_OnClose(This)
12175#define AsyncIAdviseSink2_Finish_OnClose(This) (This)->lpVtbl->Finish_OnClose(This)
12176/*** IAdviseSink2 methods ***/
12177#define AsyncIAdviseSink2_Begin_OnLinkSrcChange(This,pmk) (This)->lpVtbl->Begin_OnLinkSrcChange(This,pmk)
12178#define AsyncIAdviseSink2_Finish_OnLinkSrcChange(This) (This)->lpVtbl->Finish_OnLinkSrcChange(This)
12179#else
12180/*** IUnknown methods ***/
12181static FORCEINLINE HRESULT AsyncIAdviseSink2_QueryInterface(AsyncIAdviseSink2* This,REFIID riid,void **ppvObject) {
12182    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12183}
12184static FORCEINLINE ULONG AsyncIAdviseSink2_AddRef(AsyncIAdviseSink2* This) {
12185    return This->lpVtbl->AddRef(This);
12186}
12187static FORCEINLINE ULONG AsyncIAdviseSink2_Release(AsyncIAdviseSink2* This) {
12188    return This->lpVtbl->Release(This);
12189}
12190/*** IAdviseSink methods ***/
12191static FORCEINLINE void Begin_AsyncIAdviseSink2_OnDataChange(AsyncIAdviseSink2* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
12192    This->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed);
12193}
12194static FORCEINLINE void Finish_AsyncIAdviseSink2_OnDataChange(AsyncIAdviseSink2* This) {
12195    This->lpVtbl->Finish_OnDataChange(This);
12196}
12197static FORCEINLINE void Begin_AsyncIAdviseSink2_OnViewChange(AsyncIAdviseSink2* This,DWORD dwAspect,LONG lindex) {
12198    This->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex);
12199}
12200static FORCEINLINE void Finish_AsyncIAdviseSink2_OnViewChange(AsyncIAdviseSink2* This) {
12201    This->lpVtbl->Finish_OnViewChange(This);
12202}
12203static FORCEINLINE void Begin_AsyncIAdviseSink2_OnRename(AsyncIAdviseSink2* This,IMoniker *pmk) {
12204    This->lpVtbl->Begin_OnRename(This,pmk);
12205}
12206static FORCEINLINE void Finish_AsyncIAdviseSink2_OnRename(AsyncIAdviseSink2* This) {
12207    This->lpVtbl->Finish_OnRename(This);
12208}
12209static FORCEINLINE void Begin_AsyncIAdviseSink2_OnSave(AsyncIAdviseSink2* This) {
12210    This->lpVtbl->Begin_OnSave(This);
12211}
12212static FORCEINLINE void Finish_AsyncIAdviseSink2_OnSave(AsyncIAdviseSink2* This) {
12213    This->lpVtbl->Finish_OnSave(This);
12214}
12215static FORCEINLINE void Begin_AsyncIAdviseSink2_OnClose(AsyncIAdviseSink2* This) {
12216    This->lpVtbl->Begin_OnClose(This);
12217}
12218static FORCEINLINE void Finish_AsyncIAdviseSink2_OnClose(AsyncIAdviseSink2* This) {
12219    This->lpVtbl->Finish_OnClose(This);
12220}
12221/*** IAdviseSink2 methods ***/
12222static FORCEINLINE void Begin_AsyncIAdviseSink2_OnLinkSrcChange(AsyncIAdviseSink2* This,IMoniker *pmk) {
12223    This->lpVtbl->Begin_OnLinkSrcChange(This,pmk);
12224}
12225static FORCEINLINE void Finish_AsyncIAdviseSink2_OnLinkSrcChange(AsyncIAdviseSink2* This) {
12226    This->lpVtbl->Finish_OnLinkSrcChange(This);
12227}
12228#endif
12229#endif
12230
12231#endif
12232
12233HRESULT STDMETHODCALLTYPE AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Proxy(
12234    IAdviseSink2* This,
12235    IMoniker *pmk);
12236void __RPC_STUB AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Stub(
12237    IRpcStubBuffer* This,
12238    IRpcChannelBuffer* pRpcChannelBuffer,
12239    PRPC_MESSAGE pRpcMessage,
12240    DWORD* pdwStubPhase);
12241HRESULT STDMETHODCALLTYPE AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Proxy(
12242    IAdviseSink2* This,
12243    IMoniker *pmk);
12244void __RPC_STUB AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Stub(
12245    IRpcStubBuffer* This,
12246    IRpcChannelBuffer* pRpcChannelBuffer,
12247    PRPC_MESSAGE pRpcMessage,
12248    DWORD* pdwStubPhase);
12249void CALLBACK AsyncIAdviseSink2_Begin_OnLinkSrcChange_Proxy(
12250    IAdviseSink2* This,
12251    IMoniker *pmk);
12252HRESULT __RPC_STUB AsyncIAdviseSink2_Begin_OnLinkSrcChange_Stub(
12253    IAdviseSink2* This,
12254    IMoniker *pmk);
12255void CALLBACK AsyncIAdviseSink2_Finish_OnLinkSrcChange_Proxy(
12256    IAdviseSink2* This);
12257HRESULT __RPC_STUB AsyncIAdviseSink2_Finish_OnLinkSrcChange_Stub(
12258    IAdviseSink2* This,
12259    IMoniker *pmk);
12260
12261#endif  /* __AsyncIAdviseSink2_INTERFACE_DEFINED__ */
12262
12263#endif
12264#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
12265/*****************************************************************************
12266 * IDataObject interface
12267 */
12268#ifndef __IDataObject_INTERFACE_DEFINED__
12269#define __IDataObject_INTERFACE_DEFINED__
12270
12271typedef IDataObject *LPDATAOBJECT;
12272typedef enum tagDATADIR {
12273    DATADIR_GET = 1,
12274    DATADIR_SET = 2
12275} DATADIR;
12276DEFINE_GUID(IID_IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12277#if defined(__cplusplus) && !defined(CINTERFACE)
12278MIDL_INTERFACE("0000010e-0000-0000-c000-000000000046")
12279IDataObject : public IUnknown
12280{
12281    virtual HRESULT STDMETHODCALLTYPE GetData(
12282        FORMATETC *pformatetcIn,
12283        STGMEDIUM *pmedium) = 0;
12284
12285    virtual HRESULT STDMETHODCALLTYPE GetDataHere(
12286        FORMATETC *pformatetc,
12287        STGMEDIUM *pmedium) = 0;
12288
12289    virtual HRESULT STDMETHODCALLTYPE QueryGetData(
12290        FORMATETC *pformatetc) = 0;
12291
12292    virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(
12293        FORMATETC *pformatectIn,
12294        FORMATETC *pformatetcOut) = 0;
12295
12296    virtual HRESULT STDMETHODCALLTYPE SetData(
12297        FORMATETC *pformatetc,
12298        STGMEDIUM *pmedium,
12299        WINBOOL fRelease) = 0;
12300
12301    virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc(
12302        DWORD dwDirection,
12303        IEnumFORMATETC **ppenumFormatEtc) = 0;
12304
12305    virtual HRESULT STDMETHODCALLTYPE DAdvise(
12306        FORMATETC *pformatetc,
12307        DWORD advf,
12308        IAdviseSink *pAdvSink,
12309        DWORD *pdwConnection) = 0;
12310
12311    virtual HRESULT STDMETHODCALLTYPE DUnadvise(
12312        DWORD dwConnection) = 0;
12313
12314    virtual HRESULT STDMETHODCALLTYPE EnumDAdvise(
12315        IEnumSTATDATA **ppenumAdvise) = 0;
12316
12317};
12318#ifdef __CRT_UUID_DECL
12319__CRT_UUID_DECL(IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12320#endif
12321#else
12322typedef struct IDataObjectVtbl {
12323    BEGIN_INTERFACE
12324
12325    /*** IUnknown methods ***/
12326    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12327        IDataObject* This,
12328        REFIID riid,
12329        void **ppvObject);
12330
12331    ULONG (STDMETHODCALLTYPE *AddRef)(
12332        IDataObject* This);
12333
12334    ULONG (STDMETHODCALLTYPE *Release)(
12335        IDataObject* This);
12336
12337    /*** IDataObject methods ***/
12338    HRESULT (STDMETHODCALLTYPE *GetData)(
12339        IDataObject* This,
12340        FORMATETC *pformatetcIn,
12341        STGMEDIUM *pmedium);
12342
12343    HRESULT (STDMETHODCALLTYPE *GetDataHere)(
12344        IDataObject* This,
12345        FORMATETC *pformatetc,
12346        STGMEDIUM *pmedium);
12347
12348    HRESULT (STDMETHODCALLTYPE *QueryGetData)(
12349        IDataObject* This,
12350        FORMATETC *pformatetc);
12351
12352    HRESULT (STDMETHODCALLTYPE *GetCanonicalFormatEtc)(
12353        IDataObject* This,
12354        FORMATETC *pformatectIn,
12355        FORMATETC *pformatetcOut);
12356
12357    HRESULT (STDMETHODCALLTYPE *SetData)(
12358        IDataObject* This,
12359        FORMATETC *pformatetc,
12360        STGMEDIUM *pmedium,
12361        WINBOOL fRelease);
12362
12363    HRESULT (STDMETHODCALLTYPE *EnumFormatEtc)(
12364        IDataObject* This,
12365        DWORD dwDirection,
12366        IEnumFORMATETC **ppenumFormatEtc);
12367
12368    HRESULT (STDMETHODCALLTYPE *DAdvise)(
12369        IDataObject* This,
12370        FORMATETC *pformatetc,
12371        DWORD advf,
12372        IAdviseSink *pAdvSink,
12373        DWORD *pdwConnection);
12374
12375    HRESULT (STDMETHODCALLTYPE *DUnadvise)(
12376        IDataObject* This,
12377        DWORD dwConnection);
12378
12379    HRESULT (STDMETHODCALLTYPE *EnumDAdvise)(
12380        IDataObject* This,
12381        IEnumSTATDATA **ppenumAdvise);
12382
12383    END_INTERFACE
12384} IDataObjectVtbl;
12385interface IDataObject {
12386    CONST_VTBL IDataObjectVtbl* lpVtbl;
12387};
12388
12389#ifdef COBJMACROS
12390#ifndef WIDL_C_INLINE_WRAPPERS
12391/*** IUnknown methods ***/
12392#define IDataObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12393#define IDataObject_AddRef(This) (This)->lpVtbl->AddRef(This)
12394#define IDataObject_Release(This) (This)->lpVtbl->Release(This)
12395/*** IDataObject methods ***/
12396#define IDataObject_GetData(This,pformatetcIn,pmedium) (This)->lpVtbl->GetData(This,pformatetcIn,pmedium)
12397#define IDataObject_GetDataHere(This,pformatetc,pmedium) (This)->lpVtbl->GetDataHere(This,pformatetc,pmedium)
12398#define IDataObject_QueryGetData(This,pformatetc) (This)->lpVtbl->QueryGetData(This,pformatetc)
12399#define IDataObject_GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut) (This)->lpVtbl->GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut)
12400#define IDataObject_SetData(This,pformatetc,pmedium,fRelease) (This)->lpVtbl->SetData(This,pformatetc,pmedium,fRelease)
12401#define IDataObject_EnumFormatEtc(This,dwDirection,ppenumFormatEtc) (This)->lpVtbl->EnumFormatEtc(This,dwDirection,ppenumFormatEtc)
12402#define IDataObject_DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection) (This)->lpVtbl->DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection)
12403#define IDataObject_DUnadvise(This,dwConnection) (This)->lpVtbl->DUnadvise(This,dwConnection)
12404#define IDataObject_EnumDAdvise(This,ppenumAdvise) (This)->lpVtbl->EnumDAdvise(This,ppenumAdvise)
12405#else
12406/*** IUnknown methods ***/
12407static FORCEINLINE HRESULT IDataObject_QueryInterface(IDataObject* This,REFIID riid,void **ppvObject) {
12408    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12409}
12410static FORCEINLINE ULONG IDataObject_AddRef(IDataObject* This) {
12411    return This->lpVtbl->AddRef(This);
12412}
12413static FORCEINLINE ULONG IDataObject_Release(IDataObject* This) {
12414    return This->lpVtbl->Release(This);
12415}
12416/*** IDataObject methods ***/
12417static FORCEINLINE HRESULT IDataObject_GetData(IDataObject* This,FORMATETC *pformatetcIn,STGMEDIUM *pmedium) {
12418    return This->lpVtbl->GetData(This,pformatetcIn,pmedium);
12419}
12420static FORCEINLINE HRESULT IDataObject_GetDataHere(IDataObject* This,FORMATETC *pformatetc,STGMEDIUM *pmedium) {
12421    return This->lpVtbl->GetDataHere(This,pformatetc,pmedium);
12422}
12423static FORCEINLINE HRESULT IDataObject_QueryGetData(IDataObject* This,FORMATETC *pformatetc) {
12424    return This->lpVtbl->QueryGetData(This,pformatetc);
12425}
12426static FORCEINLINE HRESULT IDataObject_GetCanonicalFormatEtc(IDataObject* This,FORMATETC *pformatectIn,FORMATETC *pformatetcOut) {
12427    return This->lpVtbl->GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut);
12428}
12429static FORCEINLINE HRESULT IDataObject_SetData(IDataObject* This,FORMATETC *pformatetc,STGMEDIUM *pmedium,WINBOOL fRelease) {
12430    return This->lpVtbl->SetData(This,pformatetc,pmedium,fRelease);
12431}
12432static FORCEINLINE HRESULT IDataObject_EnumFormatEtc(IDataObject* This,DWORD dwDirection,IEnumFORMATETC **ppenumFormatEtc) {
12433    return This->lpVtbl->EnumFormatEtc(This,dwDirection,ppenumFormatEtc);
12434}
12435static FORCEINLINE HRESULT IDataObject_DAdvise(IDataObject* This,FORMATETC *pformatetc,DWORD advf,IAdviseSink *pAdvSink,DWORD *pdwConnection) {
12436    return This->lpVtbl->DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection);
12437}
12438static FORCEINLINE HRESULT IDataObject_DUnadvise(IDataObject* This,DWORD dwConnection) {
12439    return This->lpVtbl->DUnadvise(This,dwConnection);
12440}
12441static FORCEINLINE HRESULT IDataObject_EnumDAdvise(IDataObject* This,IEnumSTATDATA **ppenumAdvise) {
12442    return This->lpVtbl->EnumDAdvise(This,ppenumAdvise);
12443}
12444#endif
12445#endif
12446
12447#endif
12448
12449HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetData_Proxy(
12450    IDataObject* This,
12451    FORMATETC *pformatetcIn,
12452    STGMEDIUM *pRemoteMedium);
12453void __RPC_STUB IDataObject_RemoteGetData_Stub(
12454    IRpcStubBuffer* This,
12455    IRpcChannelBuffer* pRpcChannelBuffer,
12456    PRPC_MESSAGE pRpcMessage,
12457    DWORD* pdwStubPhase);
12458HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetDataHere_Proxy(
12459    IDataObject* This,
12460    FORMATETC *pformatetc,
12461    STGMEDIUM *pRemoteMedium);
12462void __RPC_STUB IDataObject_RemoteGetDataHere_Stub(
12463    IRpcStubBuffer* This,
12464    IRpcChannelBuffer* pRpcChannelBuffer,
12465    PRPC_MESSAGE pRpcMessage,
12466    DWORD* pdwStubPhase);
12467HRESULT STDMETHODCALLTYPE IDataObject_QueryGetData_Proxy(
12468    IDataObject* This,
12469    FORMATETC *pformatetc);
12470void __RPC_STUB IDataObject_QueryGetData_Stub(
12471    IRpcStubBuffer* This,
12472    IRpcChannelBuffer* pRpcChannelBuffer,
12473    PRPC_MESSAGE pRpcMessage,
12474    DWORD* pdwStubPhase);
12475HRESULT STDMETHODCALLTYPE IDataObject_GetCanonicalFormatEtc_Proxy(
12476    IDataObject* This,
12477    FORMATETC *pformatectIn,
12478    FORMATETC *pformatetcOut);
12479void __RPC_STUB IDataObject_GetCanonicalFormatEtc_Stub(
12480    IRpcStubBuffer* This,
12481    IRpcChannelBuffer* pRpcChannelBuffer,
12482    PRPC_MESSAGE pRpcMessage,
12483    DWORD* pdwStubPhase);
12484HRESULT STDMETHODCALLTYPE IDataObject_RemoteSetData_Proxy(
12485    IDataObject* This,
12486    FORMATETC *pformatetc,
12487    FLAG_STGMEDIUM *pmedium,
12488    WINBOOL fRelease);
12489void __RPC_STUB IDataObject_RemoteSetData_Stub(
12490    IRpcStubBuffer* This,
12491    IRpcChannelBuffer* pRpcChannelBuffer,
12492    PRPC_MESSAGE pRpcMessage,
12493    DWORD* pdwStubPhase);
12494HRESULT STDMETHODCALLTYPE IDataObject_EnumFormatEtc_Proxy(
12495    IDataObject* This,
12496    DWORD dwDirection,
12497    IEnumFORMATETC **ppenumFormatEtc);
12498void __RPC_STUB IDataObject_EnumFormatEtc_Stub(
12499    IRpcStubBuffer* This,
12500    IRpcChannelBuffer* pRpcChannelBuffer,
12501    PRPC_MESSAGE pRpcMessage,
12502    DWORD* pdwStubPhase);
12503HRESULT STDMETHODCALLTYPE IDataObject_DAdvise_Proxy(
12504    IDataObject* This,
12505    FORMATETC *pformatetc,
12506    DWORD advf,
12507    IAdviseSink *pAdvSink,
12508    DWORD *pdwConnection);
12509void __RPC_STUB IDataObject_DAdvise_Stub(
12510    IRpcStubBuffer* This,
12511    IRpcChannelBuffer* pRpcChannelBuffer,
12512    PRPC_MESSAGE pRpcMessage,
12513    DWORD* pdwStubPhase);
12514HRESULT STDMETHODCALLTYPE IDataObject_DUnadvise_Proxy(
12515    IDataObject* This,
12516    DWORD dwConnection);
12517void __RPC_STUB IDataObject_DUnadvise_Stub(
12518    IRpcStubBuffer* This,
12519    IRpcChannelBuffer* pRpcChannelBuffer,
12520    PRPC_MESSAGE pRpcMessage,
12521    DWORD* pdwStubPhase);
12522HRESULT STDMETHODCALLTYPE IDataObject_EnumDAdvise_Proxy(
12523    IDataObject* This,
12524    IEnumSTATDATA **ppenumAdvise);
12525void __RPC_STUB IDataObject_EnumDAdvise_Stub(
12526    IRpcStubBuffer* This,
12527    IRpcChannelBuffer* pRpcChannelBuffer,
12528    PRPC_MESSAGE pRpcMessage,
12529    DWORD* pdwStubPhase);
12530HRESULT CALLBACK IDataObject_GetData_Proxy(
12531    IDataObject* This,
12532    FORMATETC *pformatetcIn,
12533    STGMEDIUM *pmedium);
12534HRESULT __RPC_STUB IDataObject_GetData_Stub(
12535    IDataObject* This,
12536    FORMATETC *pformatetcIn,
12537    STGMEDIUM *pRemoteMedium);
12538HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
12539    IDataObject* This,
12540    FORMATETC *pformatetc,
12541    STGMEDIUM *pmedium);
12542HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
12543    IDataObject* This,
12544    FORMATETC *pformatetc,
12545    STGMEDIUM *pRemoteMedium);
12546HRESULT CALLBACK IDataObject_SetData_Proxy(
12547    IDataObject* This,
12548    FORMATETC *pformatetc,
12549    STGMEDIUM *pmedium,
12550    WINBOOL fRelease);
12551HRESULT __RPC_STUB IDataObject_SetData_Stub(
12552    IDataObject* This,
12553    FORMATETC *pformatetc,
12554    FLAG_STGMEDIUM *pmedium,
12555    WINBOOL fRelease);
12556
12557#endif  /* __IDataObject_INTERFACE_DEFINED__ */
12558
12559#endif
12560#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
12561/*****************************************************************************
12562 * IDataAdviseHolder interface
12563 */
12564#ifndef __IDataAdviseHolder_INTERFACE_DEFINED__
12565#define __IDataAdviseHolder_INTERFACE_DEFINED__
12566
12567typedef IDataAdviseHolder *LPDATAADVISEHOLDER;
12568DEFINE_GUID(IID_IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12569#if defined(__cplusplus) && !defined(CINTERFACE)
12570MIDL_INTERFACE("00000110-0000-0000-c000-000000000046")
12571IDataAdviseHolder : public IUnknown
12572{
12573    virtual HRESULT STDMETHODCALLTYPE Advise(
12574        IDataObject *pDataObject,
12575        FORMATETC *pFetc,
12576        DWORD advf,
12577        IAdviseSink *pAdvise,
12578        DWORD *pdwConnection) = 0;
12579
12580    virtual HRESULT STDMETHODCALLTYPE Unadvise(
12581        DWORD dwConnection) = 0;
12582
12583    virtual HRESULT STDMETHODCALLTYPE EnumAdvise(
12584        IEnumSTATDATA **ppenumAdvise) = 0;
12585
12586    virtual HRESULT STDMETHODCALLTYPE SendOnDataChange(
12587        IDataObject *pDataObject,
12588        DWORD dwReserved,
12589        DWORD advf) = 0;
12590
12591};
12592#ifdef __CRT_UUID_DECL
12593__CRT_UUID_DECL(IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12594#endif
12595#else
12596typedef struct IDataAdviseHolderVtbl {
12597    BEGIN_INTERFACE
12598
12599    /*** IUnknown methods ***/
12600    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12601        IDataAdviseHolder* This,
12602        REFIID riid,
12603        void **ppvObject);
12604
12605    ULONG (STDMETHODCALLTYPE *AddRef)(
12606        IDataAdviseHolder* This);
12607
12608    ULONG (STDMETHODCALLTYPE *Release)(
12609        IDataAdviseHolder* This);
12610
12611    /*** IDataAdviseHolder methods ***/
12612    HRESULT (STDMETHODCALLTYPE *Advise)(
12613        IDataAdviseHolder* This,
12614        IDataObject *pDataObject,
12615        FORMATETC *pFetc,
12616        DWORD advf,
12617        IAdviseSink *pAdvise,
12618        DWORD *pdwConnection);
12619
12620    HRESULT (STDMETHODCALLTYPE *Unadvise)(
12621        IDataAdviseHolder* This,
12622        DWORD dwConnection);
12623
12624    HRESULT (STDMETHODCALLTYPE *EnumAdvise)(
12625        IDataAdviseHolder* This,
12626        IEnumSTATDATA **ppenumAdvise);
12627
12628    HRESULT (STDMETHODCALLTYPE *SendOnDataChange)(
12629        IDataAdviseHolder* This,
12630        IDataObject *pDataObject,
12631        DWORD dwReserved,
12632        DWORD advf);
12633
12634    END_INTERFACE
12635} IDataAdviseHolderVtbl;
12636interface IDataAdviseHolder {
12637    CONST_VTBL IDataAdviseHolderVtbl* lpVtbl;
12638};
12639
12640#ifdef COBJMACROS
12641#ifndef WIDL_C_INLINE_WRAPPERS
12642/*** IUnknown methods ***/
12643#define IDataAdviseHolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12644#define IDataAdviseHolder_AddRef(This) (This)->lpVtbl->AddRef(This)
12645#define IDataAdviseHolder_Release(This) (This)->lpVtbl->Release(This)
12646/*** IDataAdviseHolder methods ***/
12647#define IDataAdviseHolder_Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection) (This)->lpVtbl->Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection)
12648#define IDataAdviseHolder_Unadvise(This,dwConnection) (This)->lpVtbl->Unadvise(This,dwConnection)
12649#define IDataAdviseHolder_EnumAdvise(This,ppenumAdvise) (This)->lpVtbl->EnumAdvise(This,ppenumAdvise)
12650#define IDataAdviseHolder_SendOnDataChange(This,pDataObject,dwReserved,advf) (This)->lpVtbl->SendOnDataChange(This,pDataObject,dwReserved,advf)
12651#else
12652/*** IUnknown methods ***/
12653static FORCEINLINE HRESULT IDataAdviseHolder_QueryInterface(IDataAdviseHolder* This,REFIID riid,void **ppvObject) {
12654    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12655}
12656static FORCEINLINE ULONG IDataAdviseHolder_AddRef(IDataAdviseHolder* This) {
12657    return This->lpVtbl->AddRef(This);
12658}
12659static FORCEINLINE ULONG IDataAdviseHolder_Release(IDataAdviseHolder* This) {
12660    return This->lpVtbl->Release(This);
12661}
12662/*** IDataAdviseHolder methods ***/
12663static FORCEINLINE HRESULT IDataAdviseHolder_Advise(IDataAdviseHolder* This,IDataObject *pDataObject,FORMATETC *pFetc,DWORD advf,IAdviseSink *pAdvise,DWORD *pdwConnection) {
12664    return This->lpVtbl->Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection);
12665}
12666static FORCEINLINE HRESULT IDataAdviseHolder_Unadvise(IDataAdviseHolder* This,DWORD dwConnection) {
12667    return This->lpVtbl->Unadvise(This,dwConnection);
12668}
12669static FORCEINLINE HRESULT IDataAdviseHolder_EnumAdvise(IDataAdviseHolder* This,IEnumSTATDATA **ppenumAdvise) {
12670    return This->lpVtbl->EnumAdvise(This,ppenumAdvise);
12671}
12672static FORCEINLINE HRESULT IDataAdviseHolder_SendOnDataChange(IDataAdviseHolder* This,IDataObject *pDataObject,DWORD dwReserved,DWORD advf) {
12673    return This->lpVtbl->SendOnDataChange(This,pDataObject,dwReserved,advf);
12674}
12675#endif
12676#endif
12677
12678#endif
12679
12680HRESULT STDMETHODCALLTYPE IDataAdviseHolder_Advise_Proxy(
12681    IDataAdviseHolder* This,
12682    IDataObject *pDataObject,
12683    FORMATETC *pFetc,
12684    DWORD advf,
12685    IAdviseSink *pAdvise,
12686    DWORD *pdwConnection);
12687void __RPC_STUB IDataAdviseHolder_Advise_Stub(
12688    IRpcStubBuffer* This,
12689    IRpcChannelBuffer* pRpcChannelBuffer,
12690    PRPC_MESSAGE pRpcMessage,
12691    DWORD* pdwStubPhase);
12692HRESULT STDMETHODCALLTYPE IDataAdviseHolder_Unadvise_Proxy(
12693    IDataAdviseHolder* This,
12694    DWORD dwConnection);
12695void __RPC_STUB IDataAdviseHolder_Unadvise_Stub(
12696    IRpcStubBuffer* This,
12697    IRpcChannelBuffer* pRpcChannelBuffer,
12698    PRPC_MESSAGE pRpcMessage,
12699    DWORD* pdwStubPhase);
12700HRESULT STDMETHODCALLTYPE IDataAdviseHolder_EnumAdvise_Proxy(
12701    IDataAdviseHolder* This,
12702    IEnumSTATDATA **ppenumAdvise);
12703void __RPC_STUB IDataAdviseHolder_EnumAdvise_Stub(
12704    IRpcStubBuffer* This,
12705    IRpcChannelBuffer* pRpcChannelBuffer,
12706    PRPC_MESSAGE pRpcMessage,
12707    DWORD* pdwStubPhase);
12708HRESULT STDMETHODCALLTYPE IDataAdviseHolder_SendOnDataChange_Proxy(
12709    IDataAdviseHolder* This,
12710    IDataObject *pDataObject,
12711    DWORD dwReserved,
12712    DWORD advf);
12713void __RPC_STUB IDataAdviseHolder_SendOnDataChange_Stub(
12714    IRpcStubBuffer* This,
12715    IRpcChannelBuffer* pRpcChannelBuffer,
12716    PRPC_MESSAGE pRpcMessage,
12717    DWORD* pdwStubPhase);
12718
12719#endif  /* __IDataAdviseHolder_INTERFACE_DEFINED__ */
12720
12721/*****************************************************************************
12722 * IMessageFilter interface
12723 */
12724#ifndef __IMessageFilter_INTERFACE_DEFINED__
12725#define __IMessageFilter_INTERFACE_DEFINED__
12726
12727typedef IMessageFilter *LPMESSAGEFILTER;
12728typedef enum tagCALLTYPE {
12729    CALLTYPE_TOPLEVEL = 1,
12730    CALLTYPE_NESTED = 2,
12731    CALLTYPE_ASYNC = 3,
12732    CALLTYPE_TOPLEVEL_CALLPENDING = 4,
12733    CALLTYPE_ASYNC_CALLPENDING = 5
12734} CALLTYPE;
12735typedef enum tagSERVERCALL {
12736    SERVERCALL_ISHANDLED = 0,
12737    SERVERCALL_REJECTED = 1,
12738    SERVERCALL_RETRYLATER = 2
12739} SERVERCALL;
12740typedef enum tagPENDINGTYPE {
12741    PENDINGTYPE_TOPLEVEL = 1,
12742    PENDINGTYPE_NESTED = 2
12743} PENDINGTYPE;
12744typedef enum tagPENDINGMSG {
12745    PENDINGMSG_CANCELCALL = 0,
12746    PENDINGMSG_WAITNOPROCESS = 1,
12747    PENDINGMSG_WAITDEFPROCESS = 2
12748} PENDINGMSG;
12749typedef struct tagINTERFACEINFO {
12750    IUnknown *pUnk;
12751    IID iid;
12752    WORD wMethod;
12753} INTERFACEINFO;
12754typedef struct tagINTERFACEINFO *LPINTERFACEINFO;
12755DEFINE_GUID(IID_IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12756#if defined(__cplusplus) && !defined(CINTERFACE)
12757MIDL_INTERFACE("00000016-0000-0000-c000-000000000046")
12758IMessageFilter : public IUnknown
12759{
12760    virtual DWORD STDMETHODCALLTYPE HandleInComingCall(
12761        DWORD dwCallType,
12762        HTASK htaskCaller,
12763        DWORD dwTickCount,
12764        LPINTERFACEINFO lpInterfaceInfo) = 0;
12765
12766    virtual DWORD STDMETHODCALLTYPE RetryRejectedCall(
12767        HTASK htaskCallee,
12768        DWORD dwTickCount,
12769        DWORD dwRejectType) = 0;
12770
12771    virtual DWORD STDMETHODCALLTYPE MessagePending(
12772        HTASK htaskCallee,
12773        DWORD dwTickCount,
12774        DWORD dwPendingType) = 0;
12775
12776};
12777#ifdef __CRT_UUID_DECL
12778__CRT_UUID_DECL(IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12779#endif
12780#else
12781typedef struct IMessageFilterVtbl {
12782    BEGIN_INTERFACE
12783
12784    /*** IUnknown methods ***/
12785    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12786        IMessageFilter* This,
12787        REFIID riid,
12788        void **ppvObject);
12789
12790    ULONG (STDMETHODCALLTYPE *AddRef)(
12791        IMessageFilter* This);
12792
12793    ULONG (STDMETHODCALLTYPE *Release)(
12794        IMessageFilter* This);
12795
12796    /*** IMessageFilter methods ***/
12797    DWORD (STDMETHODCALLTYPE *HandleInComingCall)(
12798        IMessageFilter* This,
12799        DWORD dwCallType,
12800        HTASK htaskCaller,
12801        DWORD dwTickCount,
12802        LPINTERFACEINFO lpInterfaceInfo);
12803
12804    DWORD (STDMETHODCALLTYPE *RetryRejectedCall)(
12805        IMessageFilter* This,
12806        HTASK htaskCallee,
12807        DWORD dwTickCount,
12808        DWORD dwRejectType);
12809
12810    DWORD (STDMETHODCALLTYPE *MessagePending)(
12811        IMessageFilter* This,
12812        HTASK htaskCallee,
12813        DWORD dwTickCount,
12814        DWORD dwPendingType);
12815
12816    END_INTERFACE
12817} IMessageFilterVtbl;
12818interface IMessageFilter {
12819    CONST_VTBL IMessageFilterVtbl* lpVtbl;
12820};
12821
12822#ifdef COBJMACROS
12823#ifndef WIDL_C_INLINE_WRAPPERS
12824/*** IUnknown methods ***/
12825#define IMessageFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12826#define IMessageFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
12827#define IMessageFilter_Release(This) (This)->lpVtbl->Release(This)
12828/*** IMessageFilter methods ***/
12829#define IMessageFilter_HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo) (This)->lpVtbl->HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo)
12830#define IMessageFilter_RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType) (This)->lpVtbl->RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType)
12831#define IMessageFilter_MessagePending(This,htaskCallee,dwTickCount,dwPendingType) (This)->lpVtbl->MessagePending(This,htaskCallee,dwTickCount,dwPendingType)
12832#else
12833/*** IUnknown methods ***/
12834static FORCEINLINE HRESULT IMessageFilter_QueryInterface(IMessageFilter* This,REFIID riid,void **ppvObject) {
12835    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12836}
12837static FORCEINLINE ULONG IMessageFilter_AddRef(IMessageFilter* This) {
12838    return This->lpVtbl->AddRef(This);
12839}
12840static FORCEINLINE ULONG IMessageFilter_Release(IMessageFilter* This) {
12841    return This->lpVtbl->Release(This);
12842}
12843/*** IMessageFilter methods ***/
12844static FORCEINLINE DWORD IMessageFilter_HandleInComingCall(IMessageFilter* This,DWORD dwCallType,HTASK htaskCaller,DWORD dwTickCount,LPINTERFACEINFO lpInterfaceInfo) {
12845    return This->lpVtbl->HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo);
12846}
12847static FORCEINLINE DWORD IMessageFilter_RetryRejectedCall(IMessageFilter* This,HTASK htaskCallee,DWORD dwTickCount,DWORD dwRejectType) {
12848    return This->lpVtbl->RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType);
12849}
12850static FORCEINLINE DWORD IMessageFilter_MessagePending(IMessageFilter* This,HTASK htaskCallee,DWORD dwTickCount,DWORD dwPendingType) {
12851    return This->lpVtbl->MessagePending(This,htaskCallee,dwTickCount,dwPendingType);
12852}
12853#endif
12854#endif
12855
12856#endif
12857
12858DWORD STDMETHODCALLTYPE IMessageFilter_HandleInComingCall_Proxy(
12859    IMessageFilter* This,
12860    DWORD dwCallType,
12861    HTASK htaskCaller,
12862    DWORD dwTickCount,
12863    LPINTERFACEINFO lpInterfaceInfo);
12864void __RPC_STUB IMessageFilter_HandleInComingCall_Stub(
12865    IRpcStubBuffer* This,
12866    IRpcChannelBuffer* pRpcChannelBuffer,
12867    PRPC_MESSAGE pRpcMessage,
12868    DWORD* pdwStubPhase);
12869DWORD STDMETHODCALLTYPE IMessageFilter_RetryRejectedCall_Proxy(
12870    IMessageFilter* This,
12871    HTASK htaskCallee,
12872    DWORD dwTickCount,
12873    DWORD dwRejectType);
12874void __RPC_STUB IMessageFilter_RetryRejectedCall_Stub(
12875    IRpcStubBuffer* This,
12876    IRpcChannelBuffer* pRpcChannelBuffer,
12877    PRPC_MESSAGE pRpcMessage,
12878    DWORD* pdwStubPhase);
12879DWORD STDMETHODCALLTYPE IMessageFilter_MessagePending_Proxy(
12880    IMessageFilter* This,
12881    HTASK htaskCallee,
12882    DWORD dwTickCount,
12883    DWORD dwPendingType);
12884void __RPC_STUB IMessageFilter_MessagePending_Stub(
12885    IRpcStubBuffer* This,
12886    IRpcChannelBuffer* pRpcChannelBuffer,
12887    PRPC_MESSAGE pRpcMessage,
12888    DWORD* pdwStubPhase);
12889
12890#endif  /* __IMessageFilter_INTERFACE_DEFINED__ */
12891
12892
12893extern const FMTID FMTID_SummaryInformation;
12894
12895extern const FMTID FMTID_DocSummaryInformation;
12896
12897extern const FMTID FMTID_UserDefinedProperties;
12898
12899extern const FMTID FMTID_DiscardableInformation;
12900
12901extern const FMTID FMTID_ImageSummaryInformation;
12902
12903extern const FMTID FMTID_AudioSummaryInformation;
12904
12905extern const FMTID FMTID_VideoSummaryInformation;
12906
12907extern const FMTID FMTID_MediaFileSummaryInformation;
12908
12909/*****************************************************************************
12910 * IClassActivator interface
12911 */
12912#ifndef __IClassActivator_INTERFACE_DEFINED__
12913#define __IClassActivator_INTERFACE_DEFINED__
12914
12915DEFINE_GUID(IID_IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12916#if defined(__cplusplus) && !defined(CINTERFACE)
12917MIDL_INTERFACE("00000140-0000-0000-c000-000000000046")
12918IClassActivator : public IUnknown
12919{
12920    virtual HRESULT STDMETHODCALLTYPE GetClassObject(
12921        REFCLSID rclsid,
12922        DWORD dwClassContext,
12923        LCID locale,
12924        REFIID riid,
12925        void **ppv) = 0;
12926
12927};
12928#ifdef __CRT_UUID_DECL
12929__CRT_UUID_DECL(IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12930#endif
12931#else
12932typedef struct IClassActivatorVtbl {
12933    BEGIN_INTERFACE
12934
12935    /*** IUnknown methods ***/
12936    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12937        IClassActivator* This,
12938        REFIID riid,
12939        void **ppvObject);
12940
12941    ULONG (STDMETHODCALLTYPE *AddRef)(
12942        IClassActivator* This);
12943
12944    ULONG (STDMETHODCALLTYPE *Release)(
12945        IClassActivator* This);
12946
12947    /*** IClassActivator methods ***/
12948    HRESULT (STDMETHODCALLTYPE *GetClassObject)(
12949        IClassActivator* This,
12950        REFCLSID rclsid,
12951        DWORD dwClassContext,
12952        LCID locale,
12953        REFIID riid,
12954        void **ppv);
12955
12956    END_INTERFACE
12957} IClassActivatorVtbl;
12958interface IClassActivator {
12959    CONST_VTBL IClassActivatorVtbl* lpVtbl;
12960};
12961
12962#ifdef COBJMACROS
12963#ifndef WIDL_C_INLINE_WRAPPERS
12964/*** IUnknown methods ***/
12965#define IClassActivator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12966#define IClassActivator_AddRef(This) (This)->lpVtbl->AddRef(This)
12967#define IClassActivator_Release(This) (This)->lpVtbl->Release(This)
12968/*** IClassActivator methods ***/
12969#define IClassActivator_GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv) (This)->lpVtbl->GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv)
12970#else
12971/*** IUnknown methods ***/
12972static FORCEINLINE HRESULT IClassActivator_QueryInterface(IClassActivator* This,REFIID riid,void **ppvObject) {
12973    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12974}
12975static FORCEINLINE ULONG IClassActivator_AddRef(IClassActivator* This) {
12976    return This->lpVtbl->AddRef(This);
12977}
12978static FORCEINLINE ULONG IClassActivator_Release(IClassActivator* This) {
12979    return This->lpVtbl->Release(This);
12980}
12981/*** IClassActivator methods ***/
12982static FORCEINLINE HRESULT IClassActivator_GetClassObject(IClassActivator* This,REFCLSID rclsid,DWORD dwClassContext,LCID locale,REFIID riid,void **ppv) {
12983    return This->lpVtbl->GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv);
12984}
12985#endif
12986#endif
12987
12988#endif
12989
12990HRESULT STDMETHODCALLTYPE IClassActivator_GetClassObject_Proxy(
12991    IClassActivator* This,
12992    REFCLSID rclsid,
12993    DWORD dwClassContext,
12994    LCID locale,
12995    REFIID riid,
12996    void **ppv);
12997void __RPC_STUB IClassActivator_GetClassObject_Stub(
12998    IRpcStubBuffer* This,
12999    IRpcChannelBuffer* pRpcChannelBuffer,
13000    PRPC_MESSAGE pRpcMessage,
13001    DWORD* pdwStubPhase);
13002
13003#endif  /* __IClassActivator_INTERFACE_DEFINED__ */
13004
13005#endif
13006#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
13007/*****************************************************************************
13008 * IFillLockBytes interface
13009 */
13010#ifndef __IFillLockBytes_INTERFACE_DEFINED__
13011#define __IFillLockBytes_INTERFACE_DEFINED__
13012
13013DEFINE_GUID(IID_IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5);
13014#if defined(__cplusplus) && !defined(CINTERFACE)
13015MIDL_INTERFACE("99caf010-415e-11cf-8814-00aa00b569f5")
13016IFillLockBytes : public IUnknown
13017{
13018    virtual HRESULT STDMETHODCALLTYPE FillAppend(
13019        const void *pv,
13020        ULONG cb,
13021        ULONG *pcbWritten) = 0;
13022
13023    virtual HRESULT STDMETHODCALLTYPE FillAt(
13024        ULARGE_INTEGER ulOffset,
13025        const void *pv,
13026        ULONG cb,
13027        ULONG *pcbWritten) = 0;
13028
13029    virtual HRESULT STDMETHODCALLTYPE SetFillSize(
13030        ULARGE_INTEGER ulSize) = 0;
13031
13032    virtual HRESULT STDMETHODCALLTYPE Terminate(
13033        WINBOOL bCanceled) = 0;
13034
13035};
13036#ifdef __CRT_UUID_DECL
13037__CRT_UUID_DECL(IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5)
13038#endif
13039#else
13040typedef struct IFillLockBytesVtbl {
13041    BEGIN_INTERFACE
13042
13043    /*** IUnknown methods ***/
13044    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13045        IFillLockBytes* This,
13046        REFIID riid,
13047        void **ppvObject);
13048
13049    ULONG (STDMETHODCALLTYPE *AddRef)(
13050        IFillLockBytes* This);
13051
13052    ULONG (STDMETHODCALLTYPE *Release)(
13053        IFillLockBytes* This);
13054
13055    /*** IFillLockBytes methods ***/
13056    HRESULT (STDMETHODCALLTYPE *FillAppend)(
13057        IFillLockBytes* This,
13058        const void *pv,
13059        ULONG cb,
13060        ULONG *pcbWritten);
13061
13062    HRESULT (STDMETHODCALLTYPE *FillAt)(
13063        IFillLockBytes* This,
13064        ULARGE_INTEGER ulOffset,
13065        const void *pv,
13066        ULONG cb,
13067        ULONG *pcbWritten);
13068
13069    HRESULT (STDMETHODCALLTYPE *SetFillSize)(
13070        IFillLockBytes* This,
13071        ULARGE_INTEGER ulSize);
13072
13073    HRESULT (STDMETHODCALLTYPE *Terminate)(
13074        IFillLockBytes* This,
13075        WINBOOL bCanceled);
13076
13077    END_INTERFACE
13078} IFillLockBytesVtbl;
13079interface IFillLockBytes {
13080    CONST_VTBL IFillLockBytesVtbl* lpVtbl;
13081};
13082
13083#ifdef COBJMACROS
13084#ifndef WIDL_C_INLINE_WRAPPERS
13085/*** IUnknown methods ***/
13086#define IFillLockBytes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13087#define IFillLockBytes_AddRef(This) (This)->lpVtbl->AddRef(This)
13088#define IFillLockBytes_Release(This) (This)->lpVtbl->Release(This)
13089/*** IFillLockBytes methods ***/
13090#define IFillLockBytes_FillAppend(This,pv,cb,pcbWritten) (This)->lpVtbl->FillAppend(This,pv,cb,pcbWritten)
13091#define IFillLockBytes_FillAt(This,ulOffset,pv,cb,pcbWritten) (This)->lpVtbl->FillAt(This,ulOffset,pv,cb,pcbWritten)
13092#define IFillLockBytes_SetFillSize(This,ulSize) (This)->lpVtbl->SetFillSize(This,ulSize)
13093#define IFillLockBytes_Terminate(This,bCanceled) (This)->lpVtbl->Terminate(This,bCanceled)
13094#else
13095/*** IUnknown methods ***/
13096static FORCEINLINE HRESULT IFillLockBytes_QueryInterface(IFillLockBytes* This,REFIID riid,void **ppvObject) {
13097    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13098}
13099static FORCEINLINE ULONG IFillLockBytes_AddRef(IFillLockBytes* This) {
13100    return This->lpVtbl->AddRef(This);
13101}
13102static FORCEINLINE ULONG IFillLockBytes_Release(IFillLockBytes* This) {
13103    return This->lpVtbl->Release(This);
13104}
13105/*** IFillLockBytes methods ***/
13106static FORCEINLINE HRESULT IFillLockBytes_FillAppend(IFillLockBytes* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
13107    return This->lpVtbl->FillAppend(This,pv,cb,pcbWritten);
13108}
13109static FORCEINLINE HRESULT IFillLockBytes_FillAt(IFillLockBytes* This,ULARGE_INTEGER ulOffset,const void *pv,ULONG cb,ULONG *pcbWritten) {
13110    return This->lpVtbl->FillAt(This,ulOffset,pv,cb,pcbWritten);
13111}
13112static FORCEINLINE HRESULT IFillLockBytes_SetFillSize(IFillLockBytes* This,ULARGE_INTEGER ulSize) {
13113    return This->lpVtbl->SetFillSize(This,ulSize);
13114}
13115static FORCEINLINE HRESULT IFillLockBytes_Terminate(IFillLockBytes* This,WINBOOL bCanceled) {
13116    return This->lpVtbl->Terminate(This,bCanceled);
13117}
13118#endif
13119#endif
13120
13121#endif
13122
13123HRESULT __stdcall IFillLockBytes_RemoteFillAppend_Proxy(
13124    IFillLockBytes* This,
13125    const byte *pv,
13126    ULONG cb,
13127    ULONG *pcbWritten);
13128void __RPC_STUB IFillLockBytes_RemoteFillAppend_Stub(
13129    IRpcStubBuffer* This,
13130    IRpcChannelBuffer* pRpcChannelBuffer,
13131    PRPC_MESSAGE pRpcMessage,
13132    DWORD* pdwStubPhase);
13133HRESULT __stdcall IFillLockBytes_RemoteFillAt_Proxy(
13134    IFillLockBytes* This,
13135    ULARGE_INTEGER ulOffset,
13136    const byte *pv,
13137    ULONG cb,
13138    ULONG *pcbWritten);
13139void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub(
13140    IRpcStubBuffer* This,
13141    IRpcChannelBuffer* pRpcChannelBuffer,
13142    PRPC_MESSAGE pRpcMessage,
13143    DWORD* pdwStubPhase);
13144HRESULT STDMETHODCALLTYPE IFillLockBytes_SetFillSize_Proxy(
13145    IFillLockBytes* This,
13146    ULARGE_INTEGER ulSize);
13147void __RPC_STUB IFillLockBytes_SetFillSize_Stub(
13148    IRpcStubBuffer* This,
13149    IRpcChannelBuffer* pRpcChannelBuffer,
13150    PRPC_MESSAGE pRpcMessage,
13151    DWORD* pdwStubPhase);
13152HRESULT STDMETHODCALLTYPE IFillLockBytes_Terminate_Proxy(
13153    IFillLockBytes* This,
13154    WINBOOL bCanceled);
13155void __RPC_STUB IFillLockBytes_Terminate_Stub(
13156    IRpcStubBuffer* This,
13157    IRpcChannelBuffer* pRpcChannelBuffer,
13158    PRPC_MESSAGE pRpcMessage,
13159    DWORD* pdwStubPhase);
13160HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
13161    IFillLockBytes* This,
13162    const void *pv,
13163    ULONG cb,
13164    ULONG *pcbWritten);
13165HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
13166    IFillLockBytes* This,
13167    const byte *pv,
13168    ULONG cb,
13169    ULONG *pcbWritten);
13170HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
13171    IFillLockBytes* This,
13172    ULARGE_INTEGER ulOffset,
13173    const void *pv,
13174    ULONG cb,
13175    ULONG *pcbWritten);
13176HRESULT __RPC_STUB IFillLockBytes_FillAt_Stub(
13177    IFillLockBytes* This,
13178    ULARGE_INTEGER ulOffset,
13179    const byte *pv,
13180    ULONG cb,
13181    ULONG *pcbWritten);
13182
13183#endif  /* __IFillLockBytes_INTERFACE_DEFINED__ */
13184
13185#endif
13186#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
13187/*****************************************************************************
13188 * IProgressNotify interface
13189 */
13190#ifndef __IProgressNotify_INTERFACE_DEFINED__
13191#define __IProgressNotify_INTERFACE_DEFINED__
13192
13193DEFINE_GUID(IID_IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
13194#if defined(__cplusplus) && !defined(CINTERFACE)
13195MIDL_INTERFACE("a9d758a0-4617-11cf-95fc-00aa00680db4")
13196IProgressNotify : public IUnknown
13197{
13198    virtual HRESULT STDMETHODCALLTYPE OnProgress(
13199        DWORD dwProgressCurrent,
13200        DWORD dwProgressMaximum,
13201        WINBOOL fAccurate,
13202        WINBOOL fOwner) = 0;
13203
13204};
13205#ifdef __CRT_UUID_DECL
13206__CRT_UUID_DECL(IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
13207#endif
13208#else
13209typedef struct IProgressNotifyVtbl {
13210    BEGIN_INTERFACE
13211
13212    /*** IUnknown methods ***/
13213    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13214        IProgressNotify* This,
13215        REFIID riid,
13216        void **ppvObject);
13217
13218    ULONG (STDMETHODCALLTYPE *AddRef)(
13219        IProgressNotify* This);
13220
13221    ULONG (STDMETHODCALLTYPE *Release)(
13222        IProgressNotify* This);
13223
13224    /*** IProgressNotify methods ***/
13225    HRESULT (STDMETHODCALLTYPE *OnProgress)(
13226        IProgressNotify* This,
13227        DWORD dwProgressCurrent,
13228        DWORD dwProgressMaximum,
13229        WINBOOL fAccurate,
13230        WINBOOL fOwner);
13231
13232    END_INTERFACE
13233} IProgressNotifyVtbl;
13234interface IProgressNotify {
13235    CONST_VTBL IProgressNotifyVtbl* lpVtbl;
13236};
13237
13238#ifdef COBJMACROS
13239#ifndef WIDL_C_INLINE_WRAPPERS
13240/*** IUnknown methods ***/
13241#define IProgressNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13242#define IProgressNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
13243#define IProgressNotify_Release(This) (This)->lpVtbl->Release(This)
13244/*** IProgressNotify methods ***/
13245#define IProgressNotify_OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner) (This)->lpVtbl->OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner)
13246#else
13247/*** IUnknown methods ***/
13248static FORCEINLINE HRESULT IProgressNotify_QueryInterface(IProgressNotify* This,REFIID riid,void **ppvObject) {
13249    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13250}
13251static FORCEINLINE ULONG IProgressNotify_AddRef(IProgressNotify* This) {
13252    return This->lpVtbl->AddRef(This);
13253}
13254static FORCEINLINE ULONG IProgressNotify_Release(IProgressNotify* This) {
13255    return This->lpVtbl->Release(This);
13256}
13257/*** IProgressNotify methods ***/
13258static FORCEINLINE HRESULT IProgressNotify_OnProgress(IProgressNotify* This,DWORD dwProgressCurrent,DWORD dwProgressMaximum,WINBOOL fAccurate,WINBOOL fOwner) {
13259    return This->lpVtbl->OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner);
13260}
13261#endif
13262#endif
13263
13264#endif
13265
13266HRESULT STDMETHODCALLTYPE IProgressNotify_OnProgress_Proxy(
13267    IProgressNotify* This,
13268    DWORD dwProgressCurrent,
13269    DWORD dwProgressMaximum,
13270    WINBOOL fAccurate,
13271    WINBOOL fOwner);
13272void __RPC_STUB IProgressNotify_OnProgress_Stub(
13273    IRpcStubBuffer* This,
13274    IRpcChannelBuffer* pRpcChannelBuffer,
13275    PRPC_MESSAGE pRpcMessage,
13276    DWORD* pdwStubPhase);
13277
13278#endif  /* __IProgressNotify_INTERFACE_DEFINED__ */
13279
13280#endif
13281#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
13282/*****************************************************************************
13283 * ILayoutStorage interface
13284 */
13285#ifndef __ILayoutStorage_INTERFACE_DEFINED__
13286#define __ILayoutStorage_INTERFACE_DEFINED__
13287
13288typedef struct tagStorageLayout {
13289    DWORD LayoutType;
13290    OLECHAR *pwcsElementName;
13291    LARGE_INTEGER cOffset;
13292    LARGE_INTEGER cBytes;
13293} StorageLayout;
13294DEFINE_GUID(IID_ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
13295#if defined(__cplusplus) && !defined(CINTERFACE)
13296MIDL_INTERFACE("0e6d4d90-6738-11cf-9608-00aa00680db4")
13297ILayoutStorage : public IUnknown
13298{
13299    virtual HRESULT __stdcall LayoutScript(
13300        StorageLayout *pStorageLayout,
13301        DWORD nEntries,
13302        DWORD glfInterleavedFlag) = 0;
13303
13304    virtual HRESULT __stdcall BeginMonitor(
13305        ) = 0;
13306
13307    virtual HRESULT __stdcall EndMonitor(
13308        ) = 0;
13309
13310    virtual HRESULT __stdcall ReLayoutDocfile(
13311        OLECHAR *pwcsNewDfName) = 0;
13312
13313    virtual HRESULT __stdcall ReLayoutDocfileOnILockBytes(
13314        ILockBytes *pILockBytes) = 0;
13315
13316};
13317#ifdef __CRT_UUID_DECL
13318__CRT_UUID_DECL(ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
13319#endif
13320#else
13321typedef struct ILayoutStorageVtbl {
13322    BEGIN_INTERFACE
13323
13324    /*** IUnknown methods ***/
13325    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13326        ILayoutStorage* This,
13327        REFIID riid,
13328        void **ppvObject);
13329
13330    ULONG (STDMETHODCALLTYPE *AddRef)(
13331        ILayoutStorage* This);
13332
13333    ULONG (STDMETHODCALLTYPE *Release)(
13334        ILayoutStorage* This);
13335
13336    /*** ILayoutStorage methods ***/
13337    HRESULT (__stdcall *LayoutScript)(
13338        ILayoutStorage* This,
13339        StorageLayout *pStorageLayout,
13340        DWORD nEntries,
13341        DWORD glfInterleavedFlag);
13342
13343    HRESULT (__stdcall *BeginMonitor)(
13344        ILayoutStorage* This);
13345
13346    HRESULT (__stdcall *EndMonitor)(
13347        ILayoutStorage* This);
13348
13349    HRESULT (__stdcall *ReLayoutDocfile)(
13350        ILayoutStorage* This,
13351        OLECHAR *pwcsNewDfName);
13352
13353    HRESULT (__stdcall *ReLayoutDocfileOnILockBytes)(
13354        ILayoutStorage* This,
13355        ILockBytes *pILockBytes);
13356
13357    END_INTERFACE
13358} ILayoutStorageVtbl;
13359interface ILayoutStorage {
13360    CONST_VTBL ILayoutStorageVtbl* lpVtbl;
13361};
13362
13363#ifdef COBJMACROS
13364#ifndef WIDL_C_INLINE_WRAPPERS
13365/*** IUnknown methods ***/
13366#define ILayoutStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13367#define ILayoutStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
13368#define ILayoutStorage_Release(This) (This)->lpVtbl->Release(This)
13369/*** ILayoutStorage methods ***/
13370#define ILayoutStorage_LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag) (This)->lpVtbl->LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag)
13371#define ILayoutStorage_BeginMonitor(This) (This)->lpVtbl->BeginMonitor(This)
13372#define ILayoutStorage_EndMonitor(This) (This)->lpVtbl->EndMonitor(This)
13373#define ILayoutStorage_ReLayoutDocfile(This,pwcsNewDfName) (This)->lpVtbl->ReLayoutDocfile(This,pwcsNewDfName)
13374#define ILayoutStorage_ReLayoutDocfileOnILockBytes(This,pILockBytes) (This)->lpVtbl->ReLayoutDocfileOnILockBytes(This,pILockBytes)
13375#else
13376/*** IUnknown methods ***/
13377static FORCEINLINE HRESULT ILayoutStorage_QueryInterface(ILayoutStorage* This,REFIID riid,void **ppvObject) {
13378    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13379}
13380static FORCEINLINE ULONG ILayoutStorage_AddRef(ILayoutStorage* This) {
13381    return This->lpVtbl->AddRef(This);
13382}
13383static FORCEINLINE ULONG ILayoutStorage_Release(ILayoutStorage* This) {
13384    return This->lpVtbl->Release(This);
13385}
13386/*** ILayoutStorage methods ***/
13387static FORCEINLINE HRESULT ILayoutStorage_LayoutScript(ILayoutStorage* This,StorageLayout *pStorageLayout,DWORD nEntries,DWORD glfInterleavedFlag) {
13388    return This->lpVtbl->LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag);
13389}
13390static FORCEINLINE HRESULT ILayoutStorage_BeginMonitor(ILayoutStorage* This) {
13391    return This->lpVtbl->BeginMonitor(This);
13392}
13393static FORCEINLINE HRESULT ILayoutStorage_EndMonitor(ILayoutStorage* This) {
13394    return This->lpVtbl->EndMonitor(This);
13395}
13396static FORCEINLINE HRESULT ILayoutStorage_ReLayoutDocfile(ILayoutStorage* This,OLECHAR *pwcsNewDfName) {
13397    return This->lpVtbl->ReLayoutDocfile(This,pwcsNewDfName);
13398}
13399static FORCEINLINE HRESULT ILayoutStorage_ReLayoutDocfileOnILockBytes(ILayoutStorage* This,ILockBytes *pILockBytes) {
13400    return This->lpVtbl->ReLayoutDocfileOnILockBytes(This,pILockBytes);
13401}
13402#endif
13403#endif
13404
13405#endif
13406
13407HRESULT __stdcall ILayoutStorage_LayoutScript_Proxy(
13408    ILayoutStorage* This,
13409    StorageLayout *pStorageLayout,
13410    DWORD nEntries,
13411    DWORD glfInterleavedFlag);
13412void __RPC_STUB ILayoutStorage_LayoutScript_Stub(
13413    IRpcStubBuffer* This,
13414    IRpcChannelBuffer* pRpcChannelBuffer,
13415    PRPC_MESSAGE pRpcMessage,
13416    DWORD* pdwStubPhase);
13417HRESULT __stdcall ILayoutStorage_BeginMonitor_Proxy(
13418    ILayoutStorage* This);
13419void __RPC_STUB ILayoutStorage_BeginMonitor_Stub(
13420    IRpcStubBuffer* This,
13421    IRpcChannelBuffer* pRpcChannelBuffer,
13422    PRPC_MESSAGE pRpcMessage,
13423    DWORD* pdwStubPhase);
13424HRESULT __stdcall ILayoutStorage_EndMonitor_Proxy(
13425    ILayoutStorage* This);
13426void __RPC_STUB ILayoutStorage_EndMonitor_Stub(
13427    IRpcStubBuffer* This,
13428    IRpcChannelBuffer* pRpcChannelBuffer,
13429    PRPC_MESSAGE pRpcMessage,
13430    DWORD* pdwStubPhase);
13431HRESULT __stdcall ILayoutStorage_ReLayoutDocfile_Proxy(
13432    ILayoutStorage* This,
13433    OLECHAR *pwcsNewDfName);
13434void __RPC_STUB ILayoutStorage_ReLayoutDocfile_Stub(
13435    IRpcStubBuffer* This,
13436    IRpcChannelBuffer* pRpcChannelBuffer,
13437    PRPC_MESSAGE pRpcMessage,
13438    DWORD* pdwStubPhase);
13439HRESULT __stdcall ILayoutStorage_ReLayoutDocfileOnILockBytes_Proxy(
13440    ILayoutStorage* This,
13441    ILockBytes *pILockBytes);
13442void __RPC_STUB ILayoutStorage_ReLayoutDocfileOnILockBytes_Stub(
13443    IRpcStubBuffer* This,
13444    IRpcChannelBuffer* pRpcChannelBuffer,
13445    PRPC_MESSAGE pRpcMessage,
13446    DWORD* pdwStubPhase);
13447
13448#endif  /* __ILayoutStorage_INTERFACE_DEFINED__ */
13449
13450#endif
13451#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
13452/*****************************************************************************
13453 * IBlockingLock interface
13454 */
13455#ifndef __IBlockingLock_INTERFACE_DEFINED__
13456#define __IBlockingLock_INTERFACE_DEFINED__
13457
13458DEFINE_GUID(IID_IBlockingLock, 0x30f3d47a, 0x6447, 0x11d1, 0x8e,0x3c, 0x00,0xc0,0x4f,0xb9,0x38,0x6d);
13459#if defined(__cplusplus) && !defined(CINTERFACE)
13460MIDL_INTERFACE("30f3d47a-6447-11d1-8e3c-00c04fb9386d")
13461IBlockingLock : public IUnknown
13462{
13463    virtual HRESULT STDMETHODCALLTYPE Lock(
13464        DWORD dwTimeout) = 0;
13465
13466    virtual HRESULT STDMETHODCALLTYPE Unlock(
13467        ) = 0;
13468
13469};
13470#ifdef __CRT_UUID_DECL
13471__CRT_UUID_DECL(IBlockingLock, 0x30f3d47a, 0x6447, 0x11d1, 0x8e,0x3c, 0x00,0xc0,0x4f,0xb9,0x38,0x6d)
13472#endif
13473#else
13474typedef struct IBlockingLockVtbl {
13475    BEGIN_INTERFACE
13476
13477    /*** IUnknown methods ***/
13478    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13479        IBlockingLock* This,
13480        REFIID riid,
13481        void **ppvObject);
13482
13483    ULONG (STDMETHODCALLTYPE *AddRef)(
13484        IBlockingLock* This);
13485
13486    ULONG (STDMETHODCALLTYPE *Release)(
13487        IBlockingLock* This);
13488
13489    /*** IBlockingLock methods ***/
13490    HRESULT (STDMETHODCALLTYPE *Lock)(
13491        IBlockingLock* This,
13492        DWORD dwTimeout);
13493
13494    HRESULT (STDMETHODCALLTYPE *Unlock)(
13495        IBlockingLock* This);
13496
13497    END_INTERFACE
13498} IBlockingLockVtbl;
13499interface IBlockingLock {
13500    CONST_VTBL IBlockingLockVtbl* lpVtbl;
13501};
13502
13503#ifdef COBJMACROS
13504#ifndef WIDL_C_INLINE_WRAPPERS
13505/*** IUnknown methods ***/
13506#define IBlockingLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13507#define IBlockingLock_AddRef(This) (This)->lpVtbl->AddRef(This)
13508#define IBlockingLock_Release(This) (This)->lpVtbl->Release(This)
13509/*** IBlockingLock methods ***/
13510#define IBlockingLock_Lock(This,dwTimeout) (This)->lpVtbl->Lock(This,dwTimeout)
13511#define IBlockingLock_Unlock(This) (This)->lpVtbl->Unlock(This)
13512#else
13513/*** IUnknown methods ***/
13514static FORCEINLINE HRESULT IBlockingLock_QueryInterface(IBlockingLock* This,REFIID riid,void **ppvObject) {
13515    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13516}
13517static FORCEINLINE ULONG IBlockingLock_AddRef(IBlockingLock* This) {
13518    return This->lpVtbl->AddRef(This);
13519}
13520static FORCEINLINE ULONG IBlockingLock_Release(IBlockingLock* This) {
13521    return This->lpVtbl->Release(This);
13522}
13523/*** IBlockingLock methods ***/
13524static FORCEINLINE HRESULT IBlockingLock_Lock(IBlockingLock* This,DWORD dwTimeout) {
13525    return This->lpVtbl->Lock(This,dwTimeout);
13526}
13527static FORCEINLINE HRESULT IBlockingLock_Unlock(IBlockingLock* This) {
13528    return This->lpVtbl->Unlock(This);
13529}
13530#endif
13531#endif
13532
13533#endif
13534
13535HRESULT STDMETHODCALLTYPE IBlockingLock_Lock_Proxy(
13536    IBlockingLock* This,
13537    DWORD dwTimeout);
13538void __RPC_STUB IBlockingLock_Lock_Stub(
13539    IRpcStubBuffer* This,
13540    IRpcChannelBuffer* pRpcChannelBuffer,
13541    PRPC_MESSAGE pRpcMessage,
13542    DWORD* pdwStubPhase);
13543HRESULT STDMETHODCALLTYPE IBlockingLock_Unlock_Proxy(
13544    IBlockingLock* This);
13545void __RPC_STUB IBlockingLock_Unlock_Stub(
13546    IRpcStubBuffer* This,
13547    IRpcChannelBuffer* pRpcChannelBuffer,
13548    PRPC_MESSAGE pRpcMessage,
13549    DWORD* pdwStubPhase);
13550
13551#endif  /* __IBlockingLock_INTERFACE_DEFINED__ */
13552
13553/*****************************************************************************
13554 * ITimeAndNoticeControl interface
13555 */
13556#ifndef __ITimeAndNoticeControl_INTERFACE_DEFINED__
13557#define __ITimeAndNoticeControl_INTERFACE_DEFINED__
13558
13559DEFINE_GUID(IID_ITimeAndNoticeControl, 0xbc0bf6ae, 0x8878, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4);
13560#if defined(__cplusplus) && !defined(CINTERFACE)
13561MIDL_INTERFACE("bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4")
13562ITimeAndNoticeControl : public IUnknown
13563{
13564    virtual HRESULT STDMETHODCALLTYPE SuppressChanges(
13565        DWORD res1,
13566        DWORD res2) = 0;
13567
13568};
13569#ifdef __CRT_UUID_DECL
13570__CRT_UUID_DECL(ITimeAndNoticeControl, 0xbc0bf6ae, 0x8878, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4)
13571#endif
13572#else
13573typedef struct ITimeAndNoticeControlVtbl {
13574    BEGIN_INTERFACE
13575
13576    /*** IUnknown methods ***/
13577    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13578        ITimeAndNoticeControl* This,
13579        REFIID riid,
13580        void **ppvObject);
13581
13582    ULONG (STDMETHODCALLTYPE *AddRef)(
13583        ITimeAndNoticeControl* This);
13584
13585    ULONG (STDMETHODCALLTYPE *Release)(
13586        ITimeAndNoticeControl* This);
13587
13588    /*** ITimeAndNoticeControl methods ***/
13589    HRESULT (STDMETHODCALLTYPE *SuppressChanges)(
13590        ITimeAndNoticeControl* This,
13591        DWORD res1,
13592        DWORD res2);
13593
13594    END_INTERFACE
13595} ITimeAndNoticeControlVtbl;
13596interface ITimeAndNoticeControl {
13597    CONST_VTBL ITimeAndNoticeControlVtbl* lpVtbl;
13598};
13599
13600#ifdef COBJMACROS
13601#ifndef WIDL_C_INLINE_WRAPPERS
13602/*** IUnknown methods ***/
13603#define ITimeAndNoticeControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13604#define ITimeAndNoticeControl_AddRef(This) (This)->lpVtbl->AddRef(This)
13605#define ITimeAndNoticeControl_Release(This) (This)->lpVtbl->Release(This)
13606/*** ITimeAndNoticeControl methods ***/
13607#define ITimeAndNoticeControl_SuppressChanges(This,res1,res2) (This)->lpVtbl->SuppressChanges(This,res1,res2)
13608#else
13609/*** IUnknown methods ***/
13610static FORCEINLINE HRESULT ITimeAndNoticeControl_QueryInterface(ITimeAndNoticeControl* This,REFIID riid,void **ppvObject) {
13611    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13612}
13613static FORCEINLINE ULONG ITimeAndNoticeControl_AddRef(ITimeAndNoticeControl* This) {
13614    return This->lpVtbl->AddRef(This);
13615}
13616static FORCEINLINE ULONG ITimeAndNoticeControl_Release(ITimeAndNoticeControl* This) {
13617    return This->lpVtbl->Release(This);
13618}
13619/*** ITimeAndNoticeControl methods ***/
13620static FORCEINLINE HRESULT ITimeAndNoticeControl_SuppressChanges(ITimeAndNoticeControl* This,DWORD res1,DWORD res2) {
13621    return This->lpVtbl->SuppressChanges(This,res1,res2);
13622}
13623#endif
13624#endif
13625
13626#endif
13627
13628HRESULT STDMETHODCALLTYPE ITimeAndNoticeControl_SuppressChanges_Proxy(
13629    ITimeAndNoticeControl* This,
13630    DWORD res1,
13631    DWORD res2);
13632void __RPC_STUB ITimeAndNoticeControl_SuppressChanges_Stub(
13633    IRpcStubBuffer* This,
13634    IRpcChannelBuffer* pRpcChannelBuffer,
13635    PRPC_MESSAGE pRpcMessage,
13636    DWORD* pdwStubPhase);
13637
13638#endif  /* __ITimeAndNoticeControl_INTERFACE_DEFINED__ */
13639
13640/*****************************************************************************
13641 * IOplockStorage interface
13642 */
13643#ifndef __IOplockStorage_INTERFACE_DEFINED__
13644#define __IOplockStorage_INTERFACE_DEFINED__
13645
13646DEFINE_GUID(IID_IOplockStorage, 0x8d19c834, 0x8879, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4);
13647#if defined(__cplusplus) && !defined(CINTERFACE)
13648MIDL_INTERFACE("8d19c834-8879-11d1-83e9-00c04fc2c6d4")
13649IOplockStorage : public IUnknown
13650{
13651    virtual HRESULT STDMETHODCALLTYPE CreateStorageEx(
13652        LPCWSTR pwcsName,
13653        DWORD grfMode,
13654        DWORD stgfmt,
13655        DWORD grfAttrs,
13656        REFIID riid,
13657        void **ppstgOpen) = 0;
13658
13659    virtual HRESULT STDMETHODCALLTYPE OpenStorageEx(
13660        LPCWSTR pwcsName,
13661        DWORD grfMode,
13662        DWORD stgfmt,
13663        DWORD grfAttrs,
13664        REFIID riid,
13665        void **ppstgOpen) = 0;
13666
13667};
13668#ifdef __CRT_UUID_DECL
13669__CRT_UUID_DECL(IOplockStorage, 0x8d19c834, 0x8879, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4)
13670#endif
13671#else
13672typedef struct IOplockStorageVtbl {
13673    BEGIN_INTERFACE
13674
13675    /*** IUnknown methods ***/
13676    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13677        IOplockStorage* This,
13678        REFIID riid,
13679        void **ppvObject);
13680
13681    ULONG (STDMETHODCALLTYPE *AddRef)(
13682        IOplockStorage* This);
13683
13684    ULONG (STDMETHODCALLTYPE *Release)(
13685        IOplockStorage* This);
13686
13687    /*** IOplockStorage methods ***/
13688    HRESULT (STDMETHODCALLTYPE *CreateStorageEx)(
13689        IOplockStorage* This,
13690        LPCWSTR pwcsName,
13691        DWORD grfMode,
13692        DWORD stgfmt,
13693        DWORD grfAttrs,
13694        REFIID riid,
13695        void **ppstgOpen);
13696
13697    HRESULT (STDMETHODCALLTYPE *OpenStorageEx)(
13698        IOplockStorage* This,
13699        LPCWSTR pwcsName,
13700        DWORD grfMode,
13701        DWORD stgfmt,
13702        DWORD grfAttrs,
13703        REFIID riid,
13704        void **ppstgOpen);
13705
13706    END_INTERFACE
13707} IOplockStorageVtbl;
13708interface IOplockStorage {
13709    CONST_VTBL IOplockStorageVtbl* lpVtbl;
13710};
13711
13712#ifdef COBJMACROS
13713#ifndef WIDL_C_INLINE_WRAPPERS
13714/*** IUnknown methods ***/
13715#define IOplockStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13716#define IOplockStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
13717#define IOplockStorage_Release(This) (This)->lpVtbl->Release(This)
13718/*** IOplockStorage methods ***/
13719#define IOplockStorage_CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen) (This)->lpVtbl->CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen)
13720#define IOplockStorage_OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen) (This)->lpVtbl->OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen)
13721#else
13722/*** IUnknown methods ***/
13723static FORCEINLINE HRESULT IOplockStorage_QueryInterface(IOplockStorage* This,REFIID riid,void **ppvObject) {
13724    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13725}
13726static FORCEINLINE ULONG IOplockStorage_AddRef(IOplockStorage* This) {
13727    return This->lpVtbl->AddRef(This);
13728}
13729static FORCEINLINE ULONG IOplockStorage_Release(IOplockStorage* This) {
13730    return This->lpVtbl->Release(This);
13731}
13732/*** IOplockStorage methods ***/
13733static FORCEINLINE HRESULT IOplockStorage_CreateStorageEx(IOplockStorage* This,LPCWSTR pwcsName,DWORD grfMode,DWORD stgfmt,DWORD grfAttrs,REFIID riid,void **ppstgOpen) {
13734    return This->lpVtbl->CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen);
13735}
13736static FORCEINLINE HRESULT IOplockStorage_OpenStorageEx(IOplockStorage* This,LPCWSTR pwcsName,DWORD grfMode,DWORD stgfmt,DWORD grfAttrs,REFIID riid,void **ppstgOpen) {
13737    return This->lpVtbl->OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen);
13738}
13739#endif
13740#endif
13741
13742#endif
13743
13744HRESULT STDMETHODCALLTYPE IOplockStorage_CreateStorageEx_Proxy(
13745    IOplockStorage* This,
13746    LPCWSTR pwcsName,
13747    DWORD grfMode,
13748    DWORD stgfmt,
13749    DWORD grfAttrs,
13750    REFIID riid,
13751    void **ppstgOpen);
13752void __RPC_STUB IOplockStorage_CreateStorageEx_Stub(
13753    IRpcStubBuffer* This,
13754    IRpcChannelBuffer* pRpcChannelBuffer,
13755    PRPC_MESSAGE pRpcMessage,
13756    DWORD* pdwStubPhase);
13757HRESULT STDMETHODCALLTYPE IOplockStorage_OpenStorageEx_Proxy(
13758    IOplockStorage* This,
13759    LPCWSTR pwcsName,
13760    DWORD grfMode,
13761    DWORD stgfmt,
13762    DWORD grfAttrs,
13763    REFIID riid,
13764    void **ppstgOpen);
13765void __RPC_STUB IOplockStorage_OpenStorageEx_Stub(
13766    IRpcStubBuffer* This,
13767    IRpcChannelBuffer* pRpcChannelBuffer,
13768    PRPC_MESSAGE pRpcMessage,
13769    DWORD* pdwStubPhase);
13770
13771#endif  /* __IOplockStorage_INTERFACE_DEFINED__ */
13772
13773#endif
13774#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
13775/*****************************************************************************
13776 * IDirectWriterLock interface
13777 */
13778#ifndef __IDirectWriterLock_INTERFACE_DEFINED__
13779#define __IDirectWriterLock_INTERFACE_DEFINED__
13780
13781DEFINE_GUID(IID_IDirectWriterLock, 0x0e6d4d92, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
13782#if defined(__cplusplus) && !defined(CINTERFACE)
13783MIDL_INTERFACE("0e6d4d92-6738-11cf-9608-00aa00680db4")
13784IDirectWriterLock : public IUnknown
13785{
13786    virtual HRESULT STDMETHODCALLTYPE WaitForWriteAccess(
13787        DWORD dwTimeout) = 0;
13788
13789    virtual HRESULT STDMETHODCALLTYPE ReleaseWriteAccess(
13790        ) = 0;
13791
13792    virtual HRESULT STDMETHODCALLTYPE HaveWriteAccess(
13793        ) = 0;
13794
13795};
13796#ifdef __CRT_UUID_DECL
13797__CRT_UUID_DECL(IDirectWriterLock, 0x0e6d4d92, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
13798#endif
13799#else
13800typedef struct IDirectWriterLockVtbl {
13801    BEGIN_INTERFACE
13802
13803    /*** IUnknown methods ***/
13804    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13805        IDirectWriterLock* This,
13806        REFIID riid,
13807        void **ppvObject);
13808
13809    ULONG (STDMETHODCALLTYPE *AddRef)(
13810        IDirectWriterLock* This);
13811
13812    ULONG (STDMETHODCALLTYPE *Release)(
13813        IDirectWriterLock* This);
13814
13815    /*** IDirectWriterLock methods ***/
13816    HRESULT (STDMETHODCALLTYPE *WaitForWriteAccess)(
13817        IDirectWriterLock* This,
13818        DWORD dwTimeout);
13819
13820    HRESULT (STDMETHODCALLTYPE *ReleaseWriteAccess)(
13821        IDirectWriterLock* This);
13822
13823    HRESULT (STDMETHODCALLTYPE *HaveWriteAccess)(
13824        IDirectWriterLock* This);
13825
13826    END_INTERFACE
13827} IDirectWriterLockVtbl;
13828interface IDirectWriterLock {
13829    CONST_VTBL IDirectWriterLockVtbl* lpVtbl;
13830};
13831
13832#ifdef COBJMACROS
13833#ifndef WIDL_C_INLINE_WRAPPERS
13834/*** IUnknown methods ***/
13835#define IDirectWriterLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13836#define IDirectWriterLock_AddRef(This) (This)->lpVtbl->AddRef(This)
13837#define IDirectWriterLock_Release(This) (This)->lpVtbl->Release(This)
13838/*** IDirectWriterLock methods ***/
13839#define IDirectWriterLock_WaitForWriteAccess(This,dwTimeout) (This)->lpVtbl->WaitForWriteAccess(This,dwTimeout)
13840#define IDirectWriterLock_ReleaseWriteAccess(This) (This)->lpVtbl->ReleaseWriteAccess(This)
13841#define IDirectWriterLock_HaveWriteAccess(This) (This)->lpVtbl->HaveWriteAccess(This)
13842#else
13843/*** IUnknown methods ***/
13844static FORCEINLINE HRESULT IDirectWriterLock_QueryInterface(IDirectWriterLock* This,REFIID riid,void **ppvObject) {
13845    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13846}
13847static FORCEINLINE ULONG IDirectWriterLock_AddRef(IDirectWriterLock* This) {
13848    return This->lpVtbl->AddRef(This);
13849}
13850static FORCEINLINE ULONG IDirectWriterLock_Release(IDirectWriterLock* This) {
13851    return This->lpVtbl->Release(This);
13852}
13853/*** IDirectWriterLock methods ***/
13854static FORCEINLINE HRESULT IDirectWriterLock_WaitForWriteAccess(IDirectWriterLock* This,DWORD dwTimeout) {
13855    return This->lpVtbl->WaitForWriteAccess(This,dwTimeout);
13856}
13857static FORCEINLINE HRESULT IDirectWriterLock_ReleaseWriteAccess(IDirectWriterLock* This) {
13858    return This->lpVtbl->ReleaseWriteAccess(This);
13859}
13860static FORCEINLINE HRESULT IDirectWriterLock_HaveWriteAccess(IDirectWriterLock* This) {
13861    return This->lpVtbl->HaveWriteAccess(This);
13862}
13863#endif
13864#endif
13865
13866#endif
13867
13868HRESULT STDMETHODCALLTYPE IDirectWriterLock_WaitForWriteAccess_Proxy(
13869    IDirectWriterLock* This,
13870    DWORD dwTimeout);
13871void __RPC_STUB IDirectWriterLock_WaitForWriteAccess_Stub(
13872    IRpcStubBuffer* This,
13873    IRpcChannelBuffer* pRpcChannelBuffer,
13874    PRPC_MESSAGE pRpcMessage,
13875    DWORD* pdwStubPhase);
13876HRESULT STDMETHODCALLTYPE IDirectWriterLock_ReleaseWriteAccess_Proxy(
13877    IDirectWriterLock* This);
13878void __RPC_STUB IDirectWriterLock_ReleaseWriteAccess_Stub(
13879    IRpcStubBuffer* This,
13880    IRpcChannelBuffer* pRpcChannelBuffer,
13881    PRPC_MESSAGE pRpcMessage,
13882    DWORD* pdwStubPhase);
13883HRESULT STDMETHODCALLTYPE IDirectWriterLock_HaveWriteAccess_Proxy(
13884    IDirectWriterLock* This);
13885void __RPC_STUB IDirectWriterLock_HaveWriteAccess_Stub(
13886    IRpcStubBuffer* This,
13887    IRpcChannelBuffer* pRpcChannelBuffer,
13888    PRPC_MESSAGE pRpcMessage,
13889    DWORD* pdwStubPhase);
13890
13891#endif  /* __IDirectWriterLock_INTERFACE_DEFINED__ */
13892
13893#endif
13894#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
13895/*****************************************************************************
13896 * IUrlMon interface
13897 */
13898#ifndef __IUrlMon_INTERFACE_DEFINED__
13899#define __IUrlMon_INTERFACE_DEFINED__
13900
13901DEFINE_GUID(IID_IUrlMon, 0x00000026, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
13902#if defined(__cplusplus) && !defined(CINTERFACE)
13903MIDL_INTERFACE("00000026-0000-0000-c000-000000000046")
13904IUrlMon : public IUnknown
13905{
13906    virtual HRESULT STDMETHODCALLTYPE AsyncGetClassBits(
13907        REFCLSID rclsid,
13908        LPCWSTR pszTYPE,
13909        LPCWSTR pszExt,
13910        DWORD dwFileVersionMS,
13911        DWORD dwFileVersionLS,
13912        LPCWSTR pszCodeBase,
13913        IBindCtx *pbc,
13914        DWORD dwClassContext,
13915        REFIID riid,
13916        DWORD flags) = 0;
13917
13918};
13919#ifdef __CRT_UUID_DECL
13920__CRT_UUID_DECL(IUrlMon, 0x00000026, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
13921#endif
13922#else
13923typedef struct IUrlMonVtbl {
13924    BEGIN_INTERFACE
13925
13926    /*** IUnknown methods ***/
13927    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13928        IUrlMon* This,
13929        REFIID riid,
13930        void **ppvObject);
13931
13932    ULONG (STDMETHODCALLTYPE *AddRef)(
13933        IUrlMon* This);
13934
13935    ULONG (STDMETHODCALLTYPE *Release)(
13936        IUrlMon* This);
13937
13938    /*** IUrlMon methods ***/
13939    HRESULT (STDMETHODCALLTYPE *AsyncGetClassBits)(
13940        IUrlMon* This,
13941        REFCLSID rclsid,
13942        LPCWSTR pszTYPE,
13943        LPCWSTR pszExt,
13944        DWORD dwFileVersionMS,
13945        DWORD dwFileVersionLS,
13946        LPCWSTR pszCodeBase,
13947        IBindCtx *pbc,
13948        DWORD dwClassContext,
13949        REFIID riid,
13950        DWORD flags);
13951
13952    END_INTERFACE
13953} IUrlMonVtbl;
13954interface IUrlMon {
13955    CONST_VTBL IUrlMonVtbl* lpVtbl;
13956};
13957
13958#ifdef COBJMACROS
13959#ifndef WIDL_C_INLINE_WRAPPERS
13960/*** IUnknown methods ***/
13961#define IUrlMon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13962#define IUrlMon_AddRef(This) (This)->lpVtbl->AddRef(This)
13963#define IUrlMon_Release(This) (This)->lpVtbl->Release(This)
13964/*** IUrlMon methods ***/
13965#define IUrlMon_AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags) (This)->lpVtbl->AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags)
13966#else
13967/*** IUnknown methods ***/
13968static FORCEINLINE HRESULT IUrlMon_QueryInterface(IUrlMon* This,REFIID riid,void **ppvObject) {
13969    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13970}
13971static FORCEINLINE ULONG IUrlMon_AddRef(IUrlMon* This) {
13972    return This->lpVtbl->AddRef(This);
13973}
13974static FORCEINLINE ULONG IUrlMon_Release(IUrlMon* This) {
13975    return This->lpVtbl->Release(This);
13976}
13977/*** IUrlMon methods ***/
13978static FORCEINLINE HRESULT IUrlMon_AsyncGetClassBits(IUrlMon* This,REFCLSID rclsid,LPCWSTR pszTYPE,LPCWSTR pszExt,DWORD dwFileVersionMS,DWORD dwFileVersionLS,LPCWSTR pszCodeBase,IBindCtx *pbc,DWORD dwClassContext,REFIID riid,DWORD flags) {
13979    return This->lpVtbl->AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags);
13980}
13981#endif
13982#endif
13983
13984#endif
13985
13986HRESULT STDMETHODCALLTYPE IUrlMon_AsyncGetClassBits_Proxy(
13987    IUrlMon* This,
13988    REFCLSID rclsid,
13989    LPCWSTR pszTYPE,
13990    LPCWSTR pszExt,
13991    DWORD dwFileVersionMS,
13992    DWORD dwFileVersionLS,
13993    LPCWSTR pszCodeBase,
13994    IBindCtx *pbc,
13995    DWORD dwClassContext,
13996    REFIID riid,
13997    DWORD flags);
13998void __RPC_STUB IUrlMon_AsyncGetClassBits_Stub(
13999    IRpcStubBuffer* This,
14000    IRpcChannelBuffer* pRpcChannelBuffer,
14001    PRPC_MESSAGE pRpcMessage,
14002    DWORD* pdwStubPhase);
14003
14004#endif  /* __IUrlMon_INTERFACE_DEFINED__ */
14005
14006/*****************************************************************************
14007 * IForegroundTransfer interface
14008 */
14009#ifndef __IForegroundTransfer_INTERFACE_DEFINED__
14010#define __IForegroundTransfer_INTERFACE_DEFINED__
14011
14012DEFINE_GUID(IID_IForegroundTransfer, 0x00000145, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14013#if defined(__cplusplus) && !defined(CINTERFACE)
14014MIDL_INTERFACE("00000145-0000-0000-c000-000000000046")
14015IForegroundTransfer : public IUnknown
14016{
14017    virtual HRESULT STDMETHODCALLTYPE AllowForegroundTransfer(
14018        void *lpvReserved) = 0;
14019
14020};
14021#ifdef __CRT_UUID_DECL
14022__CRT_UUID_DECL(IForegroundTransfer, 0x00000145, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14023#endif
14024#else
14025typedef struct IForegroundTransferVtbl {
14026    BEGIN_INTERFACE
14027
14028    /*** IUnknown methods ***/
14029    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14030        IForegroundTransfer* This,
14031        REFIID riid,
14032        void **ppvObject);
14033
14034    ULONG (STDMETHODCALLTYPE *AddRef)(
14035        IForegroundTransfer* This);
14036
14037    ULONG (STDMETHODCALLTYPE *Release)(
14038        IForegroundTransfer* This);
14039
14040    /*** IForegroundTransfer methods ***/
14041    HRESULT (STDMETHODCALLTYPE *AllowForegroundTransfer)(
14042        IForegroundTransfer* This,
14043        void *lpvReserved);
14044
14045    END_INTERFACE
14046} IForegroundTransferVtbl;
14047interface IForegroundTransfer {
14048    CONST_VTBL IForegroundTransferVtbl* lpVtbl;
14049};
14050
14051#ifdef COBJMACROS
14052#ifndef WIDL_C_INLINE_WRAPPERS
14053/*** IUnknown methods ***/
14054#define IForegroundTransfer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14055#define IForegroundTransfer_AddRef(This) (This)->lpVtbl->AddRef(This)
14056#define IForegroundTransfer_Release(This) (This)->lpVtbl->Release(This)
14057/*** IForegroundTransfer methods ***/
14058#define IForegroundTransfer_AllowForegroundTransfer(This,lpvReserved) (This)->lpVtbl->AllowForegroundTransfer(This,lpvReserved)
14059#else
14060/*** IUnknown methods ***/
14061static FORCEINLINE HRESULT IForegroundTransfer_QueryInterface(IForegroundTransfer* This,REFIID riid,void **ppvObject) {
14062    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14063}
14064static FORCEINLINE ULONG IForegroundTransfer_AddRef(IForegroundTransfer* This) {
14065    return This->lpVtbl->AddRef(This);
14066}
14067static FORCEINLINE ULONG IForegroundTransfer_Release(IForegroundTransfer* This) {
14068    return This->lpVtbl->Release(This);
14069}
14070/*** IForegroundTransfer methods ***/
14071static FORCEINLINE HRESULT IForegroundTransfer_AllowForegroundTransfer(IForegroundTransfer* This,void *lpvReserved) {
14072    return This->lpVtbl->AllowForegroundTransfer(This,lpvReserved);
14073}
14074#endif
14075#endif
14076
14077#endif
14078
14079HRESULT STDMETHODCALLTYPE IForegroundTransfer_AllowForegroundTransfer_Proxy(
14080    IForegroundTransfer* This,
14081    void *lpvReserved);
14082void __RPC_STUB IForegroundTransfer_AllowForegroundTransfer_Stub(
14083    IRpcStubBuffer* This,
14084    IRpcChannelBuffer* pRpcChannelBuffer,
14085    PRPC_MESSAGE pRpcMessage,
14086    DWORD* pdwStubPhase);
14087
14088#endif  /* __IForegroundTransfer_INTERFACE_DEFINED__ */
14089
14090/*****************************************************************************
14091 * IThumbnailExtractor interface
14092 */
14093#ifndef __IThumbnailExtractor_INTERFACE_DEFINED__
14094#define __IThumbnailExtractor_INTERFACE_DEFINED__
14095
14096DEFINE_GUID(IID_IThumbnailExtractor, 0x969dc708, 0x5c76, 0x11d1, 0x8d,0x86, 0x00,0x00,0xf8,0x04,0xb0,0x57);
14097#if defined(__cplusplus) && !defined(CINTERFACE)
14098MIDL_INTERFACE("969dc708-5c76-11d1-8d86-0000f804b057")
14099IThumbnailExtractor : public IUnknown
14100{
14101    virtual HRESULT STDMETHODCALLTYPE ExtractThumbnail(
14102        IStorage *pStg,
14103        ULONG ulLength,
14104        ULONG ulHeight,
14105        ULONG *pulOutputLength,
14106        ULONG *pulOutputHeight,
14107        HBITMAP *phOutputBitmap) = 0;
14108
14109    virtual HRESULT STDMETHODCALLTYPE OnFileUpdated(
14110        IStorage *pStg) = 0;
14111
14112};
14113#ifdef __CRT_UUID_DECL
14114__CRT_UUID_DECL(IThumbnailExtractor, 0x969dc708, 0x5c76, 0x11d1, 0x8d,0x86, 0x00,0x00,0xf8,0x04,0xb0,0x57)
14115#endif
14116#else
14117typedef struct IThumbnailExtractorVtbl {
14118    BEGIN_INTERFACE
14119
14120    /*** IUnknown methods ***/
14121    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14122        IThumbnailExtractor* This,
14123        REFIID riid,
14124        void **ppvObject);
14125
14126    ULONG (STDMETHODCALLTYPE *AddRef)(
14127        IThumbnailExtractor* This);
14128
14129    ULONG (STDMETHODCALLTYPE *Release)(
14130        IThumbnailExtractor* This);
14131
14132    /*** IThumbnailExtractor methods ***/
14133    HRESULT (STDMETHODCALLTYPE *ExtractThumbnail)(
14134        IThumbnailExtractor* This,
14135        IStorage *pStg,
14136        ULONG ulLength,
14137        ULONG ulHeight,
14138        ULONG *pulOutputLength,
14139        ULONG *pulOutputHeight,
14140        HBITMAP *phOutputBitmap);
14141
14142    HRESULT (STDMETHODCALLTYPE *OnFileUpdated)(
14143        IThumbnailExtractor* This,
14144        IStorage *pStg);
14145
14146    END_INTERFACE
14147} IThumbnailExtractorVtbl;
14148interface IThumbnailExtractor {
14149    CONST_VTBL IThumbnailExtractorVtbl* lpVtbl;
14150};
14151
14152#ifdef COBJMACROS
14153#ifndef WIDL_C_INLINE_WRAPPERS
14154/*** IUnknown methods ***/
14155#define IThumbnailExtractor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14156#define IThumbnailExtractor_AddRef(This) (This)->lpVtbl->AddRef(This)
14157#define IThumbnailExtractor_Release(This) (This)->lpVtbl->Release(This)
14158/*** IThumbnailExtractor methods ***/
14159#define IThumbnailExtractor_ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap) (This)->lpVtbl->ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap)
14160#define IThumbnailExtractor_OnFileUpdated(This,pStg) (This)->lpVtbl->OnFileUpdated(This,pStg)
14161#else
14162/*** IUnknown methods ***/
14163static FORCEINLINE HRESULT IThumbnailExtractor_QueryInterface(IThumbnailExtractor* This,REFIID riid,void **ppvObject) {
14164    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14165}
14166static FORCEINLINE ULONG IThumbnailExtractor_AddRef(IThumbnailExtractor* This) {
14167    return This->lpVtbl->AddRef(This);
14168}
14169static FORCEINLINE ULONG IThumbnailExtractor_Release(IThumbnailExtractor* This) {
14170    return This->lpVtbl->Release(This);
14171}
14172/*** IThumbnailExtractor methods ***/
14173static FORCEINLINE HRESULT IThumbnailExtractor_ExtractThumbnail(IThumbnailExtractor* This,IStorage *pStg,ULONG ulLength,ULONG ulHeight,ULONG *pulOutputLength,ULONG *pulOutputHeight,HBITMAP *phOutputBitmap) {
14174    return This->lpVtbl->ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap);
14175}
14176static FORCEINLINE HRESULT IThumbnailExtractor_OnFileUpdated(IThumbnailExtractor* This,IStorage *pStg) {
14177    return This->lpVtbl->OnFileUpdated(This,pStg);
14178}
14179#endif
14180#endif
14181
14182#endif
14183
14184HRESULT STDMETHODCALLTYPE IThumbnailExtractor_ExtractThumbnail_Proxy(
14185    IThumbnailExtractor* This,
14186    IStorage *pStg,
14187    ULONG ulLength,
14188    ULONG ulHeight,
14189    ULONG *pulOutputLength,
14190    ULONG *pulOutputHeight,
14191    HBITMAP *phOutputBitmap);
14192void __RPC_STUB IThumbnailExtractor_ExtractThumbnail_Stub(
14193    IRpcStubBuffer* This,
14194    IRpcChannelBuffer* pRpcChannelBuffer,
14195    PRPC_MESSAGE pRpcMessage,
14196    DWORD* pdwStubPhase);
14197HRESULT STDMETHODCALLTYPE IThumbnailExtractor_OnFileUpdated_Proxy(
14198    IThumbnailExtractor* This,
14199    IStorage *pStg);
14200void __RPC_STUB IThumbnailExtractor_OnFileUpdated_Stub(
14201    IRpcStubBuffer* This,
14202    IRpcChannelBuffer* pRpcChannelBuffer,
14203    PRPC_MESSAGE pRpcMessage,
14204    DWORD* pdwStubPhase);
14205
14206#endif  /* __IThumbnailExtractor_INTERFACE_DEFINED__ */
14207
14208/*****************************************************************************
14209 * IDummyHICONIncluder interface
14210 */
14211#ifndef __IDummyHICONIncluder_INTERFACE_DEFINED__
14212#define __IDummyHICONIncluder_INTERFACE_DEFINED__
14213
14214DEFINE_GUID(IID_IDummyHICONIncluder, 0x947990de, 0xcc28, 0x11d2, 0xa0,0xf7, 0x00,0x80,0x5f,0x85,0x8f,0xb1);
14215#if defined(__cplusplus) && !defined(CINTERFACE)
14216MIDL_INTERFACE("947990de-cc28-11d2-a0f7-00805f858fb1")
14217IDummyHICONIncluder : public IUnknown
14218{
14219    virtual HRESULT STDMETHODCALLTYPE Dummy(
14220        HICON h1,
14221        HDC h2) = 0;
14222
14223};
14224#ifdef __CRT_UUID_DECL
14225__CRT_UUID_DECL(IDummyHICONIncluder, 0x947990de, 0xcc28, 0x11d2, 0xa0,0xf7, 0x00,0x80,0x5f,0x85,0x8f,0xb1)
14226#endif
14227#else
14228typedef struct IDummyHICONIncluderVtbl {
14229    BEGIN_INTERFACE
14230
14231    /*** IUnknown methods ***/
14232    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14233        IDummyHICONIncluder* This,
14234        REFIID riid,
14235        void **ppvObject);
14236
14237    ULONG (STDMETHODCALLTYPE *AddRef)(
14238        IDummyHICONIncluder* This);
14239
14240    ULONG (STDMETHODCALLTYPE *Release)(
14241        IDummyHICONIncluder* This);
14242
14243    /*** IDummyHICONIncluder methods ***/
14244    HRESULT (STDMETHODCALLTYPE *Dummy)(
14245        IDummyHICONIncluder* This,
14246        HICON h1,
14247        HDC h2);
14248
14249    END_INTERFACE
14250} IDummyHICONIncluderVtbl;
14251interface IDummyHICONIncluder {
14252    CONST_VTBL IDummyHICONIncluderVtbl* lpVtbl;
14253};
14254
14255#ifdef COBJMACROS
14256#ifndef WIDL_C_INLINE_WRAPPERS
14257/*** IUnknown methods ***/
14258#define IDummyHICONIncluder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14259#define IDummyHICONIncluder_AddRef(This) (This)->lpVtbl->AddRef(This)
14260#define IDummyHICONIncluder_Release(This) (This)->lpVtbl->Release(This)
14261/*** IDummyHICONIncluder methods ***/
14262#define IDummyHICONIncluder_Dummy(This,h1,h2) (This)->lpVtbl->Dummy(This,h1,h2)
14263#else
14264/*** IUnknown methods ***/
14265static FORCEINLINE HRESULT IDummyHICONIncluder_QueryInterface(IDummyHICONIncluder* This,REFIID riid,void **ppvObject) {
14266    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14267}
14268static FORCEINLINE ULONG IDummyHICONIncluder_AddRef(IDummyHICONIncluder* This) {
14269    return This->lpVtbl->AddRef(This);
14270}
14271static FORCEINLINE ULONG IDummyHICONIncluder_Release(IDummyHICONIncluder* This) {
14272    return This->lpVtbl->Release(This);
14273}
14274/*** IDummyHICONIncluder methods ***/
14275static FORCEINLINE HRESULT IDummyHICONIncluder_Dummy(IDummyHICONIncluder* This,HICON h1,HDC h2) {
14276    return This->lpVtbl->Dummy(This,h1,h2);
14277}
14278#endif
14279#endif
14280
14281#endif
14282
14283HRESULT STDMETHODCALLTYPE IDummyHICONIncluder_Dummy_Proxy(
14284    IDummyHICONIncluder* This,
14285    HICON h1,
14286    HDC h2);
14287void __RPC_STUB IDummyHICONIncluder_Dummy_Stub(
14288    IRpcStubBuffer* This,
14289    IRpcChannelBuffer* pRpcChannelBuffer,
14290    PRPC_MESSAGE pRpcMessage,
14291    DWORD* pdwStubPhase);
14292
14293#endif  /* __IDummyHICONIncluder_INTERFACE_DEFINED__ */
14294
14295typedef enum tagApplicationType {
14296    ServerApplication = 0,
14297    LibraryApplication = 1
14298} ApplicationType;
14299typedef enum tagShutdownType {
14300    IdleShutdown = 0,
14301    ForcedShutdown = 1
14302} ShutdownType;
14303/*****************************************************************************
14304 * IProcessLock interface
14305 */
14306#ifndef __IProcessLock_INTERFACE_DEFINED__
14307#define __IProcessLock_INTERFACE_DEFINED__
14308
14309DEFINE_GUID(IID_IProcessLock, 0x000001d5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14310#if defined(__cplusplus) && !defined(CINTERFACE)
14311MIDL_INTERFACE("000001d5-0000-0000-c000-000000000046")
14312IProcessLock : public IUnknown
14313{
14314    virtual ULONG STDMETHODCALLTYPE AddRefOnProcess(
14315        ) = 0;
14316
14317    virtual ULONG STDMETHODCALLTYPE ReleaseRefOnProcess(
14318        ) = 0;
14319
14320};
14321#ifdef __CRT_UUID_DECL
14322__CRT_UUID_DECL(IProcessLock, 0x000001d5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14323#endif
14324#else
14325typedef struct IProcessLockVtbl {
14326    BEGIN_INTERFACE
14327
14328    /*** IUnknown methods ***/
14329    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14330        IProcessLock* This,
14331        REFIID riid,
14332        void **ppvObject);
14333
14334    ULONG (STDMETHODCALLTYPE *AddRef)(
14335        IProcessLock* This);
14336
14337    ULONG (STDMETHODCALLTYPE *Release)(
14338        IProcessLock* This);
14339
14340    /*** IProcessLock methods ***/
14341    ULONG (STDMETHODCALLTYPE *AddRefOnProcess)(
14342        IProcessLock* This);
14343
14344    ULONG (STDMETHODCALLTYPE *ReleaseRefOnProcess)(
14345        IProcessLock* This);
14346
14347    END_INTERFACE
14348} IProcessLockVtbl;
14349interface IProcessLock {
14350    CONST_VTBL IProcessLockVtbl* lpVtbl;
14351};
14352
14353#ifdef COBJMACROS
14354#ifndef WIDL_C_INLINE_WRAPPERS
14355/*** IUnknown methods ***/
14356#define IProcessLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14357#define IProcessLock_AddRef(This) (This)->lpVtbl->AddRef(This)
14358#define IProcessLock_Release(This) (This)->lpVtbl->Release(This)
14359/*** IProcessLock methods ***/
14360#define IProcessLock_AddRefOnProcess(This) (This)->lpVtbl->AddRefOnProcess(This)
14361#define IProcessLock_ReleaseRefOnProcess(This) (This)->lpVtbl->ReleaseRefOnProcess(This)
14362#else
14363/*** IUnknown methods ***/
14364static FORCEINLINE HRESULT IProcessLock_QueryInterface(IProcessLock* This,REFIID riid,void **ppvObject) {
14365    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14366}
14367static FORCEINLINE ULONG IProcessLock_AddRef(IProcessLock* This) {
14368    return This->lpVtbl->AddRef(This);
14369}
14370static FORCEINLINE ULONG IProcessLock_Release(IProcessLock* This) {
14371    return This->lpVtbl->Release(This);
14372}
14373/*** IProcessLock methods ***/
14374static FORCEINLINE ULONG IProcessLock_AddRefOnProcess(IProcessLock* This) {
14375    return This->lpVtbl->AddRefOnProcess(This);
14376}
14377static FORCEINLINE ULONG IProcessLock_ReleaseRefOnProcess(IProcessLock* This) {
14378    return This->lpVtbl->ReleaseRefOnProcess(This);
14379}
14380#endif
14381#endif
14382
14383#endif
14384
14385ULONG STDMETHODCALLTYPE IProcessLock_AddRefOnProcess_Proxy(
14386    IProcessLock* This);
14387void __RPC_STUB IProcessLock_AddRefOnProcess_Stub(
14388    IRpcStubBuffer* This,
14389    IRpcChannelBuffer* pRpcChannelBuffer,
14390    PRPC_MESSAGE pRpcMessage,
14391    DWORD* pdwStubPhase);
14392ULONG STDMETHODCALLTYPE IProcessLock_ReleaseRefOnProcess_Proxy(
14393    IProcessLock* This);
14394void __RPC_STUB IProcessLock_ReleaseRefOnProcess_Stub(
14395    IRpcStubBuffer* This,
14396    IRpcChannelBuffer* pRpcChannelBuffer,
14397    PRPC_MESSAGE pRpcMessage,
14398    DWORD* pdwStubPhase);
14399
14400#endif  /* __IProcessLock_INTERFACE_DEFINED__ */
14401
14402/*****************************************************************************
14403 * ISurrogateService interface
14404 */
14405#ifndef __ISurrogateService_INTERFACE_DEFINED__
14406#define __ISurrogateService_INTERFACE_DEFINED__
14407
14408DEFINE_GUID(IID_ISurrogateService, 0x000001d4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14409#if defined(__cplusplus) && !defined(CINTERFACE)
14410MIDL_INTERFACE("000001d4-0000-0000-c000-000000000046")
14411ISurrogateService : public IUnknown
14412{
14413    virtual HRESULT STDMETHODCALLTYPE Init(
14414        REFGUID rguidProcessID,
14415        IProcessLock *pProcessLock,
14416        WINBOOL *pfApplicationAware) = 0;
14417
14418    virtual HRESULT STDMETHODCALLTYPE ApplicationLaunch(
14419        REFGUID rguidApplID,
14420        ApplicationType appType) = 0;
14421
14422    virtual HRESULT STDMETHODCALLTYPE ApplicationFree(
14423        REFGUID rguidApplID) = 0;
14424
14425    virtual HRESULT STDMETHODCALLTYPE CatalogRefresh(
14426        ULONG ulReserved) = 0;
14427
14428    virtual HRESULT STDMETHODCALLTYPE ProcessShutdown(
14429        ShutdownType shutdownType) = 0;
14430
14431};
14432#ifdef __CRT_UUID_DECL
14433__CRT_UUID_DECL(ISurrogateService, 0x000001d4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14434#endif
14435#else
14436typedef struct ISurrogateServiceVtbl {
14437    BEGIN_INTERFACE
14438
14439    /*** IUnknown methods ***/
14440    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14441        ISurrogateService* This,
14442        REFIID riid,
14443        void **ppvObject);
14444
14445    ULONG (STDMETHODCALLTYPE *AddRef)(
14446        ISurrogateService* This);
14447
14448    ULONG (STDMETHODCALLTYPE *Release)(
14449        ISurrogateService* This);
14450
14451    /*** ISurrogateService methods ***/
14452    HRESULT (STDMETHODCALLTYPE *Init)(
14453        ISurrogateService* This,
14454        REFGUID rguidProcessID,
14455        IProcessLock *pProcessLock,
14456        WINBOOL *pfApplicationAware);
14457
14458    HRESULT (STDMETHODCALLTYPE *ApplicationLaunch)(
14459        ISurrogateService* This,
14460        REFGUID rguidApplID,
14461        ApplicationType appType);
14462
14463    HRESULT (STDMETHODCALLTYPE *ApplicationFree)(
14464        ISurrogateService* This,
14465        REFGUID rguidApplID);
14466
14467    HRESULT (STDMETHODCALLTYPE *CatalogRefresh)(
14468        ISurrogateService* This,
14469        ULONG ulReserved);
14470
14471    HRESULT (STDMETHODCALLTYPE *ProcessShutdown)(
14472        ISurrogateService* This,
14473        ShutdownType shutdownType);
14474
14475    END_INTERFACE
14476} ISurrogateServiceVtbl;
14477interface ISurrogateService {
14478    CONST_VTBL ISurrogateServiceVtbl* lpVtbl;
14479};
14480
14481#ifdef COBJMACROS
14482#ifndef WIDL_C_INLINE_WRAPPERS
14483/*** IUnknown methods ***/
14484#define ISurrogateService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14485#define ISurrogateService_AddRef(This) (This)->lpVtbl->AddRef(This)
14486#define ISurrogateService_Release(This) (This)->lpVtbl->Release(This)
14487/*** ISurrogateService methods ***/
14488#define ISurrogateService_Init(This,rguidProcessID,pProcessLock,pfApplicationAware) (This)->lpVtbl->Init(This,rguidProcessID,pProcessLock,pfApplicationAware)
14489#define ISurrogateService_ApplicationLaunch(This,rguidApplID,appType) (This)->lpVtbl->ApplicationLaunch(This,rguidApplID,appType)
14490#define ISurrogateService_ApplicationFree(This,rguidApplID) (This)->lpVtbl->ApplicationFree(This,rguidApplID)
14491#define ISurrogateService_CatalogRefresh(This,ulReserved) (This)->lpVtbl->CatalogRefresh(This,ulReserved)
14492#define ISurrogateService_ProcessShutdown(This,shutdownType) (This)->lpVtbl->ProcessShutdown(This,shutdownType)
14493#else
14494/*** IUnknown methods ***/
14495static FORCEINLINE HRESULT ISurrogateService_QueryInterface(ISurrogateService* This,REFIID riid,void **ppvObject) {
14496    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14497}
14498static FORCEINLINE ULONG ISurrogateService_AddRef(ISurrogateService* This) {
14499    return This->lpVtbl->AddRef(This);
14500}
14501static FORCEINLINE ULONG ISurrogateService_Release(ISurrogateService* This) {
14502    return This->lpVtbl->Release(This);
14503}
14504/*** ISurrogateService methods ***/
14505static FORCEINLINE HRESULT ISurrogateService_Init(ISurrogateService* This,REFGUID rguidProcessID,IProcessLock *pProcessLock,WINBOOL *pfApplicationAware) {
14506    return This->lpVtbl->Init(This,rguidProcessID,pProcessLock,pfApplicationAware);
14507}
14508static FORCEINLINE HRESULT ISurrogateService_ApplicationLaunch(ISurrogateService* This,REFGUID rguidApplID,ApplicationType appType) {
14509    return This->lpVtbl->ApplicationLaunch(This,rguidApplID,appType);
14510}
14511static FORCEINLINE HRESULT ISurrogateService_ApplicationFree(ISurrogateService* This,REFGUID rguidApplID) {
14512    return This->lpVtbl->ApplicationFree(This,rguidApplID);
14513}
14514static FORCEINLINE HRESULT ISurrogateService_CatalogRefresh(ISurrogateService* This,ULONG ulReserved) {
14515    return This->lpVtbl->CatalogRefresh(This,ulReserved);
14516}
14517static FORCEINLINE HRESULT ISurrogateService_ProcessShutdown(ISurrogateService* This,ShutdownType shutdownType) {
14518    return This->lpVtbl->ProcessShutdown(This,shutdownType);
14519}
14520#endif
14521#endif
14522
14523#endif
14524
14525HRESULT STDMETHODCALLTYPE ISurrogateService_Init_Proxy(
14526    ISurrogateService* This,
14527    REFGUID rguidProcessID,
14528    IProcessLock *pProcessLock,
14529    WINBOOL *pfApplicationAware);
14530void __RPC_STUB ISurrogateService_Init_Stub(
14531    IRpcStubBuffer* This,
14532    IRpcChannelBuffer* pRpcChannelBuffer,
14533    PRPC_MESSAGE pRpcMessage,
14534    DWORD* pdwStubPhase);
14535HRESULT STDMETHODCALLTYPE ISurrogateService_ApplicationLaunch_Proxy(
14536    ISurrogateService* This,
14537    REFGUID rguidApplID,
14538    ApplicationType appType);
14539void __RPC_STUB ISurrogateService_ApplicationLaunch_Stub(
14540    IRpcStubBuffer* This,
14541    IRpcChannelBuffer* pRpcChannelBuffer,
14542    PRPC_MESSAGE pRpcMessage,
14543    DWORD* pdwStubPhase);
14544HRESULT STDMETHODCALLTYPE ISurrogateService_ApplicationFree_Proxy(
14545    ISurrogateService* This,
14546    REFGUID rguidApplID);
14547void __RPC_STUB ISurrogateService_ApplicationFree_Stub(
14548    IRpcStubBuffer* This,
14549    IRpcChannelBuffer* pRpcChannelBuffer,
14550    PRPC_MESSAGE pRpcMessage,
14551    DWORD* pdwStubPhase);
14552HRESULT STDMETHODCALLTYPE ISurrogateService_CatalogRefresh_Proxy(
14553    ISurrogateService* This,
14554    ULONG ulReserved);
14555void __RPC_STUB ISurrogateService_CatalogRefresh_Stub(
14556    IRpcStubBuffer* This,
14557    IRpcChannelBuffer* pRpcChannelBuffer,
14558    PRPC_MESSAGE pRpcMessage,
14559    DWORD* pdwStubPhase);
14560HRESULT STDMETHODCALLTYPE ISurrogateService_ProcessShutdown_Proxy(
14561    ISurrogateService* This,
14562    ShutdownType shutdownType);
14563void __RPC_STUB ISurrogateService_ProcessShutdown_Stub(
14564    IRpcStubBuffer* This,
14565    IRpcChannelBuffer* pRpcChannelBuffer,
14566    PRPC_MESSAGE pRpcMessage,
14567    DWORD* pdwStubPhase);
14568
14569#endif  /* __ISurrogateService_INTERFACE_DEFINED__ */
14570
14571/*****************************************************************************
14572 * IInitializeSpy interface
14573 */
14574#ifndef __IInitializeSpy_INTERFACE_DEFINED__
14575#define __IInitializeSpy_INTERFACE_DEFINED__
14576
14577typedef IInitializeSpy *LPINITIALIZESPY;
14578DEFINE_GUID(IID_IInitializeSpy, 0x00000034, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14579#if defined(__cplusplus) && !defined(CINTERFACE)
14580MIDL_INTERFACE("00000034-0000-0000-c000-000000000046")
14581IInitializeSpy : public IUnknown
14582{
14583    virtual HRESULT STDMETHODCALLTYPE PreInitialize(
14584        DWORD dwCoInit,
14585        DWORD dwCurThreadAptRefs) = 0;
14586
14587    virtual HRESULT STDMETHODCALLTYPE PostInitialize(
14588        HRESULT hrCoInit,
14589        DWORD dwCoInit,
14590        DWORD dwNewThreadAptRefs) = 0;
14591
14592    virtual HRESULT STDMETHODCALLTYPE PreUninitialize(
14593        DWORD dwCurThreadAptRefs) = 0;
14594
14595    virtual HRESULT STDMETHODCALLTYPE PostUninitialize(
14596        DWORD dwNewThreadAptRefs) = 0;
14597
14598};
14599#ifdef __CRT_UUID_DECL
14600__CRT_UUID_DECL(IInitializeSpy, 0x00000034, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14601#endif
14602#else
14603typedef struct IInitializeSpyVtbl {
14604    BEGIN_INTERFACE
14605
14606    /*** IUnknown methods ***/
14607    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14608        IInitializeSpy* This,
14609        REFIID riid,
14610        void **ppvObject);
14611
14612    ULONG (STDMETHODCALLTYPE *AddRef)(
14613        IInitializeSpy* This);
14614
14615    ULONG (STDMETHODCALLTYPE *Release)(
14616        IInitializeSpy* This);
14617
14618    /*** IInitializeSpy methods ***/
14619    HRESULT (STDMETHODCALLTYPE *PreInitialize)(
14620        IInitializeSpy* This,
14621        DWORD dwCoInit,
14622        DWORD dwCurThreadAptRefs);
14623
14624    HRESULT (STDMETHODCALLTYPE *PostInitialize)(
14625        IInitializeSpy* This,
14626        HRESULT hrCoInit,
14627        DWORD dwCoInit,
14628        DWORD dwNewThreadAptRefs);
14629
14630    HRESULT (STDMETHODCALLTYPE *PreUninitialize)(
14631        IInitializeSpy* This,
14632        DWORD dwCurThreadAptRefs);
14633
14634    HRESULT (STDMETHODCALLTYPE *PostUninitialize)(
14635        IInitializeSpy* This,
14636        DWORD dwNewThreadAptRefs);
14637
14638    END_INTERFACE
14639} IInitializeSpyVtbl;
14640interface IInitializeSpy {
14641    CONST_VTBL IInitializeSpyVtbl* lpVtbl;
14642};
14643
14644#ifdef COBJMACROS
14645#ifndef WIDL_C_INLINE_WRAPPERS
14646/*** IUnknown methods ***/
14647#define IInitializeSpy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14648#define IInitializeSpy_AddRef(This) (This)->lpVtbl->AddRef(This)
14649#define IInitializeSpy_Release(This) (This)->lpVtbl->Release(This)
14650/*** IInitializeSpy methods ***/
14651#define IInitializeSpy_PreInitialize(This,dwCoInit,dwCurThreadAptRefs) (This)->lpVtbl->PreInitialize(This,dwCoInit,dwCurThreadAptRefs)
14652#define IInitializeSpy_PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs) (This)->lpVtbl->PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs)
14653#define IInitializeSpy_PreUninitialize(This,dwCurThreadAptRefs) (This)->lpVtbl->PreUninitialize(This,dwCurThreadAptRefs)
14654#define IInitializeSpy_PostUninitialize(This,dwNewThreadAptRefs) (This)->lpVtbl->PostUninitialize(This,dwNewThreadAptRefs)
14655#else
14656/*** IUnknown methods ***/
14657static FORCEINLINE HRESULT IInitializeSpy_QueryInterface(IInitializeSpy* This,REFIID riid,void **ppvObject) {
14658    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14659}
14660static FORCEINLINE ULONG IInitializeSpy_AddRef(IInitializeSpy* This) {
14661    return This->lpVtbl->AddRef(This);
14662}
14663static FORCEINLINE ULONG IInitializeSpy_Release(IInitializeSpy* This) {
14664    return This->lpVtbl->Release(This);
14665}
14666/*** IInitializeSpy methods ***/
14667static FORCEINLINE HRESULT IInitializeSpy_PreInitialize(IInitializeSpy* This,DWORD dwCoInit,DWORD dwCurThreadAptRefs) {
14668    return This->lpVtbl->PreInitialize(This,dwCoInit,dwCurThreadAptRefs);
14669}
14670static FORCEINLINE HRESULT IInitializeSpy_PostInitialize(IInitializeSpy* This,HRESULT hrCoInit,DWORD dwCoInit,DWORD dwNewThreadAptRefs) {
14671    return This->lpVtbl->PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs);
14672}
14673static FORCEINLINE HRESULT IInitializeSpy_PreUninitialize(IInitializeSpy* This,DWORD dwCurThreadAptRefs) {
14674    return This->lpVtbl->PreUninitialize(This,dwCurThreadAptRefs);
14675}
14676static FORCEINLINE HRESULT IInitializeSpy_PostUninitialize(IInitializeSpy* This,DWORD dwNewThreadAptRefs) {
14677    return This->lpVtbl->PostUninitialize(This,dwNewThreadAptRefs);
14678}
14679#endif
14680#endif
14681
14682#endif
14683
14684HRESULT STDMETHODCALLTYPE IInitializeSpy_PreInitialize_Proxy(
14685    IInitializeSpy* This,
14686    DWORD dwCoInit,
14687    DWORD dwCurThreadAptRefs);
14688void __RPC_STUB IInitializeSpy_PreInitialize_Stub(
14689    IRpcStubBuffer* This,
14690    IRpcChannelBuffer* pRpcChannelBuffer,
14691    PRPC_MESSAGE pRpcMessage,
14692    DWORD* pdwStubPhase);
14693HRESULT STDMETHODCALLTYPE IInitializeSpy_PostInitialize_Proxy(
14694    IInitializeSpy* This,
14695    HRESULT hrCoInit,
14696    DWORD dwCoInit,
14697    DWORD dwNewThreadAptRefs);
14698void __RPC_STUB IInitializeSpy_PostInitialize_Stub(
14699    IRpcStubBuffer* This,
14700    IRpcChannelBuffer* pRpcChannelBuffer,
14701    PRPC_MESSAGE pRpcMessage,
14702    DWORD* pdwStubPhase);
14703HRESULT STDMETHODCALLTYPE IInitializeSpy_PreUninitialize_Proxy(
14704    IInitializeSpy* This,
14705    DWORD dwCurThreadAptRefs);
14706void __RPC_STUB IInitializeSpy_PreUninitialize_Stub(
14707    IRpcStubBuffer* This,
14708    IRpcChannelBuffer* pRpcChannelBuffer,
14709    PRPC_MESSAGE pRpcMessage,
14710    DWORD* pdwStubPhase);
14711HRESULT STDMETHODCALLTYPE IInitializeSpy_PostUninitialize_Proxy(
14712    IInitializeSpy* This,
14713    DWORD dwNewThreadAptRefs);
14714void __RPC_STUB IInitializeSpy_PostUninitialize_Stub(
14715    IRpcStubBuffer* This,
14716    IRpcChannelBuffer* pRpcChannelBuffer,
14717    PRPC_MESSAGE pRpcMessage,
14718    DWORD* pdwStubPhase);
14719
14720#endif  /* __IInitializeSpy_INTERFACE_DEFINED__ */
14721
14722#endif
14723#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
14724/*****************************************************************************
14725 * IApartmentShutdown interface
14726 */
14727#ifndef __IApartmentShutdown_INTERFACE_DEFINED__
14728#define __IApartmentShutdown_INTERFACE_DEFINED__
14729
14730DEFINE_GUID(IID_IApartmentShutdown, 0xa2f05a09, 0x27a2, 0x42b5, 0xbc,0x0e, 0xac,0x16,0x3e,0xf4,0x9d,0x9b);
14731#if defined(__cplusplus) && !defined(CINTERFACE)
14732MIDL_INTERFACE("a2f05a09-27a2-42b5-bc0e-ac163ef49d9b")
14733IApartmentShutdown : public IUnknown
14734{
14735    virtual void STDMETHODCALLTYPE OnUninitialize(
14736        UINT64 ui64ApartmentIdentifier) = 0;
14737
14738};
14739#ifdef __CRT_UUID_DECL
14740__CRT_UUID_DECL(IApartmentShutdown, 0xa2f05a09, 0x27a2, 0x42b5, 0xbc,0x0e, 0xac,0x16,0x3e,0xf4,0x9d,0x9b)
14741#endif
14742#else
14743typedef struct IApartmentShutdownVtbl {
14744    BEGIN_INTERFACE
14745
14746    /*** IUnknown methods ***/
14747    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14748        IApartmentShutdown* This,
14749        REFIID riid,
14750        void **ppvObject);
14751
14752    ULONG (STDMETHODCALLTYPE *AddRef)(
14753        IApartmentShutdown* This);
14754
14755    ULONG (STDMETHODCALLTYPE *Release)(
14756        IApartmentShutdown* This);
14757
14758    /*** IApartmentShutdown methods ***/
14759    void (STDMETHODCALLTYPE *OnUninitialize)(
14760        IApartmentShutdown* This,
14761        UINT64 ui64ApartmentIdentifier);
14762
14763    END_INTERFACE
14764} IApartmentShutdownVtbl;
14765interface IApartmentShutdown {
14766    CONST_VTBL IApartmentShutdownVtbl* lpVtbl;
14767};
14768
14769#ifdef COBJMACROS
14770#ifndef WIDL_C_INLINE_WRAPPERS
14771/*** IUnknown methods ***/
14772#define IApartmentShutdown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14773#define IApartmentShutdown_AddRef(This) (This)->lpVtbl->AddRef(This)
14774#define IApartmentShutdown_Release(This) (This)->lpVtbl->Release(This)
14775/*** IApartmentShutdown methods ***/
14776#define IApartmentShutdown_OnUninitialize(This,ui64ApartmentIdentifier) (This)->lpVtbl->OnUninitialize(This,ui64ApartmentIdentifier)
14777#else
14778/*** IUnknown methods ***/
14779static FORCEINLINE HRESULT IApartmentShutdown_QueryInterface(IApartmentShutdown* This,REFIID riid,void **ppvObject) {
14780    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14781}
14782static FORCEINLINE ULONG IApartmentShutdown_AddRef(IApartmentShutdown* This) {
14783    return This->lpVtbl->AddRef(This);
14784}
14785static FORCEINLINE ULONG IApartmentShutdown_Release(IApartmentShutdown* This) {
14786    return This->lpVtbl->Release(This);
14787}
14788/*** IApartmentShutdown methods ***/
14789static FORCEINLINE void IApartmentShutdown_OnUninitialize(IApartmentShutdown* This,UINT64 ui64ApartmentIdentifier) {
14790    This->lpVtbl->OnUninitialize(This,ui64ApartmentIdentifier);
14791}
14792#endif
14793#endif
14794
14795#endif
14796
14797void STDMETHODCALLTYPE IApartmentShutdown_OnUninitialize_Proxy(
14798    IApartmentShutdown* This,
14799    UINT64 ui64ApartmentIdentifier);
14800void __RPC_STUB IApartmentShutdown_OnUninitialize_Stub(
14801    IRpcStubBuffer* This,
14802    IRpcChannelBuffer* pRpcChannelBuffer,
14803    PRPC_MESSAGE pRpcMessage,
14804    DWORD* pdwStubPhase);
14805
14806#endif  /* __IApartmentShutdown_INTERFACE_DEFINED__ */
14807
14808#endif
14809/* Begin additional prototypes for all interfaces */
14810
14811ULONG           __RPC_USER SNB_UserSize     (ULONG *, ULONG, SNB *);
14812unsigned char * __RPC_USER SNB_UserMarshal  (ULONG *, unsigned char *, SNB *);
14813unsigned char * __RPC_USER SNB_UserUnmarshal(ULONG *, unsigned char *, SNB *);
14814void            __RPC_USER SNB_UserFree     (ULONG *, SNB *);
14815ULONG           __RPC_USER CLIPFORMAT_UserSize     (ULONG *, ULONG, CLIPFORMAT *);
14816unsigned char * __RPC_USER CLIPFORMAT_UserMarshal  (ULONG *, unsigned char *, CLIPFORMAT *);
14817unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
14818void            __RPC_USER CLIPFORMAT_UserFree     (ULONG *, CLIPFORMAT *);
14819ULONG           __RPC_USER STGMEDIUM_UserSize     (ULONG *, ULONG, STGMEDIUM *);
14820unsigned char * __RPC_USER STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, STGMEDIUM *);
14821unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, STGMEDIUM *);
14822void            __RPC_USER STGMEDIUM_UserFree     (ULONG *, STGMEDIUM *);
14823ULONG           __RPC_USER ASYNC_STGMEDIUM_UserSize     (ULONG *, ULONG, ASYNC_STGMEDIUM *);
14824unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, ASYNC_STGMEDIUM *);
14825unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, ASYNC_STGMEDIUM *);
14826void            __RPC_USER ASYNC_STGMEDIUM_UserFree     (ULONG *, ASYNC_STGMEDIUM *);
14827ULONG           __RPC_USER FLAG_STGMEDIUM_UserSize     (ULONG *, ULONG, FLAG_STGMEDIUM *);
14828unsigned char * __RPC_USER FLAG_STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, FLAG_STGMEDIUM *);
14829unsigned char * __RPC_USER FLAG_STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, FLAG_STGMEDIUM *);
14830void            __RPC_USER FLAG_STGMEDIUM_UserFree     (ULONG *, FLAG_STGMEDIUM *);
14831ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
14832unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
14833unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
14834void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
14835ULONG           __RPC_USER HICON_UserSize     (ULONG *, ULONG, HICON *);
14836unsigned char * __RPC_USER HICON_UserMarshal  (ULONG *, unsigned char *, HICON *);
14837unsigned char * __RPC_USER HICON_UserUnmarshal(ULONG *, unsigned char *, HICON *);
14838void            __RPC_USER HICON_UserFree     (ULONG *, HICON *);
14839ULONG           __RPC_USER HDC_UserSize     (ULONG *, ULONG, HDC *);
14840unsigned char * __RPC_USER HDC_UserMarshal  (ULONG *, unsigned char *, HDC *);
14841unsigned char * __RPC_USER HDC_UserUnmarshal(ULONG *, unsigned char *, HDC *);
14842void            __RPC_USER HDC_UserFree     (ULONG *, HDC *);
14843
14844/* End additional prototypes */
14845
14846#ifdef __cplusplus
14847}
14848#endif
14849
14850#endif /* __objidl_h__ */
14851