• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*** Autogenerated by WIDL 1.6 from include/objidl.idl - Do not edit ***/
2 
3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
5 #endif
6 
7 #include <rpc.h>
8 #include <rpcndr.h>
9 
10 #ifndef COM_NO_WINDOWS_H
11 #include <windows.h>
12 #include <ole2.h>
13 #endif
14 
15 #ifndef __objidl_h__
16 #define __objidl_h__
17 
18 /* Forward declarations */
19 
20 #ifndef __IMarshal_FWD_DEFINED__
21 #define __IMarshal_FWD_DEFINED__
22 typedef interface IMarshal IMarshal;
23 #endif
24 
25 #ifndef __INoMarshal_FWD_DEFINED__
26 #define __INoMarshal_FWD_DEFINED__
27 typedef interface INoMarshal INoMarshal;
28 #endif
29 
30 #ifndef __IAgileObject_FWD_DEFINED__
31 #define __IAgileObject_FWD_DEFINED__
32 typedef interface IAgileObject IAgileObject;
33 #endif
34 
35 #ifndef __IMarshal2_FWD_DEFINED__
36 #define __IMarshal2_FWD_DEFINED__
37 typedef interface IMarshal2 IMarshal2;
38 #endif
39 
40 #ifndef __IMalloc_FWD_DEFINED__
41 #define __IMalloc_FWD_DEFINED__
42 typedef interface IMalloc IMalloc;
43 #endif
44 
45 #ifndef __IStdMarshalInfo_FWD_DEFINED__
46 #define __IStdMarshalInfo_FWD_DEFINED__
47 typedef interface IStdMarshalInfo IStdMarshalInfo;
48 #endif
49 
50 #ifndef __IExternalConnection_FWD_DEFINED__
51 #define __IExternalConnection_FWD_DEFINED__
52 typedef interface IExternalConnection IExternalConnection;
53 #endif
54 
55 #ifndef __IMultiQI_FWD_DEFINED__
56 #define __IMultiQI_FWD_DEFINED__
57 typedef interface IMultiQI IMultiQI;
58 #endif
59 
60 #ifndef __AsyncIMultiQI_FWD_DEFINED__
61 #define __AsyncIMultiQI_FWD_DEFINED__
62 typedef interface AsyncIMultiQI AsyncIMultiQI;
63 #endif
64 
65 #ifndef __IInternalUnknown_FWD_DEFINED__
66 #define __IInternalUnknown_FWD_DEFINED__
67 typedef interface IInternalUnknown IInternalUnknown;
68 #endif
69 
70 #ifndef __IEnumUnknown_FWD_DEFINED__
71 #define __IEnumUnknown_FWD_DEFINED__
72 typedef interface IEnumUnknown IEnumUnknown;
73 #endif
74 
75 #ifndef __IEnumString_FWD_DEFINED__
76 #define __IEnumString_FWD_DEFINED__
77 typedef interface IEnumString IEnumString;
78 #endif
79 
80 #ifndef __ISequentialStream_FWD_DEFINED__
81 #define __ISequentialStream_FWD_DEFINED__
82 typedef interface ISequentialStream ISequentialStream;
83 #endif
84 
85 #ifndef __IStream_FWD_DEFINED__
86 #define __IStream_FWD_DEFINED__
87 typedef interface IStream IStream;
88 #endif
89 
90 #ifndef __IRpcChannelBuffer_FWD_DEFINED__
91 #define __IRpcChannelBuffer_FWD_DEFINED__
92 typedef interface IRpcChannelBuffer IRpcChannelBuffer;
93 #endif
94 
95 #ifndef __IRpcChannelBuffer2_FWD_DEFINED__
96 #define __IRpcChannelBuffer2_FWD_DEFINED__
97 typedef interface IRpcChannelBuffer2 IRpcChannelBuffer2;
98 #endif
99 
100 #ifndef __IAsyncRpcChannelBuffer_FWD_DEFINED__
101 #define __IAsyncRpcChannelBuffer_FWD_DEFINED__
102 typedef interface IAsyncRpcChannelBuffer IAsyncRpcChannelBuffer;
103 #endif
104 
105 #ifndef __IRpcChannelBuffer3_FWD_DEFINED__
106 #define __IRpcChannelBuffer3_FWD_DEFINED__
107 typedef interface IRpcChannelBuffer3 IRpcChannelBuffer3;
108 #endif
109 
110 #ifndef __IRpcSyntaxNegotiate_FWD_DEFINED__
111 #define __IRpcSyntaxNegotiate_FWD_DEFINED__
112 typedef interface IRpcSyntaxNegotiate IRpcSyntaxNegotiate;
113 #endif
114 
115 #ifndef __IRpcProxyBuffer_FWD_DEFINED__
116 #define __IRpcProxyBuffer_FWD_DEFINED__
117 typedef interface IRpcProxyBuffer IRpcProxyBuffer;
118 #endif
119 
120 #ifndef __IRpcStubBuffer_FWD_DEFINED__
121 #define __IRpcStubBuffer_FWD_DEFINED__
122 typedef interface IRpcStubBuffer IRpcStubBuffer;
123 #endif
124 
125 #ifndef __IPSFactoryBuffer_FWD_DEFINED__
126 #define __IPSFactoryBuffer_FWD_DEFINED__
127 typedef interface IPSFactoryBuffer IPSFactoryBuffer;
128 #endif
129 
130 #ifndef __IChannelHook_FWD_DEFINED__
131 #define __IChannelHook_FWD_DEFINED__
132 typedef interface IChannelHook IChannelHook;
133 #endif
134 
135 #ifndef __IClientSecurity_FWD_DEFINED__
136 #define __IClientSecurity_FWD_DEFINED__
137 typedef interface IClientSecurity IClientSecurity;
138 #endif
139 
140 #ifndef __IServerSecurity_FWD_DEFINED__
141 #define __IServerSecurity_FWD_DEFINED__
142 typedef interface IServerSecurity IServerSecurity;
143 #endif
144 
145 #ifndef __IRpcOptions_FWD_DEFINED__
146 #define __IRpcOptions_FWD_DEFINED__
147 typedef interface IRpcOptions IRpcOptions;
148 #endif
149 
150 #ifndef __IGlobalOptions_FWD_DEFINED__
151 #define __IGlobalOptions_FWD_DEFINED__
152 typedef interface IGlobalOptions IGlobalOptions;
153 #endif
154 
155 #ifndef __ISurrogate_FWD_DEFINED__
156 #define __ISurrogate_FWD_DEFINED__
157 typedef interface ISurrogate ISurrogate;
158 #endif
159 
160 #ifndef __IGlobalInterfaceTable_FWD_DEFINED__
161 #define __IGlobalInterfaceTable_FWD_DEFINED__
162 typedef interface IGlobalInterfaceTable IGlobalInterfaceTable;
163 #endif
164 
165 #ifndef __ISynchronize_FWD_DEFINED__
166 #define __ISynchronize_FWD_DEFINED__
167 typedef interface ISynchronize ISynchronize;
168 #endif
169 
170 #ifndef __ISynchronizeHandle_FWD_DEFINED__
171 #define __ISynchronizeHandle_FWD_DEFINED__
172 typedef interface ISynchronizeHandle ISynchronizeHandle;
173 #endif
174 
175 #ifndef __ISynchronizeEvent_FWD_DEFINED__
176 #define __ISynchronizeEvent_FWD_DEFINED__
177 typedef interface ISynchronizeEvent ISynchronizeEvent;
178 #endif
179 
180 #ifndef __ISynchronizeContainer_FWD_DEFINED__
181 #define __ISynchronizeContainer_FWD_DEFINED__
182 typedef interface ISynchronizeContainer ISynchronizeContainer;
183 #endif
184 
185 #ifndef __ISynchronizeMutex_FWD_DEFINED__
186 #define __ISynchronizeMutex_FWD_DEFINED__
187 typedef interface ISynchronizeMutex ISynchronizeMutex;
188 #endif
189 
190 #ifndef __ICancelMethodCalls_FWD_DEFINED__
191 #define __ICancelMethodCalls_FWD_DEFINED__
192 typedef interface ICancelMethodCalls ICancelMethodCalls;
193 #endif
194 
195 #ifndef __IAsyncManager_FWD_DEFINED__
196 #define __IAsyncManager_FWD_DEFINED__
197 typedef interface IAsyncManager IAsyncManager;
198 #endif
199 
200 #ifndef __ICallFactory_FWD_DEFINED__
201 #define __ICallFactory_FWD_DEFINED__
202 typedef interface ICallFactory ICallFactory;
203 #endif
204 
205 #ifndef __IRpcHelper_FWD_DEFINED__
206 #define __IRpcHelper_FWD_DEFINED__
207 typedef interface IRpcHelper IRpcHelper;
208 #endif
209 
210 #ifndef __IReleaseMarshalBuffers_FWD_DEFINED__
211 #define __IReleaseMarshalBuffers_FWD_DEFINED__
212 typedef interface IReleaseMarshalBuffers IReleaseMarshalBuffers;
213 #endif
214 
215 #ifndef __IWaitMultiple_FWD_DEFINED__
216 #define __IWaitMultiple_FWD_DEFINED__
217 typedef interface IWaitMultiple IWaitMultiple;
218 #endif
219 
220 #ifndef __IAddrTrackingControl_FWD_DEFINED__
221 #define __IAddrTrackingControl_FWD_DEFINED__
222 typedef interface IAddrTrackingControl IAddrTrackingControl;
223 #endif
224 
225 #ifndef __IAddrExclusionControl_FWD_DEFINED__
226 #define __IAddrExclusionControl_FWD_DEFINED__
227 typedef interface IAddrExclusionControl IAddrExclusionControl;
228 #endif
229 
230 #ifndef __IPipeByte_FWD_DEFINED__
231 #define __IPipeByte_FWD_DEFINED__
232 typedef interface IPipeByte IPipeByte;
233 #endif
234 
235 #ifndef __IPipeLong_FWD_DEFINED__
236 #define __IPipeLong_FWD_DEFINED__
237 typedef interface IPipeLong IPipeLong;
238 #endif
239 
240 #ifndef __IPipeDouble_FWD_DEFINED__
241 #define __IPipeDouble_FWD_DEFINED__
242 typedef interface IPipeDouble IPipeDouble;
243 #endif
244 
245 #ifndef __IEnumContextProps_FWD_DEFINED__
246 #define __IEnumContextProps_FWD_DEFINED__
247 typedef interface IEnumContextProps IEnumContextProps;
248 #endif
249 
250 #ifndef __IContext_FWD_DEFINED__
251 #define __IContext_FWD_DEFINED__
252 typedef interface IContext IContext;
253 #endif
254 
255 #ifndef __IComThreadingInfo_FWD_DEFINED__
256 #define __IComThreadingInfo_FWD_DEFINED__
257 typedef interface IComThreadingInfo IComThreadingInfo;
258 #endif
259 
260 #ifndef __IProcessInitControl_FWD_DEFINED__
261 #define __IProcessInitControl_FWD_DEFINED__
262 typedef interface IProcessInitControl IProcessInitControl;
263 #endif
264 
265 #ifndef __IFastRundown_FWD_DEFINED__
266 #define __IFastRundown_FWD_DEFINED__
267 typedef interface IFastRundown IFastRundown;
268 #endif
269 
270 #ifndef __IMarshalingStream_FWD_DEFINED__
271 #define __IMarshalingStream_FWD_DEFINED__
272 typedef interface IMarshalingStream IMarshalingStream;
273 #endif
274 
275 #ifndef __IMallocSpy_FWD_DEFINED__
276 #define __IMallocSpy_FWD_DEFINED__
277 typedef interface IMallocSpy IMallocSpy;
278 #endif
279 
280 #ifndef __IBindCtx_FWD_DEFINED__
281 #define __IBindCtx_FWD_DEFINED__
282 typedef interface IBindCtx IBindCtx;
283 #endif
284 
285 #ifndef __IEnumMoniker_FWD_DEFINED__
286 #define __IEnumMoniker_FWD_DEFINED__
287 typedef interface IEnumMoniker IEnumMoniker;
288 #endif
289 
290 #ifndef __IRunnableObject_FWD_DEFINED__
291 #define __IRunnableObject_FWD_DEFINED__
292 typedef interface IRunnableObject IRunnableObject;
293 #endif
294 
295 #ifndef __IRunningObjectTable_FWD_DEFINED__
296 #define __IRunningObjectTable_FWD_DEFINED__
297 typedef interface IRunningObjectTable IRunningObjectTable;
298 #endif
299 
300 #ifndef __IPersist_FWD_DEFINED__
301 #define __IPersist_FWD_DEFINED__
302 typedef interface IPersist IPersist;
303 #endif
304 
305 #ifndef __IPersistStream_FWD_DEFINED__
306 #define __IPersistStream_FWD_DEFINED__
307 typedef interface IPersistStream IPersistStream;
308 #endif
309 
310 #ifndef __IMoniker_FWD_DEFINED__
311 #define __IMoniker_FWD_DEFINED__
312 typedef interface IMoniker IMoniker;
313 #endif
314 
315 #ifndef __IROTData_FWD_DEFINED__
316 #define __IROTData_FWD_DEFINED__
317 typedef interface IROTData IROTData;
318 #endif
319 
320 #ifndef __IEnumSTATSTG_FWD_DEFINED__
321 #define __IEnumSTATSTG_FWD_DEFINED__
322 typedef interface IEnumSTATSTG IEnumSTATSTG;
323 #endif
324 
325 #ifndef __IStorage_FWD_DEFINED__
326 #define __IStorage_FWD_DEFINED__
327 typedef interface IStorage IStorage;
328 #endif
329 
330 #ifndef __IPersistFile_FWD_DEFINED__
331 #define __IPersistFile_FWD_DEFINED__
332 typedef interface IPersistFile IPersistFile;
333 #endif
334 
335 #ifndef __IPersistStorage_FWD_DEFINED__
336 #define __IPersistStorage_FWD_DEFINED__
337 typedef interface IPersistStorage IPersistStorage;
338 #endif
339 
340 #ifndef __ILockBytes_FWD_DEFINED__
341 #define __ILockBytes_FWD_DEFINED__
342 typedef interface ILockBytes ILockBytes;
343 #endif
344 
345 #ifndef __IEnumFORMATETC_FWD_DEFINED__
346 #define __IEnumFORMATETC_FWD_DEFINED__
347 typedef interface IEnumFORMATETC IEnumFORMATETC;
348 #endif
349 
350 #ifndef __IEnumSTATDATA_FWD_DEFINED__
351 #define __IEnumSTATDATA_FWD_DEFINED__
352 typedef interface IEnumSTATDATA IEnumSTATDATA;
353 #endif
354 
355 #ifndef __IRootStorage_FWD_DEFINED__
356 #define __IRootStorage_FWD_DEFINED__
357 typedef interface IRootStorage IRootStorage;
358 #endif
359 
360 #ifndef __IAdviseSink_FWD_DEFINED__
361 #define __IAdviseSink_FWD_DEFINED__
362 typedef interface IAdviseSink IAdviseSink;
363 #endif
364 
365 #ifndef __AsyncIAdviseSink_FWD_DEFINED__
366 #define __AsyncIAdviseSink_FWD_DEFINED__
367 typedef interface AsyncIAdviseSink AsyncIAdviseSink;
368 #endif
369 
370 #ifndef __IAdviseSink2_FWD_DEFINED__
371 #define __IAdviseSink2_FWD_DEFINED__
372 typedef interface IAdviseSink2 IAdviseSink2;
373 #endif
374 
375 #ifndef __AsyncIAdviseSink2_FWD_DEFINED__
376 #define __AsyncIAdviseSink2_FWD_DEFINED__
377 typedef interface AsyncIAdviseSink2 AsyncIAdviseSink2;
378 #endif
379 
380 #ifndef __IDataObject_FWD_DEFINED__
381 #define __IDataObject_FWD_DEFINED__
382 typedef interface IDataObject IDataObject;
383 #endif
384 
385 #ifndef __IDataAdviseHolder_FWD_DEFINED__
386 #define __IDataAdviseHolder_FWD_DEFINED__
387 typedef interface IDataAdviseHolder IDataAdviseHolder;
388 #endif
389 
390 #ifndef __IMessageFilter_FWD_DEFINED__
391 #define __IMessageFilter_FWD_DEFINED__
392 typedef interface IMessageFilter IMessageFilter;
393 #endif
394 
395 #ifndef __IClassActivator_FWD_DEFINED__
396 #define __IClassActivator_FWD_DEFINED__
397 typedef interface IClassActivator IClassActivator;
398 #endif
399 
400 #ifndef __IFillLockBytes_FWD_DEFINED__
401 #define __IFillLockBytes_FWD_DEFINED__
402 typedef interface IFillLockBytes IFillLockBytes;
403 #endif
404 
405 #ifndef __IProgressNotify_FWD_DEFINED__
406 #define __IProgressNotify_FWD_DEFINED__
407 typedef interface IProgressNotify IProgressNotify;
408 #endif
409 
410 #ifndef __ILayoutStorage_FWD_DEFINED__
411 #define __ILayoutStorage_FWD_DEFINED__
412 typedef interface ILayoutStorage ILayoutStorage;
413 #endif
414 
415 #ifndef __IBlockingLock_FWD_DEFINED__
416 #define __IBlockingLock_FWD_DEFINED__
417 typedef interface IBlockingLock IBlockingLock;
418 #endif
419 
420 #ifndef __ITimeAndNoticeControl_FWD_DEFINED__
421 #define __ITimeAndNoticeControl_FWD_DEFINED__
422 typedef interface ITimeAndNoticeControl ITimeAndNoticeControl;
423 #endif
424 
425 #ifndef __IOplockStorage_FWD_DEFINED__
426 #define __IOplockStorage_FWD_DEFINED__
427 typedef interface IOplockStorage IOplockStorage;
428 #endif
429 
430 #ifndef __IDirectWriterLock_FWD_DEFINED__
431 #define __IDirectWriterLock_FWD_DEFINED__
432 typedef interface IDirectWriterLock IDirectWriterLock;
433 #endif
434 
435 #ifndef __IUrlMon_FWD_DEFINED__
436 #define __IUrlMon_FWD_DEFINED__
437 typedef interface IUrlMon IUrlMon;
438 #endif
439 
440 #ifndef __IForegroundTransfer_FWD_DEFINED__
441 #define __IForegroundTransfer_FWD_DEFINED__
442 typedef interface IForegroundTransfer IForegroundTransfer;
443 #endif
444 
445 #ifndef __IThumbnailExtractor_FWD_DEFINED__
446 #define __IThumbnailExtractor_FWD_DEFINED__
447 typedef interface IThumbnailExtractor IThumbnailExtractor;
448 #endif
449 
450 #ifndef __IDummyHICONIncluder_FWD_DEFINED__
451 #define __IDummyHICONIncluder_FWD_DEFINED__
452 typedef interface IDummyHICONIncluder IDummyHICONIncluder;
453 #endif
454 
455 #ifndef __IProcessLock_FWD_DEFINED__
456 #define __IProcessLock_FWD_DEFINED__
457 typedef interface IProcessLock IProcessLock;
458 #endif
459 
460 #ifndef __ISurrogateService_FWD_DEFINED__
461 #define __ISurrogateService_FWD_DEFINED__
462 typedef interface ISurrogateService ISurrogateService;
463 #endif
464 
465 #ifndef __IInitializeSpy_FWD_DEFINED__
466 #define __IInitializeSpy_FWD_DEFINED__
467 typedef interface IInitializeSpy IInitializeSpy;
468 #endif
469 
470 #ifndef __IApartmentShutdown_FWD_DEFINED__
471 #define __IApartmentShutdown_FWD_DEFINED__
472 typedef interface IApartmentShutdown IApartmentShutdown;
473 #endif
474 
475 /* Headers for imported files */
476 
477 #include <unknwn.h>
478 #include <wtypes.h>
479 
480 #ifdef __cplusplus
481 extern "C" {
482 #endif
483 
484 /**
485  * This file is part of the mingw-w64 runtime package.
486  * No warranty is given; refer to the file DISCLAIMER within this package.
487  */
488 
489 #include <winapifamily.h>
490 
491 #if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))
492 #define _WIN32_WINNT 0x0600
493 #endif
494 #if(NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))
495 #define _WIN32_WINNT 0x0502
496 #endif
497 #if(NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))
498 #define _WIN32_WINNT 0x0501
499 #endif
500 /**
501  * This file is part of the mingw-w64 runtime package.
502  * No warranty is given; refer to the file DISCLAIMER within this package.
503  */
504 
505 #include <winapifamily.h>
506 
507 #if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))
508 #define _WIN32_WINNT 0x0600
509 #endif
510 
511 #if (NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))
512 #define _WIN32_WINNT 0x0502
513 #endif
514 
515 #if (NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))
516 #define _WIN32_WINNT 0x0501
517 #endif
518 
519 #ifndef _OBJIDLBASE_
520 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
521 #ifndef __IStream_FWD_DEFINED__
522 #define __IStream_FWD_DEFINED__
523 typedef interface IStream IStream;
524 #endif
525 
526 #ifndef __IEnumString_FWD_DEFINED__
527 #define __IEnumString_FWD_DEFINED__
528 typedef interface IEnumString IEnumString;
529 #endif
530 
531 #ifndef __IMultiQI_FWD_DEFINED__
532 #define __IMultiQI_FWD_DEFINED__
533 typedef interface IMultiQI IMultiQI;
534 #endif
535 
536 #ifndef __AsyncIMultiQI_FWD_DEFINED__
537 #define __AsyncIMultiQI_FWD_DEFINED__
538 typedef interface AsyncIMultiQI AsyncIMultiQI;
539 #endif
540 
541 #endif
542 
543 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
544 #ifndef __IAsyncManager_FWD_DEFINED__
545 #define __IAsyncManager_FWD_DEFINED__
546 typedef interface IAsyncManager IAsyncManager;
547 #endif
548 
549 #ifndef __ICallFactory_FWD_DEFINED__
550 #define __ICallFactory_FWD_DEFINED__
551 typedef interface ICallFactory ICallFactory;
552 #endif
553 
554 #ifndef __ISynchronize_FWD_DEFINED__
555 #define __ISynchronize_FWD_DEFINED__
556 typedef interface ISynchronize ISynchronize;
557 #endif
558 
559 #endif
560 
561 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
562 typedef struct _COSERVERINFO {
563     DWORD dwReserved1;
564     LPWSTR pwszName;
565     COAUTHINFO *pAuthInfo;
566     DWORD dwReserved2;
567 } COSERVERINFO;
568 
569 /*****************************************************************************
570  * IMarshal interface
571  */
572 #ifndef __IMarshal_INTERFACE_DEFINED__
573 #define __IMarshal_INTERFACE_DEFINED__
574 
575 typedef IMarshal *LPMARSHAL;
576 DEFINE_GUID(IID_IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
577 #if defined(__cplusplus) && !defined(CINTERFACE)
578 MIDL_INTERFACE("00000003-0000-0000-c000-000000000046")
579 IMarshal : public IUnknown
580 {
581     virtual HRESULT STDMETHODCALLTYPE GetUnmarshalClass(
582         REFIID riid,
583         void *pv,
584         DWORD dwDestContext,
585         void *pvDestContext,
586         DWORD mshlflags,
587         CLSID *pCid) = 0;
588 
589     virtual HRESULT STDMETHODCALLTYPE GetMarshalSizeMax(
590         REFIID riid,
591         void *pv,
592         DWORD dwDestContext,
593         void *pvDestContext,
594         DWORD mshlflags,
595         DWORD *pSize) = 0;
596 
597     virtual HRESULT STDMETHODCALLTYPE MarshalInterface(
598         IStream *pStm,
599         REFIID riid,
600         void *pv,
601         DWORD dwDestContext,
602         void *pvDestContext,
603         DWORD mshlflags) = 0;
604 
605     virtual HRESULT STDMETHODCALLTYPE UnmarshalInterface(
606         IStream *pStm,
607         REFIID riid,
608         void **ppv) = 0;
609 
610     virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalData(
611         IStream *pStm) = 0;
612 
613     virtual HRESULT STDMETHODCALLTYPE DisconnectObject(
614         DWORD dwReserved) = 0;
615 
616 };
617 #ifdef __CRT_UUID_DECL
618 __CRT_UUID_DECL(IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
619 #endif
620 #else
621 typedef struct IMarshalVtbl {
622     BEGIN_INTERFACE
623 
624     /*** IUnknown methods ***/
625     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
626         IMarshal* This,
627         REFIID riid,
628         void **ppvObject);
629 
630     ULONG (STDMETHODCALLTYPE *AddRef)(
631         IMarshal* This);
632 
633     ULONG (STDMETHODCALLTYPE *Release)(
634         IMarshal* This);
635 
636     /*** IMarshal methods ***/
637     HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
638         IMarshal* This,
639         REFIID riid,
640         void *pv,
641         DWORD dwDestContext,
642         void *pvDestContext,
643         DWORD mshlflags,
644         CLSID *pCid);
645 
646     HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
647         IMarshal* This,
648         REFIID riid,
649         void *pv,
650         DWORD dwDestContext,
651         void *pvDestContext,
652         DWORD mshlflags,
653         DWORD *pSize);
654 
655     HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
656         IMarshal* This,
657         IStream *pStm,
658         REFIID riid,
659         void *pv,
660         DWORD dwDestContext,
661         void *pvDestContext,
662         DWORD mshlflags);
663 
664     HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
665         IMarshal* This,
666         IStream *pStm,
667         REFIID riid,
668         void **ppv);
669 
670     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
671         IMarshal* This,
672         IStream *pStm);
673 
674     HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
675         IMarshal* This,
676         DWORD dwReserved);
677 
678     END_INTERFACE
679 } IMarshalVtbl;
680 interface IMarshal {
681     CONST_VTBL IMarshalVtbl* lpVtbl;
682 };
683 
684 #ifdef COBJMACROS
685 #ifndef WIDL_C_INLINE_WRAPPERS
686 /*** IUnknown methods ***/
687 #define IMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
688 #define IMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
689 #define IMarshal_Release(This) (This)->lpVtbl->Release(This)
690 /*** IMarshal methods ***/
691 #define IMarshal_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) (This)->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid)
692 #define IMarshal_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) (This)->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize)
693 #define IMarshal_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) (This)->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags)
694 #define IMarshal_UnmarshalInterface(This,pStm,riid,ppv) (This)->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv)
695 #define IMarshal_ReleaseMarshalData(This,pStm) (This)->lpVtbl->ReleaseMarshalData(This,pStm)
696 #define IMarshal_DisconnectObject(This,dwReserved) (This)->lpVtbl->DisconnectObject(This,dwReserved)
697 #else
698 /*** IUnknown methods ***/
699 static FORCEINLINE HRESULT IMarshal_QueryInterface(IMarshal* This,REFIID riid,void **ppvObject) {
700     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
701 }
702 static FORCEINLINE ULONG IMarshal_AddRef(IMarshal* This) {
703     return This->lpVtbl->AddRef(This);
704 }
705 static FORCEINLINE ULONG IMarshal_Release(IMarshal* This) {
706     return This->lpVtbl->Release(This);
707 }
708 /*** IMarshal methods ***/
709 static FORCEINLINE HRESULT IMarshal_GetUnmarshalClass(IMarshal* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,CLSID *pCid) {
710     return This->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid);
711 }
712 static FORCEINLINE HRESULT IMarshal_GetMarshalSizeMax(IMarshal* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,DWORD *pSize) {
713     return This->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize);
714 }
715 static FORCEINLINE HRESULT IMarshal_MarshalInterface(IMarshal* This,IStream *pStm,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags) {
716     return This->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags);
717 }
718 static FORCEINLINE HRESULT IMarshal_UnmarshalInterface(IMarshal* This,IStream *pStm,REFIID riid,void **ppv) {
719     return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
720 }
721 static FORCEINLINE HRESULT IMarshal_ReleaseMarshalData(IMarshal* This,IStream *pStm) {
722     return This->lpVtbl->ReleaseMarshalData(This,pStm);
723 }
724 static FORCEINLINE HRESULT IMarshal_DisconnectObject(IMarshal* This,DWORD dwReserved) {
725     return This->lpVtbl->DisconnectObject(This,dwReserved);
726 }
727 #endif
728 #endif
729 
730 #endif
731 
732 HRESULT STDMETHODCALLTYPE IMarshal_GetUnmarshalClass_Proxy(
733     IMarshal* This,
734     REFIID riid,
735     void *pv,
736     DWORD dwDestContext,
737     void *pvDestContext,
738     DWORD mshlflags,
739     CLSID *pCid);
740 void __RPC_STUB IMarshal_GetUnmarshalClass_Stub(
741     IRpcStubBuffer* This,
742     IRpcChannelBuffer* pRpcChannelBuffer,
743     PRPC_MESSAGE pRpcMessage,
744     DWORD* pdwStubPhase);
745 HRESULT STDMETHODCALLTYPE IMarshal_GetMarshalSizeMax_Proxy(
746     IMarshal* This,
747     REFIID riid,
748     void *pv,
749     DWORD dwDestContext,
750     void *pvDestContext,
751     DWORD mshlflags,
752     DWORD *pSize);
753 void __RPC_STUB IMarshal_GetMarshalSizeMax_Stub(
754     IRpcStubBuffer* This,
755     IRpcChannelBuffer* pRpcChannelBuffer,
756     PRPC_MESSAGE pRpcMessage,
757     DWORD* pdwStubPhase);
758 HRESULT STDMETHODCALLTYPE IMarshal_MarshalInterface_Proxy(
759     IMarshal* This,
760     IStream *pStm,
761     REFIID riid,
762     void *pv,
763     DWORD dwDestContext,
764     void *pvDestContext,
765     DWORD mshlflags);
766 void __RPC_STUB IMarshal_MarshalInterface_Stub(
767     IRpcStubBuffer* This,
768     IRpcChannelBuffer* pRpcChannelBuffer,
769     PRPC_MESSAGE pRpcMessage,
770     DWORD* pdwStubPhase);
771 HRESULT STDMETHODCALLTYPE IMarshal_UnmarshalInterface_Proxy(
772     IMarshal* This,
773     IStream *pStm,
774     REFIID riid,
775     void **ppv);
776 void __RPC_STUB IMarshal_UnmarshalInterface_Stub(
777     IRpcStubBuffer* This,
778     IRpcChannelBuffer* pRpcChannelBuffer,
779     PRPC_MESSAGE pRpcMessage,
780     DWORD* pdwStubPhase);
781 HRESULT STDMETHODCALLTYPE IMarshal_ReleaseMarshalData_Proxy(
782     IMarshal* This,
783     IStream *pStm);
784 void __RPC_STUB IMarshal_ReleaseMarshalData_Stub(
785     IRpcStubBuffer* This,
786     IRpcChannelBuffer* pRpcChannelBuffer,
787     PRPC_MESSAGE pRpcMessage,
788     DWORD* pdwStubPhase);
789 HRESULT STDMETHODCALLTYPE IMarshal_DisconnectObject_Proxy(
790     IMarshal* This,
791     DWORD dwReserved);
792 void __RPC_STUB IMarshal_DisconnectObject_Stub(
793     IRpcStubBuffer* This,
794     IRpcChannelBuffer* pRpcChannelBuffer,
795     PRPC_MESSAGE pRpcMessage,
796     DWORD* pdwStubPhase);
797 
798 #endif  /* __IMarshal_INTERFACE_DEFINED__ */
799 
800 
801 /*****************************************************************************
802  * INoMarshal interface
803  */
804 #ifndef __INoMarshal_INTERFACE_DEFINED__
805 #define __INoMarshal_INTERFACE_DEFINED__
806 
807 DEFINE_GUID(IID_INoMarshal, 0xecc8691b, 0xc1db, 0x4dc0, 0x85,0x5e, 0x65,0xf6,0xc5,0x51,0xaf,0x49);
808 #if defined(__cplusplus) && !defined(CINTERFACE)
809 MIDL_INTERFACE("ecc8691b-c1db-4dc0-855e-65f6c551af49")
810 INoMarshal : public IUnknown
811 {
812 };
813 #ifdef __CRT_UUID_DECL
814 __CRT_UUID_DECL(INoMarshal, 0xecc8691b, 0xc1db, 0x4dc0, 0x85,0x5e, 0x65,0xf6,0xc5,0x51,0xaf,0x49)
815 #endif
816 #else
817 typedef struct INoMarshalVtbl {
818     BEGIN_INTERFACE
819 
820     /*** IUnknown methods ***/
821     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
822         INoMarshal* This,
823         REFIID riid,
824         void **ppvObject);
825 
826     ULONG (STDMETHODCALLTYPE *AddRef)(
827         INoMarshal* This);
828 
829     ULONG (STDMETHODCALLTYPE *Release)(
830         INoMarshal* This);
831 
832     END_INTERFACE
833 } INoMarshalVtbl;
834 interface INoMarshal {
835     CONST_VTBL INoMarshalVtbl* lpVtbl;
836 };
837 
838 #ifdef COBJMACROS
839 #ifndef WIDL_C_INLINE_WRAPPERS
840 /*** IUnknown methods ***/
841 #define INoMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
842 #define INoMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
843 #define INoMarshal_Release(This) (This)->lpVtbl->Release(This)
844 #else
845 /*** IUnknown methods ***/
846 static FORCEINLINE HRESULT INoMarshal_QueryInterface(INoMarshal* This,REFIID riid,void **ppvObject) {
847     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
848 }
849 static FORCEINLINE ULONG INoMarshal_AddRef(INoMarshal* This) {
850     return This->lpVtbl->AddRef(This);
851 }
852 static FORCEINLINE ULONG INoMarshal_Release(INoMarshal* This) {
853     return This->lpVtbl->Release(This);
854 }
855 #endif
856 #endif
857 
858 #endif
859 
860 
861 #endif  /* __INoMarshal_INTERFACE_DEFINED__ */
862 
863 
864 /*****************************************************************************
865  * IAgileObject interface
866  */
867 #ifndef __IAgileObject_INTERFACE_DEFINED__
868 #define __IAgileObject_INTERFACE_DEFINED__
869 
870 DEFINE_GUID(IID_IAgileObject, 0x94ea2b94, 0xe9cc, 0x49e0, 0xc0,0xff, 0xee,0x64,0xca,0x8f,0x5b,0x90);
871 #if defined(__cplusplus) && !defined(CINTERFACE)
872 MIDL_INTERFACE("94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90")
873 IAgileObject : public IUnknown
874 {
875 };
876 #ifdef __CRT_UUID_DECL
877 __CRT_UUID_DECL(IAgileObject, 0x94ea2b94, 0xe9cc, 0x49e0, 0xc0,0xff, 0xee,0x64,0xca,0x8f,0x5b,0x90)
878 #endif
879 #else
880 typedef struct IAgileObjectVtbl {
881     BEGIN_INTERFACE
882 
883     /*** IUnknown methods ***/
884     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
885         IAgileObject* This,
886         REFIID riid,
887         void **ppvObject);
888 
889     ULONG (STDMETHODCALLTYPE *AddRef)(
890         IAgileObject* This);
891 
892     ULONG (STDMETHODCALLTYPE *Release)(
893         IAgileObject* This);
894 
895     END_INTERFACE
896 } IAgileObjectVtbl;
897 interface IAgileObject {
898     CONST_VTBL IAgileObjectVtbl* lpVtbl;
899 };
900 
901 #ifdef COBJMACROS
902 #ifndef WIDL_C_INLINE_WRAPPERS
903 /*** IUnknown methods ***/
904 #define IAgileObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
905 #define IAgileObject_AddRef(This) (This)->lpVtbl->AddRef(This)
906 #define IAgileObject_Release(This) (This)->lpVtbl->Release(This)
907 #else
908 /*** IUnknown methods ***/
909 static FORCEINLINE HRESULT IAgileObject_QueryInterface(IAgileObject* This,REFIID riid,void **ppvObject) {
910     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
911 }
912 static FORCEINLINE ULONG IAgileObject_AddRef(IAgileObject* This) {
913     return This->lpVtbl->AddRef(This);
914 }
915 static FORCEINLINE ULONG IAgileObject_Release(IAgileObject* This) {
916     return This->lpVtbl->Release(This);
917 }
918 #endif
919 #endif
920 
921 #endif
922 
923 
924 #endif  /* __IAgileObject_INTERFACE_DEFINED__ */
925 
926 #endif
927 
928 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
929 /*****************************************************************************
930  * IMarshal2 interface
931  */
932 #ifndef __IMarshal2_INTERFACE_DEFINED__
933 #define __IMarshal2_INTERFACE_DEFINED__
934 
935 typedef IMarshal2 *LPMARSHAL2;
936 DEFINE_GUID(IID_IMarshal2, 0x000001cf, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
937 #if defined(__cplusplus) && !defined(CINTERFACE)
938 MIDL_INTERFACE("000001cf-0000-0000-c000-000000000046")
939 IMarshal2 : public IMarshal
940 {
941 };
942 #ifdef __CRT_UUID_DECL
943 __CRT_UUID_DECL(IMarshal2, 0x000001cf, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
944 #endif
945 #else
946 typedef struct IMarshal2Vtbl {
947     BEGIN_INTERFACE
948 
949     /*** IUnknown methods ***/
950     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
951         IMarshal2* This,
952         REFIID riid,
953         void **ppvObject);
954 
955     ULONG (STDMETHODCALLTYPE *AddRef)(
956         IMarshal2* This);
957 
958     ULONG (STDMETHODCALLTYPE *Release)(
959         IMarshal2* This);
960 
961     /*** IMarshal methods ***/
962     HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
963         IMarshal2* This,
964         REFIID riid,
965         void *pv,
966         DWORD dwDestContext,
967         void *pvDestContext,
968         DWORD mshlflags,
969         CLSID *pCid);
970 
971     HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
972         IMarshal2* This,
973         REFIID riid,
974         void *pv,
975         DWORD dwDestContext,
976         void *pvDestContext,
977         DWORD mshlflags,
978         DWORD *pSize);
979 
980     HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
981         IMarshal2* This,
982         IStream *pStm,
983         REFIID riid,
984         void *pv,
985         DWORD dwDestContext,
986         void *pvDestContext,
987         DWORD mshlflags);
988 
989     HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
990         IMarshal2* This,
991         IStream *pStm,
992         REFIID riid,
993         void **ppv);
994 
995     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
996         IMarshal2* This,
997         IStream *pStm);
998 
999     HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
1000         IMarshal2* This,
1001         DWORD dwReserved);
1002 
1003     END_INTERFACE
1004 } IMarshal2Vtbl;
1005 interface IMarshal2 {
1006     CONST_VTBL IMarshal2Vtbl* lpVtbl;
1007 };
1008 
1009 #ifdef COBJMACROS
1010 #ifndef WIDL_C_INLINE_WRAPPERS
1011 /*** IUnknown methods ***/
1012 #define IMarshal2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1013 #define IMarshal2_AddRef(This) (This)->lpVtbl->AddRef(This)
1014 #define IMarshal2_Release(This) (This)->lpVtbl->Release(This)
1015 /*** IMarshal methods ***/
1016 #define IMarshal2_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) (This)->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid)
1017 #define IMarshal2_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) (This)->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize)
1018 #define IMarshal2_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) (This)->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags)
1019 #define IMarshal2_UnmarshalInterface(This,pStm,riid,ppv) (This)->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv)
1020 #define IMarshal2_ReleaseMarshalData(This,pStm) (This)->lpVtbl->ReleaseMarshalData(This,pStm)
1021 #define IMarshal2_DisconnectObject(This,dwReserved) (This)->lpVtbl->DisconnectObject(This,dwReserved)
1022 #else
1023 /*** IUnknown methods ***/
1024 static FORCEINLINE HRESULT IMarshal2_QueryInterface(IMarshal2* This,REFIID riid,void **ppvObject) {
1025     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1026 }
1027 static FORCEINLINE ULONG IMarshal2_AddRef(IMarshal2* This) {
1028     return This->lpVtbl->AddRef(This);
1029 }
1030 static FORCEINLINE ULONG IMarshal2_Release(IMarshal2* This) {
1031     return This->lpVtbl->Release(This);
1032 }
1033 /*** IMarshal methods ***/
1034 static FORCEINLINE HRESULT IMarshal2_GetUnmarshalClass(IMarshal2* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,CLSID *pCid) {
1035     return This->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid);
1036 }
1037 static FORCEINLINE HRESULT IMarshal2_GetMarshalSizeMax(IMarshal2* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,DWORD *pSize) {
1038     return This->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize);
1039 }
1040 static FORCEINLINE HRESULT IMarshal2_MarshalInterface(IMarshal2* This,IStream *pStm,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags) {
1041     return This->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags);
1042 }
1043 static FORCEINLINE HRESULT IMarshal2_UnmarshalInterface(IMarshal2* This,IStream *pStm,REFIID riid,void **ppv) {
1044     return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
1045 }
1046 static FORCEINLINE HRESULT IMarshal2_ReleaseMarshalData(IMarshal2* This,IStream *pStm) {
1047     return This->lpVtbl->ReleaseMarshalData(This,pStm);
1048 }
1049 static FORCEINLINE HRESULT IMarshal2_DisconnectObject(IMarshal2* This,DWORD dwReserved) {
1050     return This->lpVtbl->DisconnectObject(This,dwReserved);
1051 }
1052 #endif
1053 #endif
1054 
1055 #endif
1056 
1057 
1058 #endif  /* __IMarshal2_INTERFACE_DEFINED__ */
1059 
1060 
1061 /*****************************************************************************
1062  * IMalloc interface
1063  */
1064 #ifndef __IMalloc_INTERFACE_DEFINED__
1065 #define __IMalloc_INTERFACE_DEFINED__
1066 
1067 typedef IMalloc *LPMALLOC;
1068 
1069 DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1070 #if defined(__cplusplus) && !defined(CINTERFACE)
1071 MIDL_INTERFACE("00000002-0000-0000-c000-000000000046")
1072 IMalloc : public IUnknown
1073 {
1074     virtual void * STDMETHODCALLTYPE Alloc(
1075         SIZE_T cb) = 0;
1076 
1077     virtual void * STDMETHODCALLTYPE Realloc(
1078         void *pv,
1079         SIZE_T cb) = 0;
1080 
1081     virtual void STDMETHODCALLTYPE Free(
1082         void *pv) = 0;
1083 
1084     virtual SIZE_T STDMETHODCALLTYPE GetSize(
1085         void *pv) = 0;
1086 
1087     virtual int STDMETHODCALLTYPE DidAlloc(
1088         void *pv) = 0;
1089 
1090     virtual void STDMETHODCALLTYPE HeapMinimize(
1091         ) = 0;
1092 
1093 };
1094 #ifdef __CRT_UUID_DECL
1095 __CRT_UUID_DECL(IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1096 #endif
1097 #else
1098 typedef struct IMallocVtbl {
1099     BEGIN_INTERFACE
1100 
1101     /*** IUnknown methods ***/
1102     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1103         IMalloc* This,
1104         REFIID riid,
1105         void **ppvObject);
1106 
1107     ULONG (STDMETHODCALLTYPE *AddRef)(
1108         IMalloc* This);
1109 
1110     ULONG (STDMETHODCALLTYPE *Release)(
1111         IMalloc* This);
1112 
1113     /*** IMalloc methods ***/
1114     void * (STDMETHODCALLTYPE *Alloc)(
1115         IMalloc* This,
1116         SIZE_T cb);
1117 
1118     void * (STDMETHODCALLTYPE *Realloc)(
1119         IMalloc* This,
1120         void *pv,
1121         SIZE_T cb);
1122 
1123     void (STDMETHODCALLTYPE *Free)(
1124         IMalloc* This,
1125         void *pv);
1126 
1127     SIZE_T (STDMETHODCALLTYPE *GetSize)(
1128         IMalloc* This,
1129         void *pv);
1130 
1131     int (STDMETHODCALLTYPE *DidAlloc)(
1132         IMalloc* This,
1133         void *pv);
1134 
1135     void (STDMETHODCALLTYPE *HeapMinimize)(
1136         IMalloc* This);
1137 
1138     END_INTERFACE
1139 } IMallocVtbl;
1140 interface IMalloc {
1141     CONST_VTBL IMallocVtbl* lpVtbl;
1142 };
1143 
1144 #ifdef COBJMACROS
1145 #ifndef WIDL_C_INLINE_WRAPPERS
1146 /*** IUnknown methods ***/
1147 #define IMalloc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1148 #define IMalloc_AddRef(This) (This)->lpVtbl->AddRef(This)
1149 #define IMalloc_Release(This) (This)->lpVtbl->Release(This)
1150 /*** IMalloc methods ***/
1151 #define IMalloc_Alloc(This,cb) (This)->lpVtbl->Alloc(This,cb)
1152 #define IMalloc_Realloc(This,pv,cb) (This)->lpVtbl->Realloc(This,pv,cb)
1153 #define IMalloc_Free(This,pv) (This)->lpVtbl->Free(This,pv)
1154 #define IMalloc_GetSize(This,pv) (This)->lpVtbl->GetSize(This,pv)
1155 #define IMalloc_DidAlloc(This,pv) (This)->lpVtbl->DidAlloc(This,pv)
1156 #define IMalloc_HeapMinimize(This) (This)->lpVtbl->HeapMinimize(This)
1157 #else
1158 /*** IUnknown methods ***/
1159 static FORCEINLINE HRESULT IMalloc_QueryInterface(IMalloc* This,REFIID riid,void **ppvObject) {
1160     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1161 }
1162 static FORCEINLINE ULONG IMalloc_AddRef(IMalloc* This) {
1163     return This->lpVtbl->AddRef(This);
1164 }
1165 static FORCEINLINE ULONG IMalloc_Release(IMalloc* This) {
1166     return This->lpVtbl->Release(This);
1167 }
1168 /*** IMalloc methods ***/
1169 static FORCEINLINE void * IMalloc_Alloc(IMalloc* This,SIZE_T cb) {
1170     return This->lpVtbl->Alloc(This,cb);
1171 }
1172 static FORCEINLINE void * IMalloc_Realloc(IMalloc* This,void *pv,SIZE_T cb) {
1173     return This->lpVtbl->Realloc(This,pv,cb);
1174 }
1175 static FORCEINLINE void IMalloc_Free(IMalloc* This,void *pv) {
1176     This->lpVtbl->Free(This,pv);
1177 }
1178 static FORCEINLINE SIZE_T IMalloc_GetSize(IMalloc* This,void *pv) {
1179     return This->lpVtbl->GetSize(This,pv);
1180 }
1181 static FORCEINLINE int IMalloc_DidAlloc(IMalloc* This,void *pv) {
1182     return This->lpVtbl->DidAlloc(This,pv);
1183 }
1184 static FORCEINLINE void IMalloc_HeapMinimize(IMalloc* This) {
1185     This->lpVtbl->HeapMinimize(This);
1186 }
1187 #endif
1188 #endif
1189 
1190 #endif
1191 
1192 void * STDMETHODCALLTYPE IMalloc_Alloc_Proxy(
1193     IMalloc* This,
1194     SIZE_T cb);
1195 void __RPC_STUB IMalloc_Alloc_Stub(
1196     IRpcStubBuffer* This,
1197     IRpcChannelBuffer* pRpcChannelBuffer,
1198     PRPC_MESSAGE pRpcMessage,
1199     DWORD* pdwStubPhase);
1200 void * STDMETHODCALLTYPE IMalloc_Realloc_Proxy(
1201     IMalloc* This,
1202     void *pv,
1203     SIZE_T cb);
1204 void __RPC_STUB IMalloc_Realloc_Stub(
1205     IRpcStubBuffer* This,
1206     IRpcChannelBuffer* pRpcChannelBuffer,
1207     PRPC_MESSAGE pRpcMessage,
1208     DWORD* pdwStubPhase);
1209 void STDMETHODCALLTYPE IMalloc_Free_Proxy(
1210     IMalloc* This,
1211     void *pv);
1212 void __RPC_STUB IMalloc_Free_Stub(
1213     IRpcStubBuffer* This,
1214     IRpcChannelBuffer* pRpcChannelBuffer,
1215     PRPC_MESSAGE pRpcMessage,
1216     DWORD* pdwStubPhase);
1217 SIZE_T STDMETHODCALLTYPE IMalloc_GetSize_Proxy(
1218     IMalloc* This,
1219     void *pv);
1220 void __RPC_STUB IMalloc_GetSize_Stub(
1221     IRpcStubBuffer* This,
1222     IRpcChannelBuffer* pRpcChannelBuffer,
1223     PRPC_MESSAGE pRpcMessage,
1224     DWORD* pdwStubPhase);
1225 int STDMETHODCALLTYPE IMalloc_DidAlloc_Proxy(
1226     IMalloc* This,
1227     void *pv);
1228 void __RPC_STUB IMalloc_DidAlloc_Stub(
1229     IRpcStubBuffer* This,
1230     IRpcChannelBuffer* pRpcChannelBuffer,
1231     PRPC_MESSAGE pRpcMessage,
1232     DWORD* pdwStubPhase);
1233 void STDMETHODCALLTYPE IMalloc_HeapMinimize_Proxy(
1234     IMalloc* This);
1235 void __RPC_STUB IMalloc_HeapMinimize_Stub(
1236     IRpcStubBuffer* This,
1237     IRpcChannelBuffer* pRpcChannelBuffer,
1238     PRPC_MESSAGE pRpcMessage,
1239     DWORD* pdwStubPhase);
1240 
1241 #endif  /* __IMalloc_INTERFACE_DEFINED__ */
1242 
1243 
1244 /*****************************************************************************
1245  * IStdMarshalInfo interface
1246  */
1247 #ifndef __IStdMarshalInfo_INTERFACE_DEFINED__
1248 #define __IStdMarshalInfo_INTERFACE_DEFINED__
1249 
1250 typedef IStdMarshalInfo *LPSTDMARSHALINFO;
1251 
1252 DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1253 #if defined(__cplusplus) && !defined(CINTERFACE)
1254 MIDL_INTERFACE("00000018-0000-0000-c000-000000000046")
1255 IStdMarshalInfo : public IUnknown
1256 {
1257     virtual HRESULT STDMETHODCALLTYPE GetClassForHandler(
1258         DWORD dwDestContext,
1259         void *pvDestContext,
1260         CLSID *pClsid) = 0;
1261 
1262 };
1263 #ifdef __CRT_UUID_DECL
1264 __CRT_UUID_DECL(IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1265 #endif
1266 #else
1267 typedef struct IStdMarshalInfoVtbl {
1268     BEGIN_INTERFACE
1269 
1270     /*** IUnknown methods ***/
1271     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1272         IStdMarshalInfo* This,
1273         REFIID riid,
1274         void **ppvObject);
1275 
1276     ULONG (STDMETHODCALLTYPE *AddRef)(
1277         IStdMarshalInfo* This);
1278 
1279     ULONG (STDMETHODCALLTYPE *Release)(
1280         IStdMarshalInfo* This);
1281 
1282     /*** IStdMarshalInfo methods ***/
1283     HRESULT (STDMETHODCALLTYPE *GetClassForHandler)(
1284         IStdMarshalInfo* This,
1285         DWORD dwDestContext,
1286         void *pvDestContext,
1287         CLSID *pClsid);
1288 
1289     END_INTERFACE
1290 } IStdMarshalInfoVtbl;
1291 interface IStdMarshalInfo {
1292     CONST_VTBL IStdMarshalInfoVtbl* lpVtbl;
1293 };
1294 
1295 #ifdef COBJMACROS
1296 #ifndef WIDL_C_INLINE_WRAPPERS
1297 /*** IUnknown methods ***/
1298 #define IStdMarshalInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1299 #define IStdMarshalInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
1300 #define IStdMarshalInfo_Release(This) (This)->lpVtbl->Release(This)
1301 /*** IStdMarshalInfo methods ***/
1302 #define IStdMarshalInfo_GetClassForHandler(This,dwDestContext,pvDestContext,pClsid) (This)->lpVtbl->GetClassForHandler(This,dwDestContext,pvDestContext,pClsid)
1303 #else
1304 /*** IUnknown methods ***/
1305 static FORCEINLINE HRESULT IStdMarshalInfo_QueryInterface(IStdMarshalInfo* This,REFIID riid,void **ppvObject) {
1306     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1307 }
1308 static FORCEINLINE ULONG IStdMarshalInfo_AddRef(IStdMarshalInfo* This) {
1309     return This->lpVtbl->AddRef(This);
1310 }
1311 static FORCEINLINE ULONG IStdMarshalInfo_Release(IStdMarshalInfo* This) {
1312     return This->lpVtbl->Release(This);
1313 }
1314 /*** IStdMarshalInfo methods ***/
1315 static FORCEINLINE HRESULT IStdMarshalInfo_GetClassForHandler(IStdMarshalInfo* This,DWORD dwDestContext,void *pvDestContext,CLSID *pClsid) {
1316     return This->lpVtbl->GetClassForHandler(This,dwDestContext,pvDestContext,pClsid);
1317 }
1318 #endif
1319 #endif
1320 
1321 #endif
1322 
1323 HRESULT STDMETHODCALLTYPE IStdMarshalInfo_GetClassForHandler_Proxy(
1324     IStdMarshalInfo* This,
1325     DWORD dwDestContext,
1326     void *pvDestContext,
1327     CLSID *pClsid);
1328 void __RPC_STUB IStdMarshalInfo_GetClassForHandler_Stub(
1329     IRpcStubBuffer* This,
1330     IRpcChannelBuffer* pRpcChannelBuffer,
1331     PRPC_MESSAGE pRpcMessage,
1332     DWORD* pdwStubPhase);
1333 
1334 #endif  /* __IStdMarshalInfo_INTERFACE_DEFINED__ */
1335 
1336 
1337 /*****************************************************************************
1338  * IExternalConnection interface
1339  */
1340 #ifndef __IExternalConnection_INTERFACE_DEFINED__
1341 #define __IExternalConnection_INTERFACE_DEFINED__
1342 
1343 typedef IExternalConnection *LPEXTERNALCONNECTION;
1344 
1345 typedef enum tagEXTCONN {
1346     EXTCONN_STRONG = 0x1,
1347     EXTCONN_WEAK = 0x2,
1348     EXTCONN_CALLABLE = 0x4
1349 } EXTCONN;
1350 
1351 DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1352 #if defined(__cplusplus) && !defined(CINTERFACE)
1353 MIDL_INTERFACE("00000019-0000-0000-c000-000000000046")
1354 IExternalConnection : public IUnknown
1355 {
1356     virtual DWORD STDMETHODCALLTYPE AddConnection(
1357         DWORD extconn,
1358         DWORD reserved) = 0;
1359 
1360     virtual DWORD STDMETHODCALLTYPE ReleaseConnection(
1361         DWORD extconn,
1362         DWORD reserved,
1363         WINBOOL fLastReleaseCloses) = 0;
1364 
1365 };
1366 #ifdef __CRT_UUID_DECL
1367 __CRT_UUID_DECL(IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1368 #endif
1369 #else
1370 typedef struct IExternalConnectionVtbl {
1371     BEGIN_INTERFACE
1372 
1373     /*** IUnknown methods ***/
1374     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1375         IExternalConnection* This,
1376         REFIID riid,
1377         void **ppvObject);
1378 
1379     ULONG (STDMETHODCALLTYPE *AddRef)(
1380         IExternalConnection* This);
1381 
1382     ULONG (STDMETHODCALLTYPE *Release)(
1383         IExternalConnection* This);
1384 
1385     /*** IExternalConnection methods ***/
1386     DWORD (STDMETHODCALLTYPE *AddConnection)(
1387         IExternalConnection* This,
1388         DWORD extconn,
1389         DWORD reserved);
1390 
1391     DWORD (STDMETHODCALLTYPE *ReleaseConnection)(
1392         IExternalConnection* This,
1393         DWORD extconn,
1394         DWORD reserved,
1395         WINBOOL fLastReleaseCloses);
1396 
1397     END_INTERFACE
1398 } IExternalConnectionVtbl;
1399 interface IExternalConnection {
1400     CONST_VTBL IExternalConnectionVtbl* lpVtbl;
1401 };
1402 
1403 #ifdef COBJMACROS
1404 #ifndef WIDL_C_INLINE_WRAPPERS
1405 /*** IUnknown methods ***/
1406 #define IExternalConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1407 #define IExternalConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
1408 #define IExternalConnection_Release(This) (This)->lpVtbl->Release(This)
1409 /*** IExternalConnection methods ***/
1410 #define IExternalConnection_AddConnection(This,extconn,reserved) (This)->lpVtbl->AddConnection(This,extconn,reserved)
1411 #define IExternalConnection_ReleaseConnection(This,extconn,reserved,fLastReleaseCloses) (This)->lpVtbl->ReleaseConnection(This,extconn,reserved,fLastReleaseCloses)
1412 #else
1413 /*** IUnknown methods ***/
1414 static FORCEINLINE HRESULT IExternalConnection_QueryInterface(IExternalConnection* This,REFIID riid,void **ppvObject) {
1415     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1416 }
1417 static FORCEINLINE ULONG IExternalConnection_AddRef(IExternalConnection* This) {
1418     return This->lpVtbl->AddRef(This);
1419 }
1420 static FORCEINLINE ULONG IExternalConnection_Release(IExternalConnection* This) {
1421     return This->lpVtbl->Release(This);
1422 }
1423 /*** IExternalConnection methods ***/
1424 static FORCEINLINE DWORD IExternalConnection_AddConnection(IExternalConnection* This,DWORD extconn,DWORD reserved) {
1425     return This->lpVtbl->AddConnection(This,extconn,reserved);
1426 }
1427 static FORCEINLINE DWORD IExternalConnection_ReleaseConnection(IExternalConnection* This,DWORD extconn,DWORD reserved,WINBOOL fLastReleaseCloses) {
1428     return This->lpVtbl->ReleaseConnection(This,extconn,reserved,fLastReleaseCloses);
1429 }
1430 #endif
1431 #endif
1432 
1433 #endif
1434 
1435 DWORD STDMETHODCALLTYPE IExternalConnection_AddConnection_Proxy(
1436     IExternalConnection* This,
1437     DWORD extconn,
1438     DWORD reserved);
1439 void __RPC_STUB IExternalConnection_AddConnection_Stub(
1440     IRpcStubBuffer* This,
1441     IRpcChannelBuffer* pRpcChannelBuffer,
1442     PRPC_MESSAGE pRpcMessage,
1443     DWORD* pdwStubPhase);
1444 DWORD STDMETHODCALLTYPE IExternalConnection_ReleaseConnection_Proxy(
1445     IExternalConnection* This,
1446     DWORD extconn,
1447     DWORD reserved,
1448     WINBOOL fLastReleaseCloses);
1449 void __RPC_STUB IExternalConnection_ReleaseConnection_Stub(
1450     IRpcStubBuffer* This,
1451     IRpcChannelBuffer* pRpcChannelBuffer,
1452     PRPC_MESSAGE pRpcMessage,
1453     DWORD* pdwStubPhase);
1454 
1455 #endif  /* __IExternalConnection_INTERFACE_DEFINED__ */
1456 
1457 
1458 typedef IMultiQI *LPMULTIQI;
1459 #endif
1460 
1461 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
1462 typedef struct tagMULTI_QI {
1463     const IID *pIID;
1464     IUnknown *pItf;
1465     HRESULT hr;
1466 } MULTI_QI;
1467 
1468 /*****************************************************************************
1469  * IMultiQI interface
1470  */
1471 #ifndef __IMultiQI_INTERFACE_DEFINED__
1472 #define __IMultiQI_INTERFACE_DEFINED__
1473 
1474 DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1475 #if defined(__cplusplus) && !defined(CINTERFACE)
1476 MIDL_INTERFACE("00000020-0000-0000-c000-000000000046")
1477 IMultiQI : public IUnknown
1478 {
1479     virtual HRESULT STDMETHODCALLTYPE QueryMultipleInterfaces(
1480         ULONG cMQIs,
1481         MULTI_QI *pMQIs) = 0;
1482 
1483 };
1484 #ifdef __CRT_UUID_DECL
1485 __CRT_UUID_DECL(IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1486 #endif
1487 #else
1488 typedef struct IMultiQIVtbl {
1489     BEGIN_INTERFACE
1490 
1491     /*** IUnknown methods ***/
1492     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1493         IMultiQI* This,
1494         REFIID riid,
1495         void **ppvObject);
1496 
1497     ULONG (STDMETHODCALLTYPE *AddRef)(
1498         IMultiQI* This);
1499 
1500     ULONG (STDMETHODCALLTYPE *Release)(
1501         IMultiQI* This);
1502 
1503     /*** IMultiQI methods ***/
1504     HRESULT (STDMETHODCALLTYPE *QueryMultipleInterfaces)(
1505         IMultiQI* This,
1506         ULONG cMQIs,
1507         MULTI_QI *pMQIs);
1508 
1509     END_INTERFACE
1510 } IMultiQIVtbl;
1511 interface IMultiQI {
1512     CONST_VTBL IMultiQIVtbl* lpVtbl;
1513 };
1514 
1515 #ifdef COBJMACROS
1516 #ifndef WIDL_C_INLINE_WRAPPERS
1517 /*** IUnknown methods ***/
1518 #define IMultiQI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1519 #define IMultiQI_AddRef(This) (This)->lpVtbl->AddRef(This)
1520 #define IMultiQI_Release(This) (This)->lpVtbl->Release(This)
1521 /*** IMultiQI methods ***/
1522 #define IMultiQI_QueryMultipleInterfaces(This,cMQIs,pMQIs) (This)->lpVtbl->QueryMultipleInterfaces(This,cMQIs,pMQIs)
1523 #else
1524 /*** IUnknown methods ***/
1525 static FORCEINLINE HRESULT IMultiQI_QueryInterface(IMultiQI* This,REFIID riid,void **ppvObject) {
1526     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1527 }
1528 static FORCEINLINE ULONG IMultiQI_AddRef(IMultiQI* This) {
1529     return This->lpVtbl->AddRef(This);
1530 }
1531 static FORCEINLINE ULONG IMultiQI_Release(IMultiQI* This) {
1532     return This->lpVtbl->Release(This);
1533 }
1534 /*** IMultiQI methods ***/
1535 static FORCEINLINE HRESULT IMultiQI_QueryMultipleInterfaces(IMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
1536     return This->lpVtbl->QueryMultipleInterfaces(This,cMQIs,pMQIs);
1537 }
1538 #endif
1539 #endif
1540 
1541 #endif
1542 
1543 HRESULT STDMETHODCALLTYPE IMultiQI_QueryMultipleInterfaces_Proxy(
1544     IMultiQI* This,
1545     ULONG cMQIs,
1546     MULTI_QI *pMQIs);
1547 void __RPC_STUB IMultiQI_QueryMultipleInterfaces_Stub(
1548     IRpcStubBuffer* This,
1549     IRpcChannelBuffer* pRpcChannelBuffer,
1550     PRPC_MESSAGE pRpcMessage,
1551     DWORD* pdwStubPhase);
1552 
1553 #endif  /* __IMultiQI_INTERFACE_DEFINED__ */
1554 
1555 /*****************************************************************************
1556  * AsyncIMultiQI interface
1557  */
1558 #ifndef __AsyncIMultiQI_INTERFACE_DEFINED__
1559 #define __AsyncIMultiQI_INTERFACE_DEFINED__
1560 
1561 DEFINE_GUID(IID_AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1562 #if defined(__cplusplus) && !defined(CINTERFACE)
1563 MIDL_INTERFACE("000e0020-0000-0000-c000-000000000046")
1564 AsyncIMultiQI : public IUnknown
1565 {
1566     virtual void STDMETHODCALLTYPE Begin_QueryMultipleInterfaces(
1567         ULONG cMQIs,
1568         MULTI_QI *pMQIs) = 0;
1569 
1570     virtual HRESULT STDMETHODCALLTYPE Finish_QueryMultipleInterfaces(
1571         MULTI_QI *pMQIs) = 0;
1572 
1573 };
1574 #ifdef __CRT_UUID_DECL
1575 __CRT_UUID_DECL(AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1576 #endif
1577 #else
1578 typedef struct AsyncIMultiQIVtbl {
1579     BEGIN_INTERFACE
1580 
1581     /*** IUnknown methods ***/
1582     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1583         AsyncIMultiQI* This,
1584         REFIID riid,
1585         void **ppvObject);
1586 
1587     ULONG (STDMETHODCALLTYPE *AddRef)(
1588         AsyncIMultiQI* This);
1589 
1590     ULONG (STDMETHODCALLTYPE *Release)(
1591         AsyncIMultiQI* This);
1592 
1593     /*** IMultiQI methods ***/
1594     void (STDMETHODCALLTYPE *Begin_QueryMultipleInterfaces)(
1595         AsyncIMultiQI* This,
1596         ULONG cMQIs,
1597         MULTI_QI *pMQIs);
1598 
1599     HRESULT (STDMETHODCALLTYPE *Finish_QueryMultipleInterfaces)(
1600         AsyncIMultiQI* This,
1601         MULTI_QI *pMQIs);
1602 
1603     END_INTERFACE
1604 } AsyncIMultiQIVtbl;
1605 interface AsyncIMultiQI {
1606     CONST_VTBL AsyncIMultiQIVtbl* lpVtbl;
1607 };
1608 
1609 #ifdef COBJMACROS
1610 #ifndef WIDL_C_INLINE_WRAPPERS
1611 /*** IUnknown methods ***/
1612 #define AsyncIMultiQI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1613 #define AsyncIMultiQI_AddRef(This) (This)->lpVtbl->AddRef(This)
1614 #define AsyncIMultiQI_Release(This) (This)->lpVtbl->Release(This)
1615 /*** IMultiQI methods ***/
1616 #define AsyncIMultiQI_Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs) (This)->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs)
1617 #define AsyncIMultiQI_Finish_QueryMultipleInterfaces(This,pMQIs) (This)->lpVtbl->Finish_QueryMultipleInterfaces(This,pMQIs)
1618 #else
1619 /*** IUnknown methods ***/
1620 static FORCEINLINE HRESULT AsyncIMultiQI_QueryInterface(AsyncIMultiQI* This,REFIID riid,void **ppvObject) {
1621     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1622 }
1623 static FORCEINLINE ULONG AsyncIMultiQI_AddRef(AsyncIMultiQI* This) {
1624     return This->lpVtbl->AddRef(This);
1625 }
1626 static FORCEINLINE ULONG AsyncIMultiQI_Release(AsyncIMultiQI* This) {
1627     return This->lpVtbl->Release(This);
1628 }
1629 /*** IMultiQI methods ***/
1630 static FORCEINLINE void Begin_AsyncIMultiQI_QueryMultipleInterfaces(AsyncIMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
1631     This->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs);
1632 }
1633 static FORCEINLINE HRESULT Finish_AsyncIMultiQI_QueryMultipleInterfaces(AsyncIMultiQI* This,MULTI_QI *pMQIs) {
1634     return This->lpVtbl->Finish_QueryMultipleInterfaces(This);
1635 }
1636 #endif
1637 #endif
1638 
1639 #endif
1640 
1641 HRESULT STDMETHODCALLTYPE AsyncIMultiQI_Begin_QueryMultipleInterfaces_Proxy(
1642     IMultiQI* This,
1643     ULONG cMQIs,
1644     MULTI_QI *pMQIs);
1645 void __RPC_STUB AsyncIMultiQI_Begin_QueryMultipleInterfaces_Stub(
1646     IRpcStubBuffer* This,
1647     IRpcChannelBuffer* pRpcChannelBuffer,
1648     PRPC_MESSAGE pRpcMessage,
1649     DWORD* pdwStubPhase);
1650 HRESULT STDMETHODCALLTYPE AsyncIMultiQI_Finish_QueryMultipleInterfaces_Proxy(
1651     IMultiQI* This,
1652     ULONG cMQIs,
1653     MULTI_QI *pMQIs);
1654 void __RPC_STUB AsyncIMultiQI_Finish_QueryMultipleInterfaces_Stub(
1655     IRpcStubBuffer* This,
1656     IRpcChannelBuffer* pRpcChannelBuffer,
1657     PRPC_MESSAGE pRpcMessage,
1658     DWORD* pdwStubPhase);
1659 
1660 #endif  /* __AsyncIMultiQI_INTERFACE_DEFINED__ */
1661 
1662 #endif
1663 
1664 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
1665 /*****************************************************************************
1666  * IInternalUnknown interface
1667  */
1668 #ifndef __IInternalUnknown_INTERFACE_DEFINED__
1669 #define __IInternalUnknown_INTERFACE_DEFINED__
1670 
1671 DEFINE_GUID(IID_IInternalUnknown, 0x00000021, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1672 #if defined(__cplusplus) && !defined(CINTERFACE)
1673 MIDL_INTERFACE("00000021-0000-0000-c000-000000000046")
1674 IInternalUnknown : public IUnknown
1675 {
1676     virtual HRESULT STDMETHODCALLTYPE QueryInternalInterface(
1677         REFIID riid,
1678         void **ppv) = 0;
1679 
1680 };
1681 #ifdef __CRT_UUID_DECL
1682 __CRT_UUID_DECL(IInternalUnknown, 0x00000021, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1683 #endif
1684 #else
1685 typedef struct IInternalUnknownVtbl {
1686     BEGIN_INTERFACE
1687 
1688     /*** IUnknown methods ***/
1689     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1690         IInternalUnknown* This,
1691         REFIID riid,
1692         void **ppvObject);
1693 
1694     ULONG (STDMETHODCALLTYPE *AddRef)(
1695         IInternalUnknown* This);
1696 
1697     ULONG (STDMETHODCALLTYPE *Release)(
1698         IInternalUnknown* This);
1699 
1700     /*** IInternalUnknown methods ***/
1701     HRESULT (STDMETHODCALLTYPE *QueryInternalInterface)(
1702         IInternalUnknown* This,
1703         REFIID riid,
1704         void **ppv);
1705 
1706     END_INTERFACE
1707 } IInternalUnknownVtbl;
1708 interface IInternalUnknown {
1709     CONST_VTBL IInternalUnknownVtbl* lpVtbl;
1710 };
1711 
1712 #ifdef COBJMACROS
1713 #ifndef WIDL_C_INLINE_WRAPPERS
1714 /*** IUnknown methods ***/
1715 #define IInternalUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1716 #define IInternalUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
1717 #define IInternalUnknown_Release(This) (This)->lpVtbl->Release(This)
1718 /*** IInternalUnknown methods ***/
1719 #define IInternalUnknown_QueryInternalInterface(This,riid,ppv) (This)->lpVtbl->QueryInternalInterface(This,riid,ppv)
1720 #else
1721 /*** IUnknown methods ***/
1722 static FORCEINLINE HRESULT IInternalUnknown_QueryInterface(IInternalUnknown* This,REFIID riid,void **ppvObject) {
1723     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1724 }
1725 static FORCEINLINE ULONG IInternalUnknown_AddRef(IInternalUnknown* This) {
1726     return This->lpVtbl->AddRef(This);
1727 }
1728 static FORCEINLINE ULONG IInternalUnknown_Release(IInternalUnknown* This) {
1729     return This->lpVtbl->Release(This);
1730 }
1731 /*** IInternalUnknown methods ***/
1732 static FORCEINLINE HRESULT IInternalUnknown_QueryInternalInterface(IInternalUnknown* This,REFIID riid,void **ppv) {
1733     return This->lpVtbl->QueryInternalInterface(This,riid,ppv);
1734 }
1735 #endif
1736 #endif
1737 
1738 #endif
1739 
1740 HRESULT STDMETHODCALLTYPE IInternalUnknown_QueryInternalInterface_Proxy(
1741     IInternalUnknown* This,
1742     REFIID riid,
1743     void **ppv);
1744 void __RPC_STUB IInternalUnknown_QueryInternalInterface_Stub(
1745     IRpcStubBuffer* This,
1746     IRpcChannelBuffer* pRpcChannelBuffer,
1747     PRPC_MESSAGE pRpcMessage,
1748     DWORD* pdwStubPhase);
1749 
1750 #endif  /* __IInternalUnknown_INTERFACE_DEFINED__ */
1751 
1752 #endif
1753 
1754 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
1755 /*****************************************************************************
1756  * IEnumUnknown interface
1757  */
1758 #ifndef __IEnumUnknown_INTERFACE_DEFINED__
1759 #define __IEnumUnknown_INTERFACE_DEFINED__
1760 
1761 typedef IEnumUnknown *LPENUMUNKNOWN;
1762 
1763 DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1764 #if defined(__cplusplus) && !defined(CINTERFACE)
1765 MIDL_INTERFACE("00000100-0000-0000-c000-000000000046")
1766 IEnumUnknown : public IUnknown
1767 {
1768     virtual HRESULT STDMETHODCALLTYPE Next(
1769         ULONG celt,
1770         IUnknown **rgelt,
1771         ULONG *pceltFetched) = 0;
1772 
1773     virtual HRESULT STDMETHODCALLTYPE Skip(
1774         ULONG celt) = 0;
1775 
1776     virtual HRESULT STDMETHODCALLTYPE Reset(
1777         ) = 0;
1778 
1779     virtual HRESULT STDMETHODCALLTYPE Clone(
1780         IEnumUnknown **ppenum) = 0;
1781 
1782 };
1783 #ifdef __CRT_UUID_DECL
1784 __CRT_UUID_DECL(IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1785 #endif
1786 #else
1787 typedef struct IEnumUnknownVtbl {
1788     BEGIN_INTERFACE
1789 
1790     /*** IUnknown methods ***/
1791     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1792         IEnumUnknown* This,
1793         REFIID riid,
1794         void **ppvObject);
1795 
1796     ULONG (STDMETHODCALLTYPE *AddRef)(
1797         IEnumUnknown* This);
1798 
1799     ULONG (STDMETHODCALLTYPE *Release)(
1800         IEnumUnknown* This);
1801 
1802     /*** IEnumUnknown methods ***/
1803     HRESULT (STDMETHODCALLTYPE *Next)(
1804         IEnumUnknown* This,
1805         ULONG celt,
1806         IUnknown **rgelt,
1807         ULONG *pceltFetched);
1808 
1809     HRESULT (STDMETHODCALLTYPE *Skip)(
1810         IEnumUnknown* This,
1811         ULONG celt);
1812 
1813     HRESULT (STDMETHODCALLTYPE *Reset)(
1814         IEnumUnknown* This);
1815 
1816     HRESULT (STDMETHODCALLTYPE *Clone)(
1817         IEnumUnknown* This,
1818         IEnumUnknown **ppenum);
1819 
1820     END_INTERFACE
1821 } IEnumUnknownVtbl;
1822 interface IEnumUnknown {
1823     CONST_VTBL IEnumUnknownVtbl* lpVtbl;
1824 };
1825 
1826 #ifdef COBJMACROS
1827 #ifndef WIDL_C_INLINE_WRAPPERS
1828 /*** IUnknown methods ***/
1829 #define IEnumUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1830 #define IEnumUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
1831 #define IEnumUnknown_Release(This) (This)->lpVtbl->Release(This)
1832 /*** IEnumUnknown methods ***/
1833 #define IEnumUnknown_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
1834 #define IEnumUnknown_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
1835 #define IEnumUnknown_Reset(This) (This)->lpVtbl->Reset(This)
1836 #define IEnumUnknown_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
1837 #else
1838 /*** IUnknown methods ***/
1839 static FORCEINLINE HRESULT IEnumUnknown_QueryInterface(IEnumUnknown* This,REFIID riid,void **ppvObject) {
1840     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1841 }
1842 static FORCEINLINE ULONG IEnumUnknown_AddRef(IEnumUnknown* This) {
1843     return This->lpVtbl->AddRef(This);
1844 }
1845 static FORCEINLINE ULONG IEnumUnknown_Release(IEnumUnknown* This) {
1846     return This->lpVtbl->Release(This);
1847 }
1848 /*** IEnumUnknown methods ***/
1849 static FORCEINLINE HRESULT IEnumUnknown_Next(IEnumUnknown* This,ULONG celt,IUnknown **rgelt,ULONG *pceltFetched) {
1850     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
1851 }
1852 static FORCEINLINE HRESULT IEnumUnknown_Skip(IEnumUnknown* This,ULONG celt) {
1853     return This->lpVtbl->Skip(This,celt);
1854 }
1855 static FORCEINLINE HRESULT IEnumUnknown_Reset(IEnumUnknown* This) {
1856     return This->lpVtbl->Reset(This);
1857 }
1858 static FORCEINLINE HRESULT IEnumUnknown_Clone(IEnumUnknown* This,IEnumUnknown **ppenum) {
1859     return This->lpVtbl->Clone(This,ppenum);
1860 }
1861 #endif
1862 #endif
1863 
1864 #endif
1865 
1866 HRESULT STDMETHODCALLTYPE IEnumUnknown_RemoteNext_Proxy(
1867     IEnumUnknown* This,
1868     ULONG celt,
1869     IUnknown **rgelt,
1870     ULONG *pceltFetched);
1871 void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
1872     IRpcStubBuffer* This,
1873     IRpcChannelBuffer* pRpcChannelBuffer,
1874     PRPC_MESSAGE pRpcMessage,
1875     DWORD* pdwStubPhase);
1876 HRESULT STDMETHODCALLTYPE IEnumUnknown_Skip_Proxy(
1877     IEnumUnknown* This,
1878     ULONG celt);
1879 void __RPC_STUB IEnumUnknown_Skip_Stub(
1880     IRpcStubBuffer* This,
1881     IRpcChannelBuffer* pRpcChannelBuffer,
1882     PRPC_MESSAGE pRpcMessage,
1883     DWORD* pdwStubPhase);
1884 HRESULT STDMETHODCALLTYPE IEnumUnknown_Reset_Proxy(
1885     IEnumUnknown* This);
1886 void __RPC_STUB IEnumUnknown_Reset_Stub(
1887     IRpcStubBuffer* This,
1888     IRpcChannelBuffer* pRpcChannelBuffer,
1889     PRPC_MESSAGE pRpcMessage,
1890     DWORD* pdwStubPhase);
1891 HRESULT STDMETHODCALLTYPE IEnumUnknown_Clone_Proxy(
1892     IEnumUnknown* This,
1893     IEnumUnknown **ppenum);
1894 void __RPC_STUB IEnumUnknown_Clone_Stub(
1895     IRpcStubBuffer* This,
1896     IRpcChannelBuffer* pRpcChannelBuffer,
1897     PRPC_MESSAGE pRpcMessage,
1898     DWORD* pdwStubPhase);
1899 HRESULT CALLBACK IEnumUnknown_Next_Proxy(
1900     IEnumUnknown* This,
1901     ULONG celt,
1902     IUnknown **rgelt,
1903     ULONG *pceltFetched);
1904 HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
1905     IEnumUnknown* This,
1906     ULONG celt,
1907     IUnknown **rgelt,
1908     ULONG *pceltFetched);
1909 
1910 #endif  /* __IEnumUnknown_INTERFACE_DEFINED__ */
1911 
1912 
1913 /*****************************************************************************
1914  * IEnumString interface
1915  */
1916 #ifndef __IEnumString_INTERFACE_DEFINED__
1917 #define __IEnumString_INTERFACE_DEFINED__
1918 
1919 typedef IEnumString *LPENUMSTRING;
1920 
1921 DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1922 #if defined(__cplusplus) && !defined(CINTERFACE)
1923 MIDL_INTERFACE("00000101-0000-0000-c000-000000000046")
1924 IEnumString : public IUnknown
1925 {
1926     virtual HRESULT STDMETHODCALLTYPE Next(
1927         ULONG celt,
1928         LPOLESTR *rgelt,
1929         ULONG *pceltFetched) = 0;
1930 
1931     virtual HRESULT STDMETHODCALLTYPE Skip(
1932         ULONG celt) = 0;
1933 
1934     virtual HRESULT STDMETHODCALLTYPE Reset(
1935         ) = 0;
1936 
1937     virtual HRESULT STDMETHODCALLTYPE Clone(
1938         IEnumString **ppenum) = 0;
1939 
1940 };
1941 #ifdef __CRT_UUID_DECL
1942 __CRT_UUID_DECL(IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1943 #endif
1944 #else
1945 typedef struct IEnumStringVtbl {
1946     BEGIN_INTERFACE
1947 
1948     /*** IUnknown methods ***/
1949     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1950         IEnumString* This,
1951         REFIID riid,
1952         void **ppvObject);
1953 
1954     ULONG (STDMETHODCALLTYPE *AddRef)(
1955         IEnumString* This);
1956 
1957     ULONG (STDMETHODCALLTYPE *Release)(
1958         IEnumString* This);
1959 
1960     /*** IEnumString methods ***/
1961     HRESULT (STDMETHODCALLTYPE *Next)(
1962         IEnumString* This,
1963         ULONG celt,
1964         LPOLESTR *rgelt,
1965         ULONG *pceltFetched);
1966 
1967     HRESULT (STDMETHODCALLTYPE *Skip)(
1968         IEnumString* This,
1969         ULONG celt);
1970 
1971     HRESULT (STDMETHODCALLTYPE *Reset)(
1972         IEnumString* This);
1973 
1974     HRESULT (STDMETHODCALLTYPE *Clone)(
1975         IEnumString* This,
1976         IEnumString **ppenum);
1977 
1978     END_INTERFACE
1979 } IEnumStringVtbl;
1980 interface IEnumString {
1981     CONST_VTBL IEnumStringVtbl* lpVtbl;
1982 };
1983 
1984 #ifdef COBJMACROS
1985 #ifndef WIDL_C_INLINE_WRAPPERS
1986 /*** IUnknown methods ***/
1987 #define IEnumString_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1988 #define IEnumString_AddRef(This) (This)->lpVtbl->AddRef(This)
1989 #define IEnumString_Release(This) (This)->lpVtbl->Release(This)
1990 /*** IEnumString methods ***/
1991 #define IEnumString_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
1992 #define IEnumString_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
1993 #define IEnumString_Reset(This) (This)->lpVtbl->Reset(This)
1994 #define IEnumString_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
1995 #else
1996 /*** IUnknown methods ***/
1997 static FORCEINLINE HRESULT IEnumString_QueryInterface(IEnumString* This,REFIID riid,void **ppvObject) {
1998     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1999 }
2000 static FORCEINLINE ULONG IEnumString_AddRef(IEnumString* This) {
2001     return This->lpVtbl->AddRef(This);
2002 }
2003 static FORCEINLINE ULONG IEnumString_Release(IEnumString* This) {
2004     return This->lpVtbl->Release(This);
2005 }
2006 /*** IEnumString methods ***/
2007 static FORCEINLINE HRESULT IEnumString_Next(IEnumString* This,ULONG celt,LPOLESTR *rgelt,ULONG *pceltFetched) {
2008     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
2009 }
2010 static FORCEINLINE HRESULT IEnumString_Skip(IEnumString* This,ULONG celt) {
2011     return This->lpVtbl->Skip(This,celt);
2012 }
2013 static FORCEINLINE HRESULT IEnumString_Reset(IEnumString* This) {
2014     return This->lpVtbl->Reset(This);
2015 }
2016 static FORCEINLINE HRESULT IEnumString_Clone(IEnumString* This,IEnumString **ppenum) {
2017     return This->lpVtbl->Clone(This,ppenum);
2018 }
2019 #endif
2020 #endif
2021 
2022 #endif
2023 
2024 HRESULT STDMETHODCALLTYPE IEnumString_RemoteNext_Proxy(
2025     IEnumString* This,
2026     ULONG celt,
2027     LPOLESTR *rgelt,
2028     ULONG *pceltFetched);
2029 void __RPC_STUB IEnumString_RemoteNext_Stub(
2030     IRpcStubBuffer* This,
2031     IRpcChannelBuffer* pRpcChannelBuffer,
2032     PRPC_MESSAGE pRpcMessage,
2033     DWORD* pdwStubPhase);
2034 HRESULT STDMETHODCALLTYPE IEnumString_Skip_Proxy(
2035     IEnumString* This,
2036     ULONG celt);
2037 void __RPC_STUB IEnumString_Skip_Stub(
2038     IRpcStubBuffer* This,
2039     IRpcChannelBuffer* pRpcChannelBuffer,
2040     PRPC_MESSAGE pRpcMessage,
2041     DWORD* pdwStubPhase);
2042 HRESULT STDMETHODCALLTYPE IEnumString_Reset_Proxy(
2043     IEnumString* This);
2044 void __RPC_STUB IEnumString_Reset_Stub(
2045     IRpcStubBuffer* This,
2046     IRpcChannelBuffer* pRpcChannelBuffer,
2047     PRPC_MESSAGE pRpcMessage,
2048     DWORD* pdwStubPhase);
2049 HRESULT STDMETHODCALLTYPE IEnumString_Clone_Proxy(
2050     IEnumString* This,
2051     IEnumString **ppenum);
2052 void __RPC_STUB IEnumString_Clone_Stub(
2053     IRpcStubBuffer* This,
2054     IRpcChannelBuffer* pRpcChannelBuffer,
2055     PRPC_MESSAGE pRpcMessage,
2056     DWORD* pdwStubPhase);
2057 HRESULT CALLBACK IEnumString_Next_Proxy(
2058     IEnumString* This,
2059     ULONG celt,
2060     LPOLESTR *rgelt,
2061     ULONG *pceltFetched);
2062 HRESULT __RPC_STUB IEnumString_Next_Stub(
2063     IEnumString* This,
2064     ULONG celt,
2065     LPOLESTR *rgelt,
2066     ULONG *pceltFetched);
2067 
2068 #endif  /* __IEnumString_INTERFACE_DEFINED__ */
2069 
2070 
2071 /*****************************************************************************
2072  * ISequentialStream interface
2073  */
2074 #ifndef __ISequentialStream_INTERFACE_DEFINED__
2075 #define __ISequentialStream_INTERFACE_DEFINED__
2076 
2077 DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
2078 #if defined(__cplusplus) && !defined(CINTERFACE)
2079 MIDL_INTERFACE("0c733a30-2a1c-11ce-ade5-00aa0044773d")
2080 ISequentialStream : public IUnknown
2081 {
2082     virtual HRESULT STDMETHODCALLTYPE Read(
2083         void *pv,
2084         ULONG cb,
2085         ULONG *pcbRead) = 0;
2086 
2087     virtual HRESULT STDMETHODCALLTYPE Write(
2088         const void *pv,
2089         ULONG cb,
2090         ULONG *pcbWritten) = 0;
2091 
2092 };
2093 #ifdef __CRT_UUID_DECL
2094 __CRT_UUID_DECL(ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d)
2095 #endif
2096 #else
2097 typedef struct ISequentialStreamVtbl {
2098     BEGIN_INTERFACE
2099 
2100     /*** IUnknown methods ***/
2101     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2102         ISequentialStream* This,
2103         REFIID riid,
2104         void **ppvObject);
2105 
2106     ULONG (STDMETHODCALLTYPE *AddRef)(
2107         ISequentialStream* This);
2108 
2109     ULONG (STDMETHODCALLTYPE *Release)(
2110         ISequentialStream* This);
2111 
2112     /*** ISequentialStream methods ***/
2113     HRESULT (STDMETHODCALLTYPE *Read)(
2114         ISequentialStream* This,
2115         void *pv,
2116         ULONG cb,
2117         ULONG *pcbRead);
2118 
2119     HRESULT (STDMETHODCALLTYPE *Write)(
2120         ISequentialStream* This,
2121         const void *pv,
2122         ULONG cb,
2123         ULONG *pcbWritten);
2124 
2125     END_INTERFACE
2126 } ISequentialStreamVtbl;
2127 interface ISequentialStream {
2128     CONST_VTBL ISequentialStreamVtbl* lpVtbl;
2129 };
2130 
2131 #ifdef COBJMACROS
2132 #ifndef WIDL_C_INLINE_WRAPPERS
2133 /*** IUnknown methods ***/
2134 #define ISequentialStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2135 #define ISequentialStream_AddRef(This) (This)->lpVtbl->AddRef(This)
2136 #define ISequentialStream_Release(This) (This)->lpVtbl->Release(This)
2137 /*** ISequentialStream methods ***/
2138 #define ISequentialStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
2139 #define ISequentialStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
2140 #else
2141 /*** IUnknown methods ***/
2142 static FORCEINLINE HRESULT ISequentialStream_QueryInterface(ISequentialStream* This,REFIID riid,void **ppvObject) {
2143     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2144 }
2145 static FORCEINLINE ULONG ISequentialStream_AddRef(ISequentialStream* This) {
2146     return This->lpVtbl->AddRef(This);
2147 }
2148 static FORCEINLINE ULONG ISequentialStream_Release(ISequentialStream* This) {
2149     return This->lpVtbl->Release(This);
2150 }
2151 /*** ISequentialStream methods ***/
2152 static FORCEINLINE HRESULT ISequentialStream_Read(ISequentialStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
2153     return This->lpVtbl->Read(This,pv,cb,pcbRead);
2154 }
2155 static FORCEINLINE HRESULT ISequentialStream_Write(ISequentialStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
2156     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
2157 }
2158 #endif
2159 #endif
2160 
2161 #endif
2162 
2163 HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteRead_Proxy(
2164     ISequentialStream* This,
2165     byte *pv,
2166     ULONG cb,
2167     ULONG *pcbRead);
2168 void __RPC_STUB ISequentialStream_RemoteRead_Stub(
2169     IRpcStubBuffer* This,
2170     IRpcChannelBuffer* pRpcChannelBuffer,
2171     PRPC_MESSAGE pRpcMessage,
2172     DWORD* pdwStubPhase);
2173 HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteWrite_Proxy(
2174     ISequentialStream* This,
2175     const byte *pv,
2176     ULONG cb,
2177     ULONG *pcbWritten);
2178 void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
2179     IRpcStubBuffer* This,
2180     IRpcChannelBuffer* pRpcChannelBuffer,
2181     PRPC_MESSAGE pRpcMessage,
2182     DWORD* pdwStubPhase);
2183 HRESULT CALLBACK ISequentialStream_Read_Proxy(
2184     ISequentialStream* This,
2185     void *pv,
2186     ULONG cb,
2187     ULONG *pcbRead);
2188 HRESULT __RPC_STUB ISequentialStream_Read_Stub(
2189     ISequentialStream* This,
2190     byte *pv,
2191     ULONG cb,
2192     ULONG *pcbRead);
2193 HRESULT CALLBACK ISequentialStream_Write_Proxy(
2194     ISequentialStream* This,
2195     const void *pv,
2196     ULONG cb,
2197     ULONG *pcbWritten);
2198 HRESULT __RPC_STUB ISequentialStream_Write_Stub(
2199     ISequentialStream* This,
2200     const byte *pv,
2201     ULONG cb,
2202     ULONG *pcbWritten);
2203 
2204 #endif  /* __ISequentialStream_INTERFACE_DEFINED__ */
2205 
2206 
2207 /*****************************************************************************
2208  * IStream interface
2209  */
2210 #ifndef __IStream_INTERFACE_DEFINED__
2211 #define __IStream_INTERFACE_DEFINED__
2212 
2213 typedef IStream *LPSTREAM;
2214 
2215 typedef struct tagSTATSTG {
2216     LPOLESTR pwcsName;
2217     DWORD type;
2218     ULARGE_INTEGER cbSize;
2219     FILETIME mtime;
2220     FILETIME ctime;
2221     FILETIME atime;
2222     DWORD grfMode;
2223     DWORD grfLocksSupported;
2224     CLSID clsid;
2225     DWORD grfStateBits;
2226     DWORD reserved;
2227 } STATSTG;
2228 
2229 typedef enum tagSTGTY {
2230     STGTY_STORAGE = 1,
2231     STGTY_STREAM = 2,
2232     STGTY_LOCKBYTES = 3,
2233     STGTY_PROPERTY = 4
2234 } STGTY;
2235 
2236 typedef enum tagSTREAM_SEEK {
2237     STREAM_SEEK_SET = 0,
2238     STREAM_SEEK_CUR = 1,
2239     STREAM_SEEK_END = 2
2240 } STREAM_SEEK;
2241 
2242 typedef enum tagLOCKTYPE {
2243     LOCK_WRITE = 1,
2244     LOCK_EXCLUSIVE = 2,
2245     LOCK_ONLYONCE = 4
2246 } LOCKTYPE;
2247 
2248 DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2249 #if defined(__cplusplus) && !defined(CINTERFACE)
2250 MIDL_INTERFACE("0000000c-0000-0000-c000-000000000046")
2251 IStream : public ISequentialStream
2252 {
2253     virtual HRESULT STDMETHODCALLTYPE Seek(
2254         LARGE_INTEGER dlibMove,
2255         DWORD dwOrigin,
2256         ULARGE_INTEGER *plibNewPosition) = 0;
2257 
2258     virtual HRESULT STDMETHODCALLTYPE SetSize(
2259         ULARGE_INTEGER libNewSize) = 0;
2260 
2261     virtual HRESULT STDMETHODCALLTYPE CopyTo(
2262         IStream *pstm,
2263         ULARGE_INTEGER cb,
2264         ULARGE_INTEGER *pcbRead,
2265         ULARGE_INTEGER *pcbWritten) = 0;
2266 
2267     virtual HRESULT STDMETHODCALLTYPE Commit(
2268         DWORD grfCommitFlags) = 0;
2269 
2270     virtual HRESULT STDMETHODCALLTYPE Revert(
2271         ) = 0;
2272 
2273     virtual HRESULT STDMETHODCALLTYPE LockRegion(
2274         ULARGE_INTEGER libOffset,
2275         ULARGE_INTEGER cb,
2276         DWORD dwLockType) = 0;
2277 
2278     virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
2279         ULARGE_INTEGER libOffset,
2280         ULARGE_INTEGER cb,
2281         DWORD dwLockType) = 0;
2282 
2283     virtual HRESULT STDMETHODCALLTYPE Stat(
2284         STATSTG *pstatstg,
2285         DWORD grfStatFlag) = 0;
2286 
2287     virtual HRESULT STDMETHODCALLTYPE Clone(
2288         IStream **ppstm) = 0;
2289 
2290 };
2291 #ifdef __CRT_UUID_DECL
2292 __CRT_UUID_DECL(IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
2293 #endif
2294 #else
2295 typedef struct IStreamVtbl {
2296     BEGIN_INTERFACE
2297 
2298     /*** IUnknown methods ***/
2299     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2300         IStream* This,
2301         REFIID riid,
2302         void **ppvObject);
2303 
2304     ULONG (STDMETHODCALLTYPE *AddRef)(
2305         IStream* This);
2306 
2307     ULONG (STDMETHODCALLTYPE *Release)(
2308         IStream* This);
2309 
2310     /*** ISequentialStream methods ***/
2311     HRESULT (STDMETHODCALLTYPE *Read)(
2312         IStream* This,
2313         void *pv,
2314         ULONG cb,
2315         ULONG *pcbRead);
2316 
2317     HRESULT (STDMETHODCALLTYPE *Write)(
2318         IStream* This,
2319         const void *pv,
2320         ULONG cb,
2321         ULONG *pcbWritten);
2322 
2323     /*** IStream methods ***/
2324     HRESULT (STDMETHODCALLTYPE *Seek)(
2325         IStream* This,
2326         LARGE_INTEGER dlibMove,
2327         DWORD dwOrigin,
2328         ULARGE_INTEGER *plibNewPosition);
2329 
2330     HRESULT (STDMETHODCALLTYPE *SetSize)(
2331         IStream* This,
2332         ULARGE_INTEGER libNewSize);
2333 
2334     HRESULT (STDMETHODCALLTYPE *CopyTo)(
2335         IStream* This,
2336         IStream *pstm,
2337         ULARGE_INTEGER cb,
2338         ULARGE_INTEGER *pcbRead,
2339         ULARGE_INTEGER *pcbWritten);
2340 
2341     HRESULT (STDMETHODCALLTYPE *Commit)(
2342         IStream* This,
2343         DWORD grfCommitFlags);
2344 
2345     HRESULT (STDMETHODCALLTYPE *Revert)(
2346         IStream* This);
2347 
2348     HRESULT (STDMETHODCALLTYPE *LockRegion)(
2349         IStream* This,
2350         ULARGE_INTEGER libOffset,
2351         ULARGE_INTEGER cb,
2352         DWORD dwLockType);
2353 
2354     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
2355         IStream* This,
2356         ULARGE_INTEGER libOffset,
2357         ULARGE_INTEGER cb,
2358         DWORD dwLockType);
2359 
2360     HRESULT (STDMETHODCALLTYPE *Stat)(
2361         IStream* This,
2362         STATSTG *pstatstg,
2363         DWORD grfStatFlag);
2364 
2365     HRESULT (STDMETHODCALLTYPE *Clone)(
2366         IStream* This,
2367         IStream **ppstm);
2368 
2369     END_INTERFACE
2370 } IStreamVtbl;
2371 interface IStream {
2372     CONST_VTBL IStreamVtbl* lpVtbl;
2373 };
2374 
2375 #ifdef COBJMACROS
2376 #ifndef WIDL_C_INLINE_WRAPPERS
2377 /*** IUnknown methods ***/
2378 #define IStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2379 #define IStream_AddRef(This) (This)->lpVtbl->AddRef(This)
2380 #define IStream_Release(This) (This)->lpVtbl->Release(This)
2381 /*** ISequentialStream methods ***/
2382 #define IStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
2383 #define IStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
2384 /*** IStream methods ***/
2385 #define IStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
2386 #define IStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
2387 #define IStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
2388 #define IStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
2389 #define IStream_Revert(This) (This)->lpVtbl->Revert(This)
2390 #define IStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
2391 #define IStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
2392 #define IStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
2393 #define IStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
2394 #else
2395 /*** IUnknown methods ***/
2396 static FORCEINLINE HRESULT IStream_QueryInterface(IStream* This,REFIID riid,void **ppvObject) {
2397     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2398 }
2399 static FORCEINLINE ULONG IStream_AddRef(IStream* This) {
2400     return This->lpVtbl->AddRef(This);
2401 }
2402 static FORCEINLINE ULONG IStream_Release(IStream* This) {
2403     return This->lpVtbl->Release(This);
2404 }
2405 /*** ISequentialStream methods ***/
2406 static FORCEINLINE HRESULT IStream_Read(IStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
2407     return This->lpVtbl->Read(This,pv,cb,pcbRead);
2408 }
2409 static FORCEINLINE HRESULT IStream_Write(IStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
2410     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
2411 }
2412 /*** IStream methods ***/
2413 static FORCEINLINE HRESULT IStream_Seek(IStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
2414     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
2415 }
2416 static FORCEINLINE HRESULT IStream_SetSize(IStream* This,ULARGE_INTEGER libNewSize) {
2417     return This->lpVtbl->SetSize(This,libNewSize);
2418 }
2419 static FORCEINLINE HRESULT IStream_CopyTo(IStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
2420     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
2421 }
2422 static FORCEINLINE HRESULT IStream_Commit(IStream* This,DWORD grfCommitFlags) {
2423     return This->lpVtbl->Commit(This,grfCommitFlags);
2424 }
2425 static FORCEINLINE HRESULT IStream_Revert(IStream* This) {
2426     return This->lpVtbl->Revert(This);
2427 }
2428 static FORCEINLINE HRESULT IStream_LockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
2429     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
2430 }
2431 static FORCEINLINE HRESULT IStream_UnlockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
2432     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
2433 }
2434 static FORCEINLINE HRESULT IStream_Stat(IStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
2435     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
2436 }
2437 static FORCEINLINE HRESULT IStream_Clone(IStream* This,IStream **ppstm) {
2438     return This->lpVtbl->Clone(This,ppstm);
2439 }
2440 #endif
2441 #endif
2442 
2443 #endif
2444 
2445 HRESULT STDMETHODCALLTYPE IStream_RemoteSeek_Proxy(
2446     IStream* This,
2447     LARGE_INTEGER dlibMove,
2448     DWORD dwOrigin,
2449     ULARGE_INTEGER *plibNewPosition);
2450 void __RPC_STUB IStream_RemoteSeek_Stub(
2451     IRpcStubBuffer* This,
2452     IRpcChannelBuffer* pRpcChannelBuffer,
2453     PRPC_MESSAGE pRpcMessage,
2454     DWORD* pdwStubPhase);
2455 HRESULT STDMETHODCALLTYPE IStream_SetSize_Proxy(
2456     IStream* This,
2457     ULARGE_INTEGER libNewSize);
2458 void __RPC_STUB IStream_SetSize_Stub(
2459     IRpcStubBuffer* This,
2460     IRpcChannelBuffer* pRpcChannelBuffer,
2461     PRPC_MESSAGE pRpcMessage,
2462     DWORD* pdwStubPhase);
2463 HRESULT STDMETHODCALLTYPE IStream_RemoteCopyTo_Proxy(
2464     IStream* This,
2465     IStream *pstm,
2466     ULARGE_INTEGER cb,
2467     ULARGE_INTEGER *pcbRead,
2468     ULARGE_INTEGER *pcbWritten);
2469 void __RPC_STUB IStream_RemoteCopyTo_Stub(
2470     IRpcStubBuffer* This,
2471     IRpcChannelBuffer* pRpcChannelBuffer,
2472     PRPC_MESSAGE pRpcMessage,
2473     DWORD* pdwStubPhase);
2474 HRESULT STDMETHODCALLTYPE IStream_Commit_Proxy(
2475     IStream* This,
2476     DWORD grfCommitFlags);
2477 void __RPC_STUB IStream_Commit_Stub(
2478     IRpcStubBuffer* This,
2479     IRpcChannelBuffer* pRpcChannelBuffer,
2480     PRPC_MESSAGE pRpcMessage,
2481     DWORD* pdwStubPhase);
2482 HRESULT STDMETHODCALLTYPE IStream_Revert_Proxy(
2483     IStream* This);
2484 void __RPC_STUB IStream_Revert_Stub(
2485     IRpcStubBuffer* This,
2486     IRpcChannelBuffer* pRpcChannelBuffer,
2487     PRPC_MESSAGE pRpcMessage,
2488     DWORD* pdwStubPhase);
2489 HRESULT STDMETHODCALLTYPE IStream_LockRegion_Proxy(
2490     IStream* This,
2491     ULARGE_INTEGER libOffset,
2492     ULARGE_INTEGER cb,
2493     DWORD dwLockType);
2494 void __RPC_STUB IStream_LockRegion_Stub(
2495     IRpcStubBuffer* This,
2496     IRpcChannelBuffer* pRpcChannelBuffer,
2497     PRPC_MESSAGE pRpcMessage,
2498     DWORD* pdwStubPhase);
2499 HRESULT STDMETHODCALLTYPE IStream_UnlockRegion_Proxy(
2500     IStream* This,
2501     ULARGE_INTEGER libOffset,
2502     ULARGE_INTEGER cb,
2503     DWORD dwLockType);
2504 void __RPC_STUB IStream_UnlockRegion_Stub(
2505     IRpcStubBuffer* This,
2506     IRpcChannelBuffer* pRpcChannelBuffer,
2507     PRPC_MESSAGE pRpcMessage,
2508     DWORD* pdwStubPhase);
2509 HRESULT STDMETHODCALLTYPE IStream_Stat_Proxy(
2510     IStream* This,
2511     STATSTG *pstatstg,
2512     DWORD grfStatFlag);
2513 void __RPC_STUB IStream_Stat_Stub(
2514     IRpcStubBuffer* This,
2515     IRpcChannelBuffer* pRpcChannelBuffer,
2516     PRPC_MESSAGE pRpcMessage,
2517     DWORD* pdwStubPhase);
2518 HRESULT STDMETHODCALLTYPE IStream_Clone_Proxy(
2519     IStream* This,
2520     IStream **ppstm);
2521 void __RPC_STUB IStream_Clone_Stub(
2522     IRpcStubBuffer* This,
2523     IRpcChannelBuffer* pRpcChannelBuffer,
2524     PRPC_MESSAGE pRpcMessage,
2525     DWORD* pdwStubPhase);
2526 HRESULT CALLBACK IStream_Seek_Proxy(
2527     IStream* This,
2528     LARGE_INTEGER dlibMove,
2529     DWORD dwOrigin,
2530     ULARGE_INTEGER *plibNewPosition);
2531 HRESULT __RPC_STUB IStream_Seek_Stub(
2532     IStream* This,
2533     LARGE_INTEGER dlibMove,
2534     DWORD dwOrigin,
2535     ULARGE_INTEGER *plibNewPosition);
2536 HRESULT CALLBACK IStream_CopyTo_Proxy(
2537     IStream* This,
2538     IStream *pstm,
2539     ULARGE_INTEGER cb,
2540     ULARGE_INTEGER *pcbRead,
2541     ULARGE_INTEGER *pcbWritten);
2542 HRESULT __RPC_STUB IStream_CopyTo_Stub(
2543     IStream* This,
2544     IStream *pstm,
2545     ULARGE_INTEGER cb,
2546     ULARGE_INTEGER *pcbRead,
2547     ULARGE_INTEGER *pcbWritten);
2548 
2549 #endif  /* __IStream_INTERFACE_DEFINED__ */
2550 
2551 
2552 /*****************************************************************************
2553  * IRpcChannelBuffer interface
2554  */
2555 #ifndef __IRpcChannelBuffer_INTERFACE_DEFINED__
2556 #define __IRpcChannelBuffer_INTERFACE_DEFINED__
2557 
2558 typedef ULONG RPCOLEDATAREP;
2559 
2560 typedef struct tagRPCOLEMESSAGE {
2561     void *reserved1;
2562     RPCOLEDATAREP dataRepresentation;
2563     void *Buffer;
2564     ULONG cbBuffer;
2565     ULONG iMethod;
2566     void * reserved2[5];
2567     ULONG rpcFlags;
2568 } RPCOLEMESSAGE;
2569 
2570 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
2571 
2572 DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
2573 #if defined(__cplusplus) && !defined(CINTERFACE)
2574 MIDL_INTERFACE("d5f56b60-593b-101a-b569-08002b2dbf7a")
2575 IRpcChannelBuffer : public IUnknown
2576 {
2577     virtual HRESULT STDMETHODCALLTYPE GetBuffer(
2578         RPCOLEMESSAGE *pMessage,
2579         REFIID riid) = 0;
2580 
2581     virtual HRESULT STDMETHODCALLTYPE SendReceive(
2582         RPCOLEMESSAGE *pMessage,
2583         ULONG *pStatus) = 0;
2584 
2585     virtual HRESULT STDMETHODCALLTYPE FreeBuffer(
2586         RPCOLEMESSAGE *pMessage) = 0;
2587 
2588     virtual HRESULT STDMETHODCALLTYPE GetDestCtx(
2589         DWORD *pdwDestContext,
2590         void **ppvDestContext) = 0;
2591 
2592     virtual HRESULT STDMETHODCALLTYPE IsConnected(
2593         ) = 0;
2594 
2595 };
2596 #ifdef __CRT_UUID_DECL
2597 __CRT_UUID_DECL(IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
2598 #endif
2599 #else
2600 typedef struct IRpcChannelBufferVtbl {
2601     BEGIN_INTERFACE
2602 
2603     /*** IUnknown methods ***/
2604     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2605         IRpcChannelBuffer* This,
2606         REFIID riid,
2607         void **ppvObject);
2608 
2609     ULONG (STDMETHODCALLTYPE *AddRef)(
2610         IRpcChannelBuffer* This);
2611 
2612     ULONG (STDMETHODCALLTYPE *Release)(
2613         IRpcChannelBuffer* This);
2614 
2615     /*** IRpcChannelBuffer methods ***/
2616     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2617         IRpcChannelBuffer* This,
2618         RPCOLEMESSAGE *pMessage,
2619         REFIID riid);
2620 
2621     HRESULT (STDMETHODCALLTYPE *SendReceive)(
2622         IRpcChannelBuffer* This,
2623         RPCOLEMESSAGE *pMessage,
2624         ULONG *pStatus);
2625 
2626     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
2627         IRpcChannelBuffer* This,
2628         RPCOLEMESSAGE *pMessage);
2629 
2630     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
2631         IRpcChannelBuffer* This,
2632         DWORD *pdwDestContext,
2633         void **ppvDestContext);
2634 
2635     HRESULT (STDMETHODCALLTYPE *IsConnected)(
2636         IRpcChannelBuffer* This);
2637 
2638     END_INTERFACE
2639 } IRpcChannelBufferVtbl;
2640 interface IRpcChannelBuffer {
2641     CONST_VTBL IRpcChannelBufferVtbl* lpVtbl;
2642 };
2643 
2644 #ifdef COBJMACROS
2645 #ifndef WIDL_C_INLINE_WRAPPERS
2646 /*** IUnknown methods ***/
2647 #define IRpcChannelBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2648 #define IRpcChannelBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
2649 #define IRpcChannelBuffer_Release(This) (This)->lpVtbl->Release(This)
2650 /*** IRpcChannelBuffer methods ***/
2651 #define IRpcChannelBuffer_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
2652 #define IRpcChannelBuffer_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
2653 #define IRpcChannelBuffer_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
2654 #define IRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
2655 #define IRpcChannelBuffer_IsConnected(This) (This)->lpVtbl->IsConnected(This)
2656 #else
2657 /*** IUnknown methods ***/
2658 static FORCEINLINE HRESULT IRpcChannelBuffer_QueryInterface(IRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
2659     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2660 }
2661 static FORCEINLINE ULONG IRpcChannelBuffer_AddRef(IRpcChannelBuffer* This) {
2662     return This->lpVtbl->AddRef(This);
2663 }
2664 static FORCEINLINE ULONG IRpcChannelBuffer_Release(IRpcChannelBuffer* This) {
2665     return This->lpVtbl->Release(This);
2666 }
2667 /*** IRpcChannelBuffer methods ***/
2668 static FORCEINLINE HRESULT IRpcChannelBuffer_GetBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
2669     return This->lpVtbl->GetBuffer(This,pMessage,riid);
2670 }
2671 static FORCEINLINE HRESULT IRpcChannelBuffer_SendReceive(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
2672     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
2673 }
2674 static FORCEINLINE HRESULT IRpcChannelBuffer_FreeBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
2675     return This->lpVtbl->FreeBuffer(This,pMessage);
2676 }
2677 static FORCEINLINE HRESULT IRpcChannelBuffer_GetDestCtx(IRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
2678     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
2679 }
2680 static FORCEINLINE HRESULT IRpcChannelBuffer_IsConnected(IRpcChannelBuffer* This) {
2681     return This->lpVtbl->IsConnected(This);
2682 }
2683 #endif
2684 #endif
2685 
2686 #endif
2687 
2688 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_GetBuffer_Proxy(
2689     IRpcChannelBuffer* This,
2690     RPCOLEMESSAGE *pMessage,
2691     REFIID riid);
2692 void __RPC_STUB IRpcChannelBuffer_GetBuffer_Stub(
2693     IRpcStubBuffer* This,
2694     IRpcChannelBuffer* pRpcChannelBuffer,
2695     PRPC_MESSAGE pRpcMessage,
2696     DWORD* pdwStubPhase);
2697 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_SendReceive_Proxy(
2698     IRpcChannelBuffer* This,
2699     RPCOLEMESSAGE *pMessage,
2700     ULONG *pStatus);
2701 void __RPC_STUB IRpcChannelBuffer_SendReceive_Stub(
2702     IRpcStubBuffer* This,
2703     IRpcChannelBuffer* pRpcChannelBuffer,
2704     PRPC_MESSAGE pRpcMessage,
2705     DWORD* pdwStubPhase);
2706 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_FreeBuffer_Proxy(
2707     IRpcChannelBuffer* This,
2708     RPCOLEMESSAGE *pMessage);
2709 void __RPC_STUB IRpcChannelBuffer_FreeBuffer_Stub(
2710     IRpcStubBuffer* This,
2711     IRpcChannelBuffer* pRpcChannelBuffer,
2712     PRPC_MESSAGE pRpcMessage,
2713     DWORD* pdwStubPhase);
2714 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_GetDestCtx_Proxy(
2715     IRpcChannelBuffer* This,
2716     DWORD *pdwDestContext,
2717     void **ppvDestContext);
2718 void __RPC_STUB IRpcChannelBuffer_GetDestCtx_Stub(
2719     IRpcStubBuffer* This,
2720     IRpcChannelBuffer* pRpcChannelBuffer,
2721     PRPC_MESSAGE pRpcMessage,
2722     DWORD* pdwStubPhase);
2723 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_IsConnected_Proxy(
2724     IRpcChannelBuffer* This);
2725 void __RPC_STUB IRpcChannelBuffer_IsConnected_Stub(
2726     IRpcStubBuffer* This,
2727     IRpcChannelBuffer* pRpcChannelBuffer,
2728     PRPC_MESSAGE pRpcMessage,
2729     DWORD* pdwStubPhase);
2730 
2731 #endif  /* __IRpcChannelBuffer_INTERFACE_DEFINED__ */
2732 
2733 #endif
2734 
2735 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
2736 /*****************************************************************************
2737  * IRpcChannelBuffer2 interface
2738  */
2739 #ifndef __IRpcChannelBuffer2_INTERFACE_DEFINED__
2740 #define __IRpcChannelBuffer2_INTERFACE_DEFINED__
2741 
2742 DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
2743 #if defined(__cplusplus) && !defined(CINTERFACE)
2744 MIDL_INTERFACE("594f31d0-7f19-11d0-b194-00a0c90dc8bf")
2745 IRpcChannelBuffer2 : public IRpcChannelBuffer
2746 {
2747     virtual HRESULT STDMETHODCALLTYPE GetProtocolVersion(
2748         DWORD *pdwVersion) = 0;
2749 
2750 };
2751 #ifdef __CRT_UUID_DECL
2752 __CRT_UUID_DECL(IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf)
2753 #endif
2754 #else
2755 typedef struct IRpcChannelBuffer2Vtbl {
2756     BEGIN_INTERFACE
2757 
2758     /*** IUnknown methods ***/
2759     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2760         IRpcChannelBuffer2* This,
2761         REFIID riid,
2762         void **ppvObject);
2763 
2764     ULONG (STDMETHODCALLTYPE *AddRef)(
2765         IRpcChannelBuffer2* This);
2766 
2767     ULONG (STDMETHODCALLTYPE *Release)(
2768         IRpcChannelBuffer2* This);
2769 
2770     /*** IRpcChannelBuffer methods ***/
2771     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2772         IRpcChannelBuffer2* This,
2773         RPCOLEMESSAGE *pMessage,
2774         REFIID riid);
2775 
2776     HRESULT (STDMETHODCALLTYPE *SendReceive)(
2777         IRpcChannelBuffer2* This,
2778         RPCOLEMESSAGE *pMessage,
2779         ULONG *pStatus);
2780 
2781     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
2782         IRpcChannelBuffer2* This,
2783         RPCOLEMESSAGE *pMessage);
2784 
2785     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
2786         IRpcChannelBuffer2* This,
2787         DWORD *pdwDestContext,
2788         void **ppvDestContext);
2789 
2790     HRESULT (STDMETHODCALLTYPE *IsConnected)(
2791         IRpcChannelBuffer2* This);
2792 
2793     /*** IRpcChannelBuffer2 methods ***/
2794     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
2795         IRpcChannelBuffer2* This,
2796         DWORD *pdwVersion);
2797 
2798     END_INTERFACE
2799 } IRpcChannelBuffer2Vtbl;
2800 interface IRpcChannelBuffer2 {
2801     CONST_VTBL IRpcChannelBuffer2Vtbl* lpVtbl;
2802 };
2803 
2804 #ifdef COBJMACROS
2805 #ifndef WIDL_C_INLINE_WRAPPERS
2806 /*** IUnknown methods ***/
2807 #define IRpcChannelBuffer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2808 #define IRpcChannelBuffer2_AddRef(This) (This)->lpVtbl->AddRef(This)
2809 #define IRpcChannelBuffer2_Release(This) (This)->lpVtbl->Release(This)
2810 /*** IRpcChannelBuffer methods ***/
2811 #define IRpcChannelBuffer2_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
2812 #define IRpcChannelBuffer2_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
2813 #define IRpcChannelBuffer2_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
2814 #define IRpcChannelBuffer2_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
2815 #define IRpcChannelBuffer2_IsConnected(This) (This)->lpVtbl->IsConnected(This)
2816 /*** IRpcChannelBuffer2 methods ***/
2817 #define IRpcChannelBuffer2_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
2818 #else
2819 /*** IUnknown methods ***/
2820 static FORCEINLINE HRESULT IRpcChannelBuffer2_QueryInterface(IRpcChannelBuffer2* This,REFIID riid,void **ppvObject) {
2821     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2822 }
2823 static FORCEINLINE ULONG IRpcChannelBuffer2_AddRef(IRpcChannelBuffer2* This) {
2824     return This->lpVtbl->AddRef(This);
2825 }
2826 static FORCEINLINE ULONG IRpcChannelBuffer2_Release(IRpcChannelBuffer2* This) {
2827     return This->lpVtbl->Release(This);
2828 }
2829 /*** IRpcChannelBuffer methods ***/
2830 static FORCEINLINE HRESULT IRpcChannelBuffer2_GetBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
2831     return This->lpVtbl->GetBuffer(This,pMessage,riid);
2832 }
2833 static FORCEINLINE HRESULT IRpcChannelBuffer2_SendReceive(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
2834     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
2835 }
2836 static FORCEINLINE HRESULT IRpcChannelBuffer2_FreeBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage) {
2837     return This->lpVtbl->FreeBuffer(This,pMessage);
2838 }
2839 static FORCEINLINE HRESULT IRpcChannelBuffer2_GetDestCtx(IRpcChannelBuffer2* This,DWORD *pdwDestContext,void **ppvDestContext) {
2840     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
2841 }
2842 static FORCEINLINE HRESULT IRpcChannelBuffer2_IsConnected(IRpcChannelBuffer2* This) {
2843     return This->lpVtbl->IsConnected(This);
2844 }
2845 /*** IRpcChannelBuffer2 methods ***/
2846 static FORCEINLINE HRESULT IRpcChannelBuffer2_GetProtocolVersion(IRpcChannelBuffer2* This,DWORD *pdwVersion) {
2847     return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
2848 }
2849 #endif
2850 #endif
2851 
2852 #endif
2853 
2854 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer2_GetProtocolVersion_Proxy(
2855     IRpcChannelBuffer2* This,
2856     DWORD *pdwVersion);
2857 void __RPC_STUB IRpcChannelBuffer2_GetProtocolVersion_Stub(
2858     IRpcStubBuffer* This,
2859     IRpcChannelBuffer* pRpcChannelBuffer,
2860     PRPC_MESSAGE pRpcMessage,
2861     DWORD* pdwStubPhase);
2862 
2863 #endif  /* __IRpcChannelBuffer2_INTERFACE_DEFINED__ */
2864 
2865 
2866 /*****************************************************************************
2867  * IAsyncRpcChannelBuffer interface
2868  */
2869 #ifndef __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__
2870 #define __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__
2871 
2872 DEFINE_GUID(IID_IAsyncRpcChannelBuffer, 0xa5029fb6, 0x3c34, 0x11d1, 0x9c,0x99, 0x00,0xc0,0x4f,0xb9,0x98,0xaa);
2873 #if defined(__cplusplus) && !defined(CINTERFACE)
2874 MIDL_INTERFACE("a5029fb6-3c34-11d1-9c99-00c04fb998aa")
2875 IAsyncRpcChannelBuffer : public IRpcChannelBuffer2
2876 {
2877     virtual HRESULT STDMETHODCALLTYPE Send(
2878         RPCOLEMESSAGE *pMsg,
2879         ISynchronize *pSync,
2880         ULONG *pulStatus) = 0;
2881 
2882     virtual HRESULT STDMETHODCALLTYPE Receive(
2883         RPCOLEMESSAGE *pMsg,
2884         ULONG *pulStatus) = 0;
2885 
2886     virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
2887         RPCOLEMESSAGE *pMsg,
2888         DWORD *pdwDestContext,
2889         void **ppvDestContext) = 0;
2890 
2891 };
2892 #ifdef __CRT_UUID_DECL
2893 __CRT_UUID_DECL(IAsyncRpcChannelBuffer, 0xa5029fb6, 0x3c34, 0x11d1, 0x9c,0x99, 0x00,0xc0,0x4f,0xb9,0x98,0xaa)
2894 #endif
2895 #else
2896 typedef struct IAsyncRpcChannelBufferVtbl {
2897     BEGIN_INTERFACE
2898 
2899     /*** IUnknown methods ***/
2900     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2901         IAsyncRpcChannelBuffer* This,
2902         REFIID riid,
2903         void **ppvObject);
2904 
2905     ULONG (STDMETHODCALLTYPE *AddRef)(
2906         IAsyncRpcChannelBuffer* This);
2907 
2908     ULONG (STDMETHODCALLTYPE *Release)(
2909         IAsyncRpcChannelBuffer* This);
2910 
2911     /*** IRpcChannelBuffer methods ***/
2912     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2913         IAsyncRpcChannelBuffer* This,
2914         RPCOLEMESSAGE *pMessage,
2915         REFIID riid);
2916 
2917     HRESULT (STDMETHODCALLTYPE *SendReceive)(
2918         IAsyncRpcChannelBuffer* This,
2919         RPCOLEMESSAGE *pMessage,
2920         ULONG *pStatus);
2921 
2922     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
2923         IAsyncRpcChannelBuffer* This,
2924         RPCOLEMESSAGE *pMessage);
2925 
2926     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
2927         IAsyncRpcChannelBuffer* This,
2928         DWORD *pdwDestContext,
2929         void **ppvDestContext);
2930 
2931     HRESULT (STDMETHODCALLTYPE *IsConnected)(
2932         IAsyncRpcChannelBuffer* This);
2933 
2934     /*** IRpcChannelBuffer2 methods ***/
2935     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
2936         IAsyncRpcChannelBuffer* This,
2937         DWORD *pdwVersion);
2938 
2939     /*** IAsyncRpcChannelBuffer methods ***/
2940     HRESULT (STDMETHODCALLTYPE *Send)(
2941         IAsyncRpcChannelBuffer* This,
2942         RPCOLEMESSAGE *pMsg,
2943         ISynchronize *pSync,
2944         ULONG *pulStatus);
2945 
2946     HRESULT (STDMETHODCALLTYPE *Receive)(
2947         IAsyncRpcChannelBuffer* This,
2948         RPCOLEMESSAGE *pMsg,
2949         ULONG *pulStatus);
2950 
2951     HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
2952         IAsyncRpcChannelBuffer* This,
2953         RPCOLEMESSAGE *pMsg,
2954         DWORD *pdwDestContext,
2955         void **ppvDestContext);
2956 
2957     END_INTERFACE
2958 } IAsyncRpcChannelBufferVtbl;
2959 interface IAsyncRpcChannelBuffer {
2960     CONST_VTBL IAsyncRpcChannelBufferVtbl* lpVtbl;
2961 };
2962 
2963 #ifdef COBJMACROS
2964 #ifndef WIDL_C_INLINE_WRAPPERS
2965 /*** IUnknown methods ***/
2966 #define IAsyncRpcChannelBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2967 #define IAsyncRpcChannelBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
2968 #define IAsyncRpcChannelBuffer_Release(This) (This)->lpVtbl->Release(This)
2969 /*** IRpcChannelBuffer methods ***/
2970 #define IAsyncRpcChannelBuffer_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
2971 #define IAsyncRpcChannelBuffer_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
2972 #define IAsyncRpcChannelBuffer_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
2973 #define IAsyncRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
2974 #define IAsyncRpcChannelBuffer_IsConnected(This) (This)->lpVtbl->IsConnected(This)
2975 /*** IRpcChannelBuffer2 methods ***/
2976 #define IAsyncRpcChannelBuffer_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
2977 /*** IAsyncRpcChannelBuffer methods ***/
2978 #define IAsyncRpcChannelBuffer_Send(This,pMsg,pSync,pulStatus) (This)->lpVtbl->Send(This,pMsg,pSync,pulStatus)
2979 #define IAsyncRpcChannelBuffer_Receive(This,pMsg,pulStatus) (This)->lpVtbl->Receive(This,pMsg,pulStatus)
2980 #define IAsyncRpcChannelBuffer_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext)
2981 #else
2982 /*** IUnknown methods ***/
2983 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_QueryInterface(IAsyncRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
2984     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2985 }
2986 static FORCEINLINE ULONG IAsyncRpcChannelBuffer_AddRef(IAsyncRpcChannelBuffer* This) {
2987     return This->lpVtbl->AddRef(This);
2988 }
2989 static FORCEINLINE ULONG IAsyncRpcChannelBuffer_Release(IAsyncRpcChannelBuffer* This) {
2990     return This->lpVtbl->Release(This);
2991 }
2992 /*** IRpcChannelBuffer methods ***/
2993 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
2994     return This->lpVtbl->GetBuffer(This,pMessage,riid);
2995 }
2996 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_SendReceive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
2997     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
2998 }
2999 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_FreeBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
3000     return This->lpVtbl->FreeBuffer(This,pMessage);
3001 }
3002 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetDestCtx(IAsyncRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
3003     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
3004 }
3005 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_IsConnected(IAsyncRpcChannelBuffer* This) {
3006     return This->lpVtbl->IsConnected(This);
3007 }
3008 /*** IRpcChannelBuffer2 methods ***/
3009 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetProtocolVersion(IAsyncRpcChannelBuffer* This,DWORD *pdwVersion) {
3010     return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
3011 }
3012 /*** IAsyncRpcChannelBuffer methods ***/
3013 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_Send(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ISynchronize *pSync,ULONG *pulStatus) {
3014     return This->lpVtbl->Send(This,pMsg,pSync,pulStatus);
3015 }
3016 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_Receive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
3017     return This->lpVtbl->Receive(This,pMsg,pulStatus);
3018 }
3019 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetDestCtxEx(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext) {
3020     return This->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext);
3021 }
3022 #endif
3023 #endif
3024 
3025 #endif
3026 
3027 HRESULT STDMETHODCALLTYPE IAsyncRpcChannelBuffer_Send_Proxy(
3028     IAsyncRpcChannelBuffer* This,
3029     RPCOLEMESSAGE *pMsg,
3030     ISynchronize *pSync,
3031     ULONG *pulStatus);
3032 void __RPC_STUB IAsyncRpcChannelBuffer_Send_Stub(
3033     IRpcStubBuffer* This,
3034     IRpcChannelBuffer* pRpcChannelBuffer,
3035     PRPC_MESSAGE pRpcMessage,
3036     DWORD* pdwStubPhase);
3037 HRESULT STDMETHODCALLTYPE IAsyncRpcChannelBuffer_Receive_Proxy(
3038     IAsyncRpcChannelBuffer* This,
3039     RPCOLEMESSAGE *pMsg,
3040     ULONG *pulStatus);
3041 void __RPC_STUB IAsyncRpcChannelBuffer_Receive_Stub(
3042     IRpcStubBuffer* This,
3043     IRpcChannelBuffer* pRpcChannelBuffer,
3044     PRPC_MESSAGE pRpcMessage,
3045     DWORD* pdwStubPhase);
3046 HRESULT STDMETHODCALLTYPE IAsyncRpcChannelBuffer_GetDestCtxEx_Proxy(
3047     IAsyncRpcChannelBuffer* This,
3048     RPCOLEMESSAGE *pMsg,
3049     DWORD *pdwDestContext,
3050     void **ppvDestContext);
3051 void __RPC_STUB IAsyncRpcChannelBuffer_GetDestCtxEx_Stub(
3052     IRpcStubBuffer* This,
3053     IRpcChannelBuffer* pRpcChannelBuffer,
3054     PRPC_MESSAGE pRpcMessage,
3055     DWORD* pdwStubPhase);
3056 
3057 #endif  /* __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__ */
3058 
3059 
3060 /*****************************************************************************
3061  * IRpcChannelBuffer3 interface
3062  */
3063 #ifndef __IRpcChannelBuffer3_INTERFACE_DEFINED__
3064 #define __IRpcChannelBuffer3_INTERFACE_DEFINED__
3065 
3066 DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
3067 #if defined(__cplusplus) && !defined(CINTERFACE)
3068 MIDL_INTERFACE("25b15600-0115-11d0-bf0d-00aa00b8dfd2")
3069 IRpcChannelBuffer3 : public IRpcChannelBuffer2
3070 {
3071     virtual HRESULT STDMETHODCALLTYPE Send(
3072         RPCOLEMESSAGE *pMsg,
3073         ULONG *pulStatus) = 0;
3074 
3075     virtual HRESULT STDMETHODCALLTYPE Receive(
3076         RPCOLEMESSAGE *pMsg,
3077         ULONG ulSize,
3078         ULONG *pulStatus) = 0;
3079 
3080     virtual HRESULT STDMETHODCALLTYPE Cancel(
3081         RPCOLEMESSAGE *pMsg) = 0;
3082 
3083     virtual HRESULT STDMETHODCALLTYPE GetCallContext(
3084         RPCOLEMESSAGE *pMsg,
3085         REFIID riid,
3086         void **pInterface) = 0;
3087 
3088     virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
3089         RPCOLEMESSAGE *pMsg,
3090         DWORD *pdwDestContext,
3091         void **ppvDestContext) = 0;
3092 
3093     virtual HRESULT STDMETHODCALLTYPE GetState(
3094         RPCOLEMESSAGE *pMsg,
3095         DWORD *pState) = 0;
3096 
3097     virtual HRESULT STDMETHODCALLTYPE RegisterAsync(
3098         RPCOLEMESSAGE *pMsg,
3099         IAsyncManager *pAsyncMgr) = 0;
3100 
3101 };
3102 #ifdef __CRT_UUID_DECL
3103 __CRT_UUID_DECL(IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2)
3104 #endif
3105 #else
3106 typedef struct IRpcChannelBuffer3Vtbl {
3107     BEGIN_INTERFACE
3108 
3109     /*** IUnknown methods ***/
3110     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3111         IRpcChannelBuffer3* This,
3112         REFIID riid,
3113         void **ppvObject);
3114 
3115     ULONG (STDMETHODCALLTYPE *AddRef)(
3116         IRpcChannelBuffer3* This);
3117 
3118     ULONG (STDMETHODCALLTYPE *Release)(
3119         IRpcChannelBuffer3* This);
3120 
3121     /*** IRpcChannelBuffer methods ***/
3122     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
3123         IRpcChannelBuffer3* This,
3124         RPCOLEMESSAGE *pMessage,
3125         REFIID riid);
3126 
3127     HRESULT (STDMETHODCALLTYPE *SendReceive)(
3128         IRpcChannelBuffer3* This,
3129         RPCOLEMESSAGE *pMessage,
3130         ULONG *pStatus);
3131 
3132     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
3133         IRpcChannelBuffer3* This,
3134         RPCOLEMESSAGE *pMessage);
3135 
3136     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
3137         IRpcChannelBuffer3* This,
3138         DWORD *pdwDestContext,
3139         void **ppvDestContext);
3140 
3141     HRESULT (STDMETHODCALLTYPE *IsConnected)(
3142         IRpcChannelBuffer3* This);
3143 
3144     /*** IRpcChannelBuffer2 methods ***/
3145     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
3146         IRpcChannelBuffer3* This,
3147         DWORD *pdwVersion);
3148 
3149     /*** IRpcChannelBuffer3 methods ***/
3150     HRESULT (STDMETHODCALLTYPE *Send)(
3151         IRpcChannelBuffer3* This,
3152         RPCOLEMESSAGE *pMsg,
3153         ULONG *pulStatus);
3154 
3155     HRESULT (STDMETHODCALLTYPE *Receive)(
3156         IRpcChannelBuffer3* This,
3157         RPCOLEMESSAGE *pMsg,
3158         ULONG ulSize,
3159         ULONG *pulStatus);
3160 
3161     HRESULT (STDMETHODCALLTYPE *Cancel)(
3162         IRpcChannelBuffer3* This,
3163         RPCOLEMESSAGE *pMsg);
3164 
3165     HRESULT (STDMETHODCALLTYPE *GetCallContext)(
3166         IRpcChannelBuffer3* This,
3167         RPCOLEMESSAGE *pMsg,
3168         REFIID riid,
3169         void **pInterface);
3170 
3171     HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
3172         IRpcChannelBuffer3* This,
3173         RPCOLEMESSAGE *pMsg,
3174         DWORD *pdwDestContext,
3175         void **ppvDestContext);
3176 
3177     HRESULT (STDMETHODCALLTYPE *GetState)(
3178         IRpcChannelBuffer3* This,
3179         RPCOLEMESSAGE *pMsg,
3180         DWORD *pState);
3181 
3182     HRESULT (STDMETHODCALLTYPE *RegisterAsync)(
3183         IRpcChannelBuffer3* This,
3184         RPCOLEMESSAGE *pMsg,
3185         IAsyncManager *pAsyncMgr);
3186 
3187     END_INTERFACE
3188 } IRpcChannelBuffer3Vtbl;
3189 interface IRpcChannelBuffer3 {
3190     CONST_VTBL IRpcChannelBuffer3Vtbl* lpVtbl;
3191 };
3192 
3193 #ifdef COBJMACROS
3194 #ifndef WIDL_C_INLINE_WRAPPERS
3195 /*** IUnknown methods ***/
3196 #define IRpcChannelBuffer3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3197 #define IRpcChannelBuffer3_AddRef(This) (This)->lpVtbl->AddRef(This)
3198 #define IRpcChannelBuffer3_Release(This) (This)->lpVtbl->Release(This)
3199 /*** IRpcChannelBuffer methods ***/
3200 #define IRpcChannelBuffer3_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
3201 #define IRpcChannelBuffer3_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
3202 #define IRpcChannelBuffer3_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
3203 #define IRpcChannelBuffer3_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
3204 #define IRpcChannelBuffer3_IsConnected(This) (This)->lpVtbl->IsConnected(This)
3205 /*** IRpcChannelBuffer2 methods ***/
3206 #define IRpcChannelBuffer3_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
3207 /*** IRpcChannelBuffer3 methods ***/
3208 #define IRpcChannelBuffer3_Send(This,pMsg,pulStatus) (This)->lpVtbl->Send(This,pMsg,pulStatus)
3209 #define IRpcChannelBuffer3_Receive(This,pMsg,ulSize,pulStatus) (This)->lpVtbl->Receive(This,pMsg,ulSize,pulStatus)
3210 #define IRpcChannelBuffer3_Cancel(This,pMsg) (This)->lpVtbl->Cancel(This,pMsg)
3211 #define IRpcChannelBuffer3_GetCallContext(This,pMsg,riid,pInterface) (This)->lpVtbl->GetCallContext(This,pMsg,riid,pInterface)
3212 #define IRpcChannelBuffer3_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext)
3213 #define IRpcChannelBuffer3_GetState(This,pMsg,pState) (This)->lpVtbl->GetState(This,pMsg,pState)
3214 #define IRpcChannelBuffer3_RegisterAsync(This,pMsg,pAsyncMgr) (This)->lpVtbl->RegisterAsync(This,pMsg,pAsyncMgr)
3215 #else
3216 /*** IUnknown methods ***/
3217 static FORCEINLINE HRESULT IRpcChannelBuffer3_QueryInterface(IRpcChannelBuffer3* This,REFIID riid,void **ppvObject) {
3218     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3219 }
3220 static FORCEINLINE ULONG IRpcChannelBuffer3_AddRef(IRpcChannelBuffer3* This) {
3221     return This->lpVtbl->AddRef(This);
3222 }
3223 static FORCEINLINE ULONG IRpcChannelBuffer3_Release(IRpcChannelBuffer3* This) {
3224     return This->lpVtbl->Release(This);
3225 }
3226 /*** IRpcChannelBuffer methods ***/
3227 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
3228     return This->lpVtbl->GetBuffer(This,pMessage,riid);
3229 }
3230 static FORCEINLINE HRESULT IRpcChannelBuffer3_SendReceive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
3231     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
3232 }
3233 static FORCEINLINE HRESULT IRpcChannelBuffer3_FreeBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage) {
3234     return This->lpVtbl->FreeBuffer(This,pMessage);
3235 }
3236 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetDestCtx(IRpcChannelBuffer3* This,DWORD *pdwDestContext,void **ppvDestContext) {
3237     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
3238 }
3239 static FORCEINLINE HRESULT IRpcChannelBuffer3_IsConnected(IRpcChannelBuffer3* This) {
3240     return This->lpVtbl->IsConnected(This);
3241 }
3242 /*** IRpcChannelBuffer2 methods ***/
3243 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetProtocolVersion(IRpcChannelBuffer3* This,DWORD *pdwVersion) {
3244     return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
3245 }
3246 /*** IRpcChannelBuffer3 methods ***/
3247 static FORCEINLINE HRESULT IRpcChannelBuffer3_Send(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
3248     return This->lpVtbl->Send(This,pMsg,pulStatus);
3249 }
3250 static FORCEINLINE HRESULT IRpcChannelBuffer3_Receive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG ulSize,ULONG *pulStatus) {
3251     return This->lpVtbl->Receive(This,pMsg,ulSize,pulStatus);
3252 }
3253 static FORCEINLINE HRESULT IRpcChannelBuffer3_Cancel(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg) {
3254     return This->lpVtbl->Cancel(This,pMsg);
3255 }
3256 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetCallContext(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,REFIID riid,void **pInterface) {
3257     return This->lpVtbl->GetCallContext(This,pMsg,riid,pInterface);
3258 }
3259 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetDestCtxEx(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext) {
3260     return This->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext);
3261 }
3262 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetState(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pState) {
3263     return This->lpVtbl->GetState(This,pMsg,pState);
3264 }
3265 static FORCEINLINE HRESULT IRpcChannelBuffer3_RegisterAsync(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,IAsyncManager *pAsyncMgr) {
3266     return This->lpVtbl->RegisterAsync(This,pMsg,pAsyncMgr);
3267 }
3268 #endif
3269 #endif
3270 
3271 #endif
3272 
3273 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_Send_Proxy(
3274     IRpcChannelBuffer3* This,
3275     RPCOLEMESSAGE *pMsg,
3276     ULONG *pulStatus);
3277 void __RPC_STUB IRpcChannelBuffer3_Send_Stub(
3278     IRpcStubBuffer* This,
3279     IRpcChannelBuffer* pRpcChannelBuffer,
3280     PRPC_MESSAGE pRpcMessage,
3281     DWORD* pdwStubPhase);
3282 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_Receive_Proxy(
3283     IRpcChannelBuffer3* This,
3284     RPCOLEMESSAGE *pMsg,
3285     ULONG ulSize,
3286     ULONG *pulStatus);
3287 void __RPC_STUB IRpcChannelBuffer3_Receive_Stub(
3288     IRpcStubBuffer* This,
3289     IRpcChannelBuffer* pRpcChannelBuffer,
3290     PRPC_MESSAGE pRpcMessage,
3291     DWORD* pdwStubPhase);
3292 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_Cancel_Proxy(
3293     IRpcChannelBuffer3* This,
3294     RPCOLEMESSAGE *pMsg);
3295 void __RPC_STUB IRpcChannelBuffer3_Cancel_Stub(
3296     IRpcStubBuffer* This,
3297     IRpcChannelBuffer* pRpcChannelBuffer,
3298     PRPC_MESSAGE pRpcMessage,
3299     DWORD* pdwStubPhase);
3300 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_GetCallContext_Proxy(
3301     IRpcChannelBuffer3* This,
3302     RPCOLEMESSAGE *pMsg,
3303     REFIID riid,
3304     void **pInterface);
3305 void __RPC_STUB IRpcChannelBuffer3_GetCallContext_Stub(
3306     IRpcStubBuffer* This,
3307     IRpcChannelBuffer* pRpcChannelBuffer,
3308     PRPC_MESSAGE pRpcMessage,
3309     DWORD* pdwStubPhase);
3310 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_GetDestCtxEx_Proxy(
3311     IRpcChannelBuffer3* This,
3312     RPCOLEMESSAGE *pMsg,
3313     DWORD *pdwDestContext,
3314     void **ppvDestContext);
3315 void __RPC_STUB IRpcChannelBuffer3_GetDestCtxEx_Stub(
3316     IRpcStubBuffer* This,
3317     IRpcChannelBuffer* pRpcChannelBuffer,
3318     PRPC_MESSAGE pRpcMessage,
3319     DWORD* pdwStubPhase);
3320 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_GetState_Proxy(
3321     IRpcChannelBuffer3* This,
3322     RPCOLEMESSAGE *pMsg,
3323     DWORD *pState);
3324 void __RPC_STUB IRpcChannelBuffer3_GetState_Stub(
3325     IRpcStubBuffer* This,
3326     IRpcChannelBuffer* pRpcChannelBuffer,
3327     PRPC_MESSAGE pRpcMessage,
3328     DWORD* pdwStubPhase);
3329 HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_RegisterAsync_Proxy(
3330     IRpcChannelBuffer3* This,
3331     RPCOLEMESSAGE *pMsg,
3332     IAsyncManager *pAsyncMgr);
3333 void __RPC_STUB IRpcChannelBuffer3_RegisterAsync_Stub(
3334     IRpcStubBuffer* This,
3335     IRpcChannelBuffer* pRpcChannelBuffer,
3336     PRPC_MESSAGE pRpcMessage,
3337     DWORD* pdwStubPhase);
3338 
3339 #endif  /* __IRpcChannelBuffer3_INTERFACE_DEFINED__ */
3340 
3341 
3342 /*****************************************************************************
3343  * IRpcSyntaxNegotiate interface
3344  */
3345 #ifndef __IRpcSyntaxNegotiate_INTERFACE_DEFINED__
3346 #define __IRpcSyntaxNegotiate_INTERFACE_DEFINED__
3347 
3348 DEFINE_GUID(IID_IRpcSyntaxNegotiate, 0x58a08519, 0x24c8, 0x4935, 0xb4,0x82, 0x3f,0xd8,0x23,0x33,0x3a,0x4f);
3349 #if defined(__cplusplus) && !defined(CINTERFACE)
3350 MIDL_INTERFACE("58a08519-24c8-4935-b482-3fd823333a4f")
3351 IRpcSyntaxNegotiate : public IUnknown
3352 {
3353     virtual HRESULT STDMETHODCALLTYPE NegotiateSyntax(
3354         RPCOLEMESSAGE *pMsg) = 0;
3355 
3356 };
3357 #ifdef __CRT_UUID_DECL
3358 __CRT_UUID_DECL(IRpcSyntaxNegotiate, 0x58a08519, 0x24c8, 0x4935, 0xb4,0x82, 0x3f,0xd8,0x23,0x33,0x3a,0x4f)
3359 #endif
3360 #else
3361 typedef struct IRpcSyntaxNegotiateVtbl {
3362     BEGIN_INTERFACE
3363 
3364     /*** IUnknown methods ***/
3365     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3366         IRpcSyntaxNegotiate* This,
3367         REFIID riid,
3368         void **ppvObject);
3369 
3370     ULONG (STDMETHODCALLTYPE *AddRef)(
3371         IRpcSyntaxNegotiate* This);
3372 
3373     ULONG (STDMETHODCALLTYPE *Release)(
3374         IRpcSyntaxNegotiate* This);
3375 
3376     /*** IRpcSyntaxNegotiate methods ***/
3377     HRESULT (STDMETHODCALLTYPE *NegotiateSyntax)(
3378         IRpcSyntaxNegotiate* This,
3379         RPCOLEMESSAGE *pMsg);
3380 
3381     END_INTERFACE
3382 } IRpcSyntaxNegotiateVtbl;
3383 interface IRpcSyntaxNegotiate {
3384     CONST_VTBL IRpcSyntaxNegotiateVtbl* lpVtbl;
3385 };
3386 
3387 #ifdef COBJMACROS
3388 #ifndef WIDL_C_INLINE_WRAPPERS
3389 /*** IUnknown methods ***/
3390 #define IRpcSyntaxNegotiate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3391 #define IRpcSyntaxNegotiate_AddRef(This) (This)->lpVtbl->AddRef(This)
3392 #define IRpcSyntaxNegotiate_Release(This) (This)->lpVtbl->Release(This)
3393 /*** IRpcSyntaxNegotiate methods ***/
3394 #define IRpcSyntaxNegotiate_NegotiateSyntax(This,pMsg) (This)->lpVtbl->NegotiateSyntax(This,pMsg)
3395 #else
3396 /*** IUnknown methods ***/
3397 static FORCEINLINE HRESULT IRpcSyntaxNegotiate_QueryInterface(IRpcSyntaxNegotiate* This,REFIID riid,void **ppvObject) {
3398     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3399 }
3400 static FORCEINLINE ULONG IRpcSyntaxNegotiate_AddRef(IRpcSyntaxNegotiate* This) {
3401     return This->lpVtbl->AddRef(This);
3402 }
3403 static FORCEINLINE ULONG IRpcSyntaxNegotiate_Release(IRpcSyntaxNegotiate* This) {
3404     return This->lpVtbl->Release(This);
3405 }
3406 /*** IRpcSyntaxNegotiate methods ***/
3407 static FORCEINLINE HRESULT IRpcSyntaxNegotiate_NegotiateSyntax(IRpcSyntaxNegotiate* This,RPCOLEMESSAGE *pMsg) {
3408     return This->lpVtbl->NegotiateSyntax(This,pMsg);
3409 }
3410 #endif
3411 #endif
3412 
3413 #endif
3414 
3415 HRESULT STDMETHODCALLTYPE IRpcSyntaxNegotiate_NegotiateSyntax_Proxy(
3416     IRpcSyntaxNegotiate* This,
3417     RPCOLEMESSAGE *pMsg);
3418 void __RPC_STUB IRpcSyntaxNegotiate_NegotiateSyntax_Stub(
3419     IRpcStubBuffer* This,
3420     IRpcChannelBuffer* pRpcChannelBuffer,
3421     PRPC_MESSAGE pRpcMessage,
3422     DWORD* pdwStubPhase);
3423 
3424 #endif  /* __IRpcSyntaxNegotiate_INTERFACE_DEFINED__ */
3425 
3426 
3427 /*****************************************************************************
3428  * IRpcProxyBuffer interface
3429  */
3430 #ifndef __IRpcProxyBuffer_INTERFACE_DEFINED__
3431 #define __IRpcProxyBuffer_INTERFACE_DEFINED__
3432 
3433 DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
3434 #if defined(__cplusplus) && !defined(CINTERFACE)
3435 MIDL_INTERFACE("d5f56a34-593b-101a-b569-08002b2dbf7a")
3436 IRpcProxyBuffer : public IUnknown
3437 {
3438     virtual HRESULT STDMETHODCALLTYPE Connect(
3439         IRpcChannelBuffer *pRpcChannelBuffer) = 0;
3440 
3441     virtual void STDMETHODCALLTYPE Disconnect(
3442         ) = 0;
3443 
3444 };
3445 #ifdef __CRT_UUID_DECL
3446 __CRT_UUID_DECL(IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
3447 #endif
3448 #else
3449 typedef struct IRpcProxyBufferVtbl {
3450     BEGIN_INTERFACE
3451 
3452     /*** IUnknown methods ***/
3453     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3454         IRpcProxyBuffer* This,
3455         REFIID riid,
3456         void **ppvObject);
3457 
3458     ULONG (STDMETHODCALLTYPE *AddRef)(
3459         IRpcProxyBuffer* This);
3460 
3461     ULONG (STDMETHODCALLTYPE *Release)(
3462         IRpcProxyBuffer* This);
3463 
3464     /*** IRpcProxyBuffer methods ***/
3465     HRESULT (STDMETHODCALLTYPE *Connect)(
3466         IRpcProxyBuffer* This,
3467         IRpcChannelBuffer *pRpcChannelBuffer);
3468 
3469     void (STDMETHODCALLTYPE *Disconnect)(
3470         IRpcProxyBuffer* This);
3471 
3472     END_INTERFACE
3473 } IRpcProxyBufferVtbl;
3474 interface IRpcProxyBuffer {
3475     CONST_VTBL IRpcProxyBufferVtbl* lpVtbl;
3476 };
3477 
3478 #ifdef COBJMACROS
3479 #ifndef WIDL_C_INLINE_WRAPPERS
3480 /*** IUnknown methods ***/
3481 #define IRpcProxyBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3482 #define IRpcProxyBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
3483 #define IRpcProxyBuffer_Release(This) (This)->lpVtbl->Release(This)
3484 /*** IRpcProxyBuffer methods ***/
3485 #define IRpcProxyBuffer_Connect(This,pRpcChannelBuffer) (This)->lpVtbl->Connect(This,pRpcChannelBuffer)
3486 #define IRpcProxyBuffer_Disconnect(This) (This)->lpVtbl->Disconnect(This)
3487 #else
3488 /*** IUnknown methods ***/
3489 static FORCEINLINE HRESULT IRpcProxyBuffer_QueryInterface(IRpcProxyBuffer* This,REFIID riid,void **ppvObject) {
3490     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3491 }
3492 static FORCEINLINE ULONG IRpcProxyBuffer_AddRef(IRpcProxyBuffer* This) {
3493     return This->lpVtbl->AddRef(This);
3494 }
3495 static FORCEINLINE ULONG IRpcProxyBuffer_Release(IRpcProxyBuffer* This) {
3496     return This->lpVtbl->Release(This);
3497 }
3498 /*** IRpcProxyBuffer methods ***/
3499 static FORCEINLINE HRESULT IRpcProxyBuffer_Connect(IRpcProxyBuffer* This,IRpcChannelBuffer *pRpcChannelBuffer) {
3500     return This->lpVtbl->Connect(This,pRpcChannelBuffer);
3501 }
3502 static FORCEINLINE void IRpcProxyBuffer_Disconnect(IRpcProxyBuffer* This) {
3503     This->lpVtbl->Disconnect(This);
3504 }
3505 #endif
3506 #endif
3507 
3508 #endif
3509 
3510 HRESULT STDMETHODCALLTYPE IRpcProxyBuffer_Connect_Proxy(
3511     IRpcProxyBuffer* This,
3512     IRpcChannelBuffer *pRpcChannelBuffer);
3513 void __RPC_STUB IRpcProxyBuffer_Connect_Stub(
3514     IRpcStubBuffer* This,
3515     IRpcChannelBuffer* pRpcChannelBuffer,
3516     PRPC_MESSAGE pRpcMessage,
3517     DWORD* pdwStubPhase);
3518 void STDMETHODCALLTYPE IRpcProxyBuffer_Disconnect_Proxy(
3519     IRpcProxyBuffer* This);
3520 void __RPC_STUB IRpcProxyBuffer_Disconnect_Stub(
3521     IRpcStubBuffer* This,
3522     IRpcChannelBuffer* pRpcChannelBuffer,
3523     PRPC_MESSAGE pRpcMessage,
3524     DWORD* pdwStubPhase);
3525 
3526 #endif  /* __IRpcProxyBuffer_INTERFACE_DEFINED__ */
3527 
3528 #endif
3529 
3530 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
3531 /*****************************************************************************
3532  * IRpcStubBuffer interface
3533  */
3534 #ifndef __IRpcStubBuffer_INTERFACE_DEFINED__
3535 #define __IRpcStubBuffer_INTERFACE_DEFINED__
3536 
3537 DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
3538 #if defined(__cplusplus) && !defined(CINTERFACE)
3539 MIDL_INTERFACE("d5f56afc-593b-101a-b569-08002b2dbf7a")
3540 IRpcStubBuffer : public IUnknown
3541 {
3542     virtual HRESULT STDMETHODCALLTYPE Connect(
3543         IUnknown *pUnkServer) = 0;
3544 
3545     virtual void STDMETHODCALLTYPE Disconnect(
3546         ) = 0;
3547 
3548     virtual HRESULT STDMETHODCALLTYPE Invoke(
3549         RPCOLEMESSAGE *_prpcmsg,
3550         IRpcChannelBuffer *_pRpcChannelBuffer) = 0;
3551 
3552     virtual IRpcStubBuffer * STDMETHODCALLTYPE IsIIDSupported(
3553         REFIID riid) = 0;
3554 
3555     virtual ULONG STDMETHODCALLTYPE CountRefs(
3556         ) = 0;
3557 
3558     virtual HRESULT STDMETHODCALLTYPE DebugServerQueryInterface(
3559         void **ppv) = 0;
3560 
3561     virtual void STDMETHODCALLTYPE DebugServerRelease(
3562         void *pv) = 0;
3563 
3564 };
3565 #ifdef __CRT_UUID_DECL
3566 __CRT_UUID_DECL(IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
3567 #endif
3568 #else
3569 typedef struct IRpcStubBufferVtbl {
3570     BEGIN_INTERFACE
3571 
3572     /*** IUnknown methods ***/
3573     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3574         IRpcStubBuffer* This,
3575         REFIID riid,
3576         void **ppvObject);
3577 
3578     ULONG (STDMETHODCALLTYPE *AddRef)(
3579         IRpcStubBuffer* This);
3580 
3581     ULONG (STDMETHODCALLTYPE *Release)(
3582         IRpcStubBuffer* This);
3583 
3584     /*** IRpcStubBuffer methods ***/
3585     HRESULT (STDMETHODCALLTYPE *Connect)(
3586         IRpcStubBuffer* This,
3587         IUnknown *pUnkServer);
3588 
3589     void (STDMETHODCALLTYPE *Disconnect)(
3590         IRpcStubBuffer* This);
3591 
3592     HRESULT (STDMETHODCALLTYPE *Invoke)(
3593         IRpcStubBuffer* This,
3594         RPCOLEMESSAGE *_prpcmsg,
3595         IRpcChannelBuffer *_pRpcChannelBuffer);
3596 
3597     IRpcStubBuffer * (STDMETHODCALLTYPE *IsIIDSupported)(
3598         IRpcStubBuffer* This,
3599         REFIID riid);
3600 
3601     ULONG (STDMETHODCALLTYPE *CountRefs)(
3602         IRpcStubBuffer* This);
3603 
3604     HRESULT (STDMETHODCALLTYPE *DebugServerQueryInterface)(
3605         IRpcStubBuffer* This,
3606         void **ppv);
3607 
3608     void (STDMETHODCALLTYPE *DebugServerRelease)(
3609         IRpcStubBuffer* This,
3610         void *pv);
3611 
3612     END_INTERFACE
3613 } IRpcStubBufferVtbl;
3614 interface IRpcStubBuffer {
3615     CONST_VTBL IRpcStubBufferVtbl* lpVtbl;
3616 };
3617 
3618 #ifdef COBJMACROS
3619 #ifndef WIDL_C_INLINE_WRAPPERS
3620 /*** IUnknown methods ***/
3621 #define IRpcStubBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3622 #define IRpcStubBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
3623 #define IRpcStubBuffer_Release(This) (This)->lpVtbl->Release(This)
3624 /*** IRpcStubBuffer methods ***/
3625 #define IRpcStubBuffer_Connect(This,pUnkServer) (This)->lpVtbl->Connect(This,pUnkServer)
3626 #define IRpcStubBuffer_Disconnect(This) (This)->lpVtbl->Disconnect(This)
3627 #define IRpcStubBuffer_Invoke(This,_prpcmsg,_pRpcChannelBuffer) (This)->lpVtbl->Invoke(This,_prpcmsg,_pRpcChannelBuffer)
3628 #define IRpcStubBuffer_IsIIDSupported(This,riid) (This)->lpVtbl->IsIIDSupported(This,riid)
3629 #define IRpcStubBuffer_CountRefs(This) (This)->lpVtbl->CountRefs(This)
3630 #define IRpcStubBuffer_DebugServerQueryInterface(This,ppv) (This)->lpVtbl->DebugServerQueryInterface(This,ppv)
3631 #define IRpcStubBuffer_DebugServerRelease(This,pv) (This)->lpVtbl->DebugServerRelease(This,pv)
3632 #else
3633 /*** IUnknown methods ***/
3634 static FORCEINLINE HRESULT IRpcStubBuffer_QueryInterface(IRpcStubBuffer* This,REFIID riid,void **ppvObject) {
3635     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3636 }
3637 static FORCEINLINE ULONG IRpcStubBuffer_AddRef(IRpcStubBuffer* This) {
3638     return This->lpVtbl->AddRef(This);
3639 }
3640 static FORCEINLINE ULONG IRpcStubBuffer_Release(IRpcStubBuffer* This) {
3641     return This->lpVtbl->Release(This);
3642 }
3643 /*** IRpcStubBuffer methods ***/
3644 static FORCEINLINE HRESULT IRpcStubBuffer_Connect(IRpcStubBuffer* This,IUnknown *pUnkServer) {
3645     return This->lpVtbl->Connect(This,pUnkServer);
3646 }
3647 static FORCEINLINE void IRpcStubBuffer_Disconnect(IRpcStubBuffer* This) {
3648     This->lpVtbl->Disconnect(This);
3649 }
3650 static FORCEINLINE HRESULT IRpcStubBuffer_Invoke(IRpcStubBuffer* This,RPCOLEMESSAGE *_prpcmsg,IRpcChannelBuffer *_pRpcChannelBuffer) {
3651     return This->lpVtbl->Invoke(This,_prpcmsg,_pRpcChannelBuffer);
3652 }
3653 static FORCEINLINE IRpcStubBuffer * IRpcStubBuffer_IsIIDSupported(IRpcStubBuffer* This,REFIID riid) {
3654     return This->lpVtbl->IsIIDSupported(This,riid);
3655 }
3656 static FORCEINLINE ULONG IRpcStubBuffer_CountRefs(IRpcStubBuffer* This) {
3657     return This->lpVtbl->CountRefs(This);
3658 }
3659 static FORCEINLINE HRESULT IRpcStubBuffer_DebugServerQueryInterface(IRpcStubBuffer* This,void **ppv) {
3660     return This->lpVtbl->DebugServerQueryInterface(This,ppv);
3661 }
3662 static FORCEINLINE void IRpcStubBuffer_DebugServerRelease(IRpcStubBuffer* This,void *pv) {
3663     This->lpVtbl->DebugServerRelease(This,pv);
3664 }
3665 #endif
3666 #endif
3667 
3668 #endif
3669 
3670 HRESULT STDMETHODCALLTYPE IRpcStubBuffer_Connect_Proxy(
3671     IRpcStubBuffer* This,
3672     IUnknown *pUnkServer);
3673 void __RPC_STUB IRpcStubBuffer_Connect_Stub(
3674     IRpcStubBuffer* This,
3675     IRpcChannelBuffer* pRpcChannelBuffer,
3676     PRPC_MESSAGE pRpcMessage,
3677     DWORD* pdwStubPhase);
3678 void STDMETHODCALLTYPE IRpcStubBuffer_Disconnect_Proxy(
3679     IRpcStubBuffer* This);
3680 void __RPC_STUB IRpcStubBuffer_Disconnect_Stub(
3681     IRpcStubBuffer* This,
3682     IRpcChannelBuffer* pRpcChannelBuffer,
3683     PRPC_MESSAGE pRpcMessage,
3684     DWORD* pdwStubPhase);
3685 HRESULT STDMETHODCALLTYPE IRpcStubBuffer_Invoke_Proxy(
3686     IRpcStubBuffer* This,
3687     RPCOLEMESSAGE *_prpcmsg,
3688     IRpcChannelBuffer *_pRpcChannelBuffer);
3689 void __RPC_STUB IRpcStubBuffer_Invoke_Stub(
3690     IRpcStubBuffer* This,
3691     IRpcChannelBuffer* pRpcChannelBuffer,
3692     PRPC_MESSAGE pRpcMessage,
3693     DWORD* pdwStubPhase);
3694 IRpcStubBuffer * STDMETHODCALLTYPE IRpcStubBuffer_IsIIDSupported_Proxy(
3695     IRpcStubBuffer* This,
3696     REFIID riid);
3697 void __RPC_STUB IRpcStubBuffer_IsIIDSupported_Stub(
3698     IRpcStubBuffer* This,
3699     IRpcChannelBuffer* pRpcChannelBuffer,
3700     PRPC_MESSAGE pRpcMessage,
3701     DWORD* pdwStubPhase);
3702 ULONG STDMETHODCALLTYPE IRpcStubBuffer_CountRefs_Proxy(
3703     IRpcStubBuffer* This);
3704 void __RPC_STUB IRpcStubBuffer_CountRefs_Stub(
3705     IRpcStubBuffer* This,
3706     IRpcChannelBuffer* pRpcChannelBuffer,
3707     PRPC_MESSAGE pRpcMessage,
3708     DWORD* pdwStubPhase);
3709 HRESULT STDMETHODCALLTYPE IRpcStubBuffer_DebugServerQueryInterface_Proxy(
3710     IRpcStubBuffer* This,
3711     void **ppv);
3712 void __RPC_STUB IRpcStubBuffer_DebugServerQueryInterface_Stub(
3713     IRpcStubBuffer* This,
3714     IRpcChannelBuffer* pRpcChannelBuffer,
3715     PRPC_MESSAGE pRpcMessage,
3716     DWORD* pdwStubPhase);
3717 void STDMETHODCALLTYPE IRpcStubBuffer_DebugServerRelease_Proxy(
3718     IRpcStubBuffer* This,
3719     void *pv);
3720 void __RPC_STUB IRpcStubBuffer_DebugServerRelease_Stub(
3721     IRpcStubBuffer* This,
3722     IRpcChannelBuffer* pRpcChannelBuffer,
3723     PRPC_MESSAGE pRpcMessage,
3724     DWORD* pdwStubPhase);
3725 
3726 #endif  /* __IRpcStubBuffer_INTERFACE_DEFINED__ */
3727 
3728 
3729 /*****************************************************************************
3730  * IPSFactoryBuffer interface
3731  */
3732 #ifndef __IPSFactoryBuffer_INTERFACE_DEFINED__
3733 #define __IPSFactoryBuffer_INTERFACE_DEFINED__
3734 
3735 DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
3736 #if defined(__cplusplus) && !defined(CINTERFACE)
3737 MIDL_INTERFACE("d5f569d0-593b-101a-b569-08002b2dbf7a")
3738 IPSFactoryBuffer : public IUnknown
3739 {
3740     virtual HRESULT STDMETHODCALLTYPE CreateProxy(
3741         IUnknown *pUnkOuter,
3742         REFIID riid,
3743         IRpcProxyBuffer **ppProxy,
3744         void **ppv) = 0;
3745 
3746     virtual HRESULT STDMETHODCALLTYPE CreateStub(
3747         REFIID riid,
3748         IUnknown *pUnkServer,
3749         IRpcStubBuffer **ppStub) = 0;
3750 
3751 };
3752 #ifdef __CRT_UUID_DECL
3753 __CRT_UUID_DECL(IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
3754 #endif
3755 #else
3756 typedef struct IPSFactoryBufferVtbl {
3757     BEGIN_INTERFACE
3758 
3759     /*** IUnknown methods ***/
3760     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3761         IPSFactoryBuffer* This,
3762         REFIID riid,
3763         void **ppvObject);
3764 
3765     ULONG (STDMETHODCALLTYPE *AddRef)(
3766         IPSFactoryBuffer* This);
3767 
3768     ULONG (STDMETHODCALLTYPE *Release)(
3769         IPSFactoryBuffer* This);
3770 
3771     /*** IPSFactoryBuffer methods ***/
3772     HRESULT (STDMETHODCALLTYPE *CreateProxy)(
3773         IPSFactoryBuffer* This,
3774         IUnknown *pUnkOuter,
3775         REFIID riid,
3776         IRpcProxyBuffer **ppProxy,
3777         void **ppv);
3778 
3779     HRESULT (STDMETHODCALLTYPE *CreateStub)(
3780         IPSFactoryBuffer* This,
3781         REFIID riid,
3782         IUnknown *pUnkServer,
3783         IRpcStubBuffer **ppStub);
3784 
3785     END_INTERFACE
3786 } IPSFactoryBufferVtbl;
3787 interface IPSFactoryBuffer {
3788     CONST_VTBL IPSFactoryBufferVtbl* lpVtbl;
3789 };
3790 
3791 #ifdef COBJMACROS
3792 #ifndef WIDL_C_INLINE_WRAPPERS
3793 /*** IUnknown methods ***/
3794 #define IPSFactoryBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3795 #define IPSFactoryBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
3796 #define IPSFactoryBuffer_Release(This) (This)->lpVtbl->Release(This)
3797 /*** IPSFactoryBuffer methods ***/
3798 #define IPSFactoryBuffer_CreateProxy(This,pUnkOuter,riid,ppProxy,ppv) (This)->lpVtbl->CreateProxy(This,pUnkOuter,riid,ppProxy,ppv)
3799 #define IPSFactoryBuffer_CreateStub(This,riid,pUnkServer,ppStub) (This)->lpVtbl->CreateStub(This,riid,pUnkServer,ppStub)
3800 #else
3801 /*** IUnknown methods ***/
3802 static FORCEINLINE HRESULT IPSFactoryBuffer_QueryInterface(IPSFactoryBuffer* This,REFIID riid,void **ppvObject) {
3803     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3804 }
3805 static FORCEINLINE ULONG IPSFactoryBuffer_AddRef(IPSFactoryBuffer* This) {
3806     return This->lpVtbl->AddRef(This);
3807 }
3808 static FORCEINLINE ULONG IPSFactoryBuffer_Release(IPSFactoryBuffer* This) {
3809     return This->lpVtbl->Release(This);
3810 }
3811 /*** IPSFactoryBuffer methods ***/
3812 static FORCEINLINE HRESULT IPSFactoryBuffer_CreateProxy(IPSFactoryBuffer* This,IUnknown *pUnkOuter,REFIID riid,IRpcProxyBuffer **ppProxy,void **ppv) {
3813     return This->lpVtbl->CreateProxy(This,pUnkOuter,riid,ppProxy,ppv);
3814 }
3815 static FORCEINLINE HRESULT IPSFactoryBuffer_CreateStub(IPSFactoryBuffer* This,REFIID riid,IUnknown *pUnkServer,IRpcStubBuffer **ppStub) {
3816     return This->lpVtbl->CreateStub(This,riid,pUnkServer,ppStub);
3817 }
3818 #endif
3819 #endif
3820 
3821 #endif
3822 
3823 HRESULT STDMETHODCALLTYPE IPSFactoryBuffer_CreateProxy_Proxy(
3824     IPSFactoryBuffer* This,
3825     IUnknown *pUnkOuter,
3826     REFIID riid,
3827     IRpcProxyBuffer **ppProxy,
3828     void **ppv);
3829 void __RPC_STUB IPSFactoryBuffer_CreateProxy_Stub(
3830     IRpcStubBuffer* This,
3831     IRpcChannelBuffer* pRpcChannelBuffer,
3832     PRPC_MESSAGE pRpcMessage,
3833     DWORD* pdwStubPhase);
3834 HRESULT STDMETHODCALLTYPE IPSFactoryBuffer_CreateStub_Proxy(
3835     IPSFactoryBuffer* This,
3836     REFIID riid,
3837     IUnknown *pUnkServer,
3838     IRpcStubBuffer **ppStub);
3839 void __RPC_STUB IPSFactoryBuffer_CreateStub_Stub(
3840     IRpcStubBuffer* This,
3841     IRpcChannelBuffer* pRpcChannelBuffer,
3842     PRPC_MESSAGE pRpcMessage,
3843     DWORD* pdwStubPhase);
3844 
3845 #endif  /* __IPSFactoryBuffer_INTERFACE_DEFINED__ */
3846 
3847 #endif
3848 
3849 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
3850 #if  (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)
3851 typedef struct SChannelHookCallInfo {
3852     IID iid;
3853     DWORD cbSize;
3854     GUID uCausality;
3855     DWORD dwServerPid;
3856     DWORD iMethod;
3857     void *pObject;
3858 } SChannelHookCallInfo;
3859 
3860 /*****************************************************************************
3861  * IChannelHook interface
3862  */
3863 #ifndef __IChannelHook_INTERFACE_DEFINED__
3864 #define __IChannelHook_INTERFACE_DEFINED__
3865 
3866 DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
3867 #if defined(__cplusplus) && !defined(CINTERFACE)
3868 MIDL_INTERFACE("1008c4a0-7613-11cf-9af1-0020af6e72f4")
3869 IChannelHook : public IUnknown
3870 {
3871     virtual void STDMETHODCALLTYPE ClientGetSize(
3872         REFGUID uExtent,
3873         REFIID riid,
3874         ULONG *pDataSize) = 0;
3875 
3876     virtual void STDMETHODCALLTYPE ClientFillBuffer(
3877         REFGUID uExtent,
3878         REFIID riid,
3879         ULONG *pDataSize,
3880         void *pDataBuffer) = 0;
3881 
3882     virtual void STDMETHODCALLTYPE ClientNotify(
3883         REFGUID uExtent,
3884         REFIID riid,
3885         ULONG cbDataSize,
3886         void *pDataBuffer,
3887         DWORD lDataRep,
3888         HRESULT hrFault) = 0;
3889 
3890     virtual void STDMETHODCALLTYPE ServerNotify(
3891         REFGUID uExtent,
3892         REFIID riid,
3893         ULONG cbDataSize,
3894         void *pDataBuffer,
3895         DWORD lDataRep) = 0;
3896 
3897     virtual void STDMETHODCALLTYPE ServerGetSize(
3898         REFGUID uExtent,
3899         REFIID riid,
3900         HRESULT hrFault,
3901         ULONG *pDataSize) = 0;
3902 
3903     virtual void STDMETHODCALLTYPE ServerFillBuffer(
3904         REFGUID uExtent,
3905         REFIID riid,
3906         ULONG *pDataSize,
3907         void *pDataBuffer,
3908         HRESULT hrFault) = 0;
3909 
3910 };
3911 #ifdef __CRT_UUID_DECL
3912 __CRT_UUID_DECL(IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4)
3913 #endif
3914 #else
3915 typedef struct IChannelHookVtbl {
3916     BEGIN_INTERFACE
3917 
3918     /*** IUnknown methods ***/
3919     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3920         IChannelHook* This,
3921         REFIID riid,
3922         void **ppvObject);
3923 
3924     ULONG (STDMETHODCALLTYPE *AddRef)(
3925         IChannelHook* This);
3926 
3927     ULONG (STDMETHODCALLTYPE *Release)(
3928         IChannelHook* This);
3929 
3930     /*** IChannelHook methods ***/
3931     void (STDMETHODCALLTYPE *ClientGetSize)(
3932         IChannelHook* This,
3933         REFGUID uExtent,
3934         REFIID riid,
3935         ULONG *pDataSize);
3936 
3937     void (STDMETHODCALLTYPE *ClientFillBuffer)(
3938         IChannelHook* This,
3939         REFGUID uExtent,
3940         REFIID riid,
3941         ULONG *pDataSize,
3942         void *pDataBuffer);
3943 
3944     void (STDMETHODCALLTYPE *ClientNotify)(
3945         IChannelHook* This,
3946         REFGUID uExtent,
3947         REFIID riid,
3948         ULONG cbDataSize,
3949         void *pDataBuffer,
3950         DWORD lDataRep,
3951         HRESULT hrFault);
3952 
3953     void (STDMETHODCALLTYPE *ServerNotify)(
3954         IChannelHook* This,
3955         REFGUID uExtent,
3956         REFIID riid,
3957         ULONG cbDataSize,
3958         void *pDataBuffer,
3959         DWORD lDataRep);
3960 
3961     void (STDMETHODCALLTYPE *ServerGetSize)(
3962         IChannelHook* This,
3963         REFGUID uExtent,
3964         REFIID riid,
3965         HRESULT hrFault,
3966         ULONG *pDataSize);
3967 
3968     void (STDMETHODCALLTYPE *ServerFillBuffer)(
3969         IChannelHook* This,
3970         REFGUID uExtent,
3971         REFIID riid,
3972         ULONG *pDataSize,
3973         void *pDataBuffer,
3974         HRESULT hrFault);
3975 
3976     END_INTERFACE
3977 } IChannelHookVtbl;
3978 interface IChannelHook {
3979     CONST_VTBL IChannelHookVtbl* lpVtbl;
3980 };
3981 
3982 #ifdef COBJMACROS
3983 #ifndef WIDL_C_INLINE_WRAPPERS
3984 /*** IUnknown methods ***/
3985 #define IChannelHook_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3986 #define IChannelHook_AddRef(This) (This)->lpVtbl->AddRef(This)
3987 #define IChannelHook_Release(This) (This)->lpVtbl->Release(This)
3988 /*** IChannelHook methods ***/
3989 #define IChannelHook_ClientGetSize(This,uExtent,riid,pDataSize) (This)->lpVtbl->ClientGetSize(This,uExtent,riid,pDataSize)
3990 #define IChannelHook_ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer) (This)->lpVtbl->ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer)
3991 #define IChannelHook_ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault) (This)->lpVtbl->ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault)
3992 #define IChannelHook_ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep) (This)->lpVtbl->ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep)
3993 #define IChannelHook_ServerGetSize(This,uExtent,riid,hrFault,pDataSize) (This)->lpVtbl->ServerGetSize(This,uExtent,riid,hrFault,pDataSize)
3994 #define IChannelHook_ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault) (This)->lpVtbl->ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault)
3995 #else
3996 /*** IUnknown methods ***/
3997 static FORCEINLINE HRESULT IChannelHook_QueryInterface(IChannelHook* This,REFIID riid,void **ppvObject) {
3998     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3999 }
4000 static FORCEINLINE ULONG IChannelHook_AddRef(IChannelHook* This) {
4001     return This->lpVtbl->AddRef(This);
4002 }
4003 static FORCEINLINE ULONG IChannelHook_Release(IChannelHook* This) {
4004     return This->lpVtbl->Release(This);
4005 }
4006 /*** IChannelHook methods ***/
4007 static FORCEINLINE void IChannelHook_ClientGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize) {
4008     This->lpVtbl->ClientGetSize(This,uExtent,riid,pDataSize);
4009 }
4010 static FORCEINLINE void IChannelHook_ClientFillBuffer(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer) {
4011     This->lpVtbl->ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer);
4012 }
4013 static FORCEINLINE void IChannelHook_ClientNotify(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG cbDataSize,void *pDataBuffer,DWORD lDataRep,HRESULT hrFault) {
4014     This->lpVtbl->ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault);
4015 }
4016 static FORCEINLINE void IChannelHook_ServerNotify(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG cbDataSize,void *pDataBuffer,DWORD lDataRep) {
4017     This->lpVtbl->ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep);
4018 }
4019 static FORCEINLINE void IChannelHook_ServerGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,HRESULT hrFault,ULONG *pDataSize) {
4020     This->lpVtbl->ServerGetSize(This,uExtent,riid,hrFault,pDataSize);
4021 }
4022 static FORCEINLINE void IChannelHook_ServerFillBuffer(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer,HRESULT hrFault) {
4023     This->lpVtbl->ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault);
4024 }
4025 #endif
4026 #endif
4027 
4028 #endif
4029 
4030 void STDMETHODCALLTYPE IChannelHook_ClientGetSize_Proxy(
4031     IChannelHook* This,
4032     REFGUID uExtent,
4033     REFIID riid,
4034     ULONG *pDataSize);
4035 void __RPC_STUB IChannelHook_ClientGetSize_Stub(
4036     IRpcStubBuffer* This,
4037     IRpcChannelBuffer* pRpcChannelBuffer,
4038     PRPC_MESSAGE pRpcMessage,
4039     DWORD* pdwStubPhase);
4040 void STDMETHODCALLTYPE IChannelHook_ClientFillBuffer_Proxy(
4041     IChannelHook* This,
4042     REFGUID uExtent,
4043     REFIID riid,
4044     ULONG *pDataSize,
4045     void *pDataBuffer);
4046 void __RPC_STUB IChannelHook_ClientFillBuffer_Stub(
4047     IRpcStubBuffer* This,
4048     IRpcChannelBuffer* pRpcChannelBuffer,
4049     PRPC_MESSAGE pRpcMessage,
4050     DWORD* pdwStubPhase);
4051 void STDMETHODCALLTYPE IChannelHook_ClientNotify_Proxy(
4052     IChannelHook* This,
4053     REFGUID uExtent,
4054     REFIID riid,
4055     ULONG cbDataSize,
4056     void *pDataBuffer,
4057     DWORD lDataRep,
4058     HRESULT hrFault);
4059 void __RPC_STUB IChannelHook_ClientNotify_Stub(
4060     IRpcStubBuffer* This,
4061     IRpcChannelBuffer* pRpcChannelBuffer,
4062     PRPC_MESSAGE pRpcMessage,
4063     DWORD* pdwStubPhase);
4064 void STDMETHODCALLTYPE IChannelHook_ServerNotify_Proxy(
4065     IChannelHook* This,
4066     REFGUID uExtent,
4067     REFIID riid,
4068     ULONG cbDataSize,
4069     void *pDataBuffer,
4070     DWORD lDataRep);
4071 void __RPC_STUB IChannelHook_ServerNotify_Stub(
4072     IRpcStubBuffer* This,
4073     IRpcChannelBuffer* pRpcChannelBuffer,
4074     PRPC_MESSAGE pRpcMessage,
4075     DWORD* pdwStubPhase);
4076 void STDMETHODCALLTYPE IChannelHook_ServerGetSize_Proxy(
4077     IChannelHook* This,
4078     REFGUID uExtent,
4079     REFIID riid,
4080     HRESULT hrFault,
4081     ULONG *pDataSize);
4082 void __RPC_STUB IChannelHook_ServerGetSize_Stub(
4083     IRpcStubBuffer* This,
4084     IRpcChannelBuffer* pRpcChannelBuffer,
4085     PRPC_MESSAGE pRpcMessage,
4086     DWORD* pdwStubPhase);
4087 void STDMETHODCALLTYPE IChannelHook_ServerFillBuffer_Proxy(
4088     IChannelHook* This,
4089     REFGUID uExtent,
4090     REFIID riid,
4091     ULONG *pDataSize,
4092     void *pDataBuffer,
4093     HRESULT hrFault);
4094 void __RPC_STUB IChannelHook_ServerFillBuffer_Stub(
4095     IRpcStubBuffer* This,
4096     IRpcChannelBuffer* pRpcChannelBuffer,
4097     PRPC_MESSAGE pRpcMessage,
4098     DWORD* pdwStubPhase);
4099 
4100 #endif  /* __IChannelHook_INTERFACE_DEFINED__ */
4101 
4102 #endif
4103 #endif
4104 
4105 #if  (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)
4106 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
4107 /*****************************************************************************
4108  * IClientSecurity interface
4109  */
4110 #ifndef __IClientSecurity_INTERFACE_DEFINED__
4111 #define __IClientSecurity_INTERFACE_DEFINED__
4112 
4113 typedef struct tagSOLE_AUTHENTICATION_SERVICE {
4114     DWORD dwAuthnSvc;
4115     DWORD dwAuthzSvc;
4116     OLECHAR *pPrincipalName;
4117     HRESULT hr;
4118 } SOLE_AUTHENTICATION_SERVICE;
4119 
4120 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
4121 
4122 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
4123     EOAC_NONE = 0x0,
4124     EOAC_MUTUAL_AUTH = 0x1,
4125     EOAC_STATIC_CLOAKING = 0x20,
4126     EOAC_DYNAMIC_CLOAKING = 0x40,
4127     EOAC_ANY_AUTHORITY = 0x80,
4128     EOAC_MAKE_FULLSIC = 0x100,
4129     EOAC_DEFAULT = 0x800,
4130     EOAC_SECURE_REFS = 0x2,
4131     EOAC_ACCESS_CONTROL = 0x4,
4132     EOAC_APPID = 0x8,
4133     EOAC_DYNAMIC = 0x10,
4134     EOAC_REQUIRE_FULLSIC = 0x200,
4135     EOAC_AUTO_IMPERSONATE = 0x400,
4136     EOAC_NO_CUSTOM_MARSHAL = 0x2000,
4137     EOAC_DISABLE_AAA = 0x1000
4138 } EOLE_AUTHENTICATION_CAPABILITIES;
4139 
4140 #define COLE_DEFAULT_PRINCIPAL ((OLECHAR *)(INT_PTR)-1)
4141 
4142 #define COLE_DEFAULT_AUTHINFO ((void *)(INT_PTR)-1)
4143 
4144 
4145 typedef struct tagSOLE_AUTHENTICATION_INFO {
4146     DWORD dwAuthnSvc;
4147     DWORD dwAuthzSvc;
4148     void *pAuthInfo;
4149 } SOLE_AUTHENTICATION_INFO;
4150 typedef struct tagSOLE_AUTHENTICATION_INFO *PSOLE_AUTHENTICATION_INFO;
4151 
4152 typedef struct tagSOLE_AUTHENTICATION_LIST {
4153     DWORD cAuthInfo;
4154     SOLE_AUTHENTICATION_INFO *aAuthInfo;
4155 } SOLE_AUTHENTICATION_LIST;
4156 typedef struct tagSOLE_AUTHENTICATION_LIST *PSOLE_AUTHENTICATION_LIST;
4157 
4158 DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4159 #if defined(__cplusplus) && !defined(CINTERFACE)
4160 MIDL_INTERFACE("0000013d-0000-0000-c000-000000000046")
4161 IClientSecurity : public IUnknown
4162 {
4163     virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
4164         IUnknown *pProxy,
4165         DWORD *pAuthnSvc,
4166         DWORD *pAuthzSvc,
4167         OLECHAR **pServerPrincName,
4168         DWORD *pAuthnLevel,
4169         DWORD *pImpLevel,
4170         void **pAuthInfo,
4171         DWORD *pCapabilites) = 0;
4172 
4173     virtual HRESULT STDMETHODCALLTYPE SetBlanket(
4174         IUnknown *pProxy,
4175         DWORD dwAuthnSvc,
4176         DWORD dwAuthzSvc,
4177         OLECHAR *pServerPrincName,
4178         DWORD dwAuthnLevel,
4179         DWORD dwImpLevel,
4180         void *pAuthInfo,
4181         DWORD dwCapabilities) = 0;
4182 
4183     virtual HRESULT STDMETHODCALLTYPE CopyProxy(
4184         IUnknown *pProxy,
4185         IUnknown **ppCopy) = 0;
4186 
4187 };
4188 #ifdef __CRT_UUID_DECL
4189 __CRT_UUID_DECL(IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4190 #endif
4191 #else
4192 typedef struct IClientSecurityVtbl {
4193     BEGIN_INTERFACE
4194 
4195     /*** IUnknown methods ***/
4196     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4197         IClientSecurity* This,
4198         REFIID riid,
4199         void **ppvObject);
4200 
4201     ULONG (STDMETHODCALLTYPE *AddRef)(
4202         IClientSecurity* This);
4203 
4204     ULONG (STDMETHODCALLTYPE *Release)(
4205         IClientSecurity* This);
4206 
4207     /*** IClientSecurity methods ***/
4208     HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
4209         IClientSecurity* This,
4210         IUnknown *pProxy,
4211         DWORD *pAuthnSvc,
4212         DWORD *pAuthzSvc,
4213         OLECHAR **pServerPrincName,
4214         DWORD *pAuthnLevel,
4215         DWORD *pImpLevel,
4216         void **pAuthInfo,
4217         DWORD *pCapabilites);
4218 
4219     HRESULT (STDMETHODCALLTYPE *SetBlanket)(
4220         IClientSecurity* This,
4221         IUnknown *pProxy,
4222         DWORD dwAuthnSvc,
4223         DWORD dwAuthzSvc,
4224         OLECHAR *pServerPrincName,
4225         DWORD dwAuthnLevel,
4226         DWORD dwImpLevel,
4227         void *pAuthInfo,
4228         DWORD dwCapabilities);
4229 
4230     HRESULT (STDMETHODCALLTYPE *CopyProxy)(
4231         IClientSecurity* This,
4232         IUnknown *pProxy,
4233         IUnknown **ppCopy);
4234 
4235     END_INTERFACE
4236 } IClientSecurityVtbl;
4237 interface IClientSecurity {
4238     CONST_VTBL IClientSecurityVtbl* lpVtbl;
4239 };
4240 
4241 #ifdef COBJMACROS
4242 #ifndef WIDL_C_INLINE_WRAPPERS
4243 /*** IUnknown methods ***/
4244 #define IClientSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4245 #define IClientSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
4246 #define IClientSecurity_Release(This) (This)->lpVtbl->Release(This)
4247 /*** IClientSecurity methods ***/
4248 #define IClientSecurity_QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites) (This)->lpVtbl->QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites)
4249 #define IClientSecurity_SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities) (This)->lpVtbl->SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities)
4250 #define IClientSecurity_CopyProxy(This,pProxy,ppCopy) (This)->lpVtbl->CopyProxy(This,pProxy,ppCopy)
4251 #else
4252 /*** IUnknown methods ***/
4253 static FORCEINLINE HRESULT IClientSecurity_QueryInterface(IClientSecurity* This,REFIID riid,void **ppvObject) {
4254     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4255 }
4256 static FORCEINLINE ULONG IClientSecurity_AddRef(IClientSecurity* This) {
4257     return This->lpVtbl->AddRef(This);
4258 }
4259 static FORCEINLINE ULONG IClientSecurity_Release(IClientSecurity* This) {
4260     return This->lpVtbl->Release(This);
4261 }
4262 /*** IClientSecurity methods ***/
4263 static FORCEINLINE HRESULT IClientSecurity_QueryBlanket(IClientSecurity* This,IUnknown *pProxy,DWORD *pAuthnSvc,DWORD *pAuthzSvc,OLECHAR **pServerPrincName,DWORD *pAuthnLevel,DWORD *pImpLevel,void **pAuthInfo,DWORD *pCapabilites) {
4264     return This->lpVtbl->QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites);
4265 }
4266 static FORCEINLINE HRESULT IClientSecurity_SetBlanket(IClientSecurity* This,IUnknown *pProxy,DWORD dwAuthnSvc,DWORD dwAuthzSvc,OLECHAR *pServerPrincName,DWORD dwAuthnLevel,DWORD dwImpLevel,void *pAuthInfo,DWORD dwCapabilities) {
4267     return This->lpVtbl->SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities);
4268 }
4269 static FORCEINLINE HRESULT IClientSecurity_CopyProxy(IClientSecurity* This,IUnknown *pProxy,IUnknown **ppCopy) {
4270     return This->lpVtbl->CopyProxy(This,pProxy,ppCopy);
4271 }
4272 #endif
4273 #endif
4274 
4275 #endif
4276 
4277 HRESULT STDMETHODCALLTYPE IClientSecurity_QueryBlanket_Proxy(
4278     IClientSecurity* This,
4279     IUnknown *pProxy,
4280     DWORD *pAuthnSvc,
4281     DWORD *pAuthzSvc,
4282     OLECHAR **pServerPrincName,
4283     DWORD *pAuthnLevel,
4284     DWORD *pImpLevel,
4285     void **pAuthInfo,
4286     DWORD *pCapabilites);
4287 void __RPC_STUB IClientSecurity_QueryBlanket_Stub(
4288     IRpcStubBuffer* This,
4289     IRpcChannelBuffer* pRpcChannelBuffer,
4290     PRPC_MESSAGE pRpcMessage,
4291     DWORD* pdwStubPhase);
4292 HRESULT STDMETHODCALLTYPE IClientSecurity_SetBlanket_Proxy(
4293     IClientSecurity* This,
4294     IUnknown *pProxy,
4295     DWORD dwAuthnSvc,
4296     DWORD dwAuthzSvc,
4297     OLECHAR *pServerPrincName,
4298     DWORD dwAuthnLevel,
4299     DWORD dwImpLevel,
4300     void *pAuthInfo,
4301     DWORD dwCapabilities);
4302 void __RPC_STUB IClientSecurity_SetBlanket_Stub(
4303     IRpcStubBuffer* This,
4304     IRpcChannelBuffer* pRpcChannelBuffer,
4305     PRPC_MESSAGE pRpcMessage,
4306     DWORD* pdwStubPhase);
4307 HRESULT STDMETHODCALLTYPE IClientSecurity_CopyProxy_Proxy(
4308     IClientSecurity* This,
4309     IUnknown *pProxy,
4310     IUnknown **ppCopy);
4311 void __RPC_STUB IClientSecurity_CopyProxy_Stub(
4312     IRpcStubBuffer* This,
4313     IRpcChannelBuffer* pRpcChannelBuffer,
4314     PRPC_MESSAGE pRpcMessage,
4315     DWORD* pdwStubPhase);
4316 
4317 #endif  /* __IClientSecurity_INTERFACE_DEFINED__ */
4318 
4319 #endif
4320 
4321 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
4322 /*****************************************************************************
4323  * IServerSecurity interface
4324  */
4325 #ifndef __IServerSecurity_INTERFACE_DEFINED__
4326 #define __IServerSecurity_INTERFACE_DEFINED__
4327 
4328 DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4329 #if defined(__cplusplus) && !defined(CINTERFACE)
4330 MIDL_INTERFACE("0000013e-0000-0000-c000-000000000046")
4331 IServerSecurity : public IUnknown
4332 {
4333     virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
4334         DWORD *pAuthnSvc,
4335         DWORD *pAuthzSvc,
4336         OLECHAR **pServerPrincName,
4337         DWORD *pAuthnLevel,
4338         DWORD *pImpLevel,
4339         void **pPrivs,
4340         DWORD *pCapabilities) = 0;
4341 
4342     virtual HRESULT STDMETHODCALLTYPE ImpersonateClient(
4343         ) = 0;
4344 
4345     virtual HRESULT STDMETHODCALLTYPE RevertToSelf(
4346         ) = 0;
4347 
4348     virtual WINBOOL STDMETHODCALLTYPE IsImpersonating(
4349         ) = 0;
4350 
4351 };
4352 #ifdef __CRT_UUID_DECL
4353 __CRT_UUID_DECL(IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4354 #endif
4355 #else
4356 typedef struct IServerSecurityVtbl {
4357     BEGIN_INTERFACE
4358 
4359     /*** IUnknown methods ***/
4360     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4361         IServerSecurity* This,
4362         REFIID riid,
4363         void **ppvObject);
4364 
4365     ULONG (STDMETHODCALLTYPE *AddRef)(
4366         IServerSecurity* This);
4367 
4368     ULONG (STDMETHODCALLTYPE *Release)(
4369         IServerSecurity* This);
4370 
4371     /*** IServerSecurity methods ***/
4372     HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
4373         IServerSecurity* This,
4374         DWORD *pAuthnSvc,
4375         DWORD *pAuthzSvc,
4376         OLECHAR **pServerPrincName,
4377         DWORD *pAuthnLevel,
4378         DWORD *pImpLevel,
4379         void **pPrivs,
4380         DWORD *pCapabilities);
4381 
4382     HRESULT (STDMETHODCALLTYPE *ImpersonateClient)(
4383         IServerSecurity* This);
4384 
4385     HRESULT (STDMETHODCALLTYPE *RevertToSelf)(
4386         IServerSecurity* This);
4387 
4388     WINBOOL (STDMETHODCALLTYPE *IsImpersonating)(
4389         IServerSecurity* This);
4390 
4391     END_INTERFACE
4392 } IServerSecurityVtbl;
4393 interface IServerSecurity {
4394     CONST_VTBL IServerSecurityVtbl* lpVtbl;
4395 };
4396 
4397 #ifdef COBJMACROS
4398 #ifndef WIDL_C_INLINE_WRAPPERS
4399 /*** IUnknown methods ***/
4400 #define IServerSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4401 #define IServerSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
4402 #define IServerSecurity_Release(This) (This)->lpVtbl->Release(This)
4403 /*** IServerSecurity methods ***/
4404 #define IServerSecurity_QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities) (This)->lpVtbl->QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities)
4405 #define IServerSecurity_ImpersonateClient(This) (This)->lpVtbl->ImpersonateClient(This)
4406 #define IServerSecurity_RevertToSelf(This) (This)->lpVtbl->RevertToSelf(This)
4407 #define IServerSecurity_IsImpersonating(This) (This)->lpVtbl->IsImpersonating(This)
4408 #else
4409 /*** IUnknown methods ***/
4410 static FORCEINLINE HRESULT IServerSecurity_QueryInterface(IServerSecurity* This,REFIID riid,void **ppvObject) {
4411     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4412 }
4413 static FORCEINLINE ULONG IServerSecurity_AddRef(IServerSecurity* This) {
4414     return This->lpVtbl->AddRef(This);
4415 }
4416 static FORCEINLINE ULONG IServerSecurity_Release(IServerSecurity* This) {
4417     return This->lpVtbl->Release(This);
4418 }
4419 /*** IServerSecurity methods ***/
4420 static FORCEINLINE HRESULT IServerSecurity_QueryBlanket(IServerSecurity* This,DWORD *pAuthnSvc,DWORD *pAuthzSvc,OLECHAR **pServerPrincName,DWORD *pAuthnLevel,DWORD *pImpLevel,void **pPrivs,DWORD *pCapabilities) {
4421     return This->lpVtbl->QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities);
4422 }
4423 static FORCEINLINE HRESULT IServerSecurity_ImpersonateClient(IServerSecurity* This) {
4424     return This->lpVtbl->ImpersonateClient(This);
4425 }
4426 static FORCEINLINE HRESULT IServerSecurity_RevertToSelf(IServerSecurity* This) {
4427     return This->lpVtbl->RevertToSelf(This);
4428 }
4429 static FORCEINLINE WINBOOL IServerSecurity_IsImpersonating(IServerSecurity* This) {
4430     return This->lpVtbl->IsImpersonating(This);
4431 }
4432 #endif
4433 #endif
4434 
4435 #endif
4436 
4437 HRESULT STDMETHODCALLTYPE IServerSecurity_QueryBlanket_Proxy(
4438     IServerSecurity* This,
4439     DWORD *pAuthnSvc,
4440     DWORD *pAuthzSvc,
4441     OLECHAR **pServerPrincName,
4442     DWORD *pAuthnLevel,
4443     DWORD *pImpLevel,
4444     void **pPrivs,
4445     DWORD *pCapabilities);
4446 void __RPC_STUB IServerSecurity_QueryBlanket_Stub(
4447     IRpcStubBuffer* This,
4448     IRpcChannelBuffer* pRpcChannelBuffer,
4449     PRPC_MESSAGE pRpcMessage,
4450     DWORD* pdwStubPhase);
4451 HRESULT STDMETHODCALLTYPE IServerSecurity_ImpersonateClient_Proxy(
4452     IServerSecurity* This);
4453 void __RPC_STUB IServerSecurity_ImpersonateClient_Stub(
4454     IRpcStubBuffer* This,
4455     IRpcChannelBuffer* pRpcChannelBuffer,
4456     PRPC_MESSAGE pRpcMessage,
4457     DWORD* pdwStubPhase);
4458 HRESULT STDMETHODCALLTYPE IServerSecurity_RevertToSelf_Proxy(
4459     IServerSecurity* This);
4460 void __RPC_STUB IServerSecurity_RevertToSelf_Stub(
4461     IRpcStubBuffer* This,
4462     IRpcChannelBuffer* pRpcChannelBuffer,
4463     PRPC_MESSAGE pRpcMessage,
4464     DWORD* pdwStubPhase);
4465 WINBOOL STDMETHODCALLTYPE IServerSecurity_IsImpersonating_Proxy(
4466     IServerSecurity* This);
4467 void __RPC_STUB IServerSecurity_IsImpersonating_Stub(
4468     IRpcStubBuffer* This,
4469     IRpcChannelBuffer* pRpcChannelBuffer,
4470     PRPC_MESSAGE pRpcMessage,
4471     DWORD* pdwStubPhase);
4472 
4473 #endif  /* __IServerSecurity_INTERFACE_DEFINED__ */
4474 
4475 
4476 typedef enum tagRPCOPT_PROPERTIES {
4477     COMBND_RPCTIMEOUT = 0x1,
4478     COMBND_SERVER_LOCALITY = 0x2,
4479     COMBND_RESERVED1 = 0x4
4480 } RPCOPT_PROPERTIES;
4481 
4482 typedef enum tagRPCOPT_SERVER_LOCALITY_VALUES {
4483     SERVER_LOCALITY_PROCESS_LOCAL = 0,
4484     SERVER_LOCALITY_MACHINE_LOCAL = 1,
4485     SERVER_LOCALITY_REMOTE = 2
4486 } RPCOPT_SERVER_LOCALITY_VALUES;
4487 
4488 /*****************************************************************************
4489  * IRpcOptions interface
4490  */
4491 #ifndef __IRpcOptions_INTERFACE_DEFINED__
4492 #define __IRpcOptions_INTERFACE_DEFINED__
4493 
4494 DEFINE_GUID(IID_IRpcOptions, 0x00000144, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4495 #if defined(__cplusplus) && !defined(CINTERFACE)
4496 MIDL_INTERFACE("00000144-0000-0000-c000-000000000046")
4497 IRpcOptions : public IUnknown
4498 {
4499     virtual HRESULT STDMETHODCALLTYPE Set(
4500         IUnknown *pPrx,
4501         RPCOPT_PROPERTIES dwProperty,
4502         ULONG_PTR dwValue) = 0;
4503 
4504     virtual HRESULT STDMETHODCALLTYPE Query(
4505         IUnknown *pPrx,
4506         RPCOPT_PROPERTIES dwProperty,
4507         ULONG_PTR *pdwValue) = 0;
4508 
4509 };
4510 #ifdef __CRT_UUID_DECL
4511 __CRT_UUID_DECL(IRpcOptions, 0x00000144, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4512 #endif
4513 #else
4514 typedef struct IRpcOptionsVtbl {
4515     BEGIN_INTERFACE
4516 
4517     /*** IUnknown methods ***/
4518     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4519         IRpcOptions* This,
4520         REFIID riid,
4521         void **ppvObject);
4522 
4523     ULONG (STDMETHODCALLTYPE *AddRef)(
4524         IRpcOptions* This);
4525 
4526     ULONG (STDMETHODCALLTYPE *Release)(
4527         IRpcOptions* This);
4528 
4529     /*** IRpcOptions methods ***/
4530     HRESULT (STDMETHODCALLTYPE *Set)(
4531         IRpcOptions* This,
4532         IUnknown *pPrx,
4533         RPCOPT_PROPERTIES dwProperty,
4534         ULONG_PTR dwValue);
4535 
4536     HRESULT (STDMETHODCALLTYPE *Query)(
4537         IRpcOptions* This,
4538         IUnknown *pPrx,
4539         RPCOPT_PROPERTIES dwProperty,
4540         ULONG_PTR *pdwValue);
4541 
4542     END_INTERFACE
4543 } IRpcOptionsVtbl;
4544 interface IRpcOptions {
4545     CONST_VTBL IRpcOptionsVtbl* lpVtbl;
4546 };
4547 
4548 #ifdef COBJMACROS
4549 #ifndef WIDL_C_INLINE_WRAPPERS
4550 /*** IUnknown methods ***/
4551 #define IRpcOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4552 #define IRpcOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
4553 #define IRpcOptions_Release(This) (This)->lpVtbl->Release(This)
4554 /*** IRpcOptions methods ***/
4555 #define IRpcOptions_Set(This,pPrx,dwProperty,dwValue) (This)->lpVtbl->Set(This,pPrx,dwProperty,dwValue)
4556 #define IRpcOptions_Query(This,pPrx,dwProperty,pdwValue) (This)->lpVtbl->Query(This,pPrx,dwProperty,pdwValue)
4557 #else
4558 /*** IUnknown methods ***/
4559 static FORCEINLINE HRESULT IRpcOptions_QueryInterface(IRpcOptions* This,REFIID riid,void **ppvObject) {
4560     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4561 }
4562 static FORCEINLINE ULONG IRpcOptions_AddRef(IRpcOptions* This) {
4563     return This->lpVtbl->AddRef(This);
4564 }
4565 static FORCEINLINE ULONG IRpcOptions_Release(IRpcOptions* This) {
4566     return This->lpVtbl->Release(This);
4567 }
4568 /*** IRpcOptions methods ***/
4569 static FORCEINLINE HRESULT IRpcOptions_Set(IRpcOptions* This,IUnknown *pPrx,RPCOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
4570     return This->lpVtbl->Set(This,pPrx,dwProperty,dwValue);
4571 }
4572 static FORCEINLINE HRESULT IRpcOptions_Query(IRpcOptions* This,IUnknown *pPrx,RPCOPT_PROPERTIES dwProperty,ULONG_PTR *pdwValue) {
4573     return This->lpVtbl->Query(This,pPrx,dwProperty,pdwValue);
4574 }
4575 #endif
4576 #endif
4577 
4578 #endif
4579 
4580 HRESULT STDMETHODCALLTYPE IRpcOptions_Set_Proxy(
4581     IRpcOptions* This,
4582     IUnknown *pPrx,
4583     RPCOPT_PROPERTIES dwProperty,
4584     ULONG_PTR dwValue);
4585 void __RPC_STUB IRpcOptions_Set_Stub(
4586     IRpcStubBuffer* This,
4587     IRpcChannelBuffer* pRpcChannelBuffer,
4588     PRPC_MESSAGE pRpcMessage,
4589     DWORD* pdwStubPhase);
4590 HRESULT STDMETHODCALLTYPE IRpcOptions_Query_Proxy(
4591     IRpcOptions* This,
4592     IUnknown *pPrx,
4593     RPCOPT_PROPERTIES dwProperty,
4594     ULONG_PTR *pdwValue);
4595 void __RPC_STUB IRpcOptions_Query_Stub(
4596     IRpcStubBuffer* This,
4597     IRpcChannelBuffer* pRpcChannelBuffer,
4598     PRPC_MESSAGE pRpcMessage,
4599     DWORD* pdwStubPhase);
4600 
4601 #endif  /* __IRpcOptions_INTERFACE_DEFINED__ */
4602 
4603 #endif
4604 
4605 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
4606 typedef enum tagGLOBALOPT_PROPERTIES {
4607     COMGLB_EXCEPTION_HANDLING = 1,
4608     COMGLB_APPID = 2,
4609     COMGLB_RPC_THREADPOOL_SETTING = 3,
4610     COMGLB_RO_SETTINGS = 4,
4611     COMGLB_UNMARSHALING_POLICY = 5
4612 } GLOBALOPT_PROPERTIES;
4613 
4614 typedef enum tagGLOBALOPT_EH_VALUES {
4615     COMGLB_EXCEPTION_HANDLE = 0,
4616     COMGLB_EXCEPTION_DONOT_HANDLE_FATAL = 1,
4617     COMGLB_EXCEPTION_DONOT_HANDLE = COMGLB_EXCEPTION_DONOT_HANDLE_FATAL,
4618     COMGLB_EXCEPTION_DONOT_HANDLE_ANY = 2
4619 } GLOBALOPT_EH_VALUES;
4620 
4621 typedef enum tagGLOBALOPT_RPCTP_VALUES {
4622     COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL = 0,
4623     COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL = 1
4624 } GLOBALOPT_RPCTP_VALUES;
4625 
4626 typedef enum tagGLOBALOPT_RO_FLAGS {
4627     COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES = 0x1,
4628     COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES = 0x2,
4629     COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES = 0x4,
4630     COMGLB_FAST_RUNDOWN = 0x8,
4631     COMGLB_RESERVED1 = 0x10,
4632     COMGLB_RESERVED2 = 0x20,
4633     COMGLB_RESERVED3 = 0x40,
4634     COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES = 0x80
4635 } GLOBALOPT_RO_FLAGS;
4636 
4637 typedef enum tagGLOBALOPT_UNMARSHALING_POLICY_VALUES {
4638     COMGLB_UNMARSHALING_POLICY_NORMAL = 0,
4639     COMGLB_UNMARSHALING_POLICY_STRONG = 1,
4640     COMGLB_UNMARSHALING_POLICY_HYBRID = 2
4641 } GLOBALOPT_UNMARSHALING_POLICY_VALUES;
4642 
4643 /*****************************************************************************
4644  * IGlobalOptions interface
4645  */
4646 #ifndef __IGlobalOptions_INTERFACE_DEFINED__
4647 #define __IGlobalOptions_INTERFACE_DEFINED__
4648 
4649 DEFINE_GUID(IID_IGlobalOptions, 0x0000015b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4650 #if defined(__cplusplus) && !defined(CINTERFACE)
4651 MIDL_INTERFACE("0000015b-0000-0000-c000-000000000046")
4652 IGlobalOptions : public IUnknown
4653 {
4654     virtual HRESULT STDMETHODCALLTYPE Set(
4655         GLOBALOPT_PROPERTIES dwProperty,
4656         ULONG_PTR dwValue) = 0;
4657 
4658     virtual HRESULT STDMETHODCALLTYPE Query(
4659         GLOBALOPT_PROPERTIES dwProperty,
4660         ULONG_PTR *pdwValue) = 0;
4661 
4662 };
4663 #ifdef __CRT_UUID_DECL
4664 __CRT_UUID_DECL(IGlobalOptions, 0x0000015b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4665 #endif
4666 #else
4667 typedef struct IGlobalOptionsVtbl {
4668     BEGIN_INTERFACE
4669 
4670     /*** IUnknown methods ***/
4671     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4672         IGlobalOptions* This,
4673         REFIID riid,
4674         void **ppvObject);
4675 
4676     ULONG (STDMETHODCALLTYPE *AddRef)(
4677         IGlobalOptions* This);
4678 
4679     ULONG (STDMETHODCALLTYPE *Release)(
4680         IGlobalOptions* This);
4681 
4682     /*** IGlobalOptions methods ***/
4683     HRESULT (STDMETHODCALLTYPE *Set)(
4684         IGlobalOptions* This,
4685         GLOBALOPT_PROPERTIES dwProperty,
4686         ULONG_PTR dwValue);
4687 
4688     HRESULT (STDMETHODCALLTYPE *Query)(
4689         IGlobalOptions* This,
4690         GLOBALOPT_PROPERTIES dwProperty,
4691         ULONG_PTR *pdwValue);
4692 
4693     END_INTERFACE
4694 } IGlobalOptionsVtbl;
4695 interface IGlobalOptions {
4696     CONST_VTBL IGlobalOptionsVtbl* lpVtbl;
4697 };
4698 
4699 #ifdef COBJMACROS
4700 #ifndef WIDL_C_INLINE_WRAPPERS
4701 /*** IUnknown methods ***/
4702 #define IGlobalOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4703 #define IGlobalOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
4704 #define IGlobalOptions_Release(This) (This)->lpVtbl->Release(This)
4705 /*** IGlobalOptions methods ***/
4706 #define IGlobalOptions_Set(This,dwProperty,dwValue) (This)->lpVtbl->Set(This,dwProperty,dwValue)
4707 #define IGlobalOptions_Query(This,dwProperty,pdwValue) (This)->lpVtbl->Query(This,dwProperty,pdwValue)
4708 #else
4709 /*** IUnknown methods ***/
4710 static FORCEINLINE HRESULT IGlobalOptions_QueryInterface(IGlobalOptions* This,REFIID riid,void **ppvObject) {
4711     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4712 }
4713 static FORCEINLINE ULONG IGlobalOptions_AddRef(IGlobalOptions* This) {
4714     return This->lpVtbl->AddRef(This);
4715 }
4716 static FORCEINLINE ULONG IGlobalOptions_Release(IGlobalOptions* This) {
4717     return This->lpVtbl->Release(This);
4718 }
4719 /*** IGlobalOptions methods ***/
4720 static FORCEINLINE HRESULT IGlobalOptions_Set(IGlobalOptions* This,GLOBALOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
4721     return This->lpVtbl->Set(This,dwProperty,dwValue);
4722 }
4723 static FORCEINLINE HRESULT IGlobalOptions_Query(IGlobalOptions* This,GLOBALOPT_PROPERTIES dwProperty,ULONG_PTR *pdwValue) {
4724     return This->lpVtbl->Query(This,dwProperty,pdwValue);
4725 }
4726 #endif
4727 #endif
4728 
4729 #endif
4730 
4731 HRESULT STDMETHODCALLTYPE IGlobalOptions_Set_Proxy(
4732     IGlobalOptions* This,
4733     GLOBALOPT_PROPERTIES dwProperty,
4734     ULONG_PTR dwValue);
4735 void __RPC_STUB IGlobalOptions_Set_Stub(
4736     IRpcStubBuffer* This,
4737     IRpcChannelBuffer* pRpcChannelBuffer,
4738     PRPC_MESSAGE pRpcMessage,
4739     DWORD* pdwStubPhase);
4740 HRESULT STDMETHODCALLTYPE IGlobalOptions_Query_Proxy(
4741     IGlobalOptions* This,
4742     GLOBALOPT_PROPERTIES dwProperty,
4743     ULONG_PTR *pdwValue);
4744 void __RPC_STUB IGlobalOptions_Query_Stub(
4745     IRpcStubBuffer* This,
4746     IRpcChannelBuffer* pRpcChannelBuffer,
4747     PRPC_MESSAGE pRpcMessage,
4748     DWORD* pdwStubPhase);
4749 
4750 #endif  /* __IGlobalOptions_INTERFACE_DEFINED__ */
4751 
4752 #endif
4753 #endif
4754 
4755 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
4756 /*****************************************************************************
4757  * ISurrogate interface
4758  */
4759 #ifndef __ISurrogate_INTERFACE_DEFINED__
4760 #define __ISurrogate_INTERFACE_DEFINED__
4761 
4762 typedef ISurrogate *LPSURROGATE;
4763 
4764 DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4765 #if defined(__cplusplus) && !defined(CINTERFACE)
4766 MIDL_INTERFACE("00000022-0000-0000-c000-000000000046")
4767 ISurrogate : public IUnknown
4768 {
4769     virtual HRESULT STDMETHODCALLTYPE LoadDllServer(
4770         REFCLSID Clsid) = 0;
4771 
4772     virtual HRESULT STDMETHODCALLTYPE FreeSurrogate(
4773         ) = 0;
4774 
4775 };
4776 #ifdef __CRT_UUID_DECL
4777 __CRT_UUID_DECL(ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4778 #endif
4779 #else
4780 typedef struct ISurrogateVtbl {
4781     BEGIN_INTERFACE
4782 
4783     /*** IUnknown methods ***/
4784     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4785         ISurrogate* This,
4786         REFIID riid,
4787         void **ppvObject);
4788 
4789     ULONG (STDMETHODCALLTYPE *AddRef)(
4790         ISurrogate* This);
4791 
4792     ULONG (STDMETHODCALLTYPE *Release)(
4793         ISurrogate* This);
4794 
4795     /*** ISurrogate methods ***/
4796     HRESULT (STDMETHODCALLTYPE *LoadDllServer)(
4797         ISurrogate* This,
4798         REFCLSID Clsid);
4799 
4800     HRESULT (STDMETHODCALLTYPE *FreeSurrogate)(
4801         ISurrogate* This);
4802 
4803     END_INTERFACE
4804 } ISurrogateVtbl;
4805 interface ISurrogate {
4806     CONST_VTBL ISurrogateVtbl* lpVtbl;
4807 };
4808 
4809 #ifdef COBJMACROS
4810 #ifndef WIDL_C_INLINE_WRAPPERS
4811 /*** IUnknown methods ***/
4812 #define ISurrogate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4813 #define ISurrogate_AddRef(This) (This)->lpVtbl->AddRef(This)
4814 #define ISurrogate_Release(This) (This)->lpVtbl->Release(This)
4815 /*** ISurrogate methods ***/
4816 #define ISurrogate_LoadDllServer(This,Clsid) (This)->lpVtbl->LoadDllServer(This,Clsid)
4817 #define ISurrogate_FreeSurrogate(This) (This)->lpVtbl->FreeSurrogate(This)
4818 #else
4819 /*** IUnknown methods ***/
4820 static FORCEINLINE HRESULT ISurrogate_QueryInterface(ISurrogate* This,REFIID riid,void **ppvObject) {
4821     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4822 }
4823 static FORCEINLINE ULONG ISurrogate_AddRef(ISurrogate* This) {
4824     return This->lpVtbl->AddRef(This);
4825 }
4826 static FORCEINLINE ULONG ISurrogate_Release(ISurrogate* This) {
4827     return This->lpVtbl->Release(This);
4828 }
4829 /*** ISurrogate methods ***/
4830 static FORCEINLINE HRESULT ISurrogate_LoadDllServer(ISurrogate* This,REFCLSID Clsid) {
4831     return This->lpVtbl->LoadDllServer(This,Clsid);
4832 }
4833 static FORCEINLINE HRESULT ISurrogate_FreeSurrogate(ISurrogate* This) {
4834     return This->lpVtbl->FreeSurrogate(This);
4835 }
4836 #endif
4837 #endif
4838 
4839 #endif
4840 
4841 HRESULT STDMETHODCALLTYPE ISurrogate_LoadDllServer_Proxy(
4842     ISurrogate* This,
4843     REFCLSID Clsid);
4844 void __RPC_STUB ISurrogate_LoadDllServer_Stub(
4845     IRpcStubBuffer* This,
4846     IRpcChannelBuffer* pRpcChannelBuffer,
4847     PRPC_MESSAGE pRpcMessage,
4848     DWORD* pdwStubPhase);
4849 HRESULT STDMETHODCALLTYPE ISurrogate_FreeSurrogate_Proxy(
4850     ISurrogate* This);
4851 void __RPC_STUB ISurrogate_FreeSurrogate_Stub(
4852     IRpcStubBuffer* This,
4853     IRpcChannelBuffer* pRpcChannelBuffer,
4854     PRPC_MESSAGE pRpcMessage,
4855     DWORD* pdwStubPhase);
4856 
4857 #endif  /* __ISurrogate_INTERFACE_DEFINED__ */
4858 
4859 
4860 /*****************************************************************************
4861  * IGlobalInterfaceTable interface
4862  */
4863 #ifndef __IGlobalInterfaceTable_INTERFACE_DEFINED__
4864 #define __IGlobalInterfaceTable_INTERFACE_DEFINED__
4865 
4866 typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
4867 
4868 DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4869 #if defined(__cplusplus) && !defined(CINTERFACE)
4870 MIDL_INTERFACE("00000146-0000-0000-c000-000000000046")
4871 IGlobalInterfaceTable : public IUnknown
4872 {
4873     virtual HRESULT STDMETHODCALLTYPE RegisterInterfaceInGlobal(
4874         IUnknown *pUnk,
4875         REFIID riid,
4876         DWORD *pdwCookie) = 0;
4877 
4878     virtual HRESULT STDMETHODCALLTYPE RevokeInterfaceFromGlobal(
4879         DWORD dwCookie) = 0;
4880 
4881     virtual HRESULT STDMETHODCALLTYPE GetInterfaceFromGlobal(
4882         DWORD dwCookie,
4883         REFIID riid,
4884         void **ppv) = 0;
4885 
4886 };
4887 #ifdef __CRT_UUID_DECL
4888 __CRT_UUID_DECL(IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4889 #endif
4890 #else
4891 typedef struct IGlobalInterfaceTableVtbl {
4892     BEGIN_INTERFACE
4893 
4894     /*** IUnknown methods ***/
4895     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4896         IGlobalInterfaceTable* This,
4897         REFIID riid,
4898         void **ppvObject);
4899 
4900     ULONG (STDMETHODCALLTYPE *AddRef)(
4901         IGlobalInterfaceTable* This);
4902 
4903     ULONG (STDMETHODCALLTYPE *Release)(
4904         IGlobalInterfaceTable* This);
4905 
4906     /*** IGlobalInterfaceTable methods ***/
4907     HRESULT (STDMETHODCALLTYPE *RegisterInterfaceInGlobal)(
4908         IGlobalInterfaceTable* This,
4909         IUnknown *pUnk,
4910         REFIID riid,
4911         DWORD *pdwCookie);
4912 
4913     HRESULT (STDMETHODCALLTYPE *RevokeInterfaceFromGlobal)(
4914         IGlobalInterfaceTable* This,
4915         DWORD dwCookie);
4916 
4917     HRESULT (STDMETHODCALLTYPE *GetInterfaceFromGlobal)(
4918         IGlobalInterfaceTable* This,
4919         DWORD dwCookie,
4920         REFIID riid,
4921         void **ppv);
4922 
4923     END_INTERFACE
4924 } IGlobalInterfaceTableVtbl;
4925 interface IGlobalInterfaceTable {
4926     CONST_VTBL IGlobalInterfaceTableVtbl* lpVtbl;
4927 };
4928 
4929 #ifdef COBJMACROS
4930 #ifndef WIDL_C_INLINE_WRAPPERS
4931 /*** IUnknown methods ***/
4932 #define IGlobalInterfaceTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4933 #define IGlobalInterfaceTable_AddRef(This) (This)->lpVtbl->AddRef(This)
4934 #define IGlobalInterfaceTable_Release(This) (This)->lpVtbl->Release(This)
4935 /*** IGlobalInterfaceTable methods ***/
4936 #define IGlobalInterfaceTable_RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie) (This)->lpVtbl->RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie)
4937 #define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(This,dwCookie) (This)->lpVtbl->RevokeInterfaceFromGlobal(This,dwCookie)
4938 #define IGlobalInterfaceTable_GetInterfaceFromGlobal(This,dwCookie,riid,ppv) (This)->lpVtbl->GetInterfaceFromGlobal(This,dwCookie,riid,ppv)
4939 #else
4940 /*** IUnknown methods ***/
4941 static FORCEINLINE HRESULT IGlobalInterfaceTable_QueryInterface(IGlobalInterfaceTable* This,REFIID riid,void **ppvObject) {
4942     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4943 }
4944 static FORCEINLINE ULONG IGlobalInterfaceTable_AddRef(IGlobalInterfaceTable* This) {
4945     return This->lpVtbl->AddRef(This);
4946 }
4947 static FORCEINLINE ULONG IGlobalInterfaceTable_Release(IGlobalInterfaceTable* This) {
4948     return This->lpVtbl->Release(This);
4949 }
4950 /*** IGlobalInterfaceTable methods ***/
4951 static FORCEINLINE HRESULT IGlobalInterfaceTable_RegisterInterfaceInGlobal(IGlobalInterfaceTable* This,IUnknown *pUnk,REFIID riid,DWORD *pdwCookie) {
4952     return This->lpVtbl->RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie);
4953 }
4954 static FORCEINLINE HRESULT IGlobalInterfaceTable_RevokeInterfaceFromGlobal(IGlobalInterfaceTable* This,DWORD dwCookie) {
4955     return This->lpVtbl->RevokeInterfaceFromGlobal(This,dwCookie);
4956 }
4957 static FORCEINLINE HRESULT IGlobalInterfaceTable_GetInterfaceFromGlobal(IGlobalInterfaceTable* This,DWORD dwCookie,REFIID riid,void **ppv) {
4958     return This->lpVtbl->GetInterfaceFromGlobal(This,dwCookie,riid,ppv);
4959 }
4960 #endif
4961 #endif
4962 
4963 #endif
4964 
4965 HRESULT STDMETHODCALLTYPE IGlobalInterfaceTable_RegisterInterfaceInGlobal_Proxy(
4966     IGlobalInterfaceTable* This,
4967     IUnknown *pUnk,
4968     REFIID riid,
4969     DWORD *pdwCookie);
4970 void __RPC_STUB IGlobalInterfaceTable_RegisterInterfaceInGlobal_Stub(
4971     IRpcStubBuffer* This,
4972     IRpcChannelBuffer* pRpcChannelBuffer,
4973     PRPC_MESSAGE pRpcMessage,
4974     DWORD* pdwStubPhase);
4975 HRESULT STDMETHODCALLTYPE IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Proxy(
4976     IGlobalInterfaceTable* This,
4977     DWORD dwCookie);
4978 void __RPC_STUB IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Stub(
4979     IRpcStubBuffer* This,
4980     IRpcChannelBuffer* pRpcChannelBuffer,
4981     PRPC_MESSAGE pRpcMessage,
4982     DWORD* pdwStubPhase);
4983 HRESULT STDMETHODCALLTYPE IGlobalInterfaceTable_GetInterfaceFromGlobal_Proxy(
4984     IGlobalInterfaceTable* This,
4985     DWORD dwCookie,
4986     REFIID riid,
4987     void **ppv);
4988 void __RPC_STUB IGlobalInterfaceTable_GetInterfaceFromGlobal_Stub(
4989     IRpcStubBuffer* This,
4990     IRpcChannelBuffer* pRpcChannelBuffer,
4991     PRPC_MESSAGE pRpcMessage,
4992     DWORD* pdwStubPhase);
4993 
4994 #endif  /* __IGlobalInterfaceTable_INTERFACE_DEFINED__ */
4995 
4996 #endif
4997 
4998 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
4999 /*****************************************************************************
5000  * ISynchronize interface
5001  */
5002 #ifndef __ISynchronize_INTERFACE_DEFINED__
5003 #define __ISynchronize_INTERFACE_DEFINED__
5004 
5005 DEFINE_GUID(IID_ISynchronize, 0x00000030, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5006 #if defined(__cplusplus) && !defined(CINTERFACE)
5007 MIDL_INTERFACE("00000030-0000-0000-c000-000000000046")
5008 ISynchronize : public IUnknown
5009 {
5010     virtual HRESULT STDMETHODCALLTYPE Wait(
5011         DWORD dwFlags,
5012         DWORD dwMilliseconds) = 0;
5013 
5014     virtual HRESULT STDMETHODCALLTYPE Signal(
5015         ) = 0;
5016 
5017     virtual HRESULT STDMETHODCALLTYPE Reset(
5018         ) = 0;
5019 
5020 };
5021 #ifdef __CRT_UUID_DECL
5022 __CRT_UUID_DECL(ISynchronize, 0x00000030, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5023 #endif
5024 #else
5025 typedef struct ISynchronizeVtbl {
5026     BEGIN_INTERFACE
5027 
5028     /*** IUnknown methods ***/
5029     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5030         ISynchronize* This,
5031         REFIID riid,
5032         void **ppvObject);
5033 
5034     ULONG (STDMETHODCALLTYPE *AddRef)(
5035         ISynchronize* This);
5036 
5037     ULONG (STDMETHODCALLTYPE *Release)(
5038         ISynchronize* This);
5039 
5040     /*** ISynchronize methods ***/
5041     HRESULT (STDMETHODCALLTYPE *Wait)(
5042         ISynchronize* This,
5043         DWORD dwFlags,
5044         DWORD dwMilliseconds);
5045 
5046     HRESULT (STDMETHODCALLTYPE *Signal)(
5047         ISynchronize* This);
5048 
5049     HRESULT (STDMETHODCALLTYPE *Reset)(
5050         ISynchronize* This);
5051 
5052     END_INTERFACE
5053 } ISynchronizeVtbl;
5054 interface ISynchronize {
5055     CONST_VTBL ISynchronizeVtbl* lpVtbl;
5056 };
5057 
5058 #ifdef COBJMACROS
5059 #ifndef WIDL_C_INLINE_WRAPPERS
5060 /*** IUnknown methods ***/
5061 #define ISynchronize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5062 #define ISynchronize_AddRef(This) (This)->lpVtbl->AddRef(This)
5063 #define ISynchronize_Release(This) (This)->lpVtbl->Release(This)
5064 /*** ISynchronize methods ***/
5065 #define ISynchronize_Wait(This,dwFlags,dwMilliseconds) (This)->lpVtbl->Wait(This,dwFlags,dwMilliseconds)
5066 #define ISynchronize_Signal(This) (This)->lpVtbl->Signal(This)
5067 #define ISynchronize_Reset(This) (This)->lpVtbl->Reset(This)
5068 #else
5069 /*** IUnknown methods ***/
5070 static FORCEINLINE HRESULT ISynchronize_QueryInterface(ISynchronize* This,REFIID riid,void **ppvObject) {
5071     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5072 }
5073 static FORCEINLINE ULONG ISynchronize_AddRef(ISynchronize* This) {
5074     return This->lpVtbl->AddRef(This);
5075 }
5076 static FORCEINLINE ULONG ISynchronize_Release(ISynchronize* This) {
5077     return This->lpVtbl->Release(This);
5078 }
5079 /*** ISynchronize methods ***/
5080 static FORCEINLINE HRESULT ISynchronize_Wait(ISynchronize* This,DWORD dwFlags,DWORD dwMilliseconds) {
5081     return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
5082 }
5083 static FORCEINLINE HRESULT ISynchronize_Signal(ISynchronize* This) {
5084     return This->lpVtbl->Signal(This);
5085 }
5086 static FORCEINLINE HRESULT ISynchronize_Reset(ISynchronize* This) {
5087     return This->lpVtbl->Reset(This);
5088 }
5089 #endif
5090 #endif
5091 
5092 #endif
5093 
5094 HRESULT STDMETHODCALLTYPE ISynchronize_Wait_Proxy(
5095     ISynchronize* This,
5096     DWORD dwFlags,
5097     DWORD dwMilliseconds);
5098 void __RPC_STUB ISynchronize_Wait_Stub(
5099     IRpcStubBuffer* This,
5100     IRpcChannelBuffer* pRpcChannelBuffer,
5101     PRPC_MESSAGE pRpcMessage,
5102     DWORD* pdwStubPhase);
5103 HRESULT STDMETHODCALLTYPE ISynchronize_Signal_Proxy(
5104     ISynchronize* This);
5105 void __RPC_STUB ISynchronize_Signal_Stub(
5106     IRpcStubBuffer* This,
5107     IRpcChannelBuffer* pRpcChannelBuffer,
5108     PRPC_MESSAGE pRpcMessage,
5109     DWORD* pdwStubPhase);
5110 HRESULT STDMETHODCALLTYPE ISynchronize_Reset_Proxy(
5111     ISynchronize* This);
5112 void __RPC_STUB ISynchronize_Reset_Stub(
5113     IRpcStubBuffer* This,
5114     IRpcChannelBuffer* pRpcChannelBuffer,
5115     PRPC_MESSAGE pRpcMessage,
5116     DWORD* pdwStubPhase);
5117 
5118 #endif  /* __ISynchronize_INTERFACE_DEFINED__ */
5119 
5120 
5121 /*****************************************************************************
5122  * ISynchronizeHandle interface
5123  */
5124 #ifndef __ISynchronizeHandle_INTERFACE_DEFINED__
5125 #define __ISynchronizeHandle_INTERFACE_DEFINED__
5126 
5127 DEFINE_GUID(IID_ISynchronizeHandle, 0x00000031, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5128 #if defined(__cplusplus) && !defined(CINTERFACE)
5129 MIDL_INTERFACE("00000031-0000-0000-c000-000000000046")
5130 ISynchronizeHandle : public IUnknown
5131 {
5132     virtual HRESULT STDMETHODCALLTYPE GetHandle(
5133         HANDLE *ph) = 0;
5134 
5135 };
5136 #ifdef __CRT_UUID_DECL
5137 __CRT_UUID_DECL(ISynchronizeHandle, 0x00000031, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5138 #endif
5139 #else
5140 typedef struct ISynchronizeHandleVtbl {
5141     BEGIN_INTERFACE
5142 
5143     /*** IUnknown methods ***/
5144     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5145         ISynchronizeHandle* This,
5146         REFIID riid,
5147         void **ppvObject);
5148 
5149     ULONG (STDMETHODCALLTYPE *AddRef)(
5150         ISynchronizeHandle* This);
5151 
5152     ULONG (STDMETHODCALLTYPE *Release)(
5153         ISynchronizeHandle* This);
5154 
5155     /*** ISynchronizeHandle methods ***/
5156     HRESULT (STDMETHODCALLTYPE *GetHandle)(
5157         ISynchronizeHandle* This,
5158         HANDLE *ph);
5159 
5160     END_INTERFACE
5161 } ISynchronizeHandleVtbl;
5162 interface ISynchronizeHandle {
5163     CONST_VTBL ISynchronizeHandleVtbl* lpVtbl;
5164 };
5165 
5166 #ifdef COBJMACROS
5167 #ifndef WIDL_C_INLINE_WRAPPERS
5168 /*** IUnknown methods ***/
5169 #define ISynchronizeHandle_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5170 #define ISynchronizeHandle_AddRef(This) (This)->lpVtbl->AddRef(This)
5171 #define ISynchronizeHandle_Release(This) (This)->lpVtbl->Release(This)
5172 /*** ISynchronizeHandle methods ***/
5173 #define ISynchronizeHandle_GetHandle(This,ph) (This)->lpVtbl->GetHandle(This,ph)
5174 #else
5175 /*** IUnknown methods ***/
5176 static FORCEINLINE HRESULT ISynchronizeHandle_QueryInterface(ISynchronizeHandle* This,REFIID riid,void **ppvObject) {
5177     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5178 }
5179 static FORCEINLINE ULONG ISynchronizeHandle_AddRef(ISynchronizeHandle* This) {
5180     return This->lpVtbl->AddRef(This);
5181 }
5182 static FORCEINLINE ULONG ISynchronizeHandle_Release(ISynchronizeHandle* This) {
5183     return This->lpVtbl->Release(This);
5184 }
5185 /*** ISynchronizeHandle methods ***/
5186 static FORCEINLINE HRESULT ISynchronizeHandle_GetHandle(ISynchronizeHandle* This,HANDLE *ph) {
5187     return This->lpVtbl->GetHandle(This,ph);
5188 }
5189 #endif
5190 #endif
5191 
5192 #endif
5193 
5194 HRESULT STDMETHODCALLTYPE ISynchronizeHandle_GetHandle_Proxy(
5195     ISynchronizeHandle* This,
5196     HANDLE *ph);
5197 void __RPC_STUB ISynchronizeHandle_GetHandle_Stub(
5198     IRpcStubBuffer* This,
5199     IRpcChannelBuffer* pRpcChannelBuffer,
5200     PRPC_MESSAGE pRpcMessage,
5201     DWORD* pdwStubPhase);
5202 
5203 #endif  /* __ISynchronizeHandle_INTERFACE_DEFINED__ */
5204 
5205 
5206 /*****************************************************************************
5207  * ISynchronizeEvent interface
5208  */
5209 #ifndef __ISynchronizeEvent_INTERFACE_DEFINED__
5210 #define __ISynchronizeEvent_INTERFACE_DEFINED__
5211 
5212 DEFINE_GUID(IID_ISynchronizeEvent, 0x00000032, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5213 #if defined(__cplusplus) && !defined(CINTERFACE)
5214 MIDL_INTERFACE("00000032-0000-0000-c000-000000000046")
5215 ISynchronizeEvent : public ISynchronizeHandle
5216 {
5217     virtual HRESULT STDMETHODCALLTYPE SetEventHandle(
5218         HANDLE *ph) = 0;
5219 
5220 };
5221 #ifdef __CRT_UUID_DECL
5222 __CRT_UUID_DECL(ISynchronizeEvent, 0x00000032, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5223 #endif
5224 #else
5225 typedef struct ISynchronizeEventVtbl {
5226     BEGIN_INTERFACE
5227 
5228     /*** IUnknown methods ***/
5229     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5230         ISynchronizeEvent* This,
5231         REFIID riid,
5232         void **ppvObject);
5233 
5234     ULONG (STDMETHODCALLTYPE *AddRef)(
5235         ISynchronizeEvent* This);
5236 
5237     ULONG (STDMETHODCALLTYPE *Release)(
5238         ISynchronizeEvent* This);
5239 
5240     /*** ISynchronizeHandle methods ***/
5241     HRESULT (STDMETHODCALLTYPE *GetHandle)(
5242         ISynchronizeEvent* This,
5243         HANDLE *ph);
5244 
5245     /*** ISynchronizeEvent methods ***/
5246     HRESULT (STDMETHODCALLTYPE *SetEventHandle)(
5247         ISynchronizeEvent* This,
5248         HANDLE *ph);
5249 
5250     END_INTERFACE
5251 } ISynchronizeEventVtbl;
5252 interface ISynchronizeEvent {
5253     CONST_VTBL ISynchronizeEventVtbl* lpVtbl;
5254 };
5255 
5256 #ifdef COBJMACROS
5257 #ifndef WIDL_C_INLINE_WRAPPERS
5258 /*** IUnknown methods ***/
5259 #define ISynchronizeEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5260 #define ISynchronizeEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
5261 #define ISynchronizeEvent_Release(This) (This)->lpVtbl->Release(This)
5262 /*** ISynchronizeHandle methods ***/
5263 #define ISynchronizeEvent_GetHandle(This,ph) (This)->lpVtbl->GetHandle(This,ph)
5264 /*** ISynchronizeEvent methods ***/
5265 #define ISynchronizeEvent_SetEventHandle(This,ph) (This)->lpVtbl->SetEventHandle(This,ph)
5266 #else
5267 /*** IUnknown methods ***/
5268 static FORCEINLINE HRESULT ISynchronizeEvent_QueryInterface(ISynchronizeEvent* This,REFIID riid,void **ppvObject) {
5269     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5270 }
5271 static FORCEINLINE ULONG ISynchronizeEvent_AddRef(ISynchronizeEvent* This) {
5272     return This->lpVtbl->AddRef(This);
5273 }
5274 static FORCEINLINE ULONG ISynchronizeEvent_Release(ISynchronizeEvent* This) {
5275     return This->lpVtbl->Release(This);
5276 }
5277 /*** ISynchronizeHandle methods ***/
5278 static FORCEINLINE HRESULT ISynchronizeEvent_GetHandle(ISynchronizeEvent* This,HANDLE *ph) {
5279     return This->lpVtbl->GetHandle(This,ph);
5280 }
5281 /*** ISynchronizeEvent methods ***/
5282 static FORCEINLINE HRESULT ISynchronizeEvent_SetEventHandle(ISynchronizeEvent* This,HANDLE *ph) {
5283     return This->lpVtbl->SetEventHandle(This,ph);
5284 }
5285 #endif
5286 #endif
5287 
5288 #endif
5289 
5290 HRESULT STDMETHODCALLTYPE ISynchronizeEvent_SetEventHandle_Proxy(
5291     ISynchronizeEvent* This,
5292     HANDLE *ph);
5293 void __RPC_STUB ISynchronizeEvent_SetEventHandle_Stub(
5294     IRpcStubBuffer* This,
5295     IRpcChannelBuffer* pRpcChannelBuffer,
5296     PRPC_MESSAGE pRpcMessage,
5297     DWORD* pdwStubPhase);
5298 
5299 #endif  /* __ISynchronizeEvent_INTERFACE_DEFINED__ */
5300 
5301 
5302 /*****************************************************************************
5303  * ISynchronizeContainer interface
5304  */
5305 #ifndef __ISynchronizeContainer_INTERFACE_DEFINED__
5306 #define __ISynchronizeContainer_INTERFACE_DEFINED__
5307 
5308 DEFINE_GUID(IID_ISynchronizeContainer, 0x00000033, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5309 #if defined(__cplusplus) && !defined(CINTERFACE)
5310 MIDL_INTERFACE("00000033-0000-0000-c000-000000000046")
5311 ISynchronizeContainer : public IUnknown
5312 {
5313     virtual HRESULT STDMETHODCALLTYPE AddSynchronize(
5314         ISynchronize *pSync) = 0;
5315 
5316     virtual HRESULT STDMETHODCALLTYPE WaitMultiple(
5317         DWORD dwFlags,
5318         DWORD dwTimeOut,
5319         ISynchronize **ppSync) = 0;
5320 
5321 };
5322 #ifdef __CRT_UUID_DECL
5323 __CRT_UUID_DECL(ISynchronizeContainer, 0x00000033, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5324 #endif
5325 #else
5326 typedef struct ISynchronizeContainerVtbl {
5327     BEGIN_INTERFACE
5328 
5329     /*** IUnknown methods ***/
5330     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5331         ISynchronizeContainer* This,
5332         REFIID riid,
5333         void **ppvObject);
5334 
5335     ULONG (STDMETHODCALLTYPE *AddRef)(
5336         ISynchronizeContainer* This);
5337 
5338     ULONG (STDMETHODCALLTYPE *Release)(
5339         ISynchronizeContainer* This);
5340 
5341     /*** ISynchronizeContainer methods ***/
5342     HRESULT (STDMETHODCALLTYPE *AddSynchronize)(
5343         ISynchronizeContainer* This,
5344         ISynchronize *pSync);
5345 
5346     HRESULT (STDMETHODCALLTYPE *WaitMultiple)(
5347         ISynchronizeContainer* This,
5348         DWORD dwFlags,
5349         DWORD dwTimeOut,
5350         ISynchronize **ppSync);
5351 
5352     END_INTERFACE
5353 } ISynchronizeContainerVtbl;
5354 interface ISynchronizeContainer {
5355     CONST_VTBL ISynchronizeContainerVtbl* lpVtbl;
5356 };
5357 
5358 #ifdef COBJMACROS
5359 #ifndef WIDL_C_INLINE_WRAPPERS
5360 /*** IUnknown methods ***/
5361 #define ISynchronizeContainer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5362 #define ISynchronizeContainer_AddRef(This) (This)->lpVtbl->AddRef(This)
5363 #define ISynchronizeContainer_Release(This) (This)->lpVtbl->Release(This)
5364 /*** ISynchronizeContainer methods ***/
5365 #define ISynchronizeContainer_AddSynchronize(This,pSync) (This)->lpVtbl->AddSynchronize(This,pSync)
5366 #define ISynchronizeContainer_WaitMultiple(This,dwFlags,dwTimeOut,ppSync) (This)->lpVtbl->WaitMultiple(This,dwFlags,dwTimeOut,ppSync)
5367 #else
5368 /*** IUnknown methods ***/
5369 static FORCEINLINE HRESULT ISynchronizeContainer_QueryInterface(ISynchronizeContainer* This,REFIID riid,void **ppvObject) {
5370     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5371 }
5372 static FORCEINLINE ULONG ISynchronizeContainer_AddRef(ISynchronizeContainer* This) {
5373     return This->lpVtbl->AddRef(This);
5374 }
5375 static FORCEINLINE ULONG ISynchronizeContainer_Release(ISynchronizeContainer* This) {
5376     return This->lpVtbl->Release(This);
5377 }
5378 /*** ISynchronizeContainer methods ***/
5379 static FORCEINLINE HRESULT ISynchronizeContainer_AddSynchronize(ISynchronizeContainer* This,ISynchronize *pSync) {
5380     return This->lpVtbl->AddSynchronize(This,pSync);
5381 }
5382 static FORCEINLINE HRESULT ISynchronizeContainer_WaitMultiple(ISynchronizeContainer* This,DWORD dwFlags,DWORD dwTimeOut,ISynchronize **ppSync) {
5383     return This->lpVtbl->WaitMultiple(This,dwFlags,dwTimeOut,ppSync);
5384 }
5385 #endif
5386 #endif
5387 
5388 #endif
5389 
5390 HRESULT STDMETHODCALLTYPE ISynchronizeContainer_AddSynchronize_Proxy(
5391     ISynchronizeContainer* This,
5392     ISynchronize *pSync);
5393 void __RPC_STUB ISynchronizeContainer_AddSynchronize_Stub(
5394     IRpcStubBuffer* This,
5395     IRpcChannelBuffer* pRpcChannelBuffer,
5396     PRPC_MESSAGE pRpcMessage,
5397     DWORD* pdwStubPhase);
5398 HRESULT STDMETHODCALLTYPE ISynchronizeContainer_WaitMultiple_Proxy(
5399     ISynchronizeContainer* This,
5400     DWORD dwFlags,
5401     DWORD dwTimeOut,
5402     ISynchronize **ppSync);
5403 void __RPC_STUB ISynchronizeContainer_WaitMultiple_Stub(
5404     IRpcStubBuffer* This,
5405     IRpcChannelBuffer* pRpcChannelBuffer,
5406     PRPC_MESSAGE pRpcMessage,
5407     DWORD* pdwStubPhase);
5408 
5409 #endif  /* __ISynchronizeContainer_INTERFACE_DEFINED__ */
5410 
5411 
5412 /*****************************************************************************
5413  * ISynchronizeMutex interface
5414  */
5415 #ifndef __ISynchronizeMutex_INTERFACE_DEFINED__
5416 #define __ISynchronizeMutex_INTERFACE_DEFINED__
5417 
5418 DEFINE_GUID(IID_ISynchronizeMutex, 0x00000025, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5419 #if defined(__cplusplus) && !defined(CINTERFACE)
5420 MIDL_INTERFACE("00000025-0000-0000-c000-000000000046")
5421 ISynchronizeMutex : public ISynchronize
5422 {
5423     virtual HRESULT STDMETHODCALLTYPE ReleaseMutex(
5424         ) = 0;
5425 
5426 };
5427 #ifdef __CRT_UUID_DECL
5428 __CRT_UUID_DECL(ISynchronizeMutex, 0x00000025, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5429 #endif
5430 #else
5431 typedef struct ISynchronizeMutexVtbl {
5432     BEGIN_INTERFACE
5433 
5434     /*** IUnknown methods ***/
5435     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5436         ISynchronizeMutex* This,
5437         REFIID riid,
5438         void **ppvObject);
5439 
5440     ULONG (STDMETHODCALLTYPE *AddRef)(
5441         ISynchronizeMutex* This);
5442 
5443     ULONG (STDMETHODCALLTYPE *Release)(
5444         ISynchronizeMutex* This);
5445 
5446     /*** ISynchronize methods ***/
5447     HRESULT (STDMETHODCALLTYPE *Wait)(
5448         ISynchronizeMutex* This,
5449         DWORD dwFlags,
5450         DWORD dwMilliseconds);
5451 
5452     HRESULT (STDMETHODCALLTYPE *Signal)(
5453         ISynchronizeMutex* This);
5454 
5455     HRESULT (STDMETHODCALLTYPE *Reset)(
5456         ISynchronizeMutex* This);
5457 
5458     /*** ISynchronizeMutex methods ***/
5459     HRESULT (STDMETHODCALLTYPE *ReleaseMutex)(
5460         ISynchronizeMutex* This);
5461 
5462     END_INTERFACE
5463 } ISynchronizeMutexVtbl;
5464 interface ISynchronizeMutex {
5465     CONST_VTBL ISynchronizeMutexVtbl* lpVtbl;
5466 };
5467 
5468 #ifdef COBJMACROS
5469 #ifndef WIDL_C_INLINE_WRAPPERS
5470 /*** IUnknown methods ***/
5471 #define ISynchronizeMutex_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5472 #define ISynchronizeMutex_AddRef(This) (This)->lpVtbl->AddRef(This)
5473 #define ISynchronizeMutex_Release(This) (This)->lpVtbl->Release(This)
5474 /*** ISynchronize methods ***/
5475 #define ISynchronizeMutex_Wait(This,dwFlags,dwMilliseconds) (This)->lpVtbl->Wait(This,dwFlags,dwMilliseconds)
5476 #define ISynchronizeMutex_Signal(This) (This)->lpVtbl->Signal(This)
5477 #define ISynchronizeMutex_Reset(This) (This)->lpVtbl->Reset(This)
5478 /*** ISynchronizeMutex methods ***/
5479 #define ISynchronizeMutex_ReleaseMutex(This) (This)->lpVtbl->ReleaseMutex(This)
5480 #else
5481 /*** IUnknown methods ***/
5482 static FORCEINLINE HRESULT ISynchronizeMutex_QueryInterface(ISynchronizeMutex* This,REFIID riid,void **ppvObject) {
5483     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5484 }
5485 static FORCEINLINE ULONG ISynchronizeMutex_AddRef(ISynchronizeMutex* This) {
5486     return This->lpVtbl->AddRef(This);
5487 }
5488 static FORCEINLINE ULONG ISynchronizeMutex_Release(ISynchronizeMutex* This) {
5489     return This->lpVtbl->Release(This);
5490 }
5491 /*** ISynchronize methods ***/
5492 static FORCEINLINE HRESULT ISynchronizeMutex_Wait(ISynchronizeMutex* This,DWORD dwFlags,DWORD dwMilliseconds) {
5493     return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
5494 }
5495 static FORCEINLINE HRESULT ISynchronizeMutex_Signal(ISynchronizeMutex* This) {
5496     return This->lpVtbl->Signal(This);
5497 }
5498 static FORCEINLINE HRESULT ISynchronizeMutex_Reset(ISynchronizeMutex* This) {
5499     return This->lpVtbl->Reset(This);
5500 }
5501 /*** ISynchronizeMutex methods ***/
5502 static FORCEINLINE HRESULT ISynchronizeMutex_ReleaseMutex(ISynchronizeMutex* This) {
5503     return This->lpVtbl->ReleaseMutex(This);
5504 }
5505 #endif
5506 #endif
5507 
5508 #endif
5509 
5510 HRESULT STDMETHODCALLTYPE ISynchronizeMutex_ReleaseMutex_Proxy(
5511     ISynchronizeMutex* This);
5512 void __RPC_STUB ISynchronizeMutex_ReleaseMutex_Stub(
5513     IRpcStubBuffer* This,
5514     IRpcChannelBuffer* pRpcChannelBuffer,
5515     PRPC_MESSAGE pRpcMessage,
5516     DWORD* pdwStubPhase);
5517 
5518 #endif  /* __ISynchronizeMutex_INTERFACE_DEFINED__ */
5519 
5520 
5521 /*****************************************************************************
5522  * ICancelMethodCalls interface
5523  */
5524 #ifndef __ICancelMethodCalls_INTERFACE_DEFINED__
5525 #define __ICancelMethodCalls_INTERFACE_DEFINED__
5526 
5527 typedef ICancelMethodCalls *LPCANCELMETHODCALLS;
5528 
5529 DEFINE_GUID(IID_ICancelMethodCalls, 0x00000029, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5530 #if defined(__cplusplus) && !defined(CINTERFACE)
5531 MIDL_INTERFACE("00000029-0000-0000-c000-000000000046")
5532 ICancelMethodCalls : public IUnknown
5533 {
5534     virtual HRESULT STDMETHODCALLTYPE Cancel(
5535         ULONG ulSeconds) = 0;
5536 
5537     virtual HRESULT STDMETHODCALLTYPE TestCancel(
5538         ) = 0;
5539 
5540 };
5541 #ifdef __CRT_UUID_DECL
5542 __CRT_UUID_DECL(ICancelMethodCalls, 0x00000029, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5543 #endif
5544 #else
5545 typedef struct ICancelMethodCallsVtbl {
5546     BEGIN_INTERFACE
5547 
5548     /*** IUnknown methods ***/
5549     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5550         ICancelMethodCalls* This,
5551         REFIID riid,
5552         void **ppvObject);
5553 
5554     ULONG (STDMETHODCALLTYPE *AddRef)(
5555         ICancelMethodCalls* This);
5556 
5557     ULONG (STDMETHODCALLTYPE *Release)(
5558         ICancelMethodCalls* This);
5559 
5560     /*** ICancelMethodCalls methods ***/
5561     HRESULT (STDMETHODCALLTYPE *Cancel)(
5562         ICancelMethodCalls* This,
5563         ULONG ulSeconds);
5564 
5565     HRESULT (STDMETHODCALLTYPE *TestCancel)(
5566         ICancelMethodCalls* This);
5567 
5568     END_INTERFACE
5569 } ICancelMethodCallsVtbl;
5570 interface ICancelMethodCalls {
5571     CONST_VTBL ICancelMethodCallsVtbl* lpVtbl;
5572 };
5573 
5574 #ifdef COBJMACROS
5575 #ifndef WIDL_C_INLINE_WRAPPERS
5576 /*** IUnknown methods ***/
5577 #define ICancelMethodCalls_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5578 #define ICancelMethodCalls_AddRef(This) (This)->lpVtbl->AddRef(This)
5579 #define ICancelMethodCalls_Release(This) (This)->lpVtbl->Release(This)
5580 /*** ICancelMethodCalls methods ***/
5581 #define ICancelMethodCalls_Cancel(This,ulSeconds) (This)->lpVtbl->Cancel(This,ulSeconds)
5582 #define ICancelMethodCalls_TestCancel(This) (This)->lpVtbl->TestCancel(This)
5583 #else
5584 /*** IUnknown methods ***/
5585 static FORCEINLINE HRESULT ICancelMethodCalls_QueryInterface(ICancelMethodCalls* This,REFIID riid,void **ppvObject) {
5586     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5587 }
5588 static FORCEINLINE ULONG ICancelMethodCalls_AddRef(ICancelMethodCalls* This) {
5589     return This->lpVtbl->AddRef(This);
5590 }
5591 static FORCEINLINE ULONG ICancelMethodCalls_Release(ICancelMethodCalls* This) {
5592     return This->lpVtbl->Release(This);
5593 }
5594 /*** ICancelMethodCalls methods ***/
5595 static FORCEINLINE HRESULT ICancelMethodCalls_Cancel(ICancelMethodCalls* This,ULONG ulSeconds) {
5596     return This->lpVtbl->Cancel(This,ulSeconds);
5597 }
5598 static FORCEINLINE HRESULT ICancelMethodCalls_TestCancel(ICancelMethodCalls* This) {
5599     return This->lpVtbl->TestCancel(This);
5600 }
5601 #endif
5602 #endif
5603 
5604 #endif
5605 
5606 HRESULT STDMETHODCALLTYPE ICancelMethodCalls_Cancel_Proxy(
5607     ICancelMethodCalls* This,
5608     ULONG ulSeconds);
5609 void __RPC_STUB ICancelMethodCalls_Cancel_Stub(
5610     IRpcStubBuffer* This,
5611     IRpcChannelBuffer* pRpcChannelBuffer,
5612     PRPC_MESSAGE pRpcMessage,
5613     DWORD* pdwStubPhase);
5614 HRESULT STDMETHODCALLTYPE ICancelMethodCalls_TestCancel_Proxy(
5615     ICancelMethodCalls* This);
5616 void __RPC_STUB ICancelMethodCalls_TestCancel_Stub(
5617     IRpcStubBuffer* This,
5618     IRpcChannelBuffer* pRpcChannelBuffer,
5619     PRPC_MESSAGE pRpcMessage,
5620     DWORD* pdwStubPhase);
5621 
5622 #endif  /* __ICancelMethodCalls_INTERFACE_DEFINED__ */
5623 
5624 
5625 /*****************************************************************************
5626  * IAsyncManager interface
5627  */
5628 #ifndef __IAsyncManager_INTERFACE_DEFINED__
5629 #define __IAsyncManager_INTERFACE_DEFINED__
5630 
5631 typedef enum tagDCOM_CALL_STATE {
5632     DCOM_NONE = 0x0,
5633     DCOM_CALL_COMPLETE = 0x1,
5634     DCOM_CALL_CANCELED = 0x2
5635 } DCOM_CALL_STATE;
5636 
5637 DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5638 #if defined(__cplusplus) && !defined(CINTERFACE)
5639 MIDL_INTERFACE("0000002a-0000-0000-c000-000000000046")
5640 IAsyncManager : public IUnknown
5641 {
5642     virtual HRESULT STDMETHODCALLTYPE CompleteCall(
5643         HRESULT Result) = 0;
5644 
5645     virtual HRESULT STDMETHODCALLTYPE GetCallContext(
5646         REFIID riid,
5647         void **pInterface) = 0;
5648 
5649     virtual HRESULT STDMETHODCALLTYPE GetState(
5650         ULONG *pulStateFlags) = 0;
5651 
5652 };
5653 #ifdef __CRT_UUID_DECL
5654 __CRT_UUID_DECL(IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5655 #endif
5656 #else
5657 typedef struct IAsyncManagerVtbl {
5658     BEGIN_INTERFACE
5659 
5660     /*** IUnknown methods ***/
5661     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5662         IAsyncManager* This,
5663         REFIID riid,
5664         void **ppvObject);
5665 
5666     ULONG (STDMETHODCALLTYPE *AddRef)(
5667         IAsyncManager* This);
5668 
5669     ULONG (STDMETHODCALLTYPE *Release)(
5670         IAsyncManager* This);
5671 
5672     /*** IAsyncManager methods ***/
5673     HRESULT (STDMETHODCALLTYPE *CompleteCall)(
5674         IAsyncManager* This,
5675         HRESULT Result);
5676 
5677     HRESULT (STDMETHODCALLTYPE *GetCallContext)(
5678         IAsyncManager* This,
5679         REFIID riid,
5680         void **pInterface);
5681 
5682     HRESULT (STDMETHODCALLTYPE *GetState)(
5683         IAsyncManager* This,
5684         ULONG *pulStateFlags);
5685 
5686     END_INTERFACE
5687 } IAsyncManagerVtbl;
5688 interface IAsyncManager {
5689     CONST_VTBL IAsyncManagerVtbl* lpVtbl;
5690 };
5691 
5692 #ifdef COBJMACROS
5693 #ifndef WIDL_C_INLINE_WRAPPERS
5694 /*** IUnknown methods ***/
5695 #define IAsyncManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5696 #define IAsyncManager_AddRef(This) (This)->lpVtbl->AddRef(This)
5697 #define IAsyncManager_Release(This) (This)->lpVtbl->Release(This)
5698 /*** IAsyncManager methods ***/
5699 #define IAsyncManager_CompleteCall(This,Result) (This)->lpVtbl->CompleteCall(This,Result)
5700 #define IAsyncManager_GetCallContext(This,riid,pInterface) (This)->lpVtbl->GetCallContext(This,riid,pInterface)
5701 #define IAsyncManager_GetState(This,pulStateFlags) (This)->lpVtbl->GetState(This,pulStateFlags)
5702 #else
5703 /*** IUnknown methods ***/
5704 static FORCEINLINE HRESULT IAsyncManager_QueryInterface(IAsyncManager* This,REFIID riid,void **ppvObject) {
5705     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5706 }
5707 static FORCEINLINE ULONG IAsyncManager_AddRef(IAsyncManager* This) {
5708     return This->lpVtbl->AddRef(This);
5709 }
5710 static FORCEINLINE ULONG IAsyncManager_Release(IAsyncManager* This) {
5711     return This->lpVtbl->Release(This);
5712 }
5713 /*** IAsyncManager methods ***/
5714 static FORCEINLINE HRESULT IAsyncManager_CompleteCall(IAsyncManager* This,HRESULT Result) {
5715     return This->lpVtbl->CompleteCall(This,Result);
5716 }
5717 static FORCEINLINE HRESULT IAsyncManager_GetCallContext(IAsyncManager* This,REFIID riid,void **pInterface) {
5718     return This->lpVtbl->GetCallContext(This,riid,pInterface);
5719 }
5720 static FORCEINLINE HRESULT IAsyncManager_GetState(IAsyncManager* This,ULONG *pulStateFlags) {
5721     return This->lpVtbl->GetState(This,pulStateFlags);
5722 }
5723 #endif
5724 #endif
5725 
5726 #endif
5727 
5728 HRESULT STDMETHODCALLTYPE IAsyncManager_CompleteCall_Proxy(
5729     IAsyncManager* This,
5730     HRESULT Result);
5731 void __RPC_STUB IAsyncManager_CompleteCall_Stub(
5732     IRpcStubBuffer* This,
5733     IRpcChannelBuffer* pRpcChannelBuffer,
5734     PRPC_MESSAGE pRpcMessage,
5735     DWORD* pdwStubPhase);
5736 HRESULT STDMETHODCALLTYPE IAsyncManager_GetCallContext_Proxy(
5737     IAsyncManager* This,
5738     REFIID riid,
5739     void **pInterface);
5740 void __RPC_STUB IAsyncManager_GetCallContext_Stub(
5741     IRpcStubBuffer* This,
5742     IRpcChannelBuffer* pRpcChannelBuffer,
5743     PRPC_MESSAGE pRpcMessage,
5744     DWORD* pdwStubPhase);
5745 HRESULT STDMETHODCALLTYPE IAsyncManager_GetState_Proxy(
5746     IAsyncManager* This,
5747     ULONG *pulStateFlags);
5748 void __RPC_STUB IAsyncManager_GetState_Stub(
5749     IRpcStubBuffer* This,
5750     IRpcChannelBuffer* pRpcChannelBuffer,
5751     PRPC_MESSAGE pRpcMessage,
5752     DWORD* pdwStubPhase);
5753 
5754 #endif  /* __IAsyncManager_INTERFACE_DEFINED__ */
5755 
5756 
5757 /*****************************************************************************
5758  * ICallFactory interface
5759  */
5760 #ifndef __ICallFactory_INTERFACE_DEFINED__
5761 #define __ICallFactory_INTERFACE_DEFINED__
5762 
5763 DEFINE_GUID(IID_ICallFactory, 0x1c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
5764 #if defined(__cplusplus) && !defined(CINTERFACE)
5765 MIDL_INTERFACE("1c733a30-2a1c-11ce-ade5-00aa0044773d")
5766 ICallFactory : public IUnknown
5767 {
5768     virtual HRESULT STDMETHODCALLTYPE CreateCall(
5769         REFIID riid,
5770         IUnknown *pCtrlUnk,
5771         REFIID riid2,
5772         IUnknown **ppv) = 0;
5773 
5774 };
5775 #ifdef __CRT_UUID_DECL
5776 __CRT_UUID_DECL(ICallFactory, 0x1c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d)
5777 #endif
5778 #else
5779 typedef struct ICallFactoryVtbl {
5780     BEGIN_INTERFACE
5781 
5782     /*** IUnknown methods ***/
5783     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5784         ICallFactory* This,
5785         REFIID riid,
5786         void **ppvObject);
5787 
5788     ULONG (STDMETHODCALLTYPE *AddRef)(
5789         ICallFactory* This);
5790 
5791     ULONG (STDMETHODCALLTYPE *Release)(
5792         ICallFactory* This);
5793 
5794     /*** ICallFactory methods ***/
5795     HRESULT (STDMETHODCALLTYPE *CreateCall)(
5796         ICallFactory* This,
5797         REFIID riid,
5798         IUnknown *pCtrlUnk,
5799         REFIID riid2,
5800         IUnknown **ppv);
5801 
5802     END_INTERFACE
5803 } ICallFactoryVtbl;
5804 interface ICallFactory {
5805     CONST_VTBL ICallFactoryVtbl* lpVtbl;
5806 };
5807 
5808 #ifdef COBJMACROS
5809 #ifndef WIDL_C_INLINE_WRAPPERS
5810 /*** IUnknown methods ***/
5811 #define ICallFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5812 #define ICallFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
5813 #define ICallFactory_Release(This) (This)->lpVtbl->Release(This)
5814 /*** ICallFactory methods ***/
5815 #define ICallFactory_CreateCall(This,riid,pCtrlUnk,riid2,ppv) (This)->lpVtbl->CreateCall(This,riid,pCtrlUnk,riid2,ppv)
5816 #else
5817 /*** IUnknown methods ***/
5818 static FORCEINLINE HRESULT ICallFactory_QueryInterface(ICallFactory* This,REFIID riid,void **ppvObject) {
5819     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5820 }
5821 static FORCEINLINE ULONG ICallFactory_AddRef(ICallFactory* This) {
5822     return This->lpVtbl->AddRef(This);
5823 }
5824 static FORCEINLINE ULONG ICallFactory_Release(ICallFactory* This) {
5825     return This->lpVtbl->Release(This);
5826 }
5827 /*** ICallFactory methods ***/
5828 static FORCEINLINE HRESULT ICallFactory_CreateCall(ICallFactory* This,REFIID riid,IUnknown *pCtrlUnk,REFIID riid2,IUnknown **ppv) {
5829     return This->lpVtbl->CreateCall(This,riid,pCtrlUnk,riid2,ppv);
5830 }
5831 #endif
5832 #endif
5833 
5834 #endif
5835 
5836 HRESULT STDMETHODCALLTYPE ICallFactory_CreateCall_Proxy(
5837     ICallFactory* This,
5838     REFIID riid,
5839     IUnknown *pCtrlUnk,
5840     REFIID riid2,
5841     IUnknown **ppv);
5842 void __RPC_STUB ICallFactory_CreateCall_Stub(
5843     IRpcStubBuffer* This,
5844     IRpcChannelBuffer* pRpcChannelBuffer,
5845     PRPC_MESSAGE pRpcMessage,
5846     DWORD* pdwStubPhase);
5847 
5848 #endif  /* __ICallFactory_INTERFACE_DEFINED__ */
5849 
5850 
5851 /*****************************************************************************
5852  * IRpcHelper interface
5853  */
5854 #ifndef __IRpcHelper_INTERFACE_DEFINED__
5855 #define __IRpcHelper_INTERFACE_DEFINED__
5856 
5857 DEFINE_GUID(IID_IRpcHelper, 0x00000149, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5858 #if defined(__cplusplus) && !defined(CINTERFACE)
5859 MIDL_INTERFACE("00000149-0000-0000-c000-000000000046")
5860 IRpcHelper : public IUnknown
5861 {
5862     virtual HRESULT STDMETHODCALLTYPE GetDCOMProtocolVersion(
5863         DWORD *pComVersion) = 0;
5864 
5865     virtual HRESULT STDMETHODCALLTYPE GetIIDFromOBJREF(
5866         void *pObjRef,
5867         IID **piid) = 0;
5868 
5869 };
5870 #ifdef __CRT_UUID_DECL
5871 __CRT_UUID_DECL(IRpcHelper, 0x00000149, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5872 #endif
5873 #else
5874 typedef struct IRpcHelperVtbl {
5875     BEGIN_INTERFACE
5876 
5877     /*** IUnknown methods ***/
5878     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5879         IRpcHelper* This,
5880         REFIID riid,
5881         void **ppvObject);
5882 
5883     ULONG (STDMETHODCALLTYPE *AddRef)(
5884         IRpcHelper* This);
5885 
5886     ULONG (STDMETHODCALLTYPE *Release)(
5887         IRpcHelper* This);
5888 
5889     /*** IRpcHelper methods ***/
5890     HRESULT (STDMETHODCALLTYPE *GetDCOMProtocolVersion)(
5891         IRpcHelper* This,
5892         DWORD *pComVersion);
5893 
5894     HRESULT (STDMETHODCALLTYPE *GetIIDFromOBJREF)(
5895         IRpcHelper* This,
5896         void *pObjRef,
5897         IID **piid);
5898 
5899     END_INTERFACE
5900 } IRpcHelperVtbl;
5901 interface IRpcHelper {
5902     CONST_VTBL IRpcHelperVtbl* lpVtbl;
5903 };
5904 
5905 #ifdef COBJMACROS
5906 #ifndef WIDL_C_INLINE_WRAPPERS
5907 /*** IUnknown methods ***/
5908 #define IRpcHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5909 #define IRpcHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
5910 #define IRpcHelper_Release(This) (This)->lpVtbl->Release(This)
5911 /*** IRpcHelper methods ***/
5912 #define IRpcHelper_GetDCOMProtocolVersion(This,pComVersion) (This)->lpVtbl->GetDCOMProtocolVersion(This,pComVersion)
5913 #define IRpcHelper_GetIIDFromOBJREF(This,pObjRef,piid) (This)->lpVtbl->GetIIDFromOBJREF(This,pObjRef,piid)
5914 #else
5915 /*** IUnknown methods ***/
5916 static FORCEINLINE HRESULT IRpcHelper_QueryInterface(IRpcHelper* This,REFIID riid,void **ppvObject) {
5917     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5918 }
5919 static FORCEINLINE ULONG IRpcHelper_AddRef(IRpcHelper* This) {
5920     return This->lpVtbl->AddRef(This);
5921 }
5922 static FORCEINLINE ULONG IRpcHelper_Release(IRpcHelper* This) {
5923     return This->lpVtbl->Release(This);
5924 }
5925 /*** IRpcHelper methods ***/
5926 static FORCEINLINE HRESULT IRpcHelper_GetDCOMProtocolVersion(IRpcHelper* This,DWORD *pComVersion) {
5927     return This->lpVtbl->GetDCOMProtocolVersion(This,pComVersion);
5928 }
5929 static FORCEINLINE HRESULT IRpcHelper_GetIIDFromOBJREF(IRpcHelper* This,void *pObjRef,IID **piid) {
5930     return This->lpVtbl->GetIIDFromOBJREF(This,pObjRef,piid);
5931 }
5932 #endif
5933 #endif
5934 
5935 #endif
5936 
5937 HRESULT STDMETHODCALLTYPE IRpcHelper_GetDCOMProtocolVersion_Proxy(
5938     IRpcHelper* This,
5939     DWORD *pComVersion);
5940 void __RPC_STUB IRpcHelper_GetDCOMProtocolVersion_Stub(
5941     IRpcStubBuffer* This,
5942     IRpcChannelBuffer* pRpcChannelBuffer,
5943     PRPC_MESSAGE pRpcMessage,
5944     DWORD* pdwStubPhase);
5945 HRESULT STDMETHODCALLTYPE IRpcHelper_GetIIDFromOBJREF_Proxy(
5946     IRpcHelper* This,
5947     void *pObjRef,
5948     IID **piid);
5949 void __RPC_STUB IRpcHelper_GetIIDFromOBJREF_Stub(
5950     IRpcStubBuffer* This,
5951     IRpcChannelBuffer* pRpcChannelBuffer,
5952     PRPC_MESSAGE pRpcMessage,
5953     DWORD* pdwStubPhase);
5954 
5955 #endif  /* __IRpcHelper_INTERFACE_DEFINED__ */
5956 
5957 
5958 /*****************************************************************************
5959  * IReleaseMarshalBuffers interface
5960  */
5961 #ifndef __IReleaseMarshalBuffers_INTERFACE_DEFINED__
5962 #define __IReleaseMarshalBuffers_INTERFACE_DEFINED__
5963 
5964 DEFINE_GUID(IID_IReleaseMarshalBuffers, 0xeb0cb9e8, 0x7996, 0x11d2, 0x87,0x2e, 0x00,0x00,0xf8,0x08,0x08,0x59);
5965 #if defined(__cplusplus) && !defined(CINTERFACE)
5966 MIDL_INTERFACE("eb0cb9e8-7996-11d2-872e-0000f8080859")
5967 IReleaseMarshalBuffers : public IUnknown
5968 {
5969     virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalBuffer(
5970         RPCOLEMESSAGE *pMsg,
5971         DWORD dwFlags,
5972         IUnknown *pChnl) = 0;
5973 
5974 };
5975 #ifdef __CRT_UUID_DECL
5976 __CRT_UUID_DECL(IReleaseMarshalBuffers, 0xeb0cb9e8, 0x7996, 0x11d2, 0x87,0x2e, 0x00,0x00,0xf8,0x08,0x08,0x59)
5977 #endif
5978 #else
5979 typedef struct IReleaseMarshalBuffersVtbl {
5980     BEGIN_INTERFACE
5981 
5982     /*** IUnknown methods ***/
5983     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5984         IReleaseMarshalBuffers* This,
5985         REFIID riid,
5986         void **ppvObject);
5987 
5988     ULONG (STDMETHODCALLTYPE *AddRef)(
5989         IReleaseMarshalBuffers* This);
5990 
5991     ULONG (STDMETHODCALLTYPE *Release)(
5992         IReleaseMarshalBuffers* This);
5993 
5994     /*** IReleaseMarshalBuffers methods ***/
5995     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalBuffer)(
5996         IReleaseMarshalBuffers* This,
5997         RPCOLEMESSAGE *pMsg,
5998         DWORD dwFlags,
5999         IUnknown *pChnl);
6000 
6001     END_INTERFACE
6002 } IReleaseMarshalBuffersVtbl;
6003 interface IReleaseMarshalBuffers {
6004     CONST_VTBL IReleaseMarshalBuffersVtbl* lpVtbl;
6005 };
6006 
6007 #ifdef COBJMACROS
6008 #ifndef WIDL_C_INLINE_WRAPPERS
6009 /*** IUnknown methods ***/
6010 #define IReleaseMarshalBuffers_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6011 #define IReleaseMarshalBuffers_AddRef(This) (This)->lpVtbl->AddRef(This)
6012 #define IReleaseMarshalBuffers_Release(This) (This)->lpVtbl->Release(This)
6013 /*** IReleaseMarshalBuffers methods ***/
6014 #define IReleaseMarshalBuffers_ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl) (This)->lpVtbl->ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl)
6015 #else
6016 /*** IUnknown methods ***/
6017 static FORCEINLINE HRESULT IReleaseMarshalBuffers_QueryInterface(IReleaseMarshalBuffers* This,REFIID riid,void **ppvObject) {
6018     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6019 }
6020 static FORCEINLINE ULONG IReleaseMarshalBuffers_AddRef(IReleaseMarshalBuffers* This) {
6021     return This->lpVtbl->AddRef(This);
6022 }
6023 static FORCEINLINE ULONG IReleaseMarshalBuffers_Release(IReleaseMarshalBuffers* This) {
6024     return This->lpVtbl->Release(This);
6025 }
6026 /*** IReleaseMarshalBuffers methods ***/
6027 static FORCEINLINE HRESULT IReleaseMarshalBuffers_ReleaseMarshalBuffer(IReleaseMarshalBuffers* This,RPCOLEMESSAGE *pMsg,DWORD dwFlags,IUnknown *pChnl) {
6028     return This->lpVtbl->ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl);
6029 }
6030 #endif
6031 #endif
6032 
6033 #endif
6034 
6035 HRESULT STDMETHODCALLTYPE IReleaseMarshalBuffers_ReleaseMarshalBuffer_Proxy(
6036     IReleaseMarshalBuffers* This,
6037     RPCOLEMESSAGE *pMsg,
6038     DWORD dwFlags,
6039     IUnknown *pChnl);
6040 void __RPC_STUB IReleaseMarshalBuffers_ReleaseMarshalBuffer_Stub(
6041     IRpcStubBuffer* This,
6042     IRpcChannelBuffer* pRpcChannelBuffer,
6043     PRPC_MESSAGE pRpcMessage,
6044     DWORD* pdwStubPhase);
6045 
6046 #endif  /* __IReleaseMarshalBuffers_INTERFACE_DEFINED__ */
6047 
6048 
6049 /*****************************************************************************
6050  * IWaitMultiple interface
6051  */
6052 #ifndef __IWaitMultiple_INTERFACE_DEFINED__
6053 #define __IWaitMultiple_INTERFACE_DEFINED__
6054 
6055 DEFINE_GUID(IID_IWaitMultiple, 0x0000002b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6056 #if defined(__cplusplus) && !defined(CINTERFACE)
6057 MIDL_INTERFACE("0000002b-0000-0000-c000-000000000046")
6058 IWaitMultiple : public IUnknown
6059 {
6060     virtual HRESULT STDMETHODCALLTYPE WaitMultiple(
6061         DWORD timeout,
6062         ISynchronize **pSync) = 0;
6063 
6064     virtual HRESULT STDMETHODCALLTYPE AddSynchronize(
6065         ISynchronize *pSync) = 0;
6066 
6067 };
6068 #ifdef __CRT_UUID_DECL
6069 __CRT_UUID_DECL(IWaitMultiple, 0x0000002b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6070 #endif
6071 #else
6072 typedef struct IWaitMultipleVtbl {
6073     BEGIN_INTERFACE
6074 
6075     /*** IUnknown methods ***/
6076     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6077         IWaitMultiple* This,
6078         REFIID riid,
6079         void **ppvObject);
6080 
6081     ULONG (STDMETHODCALLTYPE *AddRef)(
6082         IWaitMultiple* This);
6083 
6084     ULONG (STDMETHODCALLTYPE *Release)(
6085         IWaitMultiple* This);
6086 
6087     /*** IWaitMultiple methods ***/
6088     HRESULT (STDMETHODCALLTYPE *WaitMultiple)(
6089         IWaitMultiple* This,
6090         DWORD timeout,
6091         ISynchronize **pSync);
6092 
6093     HRESULT (STDMETHODCALLTYPE *AddSynchronize)(
6094         IWaitMultiple* This,
6095         ISynchronize *pSync);
6096 
6097     END_INTERFACE
6098 } IWaitMultipleVtbl;
6099 interface IWaitMultiple {
6100     CONST_VTBL IWaitMultipleVtbl* lpVtbl;
6101 };
6102 
6103 #ifdef COBJMACROS
6104 #ifndef WIDL_C_INLINE_WRAPPERS
6105 /*** IUnknown methods ***/
6106 #define IWaitMultiple_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6107 #define IWaitMultiple_AddRef(This) (This)->lpVtbl->AddRef(This)
6108 #define IWaitMultiple_Release(This) (This)->lpVtbl->Release(This)
6109 /*** IWaitMultiple methods ***/
6110 #define IWaitMultiple_WaitMultiple(This,timeout,pSync) (This)->lpVtbl->WaitMultiple(This,timeout,pSync)
6111 #define IWaitMultiple_AddSynchronize(This,pSync) (This)->lpVtbl->AddSynchronize(This,pSync)
6112 #else
6113 /*** IUnknown methods ***/
6114 static FORCEINLINE HRESULT IWaitMultiple_QueryInterface(IWaitMultiple* This,REFIID riid,void **ppvObject) {
6115     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6116 }
6117 static FORCEINLINE ULONG IWaitMultiple_AddRef(IWaitMultiple* This) {
6118     return This->lpVtbl->AddRef(This);
6119 }
6120 static FORCEINLINE ULONG IWaitMultiple_Release(IWaitMultiple* This) {
6121     return This->lpVtbl->Release(This);
6122 }
6123 /*** IWaitMultiple methods ***/
6124 static FORCEINLINE HRESULT IWaitMultiple_WaitMultiple(IWaitMultiple* This,DWORD timeout,ISynchronize **pSync) {
6125     return This->lpVtbl->WaitMultiple(This,timeout,pSync);
6126 }
6127 static FORCEINLINE HRESULT IWaitMultiple_AddSynchronize(IWaitMultiple* This,ISynchronize *pSync) {
6128     return This->lpVtbl->AddSynchronize(This,pSync);
6129 }
6130 #endif
6131 #endif
6132 
6133 #endif
6134 
6135 HRESULT STDMETHODCALLTYPE IWaitMultiple_WaitMultiple_Proxy(
6136     IWaitMultiple* This,
6137     DWORD timeout,
6138     ISynchronize **pSync);
6139 void __RPC_STUB IWaitMultiple_WaitMultiple_Stub(
6140     IRpcStubBuffer* This,
6141     IRpcChannelBuffer* pRpcChannelBuffer,
6142     PRPC_MESSAGE pRpcMessage,
6143     DWORD* pdwStubPhase);
6144 HRESULT STDMETHODCALLTYPE IWaitMultiple_AddSynchronize_Proxy(
6145     IWaitMultiple* This,
6146     ISynchronize *pSync);
6147 void __RPC_STUB IWaitMultiple_AddSynchronize_Stub(
6148     IRpcStubBuffer* This,
6149     IRpcChannelBuffer* pRpcChannelBuffer,
6150     PRPC_MESSAGE pRpcMessage,
6151     DWORD* pdwStubPhase);
6152 
6153 #endif  /* __IWaitMultiple_INTERFACE_DEFINED__ */
6154 
6155 
6156 /*****************************************************************************
6157  * IAddrTrackingControl interface
6158  */
6159 #ifndef __IAddrTrackingControl_INTERFACE_DEFINED__
6160 #define __IAddrTrackingControl_INTERFACE_DEFINED__
6161 
6162 typedef IAddrTrackingControl *LPADDRTRACKINGCONTROL;
6163 DEFINE_GUID(IID_IAddrTrackingControl, 0x00000147, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6164 #if defined(__cplusplus) && !defined(CINTERFACE)
6165 MIDL_INTERFACE("00000147-0000-0000-c000-000000000046")
6166 IAddrTrackingControl : public IUnknown
6167 {
6168     virtual HRESULT STDMETHODCALLTYPE EnableCOMDynamicAddrTracking(
6169         ) = 0;
6170 
6171     virtual HRESULT STDMETHODCALLTYPE DisableCOMDynamicAddrTracking(
6172         ) = 0;
6173 
6174 };
6175 #ifdef __CRT_UUID_DECL
6176 __CRT_UUID_DECL(IAddrTrackingControl, 0x00000147, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6177 #endif
6178 #else
6179 typedef struct IAddrTrackingControlVtbl {
6180     BEGIN_INTERFACE
6181 
6182     /*** IUnknown methods ***/
6183     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6184         IAddrTrackingControl* This,
6185         REFIID riid,
6186         void **ppvObject);
6187 
6188     ULONG (STDMETHODCALLTYPE *AddRef)(
6189         IAddrTrackingControl* This);
6190 
6191     ULONG (STDMETHODCALLTYPE *Release)(
6192         IAddrTrackingControl* This);
6193 
6194     /*** IAddrTrackingControl methods ***/
6195     HRESULT (STDMETHODCALLTYPE *EnableCOMDynamicAddrTracking)(
6196         IAddrTrackingControl* This);
6197 
6198     HRESULT (STDMETHODCALLTYPE *DisableCOMDynamicAddrTracking)(
6199         IAddrTrackingControl* This);
6200 
6201     END_INTERFACE
6202 } IAddrTrackingControlVtbl;
6203 interface IAddrTrackingControl {
6204     CONST_VTBL IAddrTrackingControlVtbl* lpVtbl;
6205 };
6206 
6207 #ifdef COBJMACROS
6208 #ifndef WIDL_C_INLINE_WRAPPERS
6209 /*** IUnknown methods ***/
6210 #define IAddrTrackingControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6211 #define IAddrTrackingControl_AddRef(This) (This)->lpVtbl->AddRef(This)
6212 #define IAddrTrackingControl_Release(This) (This)->lpVtbl->Release(This)
6213 /*** IAddrTrackingControl methods ***/
6214 #define IAddrTrackingControl_EnableCOMDynamicAddrTracking(This) (This)->lpVtbl->EnableCOMDynamicAddrTracking(This)
6215 #define IAddrTrackingControl_DisableCOMDynamicAddrTracking(This) (This)->lpVtbl->DisableCOMDynamicAddrTracking(This)
6216 #else
6217 /*** IUnknown methods ***/
6218 static FORCEINLINE HRESULT IAddrTrackingControl_QueryInterface(IAddrTrackingControl* This,REFIID riid,void **ppvObject) {
6219     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6220 }
6221 static FORCEINLINE ULONG IAddrTrackingControl_AddRef(IAddrTrackingControl* This) {
6222     return This->lpVtbl->AddRef(This);
6223 }
6224 static FORCEINLINE ULONG IAddrTrackingControl_Release(IAddrTrackingControl* This) {
6225     return This->lpVtbl->Release(This);
6226 }
6227 /*** IAddrTrackingControl methods ***/
6228 static FORCEINLINE HRESULT IAddrTrackingControl_EnableCOMDynamicAddrTracking(IAddrTrackingControl* This) {
6229     return This->lpVtbl->EnableCOMDynamicAddrTracking(This);
6230 }
6231 static FORCEINLINE HRESULT IAddrTrackingControl_DisableCOMDynamicAddrTracking(IAddrTrackingControl* This) {
6232     return This->lpVtbl->DisableCOMDynamicAddrTracking(This);
6233 }
6234 #endif
6235 #endif
6236 
6237 #endif
6238 
6239 HRESULT STDMETHODCALLTYPE IAddrTrackingControl_EnableCOMDynamicAddrTracking_Proxy(
6240     IAddrTrackingControl* This);
6241 void __RPC_STUB IAddrTrackingControl_EnableCOMDynamicAddrTracking_Stub(
6242     IRpcStubBuffer* This,
6243     IRpcChannelBuffer* pRpcChannelBuffer,
6244     PRPC_MESSAGE pRpcMessage,
6245     DWORD* pdwStubPhase);
6246 HRESULT STDMETHODCALLTYPE IAddrTrackingControl_DisableCOMDynamicAddrTracking_Proxy(
6247     IAddrTrackingControl* This);
6248 void __RPC_STUB IAddrTrackingControl_DisableCOMDynamicAddrTracking_Stub(
6249     IRpcStubBuffer* This,
6250     IRpcChannelBuffer* pRpcChannelBuffer,
6251     PRPC_MESSAGE pRpcMessage,
6252     DWORD* pdwStubPhase);
6253 
6254 #endif  /* __IAddrTrackingControl_INTERFACE_DEFINED__ */
6255 
6256 
6257 /*****************************************************************************
6258  * IAddrExclusionControl interface
6259  */
6260 #ifndef __IAddrExclusionControl_INTERFACE_DEFINED__
6261 #define __IAddrExclusionControl_INTERFACE_DEFINED__
6262 
6263 typedef IAddrExclusionControl *LPADDREXCLUSIONCONTROL;
6264 DEFINE_GUID(IID_IAddrExclusionControl, 0x00000148, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6265 #if defined(__cplusplus) && !defined(CINTERFACE)
6266 MIDL_INTERFACE("00000148-0000-0000-c000-000000000046")
6267 IAddrExclusionControl : public IUnknown
6268 {
6269     virtual HRESULT STDMETHODCALLTYPE GetCurrentAddrExclusionList(
6270         REFIID riid,
6271         void **ppEnumerator) = 0;
6272 
6273     virtual HRESULT STDMETHODCALLTYPE UpdateAddrExclusionList(
6274         IUnknown *pEnumerator) = 0;
6275 
6276 };
6277 #ifdef __CRT_UUID_DECL
6278 __CRT_UUID_DECL(IAddrExclusionControl, 0x00000148, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6279 #endif
6280 #else
6281 typedef struct IAddrExclusionControlVtbl {
6282     BEGIN_INTERFACE
6283 
6284     /*** IUnknown methods ***/
6285     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6286         IAddrExclusionControl* This,
6287         REFIID riid,
6288         void **ppvObject);
6289 
6290     ULONG (STDMETHODCALLTYPE *AddRef)(
6291         IAddrExclusionControl* This);
6292 
6293     ULONG (STDMETHODCALLTYPE *Release)(
6294         IAddrExclusionControl* This);
6295 
6296     /*** IAddrExclusionControl methods ***/
6297     HRESULT (STDMETHODCALLTYPE *GetCurrentAddrExclusionList)(
6298         IAddrExclusionControl* This,
6299         REFIID riid,
6300         void **ppEnumerator);
6301 
6302     HRESULT (STDMETHODCALLTYPE *UpdateAddrExclusionList)(
6303         IAddrExclusionControl* This,
6304         IUnknown *pEnumerator);
6305 
6306     END_INTERFACE
6307 } IAddrExclusionControlVtbl;
6308 interface IAddrExclusionControl {
6309     CONST_VTBL IAddrExclusionControlVtbl* lpVtbl;
6310 };
6311 
6312 #ifdef COBJMACROS
6313 #ifndef WIDL_C_INLINE_WRAPPERS
6314 /*** IUnknown methods ***/
6315 #define IAddrExclusionControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6316 #define IAddrExclusionControl_AddRef(This) (This)->lpVtbl->AddRef(This)
6317 #define IAddrExclusionControl_Release(This) (This)->lpVtbl->Release(This)
6318 /*** IAddrExclusionControl methods ***/
6319 #define IAddrExclusionControl_GetCurrentAddrExclusionList(This,riid,ppEnumerator) (This)->lpVtbl->GetCurrentAddrExclusionList(This,riid,ppEnumerator)
6320 #define IAddrExclusionControl_UpdateAddrExclusionList(This,pEnumerator) (This)->lpVtbl->UpdateAddrExclusionList(This,pEnumerator)
6321 #else
6322 /*** IUnknown methods ***/
6323 static FORCEINLINE HRESULT IAddrExclusionControl_QueryInterface(IAddrExclusionControl* This,REFIID riid,void **ppvObject) {
6324     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6325 }
6326 static FORCEINLINE ULONG IAddrExclusionControl_AddRef(IAddrExclusionControl* This) {
6327     return This->lpVtbl->AddRef(This);
6328 }
6329 static FORCEINLINE ULONG IAddrExclusionControl_Release(IAddrExclusionControl* This) {
6330     return This->lpVtbl->Release(This);
6331 }
6332 /*** IAddrExclusionControl methods ***/
6333 static FORCEINLINE HRESULT IAddrExclusionControl_GetCurrentAddrExclusionList(IAddrExclusionControl* This,REFIID riid,void **ppEnumerator) {
6334     return This->lpVtbl->GetCurrentAddrExclusionList(This,riid,ppEnumerator);
6335 }
6336 static FORCEINLINE HRESULT IAddrExclusionControl_UpdateAddrExclusionList(IAddrExclusionControl* This,IUnknown *pEnumerator) {
6337     return This->lpVtbl->UpdateAddrExclusionList(This,pEnumerator);
6338 }
6339 #endif
6340 #endif
6341 
6342 #endif
6343 
6344 HRESULT STDMETHODCALLTYPE IAddrExclusionControl_GetCurrentAddrExclusionList_Proxy(
6345     IAddrExclusionControl* This,
6346     REFIID riid,
6347     void **ppEnumerator);
6348 void __RPC_STUB IAddrExclusionControl_GetCurrentAddrExclusionList_Stub(
6349     IRpcStubBuffer* This,
6350     IRpcChannelBuffer* pRpcChannelBuffer,
6351     PRPC_MESSAGE pRpcMessage,
6352     DWORD* pdwStubPhase);
6353 HRESULT STDMETHODCALLTYPE IAddrExclusionControl_UpdateAddrExclusionList_Proxy(
6354     IAddrExclusionControl* This,
6355     IUnknown *pEnumerator);
6356 void __RPC_STUB IAddrExclusionControl_UpdateAddrExclusionList_Stub(
6357     IRpcStubBuffer* This,
6358     IRpcChannelBuffer* pRpcChannelBuffer,
6359     PRPC_MESSAGE pRpcMessage,
6360     DWORD* pdwStubPhase);
6361 
6362 #endif  /* __IAddrExclusionControl_INTERFACE_DEFINED__ */
6363 
6364 
6365 /*****************************************************************************
6366  * IPipeByte interface
6367  */
6368 #ifndef __IPipeByte_INTERFACE_DEFINED__
6369 #define __IPipeByte_INTERFACE_DEFINED__
6370 
6371 DEFINE_GUID(IID_IPipeByte, 0xdb2f3aca, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
6372 #if defined(__cplusplus) && !defined(CINTERFACE)
6373 MIDL_INTERFACE("db2f3aca-2f86-11d1-8e04-00c04fb9989a")
6374 IPipeByte : public IUnknown
6375 {
6376     virtual HRESULT STDMETHODCALLTYPE Pull(
6377         BYTE *buf,
6378         ULONG cRequest,
6379         ULONG *pcReturned) = 0;
6380 
6381     virtual HRESULT STDMETHODCALLTYPE Push(
6382         BYTE *buf,
6383         ULONG cSent) = 0;
6384 
6385 };
6386 #ifdef __CRT_UUID_DECL
6387 __CRT_UUID_DECL(IPipeByte, 0xdb2f3aca, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
6388 #endif
6389 #else
6390 typedef struct IPipeByteVtbl {
6391     BEGIN_INTERFACE
6392 
6393     /*** IUnknown methods ***/
6394     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6395         IPipeByte* This,
6396         REFIID riid,
6397         void **ppvObject);
6398 
6399     ULONG (STDMETHODCALLTYPE *AddRef)(
6400         IPipeByte* This);
6401 
6402     ULONG (STDMETHODCALLTYPE *Release)(
6403         IPipeByte* This);
6404 
6405     /*** IPipeByte methods ***/
6406     HRESULT (STDMETHODCALLTYPE *Pull)(
6407         IPipeByte* This,
6408         BYTE *buf,
6409         ULONG cRequest,
6410         ULONG *pcReturned);
6411 
6412     HRESULT (STDMETHODCALLTYPE *Push)(
6413         IPipeByte* This,
6414         BYTE *buf,
6415         ULONG cSent);
6416 
6417     END_INTERFACE
6418 } IPipeByteVtbl;
6419 interface IPipeByte {
6420     CONST_VTBL IPipeByteVtbl* lpVtbl;
6421 };
6422 
6423 #ifdef COBJMACROS
6424 #ifndef WIDL_C_INLINE_WRAPPERS
6425 /*** IUnknown methods ***/
6426 #define IPipeByte_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6427 #define IPipeByte_AddRef(This) (This)->lpVtbl->AddRef(This)
6428 #define IPipeByte_Release(This) (This)->lpVtbl->Release(This)
6429 /*** IPipeByte methods ***/
6430 #define IPipeByte_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
6431 #define IPipeByte_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
6432 #else
6433 /*** IUnknown methods ***/
6434 static FORCEINLINE HRESULT IPipeByte_QueryInterface(IPipeByte* This,REFIID riid,void **ppvObject) {
6435     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6436 }
6437 static FORCEINLINE ULONG IPipeByte_AddRef(IPipeByte* This) {
6438     return This->lpVtbl->AddRef(This);
6439 }
6440 static FORCEINLINE ULONG IPipeByte_Release(IPipeByte* This) {
6441     return This->lpVtbl->Release(This);
6442 }
6443 /*** IPipeByte methods ***/
6444 static FORCEINLINE HRESULT IPipeByte_Pull(IPipeByte* This,BYTE *buf,ULONG cRequest,ULONG *pcReturned) {
6445     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
6446 }
6447 static FORCEINLINE HRESULT IPipeByte_Push(IPipeByte* This,BYTE *buf,ULONG cSent) {
6448     return This->lpVtbl->Push(This,buf,cSent);
6449 }
6450 #endif
6451 #endif
6452 
6453 #endif
6454 
6455 HRESULT STDMETHODCALLTYPE IPipeByte_Pull_Proxy(
6456     IPipeByte* This,
6457     BYTE *buf,
6458     ULONG cRequest,
6459     ULONG *pcReturned);
6460 void __RPC_STUB IPipeByte_Pull_Stub(
6461     IRpcStubBuffer* This,
6462     IRpcChannelBuffer* pRpcChannelBuffer,
6463     PRPC_MESSAGE pRpcMessage,
6464     DWORD* pdwStubPhase);
6465 HRESULT STDMETHODCALLTYPE IPipeByte_Push_Proxy(
6466     IPipeByte* This,
6467     BYTE *buf,
6468     ULONG cSent);
6469 void __RPC_STUB IPipeByte_Push_Stub(
6470     IRpcStubBuffer* This,
6471     IRpcChannelBuffer* pRpcChannelBuffer,
6472     PRPC_MESSAGE pRpcMessage,
6473     DWORD* pdwStubPhase);
6474 
6475 #endif  /* __IPipeByte_INTERFACE_DEFINED__ */
6476 
6477 
6478 /*****************************************************************************
6479  * IPipeLong interface
6480  */
6481 #ifndef __IPipeLong_INTERFACE_DEFINED__
6482 #define __IPipeLong_INTERFACE_DEFINED__
6483 
6484 DEFINE_GUID(IID_IPipeLong, 0xdb2f3acc, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
6485 #if defined(__cplusplus) && !defined(CINTERFACE)
6486 MIDL_INTERFACE("db2f3acc-2f86-11d1-8e04-00c04fb9989a")
6487 IPipeLong : public IUnknown
6488 {
6489     virtual HRESULT STDMETHODCALLTYPE Pull(
6490         LONG *buf,
6491         ULONG cRequest,
6492         ULONG *pcReturned) = 0;
6493 
6494     virtual HRESULT STDMETHODCALLTYPE Push(
6495         LONG *buf,
6496         ULONG cSent) = 0;
6497 
6498 };
6499 #ifdef __CRT_UUID_DECL
6500 __CRT_UUID_DECL(IPipeLong, 0xdb2f3acc, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
6501 #endif
6502 #else
6503 typedef struct IPipeLongVtbl {
6504     BEGIN_INTERFACE
6505 
6506     /*** IUnknown methods ***/
6507     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6508         IPipeLong* This,
6509         REFIID riid,
6510         void **ppvObject);
6511 
6512     ULONG (STDMETHODCALLTYPE *AddRef)(
6513         IPipeLong* This);
6514 
6515     ULONG (STDMETHODCALLTYPE *Release)(
6516         IPipeLong* This);
6517 
6518     /*** IPipeLong methods ***/
6519     HRESULT (STDMETHODCALLTYPE *Pull)(
6520         IPipeLong* This,
6521         LONG *buf,
6522         ULONG cRequest,
6523         ULONG *pcReturned);
6524 
6525     HRESULT (STDMETHODCALLTYPE *Push)(
6526         IPipeLong* This,
6527         LONG *buf,
6528         ULONG cSent);
6529 
6530     END_INTERFACE
6531 } IPipeLongVtbl;
6532 interface IPipeLong {
6533     CONST_VTBL IPipeLongVtbl* lpVtbl;
6534 };
6535 
6536 #ifdef COBJMACROS
6537 #ifndef WIDL_C_INLINE_WRAPPERS
6538 /*** IUnknown methods ***/
6539 #define IPipeLong_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6540 #define IPipeLong_AddRef(This) (This)->lpVtbl->AddRef(This)
6541 #define IPipeLong_Release(This) (This)->lpVtbl->Release(This)
6542 /*** IPipeLong methods ***/
6543 #define IPipeLong_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
6544 #define IPipeLong_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
6545 #else
6546 /*** IUnknown methods ***/
6547 static FORCEINLINE HRESULT IPipeLong_QueryInterface(IPipeLong* This,REFIID riid,void **ppvObject) {
6548     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6549 }
6550 static FORCEINLINE ULONG IPipeLong_AddRef(IPipeLong* This) {
6551     return This->lpVtbl->AddRef(This);
6552 }
6553 static FORCEINLINE ULONG IPipeLong_Release(IPipeLong* This) {
6554     return This->lpVtbl->Release(This);
6555 }
6556 /*** IPipeLong methods ***/
6557 static FORCEINLINE HRESULT IPipeLong_Pull(IPipeLong* This,LONG *buf,ULONG cRequest,ULONG *pcReturned) {
6558     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
6559 }
6560 static FORCEINLINE HRESULT IPipeLong_Push(IPipeLong* This,LONG *buf,ULONG cSent) {
6561     return This->lpVtbl->Push(This,buf,cSent);
6562 }
6563 #endif
6564 #endif
6565 
6566 #endif
6567 
6568 HRESULT STDMETHODCALLTYPE IPipeLong_Pull_Proxy(
6569     IPipeLong* This,
6570     LONG *buf,
6571     ULONG cRequest,
6572     ULONG *pcReturned);
6573 void __RPC_STUB IPipeLong_Pull_Stub(
6574     IRpcStubBuffer* This,
6575     IRpcChannelBuffer* pRpcChannelBuffer,
6576     PRPC_MESSAGE pRpcMessage,
6577     DWORD* pdwStubPhase);
6578 HRESULT STDMETHODCALLTYPE IPipeLong_Push_Proxy(
6579     IPipeLong* This,
6580     LONG *buf,
6581     ULONG cSent);
6582 void __RPC_STUB IPipeLong_Push_Stub(
6583     IRpcStubBuffer* This,
6584     IRpcChannelBuffer* pRpcChannelBuffer,
6585     PRPC_MESSAGE pRpcMessage,
6586     DWORD* pdwStubPhase);
6587 
6588 #endif  /* __IPipeLong_INTERFACE_DEFINED__ */
6589 
6590 
6591 /*****************************************************************************
6592  * IPipeDouble interface
6593  */
6594 #ifndef __IPipeDouble_INTERFACE_DEFINED__
6595 #define __IPipeDouble_INTERFACE_DEFINED__
6596 
6597 DEFINE_GUID(IID_IPipeDouble, 0xdb2f3ace, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
6598 #if defined(__cplusplus) && !defined(CINTERFACE)
6599 MIDL_INTERFACE("db2f3ace-2f86-11d1-8e04-00c04fb9989a")
6600 IPipeDouble : public IUnknown
6601 {
6602     virtual HRESULT STDMETHODCALLTYPE Pull(
6603         DOUBLE *buf,
6604         ULONG cRequest,
6605         ULONG *pcReturned) = 0;
6606 
6607     virtual HRESULT STDMETHODCALLTYPE Push(
6608         DOUBLE *buf,
6609         ULONG cSent) = 0;
6610 
6611 };
6612 #ifdef __CRT_UUID_DECL
6613 __CRT_UUID_DECL(IPipeDouble, 0xdb2f3ace, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
6614 #endif
6615 #else
6616 typedef struct IPipeDoubleVtbl {
6617     BEGIN_INTERFACE
6618 
6619     /*** IUnknown methods ***/
6620     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6621         IPipeDouble* This,
6622         REFIID riid,
6623         void **ppvObject);
6624 
6625     ULONG (STDMETHODCALLTYPE *AddRef)(
6626         IPipeDouble* This);
6627 
6628     ULONG (STDMETHODCALLTYPE *Release)(
6629         IPipeDouble* This);
6630 
6631     /*** IPipeDouble methods ***/
6632     HRESULT (STDMETHODCALLTYPE *Pull)(
6633         IPipeDouble* This,
6634         DOUBLE *buf,
6635         ULONG cRequest,
6636         ULONG *pcReturned);
6637 
6638     HRESULT (STDMETHODCALLTYPE *Push)(
6639         IPipeDouble* This,
6640         DOUBLE *buf,
6641         ULONG cSent);
6642 
6643     END_INTERFACE
6644 } IPipeDoubleVtbl;
6645 interface IPipeDouble {
6646     CONST_VTBL IPipeDoubleVtbl* lpVtbl;
6647 };
6648 
6649 #ifdef COBJMACROS
6650 #ifndef WIDL_C_INLINE_WRAPPERS
6651 /*** IUnknown methods ***/
6652 #define IPipeDouble_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6653 #define IPipeDouble_AddRef(This) (This)->lpVtbl->AddRef(This)
6654 #define IPipeDouble_Release(This) (This)->lpVtbl->Release(This)
6655 /*** IPipeDouble methods ***/
6656 #define IPipeDouble_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
6657 #define IPipeDouble_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
6658 #else
6659 /*** IUnknown methods ***/
6660 static FORCEINLINE HRESULT IPipeDouble_QueryInterface(IPipeDouble* This,REFIID riid,void **ppvObject) {
6661     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6662 }
6663 static FORCEINLINE ULONG IPipeDouble_AddRef(IPipeDouble* This) {
6664     return This->lpVtbl->AddRef(This);
6665 }
6666 static FORCEINLINE ULONG IPipeDouble_Release(IPipeDouble* This) {
6667     return This->lpVtbl->Release(This);
6668 }
6669 /*** IPipeDouble methods ***/
6670 static FORCEINLINE HRESULT IPipeDouble_Pull(IPipeDouble* This,DOUBLE *buf,ULONG cRequest,ULONG *pcReturned) {
6671     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
6672 }
6673 static FORCEINLINE HRESULT IPipeDouble_Push(IPipeDouble* This,DOUBLE *buf,ULONG cSent) {
6674     return This->lpVtbl->Push(This,buf,cSent);
6675 }
6676 #endif
6677 #endif
6678 
6679 #endif
6680 
6681 HRESULT STDMETHODCALLTYPE IPipeDouble_Pull_Proxy(
6682     IPipeDouble* This,
6683     DOUBLE *buf,
6684     ULONG cRequest,
6685     ULONG *pcReturned);
6686 void __RPC_STUB IPipeDouble_Pull_Stub(
6687     IRpcStubBuffer* This,
6688     IRpcChannelBuffer* pRpcChannelBuffer,
6689     PRPC_MESSAGE pRpcMessage,
6690     DWORD* pdwStubPhase);
6691 HRESULT STDMETHODCALLTYPE IPipeDouble_Push_Proxy(
6692     IPipeDouble* This,
6693     DOUBLE *buf,
6694     ULONG cSent);
6695 void __RPC_STUB IPipeDouble_Push_Stub(
6696     IRpcStubBuffer* This,
6697     IRpcChannelBuffer* pRpcChannelBuffer,
6698     PRPC_MESSAGE pRpcMessage,
6699     DWORD* pdwStubPhase);
6700 
6701 #endif  /* __IPipeDouble_INTERFACE_DEFINED__ */
6702 
6703 
6704 #if defined USE_COM_CONTEXT_DEF || defined BUILDTYPE_COMSVCS || defined _COMBASEAPI_ || defined _OLE32_
6705 
6706 typedef DWORD CPFLAGS;
6707 
6708 typedef struct tagContextProperty {
6709     GUID policyId;
6710     CPFLAGS flags;
6711     IUnknown *pUnk;
6712 } ContextProperty;
6713 
6714 /*****************************************************************************
6715  * IEnumContextProps interface
6716  */
6717 #ifndef __IEnumContextProps_INTERFACE_DEFINED__
6718 #define __IEnumContextProps_INTERFACE_DEFINED__
6719 
6720 typedef IEnumContextProps *LPENUMCONTEXTPROPS;
6721 
6722 DEFINE_GUID(IID_IEnumContextProps, 0x000001c1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6723 #if defined(__cplusplus) && !defined(CINTERFACE)
6724 MIDL_INTERFACE("000001c1-0000-0000-c000-000000000046")
6725 IEnumContextProps : public IUnknown
6726 {
6727     virtual HRESULT STDMETHODCALLTYPE Next(
6728         ULONG celt,
6729         ContextProperty *pContextProperties,
6730         ULONG *pceltFetched) = 0;
6731 
6732     virtual HRESULT STDMETHODCALLTYPE Skip(
6733         ULONG celt) = 0;
6734 
6735     virtual HRESULT STDMETHODCALLTYPE Reset(
6736         ) = 0;
6737 
6738     virtual HRESULT STDMETHODCALLTYPE Clone(
6739         IEnumContextProps **ppEnumContextProps) = 0;
6740 
6741     virtual HRESULT STDMETHODCALLTYPE Count(
6742         ULONG *pcelt) = 0;
6743 
6744 };
6745 #ifdef __CRT_UUID_DECL
6746 __CRT_UUID_DECL(IEnumContextProps, 0x000001c1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6747 #endif
6748 #else
6749 typedef struct IEnumContextPropsVtbl {
6750     BEGIN_INTERFACE
6751 
6752     /*** IUnknown methods ***/
6753     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6754         IEnumContextProps* This,
6755         REFIID riid,
6756         void **ppvObject);
6757 
6758     ULONG (STDMETHODCALLTYPE *AddRef)(
6759         IEnumContextProps* This);
6760 
6761     ULONG (STDMETHODCALLTYPE *Release)(
6762         IEnumContextProps* This);
6763 
6764     /*** IEnumContextProps methods ***/
6765     HRESULT (STDMETHODCALLTYPE *Next)(
6766         IEnumContextProps* This,
6767         ULONG celt,
6768         ContextProperty *pContextProperties,
6769         ULONG *pceltFetched);
6770 
6771     HRESULT (STDMETHODCALLTYPE *Skip)(
6772         IEnumContextProps* This,
6773         ULONG celt);
6774 
6775     HRESULT (STDMETHODCALLTYPE *Reset)(
6776         IEnumContextProps* This);
6777 
6778     HRESULT (STDMETHODCALLTYPE *Clone)(
6779         IEnumContextProps* This,
6780         IEnumContextProps **ppEnumContextProps);
6781 
6782     HRESULT (STDMETHODCALLTYPE *Count)(
6783         IEnumContextProps* This,
6784         ULONG *pcelt);
6785 
6786     END_INTERFACE
6787 } IEnumContextPropsVtbl;
6788 interface IEnumContextProps {
6789     CONST_VTBL IEnumContextPropsVtbl* lpVtbl;
6790 };
6791 
6792 #ifdef COBJMACROS
6793 #ifndef WIDL_C_INLINE_WRAPPERS
6794 /*** IUnknown methods ***/
6795 #define IEnumContextProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6796 #define IEnumContextProps_AddRef(This) (This)->lpVtbl->AddRef(This)
6797 #define IEnumContextProps_Release(This) (This)->lpVtbl->Release(This)
6798 /*** IEnumContextProps methods ***/
6799 #define IEnumContextProps_Next(This,celt,pContextProperties,pceltFetched) (This)->lpVtbl->Next(This,celt,pContextProperties,pceltFetched)
6800 #define IEnumContextProps_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
6801 #define IEnumContextProps_Reset(This) (This)->lpVtbl->Reset(This)
6802 #define IEnumContextProps_Clone(This,ppEnumContextProps) (This)->lpVtbl->Clone(This,ppEnumContextProps)
6803 #define IEnumContextProps_Count(This,pcelt) (This)->lpVtbl->Count(This,pcelt)
6804 #else
6805 /*** IUnknown methods ***/
6806 static FORCEINLINE HRESULT IEnumContextProps_QueryInterface(IEnumContextProps* This,REFIID riid,void **ppvObject) {
6807     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6808 }
6809 static FORCEINLINE ULONG IEnumContextProps_AddRef(IEnumContextProps* This) {
6810     return This->lpVtbl->AddRef(This);
6811 }
6812 static FORCEINLINE ULONG IEnumContextProps_Release(IEnumContextProps* This) {
6813     return This->lpVtbl->Release(This);
6814 }
6815 /*** IEnumContextProps methods ***/
6816 static FORCEINLINE HRESULT IEnumContextProps_Next(IEnumContextProps* This,ULONG celt,ContextProperty *pContextProperties,ULONG *pceltFetched) {
6817     return This->lpVtbl->Next(This,celt,pContextProperties,pceltFetched);
6818 }
6819 static FORCEINLINE HRESULT IEnumContextProps_Skip(IEnumContextProps* This,ULONG celt) {
6820     return This->lpVtbl->Skip(This,celt);
6821 }
6822 static FORCEINLINE HRESULT IEnumContextProps_Reset(IEnumContextProps* This) {
6823     return This->lpVtbl->Reset(This);
6824 }
6825 static FORCEINLINE HRESULT IEnumContextProps_Clone(IEnumContextProps* This,IEnumContextProps **ppEnumContextProps) {
6826     return This->lpVtbl->Clone(This,ppEnumContextProps);
6827 }
6828 static FORCEINLINE HRESULT IEnumContextProps_Count(IEnumContextProps* This,ULONG *pcelt) {
6829     return This->lpVtbl->Count(This,pcelt);
6830 }
6831 #endif
6832 #endif
6833 
6834 #endif
6835 
6836 HRESULT STDMETHODCALLTYPE IEnumContextProps_Next_Proxy(
6837     IEnumContextProps* This,
6838     ULONG celt,
6839     ContextProperty *pContextProperties,
6840     ULONG *pceltFetched);
6841 void __RPC_STUB IEnumContextProps_Next_Stub(
6842     IRpcStubBuffer* This,
6843     IRpcChannelBuffer* pRpcChannelBuffer,
6844     PRPC_MESSAGE pRpcMessage,
6845     DWORD* pdwStubPhase);
6846 HRESULT STDMETHODCALLTYPE IEnumContextProps_Skip_Proxy(
6847     IEnumContextProps* This,
6848     ULONG celt);
6849 void __RPC_STUB IEnumContextProps_Skip_Stub(
6850     IRpcStubBuffer* This,
6851     IRpcChannelBuffer* pRpcChannelBuffer,
6852     PRPC_MESSAGE pRpcMessage,
6853     DWORD* pdwStubPhase);
6854 HRESULT STDMETHODCALLTYPE IEnumContextProps_Reset_Proxy(
6855     IEnumContextProps* This);
6856 void __RPC_STUB IEnumContextProps_Reset_Stub(
6857     IRpcStubBuffer* This,
6858     IRpcChannelBuffer* pRpcChannelBuffer,
6859     PRPC_MESSAGE pRpcMessage,
6860     DWORD* pdwStubPhase);
6861 HRESULT STDMETHODCALLTYPE IEnumContextProps_Clone_Proxy(
6862     IEnumContextProps* This,
6863     IEnumContextProps **ppEnumContextProps);
6864 void __RPC_STUB IEnumContextProps_Clone_Stub(
6865     IRpcStubBuffer* This,
6866     IRpcChannelBuffer* pRpcChannelBuffer,
6867     PRPC_MESSAGE pRpcMessage,
6868     DWORD* pdwStubPhase);
6869 HRESULT STDMETHODCALLTYPE IEnumContextProps_Count_Proxy(
6870     IEnumContextProps* This,
6871     ULONG *pcelt);
6872 void __RPC_STUB IEnumContextProps_Count_Stub(
6873     IRpcStubBuffer* This,
6874     IRpcChannelBuffer* pRpcChannelBuffer,
6875     PRPC_MESSAGE pRpcMessage,
6876     DWORD* pdwStubPhase);
6877 
6878 #endif  /* __IEnumContextProps_INTERFACE_DEFINED__ */
6879 
6880 
6881 /*****************************************************************************
6882  * IContext interface
6883  */
6884 #ifndef __IContext_INTERFACE_DEFINED__
6885 #define __IContext_INTERFACE_DEFINED__
6886 
6887 DEFINE_GUID(IID_IContext, 0x000001c0, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6888 #if defined(__cplusplus) && !defined(CINTERFACE)
6889 MIDL_INTERFACE("000001c0-0000-0000-c000-000000000046")
6890 IContext : public IUnknown
6891 {
6892     virtual HRESULT STDMETHODCALLTYPE SetProperty(
6893         REFGUID rpolicyId,
6894         CPFLAGS flags,
6895         IUnknown *pUnk) = 0;
6896 
6897     virtual HRESULT STDMETHODCALLTYPE RemoveProperty(
6898         REFGUID rPolicyId) = 0;
6899 
6900     virtual HRESULT STDMETHODCALLTYPE GetProperty(
6901         REFGUID rGuid,
6902         CPFLAGS *pFlags,
6903         IUnknown **ppUnk) = 0;
6904 
6905     virtual HRESULT STDMETHODCALLTYPE EnumContextProps(
6906         IEnumContextProps **ppEnumContextProps) = 0;
6907 
6908 };
6909 #ifdef __CRT_UUID_DECL
6910 __CRT_UUID_DECL(IContext, 0x000001c0, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6911 #endif
6912 #else
6913 typedef struct IContextVtbl {
6914     BEGIN_INTERFACE
6915 
6916     /*** IUnknown methods ***/
6917     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6918         IContext* This,
6919         REFIID riid,
6920         void **ppvObject);
6921 
6922     ULONG (STDMETHODCALLTYPE *AddRef)(
6923         IContext* This);
6924 
6925     ULONG (STDMETHODCALLTYPE *Release)(
6926         IContext* This);
6927 
6928     /*** IContext methods ***/
6929     HRESULT (STDMETHODCALLTYPE *SetProperty)(
6930         IContext* This,
6931         REFGUID rpolicyId,
6932         CPFLAGS flags,
6933         IUnknown *pUnk);
6934 
6935     HRESULT (STDMETHODCALLTYPE *RemoveProperty)(
6936         IContext* This,
6937         REFGUID rPolicyId);
6938 
6939     HRESULT (STDMETHODCALLTYPE *GetProperty)(
6940         IContext* This,
6941         REFGUID rGuid,
6942         CPFLAGS *pFlags,
6943         IUnknown **ppUnk);
6944 
6945     HRESULT (STDMETHODCALLTYPE *EnumContextProps)(
6946         IContext* This,
6947         IEnumContextProps **ppEnumContextProps);
6948 
6949     END_INTERFACE
6950 } IContextVtbl;
6951 interface IContext {
6952     CONST_VTBL IContextVtbl* lpVtbl;
6953 };
6954 
6955 #ifdef COBJMACROS
6956 #ifndef WIDL_C_INLINE_WRAPPERS
6957 /*** IUnknown methods ***/
6958 #define IContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6959 #define IContext_AddRef(This) (This)->lpVtbl->AddRef(This)
6960 #define IContext_Release(This) (This)->lpVtbl->Release(This)
6961 /*** IContext methods ***/
6962 #define IContext_SetProperty(This,rpolicyId,flags,pUnk) (This)->lpVtbl->SetProperty(This,rpolicyId,flags,pUnk)
6963 #define IContext_RemoveProperty(This,rPolicyId) (This)->lpVtbl->RemoveProperty(This,rPolicyId)
6964 #define IContext_GetProperty(This,rGuid,pFlags,ppUnk) (This)->lpVtbl->GetProperty(This,rGuid,pFlags,ppUnk)
6965 #define IContext_EnumContextProps(This,ppEnumContextProps) (This)->lpVtbl->EnumContextProps(This,ppEnumContextProps)
6966 #else
6967 /*** IUnknown methods ***/
6968 static FORCEINLINE HRESULT IContext_QueryInterface(IContext* This,REFIID riid,void **ppvObject) {
6969     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6970 }
6971 static FORCEINLINE ULONG IContext_AddRef(IContext* This) {
6972     return This->lpVtbl->AddRef(This);
6973 }
6974 static FORCEINLINE ULONG IContext_Release(IContext* This) {
6975     return This->lpVtbl->Release(This);
6976 }
6977 /*** IContext methods ***/
6978 static FORCEINLINE HRESULT IContext_SetProperty(IContext* This,REFGUID rpolicyId,CPFLAGS flags,IUnknown *pUnk) {
6979     return This->lpVtbl->SetProperty(This,rpolicyId,flags,pUnk);
6980 }
6981 static FORCEINLINE HRESULT IContext_RemoveProperty(IContext* This,REFGUID rPolicyId) {
6982     return This->lpVtbl->RemoveProperty(This,rPolicyId);
6983 }
6984 static FORCEINLINE HRESULT IContext_GetProperty(IContext* This,REFGUID rGuid,CPFLAGS *pFlags,IUnknown **ppUnk) {
6985     return This->lpVtbl->GetProperty(This,rGuid,pFlags,ppUnk);
6986 }
6987 static FORCEINLINE HRESULT IContext_EnumContextProps(IContext* This,IEnumContextProps **ppEnumContextProps) {
6988     return This->lpVtbl->EnumContextProps(This,ppEnumContextProps);
6989 }
6990 #endif
6991 #endif
6992 
6993 #endif
6994 
6995 HRESULT STDMETHODCALLTYPE IContext_SetProperty_Proxy(
6996     IContext* This,
6997     REFGUID rpolicyId,
6998     CPFLAGS flags,
6999     IUnknown *pUnk);
7000 void __RPC_STUB IContext_SetProperty_Stub(
7001     IRpcStubBuffer* This,
7002     IRpcChannelBuffer* pRpcChannelBuffer,
7003     PRPC_MESSAGE pRpcMessage,
7004     DWORD* pdwStubPhase);
7005 HRESULT STDMETHODCALLTYPE IContext_RemoveProperty_Proxy(
7006     IContext* This,
7007     REFGUID rPolicyId);
7008 void __RPC_STUB IContext_RemoveProperty_Stub(
7009     IRpcStubBuffer* This,
7010     IRpcChannelBuffer* pRpcChannelBuffer,
7011     PRPC_MESSAGE pRpcMessage,
7012     DWORD* pdwStubPhase);
7013 HRESULT STDMETHODCALLTYPE IContext_GetProperty_Proxy(
7014     IContext* This,
7015     REFGUID rGuid,
7016     CPFLAGS *pFlags,
7017     IUnknown **ppUnk);
7018 void __RPC_STUB IContext_GetProperty_Stub(
7019     IRpcStubBuffer* This,
7020     IRpcChannelBuffer* pRpcChannelBuffer,
7021     PRPC_MESSAGE pRpcMessage,
7022     DWORD* pdwStubPhase);
7023 HRESULT STDMETHODCALLTYPE IContext_EnumContextProps_Proxy(
7024     IContext* This,
7025     IEnumContextProps **ppEnumContextProps);
7026 void __RPC_STUB IContext_EnumContextProps_Stub(
7027     IRpcStubBuffer* This,
7028     IRpcChannelBuffer* pRpcChannelBuffer,
7029     PRPC_MESSAGE pRpcMessage,
7030     DWORD* pdwStubPhase);
7031 
7032 #endif  /* __IContext_INTERFACE_DEFINED__ */
7033 
7034 #endif
7035 #endif
7036 
7037 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
7038 typedef enum _APTTYPEQUALIFIER {
7039     APTTYPEQUALIFIER_NONE = 0,
7040     APTTYPEQUALIFIER_IMPLICIT_MTA = 1,
7041     APTTYPEQUALIFIER_NA_ON_MTA = 2,
7042     APTTYPEQUALIFIER_NA_ON_STA = 3,
7043     APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA = 4,
7044     APTTYPEQUALIFIER_NA_ON_MAINSTA = 5,
7045     APTTYPEQUALIFIER_APPLICATION_STA = 6
7046 } APTTYPEQUALIFIER;
7047 
7048 typedef enum _APTTYPE {
7049     APTTYPE_CURRENT = -1,
7050     APTTYPE_STA = 0,
7051     APTTYPE_MTA = 1,
7052     APTTYPE_NA = 2,
7053     APTTYPE_MAINSTA = 3
7054 } APTTYPE;
7055 #endif
7056 
7057 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
7058 typedef enum _THDTYPE {
7059     THDTYPE_BLOCKMESSAGES = 0,
7060     THDTYPE_PROCESSMESSAGES = 1
7061 } THDTYPE;
7062 
7063 typedef DWORD APARTMENTID;
7064 
7065 /*****************************************************************************
7066  * IComThreadingInfo interface
7067  */
7068 #ifndef __IComThreadingInfo_INTERFACE_DEFINED__
7069 #define __IComThreadingInfo_INTERFACE_DEFINED__
7070 
7071 DEFINE_GUID(IID_IComThreadingInfo, 0x000001ce, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7072 #if defined(__cplusplus) && !defined(CINTERFACE)
7073 MIDL_INTERFACE("000001ce-0000-0000-c000-000000000046")
7074 IComThreadingInfo : public IUnknown
7075 {
7076     virtual HRESULT STDMETHODCALLTYPE GetCurrentApartmentType(
7077         APTTYPE *pAptType) = 0;
7078 
7079     virtual HRESULT STDMETHODCALLTYPE GetCurrentThreadType(
7080         THDTYPE *pThreadType) = 0;
7081 
7082     virtual HRESULT STDMETHODCALLTYPE GetCurrentLogicalThreadId(
7083         GUID *pguidLogicalThreadId) = 0;
7084 
7085     virtual HRESULT STDMETHODCALLTYPE SetCurrentLogicalThreadId(
7086         REFGUID rguid) = 0;
7087 
7088 };
7089 #ifdef __CRT_UUID_DECL
7090 __CRT_UUID_DECL(IComThreadingInfo, 0x000001ce, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
7091 #endif
7092 #else
7093 typedef struct IComThreadingInfoVtbl {
7094     BEGIN_INTERFACE
7095 
7096     /*** IUnknown methods ***/
7097     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7098         IComThreadingInfo* This,
7099         REFIID riid,
7100         void **ppvObject);
7101 
7102     ULONG (STDMETHODCALLTYPE *AddRef)(
7103         IComThreadingInfo* This);
7104 
7105     ULONG (STDMETHODCALLTYPE *Release)(
7106         IComThreadingInfo* This);
7107 
7108     /*** IComThreadingInfo methods ***/
7109     HRESULT (STDMETHODCALLTYPE *GetCurrentApartmentType)(
7110         IComThreadingInfo* This,
7111         APTTYPE *pAptType);
7112 
7113     HRESULT (STDMETHODCALLTYPE *GetCurrentThreadType)(
7114         IComThreadingInfo* This,
7115         THDTYPE *pThreadType);
7116 
7117     HRESULT (STDMETHODCALLTYPE *GetCurrentLogicalThreadId)(
7118         IComThreadingInfo* This,
7119         GUID *pguidLogicalThreadId);
7120 
7121     HRESULT (STDMETHODCALLTYPE *SetCurrentLogicalThreadId)(
7122         IComThreadingInfo* This,
7123         REFGUID rguid);
7124 
7125     END_INTERFACE
7126 } IComThreadingInfoVtbl;
7127 interface IComThreadingInfo {
7128     CONST_VTBL IComThreadingInfoVtbl* lpVtbl;
7129 };
7130 
7131 #ifdef COBJMACROS
7132 #ifndef WIDL_C_INLINE_WRAPPERS
7133 /*** IUnknown methods ***/
7134 #define IComThreadingInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7135 #define IComThreadingInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
7136 #define IComThreadingInfo_Release(This) (This)->lpVtbl->Release(This)
7137 /*** IComThreadingInfo methods ***/
7138 #define IComThreadingInfo_GetCurrentApartmentType(This,pAptType) (This)->lpVtbl->GetCurrentApartmentType(This,pAptType)
7139 #define IComThreadingInfo_GetCurrentThreadType(This,pThreadType) (This)->lpVtbl->GetCurrentThreadType(This,pThreadType)
7140 #define IComThreadingInfo_GetCurrentLogicalThreadId(This,pguidLogicalThreadId) (This)->lpVtbl->GetCurrentLogicalThreadId(This,pguidLogicalThreadId)
7141 #define IComThreadingInfo_SetCurrentLogicalThreadId(This,rguid) (This)->lpVtbl->SetCurrentLogicalThreadId(This,rguid)
7142 #else
7143 /*** IUnknown methods ***/
7144 static FORCEINLINE HRESULT IComThreadingInfo_QueryInterface(IComThreadingInfo* This,REFIID riid,void **ppvObject) {
7145     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7146 }
7147 static FORCEINLINE ULONG IComThreadingInfo_AddRef(IComThreadingInfo* This) {
7148     return This->lpVtbl->AddRef(This);
7149 }
7150 static FORCEINLINE ULONG IComThreadingInfo_Release(IComThreadingInfo* This) {
7151     return This->lpVtbl->Release(This);
7152 }
7153 /*** IComThreadingInfo methods ***/
7154 static FORCEINLINE HRESULT IComThreadingInfo_GetCurrentApartmentType(IComThreadingInfo* This,APTTYPE *pAptType) {
7155     return This->lpVtbl->GetCurrentApartmentType(This,pAptType);
7156 }
7157 static FORCEINLINE HRESULT IComThreadingInfo_GetCurrentThreadType(IComThreadingInfo* This,THDTYPE *pThreadType) {
7158     return This->lpVtbl->GetCurrentThreadType(This,pThreadType);
7159 }
7160 static FORCEINLINE HRESULT IComThreadingInfo_GetCurrentLogicalThreadId(IComThreadingInfo* This,GUID *pguidLogicalThreadId) {
7161     return This->lpVtbl->GetCurrentLogicalThreadId(This,pguidLogicalThreadId);
7162 }
7163 static FORCEINLINE HRESULT IComThreadingInfo_SetCurrentLogicalThreadId(IComThreadingInfo* This,REFGUID rguid) {
7164     return This->lpVtbl->SetCurrentLogicalThreadId(This,rguid);
7165 }
7166 #endif
7167 #endif
7168 
7169 #endif
7170 
7171 HRESULT STDMETHODCALLTYPE IComThreadingInfo_GetCurrentApartmentType_Proxy(
7172     IComThreadingInfo* This,
7173     APTTYPE *pAptType);
7174 void __RPC_STUB IComThreadingInfo_GetCurrentApartmentType_Stub(
7175     IRpcStubBuffer* This,
7176     IRpcChannelBuffer* pRpcChannelBuffer,
7177     PRPC_MESSAGE pRpcMessage,
7178     DWORD* pdwStubPhase);
7179 HRESULT STDMETHODCALLTYPE IComThreadingInfo_GetCurrentThreadType_Proxy(
7180     IComThreadingInfo* This,
7181     THDTYPE *pThreadType);
7182 void __RPC_STUB IComThreadingInfo_GetCurrentThreadType_Stub(
7183     IRpcStubBuffer* This,
7184     IRpcChannelBuffer* pRpcChannelBuffer,
7185     PRPC_MESSAGE pRpcMessage,
7186     DWORD* pdwStubPhase);
7187 HRESULT STDMETHODCALLTYPE IComThreadingInfo_GetCurrentLogicalThreadId_Proxy(
7188     IComThreadingInfo* This,
7189     GUID *pguidLogicalThreadId);
7190 void __RPC_STUB IComThreadingInfo_GetCurrentLogicalThreadId_Stub(
7191     IRpcStubBuffer* This,
7192     IRpcChannelBuffer* pRpcChannelBuffer,
7193     PRPC_MESSAGE pRpcMessage,
7194     DWORD* pdwStubPhase);
7195 HRESULT STDMETHODCALLTYPE IComThreadingInfo_SetCurrentLogicalThreadId_Proxy(
7196     IComThreadingInfo* This,
7197     REFGUID rguid);
7198 void __RPC_STUB IComThreadingInfo_SetCurrentLogicalThreadId_Stub(
7199     IRpcStubBuffer* This,
7200     IRpcChannelBuffer* pRpcChannelBuffer,
7201     PRPC_MESSAGE pRpcMessage,
7202     DWORD* pdwStubPhase);
7203 
7204 #endif  /* __IComThreadingInfo_INTERFACE_DEFINED__ */
7205 
7206 
7207 /*****************************************************************************
7208  * IProcessInitControl interface
7209  */
7210 #ifndef __IProcessInitControl_INTERFACE_DEFINED__
7211 #define __IProcessInitControl_INTERFACE_DEFINED__
7212 
7213 DEFINE_GUID(IID_IProcessInitControl, 0x72380d55, 0x8d2b, 0x43a3, 0x85,0x13, 0x2b,0x6e,0xf3,0x14,0x34,0xe9);
7214 #if defined(__cplusplus) && !defined(CINTERFACE)
7215 MIDL_INTERFACE("72380d55-8d2b-43a3-8513-2b6ef31434e9")
7216 IProcessInitControl : public IUnknown
7217 {
7218     virtual HRESULT STDMETHODCALLTYPE ResetInitializerTimeout(
7219         DWORD dwSecondsRemaining) = 0;
7220 
7221 };
7222 #ifdef __CRT_UUID_DECL
7223 __CRT_UUID_DECL(IProcessInitControl, 0x72380d55, 0x8d2b, 0x43a3, 0x85,0x13, 0x2b,0x6e,0xf3,0x14,0x34,0xe9)
7224 #endif
7225 #else
7226 typedef struct IProcessInitControlVtbl {
7227     BEGIN_INTERFACE
7228 
7229     /*** IUnknown methods ***/
7230     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7231         IProcessInitControl* This,
7232         REFIID riid,
7233         void **ppvObject);
7234 
7235     ULONG (STDMETHODCALLTYPE *AddRef)(
7236         IProcessInitControl* This);
7237 
7238     ULONG (STDMETHODCALLTYPE *Release)(
7239         IProcessInitControl* This);
7240 
7241     /*** IProcessInitControl methods ***/
7242     HRESULT (STDMETHODCALLTYPE *ResetInitializerTimeout)(
7243         IProcessInitControl* This,
7244         DWORD dwSecondsRemaining);
7245 
7246     END_INTERFACE
7247 } IProcessInitControlVtbl;
7248 interface IProcessInitControl {
7249     CONST_VTBL IProcessInitControlVtbl* lpVtbl;
7250 };
7251 
7252 #ifdef COBJMACROS
7253 #ifndef WIDL_C_INLINE_WRAPPERS
7254 /*** IUnknown methods ***/
7255 #define IProcessInitControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7256 #define IProcessInitControl_AddRef(This) (This)->lpVtbl->AddRef(This)
7257 #define IProcessInitControl_Release(This) (This)->lpVtbl->Release(This)
7258 /*** IProcessInitControl methods ***/
7259 #define IProcessInitControl_ResetInitializerTimeout(This,dwSecondsRemaining) (This)->lpVtbl->ResetInitializerTimeout(This,dwSecondsRemaining)
7260 #else
7261 /*** IUnknown methods ***/
7262 static FORCEINLINE HRESULT IProcessInitControl_QueryInterface(IProcessInitControl* This,REFIID riid,void **ppvObject) {
7263     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7264 }
7265 static FORCEINLINE ULONG IProcessInitControl_AddRef(IProcessInitControl* This) {
7266     return This->lpVtbl->AddRef(This);
7267 }
7268 static FORCEINLINE ULONG IProcessInitControl_Release(IProcessInitControl* This) {
7269     return This->lpVtbl->Release(This);
7270 }
7271 /*** IProcessInitControl methods ***/
7272 static FORCEINLINE HRESULT IProcessInitControl_ResetInitializerTimeout(IProcessInitControl* This,DWORD dwSecondsRemaining) {
7273     return This->lpVtbl->ResetInitializerTimeout(This,dwSecondsRemaining);
7274 }
7275 #endif
7276 #endif
7277 
7278 #endif
7279 
7280 HRESULT STDMETHODCALLTYPE IProcessInitControl_ResetInitializerTimeout_Proxy(
7281     IProcessInitControl* This,
7282     DWORD dwSecondsRemaining);
7283 void __RPC_STUB IProcessInitControl_ResetInitializerTimeout_Stub(
7284     IRpcStubBuffer* This,
7285     IRpcChannelBuffer* pRpcChannelBuffer,
7286     PRPC_MESSAGE pRpcMessage,
7287     DWORD* pdwStubPhase);
7288 
7289 #endif  /* __IProcessInitControl_INTERFACE_DEFINED__ */
7290 
7291 
7292 /*****************************************************************************
7293  * IFastRundown interface
7294  */
7295 #ifndef __IFastRundown_INTERFACE_DEFINED__
7296 #define __IFastRundown_INTERFACE_DEFINED__
7297 
7298 DEFINE_GUID(IID_IFastRundown, 0x00000040, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7299 #if defined(__cplusplus) && !defined(CINTERFACE)
7300 MIDL_INTERFACE("00000040-0000-0000-c000-000000000046")
7301 IFastRundown : public IUnknown
7302 {
7303 };
7304 #ifdef __CRT_UUID_DECL
7305 __CRT_UUID_DECL(IFastRundown, 0x00000040, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
7306 #endif
7307 #else
7308 typedef struct IFastRundownVtbl {
7309     BEGIN_INTERFACE
7310 
7311     /*** IUnknown methods ***/
7312     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7313         IFastRundown* This,
7314         REFIID riid,
7315         void **ppvObject);
7316 
7317     ULONG (STDMETHODCALLTYPE *AddRef)(
7318         IFastRundown* This);
7319 
7320     ULONG (STDMETHODCALLTYPE *Release)(
7321         IFastRundown* This);
7322 
7323     END_INTERFACE
7324 } IFastRundownVtbl;
7325 interface IFastRundown {
7326     CONST_VTBL IFastRundownVtbl* lpVtbl;
7327 };
7328 
7329 #ifdef COBJMACROS
7330 #ifndef WIDL_C_INLINE_WRAPPERS
7331 /*** IUnknown methods ***/
7332 #define IFastRundown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7333 #define IFastRundown_AddRef(This) (This)->lpVtbl->AddRef(This)
7334 #define IFastRundown_Release(This) (This)->lpVtbl->Release(This)
7335 #else
7336 /*** IUnknown methods ***/
7337 static FORCEINLINE HRESULT IFastRundown_QueryInterface(IFastRundown* This,REFIID riid,void **ppvObject) {
7338     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7339 }
7340 static FORCEINLINE ULONG IFastRundown_AddRef(IFastRundown* This) {
7341     return This->lpVtbl->AddRef(This);
7342 }
7343 static FORCEINLINE ULONG IFastRundown_Release(IFastRundown* This) {
7344     return This->lpVtbl->Release(This);
7345 }
7346 #endif
7347 #endif
7348 
7349 #endif
7350 
7351 
7352 #endif  /* __IFastRundown_INTERFACE_DEFINED__ */
7353 
7354 
7355 typedef enum CO_MARSHALING_CONTEXT_ATTRIBUTES {
7356     CO_MARSHALING_SOURCE_IS_APP_CONTAINER = 0
7357 } CO_MARSHALING_CONTEXT_ATTRIBUTES;
7358 
7359 /*****************************************************************************
7360  * IMarshalingStream interface
7361  */
7362 #ifndef __IMarshalingStream_INTERFACE_DEFINED__
7363 #define __IMarshalingStream_INTERFACE_DEFINED__
7364 
7365 DEFINE_GUID(IID_IMarshalingStream, 0xd8f2f5e6, 0x6102, 0x4863, 0x9f,0x26, 0x38,0x9a,0x46,0x76,0xef,0xde);
7366 #if defined(__cplusplus) && !defined(CINTERFACE)
7367 MIDL_INTERFACE("d8f2f5e6-6102-4863-9f26-389a4676efde")
7368 IMarshalingStream : public IStream
7369 {
7370     virtual HRESULT STDMETHODCALLTYPE GetMarshalingContextAttribute(
7371         CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
7372         ULONG_PTR *pAttributeValue) = 0;
7373 
7374 };
7375 #ifdef __CRT_UUID_DECL
7376 __CRT_UUID_DECL(IMarshalingStream, 0xd8f2f5e6, 0x6102, 0x4863, 0x9f,0x26, 0x38,0x9a,0x46,0x76,0xef,0xde)
7377 #endif
7378 #else
7379 typedef struct IMarshalingStreamVtbl {
7380     BEGIN_INTERFACE
7381 
7382     /*** IUnknown methods ***/
7383     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7384         IMarshalingStream* This,
7385         REFIID riid,
7386         void **ppvObject);
7387 
7388     ULONG (STDMETHODCALLTYPE *AddRef)(
7389         IMarshalingStream* This);
7390 
7391     ULONG (STDMETHODCALLTYPE *Release)(
7392         IMarshalingStream* This);
7393 
7394     /*** ISequentialStream methods ***/
7395     HRESULT (STDMETHODCALLTYPE *Read)(
7396         IMarshalingStream* This,
7397         void *pv,
7398         ULONG cb,
7399         ULONG *pcbRead);
7400 
7401     HRESULT (STDMETHODCALLTYPE *Write)(
7402         IMarshalingStream* This,
7403         const void *pv,
7404         ULONG cb,
7405         ULONG *pcbWritten);
7406 
7407     /*** IStream methods ***/
7408     HRESULT (STDMETHODCALLTYPE *Seek)(
7409         IMarshalingStream* This,
7410         LARGE_INTEGER dlibMove,
7411         DWORD dwOrigin,
7412         ULARGE_INTEGER *plibNewPosition);
7413 
7414     HRESULT (STDMETHODCALLTYPE *SetSize)(
7415         IMarshalingStream* This,
7416         ULARGE_INTEGER libNewSize);
7417 
7418     HRESULT (STDMETHODCALLTYPE *CopyTo)(
7419         IMarshalingStream* This,
7420         IStream *pstm,
7421         ULARGE_INTEGER cb,
7422         ULARGE_INTEGER *pcbRead,
7423         ULARGE_INTEGER *pcbWritten);
7424 
7425     HRESULT (STDMETHODCALLTYPE *Commit)(
7426         IMarshalingStream* This,
7427         DWORD grfCommitFlags);
7428 
7429     HRESULT (STDMETHODCALLTYPE *Revert)(
7430         IMarshalingStream* This);
7431 
7432     HRESULT (STDMETHODCALLTYPE *LockRegion)(
7433         IMarshalingStream* This,
7434         ULARGE_INTEGER libOffset,
7435         ULARGE_INTEGER cb,
7436         DWORD dwLockType);
7437 
7438     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
7439         IMarshalingStream* This,
7440         ULARGE_INTEGER libOffset,
7441         ULARGE_INTEGER cb,
7442         DWORD dwLockType);
7443 
7444     HRESULT (STDMETHODCALLTYPE *Stat)(
7445         IMarshalingStream* This,
7446         STATSTG *pstatstg,
7447         DWORD grfStatFlag);
7448 
7449     HRESULT (STDMETHODCALLTYPE *Clone)(
7450         IMarshalingStream* This,
7451         IStream **ppstm);
7452 
7453     /*** IMarshalingStream methods ***/
7454     HRESULT (STDMETHODCALLTYPE *GetMarshalingContextAttribute)(
7455         IMarshalingStream* This,
7456         CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
7457         ULONG_PTR *pAttributeValue);
7458 
7459     END_INTERFACE
7460 } IMarshalingStreamVtbl;
7461 interface IMarshalingStream {
7462     CONST_VTBL IMarshalingStreamVtbl* lpVtbl;
7463 };
7464 
7465 #ifdef COBJMACROS
7466 #ifndef WIDL_C_INLINE_WRAPPERS
7467 /*** IUnknown methods ***/
7468 #define IMarshalingStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7469 #define IMarshalingStream_AddRef(This) (This)->lpVtbl->AddRef(This)
7470 #define IMarshalingStream_Release(This) (This)->lpVtbl->Release(This)
7471 /*** ISequentialStream methods ***/
7472 #define IMarshalingStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
7473 #define IMarshalingStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
7474 /*** IStream methods ***/
7475 #define IMarshalingStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
7476 #define IMarshalingStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
7477 #define IMarshalingStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
7478 #define IMarshalingStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
7479 #define IMarshalingStream_Revert(This) (This)->lpVtbl->Revert(This)
7480 #define IMarshalingStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
7481 #define IMarshalingStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
7482 #define IMarshalingStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
7483 #define IMarshalingStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
7484 /*** IMarshalingStream methods ***/
7485 #define IMarshalingStream_GetMarshalingContextAttribute(This,attribute,pAttributeValue) (This)->lpVtbl->GetMarshalingContextAttribute(This,attribute,pAttributeValue)
7486 #else
7487 /*** IUnknown methods ***/
7488 static FORCEINLINE HRESULT IMarshalingStream_QueryInterface(IMarshalingStream* This,REFIID riid,void **ppvObject) {
7489     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7490 }
7491 static FORCEINLINE ULONG IMarshalingStream_AddRef(IMarshalingStream* This) {
7492     return This->lpVtbl->AddRef(This);
7493 }
7494 static FORCEINLINE ULONG IMarshalingStream_Release(IMarshalingStream* This) {
7495     return This->lpVtbl->Release(This);
7496 }
7497 /*** ISequentialStream methods ***/
7498 static FORCEINLINE HRESULT IMarshalingStream_Read(IMarshalingStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
7499     return This->lpVtbl->Read(This,pv,cb,pcbRead);
7500 }
7501 static FORCEINLINE HRESULT IMarshalingStream_Write(IMarshalingStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
7502     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
7503 }
7504 /*** IStream methods ***/
7505 static FORCEINLINE HRESULT IMarshalingStream_Seek(IMarshalingStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
7506     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
7507 }
7508 static FORCEINLINE HRESULT IMarshalingStream_SetSize(IMarshalingStream* This,ULARGE_INTEGER libNewSize) {
7509     return This->lpVtbl->SetSize(This,libNewSize);
7510 }
7511 static FORCEINLINE HRESULT IMarshalingStream_CopyTo(IMarshalingStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
7512     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
7513 }
7514 static FORCEINLINE HRESULT IMarshalingStream_Commit(IMarshalingStream* This,DWORD grfCommitFlags) {
7515     return This->lpVtbl->Commit(This,grfCommitFlags);
7516 }
7517 static FORCEINLINE HRESULT IMarshalingStream_Revert(IMarshalingStream* This) {
7518     return This->lpVtbl->Revert(This);
7519 }
7520 static FORCEINLINE HRESULT IMarshalingStream_LockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
7521     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
7522 }
7523 static FORCEINLINE HRESULT IMarshalingStream_UnlockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
7524     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
7525 }
7526 static FORCEINLINE HRESULT IMarshalingStream_Stat(IMarshalingStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
7527     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
7528 }
7529 static FORCEINLINE HRESULT IMarshalingStream_Clone(IMarshalingStream* This,IStream **ppstm) {
7530     return This->lpVtbl->Clone(This,ppstm);
7531 }
7532 /*** IMarshalingStream methods ***/
7533 static FORCEINLINE HRESULT IMarshalingStream_GetMarshalingContextAttribute(IMarshalingStream* This,CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,ULONG_PTR *pAttributeValue) {
7534     return This->lpVtbl->GetMarshalingContextAttribute(This,attribute,pAttributeValue);
7535 }
7536 #endif
7537 #endif
7538 
7539 #endif
7540 
7541 HRESULT STDMETHODCALLTYPE IMarshalingStream_GetMarshalingContextAttribute_Proxy(
7542     IMarshalingStream* This,
7543     CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
7544     ULONG_PTR *pAttributeValue);
7545 void __RPC_STUB IMarshalingStream_GetMarshalingContextAttribute_Stub(
7546     IRpcStubBuffer* This,
7547     IRpcChannelBuffer* pRpcChannelBuffer,
7548     PRPC_MESSAGE pRpcMessage,
7549     DWORD* pdwStubPhase);
7550 
7551 #endif  /* __IMarshalingStream_INTERFACE_DEFINED__ */
7552 
7553 #endif
7554 
7555 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
7556 EXTERN_C const GUID  IID_ICallbackWithNoReentrancyToApplicationSTA;
7557 #endif
7558 #define _OBJIDLBASE_
7559 #endif
7560 #ifndef __IMoniker_FWD_DEFINED__
7561 #define __IMoniker_FWD_DEFINED__
7562 typedef interface IMoniker IMoniker;
7563 #endif
7564 
7565 #ifndef __IEnumMoniker_FWD_DEFINED__
7566 #define __IEnumMoniker_FWD_DEFINED__
7567 typedef interface IEnumMoniker IEnumMoniker;
7568 #endif
7569 
7570 #ifndef __IRunningObjectTable_FWD_DEFINED__
7571 #define __IRunningObjectTable_FWD_DEFINED__
7572 typedef interface IRunningObjectTable IRunningObjectTable;
7573 #endif
7574 
7575 #ifndef __IStorage_FWD_DEFINED__
7576 #define __IStorage_FWD_DEFINED__
7577 typedef interface IStorage IStorage;
7578 #endif
7579 
7580 #ifndef __IEnumSTATSTG_FWD_DEFINED__
7581 #define __IEnumSTATSTG_FWD_DEFINED__
7582 typedef interface IEnumSTATSTG IEnumSTATSTG;
7583 #endif
7584 
7585 #ifndef __IAdviseSink_FWD_DEFINED__
7586 #define __IAdviseSink_FWD_DEFINED__
7587 typedef interface IAdviseSink IAdviseSink;
7588 #endif
7589 
7590 #ifndef __AsyncIAdviseSink_FWD_DEFINED__
7591 #define __AsyncIAdviseSink_FWD_DEFINED__
7592 typedef interface AsyncIAdviseSink AsyncIAdviseSink;
7593 #endif
7594 
7595 #ifndef __IBindCtx_FWD_DEFINED__
7596 #define __IBindCtx_FWD_DEFINED__
7597 typedef interface IBindCtx IBindCtx;
7598 #endif
7599 
7600 #ifndef __IEnumMoniker_FWD_DEFINED__
7601 #define __IEnumMoniker_FWD_DEFINED__
7602 typedef interface IEnumMoniker IEnumMoniker;
7603 #endif
7604 
7605 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
7606 /*****************************************************************************
7607  * IMallocSpy interface
7608  */
7609 #ifndef __IMallocSpy_INTERFACE_DEFINED__
7610 #define __IMallocSpy_INTERFACE_DEFINED__
7611 
7612 typedef IMallocSpy *LPMALLOCSPY;
7613 DEFINE_GUID(IID_IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7614 #if defined(__cplusplus) && !defined(CINTERFACE)
7615 MIDL_INTERFACE("0000001d-0000-0000-c000-000000000046")
7616 IMallocSpy : public IUnknown
7617 {
7618     virtual SIZE_T STDMETHODCALLTYPE PreAlloc(
7619         SIZE_T cbRequest) = 0;
7620 
7621     virtual void * STDMETHODCALLTYPE PostAlloc(
7622         void *pActual) = 0;
7623 
7624     virtual void * STDMETHODCALLTYPE PreFree(
7625         void *pRequest,
7626         WINBOOL fSpyed) = 0;
7627 
7628     virtual void STDMETHODCALLTYPE PostFree(
7629         WINBOOL fSpyed) = 0;
7630 
7631     virtual SIZE_T STDMETHODCALLTYPE PreRealloc(
7632         void *pRequest,
7633         SIZE_T cbRequest,
7634         void **ppNewRequest,
7635         WINBOOL fSpyed) = 0;
7636 
7637     virtual void * STDMETHODCALLTYPE PostRealloc(
7638         void *pActual,
7639         WINBOOL fSpyed) = 0;
7640 
7641     virtual void * STDMETHODCALLTYPE PreGetSize(
7642         void *pRequest,
7643         WINBOOL fSpyed) = 0;
7644 
7645     virtual SIZE_T STDMETHODCALLTYPE PostGetSize(
7646         SIZE_T cbActual,
7647         WINBOOL fSpyed) = 0;
7648 
7649     virtual void * STDMETHODCALLTYPE PreDidAlloc(
7650         void *pRequest,
7651         WINBOOL fSpyed) = 0;
7652 
7653     virtual int STDMETHODCALLTYPE PostDidAlloc(
7654         void *pRequest,
7655         WINBOOL fSpyed,
7656         int fActual) = 0;
7657 
7658     virtual void STDMETHODCALLTYPE PreHeapMinimize(
7659         ) = 0;
7660 
7661     virtual void STDMETHODCALLTYPE PostHeapMinimize(
7662         ) = 0;
7663 
7664 };
7665 #ifdef __CRT_UUID_DECL
7666 __CRT_UUID_DECL(IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
7667 #endif
7668 #else
7669 typedef struct IMallocSpyVtbl {
7670     BEGIN_INTERFACE
7671 
7672     /*** IUnknown methods ***/
7673     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7674         IMallocSpy* This,
7675         REFIID riid,
7676         void **ppvObject);
7677 
7678     ULONG (STDMETHODCALLTYPE *AddRef)(
7679         IMallocSpy* This);
7680 
7681     ULONG (STDMETHODCALLTYPE *Release)(
7682         IMallocSpy* This);
7683 
7684     /*** IMallocSpy methods ***/
7685     SIZE_T (STDMETHODCALLTYPE *PreAlloc)(
7686         IMallocSpy* This,
7687         SIZE_T cbRequest);
7688 
7689     void * (STDMETHODCALLTYPE *PostAlloc)(
7690         IMallocSpy* This,
7691         void *pActual);
7692 
7693     void * (STDMETHODCALLTYPE *PreFree)(
7694         IMallocSpy* This,
7695         void *pRequest,
7696         WINBOOL fSpyed);
7697 
7698     void (STDMETHODCALLTYPE *PostFree)(
7699         IMallocSpy* This,
7700         WINBOOL fSpyed);
7701 
7702     SIZE_T (STDMETHODCALLTYPE *PreRealloc)(
7703         IMallocSpy* This,
7704         void *pRequest,
7705         SIZE_T cbRequest,
7706         void **ppNewRequest,
7707         WINBOOL fSpyed);
7708 
7709     void * (STDMETHODCALLTYPE *PostRealloc)(
7710         IMallocSpy* This,
7711         void *pActual,
7712         WINBOOL fSpyed);
7713 
7714     void * (STDMETHODCALLTYPE *PreGetSize)(
7715         IMallocSpy* This,
7716         void *pRequest,
7717         WINBOOL fSpyed);
7718 
7719     SIZE_T (STDMETHODCALLTYPE *PostGetSize)(
7720         IMallocSpy* This,
7721         SIZE_T cbActual,
7722         WINBOOL fSpyed);
7723 
7724     void * (STDMETHODCALLTYPE *PreDidAlloc)(
7725         IMallocSpy* This,
7726         void *pRequest,
7727         WINBOOL fSpyed);
7728 
7729     int (STDMETHODCALLTYPE *PostDidAlloc)(
7730         IMallocSpy* This,
7731         void *pRequest,
7732         WINBOOL fSpyed,
7733         int fActual);
7734 
7735     void (STDMETHODCALLTYPE *PreHeapMinimize)(
7736         IMallocSpy* This);
7737 
7738     void (STDMETHODCALLTYPE *PostHeapMinimize)(
7739         IMallocSpy* This);
7740 
7741     END_INTERFACE
7742 } IMallocSpyVtbl;
7743 interface IMallocSpy {
7744     CONST_VTBL IMallocSpyVtbl* lpVtbl;
7745 };
7746 
7747 #ifdef COBJMACROS
7748 #ifndef WIDL_C_INLINE_WRAPPERS
7749 /*** IUnknown methods ***/
7750 #define IMallocSpy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7751 #define IMallocSpy_AddRef(This) (This)->lpVtbl->AddRef(This)
7752 #define IMallocSpy_Release(This) (This)->lpVtbl->Release(This)
7753 /*** IMallocSpy methods ***/
7754 #define IMallocSpy_PreAlloc(This,cbRequest) (This)->lpVtbl->PreAlloc(This,cbRequest)
7755 #define IMallocSpy_PostAlloc(This,pActual) (This)->lpVtbl->PostAlloc(This,pActual)
7756 #define IMallocSpy_PreFree(This,pRequest,fSpyed) (This)->lpVtbl->PreFree(This,pRequest,fSpyed)
7757 #define IMallocSpy_PostFree(This,fSpyed) (This)->lpVtbl->PostFree(This,fSpyed)
7758 #define IMallocSpy_PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed) (This)->lpVtbl->PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed)
7759 #define IMallocSpy_PostRealloc(This,pActual,fSpyed) (This)->lpVtbl->PostRealloc(This,pActual,fSpyed)
7760 #define IMallocSpy_PreGetSize(This,pRequest,fSpyed) (This)->lpVtbl->PreGetSize(This,pRequest,fSpyed)
7761 #define IMallocSpy_PostGetSize(This,cbActual,fSpyed) (This)->lpVtbl->PostGetSize(This,cbActual,fSpyed)
7762 #define IMallocSpy_PreDidAlloc(This,pRequest,fSpyed) (This)->lpVtbl->PreDidAlloc(This,pRequest,fSpyed)
7763 #define IMallocSpy_PostDidAlloc(This,pRequest,fSpyed,fActual) (This)->lpVtbl->PostDidAlloc(This,pRequest,fSpyed,fActual)
7764 #define IMallocSpy_PreHeapMinimize(This) (This)->lpVtbl->PreHeapMinimize(This)
7765 #define IMallocSpy_PostHeapMinimize(This) (This)->lpVtbl->PostHeapMinimize(This)
7766 #else
7767 /*** IUnknown methods ***/
7768 static FORCEINLINE HRESULT IMallocSpy_QueryInterface(IMallocSpy* This,REFIID riid,void **ppvObject) {
7769     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7770 }
7771 static FORCEINLINE ULONG IMallocSpy_AddRef(IMallocSpy* This) {
7772     return This->lpVtbl->AddRef(This);
7773 }
7774 static FORCEINLINE ULONG IMallocSpy_Release(IMallocSpy* This) {
7775     return This->lpVtbl->Release(This);
7776 }
7777 /*** IMallocSpy methods ***/
7778 static FORCEINLINE SIZE_T IMallocSpy_PreAlloc(IMallocSpy* This,SIZE_T cbRequest) {
7779     return This->lpVtbl->PreAlloc(This,cbRequest);
7780 }
7781 static FORCEINLINE void * IMallocSpy_PostAlloc(IMallocSpy* This,void *pActual) {
7782     return This->lpVtbl->PostAlloc(This,pActual);
7783 }
7784 static FORCEINLINE void * IMallocSpy_PreFree(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
7785     return This->lpVtbl->PreFree(This,pRequest,fSpyed);
7786 }
7787 static FORCEINLINE void IMallocSpy_PostFree(IMallocSpy* This,WINBOOL fSpyed) {
7788     This->lpVtbl->PostFree(This,fSpyed);
7789 }
7790 static FORCEINLINE SIZE_T IMallocSpy_PreRealloc(IMallocSpy* This,void *pRequest,SIZE_T cbRequest,void **ppNewRequest,WINBOOL fSpyed) {
7791     return This->lpVtbl->PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed);
7792 }
7793 static FORCEINLINE void * IMallocSpy_PostRealloc(IMallocSpy* This,void *pActual,WINBOOL fSpyed) {
7794     return This->lpVtbl->PostRealloc(This,pActual,fSpyed);
7795 }
7796 static FORCEINLINE void * IMallocSpy_PreGetSize(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
7797     return This->lpVtbl->PreGetSize(This,pRequest,fSpyed);
7798 }
7799 static FORCEINLINE SIZE_T IMallocSpy_PostGetSize(IMallocSpy* This,SIZE_T cbActual,WINBOOL fSpyed) {
7800     return This->lpVtbl->PostGetSize(This,cbActual,fSpyed);
7801 }
7802 static FORCEINLINE void * IMallocSpy_PreDidAlloc(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
7803     return This->lpVtbl->PreDidAlloc(This,pRequest,fSpyed);
7804 }
7805 static FORCEINLINE int IMallocSpy_PostDidAlloc(IMallocSpy* This,void *pRequest,WINBOOL fSpyed,int fActual) {
7806     return This->lpVtbl->PostDidAlloc(This,pRequest,fSpyed,fActual);
7807 }
7808 static FORCEINLINE void IMallocSpy_PreHeapMinimize(IMallocSpy* This) {
7809     This->lpVtbl->PreHeapMinimize(This);
7810 }
7811 static FORCEINLINE void IMallocSpy_PostHeapMinimize(IMallocSpy* This) {
7812     This->lpVtbl->PostHeapMinimize(This);
7813 }
7814 #endif
7815 #endif
7816 
7817 #endif
7818 
7819 SIZE_T STDMETHODCALLTYPE IMallocSpy_PreAlloc_Proxy(
7820     IMallocSpy* This,
7821     SIZE_T cbRequest);
7822 void __RPC_STUB IMallocSpy_PreAlloc_Stub(
7823     IRpcStubBuffer* This,
7824     IRpcChannelBuffer* pRpcChannelBuffer,
7825     PRPC_MESSAGE pRpcMessage,
7826     DWORD* pdwStubPhase);
7827 void * STDMETHODCALLTYPE IMallocSpy_PostAlloc_Proxy(
7828     IMallocSpy* This,
7829     void *pActual);
7830 void __RPC_STUB IMallocSpy_PostAlloc_Stub(
7831     IRpcStubBuffer* This,
7832     IRpcChannelBuffer* pRpcChannelBuffer,
7833     PRPC_MESSAGE pRpcMessage,
7834     DWORD* pdwStubPhase);
7835 void * STDMETHODCALLTYPE IMallocSpy_PreFree_Proxy(
7836     IMallocSpy* This,
7837     void *pRequest,
7838     WINBOOL fSpyed);
7839 void __RPC_STUB IMallocSpy_PreFree_Stub(
7840     IRpcStubBuffer* This,
7841     IRpcChannelBuffer* pRpcChannelBuffer,
7842     PRPC_MESSAGE pRpcMessage,
7843     DWORD* pdwStubPhase);
7844 void STDMETHODCALLTYPE IMallocSpy_PostFree_Proxy(
7845     IMallocSpy* This,
7846     WINBOOL fSpyed);
7847 void __RPC_STUB IMallocSpy_PostFree_Stub(
7848     IRpcStubBuffer* This,
7849     IRpcChannelBuffer* pRpcChannelBuffer,
7850     PRPC_MESSAGE pRpcMessage,
7851     DWORD* pdwStubPhase);
7852 SIZE_T STDMETHODCALLTYPE IMallocSpy_PreRealloc_Proxy(
7853     IMallocSpy* This,
7854     void *pRequest,
7855     SIZE_T cbRequest,
7856     void **ppNewRequest,
7857     WINBOOL fSpyed);
7858 void __RPC_STUB IMallocSpy_PreRealloc_Stub(
7859     IRpcStubBuffer* This,
7860     IRpcChannelBuffer* pRpcChannelBuffer,
7861     PRPC_MESSAGE pRpcMessage,
7862     DWORD* pdwStubPhase);
7863 void * STDMETHODCALLTYPE IMallocSpy_PostRealloc_Proxy(
7864     IMallocSpy* This,
7865     void *pActual,
7866     WINBOOL fSpyed);
7867 void __RPC_STUB IMallocSpy_PostRealloc_Stub(
7868     IRpcStubBuffer* This,
7869     IRpcChannelBuffer* pRpcChannelBuffer,
7870     PRPC_MESSAGE pRpcMessage,
7871     DWORD* pdwStubPhase);
7872 void * STDMETHODCALLTYPE IMallocSpy_PreGetSize_Proxy(
7873     IMallocSpy* This,
7874     void *pRequest,
7875     WINBOOL fSpyed);
7876 void __RPC_STUB IMallocSpy_PreGetSize_Stub(
7877     IRpcStubBuffer* This,
7878     IRpcChannelBuffer* pRpcChannelBuffer,
7879     PRPC_MESSAGE pRpcMessage,
7880     DWORD* pdwStubPhase);
7881 SIZE_T STDMETHODCALLTYPE IMallocSpy_PostGetSize_Proxy(
7882     IMallocSpy* This,
7883     SIZE_T cbActual,
7884     WINBOOL fSpyed);
7885 void __RPC_STUB IMallocSpy_PostGetSize_Stub(
7886     IRpcStubBuffer* This,
7887     IRpcChannelBuffer* pRpcChannelBuffer,
7888     PRPC_MESSAGE pRpcMessage,
7889     DWORD* pdwStubPhase);
7890 void * STDMETHODCALLTYPE IMallocSpy_PreDidAlloc_Proxy(
7891     IMallocSpy* This,
7892     void *pRequest,
7893     WINBOOL fSpyed);
7894 void __RPC_STUB IMallocSpy_PreDidAlloc_Stub(
7895     IRpcStubBuffer* This,
7896     IRpcChannelBuffer* pRpcChannelBuffer,
7897     PRPC_MESSAGE pRpcMessage,
7898     DWORD* pdwStubPhase);
7899 int STDMETHODCALLTYPE IMallocSpy_PostDidAlloc_Proxy(
7900     IMallocSpy* This,
7901     void *pRequest,
7902     WINBOOL fSpyed,
7903     int fActual);
7904 void __RPC_STUB IMallocSpy_PostDidAlloc_Stub(
7905     IRpcStubBuffer* This,
7906     IRpcChannelBuffer* pRpcChannelBuffer,
7907     PRPC_MESSAGE pRpcMessage,
7908     DWORD* pdwStubPhase);
7909 void STDMETHODCALLTYPE IMallocSpy_PreHeapMinimize_Proxy(
7910     IMallocSpy* This);
7911 void __RPC_STUB IMallocSpy_PreHeapMinimize_Stub(
7912     IRpcStubBuffer* This,
7913     IRpcChannelBuffer* pRpcChannelBuffer,
7914     PRPC_MESSAGE pRpcMessage,
7915     DWORD* pdwStubPhase);
7916 void STDMETHODCALLTYPE IMallocSpy_PostHeapMinimize_Proxy(
7917     IMallocSpy* This);
7918 void __RPC_STUB IMallocSpy_PostHeapMinimize_Stub(
7919     IRpcStubBuffer* This,
7920     IRpcChannelBuffer* pRpcChannelBuffer,
7921     PRPC_MESSAGE pRpcMessage,
7922     DWORD* pdwStubPhase);
7923 
7924 #endif  /* __IMallocSpy_INTERFACE_DEFINED__ */
7925 
7926 #endif
7927 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
7928 /*****************************************************************************
7929  * IBindCtx interface
7930  */
7931 #ifndef __IBindCtx_INTERFACE_DEFINED__
7932 #define __IBindCtx_INTERFACE_DEFINED__
7933 
7934 typedef IBindCtx *LPBC;
7935 typedef IBindCtx *LPBINDCTX;
7936 #if defined(__cplusplus)
7937 typedef struct tagBIND_OPTS {
7938   DWORD cbStruct;
7939   DWORD grfFlags;
7940   DWORD grfMode;
7941   DWORD dwTickCountDeadline;
7942 } BIND_OPTS, *LPBIND_OPTS;
7943 #else
7944 typedef struct tagBIND_OPTS {
7945     DWORD cbStruct;
7946     DWORD grfFlags;
7947     DWORD grfMode;
7948     DWORD dwTickCountDeadline;
7949 } BIND_OPTS;
7950 typedef struct tagBIND_OPTS *LPBIND_OPTS;
7951 #endif
7952 #if defined(__cplusplus)
7953 typedef struct tagBIND_OPTS2 : tagBIND_OPTS {
7954 DWORD           dwTrackFlags;
7955 DWORD           dwClassContext;
7956 LCID            locale;
7957 COSERVERINFO *  pServerInfo;
7958 } BIND_OPTS2, * LPBIND_OPTS2;
7959 #else
7960 typedef struct tagBIND_OPTS2 {
7961     DWORD cbStruct;
7962     DWORD grfFlags;
7963     DWORD grfMode;
7964     DWORD dwTickCountDeadline;
7965     DWORD dwTrackFlags;
7966     DWORD dwClassContext;
7967     LCID locale;
7968     COSERVERINFO *pServerInfo;
7969 } BIND_OPTS2;
7970 typedef struct tagBIND_OPTS2 *LPBIND_OPTS2;
7971 #endif
7972 #if defined(__cplusplus)
7973 typedef struct tagBIND_OPTS3 : tagBIND_OPTS2 {
7974 HWND           hwnd;
7975 } BIND_OPTS3, * LPBIND_OPTS3;
7976 #else
7977 typedef struct tagBIND_OPTS3 {
7978     DWORD cbStruct;
7979     DWORD grfFlags;
7980     DWORD grfMode;
7981     DWORD dwTickCountDeadline;
7982     DWORD dwTrackFlags;
7983     DWORD dwClassContext;
7984     LCID locale;
7985     COSERVERINFO *pServerInfo;
7986     HWND hwnd;
7987 } BIND_OPTS3;
7988 typedef struct tagBIND_OPTS3 *LPBIND_OPTS3;
7989 #endif
7990 typedef enum tagBIND_FLAGS {
7991     BIND_MAYBOTHERUSER = 1,
7992     BIND_JUSTTESTEXISTENCE = 2
7993 } BIND_FLAGS;
7994 DEFINE_GUID(IID_IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7995 #if defined(__cplusplus) && !defined(CINTERFACE)
7996 MIDL_INTERFACE("0000000e-0000-0000-c000-000000000046")
7997 IBindCtx : public IUnknown
7998 {
7999     virtual HRESULT STDMETHODCALLTYPE RegisterObjectBound(
8000         IUnknown *punk) = 0;
8001 
8002     virtual HRESULT STDMETHODCALLTYPE RevokeObjectBound(
8003         IUnknown *punk) = 0;
8004 
8005     virtual HRESULT STDMETHODCALLTYPE ReleaseBoundObjects(
8006         ) = 0;
8007 
8008     virtual HRESULT STDMETHODCALLTYPE SetBindOptions(
8009         BIND_OPTS *pbindopts) = 0;
8010 
8011     virtual HRESULT STDMETHODCALLTYPE GetBindOptions(
8012         BIND_OPTS *pbindopts) = 0;
8013 
8014     virtual HRESULT STDMETHODCALLTYPE GetRunningObjectTable(
8015         IRunningObjectTable **pprot) = 0;
8016 
8017     virtual HRESULT STDMETHODCALLTYPE RegisterObjectParam(
8018         LPOLESTR pszKey,
8019         IUnknown *punk) = 0;
8020 
8021     virtual HRESULT STDMETHODCALLTYPE GetObjectParam(
8022         LPOLESTR pszKey,
8023         IUnknown **ppunk) = 0;
8024 
8025     virtual HRESULT STDMETHODCALLTYPE EnumObjectParam(
8026         IEnumString **ppenum) = 0;
8027 
8028     virtual HRESULT STDMETHODCALLTYPE RevokeObjectParam(
8029         LPOLESTR pszKey) = 0;
8030 
8031 };
8032 #ifdef __CRT_UUID_DECL
8033 __CRT_UUID_DECL(IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8034 #endif
8035 #else
8036 typedef struct IBindCtxVtbl {
8037     BEGIN_INTERFACE
8038 
8039     /*** IUnknown methods ***/
8040     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8041         IBindCtx* This,
8042         REFIID riid,
8043         void **ppvObject);
8044 
8045     ULONG (STDMETHODCALLTYPE *AddRef)(
8046         IBindCtx* This);
8047 
8048     ULONG (STDMETHODCALLTYPE *Release)(
8049         IBindCtx* This);
8050 
8051     /*** IBindCtx methods ***/
8052     HRESULT (STDMETHODCALLTYPE *RegisterObjectBound)(
8053         IBindCtx* This,
8054         IUnknown *punk);
8055 
8056     HRESULT (STDMETHODCALLTYPE *RevokeObjectBound)(
8057         IBindCtx* This,
8058         IUnknown *punk);
8059 
8060     HRESULT (STDMETHODCALLTYPE *ReleaseBoundObjects)(
8061         IBindCtx* This);
8062 
8063     HRESULT (STDMETHODCALLTYPE *SetBindOptions)(
8064         IBindCtx* This,
8065         BIND_OPTS *pbindopts);
8066 
8067     HRESULT (STDMETHODCALLTYPE *GetBindOptions)(
8068         IBindCtx* This,
8069         BIND_OPTS *pbindopts);
8070 
8071     HRESULT (STDMETHODCALLTYPE *GetRunningObjectTable)(
8072         IBindCtx* This,
8073         IRunningObjectTable **pprot);
8074 
8075     HRESULT (STDMETHODCALLTYPE *RegisterObjectParam)(
8076         IBindCtx* This,
8077         LPOLESTR pszKey,
8078         IUnknown *punk);
8079 
8080     HRESULT (STDMETHODCALLTYPE *GetObjectParam)(
8081         IBindCtx* This,
8082         LPOLESTR pszKey,
8083         IUnknown **ppunk);
8084 
8085     HRESULT (STDMETHODCALLTYPE *EnumObjectParam)(
8086         IBindCtx* This,
8087         IEnumString **ppenum);
8088 
8089     HRESULT (STDMETHODCALLTYPE *RevokeObjectParam)(
8090         IBindCtx* This,
8091         LPOLESTR pszKey);
8092 
8093     END_INTERFACE
8094 } IBindCtxVtbl;
8095 interface IBindCtx {
8096     CONST_VTBL IBindCtxVtbl* lpVtbl;
8097 };
8098 
8099 #ifdef COBJMACROS
8100 #ifndef WIDL_C_INLINE_WRAPPERS
8101 /*** IUnknown methods ***/
8102 #define IBindCtx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8103 #define IBindCtx_AddRef(This) (This)->lpVtbl->AddRef(This)
8104 #define IBindCtx_Release(This) (This)->lpVtbl->Release(This)
8105 /*** IBindCtx methods ***/
8106 #define IBindCtx_RegisterObjectBound(This,punk) (This)->lpVtbl->RegisterObjectBound(This,punk)
8107 #define IBindCtx_RevokeObjectBound(This,punk) (This)->lpVtbl->RevokeObjectBound(This,punk)
8108 #define IBindCtx_ReleaseBoundObjects(This) (This)->lpVtbl->ReleaseBoundObjects(This)
8109 #define IBindCtx_SetBindOptions(This,pbindopts) (This)->lpVtbl->SetBindOptions(This,pbindopts)
8110 #define IBindCtx_GetBindOptions(This,pbindopts) (This)->lpVtbl->GetBindOptions(This,pbindopts)
8111 #define IBindCtx_GetRunningObjectTable(This,pprot) (This)->lpVtbl->GetRunningObjectTable(This,pprot)
8112 #define IBindCtx_RegisterObjectParam(This,pszKey,punk) (This)->lpVtbl->RegisterObjectParam(This,pszKey,punk)
8113 #define IBindCtx_GetObjectParam(This,pszKey,ppunk) (This)->lpVtbl->GetObjectParam(This,pszKey,ppunk)
8114 #define IBindCtx_EnumObjectParam(This,ppenum) (This)->lpVtbl->EnumObjectParam(This,ppenum)
8115 #define IBindCtx_RevokeObjectParam(This,pszKey) (This)->lpVtbl->RevokeObjectParam(This,pszKey)
8116 #else
8117 /*** IUnknown methods ***/
8118 static FORCEINLINE HRESULT IBindCtx_QueryInterface(IBindCtx* This,REFIID riid,void **ppvObject) {
8119     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8120 }
8121 static FORCEINLINE ULONG IBindCtx_AddRef(IBindCtx* This) {
8122     return This->lpVtbl->AddRef(This);
8123 }
8124 static FORCEINLINE ULONG IBindCtx_Release(IBindCtx* This) {
8125     return This->lpVtbl->Release(This);
8126 }
8127 /*** IBindCtx methods ***/
8128 static FORCEINLINE HRESULT IBindCtx_RegisterObjectBound(IBindCtx* This,IUnknown *punk) {
8129     return This->lpVtbl->RegisterObjectBound(This,punk);
8130 }
8131 static FORCEINLINE HRESULT IBindCtx_RevokeObjectBound(IBindCtx* This,IUnknown *punk) {
8132     return This->lpVtbl->RevokeObjectBound(This,punk);
8133 }
8134 static FORCEINLINE HRESULT IBindCtx_ReleaseBoundObjects(IBindCtx* This) {
8135     return This->lpVtbl->ReleaseBoundObjects(This);
8136 }
8137 static FORCEINLINE HRESULT IBindCtx_SetBindOptions(IBindCtx* This,BIND_OPTS *pbindopts) {
8138     return This->lpVtbl->SetBindOptions(This,pbindopts);
8139 }
8140 static FORCEINLINE HRESULT IBindCtx_GetBindOptions(IBindCtx* This,BIND_OPTS *pbindopts) {
8141     return This->lpVtbl->GetBindOptions(This,pbindopts);
8142 }
8143 static FORCEINLINE HRESULT IBindCtx_GetRunningObjectTable(IBindCtx* This,IRunningObjectTable **pprot) {
8144     return This->lpVtbl->GetRunningObjectTable(This,pprot);
8145 }
8146 static FORCEINLINE HRESULT IBindCtx_RegisterObjectParam(IBindCtx* This,LPOLESTR pszKey,IUnknown *punk) {
8147     return This->lpVtbl->RegisterObjectParam(This,pszKey,punk);
8148 }
8149 static FORCEINLINE HRESULT IBindCtx_GetObjectParam(IBindCtx* This,LPOLESTR pszKey,IUnknown **ppunk) {
8150     return This->lpVtbl->GetObjectParam(This,pszKey,ppunk);
8151 }
8152 static FORCEINLINE HRESULT IBindCtx_EnumObjectParam(IBindCtx* This,IEnumString **ppenum) {
8153     return This->lpVtbl->EnumObjectParam(This,ppenum);
8154 }
8155 static FORCEINLINE HRESULT IBindCtx_RevokeObjectParam(IBindCtx* This,LPOLESTR pszKey) {
8156     return This->lpVtbl->RevokeObjectParam(This,pszKey);
8157 }
8158 #endif
8159 #endif
8160 
8161 #endif
8162 
8163 HRESULT STDMETHODCALLTYPE IBindCtx_RegisterObjectBound_Proxy(
8164     IBindCtx* This,
8165     IUnknown *punk);
8166 void __RPC_STUB IBindCtx_RegisterObjectBound_Stub(
8167     IRpcStubBuffer* This,
8168     IRpcChannelBuffer* pRpcChannelBuffer,
8169     PRPC_MESSAGE pRpcMessage,
8170     DWORD* pdwStubPhase);
8171 HRESULT STDMETHODCALLTYPE IBindCtx_RevokeObjectBound_Proxy(
8172     IBindCtx* This,
8173     IUnknown *punk);
8174 void __RPC_STUB IBindCtx_RevokeObjectBound_Stub(
8175     IRpcStubBuffer* This,
8176     IRpcChannelBuffer* pRpcChannelBuffer,
8177     PRPC_MESSAGE pRpcMessage,
8178     DWORD* pdwStubPhase);
8179 HRESULT STDMETHODCALLTYPE IBindCtx_ReleaseBoundObjects_Proxy(
8180     IBindCtx* This);
8181 void __RPC_STUB IBindCtx_ReleaseBoundObjects_Stub(
8182     IRpcStubBuffer* This,
8183     IRpcChannelBuffer* pRpcChannelBuffer,
8184     PRPC_MESSAGE pRpcMessage,
8185     DWORD* pdwStubPhase);
8186 HRESULT STDMETHODCALLTYPE IBindCtx_RemoteSetBindOptions_Proxy(
8187     IBindCtx* This,
8188     BIND_OPTS2 *pbindopts);
8189 void __RPC_STUB IBindCtx_RemoteSetBindOptions_Stub(
8190     IRpcStubBuffer* This,
8191     IRpcChannelBuffer* pRpcChannelBuffer,
8192     PRPC_MESSAGE pRpcMessage,
8193     DWORD* pdwStubPhase);
8194 HRESULT STDMETHODCALLTYPE IBindCtx_RemoteGetBindOptions_Proxy(
8195     IBindCtx* This,
8196     BIND_OPTS2 *pbindopts);
8197 void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub(
8198     IRpcStubBuffer* This,
8199     IRpcChannelBuffer* pRpcChannelBuffer,
8200     PRPC_MESSAGE pRpcMessage,
8201     DWORD* pdwStubPhase);
8202 HRESULT STDMETHODCALLTYPE IBindCtx_GetRunningObjectTable_Proxy(
8203     IBindCtx* This,
8204     IRunningObjectTable **pprot);
8205 void __RPC_STUB IBindCtx_GetRunningObjectTable_Stub(
8206     IRpcStubBuffer* This,
8207     IRpcChannelBuffer* pRpcChannelBuffer,
8208     PRPC_MESSAGE pRpcMessage,
8209     DWORD* pdwStubPhase);
8210 HRESULT STDMETHODCALLTYPE IBindCtx_RegisterObjectParam_Proxy(
8211     IBindCtx* This,
8212     LPOLESTR pszKey,
8213     IUnknown *punk);
8214 void __RPC_STUB IBindCtx_RegisterObjectParam_Stub(
8215     IRpcStubBuffer* This,
8216     IRpcChannelBuffer* pRpcChannelBuffer,
8217     PRPC_MESSAGE pRpcMessage,
8218     DWORD* pdwStubPhase);
8219 HRESULT STDMETHODCALLTYPE IBindCtx_GetObjectParam_Proxy(
8220     IBindCtx* This,
8221     LPOLESTR pszKey,
8222     IUnknown **ppunk);
8223 void __RPC_STUB IBindCtx_GetObjectParam_Stub(
8224     IRpcStubBuffer* This,
8225     IRpcChannelBuffer* pRpcChannelBuffer,
8226     PRPC_MESSAGE pRpcMessage,
8227     DWORD* pdwStubPhase);
8228 HRESULT STDMETHODCALLTYPE IBindCtx_EnumObjectParam_Proxy(
8229     IBindCtx* This,
8230     IEnumString **ppenum);
8231 void __RPC_STUB IBindCtx_EnumObjectParam_Stub(
8232     IRpcStubBuffer* This,
8233     IRpcChannelBuffer* pRpcChannelBuffer,
8234     PRPC_MESSAGE pRpcMessage,
8235     DWORD* pdwStubPhase);
8236 HRESULT STDMETHODCALLTYPE IBindCtx_RevokeObjectParam_Proxy(
8237     IBindCtx* This,
8238     LPOLESTR pszKey);
8239 void __RPC_STUB IBindCtx_RevokeObjectParam_Stub(
8240     IRpcStubBuffer* This,
8241     IRpcChannelBuffer* pRpcChannelBuffer,
8242     PRPC_MESSAGE pRpcMessage,
8243     DWORD* pdwStubPhase);
8244 HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
8245     IBindCtx* This,
8246     BIND_OPTS *pbindopts);
8247 HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
8248     IBindCtx* This,
8249     BIND_OPTS2 *pbindopts);
8250 HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
8251     IBindCtx* This,
8252     BIND_OPTS *pbindopts);
8253 HRESULT __RPC_STUB IBindCtx_GetBindOptions_Stub(
8254     IBindCtx* This,
8255     BIND_OPTS2 *pbindopts);
8256 
8257 #endif  /* __IBindCtx_INTERFACE_DEFINED__ */
8258 
8259 /*****************************************************************************
8260  * IEnumMoniker interface
8261  */
8262 #ifndef __IEnumMoniker_INTERFACE_DEFINED__
8263 #define __IEnumMoniker_INTERFACE_DEFINED__
8264 
8265 typedef IEnumMoniker *LPENUMMONIKER;
8266 DEFINE_GUID(IID_IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8267 #if defined(__cplusplus) && !defined(CINTERFACE)
8268 MIDL_INTERFACE("00000102-0000-0000-c000-000000000046")
8269 IEnumMoniker : public IUnknown
8270 {
8271     virtual HRESULT STDMETHODCALLTYPE Next(
8272         ULONG celt,
8273         IMoniker **rgelt,
8274         ULONG *pceltFetched) = 0;
8275 
8276     virtual HRESULT STDMETHODCALLTYPE Skip(
8277         ULONG celt) = 0;
8278 
8279     virtual HRESULT STDMETHODCALLTYPE Reset(
8280         ) = 0;
8281 
8282     virtual HRESULT STDMETHODCALLTYPE Clone(
8283         IEnumMoniker **ppenum) = 0;
8284 
8285 };
8286 #ifdef __CRT_UUID_DECL
8287 __CRT_UUID_DECL(IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8288 #endif
8289 #else
8290 typedef struct IEnumMonikerVtbl {
8291     BEGIN_INTERFACE
8292 
8293     /*** IUnknown methods ***/
8294     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8295         IEnumMoniker* This,
8296         REFIID riid,
8297         void **ppvObject);
8298 
8299     ULONG (STDMETHODCALLTYPE *AddRef)(
8300         IEnumMoniker* This);
8301 
8302     ULONG (STDMETHODCALLTYPE *Release)(
8303         IEnumMoniker* This);
8304 
8305     /*** IEnumMoniker methods ***/
8306     HRESULT (STDMETHODCALLTYPE *Next)(
8307         IEnumMoniker* This,
8308         ULONG celt,
8309         IMoniker **rgelt,
8310         ULONG *pceltFetched);
8311 
8312     HRESULT (STDMETHODCALLTYPE *Skip)(
8313         IEnumMoniker* This,
8314         ULONG celt);
8315 
8316     HRESULT (STDMETHODCALLTYPE *Reset)(
8317         IEnumMoniker* This);
8318 
8319     HRESULT (STDMETHODCALLTYPE *Clone)(
8320         IEnumMoniker* This,
8321         IEnumMoniker **ppenum);
8322 
8323     END_INTERFACE
8324 } IEnumMonikerVtbl;
8325 interface IEnumMoniker {
8326     CONST_VTBL IEnumMonikerVtbl* lpVtbl;
8327 };
8328 
8329 #ifdef COBJMACROS
8330 #ifndef WIDL_C_INLINE_WRAPPERS
8331 /*** IUnknown methods ***/
8332 #define IEnumMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8333 #define IEnumMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
8334 #define IEnumMoniker_Release(This) (This)->lpVtbl->Release(This)
8335 /*** IEnumMoniker methods ***/
8336 #define IEnumMoniker_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
8337 #define IEnumMoniker_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
8338 #define IEnumMoniker_Reset(This) (This)->lpVtbl->Reset(This)
8339 #define IEnumMoniker_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
8340 #else
8341 /*** IUnknown methods ***/
8342 static FORCEINLINE HRESULT IEnumMoniker_QueryInterface(IEnumMoniker* This,REFIID riid,void **ppvObject) {
8343     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8344 }
8345 static FORCEINLINE ULONG IEnumMoniker_AddRef(IEnumMoniker* This) {
8346     return This->lpVtbl->AddRef(This);
8347 }
8348 static FORCEINLINE ULONG IEnumMoniker_Release(IEnumMoniker* This) {
8349     return This->lpVtbl->Release(This);
8350 }
8351 /*** IEnumMoniker methods ***/
8352 static FORCEINLINE HRESULT IEnumMoniker_Next(IEnumMoniker* This,ULONG celt,IMoniker **rgelt,ULONG *pceltFetched) {
8353     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
8354 }
8355 static FORCEINLINE HRESULT IEnumMoniker_Skip(IEnumMoniker* This,ULONG celt) {
8356     return This->lpVtbl->Skip(This,celt);
8357 }
8358 static FORCEINLINE HRESULT IEnumMoniker_Reset(IEnumMoniker* This) {
8359     return This->lpVtbl->Reset(This);
8360 }
8361 static FORCEINLINE HRESULT IEnumMoniker_Clone(IEnumMoniker* This,IEnumMoniker **ppenum) {
8362     return This->lpVtbl->Clone(This,ppenum);
8363 }
8364 #endif
8365 #endif
8366 
8367 #endif
8368 
8369 HRESULT STDMETHODCALLTYPE IEnumMoniker_RemoteNext_Proxy(
8370     IEnumMoniker* This,
8371     ULONG celt,
8372     IMoniker **rgelt,
8373     ULONG *pceltFetched);
8374 void __RPC_STUB IEnumMoniker_RemoteNext_Stub(
8375     IRpcStubBuffer* This,
8376     IRpcChannelBuffer* pRpcChannelBuffer,
8377     PRPC_MESSAGE pRpcMessage,
8378     DWORD* pdwStubPhase);
8379 HRESULT STDMETHODCALLTYPE IEnumMoniker_Skip_Proxy(
8380     IEnumMoniker* This,
8381     ULONG celt);
8382 void __RPC_STUB IEnumMoniker_Skip_Stub(
8383     IRpcStubBuffer* This,
8384     IRpcChannelBuffer* pRpcChannelBuffer,
8385     PRPC_MESSAGE pRpcMessage,
8386     DWORD* pdwStubPhase);
8387 HRESULT STDMETHODCALLTYPE IEnumMoniker_Reset_Proxy(
8388     IEnumMoniker* This);
8389 void __RPC_STUB IEnumMoniker_Reset_Stub(
8390     IRpcStubBuffer* This,
8391     IRpcChannelBuffer* pRpcChannelBuffer,
8392     PRPC_MESSAGE pRpcMessage,
8393     DWORD* pdwStubPhase);
8394 HRESULT STDMETHODCALLTYPE IEnumMoniker_Clone_Proxy(
8395     IEnumMoniker* This,
8396     IEnumMoniker **ppenum);
8397 void __RPC_STUB IEnumMoniker_Clone_Stub(
8398     IRpcStubBuffer* This,
8399     IRpcChannelBuffer* pRpcChannelBuffer,
8400     PRPC_MESSAGE pRpcMessage,
8401     DWORD* pdwStubPhase);
8402 HRESULT CALLBACK IEnumMoniker_Next_Proxy(
8403     IEnumMoniker* This,
8404     ULONG celt,
8405     IMoniker **rgelt,
8406     ULONG *pceltFetched);
8407 HRESULT __RPC_STUB IEnumMoniker_Next_Stub(
8408     IEnumMoniker* This,
8409     ULONG celt,
8410     IMoniker **rgelt,
8411     ULONG *pceltFetched);
8412 
8413 #endif  /* __IEnumMoniker_INTERFACE_DEFINED__ */
8414 
8415 #endif
8416 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
8417 /*****************************************************************************
8418  * IRunnableObject interface
8419  */
8420 #ifndef __IRunnableObject_INTERFACE_DEFINED__
8421 #define __IRunnableObject_INTERFACE_DEFINED__
8422 
8423 typedef IRunnableObject *LPRUNNABLEOBJECT;
8424 DEFINE_GUID(IID_IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8425 #if defined(__cplusplus) && !defined(CINTERFACE)
8426 MIDL_INTERFACE("00000126-0000-0000-c000-000000000046")
8427 IRunnableObject : public IUnknown
8428 {
8429     virtual HRESULT STDMETHODCALLTYPE GetRunningClass(
8430         LPCLSID lpClsid) = 0;
8431 
8432     virtual HRESULT STDMETHODCALLTYPE Run(
8433         LPBINDCTX pbc) = 0;
8434 
8435     virtual WINBOOL STDMETHODCALLTYPE IsRunning(
8436         ) = 0;
8437 
8438     virtual HRESULT STDMETHODCALLTYPE LockRunning(
8439         WINBOOL fLock,
8440         WINBOOL fLastUnlockCloses) = 0;
8441 
8442     virtual HRESULT STDMETHODCALLTYPE SetContainedObject(
8443         WINBOOL fContained) = 0;
8444 
8445 };
8446 #ifdef __CRT_UUID_DECL
8447 __CRT_UUID_DECL(IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8448 #endif
8449 #else
8450 typedef struct IRunnableObjectVtbl {
8451     BEGIN_INTERFACE
8452 
8453     /*** IUnknown methods ***/
8454     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8455         IRunnableObject* This,
8456         REFIID riid,
8457         void **ppvObject);
8458 
8459     ULONG (STDMETHODCALLTYPE *AddRef)(
8460         IRunnableObject* This);
8461 
8462     ULONG (STDMETHODCALLTYPE *Release)(
8463         IRunnableObject* This);
8464 
8465     /*** IRunnableObject methods ***/
8466     HRESULT (STDMETHODCALLTYPE *GetRunningClass)(
8467         IRunnableObject* This,
8468         LPCLSID lpClsid);
8469 
8470     HRESULT (STDMETHODCALLTYPE *Run)(
8471         IRunnableObject* This,
8472         LPBINDCTX pbc);
8473 
8474     WINBOOL (STDMETHODCALLTYPE *IsRunning)(
8475         IRunnableObject* This);
8476 
8477     HRESULT (STDMETHODCALLTYPE *LockRunning)(
8478         IRunnableObject* This,
8479         WINBOOL fLock,
8480         WINBOOL fLastUnlockCloses);
8481 
8482     HRESULT (STDMETHODCALLTYPE *SetContainedObject)(
8483         IRunnableObject* This,
8484         WINBOOL fContained);
8485 
8486     END_INTERFACE
8487 } IRunnableObjectVtbl;
8488 interface IRunnableObject {
8489     CONST_VTBL IRunnableObjectVtbl* lpVtbl;
8490 };
8491 
8492 #ifdef COBJMACROS
8493 #ifndef WIDL_C_INLINE_WRAPPERS
8494 /*** IUnknown methods ***/
8495 #define IRunnableObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8496 #define IRunnableObject_AddRef(This) (This)->lpVtbl->AddRef(This)
8497 #define IRunnableObject_Release(This) (This)->lpVtbl->Release(This)
8498 /*** IRunnableObject methods ***/
8499 #define IRunnableObject_GetRunningClass(This,lpClsid) (This)->lpVtbl->GetRunningClass(This,lpClsid)
8500 #define IRunnableObject_Run(This,pbc) (This)->lpVtbl->Run(This,pbc)
8501 #define IRunnableObject_IsRunning(This) (This)->lpVtbl->IsRunning(This)
8502 #define IRunnableObject_LockRunning(This,fLock,fLastUnlockCloses) (This)->lpVtbl->LockRunning(This,fLock,fLastUnlockCloses)
8503 #define IRunnableObject_SetContainedObject(This,fContained) (This)->lpVtbl->SetContainedObject(This,fContained)
8504 #else
8505 /*** IUnknown methods ***/
8506 static FORCEINLINE HRESULT IRunnableObject_QueryInterface(IRunnableObject* This,REFIID riid,void **ppvObject) {
8507     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8508 }
8509 static FORCEINLINE ULONG IRunnableObject_AddRef(IRunnableObject* This) {
8510     return This->lpVtbl->AddRef(This);
8511 }
8512 static FORCEINLINE ULONG IRunnableObject_Release(IRunnableObject* This) {
8513     return This->lpVtbl->Release(This);
8514 }
8515 /*** IRunnableObject methods ***/
8516 static FORCEINLINE HRESULT IRunnableObject_GetRunningClass(IRunnableObject* This,LPCLSID lpClsid) {
8517     return This->lpVtbl->GetRunningClass(This,lpClsid);
8518 }
8519 static FORCEINLINE HRESULT IRunnableObject_Run(IRunnableObject* This,LPBINDCTX pbc) {
8520     return This->lpVtbl->Run(This,pbc);
8521 }
8522 static FORCEINLINE WINBOOL IRunnableObject_IsRunning(IRunnableObject* This) {
8523     return This->lpVtbl->IsRunning(This);
8524 }
8525 static FORCEINLINE HRESULT IRunnableObject_LockRunning(IRunnableObject* This,WINBOOL fLock,WINBOOL fLastUnlockCloses) {
8526     return This->lpVtbl->LockRunning(This,fLock,fLastUnlockCloses);
8527 }
8528 static FORCEINLINE HRESULT IRunnableObject_SetContainedObject(IRunnableObject* This,WINBOOL fContained) {
8529     return This->lpVtbl->SetContainedObject(This,fContained);
8530 }
8531 #endif
8532 #endif
8533 
8534 #endif
8535 
8536 HRESULT STDMETHODCALLTYPE IRunnableObject_GetRunningClass_Proxy(
8537     IRunnableObject* This,
8538     LPCLSID lpClsid);
8539 void __RPC_STUB IRunnableObject_GetRunningClass_Stub(
8540     IRpcStubBuffer* This,
8541     IRpcChannelBuffer* pRpcChannelBuffer,
8542     PRPC_MESSAGE pRpcMessage,
8543     DWORD* pdwStubPhase);
8544 HRESULT STDMETHODCALLTYPE IRunnableObject_Run_Proxy(
8545     IRunnableObject* This,
8546     LPBINDCTX pbc);
8547 void __RPC_STUB IRunnableObject_Run_Stub(
8548     IRpcStubBuffer* This,
8549     IRpcChannelBuffer* pRpcChannelBuffer,
8550     PRPC_MESSAGE pRpcMessage,
8551     DWORD* pdwStubPhase);
8552 HRESULT STDMETHODCALLTYPE IRunnableObject_RemoteIsRunning_Proxy(
8553     IRunnableObject* This);
8554 void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
8555     IRpcStubBuffer* This,
8556     IRpcChannelBuffer* pRpcChannelBuffer,
8557     PRPC_MESSAGE pRpcMessage,
8558     DWORD* pdwStubPhase);
8559 HRESULT STDMETHODCALLTYPE IRunnableObject_LockRunning_Proxy(
8560     IRunnableObject* This,
8561     WINBOOL fLock,
8562     WINBOOL fLastUnlockCloses);
8563 void __RPC_STUB IRunnableObject_LockRunning_Stub(
8564     IRpcStubBuffer* This,
8565     IRpcChannelBuffer* pRpcChannelBuffer,
8566     PRPC_MESSAGE pRpcMessage,
8567     DWORD* pdwStubPhase);
8568 HRESULT STDMETHODCALLTYPE IRunnableObject_SetContainedObject_Proxy(
8569     IRunnableObject* This,
8570     WINBOOL fContained);
8571 void __RPC_STUB IRunnableObject_SetContainedObject_Stub(
8572     IRpcStubBuffer* This,
8573     IRpcChannelBuffer* pRpcChannelBuffer,
8574     PRPC_MESSAGE pRpcMessage,
8575     DWORD* pdwStubPhase);
8576 WINBOOL CALLBACK IRunnableObject_IsRunning_Proxy(
8577     IRunnableObject* This);
8578 HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
8579     IRunnableObject* This);
8580 
8581 #endif  /* __IRunnableObject_INTERFACE_DEFINED__ */
8582 
8583 /*****************************************************************************
8584  * IRunningObjectTable interface
8585  */
8586 #ifndef __IRunningObjectTable_INTERFACE_DEFINED__
8587 #define __IRunningObjectTable_INTERFACE_DEFINED__
8588 
8589 typedef IRunningObjectTable *LPRUNNINGOBJECTTABLE;
8590 DEFINE_GUID(IID_IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8591 #if defined(__cplusplus) && !defined(CINTERFACE)
8592 MIDL_INTERFACE("00000010-0000-0000-c000-000000000046")
8593 IRunningObjectTable : public IUnknown
8594 {
8595     virtual HRESULT STDMETHODCALLTYPE Register(
8596         DWORD grfFlags,
8597         IUnknown *punkObject,
8598         IMoniker *pmkObjectName,
8599         DWORD *pdwRegister) = 0;
8600 
8601     virtual HRESULT STDMETHODCALLTYPE Revoke(
8602         DWORD dwRegister) = 0;
8603 
8604     virtual HRESULT STDMETHODCALLTYPE IsRunning(
8605         IMoniker *pmkObjectName) = 0;
8606 
8607     virtual HRESULT STDMETHODCALLTYPE GetObject(
8608         IMoniker *pmkObjectName,
8609         IUnknown **ppunkObject) = 0;
8610 
8611     virtual HRESULT STDMETHODCALLTYPE NoteChangeTime(
8612         DWORD dwRegister,
8613         FILETIME *pfiletime) = 0;
8614 
8615     virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
8616         IMoniker *pmkObjectName,
8617         FILETIME *pfiletime) = 0;
8618 
8619     virtual HRESULT STDMETHODCALLTYPE EnumRunning(
8620         IEnumMoniker **ppenumMoniker) = 0;
8621 
8622 };
8623 #ifdef __CRT_UUID_DECL
8624 __CRT_UUID_DECL(IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8625 #endif
8626 #else
8627 typedef struct IRunningObjectTableVtbl {
8628     BEGIN_INTERFACE
8629 
8630     /*** IUnknown methods ***/
8631     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8632         IRunningObjectTable* This,
8633         REFIID riid,
8634         void **ppvObject);
8635 
8636     ULONG (STDMETHODCALLTYPE *AddRef)(
8637         IRunningObjectTable* This);
8638 
8639     ULONG (STDMETHODCALLTYPE *Release)(
8640         IRunningObjectTable* This);
8641 
8642     /*** IRunningObjectTable methods ***/
8643     HRESULT (STDMETHODCALLTYPE *Register)(
8644         IRunningObjectTable* This,
8645         DWORD grfFlags,
8646         IUnknown *punkObject,
8647         IMoniker *pmkObjectName,
8648         DWORD *pdwRegister);
8649 
8650     HRESULT (STDMETHODCALLTYPE *Revoke)(
8651         IRunningObjectTable* This,
8652         DWORD dwRegister);
8653 
8654     HRESULT (STDMETHODCALLTYPE *IsRunning)(
8655         IRunningObjectTable* This,
8656         IMoniker *pmkObjectName);
8657 
8658     HRESULT (STDMETHODCALLTYPE *GetObject)(
8659         IRunningObjectTable* This,
8660         IMoniker *pmkObjectName,
8661         IUnknown **ppunkObject);
8662 
8663     HRESULT (STDMETHODCALLTYPE *NoteChangeTime)(
8664         IRunningObjectTable* This,
8665         DWORD dwRegister,
8666         FILETIME *pfiletime);
8667 
8668     HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
8669         IRunningObjectTable* This,
8670         IMoniker *pmkObjectName,
8671         FILETIME *pfiletime);
8672 
8673     HRESULT (STDMETHODCALLTYPE *EnumRunning)(
8674         IRunningObjectTable* This,
8675         IEnumMoniker **ppenumMoniker);
8676 
8677     END_INTERFACE
8678 } IRunningObjectTableVtbl;
8679 interface IRunningObjectTable {
8680     CONST_VTBL IRunningObjectTableVtbl* lpVtbl;
8681 };
8682 
8683 #ifdef COBJMACROS
8684 #ifndef WIDL_C_INLINE_WRAPPERS
8685 /*** IUnknown methods ***/
8686 #define IRunningObjectTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8687 #define IRunningObjectTable_AddRef(This) (This)->lpVtbl->AddRef(This)
8688 #define IRunningObjectTable_Release(This) (This)->lpVtbl->Release(This)
8689 /*** IRunningObjectTable methods ***/
8690 #define IRunningObjectTable_Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister) (This)->lpVtbl->Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister)
8691 #define IRunningObjectTable_Revoke(This,dwRegister) (This)->lpVtbl->Revoke(This,dwRegister)
8692 #define IRunningObjectTable_IsRunning(This,pmkObjectName) (This)->lpVtbl->IsRunning(This,pmkObjectName)
8693 #define IRunningObjectTable_GetObject(This,pmkObjectName,ppunkObject) (This)->lpVtbl->GetObject(This,pmkObjectName,ppunkObject)
8694 #define IRunningObjectTable_NoteChangeTime(This,dwRegister,pfiletime) (This)->lpVtbl->NoteChangeTime(This,dwRegister,pfiletime)
8695 #define IRunningObjectTable_GetTimeOfLastChange(This,pmkObjectName,pfiletime) (This)->lpVtbl->GetTimeOfLastChange(This,pmkObjectName,pfiletime)
8696 #define IRunningObjectTable_EnumRunning(This,ppenumMoniker) (This)->lpVtbl->EnumRunning(This,ppenumMoniker)
8697 #else
8698 /*** IUnknown methods ***/
8699 static FORCEINLINE HRESULT IRunningObjectTable_QueryInterface(IRunningObjectTable* This,REFIID riid,void **ppvObject) {
8700     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8701 }
8702 static FORCEINLINE ULONG IRunningObjectTable_AddRef(IRunningObjectTable* This) {
8703     return This->lpVtbl->AddRef(This);
8704 }
8705 static FORCEINLINE ULONG IRunningObjectTable_Release(IRunningObjectTable* This) {
8706     return This->lpVtbl->Release(This);
8707 }
8708 /*** IRunningObjectTable methods ***/
8709 static FORCEINLINE HRESULT IRunningObjectTable_Register(IRunningObjectTable* This,DWORD grfFlags,IUnknown *punkObject,IMoniker *pmkObjectName,DWORD *pdwRegister) {
8710     return This->lpVtbl->Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister);
8711 }
8712 static FORCEINLINE HRESULT IRunningObjectTable_Revoke(IRunningObjectTable* This,DWORD dwRegister) {
8713     return This->lpVtbl->Revoke(This,dwRegister);
8714 }
8715 static FORCEINLINE HRESULT IRunningObjectTable_IsRunning(IRunningObjectTable* This,IMoniker *pmkObjectName) {
8716     return This->lpVtbl->IsRunning(This,pmkObjectName);
8717 }
8718 static FORCEINLINE HRESULT IRunningObjectTable_GetObject(IRunningObjectTable* This,IMoniker *pmkObjectName,IUnknown **ppunkObject) {
8719     return This->lpVtbl->GetObject(This,pmkObjectName,ppunkObject);
8720 }
8721 static FORCEINLINE HRESULT IRunningObjectTable_NoteChangeTime(IRunningObjectTable* This,DWORD dwRegister,FILETIME *pfiletime) {
8722     return This->lpVtbl->NoteChangeTime(This,dwRegister,pfiletime);
8723 }
8724 static FORCEINLINE HRESULT IRunningObjectTable_GetTimeOfLastChange(IRunningObjectTable* This,IMoniker *pmkObjectName,FILETIME *pfiletime) {
8725     return This->lpVtbl->GetTimeOfLastChange(This,pmkObjectName,pfiletime);
8726 }
8727 static FORCEINLINE HRESULT IRunningObjectTable_EnumRunning(IRunningObjectTable* This,IEnumMoniker **ppenumMoniker) {
8728     return This->lpVtbl->EnumRunning(This,ppenumMoniker);
8729 }
8730 #endif
8731 #endif
8732 
8733 #endif
8734 
8735 HRESULT STDMETHODCALLTYPE IRunningObjectTable_Register_Proxy(
8736     IRunningObjectTable* This,
8737     DWORD grfFlags,
8738     IUnknown *punkObject,
8739     IMoniker *pmkObjectName,
8740     DWORD *pdwRegister);
8741 void __RPC_STUB IRunningObjectTable_Register_Stub(
8742     IRpcStubBuffer* This,
8743     IRpcChannelBuffer* pRpcChannelBuffer,
8744     PRPC_MESSAGE pRpcMessage,
8745     DWORD* pdwStubPhase);
8746 HRESULT STDMETHODCALLTYPE IRunningObjectTable_Revoke_Proxy(
8747     IRunningObjectTable* This,
8748     DWORD dwRegister);
8749 void __RPC_STUB IRunningObjectTable_Revoke_Stub(
8750     IRpcStubBuffer* This,
8751     IRpcChannelBuffer* pRpcChannelBuffer,
8752     PRPC_MESSAGE pRpcMessage,
8753     DWORD* pdwStubPhase);
8754 HRESULT STDMETHODCALLTYPE IRunningObjectTable_IsRunning_Proxy(
8755     IRunningObjectTable* This,
8756     IMoniker *pmkObjectName);
8757 void __RPC_STUB IRunningObjectTable_IsRunning_Stub(
8758     IRpcStubBuffer* This,
8759     IRpcChannelBuffer* pRpcChannelBuffer,
8760     PRPC_MESSAGE pRpcMessage,
8761     DWORD* pdwStubPhase);
8762 HRESULT STDMETHODCALLTYPE IRunningObjectTable_GetObject_Proxy(
8763     IRunningObjectTable* This,
8764     IMoniker *pmkObjectName,
8765     IUnknown **ppunkObject);
8766 void __RPC_STUB IRunningObjectTable_GetObject_Stub(
8767     IRpcStubBuffer* This,
8768     IRpcChannelBuffer* pRpcChannelBuffer,
8769     PRPC_MESSAGE pRpcMessage,
8770     DWORD* pdwStubPhase);
8771 HRESULT STDMETHODCALLTYPE IRunningObjectTable_NoteChangeTime_Proxy(
8772     IRunningObjectTable* This,
8773     DWORD dwRegister,
8774     FILETIME *pfiletime);
8775 void __RPC_STUB IRunningObjectTable_NoteChangeTime_Stub(
8776     IRpcStubBuffer* This,
8777     IRpcChannelBuffer* pRpcChannelBuffer,
8778     PRPC_MESSAGE pRpcMessage,
8779     DWORD* pdwStubPhase);
8780 HRESULT STDMETHODCALLTYPE IRunningObjectTable_GetTimeOfLastChange_Proxy(
8781     IRunningObjectTable* This,
8782     IMoniker *pmkObjectName,
8783     FILETIME *pfiletime);
8784 void __RPC_STUB IRunningObjectTable_GetTimeOfLastChange_Stub(
8785     IRpcStubBuffer* This,
8786     IRpcChannelBuffer* pRpcChannelBuffer,
8787     PRPC_MESSAGE pRpcMessage,
8788     DWORD* pdwStubPhase);
8789 HRESULT STDMETHODCALLTYPE IRunningObjectTable_EnumRunning_Proxy(
8790     IRunningObjectTable* This,
8791     IEnumMoniker **ppenumMoniker);
8792 void __RPC_STUB IRunningObjectTable_EnumRunning_Stub(
8793     IRpcStubBuffer* This,
8794     IRpcChannelBuffer* pRpcChannelBuffer,
8795     PRPC_MESSAGE pRpcMessage,
8796     DWORD* pdwStubPhase);
8797 
8798 #endif  /* __IRunningObjectTable_INTERFACE_DEFINED__ */
8799 
8800 #endif
8801 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
8802 /*****************************************************************************
8803  * IPersist interface
8804  */
8805 #ifndef __IPersist_INTERFACE_DEFINED__
8806 #define __IPersist_INTERFACE_DEFINED__
8807 
8808 typedef IPersist *LPPERSIST;
8809 DEFINE_GUID(IID_IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8810 #if defined(__cplusplus) && !defined(CINTERFACE)
8811 MIDL_INTERFACE("0000010c-0000-0000-c000-000000000046")
8812 IPersist : public IUnknown
8813 {
8814     virtual HRESULT STDMETHODCALLTYPE GetClassID(
8815         CLSID *pClassID) = 0;
8816 
8817 };
8818 #ifdef __CRT_UUID_DECL
8819 __CRT_UUID_DECL(IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8820 #endif
8821 #else
8822 typedef struct IPersistVtbl {
8823     BEGIN_INTERFACE
8824 
8825     /*** IUnknown methods ***/
8826     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8827         IPersist* This,
8828         REFIID riid,
8829         void **ppvObject);
8830 
8831     ULONG (STDMETHODCALLTYPE *AddRef)(
8832         IPersist* This);
8833 
8834     ULONG (STDMETHODCALLTYPE *Release)(
8835         IPersist* This);
8836 
8837     /*** IPersist methods ***/
8838     HRESULT (STDMETHODCALLTYPE *GetClassID)(
8839         IPersist* This,
8840         CLSID *pClassID);
8841 
8842     END_INTERFACE
8843 } IPersistVtbl;
8844 interface IPersist {
8845     CONST_VTBL IPersistVtbl* lpVtbl;
8846 };
8847 
8848 #ifdef COBJMACROS
8849 #ifndef WIDL_C_INLINE_WRAPPERS
8850 /*** IUnknown methods ***/
8851 #define IPersist_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8852 #define IPersist_AddRef(This) (This)->lpVtbl->AddRef(This)
8853 #define IPersist_Release(This) (This)->lpVtbl->Release(This)
8854 /*** IPersist methods ***/
8855 #define IPersist_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
8856 #else
8857 /*** IUnknown methods ***/
8858 static FORCEINLINE HRESULT IPersist_QueryInterface(IPersist* This,REFIID riid,void **ppvObject) {
8859     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8860 }
8861 static FORCEINLINE ULONG IPersist_AddRef(IPersist* This) {
8862     return This->lpVtbl->AddRef(This);
8863 }
8864 static FORCEINLINE ULONG IPersist_Release(IPersist* This) {
8865     return This->lpVtbl->Release(This);
8866 }
8867 /*** IPersist methods ***/
8868 static FORCEINLINE HRESULT IPersist_GetClassID(IPersist* This,CLSID *pClassID) {
8869     return This->lpVtbl->GetClassID(This,pClassID);
8870 }
8871 #endif
8872 #endif
8873 
8874 #endif
8875 
8876 HRESULT STDMETHODCALLTYPE IPersist_GetClassID_Proxy(
8877     IPersist* This,
8878     CLSID *pClassID);
8879 void __RPC_STUB IPersist_GetClassID_Stub(
8880     IRpcStubBuffer* This,
8881     IRpcChannelBuffer* pRpcChannelBuffer,
8882     PRPC_MESSAGE pRpcMessage,
8883     DWORD* pdwStubPhase);
8884 
8885 #endif  /* __IPersist_INTERFACE_DEFINED__ */
8886 
8887 /*****************************************************************************
8888  * IPersistStream interface
8889  */
8890 #ifndef __IPersistStream_INTERFACE_DEFINED__
8891 #define __IPersistStream_INTERFACE_DEFINED__
8892 
8893 typedef IPersistStream *LPPERSISTSTREAM;
8894 DEFINE_GUID(IID_IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8895 #if defined(__cplusplus) && !defined(CINTERFACE)
8896 MIDL_INTERFACE("00000109-0000-0000-c000-000000000046")
8897 IPersistStream : public IPersist
8898 {
8899     virtual HRESULT STDMETHODCALLTYPE IsDirty(
8900         ) = 0;
8901 
8902     virtual HRESULT STDMETHODCALLTYPE Load(
8903         IStream *pStm) = 0;
8904 
8905     virtual HRESULT STDMETHODCALLTYPE Save(
8906         IStream *pStm,
8907         WINBOOL fClearDirty) = 0;
8908 
8909     virtual HRESULT STDMETHODCALLTYPE GetSizeMax(
8910         ULARGE_INTEGER *pcbSize) = 0;
8911 
8912 };
8913 #ifdef __CRT_UUID_DECL
8914 __CRT_UUID_DECL(IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8915 #endif
8916 #else
8917 typedef struct IPersistStreamVtbl {
8918     BEGIN_INTERFACE
8919 
8920     /*** IUnknown methods ***/
8921     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8922         IPersistStream* This,
8923         REFIID riid,
8924         void **ppvObject);
8925 
8926     ULONG (STDMETHODCALLTYPE *AddRef)(
8927         IPersistStream* This);
8928 
8929     ULONG (STDMETHODCALLTYPE *Release)(
8930         IPersistStream* This);
8931 
8932     /*** IPersist methods ***/
8933     HRESULT (STDMETHODCALLTYPE *GetClassID)(
8934         IPersistStream* This,
8935         CLSID *pClassID);
8936 
8937     /*** IPersistStream methods ***/
8938     HRESULT (STDMETHODCALLTYPE *IsDirty)(
8939         IPersistStream* This);
8940 
8941     HRESULT (STDMETHODCALLTYPE *Load)(
8942         IPersistStream* This,
8943         IStream *pStm);
8944 
8945     HRESULT (STDMETHODCALLTYPE *Save)(
8946         IPersistStream* This,
8947         IStream *pStm,
8948         WINBOOL fClearDirty);
8949 
8950     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
8951         IPersistStream* This,
8952         ULARGE_INTEGER *pcbSize);
8953 
8954     END_INTERFACE
8955 } IPersistStreamVtbl;
8956 interface IPersistStream {
8957     CONST_VTBL IPersistStreamVtbl* lpVtbl;
8958 };
8959 
8960 #ifdef COBJMACROS
8961 #ifndef WIDL_C_INLINE_WRAPPERS
8962 /*** IUnknown methods ***/
8963 #define IPersistStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8964 #define IPersistStream_AddRef(This) (This)->lpVtbl->AddRef(This)
8965 #define IPersistStream_Release(This) (This)->lpVtbl->Release(This)
8966 /*** IPersist methods ***/
8967 #define IPersistStream_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
8968 /*** IPersistStream methods ***/
8969 #define IPersistStream_IsDirty(This) (This)->lpVtbl->IsDirty(This)
8970 #define IPersistStream_Load(This,pStm) (This)->lpVtbl->Load(This,pStm)
8971 #define IPersistStream_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty)
8972 #define IPersistStream_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize)
8973 #else
8974 /*** IUnknown methods ***/
8975 static FORCEINLINE HRESULT IPersistStream_QueryInterface(IPersistStream* This,REFIID riid,void **ppvObject) {
8976     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8977 }
8978 static FORCEINLINE ULONG IPersistStream_AddRef(IPersistStream* This) {
8979     return This->lpVtbl->AddRef(This);
8980 }
8981 static FORCEINLINE ULONG IPersistStream_Release(IPersistStream* This) {
8982     return This->lpVtbl->Release(This);
8983 }
8984 /*** IPersist methods ***/
8985 static FORCEINLINE HRESULT IPersistStream_GetClassID(IPersistStream* This,CLSID *pClassID) {
8986     return This->lpVtbl->GetClassID(This,pClassID);
8987 }
8988 /*** IPersistStream methods ***/
8989 static FORCEINLINE HRESULT IPersistStream_IsDirty(IPersistStream* This) {
8990     return This->lpVtbl->IsDirty(This);
8991 }
8992 static FORCEINLINE HRESULT IPersistStream_Load(IPersistStream* This,IStream *pStm) {
8993     return This->lpVtbl->Load(This,pStm);
8994 }
8995 static FORCEINLINE HRESULT IPersistStream_Save(IPersistStream* This,IStream *pStm,WINBOOL fClearDirty) {
8996     return This->lpVtbl->Save(This,pStm,fClearDirty);
8997 }
8998 static FORCEINLINE HRESULT IPersistStream_GetSizeMax(IPersistStream* This,ULARGE_INTEGER *pcbSize) {
8999     return This->lpVtbl->GetSizeMax(This,pcbSize);
9000 }
9001 #endif
9002 #endif
9003 
9004 #endif
9005 
9006 HRESULT STDMETHODCALLTYPE IPersistStream_IsDirty_Proxy(
9007     IPersistStream* This);
9008 void __RPC_STUB IPersistStream_IsDirty_Stub(
9009     IRpcStubBuffer* This,
9010     IRpcChannelBuffer* pRpcChannelBuffer,
9011     PRPC_MESSAGE pRpcMessage,
9012     DWORD* pdwStubPhase);
9013 HRESULT STDMETHODCALLTYPE IPersistStream_Load_Proxy(
9014     IPersistStream* This,
9015     IStream *pStm);
9016 void __RPC_STUB IPersistStream_Load_Stub(
9017     IRpcStubBuffer* This,
9018     IRpcChannelBuffer* pRpcChannelBuffer,
9019     PRPC_MESSAGE pRpcMessage,
9020     DWORD* pdwStubPhase);
9021 HRESULT STDMETHODCALLTYPE IPersistStream_Save_Proxy(
9022     IPersistStream* This,
9023     IStream *pStm,
9024     WINBOOL fClearDirty);
9025 void __RPC_STUB IPersistStream_Save_Stub(
9026     IRpcStubBuffer* This,
9027     IRpcChannelBuffer* pRpcChannelBuffer,
9028     PRPC_MESSAGE pRpcMessage,
9029     DWORD* pdwStubPhase);
9030 HRESULT STDMETHODCALLTYPE IPersistStream_GetSizeMax_Proxy(
9031     IPersistStream* This,
9032     ULARGE_INTEGER *pcbSize);
9033 void __RPC_STUB IPersistStream_GetSizeMax_Stub(
9034     IRpcStubBuffer* This,
9035     IRpcChannelBuffer* pRpcChannelBuffer,
9036     PRPC_MESSAGE pRpcMessage,
9037     DWORD* pdwStubPhase);
9038 
9039 #endif  /* __IPersistStream_INTERFACE_DEFINED__ */
9040 
9041 /*****************************************************************************
9042  * IMoniker interface
9043  */
9044 #ifndef __IMoniker_INTERFACE_DEFINED__
9045 #define __IMoniker_INTERFACE_DEFINED__
9046 
9047 typedef IMoniker *LPMONIKER;
9048 typedef enum tagMKSYS {
9049     MKSYS_NONE = 0,
9050     MKSYS_GENERICCOMPOSITE = 1,
9051     MKSYS_FILEMONIKER = 2,
9052     MKSYS_ANTIMONIKER = 3,
9053     MKSYS_ITEMMONIKER = 4,
9054     MKSYS_POINTERMONIKER = 5,
9055     MKSYS_CLASSMONIKER = 7,
9056     MKSYS_OBJREFMONIKER = 8,
9057     MKSYS_SESSIONMONIKER = 9,
9058     MKSYS_LUAMONIKER = 10
9059 } MKSYS;
9060 typedef enum tagMKREDUCE {
9061     MKRREDUCE_ONE = 3 << 16,
9062     MKRREDUCE_TOUSER = 2 << 16,
9063     MKRREDUCE_THROUGHUSER = 1 << 16,
9064     MKRREDUCE_ALL = 0
9065 } MKRREDUCE;
9066 DEFINE_GUID(IID_IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9067 #if defined(__cplusplus) && !defined(CINTERFACE)
9068 MIDL_INTERFACE("0000000f-0000-0000-c000-000000000046")
9069 IMoniker : public IPersistStream
9070 {
9071     virtual HRESULT STDMETHODCALLTYPE BindToObject(
9072         IBindCtx *pbc,
9073         IMoniker *pmkToLeft,
9074         REFIID riidResult,
9075         void **ppvResult) = 0;
9076 
9077     virtual HRESULT STDMETHODCALLTYPE BindToStorage(
9078         IBindCtx *pbc,
9079         IMoniker *pmkToLeft,
9080         REFIID riid,
9081         void **ppvObj) = 0;
9082 
9083     virtual HRESULT STDMETHODCALLTYPE Reduce(
9084         IBindCtx *pbc,
9085         DWORD dwReduceHowFar,
9086         IMoniker **ppmkToLeft,
9087         IMoniker **ppmkReduced) = 0;
9088 
9089     virtual HRESULT STDMETHODCALLTYPE ComposeWith(
9090         IMoniker *pmkRight,
9091         WINBOOL fOnlyIfNotGeneric,
9092         IMoniker **ppmkComposite) = 0;
9093 
9094     virtual HRESULT STDMETHODCALLTYPE Enum(
9095         WINBOOL fForward,
9096         IEnumMoniker **ppenumMoniker) = 0;
9097 
9098     virtual HRESULT STDMETHODCALLTYPE IsEqual(
9099         IMoniker *pmkOtherMoniker) = 0;
9100 
9101     virtual HRESULT STDMETHODCALLTYPE Hash(
9102         DWORD *pdwHash) = 0;
9103 
9104     virtual HRESULT STDMETHODCALLTYPE IsRunning(
9105         IBindCtx *pbc,
9106         IMoniker *pmkToLeft,
9107         IMoniker *pmkNewlyRunning) = 0;
9108 
9109     virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
9110         IBindCtx *pbc,
9111         IMoniker *pmkToLeft,
9112         FILETIME *pFileTime) = 0;
9113 
9114     virtual HRESULT STDMETHODCALLTYPE Inverse(
9115         IMoniker **ppmk) = 0;
9116 
9117     virtual HRESULT STDMETHODCALLTYPE CommonPrefixWith(
9118         IMoniker *pmkOther,
9119         IMoniker **ppmkPrefix) = 0;
9120 
9121     virtual HRESULT STDMETHODCALLTYPE RelativePathTo(
9122         IMoniker *pmkOther,
9123         IMoniker **ppmkRelPath) = 0;
9124 
9125     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
9126         IBindCtx *pbc,
9127         IMoniker *pmkToLeft,
9128         LPOLESTR *ppszDisplayName) = 0;
9129 
9130     virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
9131         IBindCtx *pbc,
9132         IMoniker *pmkToLeft,
9133         LPOLESTR pszDisplayName,
9134         ULONG *pchEaten,
9135         IMoniker **ppmkOut) = 0;
9136 
9137     virtual HRESULT STDMETHODCALLTYPE IsSystemMoniker(
9138         DWORD *pdwMksys) = 0;
9139 
9140 };
9141 #ifdef __CRT_UUID_DECL
9142 __CRT_UUID_DECL(IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
9143 #endif
9144 #else
9145 typedef struct IMonikerVtbl {
9146     BEGIN_INTERFACE
9147 
9148     /*** IUnknown methods ***/
9149     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9150         IMoniker* This,
9151         REFIID riid,
9152         void **ppvObject);
9153 
9154     ULONG (STDMETHODCALLTYPE *AddRef)(
9155         IMoniker* This);
9156 
9157     ULONG (STDMETHODCALLTYPE *Release)(
9158         IMoniker* This);
9159 
9160     /*** IPersist methods ***/
9161     HRESULT (STDMETHODCALLTYPE *GetClassID)(
9162         IMoniker* This,
9163         CLSID *pClassID);
9164 
9165     /*** IPersistStream methods ***/
9166     HRESULT (STDMETHODCALLTYPE *IsDirty)(
9167         IMoniker* This);
9168 
9169     HRESULT (STDMETHODCALLTYPE *Load)(
9170         IMoniker* This,
9171         IStream *pStm);
9172 
9173     HRESULT (STDMETHODCALLTYPE *Save)(
9174         IMoniker* This,
9175         IStream *pStm,
9176         WINBOOL fClearDirty);
9177 
9178     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
9179         IMoniker* This,
9180         ULARGE_INTEGER *pcbSize);
9181 
9182     /*** IMoniker methods ***/
9183     HRESULT (STDMETHODCALLTYPE *BindToObject)(
9184         IMoniker* This,
9185         IBindCtx *pbc,
9186         IMoniker *pmkToLeft,
9187         REFIID riidResult,
9188         void **ppvResult);
9189 
9190     HRESULT (STDMETHODCALLTYPE *BindToStorage)(
9191         IMoniker* This,
9192         IBindCtx *pbc,
9193         IMoniker *pmkToLeft,
9194         REFIID riid,
9195         void **ppvObj);
9196 
9197     HRESULT (STDMETHODCALLTYPE *Reduce)(
9198         IMoniker* This,
9199         IBindCtx *pbc,
9200         DWORD dwReduceHowFar,
9201         IMoniker **ppmkToLeft,
9202         IMoniker **ppmkReduced);
9203 
9204     HRESULT (STDMETHODCALLTYPE *ComposeWith)(
9205         IMoniker* This,
9206         IMoniker *pmkRight,
9207         WINBOOL fOnlyIfNotGeneric,
9208         IMoniker **ppmkComposite);
9209 
9210     HRESULT (STDMETHODCALLTYPE *Enum)(
9211         IMoniker* This,
9212         WINBOOL fForward,
9213         IEnumMoniker **ppenumMoniker);
9214 
9215     HRESULT (STDMETHODCALLTYPE *IsEqual)(
9216         IMoniker* This,
9217         IMoniker *pmkOtherMoniker);
9218 
9219     HRESULT (STDMETHODCALLTYPE *Hash)(
9220         IMoniker* This,
9221         DWORD *pdwHash);
9222 
9223     HRESULT (STDMETHODCALLTYPE *IsRunning)(
9224         IMoniker* This,
9225         IBindCtx *pbc,
9226         IMoniker *pmkToLeft,
9227         IMoniker *pmkNewlyRunning);
9228 
9229     HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
9230         IMoniker* This,
9231         IBindCtx *pbc,
9232         IMoniker *pmkToLeft,
9233         FILETIME *pFileTime);
9234 
9235     HRESULT (STDMETHODCALLTYPE *Inverse)(
9236         IMoniker* This,
9237         IMoniker **ppmk);
9238 
9239     HRESULT (STDMETHODCALLTYPE *CommonPrefixWith)(
9240         IMoniker* This,
9241         IMoniker *pmkOther,
9242         IMoniker **ppmkPrefix);
9243 
9244     HRESULT (STDMETHODCALLTYPE *RelativePathTo)(
9245         IMoniker* This,
9246         IMoniker *pmkOther,
9247         IMoniker **ppmkRelPath);
9248 
9249     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
9250         IMoniker* This,
9251         IBindCtx *pbc,
9252         IMoniker *pmkToLeft,
9253         LPOLESTR *ppszDisplayName);
9254 
9255     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
9256         IMoniker* This,
9257         IBindCtx *pbc,
9258         IMoniker *pmkToLeft,
9259         LPOLESTR pszDisplayName,
9260         ULONG *pchEaten,
9261         IMoniker **ppmkOut);
9262 
9263     HRESULT (STDMETHODCALLTYPE *IsSystemMoniker)(
9264         IMoniker* This,
9265         DWORD *pdwMksys);
9266 
9267     END_INTERFACE
9268 } IMonikerVtbl;
9269 interface IMoniker {
9270     CONST_VTBL IMonikerVtbl* lpVtbl;
9271 };
9272 
9273 #ifdef COBJMACROS
9274 #ifndef WIDL_C_INLINE_WRAPPERS
9275 /*** IUnknown methods ***/
9276 #define IMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9277 #define IMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
9278 #define IMoniker_Release(This) (This)->lpVtbl->Release(This)
9279 /*** IPersist methods ***/
9280 #define IMoniker_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
9281 /*** IPersistStream methods ***/
9282 #define IMoniker_IsDirty(This) (This)->lpVtbl->IsDirty(This)
9283 #define IMoniker_Load(This,pStm) (This)->lpVtbl->Load(This,pStm)
9284 #define IMoniker_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty)
9285 #define IMoniker_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize)
9286 /*** IMoniker methods ***/
9287 #define IMoniker_BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult) (This)->lpVtbl->BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult)
9288 #define IMoniker_BindToStorage(This,pbc,pmkToLeft,riid,ppvObj) (This)->lpVtbl->BindToStorage(This,pbc,pmkToLeft,riid,ppvObj)
9289 #define IMoniker_Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced) (This)->lpVtbl->Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced)
9290 #define IMoniker_ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite) (This)->lpVtbl->ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite)
9291 #define IMoniker_Enum(This,fForward,ppenumMoniker) (This)->lpVtbl->Enum(This,fForward,ppenumMoniker)
9292 #define IMoniker_IsEqual(This,pmkOtherMoniker) (This)->lpVtbl->IsEqual(This,pmkOtherMoniker)
9293 #define IMoniker_Hash(This,pdwHash) (This)->lpVtbl->Hash(This,pdwHash)
9294 #define IMoniker_IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning) (This)->lpVtbl->IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning)
9295 #define IMoniker_GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime) (This)->lpVtbl->GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime)
9296 #define IMoniker_Inverse(This,ppmk) (This)->lpVtbl->Inverse(This,ppmk)
9297 #define IMoniker_CommonPrefixWith(This,pmkOther,ppmkPrefix) (This)->lpVtbl->CommonPrefixWith(This,pmkOther,ppmkPrefix)
9298 #define IMoniker_RelativePathTo(This,pmkOther,ppmkRelPath) (This)->lpVtbl->RelativePathTo(This,pmkOther,ppmkRelPath)
9299 #define IMoniker_GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName) (This)->lpVtbl->GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName)
9300 #define IMoniker_ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut) (This)->lpVtbl->ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut)
9301 #define IMoniker_IsSystemMoniker(This,pdwMksys) (This)->lpVtbl->IsSystemMoniker(This,pdwMksys)
9302 #else
9303 /*** IUnknown methods ***/
9304 static FORCEINLINE HRESULT IMoniker_QueryInterface(IMoniker* This,REFIID riid,void **ppvObject) {
9305     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9306 }
9307 static FORCEINLINE ULONG IMoniker_AddRef(IMoniker* This) {
9308     return This->lpVtbl->AddRef(This);
9309 }
9310 static FORCEINLINE ULONG IMoniker_Release(IMoniker* This) {
9311     return This->lpVtbl->Release(This);
9312 }
9313 /*** IPersist methods ***/
9314 static FORCEINLINE HRESULT IMoniker_GetClassID(IMoniker* This,CLSID *pClassID) {
9315     return This->lpVtbl->GetClassID(This,pClassID);
9316 }
9317 /*** IPersistStream methods ***/
9318 static FORCEINLINE HRESULT IMoniker_IsDirty(IMoniker* This) {
9319     return This->lpVtbl->IsDirty(This);
9320 }
9321 static FORCEINLINE HRESULT IMoniker_Load(IMoniker* This,IStream *pStm) {
9322     return This->lpVtbl->Load(This,pStm);
9323 }
9324 static FORCEINLINE HRESULT IMoniker_Save(IMoniker* This,IStream *pStm,WINBOOL fClearDirty) {
9325     return This->lpVtbl->Save(This,pStm,fClearDirty);
9326 }
9327 static FORCEINLINE HRESULT IMoniker_GetSizeMax(IMoniker* This,ULARGE_INTEGER *pcbSize) {
9328     return This->lpVtbl->GetSizeMax(This,pcbSize);
9329 }
9330 /*** IMoniker methods ***/
9331 static FORCEINLINE HRESULT IMoniker_BindToObject(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,REFIID riidResult,void **ppvResult) {
9332     return This->lpVtbl->BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult);
9333 }
9334 static FORCEINLINE HRESULT IMoniker_BindToStorage(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,REFIID riid,void **ppvObj) {
9335     return This->lpVtbl->BindToStorage(This,pbc,pmkToLeft,riid,ppvObj);
9336 }
9337 static FORCEINLINE HRESULT IMoniker_Reduce(IMoniker* This,IBindCtx *pbc,DWORD dwReduceHowFar,IMoniker **ppmkToLeft,IMoniker **ppmkReduced) {
9338     return This->lpVtbl->Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced);
9339 }
9340 static FORCEINLINE HRESULT IMoniker_ComposeWith(IMoniker* This,IMoniker *pmkRight,WINBOOL fOnlyIfNotGeneric,IMoniker **ppmkComposite) {
9341     return This->lpVtbl->ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite);
9342 }
9343 static FORCEINLINE HRESULT IMoniker_Enum(IMoniker* This,WINBOOL fForward,IEnumMoniker **ppenumMoniker) {
9344     return This->lpVtbl->Enum(This,fForward,ppenumMoniker);
9345 }
9346 static FORCEINLINE HRESULT IMoniker_IsEqual(IMoniker* This,IMoniker *pmkOtherMoniker) {
9347     return This->lpVtbl->IsEqual(This,pmkOtherMoniker);
9348 }
9349 static FORCEINLINE HRESULT IMoniker_Hash(IMoniker* This,DWORD *pdwHash) {
9350     return This->lpVtbl->Hash(This,pdwHash);
9351 }
9352 static FORCEINLINE HRESULT IMoniker_IsRunning(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,IMoniker *pmkNewlyRunning) {
9353     return This->lpVtbl->IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning);
9354 }
9355 static FORCEINLINE HRESULT IMoniker_GetTimeOfLastChange(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,FILETIME *pFileTime) {
9356     return This->lpVtbl->GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime);
9357 }
9358 static FORCEINLINE HRESULT IMoniker_Inverse(IMoniker* This,IMoniker **ppmk) {
9359     return This->lpVtbl->Inverse(This,ppmk);
9360 }
9361 static FORCEINLINE HRESULT IMoniker_CommonPrefixWith(IMoniker* This,IMoniker *pmkOther,IMoniker **ppmkPrefix) {
9362     return This->lpVtbl->CommonPrefixWith(This,pmkOther,ppmkPrefix);
9363 }
9364 static FORCEINLINE HRESULT IMoniker_RelativePathTo(IMoniker* This,IMoniker *pmkOther,IMoniker **ppmkRelPath) {
9365     return This->lpVtbl->RelativePathTo(This,pmkOther,ppmkRelPath);
9366 }
9367 static FORCEINLINE HRESULT IMoniker_GetDisplayName(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,LPOLESTR *ppszDisplayName) {
9368     return This->lpVtbl->GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName);
9369 }
9370 static FORCEINLINE HRESULT IMoniker_ParseDisplayName(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,LPOLESTR pszDisplayName,ULONG *pchEaten,IMoniker **ppmkOut) {
9371     return This->lpVtbl->ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut);
9372 }
9373 static FORCEINLINE HRESULT IMoniker_IsSystemMoniker(IMoniker* This,DWORD *pdwMksys) {
9374     return This->lpVtbl->IsSystemMoniker(This,pdwMksys);
9375 }
9376 #endif
9377 #endif
9378 
9379 #endif
9380 
9381 HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToObject_Proxy(
9382     IMoniker* This,
9383     IBindCtx *pbc,
9384     IMoniker *pmkToLeft,
9385     REFIID riidResult,
9386     IUnknown **ppvResult);
9387 void __RPC_STUB IMoniker_RemoteBindToObject_Stub(
9388     IRpcStubBuffer* This,
9389     IRpcChannelBuffer* pRpcChannelBuffer,
9390     PRPC_MESSAGE pRpcMessage,
9391     DWORD* pdwStubPhase);
9392 HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToStorage_Proxy(
9393     IMoniker* This,
9394     IBindCtx *pbc,
9395     IMoniker *pmkToLeft,
9396     REFIID riid,
9397     IUnknown **ppvObj);
9398 void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
9399     IRpcStubBuffer* This,
9400     IRpcChannelBuffer* pRpcChannelBuffer,
9401     PRPC_MESSAGE pRpcMessage,
9402     DWORD* pdwStubPhase);
9403 HRESULT STDMETHODCALLTYPE IMoniker_Reduce_Proxy(
9404     IMoniker* This,
9405     IBindCtx *pbc,
9406     DWORD dwReduceHowFar,
9407     IMoniker **ppmkToLeft,
9408     IMoniker **ppmkReduced);
9409 void __RPC_STUB IMoniker_Reduce_Stub(
9410     IRpcStubBuffer* This,
9411     IRpcChannelBuffer* pRpcChannelBuffer,
9412     PRPC_MESSAGE pRpcMessage,
9413     DWORD* pdwStubPhase);
9414 HRESULT STDMETHODCALLTYPE IMoniker_ComposeWith_Proxy(
9415     IMoniker* This,
9416     IMoniker *pmkRight,
9417     WINBOOL fOnlyIfNotGeneric,
9418     IMoniker **ppmkComposite);
9419 void __RPC_STUB IMoniker_ComposeWith_Stub(
9420     IRpcStubBuffer* This,
9421     IRpcChannelBuffer* pRpcChannelBuffer,
9422     PRPC_MESSAGE pRpcMessage,
9423     DWORD* pdwStubPhase);
9424 HRESULT STDMETHODCALLTYPE IMoniker_Enum_Proxy(
9425     IMoniker* This,
9426     WINBOOL fForward,
9427     IEnumMoniker **ppenumMoniker);
9428 void __RPC_STUB IMoniker_Enum_Stub(
9429     IRpcStubBuffer* This,
9430     IRpcChannelBuffer* pRpcChannelBuffer,
9431     PRPC_MESSAGE pRpcMessage,
9432     DWORD* pdwStubPhase);
9433 HRESULT STDMETHODCALLTYPE IMoniker_IsEqual_Proxy(
9434     IMoniker* This,
9435     IMoniker *pmkOtherMoniker);
9436 void __RPC_STUB IMoniker_IsEqual_Stub(
9437     IRpcStubBuffer* This,
9438     IRpcChannelBuffer* pRpcChannelBuffer,
9439     PRPC_MESSAGE pRpcMessage,
9440     DWORD* pdwStubPhase);
9441 HRESULT STDMETHODCALLTYPE IMoniker_Hash_Proxy(
9442     IMoniker* This,
9443     DWORD *pdwHash);
9444 void __RPC_STUB IMoniker_Hash_Stub(
9445     IRpcStubBuffer* This,
9446     IRpcChannelBuffer* pRpcChannelBuffer,
9447     PRPC_MESSAGE pRpcMessage,
9448     DWORD* pdwStubPhase);
9449 HRESULT STDMETHODCALLTYPE IMoniker_IsRunning_Proxy(
9450     IMoniker* This,
9451     IBindCtx *pbc,
9452     IMoniker *pmkToLeft,
9453     IMoniker *pmkNewlyRunning);
9454 void __RPC_STUB IMoniker_IsRunning_Stub(
9455     IRpcStubBuffer* This,
9456     IRpcChannelBuffer* pRpcChannelBuffer,
9457     PRPC_MESSAGE pRpcMessage,
9458     DWORD* pdwStubPhase);
9459 HRESULT STDMETHODCALLTYPE IMoniker_GetTimeOfLastChange_Proxy(
9460     IMoniker* This,
9461     IBindCtx *pbc,
9462     IMoniker *pmkToLeft,
9463     FILETIME *pFileTime);
9464 void __RPC_STUB IMoniker_GetTimeOfLastChange_Stub(
9465     IRpcStubBuffer* This,
9466     IRpcChannelBuffer* pRpcChannelBuffer,
9467     PRPC_MESSAGE pRpcMessage,
9468     DWORD* pdwStubPhase);
9469 HRESULT STDMETHODCALLTYPE IMoniker_Inverse_Proxy(
9470     IMoniker* This,
9471     IMoniker **ppmk);
9472 void __RPC_STUB IMoniker_Inverse_Stub(
9473     IRpcStubBuffer* This,
9474     IRpcChannelBuffer* pRpcChannelBuffer,
9475     PRPC_MESSAGE pRpcMessage,
9476     DWORD* pdwStubPhase);
9477 HRESULT STDMETHODCALLTYPE IMoniker_CommonPrefixWith_Proxy(
9478     IMoniker* This,
9479     IMoniker *pmkOther,
9480     IMoniker **ppmkPrefix);
9481 void __RPC_STUB IMoniker_CommonPrefixWith_Stub(
9482     IRpcStubBuffer* This,
9483     IRpcChannelBuffer* pRpcChannelBuffer,
9484     PRPC_MESSAGE pRpcMessage,
9485     DWORD* pdwStubPhase);
9486 HRESULT STDMETHODCALLTYPE IMoniker_RelativePathTo_Proxy(
9487     IMoniker* This,
9488     IMoniker *pmkOther,
9489     IMoniker **ppmkRelPath);
9490 void __RPC_STUB IMoniker_RelativePathTo_Stub(
9491     IRpcStubBuffer* This,
9492     IRpcChannelBuffer* pRpcChannelBuffer,
9493     PRPC_MESSAGE pRpcMessage,
9494     DWORD* pdwStubPhase);
9495 HRESULT STDMETHODCALLTYPE IMoniker_GetDisplayName_Proxy(
9496     IMoniker* This,
9497     IBindCtx *pbc,
9498     IMoniker *pmkToLeft,
9499     LPOLESTR *ppszDisplayName);
9500 void __RPC_STUB IMoniker_GetDisplayName_Stub(
9501     IRpcStubBuffer* This,
9502     IRpcChannelBuffer* pRpcChannelBuffer,
9503     PRPC_MESSAGE pRpcMessage,
9504     DWORD* pdwStubPhase);
9505 HRESULT STDMETHODCALLTYPE IMoniker_ParseDisplayName_Proxy(
9506     IMoniker* This,
9507     IBindCtx *pbc,
9508     IMoniker *pmkToLeft,
9509     LPOLESTR pszDisplayName,
9510     ULONG *pchEaten,
9511     IMoniker **ppmkOut);
9512 void __RPC_STUB IMoniker_ParseDisplayName_Stub(
9513     IRpcStubBuffer* This,
9514     IRpcChannelBuffer* pRpcChannelBuffer,
9515     PRPC_MESSAGE pRpcMessage,
9516     DWORD* pdwStubPhase);
9517 HRESULT STDMETHODCALLTYPE IMoniker_IsSystemMoniker_Proxy(
9518     IMoniker* This,
9519     DWORD *pdwMksys);
9520 void __RPC_STUB IMoniker_IsSystemMoniker_Stub(
9521     IRpcStubBuffer* This,
9522     IRpcChannelBuffer* pRpcChannelBuffer,
9523     PRPC_MESSAGE pRpcMessage,
9524     DWORD* pdwStubPhase);
9525 HRESULT CALLBACK IMoniker_BindToObject_Proxy(
9526     IMoniker* This,
9527     IBindCtx *pbc,
9528     IMoniker *pmkToLeft,
9529     REFIID riidResult,
9530     void **ppvResult);
9531 HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
9532     IMoniker* This,
9533     IBindCtx *pbc,
9534     IMoniker *pmkToLeft,
9535     REFIID riidResult,
9536     IUnknown **ppvResult);
9537 HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
9538     IMoniker* This,
9539     IBindCtx *pbc,
9540     IMoniker *pmkToLeft,
9541     REFIID riid,
9542     void **ppvObj);
9543 HRESULT __RPC_STUB IMoniker_BindToStorage_Stub(
9544     IMoniker* This,
9545     IBindCtx *pbc,
9546     IMoniker *pmkToLeft,
9547     REFIID riid,
9548     IUnknown **ppvObj);
9549 
9550 #endif  /* __IMoniker_INTERFACE_DEFINED__ */
9551 
9552 #endif
9553 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
9554 /*****************************************************************************
9555  * IROTData interface
9556  */
9557 #ifndef __IROTData_INTERFACE_DEFINED__
9558 #define __IROTData_INTERFACE_DEFINED__
9559 
9560 DEFINE_GUID(IID_IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f);
9561 #if defined(__cplusplus) && !defined(CINTERFACE)
9562 MIDL_INTERFACE("f29f6bc0-5021-11ce-aa15-00006901293f")
9563 IROTData : public IUnknown
9564 {
9565     virtual HRESULT STDMETHODCALLTYPE GetComparisonData(
9566         byte *pbData,
9567         ULONG cbMax,
9568         ULONG *pcbData) = 0;
9569 
9570 };
9571 #ifdef __CRT_UUID_DECL
9572 __CRT_UUID_DECL(IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f)
9573 #endif
9574 #else
9575 typedef struct IROTDataVtbl {
9576     BEGIN_INTERFACE
9577 
9578     /*** IUnknown methods ***/
9579     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9580         IROTData* This,
9581         REFIID riid,
9582         void **ppvObject);
9583 
9584     ULONG (STDMETHODCALLTYPE *AddRef)(
9585         IROTData* This);
9586 
9587     ULONG (STDMETHODCALLTYPE *Release)(
9588         IROTData* This);
9589 
9590     /*** IROTData methods ***/
9591     HRESULT (STDMETHODCALLTYPE *GetComparisonData)(
9592         IROTData* This,
9593         byte *pbData,
9594         ULONG cbMax,
9595         ULONG *pcbData);
9596 
9597     END_INTERFACE
9598 } IROTDataVtbl;
9599 interface IROTData {
9600     CONST_VTBL IROTDataVtbl* lpVtbl;
9601 };
9602 
9603 #ifdef COBJMACROS
9604 #ifndef WIDL_C_INLINE_WRAPPERS
9605 /*** IUnknown methods ***/
9606 #define IROTData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9607 #define IROTData_AddRef(This) (This)->lpVtbl->AddRef(This)
9608 #define IROTData_Release(This) (This)->lpVtbl->Release(This)
9609 /*** IROTData methods ***/
9610 #define IROTData_GetComparisonData(This,pbData,cbMax,pcbData) (This)->lpVtbl->GetComparisonData(This,pbData,cbMax,pcbData)
9611 #else
9612 /*** IUnknown methods ***/
9613 static FORCEINLINE HRESULT IROTData_QueryInterface(IROTData* This,REFIID riid,void **ppvObject) {
9614     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9615 }
9616 static FORCEINLINE ULONG IROTData_AddRef(IROTData* This) {
9617     return This->lpVtbl->AddRef(This);
9618 }
9619 static FORCEINLINE ULONG IROTData_Release(IROTData* This) {
9620     return This->lpVtbl->Release(This);
9621 }
9622 /*** IROTData methods ***/
9623 static FORCEINLINE HRESULT IROTData_GetComparisonData(IROTData* This,byte *pbData,ULONG cbMax,ULONG *pcbData) {
9624     return This->lpVtbl->GetComparisonData(This,pbData,cbMax,pcbData);
9625 }
9626 #endif
9627 #endif
9628 
9629 #endif
9630 
9631 HRESULT STDMETHODCALLTYPE IROTData_GetComparisonData_Proxy(
9632     IROTData* This,
9633     byte *pbData,
9634     ULONG cbMax,
9635     ULONG *pcbData);
9636 void __RPC_STUB IROTData_GetComparisonData_Stub(
9637     IRpcStubBuffer* This,
9638     IRpcChannelBuffer* pRpcChannelBuffer,
9639     PRPC_MESSAGE pRpcMessage,
9640     DWORD* pdwStubPhase);
9641 
9642 #endif  /* __IROTData_INTERFACE_DEFINED__ */
9643 
9644 #endif
9645 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
9646 /*****************************************************************************
9647  * IEnumSTATSTG interface
9648  */
9649 #ifndef __IEnumSTATSTG_INTERFACE_DEFINED__
9650 #define __IEnumSTATSTG_INTERFACE_DEFINED__
9651 
9652 typedef IEnumSTATSTG *LPENUMSTATSTG;
9653 DEFINE_GUID(IID_IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9654 #if defined(__cplusplus) && !defined(CINTERFACE)
9655 MIDL_INTERFACE("0000000d-0000-0000-c000-000000000046")
9656 IEnumSTATSTG : public IUnknown
9657 {
9658     virtual HRESULT STDMETHODCALLTYPE Next(
9659         ULONG celt,
9660         STATSTG *rgelt,
9661         ULONG *pceltFetched) = 0;
9662 
9663     virtual HRESULT STDMETHODCALLTYPE Skip(
9664         ULONG celt) = 0;
9665 
9666     virtual HRESULT STDMETHODCALLTYPE Reset(
9667         ) = 0;
9668 
9669     virtual HRESULT STDMETHODCALLTYPE Clone(
9670         IEnumSTATSTG **ppenum) = 0;
9671 
9672 };
9673 #ifdef __CRT_UUID_DECL
9674 __CRT_UUID_DECL(IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
9675 #endif
9676 #else
9677 typedef struct IEnumSTATSTGVtbl {
9678     BEGIN_INTERFACE
9679 
9680     /*** IUnknown methods ***/
9681     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9682         IEnumSTATSTG* This,
9683         REFIID riid,
9684         void **ppvObject);
9685 
9686     ULONG (STDMETHODCALLTYPE *AddRef)(
9687         IEnumSTATSTG* This);
9688 
9689     ULONG (STDMETHODCALLTYPE *Release)(
9690         IEnumSTATSTG* This);
9691 
9692     /*** IEnumSTATSTG methods ***/
9693     HRESULT (STDMETHODCALLTYPE *Next)(
9694         IEnumSTATSTG* This,
9695         ULONG celt,
9696         STATSTG *rgelt,
9697         ULONG *pceltFetched);
9698 
9699     HRESULT (STDMETHODCALLTYPE *Skip)(
9700         IEnumSTATSTG* This,
9701         ULONG celt);
9702 
9703     HRESULT (STDMETHODCALLTYPE *Reset)(
9704         IEnumSTATSTG* This);
9705 
9706     HRESULT (STDMETHODCALLTYPE *Clone)(
9707         IEnumSTATSTG* This,
9708         IEnumSTATSTG **ppenum);
9709 
9710     END_INTERFACE
9711 } IEnumSTATSTGVtbl;
9712 interface IEnumSTATSTG {
9713     CONST_VTBL IEnumSTATSTGVtbl* lpVtbl;
9714 };
9715 
9716 #ifdef COBJMACROS
9717 #ifndef WIDL_C_INLINE_WRAPPERS
9718 /*** IUnknown methods ***/
9719 #define IEnumSTATSTG_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9720 #define IEnumSTATSTG_AddRef(This) (This)->lpVtbl->AddRef(This)
9721 #define IEnumSTATSTG_Release(This) (This)->lpVtbl->Release(This)
9722 /*** IEnumSTATSTG methods ***/
9723 #define IEnumSTATSTG_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
9724 #define IEnumSTATSTG_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
9725 #define IEnumSTATSTG_Reset(This) (This)->lpVtbl->Reset(This)
9726 #define IEnumSTATSTG_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
9727 #else
9728 /*** IUnknown methods ***/
9729 static FORCEINLINE HRESULT IEnumSTATSTG_QueryInterface(IEnumSTATSTG* This,REFIID riid,void **ppvObject) {
9730     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9731 }
9732 static FORCEINLINE ULONG IEnumSTATSTG_AddRef(IEnumSTATSTG* This) {
9733     return This->lpVtbl->AddRef(This);
9734 }
9735 static FORCEINLINE ULONG IEnumSTATSTG_Release(IEnumSTATSTG* This) {
9736     return This->lpVtbl->Release(This);
9737 }
9738 /*** IEnumSTATSTG methods ***/
9739 static FORCEINLINE HRESULT IEnumSTATSTG_Next(IEnumSTATSTG* This,ULONG celt,STATSTG *rgelt,ULONG *pceltFetched) {
9740     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
9741 }
9742 static FORCEINLINE HRESULT IEnumSTATSTG_Skip(IEnumSTATSTG* This,ULONG celt) {
9743     return This->lpVtbl->Skip(This,celt);
9744 }
9745 static FORCEINLINE HRESULT IEnumSTATSTG_Reset(IEnumSTATSTG* This) {
9746     return This->lpVtbl->Reset(This);
9747 }
9748 static FORCEINLINE HRESULT IEnumSTATSTG_Clone(IEnumSTATSTG* This,IEnumSTATSTG **ppenum) {
9749     return This->lpVtbl->Clone(This,ppenum);
9750 }
9751 #endif
9752 #endif
9753 
9754 #endif
9755 
9756 HRESULT STDMETHODCALLTYPE IEnumSTATSTG_RemoteNext_Proxy(
9757     IEnumSTATSTG* This,
9758     ULONG celt,
9759     STATSTG *rgelt,
9760     ULONG *pceltFetched);
9761 void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
9762     IRpcStubBuffer* This,
9763     IRpcChannelBuffer* pRpcChannelBuffer,
9764     PRPC_MESSAGE pRpcMessage,
9765     DWORD* pdwStubPhase);
9766 HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Skip_Proxy(
9767     IEnumSTATSTG* This,
9768     ULONG celt);
9769 void __RPC_STUB IEnumSTATSTG_Skip_Stub(
9770     IRpcStubBuffer* This,
9771     IRpcChannelBuffer* pRpcChannelBuffer,
9772     PRPC_MESSAGE pRpcMessage,
9773     DWORD* pdwStubPhase);
9774 HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Reset_Proxy(
9775     IEnumSTATSTG* This);
9776 void __RPC_STUB IEnumSTATSTG_Reset_Stub(
9777     IRpcStubBuffer* This,
9778     IRpcChannelBuffer* pRpcChannelBuffer,
9779     PRPC_MESSAGE pRpcMessage,
9780     DWORD* pdwStubPhase);
9781 HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Clone_Proxy(
9782     IEnumSTATSTG* This,
9783     IEnumSTATSTG **ppenum);
9784 void __RPC_STUB IEnumSTATSTG_Clone_Stub(
9785     IRpcStubBuffer* This,
9786     IRpcChannelBuffer* pRpcChannelBuffer,
9787     PRPC_MESSAGE pRpcMessage,
9788     DWORD* pdwStubPhase);
9789 HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
9790     IEnumSTATSTG* This,
9791     ULONG celt,
9792     STATSTG *rgelt,
9793     ULONG *pceltFetched);
9794 HRESULT __RPC_STUB IEnumSTATSTG_Next_Stub(
9795     IEnumSTATSTG* This,
9796     ULONG celt,
9797     STATSTG *rgelt,
9798     ULONG *pceltFetched);
9799 
9800 #endif  /* __IEnumSTATSTG_INTERFACE_DEFINED__ */
9801 
9802 /*****************************************************************************
9803  * IStorage interface
9804  */
9805 #ifndef __IStorage_INTERFACE_DEFINED__
9806 #define __IStorage_INTERFACE_DEFINED__
9807 
9808 typedef IStorage *LPSTORAGE;
9809 typedef struct tagRemSNB {
9810     ULONG ulCntStr;
9811     ULONG ulCntChar;
9812     OLECHAR rgString[1];
9813 } RemSNB;
9814 typedef RemSNB *wireSNB;
9815 typedef LPOLESTR *SNB;
9816 DEFINE_GUID(IID_IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9817 #if defined(__cplusplus) && !defined(CINTERFACE)
9818 MIDL_INTERFACE("0000000b-0000-0000-c000-000000000046")
9819 IStorage : public IUnknown
9820 {
9821     virtual HRESULT STDMETHODCALLTYPE CreateStream(
9822         const OLECHAR *pwcsName,
9823         DWORD grfMode,
9824         DWORD reserved1,
9825         DWORD reserved2,
9826         IStream **ppstm) = 0;
9827 
9828     virtual HRESULT STDMETHODCALLTYPE OpenStream(
9829         const OLECHAR *pwcsName,
9830         void *reserved1,
9831         DWORD grfMode,
9832         DWORD reserved2,
9833         IStream **ppstm) = 0;
9834 
9835     virtual HRESULT STDMETHODCALLTYPE CreateStorage(
9836         const OLECHAR *pwcsName,
9837         DWORD grfMode,
9838         DWORD reserved1,
9839         DWORD reserved2,
9840         IStorage **ppstg) = 0;
9841 
9842     virtual HRESULT STDMETHODCALLTYPE OpenStorage(
9843         const OLECHAR *pwcsName,
9844         IStorage *pstgPriority,
9845         DWORD grfMode,
9846         SNB snbExclude,
9847         DWORD reserved,
9848         IStorage **ppstg) = 0;
9849 
9850     virtual HRESULT STDMETHODCALLTYPE CopyTo(
9851         DWORD ciidExclude,
9852         const IID *rgiidExclude,
9853         SNB snbExclude,
9854         IStorage *pstgDest) = 0;
9855 
9856     virtual HRESULT STDMETHODCALLTYPE MoveElementTo(
9857         const OLECHAR *pwcsName,
9858         IStorage *pstgDest,
9859         const OLECHAR *pwcsNewName,
9860         DWORD grfFlags) = 0;
9861 
9862     virtual HRESULT STDMETHODCALLTYPE Commit(
9863         DWORD grfCommitFlags) = 0;
9864 
9865     virtual HRESULT STDMETHODCALLTYPE Revert(
9866         ) = 0;
9867 
9868     virtual HRESULT STDMETHODCALLTYPE EnumElements(
9869         DWORD reserved1,
9870         void *reserved2,
9871         DWORD reserved3,
9872         IEnumSTATSTG **ppenum) = 0;
9873 
9874     virtual HRESULT STDMETHODCALLTYPE DestroyElement(
9875         const OLECHAR *pwcsName) = 0;
9876 
9877     virtual HRESULT STDMETHODCALLTYPE RenameElement(
9878         const OLECHAR *pwcsOldName,
9879         const OLECHAR *pwcsNewName) = 0;
9880 
9881     virtual HRESULT STDMETHODCALLTYPE SetElementTimes(
9882         const OLECHAR *pwcsName,
9883         const FILETIME *pctime,
9884         const FILETIME *patime,
9885         const FILETIME *pmtime) = 0;
9886 
9887     virtual HRESULT STDMETHODCALLTYPE SetClass(
9888         REFCLSID clsid) = 0;
9889 
9890     virtual HRESULT STDMETHODCALLTYPE SetStateBits(
9891         DWORD grfStateBits,
9892         DWORD grfMask) = 0;
9893 
9894     virtual HRESULT STDMETHODCALLTYPE Stat(
9895         STATSTG *pstatstg,
9896         DWORD grfStatFlag) = 0;
9897 
9898 };
9899 #ifdef __CRT_UUID_DECL
9900 __CRT_UUID_DECL(IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
9901 #endif
9902 #else
9903 typedef struct IStorageVtbl {
9904     BEGIN_INTERFACE
9905 
9906     /*** IUnknown methods ***/
9907     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9908         IStorage* This,
9909         REFIID riid,
9910         void **ppvObject);
9911 
9912     ULONG (STDMETHODCALLTYPE *AddRef)(
9913         IStorage* This);
9914 
9915     ULONG (STDMETHODCALLTYPE *Release)(
9916         IStorage* This);
9917 
9918     /*** IStorage methods ***/
9919     HRESULT (STDMETHODCALLTYPE *CreateStream)(
9920         IStorage* This,
9921         const OLECHAR *pwcsName,
9922         DWORD grfMode,
9923         DWORD reserved1,
9924         DWORD reserved2,
9925         IStream **ppstm);
9926 
9927     HRESULT (STDMETHODCALLTYPE *OpenStream)(
9928         IStorage* This,
9929         const OLECHAR *pwcsName,
9930         void *reserved1,
9931         DWORD grfMode,
9932         DWORD reserved2,
9933         IStream **ppstm);
9934 
9935     HRESULT (STDMETHODCALLTYPE *CreateStorage)(
9936         IStorage* This,
9937         const OLECHAR *pwcsName,
9938         DWORD grfMode,
9939         DWORD reserved1,
9940         DWORD reserved2,
9941         IStorage **ppstg);
9942 
9943     HRESULT (STDMETHODCALLTYPE *OpenStorage)(
9944         IStorage* This,
9945         const OLECHAR *pwcsName,
9946         IStorage *pstgPriority,
9947         DWORD grfMode,
9948         SNB snbExclude,
9949         DWORD reserved,
9950         IStorage **ppstg);
9951 
9952     HRESULT (STDMETHODCALLTYPE *CopyTo)(
9953         IStorage* This,
9954         DWORD ciidExclude,
9955         const IID *rgiidExclude,
9956         SNB snbExclude,
9957         IStorage *pstgDest);
9958 
9959     HRESULT (STDMETHODCALLTYPE *MoveElementTo)(
9960         IStorage* This,
9961         const OLECHAR *pwcsName,
9962         IStorage *pstgDest,
9963         const OLECHAR *pwcsNewName,
9964         DWORD grfFlags);
9965 
9966     HRESULT (STDMETHODCALLTYPE *Commit)(
9967         IStorage* This,
9968         DWORD grfCommitFlags);
9969 
9970     HRESULT (STDMETHODCALLTYPE *Revert)(
9971         IStorage* This);
9972 
9973     HRESULT (STDMETHODCALLTYPE *EnumElements)(
9974         IStorage* This,
9975         DWORD reserved1,
9976         void *reserved2,
9977         DWORD reserved3,
9978         IEnumSTATSTG **ppenum);
9979 
9980     HRESULT (STDMETHODCALLTYPE *DestroyElement)(
9981         IStorage* This,
9982         const OLECHAR *pwcsName);
9983 
9984     HRESULT (STDMETHODCALLTYPE *RenameElement)(
9985         IStorage* This,
9986         const OLECHAR *pwcsOldName,
9987         const OLECHAR *pwcsNewName);
9988 
9989     HRESULT (STDMETHODCALLTYPE *SetElementTimes)(
9990         IStorage* This,
9991         const OLECHAR *pwcsName,
9992         const FILETIME *pctime,
9993         const FILETIME *patime,
9994         const FILETIME *pmtime);
9995 
9996     HRESULT (STDMETHODCALLTYPE *SetClass)(
9997         IStorage* This,
9998         REFCLSID clsid);
9999 
10000     HRESULT (STDMETHODCALLTYPE *SetStateBits)(
10001         IStorage* This,
10002         DWORD grfStateBits,
10003         DWORD grfMask);
10004 
10005     HRESULT (STDMETHODCALLTYPE *Stat)(
10006         IStorage* This,
10007         STATSTG *pstatstg,
10008         DWORD grfStatFlag);
10009 
10010     END_INTERFACE
10011 } IStorageVtbl;
10012 interface IStorage {
10013     CONST_VTBL IStorageVtbl* lpVtbl;
10014 };
10015 
10016 #ifdef COBJMACROS
10017 #ifndef WIDL_C_INLINE_WRAPPERS
10018 /*** IUnknown methods ***/
10019 #define IStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10020 #define IStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
10021 #define IStorage_Release(This) (This)->lpVtbl->Release(This)
10022 /*** IStorage methods ***/
10023 #define IStorage_CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm) (This)->lpVtbl->CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm)
10024 #define IStorage_OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm) (This)->lpVtbl->OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm)
10025 #define IStorage_CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg) (This)->lpVtbl->CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg)
10026 #define IStorage_OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg) (This)->lpVtbl->OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg)
10027 #define IStorage_CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest) (This)->lpVtbl->CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest)
10028 #define IStorage_MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags) (This)->lpVtbl->MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags)
10029 #define IStorage_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
10030 #define IStorage_Revert(This) (This)->lpVtbl->Revert(This)
10031 #define IStorage_EnumElements(This,reserved1,reserved2,reserved3,ppenum) (This)->lpVtbl->EnumElements(This,reserved1,reserved2,reserved3,ppenum)
10032 #define IStorage_DestroyElement(This,pwcsName) (This)->lpVtbl->DestroyElement(This,pwcsName)
10033 #define IStorage_RenameElement(This,pwcsOldName,pwcsNewName) (This)->lpVtbl->RenameElement(This,pwcsOldName,pwcsNewName)
10034 #define IStorage_SetElementTimes(This,pwcsName,pctime,patime,pmtime) (This)->lpVtbl->SetElementTimes(This,pwcsName,pctime,patime,pmtime)
10035 #define IStorage_SetClass(This,clsid) (This)->lpVtbl->SetClass(This,clsid)
10036 #define IStorage_SetStateBits(This,grfStateBits,grfMask) (This)->lpVtbl->SetStateBits(This,grfStateBits,grfMask)
10037 #define IStorage_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
10038 #else
10039 /*** IUnknown methods ***/
10040 static FORCEINLINE HRESULT IStorage_QueryInterface(IStorage* This,REFIID riid,void **ppvObject) {
10041     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10042 }
10043 static FORCEINLINE ULONG IStorage_AddRef(IStorage* This) {
10044     return This->lpVtbl->AddRef(This);
10045 }
10046 static FORCEINLINE ULONG IStorage_Release(IStorage* This) {
10047     return This->lpVtbl->Release(This);
10048 }
10049 /*** IStorage methods ***/
10050 static FORCEINLINE HRESULT IStorage_CreateStream(IStorage* This,const OLECHAR *pwcsName,DWORD grfMode,DWORD reserved1,DWORD reserved2,IStream **ppstm) {
10051     return This->lpVtbl->CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm);
10052 }
10053 static FORCEINLINE HRESULT IStorage_OpenStream(IStorage* This,const OLECHAR *pwcsName,void *reserved1,DWORD grfMode,DWORD reserved2,IStream **ppstm) {
10054     return This->lpVtbl->OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm);
10055 }
10056 static FORCEINLINE HRESULT IStorage_CreateStorage(IStorage* This,const OLECHAR *pwcsName,DWORD grfMode,DWORD reserved1,DWORD reserved2,IStorage **ppstg) {
10057     return This->lpVtbl->CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg);
10058 }
10059 static FORCEINLINE HRESULT IStorage_OpenStorage(IStorage* This,const OLECHAR *pwcsName,IStorage *pstgPriority,DWORD grfMode,SNB snbExclude,DWORD reserved,IStorage **ppstg) {
10060     return This->lpVtbl->OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg);
10061 }
10062 static FORCEINLINE HRESULT IStorage_CopyTo(IStorage* This,DWORD ciidExclude,const IID *rgiidExclude,SNB snbExclude,IStorage *pstgDest) {
10063     return This->lpVtbl->CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest);
10064 }
10065 static FORCEINLINE HRESULT IStorage_MoveElementTo(IStorage* This,const OLECHAR *pwcsName,IStorage *pstgDest,const OLECHAR *pwcsNewName,DWORD grfFlags) {
10066     return This->lpVtbl->MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags);
10067 }
10068 static FORCEINLINE HRESULT IStorage_Commit(IStorage* This,DWORD grfCommitFlags) {
10069     return This->lpVtbl->Commit(This,grfCommitFlags);
10070 }
10071 static FORCEINLINE HRESULT IStorage_Revert(IStorage* This) {
10072     return This->lpVtbl->Revert(This);
10073 }
10074 static FORCEINLINE HRESULT IStorage_EnumElements(IStorage* This,DWORD reserved1,void *reserved2,DWORD reserved3,IEnumSTATSTG **ppenum) {
10075     return This->lpVtbl->EnumElements(This,reserved1,reserved2,reserved3,ppenum);
10076 }
10077 static FORCEINLINE HRESULT IStorage_DestroyElement(IStorage* This,const OLECHAR *pwcsName) {
10078     return This->lpVtbl->DestroyElement(This,pwcsName);
10079 }
10080 static FORCEINLINE HRESULT IStorage_RenameElement(IStorage* This,const OLECHAR *pwcsOldName,const OLECHAR *pwcsNewName) {
10081     return This->lpVtbl->RenameElement(This,pwcsOldName,pwcsNewName);
10082 }
10083 static FORCEINLINE HRESULT IStorage_SetElementTimes(IStorage* This,const OLECHAR *pwcsName,const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime) {
10084     return This->lpVtbl->SetElementTimes(This,pwcsName,pctime,patime,pmtime);
10085 }
10086 static FORCEINLINE HRESULT IStorage_SetClass(IStorage* This,REFCLSID clsid) {
10087     return This->lpVtbl->SetClass(This,clsid);
10088 }
10089 static FORCEINLINE HRESULT IStorage_SetStateBits(IStorage* This,DWORD grfStateBits,DWORD grfMask) {
10090     return This->lpVtbl->SetStateBits(This,grfStateBits,grfMask);
10091 }
10092 static FORCEINLINE HRESULT IStorage_Stat(IStorage* This,STATSTG *pstatstg,DWORD grfStatFlag) {
10093     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
10094 }
10095 #endif
10096 #endif
10097 
10098 #endif
10099 
10100 HRESULT STDMETHODCALLTYPE IStorage_CreateStream_Proxy(
10101     IStorage* This,
10102     const OLECHAR *pwcsName,
10103     DWORD grfMode,
10104     DWORD reserved1,
10105     DWORD reserved2,
10106     IStream **ppstm);
10107 void __RPC_STUB IStorage_CreateStream_Stub(
10108     IRpcStubBuffer* This,
10109     IRpcChannelBuffer* pRpcChannelBuffer,
10110     PRPC_MESSAGE pRpcMessage,
10111     DWORD* pdwStubPhase);
10112 HRESULT STDMETHODCALLTYPE IStorage_RemoteOpenStream_Proxy(
10113     IStorage* This,
10114     const OLECHAR *pwcsName,
10115     ULONG cbReserved1,
10116     byte *reserved1,
10117     DWORD grfMode,
10118     DWORD reserved2,
10119     IStream **ppstm);
10120 void __RPC_STUB IStorage_RemoteOpenStream_Stub(
10121     IRpcStubBuffer* This,
10122     IRpcChannelBuffer* pRpcChannelBuffer,
10123     PRPC_MESSAGE pRpcMessage,
10124     DWORD* pdwStubPhase);
10125 HRESULT STDMETHODCALLTYPE IStorage_CreateStorage_Proxy(
10126     IStorage* This,
10127     const OLECHAR *pwcsName,
10128     DWORD grfMode,
10129     DWORD reserved1,
10130     DWORD reserved2,
10131     IStorage **ppstg);
10132 void __RPC_STUB IStorage_CreateStorage_Stub(
10133     IRpcStubBuffer* This,
10134     IRpcChannelBuffer* pRpcChannelBuffer,
10135     PRPC_MESSAGE pRpcMessage,
10136     DWORD* pdwStubPhase);
10137 HRESULT STDMETHODCALLTYPE IStorage_OpenStorage_Proxy(
10138     IStorage* This,
10139     const OLECHAR *pwcsName,
10140     IStorage *pstgPriority,
10141     DWORD grfMode,
10142     SNB snbExclude,
10143     DWORD reserved,
10144     IStorage **ppstg);
10145 void __RPC_STUB IStorage_OpenStorage_Stub(
10146     IRpcStubBuffer* This,
10147     IRpcChannelBuffer* pRpcChannelBuffer,
10148     PRPC_MESSAGE pRpcMessage,
10149     DWORD* pdwStubPhase);
10150 HRESULT STDMETHODCALLTYPE IStorage_RemoteCopyTo_Proxy(
10151     IStorage* This,
10152     DWORD ciidExclude,
10153     const IID *rgiidExclude,
10154     SNB snbExclude,
10155     IStorage *pstgDest);
10156 void __RPC_STUB IStorage_RemoteCopyTo_Stub(
10157     IRpcStubBuffer* This,
10158     IRpcChannelBuffer* pRpcChannelBuffer,
10159     PRPC_MESSAGE pRpcMessage,
10160     DWORD* pdwStubPhase);
10161 HRESULT STDMETHODCALLTYPE IStorage_MoveElementTo_Proxy(
10162     IStorage* This,
10163     const OLECHAR *pwcsName,
10164     IStorage *pstgDest,
10165     const OLECHAR *pwcsNewName,
10166     DWORD grfFlags);
10167 void __RPC_STUB IStorage_MoveElementTo_Stub(
10168     IRpcStubBuffer* This,
10169     IRpcChannelBuffer* pRpcChannelBuffer,
10170     PRPC_MESSAGE pRpcMessage,
10171     DWORD* pdwStubPhase);
10172 HRESULT STDMETHODCALLTYPE IStorage_Commit_Proxy(
10173     IStorage* This,
10174     DWORD grfCommitFlags);
10175 void __RPC_STUB IStorage_Commit_Stub(
10176     IRpcStubBuffer* This,
10177     IRpcChannelBuffer* pRpcChannelBuffer,
10178     PRPC_MESSAGE pRpcMessage,
10179     DWORD* pdwStubPhase);
10180 HRESULT STDMETHODCALLTYPE IStorage_Revert_Proxy(
10181     IStorage* This);
10182 void __RPC_STUB IStorage_Revert_Stub(
10183     IRpcStubBuffer* This,
10184     IRpcChannelBuffer* pRpcChannelBuffer,
10185     PRPC_MESSAGE pRpcMessage,
10186     DWORD* pdwStubPhase);
10187 HRESULT STDMETHODCALLTYPE IStorage_RemoteEnumElements_Proxy(
10188     IStorage* This,
10189     DWORD reserved1,
10190     ULONG cbReserved2,
10191     byte *reserved2,
10192     DWORD reserved3,
10193     IEnumSTATSTG **ppenum);
10194 void __RPC_STUB IStorage_RemoteEnumElements_Stub(
10195     IRpcStubBuffer* This,
10196     IRpcChannelBuffer* pRpcChannelBuffer,
10197     PRPC_MESSAGE pRpcMessage,
10198     DWORD* pdwStubPhase);
10199 HRESULT STDMETHODCALLTYPE IStorage_DestroyElement_Proxy(
10200     IStorage* This,
10201     const OLECHAR *pwcsName);
10202 void __RPC_STUB IStorage_DestroyElement_Stub(
10203     IRpcStubBuffer* This,
10204     IRpcChannelBuffer* pRpcChannelBuffer,
10205     PRPC_MESSAGE pRpcMessage,
10206     DWORD* pdwStubPhase);
10207 HRESULT STDMETHODCALLTYPE IStorage_RenameElement_Proxy(
10208     IStorage* This,
10209     const OLECHAR *pwcsOldName,
10210     const OLECHAR *pwcsNewName);
10211 void __RPC_STUB IStorage_RenameElement_Stub(
10212     IRpcStubBuffer* This,
10213     IRpcChannelBuffer* pRpcChannelBuffer,
10214     PRPC_MESSAGE pRpcMessage,
10215     DWORD* pdwStubPhase);
10216 HRESULT STDMETHODCALLTYPE IStorage_SetElementTimes_Proxy(
10217     IStorage* This,
10218     const OLECHAR *pwcsName,
10219     const FILETIME *pctime,
10220     const FILETIME *patime,
10221     const FILETIME *pmtime);
10222 void __RPC_STUB IStorage_SetElementTimes_Stub(
10223     IRpcStubBuffer* This,
10224     IRpcChannelBuffer* pRpcChannelBuffer,
10225     PRPC_MESSAGE pRpcMessage,
10226     DWORD* pdwStubPhase);
10227 HRESULT STDMETHODCALLTYPE IStorage_SetClass_Proxy(
10228     IStorage* This,
10229     REFCLSID clsid);
10230 void __RPC_STUB IStorage_SetClass_Stub(
10231     IRpcStubBuffer* This,
10232     IRpcChannelBuffer* pRpcChannelBuffer,
10233     PRPC_MESSAGE pRpcMessage,
10234     DWORD* pdwStubPhase);
10235 HRESULT STDMETHODCALLTYPE IStorage_SetStateBits_Proxy(
10236     IStorage* This,
10237     DWORD grfStateBits,
10238     DWORD grfMask);
10239 void __RPC_STUB IStorage_SetStateBits_Stub(
10240     IRpcStubBuffer* This,
10241     IRpcChannelBuffer* pRpcChannelBuffer,
10242     PRPC_MESSAGE pRpcMessage,
10243     DWORD* pdwStubPhase);
10244 HRESULT STDMETHODCALLTYPE IStorage_Stat_Proxy(
10245     IStorage* This,
10246     STATSTG *pstatstg,
10247     DWORD grfStatFlag);
10248 void __RPC_STUB IStorage_Stat_Stub(
10249     IRpcStubBuffer* This,
10250     IRpcChannelBuffer* pRpcChannelBuffer,
10251     PRPC_MESSAGE pRpcMessage,
10252     DWORD* pdwStubPhase);
10253 HRESULT CALLBACK IStorage_OpenStream_Proxy(
10254     IStorage* This,
10255     const OLECHAR *pwcsName,
10256     void *reserved1,
10257     DWORD grfMode,
10258     DWORD reserved2,
10259     IStream **ppstm);
10260 HRESULT __RPC_STUB IStorage_OpenStream_Stub(
10261     IStorage* This,
10262     const OLECHAR *pwcsName,
10263     ULONG cbReserved1,
10264     byte *reserved1,
10265     DWORD grfMode,
10266     DWORD reserved2,
10267     IStream **ppstm);
10268 HRESULT CALLBACK IStorage_CopyTo_Proxy(
10269     IStorage* This,
10270     DWORD ciidExclude,
10271     const IID *rgiidExclude,
10272     SNB snbExclude,
10273     IStorage *pstgDest);
10274 HRESULT __RPC_STUB IStorage_CopyTo_Stub(
10275     IStorage* This,
10276     DWORD ciidExclude,
10277     const IID *rgiidExclude,
10278     SNB snbExclude,
10279     IStorage *pstgDest);
10280 HRESULT CALLBACK IStorage_EnumElements_Proxy(
10281     IStorage* This,
10282     DWORD reserved1,
10283     void *reserved2,
10284     DWORD reserved3,
10285     IEnumSTATSTG **ppenum);
10286 HRESULT __RPC_STUB IStorage_EnumElements_Stub(
10287     IStorage* This,
10288     DWORD reserved1,
10289     ULONG cbReserved2,
10290     byte *reserved2,
10291     DWORD reserved3,
10292     IEnumSTATSTG **ppenum);
10293 
10294 #endif  /* __IStorage_INTERFACE_DEFINED__ */
10295 
10296 #endif
10297 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
10298 /*****************************************************************************
10299  * IPersistFile interface
10300  */
10301 #ifndef __IPersistFile_INTERFACE_DEFINED__
10302 #define __IPersistFile_INTERFACE_DEFINED__
10303 
10304 typedef IPersistFile *LPPERSISTFILE;
10305 DEFINE_GUID(IID_IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10306 #if defined(__cplusplus) && !defined(CINTERFACE)
10307 MIDL_INTERFACE("0000010b-0000-0000-c000-000000000046")
10308 IPersistFile : public IPersist
10309 {
10310     virtual HRESULT STDMETHODCALLTYPE IsDirty(
10311         ) = 0;
10312 
10313     virtual HRESULT STDMETHODCALLTYPE Load(
10314         LPCOLESTR pszFileName,
10315         DWORD dwMode) = 0;
10316 
10317     virtual HRESULT STDMETHODCALLTYPE Save(
10318         LPCOLESTR pszFileName,
10319         WINBOOL fRemember) = 0;
10320 
10321     virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
10322         LPCOLESTR pszFileName) = 0;
10323 
10324     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
10325         LPOLESTR *ppszFileName) = 0;
10326 
10327 };
10328 #ifdef __CRT_UUID_DECL
10329 __CRT_UUID_DECL(IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
10330 #endif
10331 #else
10332 typedef struct IPersistFileVtbl {
10333     BEGIN_INTERFACE
10334 
10335     /*** IUnknown methods ***/
10336     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10337         IPersistFile* This,
10338         REFIID riid,
10339         void **ppvObject);
10340 
10341     ULONG (STDMETHODCALLTYPE *AddRef)(
10342         IPersistFile* This);
10343 
10344     ULONG (STDMETHODCALLTYPE *Release)(
10345         IPersistFile* This);
10346 
10347     /*** IPersist methods ***/
10348     HRESULT (STDMETHODCALLTYPE *GetClassID)(
10349         IPersistFile* This,
10350         CLSID *pClassID);
10351 
10352     /*** IPersistFile methods ***/
10353     HRESULT (STDMETHODCALLTYPE *IsDirty)(
10354         IPersistFile* This);
10355 
10356     HRESULT (STDMETHODCALLTYPE *Load)(
10357         IPersistFile* This,
10358         LPCOLESTR pszFileName,
10359         DWORD dwMode);
10360 
10361     HRESULT (STDMETHODCALLTYPE *Save)(
10362         IPersistFile* This,
10363         LPCOLESTR pszFileName,
10364         WINBOOL fRemember);
10365 
10366     HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
10367         IPersistFile* This,
10368         LPCOLESTR pszFileName);
10369 
10370     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
10371         IPersistFile* This,
10372         LPOLESTR *ppszFileName);
10373 
10374     END_INTERFACE
10375 } IPersistFileVtbl;
10376 interface IPersistFile {
10377     CONST_VTBL IPersistFileVtbl* lpVtbl;
10378 };
10379 
10380 #ifdef COBJMACROS
10381 #ifndef WIDL_C_INLINE_WRAPPERS
10382 /*** IUnknown methods ***/
10383 #define IPersistFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10384 #define IPersistFile_AddRef(This) (This)->lpVtbl->AddRef(This)
10385 #define IPersistFile_Release(This) (This)->lpVtbl->Release(This)
10386 /*** IPersist methods ***/
10387 #define IPersistFile_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
10388 /*** IPersistFile methods ***/
10389 #define IPersistFile_IsDirty(This) (This)->lpVtbl->IsDirty(This)
10390 #define IPersistFile_Load(This,pszFileName,dwMode) (This)->lpVtbl->Load(This,pszFileName,dwMode)
10391 #define IPersistFile_Save(This,pszFileName,fRemember) (This)->lpVtbl->Save(This,pszFileName,fRemember)
10392 #define IPersistFile_SaveCompleted(This,pszFileName) (This)->lpVtbl->SaveCompleted(This,pszFileName)
10393 #define IPersistFile_GetCurFile(This,ppszFileName) (This)->lpVtbl->GetCurFile(This,ppszFileName)
10394 #else
10395 /*** IUnknown methods ***/
10396 static FORCEINLINE HRESULT IPersistFile_QueryInterface(IPersistFile* This,REFIID riid,void **ppvObject) {
10397     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10398 }
10399 static FORCEINLINE ULONG IPersistFile_AddRef(IPersistFile* This) {
10400     return This->lpVtbl->AddRef(This);
10401 }
10402 static FORCEINLINE ULONG IPersistFile_Release(IPersistFile* This) {
10403     return This->lpVtbl->Release(This);
10404 }
10405 /*** IPersist methods ***/
10406 static FORCEINLINE HRESULT IPersistFile_GetClassID(IPersistFile* This,CLSID *pClassID) {
10407     return This->lpVtbl->GetClassID(This,pClassID);
10408 }
10409 /*** IPersistFile methods ***/
10410 static FORCEINLINE HRESULT IPersistFile_IsDirty(IPersistFile* This) {
10411     return This->lpVtbl->IsDirty(This);
10412 }
10413 static FORCEINLINE HRESULT IPersistFile_Load(IPersistFile* This,LPCOLESTR pszFileName,DWORD dwMode) {
10414     return This->lpVtbl->Load(This,pszFileName,dwMode);
10415 }
10416 static FORCEINLINE HRESULT IPersistFile_Save(IPersistFile* This,LPCOLESTR pszFileName,WINBOOL fRemember) {
10417     return This->lpVtbl->Save(This,pszFileName,fRemember);
10418 }
10419 static FORCEINLINE HRESULT IPersistFile_SaveCompleted(IPersistFile* This,LPCOLESTR pszFileName) {
10420     return This->lpVtbl->SaveCompleted(This,pszFileName);
10421 }
10422 static FORCEINLINE HRESULT IPersistFile_GetCurFile(IPersistFile* This,LPOLESTR *ppszFileName) {
10423     return This->lpVtbl->GetCurFile(This,ppszFileName);
10424 }
10425 #endif
10426 #endif
10427 
10428 #endif
10429 
10430 HRESULT STDMETHODCALLTYPE IPersistFile_IsDirty_Proxy(
10431     IPersistFile* This);
10432 void __RPC_STUB IPersistFile_IsDirty_Stub(
10433     IRpcStubBuffer* This,
10434     IRpcChannelBuffer* pRpcChannelBuffer,
10435     PRPC_MESSAGE pRpcMessage,
10436     DWORD* pdwStubPhase);
10437 HRESULT STDMETHODCALLTYPE IPersistFile_Load_Proxy(
10438     IPersistFile* This,
10439     LPCOLESTR pszFileName,
10440     DWORD dwMode);
10441 void __RPC_STUB IPersistFile_Load_Stub(
10442     IRpcStubBuffer* This,
10443     IRpcChannelBuffer* pRpcChannelBuffer,
10444     PRPC_MESSAGE pRpcMessage,
10445     DWORD* pdwStubPhase);
10446 HRESULT STDMETHODCALLTYPE IPersistFile_Save_Proxy(
10447     IPersistFile* This,
10448     LPCOLESTR pszFileName,
10449     WINBOOL fRemember);
10450 void __RPC_STUB IPersistFile_Save_Stub(
10451     IRpcStubBuffer* This,
10452     IRpcChannelBuffer* pRpcChannelBuffer,
10453     PRPC_MESSAGE pRpcMessage,
10454     DWORD* pdwStubPhase);
10455 HRESULT STDMETHODCALLTYPE IPersistFile_SaveCompleted_Proxy(
10456     IPersistFile* This,
10457     LPCOLESTR pszFileName);
10458 void __RPC_STUB IPersistFile_SaveCompleted_Stub(
10459     IRpcStubBuffer* This,
10460     IRpcChannelBuffer* pRpcChannelBuffer,
10461     PRPC_MESSAGE pRpcMessage,
10462     DWORD* pdwStubPhase);
10463 HRESULT STDMETHODCALLTYPE IPersistFile_GetCurFile_Proxy(
10464     IPersistFile* This,
10465     LPOLESTR *ppszFileName);
10466 void __RPC_STUB IPersistFile_GetCurFile_Stub(
10467     IRpcStubBuffer* This,
10468     IRpcChannelBuffer* pRpcChannelBuffer,
10469     PRPC_MESSAGE pRpcMessage,
10470     DWORD* pdwStubPhase);
10471 
10472 #endif  /* __IPersistFile_INTERFACE_DEFINED__ */
10473 
10474 /*****************************************************************************
10475  * IPersistStorage interface
10476  */
10477 #ifndef __IPersistStorage_INTERFACE_DEFINED__
10478 #define __IPersistStorage_INTERFACE_DEFINED__
10479 
10480 typedef IPersistStorage *LPPERSISTSTORAGE;
10481 DEFINE_GUID(IID_IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10482 #if defined(__cplusplus) && !defined(CINTERFACE)
10483 MIDL_INTERFACE("0000010a-0000-0000-c000-000000000046")
10484 IPersistStorage : public IPersist
10485 {
10486     virtual HRESULT STDMETHODCALLTYPE IsDirty(
10487         ) = 0;
10488 
10489     virtual HRESULT STDMETHODCALLTYPE InitNew(
10490         IStorage *pStg) = 0;
10491 
10492     virtual HRESULT STDMETHODCALLTYPE Load(
10493         IStorage *pStg) = 0;
10494 
10495     virtual HRESULT STDMETHODCALLTYPE Save(
10496         IStorage *pStgSave,
10497         WINBOOL fSameAsLoad) = 0;
10498 
10499     virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
10500         IStorage *pStgNew) = 0;
10501 
10502     virtual HRESULT STDMETHODCALLTYPE HandsOffStorage(
10503         ) = 0;
10504 
10505 };
10506 #ifdef __CRT_UUID_DECL
10507 __CRT_UUID_DECL(IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
10508 #endif
10509 #else
10510 typedef struct IPersistStorageVtbl {
10511     BEGIN_INTERFACE
10512 
10513     /*** IUnknown methods ***/
10514     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10515         IPersistStorage* This,
10516         REFIID riid,
10517         void **ppvObject);
10518 
10519     ULONG (STDMETHODCALLTYPE *AddRef)(
10520         IPersistStorage* This);
10521 
10522     ULONG (STDMETHODCALLTYPE *Release)(
10523         IPersistStorage* This);
10524 
10525     /*** IPersist methods ***/
10526     HRESULT (STDMETHODCALLTYPE *GetClassID)(
10527         IPersistStorage* This,
10528         CLSID *pClassID);
10529 
10530     /*** IPersistStorage methods ***/
10531     HRESULT (STDMETHODCALLTYPE *IsDirty)(
10532         IPersistStorage* This);
10533 
10534     HRESULT (STDMETHODCALLTYPE *InitNew)(
10535         IPersistStorage* This,
10536         IStorage *pStg);
10537 
10538     HRESULT (STDMETHODCALLTYPE *Load)(
10539         IPersistStorage* This,
10540         IStorage *pStg);
10541 
10542     HRESULT (STDMETHODCALLTYPE *Save)(
10543         IPersistStorage* This,
10544         IStorage *pStgSave,
10545         WINBOOL fSameAsLoad);
10546 
10547     HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
10548         IPersistStorage* This,
10549         IStorage *pStgNew);
10550 
10551     HRESULT (STDMETHODCALLTYPE *HandsOffStorage)(
10552         IPersistStorage* This);
10553 
10554     END_INTERFACE
10555 } IPersistStorageVtbl;
10556 interface IPersistStorage {
10557     CONST_VTBL IPersistStorageVtbl* lpVtbl;
10558 };
10559 
10560 #ifdef COBJMACROS
10561 #ifndef WIDL_C_INLINE_WRAPPERS
10562 /*** IUnknown methods ***/
10563 #define IPersistStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10564 #define IPersistStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
10565 #define IPersistStorage_Release(This) (This)->lpVtbl->Release(This)
10566 /*** IPersist methods ***/
10567 #define IPersistStorage_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
10568 /*** IPersistStorage methods ***/
10569 #define IPersistStorage_IsDirty(This) (This)->lpVtbl->IsDirty(This)
10570 #define IPersistStorage_InitNew(This,pStg) (This)->lpVtbl->InitNew(This,pStg)
10571 #define IPersistStorage_Load(This,pStg) (This)->lpVtbl->Load(This,pStg)
10572 #define IPersistStorage_Save(This,pStgSave,fSameAsLoad) (This)->lpVtbl->Save(This,pStgSave,fSameAsLoad)
10573 #define IPersistStorage_SaveCompleted(This,pStgNew) (This)->lpVtbl->SaveCompleted(This,pStgNew)
10574 #define IPersistStorage_HandsOffStorage(This) (This)->lpVtbl->HandsOffStorage(This)
10575 #else
10576 /*** IUnknown methods ***/
10577 static FORCEINLINE HRESULT IPersistStorage_QueryInterface(IPersistStorage* This,REFIID riid,void **ppvObject) {
10578     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10579 }
10580 static FORCEINLINE ULONG IPersistStorage_AddRef(IPersistStorage* This) {
10581     return This->lpVtbl->AddRef(This);
10582 }
10583 static FORCEINLINE ULONG IPersistStorage_Release(IPersistStorage* This) {
10584     return This->lpVtbl->Release(This);
10585 }
10586 /*** IPersist methods ***/
10587 static FORCEINLINE HRESULT IPersistStorage_GetClassID(IPersistStorage* This,CLSID *pClassID) {
10588     return This->lpVtbl->GetClassID(This,pClassID);
10589 }
10590 /*** IPersistStorage methods ***/
10591 static FORCEINLINE HRESULT IPersistStorage_IsDirty(IPersistStorage* This) {
10592     return This->lpVtbl->IsDirty(This);
10593 }
10594 static FORCEINLINE HRESULT IPersistStorage_InitNew(IPersistStorage* This,IStorage *pStg) {
10595     return This->lpVtbl->InitNew(This,pStg);
10596 }
10597 static FORCEINLINE HRESULT IPersistStorage_Load(IPersistStorage* This,IStorage *pStg) {
10598     return This->lpVtbl->Load(This,pStg);
10599 }
10600 static FORCEINLINE HRESULT IPersistStorage_Save(IPersistStorage* This,IStorage *pStgSave,WINBOOL fSameAsLoad) {
10601     return This->lpVtbl->Save(This,pStgSave,fSameAsLoad);
10602 }
10603 static FORCEINLINE HRESULT IPersistStorage_SaveCompleted(IPersistStorage* This,IStorage *pStgNew) {
10604     return This->lpVtbl->SaveCompleted(This,pStgNew);
10605 }
10606 static FORCEINLINE HRESULT IPersistStorage_HandsOffStorage(IPersistStorage* This) {
10607     return This->lpVtbl->HandsOffStorage(This);
10608 }
10609 #endif
10610 #endif
10611 
10612 #endif
10613 
10614 HRESULT STDMETHODCALLTYPE IPersistStorage_IsDirty_Proxy(
10615     IPersistStorage* This);
10616 void __RPC_STUB IPersistStorage_IsDirty_Stub(
10617     IRpcStubBuffer* This,
10618     IRpcChannelBuffer* pRpcChannelBuffer,
10619     PRPC_MESSAGE pRpcMessage,
10620     DWORD* pdwStubPhase);
10621 HRESULT STDMETHODCALLTYPE IPersistStorage_InitNew_Proxy(
10622     IPersistStorage* This,
10623     IStorage *pStg);
10624 void __RPC_STUB IPersistStorage_InitNew_Stub(
10625     IRpcStubBuffer* This,
10626     IRpcChannelBuffer* pRpcChannelBuffer,
10627     PRPC_MESSAGE pRpcMessage,
10628     DWORD* pdwStubPhase);
10629 HRESULT STDMETHODCALLTYPE IPersistStorage_Load_Proxy(
10630     IPersistStorage* This,
10631     IStorage *pStg);
10632 void __RPC_STUB IPersistStorage_Load_Stub(
10633     IRpcStubBuffer* This,
10634     IRpcChannelBuffer* pRpcChannelBuffer,
10635     PRPC_MESSAGE pRpcMessage,
10636     DWORD* pdwStubPhase);
10637 HRESULT STDMETHODCALLTYPE IPersistStorage_Save_Proxy(
10638     IPersistStorage* This,
10639     IStorage *pStgSave,
10640     WINBOOL fSameAsLoad);
10641 void __RPC_STUB IPersistStorage_Save_Stub(
10642     IRpcStubBuffer* This,
10643     IRpcChannelBuffer* pRpcChannelBuffer,
10644     PRPC_MESSAGE pRpcMessage,
10645     DWORD* pdwStubPhase);
10646 HRESULT STDMETHODCALLTYPE IPersistStorage_SaveCompleted_Proxy(
10647     IPersistStorage* This,
10648     IStorage *pStgNew);
10649 void __RPC_STUB IPersistStorage_SaveCompleted_Stub(
10650     IRpcStubBuffer* This,
10651     IRpcChannelBuffer* pRpcChannelBuffer,
10652     PRPC_MESSAGE pRpcMessage,
10653     DWORD* pdwStubPhase);
10654 HRESULT STDMETHODCALLTYPE IPersistStorage_HandsOffStorage_Proxy(
10655     IPersistStorage* This);
10656 void __RPC_STUB IPersistStorage_HandsOffStorage_Stub(
10657     IRpcStubBuffer* This,
10658     IRpcChannelBuffer* pRpcChannelBuffer,
10659     PRPC_MESSAGE pRpcMessage,
10660     DWORD* pdwStubPhase);
10661 
10662 #endif  /* __IPersistStorage_INTERFACE_DEFINED__ */
10663 
10664 #endif
10665 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
10666 /*****************************************************************************
10667  * ILockBytes interface
10668  */
10669 #ifndef __ILockBytes_INTERFACE_DEFINED__
10670 #define __ILockBytes_INTERFACE_DEFINED__
10671 
10672 typedef ILockBytes *LPLOCKBYTES;
10673 DEFINE_GUID(IID_ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10674 #if defined(__cplusplus) && !defined(CINTERFACE)
10675 MIDL_INTERFACE("0000000a-0000-0000-c000-000000000046")
10676 ILockBytes : public IUnknown
10677 {
10678     virtual HRESULT STDMETHODCALLTYPE ReadAt(
10679         ULARGE_INTEGER ulOffset,
10680         void *pv,
10681         ULONG cb,
10682         ULONG *pcbRead) = 0;
10683 
10684     virtual HRESULT STDMETHODCALLTYPE WriteAt(
10685         ULARGE_INTEGER ulOffset,
10686         const void *pv,
10687         ULONG cb,
10688         ULONG *pcbWritten) = 0;
10689 
10690     virtual HRESULT STDMETHODCALLTYPE Flush(
10691         ) = 0;
10692 
10693     virtual HRESULT STDMETHODCALLTYPE SetSize(
10694         ULARGE_INTEGER cb) = 0;
10695 
10696     virtual HRESULT STDMETHODCALLTYPE LockRegion(
10697         ULARGE_INTEGER libOffset,
10698         ULARGE_INTEGER cb,
10699         DWORD dwLockType) = 0;
10700 
10701     virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
10702         ULARGE_INTEGER libOffset,
10703         ULARGE_INTEGER cb,
10704         DWORD dwLockType) = 0;
10705 
10706     virtual HRESULT STDMETHODCALLTYPE Stat(
10707         STATSTG *pstatstg,
10708         DWORD grfStatFlag) = 0;
10709 
10710 };
10711 #ifdef __CRT_UUID_DECL
10712 __CRT_UUID_DECL(ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
10713 #endif
10714 #else
10715 typedef struct ILockBytesVtbl {
10716     BEGIN_INTERFACE
10717 
10718     /*** IUnknown methods ***/
10719     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10720         ILockBytes* This,
10721         REFIID riid,
10722         void **ppvObject);
10723 
10724     ULONG (STDMETHODCALLTYPE *AddRef)(
10725         ILockBytes* This);
10726 
10727     ULONG (STDMETHODCALLTYPE *Release)(
10728         ILockBytes* This);
10729 
10730     /*** ILockBytes methods ***/
10731     HRESULT (STDMETHODCALLTYPE *ReadAt)(
10732         ILockBytes* This,
10733         ULARGE_INTEGER ulOffset,
10734         void *pv,
10735         ULONG cb,
10736         ULONG *pcbRead);
10737 
10738     HRESULT (STDMETHODCALLTYPE *WriteAt)(
10739         ILockBytes* This,
10740         ULARGE_INTEGER ulOffset,
10741         const void *pv,
10742         ULONG cb,
10743         ULONG *pcbWritten);
10744 
10745     HRESULT (STDMETHODCALLTYPE *Flush)(
10746         ILockBytes* This);
10747 
10748     HRESULT (STDMETHODCALLTYPE *SetSize)(
10749         ILockBytes* This,
10750         ULARGE_INTEGER cb);
10751 
10752     HRESULT (STDMETHODCALLTYPE *LockRegion)(
10753         ILockBytes* This,
10754         ULARGE_INTEGER libOffset,
10755         ULARGE_INTEGER cb,
10756         DWORD dwLockType);
10757 
10758     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
10759         ILockBytes* This,
10760         ULARGE_INTEGER libOffset,
10761         ULARGE_INTEGER cb,
10762         DWORD dwLockType);
10763 
10764     HRESULT (STDMETHODCALLTYPE *Stat)(
10765         ILockBytes* This,
10766         STATSTG *pstatstg,
10767         DWORD grfStatFlag);
10768 
10769     END_INTERFACE
10770 } ILockBytesVtbl;
10771 interface ILockBytes {
10772     CONST_VTBL ILockBytesVtbl* lpVtbl;
10773 };
10774 
10775 #ifdef COBJMACROS
10776 #ifndef WIDL_C_INLINE_WRAPPERS
10777 /*** IUnknown methods ***/
10778 #define ILockBytes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10779 #define ILockBytes_AddRef(This) (This)->lpVtbl->AddRef(This)
10780 #define ILockBytes_Release(This) (This)->lpVtbl->Release(This)
10781 /*** ILockBytes methods ***/
10782 #define ILockBytes_ReadAt(This,ulOffset,pv,cb,pcbRead) (This)->lpVtbl->ReadAt(This,ulOffset,pv,cb,pcbRead)
10783 #define ILockBytes_WriteAt(This,ulOffset,pv,cb,pcbWritten) (This)->lpVtbl->WriteAt(This,ulOffset,pv,cb,pcbWritten)
10784 #define ILockBytes_Flush(This) (This)->lpVtbl->Flush(This)
10785 #define ILockBytes_SetSize(This,cb) (This)->lpVtbl->SetSize(This,cb)
10786 #define ILockBytes_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
10787 #define ILockBytes_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
10788 #define ILockBytes_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
10789 #else
10790 /*** IUnknown methods ***/
10791 static FORCEINLINE HRESULT ILockBytes_QueryInterface(ILockBytes* This,REFIID riid,void **ppvObject) {
10792     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10793 }
10794 static FORCEINLINE ULONG ILockBytes_AddRef(ILockBytes* This) {
10795     return This->lpVtbl->AddRef(This);
10796 }
10797 static FORCEINLINE ULONG ILockBytes_Release(ILockBytes* This) {
10798     return This->lpVtbl->Release(This);
10799 }
10800 /*** ILockBytes methods ***/
10801 static FORCEINLINE HRESULT ILockBytes_ReadAt(ILockBytes* This,ULARGE_INTEGER ulOffset,void *pv,ULONG cb,ULONG *pcbRead) {
10802     return This->lpVtbl->ReadAt(This,ulOffset,pv,cb,pcbRead);
10803 }
10804 static FORCEINLINE HRESULT ILockBytes_WriteAt(ILockBytes* This,ULARGE_INTEGER ulOffset,const void *pv,ULONG cb,ULONG *pcbWritten) {
10805     return This->lpVtbl->WriteAt(This,ulOffset,pv,cb,pcbWritten);
10806 }
10807 static FORCEINLINE HRESULT ILockBytes_Flush(ILockBytes* This) {
10808     return This->lpVtbl->Flush(This);
10809 }
10810 static FORCEINLINE HRESULT ILockBytes_SetSize(ILockBytes* This,ULARGE_INTEGER cb) {
10811     return This->lpVtbl->SetSize(This,cb);
10812 }
10813 static FORCEINLINE HRESULT ILockBytes_LockRegion(ILockBytes* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
10814     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
10815 }
10816 static FORCEINLINE HRESULT ILockBytes_UnlockRegion(ILockBytes* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
10817     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
10818 }
10819 static FORCEINLINE HRESULT ILockBytes_Stat(ILockBytes* This,STATSTG *pstatstg,DWORD grfStatFlag) {
10820     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
10821 }
10822 #endif
10823 #endif
10824 
10825 #endif
10826 
10827 HRESULT __stdcall ILockBytes_RemoteReadAt_Proxy(
10828     ILockBytes* This,
10829     ULARGE_INTEGER ulOffset,
10830     byte *pv,
10831     ULONG cb,
10832     ULONG *pcbRead);
10833 void __RPC_STUB ILockBytes_RemoteReadAt_Stub(
10834     IRpcStubBuffer* This,
10835     IRpcChannelBuffer* pRpcChannelBuffer,
10836     PRPC_MESSAGE pRpcMessage,
10837     DWORD* pdwStubPhase);
10838 HRESULT STDMETHODCALLTYPE ILockBytes_RemoteWriteAt_Proxy(
10839     ILockBytes* This,
10840     ULARGE_INTEGER ulOffset,
10841     const byte *pv,
10842     ULONG cb,
10843     ULONG *pcbWritten);
10844 void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
10845     IRpcStubBuffer* This,
10846     IRpcChannelBuffer* pRpcChannelBuffer,
10847     PRPC_MESSAGE pRpcMessage,
10848     DWORD* pdwStubPhase);
10849 HRESULT STDMETHODCALLTYPE ILockBytes_Flush_Proxy(
10850     ILockBytes* This);
10851 void __RPC_STUB ILockBytes_Flush_Stub(
10852     IRpcStubBuffer* This,
10853     IRpcChannelBuffer* pRpcChannelBuffer,
10854     PRPC_MESSAGE pRpcMessage,
10855     DWORD* pdwStubPhase);
10856 HRESULT STDMETHODCALLTYPE ILockBytes_SetSize_Proxy(
10857     ILockBytes* This,
10858     ULARGE_INTEGER cb);
10859 void __RPC_STUB ILockBytes_SetSize_Stub(
10860     IRpcStubBuffer* This,
10861     IRpcChannelBuffer* pRpcChannelBuffer,
10862     PRPC_MESSAGE pRpcMessage,
10863     DWORD* pdwStubPhase);
10864 HRESULT STDMETHODCALLTYPE ILockBytes_LockRegion_Proxy(
10865     ILockBytes* This,
10866     ULARGE_INTEGER libOffset,
10867     ULARGE_INTEGER cb,
10868     DWORD dwLockType);
10869 void __RPC_STUB ILockBytes_LockRegion_Stub(
10870     IRpcStubBuffer* This,
10871     IRpcChannelBuffer* pRpcChannelBuffer,
10872     PRPC_MESSAGE pRpcMessage,
10873     DWORD* pdwStubPhase);
10874 HRESULT STDMETHODCALLTYPE ILockBytes_UnlockRegion_Proxy(
10875     ILockBytes* This,
10876     ULARGE_INTEGER libOffset,
10877     ULARGE_INTEGER cb,
10878     DWORD dwLockType);
10879 void __RPC_STUB ILockBytes_UnlockRegion_Stub(
10880     IRpcStubBuffer* This,
10881     IRpcChannelBuffer* pRpcChannelBuffer,
10882     PRPC_MESSAGE pRpcMessage,
10883     DWORD* pdwStubPhase);
10884 HRESULT STDMETHODCALLTYPE ILockBytes_Stat_Proxy(
10885     ILockBytes* This,
10886     STATSTG *pstatstg,
10887     DWORD grfStatFlag);
10888 void __RPC_STUB ILockBytes_Stat_Stub(
10889     IRpcStubBuffer* This,
10890     IRpcChannelBuffer* pRpcChannelBuffer,
10891     PRPC_MESSAGE pRpcMessage,
10892     DWORD* pdwStubPhase);
10893 HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
10894     ILockBytes* This,
10895     ULARGE_INTEGER ulOffset,
10896     void *pv,
10897     ULONG cb,
10898     ULONG *pcbRead);
10899 HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
10900     ILockBytes* This,
10901     ULARGE_INTEGER ulOffset,
10902     byte *pv,
10903     ULONG cb,
10904     ULONG *pcbRead);
10905 HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
10906     ILockBytes* This,
10907     ULARGE_INTEGER ulOffset,
10908     const void *pv,
10909     ULONG cb,
10910     ULONG *pcbWritten);
10911 HRESULT __RPC_STUB ILockBytes_WriteAt_Stub(
10912     ILockBytes* This,
10913     ULARGE_INTEGER ulOffset,
10914     const byte *pv,
10915     ULONG cb,
10916     ULONG *pcbWritten);
10917 
10918 #endif  /* __ILockBytes_INTERFACE_DEFINED__ */
10919 
10920 /*****************************************************************************
10921  * IEnumFORMATETC interface
10922  */
10923 #ifndef __IEnumFORMATETC_INTERFACE_DEFINED__
10924 #define __IEnumFORMATETC_INTERFACE_DEFINED__
10925 
10926 typedef IEnumFORMATETC *LPENUMFORMATETC;
10927 typedef struct tagDVTARGETDEVICE {
10928     DWORD tdSize;
10929     WORD tdDriverNameOffset;
10930     WORD tdDeviceNameOffset;
10931     WORD tdPortNameOffset;
10932     WORD tdExtDevmodeOffset;
10933     BYTE tdData[1];
10934 } DVTARGETDEVICE;
10935 typedef CLIPFORMAT *LPCLIPFORMAT;
10936 typedef struct tagFORMATETC {
10937     CLIPFORMAT cfFormat;
10938     DVTARGETDEVICE *ptd;
10939     DWORD dwAspect;
10940     LONG lindex;
10941     DWORD tymed;
10942 } FORMATETC;
10943 typedef struct tagFORMATETC *LPFORMATETC;
10944 DEFINE_GUID(IID_IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10945 #if defined(__cplusplus) && !defined(CINTERFACE)
10946 MIDL_INTERFACE("00000103-0000-0000-c000-000000000046")
10947 IEnumFORMATETC : public IUnknown
10948 {
10949     virtual HRESULT STDMETHODCALLTYPE Next(
10950         ULONG celt,
10951         FORMATETC *rgelt,
10952         ULONG *pceltFetched) = 0;
10953 
10954     virtual HRESULT STDMETHODCALLTYPE Skip(
10955         ULONG celt) = 0;
10956 
10957     virtual HRESULT STDMETHODCALLTYPE Reset(
10958         ) = 0;
10959 
10960     virtual HRESULT STDMETHODCALLTYPE Clone(
10961         IEnumFORMATETC **ppenum) = 0;
10962 
10963 };
10964 #ifdef __CRT_UUID_DECL
10965 __CRT_UUID_DECL(IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
10966 #endif
10967 #else
10968 typedef struct IEnumFORMATETCVtbl {
10969     BEGIN_INTERFACE
10970 
10971     /*** IUnknown methods ***/
10972     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10973         IEnumFORMATETC* This,
10974         REFIID riid,
10975         void **ppvObject);
10976 
10977     ULONG (STDMETHODCALLTYPE *AddRef)(
10978         IEnumFORMATETC* This);
10979 
10980     ULONG (STDMETHODCALLTYPE *Release)(
10981         IEnumFORMATETC* This);
10982 
10983     /*** IEnumFORMATETC methods ***/
10984     HRESULT (STDMETHODCALLTYPE *Next)(
10985         IEnumFORMATETC* This,
10986         ULONG celt,
10987         FORMATETC *rgelt,
10988         ULONG *pceltFetched);
10989 
10990     HRESULT (STDMETHODCALLTYPE *Skip)(
10991         IEnumFORMATETC* This,
10992         ULONG celt);
10993 
10994     HRESULT (STDMETHODCALLTYPE *Reset)(
10995         IEnumFORMATETC* This);
10996 
10997     HRESULT (STDMETHODCALLTYPE *Clone)(
10998         IEnumFORMATETC* This,
10999         IEnumFORMATETC **ppenum);
11000 
11001     END_INTERFACE
11002 } IEnumFORMATETCVtbl;
11003 interface IEnumFORMATETC {
11004     CONST_VTBL IEnumFORMATETCVtbl* lpVtbl;
11005 };
11006 
11007 #ifdef COBJMACROS
11008 #ifndef WIDL_C_INLINE_WRAPPERS
11009 /*** IUnknown methods ***/
11010 #define IEnumFORMATETC_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11011 #define IEnumFORMATETC_AddRef(This) (This)->lpVtbl->AddRef(This)
11012 #define IEnumFORMATETC_Release(This) (This)->lpVtbl->Release(This)
11013 /*** IEnumFORMATETC methods ***/
11014 #define IEnumFORMATETC_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
11015 #define IEnumFORMATETC_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
11016 #define IEnumFORMATETC_Reset(This) (This)->lpVtbl->Reset(This)
11017 #define IEnumFORMATETC_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
11018 #else
11019 /*** IUnknown methods ***/
11020 static FORCEINLINE HRESULT IEnumFORMATETC_QueryInterface(IEnumFORMATETC* This,REFIID riid,void **ppvObject) {
11021     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11022 }
11023 static FORCEINLINE ULONG IEnumFORMATETC_AddRef(IEnumFORMATETC* This) {
11024     return This->lpVtbl->AddRef(This);
11025 }
11026 static FORCEINLINE ULONG IEnumFORMATETC_Release(IEnumFORMATETC* This) {
11027     return This->lpVtbl->Release(This);
11028 }
11029 /*** IEnumFORMATETC methods ***/
11030 static FORCEINLINE HRESULT IEnumFORMATETC_Next(IEnumFORMATETC* This,ULONG celt,FORMATETC *rgelt,ULONG *pceltFetched) {
11031     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
11032 }
11033 static FORCEINLINE HRESULT IEnumFORMATETC_Skip(IEnumFORMATETC* This,ULONG celt) {
11034     return This->lpVtbl->Skip(This,celt);
11035 }
11036 static FORCEINLINE HRESULT IEnumFORMATETC_Reset(IEnumFORMATETC* This) {
11037     return This->lpVtbl->Reset(This);
11038 }
11039 static FORCEINLINE HRESULT IEnumFORMATETC_Clone(IEnumFORMATETC* This,IEnumFORMATETC **ppenum) {
11040     return This->lpVtbl->Clone(This,ppenum);
11041 }
11042 #endif
11043 #endif
11044 
11045 #endif
11046 
11047 HRESULT STDMETHODCALLTYPE IEnumFORMATETC_RemoteNext_Proxy(
11048     IEnumFORMATETC* This,
11049     ULONG celt,
11050     FORMATETC *rgelt,
11051     ULONG *pceltFetched);
11052 void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
11053     IRpcStubBuffer* This,
11054     IRpcChannelBuffer* pRpcChannelBuffer,
11055     PRPC_MESSAGE pRpcMessage,
11056     DWORD* pdwStubPhase);
11057 HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Skip_Proxy(
11058     IEnumFORMATETC* This,
11059     ULONG celt);
11060 void __RPC_STUB IEnumFORMATETC_Skip_Stub(
11061     IRpcStubBuffer* This,
11062     IRpcChannelBuffer* pRpcChannelBuffer,
11063     PRPC_MESSAGE pRpcMessage,
11064     DWORD* pdwStubPhase);
11065 HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Reset_Proxy(
11066     IEnumFORMATETC* This);
11067 void __RPC_STUB IEnumFORMATETC_Reset_Stub(
11068     IRpcStubBuffer* This,
11069     IRpcChannelBuffer* pRpcChannelBuffer,
11070     PRPC_MESSAGE pRpcMessage,
11071     DWORD* pdwStubPhase);
11072 HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Clone_Proxy(
11073     IEnumFORMATETC* This,
11074     IEnumFORMATETC **ppenum);
11075 void __RPC_STUB IEnumFORMATETC_Clone_Stub(
11076     IRpcStubBuffer* This,
11077     IRpcChannelBuffer* pRpcChannelBuffer,
11078     PRPC_MESSAGE pRpcMessage,
11079     DWORD* pdwStubPhase);
11080 HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
11081     IEnumFORMATETC* This,
11082     ULONG celt,
11083     FORMATETC *rgelt,
11084     ULONG *pceltFetched);
11085 HRESULT __RPC_STUB IEnumFORMATETC_Next_Stub(
11086     IEnumFORMATETC* This,
11087     ULONG celt,
11088     FORMATETC *rgelt,
11089     ULONG *pceltFetched);
11090 
11091 #endif  /* __IEnumFORMATETC_INTERFACE_DEFINED__ */
11092 
11093 /*****************************************************************************
11094  * IEnumSTATDATA interface
11095  */
11096 #ifndef __IEnumSTATDATA_INTERFACE_DEFINED__
11097 #define __IEnumSTATDATA_INTERFACE_DEFINED__
11098 
11099 typedef IEnumSTATDATA *LPENUMSTATDATA;
11100 typedef enum tagADVF {
11101     ADVF_NODATA = 1,
11102     ADVF_PRIMEFIRST = 2,
11103     ADVF_ONLYONCE = 4,
11104     ADVF_DATAONSTOP = 64,
11105     ADVFCACHE_NOHANDLER = 8,
11106     ADVFCACHE_FORCEBUILTIN = 16,
11107     ADVFCACHE_ONSAVE = 32
11108 } ADVF;
11109 typedef struct tagSTATDATA {
11110     FORMATETC formatetc;
11111     DWORD advf;
11112     IAdviseSink *pAdvSink;
11113     DWORD dwConnection;
11114 } STATDATA;
11115 typedef STATDATA *LPSTATDATA;
11116 DEFINE_GUID(IID_IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
11117 #if defined(__cplusplus) && !defined(CINTERFACE)
11118 MIDL_INTERFACE("00000105-0000-0000-c000-000000000046")
11119 IEnumSTATDATA : public IUnknown
11120 {
11121     virtual HRESULT STDMETHODCALLTYPE Next(
11122         ULONG celt,
11123         STATDATA *rgelt,
11124         ULONG *pceltFetched) = 0;
11125 
11126     virtual HRESULT STDMETHODCALLTYPE Skip(
11127         ULONG celt) = 0;
11128 
11129     virtual HRESULT STDMETHODCALLTYPE Reset(
11130         ) = 0;
11131 
11132     virtual HRESULT STDMETHODCALLTYPE Clone(
11133         IEnumSTATDATA **ppenum) = 0;
11134 
11135 };
11136 #ifdef __CRT_UUID_DECL
11137 __CRT_UUID_DECL(IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
11138 #endif
11139 #else
11140 typedef struct IEnumSTATDATAVtbl {
11141     BEGIN_INTERFACE
11142 
11143     /*** IUnknown methods ***/
11144     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11145         IEnumSTATDATA* This,
11146         REFIID riid,
11147         void **ppvObject);
11148 
11149     ULONG (STDMETHODCALLTYPE *AddRef)(
11150         IEnumSTATDATA* This);
11151 
11152     ULONG (STDMETHODCALLTYPE *Release)(
11153         IEnumSTATDATA* This);
11154 
11155     /*** IEnumSTATDATA methods ***/
11156     HRESULT (STDMETHODCALLTYPE *Next)(
11157         IEnumSTATDATA* This,
11158         ULONG celt,
11159         STATDATA *rgelt,
11160         ULONG *pceltFetched);
11161 
11162     HRESULT (STDMETHODCALLTYPE *Skip)(
11163         IEnumSTATDATA* This,
11164         ULONG celt);
11165 
11166     HRESULT (STDMETHODCALLTYPE *Reset)(
11167         IEnumSTATDATA* This);
11168 
11169     HRESULT (STDMETHODCALLTYPE *Clone)(
11170         IEnumSTATDATA* This,
11171         IEnumSTATDATA **ppenum);
11172 
11173     END_INTERFACE
11174 } IEnumSTATDATAVtbl;
11175 interface IEnumSTATDATA {
11176     CONST_VTBL IEnumSTATDATAVtbl* lpVtbl;
11177 };
11178 
11179 #ifdef COBJMACROS
11180 #ifndef WIDL_C_INLINE_WRAPPERS
11181 /*** IUnknown methods ***/
11182 #define IEnumSTATDATA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11183 #define IEnumSTATDATA_AddRef(This) (This)->lpVtbl->AddRef(This)
11184 #define IEnumSTATDATA_Release(This) (This)->lpVtbl->Release(This)
11185 /*** IEnumSTATDATA methods ***/
11186 #define IEnumSTATDATA_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
11187 #define IEnumSTATDATA_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
11188 #define IEnumSTATDATA_Reset(This) (This)->lpVtbl->Reset(This)
11189 #define IEnumSTATDATA_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
11190 #else
11191 /*** IUnknown methods ***/
11192 static FORCEINLINE HRESULT IEnumSTATDATA_QueryInterface(IEnumSTATDATA* This,REFIID riid,void **ppvObject) {
11193     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11194 }
11195 static FORCEINLINE ULONG IEnumSTATDATA_AddRef(IEnumSTATDATA* This) {
11196     return This->lpVtbl->AddRef(This);
11197 }
11198 static FORCEINLINE ULONG IEnumSTATDATA_Release(IEnumSTATDATA* This) {
11199     return This->lpVtbl->Release(This);
11200 }
11201 /*** IEnumSTATDATA methods ***/
11202 static FORCEINLINE HRESULT IEnumSTATDATA_Next(IEnumSTATDATA* This,ULONG celt,STATDATA *rgelt,ULONG *pceltFetched) {
11203     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
11204 }
11205 static FORCEINLINE HRESULT IEnumSTATDATA_Skip(IEnumSTATDATA* This,ULONG celt) {
11206     return This->lpVtbl->Skip(This,celt);
11207 }
11208 static FORCEINLINE HRESULT IEnumSTATDATA_Reset(IEnumSTATDATA* This) {
11209     return This->lpVtbl->Reset(This);
11210 }
11211 static FORCEINLINE HRESULT IEnumSTATDATA_Clone(IEnumSTATDATA* This,IEnumSTATDATA **ppenum) {
11212     return This->lpVtbl->Clone(This,ppenum);
11213 }
11214 #endif
11215 #endif
11216 
11217 #endif
11218 
11219 HRESULT STDMETHODCALLTYPE IEnumSTATDATA_RemoteNext_Proxy(
11220     IEnumSTATDATA* This,
11221     ULONG celt,
11222     STATDATA *rgelt,
11223     ULONG *pceltFetched);
11224 void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
11225     IRpcStubBuffer* This,
11226     IRpcChannelBuffer* pRpcChannelBuffer,
11227     PRPC_MESSAGE pRpcMessage,
11228     DWORD* pdwStubPhase);
11229 HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Skip_Proxy(
11230     IEnumSTATDATA* This,
11231     ULONG celt);
11232 void __RPC_STUB IEnumSTATDATA_Skip_Stub(
11233     IRpcStubBuffer* This,
11234     IRpcChannelBuffer* pRpcChannelBuffer,
11235     PRPC_MESSAGE pRpcMessage,
11236     DWORD* pdwStubPhase);
11237 HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Reset_Proxy(
11238     IEnumSTATDATA* This);
11239 void __RPC_STUB IEnumSTATDATA_Reset_Stub(
11240     IRpcStubBuffer* This,
11241     IRpcChannelBuffer* pRpcChannelBuffer,
11242     PRPC_MESSAGE pRpcMessage,
11243     DWORD* pdwStubPhase);
11244 HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Clone_Proxy(
11245     IEnumSTATDATA* This,
11246     IEnumSTATDATA **ppenum);
11247 void __RPC_STUB IEnumSTATDATA_Clone_Stub(
11248     IRpcStubBuffer* This,
11249     IRpcChannelBuffer* pRpcChannelBuffer,
11250     PRPC_MESSAGE pRpcMessage,
11251     DWORD* pdwStubPhase);
11252 HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
11253     IEnumSTATDATA* This,
11254     ULONG celt,
11255     STATDATA *rgelt,
11256     ULONG *pceltFetched);
11257 HRESULT __RPC_STUB IEnumSTATDATA_Next_Stub(
11258     IEnumSTATDATA* This,
11259     ULONG celt,
11260     STATDATA *rgelt,
11261     ULONG *pceltFetched);
11262 
11263 #endif  /* __IEnumSTATDATA_INTERFACE_DEFINED__ */
11264 
11265 /*****************************************************************************
11266  * IRootStorage interface
11267  */
11268 #ifndef __IRootStorage_INTERFACE_DEFINED__
11269 #define __IRootStorage_INTERFACE_DEFINED__
11270 
11271 typedef IRootStorage *LPROOTSTORAGE;
11272 DEFINE_GUID(IID_IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
11273 #if defined(__cplusplus) && !defined(CINTERFACE)
11274 MIDL_INTERFACE("00000012-0000-0000-c000-000000000046")
11275 IRootStorage : public IUnknown
11276 {
11277     virtual HRESULT STDMETHODCALLTYPE SwitchToFile(
11278         LPOLESTR pszFile) = 0;
11279 
11280 };
11281 #ifdef __CRT_UUID_DECL
11282 __CRT_UUID_DECL(IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
11283 #endif
11284 #else
11285 typedef struct IRootStorageVtbl {
11286     BEGIN_INTERFACE
11287 
11288     /*** IUnknown methods ***/
11289     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11290         IRootStorage* This,
11291         REFIID riid,
11292         void **ppvObject);
11293 
11294     ULONG (STDMETHODCALLTYPE *AddRef)(
11295         IRootStorage* This);
11296 
11297     ULONG (STDMETHODCALLTYPE *Release)(
11298         IRootStorage* This);
11299 
11300     /*** IRootStorage methods ***/
11301     HRESULT (STDMETHODCALLTYPE *SwitchToFile)(
11302         IRootStorage* This,
11303         LPOLESTR pszFile);
11304 
11305     END_INTERFACE
11306 } IRootStorageVtbl;
11307 interface IRootStorage {
11308     CONST_VTBL IRootStorageVtbl* lpVtbl;
11309 };
11310 
11311 #ifdef COBJMACROS
11312 #ifndef WIDL_C_INLINE_WRAPPERS
11313 /*** IUnknown methods ***/
11314 #define IRootStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11315 #define IRootStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
11316 #define IRootStorage_Release(This) (This)->lpVtbl->Release(This)
11317 /*** IRootStorage methods ***/
11318 #define IRootStorage_SwitchToFile(This,pszFile) (This)->lpVtbl->SwitchToFile(This,pszFile)
11319 #else
11320 /*** IUnknown methods ***/
11321 static FORCEINLINE HRESULT IRootStorage_QueryInterface(IRootStorage* This,REFIID riid,void **ppvObject) {
11322     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11323 }
11324 static FORCEINLINE ULONG IRootStorage_AddRef(IRootStorage* This) {
11325     return This->lpVtbl->AddRef(This);
11326 }
11327 static FORCEINLINE ULONG IRootStorage_Release(IRootStorage* This) {
11328     return This->lpVtbl->Release(This);
11329 }
11330 /*** IRootStorage methods ***/
11331 static FORCEINLINE HRESULT IRootStorage_SwitchToFile(IRootStorage* This,LPOLESTR pszFile) {
11332     return This->lpVtbl->SwitchToFile(This,pszFile);
11333 }
11334 #endif
11335 #endif
11336 
11337 #endif
11338 
11339 HRESULT STDMETHODCALLTYPE IRootStorage_SwitchToFile_Proxy(
11340     IRootStorage* This,
11341     LPOLESTR pszFile);
11342 void __RPC_STUB IRootStorage_SwitchToFile_Stub(
11343     IRpcStubBuffer* This,
11344     IRpcChannelBuffer* pRpcChannelBuffer,
11345     PRPC_MESSAGE pRpcMessage,
11346     DWORD* pdwStubPhase);
11347 
11348 #endif  /* __IRootStorage_INTERFACE_DEFINED__ */
11349 
11350 /*****************************************************************************
11351  * IAdviseSink interface
11352  */
11353 #ifndef __IAdviseSink_INTERFACE_DEFINED__
11354 #define __IAdviseSink_INTERFACE_DEFINED__
11355 
11356 typedef IAdviseSink *LPADVISESINK;
11357 typedef enum tagTYMED {
11358     TYMED_HGLOBAL = 1,
11359     TYMED_FILE = 2,
11360     TYMED_ISTREAM = 4,
11361     TYMED_ISTORAGE = 8,
11362     TYMED_GDI = 16,
11363     TYMED_MFPICT = 32,
11364     TYMED_ENHMF = 64,
11365     TYMED_NULL = 0
11366 } TYMED;
11367 typedef struct tagRemSTGMEDIUM {
11368     DWORD tymed;
11369     DWORD dwHandleType;
11370     ULONG pData;
11371     ULONG pUnkForRelease;
11372     ULONG cbData;
11373     byte data[1];
11374 } RemSTGMEDIUM;
11375 #ifdef NONAMELESSUNION
11376 typedef struct tagSTGMEDIUM {
11377 DWORD tymed;
11378 union {
11379 HBITMAP hBitmap;
11380 HMETAFILEPICT hMetaFilePict;
11381 HENHMETAFILE hEnhMetaFile;
11382 HGLOBAL hGlobal;
11383 LPOLESTR lpszFileName;
11384 IStream *pstm;
11385 IStorage *pstg;
11386 } u;
11387 IUnknown *pUnkForRelease;
11388 }uSTGMEDIUM;
11389 #else
11390 typedef struct tagSTGMEDIUM {
11391     DWORD tymed;
11392     __C89_NAMELESS union {
11393         HBITMAP hBitmap;
11394         HMETAFILEPICT hMetaFilePict;
11395         HENHMETAFILE hEnhMetaFile;
11396         HGLOBAL hGlobal;
11397         LPOLESTR lpszFileName;
11398         IStream *pstm;
11399         IStorage *pstg;
11400     } DUMMYUNIONNAME;
11401     IUnknown *pUnkForRelease;
11402 } uSTGMEDIUM;
11403 #endif
11404 typedef struct _GDI_OBJECT {
11405     DWORD ObjectType;
11406     union {
11407         wireHBITMAP hBitmap;
11408         wireHPALETTE hPalette;
11409         wireHGLOBAL hGeneric;
11410     } u;
11411 } GDI_OBJECT;
11412 typedef struct _userSTGMEDIUM {
11413     __C89_NAMELESS struct _STGMEDIUM_UNION {
11414         DWORD tymed;
11415         union {
11416             wireHMETAFILEPICT hMetaFilePict;
11417             wireHENHMETAFILE hHEnhMetaFile;
11418             GDI_OBJECT *hGdiHandle;
11419             wireHGLOBAL hGlobal;
11420             LPOLESTR lpszFileName;
11421             BYTE_BLOB *pstm;
11422             BYTE_BLOB *pstg;
11423         } u;
11424     } DUMMYUNIONNAME;
11425     IUnknown *pUnkForRelease;
11426 } userSTGMEDIUM;
11427 typedef userSTGMEDIUM *wireSTGMEDIUM;
11428 typedef uSTGMEDIUM STGMEDIUM;
11429 typedef userSTGMEDIUM *wireASYNC_STGMEDIUM;
11430 typedef STGMEDIUM ASYNC_STGMEDIUM;
11431 typedef STGMEDIUM *LPSTGMEDIUM;
11432 typedef struct _userFLAG_STGMEDIUM {
11433     LONG ContextFlags;
11434     LONG fPassOwnership;
11435     userSTGMEDIUM Stgmed;
11436 } userFLAG_STGMEDIUM;
11437 typedef userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
11438 typedef struct _FLAG_STGMEDIUM {
11439     LONG ContextFlags;
11440     LONG fPassOwnership;
11441     STGMEDIUM Stgmed;
11442 } FLAG_STGMEDIUM;
11443 DEFINE_GUID(IID_IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
11444 #if defined(__cplusplus) && !defined(CINTERFACE)
11445 MIDL_INTERFACE("0000010f-0000-0000-c000-000000000046")
11446 IAdviseSink : public IUnknown
11447 {
11448     virtual void STDMETHODCALLTYPE OnDataChange(
11449         FORMATETC *pFormatetc,
11450         STGMEDIUM *pStgmed) = 0;
11451 
11452     virtual void STDMETHODCALLTYPE OnViewChange(
11453         DWORD dwAspect,
11454         LONG lindex) = 0;
11455 
11456     virtual void STDMETHODCALLTYPE OnRename(
11457         IMoniker *pmk) = 0;
11458 
11459     virtual void STDMETHODCALLTYPE OnSave(
11460         ) = 0;
11461 
11462     virtual void STDMETHODCALLTYPE OnClose(
11463         ) = 0;
11464 
11465 };
11466 #ifdef __CRT_UUID_DECL
11467 __CRT_UUID_DECL(IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
11468 #endif
11469 #else
11470 typedef struct IAdviseSinkVtbl {
11471     BEGIN_INTERFACE
11472 
11473     /*** IUnknown methods ***/
11474     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11475         IAdviseSink* This,
11476         REFIID riid,
11477         void **ppvObject);
11478 
11479     ULONG (STDMETHODCALLTYPE *AddRef)(
11480         IAdviseSink* This);
11481 
11482     ULONG (STDMETHODCALLTYPE *Release)(
11483         IAdviseSink* This);
11484 
11485     /*** IAdviseSink methods ***/
11486     void (STDMETHODCALLTYPE *OnDataChange)(
11487         IAdviseSink* This,
11488         FORMATETC *pFormatetc,
11489         STGMEDIUM *pStgmed);
11490 
11491     void (STDMETHODCALLTYPE *OnViewChange)(
11492         IAdviseSink* This,
11493         DWORD dwAspect,
11494         LONG lindex);
11495 
11496     void (STDMETHODCALLTYPE *OnRename)(
11497         IAdviseSink* This,
11498         IMoniker *pmk);
11499 
11500     void (STDMETHODCALLTYPE *OnSave)(
11501         IAdviseSink* This);
11502 
11503     void (STDMETHODCALLTYPE *OnClose)(
11504         IAdviseSink* This);
11505 
11506     END_INTERFACE
11507 } IAdviseSinkVtbl;
11508 interface IAdviseSink {
11509     CONST_VTBL IAdviseSinkVtbl* lpVtbl;
11510 };
11511 
11512 #ifdef COBJMACROS
11513 #ifndef WIDL_C_INLINE_WRAPPERS
11514 /*** IUnknown methods ***/
11515 #define IAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11516 #define IAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
11517 #define IAdviseSink_Release(This) (This)->lpVtbl->Release(This)
11518 /*** IAdviseSink methods ***/
11519 #define IAdviseSink_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->OnDataChange(This,pFormatetc,pStgmed)
11520 #define IAdviseSink_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->OnViewChange(This,dwAspect,lindex)
11521 #define IAdviseSink_OnRename(This,pmk) (This)->lpVtbl->OnRename(This,pmk)
11522 #define IAdviseSink_OnSave(This) (This)->lpVtbl->OnSave(This)
11523 #define IAdviseSink_OnClose(This) (This)->lpVtbl->OnClose(This)
11524 #else
11525 /*** IUnknown methods ***/
11526 static FORCEINLINE HRESULT IAdviseSink_QueryInterface(IAdviseSink* This,REFIID riid,void **ppvObject) {
11527     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11528 }
11529 static FORCEINLINE ULONG IAdviseSink_AddRef(IAdviseSink* This) {
11530     return This->lpVtbl->AddRef(This);
11531 }
11532 static FORCEINLINE ULONG IAdviseSink_Release(IAdviseSink* This) {
11533     return This->lpVtbl->Release(This);
11534 }
11535 /*** IAdviseSink methods ***/
11536 static FORCEINLINE void IAdviseSink_OnDataChange(IAdviseSink* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
11537     This->lpVtbl->OnDataChange(This,pFormatetc,pStgmed);
11538 }
11539 static FORCEINLINE void IAdviseSink_OnViewChange(IAdviseSink* This,DWORD dwAspect,LONG lindex) {
11540     This->lpVtbl->OnViewChange(This,dwAspect,lindex);
11541 }
11542 static FORCEINLINE void IAdviseSink_OnRename(IAdviseSink* This,IMoniker *pmk) {
11543     This->lpVtbl->OnRename(This,pmk);
11544 }
11545 static FORCEINLINE void IAdviseSink_OnSave(IAdviseSink* This) {
11546     This->lpVtbl->OnSave(This);
11547 }
11548 static FORCEINLINE void IAdviseSink_OnClose(IAdviseSink* This) {
11549     This->lpVtbl->OnClose(This);
11550 }
11551 #endif
11552 #endif
11553 
11554 #endif
11555 
11556 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnDataChange_Proxy(
11557     IAdviseSink* This,
11558     FORMATETC *pFormatetc,
11559     ASYNC_STGMEDIUM *pStgmed);
11560 void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub(
11561     IRpcStubBuffer* This,
11562     IRpcChannelBuffer* pRpcChannelBuffer,
11563     PRPC_MESSAGE pRpcMessage,
11564     DWORD* pdwStubPhase);
11565 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnViewChange_Proxy(
11566     IAdviseSink* This,
11567     DWORD dwAspect,
11568     LONG lindex);
11569 void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub(
11570     IRpcStubBuffer* This,
11571     IRpcChannelBuffer* pRpcChannelBuffer,
11572     PRPC_MESSAGE pRpcMessage,
11573     DWORD* pdwStubPhase);
11574 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnRename_Proxy(
11575     IAdviseSink* This,
11576     IMoniker *pmk);
11577 void __RPC_STUB IAdviseSink_RemoteOnRename_Stub(
11578     IRpcStubBuffer* This,
11579     IRpcChannelBuffer* pRpcChannelBuffer,
11580     PRPC_MESSAGE pRpcMessage,
11581     DWORD* pdwStubPhase);
11582 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnSave_Proxy(
11583     IAdviseSink* This);
11584 void __RPC_STUB IAdviseSink_RemoteOnSave_Stub(
11585     IRpcStubBuffer* This,
11586     IRpcChannelBuffer* pRpcChannelBuffer,
11587     PRPC_MESSAGE pRpcMessage,
11588     DWORD* pdwStubPhase);
11589 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnClose_Proxy(
11590     IAdviseSink* This);
11591 void __RPC_STUB IAdviseSink_RemoteOnClose_Stub(
11592     IRpcStubBuffer* This,
11593     IRpcChannelBuffer* pRpcChannelBuffer,
11594     PRPC_MESSAGE pRpcMessage,
11595     DWORD* pdwStubPhase);
11596 void CALLBACK IAdviseSink_OnDataChange_Proxy(
11597     IAdviseSink* This,
11598     FORMATETC *pFormatetc,
11599     STGMEDIUM *pStgmed);
11600 HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
11601     IAdviseSink* This,
11602     FORMATETC *pFormatetc,
11603     ASYNC_STGMEDIUM *pStgmed);
11604 void CALLBACK IAdviseSink_OnViewChange_Proxy(
11605     IAdviseSink* This,
11606     DWORD dwAspect,
11607     LONG lindex);
11608 HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
11609     IAdviseSink* This,
11610     DWORD dwAspect,
11611     LONG lindex);
11612 void CALLBACK IAdviseSink_OnRename_Proxy(
11613     IAdviseSink* This,
11614     IMoniker *pmk);
11615 HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
11616     IAdviseSink* This,
11617     IMoniker *pmk);
11618 void CALLBACK IAdviseSink_OnSave_Proxy(
11619     IAdviseSink* This);
11620 HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
11621     IAdviseSink* This);
11622 void CALLBACK IAdviseSink_OnClose_Proxy(
11623     IAdviseSink* This);
11624 HRESULT __RPC_STUB IAdviseSink_OnClose_Stub(
11625     IAdviseSink* This);
11626 
11627 #endif  /* __IAdviseSink_INTERFACE_DEFINED__ */
11628 
11629 /*****************************************************************************
11630  * AsyncIAdviseSink interface
11631  */
11632 #ifndef __AsyncIAdviseSink_INTERFACE_DEFINED__
11633 #define __AsyncIAdviseSink_INTERFACE_DEFINED__
11634 
11635 DEFINE_GUID(IID_AsyncIAdviseSink, 0x00000150, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
11636 #if defined(__cplusplus) && !defined(CINTERFACE)
11637 MIDL_INTERFACE("00000150-0000-0000-c000-000000000046")
11638 AsyncIAdviseSink : public IUnknown
11639 {
11640     virtual void STDMETHODCALLTYPE Begin_OnDataChange(
11641         FORMATETC *pFormatetc,
11642         STGMEDIUM *pStgmed) = 0;
11643 
11644     virtual void STDMETHODCALLTYPE Finish_OnDataChange(
11645         ) = 0;
11646 
11647     virtual void STDMETHODCALLTYPE Begin_OnViewChange(
11648         DWORD dwAspect,
11649         LONG lindex) = 0;
11650 
11651     virtual void STDMETHODCALLTYPE Finish_OnViewChange(
11652         ) = 0;
11653 
11654     virtual void STDMETHODCALLTYPE Begin_OnRename(
11655         IMoniker *pmk) = 0;
11656 
11657     virtual void STDMETHODCALLTYPE Finish_OnRename(
11658         ) = 0;
11659 
11660     virtual void STDMETHODCALLTYPE Begin_OnSave(
11661         ) = 0;
11662 
11663     virtual void STDMETHODCALLTYPE Finish_OnSave(
11664         ) = 0;
11665 
11666     virtual void STDMETHODCALLTYPE Begin_OnClose(
11667         ) = 0;
11668 
11669     virtual void STDMETHODCALLTYPE Finish_OnClose(
11670         ) = 0;
11671 
11672 };
11673 #ifdef __CRT_UUID_DECL
11674 __CRT_UUID_DECL(AsyncIAdviseSink, 0x00000150, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
11675 #endif
11676 #else
11677 typedef struct AsyncIAdviseSinkVtbl {
11678     BEGIN_INTERFACE
11679 
11680     /*** IUnknown methods ***/
11681     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11682         AsyncIAdviseSink* This,
11683         REFIID riid,
11684         void **ppvObject);
11685 
11686     ULONG (STDMETHODCALLTYPE *AddRef)(
11687         AsyncIAdviseSink* This);
11688 
11689     ULONG (STDMETHODCALLTYPE *Release)(
11690         AsyncIAdviseSink* This);
11691 
11692     /*** IAdviseSink methods ***/
11693     void (STDMETHODCALLTYPE *Begin_OnDataChange)(
11694         AsyncIAdviseSink* This,
11695         FORMATETC *pFormatetc,
11696         STGMEDIUM *pStgmed);
11697 
11698     void (STDMETHODCALLTYPE *Finish_OnDataChange)(
11699         AsyncIAdviseSink* This);
11700 
11701     void (STDMETHODCALLTYPE *Begin_OnViewChange)(
11702         AsyncIAdviseSink* This,
11703         DWORD dwAspect,
11704         LONG lindex);
11705 
11706     void (STDMETHODCALLTYPE *Finish_OnViewChange)(
11707         AsyncIAdviseSink* This);
11708 
11709     void (STDMETHODCALLTYPE *Begin_OnRename)(
11710         AsyncIAdviseSink* This,
11711         IMoniker *pmk);
11712 
11713     void (STDMETHODCALLTYPE *Finish_OnRename)(
11714         AsyncIAdviseSink* This);
11715 
11716     void (STDMETHODCALLTYPE *Begin_OnSave)(
11717         AsyncIAdviseSink* This);
11718 
11719     void (STDMETHODCALLTYPE *Finish_OnSave)(
11720         AsyncIAdviseSink* This);
11721 
11722     void (STDMETHODCALLTYPE *Begin_OnClose)(
11723         AsyncIAdviseSink* This);
11724 
11725     void (STDMETHODCALLTYPE *Finish_OnClose)(
11726         AsyncIAdviseSink* This);
11727 
11728     END_INTERFACE
11729 } AsyncIAdviseSinkVtbl;
11730 interface AsyncIAdviseSink {
11731     CONST_VTBL AsyncIAdviseSinkVtbl* lpVtbl;
11732 };
11733 
11734 #ifdef COBJMACROS
11735 #ifndef WIDL_C_INLINE_WRAPPERS
11736 /*** IUnknown methods ***/
11737 #define AsyncIAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11738 #define AsyncIAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
11739 #define AsyncIAdviseSink_Release(This) (This)->lpVtbl->Release(This)
11740 /*** IAdviseSink methods ***/
11741 #define AsyncIAdviseSink_Begin_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed)
11742 #define AsyncIAdviseSink_Finish_OnDataChange(This) (This)->lpVtbl->Finish_OnDataChange(This)
11743 #define AsyncIAdviseSink_Begin_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex)
11744 #define AsyncIAdviseSink_Finish_OnViewChange(This) (This)->lpVtbl->Finish_OnViewChange(This)
11745 #define AsyncIAdviseSink_Begin_OnRename(This,pmk) (This)->lpVtbl->Begin_OnRename(This,pmk)
11746 #define AsyncIAdviseSink_Finish_OnRename(This) (This)->lpVtbl->Finish_OnRename(This)
11747 #define AsyncIAdviseSink_Begin_OnSave(This) (This)->lpVtbl->Begin_OnSave(This)
11748 #define AsyncIAdviseSink_Finish_OnSave(This) (This)->lpVtbl->Finish_OnSave(This)
11749 #define AsyncIAdviseSink_Begin_OnClose(This) (This)->lpVtbl->Begin_OnClose(This)
11750 #define AsyncIAdviseSink_Finish_OnClose(This) (This)->lpVtbl->Finish_OnClose(This)
11751 #else
11752 /*** IUnknown methods ***/
11753 static FORCEINLINE HRESULT AsyncIAdviseSink_QueryInterface(AsyncIAdviseSink* This,REFIID riid,void **ppvObject) {
11754     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11755 }
11756 static FORCEINLINE ULONG AsyncIAdviseSink_AddRef(AsyncIAdviseSink* This) {
11757     return This->lpVtbl->AddRef(This);
11758 }
11759 static FORCEINLINE ULONG AsyncIAdviseSink_Release(AsyncIAdviseSink* This) {
11760     return This->lpVtbl->Release(This);
11761 }
11762 /*** IAdviseSink methods ***/
11763 static FORCEINLINE void Begin_AsyncIAdviseSink_OnDataChange(AsyncIAdviseSink* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
11764     This->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed);
11765 }
11766 static FORCEINLINE void Finish_AsyncIAdviseSink_OnDataChange(AsyncIAdviseSink* This) {
11767     This->lpVtbl->Finish_OnDataChange(This);
11768 }
11769 static FORCEINLINE void Begin_AsyncIAdviseSink_OnViewChange(AsyncIAdviseSink* This,DWORD dwAspect,LONG lindex) {
11770     This->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex);
11771 }
11772 static FORCEINLINE void Finish_AsyncIAdviseSink_OnViewChange(AsyncIAdviseSink* This) {
11773     This->lpVtbl->Finish_OnViewChange(This);
11774 }
11775 static FORCEINLINE void Begin_AsyncIAdviseSink_OnRename(AsyncIAdviseSink* This,IMoniker *pmk) {
11776     This->lpVtbl->Begin_OnRename(This,pmk);
11777 }
11778 static FORCEINLINE void Finish_AsyncIAdviseSink_OnRename(AsyncIAdviseSink* This) {
11779     This->lpVtbl->Finish_OnRename(This);
11780 }
11781 static FORCEINLINE void Begin_AsyncIAdviseSink_OnSave(AsyncIAdviseSink* This) {
11782     This->lpVtbl->Begin_OnSave(This);
11783 }
11784 static FORCEINLINE void Finish_AsyncIAdviseSink_OnSave(AsyncIAdviseSink* This) {
11785     This->lpVtbl->Finish_OnSave(This);
11786 }
11787 static FORCEINLINE void Begin_AsyncIAdviseSink_OnClose(AsyncIAdviseSink* This) {
11788     This->lpVtbl->Begin_OnClose(This);
11789 }
11790 static FORCEINLINE void Finish_AsyncIAdviseSink_OnClose(AsyncIAdviseSink* This) {
11791     This->lpVtbl->Finish_OnClose(This);
11792 }
11793 #endif
11794 #endif
11795 
11796 #endif
11797 
11798 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnDataChange_Proxy(
11799     IAdviseSink* This,
11800     FORMATETC *pFormatetc,
11801     ASYNC_STGMEDIUM *pStgmed);
11802 void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnDataChange_Stub(
11803     IRpcStubBuffer* This,
11804     IRpcChannelBuffer* pRpcChannelBuffer,
11805     PRPC_MESSAGE pRpcMessage,
11806     DWORD* pdwStubPhase);
11807 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnDataChange_Proxy(
11808     IAdviseSink* This,
11809     FORMATETC *pFormatetc,
11810     ASYNC_STGMEDIUM *pStgmed);
11811 void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnDataChange_Stub(
11812     IRpcStubBuffer* This,
11813     IRpcChannelBuffer* pRpcChannelBuffer,
11814     PRPC_MESSAGE pRpcMessage,
11815     DWORD* pdwStubPhase);
11816 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnViewChange_Proxy(
11817     IAdviseSink* This,
11818     DWORD dwAspect,
11819     LONG lindex);
11820 void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnViewChange_Stub(
11821     IRpcStubBuffer* This,
11822     IRpcChannelBuffer* pRpcChannelBuffer,
11823     PRPC_MESSAGE pRpcMessage,
11824     DWORD* pdwStubPhase);
11825 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnViewChange_Proxy(
11826     IAdviseSink* This,
11827     DWORD dwAspect,
11828     LONG lindex);
11829 void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnViewChange_Stub(
11830     IRpcStubBuffer* This,
11831     IRpcChannelBuffer* pRpcChannelBuffer,
11832     PRPC_MESSAGE pRpcMessage,
11833     DWORD* pdwStubPhase);
11834 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnRename_Proxy(
11835     IAdviseSink* This,
11836     IMoniker *pmk);
11837 void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnRename_Stub(
11838     IRpcStubBuffer* This,
11839     IRpcChannelBuffer* pRpcChannelBuffer,
11840     PRPC_MESSAGE pRpcMessage,
11841     DWORD* pdwStubPhase);
11842 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnRename_Proxy(
11843     IAdviseSink* This,
11844     IMoniker *pmk);
11845 void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnRename_Stub(
11846     IRpcStubBuffer* This,
11847     IRpcChannelBuffer* pRpcChannelBuffer,
11848     PRPC_MESSAGE pRpcMessage,
11849     DWORD* pdwStubPhase);
11850 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnSave_Proxy(
11851     IAdviseSink* This);
11852 void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnSave_Stub(
11853     IRpcStubBuffer* This,
11854     IRpcChannelBuffer* pRpcChannelBuffer,
11855     PRPC_MESSAGE pRpcMessage,
11856     DWORD* pdwStubPhase);
11857 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnSave_Proxy(
11858     IAdviseSink* This);
11859 void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnSave_Stub(
11860     IRpcStubBuffer* This,
11861     IRpcChannelBuffer* pRpcChannelBuffer,
11862     PRPC_MESSAGE pRpcMessage,
11863     DWORD* pdwStubPhase);
11864 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnClose_Proxy(
11865     IAdviseSink* This);
11866 void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnClose_Stub(
11867     IRpcStubBuffer* This,
11868     IRpcChannelBuffer* pRpcChannelBuffer,
11869     PRPC_MESSAGE pRpcMessage,
11870     DWORD* pdwStubPhase);
11871 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnClose_Proxy(
11872     IAdviseSink* This);
11873 void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnClose_Stub(
11874     IRpcStubBuffer* This,
11875     IRpcChannelBuffer* pRpcChannelBuffer,
11876     PRPC_MESSAGE pRpcMessage,
11877     DWORD* pdwStubPhase);
11878 void CALLBACK AsyncIAdviseSink_Begin_OnDataChange_Proxy(
11879     IAdviseSink* This,
11880     FORMATETC *pFormatetc,
11881     STGMEDIUM *pStgmed);
11882 HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnDataChange_Stub(
11883     IAdviseSink* This,
11884     FORMATETC *pFormatetc,
11885     ASYNC_STGMEDIUM *pStgmed);
11886 void CALLBACK AsyncIAdviseSink_Finish_OnDataChange_Proxy(
11887     IAdviseSink* This);
11888 HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnDataChange_Stub(
11889     IAdviseSink* This,
11890     FORMATETC *pFormatetc,
11891     ASYNC_STGMEDIUM *pStgmed);
11892 void CALLBACK AsyncIAdviseSink_Begin_OnViewChange_Proxy(
11893     IAdviseSink* This,
11894     DWORD dwAspect,
11895     LONG lindex);
11896 HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnViewChange_Stub(
11897     IAdviseSink* This,
11898     DWORD dwAspect,
11899     LONG lindex);
11900 void CALLBACK AsyncIAdviseSink_Finish_OnViewChange_Proxy(
11901     IAdviseSink* This);
11902 HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnViewChange_Stub(
11903     IAdviseSink* This,
11904     DWORD dwAspect,
11905     LONG lindex);
11906 void CALLBACK AsyncIAdviseSink_Begin_OnRename_Proxy(
11907     IAdviseSink* This,
11908     IMoniker *pmk);
11909 HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnRename_Stub(
11910     IAdviseSink* This,
11911     IMoniker *pmk);
11912 void CALLBACK AsyncIAdviseSink_Finish_OnRename_Proxy(
11913     IAdviseSink* This);
11914 HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnRename_Stub(
11915     IAdviseSink* This,
11916     IMoniker *pmk);
11917 void CALLBACK AsyncIAdviseSink_Begin_OnSave_Proxy(
11918     IAdviseSink* This);
11919 HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnSave_Stub(
11920     IAdviseSink* This);
11921 void CALLBACK AsyncIAdviseSink_Finish_OnSave_Proxy(
11922     IAdviseSink* This);
11923 HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnSave_Stub(
11924     IAdviseSink* This);
11925 void CALLBACK AsyncIAdviseSink_Begin_OnClose_Proxy(
11926     IAdviseSink* This);
11927 HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnClose_Stub(
11928     IAdviseSink* This);
11929 void CALLBACK AsyncIAdviseSink_Finish_OnClose_Proxy(
11930     IAdviseSink* This);
11931 HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnClose_Stub(
11932     IAdviseSink* This);
11933 
11934 #endif  /* __AsyncIAdviseSink_INTERFACE_DEFINED__ */
11935 
11936 #endif
11937 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
11938 /*****************************************************************************
11939  * IAdviseSink2 interface
11940  */
11941 #ifndef __IAdviseSink2_INTERFACE_DEFINED__
11942 #define __IAdviseSink2_INTERFACE_DEFINED__
11943 
11944 typedef IAdviseSink2 *LPADVISESINK2;
11945 DEFINE_GUID(IID_IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
11946 #if defined(__cplusplus) && !defined(CINTERFACE)
11947 MIDL_INTERFACE("00000125-0000-0000-c000-000000000046")
11948 IAdviseSink2 : public IAdviseSink
11949 {
11950     virtual void STDMETHODCALLTYPE OnLinkSrcChange(
11951         IMoniker *pmk) = 0;
11952 
11953 };
11954 #ifdef __CRT_UUID_DECL
11955 __CRT_UUID_DECL(IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
11956 #endif
11957 #else
11958 typedef struct IAdviseSink2Vtbl {
11959     BEGIN_INTERFACE
11960 
11961     /*** IUnknown methods ***/
11962     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11963         IAdviseSink2* This,
11964         REFIID riid,
11965         void **ppvObject);
11966 
11967     ULONG (STDMETHODCALLTYPE *AddRef)(
11968         IAdviseSink2* This);
11969 
11970     ULONG (STDMETHODCALLTYPE *Release)(
11971         IAdviseSink2* This);
11972 
11973     /*** IAdviseSink methods ***/
11974     void (STDMETHODCALLTYPE *OnDataChange)(
11975         IAdviseSink2* This,
11976         FORMATETC *pFormatetc,
11977         STGMEDIUM *pStgmed);
11978 
11979     void (STDMETHODCALLTYPE *OnViewChange)(
11980         IAdviseSink2* This,
11981         DWORD dwAspect,
11982         LONG lindex);
11983 
11984     void (STDMETHODCALLTYPE *OnRename)(
11985         IAdviseSink2* This,
11986         IMoniker *pmk);
11987 
11988     void (STDMETHODCALLTYPE *OnSave)(
11989         IAdviseSink2* This);
11990 
11991     void (STDMETHODCALLTYPE *OnClose)(
11992         IAdviseSink2* This);
11993 
11994     /*** IAdviseSink2 methods ***/
11995     void (STDMETHODCALLTYPE *OnLinkSrcChange)(
11996         IAdviseSink2* This,
11997         IMoniker *pmk);
11998 
11999     END_INTERFACE
12000 } IAdviseSink2Vtbl;
12001 interface IAdviseSink2 {
12002     CONST_VTBL IAdviseSink2Vtbl* lpVtbl;
12003 };
12004 
12005 #ifdef COBJMACROS
12006 #ifndef WIDL_C_INLINE_WRAPPERS
12007 /*** IUnknown methods ***/
12008 #define IAdviseSink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12009 #define IAdviseSink2_AddRef(This) (This)->lpVtbl->AddRef(This)
12010 #define IAdviseSink2_Release(This) (This)->lpVtbl->Release(This)
12011 /*** IAdviseSink methods ***/
12012 #define IAdviseSink2_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->OnDataChange(This,pFormatetc,pStgmed)
12013 #define IAdviseSink2_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->OnViewChange(This,dwAspect,lindex)
12014 #define IAdviseSink2_OnRename(This,pmk) (This)->lpVtbl->OnRename(This,pmk)
12015 #define IAdviseSink2_OnSave(This) (This)->lpVtbl->OnSave(This)
12016 #define IAdviseSink2_OnClose(This) (This)->lpVtbl->OnClose(This)
12017 /*** IAdviseSink2 methods ***/
12018 #define IAdviseSink2_OnLinkSrcChange(This,pmk) (This)->lpVtbl->OnLinkSrcChange(This,pmk)
12019 #else
12020 /*** IUnknown methods ***/
12021 static FORCEINLINE HRESULT IAdviseSink2_QueryInterface(IAdviseSink2* This,REFIID riid,void **ppvObject) {
12022     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12023 }
12024 static FORCEINLINE ULONG IAdviseSink2_AddRef(IAdviseSink2* This) {
12025     return This->lpVtbl->AddRef(This);
12026 }
12027 static FORCEINLINE ULONG IAdviseSink2_Release(IAdviseSink2* This) {
12028     return This->lpVtbl->Release(This);
12029 }
12030 /*** IAdviseSink methods ***/
12031 static FORCEINLINE void IAdviseSink2_OnDataChange(IAdviseSink2* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
12032     This->lpVtbl->OnDataChange(This,pFormatetc,pStgmed);
12033 }
12034 static FORCEINLINE void IAdviseSink2_OnViewChange(IAdviseSink2* This,DWORD dwAspect,LONG lindex) {
12035     This->lpVtbl->OnViewChange(This,dwAspect,lindex);
12036 }
12037 static FORCEINLINE void IAdviseSink2_OnRename(IAdviseSink2* This,IMoniker *pmk) {
12038     This->lpVtbl->OnRename(This,pmk);
12039 }
12040 static FORCEINLINE void IAdviseSink2_OnSave(IAdviseSink2* This) {
12041     This->lpVtbl->OnSave(This);
12042 }
12043 static FORCEINLINE void IAdviseSink2_OnClose(IAdviseSink2* This) {
12044     This->lpVtbl->OnClose(This);
12045 }
12046 /*** IAdviseSink2 methods ***/
12047 static FORCEINLINE void IAdviseSink2_OnLinkSrcChange(IAdviseSink2* This,IMoniker *pmk) {
12048     This->lpVtbl->OnLinkSrcChange(This,pmk);
12049 }
12050 #endif
12051 #endif
12052 
12053 #endif
12054 
12055 HRESULT STDMETHODCALLTYPE IAdviseSink2_RemoteOnLinkSrcChange_Proxy(
12056     IAdviseSink2* This,
12057     IMoniker *pmk);
12058 void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub(
12059     IRpcStubBuffer* This,
12060     IRpcChannelBuffer* pRpcChannelBuffer,
12061     PRPC_MESSAGE pRpcMessage,
12062     DWORD* pdwStubPhase);
12063 void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
12064     IAdviseSink2* This,
12065     IMoniker *pmk);
12066 HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
12067     IAdviseSink2* This,
12068     IMoniker *pmk);
12069 
12070 #endif  /* __IAdviseSink2_INTERFACE_DEFINED__ */
12071 
12072 /*****************************************************************************
12073  * AsyncIAdviseSink2 interface
12074  */
12075 #ifndef __AsyncIAdviseSink2_INTERFACE_DEFINED__
12076 #define __AsyncIAdviseSink2_INTERFACE_DEFINED__
12077 
12078 DEFINE_GUID(IID_AsyncIAdviseSink2, 0x00000151, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12079 #if defined(__cplusplus) && !defined(CINTERFACE)
12080 MIDL_INTERFACE("00000151-0000-0000-c000-000000000046")
12081 AsyncIAdviseSink2 : public IAdviseSink
12082 {
12083     virtual void STDMETHODCALLTYPE Begin_OnLinkSrcChange(
12084         IMoniker *pmk) = 0;
12085 
12086     virtual void STDMETHODCALLTYPE Finish_OnLinkSrcChange(
12087         ) = 0;
12088 
12089 };
12090 #ifdef __CRT_UUID_DECL
12091 __CRT_UUID_DECL(AsyncIAdviseSink2, 0x00000151, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12092 #endif
12093 #else
12094 typedef struct AsyncIAdviseSink2Vtbl {
12095     BEGIN_INTERFACE
12096 
12097     /*** IUnknown methods ***/
12098     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12099         AsyncIAdviseSink2* This,
12100         REFIID riid,
12101         void **ppvObject);
12102 
12103     ULONG (STDMETHODCALLTYPE *AddRef)(
12104         AsyncIAdviseSink2* This);
12105 
12106     ULONG (STDMETHODCALLTYPE *Release)(
12107         AsyncIAdviseSink2* This);
12108 
12109     /*** IAdviseSink methods ***/
12110     void (STDMETHODCALLTYPE *Begin_OnDataChange)(
12111         AsyncIAdviseSink2* This,
12112         FORMATETC *pFormatetc,
12113         STGMEDIUM *pStgmed);
12114 
12115     void (STDMETHODCALLTYPE *Finish_OnDataChange)(
12116         AsyncIAdviseSink2* This);
12117 
12118     void (STDMETHODCALLTYPE *Begin_OnViewChange)(
12119         AsyncIAdviseSink2* This,
12120         DWORD dwAspect,
12121         LONG lindex);
12122 
12123     void (STDMETHODCALLTYPE *Finish_OnViewChange)(
12124         AsyncIAdviseSink2* This);
12125 
12126     void (STDMETHODCALLTYPE *Begin_OnRename)(
12127         AsyncIAdviseSink2* This,
12128         IMoniker *pmk);
12129 
12130     void (STDMETHODCALLTYPE *Finish_OnRename)(
12131         AsyncIAdviseSink2* This);
12132 
12133     void (STDMETHODCALLTYPE *Begin_OnSave)(
12134         AsyncIAdviseSink2* This);
12135 
12136     void (STDMETHODCALLTYPE *Finish_OnSave)(
12137         AsyncIAdviseSink2* This);
12138 
12139     void (STDMETHODCALLTYPE *Begin_OnClose)(
12140         AsyncIAdviseSink2* This);
12141 
12142     void (STDMETHODCALLTYPE *Finish_OnClose)(
12143         AsyncIAdviseSink2* This);
12144 
12145     /*** IAdviseSink2 methods ***/
12146     void (STDMETHODCALLTYPE *Begin_OnLinkSrcChange)(
12147         AsyncIAdviseSink2* This,
12148         IMoniker *pmk);
12149 
12150     void (STDMETHODCALLTYPE *Finish_OnLinkSrcChange)(
12151         AsyncIAdviseSink2* This);
12152 
12153     END_INTERFACE
12154 } AsyncIAdviseSink2Vtbl;
12155 interface AsyncIAdviseSink2 {
12156     CONST_VTBL AsyncIAdviseSink2Vtbl* lpVtbl;
12157 };
12158 
12159 #ifdef COBJMACROS
12160 #ifndef WIDL_C_INLINE_WRAPPERS
12161 /*** IUnknown methods ***/
12162 #define AsyncIAdviseSink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12163 #define AsyncIAdviseSink2_AddRef(This) (This)->lpVtbl->AddRef(This)
12164 #define AsyncIAdviseSink2_Release(This) (This)->lpVtbl->Release(This)
12165 /*** IAdviseSink methods ***/
12166 #define AsyncIAdviseSink2_Begin_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed)
12167 #define AsyncIAdviseSink2_Finish_OnDataChange(This) (This)->lpVtbl->Finish_OnDataChange(This)
12168 #define AsyncIAdviseSink2_Begin_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex)
12169 #define AsyncIAdviseSink2_Finish_OnViewChange(This) (This)->lpVtbl->Finish_OnViewChange(This)
12170 #define AsyncIAdviseSink2_Begin_OnRename(This,pmk) (This)->lpVtbl->Begin_OnRename(This,pmk)
12171 #define AsyncIAdviseSink2_Finish_OnRename(This) (This)->lpVtbl->Finish_OnRename(This)
12172 #define AsyncIAdviseSink2_Begin_OnSave(This) (This)->lpVtbl->Begin_OnSave(This)
12173 #define AsyncIAdviseSink2_Finish_OnSave(This) (This)->lpVtbl->Finish_OnSave(This)
12174 #define AsyncIAdviseSink2_Begin_OnClose(This) (This)->lpVtbl->Begin_OnClose(This)
12175 #define AsyncIAdviseSink2_Finish_OnClose(This) (This)->lpVtbl->Finish_OnClose(This)
12176 /*** IAdviseSink2 methods ***/
12177 #define AsyncIAdviseSink2_Begin_OnLinkSrcChange(This,pmk) (This)->lpVtbl->Begin_OnLinkSrcChange(This,pmk)
12178 #define AsyncIAdviseSink2_Finish_OnLinkSrcChange(This) (This)->lpVtbl->Finish_OnLinkSrcChange(This)
12179 #else
12180 /*** IUnknown methods ***/
12181 static FORCEINLINE HRESULT AsyncIAdviseSink2_QueryInterface(AsyncIAdviseSink2* This,REFIID riid,void **ppvObject) {
12182     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12183 }
12184 static FORCEINLINE ULONG AsyncIAdviseSink2_AddRef(AsyncIAdviseSink2* This) {
12185     return This->lpVtbl->AddRef(This);
12186 }
12187 static FORCEINLINE ULONG AsyncIAdviseSink2_Release(AsyncIAdviseSink2* This) {
12188     return This->lpVtbl->Release(This);
12189 }
12190 /*** IAdviseSink methods ***/
12191 static FORCEINLINE void Begin_AsyncIAdviseSink2_OnDataChange(AsyncIAdviseSink2* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
12192     This->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed);
12193 }
12194 static FORCEINLINE void Finish_AsyncIAdviseSink2_OnDataChange(AsyncIAdviseSink2* This) {
12195     This->lpVtbl->Finish_OnDataChange(This);
12196 }
12197 static FORCEINLINE void Begin_AsyncIAdviseSink2_OnViewChange(AsyncIAdviseSink2* This,DWORD dwAspect,LONG lindex) {
12198     This->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex);
12199 }
12200 static FORCEINLINE void Finish_AsyncIAdviseSink2_OnViewChange(AsyncIAdviseSink2* This) {
12201     This->lpVtbl->Finish_OnViewChange(This);
12202 }
12203 static FORCEINLINE void Begin_AsyncIAdviseSink2_OnRename(AsyncIAdviseSink2* This,IMoniker *pmk) {
12204     This->lpVtbl->Begin_OnRename(This,pmk);
12205 }
12206 static FORCEINLINE void Finish_AsyncIAdviseSink2_OnRename(AsyncIAdviseSink2* This) {
12207     This->lpVtbl->Finish_OnRename(This);
12208 }
12209 static FORCEINLINE void Begin_AsyncIAdviseSink2_OnSave(AsyncIAdviseSink2* This) {
12210     This->lpVtbl->Begin_OnSave(This);
12211 }
12212 static FORCEINLINE void Finish_AsyncIAdviseSink2_OnSave(AsyncIAdviseSink2* This) {
12213     This->lpVtbl->Finish_OnSave(This);
12214 }
12215 static FORCEINLINE void Begin_AsyncIAdviseSink2_OnClose(AsyncIAdviseSink2* This) {
12216     This->lpVtbl->Begin_OnClose(This);
12217 }
12218 static FORCEINLINE void Finish_AsyncIAdviseSink2_OnClose(AsyncIAdviseSink2* This) {
12219     This->lpVtbl->Finish_OnClose(This);
12220 }
12221 /*** IAdviseSink2 methods ***/
12222 static FORCEINLINE void Begin_AsyncIAdviseSink2_OnLinkSrcChange(AsyncIAdviseSink2* This,IMoniker *pmk) {
12223     This->lpVtbl->Begin_OnLinkSrcChange(This,pmk);
12224 }
12225 static FORCEINLINE void Finish_AsyncIAdviseSink2_OnLinkSrcChange(AsyncIAdviseSink2* This) {
12226     This->lpVtbl->Finish_OnLinkSrcChange(This);
12227 }
12228 #endif
12229 #endif
12230 
12231 #endif
12232 
12233 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Proxy(
12234     IAdviseSink2* This,
12235     IMoniker *pmk);
12236 void __RPC_STUB AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Stub(
12237     IRpcStubBuffer* This,
12238     IRpcChannelBuffer* pRpcChannelBuffer,
12239     PRPC_MESSAGE pRpcMessage,
12240     DWORD* pdwStubPhase);
12241 HRESULT STDMETHODCALLTYPE AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Proxy(
12242     IAdviseSink2* This,
12243     IMoniker *pmk);
12244 void __RPC_STUB AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Stub(
12245     IRpcStubBuffer* This,
12246     IRpcChannelBuffer* pRpcChannelBuffer,
12247     PRPC_MESSAGE pRpcMessage,
12248     DWORD* pdwStubPhase);
12249 void CALLBACK AsyncIAdviseSink2_Begin_OnLinkSrcChange_Proxy(
12250     IAdviseSink2* This,
12251     IMoniker *pmk);
12252 HRESULT __RPC_STUB AsyncIAdviseSink2_Begin_OnLinkSrcChange_Stub(
12253     IAdviseSink2* This,
12254     IMoniker *pmk);
12255 void CALLBACK AsyncIAdviseSink2_Finish_OnLinkSrcChange_Proxy(
12256     IAdviseSink2* This);
12257 HRESULT __RPC_STUB AsyncIAdviseSink2_Finish_OnLinkSrcChange_Stub(
12258     IAdviseSink2* This,
12259     IMoniker *pmk);
12260 
12261 #endif  /* __AsyncIAdviseSink2_INTERFACE_DEFINED__ */
12262 
12263 #endif
12264 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
12265 /*****************************************************************************
12266  * IDataObject interface
12267  */
12268 #ifndef __IDataObject_INTERFACE_DEFINED__
12269 #define __IDataObject_INTERFACE_DEFINED__
12270 
12271 typedef IDataObject *LPDATAOBJECT;
12272 typedef enum tagDATADIR {
12273     DATADIR_GET = 1,
12274     DATADIR_SET = 2
12275 } DATADIR;
12276 DEFINE_GUID(IID_IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12277 #if defined(__cplusplus) && !defined(CINTERFACE)
12278 MIDL_INTERFACE("0000010e-0000-0000-c000-000000000046")
12279 IDataObject : public IUnknown
12280 {
12281     virtual HRESULT STDMETHODCALLTYPE GetData(
12282         FORMATETC *pformatetcIn,
12283         STGMEDIUM *pmedium) = 0;
12284 
12285     virtual HRESULT STDMETHODCALLTYPE GetDataHere(
12286         FORMATETC *pformatetc,
12287         STGMEDIUM *pmedium) = 0;
12288 
12289     virtual HRESULT STDMETHODCALLTYPE QueryGetData(
12290         FORMATETC *pformatetc) = 0;
12291 
12292     virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(
12293         FORMATETC *pformatectIn,
12294         FORMATETC *pformatetcOut) = 0;
12295 
12296     virtual HRESULT STDMETHODCALLTYPE SetData(
12297         FORMATETC *pformatetc,
12298         STGMEDIUM *pmedium,
12299         WINBOOL fRelease) = 0;
12300 
12301     virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc(
12302         DWORD dwDirection,
12303         IEnumFORMATETC **ppenumFormatEtc) = 0;
12304 
12305     virtual HRESULT STDMETHODCALLTYPE DAdvise(
12306         FORMATETC *pformatetc,
12307         DWORD advf,
12308         IAdviseSink *pAdvSink,
12309         DWORD *pdwConnection) = 0;
12310 
12311     virtual HRESULT STDMETHODCALLTYPE DUnadvise(
12312         DWORD dwConnection) = 0;
12313 
12314     virtual HRESULT STDMETHODCALLTYPE EnumDAdvise(
12315         IEnumSTATDATA **ppenumAdvise) = 0;
12316 
12317 };
12318 #ifdef __CRT_UUID_DECL
12319 __CRT_UUID_DECL(IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12320 #endif
12321 #else
12322 typedef struct IDataObjectVtbl {
12323     BEGIN_INTERFACE
12324 
12325     /*** IUnknown methods ***/
12326     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12327         IDataObject* This,
12328         REFIID riid,
12329         void **ppvObject);
12330 
12331     ULONG (STDMETHODCALLTYPE *AddRef)(
12332         IDataObject* This);
12333 
12334     ULONG (STDMETHODCALLTYPE *Release)(
12335         IDataObject* This);
12336 
12337     /*** IDataObject methods ***/
12338     HRESULT (STDMETHODCALLTYPE *GetData)(
12339         IDataObject* This,
12340         FORMATETC *pformatetcIn,
12341         STGMEDIUM *pmedium);
12342 
12343     HRESULT (STDMETHODCALLTYPE *GetDataHere)(
12344         IDataObject* This,
12345         FORMATETC *pformatetc,
12346         STGMEDIUM *pmedium);
12347 
12348     HRESULT (STDMETHODCALLTYPE *QueryGetData)(
12349         IDataObject* This,
12350         FORMATETC *pformatetc);
12351 
12352     HRESULT (STDMETHODCALLTYPE *GetCanonicalFormatEtc)(
12353         IDataObject* This,
12354         FORMATETC *pformatectIn,
12355         FORMATETC *pformatetcOut);
12356 
12357     HRESULT (STDMETHODCALLTYPE *SetData)(
12358         IDataObject* This,
12359         FORMATETC *pformatetc,
12360         STGMEDIUM *pmedium,
12361         WINBOOL fRelease);
12362 
12363     HRESULT (STDMETHODCALLTYPE *EnumFormatEtc)(
12364         IDataObject* This,
12365         DWORD dwDirection,
12366         IEnumFORMATETC **ppenumFormatEtc);
12367 
12368     HRESULT (STDMETHODCALLTYPE *DAdvise)(
12369         IDataObject* This,
12370         FORMATETC *pformatetc,
12371         DWORD advf,
12372         IAdviseSink *pAdvSink,
12373         DWORD *pdwConnection);
12374 
12375     HRESULT (STDMETHODCALLTYPE *DUnadvise)(
12376         IDataObject* This,
12377         DWORD dwConnection);
12378 
12379     HRESULT (STDMETHODCALLTYPE *EnumDAdvise)(
12380         IDataObject* This,
12381         IEnumSTATDATA **ppenumAdvise);
12382 
12383     END_INTERFACE
12384 } IDataObjectVtbl;
12385 interface IDataObject {
12386     CONST_VTBL IDataObjectVtbl* lpVtbl;
12387 };
12388 
12389 #ifdef COBJMACROS
12390 #ifndef WIDL_C_INLINE_WRAPPERS
12391 /*** IUnknown methods ***/
12392 #define IDataObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12393 #define IDataObject_AddRef(This) (This)->lpVtbl->AddRef(This)
12394 #define IDataObject_Release(This) (This)->lpVtbl->Release(This)
12395 /*** IDataObject methods ***/
12396 #define IDataObject_GetData(This,pformatetcIn,pmedium) (This)->lpVtbl->GetData(This,pformatetcIn,pmedium)
12397 #define IDataObject_GetDataHere(This,pformatetc,pmedium) (This)->lpVtbl->GetDataHere(This,pformatetc,pmedium)
12398 #define IDataObject_QueryGetData(This,pformatetc) (This)->lpVtbl->QueryGetData(This,pformatetc)
12399 #define IDataObject_GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut) (This)->lpVtbl->GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut)
12400 #define IDataObject_SetData(This,pformatetc,pmedium,fRelease) (This)->lpVtbl->SetData(This,pformatetc,pmedium,fRelease)
12401 #define IDataObject_EnumFormatEtc(This,dwDirection,ppenumFormatEtc) (This)->lpVtbl->EnumFormatEtc(This,dwDirection,ppenumFormatEtc)
12402 #define IDataObject_DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection) (This)->lpVtbl->DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection)
12403 #define IDataObject_DUnadvise(This,dwConnection) (This)->lpVtbl->DUnadvise(This,dwConnection)
12404 #define IDataObject_EnumDAdvise(This,ppenumAdvise) (This)->lpVtbl->EnumDAdvise(This,ppenumAdvise)
12405 #else
12406 /*** IUnknown methods ***/
12407 static FORCEINLINE HRESULT IDataObject_QueryInterface(IDataObject* This,REFIID riid,void **ppvObject) {
12408     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12409 }
12410 static FORCEINLINE ULONG IDataObject_AddRef(IDataObject* This) {
12411     return This->lpVtbl->AddRef(This);
12412 }
12413 static FORCEINLINE ULONG IDataObject_Release(IDataObject* This) {
12414     return This->lpVtbl->Release(This);
12415 }
12416 /*** IDataObject methods ***/
12417 static FORCEINLINE HRESULT IDataObject_GetData(IDataObject* This,FORMATETC *pformatetcIn,STGMEDIUM *pmedium) {
12418     return This->lpVtbl->GetData(This,pformatetcIn,pmedium);
12419 }
12420 static FORCEINLINE HRESULT IDataObject_GetDataHere(IDataObject* This,FORMATETC *pformatetc,STGMEDIUM *pmedium) {
12421     return This->lpVtbl->GetDataHere(This,pformatetc,pmedium);
12422 }
12423 static FORCEINLINE HRESULT IDataObject_QueryGetData(IDataObject* This,FORMATETC *pformatetc) {
12424     return This->lpVtbl->QueryGetData(This,pformatetc);
12425 }
12426 static FORCEINLINE HRESULT IDataObject_GetCanonicalFormatEtc(IDataObject* This,FORMATETC *pformatectIn,FORMATETC *pformatetcOut) {
12427     return This->lpVtbl->GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut);
12428 }
12429 static FORCEINLINE HRESULT IDataObject_SetData(IDataObject* This,FORMATETC *pformatetc,STGMEDIUM *pmedium,WINBOOL fRelease) {
12430     return This->lpVtbl->SetData(This,pformatetc,pmedium,fRelease);
12431 }
12432 static FORCEINLINE HRESULT IDataObject_EnumFormatEtc(IDataObject* This,DWORD dwDirection,IEnumFORMATETC **ppenumFormatEtc) {
12433     return This->lpVtbl->EnumFormatEtc(This,dwDirection,ppenumFormatEtc);
12434 }
12435 static FORCEINLINE HRESULT IDataObject_DAdvise(IDataObject* This,FORMATETC *pformatetc,DWORD advf,IAdviseSink *pAdvSink,DWORD *pdwConnection) {
12436     return This->lpVtbl->DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection);
12437 }
12438 static FORCEINLINE HRESULT IDataObject_DUnadvise(IDataObject* This,DWORD dwConnection) {
12439     return This->lpVtbl->DUnadvise(This,dwConnection);
12440 }
12441 static FORCEINLINE HRESULT IDataObject_EnumDAdvise(IDataObject* This,IEnumSTATDATA **ppenumAdvise) {
12442     return This->lpVtbl->EnumDAdvise(This,ppenumAdvise);
12443 }
12444 #endif
12445 #endif
12446 
12447 #endif
12448 
12449 HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetData_Proxy(
12450     IDataObject* This,
12451     FORMATETC *pformatetcIn,
12452     STGMEDIUM *pRemoteMedium);
12453 void __RPC_STUB IDataObject_RemoteGetData_Stub(
12454     IRpcStubBuffer* This,
12455     IRpcChannelBuffer* pRpcChannelBuffer,
12456     PRPC_MESSAGE pRpcMessage,
12457     DWORD* pdwStubPhase);
12458 HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetDataHere_Proxy(
12459     IDataObject* This,
12460     FORMATETC *pformatetc,
12461     STGMEDIUM *pRemoteMedium);
12462 void __RPC_STUB IDataObject_RemoteGetDataHere_Stub(
12463     IRpcStubBuffer* This,
12464     IRpcChannelBuffer* pRpcChannelBuffer,
12465     PRPC_MESSAGE pRpcMessage,
12466     DWORD* pdwStubPhase);
12467 HRESULT STDMETHODCALLTYPE IDataObject_QueryGetData_Proxy(
12468     IDataObject* This,
12469     FORMATETC *pformatetc);
12470 void __RPC_STUB IDataObject_QueryGetData_Stub(
12471     IRpcStubBuffer* This,
12472     IRpcChannelBuffer* pRpcChannelBuffer,
12473     PRPC_MESSAGE pRpcMessage,
12474     DWORD* pdwStubPhase);
12475 HRESULT STDMETHODCALLTYPE IDataObject_GetCanonicalFormatEtc_Proxy(
12476     IDataObject* This,
12477     FORMATETC *pformatectIn,
12478     FORMATETC *pformatetcOut);
12479 void __RPC_STUB IDataObject_GetCanonicalFormatEtc_Stub(
12480     IRpcStubBuffer* This,
12481     IRpcChannelBuffer* pRpcChannelBuffer,
12482     PRPC_MESSAGE pRpcMessage,
12483     DWORD* pdwStubPhase);
12484 HRESULT STDMETHODCALLTYPE IDataObject_RemoteSetData_Proxy(
12485     IDataObject* This,
12486     FORMATETC *pformatetc,
12487     FLAG_STGMEDIUM *pmedium,
12488     WINBOOL fRelease);
12489 void __RPC_STUB IDataObject_RemoteSetData_Stub(
12490     IRpcStubBuffer* This,
12491     IRpcChannelBuffer* pRpcChannelBuffer,
12492     PRPC_MESSAGE pRpcMessage,
12493     DWORD* pdwStubPhase);
12494 HRESULT STDMETHODCALLTYPE IDataObject_EnumFormatEtc_Proxy(
12495     IDataObject* This,
12496     DWORD dwDirection,
12497     IEnumFORMATETC **ppenumFormatEtc);
12498 void __RPC_STUB IDataObject_EnumFormatEtc_Stub(
12499     IRpcStubBuffer* This,
12500     IRpcChannelBuffer* pRpcChannelBuffer,
12501     PRPC_MESSAGE pRpcMessage,
12502     DWORD* pdwStubPhase);
12503 HRESULT STDMETHODCALLTYPE IDataObject_DAdvise_Proxy(
12504     IDataObject* This,
12505     FORMATETC *pformatetc,
12506     DWORD advf,
12507     IAdviseSink *pAdvSink,
12508     DWORD *pdwConnection);
12509 void __RPC_STUB IDataObject_DAdvise_Stub(
12510     IRpcStubBuffer* This,
12511     IRpcChannelBuffer* pRpcChannelBuffer,
12512     PRPC_MESSAGE pRpcMessage,
12513     DWORD* pdwStubPhase);
12514 HRESULT STDMETHODCALLTYPE IDataObject_DUnadvise_Proxy(
12515     IDataObject* This,
12516     DWORD dwConnection);
12517 void __RPC_STUB IDataObject_DUnadvise_Stub(
12518     IRpcStubBuffer* This,
12519     IRpcChannelBuffer* pRpcChannelBuffer,
12520     PRPC_MESSAGE pRpcMessage,
12521     DWORD* pdwStubPhase);
12522 HRESULT STDMETHODCALLTYPE IDataObject_EnumDAdvise_Proxy(
12523     IDataObject* This,
12524     IEnumSTATDATA **ppenumAdvise);
12525 void __RPC_STUB IDataObject_EnumDAdvise_Stub(
12526     IRpcStubBuffer* This,
12527     IRpcChannelBuffer* pRpcChannelBuffer,
12528     PRPC_MESSAGE pRpcMessage,
12529     DWORD* pdwStubPhase);
12530 HRESULT CALLBACK IDataObject_GetData_Proxy(
12531     IDataObject* This,
12532     FORMATETC *pformatetcIn,
12533     STGMEDIUM *pmedium);
12534 HRESULT __RPC_STUB IDataObject_GetData_Stub(
12535     IDataObject* This,
12536     FORMATETC *pformatetcIn,
12537     STGMEDIUM *pRemoteMedium);
12538 HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
12539     IDataObject* This,
12540     FORMATETC *pformatetc,
12541     STGMEDIUM *pmedium);
12542 HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
12543     IDataObject* This,
12544     FORMATETC *pformatetc,
12545     STGMEDIUM *pRemoteMedium);
12546 HRESULT CALLBACK IDataObject_SetData_Proxy(
12547     IDataObject* This,
12548     FORMATETC *pformatetc,
12549     STGMEDIUM *pmedium,
12550     WINBOOL fRelease);
12551 HRESULT __RPC_STUB IDataObject_SetData_Stub(
12552     IDataObject* This,
12553     FORMATETC *pformatetc,
12554     FLAG_STGMEDIUM *pmedium,
12555     WINBOOL fRelease);
12556 
12557 #endif  /* __IDataObject_INTERFACE_DEFINED__ */
12558 
12559 #endif
12560 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
12561 /*****************************************************************************
12562  * IDataAdviseHolder interface
12563  */
12564 #ifndef __IDataAdviseHolder_INTERFACE_DEFINED__
12565 #define __IDataAdviseHolder_INTERFACE_DEFINED__
12566 
12567 typedef IDataAdviseHolder *LPDATAADVISEHOLDER;
12568 DEFINE_GUID(IID_IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12569 #if defined(__cplusplus) && !defined(CINTERFACE)
12570 MIDL_INTERFACE("00000110-0000-0000-c000-000000000046")
12571 IDataAdviseHolder : public IUnknown
12572 {
12573     virtual HRESULT STDMETHODCALLTYPE Advise(
12574         IDataObject *pDataObject,
12575         FORMATETC *pFetc,
12576         DWORD advf,
12577         IAdviseSink *pAdvise,
12578         DWORD *pdwConnection) = 0;
12579 
12580     virtual HRESULT STDMETHODCALLTYPE Unadvise(
12581         DWORD dwConnection) = 0;
12582 
12583     virtual HRESULT STDMETHODCALLTYPE EnumAdvise(
12584         IEnumSTATDATA **ppenumAdvise) = 0;
12585 
12586     virtual HRESULT STDMETHODCALLTYPE SendOnDataChange(
12587         IDataObject *pDataObject,
12588         DWORD dwReserved,
12589         DWORD advf) = 0;
12590 
12591 };
12592 #ifdef __CRT_UUID_DECL
12593 __CRT_UUID_DECL(IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12594 #endif
12595 #else
12596 typedef struct IDataAdviseHolderVtbl {
12597     BEGIN_INTERFACE
12598 
12599     /*** IUnknown methods ***/
12600     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12601         IDataAdviseHolder* This,
12602         REFIID riid,
12603         void **ppvObject);
12604 
12605     ULONG (STDMETHODCALLTYPE *AddRef)(
12606         IDataAdviseHolder* This);
12607 
12608     ULONG (STDMETHODCALLTYPE *Release)(
12609         IDataAdviseHolder* This);
12610 
12611     /*** IDataAdviseHolder methods ***/
12612     HRESULT (STDMETHODCALLTYPE *Advise)(
12613         IDataAdviseHolder* This,
12614         IDataObject *pDataObject,
12615         FORMATETC *pFetc,
12616         DWORD advf,
12617         IAdviseSink *pAdvise,
12618         DWORD *pdwConnection);
12619 
12620     HRESULT (STDMETHODCALLTYPE *Unadvise)(
12621         IDataAdviseHolder* This,
12622         DWORD dwConnection);
12623 
12624     HRESULT (STDMETHODCALLTYPE *EnumAdvise)(
12625         IDataAdviseHolder* This,
12626         IEnumSTATDATA **ppenumAdvise);
12627 
12628     HRESULT (STDMETHODCALLTYPE *SendOnDataChange)(
12629         IDataAdviseHolder* This,
12630         IDataObject *pDataObject,
12631         DWORD dwReserved,
12632         DWORD advf);
12633 
12634     END_INTERFACE
12635 } IDataAdviseHolderVtbl;
12636 interface IDataAdviseHolder {
12637     CONST_VTBL IDataAdviseHolderVtbl* lpVtbl;
12638 };
12639 
12640 #ifdef COBJMACROS
12641 #ifndef WIDL_C_INLINE_WRAPPERS
12642 /*** IUnknown methods ***/
12643 #define IDataAdviseHolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12644 #define IDataAdviseHolder_AddRef(This) (This)->lpVtbl->AddRef(This)
12645 #define IDataAdviseHolder_Release(This) (This)->lpVtbl->Release(This)
12646 /*** IDataAdviseHolder methods ***/
12647 #define IDataAdviseHolder_Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection) (This)->lpVtbl->Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection)
12648 #define IDataAdviseHolder_Unadvise(This,dwConnection) (This)->lpVtbl->Unadvise(This,dwConnection)
12649 #define IDataAdviseHolder_EnumAdvise(This,ppenumAdvise) (This)->lpVtbl->EnumAdvise(This,ppenumAdvise)
12650 #define IDataAdviseHolder_SendOnDataChange(This,pDataObject,dwReserved,advf) (This)->lpVtbl->SendOnDataChange(This,pDataObject,dwReserved,advf)
12651 #else
12652 /*** IUnknown methods ***/
12653 static FORCEINLINE HRESULT IDataAdviseHolder_QueryInterface(IDataAdviseHolder* This,REFIID riid,void **ppvObject) {
12654     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12655 }
12656 static FORCEINLINE ULONG IDataAdviseHolder_AddRef(IDataAdviseHolder* This) {
12657     return This->lpVtbl->AddRef(This);
12658 }
12659 static FORCEINLINE ULONG IDataAdviseHolder_Release(IDataAdviseHolder* This) {
12660     return This->lpVtbl->Release(This);
12661 }
12662 /*** IDataAdviseHolder methods ***/
12663 static FORCEINLINE HRESULT IDataAdviseHolder_Advise(IDataAdviseHolder* This,IDataObject *pDataObject,FORMATETC *pFetc,DWORD advf,IAdviseSink *pAdvise,DWORD *pdwConnection) {
12664     return This->lpVtbl->Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection);
12665 }
12666 static FORCEINLINE HRESULT IDataAdviseHolder_Unadvise(IDataAdviseHolder* This,DWORD dwConnection) {
12667     return This->lpVtbl->Unadvise(This,dwConnection);
12668 }
12669 static FORCEINLINE HRESULT IDataAdviseHolder_EnumAdvise(IDataAdviseHolder* This,IEnumSTATDATA **ppenumAdvise) {
12670     return This->lpVtbl->EnumAdvise(This,ppenumAdvise);
12671 }
12672 static FORCEINLINE HRESULT IDataAdviseHolder_SendOnDataChange(IDataAdviseHolder* This,IDataObject *pDataObject,DWORD dwReserved,DWORD advf) {
12673     return This->lpVtbl->SendOnDataChange(This,pDataObject,dwReserved,advf);
12674 }
12675 #endif
12676 #endif
12677 
12678 #endif
12679 
12680 HRESULT STDMETHODCALLTYPE IDataAdviseHolder_Advise_Proxy(
12681     IDataAdviseHolder* This,
12682     IDataObject *pDataObject,
12683     FORMATETC *pFetc,
12684     DWORD advf,
12685     IAdviseSink *pAdvise,
12686     DWORD *pdwConnection);
12687 void __RPC_STUB IDataAdviseHolder_Advise_Stub(
12688     IRpcStubBuffer* This,
12689     IRpcChannelBuffer* pRpcChannelBuffer,
12690     PRPC_MESSAGE pRpcMessage,
12691     DWORD* pdwStubPhase);
12692 HRESULT STDMETHODCALLTYPE IDataAdviseHolder_Unadvise_Proxy(
12693     IDataAdviseHolder* This,
12694     DWORD dwConnection);
12695 void __RPC_STUB IDataAdviseHolder_Unadvise_Stub(
12696     IRpcStubBuffer* This,
12697     IRpcChannelBuffer* pRpcChannelBuffer,
12698     PRPC_MESSAGE pRpcMessage,
12699     DWORD* pdwStubPhase);
12700 HRESULT STDMETHODCALLTYPE IDataAdviseHolder_EnumAdvise_Proxy(
12701     IDataAdviseHolder* This,
12702     IEnumSTATDATA **ppenumAdvise);
12703 void __RPC_STUB IDataAdviseHolder_EnumAdvise_Stub(
12704     IRpcStubBuffer* This,
12705     IRpcChannelBuffer* pRpcChannelBuffer,
12706     PRPC_MESSAGE pRpcMessage,
12707     DWORD* pdwStubPhase);
12708 HRESULT STDMETHODCALLTYPE IDataAdviseHolder_SendOnDataChange_Proxy(
12709     IDataAdviseHolder* This,
12710     IDataObject *pDataObject,
12711     DWORD dwReserved,
12712     DWORD advf);
12713 void __RPC_STUB IDataAdviseHolder_SendOnDataChange_Stub(
12714     IRpcStubBuffer* This,
12715     IRpcChannelBuffer* pRpcChannelBuffer,
12716     PRPC_MESSAGE pRpcMessage,
12717     DWORD* pdwStubPhase);
12718 
12719 #endif  /* __IDataAdviseHolder_INTERFACE_DEFINED__ */
12720 
12721 /*****************************************************************************
12722  * IMessageFilter interface
12723  */
12724 #ifndef __IMessageFilter_INTERFACE_DEFINED__
12725 #define __IMessageFilter_INTERFACE_DEFINED__
12726 
12727 typedef IMessageFilter *LPMESSAGEFILTER;
12728 typedef enum tagCALLTYPE {
12729     CALLTYPE_TOPLEVEL = 1,
12730     CALLTYPE_NESTED = 2,
12731     CALLTYPE_ASYNC = 3,
12732     CALLTYPE_TOPLEVEL_CALLPENDING = 4,
12733     CALLTYPE_ASYNC_CALLPENDING = 5
12734 } CALLTYPE;
12735 typedef enum tagSERVERCALL {
12736     SERVERCALL_ISHANDLED = 0,
12737     SERVERCALL_REJECTED = 1,
12738     SERVERCALL_RETRYLATER = 2
12739 } SERVERCALL;
12740 typedef enum tagPENDINGTYPE {
12741     PENDINGTYPE_TOPLEVEL = 1,
12742     PENDINGTYPE_NESTED = 2
12743 } PENDINGTYPE;
12744 typedef enum tagPENDINGMSG {
12745     PENDINGMSG_CANCELCALL = 0,
12746     PENDINGMSG_WAITNOPROCESS = 1,
12747     PENDINGMSG_WAITDEFPROCESS = 2
12748 } PENDINGMSG;
12749 typedef struct tagINTERFACEINFO {
12750     IUnknown *pUnk;
12751     IID iid;
12752     WORD wMethod;
12753 } INTERFACEINFO;
12754 typedef struct tagINTERFACEINFO *LPINTERFACEINFO;
12755 DEFINE_GUID(IID_IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12756 #if defined(__cplusplus) && !defined(CINTERFACE)
12757 MIDL_INTERFACE("00000016-0000-0000-c000-000000000046")
12758 IMessageFilter : public IUnknown
12759 {
12760     virtual DWORD STDMETHODCALLTYPE HandleInComingCall(
12761         DWORD dwCallType,
12762         HTASK htaskCaller,
12763         DWORD dwTickCount,
12764         LPINTERFACEINFO lpInterfaceInfo) = 0;
12765 
12766     virtual DWORD STDMETHODCALLTYPE RetryRejectedCall(
12767         HTASK htaskCallee,
12768         DWORD dwTickCount,
12769         DWORD dwRejectType) = 0;
12770 
12771     virtual DWORD STDMETHODCALLTYPE MessagePending(
12772         HTASK htaskCallee,
12773         DWORD dwTickCount,
12774         DWORD dwPendingType) = 0;
12775 
12776 };
12777 #ifdef __CRT_UUID_DECL
12778 __CRT_UUID_DECL(IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12779 #endif
12780 #else
12781 typedef struct IMessageFilterVtbl {
12782     BEGIN_INTERFACE
12783 
12784     /*** IUnknown methods ***/
12785     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12786         IMessageFilter* This,
12787         REFIID riid,
12788         void **ppvObject);
12789 
12790     ULONG (STDMETHODCALLTYPE *AddRef)(
12791         IMessageFilter* This);
12792 
12793     ULONG (STDMETHODCALLTYPE *Release)(
12794         IMessageFilter* This);
12795 
12796     /*** IMessageFilter methods ***/
12797     DWORD (STDMETHODCALLTYPE *HandleInComingCall)(
12798         IMessageFilter* This,
12799         DWORD dwCallType,
12800         HTASK htaskCaller,
12801         DWORD dwTickCount,
12802         LPINTERFACEINFO lpInterfaceInfo);
12803 
12804     DWORD (STDMETHODCALLTYPE *RetryRejectedCall)(
12805         IMessageFilter* This,
12806         HTASK htaskCallee,
12807         DWORD dwTickCount,
12808         DWORD dwRejectType);
12809 
12810     DWORD (STDMETHODCALLTYPE *MessagePending)(
12811         IMessageFilter* This,
12812         HTASK htaskCallee,
12813         DWORD dwTickCount,
12814         DWORD dwPendingType);
12815 
12816     END_INTERFACE
12817 } IMessageFilterVtbl;
12818 interface IMessageFilter {
12819     CONST_VTBL IMessageFilterVtbl* lpVtbl;
12820 };
12821 
12822 #ifdef COBJMACROS
12823 #ifndef WIDL_C_INLINE_WRAPPERS
12824 /*** IUnknown methods ***/
12825 #define IMessageFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12826 #define IMessageFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
12827 #define IMessageFilter_Release(This) (This)->lpVtbl->Release(This)
12828 /*** IMessageFilter methods ***/
12829 #define IMessageFilter_HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo) (This)->lpVtbl->HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo)
12830 #define IMessageFilter_RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType) (This)->lpVtbl->RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType)
12831 #define IMessageFilter_MessagePending(This,htaskCallee,dwTickCount,dwPendingType) (This)->lpVtbl->MessagePending(This,htaskCallee,dwTickCount,dwPendingType)
12832 #else
12833 /*** IUnknown methods ***/
12834 static FORCEINLINE HRESULT IMessageFilter_QueryInterface(IMessageFilter* This,REFIID riid,void **ppvObject) {
12835     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12836 }
12837 static FORCEINLINE ULONG IMessageFilter_AddRef(IMessageFilter* This) {
12838     return This->lpVtbl->AddRef(This);
12839 }
12840 static FORCEINLINE ULONG IMessageFilter_Release(IMessageFilter* This) {
12841     return This->lpVtbl->Release(This);
12842 }
12843 /*** IMessageFilter methods ***/
12844 static FORCEINLINE DWORD IMessageFilter_HandleInComingCall(IMessageFilter* This,DWORD dwCallType,HTASK htaskCaller,DWORD dwTickCount,LPINTERFACEINFO lpInterfaceInfo) {
12845     return This->lpVtbl->HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo);
12846 }
12847 static FORCEINLINE DWORD IMessageFilter_RetryRejectedCall(IMessageFilter* This,HTASK htaskCallee,DWORD dwTickCount,DWORD dwRejectType) {
12848     return This->lpVtbl->RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType);
12849 }
12850 static FORCEINLINE DWORD IMessageFilter_MessagePending(IMessageFilter* This,HTASK htaskCallee,DWORD dwTickCount,DWORD dwPendingType) {
12851     return This->lpVtbl->MessagePending(This,htaskCallee,dwTickCount,dwPendingType);
12852 }
12853 #endif
12854 #endif
12855 
12856 #endif
12857 
12858 DWORD STDMETHODCALLTYPE IMessageFilter_HandleInComingCall_Proxy(
12859     IMessageFilter* This,
12860     DWORD dwCallType,
12861     HTASK htaskCaller,
12862     DWORD dwTickCount,
12863     LPINTERFACEINFO lpInterfaceInfo);
12864 void __RPC_STUB IMessageFilter_HandleInComingCall_Stub(
12865     IRpcStubBuffer* This,
12866     IRpcChannelBuffer* pRpcChannelBuffer,
12867     PRPC_MESSAGE pRpcMessage,
12868     DWORD* pdwStubPhase);
12869 DWORD STDMETHODCALLTYPE IMessageFilter_RetryRejectedCall_Proxy(
12870     IMessageFilter* This,
12871     HTASK htaskCallee,
12872     DWORD dwTickCount,
12873     DWORD dwRejectType);
12874 void __RPC_STUB IMessageFilter_RetryRejectedCall_Stub(
12875     IRpcStubBuffer* This,
12876     IRpcChannelBuffer* pRpcChannelBuffer,
12877     PRPC_MESSAGE pRpcMessage,
12878     DWORD* pdwStubPhase);
12879 DWORD STDMETHODCALLTYPE IMessageFilter_MessagePending_Proxy(
12880     IMessageFilter* This,
12881     HTASK htaskCallee,
12882     DWORD dwTickCount,
12883     DWORD dwPendingType);
12884 void __RPC_STUB IMessageFilter_MessagePending_Stub(
12885     IRpcStubBuffer* This,
12886     IRpcChannelBuffer* pRpcChannelBuffer,
12887     PRPC_MESSAGE pRpcMessage,
12888     DWORD* pdwStubPhase);
12889 
12890 #endif  /* __IMessageFilter_INTERFACE_DEFINED__ */
12891 
12892 
12893 extern const FMTID FMTID_SummaryInformation;
12894 
12895 extern const FMTID FMTID_DocSummaryInformation;
12896 
12897 extern const FMTID FMTID_UserDefinedProperties;
12898 
12899 extern const FMTID FMTID_DiscardableInformation;
12900 
12901 extern const FMTID FMTID_ImageSummaryInformation;
12902 
12903 extern const FMTID FMTID_AudioSummaryInformation;
12904 
12905 extern const FMTID FMTID_VideoSummaryInformation;
12906 
12907 extern const FMTID FMTID_MediaFileSummaryInformation;
12908 
12909 /*****************************************************************************
12910  * IClassActivator interface
12911  */
12912 #ifndef __IClassActivator_INTERFACE_DEFINED__
12913 #define __IClassActivator_INTERFACE_DEFINED__
12914 
12915 DEFINE_GUID(IID_IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12916 #if defined(__cplusplus) && !defined(CINTERFACE)
12917 MIDL_INTERFACE("00000140-0000-0000-c000-000000000046")
12918 IClassActivator : public IUnknown
12919 {
12920     virtual HRESULT STDMETHODCALLTYPE GetClassObject(
12921         REFCLSID rclsid,
12922         DWORD dwClassContext,
12923         LCID locale,
12924         REFIID riid,
12925         void **ppv) = 0;
12926 
12927 };
12928 #ifdef __CRT_UUID_DECL
12929 __CRT_UUID_DECL(IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12930 #endif
12931 #else
12932 typedef struct IClassActivatorVtbl {
12933     BEGIN_INTERFACE
12934 
12935     /*** IUnknown methods ***/
12936     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12937         IClassActivator* This,
12938         REFIID riid,
12939         void **ppvObject);
12940 
12941     ULONG (STDMETHODCALLTYPE *AddRef)(
12942         IClassActivator* This);
12943 
12944     ULONG (STDMETHODCALLTYPE *Release)(
12945         IClassActivator* This);
12946 
12947     /*** IClassActivator methods ***/
12948     HRESULT (STDMETHODCALLTYPE *GetClassObject)(
12949         IClassActivator* This,
12950         REFCLSID rclsid,
12951         DWORD dwClassContext,
12952         LCID locale,
12953         REFIID riid,
12954         void **ppv);
12955 
12956     END_INTERFACE
12957 } IClassActivatorVtbl;
12958 interface IClassActivator {
12959     CONST_VTBL IClassActivatorVtbl* lpVtbl;
12960 };
12961 
12962 #ifdef COBJMACROS
12963 #ifndef WIDL_C_INLINE_WRAPPERS
12964 /*** IUnknown methods ***/
12965 #define IClassActivator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12966 #define IClassActivator_AddRef(This) (This)->lpVtbl->AddRef(This)
12967 #define IClassActivator_Release(This) (This)->lpVtbl->Release(This)
12968 /*** IClassActivator methods ***/
12969 #define IClassActivator_GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv) (This)->lpVtbl->GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv)
12970 #else
12971 /*** IUnknown methods ***/
12972 static FORCEINLINE HRESULT IClassActivator_QueryInterface(IClassActivator* This,REFIID riid,void **ppvObject) {
12973     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12974 }
12975 static FORCEINLINE ULONG IClassActivator_AddRef(IClassActivator* This) {
12976     return This->lpVtbl->AddRef(This);
12977 }
12978 static FORCEINLINE ULONG IClassActivator_Release(IClassActivator* This) {
12979     return This->lpVtbl->Release(This);
12980 }
12981 /*** IClassActivator methods ***/
12982 static FORCEINLINE HRESULT IClassActivator_GetClassObject(IClassActivator* This,REFCLSID rclsid,DWORD dwClassContext,LCID locale,REFIID riid,void **ppv) {
12983     return This->lpVtbl->GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv);
12984 }
12985 #endif
12986 #endif
12987 
12988 #endif
12989 
12990 HRESULT STDMETHODCALLTYPE IClassActivator_GetClassObject_Proxy(
12991     IClassActivator* This,
12992     REFCLSID rclsid,
12993     DWORD dwClassContext,
12994     LCID locale,
12995     REFIID riid,
12996     void **ppv);
12997 void __RPC_STUB IClassActivator_GetClassObject_Stub(
12998     IRpcStubBuffer* This,
12999     IRpcChannelBuffer* pRpcChannelBuffer,
13000     PRPC_MESSAGE pRpcMessage,
13001     DWORD* pdwStubPhase);
13002 
13003 #endif  /* __IClassActivator_INTERFACE_DEFINED__ */
13004 
13005 #endif
13006 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
13007 /*****************************************************************************
13008  * IFillLockBytes interface
13009  */
13010 #ifndef __IFillLockBytes_INTERFACE_DEFINED__
13011 #define __IFillLockBytes_INTERFACE_DEFINED__
13012 
13013 DEFINE_GUID(IID_IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5);
13014 #if defined(__cplusplus) && !defined(CINTERFACE)
13015 MIDL_INTERFACE("99caf010-415e-11cf-8814-00aa00b569f5")
13016 IFillLockBytes : public IUnknown
13017 {
13018     virtual HRESULT STDMETHODCALLTYPE FillAppend(
13019         const void *pv,
13020         ULONG cb,
13021         ULONG *pcbWritten) = 0;
13022 
13023     virtual HRESULT STDMETHODCALLTYPE FillAt(
13024         ULARGE_INTEGER ulOffset,
13025         const void *pv,
13026         ULONG cb,
13027         ULONG *pcbWritten) = 0;
13028 
13029     virtual HRESULT STDMETHODCALLTYPE SetFillSize(
13030         ULARGE_INTEGER ulSize) = 0;
13031 
13032     virtual HRESULT STDMETHODCALLTYPE Terminate(
13033         WINBOOL bCanceled) = 0;
13034 
13035 };
13036 #ifdef __CRT_UUID_DECL
13037 __CRT_UUID_DECL(IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5)
13038 #endif
13039 #else
13040 typedef struct IFillLockBytesVtbl {
13041     BEGIN_INTERFACE
13042 
13043     /*** IUnknown methods ***/
13044     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13045         IFillLockBytes* This,
13046         REFIID riid,
13047         void **ppvObject);
13048 
13049     ULONG (STDMETHODCALLTYPE *AddRef)(
13050         IFillLockBytes* This);
13051 
13052     ULONG (STDMETHODCALLTYPE *Release)(
13053         IFillLockBytes* This);
13054 
13055     /*** IFillLockBytes methods ***/
13056     HRESULT (STDMETHODCALLTYPE *FillAppend)(
13057         IFillLockBytes* This,
13058         const void *pv,
13059         ULONG cb,
13060         ULONG *pcbWritten);
13061 
13062     HRESULT (STDMETHODCALLTYPE *FillAt)(
13063         IFillLockBytes* This,
13064         ULARGE_INTEGER ulOffset,
13065         const void *pv,
13066         ULONG cb,
13067         ULONG *pcbWritten);
13068 
13069     HRESULT (STDMETHODCALLTYPE *SetFillSize)(
13070         IFillLockBytes* This,
13071         ULARGE_INTEGER ulSize);
13072 
13073     HRESULT (STDMETHODCALLTYPE *Terminate)(
13074         IFillLockBytes* This,
13075         WINBOOL bCanceled);
13076 
13077     END_INTERFACE
13078 } IFillLockBytesVtbl;
13079 interface IFillLockBytes {
13080     CONST_VTBL IFillLockBytesVtbl* lpVtbl;
13081 };
13082 
13083 #ifdef COBJMACROS
13084 #ifndef WIDL_C_INLINE_WRAPPERS
13085 /*** IUnknown methods ***/
13086 #define IFillLockBytes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13087 #define IFillLockBytes_AddRef(This) (This)->lpVtbl->AddRef(This)
13088 #define IFillLockBytes_Release(This) (This)->lpVtbl->Release(This)
13089 /*** IFillLockBytes methods ***/
13090 #define IFillLockBytes_FillAppend(This,pv,cb,pcbWritten) (This)->lpVtbl->FillAppend(This,pv,cb,pcbWritten)
13091 #define IFillLockBytes_FillAt(This,ulOffset,pv,cb,pcbWritten) (This)->lpVtbl->FillAt(This,ulOffset,pv,cb,pcbWritten)
13092 #define IFillLockBytes_SetFillSize(This,ulSize) (This)->lpVtbl->SetFillSize(This,ulSize)
13093 #define IFillLockBytes_Terminate(This,bCanceled) (This)->lpVtbl->Terminate(This,bCanceled)
13094 #else
13095 /*** IUnknown methods ***/
13096 static FORCEINLINE HRESULT IFillLockBytes_QueryInterface(IFillLockBytes* This,REFIID riid,void **ppvObject) {
13097     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13098 }
13099 static FORCEINLINE ULONG IFillLockBytes_AddRef(IFillLockBytes* This) {
13100     return This->lpVtbl->AddRef(This);
13101 }
13102 static FORCEINLINE ULONG IFillLockBytes_Release(IFillLockBytes* This) {
13103     return This->lpVtbl->Release(This);
13104 }
13105 /*** IFillLockBytes methods ***/
13106 static FORCEINLINE HRESULT IFillLockBytes_FillAppend(IFillLockBytes* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
13107     return This->lpVtbl->FillAppend(This,pv,cb,pcbWritten);
13108 }
13109 static FORCEINLINE HRESULT IFillLockBytes_FillAt(IFillLockBytes* This,ULARGE_INTEGER ulOffset,const void *pv,ULONG cb,ULONG *pcbWritten) {
13110     return This->lpVtbl->FillAt(This,ulOffset,pv,cb,pcbWritten);
13111 }
13112 static FORCEINLINE HRESULT IFillLockBytes_SetFillSize(IFillLockBytes* This,ULARGE_INTEGER ulSize) {
13113     return This->lpVtbl->SetFillSize(This,ulSize);
13114 }
13115 static FORCEINLINE HRESULT IFillLockBytes_Terminate(IFillLockBytes* This,WINBOOL bCanceled) {
13116     return This->lpVtbl->Terminate(This,bCanceled);
13117 }
13118 #endif
13119 #endif
13120 
13121 #endif
13122 
13123 HRESULT __stdcall IFillLockBytes_RemoteFillAppend_Proxy(
13124     IFillLockBytes* This,
13125     const byte *pv,
13126     ULONG cb,
13127     ULONG *pcbWritten);
13128 void __RPC_STUB IFillLockBytes_RemoteFillAppend_Stub(
13129     IRpcStubBuffer* This,
13130     IRpcChannelBuffer* pRpcChannelBuffer,
13131     PRPC_MESSAGE pRpcMessage,
13132     DWORD* pdwStubPhase);
13133 HRESULT __stdcall IFillLockBytes_RemoteFillAt_Proxy(
13134     IFillLockBytes* This,
13135     ULARGE_INTEGER ulOffset,
13136     const byte *pv,
13137     ULONG cb,
13138     ULONG *pcbWritten);
13139 void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub(
13140     IRpcStubBuffer* This,
13141     IRpcChannelBuffer* pRpcChannelBuffer,
13142     PRPC_MESSAGE pRpcMessage,
13143     DWORD* pdwStubPhase);
13144 HRESULT STDMETHODCALLTYPE IFillLockBytes_SetFillSize_Proxy(
13145     IFillLockBytes* This,
13146     ULARGE_INTEGER ulSize);
13147 void __RPC_STUB IFillLockBytes_SetFillSize_Stub(
13148     IRpcStubBuffer* This,
13149     IRpcChannelBuffer* pRpcChannelBuffer,
13150     PRPC_MESSAGE pRpcMessage,
13151     DWORD* pdwStubPhase);
13152 HRESULT STDMETHODCALLTYPE IFillLockBytes_Terminate_Proxy(
13153     IFillLockBytes* This,
13154     WINBOOL bCanceled);
13155 void __RPC_STUB IFillLockBytes_Terminate_Stub(
13156     IRpcStubBuffer* This,
13157     IRpcChannelBuffer* pRpcChannelBuffer,
13158     PRPC_MESSAGE pRpcMessage,
13159     DWORD* pdwStubPhase);
13160 HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
13161     IFillLockBytes* This,
13162     const void *pv,
13163     ULONG cb,
13164     ULONG *pcbWritten);
13165 HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
13166     IFillLockBytes* This,
13167     const byte *pv,
13168     ULONG cb,
13169     ULONG *pcbWritten);
13170 HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
13171     IFillLockBytes* This,
13172     ULARGE_INTEGER ulOffset,
13173     const void *pv,
13174     ULONG cb,
13175     ULONG *pcbWritten);
13176 HRESULT __RPC_STUB IFillLockBytes_FillAt_Stub(
13177     IFillLockBytes* This,
13178     ULARGE_INTEGER ulOffset,
13179     const byte *pv,
13180     ULONG cb,
13181     ULONG *pcbWritten);
13182 
13183 #endif  /* __IFillLockBytes_INTERFACE_DEFINED__ */
13184 
13185 #endif
13186 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
13187 /*****************************************************************************
13188  * IProgressNotify interface
13189  */
13190 #ifndef __IProgressNotify_INTERFACE_DEFINED__
13191 #define __IProgressNotify_INTERFACE_DEFINED__
13192 
13193 DEFINE_GUID(IID_IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
13194 #if defined(__cplusplus) && !defined(CINTERFACE)
13195 MIDL_INTERFACE("a9d758a0-4617-11cf-95fc-00aa00680db4")
13196 IProgressNotify : public IUnknown
13197 {
13198     virtual HRESULT STDMETHODCALLTYPE OnProgress(
13199         DWORD dwProgressCurrent,
13200         DWORD dwProgressMaximum,
13201         WINBOOL fAccurate,
13202         WINBOOL fOwner) = 0;
13203 
13204 };
13205 #ifdef __CRT_UUID_DECL
13206 __CRT_UUID_DECL(IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
13207 #endif
13208 #else
13209 typedef struct IProgressNotifyVtbl {
13210     BEGIN_INTERFACE
13211 
13212     /*** IUnknown methods ***/
13213     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13214         IProgressNotify* This,
13215         REFIID riid,
13216         void **ppvObject);
13217 
13218     ULONG (STDMETHODCALLTYPE *AddRef)(
13219         IProgressNotify* This);
13220 
13221     ULONG (STDMETHODCALLTYPE *Release)(
13222         IProgressNotify* This);
13223 
13224     /*** IProgressNotify methods ***/
13225     HRESULT (STDMETHODCALLTYPE *OnProgress)(
13226         IProgressNotify* This,
13227         DWORD dwProgressCurrent,
13228         DWORD dwProgressMaximum,
13229         WINBOOL fAccurate,
13230         WINBOOL fOwner);
13231 
13232     END_INTERFACE
13233 } IProgressNotifyVtbl;
13234 interface IProgressNotify {
13235     CONST_VTBL IProgressNotifyVtbl* lpVtbl;
13236 };
13237 
13238 #ifdef COBJMACROS
13239 #ifndef WIDL_C_INLINE_WRAPPERS
13240 /*** IUnknown methods ***/
13241 #define IProgressNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13242 #define IProgressNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
13243 #define IProgressNotify_Release(This) (This)->lpVtbl->Release(This)
13244 /*** IProgressNotify methods ***/
13245 #define IProgressNotify_OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner) (This)->lpVtbl->OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner)
13246 #else
13247 /*** IUnknown methods ***/
13248 static FORCEINLINE HRESULT IProgressNotify_QueryInterface(IProgressNotify* This,REFIID riid,void **ppvObject) {
13249     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13250 }
13251 static FORCEINLINE ULONG IProgressNotify_AddRef(IProgressNotify* This) {
13252     return This->lpVtbl->AddRef(This);
13253 }
13254 static FORCEINLINE ULONG IProgressNotify_Release(IProgressNotify* This) {
13255     return This->lpVtbl->Release(This);
13256 }
13257 /*** IProgressNotify methods ***/
13258 static FORCEINLINE HRESULT IProgressNotify_OnProgress(IProgressNotify* This,DWORD dwProgressCurrent,DWORD dwProgressMaximum,WINBOOL fAccurate,WINBOOL fOwner) {
13259     return This->lpVtbl->OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner);
13260 }
13261 #endif
13262 #endif
13263 
13264 #endif
13265 
13266 HRESULT STDMETHODCALLTYPE IProgressNotify_OnProgress_Proxy(
13267     IProgressNotify* This,
13268     DWORD dwProgressCurrent,
13269     DWORD dwProgressMaximum,
13270     WINBOOL fAccurate,
13271     WINBOOL fOwner);
13272 void __RPC_STUB IProgressNotify_OnProgress_Stub(
13273     IRpcStubBuffer* This,
13274     IRpcChannelBuffer* pRpcChannelBuffer,
13275     PRPC_MESSAGE pRpcMessage,
13276     DWORD* pdwStubPhase);
13277 
13278 #endif  /* __IProgressNotify_INTERFACE_DEFINED__ */
13279 
13280 #endif
13281 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
13282 /*****************************************************************************
13283  * ILayoutStorage interface
13284  */
13285 #ifndef __ILayoutStorage_INTERFACE_DEFINED__
13286 #define __ILayoutStorage_INTERFACE_DEFINED__
13287 
13288 typedef struct tagStorageLayout {
13289     DWORD LayoutType;
13290     OLECHAR *pwcsElementName;
13291     LARGE_INTEGER cOffset;
13292     LARGE_INTEGER cBytes;
13293 } StorageLayout;
13294 DEFINE_GUID(IID_ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
13295 #if defined(__cplusplus) && !defined(CINTERFACE)
13296 MIDL_INTERFACE("0e6d4d90-6738-11cf-9608-00aa00680db4")
13297 ILayoutStorage : public IUnknown
13298 {
13299     virtual HRESULT __stdcall LayoutScript(
13300         StorageLayout *pStorageLayout,
13301         DWORD nEntries,
13302         DWORD glfInterleavedFlag) = 0;
13303 
13304     virtual HRESULT __stdcall BeginMonitor(
13305         ) = 0;
13306 
13307     virtual HRESULT __stdcall EndMonitor(
13308         ) = 0;
13309 
13310     virtual HRESULT __stdcall ReLayoutDocfile(
13311         OLECHAR *pwcsNewDfName) = 0;
13312 
13313     virtual HRESULT __stdcall ReLayoutDocfileOnILockBytes(
13314         ILockBytes *pILockBytes) = 0;
13315 
13316 };
13317 #ifdef __CRT_UUID_DECL
13318 __CRT_UUID_DECL(ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
13319 #endif
13320 #else
13321 typedef struct ILayoutStorageVtbl {
13322     BEGIN_INTERFACE
13323 
13324     /*** IUnknown methods ***/
13325     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13326         ILayoutStorage* This,
13327         REFIID riid,
13328         void **ppvObject);
13329 
13330     ULONG (STDMETHODCALLTYPE *AddRef)(
13331         ILayoutStorage* This);
13332 
13333     ULONG (STDMETHODCALLTYPE *Release)(
13334         ILayoutStorage* This);
13335 
13336     /*** ILayoutStorage methods ***/
13337     HRESULT (__stdcall *LayoutScript)(
13338         ILayoutStorage* This,
13339         StorageLayout *pStorageLayout,
13340         DWORD nEntries,
13341         DWORD glfInterleavedFlag);
13342 
13343     HRESULT (__stdcall *BeginMonitor)(
13344         ILayoutStorage* This);
13345 
13346     HRESULT (__stdcall *EndMonitor)(
13347         ILayoutStorage* This);
13348 
13349     HRESULT (__stdcall *ReLayoutDocfile)(
13350         ILayoutStorage* This,
13351         OLECHAR *pwcsNewDfName);
13352 
13353     HRESULT (__stdcall *ReLayoutDocfileOnILockBytes)(
13354         ILayoutStorage* This,
13355         ILockBytes *pILockBytes);
13356 
13357     END_INTERFACE
13358 } ILayoutStorageVtbl;
13359 interface ILayoutStorage {
13360     CONST_VTBL ILayoutStorageVtbl* lpVtbl;
13361 };
13362 
13363 #ifdef COBJMACROS
13364 #ifndef WIDL_C_INLINE_WRAPPERS
13365 /*** IUnknown methods ***/
13366 #define ILayoutStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13367 #define ILayoutStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
13368 #define ILayoutStorage_Release(This) (This)->lpVtbl->Release(This)
13369 /*** ILayoutStorage methods ***/
13370 #define ILayoutStorage_LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag) (This)->lpVtbl->LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag)
13371 #define ILayoutStorage_BeginMonitor(This) (This)->lpVtbl->BeginMonitor(This)
13372 #define ILayoutStorage_EndMonitor(This) (This)->lpVtbl->EndMonitor(This)
13373 #define ILayoutStorage_ReLayoutDocfile(This,pwcsNewDfName) (This)->lpVtbl->ReLayoutDocfile(This,pwcsNewDfName)
13374 #define ILayoutStorage_ReLayoutDocfileOnILockBytes(This,pILockBytes) (This)->lpVtbl->ReLayoutDocfileOnILockBytes(This,pILockBytes)
13375 #else
13376 /*** IUnknown methods ***/
13377 static FORCEINLINE HRESULT ILayoutStorage_QueryInterface(ILayoutStorage* This,REFIID riid,void **ppvObject) {
13378     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13379 }
13380 static FORCEINLINE ULONG ILayoutStorage_AddRef(ILayoutStorage* This) {
13381     return This->lpVtbl->AddRef(This);
13382 }
13383 static FORCEINLINE ULONG ILayoutStorage_Release(ILayoutStorage* This) {
13384     return This->lpVtbl->Release(This);
13385 }
13386 /*** ILayoutStorage methods ***/
13387 static FORCEINLINE HRESULT ILayoutStorage_LayoutScript(ILayoutStorage* This,StorageLayout *pStorageLayout,DWORD nEntries,DWORD glfInterleavedFlag) {
13388     return This->lpVtbl->LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag);
13389 }
13390 static FORCEINLINE HRESULT ILayoutStorage_BeginMonitor(ILayoutStorage* This) {
13391     return This->lpVtbl->BeginMonitor(This);
13392 }
13393 static FORCEINLINE HRESULT ILayoutStorage_EndMonitor(ILayoutStorage* This) {
13394     return This->lpVtbl->EndMonitor(This);
13395 }
13396 static FORCEINLINE HRESULT ILayoutStorage_ReLayoutDocfile(ILayoutStorage* This,OLECHAR *pwcsNewDfName) {
13397     return This->lpVtbl->ReLayoutDocfile(This,pwcsNewDfName);
13398 }
13399 static FORCEINLINE HRESULT ILayoutStorage_ReLayoutDocfileOnILockBytes(ILayoutStorage* This,ILockBytes *pILockBytes) {
13400     return This->lpVtbl->ReLayoutDocfileOnILockBytes(This,pILockBytes);
13401 }
13402 #endif
13403 #endif
13404 
13405 #endif
13406 
13407 HRESULT __stdcall ILayoutStorage_LayoutScript_Proxy(
13408     ILayoutStorage* This,
13409     StorageLayout *pStorageLayout,
13410     DWORD nEntries,
13411     DWORD glfInterleavedFlag);
13412 void __RPC_STUB ILayoutStorage_LayoutScript_Stub(
13413     IRpcStubBuffer* This,
13414     IRpcChannelBuffer* pRpcChannelBuffer,
13415     PRPC_MESSAGE pRpcMessage,
13416     DWORD* pdwStubPhase);
13417 HRESULT __stdcall ILayoutStorage_BeginMonitor_Proxy(
13418     ILayoutStorage* This);
13419 void __RPC_STUB ILayoutStorage_BeginMonitor_Stub(
13420     IRpcStubBuffer* This,
13421     IRpcChannelBuffer* pRpcChannelBuffer,
13422     PRPC_MESSAGE pRpcMessage,
13423     DWORD* pdwStubPhase);
13424 HRESULT __stdcall ILayoutStorage_EndMonitor_Proxy(
13425     ILayoutStorage* This);
13426 void __RPC_STUB ILayoutStorage_EndMonitor_Stub(
13427     IRpcStubBuffer* This,
13428     IRpcChannelBuffer* pRpcChannelBuffer,
13429     PRPC_MESSAGE pRpcMessage,
13430     DWORD* pdwStubPhase);
13431 HRESULT __stdcall ILayoutStorage_ReLayoutDocfile_Proxy(
13432     ILayoutStorage* This,
13433     OLECHAR *pwcsNewDfName);
13434 void __RPC_STUB ILayoutStorage_ReLayoutDocfile_Stub(
13435     IRpcStubBuffer* This,
13436     IRpcChannelBuffer* pRpcChannelBuffer,
13437     PRPC_MESSAGE pRpcMessage,
13438     DWORD* pdwStubPhase);
13439 HRESULT __stdcall ILayoutStorage_ReLayoutDocfileOnILockBytes_Proxy(
13440     ILayoutStorage* This,
13441     ILockBytes *pILockBytes);
13442 void __RPC_STUB ILayoutStorage_ReLayoutDocfileOnILockBytes_Stub(
13443     IRpcStubBuffer* This,
13444     IRpcChannelBuffer* pRpcChannelBuffer,
13445     PRPC_MESSAGE pRpcMessage,
13446     DWORD* pdwStubPhase);
13447 
13448 #endif  /* __ILayoutStorage_INTERFACE_DEFINED__ */
13449 
13450 #endif
13451 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
13452 /*****************************************************************************
13453  * IBlockingLock interface
13454  */
13455 #ifndef __IBlockingLock_INTERFACE_DEFINED__
13456 #define __IBlockingLock_INTERFACE_DEFINED__
13457 
13458 DEFINE_GUID(IID_IBlockingLock, 0x30f3d47a, 0x6447, 0x11d1, 0x8e,0x3c, 0x00,0xc0,0x4f,0xb9,0x38,0x6d);
13459 #if defined(__cplusplus) && !defined(CINTERFACE)
13460 MIDL_INTERFACE("30f3d47a-6447-11d1-8e3c-00c04fb9386d")
13461 IBlockingLock : public IUnknown
13462 {
13463     virtual HRESULT STDMETHODCALLTYPE Lock(
13464         DWORD dwTimeout) = 0;
13465 
13466     virtual HRESULT STDMETHODCALLTYPE Unlock(
13467         ) = 0;
13468 
13469 };
13470 #ifdef __CRT_UUID_DECL
13471 __CRT_UUID_DECL(IBlockingLock, 0x30f3d47a, 0x6447, 0x11d1, 0x8e,0x3c, 0x00,0xc0,0x4f,0xb9,0x38,0x6d)
13472 #endif
13473 #else
13474 typedef struct IBlockingLockVtbl {
13475     BEGIN_INTERFACE
13476 
13477     /*** IUnknown methods ***/
13478     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13479         IBlockingLock* This,
13480         REFIID riid,
13481         void **ppvObject);
13482 
13483     ULONG (STDMETHODCALLTYPE *AddRef)(
13484         IBlockingLock* This);
13485 
13486     ULONG (STDMETHODCALLTYPE *Release)(
13487         IBlockingLock* This);
13488 
13489     /*** IBlockingLock methods ***/
13490     HRESULT (STDMETHODCALLTYPE *Lock)(
13491         IBlockingLock* This,
13492         DWORD dwTimeout);
13493 
13494     HRESULT (STDMETHODCALLTYPE *Unlock)(
13495         IBlockingLock* This);
13496 
13497     END_INTERFACE
13498 } IBlockingLockVtbl;
13499 interface IBlockingLock {
13500     CONST_VTBL IBlockingLockVtbl* lpVtbl;
13501 };
13502 
13503 #ifdef COBJMACROS
13504 #ifndef WIDL_C_INLINE_WRAPPERS
13505 /*** IUnknown methods ***/
13506 #define IBlockingLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13507 #define IBlockingLock_AddRef(This) (This)->lpVtbl->AddRef(This)
13508 #define IBlockingLock_Release(This) (This)->lpVtbl->Release(This)
13509 /*** IBlockingLock methods ***/
13510 #define IBlockingLock_Lock(This,dwTimeout) (This)->lpVtbl->Lock(This,dwTimeout)
13511 #define IBlockingLock_Unlock(This) (This)->lpVtbl->Unlock(This)
13512 #else
13513 /*** IUnknown methods ***/
13514 static FORCEINLINE HRESULT IBlockingLock_QueryInterface(IBlockingLock* This,REFIID riid,void **ppvObject) {
13515     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13516 }
13517 static FORCEINLINE ULONG IBlockingLock_AddRef(IBlockingLock* This) {
13518     return This->lpVtbl->AddRef(This);
13519 }
13520 static FORCEINLINE ULONG IBlockingLock_Release(IBlockingLock* This) {
13521     return This->lpVtbl->Release(This);
13522 }
13523 /*** IBlockingLock methods ***/
13524 static FORCEINLINE HRESULT IBlockingLock_Lock(IBlockingLock* This,DWORD dwTimeout) {
13525     return This->lpVtbl->Lock(This,dwTimeout);
13526 }
13527 static FORCEINLINE HRESULT IBlockingLock_Unlock(IBlockingLock* This) {
13528     return This->lpVtbl->Unlock(This);
13529 }
13530 #endif
13531 #endif
13532 
13533 #endif
13534 
13535 HRESULT STDMETHODCALLTYPE IBlockingLock_Lock_Proxy(
13536     IBlockingLock* This,
13537     DWORD dwTimeout);
13538 void __RPC_STUB IBlockingLock_Lock_Stub(
13539     IRpcStubBuffer* This,
13540     IRpcChannelBuffer* pRpcChannelBuffer,
13541     PRPC_MESSAGE pRpcMessage,
13542     DWORD* pdwStubPhase);
13543 HRESULT STDMETHODCALLTYPE IBlockingLock_Unlock_Proxy(
13544     IBlockingLock* This);
13545 void __RPC_STUB IBlockingLock_Unlock_Stub(
13546     IRpcStubBuffer* This,
13547     IRpcChannelBuffer* pRpcChannelBuffer,
13548     PRPC_MESSAGE pRpcMessage,
13549     DWORD* pdwStubPhase);
13550 
13551 #endif  /* __IBlockingLock_INTERFACE_DEFINED__ */
13552 
13553 /*****************************************************************************
13554  * ITimeAndNoticeControl interface
13555  */
13556 #ifndef __ITimeAndNoticeControl_INTERFACE_DEFINED__
13557 #define __ITimeAndNoticeControl_INTERFACE_DEFINED__
13558 
13559 DEFINE_GUID(IID_ITimeAndNoticeControl, 0xbc0bf6ae, 0x8878, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4);
13560 #if defined(__cplusplus) && !defined(CINTERFACE)
13561 MIDL_INTERFACE("bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4")
13562 ITimeAndNoticeControl : public IUnknown
13563 {
13564     virtual HRESULT STDMETHODCALLTYPE SuppressChanges(
13565         DWORD res1,
13566         DWORD res2) = 0;
13567 
13568 };
13569 #ifdef __CRT_UUID_DECL
13570 __CRT_UUID_DECL(ITimeAndNoticeControl, 0xbc0bf6ae, 0x8878, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4)
13571 #endif
13572 #else
13573 typedef struct ITimeAndNoticeControlVtbl {
13574     BEGIN_INTERFACE
13575 
13576     /*** IUnknown methods ***/
13577     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13578         ITimeAndNoticeControl* This,
13579         REFIID riid,
13580         void **ppvObject);
13581 
13582     ULONG (STDMETHODCALLTYPE *AddRef)(
13583         ITimeAndNoticeControl* This);
13584 
13585     ULONG (STDMETHODCALLTYPE *Release)(
13586         ITimeAndNoticeControl* This);
13587 
13588     /*** ITimeAndNoticeControl methods ***/
13589     HRESULT (STDMETHODCALLTYPE *SuppressChanges)(
13590         ITimeAndNoticeControl* This,
13591         DWORD res1,
13592         DWORD res2);
13593 
13594     END_INTERFACE
13595 } ITimeAndNoticeControlVtbl;
13596 interface ITimeAndNoticeControl {
13597     CONST_VTBL ITimeAndNoticeControlVtbl* lpVtbl;
13598 };
13599 
13600 #ifdef COBJMACROS
13601 #ifndef WIDL_C_INLINE_WRAPPERS
13602 /*** IUnknown methods ***/
13603 #define ITimeAndNoticeControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13604 #define ITimeAndNoticeControl_AddRef(This) (This)->lpVtbl->AddRef(This)
13605 #define ITimeAndNoticeControl_Release(This) (This)->lpVtbl->Release(This)
13606 /*** ITimeAndNoticeControl methods ***/
13607 #define ITimeAndNoticeControl_SuppressChanges(This,res1,res2) (This)->lpVtbl->SuppressChanges(This,res1,res2)
13608 #else
13609 /*** IUnknown methods ***/
13610 static FORCEINLINE HRESULT ITimeAndNoticeControl_QueryInterface(ITimeAndNoticeControl* This,REFIID riid,void **ppvObject) {
13611     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13612 }
13613 static FORCEINLINE ULONG ITimeAndNoticeControl_AddRef(ITimeAndNoticeControl* This) {
13614     return This->lpVtbl->AddRef(This);
13615 }
13616 static FORCEINLINE ULONG ITimeAndNoticeControl_Release(ITimeAndNoticeControl* This) {
13617     return This->lpVtbl->Release(This);
13618 }
13619 /*** ITimeAndNoticeControl methods ***/
13620 static FORCEINLINE HRESULT ITimeAndNoticeControl_SuppressChanges(ITimeAndNoticeControl* This,DWORD res1,DWORD res2) {
13621     return This->lpVtbl->SuppressChanges(This,res1,res2);
13622 }
13623 #endif
13624 #endif
13625 
13626 #endif
13627 
13628 HRESULT STDMETHODCALLTYPE ITimeAndNoticeControl_SuppressChanges_Proxy(
13629     ITimeAndNoticeControl* This,
13630     DWORD res1,
13631     DWORD res2);
13632 void __RPC_STUB ITimeAndNoticeControl_SuppressChanges_Stub(
13633     IRpcStubBuffer* This,
13634     IRpcChannelBuffer* pRpcChannelBuffer,
13635     PRPC_MESSAGE pRpcMessage,
13636     DWORD* pdwStubPhase);
13637 
13638 #endif  /* __ITimeAndNoticeControl_INTERFACE_DEFINED__ */
13639 
13640 /*****************************************************************************
13641  * IOplockStorage interface
13642  */
13643 #ifndef __IOplockStorage_INTERFACE_DEFINED__
13644 #define __IOplockStorage_INTERFACE_DEFINED__
13645 
13646 DEFINE_GUID(IID_IOplockStorage, 0x8d19c834, 0x8879, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4);
13647 #if defined(__cplusplus) && !defined(CINTERFACE)
13648 MIDL_INTERFACE("8d19c834-8879-11d1-83e9-00c04fc2c6d4")
13649 IOplockStorage : public IUnknown
13650 {
13651     virtual HRESULT STDMETHODCALLTYPE CreateStorageEx(
13652         LPCWSTR pwcsName,
13653         DWORD grfMode,
13654         DWORD stgfmt,
13655         DWORD grfAttrs,
13656         REFIID riid,
13657         void **ppstgOpen) = 0;
13658 
13659     virtual HRESULT STDMETHODCALLTYPE OpenStorageEx(
13660         LPCWSTR pwcsName,
13661         DWORD grfMode,
13662         DWORD stgfmt,
13663         DWORD grfAttrs,
13664         REFIID riid,
13665         void **ppstgOpen) = 0;
13666 
13667 };
13668 #ifdef __CRT_UUID_DECL
13669 __CRT_UUID_DECL(IOplockStorage, 0x8d19c834, 0x8879, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4)
13670 #endif
13671 #else
13672 typedef struct IOplockStorageVtbl {
13673     BEGIN_INTERFACE
13674 
13675     /*** IUnknown methods ***/
13676     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13677         IOplockStorage* This,
13678         REFIID riid,
13679         void **ppvObject);
13680 
13681     ULONG (STDMETHODCALLTYPE *AddRef)(
13682         IOplockStorage* This);
13683 
13684     ULONG (STDMETHODCALLTYPE *Release)(
13685         IOplockStorage* This);
13686 
13687     /*** IOplockStorage methods ***/
13688     HRESULT (STDMETHODCALLTYPE *CreateStorageEx)(
13689         IOplockStorage* This,
13690         LPCWSTR pwcsName,
13691         DWORD grfMode,
13692         DWORD stgfmt,
13693         DWORD grfAttrs,
13694         REFIID riid,
13695         void **ppstgOpen);
13696 
13697     HRESULT (STDMETHODCALLTYPE *OpenStorageEx)(
13698         IOplockStorage* This,
13699         LPCWSTR pwcsName,
13700         DWORD grfMode,
13701         DWORD stgfmt,
13702         DWORD grfAttrs,
13703         REFIID riid,
13704         void **ppstgOpen);
13705 
13706     END_INTERFACE
13707 } IOplockStorageVtbl;
13708 interface IOplockStorage {
13709     CONST_VTBL IOplockStorageVtbl* lpVtbl;
13710 };
13711 
13712 #ifdef COBJMACROS
13713 #ifndef WIDL_C_INLINE_WRAPPERS
13714 /*** IUnknown methods ***/
13715 #define IOplockStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13716 #define IOplockStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
13717 #define IOplockStorage_Release(This) (This)->lpVtbl->Release(This)
13718 /*** IOplockStorage methods ***/
13719 #define IOplockStorage_CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen) (This)->lpVtbl->CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen)
13720 #define IOplockStorage_OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen) (This)->lpVtbl->OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen)
13721 #else
13722 /*** IUnknown methods ***/
13723 static FORCEINLINE HRESULT IOplockStorage_QueryInterface(IOplockStorage* This,REFIID riid,void **ppvObject) {
13724     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13725 }
13726 static FORCEINLINE ULONG IOplockStorage_AddRef(IOplockStorage* This) {
13727     return This->lpVtbl->AddRef(This);
13728 }
13729 static FORCEINLINE ULONG IOplockStorage_Release(IOplockStorage* This) {
13730     return This->lpVtbl->Release(This);
13731 }
13732 /*** IOplockStorage methods ***/
13733 static FORCEINLINE HRESULT IOplockStorage_CreateStorageEx(IOplockStorage* This,LPCWSTR pwcsName,DWORD grfMode,DWORD stgfmt,DWORD grfAttrs,REFIID riid,void **ppstgOpen) {
13734     return This->lpVtbl->CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen);
13735 }
13736 static FORCEINLINE HRESULT IOplockStorage_OpenStorageEx(IOplockStorage* This,LPCWSTR pwcsName,DWORD grfMode,DWORD stgfmt,DWORD grfAttrs,REFIID riid,void **ppstgOpen) {
13737     return This->lpVtbl->OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen);
13738 }
13739 #endif
13740 #endif
13741 
13742 #endif
13743 
13744 HRESULT STDMETHODCALLTYPE IOplockStorage_CreateStorageEx_Proxy(
13745     IOplockStorage* This,
13746     LPCWSTR pwcsName,
13747     DWORD grfMode,
13748     DWORD stgfmt,
13749     DWORD grfAttrs,
13750     REFIID riid,
13751     void **ppstgOpen);
13752 void __RPC_STUB IOplockStorage_CreateStorageEx_Stub(
13753     IRpcStubBuffer* This,
13754     IRpcChannelBuffer* pRpcChannelBuffer,
13755     PRPC_MESSAGE pRpcMessage,
13756     DWORD* pdwStubPhase);
13757 HRESULT STDMETHODCALLTYPE IOplockStorage_OpenStorageEx_Proxy(
13758     IOplockStorage* This,
13759     LPCWSTR pwcsName,
13760     DWORD grfMode,
13761     DWORD stgfmt,
13762     DWORD grfAttrs,
13763     REFIID riid,
13764     void **ppstgOpen);
13765 void __RPC_STUB IOplockStorage_OpenStorageEx_Stub(
13766     IRpcStubBuffer* This,
13767     IRpcChannelBuffer* pRpcChannelBuffer,
13768     PRPC_MESSAGE pRpcMessage,
13769     DWORD* pdwStubPhase);
13770 
13771 #endif  /* __IOplockStorage_INTERFACE_DEFINED__ */
13772 
13773 #endif
13774 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
13775 /*****************************************************************************
13776  * IDirectWriterLock interface
13777  */
13778 #ifndef __IDirectWriterLock_INTERFACE_DEFINED__
13779 #define __IDirectWriterLock_INTERFACE_DEFINED__
13780 
13781 DEFINE_GUID(IID_IDirectWriterLock, 0x0e6d4d92, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
13782 #if defined(__cplusplus) && !defined(CINTERFACE)
13783 MIDL_INTERFACE("0e6d4d92-6738-11cf-9608-00aa00680db4")
13784 IDirectWriterLock : public IUnknown
13785 {
13786     virtual HRESULT STDMETHODCALLTYPE WaitForWriteAccess(
13787         DWORD dwTimeout) = 0;
13788 
13789     virtual HRESULT STDMETHODCALLTYPE ReleaseWriteAccess(
13790         ) = 0;
13791 
13792     virtual HRESULT STDMETHODCALLTYPE HaveWriteAccess(
13793         ) = 0;
13794 
13795 };
13796 #ifdef __CRT_UUID_DECL
13797 __CRT_UUID_DECL(IDirectWriterLock, 0x0e6d4d92, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
13798 #endif
13799 #else
13800 typedef struct IDirectWriterLockVtbl {
13801     BEGIN_INTERFACE
13802 
13803     /*** IUnknown methods ***/
13804     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13805         IDirectWriterLock* This,
13806         REFIID riid,
13807         void **ppvObject);
13808 
13809     ULONG (STDMETHODCALLTYPE *AddRef)(
13810         IDirectWriterLock* This);
13811 
13812     ULONG (STDMETHODCALLTYPE *Release)(
13813         IDirectWriterLock* This);
13814 
13815     /*** IDirectWriterLock methods ***/
13816     HRESULT (STDMETHODCALLTYPE *WaitForWriteAccess)(
13817         IDirectWriterLock* This,
13818         DWORD dwTimeout);
13819 
13820     HRESULT (STDMETHODCALLTYPE *ReleaseWriteAccess)(
13821         IDirectWriterLock* This);
13822 
13823     HRESULT (STDMETHODCALLTYPE *HaveWriteAccess)(
13824         IDirectWriterLock* This);
13825 
13826     END_INTERFACE
13827 } IDirectWriterLockVtbl;
13828 interface IDirectWriterLock {
13829     CONST_VTBL IDirectWriterLockVtbl* lpVtbl;
13830 };
13831 
13832 #ifdef COBJMACROS
13833 #ifndef WIDL_C_INLINE_WRAPPERS
13834 /*** IUnknown methods ***/
13835 #define IDirectWriterLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13836 #define IDirectWriterLock_AddRef(This) (This)->lpVtbl->AddRef(This)
13837 #define IDirectWriterLock_Release(This) (This)->lpVtbl->Release(This)
13838 /*** IDirectWriterLock methods ***/
13839 #define IDirectWriterLock_WaitForWriteAccess(This,dwTimeout) (This)->lpVtbl->WaitForWriteAccess(This,dwTimeout)
13840 #define IDirectWriterLock_ReleaseWriteAccess(This) (This)->lpVtbl->ReleaseWriteAccess(This)
13841 #define IDirectWriterLock_HaveWriteAccess(This) (This)->lpVtbl->HaveWriteAccess(This)
13842 #else
13843 /*** IUnknown methods ***/
13844 static FORCEINLINE HRESULT IDirectWriterLock_QueryInterface(IDirectWriterLock* This,REFIID riid,void **ppvObject) {
13845     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13846 }
13847 static FORCEINLINE ULONG IDirectWriterLock_AddRef(IDirectWriterLock* This) {
13848     return This->lpVtbl->AddRef(This);
13849 }
13850 static FORCEINLINE ULONG IDirectWriterLock_Release(IDirectWriterLock* This) {
13851     return This->lpVtbl->Release(This);
13852 }
13853 /*** IDirectWriterLock methods ***/
13854 static FORCEINLINE HRESULT IDirectWriterLock_WaitForWriteAccess(IDirectWriterLock* This,DWORD dwTimeout) {
13855     return This->lpVtbl->WaitForWriteAccess(This,dwTimeout);
13856 }
13857 static FORCEINLINE HRESULT IDirectWriterLock_ReleaseWriteAccess(IDirectWriterLock* This) {
13858     return This->lpVtbl->ReleaseWriteAccess(This);
13859 }
13860 static FORCEINLINE HRESULT IDirectWriterLock_HaveWriteAccess(IDirectWriterLock* This) {
13861     return This->lpVtbl->HaveWriteAccess(This);
13862 }
13863 #endif
13864 #endif
13865 
13866 #endif
13867 
13868 HRESULT STDMETHODCALLTYPE IDirectWriterLock_WaitForWriteAccess_Proxy(
13869     IDirectWriterLock* This,
13870     DWORD dwTimeout);
13871 void __RPC_STUB IDirectWriterLock_WaitForWriteAccess_Stub(
13872     IRpcStubBuffer* This,
13873     IRpcChannelBuffer* pRpcChannelBuffer,
13874     PRPC_MESSAGE pRpcMessage,
13875     DWORD* pdwStubPhase);
13876 HRESULT STDMETHODCALLTYPE IDirectWriterLock_ReleaseWriteAccess_Proxy(
13877     IDirectWriterLock* This);
13878 void __RPC_STUB IDirectWriterLock_ReleaseWriteAccess_Stub(
13879     IRpcStubBuffer* This,
13880     IRpcChannelBuffer* pRpcChannelBuffer,
13881     PRPC_MESSAGE pRpcMessage,
13882     DWORD* pdwStubPhase);
13883 HRESULT STDMETHODCALLTYPE IDirectWriterLock_HaveWriteAccess_Proxy(
13884     IDirectWriterLock* This);
13885 void __RPC_STUB IDirectWriterLock_HaveWriteAccess_Stub(
13886     IRpcStubBuffer* This,
13887     IRpcChannelBuffer* pRpcChannelBuffer,
13888     PRPC_MESSAGE pRpcMessage,
13889     DWORD* pdwStubPhase);
13890 
13891 #endif  /* __IDirectWriterLock_INTERFACE_DEFINED__ */
13892 
13893 #endif
13894 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
13895 /*****************************************************************************
13896  * IUrlMon interface
13897  */
13898 #ifndef __IUrlMon_INTERFACE_DEFINED__
13899 #define __IUrlMon_INTERFACE_DEFINED__
13900 
13901 DEFINE_GUID(IID_IUrlMon, 0x00000026, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
13902 #if defined(__cplusplus) && !defined(CINTERFACE)
13903 MIDL_INTERFACE("00000026-0000-0000-c000-000000000046")
13904 IUrlMon : public IUnknown
13905 {
13906     virtual HRESULT STDMETHODCALLTYPE AsyncGetClassBits(
13907         REFCLSID rclsid,
13908         LPCWSTR pszTYPE,
13909         LPCWSTR pszExt,
13910         DWORD dwFileVersionMS,
13911         DWORD dwFileVersionLS,
13912         LPCWSTR pszCodeBase,
13913         IBindCtx *pbc,
13914         DWORD dwClassContext,
13915         REFIID riid,
13916         DWORD flags) = 0;
13917 
13918 };
13919 #ifdef __CRT_UUID_DECL
13920 __CRT_UUID_DECL(IUrlMon, 0x00000026, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
13921 #endif
13922 #else
13923 typedef struct IUrlMonVtbl {
13924     BEGIN_INTERFACE
13925 
13926     /*** IUnknown methods ***/
13927     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13928         IUrlMon* This,
13929         REFIID riid,
13930         void **ppvObject);
13931 
13932     ULONG (STDMETHODCALLTYPE *AddRef)(
13933         IUrlMon* This);
13934 
13935     ULONG (STDMETHODCALLTYPE *Release)(
13936         IUrlMon* This);
13937 
13938     /*** IUrlMon methods ***/
13939     HRESULT (STDMETHODCALLTYPE *AsyncGetClassBits)(
13940         IUrlMon* This,
13941         REFCLSID rclsid,
13942         LPCWSTR pszTYPE,
13943         LPCWSTR pszExt,
13944         DWORD dwFileVersionMS,
13945         DWORD dwFileVersionLS,
13946         LPCWSTR pszCodeBase,
13947         IBindCtx *pbc,
13948         DWORD dwClassContext,
13949         REFIID riid,
13950         DWORD flags);
13951 
13952     END_INTERFACE
13953 } IUrlMonVtbl;
13954 interface IUrlMon {
13955     CONST_VTBL IUrlMonVtbl* lpVtbl;
13956 };
13957 
13958 #ifdef COBJMACROS
13959 #ifndef WIDL_C_INLINE_WRAPPERS
13960 /*** IUnknown methods ***/
13961 #define IUrlMon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13962 #define IUrlMon_AddRef(This) (This)->lpVtbl->AddRef(This)
13963 #define IUrlMon_Release(This) (This)->lpVtbl->Release(This)
13964 /*** IUrlMon methods ***/
13965 #define IUrlMon_AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags) (This)->lpVtbl->AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags)
13966 #else
13967 /*** IUnknown methods ***/
13968 static FORCEINLINE HRESULT IUrlMon_QueryInterface(IUrlMon* This,REFIID riid,void **ppvObject) {
13969     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13970 }
13971 static FORCEINLINE ULONG IUrlMon_AddRef(IUrlMon* This) {
13972     return This->lpVtbl->AddRef(This);
13973 }
13974 static FORCEINLINE ULONG IUrlMon_Release(IUrlMon* This) {
13975     return This->lpVtbl->Release(This);
13976 }
13977 /*** IUrlMon methods ***/
13978 static FORCEINLINE HRESULT IUrlMon_AsyncGetClassBits(IUrlMon* This,REFCLSID rclsid,LPCWSTR pszTYPE,LPCWSTR pszExt,DWORD dwFileVersionMS,DWORD dwFileVersionLS,LPCWSTR pszCodeBase,IBindCtx *pbc,DWORD dwClassContext,REFIID riid,DWORD flags) {
13979     return This->lpVtbl->AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags);
13980 }
13981 #endif
13982 #endif
13983 
13984 #endif
13985 
13986 HRESULT STDMETHODCALLTYPE IUrlMon_AsyncGetClassBits_Proxy(
13987     IUrlMon* This,
13988     REFCLSID rclsid,
13989     LPCWSTR pszTYPE,
13990     LPCWSTR pszExt,
13991     DWORD dwFileVersionMS,
13992     DWORD dwFileVersionLS,
13993     LPCWSTR pszCodeBase,
13994     IBindCtx *pbc,
13995     DWORD dwClassContext,
13996     REFIID riid,
13997     DWORD flags);
13998 void __RPC_STUB IUrlMon_AsyncGetClassBits_Stub(
13999     IRpcStubBuffer* This,
14000     IRpcChannelBuffer* pRpcChannelBuffer,
14001     PRPC_MESSAGE pRpcMessage,
14002     DWORD* pdwStubPhase);
14003 
14004 #endif  /* __IUrlMon_INTERFACE_DEFINED__ */
14005 
14006 /*****************************************************************************
14007  * IForegroundTransfer interface
14008  */
14009 #ifndef __IForegroundTransfer_INTERFACE_DEFINED__
14010 #define __IForegroundTransfer_INTERFACE_DEFINED__
14011 
14012 DEFINE_GUID(IID_IForegroundTransfer, 0x00000145, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14013 #if defined(__cplusplus) && !defined(CINTERFACE)
14014 MIDL_INTERFACE("00000145-0000-0000-c000-000000000046")
14015 IForegroundTransfer : public IUnknown
14016 {
14017     virtual HRESULT STDMETHODCALLTYPE AllowForegroundTransfer(
14018         void *lpvReserved) = 0;
14019 
14020 };
14021 #ifdef __CRT_UUID_DECL
14022 __CRT_UUID_DECL(IForegroundTransfer, 0x00000145, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14023 #endif
14024 #else
14025 typedef struct IForegroundTransferVtbl {
14026     BEGIN_INTERFACE
14027 
14028     /*** IUnknown methods ***/
14029     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14030         IForegroundTransfer* This,
14031         REFIID riid,
14032         void **ppvObject);
14033 
14034     ULONG (STDMETHODCALLTYPE *AddRef)(
14035         IForegroundTransfer* This);
14036 
14037     ULONG (STDMETHODCALLTYPE *Release)(
14038         IForegroundTransfer* This);
14039 
14040     /*** IForegroundTransfer methods ***/
14041     HRESULT (STDMETHODCALLTYPE *AllowForegroundTransfer)(
14042         IForegroundTransfer* This,
14043         void *lpvReserved);
14044 
14045     END_INTERFACE
14046 } IForegroundTransferVtbl;
14047 interface IForegroundTransfer {
14048     CONST_VTBL IForegroundTransferVtbl* lpVtbl;
14049 };
14050 
14051 #ifdef COBJMACROS
14052 #ifndef WIDL_C_INLINE_WRAPPERS
14053 /*** IUnknown methods ***/
14054 #define IForegroundTransfer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14055 #define IForegroundTransfer_AddRef(This) (This)->lpVtbl->AddRef(This)
14056 #define IForegroundTransfer_Release(This) (This)->lpVtbl->Release(This)
14057 /*** IForegroundTransfer methods ***/
14058 #define IForegroundTransfer_AllowForegroundTransfer(This,lpvReserved) (This)->lpVtbl->AllowForegroundTransfer(This,lpvReserved)
14059 #else
14060 /*** IUnknown methods ***/
14061 static FORCEINLINE HRESULT IForegroundTransfer_QueryInterface(IForegroundTransfer* This,REFIID riid,void **ppvObject) {
14062     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14063 }
14064 static FORCEINLINE ULONG IForegroundTransfer_AddRef(IForegroundTransfer* This) {
14065     return This->lpVtbl->AddRef(This);
14066 }
14067 static FORCEINLINE ULONG IForegroundTransfer_Release(IForegroundTransfer* This) {
14068     return This->lpVtbl->Release(This);
14069 }
14070 /*** IForegroundTransfer methods ***/
14071 static FORCEINLINE HRESULT IForegroundTransfer_AllowForegroundTransfer(IForegroundTransfer* This,void *lpvReserved) {
14072     return This->lpVtbl->AllowForegroundTransfer(This,lpvReserved);
14073 }
14074 #endif
14075 #endif
14076 
14077 #endif
14078 
14079 HRESULT STDMETHODCALLTYPE IForegroundTransfer_AllowForegroundTransfer_Proxy(
14080     IForegroundTransfer* This,
14081     void *lpvReserved);
14082 void __RPC_STUB IForegroundTransfer_AllowForegroundTransfer_Stub(
14083     IRpcStubBuffer* This,
14084     IRpcChannelBuffer* pRpcChannelBuffer,
14085     PRPC_MESSAGE pRpcMessage,
14086     DWORD* pdwStubPhase);
14087 
14088 #endif  /* __IForegroundTransfer_INTERFACE_DEFINED__ */
14089 
14090 /*****************************************************************************
14091  * IThumbnailExtractor interface
14092  */
14093 #ifndef __IThumbnailExtractor_INTERFACE_DEFINED__
14094 #define __IThumbnailExtractor_INTERFACE_DEFINED__
14095 
14096 DEFINE_GUID(IID_IThumbnailExtractor, 0x969dc708, 0x5c76, 0x11d1, 0x8d,0x86, 0x00,0x00,0xf8,0x04,0xb0,0x57);
14097 #if defined(__cplusplus) && !defined(CINTERFACE)
14098 MIDL_INTERFACE("969dc708-5c76-11d1-8d86-0000f804b057")
14099 IThumbnailExtractor : public IUnknown
14100 {
14101     virtual HRESULT STDMETHODCALLTYPE ExtractThumbnail(
14102         IStorage *pStg,
14103         ULONG ulLength,
14104         ULONG ulHeight,
14105         ULONG *pulOutputLength,
14106         ULONG *pulOutputHeight,
14107         HBITMAP *phOutputBitmap) = 0;
14108 
14109     virtual HRESULT STDMETHODCALLTYPE OnFileUpdated(
14110         IStorage *pStg) = 0;
14111 
14112 };
14113 #ifdef __CRT_UUID_DECL
14114 __CRT_UUID_DECL(IThumbnailExtractor, 0x969dc708, 0x5c76, 0x11d1, 0x8d,0x86, 0x00,0x00,0xf8,0x04,0xb0,0x57)
14115 #endif
14116 #else
14117 typedef struct IThumbnailExtractorVtbl {
14118     BEGIN_INTERFACE
14119 
14120     /*** IUnknown methods ***/
14121     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14122         IThumbnailExtractor* This,
14123         REFIID riid,
14124         void **ppvObject);
14125 
14126     ULONG (STDMETHODCALLTYPE *AddRef)(
14127         IThumbnailExtractor* This);
14128 
14129     ULONG (STDMETHODCALLTYPE *Release)(
14130         IThumbnailExtractor* This);
14131 
14132     /*** IThumbnailExtractor methods ***/
14133     HRESULT (STDMETHODCALLTYPE *ExtractThumbnail)(
14134         IThumbnailExtractor* This,
14135         IStorage *pStg,
14136         ULONG ulLength,
14137         ULONG ulHeight,
14138         ULONG *pulOutputLength,
14139         ULONG *pulOutputHeight,
14140         HBITMAP *phOutputBitmap);
14141 
14142     HRESULT (STDMETHODCALLTYPE *OnFileUpdated)(
14143         IThumbnailExtractor* This,
14144         IStorage *pStg);
14145 
14146     END_INTERFACE
14147 } IThumbnailExtractorVtbl;
14148 interface IThumbnailExtractor {
14149     CONST_VTBL IThumbnailExtractorVtbl* lpVtbl;
14150 };
14151 
14152 #ifdef COBJMACROS
14153 #ifndef WIDL_C_INLINE_WRAPPERS
14154 /*** IUnknown methods ***/
14155 #define IThumbnailExtractor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14156 #define IThumbnailExtractor_AddRef(This) (This)->lpVtbl->AddRef(This)
14157 #define IThumbnailExtractor_Release(This) (This)->lpVtbl->Release(This)
14158 /*** IThumbnailExtractor methods ***/
14159 #define IThumbnailExtractor_ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap) (This)->lpVtbl->ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap)
14160 #define IThumbnailExtractor_OnFileUpdated(This,pStg) (This)->lpVtbl->OnFileUpdated(This,pStg)
14161 #else
14162 /*** IUnknown methods ***/
14163 static FORCEINLINE HRESULT IThumbnailExtractor_QueryInterface(IThumbnailExtractor* This,REFIID riid,void **ppvObject) {
14164     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14165 }
14166 static FORCEINLINE ULONG IThumbnailExtractor_AddRef(IThumbnailExtractor* This) {
14167     return This->lpVtbl->AddRef(This);
14168 }
14169 static FORCEINLINE ULONG IThumbnailExtractor_Release(IThumbnailExtractor* This) {
14170     return This->lpVtbl->Release(This);
14171 }
14172 /*** IThumbnailExtractor methods ***/
14173 static FORCEINLINE HRESULT IThumbnailExtractor_ExtractThumbnail(IThumbnailExtractor* This,IStorage *pStg,ULONG ulLength,ULONG ulHeight,ULONG *pulOutputLength,ULONG *pulOutputHeight,HBITMAP *phOutputBitmap) {
14174     return This->lpVtbl->ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap);
14175 }
14176 static FORCEINLINE HRESULT IThumbnailExtractor_OnFileUpdated(IThumbnailExtractor* This,IStorage *pStg) {
14177     return This->lpVtbl->OnFileUpdated(This,pStg);
14178 }
14179 #endif
14180 #endif
14181 
14182 #endif
14183 
14184 HRESULT STDMETHODCALLTYPE IThumbnailExtractor_ExtractThumbnail_Proxy(
14185     IThumbnailExtractor* This,
14186     IStorage *pStg,
14187     ULONG ulLength,
14188     ULONG ulHeight,
14189     ULONG *pulOutputLength,
14190     ULONG *pulOutputHeight,
14191     HBITMAP *phOutputBitmap);
14192 void __RPC_STUB IThumbnailExtractor_ExtractThumbnail_Stub(
14193     IRpcStubBuffer* This,
14194     IRpcChannelBuffer* pRpcChannelBuffer,
14195     PRPC_MESSAGE pRpcMessage,
14196     DWORD* pdwStubPhase);
14197 HRESULT STDMETHODCALLTYPE IThumbnailExtractor_OnFileUpdated_Proxy(
14198     IThumbnailExtractor* This,
14199     IStorage *pStg);
14200 void __RPC_STUB IThumbnailExtractor_OnFileUpdated_Stub(
14201     IRpcStubBuffer* This,
14202     IRpcChannelBuffer* pRpcChannelBuffer,
14203     PRPC_MESSAGE pRpcMessage,
14204     DWORD* pdwStubPhase);
14205 
14206 #endif  /* __IThumbnailExtractor_INTERFACE_DEFINED__ */
14207 
14208 /*****************************************************************************
14209  * IDummyHICONIncluder interface
14210  */
14211 #ifndef __IDummyHICONIncluder_INTERFACE_DEFINED__
14212 #define __IDummyHICONIncluder_INTERFACE_DEFINED__
14213 
14214 DEFINE_GUID(IID_IDummyHICONIncluder, 0x947990de, 0xcc28, 0x11d2, 0xa0,0xf7, 0x00,0x80,0x5f,0x85,0x8f,0xb1);
14215 #if defined(__cplusplus) && !defined(CINTERFACE)
14216 MIDL_INTERFACE("947990de-cc28-11d2-a0f7-00805f858fb1")
14217 IDummyHICONIncluder : public IUnknown
14218 {
14219     virtual HRESULT STDMETHODCALLTYPE Dummy(
14220         HICON h1,
14221         HDC h2) = 0;
14222 
14223 };
14224 #ifdef __CRT_UUID_DECL
14225 __CRT_UUID_DECL(IDummyHICONIncluder, 0x947990de, 0xcc28, 0x11d2, 0xa0,0xf7, 0x00,0x80,0x5f,0x85,0x8f,0xb1)
14226 #endif
14227 #else
14228 typedef struct IDummyHICONIncluderVtbl {
14229     BEGIN_INTERFACE
14230 
14231     /*** IUnknown methods ***/
14232     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14233         IDummyHICONIncluder* This,
14234         REFIID riid,
14235         void **ppvObject);
14236 
14237     ULONG (STDMETHODCALLTYPE *AddRef)(
14238         IDummyHICONIncluder* This);
14239 
14240     ULONG (STDMETHODCALLTYPE *Release)(
14241         IDummyHICONIncluder* This);
14242 
14243     /*** IDummyHICONIncluder methods ***/
14244     HRESULT (STDMETHODCALLTYPE *Dummy)(
14245         IDummyHICONIncluder* This,
14246         HICON h1,
14247         HDC h2);
14248 
14249     END_INTERFACE
14250 } IDummyHICONIncluderVtbl;
14251 interface IDummyHICONIncluder {
14252     CONST_VTBL IDummyHICONIncluderVtbl* lpVtbl;
14253 };
14254 
14255 #ifdef COBJMACROS
14256 #ifndef WIDL_C_INLINE_WRAPPERS
14257 /*** IUnknown methods ***/
14258 #define IDummyHICONIncluder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14259 #define IDummyHICONIncluder_AddRef(This) (This)->lpVtbl->AddRef(This)
14260 #define IDummyHICONIncluder_Release(This) (This)->lpVtbl->Release(This)
14261 /*** IDummyHICONIncluder methods ***/
14262 #define IDummyHICONIncluder_Dummy(This,h1,h2) (This)->lpVtbl->Dummy(This,h1,h2)
14263 #else
14264 /*** IUnknown methods ***/
14265 static FORCEINLINE HRESULT IDummyHICONIncluder_QueryInterface(IDummyHICONIncluder* This,REFIID riid,void **ppvObject) {
14266     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14267 }
14268 static FORCEINLINE ULONG IDummyHICONIncluder_AddRef(IDummyHICONIncluder* This) {
14269     return This->lpVtbl->AddRef(This);
14270 }
14271 static FORCEINLINE ULONG IDummyHICONIncluder_Release(IDummyHICONIncluder* This) {
14272     return This->lpVtbl->Release(This);
14273 }
14274 /*** IDummyHICONIncluder methods ***/
14275 static FORCEINLINE HRESULT IDummyHICONIncluder_Dummy(IDummyHICONIncluder* This,HICON h1,HDC h2) {
14276     return This->lpVtbl->Dummy(This,h1,h2);
14277 }
14278 #endif
14279 #endif
14280 
14281 #endif
14282 
14283 HRESULT STDMETHODCALLTYPE IDummyHICONIncluder_Dummy_Proxy(
14284     IDummyHICONIncluder* This,
14285     HICON h1,
14286     HDC h2);
14287 void __RPC_STUB IDummyHICONIncluder_Dummy_Stub(
14288     IRpcStubBuffer* This,
14289     IRpcChannelBuffer* pRpcChannelBuffer,
14290     PRPC_MESSAGE pRpcMessage,
14291     DWORD* pdwStubPhase);
14292 
14293 #endif  /* __IDummyHICONIncluder_INTERFACE_DEFINED__ */
14294 
14295 typedef enum tagApplicationType {
14296     ServerApplication = 0,
14297     LibraryApplication = 1
14298 } ApplicationType;
14299 typedef enum tagShutdownType {
14300     IdleShutdown = 0,
14301     ForcedShutdown = 1
14302 } ShutdownType;
14303 /*****************************************************************************
14304  * IProcessLock interface
14305  */
14306 #ifndef __IProcessLock_INTERFACE_DEFINED__
14307 #define __IProcessLock_INTERFACE_DEFINED__
14308 
14309 DEFINE_GUID(IID_IProcessLock, 0x000001d5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14310 #if defined(__cplusplus) && !defined(CINTERFACE)
14311 MIDL_INTERFACE("000001d5-0000-0000-c000-000000000046")
14312 IProcessLock : public IUnknown
14313 {
14314     virtual ULONG STDMETHODCALLTYPE AddRefOnProcess(
14315         ) = 0;
14316 
14317     virtual ULONG STDMETHODCALLTYPE ReleaseRefOnProcess(
14318         ) = 0;
14319 
14320 };
14321 #ifdef __CRT_UUID_DECL
14322 __CRT_UUID_DECL(IProcessLock, 0x000001d5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14323 #endif
14324 #else
14325 typedef struct IProcessLockVtbl {
14326     BEGIN_INTERFACE
14327 
14328     /*** IUnknown methods ***/
14329     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14330         IProcessLock* This,
14331         REFIID riid,
14332         void **ppvObject);
14333 
14334     ULONG (STDMETHODCALLTYPE *AddRef)(
14335         IProcessLock* This);
14336 
14337     ULONG (STDMETHODCALLTYPE *Release)(
14338         IProcessLock* This);
14339 
14340     /*** IProcessLock methods ***/
14341     ULONG (STDMETHODCALLTYPE *AddRefOnProcess)(
14342         IProcessLock* This);
14343 
14344     ULONG (STDMETHODCALLTYPE *ReleaseRefOnProcess)(
14345         IProcessLock* This);
14346 
14347     END_INTERFACE
14348 } IProcessLockVtbl;
14349 interface IProcessLock {
14350     CONST_VTBL IProcessLockVtbl* lpVtbl;
14351 };
14352 
14353 #ifdef COBJMACROS
14354 #ifndef WIDL_C_INLINE_WRAPPERS
14355 /*** IUnknown methods ***/
14356 #define IProcessLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14357 #define IProcessLock_AddRef(This) (This)->lpVtbl->AddRef(This)
14358 #define IProcessLock_Release(This) (This)->lpVtbl->Release(This)
14359 /*** IProcessLock methods ***/
14360 #define IProcessLock_AddRefOnProcess(This) (This)->lpVtbl->AddRefOnProcess(This)
14361 #define IProcessLock_ReleaseRefOnProcess(This) (This)->lpVtbl->ReleaseRefOnProcess(This)
14362 #else
14363 /*** IUnknown methods ***/
14364 static FORCEINLINE HRESULT IProcessLock_QueryInterface(IProcessLock* This,REFIID riid,void **ppvObject) {
14365     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14366 }
14367 static FORCEINLINE ULONG IProcessLock_AddRef(IProcessLock* This) {
14368     return This->lpVtbl->AddRef(This);
14369 }
14370 static FORCEINLINE ULONG IProcessLock_Release(IProcessLock* This) {
14371     return This->lpVtbl->Release(This);
14372 }
14373 /*** IProcessLock methods ***/
14374 static FORCEINLINE ULONG IProcessLock_AddRefOnProcess(IProcessLock* This) {
14375     return This->lpVtbl->AddRefOnProcess(This);
14376 }
14377 static FORCEINLINE ULONG IProcessLock_ReleaseRefOnProcess(IProcessLock* This) {
14378     return This->lpVtbl->ReleaseRefOnProcess(This);
14379 }
14380 #endif
14381 #endif
14382 
14383 #endif
14384 
14385 ULONG STDMETHODCALLTYPE IProcessLock_AddRefOnProcess_Proxy(
14386     IProcessLock* This);
14387 void __RPC_STUB IProcessLock_AddRefOnProcess_Stub(
14388     IRpcStubBuffer* This,
14389     IRpcChannelBuffer* pRpcChannelBuffer,
14390     PRPC_MESSAGE pRpcMessage,
14391     DWORD* pdwStubPhase);
14392 ULONG STDMETHODCALLTYPE IProcessLock_ReleaseRefOnProcess_Proxy(
14393     IProcessLock* This);
14394 void __RPC_STUB IProcessLock_ReleaseRefOnProcess_Stub(
14395     IRpcStubBuffer* This,
14396     IRpcChannelBuffer* pRpcChannelBuffer,
14397     PRPC_MESSAGE pRpcMessage,
14398     DWORD* pdwStubPhase);
14399 
14400 #endif  /* __IProcessLock_INTERFACE_DEFINED__ */
14401 
14402 /*****************************************************************************
14403  * ISurrogateService interface
14404  */
14405 #ifndef __ISurrogateService_INTERFACE_DEFINED__
14406 #define __ISurrogateService_INTERFACE_DEFINED__
14407 
14408 DEFINE_GUID(IID_ISurrogateService, 0x000001d4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14409 #if defined(__cplusplus) && !defined(CINTERFACE)
14410 MIDL_INTERFACE("000001d4-0000-0000-c000-000000000046")
14411 ISurrogateService : public IUnknown
14412 {
14413     virtual HRESULT STDMETHODCALLTYPE Init(
14414         REFGUID rguidProcessID,
14415         IProcessLock *pProcessLock,
14416         WINBOOL *pfApplicationAware) = 0;
14417 
14418     virtual HRESULT STDMETHODCALLTYPE ApplicationLaunch(
14419         REFGUID rguidApplID,
14420         ApplicationType appType) = 0;
14421 
14422     virtual HRESULT STDMETHODCALLTYPE ApplicationFree(
14423         REFGUID rguidApplID) = 0;
14424 
14425     virtual HRESULT STDMETHODCALLTYPE CatalogRefresh(
14426         ULONG ulReserved) = 0;
14427 
14428     virtual HRESULT STDMETHODCALLTYPE ProcessShutdown(
14429         ShutdownType shutdownType) = 0;
14430 
14431 };
14432 #ifdef __CRT_UUID_DECL
14433 __CRT_UUID_DECL(ISurrogateService, 0x000001d4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14434 #endif
14435 #else
14436 typedef struct ISurrogateServiceVtbl {
14437     BEGIN_INTERFACE
14438 
14439     /*** IUnknown methods ***/
14440     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14441         ISurrogateService* This,
14442         REFIID riid,
14443         void **ppvObject);
14444 
14445     ULONG (STDMETHODCALLTYPE *AddRef)(
14446         ISurrogateService* This);
14447 
14448     ULONG (STDMETHODCALLTYPE *Release)(
14449         ISurrogateService* This);
14450 
14451     /*** ISurrogateService methods ***/
14452     HRESULT (STDMETHODCALLTYPE *Init)(
14453         ISurrogateService* This,
14454         REFGUID rguidProcessID,
14455         IProcessLock *pProcessLock,
14456         WINBOOL *pfApplicationAware);
14457 
14458     HRESULT (STDMETHODCALLTYPE *ApplicationLaunch)(
14459         ISurrogateService* This,
14460         REFGUID rguidApplID,
14461         ApplicationType appType);
14462 
14463     HRESULT (STDMETHODCALLTYPE *ApplicationFree)(
14464         ISurrogateService* This,
14465         REFGUID rguidApplID);
14466 
14467     HRESULT (STDMETHODCALLTYPE *CatalogRefresh)(
14468         ISurrogateService* This,
14469         ULONG ulReserved);
14470 
14471     HRESULT (STDMETHODCALLTYPE *ProcessShutdown)(
14472         ISurrogateService* This,
14473         ShutdownType shutdownType);
14474 
14475     END_INTERFACE
14476 } ISurrogateServiceVtbl;
14477 interface ISurrogateService {
14478     CONST_VTBL ISurrogateServiceVtbl* lpVtbl;
14479 };
14480 
14481 #ifdef COBJMACROS
14482 #ifndef WIDL_C_INLINE_WRAPPERS
14483 /*** IUnknown methods ***/
14484 #define ISurrogateService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14485 #define ISurrogateService_AddRef(This) (This)->lpVtbl->AddRef(This)
14486 #define ISurrogateService_Release(This) (This)->lpVtbl->Release(This)
14487 /*** ISurrogateService methods ***/
14488 #define ISurrogateService_Init(This,rguidProcessID,pProcessLock,pfApplicationAware) (This)->lpVtbl->Init(This,rguidProcessID,pProcessLock,pfApplicationAware)
14489 #define ISurrogateService_ApplicationLaunch(This,rguidApplID,appType) (This)->lpVtbl->ApplicationLaunch(This,rguidApplID,appType)
14490 #define ISurrogateService_ApplicationFree(This,rguidApplID) (This)->lpVtbl->ApplicationFree(This,rguidApplID)
14491 #define ISurrogateService_CatalogRefresh(This,ulReserved) (This)->lpVtbl->CatalogRefresh(This,ulReserved)
14492 #define ISurrogateService_ProcessShutdown(This,shutdownType) (This)->lpVtbl->ProcessShutdown(This,shutdownType)
14493 #else
14494 /*** IUnknown methods ***/
14495 static FORCEINLINE HRESULT ISurrogateService_QueryInterface(ISurrogateService* This,REFIID riid,void **ppvObject) {
14496     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14497 }
14498 static FORCEINLINE ULONG ISurrogateService_AddRef(ISurrogateService* This) {
14499     return This->lpVtbl->AddRef(This);
14500 }
14501 static FORCEINLINE ULONG ISurrogateService_Release(ISurrogateService* This) {
14502     return This->lpVtbl->Release(This);
14503 }
14504 /*** ISurrogateService methods ***/
14505 static FORCEINLINE HRESULT ISurrogateService_Init(ISurrogateService* This,REFGUID rguidProcessID,IProcessLock *pProcessLock,WINBOOL *pfApplicationAware) {
14506     return This->lpVtbl->Init(This,rguidProcessID,pProcessLock,pfApplicationAware);
14507 }
14508 static FORCEINLINE HRESULT ISurrogateService_ApplicationLaunch(ISurrogateService* This,REFGUID rguidApplID,ApplicationType appType) {
14509     return This->lpVtbl->ApplicationLaunch(This,rguidApplID,appType);
14510 }
14511 static FORCEINLINE HRESULT ISurrogateService_ApplicationFree(ISurrogateService* This,REFGUID rguidApplID) {
14512     return This->lpVtbl->ApplicationFree(This,rguidApplID);
14513 }
14514 static FORCEINLINE HRESULT ISurrogateService_CatalogRefresh(ISurrogateService* This,ULONG ulReserved) {
14515     return This->lpVtbl->CatalogRefresh(This,ulReserved);
14516 }
14517 static FORCEINLINE HRESULT ISurrogateService_ProcessShutdown(ISurrogateService* This,ShutdownType shutdownType) {
14518     return This->lpVtbl->ProcessShutdown(This,shutdownType);
14519 }
14520 #endif
14521 #endif
14522 
14523 #endif
14524 
14525 HRESULT STDMETHODCALLTYPE ISurrogateService_Init_Proxy(
14526     ISurrogateService* This,
14527     REFGUID rguidProcessID,
14528     IProcessLock *pProcessLock,
14529     WINBOOL *pfApplicationAware);
14530 void __RPC_STUB ISurrogateService_Init_Stub(
14531     IRpcStubBuffer* This,
14532     IRpcChannelBuffer* pRpcChannelBuffer,
14533     PRPC_MESSAGE pRpcMessage,
14534     DWORD* pdwStubPhase);
14535 HRESULT STDMETHODCALLTYPE ISurrogateService_ApplicationLaunch_Proxy(
14536     ISurrogateService* This,
14537     REFGUID rguidApplID,
14538     ApplicationType appType);
14539 void __RPC_STUB ISurrogateService_ApplicationLaunch_Stub(
14540     IRpcStubBuffer* This,
14541     IRpcChannelBuffer* pRpcChannelBuffer,
14542     PRPC_MESSAGE pRpcMessage,
14543     DWORD* pdwStubPhase);
14544 HRESULT STDMETHODCALLTYPE ISurrogateService_ApplicationFree_Proxy(
14545     ISurrogateService* This,
14546     REFGUID rguidApplID);
14547 void __RPC_STUB ISurrogateService_ApplicationFree_Stub(
14548     IRpcStubBuffer* This,
14549     IRpcChannelBuffer* pRpcChannelBuffer,
14550     PRPC_MESSAGE pRpcMessage,
14551     DWORD* pdwStubPhase);
14552 HRESULT STDMETHODCALLTYPE ISurrogateService_CatalogRefresh_Proxy(
14553     ISurrogateService* This,
14554     ULONG ulReserved);
14555 void __RPC_STUB ISurrogateService_CatalogRefresh_Stub(
14556     IRpcStubBuffer* This,
14557     IRpcChannelBuffer* pRpcChannelBuffer,
14558     PRPC_MESSAGE pRpcMessage,
14559     DWORD* pdwStubPhase);
14560 HRESULT STDMETHODCALLTYPE ISurrogateService_ProcessShutdown_Proxy(
14561     ISurrogateService* This,
14562     ShutdownType shutdownType);
14563 void __RPC_STUB ISurrogateService_ProcessShutdown_Stub(
14564     IRpcStubBuffer* This,
14565     IRpcChannelBuffer* pRpcChannelBuffer,
14566     PRPC_MESSAGE pRpcMessage,
14567     DWORD* pdwStubPhase);
14568 
14569 #endif  /* __ISurrogateService_INTERFACE_DEFINED__ */
14570 
14571 /*****************************************************************************
14572  * IInitializeSpy interface
14573  */
14574 #ifndef __IInitializeSpy_INTERFACE_DEFINED__
14575 #define __IInitializeSpy_INTERFACE_DEFINED__
14576 
14577 typedef IInitializeSpy *LPINITIALIZESPY;
14578 DEFINE_GUID(IID_IInitializeSpy, 0x00000034, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14579 #if defined(__cplusplus) && !defined(CINTERFACE)
14580 MIDL_INTERFACE("00000034-0000-0000-c000-000000000046")
14581 IInitializeSpy : public IUnknown
14582 {
14583     virtual HRESULT STDMETHODCALLTYPE PreInitialize(
14584         DWORD dwCoInit,
14585         DWORD dwCurThreadAptRefs) = 0;
14586 
14587     virtual HRESULT STDMETHODCALLTYPE PostInitialize(
14588         HRESULT hrCoInit,
14589         DWORD dwCoInit,
14590         DWORD dwNewThreadAptRefs) = 0;
14591 
14592     virtual HRESULT STDMETHODCALLTYPE PreUninitialize(
14593         DWORD dwCurThreadAptRefs) = 0;
14594 
14595     virtual HRESULT STDMETHODCALLTYPE PostUninitialize(
14596         DWORD dwNewThreadAptRefs) = 0;
14597 
14598 };
14599 #ifdef __CRT_UUID_DECL
14600 __CRT_UUID_DECL(IInitializeSpy, 0x00000034, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14601 #endif
14602 #else
14603 typedef struct IInitializeSpyVtbl {
14604     BEGIN_INTERFACE
14605 
14606     /*** IUnknown methods ***/
14607     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14608         IInitializeSpy* This,
14609         REFIID riid,
14610         void **ppvObject);
14611 
14612     ULONG (STDMETHODCALLTYPE *AddRef)(
14613         IInitializeSpy* This);
14614 
14615     ULONG (STDMETHODCALLTYPE *Release)(
14616         IInitializeSpy* This);
14617 
14618     /*** IInitializeSpy methods ***/
14619     HRESULT (STDMETHODCALLTYPE *PreInitialize)(
14620         IInitializeSpy* This,
14621         DWORD dwCoInit,
14622         DWORD dwCurThreadAptRefs);
14623 
14624     HRESULT (STDMETHODCALLTYPE *PostInitialize)(
14625         IInitializeSpy* This,
14626         HRESULT hrCoInit,
14627         DWORD dwCoInit,
14628         DWORD dwNewThreadAptRefs);
14629 
14630     HRESULT (STDMETHODCALLTYPE *PreUninitialize)(
14631         IInitializeSpy* This,
14632         DWORD dwCurThreadAptRefs);
14633 
14634     HRESULT (STDMETHODCALLTYPE *PostUninitialize)(
14635         IInitializeSpy* This,
14636         DWORD dwNewThreadAptRefs);
14637 
14638     END_INTERFACE
14639 } IInitializeSpyVtbl;
14640 interface IInitializeSpy {
14641     CONST_VTBL IInitializeSpyVtbl* lpVtbl;
14642 };
14643 
14644 #ifdef COBJMACROS
14645 #ifndef WIDL_C_INLINE_WRAPPERS
14646 /*** IUnknown methods ***/
14647 #define IInitializeSpy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14648 #define IInitializeSpy_AddRef(This) (This)->lpVtbl->AddRef(This)
14649 #define IInitializeSpy_Release(This) (This)->lpVtbl->Release(This)
14650 /*** IInitializeSpy methods ***/
14651 #define IInitializeSpy_PreInitialize(This,dwCoInit,dwCurThreadAptRefs) (This)->lpVtbl->PreInitialize(This,dwCoInit,dwCurThreadAptRefs)
14652 #define IInitializeSpy_PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs) (This)->lpVtbl->PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs)
14653 #define IInitializeSpy_PreUninitialize(This,dwCurThreadAptRefs) (This)->lpVtbl->PreUninitialize(This,dwCurThreadAptRefs)
14654 #define IInitializeSpy_PostUninitialize(This,dwNewThreadAptRefs) (This)->lpVtbl->PostUninitialize(This,dwNewThreadAptRefs)
14655 #else
14656 /*** IUnknown methods ***/
14657 static FORCEINLINE HRESULT IInitializeSpy_QueryInterface(IInitializeSpy* This,REFIID riid,void **ppvObject) {
14658     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14659 }
14660 static FORCEINLINE ULONG IInitializeSpy_AddRef(IInitializeSpy* This) {
14661     return This->lpVtbl->AddRef(This);
14662 }
14663 static FORCEINLINE ULONG IInitializeSpy_Release(IInitializeSpy* This) {
14664     return This->lpVtbl->Release(This);
14665 }
14666 /*** IInitializeSpy methods ***/
14667 static FORCEINLINE HRESULT IInitializeSpy_PreInitialize(IInitializeSpy* This,DWORD dwCoInit,DWORD dwCurThreadAptRefs) {
14668     return This->lpVtbl->PreInitialize(This,dwCoInit,dwCurThreadAptRefs);
14669 }
14670 static FORCEINLINE HRESULT IInitializeSpy_PostInitialize(IInitializeSpy* This,HRESULT hrCoInit,DWORD dwCoInit,DWORD dwNewThreadAptRefs) {
14671     return This->lpVtbl->PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs);
14672 }
14673 static FORCEINLINE HRESULT IInitializeSpy_PreUninitialize(IInitializeSpy* This,DWORD dwCurThreadAptRefs) {
14674     return This->lpVtbl->PreUninitialize(This,dwCurThreadAptRefs);
14675 }
14676 static FORCEINLINE HRESULT IInitializeSpy_PostUninitialize(IInitializeSpy* This,DWORD dwNewThreadAptRefs) {
14677     return This->lpVtbl->PostUninitialize(This,dwNewThreadAptRefs);
14678 }
14679 #endif
14680 #endif
14681 
14682 #endif
14683 
14684 HRESULT STDMETHODCALLTYPE IInitializeSpy_PreInitialize_Proxy(
14685     IInitializeSpy* This,
14686     DWORD dwCoInit,
14687     DWORD dwCurThreadAptRefs);
14688 void __RPC_STUB IInitializeSpy_PreInitialize_Stub(
14689     IRpcStubBuffer* This,
14690     IRpcChannelBuffer* pRpcChannelBuffer,
14691     PRPC_MESSAGE pRpcMessage,
14692     DWORD* pdwStubPhase);
14693 HRESULT STDMETHODCALLTYPE IInitializeSpy_PostInitialize_Proxy(
14694     IInitializeSpy* This,
14695     HRESULT hrCoInit,
14696     DWORD dwCoInit,
14697     DWORD dwNewThreadAptRefs);
14698 void __RPC_STUB IInitializeSpy_PostInitialize_Stub(
14699     IRpcStubBuffer* This,
14700     IRpcChannelBuffer* pRpcChannelBuffer,
14701     PRPC_MESSAGE pRpcMessage,
14702     DWORD* pdwStubPhase);
14703 HRESULT STDMETHODCALLTYPE IInitializeSpy_PreUninitialize_Proxy(
14704     IInitializeSpy* This,
14705     DWORD dwCurThreadAptRefs);
14706 void __RPC_STUB IInitializeSpy_PreUninitialize_Stub(
14707     IRpcStubBuffer* This,
14708     IRpcChannelBuffer* pRpcChannelBuffer,
14709     PRPC_MESSAGE pRpcMessage,
14710     DWORD* pdwStubPhase);
14711 HRESULT STDMETHODCALLTYPE IInitializeSpy_PostUninitialize_Proxy(
14712     IInitializeSpy* This,
14713     DWORD dwNewThreadAptRefs);
14714 void __RPC_STUB IInitializeSpy_PostUninitialize_Stub(
14715     IRpcStubBuffer* This,
14716     IRpcChannelBuffer* pRpcChannelBuffer,
14717     PRPC_MESSAGE pRpcMessage,
14718     DWORD* pdwStubPhase);
14719 
14720 #endif  /* __IInitializeSpy_INTERFACE_DEFINED__ */
14721 
14722 #endif
14723 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
14724 /*****************************************************************************
14725  * IApartmentShutdown interface
14726  */
14727 #ifndef __IApartmentShutdown_INTERFACE_DEFINED__
14728 #define __IApartmentShutdown_INTERFACE_DEFINED__
14729 
14730 DEFINE_GUID(IID_IApartmentShutdown, 0xa2f05a09, 0x27a2, 0x42b5, 0xbc,0x0e, 0xac,0x16,0x3e,0xf4,0x9d,0x9b);
14731 #if defined(__cplusplus) && !defined(CINTERFACE)
14732 MIDL_INTERFACE("a2f05a09-27a2-42b5-bc0e-ac163ef49d9b")
14733 IApartmentShutdown : public IUnknown
14734 {
14735     virtual void STDMETHODCALLTYPE OnUninitialize(
14736         UINT64 ui64ApartmentIdentifier) = 0;
14737 
14738 };
14739 #ifdef __CRT_UUID_DECL
14740 __CRT_UUID_DECL(IApartmentShutdown, 0xa2f05a09, 0x27a2, 0x42b5, 0xbc,0x0e, 0xac,0x16,0x3e,0xf4,0x9d,0x9b)
14741 #endif
14742 #else
14743 typedef struct IApartmentShutdownVtbl {
14744     BEGIN_INTERFACE
14745 
14746     /*** IUnknown methods ***/
14747     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14748         IApartmentShutdown* This,
14749         REFIID riid,
14750         void **ppvObject);
14751 
14752     ULONG (STDMETHODCALLTYPE *AddRef)(
14753         IApartmentShutdown* This);
14754 
14755     ULONG (STDMETHODCALLTYPE *Release)(
14756         IApartmentShutdown* This);
14757 
14758     /*** IApartmentShutdown methods ***/
14759     void (STDMETHODCALLTYPE *OnUninitialize)(
14760         IApartmentShutdown* This,
14761         UINT64 ui64ApartmentIdentifier);
14762 
14763     END_INTERFACE
14764 } IApartmentShutdownVtbl;
14765 interface IApartmentShutdown {
14766     CONST_VTBL IApartmentShutdownVtbl* lpVtbl;
14767 };
14768 
14769 #ifdef COBJMACROS
14770 #ifndef WIDL_C_INLINE_WRAPPERS
14771 /*** IUnknown methods ***/
14772 #define IApartmentShutdown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14773 #define IApartmentShutdown_AddRef(This) (This)->lpVtbl->AddRef(This)
14774 #define IApartmentShutdown_Release(This) (This)->lpVtbl->Release(This)
14775 /*** IApartmentShutdown methods ***/
14776 #define IApartmentShutdown_OnUninitialize(This,ui64ApartmentIdentifier) (This)->lpVtbl->OnUninitialize(This,ui64ApartmentIdentifier)
14777 #else
14778 /*** IUnknown methods ***/
14779 static FORCEINLINE HRESULT IApartmentShutdown_QueryInterface(IApartmentShutdown* This,REFIID riid,void **ppvObject) {
14780     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14781 }
14782 static FORCEINLINE ULONG IApartmentShutdown_AddRef(IApartmentShutdown* This) {
14783     return This->lpVtbl->AddRef(This);
14784 }
14785 static FORCEINLINE ULONG IApartmentShutdown_Release(IApartmentShutdown* This) {
14786     return This->lpVtbl->Release(This);
14787 }
14788 /*** IApartmentShutdown methods ***/
14789 static FORCEINLINE void IApartmentShutdown_OnUninitialize(IApartmentShutdown* This,UINT64 ui64ApartmentIdentifier) {
14790     This->lpVtbl->OnUninitialize(This,ui64ApartmentIdentifier);
14791 }
14792 #endif
14793 #endif
14794 
14795 #endif
14796 
14797 void STDMETHODCALLTYPE IApartmentShutdown_OnUninitialize_Proxy(
14798     IApartmentShutdown* This,
14799     UINT64 ui64ApartmentIdentifier);
14800 void __RPC_STUB IApartmentShutdown_OnUninitialize_Stub(
14801     IRpcStubBuffer* This,
14802     IRpcChannelBuffer* pRpcChannelBuffer,
14803     PRPC_MESSAGE pRpcMessage,
14804     DWORD* pdwStubPhase);
14805 
14806 #endif  /* __IApartmentShutdown_INTERFACE_DEFINED__ */
14807 
14808 #endif
14809 /* Begin additional prototypes for all interfaces */
14810 
14811 ULONG           __RPC_USER SNB_UserSize     (ULONG *, ULONG, SNB *);
14812 unsigned char * __RPC_USER SNB_UserMarshal  (ULONG *, unsigned char *, SNB *);
14813 unsigned char * __RPC_USER SNB_UserUnmarshal(ULONG *, unsigned char *, SNB *);
14814 void            __RPC_USER SNB_UserFree     (ULONG *, SNB *);
14815 ULONG           __RPC_USER CLIPFORMAT_UserSize     (ULONG *, ULONG, CLIPFORMAT *);
14816 unsigned char * __RPC_USER CLIPFORMAT_UserMarshal  (ULONG *, unsigned char *, CLIPFORMAT *);
14817 unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
14818 void            __RPC_USER CLIPFORMAT_UserFree     (ULONG *, CLIPFORMAT *);
14819 ULONG           __RPC_USER STGMEDIUM_UserSize     (ULONG *, ULONG, STGMEDIUM *);
14820 unsigned char * __RPC_USER STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, STGMEDIUM *);
14821 unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, STGMEDIUM *);
14822 void            __RPC_USER STGMEDIUM_UserFree     (ULONG *, STGMEDIUM *);
14823 ULONG           __RPC_USER ASYNC_STGMEDIUM_UserSize     (ULONG *, ULONG, ASYNC_STGMEDIUM *);
14824 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, ASYNC_STGMEDIUM *);
14825 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, ASYNC_STGMEDIUM *);
14826 void            __RPC_USER ASYNC_STGMEDIUM_UserFree     (ULONG *, ASYNC_STGMEDIUM *);
14827 ULONG           __RPC_USER FLAG_STGMEDIUM_UserSize     (ULONG *, ULONG, FLAG_STGMEDIUM *);
14828 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, FLAG_STGMEDIUM *);
14829 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, FLAG_STGMEDIUM *);
14830 void            __RPC_USER FLAG_STGMEDIUM_UserFree     (ULONG *, FLAG_STGMEDIUM *);
14831 ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
14832 unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
14833 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
14834 void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
14835 ULONG           __RPC_USER HICON_UserSize     (ULONG *, ULONG, HICON *);
14836 unsigned char * __RPC_USER HICON_UserMarshal  (ULONG *, unsigned char *, HICON *);
14837 unsigned char * __RPC_USER HICON_UserUnmarshal(ULONG *, unsigned char *, HICON *);
14838 void            __RPC_USER HICON_UserFree     (ULONG *, HICON *);
14839 ULONG           __RPC_USER HDC_UserSize     (ULONG *, ULONG, HDC *);
14840 unsigned char * __RPC_USER HDC_UserMarshal  (ULONG *, unsigned char *, HDC *);
14841 unsigned char * __RPC_USER HDC_UserUnmarshal(ULONG *, unsigned char *, HDC *);
14842 void            __RPC_USER HDC_UserFree     (ULONG *, HDC *);
14843 
14844 /* End additional prototypes */
14845 
14846 #ifdef __cplusplus
14847 }
14848 #endif
14849 
14850 #endif /* __objidl_h__ */
14851