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