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