1 /*** Autogenerated by WIDL 6.4 from include/objidl.idl - Do not edit ***/
2 
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10 
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15 
16 #ifndef __objidl_h__
17 #define __objidl_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __IMarshal_FWD_DEFINED__
22 #define __IMarshal_FWD_DEFINED__
23 typedef interface IMarshal IMarshal;
24 #ifdef __cplusplus
25 interface IMarshal;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __INoMarshal_FWD_DEFINED__
30 #define __INoMarshal_FWD_DEFINED__
31 typedef interface INoMarshal INoMarshal;
32 #ifdef __cplusplus
33 interface INoMarshal;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __IAgileObject_FWD_DEFINED__
38 #define __IAgileObject_FWD_DEFINED__
39 typedef interface IAgileObject IAgileObject;
40 #ifdef __cplusplus
41 interface IAgileObject;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __IAgileReference_FWD_DEFINED__
46 #define __IAgileReference_FWD_DEFINED__
47 typedef interface IAgileReference IAgileReference;
48 #ifdef __cplusplus
49 interface IAgileReference;
50 #endif /* __cplusplus */
51 #endif
52 
53 #ifndef __IMarshal2_FWD_DEFINED__
54 #define __IMarshal2_FWD_DEFINED__
55 typedef interface IMarshal2 IMarshal2;
56 #ifdef __cplusplus
57 interface IMarshal2;
58 #endif /* __cplusplus */
59 #endif
60 
61 #ifndef __IMalloc_FWD_DEFINED__
62 #define __IMalloc_FWD_DEFINED__
63 typedef interface IMalloc IMalloc;
64 #ifdef __cplusplus
65 interface IMalloc;
66 #endif /* __cplusplus */
67 #endif
68 
69 #ifndef __IStdMarshalInfo_FWD_DEFINED__
70 #define __IStdMarshalInfo_FWD_DEFINED__
71 typedef interface IStdMarshalInfo IStdMarshalInfo;
72 #ifdef __cplusplus
73 interface IStdMarshalInfo;
74 #endif /* __cplusplus */
75 #endif
76 
77 #ifndef __IExternalConnection_FWD_DEFINED__
78 #define __IExternalConnection_FWD_DEFINED__
79 typedef interface IExternalConnection IExternalConnection;
80 #ifdef __cplusplus
81 interface IExternalConnection;
82 #endif /* __cplusplus */
83 #endif
84 
85 #ifndef __IMultiQI_FWD_DEFINED__
86 #define __IMultiQI_FWD_DEFINED__
87 typedef interface IMultiQI IMultiQI;
88 #ifdef __cplusplus
89 interface IMultiQI;
90 #endif /* __cplusplus */
91 #endif
92 
93 #ifndef __AsyncIMultiQI_FWD_DEFINED__
94 #define __AsyncIMultiQI_FWD_DEFINED__
95 typedef interface AsyncIMultiQI AsyncIMultiQI;
96 #ifdef __cplusplus
97 interface AsyncIMultiQI;
98 #endif /* __cplusplus */
99 #endif
100 
101 #ifndef __IInternalUnknown_FWD_DEFINED__
102 #define __IInternalUnknown_FWD_DEFINED__
103 typedef interface IInternalUnknown IInternalUnknown;
104 #ifdef __cplusplus
105 interface IInternalUnknown;
106 #endif /* __cplusplus */
107 #endif
108 
109 #ifndef __IEnumUnknown_FWD_DEFINED__
110 #define __IEnumUnknown_FWD_DEFINED__
111 typedef interface IEnumUnknown IEnumUnknown;
112 #ifdef __cplusplus
113 interface IEnumUnknown;
114 #endif /* __cplusplus */
115 #endif
116 
117 #ifndef __IEnumString_FWD_DEFINED__
118 #define __IEnumString_FWD_DEFINED__
119 typedef interface IEnumString IEnumString;
120 #ifdef __cplusplus
121 interface IEnumString;
122 #endif /* __cplusplus */
123 #endif
124 
125 #ifndef __ISequentialStream_FWD_DEFINED__
126 #define __ISequentialStream_FWD_DEFINED__
127 typedef interface ISequentialStream ISequentialStream;
128 #ifdef __cplusplus
129 interface ISequentialStream;
130 #endif /* __cplusplus */
131 #endif
132 
133 #ifndef __IStream_FWD_DEFINED__
134 #define __IStream_FWD_DEFINED__
135 typedef interface IStream IStream;
136 #ifdef __cplusplus
137 interface IStream;
138 #endif /* __cplusplus */
139 #endif
140 
141 #ifndef __IRpcChannelBuffer_FWD_DEFINED__
142 #define __IRpcChannelBuffer_FWD_DEFINED__
143 typedef interface IRpcChannelBuffer IRpcChannelBuffer;
144 #ifdef __cplusplus
145 interface IRpcChannelBuffer;
146 #endif /* __cplusplus */
147 #endif
148 
149 #ifndef __IRpcChannelBuffer2_FWD_DEFINED__
150 #define __IRpcChannelBuffer2_FWD_DEFINED__
151 typedef interface IRpcChannelBuffer2 IRpcChannelBuffer2;
152 #ifdef __cplusplus
153 interface IRpcChannelBuffer2;
154 #endif /* __cplusplus */
155 #endif
156 
157 #ifndef __IAsyncRpcChannelBuffer_FWD_DEFINED__
158 #define __IAsyncRpcChannelBuffer_FWD_DEFINED__
159 typedef interface IAsyncRpcChannelBuffer IAsyncRpcChannelBuffer;
160 #ifdef __cplusplus
161 interface IAsyncRpcChannelBuffer;
162 #endif /* __cplusplus */
163 #endif
164 
165 #ifndef __IRpcChannelBuffer3_FWD_DEFINED__
166 #define __IRpcChannelBuffer3_FWD_DEFINED__
167 typedef interface IRpcChannelBuffer3 IRpcChannelBuffer3;
168 #ifdef __cplusplus
169 interface IRpcChannelBuffer3;
170 #endif /* __cplusplus */
171 #endif
172 
173 #ifndef __IRpcSyntaxNegotiate_FWD_DEFINED__
174 #define __IRpcSyntaxNegotiate_FWD_DEFINED__
175 typedef interface IRpcSyntaxNegotiate IRpcSyntaxNegotiate;
176 #ifdef __cplusplus
177 interface IRpcSyntaxNegotiate;
178 #endif /* __cplusplus */
179 #endif
180 
181 #ifndef __IRpcProxyBuffer_FWD_DEFINED__
182 #define __IRpcProxyBuffer_FWD_DEFINED__
183 typedef interface IRpcProxyBuffer IRpcProxyBuffer;
184 #ifdef __cplusplus
185 interface IRpcProxyBuffer;
186 #endif /* __cplusplus */
187 #endif
188 
189 #ifndef __IRpcStubBuffer_FWD_DEFINED__
190 #define __IRpcStubBuffer_FWD_DEFINED__
191 typedef interface IRpcStubBuffer IRpcStubBuffer;
192 #ifdef __cplusplus
193 interface IRpcStubBuffer;
194 #endif /* __cplusplus */
195 #endif
196 
197 #ifndef __IPSFactoryBuffer_FWD_DEFINED__
198 #define __IPSFactoryBuffer_FWD_DEFINED__
199 typedef interface IPSFactoryBuffer IPSFactoryBuffer;
200 #ifdef __cplusplus
201 interface IPSFactoryBuffer;
202 #endif /* __cplusplus */
203 #endif
204 
205 #ifndef __IChannelHook_FWD_DEFINED__
206 #define __IChannelHook_FWD_DEFINED__
207 typedef interface IChannelHook IChannelHook;
208 #ifdef __cplusplus
209 interface IChannelHook;
210 #endif /* __cplusplus */
211 #endif
212 
213 #ifndef __IClientSecurity_FWD_DEFINED__
214 #define __IClientSecurity_FWD_DEFINED__
215 typedef interface IClientSecurity IClientSecurity;
216 #ifdef __cplusplus
217 interface IClientSecurity;
218 #endif /* __cplusplus */
219 #endif
220 
221 #ifndef __IServerSecurity_FWD_DEFINED__
222 #define __IServerSecurity_FWD_DEFINED__
223 typedef interface IServerSecurity IServerSecurity;
224 #ifdef __cplusplus
225 interface IServerSecurity;
226 #endif /* __cplusplus */
227 #endif
228 
229 #ifndef __IRpcOptions_FWD_DEFINED__
230 #define __IRpcOptions_FWD_DEFINED__
231 typedef interface IRpcOptions IRpcOptions;
232 #ifdef __cplusplus
233 interface IRpcOptions;
234 #endif /* __cplusplus */
235 #endif
236 
237 #ifndef __IGlobalOptions_FWD_DEFINED__
238 #define __IGlobalOptions_FWD_DEFINED__
239 typedef interface IGlobalOptions IGlobalOptions;
240 #ifdef __cplusplus
241 interface IGlobalOptions;
242 #endif /* __cplusplus */
243 #endif
244 
245 #ifndef __ISurrogate_FWD_DEFINED__
246 #define __ISurrogate_FWD_DEFINED__
247 typedef interface ISurrogate ISurrogate;
248 #ifdef __cplusplus
249 interface ISurrogate;
250 #endif /* __cplusplus */
251 #endif
252 
253 #ifndef __IGlobalInterfaceTable_FWD_DEFINED__
254 #define __IGlobalInterfaceTable_FWD_DEFINED__
255 typedef interface IGlobalInterfaceTable IGlobalInterfaceTable;
256 #ifdef __cplusplus
257 interface IGlobalInterfaceTable;
258 #endif /* __cplusplus */
259 #endif
260 
261 #ifndef __ISynchronize_FWD_DEFINED__
262 #define __ISynchronize_FWD_DEFINED__
263 typedef interface ISynchronize ISynchronize;
264 #ifdef __cplusplus
265 interface ISynchronize;
266 #endif /* __cplusplus */
267 #endif
268 
269 #ifndef __ISynchronizeHandle_FWD_DEFINED__
270 #define __ISynchronizeHandle_FWD_DEFINED__
271 typedef interface ISynchronizeHandle ISynchronizeHandle;
272 #ifdef __cplusplus
273 interface ISynchronizeHandle;
274 #endif /* __cplusplus */
275 #endif
276 
277 #ifndef __ISynchronizeEvent_FWD_DEFINED__
278 #define __ISynchronizeEvent_FWD_DEFINED__
279 typedef interface ISynchronizeEvent ISynchronizeEvent;
280 #ifdef __cplusplus
281 interface ISynchronizeEvent;
282 #endif /* __cplusplus */
283 #endif
284 
285 #ifndef __ISynchronizeContainer_FWD_DEFINED__
286 #define __ISynchronizeContainer_FWD_DEFINED__
287 typedef interface ISynchronizeContainer ISynchronizeContainer;
288 #ifdef __cplusplus
289 interface ISynchronizeContainer;
290 #endif /* __cplusplus */
291 #endif
292 
293 #ifndef __ISynchronizeMutex_FWD_DEFINED__
294 #define __ISynchronizeMutex_FWD_DEFINED__
295 typedef interface ISynchronizeMutex ISynchronizeMutex;
296 #ifdef __cplusplus
297 interface ISynchronizeMutex;
298 #endif /* __cplusplus */
299 #endif
300 
301 #ifndef __ICancelMethodCalls_FWD_DEFINED__
302 #define __ICancelMethodCalls_FWD_DEFINED__
303 typedef interface ICancelMethodCalls ICancelMethodCalls;
304 #ifdef __cplusplus
305 interface ICancelMethodCalls;
306 #endif /* __cplusplus */
307 #endif
308 
309 #ifndef __IAsyncManager_FWD_DEFINED__
310 #define __IAsyncManager_FWD_DEFINED__
311 typedef interface IAsyncManager IAsyncManager;
312 #ifdef __cplusplus
313 interface IAsyncManager;
314 #endif /* __cplusplus */
315 #endif
316 
317 #ifndef __ICallFactory_FWD_DEFINED__
318 #define __ICallFactory_FWD_DEFINED__
319 typedef interface ICallFactory ICallFactory;
320 #ifdef __cplusplus
321 interface ICallFactory;
322 #endif /* __cplusplus */
323 #endif
324 
325 #ifndef __IRpcHelper_FWD_DEFINED__
326 #define __IRpcHelper_FWD_DEFINED__
327 typedef interface IRpcHelper IRpcHelper;
328 #ifdef __cplusplus
329 interface IRpcHelper;
330 #endif /* __cplusplus */
331 #endif
332 
333 #ifndef __IReleaseMarshalBuffers_FWD_DEFINED__
334 #define __IReleaseMarshalBuffers_FWD_DEFINED__
335 typedef interface IReleaseMarshalBuffers IReleaseMarshalBuffers;
336 #ifdef __cplusplus
337 interface IReleaseMarshalBuffers;
338 #endif /* __cplusplus */
339 #endif
340 
341 #ifndef __IWaitMultiple_FWD_DEFINED__
342 #define __IWaitMultiple_FWD_DEFINED__
343 typedef interface IWaitMultiple IWaitMultiple;
344 #ifdef __cplusplus
345 interface IWaitMultiple;
346 #endif /* __cplusplus */
347 #endif
348 
349 #ifndef __IAddrTrackingControl_FWD_DEFINED__
350 #define __IAddrTrackingControl_FWD_DEFINED__
351 typedef interface IAddrTrackingControl IAddrTrackingControl;
352 #ifdef __cplusplus
353 interface IAddrTrackingControl;
354 #endif /* __cplusplus */
355 #endif
356 
357 #ifndef __IAddrExclusionControl_FWD_DEFINED__
358 #define __IAddrExclusionControl_FWD_DEFINED__
359 typedef interface IAddrExclusionControl IAddrExclusionControl;
360 #ifdef __cplusplus
361 interface IAddrExclusionControl;
362 #endif /* __cplusplus */
363 #endif
364 
365 #ifndef __IPipeByte_FWD_DEFINED__
366 #define __IPipeByte_FWD_DEFINED__
367 typedef interface IPipeByte IPipeByte;
368 #ifdef __cplusplus
369 interface IPipeByte;
370 #endif /* __cplusplus */
371 #endif
372 
373 #ifndef __IPipeLong_FWD_DEFINED__
374 #define __IPipeLong_FWD_DEFINED__
375 typedef interface IPipeLong IPipeLong;
376 #ifdef __cplusplus
377 interface IPipeLong;
378 #endif /* __cplusplus */
379 #endif
380 
381 #ifndef __IPipeDouble_FWD_DEFINED__
382 #define __IPipeDouble_FWD_DEFINED__
383 typedef interface IPipeDouble IPipeDouble;
384 #ifdef __cplusplus
385 interface IPipeDouble;
386 #endif /* __cplusplus */
387 #endif
388 
389 #ifndef __IEnumContextProps_FWD_DEFINED__
390 #define __IEnumContextProps_FWD_DEFINED__
391 typedef interface IEnumContextProps IEnumContextProps;
392 #ifdef __cplusplus
393 interface IEnumContextProps;
394 #endif /* __cplusplus */
395 #endif
396 
397 #ifndef __IContext_FWD_DEFINED__
398 #define __IContext_FWD_DEFINED__
399 typedef interface IContext IContext;
400 #ifdef __cplusplus
401 interface IContext;
402 #endif /* __cplusplus */
403 #endif
404 
405 #ifndef __IComThreadingInfo_FWD_DEFINED__
406 #define __IComThreadingInfo_FWD_DEFINED__
407 typedef interface IComThreadingInfo IComThreadingInfo;
408 #ifdef __cplusplus
409 interface IComThreadingInfo;
410 #endif /* __cplusplus */
411 #endif
412 
413 #ifndef __IProcessInitControl_FWD_DEFINED__
414 #define __IProcessInitControl_FWD_DEFINED__
415 typedef interface IProcessInitControl IProcessInitControl;
416 #ifdef __cplusplus
417 interface IProcessInitControl;
418 #endif /* __cplusplus */
419 #endif
420 
421 #ifndef __IFastRundown_FWD_DEFINED__
422 #define __IFastRundown_FWD_DEFINED__
423 typedef interface IFastRundown IFastRundown;
424 #ifdef __cplusplus
425 interface IFastRundown;
426 #endif /* __cplusplus */
427 #endif
428 
429 #ifndef __IMarshalingStream_FWD_DEFINED__
430 #define __IMarshalingStream_FWD_DEFINED__
431 typedef interface IMarshalingStream IMarshalingStream;
432 #ifdef __cplusplus
433 interface IMarshalingStream;
434 #endif /* __cplusplus */
435 #endif
436 
437 #ifndef __IMallocSpy_FWD_DEFINED__
438 #define __IMallocSpy_FWD_DEFINED__
439 typedef interface IMallocSpy IMallocSpy;
440 #ifdef __cplusplus
441 interface IMallocSpy;
442 #endif /* __cplusplus */
443 #endif
444 
445 #ifndef __IBindCtx_FWD_DEFINED__
446 #define __IBindCtx_FWD_DEFINED__
447 typedef interface IBindCtx IBindCtx;
448 #ifdef __cplusplus
449 interface IBindCtx;
450 #endif /* __cplusplus */
451 #endif
452 
453 #ifndef __IEnumMoniker_FWD_DEFINED__
454 #define __IEnumMoniker_FWD_DEFINED__
455 typedef interface IEnumMoniker IEnumMoniker;
456 #ifdef __cplusplus
457 interface IEnumMoniker;
458 #endif /* __cplusplus */
459 #endif
460 
461 #ifndef __IRunnableObject_FWD_DEFINED__
462 #define __IRunnableObject_FWD_DEFINED__
463 typedef interface IRunnableObject IRunnableObject;
464 #ifdef __cplusplus
465 interface IRunnableObject;
466 #endif /* __cplusplus */
467 #endif
468 
469 #ifndef __IRunningObjectTable_FWD_DEFINED__
470 #define __IRunningObjectTable_FWD_DEFINED__
471 typedef interface IRunningObjectTable IRunningObjectTable;
472 #ifdef __cplusplus
473 interface IRunningObjectTable;
474 #endif /* __cplusplus */
475 #endif
476 
477 #ifndef __IPersist_FWD_DEFINED__
478 #define __IPersist_FWD_DEFINED__
479 typedef interface IPersist IPersist;
480 #ifdef __cplusplus
481 interface IPersist;
482 #endif /* __cplusplus */
483 #endif
484 
485 #ifndef __IPersistStream_FWD_DEFINED__
486 #define __IPersistStream_FWD_DEFINED__
487 typedef interface IPersistStream IPersistStream;
488 #ifdef __cplusplus
489 interface IPersistStream;
490 #endif /* __cplusplus */
491 #endif
492 
493 #ifndef __IMoniker_FWD_DEFINED__
494 #define __IMoniker_FWD_DEFINED__
495 typedef interface IMoniker IMoniker;
496 #ifdef __cplusplus
497 interface IMoniker;
498 #endif /* __cplusplus */
499 #endif
500 
501 #ifndef __IROTData_FWD_DEFINED__
502 #define __IROTData_FWD_DEFINED__
503 typedef interface IROTData IROTData;
504 #ifdef __cplusplus
505 interface IROTData;
506 #endif /* __cplusplus */
507 #endif
508 
509 #ifndef __IEnumSTATSTG_FWD_DEFINED__
510 #define __IEnumSTATSTG_FWD_DEFINED__
511 typedef interface IEnumSTATSTG IEnumSTATSTG;
512 #ifdef __cplusplus
513 interface IEnumSTATSTG;
514 #endif /* __cplusplus */
515 #endif
516 
517 #ifndef __IStorage_FWD_DEFINED__
518 #define __IStorage_FWD_DEFINED__
519 typedef interface IStorage IStorage;
520 #ifdef __cplusplus
521 interface IStorage;
522 #endif /* __cplusplus */
523 #endif
524 
525 #ifndef __IPersistFile_FWD_DEFINED__
526 #define __IPersistFile_FWD_DEFINED__
527 typedef interface IPersistFile IPersistFile;
528 #ifdef __cplusplus
529 interface IPersistFile;
530 #endif /* __cplusplus */
531 #endif
532 
533 #ifndef __IPersistStorage_FWD_DEFINED__
534 #define __IPersistStorage_FWD_DEFINED__
535 typedef interface IPersistStorage IPersistStorage;
536 #ifdef __cplusplus
537 interface IPersistStorage;
538 #endif /* __cplusplus */
539 #endif
540 
541 #ifndef __ILockBytes_FWD_DEFINED__
542 #define __ILockBytes_FWD_DEFINED__
543 typedef interface ILockBytes ILockBytes;
544 #ifdef __cplusplus
545 interface ILockBytes;
546 #endif /* __cplusplus */
547 #endif
548 
549 #ifndef __IEnumFORMATETC_FWD_DEFINED__
550 #define __IEnumFORMATETC_FWD_DEFINED__
551 typedef interface IEnumFORMATETC IEnumFORMATETC;
552 #ifdef __cplusplus
553 interface IEnumFORMATETC;
554 #endif /* __cplusplus */
555 #endif
556 
557 #ifndef __IEnumSTATDATA_FWD_DEFINED__
558 #define __IEnumSTATDATA_FWD_DEFINED__
559 typedef interface IEnumSTATDATA IEnumSTATDATA;
560 #ifdef __cplusplus
561 interface IEnumSTATDATA;
562 #endif /* __cplusplus */
563 #endif
564 
565 #ifndef __IRootStorage_FWD_DEFINED__
566 #define __IRootStorage_FWD_DEFINED__
567 typedef interface IRootStorage IRootStorage;
568 #ifdef __cplusplus
569 interface IRootStorage;
570 #endif /* __cplusplus */
571 #endif
572 
573 #ifndef __IAdviseSink_FWD_DEFINED__
574 #define __IAdviseSink_FWD_DEFINED__
575 typedef interface IAdviseSink IAdviseSink;
576 #ifdef __cplusplus
577 interface IAdviseSink;
578 #endif /* __cplusplus */
579 #endif
580 
581 #ifndef __AsyncIAdviseSink_FWD_DEFINED__
582 #define __AsyncIAdviseSink_FWD_DEFINED__
583 typedef interface AsyncIAdviseSink AsyncIAdviseSink;
584 #ifdef __cplusplus
585 interface AsyncIAdviseSink;
586 #endif /* __cplusplus */
587 #endif
588 
589 #ifndef __IAdviseSink2_FWD_DEFINED__
590 #define __IAdviseSink2_FWD_DEFINED__
591 typedef interface IAdviseSink2 IAdviseSink2;
592 #ifdef __cplusplus
593 interface IAdviseSink2;
594 #endif /* __cplusplus */
595 #endif
596 
597 #ifndef __AsyncIAdviseSink2_FWD_DEFINED__
598 #define __AsyncIAdviseSink2_FWD_DEFINED__
599 typedef interface AsyncIAdviseSink2 AsyncIAdviseSink2;
600 #ifdef __cplusplus
601 interface AsyncIAdviseSink2;
602 #endif /* __cplusplus */
603 #endif
604 
605 #ifndef __IDataObject_FWD_DEFINED__
606 #define __IDataObject_FWD_DEFINED__
607 typedef interface IDataObject IDataObject;
608 #ifdef __cplusplus
609 interface IDataObject;
610 #endif /* __cplusplus */
611 #endif
612 
613 #ifndef __IDataAdviseHolder_FWD_DEFINED__
614 #define __IDataAdviseHolder_FWD_DEFINED__
615 typedef interface IDataAdviseHolder IDataAdviseHolder;
616 #ifdef __cplusplus
617 interface IDataAdviseHolder;
618 #endif /* __cplusplus */
619 #endif
620 
621 #ifndef __IMessageFilter_FWD_DEFINED__
622 #define __IMessageFilter_FWD_DEFINED__
623 typedef interface IMessageFilter IMessageFilter;
624 #ifdef __cplusplus
625 interface IMessageFilter;
626 #endif /* __cplusplus */
627 #endif
628 
629 #ifndef __IClassActivator_FWD_DEFINED__
630 #define __IClassActivator_FWD_DEFINED__
631 typedef interface IClassActivator IClassActivator;
632 #ifdef __cplusplus
633 interface IClassActivator;
634 #endif /* __cplusplus */
635 #endif
636 
637 #ifndef __IFillLockBytes_FWD_DEFINED__
638 #define __IFillLockBytes_FWD_DEFINED__
639 typedef interface IFillLockBytes IFillLockBytes;
640 #ifdef __cplusplus
641 interface IFillLockBytes;
642 #endif /* __cplusplus */
643 #endif
644 
645 #ifndef __IProgressNotify_FWD_DEFINED__
646 #define __IProgressNotify_FWD_DEFINED__
647 typedef interface IProgressNotify IProgressNotify;
648 #ifdef __cplusplus
649 interface IProgressNotify;
650 #endif /* __cplusplus */
651 #endif
652 
653 #ifndef __ILayoutStorage_FWD_DEFINED__
654 #define __ILayoutStorage_FWD_DEFINED__
655 typedef interface ILayoutStorage ILayoutStorage;
656 #ifdef __cplusplus
657 interface ILayoutStorage;
658 #endif /* __cplusplus */
659 #endif
660 
661 #ifndef __IBlockingLock_FWD_DEFINED__
662 #define __IBlockingLock_FWD_DEFINED__
663 typedef interface IBlockingLock IBlockingLock;
664 #ifdef __cplusplus
665 interface IBlockingLock;
666 #endif /* __cplusplus */
667 #endif
668 
669 #ifndef __ITimeAndNoticeControl_FWD_DEFINED__
670 #define __ITimeAndNoticeControl_FWD_DEFINED__
671 typedef interface ITimeAndNoticeControl ITimeAndNoticeControl;
672 #ifdef __cplusplus
673 interface ITimeAndNoticeControl;
674 #endif /* __cplusplus */
675 #endif
676 
677 #ifndef __IOplockStorage_FWD_DEFINED__
678 #define __IOplockStorage_FWD_DEFINED__
679 typedef interface IOplockStorage IOplockStorage;
680 #ifdef __cplusplus
681 interface IOplockStorage;
682 #endif /* __cplusplus */
683 #endif
684 
685 #ifndef __IDirectWriterLock_FWD_DEFINED__
686 #define __IDirectWriterLock_FWD_DEFINED__
687 typedef interface IDirectWriterLock IDirectWriterLock;
688 #ifdef __cplusplus
689 interface IDirectWriterLock;
690 #endif /* __cplusplus */
691 #endif
692 
693 #ifndef __IUrlMon_FWD_DEFINED__
694 #define __IUrlMon_FWD_DEFINED__
695 typedef interface IUrlMon IUrlMon;
696 #ifdef __cplusplus
697 interface IUrlMon;
698 #endif /* __cplusplus */
699 #endif
700 
701 #ifndef __IForegroundTransfer_FWD_DEFINED__
702 #define __IForegroundTransfer_FWD_DEFINED__
703 typedef interface IForegroundTransfer IForegroundTransfer;
704 #ifdef __cplusplus
705 interface IForegroundTransfer;
706 #endif /* __cplusplus */
707 #endif
708 
709 #ifndef __IThumbnailExtractor_FWD_DEFINED__
710 #define __IThumbnailExtractor_FWD_DEFINED__
711 typedef interface IThumbnailExtractor IThumbnailExtractor;
712 #ifdef __cplusplus
713 interface IThumbnailExtractor;
714 #endif /* __cplusplus */
715 #endif
716 
717 #ifndef __IDummyHICONIncluder_FWD_DEFINED__
718 #define __IDummyHICONIncluder_FWD_DEFINED__
719 typedef interface IDummyHICONIncluder IDummyHICONIncluder;
720 #ifdef __cplusplus
721 interface IDummyHICONIncluder;
722 #endif /* __cplusplus */
723 #endif
724 
725 #ifndef __IProcessLock_FWD_DEFINED__
726 #define __IProcessLock_FWD_DEFINED__
727 typedef interface IProcessLock IProcessLock;
728 #ifdef __cplusplus
729 interface IProcessLock;
730 #endif /* __cplusplus */
731 #endif
732 
733 #ifndef __ISurrogateService_FWD_DEFINED__
734 #define __ISurrogateService_FWD_DEFINED__
735 typedef interface ISurrogateService ISurrogateService;
736 #ifdef __cplusplus
737 interface ISurrogateService;
738 #endif /* __cplusplus */
739 #endif
740 
741 #ifndef __IInitializeSpy_FWD_DEFINED__
742 #define __IInitializeSpy_FWD_DEFINED__
743 typedef interface IInitializeSpy IInitializeSpy;
744 #ifdef __cplusplus
745 interface IInitializeSpy;
746 #endif /* __cplusplus */
747 #endif
748 
749 #ifndef __IApartmentShutdown_FWD_DEFINED__
750 #define __IApartmentShutdown_FWD_DEFINED__
751 typedef interface IApartmentShutdown IApartmentShutdown;
752 #ifdef __cplusplus
753 interface IApartmentShutdown;
754 #endif /* __cplusplus */
755 #endif
756 
757 /* Headers for imported files */
758 
759 #include <unknwn.h>
760 #include <wtypes.h>
761 
762 #ifdef __cplusplus
763 extern "C" {
764 #endif
765 
766 /**
767  * This file is part of the mingw-w64 runtime package.
768  * No warranty is given; refer to the file DISCLAIMER within this package.
769  */
770 
771 #include <winapifamily.h>
772 
773 #if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))
774 #define _WIN32_WINNT 0x0600
775 #endif
776 #if(NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))
777 #define _WIN32_WINNT 0x0502
778 #endif
779 #if(NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))
780 #define _WIN32_WINNT 0x0501
781 #endif
782 /**
783  * This file is part of the mingw-w64 runtime package.
784  * No warranty is given; refer to the file DISCLAIMER within this package.
785  */
786 
787 #include <winapifamily.h>
788 
789 #if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))
790 #define _WIN32_WINNT 0x0600
791 #endif
792 
793 #if (NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))
794 #define _WIN32_WINNT 0x0502
795 #endif
796 
797 #if (NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))
798 #define _WIN32_WINNT 0x0501
799 #endif
800 
801 #ifndef _OBJIDLBASE_
802 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
803 #ifndef __IStream_FWD_DEFINED__
804 #define __IStream_FWD_DEFINED__
805 typedef interface IStream IStream;
806 #ifdef __cplusplus
807 interface IStream;
808 #endif /* __cplusplus */
809 #endif
810 
811 #ifndef __IEnumString_FWD_DEFINED__
812 #define __IEnumString_FWD_DEFINED__
813 typedef interface IEnumString IEnumString;
814 #ifdef __cplusplus
815 interface IEnumString;
816 #endif /* __cplusplus */
817 #endif
818 
819 #ifndef __IMultiQI_FWD_DEFINED__
820 #define __IMultiQI_FWD_DEFINED__
821 typedef interface IMultiQI IMultiQI;
822 #ifdef __cplusplus
823 interface IMultiQI;
824 #endif /* __cplusplus */
825 #endif
826 
827 #endif
828 
829 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
830 #ifndef __IAsyncManager_FWD_DEFINED__
831 #define __IAsyncManager_FWD_DEFINED__
832 typedef interface IAsyncManager IAsyncManager;
833 #ifdef __cplusplus
834 interface IAsyncManager;
835 #endif /* __cplusplus */
836 #endif
837 
838 #ifndef __ICallFactory_FWD_DEFINED__
839 #define __ICallFactory_FWD_DEFINED__
840 typedef interface ICallFactory ICallFactory;
841 #ifdef __cplusplus
842 interface ICallFactory;
843 #endif /* __cplusplus */
844 #endif
845 
846 #ifndef __ISynchronize_FWD_DEFINED__
847 #define __ISynchronize_FWD_DEFINED__
848 typedef interface ISynchronize ISynchronize;
849 #ifdef __cplusplus
850 interface ISynchronize;
851 #endif /* __cplusplus */
852 #endif
853 
854 #endif
855 
856 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
857 typedef struct _COSERVERINFO {
858     DWORD dwReserved1;
859     LPWSTR pwszName;
860     COAUTHINFO *pAuthInfo;
861     DWORD dwReserved2;
862 } COSERVERINFO;
863 
864 /*****************************************************************************
865  * IMarshal interface
866  */
867 #ifndef __IMarshal_INTERFACE_DEFINED__
868 #define __IMarshal_INTERFACE_DEFINED__
869 
870 typedef IMarshal *LPMARSHAL;
871 DEFINE_GUID(IID_IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
872 #if defined(__cplusplus) && !defined(CINTERFACE)
873 MIDL_INTERFACE("00000003-0000-0000-c000-000000000046")
874 IMarshal : public IUnknown
875 {
876     virtual HRESULT STDMETHODCALLTYPE GetUnmarshalClass(
877         REFIID riid,
878         void *pv,
879         DWORD dwDestContext,
880         void *pvDestContext,
881         DWORD mshlflags,
882         CLSID *pCid) = 0;
883 
884     virtual HRESULT STDMETHODCALLTYPE GetMarshalSizeMax(
885         REFIID riid,
886         void *pv,
887         DWORD dwDestContext,
888         void *pvDestContext,
889         DWORD mshlflags,
890         DWORD *pSize) = 0;
891 
892     virtual HRESULT STDMETHODCALLTYPE MarshalInterface(
893         IStream *pStm,
894         REFIID riid,
895         void *pv,
896         DWORD dwDestContext,
897         void *pvDestContext,
898         DWORD mshlflags) = 0;
899 
900     virtual HRESULT STDMETHODCALLTYPE UnmarshalInterface(
901         IStream *pStm,
902         REFIID riid,
903         void **ppv) = 0;
904 
905     virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalData(
906         IStream *pStm) = 0;
907 
908     virtual HRESULT STDMETHODCALLTYPE DisconnectObject(
909         DWORD dwReserved) = 0;
910 
911 };
912 #ifdef __CRT_UUID_DECL
913 __CRT_UUID_DECL(IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
914 #endif
915 #else
916 typedef struct IMarshalVtbl {
917     BEGIN_INTERFACE
918 
919     /*** IUnknown methods ***/
920     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
921         IMarshal *This,
922         REFIID riid,
923         void **ppvObject);
924 
925     ULONG (STDMETHODCALLTYPE *AddRef)(
926         IMarshal *This);
927 
928     ULONG (STDMETHODCALLTYPE *Release)(
929         IMarshal *This);
930 
931     /*** IMarshal methods ***/
932     HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
933         IMarshal *This,
934         REFIID riid,
935         void *pv,
936         DWORD dwDestContext,
937         void *pvDestContext,
938         DWORD mshlflags,
939         CLSID *pCid);
940 
941     HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
942         IMarshal *This,
943         REFIID riid,
944         void *pv,
945         DWORD dwDestContext,
946         void *pvDestContext,
947         DWORD mshlflags,
948         DWORD *pSize);
949 
950     HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
951         IMarshal *This,
952         IStream *pStm,
953         REFIID riid,
954         void *pv,
955         DWORD dwDestContext,
956         void *pvDestContext,
957         DWORD mshlflags);
958 
959     HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
960         IMarshal *This,
961         IStream *pStm,
962         REFIID riid,
963         void **ppv);
964 
965     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
966         IMarshal *This,
967         IStream *pStm);
968 
969     HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
970         IMarshal *This,
971         DWORD dwReserved);
972 
973     END_INTERFACE
974 } IMarshalVtbl;
975 
976 interface IMarshal {
977     CONST_VTBL IMarshalVtbl* lpVtbl;
978 };
979 
980 #ifdef COBJMACROS
981 #ifndef WIDL_C_INLINE_WRAPPERS
982 /*** IUnknown methods ***/
983 #define IMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
984 #define IMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
985 #define IMarshal_Release(This) (This)->lpVtbl->Release(This)
986 /*** IMarshal methods ***/
987 #define IMarshal_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) (This)->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid)
988 #define IMarshal_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) (This)->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize)
989 #define IMarshal_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) (This)->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags)
990 #define IMarshal_UnmarshalInterface(This,pStm,riid,ppv) (This)->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv)
991 #define IMarshal_ReleaseMarshalData(This,pStm) (This)->lpVtbl->ReleaseMarshalData(This,pStm)
992 #define IMarshal_DisconnectObject(This,dwReserved) (This)->lpVtbl->DisconnectObject(This,dwReserved)
993 #else
994 /*** IUnknown methods ***/
995 static FORCEINLINE HRESULT IMarshal_QueryInterface(IMarshal* This,REFIID riid,void **ppvObject) {
996     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
997 }
998 static FORCEINLINE ULONG IMarshal_AddRef(IMarshal* This) {
999     return This->lpVtbl->AddRef(This);
1000 }
1001 static FORCEINLINE ULONG IMarshal_Release(IMarshal* This) {
1002     return This->lpVtbl->Release(This);
1003 }
1004 /*** IMarshal methods ***/
1005 static FORCEINLINE HRESULT IMarshal_GetUnmarshalClass(IMarshal* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,CLSID *pCid) {
1006     return This->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid);
1007 }
1008 static FORCEINLINE HRESULT IMarshal_GetMarshalSizeMax(IMarshal* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,DWORD *pSize) {
1009     return This->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize);
1010 }
1011 static FORCEINLINE HRESULT IMarshal_MarshalInterface(IMarshal* This,IStream *pStm,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags) {
1012     return This->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags);
1013 }
1014 static FORCEINLINE HRESULT IMarshal_UnmarshalInterface(IMarshal* This,IStream *pStm,REFIID riid,void **ppv) {
1015     return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
1016 }
1017 static FORCEINLINE HRESULT IMarshal_ReleaseMarshalData(IMarshal* This,IStream *pStm) {
1018     return This->lpVtbl->ReleaseMarshalData(This,pStm);
1019 }
1020 static FORCEINLINE HRESULT IMarshal_DisconnectObject(IMarshal* This,DWORD dwReserved) {
1021     return This->lpVtbl->DisconnectObject(This,dwReserved);
1022 }
1023 #endif
1024 #endif
1025 
1026 #endif
1027 
1028 
1029 #endif  /* __IMarshal_INTERFACE_DEFINED__ */
1030 
1031 
1032 /*****************************************************************************
1033  * INoMarshal interface
1034  */
1035 #ifndef __INoMarshal_INTERFACE_DEFINED__
1036 #define __INoMarshal_INTERFACE_DEFINED__
1037 
1038 DEFINE_GUID(IID_INoMarshal, 0xecc8691b, 0xc1db, 0x4dc0, 0x85,0x5e, 0x65,0xf6,0xc5,0x51,0xaf,0x49);
1039 #if defined(__cplusplus) && !defined(CINTERFACE)
1040 MIDL_INTERFACE("ecc8691b-c1db-4dc0-855e-65f6c551af49")
1041 INoMarshal : public IUnknown
1042 {
1043 };
1044 #ifdef __CRT_UUID_DECL
1045 __CRT_UUID_DECL(INoMarshal, 0xecc8691b, 0xc1db, 0x4dc0, 0x85,0x5e, 0x65,0xf6,0xc5,0x51,0xaf,0x49)
1046 #endif
1047 #else
1048 typedef struct INoMarshalVtbl {
1049     BEGIN_INTERFACE
1050 
1051     /*** IUnknown methods ***/
1052     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1053         INoMarshal *This,
1054         REFIID riid,
1055         void **ppvObject);
1056 
1057     ULONG (STDMETHODCALLTYPE *AddRef)(
1058         INoMarshal *This);
1059 
1060     ULONG (STDMETHODCALLTYPE *Release)(
1061         INoMarshal *This);
1062 
1063     END_INTERFACE
1064 } INoMarshalVtbl;
1065 
1066 interface INoMarshal {
1067     CONST_VTBL INoMarshalVtbl* lpVtbl;
1068 };
1069 
1070 #ifdef COBJMACROS
1071 #ifndef WIDL_C_INLINE_WRAPPERS
1072 /*** IUnknown methods ***/
1073 #define INoMarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1074 #define INoMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
1075 #define INoMarshal_Release(This) (This)->lpVtbl->Release(This)
1076 #else
1077 /*** IUnknown methods ***/
1078 static FORCEINLINE HRESULT INoMarshal_QueryInterface(INoMarshal* This,REFIID riid,void **ppvObject) {
1079     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1080 }
1081 static FORCEINLINE ULONG INoMarshal_AddRef(INoMarshal* This) {
1082     return This->lpVtbl->AddRef(This);
1083 }
1084 static FORCEINLINE ULONG INoMarshal_Release(INoMarshal* This) {
1085     return This->lpVtbl->Release(This);
1086 }
1087 #endif
1088 #endif
1089 
1090 #endif
1091 
1092 
1093 #endif  /* __INoMarshal_INTERFACE_DEFINED__ */
1094 
1095 
1096 /*****************************************************************************
1097  * IAgileObject interface
1098  */
1099 #ifndef __IAgileObject_INTERFACE_DEFINED__
1100 #define __IAgileObject_INTERFACE_DEFINED__
1101 
1102 DEFINE_GUID(IID_IAgileObject, 0x94ea2b94, 0xe9cc, 0x49e0, 0xc0,0xff, 0xee,0x64,0xca,0x8f,0x5b,0x90);
1103 #if defined(__cplusplus) && !defined(CINTERFACE)
1104 MIDL_INTERFACE("94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90")
1105 IAgileObject : public IUnknown
1106 {
1107 };
1108 #ifdef __CRT_UUID_DECL
1109 __CRT_UUID_DECL(IAgileObject, 0x94ea2b94, 0xe9cc, 0x49e0, 0xc0,0xff, 0xee,0x64,0xca,0x8f,0x5b,0x90)
1110 #endif
1111 #else
1112 typedef struct IAgileObjectVtbl {
1113     BEGIN_INTERFACE
1114 
1115     /*** IUnknown methods ***/
1116     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1117         IAgileObject *This,
1118         REFIID riid,
1119         void **ppvObject);
1120 
1121     ULONG (STDMETHODCALLTYPE *AddRef)(
1122         IAgileObject *This);
1123 
1124     ULONG (STDMETHODCALLTYPE *Release)(
1125         IAgileObject *This);
1126 
1127     END_INTERFACE
1128 } IAgileObjectVtbl;
1129 
1130 interface IAgileObject {
1131     CONST_VTBL IAgileObjectVtbl* lpVtbl;
1132 };
1133 
1134 #ifdef COBJMACROS
1135 #ifndef WIDL_C_INLINE_WRAPPERS
1136 /*** IUnknown methods ***/
1137 #define IAgileObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1138 #define IAgileObject_AddRef(This) (This)->lpVtbl->AddRef(This)
1139 #define IAgileObject_Release(This) (This)->lpVtbl->Release(This)
1140 #else
1141 /*** IUnknown methods ***/
1142 static FORCEINLINE HRESULT IAgileObject_QueryInterface(IAgileObject* This,REFIID riid,void **ppvObject) {
1143     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1144 }
1145 static FORCEINLINE ULONG IAgileObject_AddRef(IAgileObject* This) {
1146     return This->lpVtbl->AddRef(This);
1147 }
1148 static FORCEINLINE ULONG IAgileObject_Release(IAgileObject* This) {
1149     return This->lpVtbl->Release(This);
1150 }
1151 #endif
1152 #endif
1153 
1154 #endif
1155 
1156 
1157 #endif  /* __IAgileObject_INTERFACE_DEFINED__ */
1158 
1159 /*****************************************************************************
1160  * IAgileReference interface
1161  */
1162 #ifndef __IAgileReference_INTERFACE_DEFINED__
1163 #define __IAgileReference_INTERFACE_DEFINED__
1164 
1165 DEFINE_GUID(IID_IAgileReference, 0xc03f6a43, 0x65a4, 0x9818, 0x98,0x7e, 0xe0,0xb8,0x10,0xd2,0xa6,0xf2);
1166 #if defined(__cplusplus) && !defined(CINTERFACE)
1167 MIDL_INTERFACE("c03f6a43-65a4-9818-987e-e0b810d2a6f2")
1168 IAgileReference : public IUnknown
1169 {
1170     virtual HRESULT STDMETHODCALLTYPE Resolve(
1171         REFIID riid,
1172         void **ppv) = 0;
1173 
1174 };
1175 #ifdef __CRT_UUID_DECL
1176 __CRT_UUID_DECL(IAgileReference, 0xc03f6a43, 0x65a4, 0x9818, 0x98,0x7e, 0xe0,0xb8,0x10,0xd2,0xa6,0xf2)
1177 #endif
1178 #else
1179 typedef struct IAgileReferenceVtbl {
1180     BEGIN_INTERFACE
1181 
1182     /*** IUnknown methods ***/
1183     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1184         IAgileReference *This,
1185         REFIID riid,
1186         void **ppvObject);
1187 
1188     ULONG (STDMETHODCALLTYPE *AddRef)(
1189         IAgileReference *This);
1190 
1191     ULONG (STDMETHODCALLTYPE *Release)(
1192         IAgileReference *This);
1193 
1194     /*** IAgileReference methods ***/
1195     HRESULT (STDMETHODCALLTYPE *Resolve)(
1196         IAgileReference *This,
1197         REFIID riid,
1198         void **ppv);
1199 
1200     END_INTERFACE
1201 } IAgileReferenceVtbl;
1202 
1203 interface IAgileReference {
1204     CONST_VTBL IAgileReferenceVtbl* lpVtbl;
1205 };
1206 
1207 #ifdef COBJMACROS
1208 #ifndef WIDL_C_INLINE_WRAPPERS
1209 /*** IUnknown methods ***/
1210 #define IAgileReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1211 #define IAgileReference_AddRef(This) (This)->lpVtbl->AddRef(This)
1212 #define IAgileReference_Release(This) (This)->lpVtbl->Release(This)
1213 /*** IAgileReference methods ***/
1214 #define IAgileReference_Resolve(This,riid,ppv) (This)->lpVtbl->Resolve(This,riid,ppv)
1215 #else
1216 /*** IUnknown methods ***/
1217 static FORCEINLINE HRESULT IAgileReference_QueryInterface(IAgileReference* This,REFIID riid,void **ppvObject) {
1218     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1219 }
1220 static FORCEINLINE ULONG IAgileReference_AddRef(IAgileReference* This) {
1221     return This->lpVtbl->AddRef(This);
1222 }
1223 static FORCEINLINE ULONG IAgileReference_Release(IAgileReference* This) {
1224     return This->lpVtbl->Release(This);
1225 }
1226 /*** IAgileReference methods ***/
1227 static FORCEINLINE HRESULT IAgileReference_Resolve(IAgileReference* This,REFIID riid,void **ppv) {
1228     return This->lpVtbl->Resolve(This,riid,ppv);
1229 }
1230 #endif
1231 #endif
1232 
1233 #endif
1234 
1235 
1236 #endif  /* __IAgileReference_INTERFACE_DEFINED__ */
1237 
1238 #endif
1239 
1240 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
1241 /*****************************************************************************
1242  * IMarshal2 interface
1243  */
1244 #ifndef __IMarshal2_INTERFACE_DEFINED__
1245 #define __IMarshal2_INTERFACE_DEFINED__
1246 
1247 typedef IMarshal2 *LPMARSHAL2;
1248 DEFINE_GUID(IID_IMarshal2, 0x000001cf, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1249 #if defined(__cplusplus) && !defined(CINTERFACE)
1250 MIDL_INTERFACE("000001cf-0000-0000-c000-000000000046")
1251 IMarshal2 : public IMarshal
1252 {
1253 };
1254 #ifdef __CRT_UUID_DECL
1255 __CRT_UUID_DECL(IMarshal2, 0x000001cf, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1256 #endif
1257 #else
1258 typedef struct IMarshal2Vtbl {
1259     BEGIN_INTERFACE
1260 
1261     /*** IUnknown methods ***/
1262     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1263         IMarshal2 *This,
1264         REFIID riid,
1265         void **ppvObject);
1266 
1267     ULONG (STDMETHODCALLTYPE *AddRef)(
1268         IMarshal2 *This);
1269 
1270     ULONG (STDMETHODCALLTYPE *Release)(
1271         IMarshal2 *This);
1272 
1273     /*** IMarshal methods ***/
1274     HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
1275         IMarshal2 *This,
1276         REFIID riid,
1277         void *pv,
1278         DWORD dwDestContext,
1279         void *pvDestContext,
1280         DWORD mshlflags,
1281         CLSID *pCid);
1282 
1283     HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
1284         IMarshal2 *This,
1285         REFIID riid,
1286         void *pv,
1287         DWORD dwDestContext,
1288         void *pvDestContext,
1289         DWORD mshlflags,
1290         DWORD *pSize);
1291 
1292     HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
1293         IMarshal2 *This,
1294         IStream *pStm,
1295         REFIID riid,
1296         void *pv,
1297         DWORD dwDestContext,
1298         void *pvDestContext,
1299         DWORD mshlflags);
1300 
1301     HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
1302         IMarshal2 *This,
1303         IStream *pStm,
1304         REFIID riid,
1305         void **ppv);
1306 
1307     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
1308         IMarshal2 *This,
1309         IStream *pStm);
1310 
1311     HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
1312         IMarshal2 *This,
1313         DWORD dwReserved);
1314 
1315     END_INTERFACE
1316 } IMarshal2Vtbl;
1317 
1318 interface IMarshal2 {
1319     CONST_VTBL IMarshal2Vtbl* lpVtbl;
1320 };
1321 
1322 #ifdef COBJMACROS
1323 #ifndef WIDL_C_INLINE_WRAPPERS
1324 /*** IUnknown methods ***/
1325 #define IMarshal2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1326 #define IMarshal2_AddRef(This) (This)->lpVtbl->AddRef(This)
1327 #define IMarshal2_Release(This) (This)->lpVtbl->Release(This)
1328 /*** IMarshal methods ***/
1329 #define IMarshal2_GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid) (This)->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid)
1330 #define IMarshal2_GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize) (This)->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize)
1331 #define IMarshal2_MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags) (This)->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags)
1332 #define IMarshal2_UnmarshalInterface(This,pStm,riid,ppv) (This)->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv)
1333 #define IMarshal2_ReleaseMarshalData(This,pStm) (This)->lpVtbl->ReleaseMarshalData(This,pStm)
1334 #define IMarshal2_DisconnectObject(This,dwReserved) (This)->lpVtbl->DisconnectObject(This,dwReserved)
1335 #else
1336 /*** IUnknown methods ***/
1337 static FORCEINLINE HRESULT IMarshal2_QueryInterface(IMarshal2* This,REFIID riid,void **ppvObject) {
1338     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1339 }
1340 static FORCEINLINE ULONG IMarshal2_AddRef(IMarshal2* This) {
1341     return This->lpVtbl->AddRef(This);
1342 }
1343 static FORCEINLINE ULONG IMarshal2_Release(IMarshal2* This) {
1344     return This->lpVtbl->Release(This);
1345 }
1346 /*** IMarshal methods ***/
1347 static FORCEINLINE HRESULT IMarshal2_GetUnmarshalClass(IMarshal2* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,CLSID *pCid) {
1348     return This->lpVtbl->GetUnmarshalClass(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pCid);
1349 }
1350 static FORCEINLINE HRESULT IMarshal2_GetMarshalSizeMax(IMarshal2* This,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,DWORD *pSize) {
1351     return This->lpVtbl->GetMarshalSizeMax(This,riid,pv,dwDestContext,pvDestContext,mshlflags,pSize);
1352 }
1353 static FORCEINLINE HRESULT IMarshal2_MarshalInterface(IMarshal2* This,IStream *pStm,REFIID riid,void *pv,DWORD dwDestContext,void *pvDestContext,DWORD mshlflags) {
1354     return This->lpVtbl->MarshalInterface(This,pStm,riid,pv,dwDestContext,pvDestContext,mshlflags);
1355 }
1356 static FORCEINLINE HRESULT IMarshal2_UnmarshalInterface(IMarshal2* This,IStream *pStm,REFIID riid,void **ppv) {
1357     return This->lpVtbl->UnmarshalInterface(This,pStm,riid,ppv);
1358 }
1359 static FORCEINLINE HRESULT IMarshal2_ReleaseMarshalData(IMarshal2* This,IStream *pStm) {
1360     return This->lpVtbl->ReleaseMarshalData(This,pStm);
1361 }
1362 static FORCEINLINE HRESULT IMarshal2_DisconnectObject(IMarshal2* This,DWORD dwReserved) {
1363     return This->lpVtbl->DisconnectObject(This,dwReserved);
1364 }
1365 #endif
1366 #endif
1367 
1368 #endif
1369 
1370 
1371 #endif  /* __IMarshal2_INTERFACE_DEFINED__ */
1372 
1373 
1374 /*****************************************************************************
1375  * IMalloc interface
1376  */
1377 #ifndef __IMalloc_INTERFACE_DEFINED__
1378 #define __IMalloc_INTERFACE_DEFINED__
1379 
1380 typedef IMalloc *LPMALLOC;
1381 
1382 DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1383 #if defined(__cplusplus) && !defined(CINTERFACE)
1384 MIDL_INTERFACE("00000002-0000-0000-c000-000000000046")
1385 IMalloc : public IUnknown
1386 {
1387     virtual void * STDMETHODCALLTYPE Alloc(
1388         SIZE_T cb) = 0;
1389 
1390     virtual void * STDMETHODCALLTYPE Realloc(
1391         void *pv,
1392         SIZE_T cb) = 0;
1393 
1394     virtual void STDMETHODCALLTYPE Free(
1395         void *pv) = 0;
1396 
1397     virtual SIZE_T STDMETHODCALLTYPE GetSize(
1398         void *pv) = 0;
1399 
1400     virtual int STDMETHODCALLTYPE DidAlloc(
1401         void *pv) = 0;
1402 
1403     virtual void STDMETHODCALLTYPE HeapMinimize(
1404         ) = 0;
1405 
1406 };
1407 #ifdef __CRT_UUID_DECL
1408 __CRT_UUID_DECL(IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1409 #endif
1410 #else
1411 typedef struct IMallocVtbl {
1412     BEGIN_INTERFACE
1413 
1414     /*** IUnknown methods ***/
1415     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1416         IMalloc *This,
1417         REFIID riid,
1418         void **ppvObject);
1419 
1420     ULONG (STDMETHODCALLTYPE *AddRef)(
1421         IMalloc *This);
1422 
1423     ULONG (STDMETHODCALLTYPE *Release)(
1424         IMalloc *This);
1425 
1426     /*** IMalloc methods ***/
1427     void * (STDMETHODCALLTYPE *Alloc)(
1428         IMalloc *This,
1429         SIZE_T cb);
1430 
1431     void * (STDMETHODCALLTYPE *Realloc)(
1432         IMalloc *This,
1433         void *pv,
1434         SIZE_T cb);
1435 
1436     void (STDMETHODCALLTYPE *Free)(
1437         IMalloc *This,
1438         void *pv);
1439 
1440     SIZE_T (STDMETHODCALLTYPE *GetSize)(
1441         IMalloc *This,
1442         void *pv);
1443 
1444     int (STDMETHODCALLTYPE *DidAlloc)(
1445         IMalloc *This,
1446         void *pv);
1447 
1448     void (STDMETHODCALLTYPE *HeapMinimize)(
1449         IMalloc *This);
1450 
1451     END_INTERFACE
1452 } IMallocVtbl;
1453 
1454 interface IMalloc {
1455     CONST_VTBL IMallocVtbl* lpVtbl;
1456 };
1457 
1458 #ifdef COBJMACROS
1459 #ifndef WIDL_C_INLINE_WRAPPERS
1460 /*** IUnknown methods ***/
1461 #define IMalloc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1462 #define IMalloc_AddRef(This) (This)->lpVtbl->AddRef(This)
1463 #define IMalloc_Release(This) (This)->lpVtbl->Release(This)
1464 /*** IMalloc methods ***/
1465 #define IMalloc_Alloc(This,cb) (This)->lpVtbl->Alloc(This,cb)
1466 #define IMalloc_Realloc(This,pv,cb) (This)->lpVtbl->Realloc(This,pv,cb)
1467 #define IMalloc_Free(This,pv) (This)->lpVtbl->Free(This,pv)
1468 #define IMalloc_GetSize(This,pv) (This)->lpVtbl->GetSize(This,pv)
1469 #define IMalloc_DidAlloc(This,pv) (This)->lpVtbl->DidAlloc(This,pv)
1470 #define IMalloc_HeapMinimize(This) (This)->lpVtbl->HeapMinimize(This)
1471 #else
1472 /*** IUnknown methods ***/
1473 static FORCEINLINE HRESULT IMalloc_QueryInterface(IMalloc* This,REFIID riid,void **ppvObject) {
1474     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1475 }
1476 static FORCEINLINE ULONG IMalloc_AddRef(IMalloc* This) {
1477     return This->lpVtbl->AddRef(This);
1478 }
1479 static FORCEINLINE ULONG IMalloc_Release(IMalloc* This) {
1480     return This->lpVtbl->Release(This);
1481 }
1482 /*** IMalloc methods ***/
1483 static FORCEINLINE void * IMalloc_Alloc(IMalloc* This,SIZE_T cb) {
1484     return This->lpVtbl->Alloc(This,cb);
1485 }
1486 static FORCEINLINE void * IMalloc_Realloc(IMalloc* This,void *pv,SIZE_T cb) {
1487     return This->lpVtbl->Realloc(This,pv,cb);
1488 }
1489 static FORCEINLINE void IMalloc_Free(IMalloc* This,void *pv) {
1490     This->lpVtbl->Free(This,pv);
1491 }
1492 static FORCEINLINE SIZE_T IMalloc_GetSize(IMalloc* This,void *pv) {
1493     return This->lpVtbl->GetSize(This,pv);
1494 }
1495 static FORCEINLINE int IMalloc_DidAlloc(IMalloc* This,void *pv) {
1496     return This->lpVtbl->DidAlloc(This,pv);
1497 }
1498 static FORCEINLINE void IMalloc_HeapMinimize(IMalloc* This) {
1499     This->lpVtbl->HeapMinimize(This);
1500 }
1501 #endif
1502 #endif
1503 
1504 #endif
1505 
1506 
1507 #endif  /* __IMalloc_INTERFACE_DEFINED__ */
1508 
1509 
1510 /*****************************************************************************
1511  * IStdMarshalInfo interface
1512  */
1513 #ifndef __IStdMarshalInfo_INTERFACE_DEFINED__
1514 #define __IStdMarshalInfo_INTERFACE_DEFINED__
1515 
1516 typedef IStdMarshalInfo *LPSTDMARSHALINFO;
1517 
1518 DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1519 #if defined(__cplusplus) && !defined(CINTERFACE)
1520 MIDL_INTERFACE("00000018-0000-0000-c000-000000000046")
1521 IStdMarshalInfo : public IUnknown
1522 {
1523     virtual HRESULT STDMETHODCALLTYPE GetClassForHandler(
1524         DWORD dwDestContext,
1525         void *pvDestContext,
1526         CLSID *pClsid) = 0;
1527 
1528 };
1529 #ifdef __CRT_UUID_DECL
1530 __CRT_UUID_DECL(IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1531 #endif
1532 #else
1533 typedef struct IStdMarshalInfoVtbl {
1534     BEGIN_INTERFACE
1535 
1536     /*** IUnknown methods ***/
1537     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1538         IStdMarshalInfo *This,
1539         REFIID riid,
1540         void **ppvObject);
1541 
1542     ULONG (STDMETHODCALLTYPE *AddRef)(
1543         IStdMarshalInfo *This);
1544 
1545     ULONG (STDMETHODCALLTYPE *Release)(
1546         IStdMarshalInfo *This);
1547 
1548     /*** IStdMarshalInfo methods ***/
1549     HRESULT (STDMETHODCALLTYPE *GetClassForHandler)(
1550         IStdMarshalInfo *This,
1551         DWORD dwDestContext,
1552         void *pvDestContext,
1553         CLSID *pClsid);
1554 
1555     END_INTERFACE
1556 } IStdMarshalInfoVtbl;
1557 
1558 interface IStdMarshalInfo {
1559     CONST_VTBL IStdMarshalInfoVtbl* lpVtbl;
1560 };
1561 
1562 #ifdef COBJMACROS
1563 #ifndef WIDL_C_INLINE_WRAPPERS
1564 /*** IUnknown methods ***/
1565 #define IStdMarshalInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1566 #define IStdMarshalInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
1567 #define IStdMarshalInfo_Release(This) (This)->lpVtbl->Release(This)
1568 /*** IStdMarshalInfo methods ***/
1569 #define IStdMarshalInfo_GetClassForHandler(This,dwDestContext,pvDestContext,pClsid) (This)->lpVtbl->GetClassForHandler(This,dwDestContext,pvDestContext,pClsid)
1570 #else
1571 /*** IUnknown methods ***/
1572 static FORCEINLINE HRESULT IStdMarshalInfo_QueryInterface(IStdMarshalInfo* This,REFIID riid,void **ppvObject) {
1573     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1574 }
1575 static FORCEINLINE ULONG IStdMarshalInfo_AddRef(IStdMarshalInfo* This) {
1576     return This->lpVtbl->AddRef(This);
1577 }
1578 static FORCEINLINE ULONG IStdMarshalInfo_Release(IStdMarshalInfo* This) {
1579     return This->lpVtbl->Release(This);
1580 }
1581 /*** IStdMarshalInfo methods ***/
1582 static FORCEINLINE HRESULT IStdMarshalInfo_GetClassForHandler(IStdMarshalInfo* This,DWORD dwDestContext,void *pvDestContext,CLSID *pClsid) {
1583     return This->lpVtbl->GetClassForHandler(This,dwDestContext,pvDestContext,pClsid);
1584 }
1585 #endif
1586 #endif
1587 
1588 #endif
1589 
1590 
1591 #endif  /* __IStdMarshalInfo_INTERFACE_DEFINED__ */
1592 
1593 
1594 /*****************************************************************************
1595  * IExternalConnection interface
1596  */
1597 #ifndef __IExternalConnection_INTERFACE_DEFINED__
1598 #define __IExternalConnection_INTERFACE_DEFINED__
1599 
1600 typedef IExternalConnection *LPEXTERNALCONNECTION;
1601 
1602 typedef enum tagEXTCONN {
1603     EXTCONN_STRONG = 0x1,
1604     EXTCONN_WEAK = 0x2,
1605     EXTCONN_CALLABLE = 0x4
1606 } EXTCONN;
1607 
1608 DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1609 #if defined(__cplusplus) && !defined(CINTERFACE)
1610 MIDL_INTERFACE("00000019-0000-0000-c000-000000000046")
1611 IExternalConnection : public IUnknown
1612 {
1613     virtual DWORD STDMETHODCALLTYPE AddConnection(
1614         DWORD extconn,
1615         DWORD reserved) = 0;
1616 
1617     virtual DWORD STDMETHODCALLTYPE ReleaseConnection(
1618         DWORD extconn,
1619         DWORD reserved,
1620         WINBOOL fLastReleaseCloses) = 0;
1621 
1622 };
1623 #ifdef __CRT_UUID_DECL
1624 __CRT_UUID_DECL(IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1625 #endif
1626 #else
1627 typedef struct IExternalConnectionVtbl {
1628     BEGIN_INTERFACE
1629 
1630     /*** IUnknown methods ***/
1631     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1632         IExternalConnection *This,
1633         REFIID riid,
1634         void **ppvObject);
1635 
1636     ULONG (STDMETHODCALLTYPE *AddRef)(
1637         IExternalConnection *This);
1638 
1639     ULONG (STDMETHODCALLTYPE *Release)(
1640         IExternalConnection *This);
1641 
1642     /*** IExternalConnection methods ***/
1643     DWORD (STDMETHODCALLTYPE *AddConnection)(
1644         IExternalConnection *This,
1645         DWORD extconn,
1646         DWORD reserved);
1647 
1648     DWORD (STDMETHODCALLTYPE *ReleaseConnection)(
1649         IExternalConnection *This,
1650         DWORD extconn,
1651         DWORD reserved,
1652         WINBOOL fLastReleaseCloses);
1653 
1654     END_INTERFACE
1655 } IExternalConnectionVtbl;
1656 
1657 interface IExternalConnection {
1658     CONST_VTBL IExternalConnectionVtbl* lpVtbl;
1659 };
1660 
1661 #ifdef COBJMACROS
1662 #ifndef WIDL_C_INLINE_WRAPPERS
1663 /*** IUnknown methods ***/
1664 #define IExternalConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1665 #define IExternalConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
1666 #define IExternalConnection_Release(This) (This)->lpVtbl->Release(This)
1667 /*** IExternalConnection methods ***/
1668 #define IExternalConnection_AddConnection(This,extconn,reserved) (This)->lpVtbl->AddConnection(This,extconn,reserved)
1669 #define IExternalConnection_ReleaseConnection(This,extconn,reserved,fLastReleaseCloses) (This)->lpVtbl->ReleaseConnection(This,extconn,reserved,fLastReleaseCloses)
1670 #else
1671 /*** IUnknown methods ***/
1672 static FORCEINLINE HRESULT IExternalConnection_QueryInterface(IExternalConnection* This,REFIID riid,void **ppvObject) {
1673     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1674 }
1675 static FORCEINLINE ULONG IExternalConnection_AddRef(IExternalConnection* This) {
1676     return This->lpVtbl->AddRef(This);
1677 }
1678 static FORCEINLINE ULONG IExternalConnection_Release(IExternalConnection* This) {
1679     return This->lpVtbl->Release(This);
1680 }
1681 /*** IExternalConnection methods ***/
1682 static FORCEINLINE DWORD IExternalConnection_AddConnection(IExternalConnection* This,DWORD extconn,DWORD reserved) {
1683     return This->lpVtbl->AddConnection(This,extconn,reserved);
1684 }
1685 static FORCEINLINE DWORD IExternalConnection_ReleaseConnection(IExternalConnection* This,DWORD extconn,DWORD reserved,WINBOOL fLastReleaseCloses) {
1686     return This->lpVtbl->ReleaseConnection(This,extconn,reserved,fLastReleaseCloses);
1687 }
1688 #endif
1689 #endif
1690 
1691 #endif
1692 
1693 
1694 #endif  /* __IExternalConnection_INTERFACE_DEFINED__ */
1695 
1696 
1697 typedef IMultiQI *LPMULTIQI;
1698 #endif
1699 
1700 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
1701 typedef struct tagMULTI_QI {
1702     const IID *pIID;
1703     IUnknown *pItf;
1704     HRESULT hr;
1705 } MULTI_QI;
1706 
1707 /*****************************************************************************
1708  * IMultiQI interface
1709  */
1710 #ifndef __IMultiQI_INTERFACE_DEFINED__
1711 #define __IMultiQI_INTERFACE_DEFINED__
1712 
1713 DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1714 #if defined(__cplusplus) && !defined(CINTERFACE)
1715 MIDL_INTERFACE("00000020-0000-0000-c000-000000000046")
1716 IMultiQI : public IUnknown
1717 {
1718     virtual HRESULT STDMETHODCALLTYPE QueryMultipleInterfaces(
1719         ULONG cMQIs,
1720         MULTI_QI *pMQIs) = 0;
1721 
1722 };
1723 #ifdef __CRT_UUID_DECL
1724 __CRT_UUID_DECL(IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1725 #endif
1726 #else
1727 typedef struct IMultiQIVtbl {
1728     BEGIN_INTERFACE
1729 
1730     /*** IUnknown methods ***/
1731     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1732         IMultiQI *This,
1733         REFIID riid,
1734         void **ppvObject);
1735 
1736     ULONG (STDMETHODCALLTYPE *AddRef)(
1737         IMultiQI *This);
1738 
1739     ULONG (STDMETHODCALLTYPE *Release)(
1740         IMultiQI *This);
1741 
1742     /*** IMultiQI methods ***/
1743     HRESULT (STDMETHODCALLTYPE *QueryMultipleInterfaces)(
1744         IMultiQI *This,
1745         ULONG cMQIs,
1746         MULTI_QI *pMQIs);
1747 
1748     END_INTERFACE
1749 } IMultiQIVtbl;
1750 
1751 interface IMultiQI {
1752     CONST_VTBL IMultiQIVtbl* lpVtbl;
1753 };
1754 
1755 #ifdef COBJMACROS
1756 #ifndef WIDL_C_INLINE_WRAPPERS
1757 /*** IUnknown methods ***/
1758 #define IMultiQI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1759 #define IMultiQI_AddRef(This) (This)->lpVtbl->AddRef(This)
1760 #define IMultiQI_Release(This) (This)->lpVtbl->Release(This)
1761 /*** IMultiQI methods ***/
1762 #define IMultiQI_QueryMultipleInterfaces(This,cMQIs,pMQIs) (This)->lpVtbl->QueryMultipleInterfaces(This,cMQIs,pMQIs)
1763 #else
1764 /*** IUnknown methods ***/
1765 static FORCEINLINE HRESULT IMultiQI_QueryInterface(IMultiQI* This,REFIID riid,void **ppvObject) {
1766     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1767 }
1768 static FORCEINLINE ULONG IMultiQI_AddRef(IMultiQI* This) {
1769     return This->lpVtbl->AddRef(This);
1770 }
1771 static FORCEINLINE ULONG IMultiQI_Release(IMultiQI* This) {
1772     return This->lpVtbl->Release(This);
1773 }
1774 /*** IMultiQI methods ***/
1775 static FORCEINLINE HRESULT IMultiQI_QueryMultipleInterfaces(IMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
1776     return This->lpVtbl->QueryMultipleInterfaces(This,cMQIs,pMQIs);
1777 }
1778 #endif
1779 #endif
1780 
1781 #endif
1782 
1783 
1784 #endif  /* __IMultiQI_INTERFACE_DEFINED__ */
1785 
1786 /*****************************************************************************
1787  * AsyncIMultiQI interface
1788  */
1789 #ifndef __AsyncIMultiQI_INTERFACE_DEFINED__
1790 #define __AsyncIMultiQI_INTERFACE_DEFINED__
1791 
1792 DEFINE_GUID(IID_AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1793 #if defined(__cplusplus) && !defined(CINTERFACE)
1794 MIDL_INTERFACE("000e0020-0000-0000-c000-000000000046")
1795 AsyncIMultiQI : public IUnknown
1796 {
1797     virtual HRESULT STDMETHODCALLTYPE Begin_QueryMultipleInterfaces(
1798         ULONG cMQIs,
1799         MULTI_QI *pMQIs) = 0;
1800 
1801     virtual HRESULT STDMETHODCALLTYPE Finish_QueryMultipleInterfaces(
1802         MULTI_QI *pMQIs) = 0;
1803 
1804 };
1805 #ifdef __CRT_UUID_DECL
1806 __CRT_UUID_DECL(AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1807 #endif
1808 #else
1809 typedef struct AsyncIMultiQIVtbl {
1810     BEGIN_INTERFACE
1811 
1812     /*** IUnknown methods ***/
1813     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1814         AsyncIMultiQI *This,
1815         REFIID riid,
1816         void **ppvObject);
1817 
1818     ULONG (STDMETHODCALLTYPE *AddRef)(
1819         AsyncIMultiQI *This);
1820 
1821     ULONG (STDMETHODCALLTYPE *Release)(
1822         AsyncIMultiQI *This);
1823 
1824     /*** AsyncIMultiQI methods ***/
1825     HRESULT (STDMETHODCALLTYPE *Begin_QueryMultipleInterfaces)(
1826         AsyncIMultiQI *This,
1827         ULONG cMQIs,
1828         MULTI_QI *pMQIs);
1829 
1830     HRESULT (STDMETHODCALLTYPE *Finish_QueryMultipleInterfaces)(
1831         AsyncIMultiQI *This,
1832         MULTI_QI *pMQIs);
1833 
1834     END_INTERFACE
1835 } AsyncIMultiQIVtbl;
1836 
1837 interface AsyncIMultiQI {
1838     CONST_VTBL AsyncIMultiQIVtbl* lpVtbl;
1839 };
1840 
1841 #ifdef COBJMACROS
1842 #ifndef WIDL_C_INLINE_WRAPPERS
1843 /*** IUnknown methods ***/
1844 #define AsyncIMultiQI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1845 #define AsyncIMultiQI_AddRef(This) (This)->lpVtbl->AddRef(This)
1846 #define AsyncIMultiQI_Release(This) (This)->lpVtbl->Release(This)
1847 /*** AsyncIMultiQI methods ***/
1848 #define AsyncIMultiQI_Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs) (This)->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs)
1849 #define AsyncIMultiQI_Finish_QueryMultipleInterfaces(This,pMQIs) (This)->lpVtbl->Finish_QueryMultipleInterfaces(This,pMQIs)
1850 #else
1851 /*** IUnknown methods ***/
1852 static FORCEINLINE HRESULT AsyncIMultiQI_QueryInterface(AsyncIMultiQI* This,REFIID riid,void **ppvObject) {
1853     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1854 }
1855 static FORCEINLINE ULONG AsyncIMultiQI_AddRef(AsyncIMultiQI* This) {
1856     return This->lpVtbl->AddRef(This);
1857 }
1858 static FORCEINLINE ULONG AsyncIMultiQI_Release(AsyncIMultiQI* This) {
1859     return This->lpVtbl->Release(This);
1860 }
1861 /*** AsyncIMultiQI methods ***/
1862 static FORCEINLINE HRESULT AsyncIMultiQI_Begin_QueryMultipleInterfaces(AsyncIMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
1863     return This->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs);
1864 }
1865 static FORCEINLINE HRESULT AsyncIMultiQI_Finish_QueryMultipleInterfaces(AsyncIMultiQI* This,MULTI_QI *pMQIs) {
1866     return This->lpVtbl->Finish_QueryMultipleInterfaces(This,pMQIs);
1867 }
1868 #endif
1869 #endif
1870 
1871 #endif
1872 
1873 
1874 #endif  /* __AsyncIMultiQI_INTERFACE_DEFINED__ */
1875 
1876 #endif
1877 
1878 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
1879 /*****************************************************************************
1880  * IInternalUnknown interface
1881  */
1882 #ifndef __IInternalUnknown_INTERFACE_DEFINED__
1883 #define __IInternalUnknown_INTERFACE_DEFINED__
1884 
1885 DEFINE_GUID(IID_IInternalUnknown, 0x00000021, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1886 #if defined(__cplusplus) && !defined(CINTERFACE)
1887 MIDL_INTERFACE("00000021-0000-0000-c000-000000000046")
1888 IInternalUnknown : public IUnknown
1889 {
1890     virtual HRESULT STDMETHODCALLTYPE QueryInternalInterface(
1891         REFIID riid,
1892         void **ppv) = 0;
1893 
1894 };
1895 #ifdef __CRT_UUID_DECL
1896 __CRT_UUID_DECL(IInternalUnknown, 0x00000021, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1897 #endif
1898 #else
1899 typedef struct IInternalUnknownVtbl {
1900     BEGIN_INTERFACE
1901 
1902     /*** IUnknown methods ***/
1903     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1904         IInternalUnknown *This,
1905         REFIID riid,
1906         void **ppvObject);
1907 
1908     ULONG (STDMETHODCALLTYPE *AddRef)(
1909         IInternalUnknown *This);
1910 
1911     ULONG (STDMETHODCALLTYPE *Release)(
1912         IInternalUnknown *This);
1913 
1914     /*** IInternalUnknown methods ***/
1915     HRESULT (STDMETHODCALLTYPE *QueryInternalInterface)(
1916         IInternalUnknown *This,
1917         REFIID riid,
1918         void **ppv);
1919 
1920     END_INTERFACE
1921 } IInternalUnknownVtbl;
1922 
1923 interface IInternalUnknown {
1924     CONST_VTBL IInternalUnknownVtbl* lpVtbl;
1925 };
1926 
1927 #ifdef COBJMACROS
1928 #ifndef WIDL_C_INLINE_WRAPPERS
1929 /*** IUnknown methods ***/
1930 #define IInternalUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1931 #define IInternalUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
1932 #define IInternalUnknown_Release(This) (This)->lpVtbl->Release(This)
1933 /*** IInternalUnknown methods ***/
1934 #define IInternalUnknown_QueryInternalInterface(This,riid,ppv) (This)->lpVtbl->QueryInternalInterface(This,riid,ppv)
1935 #else
1936 /*** IUnknown methods ***/
1937 static FORCEINLINE HRESULT IInternalUnknown_QueryInterface(IInternalUnknown* This,REFIID riid,void **ppvObject) {
1938     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1939 }
1940 static FORCEINLINE ULONG IInternalUnknown_AddRef(IInternalUnknown* This) {
1941     return This->lpVtbl->AddRef(This);
1942 }
1943 static FORCEINLINE ULONG IInternalUnknown_Release(IInternalUnknown* This) {
1944     return This->lpVtbl->Release(This);
1945 }
1946 /*** IInternalUnknown methods ***/
1947 static FORCEINLINE HRESULT IInternalUnknown_QueryInternalInterface(IInternalUnknown* This,REFIID riid,void **ppv) {
1948     return This->lpVtbl->QueryInternalInterface(This,riid,ppv);
1949 }
1950 #endif
1951 #endif
1952 
1953 #endif
1954 
1955 
1956 #endif  /* __IInternalUnknown_INTERFACE_DEFINED__ */
1957 
1958 #endif
1959 
1960 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
1961 /*****************************************************************************
1962  * IEnumUnknown interface
1963  */
1964 #ifndef __IEnumUnknown_INTERFACE_DEFINED__
1965 #define __IEnumUnknown_INTERFACE_DEFINED__
1966 
1967 typedef IEnumUnknown *LPENUMUNKNOWN;
1968 
1969 DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1970 #if defined(__cplusplus) && !defined(CINTERFACE)
1971 MIDL_INTERFACE("00000100-0000-0000-c000-000000000046")
1972 IEnumUnknown : public IUnknown
1973 {
1974     virtual HRESULT STDMETHODCALLTYPE Next(
1975         ULONG celt,
1976         IUnknown **rgelt,
1977         ULONG *pceltFetched) = 0;
1978 
1979     virtual HRESULT STDMETHODCALLTYPE Skip(
1980         ULONG celt) = 0;
1981 
1982     virtual HRESULT STDMETHODCALLTYPE Reset(
1983         ) = 0;
1984 
1985     virtual HRESULT STDMETHODCALLTYPE Clone(
1986         IEnumUnknown **ppenum) = 0;
1987 
1988 };
1989 #ifdef __CRT_UUID_DECL
1990 __CRT_UUID_DECL(IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1991 #endif
1992 #else
1993 typedef struct IEnumUnknownVtbl {
1994     BEGIN_INTERFACE
1995 
1996     /*** IUnknown methods ***/
1997     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1998         IEnumUnknown *This,
1999         REFIID riid,
2000         void **ppvObject);
2001 
2002     ULONG (STDMETHODCALLTYPE *AddRef)(
2003         IEnumUnknown *This);
2004 
2005     ULONG (STDMETHODCALLTYPE *Release)(
2006         IEnumUnknown *This);
2007 
2008     /*** IEnumUnknown methods ***/
2009     HRESULT (STDMETHODCALLTYPE *Next)(
2010         IEnumUnknown *This,
2011         ULONG celt,
2012         IUnknown **rgelt,
2013         ULONG *pceltFetched);
2014 
2015     HRESULT (STDMETHODCALLTYPE *Skip)(
2016         IEnumUnknown *This,
2017         ULONG celt);
2018 
2019     HRESULT (STDMETHODCALLTYPE *Reset)(
2020         IEnumUnknown *This);
2021 
2022     HRESULT (STDMETHODCALLTYPE *Clone)(
2023         IEnumUnknown *This,
2024         IEnumUnknown **ppenum);
2025 
2026     END_INTERFACE
2027 } IEnumUnknownVtbl;
2028 
2029 interface IEnumUnknown {
2030     CONST_VTBL IEnumUnknownVtbl* lpVtbl;
2031 };
2032 
2033 #ifdef COBJMACROS
2034 #ifndef WIDL_C_INLINE_WRAPPERS
2035 /*** IUnknown methods ***/
2036 #define IEnumUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2037 #define IEnumUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
2038 #define IEnumUnknown_Release(This) (This)->lpVtbl->Release(This)
2039 /*** IEnumUnknown methods ***/
2040 #define IEnumUnknown_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
2041 #define IEnumUnknown_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
2042 #define IEnumUnknown_Reset(This) (This)->lpVtbl->Reset(This)
2043 #define IEnumUnknown_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
2044 #else
2045 /*** IUnknown methods ***/
2046 static FORCEINLINE HRESULT IEnumUnknown_QueryInterface(IEnumUnknown* This,REFIID riid,void **ppvObject) {
2047     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2048 }
2049 static FORCEINLINE ULONG IEnumUnknown_AddRef(IEnumUnknown* This) {
2050     return This->lpVtbl->AddRef(This);
2051 }
2052 static FORCEINLINE ULONG IEnumUnknown_Release(IEnumUnknown* This) {
2053     return This->lpVtbl->Release(This);
2054 }
2055 /*** IEnumUnknown methods ***/
2056 static FORCEINLINE HRESULT IEnumUnknown_Next(IEnumUnknown* This,ULONG celt,IUnknown **rgelt,ULONG *pceltFetched) {
2057     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
2058 }
2059 static FORCEINLINE HRESULT IEnumUnknown_Skip(IEnumUnknown* This,ULONG celt) {
2060     return This->lpVtbl->Skip(This,celt);
2061 }
2062 static FORCEINLINE HRESULT IEnumUnknown_Reset(IEnumUnknown* This) {
2063     return This->lpVtbl->Reset(This);
2064 }
2065 static FORCEINLINE HRESULT IEnumUnknown_Clone(IEnumUnknown* This,IEnumUnknown **ppenum) {
2066     return This->lpVtbl->Clone(This,ppenum);
2067 }
2068 #endif
2069 #endif
2070 
2071 #endif
2072 
2073 HRESULT STDMETHODCALLTYPE IEnumUnknown_RemoteNext_Proxy(
2074     IEnumUnknown* This,
2075     ULONG celt,
2076     IUnknown **rgelt,
2077     ULONG *pceltFetched);
2078 void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
2079     IRpcStubBuffer* This,
2080     IRpcChannelBuffer* pRpcChannelBuffer,
2081     PRPC_MESSAGE pRpcMessage,
2082     DWORD* pdwStubPhase);
2083 HRESULT CALLBACK IEnumUnknown_Next_Proxy(
2084     IEnumUnknown* This,
2085     ULONG celt,
2086     IUnknown **rgelt,
2087     ULONG *pceltFetched);
2088 HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
2089     IEnumUnknown* This,
2090     ULONG celt,
2091     IUnknown **rgelt,
2092     ULONG *pceltFetched);
2093 
2094 #endif  /* __IEnumUnknown_INTERFACE_DEFINED__ */
2095 
2096 
2097 /*****************************************************************************
2098  * IEnumString interface
2099  */
2100 #ifndef __IEnumString_INTERFACE_DEFINED__
2101 #define __IEnumString_INTERFACE_DEFINED__
2102 
2103 typedef IEnumString *LPENUMSTRING;
2104 
2105 DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2106 #if defined(__cplusplus) && !defined(CINTERFACE)
2107 MIDL_INTERFACE("00000101-0000-0000-c000-000000000046")
2108 IEnumString : public IUnknown
2109 {
2110     virtual HRESULT STDMETHODCALLTYPE Next(
2111         ULONG celt,
2112         LPOLESTR *rgelt,
2113         ULONG *pceltFetched) = 0;
2114 
2115     virtual HRESULT STDMETHODCALLTYPE Skip(
2116         ULONG celt) = 0;
2117 
2118     virtual HRESULT STDMETHODCALLTYPE Reset(
2119         ) = 0;
2120 
2121     virtual HRESULT STDMETHODCALLTYPE Clone(
2122         IEnumString **ppenum) = 0;
2123 
2124 };
2125 #ifdef __CRT_UUID_DECL
2126 __CRT_UUID_DECL(IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
2127 #endif
2128 #else
2129 typedef struct IEnumStringVtbl {
2130     BEGIN_INTERFACE
2131 
2132     /*** IUnknown methods ***/
2133     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2134         IEnumString *This,
2135         REFIID riid,
2136         void **ppvObject);
2137 
2138     ULONG (STDMETHODCALLTYPE *AddRef)(
2139         IEnumString *This);
2140 
2141     ULONG (STDMETHODCALLTYPE *Release)(
2142         IEnumString *This);
2143 
2144     /*** IEnumString methods ***/
2145     HRESULT (STDMETHODCALLTYPE *Next)(
2146         IEnumString *This,
2147         ULONG celt,
2148         LPOLESTR *rgelt,
2149         ULONG *pceltFetched);
2150 
2151     HRESULT (STDMETHODCALLTYPE *Skip)(
2152         IEnumString *This,
2153         ULONG celt);
2154 
2155     HRESULT (STDMETHODCALLTYPE *Reset)(
2156         IEnumString *This);
2157 
2158     HRESULT (STDMETHODCALLTYPE *Clone)(
2159         IEnumString *This,
2160         IEnumString **ppenum);
2161 
2162     END_INTERFACE
2163 } IEnumStringVtbl;
2164 
2165 interface IEnumString {
2166     CONST_VTBL IEnumStringVtbl* lpVtbl;
2167 };
2168 
2169 #ifdef COBJMACROS
2170 #ifndef WIDL_C_INLINE_WRAPPERS
2171 /*** IUnknown methods ***/
2172 #define IEnumString_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2173 #define IEnumString_AddRef(This) (This)->lpVtbl->AddRef(This)
2174 #define IEnumString_Release(This) (This)->lpVtbl->Release(This)
2175 /*** IEnumString methods ***/
2176 #define IEnumString_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
2177 #define IEnumString_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
2178 #define IEnumString_Reset(This) (This)->lpVtbl->Reset(This)
2179 #define IEnumString_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
2180 #else
2181 /*** IUnknown methods ***/
2182 static FORCEINLINE HRESULT IEnumString_QueryInterface(IEnumString* This,REFIID riid,void **ppvObject) {
2183     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2184 }
2185 static FORCEINLINE ULONG IEnumString_AddRef(IEnumString* This) {
2186     return This->lpVtbl->AddRef(This);
2187 }
2188 static FORCEINLINE ULONG IEnumString_Release(IEnumString* This) {
2189     return This->lpVtbl->Release(This);
2190 }
2191 /*** IEnumString methods ***/
2192 static FORCEINLINE HRESULT IEnumString_Next(IEnumString* This,ULONG celt,LPOLESTR *rgelt,ULONG *pceltFetched) {
2193     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
2194 }
2195 static FORCEINLINE HRESULT IEnumString_Skip(IEnumString* This,ULONG celt) {
2196     return This->lpVtbl->Skip(This,celt);
2197 }
2198 static FORCEINLINE HRESULT IEnumString_Reset(IEnumString* This) {
2199     return This->lpVtbl->Reset(This);
2200 }
2201 static FORCEINLINE HRESULT IEnumString_Clone(IEnumString* This,IEnumString **ppenum) {
2202     return This->lpVtbl->Clone(This,ppenum);
2203 }
2204 #endif
2205 #endif
2206 
2207 #endif
2208 
2209 HRESULT STDMETHODCALLTYPE IEnumString_RemoteNext_Proxy(
2210     IEnumString* This,
2211     ULONG celt,
2212     LPOLESTR *rgelt,
2213     ULONG *pceltFetched);
2214 void __RPC_STUB IEnumString_RemoteNext_Stub(
2215     IRpcStubBuffer* This,
2216     IRpcChannelBuffer* pRpcChannelBuffer,
2217     PRPC_MESSAGE pRpcMessage,
2218     DWORD* pdwStubPhase);
2219 HRESULT CALLBACK IEnumString_Next_Proxy(
2220     IEnumString* This,
2221     ULONG celt,
2222     LPOLESTR *rgelt,
2223     ULONG *pceltFetched);
2224 HRESULT __RPC_STUB IEnumString_Next_Stub(
2225     IEnumString* This,
2226     ULONG celt,
2227     LPOLESTR *rgelt,
2228     ULONG *pceltFetched);
2229 
2230 #endif  /* __IEnumString_INTERFACE_DEFINED__ */
2231 
2232 
2233 /*****************************************************************************
2234  * ISequentialStream interface
2235  */
2236 #ifndef __ISequentialStream_INTERFACE_DEFINED__
2237 #define __ISequentialStream_INTERFACE_DEFINED__
2238 
2239 DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
2240 #if defined(__cplusplus) && !defined(CINTERFACE)
2241 MIDL_INTERFACE("0c733a30-2a1c-11ce-ade5-00aa0044773d")
2242 ISequentialStream : public IUnknown
2243 {
2244     virtual HRESULT STDMETHODCALLTYPE Read(
2245         void *pv,
2246         ULONG cb,
2247         ULONG *pcbRead) = 0;
2248 
2249     virtual HRESULT STDMETHODCALLTYPE Write(
2250         const void *pv,
2251         ULONG cb,
2252         ULONG *pcbWritten) = 0;
2253 
2254 };
2255 #ifdef __CRT_UUID_DECL
2256 __CRT_UUID_DECL(ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d)
2257 #endif
2258 #else
2259 typedef struct ISequentialStreamVtbl {
2260     BEGIN_INTERFACE
2261 
2262     /*** IUnknown methods ***/
2263     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2264         ISequentialStream *This,
2265         REFIID riid,
2266         void **ppvObject);
2267 
2268     ULONG (STDMETHODCALLTYPE *AddRef)(
2269         ISequentialStream *This);
2270 
2271     ULONG (STDMETHODCALLTYPE *Release)(
2272         ISequentialStream *This);
2273 
2274     /*** ISequentialStream methods ***/
2275     HRESULT (STDMETHODCALLTYPE *Read)(
2276         ISequentialStream *This,
2277         void *pv,
2278         ULONG cb,
2279         ULONG *pcbRead);
2280 
2281     HRESULT (STDMETHODCALLTYPE *Write)(
2282         ISequentialStream *This,
2283         const void *pv,
2284         ULONG cb,
2285         ULONG *pcbWritten);
2286 
2287     END_INTERFACE
2288 } ISequentialStreamVtbl;
2289 
2290 interface ISequentialStream {
2291     CONST_VTBL ISequentialStreamVtbl* lpVtbl;
2292 };
2293 
2294 #ifdef COBJMACROS
2295 #ifndef WIDL_C_INLINE_WRAPPERS
2296 /*** IUnknown methods ***/
2297 #define ISequentialStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2298 #define ISequentialStream_AddRef(This) (This)->lpVtbl->AddRef(This)
2299 #define ISequentialStream_Release(This) (This)->lpVtbl->Release(This)
2300 /*** ISequentialStream methods ***/
2301 #define ISequentialStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
2302 #define ISequentialStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
2303 #else
2304 /*** IUnknown methods ***/
2305 static FORCEINLINE HRESULT ISequentialStream_QueryInterface(ISequentialStream* This,REFIID riid,void **ppvObject) {
2306     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2307 }
2308 static FORCEINLINE ULONG ISequentialStream_AddRef(ISequentialStream* This) {
2309     return This->lpVtbl->AddRef(This);
2310 }
2311 static FORCEINLINE ULONG ISequentialStream_Release(ISequentialStream* This) {
2312     return This->lpVtbl->Release(This);
2313 }
2314 /*** ISequentialStream methods ***/
2315 static FORCEINLINE HRESULT ISequentialStream_Read(ISequentialStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
2316     return This->lpVtbl->Read(This,pv,cb,pcbRead);
2317 }
2318 static FORCEINLINE HRESULT ISequentialStream_Write(ISequentialStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
2319     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
2320 }
2321 #endif
2322 #endif
2323 
2324 #endif
2325 
2326 HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteRead_Proxy(
2327     ISequentialStream* This,
2328     byte *pv,
2329     ULONG cb,
2330     ULONG *pcbRead);
2331 void __RPC_STUB ISequentialStream_RemoteRead_Stub(
2332     IRpcStubBuffer* This,
2333     IRpcChannelBuffer* pRpcChannelBuffer,
2334     PRPC_MESSAGE pRpcMessage,
2335     DWORD* pdwStubPhase);
2336 HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteWrite_Proxy(
2337     ISequentialStream* This,
2338     const byte *pv,
2339     ULONG cb,
2340     ULONG *pcbWritten);
2341 void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
2342     IRpcStubBuffer* This,
2343     IRpcChannelBuffer* pRpcChannelBuffer,
2344     PRPC_MESSAGE pRpcMessage,
2345     DWORD* pdwStubPhase);
2346 HRESULT CALLBACK ISequentialStream_Read_Proxy(
2347     ISequentialStream* This,
2348     void *pv,
2349     ULONG cb,
2350     ULONG *pcbRead);
2351 HRESULT __RPC_STUB ISequentialStream_Read_Stub(
2352     ISequentialStream* This,
2353     byte *pv,
2354     ULONG cb,
2355     ULONG *pcbRead);
2356 HRESULT CALLBACK ISequentialStream_Write_Proxy(
2357     ISequentialStream* This,
2358     const void *pv,
2359     ULONG cb,
2360     ULONG *pcbWritten);
2361 HRESULT __RPC_STUB ISequentialStream_Write_Stub(
2362     ISequentialStream* This,
2363     const byte *pv,
2364     ULONG cb,
2365     ULONG *pcbWritten);
2366 
2367 #endif  /* __ISequentialStream_INTERFACE_DEFINED__ */
2368 
2369 
2370 /*****************************************************************************
2371  * IStream interface
2372  */
2373 #ifndef __IStream_INTERFACE_DEFINED__
2374 #define __IStream_INTERFACE_DEFINED__
2375 
2376 typedef IStream *LPSTREAM;
2377 
2378 typedef struct tagSTATSTG {
2379     LPOLESTR pwcsName;
2380     DWORD type;
2381     ULARGE_INTEGER cbSize;
2382     FILETIME mtime;
2383     FILETIME ctime;
2384     FILETIME atime;
2385     DWORD grfMode;
2386     DWORD grfLocksSupported;
2387     CLSID clsid;
2388     DWORD grfStateBits;
2389     DWORD reserved;
2390 } STATSTG;
2391 
2392 typedef enum tagSTGTY {
2393     STGTY_STORAGE = 1,
2394     STGTY_STREAM = 2,
2395     STGTY_LOCKBYTES = 3,
2396     STGTY_PROPERTY = 4
2397 } STGTY;
2398 
2399 typedef enum tagSTREAM_SEEK {
2400     STREAM_SEEK_SET = 0,
2401     STREAM_SEEK_CUR = 1,
2402     STREAM_SEEK_END = 2
2403 } STREAM_SEEK;
2404 
2405 typedef enum tagLOCKTYPE {
2406     LOCK_WRITE = 1,
2407     LOCK_EXCLUSIVE = 2,
2408     LOCK_ONLYONCE = 4
2409 } LOCKTYPE;
2410 
2411 DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2412 #if defined(__cplusplus) && !defined(CINTERFACE)
2413 MIDL_INTERFACE("0000000c-0000-0000-c000-000000000046")
2414 IStream : public ISequentialStream
2415 {
2416     virtual HRESULT STDMETHODCALLTYPE Seek(
2417         LARGE_INTEGER dlibMove,
2418         DWORD dwOrigin,
2419         ULARGE_INTEGER *plibNewPosition) = 0;
2420 
2421     virtual HRESULT STDMETHODCALLTYPE SetSize(
2422         ULARGE_INTEGER libNewSize) = 0;
2423 
2424     virtual HRESULT STDMETHODCALLTYPE CopyTo(
2425         IStream *pstm,
2426         ULARGE_INTEGER cb,
2427         ULARGE_INTEGER *pcbRead,
2428         ULARGE_INTEGER *pcbWritten) = 0;
2429 
2430     virtual HRESULT STDMETHODCALLTYPE Commit(
2431         DWORD grfCommitFlags) = 0;
2432 
2433     virtual HRESULT STDMETHODCALLTYPE Revert(
2434         ) = 0;
2435 
2436     virtual HRESULT STDMETHODCALLTYPE LockRegion(
2437         ULARGE_INTEGER libOffset,
2438         ULARGE_INTEGER cb,
2439         DWORD dwLockType) = 0;
2440 
2441     virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
2442         ULARGE_INTEGER libOffset,
2443         ULARGE_INTEGER cb,
2444         DWORD dwLockType) = 0;
2445 
2446     virtual HRESULT STDMETHODCALLTYPE Stat(
2447         STATSTG *pstatstg,
2448         DWORD grfStatFlag) = 0;
2449 
2450     virtual HRESULT STDMETHODCALLTYPE Clone(
2451         IStream **ppstm) = 0;
2452 
2453 };
2454 #ifdef __CRT_UUID_DECL
2455 __CRT_UUID_DECL(IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
2456 #endif
2457 #else
2458 typedef struct IStreamVtbl {
2459     BEGIN_INTERFACE
2460 
2461     /*** IUnknown methods ***/
2462     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2463         IStream *This,
2464         REFIID riid,
2465         void **ppvObject);
2466 
2467     ULONG (STDMETHODCALLTYPE *AddRef)(
2468         IStream *This);
2469 
2470     ULONG (STDMETHODCALLTYPE *Release)(
2471         IStream *This);
2472 
2473     /*** ISequentialStream methods ***/
2474     HRESULT (STDMETHODCALLTYPE *Read)(
2475         IStream *This,
2476         void *pv,
2477         ULONG cb,
2478         ULONG *pcbRead);
2479 
2480     HRESULT (STDMETHODCALLTYPE *Write)(
2481         IStream *This,
2482         const void *pv,
2483         ULONG cb,
2484         ULONG *pcbWritten);
2485 
2486     /*** IStream methods ***/
2487     HRESULT (STDMETHODCALLTYPE *Seek)(
2488         IStream *This,
2489         LARGE_INTEGER dlibMove,
2490         DWORD dwOrigin,
2491         ULARGE_INTEGER *plibNewPosition);
2492 
2493     HRESULT (STDMETHODCALLTYPE *SetSize)(
2494         IStream *This,
2495         ULARGE_INTEGER libNewSize);
2496 
2497     HRESULT (STDMETHODCALLTYPE *CopyTo)(
2498         IStream *This,
2499         IStream *pstm,
2500         ULARGE_INTEGER cb,
2501         ULARGE_INTEGER *pcbRead,
2502         ULARGE_INTEGER *pcbWritten);
2503 
2504     HRESULT (STDMETHODCALLTYPE *Commit)(
2505         IStream *This,
2506         DWORD grfCommitFlags);
2507 
2508     HRESULT (STDMETHODCALLTYPE *Revert)(
2509         IStream *This);
2510 
2511     HRESULT (STDMETHODCALLTYPE *LockRegion)(
2512         IStream *This,
2513         ULARGE_INTEGER libOffset,
2514         ULARGE_INTEGER cb,
2515         DWORD dwLockType);
2516 
2517     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
2518         IStream *This,
2519         ULARGE_INTEGER libOffset,
2520         ULARGE_INTEGER cb,
2521         DWORD dwLockType);
2522 
2523     HRESULT (STDMETHODCALLTYPE *Stat)(
2524         IStream *This,
2525         STATSTG *pstatstg,
2526         DWORD grfStatFlag);
2527 
2528     HRESULT (STDMETHODCALLTYPE *Clone)(
2529         IStream *This,
2530         IStream **ppstm);
2531 
2532     END_INTERFACE
2533 } IStreamVtbl;
2534 
2535 interface IStream {
2536     CONST_VTBL IStreamVtbl* lpVtbl;
2537 };
2538 
2539 #ifdef COBJMACROS
2540 #ifndef WIDL_C_INLINE_WRAPPERS
2541 /*** IUnknown methods ***/
2542 #define IStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2543 #define IStream_AddRef(This) (This)->lpVtbl->AddRef(This)
2544 #define IStream_Release(This) (This)->lpVtbl->Release(This)
2545 /*** ISequentialStream methods ***/
2546 #define IStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
2547 #define IStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
2548 /*** IStream methods ***/
2549 #define IStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
2550 #define IStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
2551 #define IStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
2552 #define IStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
2553 #define IStream_Revert(This) (This)->lpVtbl->Revert(This)
2554 #define IStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
2555 #define IStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
2556 #define IStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
2557 #define IStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
2558 #else
2559 /*** IUnknown methods ***/
2560 static FORCEINLINE HRESULT IStream_QueryInterface(IStream* This,REFIID riid,void **ppvObject) {
2561     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2562 }
2563 static FORCEINLINE ULONG IStream_AddRef(IStream* This) {
2564     return This->lpVtbl->AddRef(This);
2565 }
2566 static FORCEINLINE ULONG IStream_Release(IStream* This) {
2567     return This->lpVtbl->Release(This);
2568 }
2569 /*** ISequentialStream methods ***/
2570 static FORCEINLINE HRESULT IStream_Read(IStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
2571     return This->lpVtbl->Read(This,pv,cb,pcbRead);
2572 }
2573 static FORCEINLINE HRESULT IStream_Write(IStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
2574     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
2575 }
2576 /*** IStream methods ***/
2577 static FORCEINLINE HRESULT IStream_Seek(IStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
2578     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
2579 }
2580 static FORCEINLINE HRESULT IStream_SetSize(IStream* This,ULARGE_INTEGER libNewSize) {
2581     return This->lpVtbl->SetSize(This,libNewSize);
2582 }
2583 static FORCEINLINE HRESULT IStream_CopyTo(IStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
2584     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
2585 }
2586 static FORCEINLINE HRESULT IStream_Commit(IStream* This,DWORD grfCommitFlags) {
2587     return This->lpVtbl->Commit(This,grfCommitFlags);
2588 }
2589 static FORCEINLINE HRESULT IStream_Revert(IStream* This) {
2590     return This->lpVtbl->Revert(This);
2591 }
2592 static FORCEINLINE HRESULT IStream_LockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
2593     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
2594 }
2595 static FORCEINLINE HRESULT IStream_UnlockRegion(IStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
2596     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
2597 }
2598 static FORCEINLINE HRESULT IStream_Stat(IStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
2599     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
2600 }
2601 static FORCEINLINE HRESULT IStream_Clone(IStream* This,IStream **ppstm) {
2602     return This->lpVtbl->Clone(This,ppstm);
2603 }
2604 #endif
2605 #endif
2606 
2607 #endif
2608 
2609 HRESULT STDMETHODCALLTYPE IStream_RemoteSeek_Proxy(
2610     IStream* This,
2611     LARGE_INTEGER dlibMove,
2612     DWORD dwOrigin,
2613     ULARGE_INTEGER *plibNewPosition);
2614 void __RPC_STUB IStream_RemoteSeek_Stub(
2615     IRpcStubBuffer* This,
2616     IRpcChannelBuffer* pRpcChannelBuffer,
2617     PRPC_MESSAGE pRpcMessage,
2618     DWORD* pdwStubPhase);
2619 HRESULT STDMETHODCALLTYPE IStream_RemoteCopyTo_Proxy(
2620     IStream* This,
2621     IStream *pstm,
2622     ULARGE_INTEGER cb,
2623     ULARGE_INTEGER *pcbRead,
2624     ULARGE_INTEGER *pcbWritten);
2625 void __RPC_STUB IStream_RemoteCopyTo_Stub(
2626     IRpcStubBuffer* This,
2627     IRpcChannelBuffer* pRpcChannelBuffer,
2628     PRPC_MESSAGE pRpcMessage,
2629     DWORD* pdwStubPhase);
2630 HRESULT CALLBACK IStream_Seek_Proxy(
2631     IStream* This,
2632     LARGE_INTEGER dlibMove,
2633     DWORD dwOrigin,
2634     ULARGE_INTEGER *plibNewPosition);
2635 HRESULT __RPC_STUB IStream_Seek_Stub(
2636     IStream* This,
2637     LARGE_INTEGER dlibMove,
2638     DWORD dwOrigin,
2639     ULARGE_INTEGER *plibNewPosition);
2640 HRESULT CALLBACK IStream_CopyTo_Proxy(
2641     IStream* This,
2642     IStream *pstm,
2643     ULARGE_INTEGER cb,
2644     ULARGE_INTEGER *pcbRead,
2645     ULARGE_INTEGER *pcbWritten);
2646 HRESULT __RPC_STUB IStream_CopyTo_Stub(
2647     IStream* This,
2648     IStream *pstm,
2649     ULARGE_INTEGER cb,
2650     ULARGE_INTEGER *pcbRead,
2651     ULARGE_INTEGER *pcbWritten);
2652 
2653 #endif  /* __IStream_INTERFACE_DEFINED__ */
2654 
2655 
2656 /*****************************************************************************
2657  * IRpcChannelBuffer interface
2658  */
2659 #ifndef __IRpcChannelBuffer_INTERFACE_DEFINED__
2660 #define __IRpcChannelBuffer_INTERFACE_DEFINED__
2661 
2662 typedef ULONG RPCOLEDATAREP;
2663 
2664 typedef struct tagRPCOLEMESSAGE {
2665     void *reserved1;
2666     RPCOLEDATAREP dataRepresentation;
2667     void *Buffer;
2668     ULONG cbBuffer;
2669     ULONG iMethod;
2670     void * reserved2[5];
2671     ULONG rpcFlags;
2672 } RPCOLEMESSAGE;
2673 
2674 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
2675 
2676 DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
2677 #if defined(__cplusplus) && !defined(CINTERFACE)
2678 MIDL_INTERFACE("d5f56b60-593b-101a-b569-08002b2dbf7a")
2679 IRpcChannelBuffer : public IUnknown
2680 {
2681     virtual HRESULT STDMETHODCALLTYPE GetBuffer(
2682         RPCOLEMESSAGE *pMessage,
2683         REFIID riid) = 0;
2684 
2685     virtual HRESULT STDMETHODCALLTYPE SendReceive(
2686         RPCOLEMESSAGE *pMessage,
2687         ULONG *pStatus) = 0;
2688 
2689     virtual HRESULT STDMETHODCALLTYPE FreeBuffer(
2690         RPCOLEMESSAGE *pMessage) = 0;
2691 
2692     virtual HRESULT STDMETHODCALLTYPE GetDestCtx(
2693         DWORD *pdwDestContext,
2694         void **ppvDestContext) = 0;
2695 
2696     virtual HRESULT STDMETHODCALLTYPE IsConnected(
2697         ) = 0;
2698 
2699 };
2700 #ifdef __CRT_UUID_DECL
2701 __CRT_UUID_DECL(IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
2702 #endif
2703 #else
2704 typedef struct IRpcChannelBufferVtbl {
2705     BEGIN_INTERFACE
2706 
2707     /*** IUnknown methods ***/
2708     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2709         IRpcChannelBuffer *This,
2710         REFIID riid,
2711         void **ppvObject);
2712 
2713     ULONG (STDMETHODCALLTYPE *AddRef)(
2714         IRpcChannelBuffer *This);
2715 
2716     ULONG (STDMETHODCALLTYPE *Release)(
2717         IRpcChannelBuffer *This);
2718 
2719     /*** IRpcChannelBuffer methods ***/
2720     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2721         IRpcChannelBuffer *This,
2722         RPCOLEMESSAGE *pMessage,
2723         REFIID riid);
2724 
2725     HRESULT (STDMETHODCALLTYPE *SendReceive)(
2726         IRpcChannelBuffer *This,
2727         RPCOLEMESSAGE *pMessage,
2728         ULONG *pStatus);
2729 
2730     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
2731         IRpcChannelBuffer *This,
2732         RPCOLEMESSAGE *pMessage);
2733 
2734     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
2735         IRpcChannelBuffer *This,
2736         DWORD *pdwDestContext,
2737         void **ppvDestContext);
2738 
2739     HRESULT (STDMETHODCALLTYPE *IsConnected)(
2740         IRpcChannelBuffer *This);
2741 
2742     END_INTERFACE
2743 } IRpcChannelBufferVtbl;
2744 
2745 interface IRpcChannelBuffer {
2746     CONST_VTBL IRpcChannelBufferVtbl* lpVtbl;
2747 };
2748 
2749 #ifdef COBJMACROS
2750 #ifndef WIDL_C_INLINE_WRAPPERS
2751 /*** IUnknown methods ***/
2752 #define IRpcChannelBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2753 #define IRpcChannelBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
2754 #define IRpcChannelBuffer_Release(This) (This)->lpVtbl->Release(This)
2755 /*** IRpcChannelBuffer methods ***/
2756 #define IRpcChannelBuffer_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
2757 #define IRpcChannelBuffer_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
2758 #define IRpcChannelBuffer_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
2759 #define IRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
2760 #define IRpcChannelBuffer_IsConnected(This) (This)->lpVtbl->IsConnected(This)
2761 #else
2762 /*** IUnknown methods ***/
2763 static FORCEINLINE HRESULT IRpcChannelBuffer_QueryInterface(IRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
2764     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2765 }
2766 static FORCEINLINE ULONG IRpcChannelBuffer_AddRef(IRpcChannelBuffer* This) {
2767     return This->lpVtbl->AddRef(This);
2768 }
2769 static FORCEINLINE ULONG IRpcChannelBuffer_Release(IRpcChannelBuffer* This) {
2770     return This->lpVtbl->Release(This);
2771 }
2772 /*** IRpcChannelBuffer methods ***/
2773 static FORCEINLINE HRESULT IRpcChannelBuffer_GetBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
2774     return This->lpVtbl->GetBuffer(This,pMessage,riid);
2775 }
2776 static FORCEINLINE HRESULT IRpcChannelBuffer_SendReceive(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
2777     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
2778 }
2779 static FORCEINLINE HRESULT IRpcChannelBuffer_FreeBuffer(IRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
2780     return This->lpVtbl->FreeBuffer(This,pMessage);
2781 }
2782 static FORCEINLINE HRESULT IRpcChannelBuffer_GetDestCtx(IRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
2783     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
2784 }
2785 static FORCEINLINE HRESULT IRpcChannelBuffer_IsConnected(IRpcChannelBuffer* This) {
2786     return This->lpVtbl->IsConnected(This);
2787 }
2788 #endif
2789 #endif
2790 
2791 #endif
2792 
2793 
2794 #endif  /* __IRpcChannelBuffer_INTERFACE_DEFINED__ */
2795 
2796 #endif
2797 
2798 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
2799 /*****************************************************************************
2800  * IRpcChannelBuffer2 interface
2801  */
2802 #ifndef __IRpcChannelBuffer2_INTERFACE_DEFINED__
2803 #define __IRpcChannelBuffer2_INTERFACE_DEFINED__
2804 
2805 DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
2806 #if defined(__cplusplus) && !defined(CINTERFACE)
2807 MIDL_INTERFACE("594f31d0-7f19-11d0-b194-00a0c90dc8bf")
2808 IRpcChannelBuffer2 : public IRpcChannelBuffer
2809 {
2810     virtual HRESULT STDMETHODCALLTYPE GetProtocolVersion(
2811         DWORD *pdwVersion) = 0;
2812 
2813 };
2814 #ifdef __CRT_UUID_DECL
2815 __CRT_UUID_DECL(IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf)
2816 #endif
2817 #else
2818 typedef struct IRpcChannelBuffer2Vtbl {
2819     BEGIN_INTERFACE
2820 
2821     /*** IUnknown methods ***/
2822     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2823         IRpcChannelBuffer2 *This,
2824         REFIID riid,
2825         void **ppvObject);
2826 
2827     ULONG (STDMETHODCALLTYPE *AddRef)(
2828         IRpcChannelBuffer2 *This);
2829 
2830     ULONG (STDMETHODCALLTYPE *Release)(
2831         IRpcChannelBuffer2 *This);
2832 
2833     /*** IRpcChannelBuffer methods ***/
2834     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2835         IRpcChannelBuffer2 *This,
2836         RPCOLEMESSAGE *pMessage,
2837         REFIID riid);
2838 
2839     HRESULT (STDMETHODCALLTYPE *SendReceive)(
2840         IRpcChannelBuffer2 *This,
2841         RPCOLEMESSAGE *pMessage,
2842         ULONG *pStatus);
2843 
2844     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
2845         IRpcChannelBuffer2 *This,
2846         RPCOLEMESSAGE *pMessage);
2847 
2848     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
2849         IRpcChannelBuffer2 *This,
2850         DWORD *pdwDestContext,
2851         void **ppvDestContext);
2852 
2853     HRESULT (STDMETHODCALLTYPE *IsConnected)(
2854         IRpcChannelBuffer2 *This);
2855 
2856     /*** IRpcChannelBuffer2 methods ***/
2857     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
2858         IRpcChannelBuffer2 *This,
2859         DWORD *pdwVersion);
2860 
2861     END_INTERFACE
2862 } IRpcChannelBuffer2Vtbl;
2863 
2864 interface IRpcChannelBuffer2 {
2865     CONST_VTBL IRpcChannelBuffer2Vtbl* lpVtbl;
2866 };
2867 
2868 #ifdef COBJMACROS
2869 #ifndef WIDL_C_INLINE_WRAPPERS
2870 /*** IUnknown methods ***/
2871 #define IRpcChannelBuffer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2872 #define IRpcChannelBuffer2_AddRef(This) (This)->lpVtbl->AddRef(This)
2873 #define IRpcChannelBuffer2_Release(This) (This)->lpVtbl->Release(This)
2874 /*** IRpcChannelBuffer methods ***/
2875 #define IRpcChannelBuffer2_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
2876 #define IRpcChannelBuffer2_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
2877 #define IRpcChannelBuffer2_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
2878 #define IRpcChannelBuffer2_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
2879 #define IRpcChannelBuffer2_IsConnected(This) (This)->lpVtbl->IsConnected(This)
2880 /*** IRpcChannelBuffer2 methods ***/
2881 #define IRpcChannelBuffer2_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
2882 #else
2883 /*** IUnknown methods ***/
2884 static FORCEINLINE HRESULT IRpcChannelBuffer2_QueryInterface(IRpcChannelBuffer2* This,REFIID riid,void **ppvObject) {
2885     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2886 }
2887 static FORCEINLINE ULONG IRpcChannelBuffer2_AddRef(IRpcChannelBuffer2* This) {
2888     return This->lpVtbl->AddRef(This);
2889 }
2890 static FORCEINLINE ULONG IRpcChannelBuffer2_Release(IRpcChannelBuffer2* This) {
2891     return This->lpVtbl->Release(This);
2892 }
2893 /*** IRpcChannelBuffer methods ***/
2894 static FORCEINLINE HRESULT IRpcChannelBuffer2_GetBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
2895     return This->lpVtbl->GetBuffer(This,pMessage,riid);
2896 }
2897 static FORCEINLINE HRESULT IRpcChannelBuffer2_SendReceive(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
2898     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
2899 }
2900 static FORCEINLINE HRESULT IRpcChannelBuffer2_FreeBuffer(IRpcChannelBuffer2* This,RPCOLEMESSAGE *pMessage) {
2901     return This->lpVtbl->FreeBuffer(This,pMessage);
2902 }
2903 static FORCEINLINE HRESULT IRpcChannelBuffer2_GetDestCtx(IRpcChannelBuffer2* This,DWORD *pdwDestContext,void **ppvDestContext) {
2904     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
2905 }
2906 static FORCEINLINE HRESULT IRpcChannelBuffer2_IsConnected(IRpcChannelBuffer2* This) {
2907     return This->lpVtbl->IsConnected(This);
2908 }
2909 /*** IRpcChannelBuffer2 methods ***/
2910 static FORCEINLINE HRESULT IRpcChannelBuffer2_GetProtocolVersion(IRpcChannelBuffer2* This,DWORD *pdwVersion) {
2911     return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
2912 }
2913 #endif
2914 #endif
2915 
2916 #endif
2917 
2918 
2919 #endif  /* __IRpcChannelBuffer2_INTERFACE_DEFINED__ */
2920 
2921 
2922 /*****************************************************************************
2923  * IAsyncRpcChannelBuffer interface
2924  */
2925 #ifndef __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__
2926 #define __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__
2927 
2928 DEFINE_GUID(IID_IAsyncRpcChannelBuffer, 0xa5029fb6, 0x3c34, 0x11d1, 0x9c,0x99, 0x00,0xc0,0x4f,0xb9,0x98,0xaa);
2929 #if defined(__cplusplus) && !defined(CINTERFACE)
2930 MIDL_INTERFACE("a5029fb6-3c34-11d1-9c99-00c04fb998aa")
2931 IAsyncRpcChannelBuffer : public IRpcChannelBuffer2
2932 {
2933     virtual HRESULT STDMETHODCALLTYPE Send(
2934         RPCOLEMESSAGE *pMsg,
2935         ISynchronize *pSync,
2936         ULONG *pulStatus) = 0;
2937 
2938     virtual HRESULT STDMETHODCALLTYPE Receive(
2939         RPCOLEMESSAGE *pMsg,
2940         ULONG *pulStatus) = 0;
2941 
2942     virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
2943         RPCOLEMESSAGE *pMsg,
2944         DWORD *pdwDestContext,
2945         void **ppvDestContext) = 0;
2946 
2947 };
2948 #ifdef __CRT_UUID_DECL
2949 __CRT_UUID_DECL(IAsyncRpcChannelBuffer, 0xa5029fb6, 0x3c34, 0x11d1, 0x9c,0x99, 0x00,0xc0,0x4f,0xb9,0x98,0xaa)
2950 #endif
2951 #else
2952 typedef struct IAsyncRpcChannelBufferVtbl {
2953     BEGIN_INTERFACE
2954 
2955     /*** IUnknown methods ***/
2956     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2957         IAsyncRpcChannelBuffer *This,
2958         REFIID riid,
2959         void **ppvObject);
2960 
2961     ULONG (STDMETHODCALLTYPE *AddRef)(
2962         IAsyncRpcChannelBuffer *This);
2963 
2964     ULONG (STDMETHODCALLTYPE *Release)(
2965         IAsyncRpcChannelBuffer *This);
2966 
2967     /*** IRpcChannelBuffer methods ***/
2968     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2969         IAsyncRpcChannelBuffer *This,
2970         RPCOLEMESSAGE *pMessage,
2971         REFIID riid);
2972 
2973     HRESULT (STDMETHODCALLTYPE *SendReceive)(
2974         IAsyncRpcChannelBuffer *This,
2975         RPCOLEMESSAGE *pMessage,
2976         ULONG *pStatus);
2977 
2978     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
2979         IAsyncRpcChannelBuffer *This,
2980         RPCOLEMESSAGE *pMessage);
2981 
2982     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
2983         IAsyncRpcChannelBuffer *This,
2984         DWORD *pdwDestContext,
2985         void **ppvDestContext);
2986 
2987     HRESULT (STDMETHODCALLTYPE *IsConnected)(
2988         IAsyncRpcChannelBuffer *This);
2989 
2990     /*** IRpcChannelBuffer2 methods ***/
2991     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
2992         IAsyncRpcChannelBuffer *This,
2993         DWORD *pdwVersion);
2994 
2995     /*** IAsyncRpcChannelBuffer methods ***/
2996     HRESULT (STDMETHODCALLTYPE *Send)(
2997         IAsyncRpcChannelBuffer *This,
2998         RPCOLEMESSAGE *pMsg,
2999         ISynchronize *pSync,
3000         ULONG *pulStatus);
3001 
3002     HRESULT (STDMETHODCALLTYPE *Receive)(
3003         IAsyncRpcChannelBuffer *This,
3004         RPCOLEMESSAGE *pMsg,
3005         ULONG *pulStatus);
3006 
3007     HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
3008         IAsyncRpcChannelBuffer *This,
3009         RPCOLEMESSAGE *pMsg,
3010         DWORD *pdwDestContext,
3011         void **ppvDestContext);
3012 
3013     END_INTERFACE
3014 } IAsyncRpcChannelBufferVtbl;
3015 
3016 interface IAsyncRpcChannelBuffer {
3017     CONST_VTBL IAsyncRpcChannelBufferVtbl* lpVtbl;
3018 };
3019 
3020 #ifdef COBJMACROS
3021 #ifndef WIDL_C_INLINE_WRAPPERS
3022 /*** IUnknown methods ***/
3023 #define IAsyncRpcChannelBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3024 #define IAsyncRpcChannelBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
3025 #define IAsyncRpcChannelBuffer_Release(This) (This)->lpVtbl->Release(This)
3026 /*** IRpcChannelBuffer methods ***/
3027 #define IAsyncRpcChannelBuffer_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
3028 #define IAsyncRpcChannelBuffer_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
3029 #define IAsyncRpcChannelBuffer_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
3030 #define IAsyncRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
3031 #define IAsyncRpcChannelBuffer_IsConnected(This) (This)->lpVtbl->IsConnected(This)
3032 /*** IRpcChannelBuffer2 methods ***/
3033 #define IAsyncRpcChannelBuffer_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
3034 /*** IAsyncRpcChannelBuffer methods ***/
3035 #define IAsyncRpcChannelBuffer_Send(This,pMsg,pSync,pulStatus) (This)->lpVtbl->Send(This,pMsg,pSync,pulStatus)
3036 #define IAsyncRpcChannelBuffer_Receive(This,pMsg,pulStatus) (This)->lpVtbl->Receive(This,pMsg,pulStatus)
3037 #define IAsyncRpcChannelBuffer_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext)
3038 #else
3039 /*** IUnknown methods ***/
3040 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_QueryInterface(IAsyncRpcChannelBuffer* This,REFIID riid,void **ppvObject) {
3041     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3042 }
3043 static FORCEINLINE ULONG IAsyncRpcChannelBuffer_AddRef(IAsyncRpcChannelBuffer* This) {
3044     return This->lpVtbl->AddRef(This);
3045 }
3046 static FORCEINLINE ULONG IAsyncRpcChannelBuffer_Release(IAsyncRpcChannelBuffer* This) {
3047     return This->lpVtbl->Release(This);
3048 }
3049 /*** IRpcChannelBuffer methods ***/
3050 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
3051     return This->lpVtbl->GetBuffer(This,pMessage,riid);
3052 }
3053 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_SendReceive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
3054     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
3055 }
3056 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_FreeBuffer(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMessage) {
3057     return This->lpVtbl->FreeBuffer(This,pMessage);
3058 }
3059 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetDestCtx(IAsyncRpcChannelBuffer* This,DWORD *pdwDestContext,void **ppvDestContext) {
3060     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
3061 }
3062 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_IsConnected(IAsyncRpcChannelBuffer* This) {
3063     return This->lpVtbl->IsConnected(This);
3064 }
3065 /*** IRpcChannelBuffer2 methods ***/
3066 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetProtocolVersion(IAsyncRpcChannelBuffer* This,DWORD *pdwVersion) {
3067     return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
3068 }
3069 /*** IAsyncRpcChannelBuffer methods ***/
3070 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_Send(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ISynchronize *pSync,ULONG *pulStatus) {
3071     return This->lpVtbl->Send(This,pMsg,pSync,pulStatus);
3072 }
3073 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_Receive(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
3074     return This->lpVtbl->Receive(This,pMsg,pulStatus);
3075 }
3076 static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetDestCtxEx(IAsyncRpcChannelBuffer* This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext) {
3077     return This->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext);
3078 }
3079 #endif
3080 #endif
3081 
3082 #endif
3083 
3084 
3085 #endif  /* __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__ */
3086 
3087 
3088 /*****************************************************************************
3089  * IRpcChannelBuffer3 interface
3090  */
3091 #ifndef __IRpcChannelBuffer3_INTERFACE_DEFINED__
3092 #define __IRpcChannelBuffer3_INTERFACE_DEFINED__
3093 
3094 DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
3095 #if defined(__cplusplus) && !defined(CINTERFACE)
3096 MIDL_INTERFACE("25b15600-0115-11d0-bf0d-00aa00b8dfd2")
3097 IRpcChannelBuffer3 : public IRpcChannelBuffer2
3098 {
3099     virtual HRESULT STDMETHODCALLTYPE Send(
3100         RPCOLEMESSAGE *pMsg,
3101         ULONG *pulStatus) = 0;
3102 
3103     virtual HRESULT STDMETHODCALLTYPE Receive(
3104         RPCOLEMESSAGE *pMsg,
3105         ULONG ulSize,
3106         ULONG *pulStatus) = 0;
3107 
3108     virtual HRESULT STDMETHODCALLTYPE Cancel(
3109         RPCOLEMESSAGE *pMsg) = 0;
3110 
3111     virtual HRESULT STDMETHODCALLTYPE GetCallContext(
3112         RPCOLEMESSAGE *pMsg,
3113         REFIID riid,
3114         void **pInterface) = 0;
3115 
3116     virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
3117         RPCOLEMESSAGE *pMsg,
3118         DWORD *pdwDestContext,
3119         void **ppvDestContext) = 0;
3120 
3121     virtual HRESULT STDMETHODCALLTYPE GetState(
3122         RPCOLEMESSAGE *pMsg,
3123         DWORD *pState) = 0;
3124 
3125     virtual HRESULT STDMETHODCALLTYPE RegisterAsync(
3126         RPCOLEMESSAGE *pMsg,
3127         IAsyncManager *pAsyncMgr) = 0;
3128 
3129 };
3130 #ifdef __CRT_UUID_DECL
3131 __CRT_UUID_DECL(IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2)
3132 #endif
3133 #else
3134 typedef struct IRpcChannelBuffer3Vtbl {
3135     BEGIN_INTERFACE
3136 
3137     /*** IUnknown methods ***/
3138     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3139         IRpcChannelBuffer3 *This,
3140         REFIID riid,
3141         void **ppvObject);
3142 
3143     ULONG (STDMETHODCALLTYPE *AddRef)(
3144         IRpcChannelBuffer3 *This);
3145 
3146     ULONG (STDMETHODCALLTYPE *Release)(
3147         IRpcChannelBuffer3 *This);
3148 
3149     /*** IRpcChannelBuffer methods ***/
3150     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
3151         IRpcChannelBuffer3 *This,
3152         RPCOLEMESSAGE *pMessage,
3153         REFIID riid);
3154 
3155     HRESULT (STDMETHODCALLTYPE *SendReceive)(
3156         IRpcChannelBuffer3 *This,
3157         RPCOLEMESSAGE *pMessage,
3158         ULONG *pStatus);
3159 
3160     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
3161         IRpcChannelBuffer3 *This,
3162         RPCOLEMESSAGE *pMessage);
3163 
3164     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
3165         IRpcChannelBuffer3 *This,
3166         DWORD *pdwDestContext,
3167         void **ppvDestContext);
3168 
3169     HRESULT (STDMETHODCALLTYPE *IsConnected)(
3170         IRpcChannelBuffer3 *This);
3171 
3172     /*** IRpcChannelBuffer2 methods ***/
3173     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
3174         IRpcChannelBuffer3 *This,
3175         DWORD *pdwVersion);
3176 
3177     /*** IRpcChannelBuffer3 methods ***/
3178     HRESULT (STDMETHODCALLTYPE *Send)(
3179         IRpcChannelBuffer3 *This,
3180         RPCOLEMESSAGE *pMsg,
3181         ULONG *pulStatus);
3182 
3183     HRESULT (STDMETHODCALLTYPE *Receive)(
3184         IRpcChannelBuffer3 *This,
3185         RPCOLEMESSAGE *pMsg,
3186         ULONG ulSize,
3187         ULONG *pulStatus);
3188 
3189     HRESULT (STDMETHODCALLTYPE *Cancel)(
3190         IRpcChannelBuffer3 *This,
3191         RPCOLEMESSAGE *pMsg);
3192 
3193     HRESULT (STDMETHODCALLTYPE *GetCallContext)(
3194         IRpcChannelBuffer3 *This,
3195         RPCOLEMESSAGE *pMsg,
3196         REFIID riid,
3197         void **pInterface);
3198 
3199     HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
3200         IRpcChannelBuffer3 *This,
3201         RPCOLEMESSAGE *pMsg,
3202         DWORD *pdwDestContext,
3203         void **ppvDestContext);
3204 
3205     HRESULT (STDMETHODCALLTYPE *GetState)(
3206         IRpcChannelBuffer3 *This,
3207         RPCOLEMESSAGE *pMsg,
3208         DWORD *pState);
3209 
3210     HRESULT (STDMETHODCALLTYPE *RegisterAsync)(
3211         IRpcChannelBuffer3 *This,
3212         RPCOLEMESSAGE *pMsg,
3213         IAsyncManager *pAsyncMgr);
3214 
3215     END_INTERFACE
3216 } IRpcChannelBuffer3Vtbl;
3217 
3218 interface IRpcChannelBuffer3 {
3219     CONST_VTBL IRpcChannelBuffer3Vtbl* lpVtbl;
3220 };
3221 
3222 #ifdef COBJMACROS
3223 #ifndef WIDL_C_INLINE_WRAPPERS
3224 /*** IUnknown methods ***/
3225 #define IRpcChannelBuffer3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3226 #define IRpcChannelBuffer3_AddRef(This) (This)->lpVtbl->AddRef(This)
3227 #define IRpcChannelBuffer3_Release(This) (This)->lpVtbl->Release(This)
3228 /*** IRpcChannelBuffer methods ***/
3229 #define IRpcChannelBuffer3_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid)
3230 #define IRpcChannelBuffer3_SendReceive(This,pMessage,pStatus) (This)->lpVtbl->SendReceive(This,pMessage,pStatus)
3231 #define IRpcChannelBuffer3_FreeBuffer(This,pMessage) (This)->lpVtbl->FreeBuffer(This,pMessage)
3232 #define IRpcChannelBuffer3_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
3233 #define IRpcChannelBuffer3_IsConnected(This) (This)->lpVtbl->IsConnected(This)
3234 /*** IRpcChannelBuffer2 methods ***/
3235 #define IRpcChannelBuffer3_GetProtocolVersion(This,pdwVersion) (This)->lpVtbl->GetProtocolVersion(This,pdwVersion)
3236 /*** IRpcChannelBuffer3 methods ***/
3237 #define IRpcChannelBuffer3_Send(This,pMsg,pulStatus) (This)->lpVtbl->Send(This,pMsg,pulStatus)
3238 #define IRpcChannelBuffer3_Receive(This,pMsg,ulSize,pulStatus) (This)->lpVtbl->Receive(This,pMsg,ulSize,pulStatus)
3239 #define IRpcChannelBuffer3_Cancel(This,pMsg) (This)->lpVtbl->Cancel(This,pMsg)
3240 #define IRpcChannelBuffer3_GetCallContext(This,pMsg,riid,pInterface) (This)->lpVtbl->GetCallContext(This,pMsg,riid,pInterface)
3241 #define IRpcChannelBuffer3_GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext)
3242 #define IRpcChannelBuffer3_GetState(This,pMsg,pState) (This)->lpVtbl->GetState(This,pMsg,pState)
3243 #define IRpcChannelBuffer3_RegisterAsync(This,pMsg,pAsyncMgr) (This)->lpVtbl->RegisterAsync(This,pMsg,pAsyncMgr)
3244 #else
3245 /*** IUnknown methods ***/
3246 static FORCEINLINE HRESULT IRpcChannelBuffer3_QueryInterface(IRpcChannelBuffer3* This,REFIID riid,void **ppvObject) {
3247     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3248 }
3249 static FORCEINLINE ULONG IRpcChannelBuffer3_AddRef(IRpcChannelBuffer3* This) {
3250     return This->lpVtbl->AddRef(This);
3251 }
3252 static FORCEINLINE ULONG IRpcChannelBuffer3_Release(IRpcChannelBuffer3* This) {
3253     return This->lpVtbl->Release(This);
3254 }
3255 /*** IRpcChannelBuffer methods ***/
3256 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,REFIID riid) {
3257     return This->lpVtbl->GetBuffer(This,pMessage,riid);
3258 }
3259 static FORCEINLINE HRESULT IRpcChannelBuffer3_SendReceive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage,ULONG *pStatus) {
3260     return This->lpVtbl->SendReceive(This,pMessage,pStatus);
3261 }
3262 static FORCEINLINE HRESULT IRpcChannelBuffer3_FreeBuffer(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMessage) {
3263     return This->lpVtbl->FreeBuffer(This,pMessage);
3264 }
3265 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetDestCtx(IRpcChannelBuffer3* This,DWORD *pdwDestContext,void **ppvDestContext) {
3266     return This->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext);
3267 }
3268 static FORCEINLINE HRESULT IRpcChannelBuffer3_IsConnected(IRpcChannelBuffer3* This) {
3269     return This->lpVtbl->IsConnected(This);
3270 }
3271 /*** IRpcChannelBuffer2 methods ***/
3272 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetProtocolVersion(IRpcChannelBuffer3* This,DWORD *pdwVersion) {
3273     return This->lpVtbl->GetProtocolVersion(This,pdwVersion);
3274 }
3275 /*** IRpcChannelBuffer3 methods ***/
3276 static FORCEINLINE HRESULT IRpcChannelBuffer3_Send(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG *pulStatus) {
3277     return This->lpVtbl->Send(This,pMsg,pulStatus);
3278 }
3279 static FORCEINLINE HRESULT IRpcChannelBuffer3_Receive(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,ULONG ulSize,ULONG *pulStatus) {
3280     return This->lpVtbl->Receive(This,pMsg,ulSize,pulStatus);
3281 }
3282 static FORCEINLINE HRESULT IRpcChannelBuffer3_Cancel(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg) {
3283     return This->lpVtbl->Cancel(This,pMsg);
3284 }
3285 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetCallContext(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,REFIID riid,void **pInterface) {
3286     return This->lpVtbl->GetCallContext(This,pMsg,riid,pInterface);
3287 }
3288 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetDestCtxEx(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext) {
3289     return This->lpVtbl->GetDestCtxEx(This,pMsg,pdwDestContext,ppvDestContext);
3290 }
3291 static FORCEINLINE HRESULT IRpcChannelBuffer3_GetState(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,DWORD *pState) {
3292     return This->lpVtbl->GetState(This,pMsg,pState);
3293 }
3294 static FORCEINLINE HRESULT IRpcChannelBuffer3_RegisterAsync(IRpcChannelBuffer3* This,RPCOLEMESSAGE *pMsg,IAsyncManager *pAsyncMgr) {
3295     return This->lpVtbl->RegisterAsync(This,pMsg,pAsyncMgr);
3296 }
3297 #endif
3298 #endif
3299 
3300 #endif
3301 
3302 
3303 #endif  /* __IRpcChannelBuffer3_INTERFACE_DEFINED__ */
3304 
3305 
3306 /*****************************************************************************
3307  * IRpcSyntaxNegotiate interface
3308  */
3309 #ifndef __IRpcSyntaxNegotiate_INTERFACE_DEFINED__
3310 #define __IRpcSyntaxNegotiate_INTERFACE_DEFINED__
3311 
3312 DEFINE_GUID(IID_IRpcSyntaxNegotiate, 0x58a08519, 0x24c8, 0x4935, 0xb4,0x82, 0x3f,0xd8,0x23,0x33,0x3a,0x4f);
3313 #if defined(__cplusplus) && !defined(CINTERFACE)
3314 MIDL_INTERFACE("58a08519-24c8-4935-b482-3fd823333a4f")
3315 IRpcSyntaxNegotiate : public IUnknown
3316 {
3317     virtual HRESULT STDMETHODCALLTYPE NegotiateSyntax(
3318         RPCOLEMESSAGE *pMsg) = 0;
3319 
3320 };
3321 #ifdef __CRT_UUID_DECL
3322 __CRT_UUID_DECL(IRpcSyntaxNegotiate, 0x58a08519, 0x24c8, 0x4935, 0xb4,0x82, 0x3f,0xd8,0x23,0x33,0x3a,0x4f)
3323 #endif
3324 #else
3325 typedef struct IRpcSyntaxNegotiateVtbl {
3326     BEGIN_INTERFACE
3327 
3328     /*** IUnknown methods ***/
3329     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3330         IRpcSyntaxNegotiate *This,
3331         REFIID riid,
3332         void **ppvObject);
3333 
3334     ULONG (STDMETHODCALLTYPE *AddRef)(
3335         IRpcSyntaxNegotiate *This);
3336 
3337     ULONG (STDMETHODCALLTYPE *Release)(
3338         IRpcSyntaxNegotiate *This);
3339 
3340     /*** IRpcSyntaxNegotiate methods ***/
3341     HRESULT (STDMETHODCALLTYPE *NegotiateSyntax)(
3342         IRpcSyntaxNegotiate *This,
3343         RPCOLEMESSAGE *pMsg);
3344 
3345     END_INTERFACE
3346 } IRpcSyntaxNegotiateVtbl;
3347 
3348 interface IRpcSyntaxNegotiate {
3349     CONST_VTBL IRpcSyntaxNegotiateVtbl* lpVtbl;
3350 };
3351 
3352 #ifdef COBJMACROS
3353 #ifndef WIDL_C_INLINE_WRAPPERS
3354 /*** IUnknown methods ***/
3355 #define IRpcSyntaxNegotiate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3356 #define IRpcSyntaxNegotiate_AddRef(This) (This)->lpVtbl->AddRef(This)
3357 #define IRpcSyntaxNegotiate_Release(This) (This)->lpVtbl->Release(This)
3358 /*** IRpcSyntaxNegotiate methods ***/
3359 #define IRpcSyntaxNegotiate_NegotiateSyntax(This,pMsg) (This)->lpVtbl->NegotiateSyntax(This,pMsg)
3360 #else
3361 /*** IUnknown methods ***/
3362 static FORCEINLINE HRESULT IRpcSyntaxNegotiate_QueryInterface(IRpcSyntaxNegotiate* This,REFIID riid,void **ppvObject) {
3363     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3364 }
3365 static FORCEINLINE ULONG IRpcSyntaxNegotiate_AddRef(IRpcSyntaxNegotiate* This) {
3366     return This->lpVtbl->AddRef(This);
3367 }
3368 static FORCEINLINE ULONG IRpcSyntaxNegotiate_Release(IRpcSyntaxNegotiate* This) {
3369     return This->lpVtbl->Release(This);
3370 }
3371 /*** IRpcSyntaxNegotiate methods ***/
3372 static FORCEINLINE HRESULT IRpcSyntaxNegotiate_NegotiateSyntax(IRpcSyntaxNegotiate* This,RPCOLEMESSAGE *pMsg) {
3373     return This->lpVtbl->NegotiateSyntax(This,pMsg);
3374 }
3375 #endif
3376 #endif
3377 
3378 #endif
3379 
3380 
3381 #endif  /* __IRpcSyntaxNegotiate_INTERFACE_DEFINED__ */
3382 
3383 
3384 /*****************************************************************************
3385  * IRpcProxyBuffer interface
3386  */
3387 #ifndef __IRpcProxyBuffer_INTERFACE_DEFINED__
3388 #define __IRpcProxyBuffer_INTERFACE_DEFINED__
3389 
3390 DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
3391 #if defined(__cplusplus) && !defined(CINTERFACE)
3392 MIDL_INTERFACE("d5f56a34-593b-101a-b569-08002b2dbf7a")
3393 IRpcProxyBuffer : public IUnknown
3394 {
3395     virtual HRESULT STDMETHODCALLTYPE Connect(
3396         IRpcChannelBuffer *pRpcChannelBuffer) = 0;
3397 
3398     virtual void STDMETHODCALLTYPE Disconnect(
3399         ) = 0;
3400 
3401 };
3402 #ifdef __CRT_UUID_DECL
3403 __CRT_UUID_DECL(IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
3404 #endif
3405 #else
3406 typedef struct IRpcProxyBufferVtbl {
3407     BEGIN_INTERFACE
3408 
3409     /*** IUnknown methods ***/
3410     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3411         IRpcProxyBuffer *This,
3412         REFIID riid,
3413         void **ppvObject);
3414 
3415     ULONG (STDMETHODCALLTYPE *AddRef)(
3416         IRpcProxyBuffer *This);
3417 
3418     ULONG (STDMETHODCALLTYPE *Release)(
3419         IRpcProxyBuffer *This);
3420 
3421     /*** IRpcProxyBuffer methods ***/
3422     HRESULT (STDMETHODCALLTYPE *Connect)(
3423         IRpcProxyBuffer *This,
3424         IRpcChannelBuffer *pRpcChannelBuffer);
3425 
3426     void (STDMETHODCALLTYPE *Disconnect)(
3427         IRpcProxyBuffer *This);
3428 
3429     END_INTERFACE
3430 } IRpcProxyBufferVtbl;
3431 
3432 interface IRpcProxyBuffer {
3433     CONST_VTBL IRpcProxyBufferVtbl* lpVtbl;
3434 };
3435 
3436 #ifdef COBJMACROS
3437 #ifndef WIDL_C_INLINE_WRAPPERS
3438 /*** IUnknown methods ***/
3439 #define IRpcProxyBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3440 #define IRpcProxyBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
3441 #define IRpcProxyBuffer_Release(This) (This)->lpVtbl->Release(This)
3442 /*** IRpcProxyBuffer methods ***/
3443 #define IRpcProxyBuffer_Connect(This,pRpcChannelBuffer) (This)->lpVtbl->Connect(This,pRpcChannelBuffer)
3444 #define IRpcProxyBuffer_Disconnect(This) (This)->lpVtbl->Disconnect(This)
3445 #else
3446 /*** IUnknown methods ***/
3447 static FORCEINLINE HRESULT IRpcProxyBuffer_QueryInterface(IRpcProxyBuffer* This,REFIID riid,void **ppvObject) {
3448     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3449 }
3450 static FORCEINLINE ULONG IRpcProxyBuffer_AddRef(IRpcProxyBuffer* This) {
3451     return This->lpVtbl->AddRef(This);
3452 }
3453 static FORCEINLINE ULONG IRpcProxyBuffer_Release(IRpcProxyBuffer* This) {
3454     return This->lpVtbl->Release(This);
3455 }
3456 /*** IRpcProxyBuffer methods ***/
3457 static FORCEINLINE HRESULT IRpcProxyBuffer_Connect(IRpcProxyBuffer* This,IRpcChannelBuffer *pRpcChannelBuffer) {
3458     return This->lpVtbl->Connect(This,pRpcChannelBuffer);
3459 }
3460 static FORCEINLINE void IRpcProxyBuffer_Disconnect(IRpcProxyBuffer* This) {
3461     This->lpVtbl->Disconnect(This);
3462 }
3463 #endif
3464 #endif
3465 
3466 #endif
3467 
3468 
3469 #endif  /* __IRpcProxyBuffer_INTERFACE_DEFINED__ */
3470 
3471 #endif
3472 
3473 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
3474 /*****************************************************************************
3475  * IRpcStubBuffer interface
3476  */
3477 #ifndef __IRpcStubBuffer_INTERFACE_DEFINED__
3478 #define __IRpcStubBuffer_INTERFACE_DEFINED__
3479 
3480 DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
3481 #if defined(__cplusplus) && !defined(CINTERFACE)
3482 MIDL_INTERFACE("d5f56afc-593b-101a-b569-08002b2dbf7a")
3483 IRpcStubBuffer : public IUnknown
3484 {
3485     virtual HRESULT STDMETHODCALLTYPE Connect(
3486         IUnknown *pUnkServer) = 0;
3487 
3488     virtual void STDMETHODCALLTYPE Disconnect(
3489         ) = 0;
3490 
3491     virtual HRESULT STDMETHODCALLTYPE Invoke(
3492         RPCOLEMESSAGE *_prpcmsg,
3493         IRpcChannelBuffer *_pRpcChannelBuffer) = 0;
3494 
3495     virtual IRpcStubBuffer * STDMETHODCALLTYPE IsIIDSupported(
3496         REFIID riid) = 0;
3497 
3498     virtual ULONG STDMETHODCALLTYPE CountRefs(
3499         ) = 0;
3500 
3501     virtual HRESULT STDMETHODCALLTYPE DebugServerQueryInterface(
3502         void **ppv) = 0;
3503 
3504     virtual void STDMETHODCALLTYPE DebugServerRelease(
3505         void *pv) = 0;
3506 
3507 };
3508 #ifdef __CRT_UUID_DECL
3509 __CRT_UUID_DECL(IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
3510 #endif
3511 #else
3512 typedef struct IRpcStubBufferVtbl {
3513     BEGIN_INTERFACE
3514 
3515     /*** IUnknown methods ***/
3516     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3517         IRpcStubBuffer *This,
3518         REFIID riid,
3519         void **ppvObject);
3520 
3521     ULONG (STDMETHODCALLTYPE *AddRef)(
3522         IRpcStubBuffer *This);
3523 
3524     ULONG (STDMETHODCALLTYPE *Release)(
3525         IRpcStubBuffer *This);
3526 
3527     /*** IRpcStubBuffer methods ***/
3528     HRESULT (STDMETHODCALLTYPE *Connect)(
3529         IRpcStubBuffer *This,
3530         IUnknown *pUnkServer);
3531 
3532     void (STDMETHODCALLTYPE *Disconnect)(
3533         IRpcStubBuffer *This);
3534 
3535     HRESULT (STDMETHODCALLTYPE *Invoke)(
3536         IRpcStubBuffer *This,
3537         RPCOLEMESSAGE *_prpcmsg,
3538         IRpcChannelBuffer *_pRpcChannelBuffer);
3539 
3540     IRpcStubBuffer * (STDMETHODCALLTYPE *IsIIDSupported)(
3541         IRpcStubBuffer *This,
3542         REFIID riid);
3543 
3544     ULONG (STDMETHODCALLTYPE *CountRefs)(
3545         IRpcStubBuffer *This);
3546 
3547     HRESULT (STDMETHODCALLTYPE *DebugServerQueryInterface)(
3548         IRpcStubBuffer *This,
3549         void **ppv);
3550 
3551     void (STDMETHODCALLTYPE *DebugServerRelease)(
3552         IRpcStubBuffer *This,
3553         void *pv);
3554 
3555     END_INTERFACE
3556 } IRpcStubBufferVtbl;
3557 
3558 interface IRpcStubBuffer {
3559     CONST_VTBL IRpcStubBufferVtbl* lpVtbl;
3560 };
3561 
3562 #ifdef COBJMACROS
3563 #ifndef WIDL_C_INLINE_WRAPPERS
3564 /*** IUnknown methods ***/
3565 #define IRpcStubBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3566 #define IRpcStubBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
3567 #define IRpcStubBuffer_Release(This) (This)->lpVtbl->Release(This)
3568 /*** IRpcStubBuffer methods ***/
3569 #define IRpcStubBuffer_Connect(This,pUnkServer) (This)->lpVtbl->Connect(This,pUnkServer)
3570 #define IRpcStubBuffer_Disconnect(This) (This)->lpVtbl->Disconnect(This)
3571 #define IRpcStubBuffer_Invoke(This,_prpcmsg,_pRpcChannelBuffer) (This)->lpVtbl->Invoke(This,_prpcmsg,_pRpcChannelBuffer)
3572 #define IRpcStubBuffer_IsIIDSupported(This,riid) (This)->lpVtbl->IsIIDSupported(This,riid)
3573 #define IRpcStubBuffer_CountRefs(This) (This)->lpVtbl->CountRefs(This)
3574 #define IRpcStubBuffer_DebugServerQueryInterface(This,ppv) (This)->lpVtbl->DebugServerQueryInterface(This,ppv)
3575 #define IRpcStubBuffer_DebugServerRelease(This,pv) (This)->lpVtbl->DebugServerRelease(This,pv)
3576 #else
3577 /*** IUnknown methods ***/
3578 static FORCEINLINE HRESULT IRpcStubBuffer_QueryInterface(IRpcStubBuffer* This,REFIID riid,void **ppvObject) {
3579     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3580 }
3581 static FORCEINLINE ULONG IRpcStubBuffer_AddRef(IRpcStubBuffer* This) {
3582     return This->lpVtbl->AddRef(This);
3583 }
3584 static FORCEINLINE ULONG IRpcStubBuffer_Release(IRpcStubBuffer* This) {
3585     return This->lpVtbl->Release(This);
3586 }
3587 /*** IRpcStubBuffer methods ***/
3588 static FORCEINLINE HRESULT IRpcStubBuffer_Connect(IRpcStubBuffer* This,IUnknown *pUnkServer) {
3589     return This->lpVtbl->Connect(This,pUnkServer);
3590 }
3591 static FORCEINLINE void IRpcStubBuffer_Disconnect(IRpcStubBuffer* This) {
3592     This->lpVtbl->Disconnect(This);
3593 }
3594 static FORCEINLINE HRESULT IRpcStubBuffer_Invoke(IRpcStubBuffer* This,RPCOLEMESSAGE *_prpcmsg,IRpcChannelBuffer *_pRpcChannelBuffer) {
3595     return This->lpVtbl->Invoke(This,_prpcmsg,_pRpcChannelBuffer);
3596 }
3597 static FORCEINLINE IRpcStubBuffer * IRpcStubBuffer_IsIIDSupported(IRpcStubBuffer* This,REFIID riid) {
3598     return This->lpVtbl->IsIIDSupported(This,riid);
3599 }
3600 static FORCEINLINE ULONG IRpcStubBuffer_CountRefs(IRpcStubBuffer* This) {
3601     return This->lpVtbl->CountRefs(This);
3602 }
3603 static FORCEINLINE HRESULT IRpcStubBuffer_DebugServerQueryInterface(IRpcStubBuffer* This,void **ppv) {
3604     return This->lpVtbl->DebugServerQueryInterface(This,ppv);
3605 }
3606 static FORCEINLINE void IRpcStubBuffer_DebugServerRelease(IRpcStubBuffer* This,void *pv) {
3607     This->lpVtbl->DebugServerRelease(This,pv);
3608 }
3609 #endif
3610 #endif
3611 
3612 #endif
3613 
3614 
3615 #endif  /* __IRpcStubBuffer_INTERFACE_DEFINED__ */
3616 
3617 
3618 /*****************************************************************************
3619  * IPSFactoryBuffer interface
3620  */
3621 #ifndef __IPSFactoryBuffer_INTERFACE_DEFINED__
3622 #define __IPSFactoryBuffer_INTERFACE_DEFINED__
3623 
3624 DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
3625 #if defined(__cplusplus) && !defined(CINTERFACE)
3626 MIDL_INTERFACE("d5f569d0-593b-101a-b569-08002b2dbf7a")
3627 IPSFactoryBuffer : public IUnknown
3628 {
3629     virtual HRESULT STDMETHODCALLTYPE CreateProxy(
3630         IUnknown *pUnkOuter,
3631         REFIID riid,
3632         IRpcProxyBuffer **ppProxy,
3633         void **ppv) = 0;
3634 
3635     virtual HRESULT STDMETHODCALLTYPE CreateStub(
3636         REFIID riid,
3637         IUnknown *pUnkServer,
3638         IRpcStubBuffer **ppStub) = 0;
3639 
3640 };
3641 #ifdef __CRT_UUID_DECL
3642 __CRT_UUID_DECL(IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a)
3643 #endif
3644 #else
3645 typedef struct IPSFactoryBufferVtbl {
3646     BEGIN_INTERFACE
3647 
3648     /*** IUnknown methods ***/
3649     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3650         IPSFactoryBuffer *This,
3651         REFIID riid,
3652         void **ppvObject);
3653 
3654     ULONG (STDMETHODCALLTYPE *AddRef)(
3655         IPSFactoryBuffer *This);
3656 
3657     ULONG (STDMETHODCALLTYPE *Release)(
3658         IPSFactoryBuffer *This);
3659 
3660     /*** IPSFactoryBuffer methods ***/
3661     HRESULT (STDMETHODCALLTYPE *CreateProxy)(
3662         IPSFactoryBuffer *This,
3663         IUnknown *pUnkOuter,
3664         REFIID riid,
3665         IRpcProxyBuffer **ppProxy,
3666         void **ppv);
3667 
3668     HRESULT (STDMETHODCALLTYPE *CreateStub)(
3669         IPSFactoryBuffer *This,
3670         REFIID riid,
3671         IUnknown *pUnkServer,
3672         IRpcStubBuffer **ppStub);
3673 
3674     END_INTERFACE
3675 } IPSFactoryBufferVtbl;
3676 
3677 interface IPSFactoryBuffer {
3678     CONST_VTBL IPSFactoryBufferVtbl* lpVtbl;
3679 };
3680 
3681 #ifdef COBJMACROS
3682 #ifndef WIDL_C_INLINE_WRAPPERS
3683 /*** IUnknown methods ***/
3684 #define IPSFactoryBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3685 #define IPSFactoryBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
3686 #define IPSFactoryBuffer_Release(This) (This)->lpVtbl->Release(This)
3687 /*** IPSFactoryBuffer methods ***/
3688 #define IPSFactoryBuffer_CreateProxy(This,pUnkOuter,riid,ppProxy,ppv) (This)->lpVtbl->CreateProxy(This,pUnkOuter,riid,ppProxy,ppv)
3689 #define IPSFactoryBuffer_CreateStub(This,riid,pUnkServer,ppStub) (This)->lpVtbl->CreateStub(This,riid,pUnkServer,ppStub)
3690 #else
3691 /*** IUnknown methods ***/
3692 static FORCEINLINE HRESULT IPSFactoryBuffer_QueryInterface(IPSFactoryBuffer* This,REFIID riid,void **ppvObject) {
3693     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3694 }
3695 static FORCEINLINE ULONG IPSFactoryBuffer_AddRef(IPSFactoryBuffer* This) {
3696     return This->lpVtbl->AddRef(This);
3697 }
3698 static FORCEINLINE ULONG IPSFactoryBuffer_Release(IPSFactoryBuffer* This) {
3699     return This->lpVtbl->Release(This);
3700 }
3701 /*** IPSFactoryBuffer methods ***/
3702 static FORCEINLINE HRESULT IPSFactoryBuffer_CreateProxy(IPSFactoryBuffer* This,IUnknown *pUnkOuter,REFIID riid,IRpcProxyBuffer **ppProxy,void **ppv) {
3703     return This->lpVtbl->CreateProxy(This,pUnkOuter,riid,ppProxy,ppv);
3704 }
3705 static FORCEINLINE HRESULT IPSFactoryBuffer_CreateStub(IPSFactoryBuffer* This,REFIID riid,IUnknown *pUnkServer,IRpcStubBuffer **ppStub) {
3706     return This->lpVtbl->CreateStub(This,riid,pUnkServer,ppStub);
3707 }
3708 #endif
3709 #endif
3710 
3711 #endif
3712 
3713 
3714 #endif  /* __IPSFactoryBuffer_INTERFACE_DEFINED__ */
3715 
3716 #endif
3717 
3718 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
3719 #if  (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)
3720 typedef struct SChannelHookCallInfo {
3721     IID iid;
3722     DWORD cbSize;
3723     GUID uCausality;
3724     DWORD dwServerPid;
3725     DWORD iMethod;
3726     void *pObject;
3727 } SChannelHookCallInfo;
3728 
3729 /*****************************************************************************
3730  * IChannelHook interface
3731  */
3732 #ifndef __IChannelHook_INTERFACE_DEFINED__
3733 #define __IChannelHook_INTERFACE_DEFINED__
3734 
3735 DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
3736 #if defined(__cplusplus) && !defined(CINTERFACE)
3737 MIDL_INTERFACE("1008c4a0-7613-11cf-9af1-0020af6e72f4")
3738 IChannelHook : public IUnknown
3739 {
3740     virtual void STDMETHODCALLTYPE ClientGetSize(
3741         REFGUID uExtent,
3742         REFIID riid,
3743         ULONG *pDataSize) = 0;
3744 
3745     virtual void STDMETHODCALLTYPE ClientFillBuffer(
3746         REFGUID uExtent,
3747         REFIID riid,
3748         ULONG *pDataSize,
3749         void *pDataBuffer) = 0;
3750 
3751     virtual void STDMETHODCALLTYPE ClientNotify(
3752         REFGUID uExtent,
3753         REFIID riid,
3754         ULONG cbDataSize,
3755         void *pDataBuffer,
3756         DWORD lDataRep,
3757         HRESULT hrFault) = 0;
3758 
3759     virtual void STDMETHODCALLTYPE ServerNotify(
3760         REFGUID uExtent,
3761         REFIID riid,
3762         ULONG cbDataSize,
3763         void *pDataBuffer,
3764         DWORD lDataRep) = 0;
3765 
3766     virtual void STDMETHODCALLTYPE ServerGetSize(
3767         REFGUID uExtent,
3768         REFIID riid,
3769         HRESULT hrFault,
3770         ULONG *pDataSize) = 0;
3771 
3772     virtual void STDMETHODCALLTYPE ServerFillBuffer(
3773         REFGUID uExtent,
3774         REFIID riid,
3775         ULONG *pDataSize,
3776         void *pDataBuffer,
3777         HRESULT hrFault) = 0;
3778 
3779 };
3780 #ifdef __CRT_UUID_DECL
3781 __CRT_UUID_DECL(IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4)
3782 #endif
3783 #else
3784 typedef struct IChannelHookVtbl {
3785     BEGIN_INTERFACE
3786 
3787     /*** IUnknown methods ***/
3788     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3789         IChannelHook *This,
3790         REFIID riid,
3791         void **ppvObject);
3792 
3793     ULONG (STDMETHODCALLTYPE *AddRef)(
3794         IChannelHook *This);
3795 
3796     ULONG (STDMETHODCALLTYPE *Release)(
3797         IChannelHook *This);
3798 
3799     /*** IChannelHook methods ***/
3800     void (STDMETHODCALLTYPE *ClientGetSize)(
3801         IChannelHook *This,
3802         REFGUID uExtent,
3803         REFIID riid,
3804         ULONG *pDataSize);
3805 
3806     void (STDMETHODCALLTYPE *ClientFillBuffer)(
3807         IChannelHook *This,
3808         REFGUID uExtent,
3809         REFIID riid,
3810         ULONG *pDataSize,
3811         void *pDataBuffer);
3812 
3813     void (STDMETHODCALLTYPE *ClientNotify)(
3814         IChannelHook *This,
3815         REFGUID uExtent,
3816         REFIID riid,
3817         ULONG cbDataSize,
3818         void *pDataBuffer,
3819         DWORD lDataRep,
3820         HRESULT hrFault);
3821 
3822     void (STDMETHODCALLTYPE *ServerNotify)(
3823         IChannelHook *This,
3824         REFGUID uExtent,
3825         REFIID riid,
3826         ULONG cbDataSize,
3827         void *pDataBuffer,
3828         DWORD lDataRep);
3829 
3830     void (STDMETHODCALLTYPE *ServerGetSize)(
3831         IChannelHook *This,
3832         REFGUID uExtent,
3833         REFIID riid,
3834         HRESULT hrFault,
3835         ULONG *pDataSize);
3836 
3837     void (STDMETHODCALLTYPE *ServerFillBuffer)(
3838         IChannelHook *This,
3839         REFGUID uExtent,
3840         REFIID riid,
3841         ULONG *pDataSize,
3842         void *pDataBuffer,
3843         HRESULT hrFault);
3844 
3845     END_INTERFACE
3846 } IChannelHookVtbl;
3847 
3848 interface IChannelHook {
3849     CONST_VTBL IChannelHookVtbl* lpVtbl;
3850 };
3851 
3852 #ifdef COBJMACROS
3853 #ifndef WIDL_C_INLINE_WRAPPERS
3854 /*** IUnknown methods ***/
3855 #define IChannelHook_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3856 #define IChannelHook_AddRef(This) (This)->lpVtbl->AddRef(This)
3857 #define IChannelHook_Release(This) (This)->lpVtbl->Release(This)
3858 /*** IChannelHook methods ***/
3859 #define IChannelHook_ClientGetSize(This,uExtent,riid,pDataSize) (This)->lpVtbl->ClientGetSize(This,uExtent,riid,pDataSize)
3860 #define IChannelHook_ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer) (This)->lpVtbl->ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer)
3861 #define IChannelHook_ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault) (This)->lpVtbl->ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault)
3862 #define IChannelHook_ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep) (This)->lpVtbl->ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep)
3863 #define IChannelHook_ServerGetSize(This,uExtent,riid,hrFault,pDataSize) (This)->lpVtbl->ServerGetSize(This,uExtent,riid,hrFault,pDataSize)
3864 #define IChannelHook_ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault) (This)->lpVtbl->ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault)
3865 #else
3866 /*** IUnknown methods ***/
3867 static FORCEINLINE HRESULT IChannelHook_QueryInterface(IChannelHook* This,REFIID riid,void **ppvObject) {
3868     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3869 }
3870 static FORCEINLINE ULONG IChannelHook_AddRef(IChannelHook* This) {
3871     return This->lpVtbl->AddRef(This);
3872 }
3873 static FORCEINLINE ULONG IChannelHook_Release(IChannelHook* This) {
3874     return This->lpVtbl->Release(This);
3875 }
3876 /*** IChannelHook methods ***/
3877 static FORCEINLINE void IChannelHook_ClientGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize) {
3878     This->lpVtbl->ClientGetSize(This,uExtent,riid,pDataSize);
3879 }
3880 static FORCEINLINE void IChannelHook_ClientFillBuffer(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer) {
3881     This->lpVtbl->ClientFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer);
3882 }
3883 static FORCEINLINE void IChannelHook_ClientNotify(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG cbDataSize,void *pDataBuffer,DWORD lDataRep,HRESULT hrFault) {
3884     This->lpVtbl->ClientNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep,hrFault);
3885 }
3886 static FORCEINLINE void IChannelHook_ServerNotify(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG cbDataSize,void *pDataBuffer,DWORD lDataRep) {
3887     This->lpVtbl->ServerNotify(This,uExtent,riid,cbDataSize,pDataBuffer,lDataRep);
3888 }
3889 static FORCEINLINE void IChannelHook_ServerGetSize(IChannelHook* This,REFGUID uExtent,REFIID riid,HRESULT hrFault,ULONG *pDataSize) {
3890     This->lpVtbl->ServerGetSize(This,uExtent,riid,hrFault,pDataSize);
3891 }
3892 static FORCEINLINE void IChannelHook_ServerFillBuffer(IChannelHook* This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer,HRESULT hrFault) {
3893     This->lpVtbl->ServerFillBuffer(This,uExtent,riid,pDataSize,pDataBuffer,hrFault);
3894 }
3895 #endif
3896 #endif
3897 
3898 #endif
3899 
3900 
3901 #endif  /* __IChannelHook_INTERFACE_DEFINED__ */
3902 
3903 #endif
3904 #endif
3905 
3906 #if  (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)
3907 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
3908 /*****************************************************************************
3909  * IClientSecurity interface
3910  */
3911 #ifndef __IClientSecurity_INTERFACE_DEFINED__
3912 #define __IClientSecurity_INTERFACE_DEFINED__
3913 
3914 typedef struct tagSOLE_AUTHENTICATION_SERVICE {
3915     DWORD dwAuthnSvc;
3916     DWORD dwAuthzSvc;
3917     OLECHAR *pPrincipalName;
3918     HRESULT hr;
3919 } SOLE_AUTHENTICATION_SERVICE;
3920 
3921 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
3922 
3923 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
3924     EOAC_NONE = 0x0,
3925     EOAC_MUTUAL_AUTH = 0x1,
3926     EOAC_STATIC_CLOAKING = 0x20,
3927     EOAC_DYNAMIC_CLOAKING = 0x40,
3928     EOAC_ANY_AUTHORITY = 0x80,
3929     EOAC_MAKE_FULLSIC = 0x100,
3930     EOAC_DEFAULT = 0x800,
3931     EOAC_SECURE_REFS = 0x2,
3932     EOAC_ACCESS_CONTROL = 0x4,
3933     EOAC_APPID = 0x8,
3934     EOAC_DYNAMIC = 0x10,
3935     EOAC_REQUIRE_FULLSIC = 0x200,
3936     EOAC_AUTO_IMPERSONATE = 0x400,
3937     EOAC_NO_CUSTOM_MARSHAL = 0x2000,
3938     EOAC_DISABLE_AAA = 0x1000
3939 } EOLE_AUTHENTICATION_CAPABILITIES;
3940 
3941 #define COLE_DEFAULT_PRINCIPAL ((OLECHAR *)(INT_PTR)-1)
3942 
3943 #define COLE_DEFAULT_AUTHINFO ((void *)(INT_PTR)-1)
3944 
3945 
3946 typedef struct tagSOLE_AUTHENTICATION_INFO {
3947     DWORD dwAuthnSvc;
3948     DWORD dwAuthzSvc;
3949     void *pAuthInfo;
3950 } SOLE_AUTHENTICATION_INFO;
3951 typedef struct tagSOLE_AUTHENTICATION_INFO *PSOLE_AUTHENTICATION_INFO;
3952 
3953 typedef struct tagSOLE_AUTHENTICATION_LIST {
3954     DWORD cAuthInfo;
3955     SOLE_AUTHENTICATION_INFO *aAuthInfo;
3956 } SOLE_AUTHENTICATION_LIST;
3957 typedef struct tagSOLE_AUTHENTICATION_LIST *PSOLE_AUTHENTICATION_LIST;
3958 
3959 DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3960 #if defined(__cplusplus) && !defined(CINTERFACE)
3961 MIDL_INTERFACE("0000013d-0000-0000-c000-000000000046")
3962 IClientSecurity : public IUnknown
3963 {
3964     virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
3965         IUnknown *pProxy,
3966         DWORD *pAuthnSvc,
3967         DWORD *pAuthzSvc,
3968         OLECHAR **pServerPrincName,
3969         DWORD *pAuthnLevel,
3970         DWORD *pImpLevel,
3971         void **pAuthInfo,
3972         DWORD *pCapabilites) = 0;
3973 
3974     virtual HRESULT STDMETHODCALLTYPE SetBlanket(
3975         IUnknown *pProxy,
3976         DWORD dwAuthnSvc,
3977         DWORD dwAuthzSvc,
3978         OLECHAR *pServerPrincName,
3979         DWORD dwAuthnLevel,
3980         DWORD dwImpLevel,
3981         void *pAuthInfo,
3982         DWORD dwCapabilities) = 0;
3983 
3984     virtual HRESULT STDMETHODCALLTYPE CopyProxy(
3985         IUnknown *pProxy,
3986         IUnknown **ppCopy) = 0;
3987 
3988 };
3989 #ifdef __CRT_UUID_DECL
3990 __CRT_UUID_DECL(IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
3991 #endif
3992 #else
3993 typedef struct IClientSecurityVtbl {
3994     BEGIN_INTERFACE
3995 
3996     /*** IUnknown methods ***/
3997     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3998         IClientSecurity *This,
3999         REFIID riid,
4000         void **ppvObject);
4001 
4002     ULONG (STDMETHODCALLTYPE *AddRef)(
4003         IClientSecurity *This);
4004 
4005     ULONG (STDMETHODCALLTYPE *Release)(
4006         IClientSecurity *This);
4007 
4008     /*** IClientSecurity methods ***/
4009     HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
4010         IClientSecurity *This,
4011         IUnknown *pProxy,
4012         DWORD *pAuthnSvc,
4013         DWORD *pAuthzSvc,
4014         OLECHAR **pServerPrincName,
4015         DWORD *pAuthnLevel,
4016         DWORD *pImpLevel,
4017         void **pAuthInfo,
4018         DWORD *pCapabilites);
4019 
4020     HRESULT (STDMETHODCALLTYPE *SetBlanket)(
4021         IClientSecurity *This,
4022         IUnknown *pProxy,
4023         DWORD dwAuthnSvc,
4024         DWORD dwAuthzSvc,
4025         OLECHAR *pServerPrincName,
4026         DWORD dwAuthnLevel,
4027         DWORD dwImpLevel,
4028         void *pAuthInfo,
4029         DWORD dwCapabilities);
4030 
4031     HRESULT (STDMETHODCALLTYPE *CopyProxy)(
4032         IClientSecurity *This,
4033         IUnknown *pProxy,
4034         IUnknown **ppCopy);
4035 
4036     END_INTERFACE
4037 } IClientSecurityVtbl;
4038 
4039 interface IClientSecurity {
4040     CONST_VTBL IClientSecurityVtbl* lpVtbl;
4041 };
4042 
4043 #ifdef COBJMACROS
4044 #ifndef WIDL_C_INLINE_WRAPPERS
4045 /*** IUnknown methods ***/
4046 #define IClientSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4047 #define IClientSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
4048 #define IClientSecurity_Release(This) (This)->lpVtbl->Release(This)
4049 /*** IClientSecurity methods ***/
4050 #define IClientSecurity_QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites) (This)->lpVtbl->QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites)
4051 #define IClientSecurity_SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities) (This)->lpVtbl->SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities)
4052 #define IClientSecurity_CopyProxy(This,pProxy,ppCopy) (This)->lpVtbl->CopyProxy(This,pProxy,ppCopy)
4053 #else
4054 /*** IUnknown methods ***/
4055 static FORCEINLINE HRESULT IClientSecurity_QueryInterface(IClientSecurity* This,REFIID riid,void **ppvObject) {
4056     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4057 }
4058 static FORCEINLINE ULONG IClientSecurity_AddRef(IClientSecurity* This) {
4059     return This->lpVtbl->AddRef(This);
4060 }
4061 static FORCEINLINE ULONG IClientSecurity_Release(IClientSecurity* This) {
4062     return This->lpVtbl->Release(This);
4063 }
4064 /*** IClientSecurity methods ***/
4065 static FORCEINLINE HRESULT IClientSecurity_QueryBlanket(IClientSecurity* This,IUnknown *pProxy,DWORD *pAuthnSvc,DWORD *pAuthzSvc,OLECHAR **pServerPrincName,DWORD *pAuthnLevel,DWORD *pImpLevel,void **pAuthInfo,DWORD *pCapabilites) {
4066     return This->lpVtbl->QueryBlanket(This,pProxy,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pAuthInfo,pCapabilites);
4067 }
4068 static FORCEINLINE HRESULT IClientSecurity_SetBlanket(IClientSecurity* This,IUnknown *pProxy,DWORD dwAuthnSvc,DWORD dwAuthzSvc,OLECHAR *pServerPrincName,DWORD dwAuthnLevel,DWORD dwImpLevel,void *pAuthInfo,DWORD dwCapabilities) {
4069     return This->lpVtbl->SetBlanket(This,pProxy,dwAuthnSvc,dwAuthzSvc,pServerPrincName,dwAuthnLevel,dwImpLevel,pAuthInfo,dwCapabilities);
4070 }
4071 static FORCEINLINE HRESULT IClientSecurity_CopyProxy(IClientSecurity* This,IUnknown *pProxy,IUnknown **ppCopy) {
4072     return This->lpVtbl->CopyProxy(This,pProxy,ppCopy);
4073 }
4074 #endif
4075 #endif
4076 
4077 #endif
4078 
4079 
4080 #endif  /* __IClientSecurity_INTERFACE_DEFINED__ */
4081 
4082 #endif
4083 
4084 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
4085 /*****************************************************************************
4086  * IServerSecurity interface
4087  */
4088 #ifndef __IServerSecurity_INTERFACE_DEFINED__
4089 #define __IServerSecurity_INTERFACE_DEFINED__
4090 
4091 DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4092 #if defined(__cplusplus) && !defined(CINTERFACE)
4093 MIDL_INTERFACE("0000013e-0000-0000-c000-000000000046")
4094 IServerSecurity : public IUnknown
4095 {
4096     virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
4097         DWORD *pAuthnSvc,
4098         DWORD *pAuthzSvc,
4099         OLECHAR **pServerPrincName,
4100         DWORD *pAuthnLevel,
4101         DWORD *pImpLevel,
4102         void **pPrivs,
4103         DWORD *pCapabilities) = 0;
4104 
4105     virtual HRESULT STDMETHODCALLTYPE ImpersonateClient(
4106         ) = 0;
4107 
4108     virtual HRESULT STDMETHODCALLTYPE RevertToSelf(
4109         ) = 0;
4110 
4111     virtual WINBOOL STDMETHODCALLTYPE IsImpersonating(
4112         ) = 0;
4113 
4114 };
4115 #ifdef __CRT_UUID_DECL
4116 __CRT_UUID_DECL(IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4117 #endif
4118 #else
4119 typedef struct IServerSecurityVtbl {
4120     BEGIN_INTERFACE
4121 
4122     /*** IUnknown methods ***/
4123     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4124         IServerSecurity *This,
4125         REFIID riid,
4126         void **ppvObject);
4127 
4128     ULONG (STDMETHODCALLTYPE *AddRef)(
4129         IServerSecurity *This);
4130 
4131     ULONG (STDMETHODCALLTYPE *Release)(
4132         IServerSecurity *This);
4133 
4134     /*** IServerSecurity methods ***/
4135     HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
4136         IServerSecurity *This,
4137         DWORD *pAuthnSvc,
4138         DWORD *pAuthzSvc,
4139         OLECHAR **pServerPrincName,
4140         DWORD *pAuthnLevel,
4141         DWORD *pImpLevel,
4142         void **pPrivs,
4143         DWORD *pCapabilities);
4144 
4145     HRESULT (STDMETHODCALLTYPE *ImpersonateClient)(
4146         IServerSecurity *This);
4147 
4148     HRESULT (STDMETHODCALLTYPE *RevertToSelf)(
4149         IServerSecurity *This);
4150 
4151     WINBOOL (STDMETHODCALLTYPE *IsImpersonating)(
4152         IServerSecurity *This);
4153 
4154     END_INTERFACE
4155 } IServerSecurityVtbl;
4156 
4157 interface IServerSecurity {
4158     CONST_VTBL IServerSecurityVtbl* lpVtbl;
4159 };
4160 
4161 #ifdef COBJMACROS
4162 #ifndef WIDL_C_INLINE_WRAPPERS
4163 /*** IUnknown methods ***/
4164 #define IServerSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4165 #define IServerSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
4166 #define IServerSecurity_Release(This) (This)->lpVtbl->Release(This)
4167 /*** IServerSecurity methods ***/
4168 #define IServerSecurity_QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities) (This)->lpVtbl->QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities)
4169 #define IServerSecurity_ImpersonateClient(This) (This)->lpVtbl->ImpersonateClient(This)
4170 #define IServerSecurity_RevertToSelf(This) (This)->lpVtbl->RevertToSelf(This)
4171 #define IServerSecurity_IsImpersonating(This) (This)->lpVtbl->IsImpersonating(This)
4172 #else
4173 /*** IUnknown methods ***/
4174 static FORCEINLINE HRESULT IServerSecurity_QueryInterface(IServerSecurity* This,REFIID riid,void **ppvObject) {
4175     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4176 }
4177 static FORCEINLINE ULONG IServerSecurity_AddRef(IServerSecurity* This) {
4178     return This->lpVtbl->AddRef(This);
4179 }
4180 static FORCEINLINE ULONG IServerSecurity_Release(IServerSecurity* This) {
4181     return This->lpVtbl->Release(This);
4182 }
4183 /*** IServerSecurity methods ***/
4184 static FORCEINLINE HRESULT IServerSecurity_QueryBlanket(IServerSecurity* This,DWORD *pAuthnSvc,DWORD *pAuthzSvc,OLECHAR **pServerPrincName,DWORD *pAuthnLevel,DWORD *pImpLevel,void **pPrivs,DWORD *pCapabilities) {
4185     return This->lpVtbl->QueryBlanket(This,pAuthnSvc,pAuthzSvc,pServerPrincName,pAuthnLevel,pImpLevel,pPrivs,pCapabilities);
4186 }
4187 static FORCEINLINE HRESULT IServerSecurity_ImpersonateClient(IServerSecurity* This) {
4188     return This->lpVtbl->ImpersonateClient(This);
4189 }
4190 static FORCEINLINE HRESULT IServerSecurity_RevertToSelf(IServerSecurity* This) {
4191     return This->lpVtbl->RevertToSelf(This);
4192 }
4193 static FORCEINLINE WINBOOL IServerSecurity_IsImpersonating(IServerSecurity* This) {
4194     return This->lpVtbl->IsImpersonating(This);
4195 }
4196 #endif
4197 #endif
4198 
4199 #endif
4200 
4201 
4202 #endif  /* __IServerSecurity_INTERFACE_DEFINED__ */
4203 
4204 
4205 typedef enum tagRPCOPT_PROPERTIES {
4206     COMBND_RPCTIMEOUT = 0x1,
4207     COMBND_SERVER_LOCALITY = 0x2,
4208     COMBND_RESERVED1 = 0x4
4209 } RPCOPT_PROPERTIES;
4210 
4211 typedef enum tagRPCOPT_SERVER_LOCALITY_VALUES {
4212     SERVER_LOCALITY_PROCESS_LOCAL = 0,
4213     SERVER_LOCALITY_MACHINE_LOCAL = 1,
4214     SERVER_LOCALITY_REMOTE = 2
4215 } RPCOPT_SERVER_LOCALITY_VALUES;
4216 
4217 /*****************************************************************************
4218  * IRpcOptions interface
4219  */
4220 #ifndef __IRpcOptions_INTERFACE_DEFINED__
4221 #define __IRpcOptions_INTERFACE_DEFINED__
4222 
4223 DEFINE_GUID(IID_IRpcOptions, 0x00000144, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4224 #if defined(__cplusplus) && !defined(CINTERFACE)
4225 MIDL_INTERFACE("00000144-0000-0000-c000-000000000046")
4226 IRpcOptions : public IUnknown
4227 {
4228     virtual HRESULT STDMETHODCALLTYPE Set(
4229         IUnknown *pPrx,
4230         RPCOPT_PROPERTIES dwProperty,
4231         ULONG_PTR dwValue) = 0;
4232 
4233     virtual HRESULT STDMETHODCALLTYPE Query(
4234         IUnknown *pPrx,
4235         RPCOPT_PROPERTIES dwProperty,
4236         ULONG_PTR *pdwValue) = 0;
4237 
4238 };
4239 #ifdef __CRT_UUID_DECL
4240 __CRT_UUID_DECL(IRpcOptions, 0x00000144, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4241 #endif
4242 #else
4243 typedef struct IRpcOptionsVtbl {
4244     BEGIN_INTERFACE
4245 
4246     /*** IUnknown methods ***/
4247     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4248         IRpcOptions *This,
4249         REFIID riid,
4250         void **ppvObject);
4251 
4252     ULONG (STDMETHODCALLTYPE *AddRef)(
4253         IRpcOptions *This);
4254 
4255     ULONG (STDMETHODCALLTYPE *Release)(
4256         IRpcOptions *This);
4257 
4258     /*** IRpcOptions methods ***/
4259     HRESULT (STDMETHODCALLTYPE *Set)(
4260         IRpcOptions *This,
4261         IUnknown *pPrx,
4262         RPCOPT_PROPERTIES dwProperty,
4263         ULONG_PTR dwValue);
4264 
4265     HRESULT (STDMETHODCALLTYPE *Query)(
4266         IRpcOptions *This,
4267         IUnknown *pPrx,
4268         RPCOPT_PROPERTIES dwProperty,
4269         ULONG_PTR *pdwValue);
4270 
4271     END_INTERFACE
4272 } IRpcOptionsVtbl;
4273 
4274 interface IRpcOptions {
4275     CONST_VTBL IRpcOptionsVtbl* lpVtbl;
4276 };
4277 
4278 #ifdef COBJMACROS
4279 #ifndef WIDL_C_INLINE_WRAPPERS
4280 /*** IUnknown methods ***/
4281 #define IRpcOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4282 #define IRpcOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
4283 #define IRpcOptions_Release(This) (This)->lpVtbl->Release(This)
4284 /*** IRpcOptions methods ***/
4285 #define IRpcOptions_Set(This,pPrx,dwProperty,dwValue) (This)->lpVtbl->Set(This,pPrx,dwProperty,dwValue)
4286 #define IRpcOptions_Query(This,pPrx,dwProperty,pdwValue) (This)->lpVtbl->Query(This,pPrx,dwProperty,pdwValue)
4287 #else
4288 /*** IUnknown methods ***/
4289 static FORCEINLINE HRESULT IRpcOptions_QueryInterface(IRpcOptions* This,REFIID riid,void **ppvObject) {
4290     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4291 }
4292 static FORCEINLINE ULONG IRpcOptions_AddRef(IRpcOptions* This) {
4293     return This->lpVtbl->AddRef(This);
4294 }
4295 static FORCEINLINE ULONG IRpcOptions_Release(IRpcOptions* This) {
4296     return This->lpVtbl->Release(This);
4297 }
4298 /*** IRpcOptions methods ***/
4299 static FORCEINLINE HRESULT IRpcOptions_Set(IRpcOptions* This,IUnknown *pPrx,RPCOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
4300     return This->lpVtbl->Set(This,pPrx,dwProperty,dwValue);
4301 }
4302 static FORCEINLINE HRESULT IRpcOptions_Query(IRpcOptions* This,IUnknown *pPrx,RPCOPT_PROPERTIES dwProperty,ULONG_PTR *pdwValue) {
4303     return This->lpVtbl->Query(This,pPrx,dwProperty,pdwValue);
4304 }
4305 #endif
4306 #endif
4307 
4308 #endif
4309 
4310 
4311 #endif  /* __IRpcOptions_INTERFACE_DEFINED__ */
4312 
4313 #endif
4314 
4315 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
4316 typedef enum tagGLOBALOPT_PROPERTIES {
4317     COMGLB_EXCEPTION_HANDLING = 1,
4318     COMGLB_APPID = 2,
4319     COMGLB_RPC_THREADPOOL_SETTING = 3,
4320     COMGLB_RO_SETTINGS = 4,
4321     COMGLB_UNMARSHALING_POLICY = 5
4322 } GLOBALOPT_PROPERTIES;
4323 
4324 typedef enum tagGLOBALOPT_EH_VALUES {
4325     COMGLB_EXCEPTION_HANDLE = 0,
4326     COMGLB_EXCEPTION_DONOT_HANDLE_FATAL = 1,
4327     COMGLB_EXCEPTION_DONOT_HANDLE = COMGLB_EXCEPTION_DONOT_HANDLE_FATAL,
4328     COMGLB_EXCEPTION_DONOT_HANDLE_ANY = 2
4329 } GLOBALOPT_EH_VALUES;
4330 
4331 typedef enum tagGLOBALOPT_RPCTP_VALUES {
4332     COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL = 0,
4333     COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL = 1
4334 } GLOBALOPT_RPCTP_VALUES;
4335 
4336 typedef enum tagGLOBALOPT_RO_FLAGS {
4337     COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES = 0x1,
4338     COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES = 0x2,
4339     COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES = 0x4,
4340     COMGLB_FAST_RUNDOWN = 0x8,
4341     COMGLB_RESERVED1 = 0x10,
4342     COMGLB_RESERVED2 = 0x20,
4343     COMGLB_RESERVED3 = 0x40,
4344     COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES = 0x80
4345 } GLOBALOPT_RO_FLAGS;
4346 
4347 typedef enum tagGLOBALOPT_UNMARSHALING_POLICY_VALUES {
4348     COMGLB_UNMARSHALING_POLICY_NORMAL = 0,
4349     COMGLB_UNMARSHALING_POLICY_STRONG = 1,
4350     COMGLB_UNMARSHALING_POLICY_HYBRID = 2
4351 } GLOBALOPT_UNMARSHALING_POLICY_VALUES;
4352 
4353 /*****************************************************************************
4354  * IGlobalOptions interface
4355  */
4356 #ifndef __IGlobalOptions_INTERFACE_DEFINED__
4357 #define __IGlobalOptions_INTERFACE_DEFINED__
4358 
4359 DEFINE_GUID(IID_IGlobalOptions, 0x0000015b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4360 #if defined(__cplusplus) && !defined(CINTERFACE)
4361 MIDL_INTERFACE("0000015b-0000-0000-c000-000000000046")
4362 IGlobalOptions : public IUnknown
4363 {
4364     virtual HRESULT STDMETHODCALLTYPE Set(
4365         GLOBALOPT_PROPERTIES dwProperty,
4366         ULONG_PTR dwValue) = 0;
4367 
4368     virtual HRESULT STDMETHODCALLTYPE Query(
4369         GLOBALOPT_PROPERTIES dwProperty,
4370         ULONG_PTR *pdwValue) = 0;
4371 
4372 };
4373 #ifdef __CRT_UUID_DECL
4374 __CRT_UUID_DECL(IGlobalOptions, 0x0000015b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4375 #endif
4376 #else
4377 typedef struct IGlobalOptionsVtbl {
4378     BEGIN_INTERFACE
4379 
4380     /*** IUnknown methods ***/
4381     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4382         IGlobalOptions *This,
4383         REFIID riid,
4384         void **ppvObject);
4385 
4386     ULONG (STDMETHODCALLTYPE *AddRef)(
4387         IGlobalOptions *This);
4388 
4389     ULONG (STDMETHODCALLTYPE *Release)(
4390         IGlobalOptions *This);
4391 
4392     /*** IGlobalOptions methods ***/
4393     HRESULT (STDMETHODCALLTYPE *Set)(
4394         IGlobalOptions *This,
4395         GLOBALOPT_PROPERTIES dwProperty,
4396         ULONG_PTR dwValue);
4397 
4398     HRESULT (STDMETHODCALLTYPE *Query)(
4399         IGlobalOptions *This,
4400         GLOBALOPT_PROPERTIES dwProperty,
4401         ULONG_PTR *pdwValue);
4402 
4403     END_INTERFACE
4404 } IGlobalOptionsVtbl;
4405 
4406 interface IGlobalOptions {
4407     CONST_VTBL IGlobalOptionsVtbl* lpVtbl;
4408 };
4409 
4410 #ifdef COBJMACROS
4411 #ifndef WIDL_C_INLINE_WRAPPERS
4412 /*** IUnknown methods ***/
4413 #define IGlobalOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4414 #define IGlobalOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
4415 #define IGlobalOptions_Release(This) (This)->lpVtbl->Release(This)
4416 /*** IGlobalOptions methods ***/
4417 #define IGlobalOptions_Set(This,dwProperty,dwValue) (This)->lpVtbl->Set(This,dwProperty,dwValue)
4418 #define IGlobalOptions_Query(This,dwProperty,pdwValue) (This)->lpVtbl->Query(This,dwProperty,pdwValue)
4419 #else
4420 /*** IUnknown methods ***/
4421 static FORCEINLINE HRESULT IGlobalOptions_QueryInterface(IGlobalOptions* This,REFIID riid,void **ppvObject) {
4422     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4423 }
4424 static FORCEINLINE ULONG IGlobalOptions_AddRef(IGlobalOptions* This) {
4425     return This->lpVtbl->AddRef(This);
4426 }
4427 static FORCEINLINE ULONG IGlobalOptions_Release(IGlobalOptions* This) {
4428     return This->lpVtbl->Release(This);
4429 }
4430 /*** IGlobalOptions methods ***/
4431 static FORCEINLINE HRESULT IGlobalOptions_Set(IGlobalOptions* This,GLOBALOPT_PROPERTIES dwProperty,ULONG_PTR dwValue) {
4432     return This->lpVtbl->Set(This,dwProperty,dwValue);
4433 }
4434 static FORCEINLINE HRESULT IGlobalOptions_Query(IGlobalOptions* This,GLOBALOPT_PROPERTIES dwProperty,ULONG_PTR *pdwValue) {
4435     return This->lpVtbl->Query(This,dwProperty,pdwValue);
4436 }
4437 #endif
4438 #endif
4439 
4440 #endif
4441 
4442 
4443 #endif  /* __IGlobalOptions_INTERFACE_DEFINED__ */
4444 
4445 #endif
4446 #endif
4447 
4448 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
4449 /*****************************************************************************
4450  * ISurrogate interface
4451  */
4452 #ifndef __ISurrogate_INTERFACE_DEFINED__
4453 #define __ISurrogate_INTERFACE_DEFINED__
4454 
4455 typedef ISurrogate *LPSURROGATE;
4456 
4457 DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4458 #if defined(__cplusplus) && !defined(CINTERFACE)
4459 MIDL_INTERFACE("00000022-0000-0000-c000-000000000046")
4460 ISurrogate : public IUnknown
4461 {
4462     virtual HRESULT STDMETHODCALLTYPE LoadDllServer(
4463         REFCLSID Clsid) = 0;
4464 
4465     virtual HRESULT STDMETHODCALLTYPE FreeSurrogate(
4466         ) = 0;
4467 
4468 };
4469 #ifdef __CRT_UUID_DECL
4470 __CRT_UUID_DECL(ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4471 #endif
4472 #else
4473 typedef struct ISurrogateVtbl {
4474     BEGIN_INTERFACE
4475 
4476     /*** IUnknown methods ***/
4477     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4478         ISurrogate *This,
4479         REFIID riid,
4480         void **ppvObject);
4481 
4482     ULONG (STDMETHODCALLTYPE *AddRef)(
4483         ISurrogate *This);
4484 
4485     ULONG (STDMETHODCALLTYPE *Release)(
4486         ISurrogate *This);
4487 
4488     /*** ISurrogate methods ***/
4489     HRESULT (STDMETHODCALLTYPE *LoadDllServer)(
4490         ISurrogate *This,
4491         REFCLSID Clsid);
4492 
4493     HRESULT (STDMETHODCALLTYPE *FreeSurrogate)(
4494         ISurrogate *This);
4495 
4496     END_INTERFACE
4497 } ISurrogateVtbl;
4498 
4499 interface ISurrogate {
4500     CONST_VTBL ISurrogateVtbl* lpVtbl;
4501 };
4502 
4503 #ifdef COBJMACROS
4504 #ifndef WIDL_C_INLINE_WRAPPERS
4505 /*** IUnknown methods ***/
4506 #define ISurrogate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4507 #define ISurrogate_AddRef(This) (This)->lpVtbl->AddRef(This)
4508 #define ISurrogate_Release(This) (This)->lpVtbl->Release(This)
4509 /*** ISurrogate methods ***/
4510 #define ISurrogate_LoadDllServer(This,Clsid) (This)->lpVtbl->LoadDllServer(This,Clsid)
4511 #define ISurrogate_FreeSurrogate(This) (This)->lpVtbl->FreeSurrogate(This)
4512 #else
4513 /*** IUnknown methods ***/
4514 static FORCEINLINE HRESULT ISurrogate_QueryInterface(ISurrogate* This,REFIID riid,void **ppvObject) {
4515     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4516 }
4517 static FORCEINLINE ULONG ISurrogate_AddRef(ISurrogate* This) {
4518     return This->lpVtbl->AddRef(This);
4519 }
4520 static FORCEINLINE ULONG ISurrogate_Release(ISurrogate* This) {
4521     return This->lpVtbl->Release(This);
4522 }
4523 /*** ISurrogate methods ***/
4524 static FORCEINLINE HRESULT ISurrogate_LoadDllServer(ISurrogate* This,REFCLSID Clsid) {
4525     return This->lpVtbl->LoadDllServer(This,Clsid);
4526 }
4527 static FORCEINLINE HRESULT ISurrogate_FreeSurrogate(ISurrogate* This) {
4528     return This->lpVtbl->FreeSurrogate(This);
4529 }
4530 #endif
4531 #endif
4532 
4533 #endif
4534 
4535 
4536 #endif  /* __ISurrogate_INTERFACE_DEFINED__ */
4537 
4538 
4539 /*****************************************************************************
4540  * IGlobalInterfaceTable interface
4541  */
4542 #ifndef __IGlobalInterfaceTable_INTERFACE_DEFINED__
4543 #define __IGlobalInterfaceTable_INTERFACE_DEFINED__
4544 
4545 typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
4546 
4547 DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4548 #if defined(__cplusplus) && !defined(CINTERFACE)
4549 MIDL_INTERFACE("00000146-0000-0000-c000-000000000046")
4550 IGlobalInterfaceTable : public IUnknown
4551 {
4552     virtual HRESULT STDMETHODCALLTYPE RegisterInterfaceInGlobal(
4553         IUnknown *pUnk,
4554         REFIID riid,
4555         DWORD *pdwCookie) = 0;
4556 
4557     virtual HRESULT STDMETHODCALLTYPE RevokeInterfaceFromGlobal(
4558         DWORD dwCookie) = 0;
4559 
4560     virtual HRESULT STDMETHODCALLTYPE GetInterfaceFromGlobal(
4561         DWORD dwCookie,
4562         REFIID riid,
4563         void **ppv) = 0;
4564 
4565 };
4566 #ifdef __CRT_UUID_DECL
4567 __CRT_UUID_DECL(IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4568 #endif
4569 #else
4570 typedef struct IGlobalInterfaceTableVtbl {
4571     BEGIN_INTERFACE
4572 
4573     /*** IUnknown methods ***/
4574     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4575         IGlobalInterfaceTable *This,
4576         REFIID riid,
4577         void **ppvObject);
4578 
4579     ULONG (STDMETHODCALLTYPE *AddRef)(
4580         IGlobalInterfaceTable *This);
4581 
4582     ULONG (STDMETHODCALLTYPE *Release)(
4583         IGlobalInterfaceTable *This);
4584 
4585     /*** IGlobalInterfaceTable methods ***/
4586     HRESULT (STDMETHODCALLTYPE *RegisterInterfaceInGlobal)(
4587         IGlobalInterfaceTable *This,
4588         IUnknown *pUnk,
4589         REFIID riid,
4590         DWORD *pdwCookie);
4591 
4592     HRESULT (STDMETHODCALLTYPE *RevokeInterfaceFromGlobal)(
4593         IGlobalInterfaceTable *This,
4594         DWORD dwCookie);
4595 
4596     HRESULT (STDMETHODCALLTYPE *GetInterfaceFromGlobal)(
4597         IGlobalInterfaceTable *This,
4598         DWORD dwCookie,
4599         REFIID riid,
4600         void **ppv);
4601 
4602     END_INTERFACE
4603 } IGlobalInterfaceTableVtbl;
4604 
4605 interface IGlobalInterfaceTable {
4606     CONST_VTBL IGlobalInterfaceTableVtbl* lpVtbl;
4607 };
4608 
4609 #ifdef COBJMACROS
4610 #ifndef WIDL_C_INLINE_WRAPPERS
4611 /*** IUnknown methods ***/
4612 #define IGlobalInterfaceTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4613 #define IGlobalInterfaceTable_AddRef(This) (This)->lpVtbl->AddRef(This)
4614 #define IGlobalInterfaceTable_Release(This) (This)->lpVtbl->Release(This)
4615 /*** IGlobalInterfaceTable methods ***/
4616 #define IGlobalInterfaceTable_RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie) (This)->lpVtbl->RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie)
4617 #define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(This,dwCookie) (This)->lpVtbl->RevokeInterfaceFromGlobal(This,dwCookie)
4618 #define IGlobalInterfaceTable_GetInterfaceFromGlobal(This,dwCookie,riid,ppv) (This)->lpVtbl->GetInterfaceFromGlobal(This,dwCookie,riid,ppv)
4619 #else
4620 /*** IUnknown methods ***/
4621 static FORCEINLINE HRESULT IGlobalInterfaceTable_QueryInterface(IGlobalInterfaceTable* This,REFIID riid,void **ppvObject) {
4622     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4623 }
4624 static FORCEINLINE ULONG IGlobalInterfaceTable_AddRef(IGlobalInterfaceTable* This) {
4625     return This->lpVtbl->AddRef(This);
4626 }
4627 static FORCEINLINE ULONG IGlobalInterfaceTable_Release(IGlobalInterfaceTable* This) {
4628     return This->lpVtbl->Release(This);
4629 }
4630 /*** IGlobalInterfaceTable methods ***/
4631 static FORCEINLINE HRESULT IGlobalInterfaceTable_RegisterInterfaceInGlobal(IGlobalInterfaceTable* This,IUnknown *pUnk,REFIID riid,DWORD *pdwCookie) {
4632     return This->lpVtbl->RegisterInterfaceInGlobal(This,pUnk,riid,pdwCookie);
4633 }
4634 static FORCEINLINE HRESULT IGlobalInterfaceTable_RevokeInterfaceFromGlobal(IGlobalInterfaceTable* This,DWORD dwCookie) {
4635     return This->lpVtbl->RevokeInterfaceFromGlobal(This,dwCookie);
4636 }
4637 static FORCEINLINE HRESULT IGlobalInterfaceTable_GetInterfaceFromGlobal(IGlobalInterfaceTable* This,DWORD dwCookie,REFIID riid,void **ppv) {
4638     return This->lpVtbl->GetInterfaceFromGlobal(This,dwCookie,riid,ppv);
4639 }
4640 #endif
4641 #endif
4642 
4643 #endif
4644 
4645 
4646 #endif  /* __IGlobalInterfaceTable_INTERFACE_DEFINED__ */
4647 
4648 #endif
4649 
4650 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
4651 /*****************************************************************************
4652  * ISynchronize interface
4653  */
4654 #ifndef __ISynchronize_INTERFACE_DEFINED__
4655 #define __ISynchronize_INTERFACE_DEFINED__
4656 
4657 DEFINE_GUID(IID_ISynchronize, 0x00000030, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4658 #if defined(__cplusplus) && !defined(CINTERFACE)
4659 MIDL_INTERFACE("00000030-0000-0000-c000-000000000046")
4660 ISynchronize : public IUnknown
4661 {
4662     virtual HRESULT STDMETHODCALLTYPE Wait(
4663         DWORD dwFlags,
4664         DWORD dwMilliseconds) = 0;
4665 
4666     virtual HRESULT STDMETHODCALLTYPE Signal(
4667         ) = 0;
4668 
4669     virtual HRESULT STDMETHODCALLTYPE Reset(
4670         ) = 0;
4671 
4672 };
4673 #ifdef __CRT_UUID_DECL
4674 __CRT_UUID_DECL(ISynchronize, 0x00000030, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4675 #endif
4676 #else
4677 typedef struct ISynchronizeVtbl {
4678     BEGIN_INTERFACE
4679 
4680     /*** IUnknown methods ***/
4681     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4682         ISynchronize *This,
4683         REFIID riid,
4684         void **ppvObject);
4685 
4686     ULONG (STDMETHODCALLTYPE *AddRef)(
4687         ISynchronize *This);
4688 
4689     ULONG (STDMETHODCALLTYPE *Release)(
4690         ISynchronize *This);
4691 
4692     /*** ISynchronize methods ***/
4693     HRESULT (STDMETHODCALLTYPE *Wait)(
4694         ISynchronize *This,
4695         DWORD dwFlags,
4696         DWORD dwMilliseconds);
4697 
4698     HRESULT (STDMETHODCALLTYPE *Signal)(
4699         ISynchronize *This);
4700 
4701     HRESULT (STDMETHODCALLTYPE *Reset)(
4702         ISynchronize *This);
4703 
4704     END_INTERFACE
4705 } ISynchronizeVtbl;
4706 
4707 interface ISynchronize {
4708     CONST_VTBL ISynchronizeVtbl* lpVtbl;
4709 };
4710 
4711 #ifdef COBJMACROS
4712 #ifndef WIDL_C_INLINE_WRAPPERS
4713 /*** IUnknown methods ***/
4714 #define ISynchronize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4715 #define ISynchronize_AddRef(This) (This)->lpVtbl->AddRef(This)
4716 #define ISynchronize_Release(This) (This)->lpVtbl->Release(This)
4717 /*** ISynchronize methods ***/
4718 #define ISynchronize_Wait(This,dwFlags,dwMilliseconds) (This)->lpVtbl->Wait(This,dwFlags,dwMilliseconds)
4719 #define ISynchronize_Signal(This) (This)->lpVtbl->Signal(This)
4720 #define ISynchronize_Reset(This) (This)->lpVtbl->Reset(This)
4721 #else
4722 /*** IUnknown methods ***/
4723 static FORCEINLINE HRESULT ISynchronize_QueryInterface(ISynchronize* This,REFIID riid,void **ppvObject) {
4724     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4725 }
4726 static FORCEINLINE ULONG ISynchronize_AddRef(ISynchronize* This) {
4727     return This->lpVtbl->AddRef(This);
4728 }
4729 static FORCEINLINE ULONG ISynchronize_Release(ISynchronize* This) {
4730     return This->lpVtbl->Release(This);
4731 }
4732 /*** ISynchronize methods ***/
4733 static FORCEINLINE HRESULT ISynchronize_Wait(ISynchronize* This,DWORD dwFlags,DWORD dwMilliseconds) {
4734     return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
4735 }
4736 static FORCEINLINE HRESULT ISynchronize_Signal(ISynchronize* This) {
4737     return This->lpVtbl->Signal(This);
4738 }
4739 static FORCEINLINE HRESULT ISynchronize_Reset(ISynchronize* This) {
4740     return This->lpVtbl->Reset(This);
4741 }
4742 #endif
4743 #endif
4744 
4745 #endif
4746 
4747 
4748 #endif  /* __ISynchronize_INTERFACE_DEFINED__ */
4749 
4750 
4751 /*****************************************************************************
4752  * ISynchronizeHandle interface
4753  */
4754 #ifndef __ISynchronizeHandle_INTERFACE_DEFINED__
4755 #define __ISynchronizeHandle_INTERFACE_DEFINED__
4756 
4757 DEFINE_GUID(IID_ISynchronizeHandle, 0x00000031, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4758 #if defined(__cplusplus) && !defined(CINTERFACE)
4759 MIDL_INTERFACE("00000031-0000-0000-c000-000000000046")
4760 ISynchronizeHandle : public IUnknown
4761 {
4762     virtual HRESULT STDMETHODCALLTYPE GetHandle(
4763         HANDLE *ph) = 0;
4764 
4765 };
4766 #ifdef __CRT_UUID_DECL
4767 __CRT_UUID_DECL(ISynchronizeHandle, 0x00000031, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4768 #endif
4769 #else
4770 typedef struct ISynchronizeHandleVtbl {
4771     BEGIN_INTERFACE
4772 
4773     /*** IUnknown methods ***/
4774     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4775         ISynchronizeHandle *This,
4776         REFIID riid,
4777         void **ppvObject);
4778 
4779     ULONG (STDMETHODCALLTYPE *AddRef)(
4780         ISynchronizeHandle *This);
4781 
4782     ULONG (STDMETHODCALLTYPE *Release)(
4783         ISynchronizeHandle *This);
4784 
4785     /*** ISynchronizeHandle methods ***/
4786     HRESULT (STDMETHODCALLTYPE *GetHandle)(
4787         ISynchronizeHandle *This,
4788         HANDLE *ph);
4789 
4790     END_INTERFACE
4791 } ISynchronizeHandleVtbl;
4792 
4793 interface ISynchronizeHandle {
4794     CONST_VTBL ISynchronizeHandleVtbl* lpVtbl;
4795 };
4796 
4797 #ifdef COBJMACROS
4798 #ifndef WIDL_C_INLINE_WRAPPERS
4799 /*** IUnknown methods ***/
4800 #define ISynchronizeHandle_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4801 #define ISynchronizeHandle_AddRef(This) (This)->lpVtbl->AddRef(This)
4802 #define ISynchronizeHandle_Release(This) (This)->lpVtbl->Release(This)
4803 /*** ISynchronizeHandle methods ***/
4804 #define ISynchronizeHandle_GetHandle(This,ph) (This)->lpVtbl->GetHandle(This,ph)
4805 #else
4806 /*** IUnknown methods ***/
4807 static FORCEINLINE HRESULT ISynchronizeHandle_QueryInterface(ISynchronizeHandle* This,REFIID riid,void **ppvObject) {
4808     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4809 }
4810 static FORCEINLINE ULONG ISynchronizeHandle_AddRef(ISynchronizeHandle* This) {
4811     return This->lpVtbl->AddRef(This);
4812 }
4813 static FORCEINLINE ULONG ISynchronizeHandle_Release(ISynchronizeHandle* This) {
4814     return This->lpVtbl->Release(This);
4815 }
4816 /*** ISynchronizeHandle methods ***/
4817 static FORCEINLINE HRESULT ISynchronizeHandle_GetHandle(ISynchronizeHandle* This,HANDLE *ph) {
4818     return This->lpVtbl->GetHandle(This,ph);
4819 }
4820 #endif
4821 #endif
4822 
4823 #endif
4824 
4825 
4826 #endif  /* __ISynchronizeHandle_INTERFACE_DEFINED__ */
4827 
4828 
4829 /*****************************************************************************
4830  * ISynchronizeEvent interface
4831  */
4832 #ifndef __ISynchronizeEvent_INTERFACE_DEFINED__
4833 #define __ISynchronizeEvent_INTERFACE_DEFINED__
4834 
4835 DEFINE_GUID(IID_ISynchronizeEvent, 0x00000032, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4836 #if defined(__cplusplus) && !defined(CINTERFACE)
4837 MIDL_INTERFACE("00000032-0000-0000-c000-000000000046")
4838 ISynchronizeEvent : public ISynchronizeHandle
4839 {
4840     virtual HRESULT STDMETHODCALLTYPE SetEventHandle(
4841         HANDLE *ph) = 0;
4842 
4843 };
4844 #ifdef __CRT_UUID_DECL
4845 __CRT_UUID_DECL(ISynchronizeEvent, 0x00000032, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4846 #endif
4847 #else
4848 typedef struct ISynchronizeEventVtbl {
4849     BEGIN_INTERFACE
4850 
4851     /*** IUnknown methods ***/
4852     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4853         ISynchronizeEvent *This,
4854         REFIID riid,
4855         void **ppvObject);
4856 
4857     ULONG (STDMETHODCALLTYPE *AddRef)(
4858         ISynchronizeEvent *This);
4859 
4860     ULONG (STDMETHODCALLTYPE *Release)(
4861         ISynchronizeEvent *This);
4862 
4863     /*** ISynchronizeHandle methods ***/
4864     HRESULT (STDMETHODCALLTYPE *GetHandle)(
4865         ISynchronizeEvent *This,
4866         HANDLE *ph);
4867 
4868     /*** ISynchronizeEvent methods ***/
4869     HRESULT (STDMETHODCALLTYPE *SetEventHandle)(
4870         ISynchronizeEvent *This,
4871         HANDLE *ph);
4872 
4873     END_INTERFACE
4874 } ISynchronizeEventVtbl;
4875 
4876 interface ISynchronizeEvent {
4877     CONST_VTBL ISynchronizeEventVtbl* lpVtbl;
4878 };
4879 
4880 #ifdef COBJMACROS
4881 #ifndef WIDL_C_INLINE_WRAPPERS
4882 /*** IUnknown methods ***/
4883 #define ISynchronizeEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4884 #define ISynchronizeEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
4885 #define ISynchronizeEvent_Release(This) (This)->lpVtbl->Release(This)
4886 /*** ISynchronizeHandle methods ***/
4887 #define ISynchronizeEvent_GetHandle(This,ph) (This)->lpVtbl->GetHandle(This,ph)
4888 /*** ISynchronizeEvent methods ***/
4889 #define ISynchronizeEvent_SetEventHandle(This,ph) (This)->lpVtbl->SetEventHandle(This,ph)
4890 #else
4891 /*** IUnknown methods ***/
4892 static FORCEINLINE HRESULT ISynchronizeEvent_QueryInterface(ISynchronizeEvent* This,REFIID riid,void **ppvObject) {
4893     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4894 }
4895 static FORCEINLINE ULONG ISynchronizeEvent_AddRef(ISynchronizeEvent* This) {
4896     return This->lpVtbl->AddRef(This);
4897 }
4898 static FORCEINLINE ULONG ISynchronizeEvent_Release(ISynchronizeEvent* This) {
4899     return This->lpVtbl->Release(This);
4900 }
4901 /*** ISynchronizeHandle methods ***/
4902 static FORCEINLINE HRESULT ISynchronizeEvent_GetHandle(ISynchronizeEvent* This,HANDLE *ph) {
4903     return This->lpVtbl->GetHandle(This,ph);
4904 }
4905 /*** ISynchronizeEvent methods ***/
4906 static FORCEINLINE HRESULT ISynchronizeEvent_SetEventHandle(ISynchronizeEvent* This,HANDLE *ph) {
4907     return This->lpVtbl->SetEventHandle(This,ph);
4908 }
4909 #endif
4910 #endif
4911 
4912 #endif
4913 
4914 
4915 #endif  /* __ISynchronizeEvent_INTERFACE_DEFINED__ */
4916 
4917 
4918 /*****************************************************************************
4919  * ISynchronizeContainer interface
4920  */
4921 #ifndef __ISynchronizeContainer_INTERFACE_DEFINED__
4922 #define __ISynchronizeContainer_INTERFACE_DEFINED__
4923 
4924 DEFINE_GUID(IID_ISynchronizeContainer, 0x00000033, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4925 #if defined(__cplusplus) && !defined(CINTERFACE)
4926 MIDL_INTERFACE("00000033-0000-0000-c000-000000000046")
4927 ISynchronizeContainer : public IUnknown
4928 {
4929     virtual HRESULT STDMETHODCALLTYPE AddSynchronize(
4930         ISynchronize *pSync) = 0;
4931 
4932     virtual HRESULT STDMETHODCALLTYPE WaitMultiple(
4933         DWORD dwFlags,
4934         DWORD dwTimeOut,
4935         ISynchronize **ppSync) = 0;
4936 
4937 };
4938 #ifdef __CRT_UUID_DECL
4939 __CRT_UUID_DECL(ISynchronizeContainer, 0x00000033, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4940 #endif
4941 #else
4942 typedef struct ISynchronizeContainerVtbl {
4943     BEGIN_INTERFACE
4944 
4945     /*** IUnknown methods ***/
4946     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4947         ISynchronizeContainer *This,
4948         REFIID riid,
4949         void **ppvObject);
4950 
4951     ULONG (STDMETHODCALLTYPE *AddRef)(
4952         ISynchronizeContainer *This);
4953 
4954     ULONG (STDMETHODCALLTYPE *Release)(
4955         ISynchronizeContainer *This);
4956 
4957     /*** ISynchronizeContainer methods ***/
4958     HRESULT (STDMETHODCALLTYPE *AddSynchronize)(
4959         ISynchronizeContainer *This,
4960         ISynchronize *pSync);
4961 
4962     HRESULT (STDMETHODCALLTYPE *WaitMultiple)(
4963         ISynchronizeContainer *This,
4964         DWORD dwFlags,
4965         DWORD dwTimeOut,
4966         ISynchronize **ppSync);
4967 
4968     END_INTERFACE
4969 } ISynchronizeContainerVtbl;
4970 
4971 interface ISynchronizeContainer {
4972     CONST_VTBL ISynchronizeContainerVtbl* lpVtbl;
4973 };
4974 
4975 #ifdef COBJMACROS
4976 #ifndef WIDL_C_INLINE_WRAPPERS
4977 /*** IUnknown methods ***/
4978 #define ISynchronizeContainer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4979 #define ISynchronizeContainer_AddRef(This) (This)->lpVtbl->AddRef(This)
4980 #define ISynchronizeContainer_Release(This) (This)->lpVtbl->Release(This)
4981 /*** ISynchronizeContainer methods ***/
4982 #define ISynchronizeContainer_AddSynchronize(This,pSync) (This)->lpVtbl->AddSynchronize(This,pSync)
4983 #define ISynchronizeContainer_WaitMultiple(This,dwFlags,dwTimeOut,ppSync) (This)->lpVtbl->WaitMultiple(This,dwFlags,dwTimeOut,ppSync)
4984 #else
4985 /*** IUnknown methods ***/
4986 static FORCEINLINE HRESULT ISynchronizeContainer_QueryInterface(ISynchronizeContainer* This,REFIID riid,void **ppvObject) {
4987     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4988 }
4989 static FORCEINLINE ULONG ISynchronizeContainer_AddRef(ISynchronizeContainer* This) {
4990     return This->lpVtbl->AddRef(This);
4991 }
4992 static FORCEINLINE ULONG ISynchronizeContainer_Release(ISynchronizeContainer* This) {
4993     return This->lpVtbl->Release(This);
4994 }
4995 /*** ISynchronizeContainer methods ***/
4996 static FORCEINLINE HRESULT ISynchronizeContainer_AddSynchronize(ISynchronizeContainer* This,ISynchronize *pSync) {
4997     return This->lpVtbl->AddSynchronize(This,pSync);
4998 }
4999 static FORCEINLINE HRESULT ISynchronizeContainer_WaitMultiple(ISynchronizeContainer* This,DWORD dwFlags,DWORD dwTimeOut,ISynchronize **ppSync) {
5000     return This->lpVtbl->WaitMultiple(This,dwFlags,dwTimeOut,ppSync);
5001 }
5002 #endif
5003 #endif
5004 
5005 #endif
5006 
5007 
5008 #endif  /* __ISynchronizeContainer_INTERFACE_DEFINED__ */
5009 
5010 
5011 /*****************************************************************************
5012  * ISynchronizeMutex interface
5013  */
5014 #ifndef __ISynchronizeMutex_INTERFACE_DEFINED__
5015 #define __ISynchronizeMutex_INTERFACE_DEFINED__
5016 
5017 DEFINE_GUID(IID_ISynchronizeMutex, 0x00000025, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5018 #if defined(__cplusplus) && !defined(CINTERFACE)
5019 MIDL_INTERFACE("00000025-0000-0000-c000-000000000046")
5020 ISynchronizeMutex : public ISynchronize
5021 {
5022     virtual HRESULT STDMETHODCALLTYPE ReleaseMutex(
5023         ) = 0;
5024 
5025 };
5026 #ifdef __CRT_UUID_DECL
5027 __CRT_UUID_DECL(ISynchronizeMutex, 0x00000025, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5028 #endif
5029 #else
5030 typedef struct ISynchronizeMutexVtbl {
5031     BEGIN_INTERFACE
5032 
5033     /*** IUnknown methods ***/
5034     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5035         ISynchronizeMutex *This,
5036         REFIID riid,
5037         void **ppvObject);
5038 
5039     ULONG (STDMETHODCALLTYPE *AddRef)(
5040         ISynchronizeMutex *This);
5041 
5042     ULONG (STDMETHODCALLTYPE *Release)(
5043         ISynchronizeMutex *This);
5044 
5045     /*** ISynchronize methods ***/
5046     HRESULT (STDMETHODCALLTYPE *Wait)(
5047         ISynchronizeMutex *This,
5048         DWORD dwFlags,
5049         DWORD dwMilliseconds);
5050 
5051     HRESULT (STDMETHODCALLTYPE *Signal)(
5052         ISynchronizeMutex *This);
5053 
5054     HRESULT (STDMETHODCALLTYPE *Reset)(
5055         ISynchronizeMutex *This);
5056 
5057     /*** ISynchronizeMutex methods ***/
5058     HRESULT (STDMETHODCALLTYPE *ReleaseMutex)(
5059         ISynchronizeMutex *This);
5060 
5061     END_INTERFACE
5062 } ISynchronizeMutexVtbl;
5063 
5064 interface ISynchronizeMutex {
5065     CONST_VTBL ISynchronizeMutexVtbl* lpVtbl;
5066 };
5067 
5068 #ifdef COBJMACROS
5069 #ifndef WIDL_C_INLINE_WRAPPERS
5070 /*** IUnknown methods ***/
5071 #define ISynchronizeMutex_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5072 #define ISynchronizeMutex_AddRef(This) (This)->lpVtbl->AddRef(This)
5073 #define ISynchronizeMutex_Release(This) (This)->lpVtbl->Release(This)
5074 /*** ISynchronize methods ***/
5075 #define ISynchronizeMutex_Wait(This,dwFlags,dwMilliseconds) (This)->lpVtbl->Wait(This,dwFlags,dwMilliseconds)
5076 #define ISynchronizeMutex_Signal(This) (This)->lpVtbl->Signal(This)
5077 #define ISynchronizeMutex_Reset(This) (This)->lpVtbl->Reset(This)
5078 /*** ISynchronizeMutex methods ***/
5079 #define ISynchronizeMutex_ReleaseMutex(This) (This)->lpVtbl->ReleaseMutex(This)
5080 #else
5081 /*** IUnknown methods ***/
5082 static FORCEINLINE HRESULT ISynchronizeMutex_QueryInterface(ISynchronizeMutex* This,REFIID riid,void **ppvObject) {
5083     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5084 }
5085 static FORCEINLINE ULONG ISynchronizeMutex_AddRef(ISynchronizeMutex* This) {
5086     return This->lpVtbl->AddRef(This);
5087 }
5088 static FORCEINLINE ULONG ISynchronizeMutex_Release(ISynchronizeMutex* This) {
5089     return This->lpVtbl->Release(This);
5090 }
5091 /*** ISynchronize methods ***/
5092 static FORCEINLINE HRESULT ISynchronizeMutex_Wait(ISynchronizeMutex* This,DWORD dwFlags,DWORD dwMilliseconds) {
5093     return This->lpVtbl->Wait(This,dwFlags,dwMilliseconds);
5094 }
5095 static FORCEINLINE HRESULT ISynchronizeMutex_Signal(ISynchronizeMutex* This) {
5096     return This->lpVtbl->Signal(This);
5097 }
5098 static FORCEINLINE HRESULT ISynchronizeMutex_Reset(ISynchronizeMutex* This) {
5099     return This->lpVtbl->Reset(This);
5100 }
5101 /*** ISynchronizeMutex methods ***/
5102 static FORCEINLINE HRESULT ISynchronizeMutex_ReleaseMutex(ISynchronizeMutex* This) {
5103     return This->lpVtbl->ReleaseMutex(This);
5104 }
5105 #endif
5106 #endif
5107 
5108 #endif
5109 
5110 
5111 #endif  /* __ISynchronizeMutex_INTERFACE_DEFINED__ */
5112 
5113 
5114 /*****************************************************************************
5115  * ICancelMethodCalls interface
5116  */
5117 #ifndef __ICancelMethodCalls_INTERFACE_DEFINED__
5118 #define __ICancelMethodCalls_INTERFACE_DEFINED__
5119 
5120 typedef ICancelMethodCalls *LPCANCELMETHODCALLS;
5121 
5122 DEFINE_GUID(IID_ICancelMethodCalls, 0x00000029, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5123 #if defined(__cplusplus) && !defined(CINTERFACE)
5124 MIDL_INTERFACE("00000029-0000-0000-c000-000000000046")
5125 ICancelMethodCalls : public IUnknown
5126 {
5127     virtual HRESULT STDMETHODCALLTYPE Cancel(
5128         ULONG ulSeconds) = 0;
5129 
5130     virtual HRESULT STDMETHODCALLTYPE TestCancel(
5131         ) = 0;
5132 
5133 };
5134 #ifdef __CRT_UUID_DECL
5135 __CRT_UUID_DECL(ICancelMethodCalls, 0x00000029, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5136 #endif
5137 #else
5138 typedef struct ICancelMethodCallsVtbl {
5139     BEGIN_INTERFACE
5140 
5141     /*** IUnknown methods ***/
5142     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5143         ICancelMethodCalls *This,
5144         REFIID riid,
5145         void **ppvObject);
5146 
5147     ULONG (STDMETHODCALLTYPE *AddRef)(
5148         ICancelMethodCalls *This);
5149 
5150     ULONG (STDMETHODCALLTYPE *Release)(
5151         ICancelMethodCalls *This);
5152 
5153     /*** ICancelMethodCalls methods ***/
5154     HRESULT (STDMETHODCALLTYPE *Cancel)(
5155         ICancelMethodCalls *This,
5156         ULONG ulSeconds);
5157 
5158     HRESULT (STDMETHODCALLTYPE *TestCancel)(
5159         ICancelMethodCalls *This);
5160 
5161     END_INTERFACE
5162 } ICancelMethodCallsVtbl;
5163 
5164 interface ICancelMethodCalls {
5165     CONST_VTBL ICancelMethodCallsVtbl* lpVtbl;
5166 };
5167 
5168 #ifdef COBJMACROS
5169 #ifndef WIDL_C_INLINE_WRAPPERS
5170 /*** IUnknown methods ***/
5171 #define ICancelMethodCalls_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5172 #define ICancelMethodCalls_AddRef(This) (This)->lpVtbl->AddRef(This)
5173 #define ICancelMethodCalls_Release(This) (This)->lpVtbl->Release(This)
5174 /*** ICancelMethodCalls methods ***/
5175 #define ICancelMethodCalls_Cancel(This,ulSeconds) (This)->lpVtbl->Cancel(This,ulSeconds)
5176 #define ICancelMethodCalls_TestCancel(This) (This)->lpVtbl->TestCancel(This)
5177 #else
5178 /*** IUnknown methods ***/
5179 static FORCEINLINE HRESULT ICancelMethodCalls_QueryInterface(ICancelMethodCalls* This,REFIID riid,void **ppvObject) {
5180     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5181 }
5182 static FORCEINLINE ULONG ICancelMethodCalls_AddRef(ICancelMethodCalls* This) {
5183     return This->lpVtbl->AddRef(This);
5184 }
5185 static FORCEINLINE ULONG ICancelMethodCalls_Release(ICancelMethodCalls* This) {
5186     return This->lpVtbl->Release(This);
5187 }
5188 /*** ICancelMethodCalls methods ***/
5189 static FORCEINLINE HRESULT ICancelMethodCalls_Cancel(ICancelMethodCalls* This,ULONG ulSeconds) {
5190     return This->lpVtbl->Cancel(This,ulSeconds);
5191 }
5192 static FORCEINLINE HRESULT ICancelMethodCalls_TestCancel(ICancelMethodCalls* This) {
5193     return This->lpVtbl->TestCancel(This);
5194 }
5195 #endif
5196 #endif
5197 
5198 #endif
5199 
5200 
5201 #endif  /* __ICancelMethodCalls_INTERFACE_DEFINED__ */
5202 
5203 
5204 /*****************************************************************************
5205  * IAsyncManager interface
5206  */
5207 #ifndef __IAsyncManager_INTERFACE_DEFINED__
5208 #define __IAsyncManager_INTERFACE_DEFINED__
5209 
5210 typedef enum tagDCOM_CALL_STATE {
5211     DCOM_NONE = 0x0,
5212     DCOM_CALL_COMPLETE = 0x1,
5213     DCOM_CALL_CANCELED = 0x2
5214 } DCOM_CALL_STATE;
5215 
5216 DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5217 #if defined(__cplusplus) && !defined(CINTERFACE)
5218 MIDL_INTERFACE("0000002a-0000-0000-c000-000000000046")
5219 IAsyncManager : public IUnknown
5220 {
5221     virtual HRESULT STDMETHODCALLTYPE CompleteCall(
5222         HRESULT Result) = 0;
5223 
5224     virtual HRESULT STDMETHODCALLTYPE GetCallContext(
5225         REFIID riid,
5226         void **pInterface) = 0;
5227 
5228     virtual HRESULT STDMETHODCALLTYPE GetState(
5229         ULONG *pulStateFlags) = 0;
5230 
5231 };
5232 #ifdef __CRT_UUID_DECL
5233 __CRT_UUID_DECL(IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5234 #endif
5235 #else
5236 typedef struct IAsyncManagerVtbl {
5237     BEGIN_INTERFACE
5238 
5239     /*** IUnknown methods ***/
5240     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5241         IAsyncManager *This,
5242         REFIID riid,
5243         void **ppvObject);
5244 
5245     ULONG (STDMETHODCALLTYPE *AddRef)(
5246         IAsyncManager *This);
5247 
5248     ULONG (STDMETHODCALLTYPE *Release)(
5249         IAsyncManager *This);
5250 
5251     /*** IAsyncManager methods ***/
5252     HRESULT (STDMETHODCALLTYPE *CompleteCall)(
5253         IAsyncManager *This,
5254         HRESULT Result);
5255 
5256     HRESULT (STDMETHODCALLTYPE *GetCallContext)(
5257         IAsyncManager *This,
5258         REFIID riid,
5259         void **pInterface);
5260 
5261     HRESULT (STDMETHODCALLTYPE *GetState)(
5262         IAsyncManager *This,
5263         ULONG *pulStateFlags);
5264 
5265     END_INTERFACE
5266 } IAsyncManagerVtbl;
5267 
5268 interface IAsyncManager {
5269     CONST_VTBL IAsyncManagerVtbl* lpVtbl;
5270 };
5271 
5272 #ifdef COBJMACROS
5273 #ifndef WIDL_C_INLINE_WRAPPERS
5274 /*** IUnknown methods ***/
5275 #define IAsyncManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5276 #define IAsyncManager_AddRef(This) (This)->lpVtbl->AddRef(This)
5277 #define IAsyncManager_Release(This) (This)->lpVtbl->Release(This)
5278 /*** IAsyncManager methods ***/
5279 #define IAsyncManager_CompleteCall(This,Result) (This)->lpVtbl->CompleteCall(This,Result)
5280 #define IAsyncManager_GetCallContext(This,riid,pInterface) (This)->lpVtbl->GetCallContext(This,riid,pInterface)
5281 #define IAsyncManager_GetState(This,pulStateFlags) (This)->lpVtbl->GetState(This,pulStateFlags)
5282 #else
5283 /*** IUnknown methods ***/
5284 static FORCEINLINE HRESULT IAsyncManager_QueryInterface(IAsyncManager* This,REFIID riid,void **ppvObject) {
5285     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5286 }
5287 static FORCEINLINE ULONG IAsyncManager_AddRef(IAsyncManager* This) {
5288     return This->lpVtbl->AddRef(This);
5289 }
5290 static FORCEINLINE ULONG IAsyncManager_Release(IAsyncManager* This) {
5291     return This->lpVtbl->Release(This);
5292 }
5293 /*** IAsyncManager methods ***/
5294 static FORCEINLINE HRESULT IAsyncManager_CompleteCall(IAsyncManager* This,HRESULT Result) {
5295     return This->lpVtbl->CompleteCall(This,Result);
5296 }
5297 static FORCEINLINE HRESULT IAsyncManager_GetCallContext(IAsyncManager* This,REFIID riid,void **pInterface) {
5298     return This->lpVtbl->GetCallContext(This,riid,pInterface);
5299 }
5300 static FORCEINLINE HRESULT IAsyncManager_GetState(IAsyncManager* This,ULONG *pulStateFlags) {
5301     return This->lpVtbl->GetState(This,pulStateFlags);
5302 }
5303 #endif
5304 #endif
5305 
5306 #endif
5307 
5308 
5309 #endif  /* __IAsyncManager_INTERFACE_DEFINED__ */
5310 
5311 
5312 /*****************************************************************************
5313  * ICallFactory interface
5314  */
5315 #ifndef __ICallFactory_INTERFACE_DEFINED__
5316 #define __ICallFactory_INTERFACE_DEFINED__
5317 
5318 DEFINE_GUID(IID_ICallFactory, 0x1c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
5319 #if defined(__cplusplus) && !defined(CINTERFACE)
5320 MIDL_INTERFACE("1c733a30-2a1c-11ce-ade5-00aa0044773d")
5321 ICallFactory : public IUnknown
5322 {
5323     virtual HRESULT STDMETHODCALLTYPE CreateCall(
5324         REFIID riid,
5325         IUnknown *pCtrlUnk,
5326         REFIID riid2,
5327         IUnknown **ppv) = 0;
5328 
5329 };
5330 #ifdef __CRT_UUID_DECL
5331 __CRT_UUID_DECL(ICallFactory, 0x1c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d)
5332 #endif
5333 #else
5334 typedef struct ICallFactoryVtbl {
5335     BEGIN_INTERFACE
5336 
5337     /*** IUnknown methods ***/
5338     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5339         ICallFactory *This,
5340         REFIID riid,
5341         void **ppvObject);
5342 
5343     ULONG (STDMETHODCALLTYPE *AddRef)(
5344         ICallFactory *This);
5345 
5346     ULONG (STDMETHODCALLTYPE *Release)(
5347         ICallFactory *This);
5348 
5349     /*** ICallFactory methods ***/
5350     HRESULT (STDMETHODCALLTYPE *CreateCall)(
5351         ICallFactory *This,
5352         REFIID riid,
5353         IUnknown *pCtrlUnk,
5354         REFIID riid2,
5355         IUnknown **ppv);
5356 
5357     END_INTERFACE
5358 } ICallFactoryVtbl;
5359 
5360 interface ICallFactory {
5361     CONST_VTBL ICallFactoryVtbl* lpVtbl;
5362 };
5363 
5364 #ifdef COBJMACROS
5365 #ifndef WIDL_C_INLINE_WRAPPERS
5366 /*** IUnknown methods ***/
5367 #define ICallFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5368 #define ICallFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
5369 #define ICallFactory_Release(This) (This)->lpVtbl->Release(This)
5370 /*** ICallFactory methods ***/
5371 #define ICallFactory_CreateCall(This,riid,pCtrlUnk,riid2,ppv) (This)->lpVtbl->CreateCall(This,riid,pCtrlUnk,riid2,ppv)
5372 #else
5373 /*** IUnknown methods ***/
5374 static FORCEINLINE HRESULT ICallFactory_QueryInterface(ICallFactory* This,REFIID riid,void **ppvObject) {
5375     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5376 }
5377 static FORCEINLINE ULONG ICallFactory_AddRef(ICallFactory* This) {
5378     return This->lpVtbl->AddRef(This);
5379 }
5380 static FORCEINLINE ULONG ICallFactory_Release(ICallFactory* This) {
5381     return This->lpVtbl->Release(This);
5382 }
5383 /*** ICallFactory methods ***/
5384 static FORCEINLINE HRESULT ICallFactory_CreateCall(ICallFactory* This,REFIID riid,IUnknown *pCtrlUnk,REFIID riid2,IUnknown **ppv) {
5385     return This->lpVtbl->CreateCall(This,riid,pCtrlUnk,riid2,ppv);
5386 }
5387 #endif
5388 #endif
5389 
5390 #endif
5391 
5392 
5393 #endif  /* __ICallFactory_INTERFACE_DEFINED__ */
5394 
5395 
5396 /*****************************************************************************
5397  * IRpcHelper interface
5398  */
5399 #ifndef __IRpcHelper_INTERFACE_DEFINED__
5400 #define __IRpcHelper_INTERFACE_DEFINED__
5401 
5402 DEFINE_GUID(IID_IRpcHelper, 0x00000149, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5403 #if defined(__cplusplus) && !defined(CINTERFACE)
5404 MIDL_INTERFACE("00000149-0000-0000-c000-000000000046")
5405 IRpcHelper : public IUnknown
5406 {
5407     virtual HRESULT STDMETHODCALLTYPE GetDCOMProtocolVersion(
5408         DWORD *pComVersion) = 0;
5409 
5410     virtual HRESULT STDMETHODCALLTYPE GetIIDFromOBJREF(
5411         void *pObjRef,
5412         IID **piid) = 0;
5413 
5414 };
5415 #ifdef __CRT_UUID_DECL
5416 __CRT_UUID_DECL(IRpcHelper, 0x00000149, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5417 #endif
5418 #else
5419 typedef struct IRpcHelperVtbl {
5420     BEGIN_INTERFACE
5421 
5422     /*** IUnknown methods ***/
5423     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5424         IRpcHelper *This,
5425         REFIID riid,
5426         void **ppvObject);
5427 
5428     ULONG (STDMETHODCALLTYPE *AddRef)(
5429         IRpcHelper *This);
5430 
5431     ULONG (STDMETHODCALLTYPE *Release)(
5432         IRpcHelper *This);
5433 
5434     /*** IRpcHelper methods ***/
5435     HRESULT (STDMETHODCALLTYPE *GetDCOMProtocolVersion)(
5436         IRpcHelper *This,
5437         DWORD *pComVersion);
5438 
5439     HRESULT (STDMETHODCALLTYPE *GetIIDFromOBJREF)(
5440         IRpcHelper *This,
5441         void *pObjRef,
5442         IID **piid);
5443 
5444     END_INTERFACE
5445 } IRpcHelperVtbl;
5446 
5447 interface IRpcHelper {
5448     CONST_VTBL IRpcHelperVtbl* lpVtbl;
5449 };
5450 
5451 #ifdef COBJMACROS
5452 #ifndef WIDL_C_INLINE_WRAPPERS
5453 /*** IUnknown methods ***/
5454 #define IRpcHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5455 #define IRpcHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
5456 #define IRpcHelper_Release(This) (This)->lpVtbl->Release(This)
5457 /*** IRpcHelper methods ***/
5458 #define IRpcHelper_GetDCOMProtocolVersion(This,pComVersion) (This)->lpVtbl->GetDCOMProtocolVersion(This,pComVersion)
5459 #define IRpcHelper_GetIIDFromOBJREF(This,pObjRef,piid) (This)->lpVtbl->GetIIDFromOBJREF(This,pObjRef,piid)
5460 #else
5461 /*** IUnknown methods ***/
5462 static FORCEINLINE HRESULT IRpcHelper_QueryInterface(IRpcHelper* This,REFIID riid,void **ppvObject) {
5463     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5464 }
5465 static FORCEINLINE ULONG IRpcHelper_AddRef(IRpcHelper* This) {
5466     return This->lpVtbl->AddRef(This);
5467 }
5468 static FORCEINLINE ULONG IRpcHelper_Release(IRpcHelper* This) {
5469     return This->lpVtbl->Release(This);
5470 }
5471 /*** IRpcHelper methods ***/
5472 static FORCEINLINE HRESULT IRpcHelper_GetDCOMProtocolVersion(IRpcHelper* This,DWORD *pComVersion) {
5473     return This->lpVtbl->GetDCOMProtocolVersion(This,pComVersion);
5474 }
5475 static FORCEINLINE HRESULT IRpcHelper_GetIIDFromOBJREF(IRpcHelper* This,void *pObjRef,IID **piid) {
5476     return This->lpVtbl->GetIIDFromOBJREF(This,pObjRef,piid);
5477 }
5478 #endif
5479 #endif
5480 
5481 #endif
5482 
5483 
5484 #endif  /* __IRpcHelper_INTERFACE_DEFINED__ */
5485 
5486 
5487 /*****************************************************************************
5488  * IReleaseMarshalBuffers interface
5489  */
5490 #ifndef __IReleaseMarshalBuffers_INTERFACE_DEFINED__
5491 #define __IReleaseMarshalBuffers_INTERFACE_DEFINED__
5492 
5493 DEFINE_GUID(IID_IReleaseMarshalBuffers, 0xeb0cb9e8, 0x7996, 0x11d2, 0x87,0x2e, 0x00,0x00,0xf8,0x08,0x08,0x59);
5494 #if defined(__cplusplus) && !defined(CINTERFACE)
5495 MIDL_INTERFACE("eb0cb9e8-7996-11d2-872e-0000f8080859")
5496 IReleaseMarshalBuffers : public IUnknown
5497 {
5498     virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalBuffer(
5499         RPCOLEMESSAGE *pMsg,
5500         DWORD dwFlags,
5501         IUnknown *pChnl) = 0;
5502 
5503 };
5504 #ifdef __CRT_UUID_DECL
5505 __CRT_UUID_DECL(IReleaseMarshalBuffers, 0xeb0cb9e8, 0x7996, 0x11d2, 0x87,0x2e, 0x00,0x00,0xf8,0x08,0x08,0x59)
5506 #endif
5507 #else
5508 typedef struct IReleaseMarshalBuffersVtbl {
5509     BEGIN_INTERFACE
5510 
5511     /*** IUnknown methods ***/
5512     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5513         IReleaseMarshalBuffers *This,
5514         REFIID riid,
5515         void **ppvObject);
5516 
5517     ULONG (STDMETHODCALLTYPE *AddRef)(
5518         IReleaseMarshalBuffers *This);
5519 
5520     ULONG (STDMETHODCALLTYPE *Release)(
5521         IReleaseMarshalBuffers *This);
5522 
5523     /*** IReleaseMarshalBuffers methods ***/
5524     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalBuffer)(
5525         IReleaseMarshalBuffers *This,
5526         RPCOLEMESSAGE *pMsg,
5527         DWORD dwFlags,
5528         IUnknown *pChnl);
5529 
5530     END_INTERFACE
5531 } IReleaseMarshalBuffersVtbl;
5532 
5533 interface IReleaseMarshalBuffers {
5534     CONST_VTBL IReleaseMarshalBuffersVtbl* lpVtbl;
5535 };
5536 
5537 #ifdef COBJMACROS
5538 #ifndef WIDL_C_INLINE_WRAPPERS
5539 /*** IUnknown methods ***/
5540 #define IReleaseMarshalBuffers_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5541 #define IReleaseMarshalBuffers_AddRef(This) (This)->lpVtbl->AddRef(This)
5542 #define IReleaseMarshalBuffers_Release(This) (This)->lpVtbl->Release(This)
5543 /*** IReleaseMarshalBuffers methods ***/
5544 #define IReleaseMarshalBuffers_ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl) (This)->lpVtbl->ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl)
5545 #else
5546 /*** IUnknown methods ***/
5547 static FORCEINLINE HRESULT IReleaseMarshalBuffers_QueryInterface(IReleaseMarshalBuffers* This,REFIID riid,void **ppvObject) {
5548     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5549 }
5550 static FORCEINLINE ULONG IReleaseMarshalBuffers_AddRef(IReleaseMarshalBuffers* This) {
5551     return This->lpVtbl->AddRef(This);
5552 }
5553 static FORCEINLINE ULONG IReleaseMarshalBuffers_Release(IReleaseMarshalBuffers* This) {
5554     return This->lpVtbl->Release(This);
5555 }
5556 /*** IReleaseMarshalBuffers methods ***/
5557 static FORCEINLINE HRESULT IReleaseMarshalBuffers_ReleaseMarshalBuffer(IReleaseMarshalBuffers* This,RPCOLEMESSAGE *pMsg,DWORD dwFlags,IUnknown *pChnl) {
5558     return This->lpVtbl->ReleaseMarshalBuffer(This,pMsg,dwFlags,pChnl);
5559 }
5560 #endif
5561 #endif
5562 
5563 #endif
5564 
5565 
5566 #endif  /* __IReleaseMarshalBuffers_INTERFACE_DEFINED__ */
5567 
5568 
5569 /*****************************************************************************
5570  * IWaitMultiple interface
5571  */
5572 #ifndef __IWaitMultiple_INTERFACE_DEFINED__
5573 #define __IWaitMultiple_INTERFACE_DEFINED__
5574 
5575 DEFINE_GUID(IID_IWaitMultiple, 0x0000002b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5576 #if defined(__cplusplus) && !defined(CINTERFACE)
5577 MIDL_INTERFACE("0000002b-0000-0000-c000-000000000046")
5578 IWaitMultiple : public IUnknown
5579 {
5580     virtual HRESULT STDMETHODCALLTYPE WaitMultiple(
5581         DWORD timeout,
5582         ISynchronize **pSync) = 0;
5583 
5584     virtual HRESULT STDMETHODCALLTYPE AddSynchronize(
5585         ISynchronize *pSync) = 0;
5586 
5587 };
5588 #ifdef __CRT_UUID_DECL
5589 __CRT_UUID_DECL(IWaitMultiple, 0x0000002b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5590 #endif
5591 #else
5592 typedef struct IWaitMultipleVtbl {
5593     BEGIN_INTERFACE
5594 
5595     /*** IUnknown methods ***/
5596     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5597         IWaitMultiple *This,
5598         REFIID riid,
5599         void **ppvObject);
5600 
5601     ULONG (STDMETHODCALLTYPE *AddRef)(
5602         IWaitMultiple *This);
5603 
5604     ULONG (STDMETHODCALLTYPE *Release)(
5605         IWaitMultiple *This);
5606 
5607     /*** IWaitMultiple methods ***/
5608     HRESULT (STDMETHODCALLTYPE *WaitMultiple)(
5609         IWaitMultiple *This,
5610         DWORD timeout,
5611         ISynchronize **pSync);
5612 
5613     HRESULT (STDMETHODCALLTYPE *AddSynchronize)(
5614         IWaitMultiple *This,
5615         ISynchronize *pSync);
5616 
5617     END_INTERFACE
5618 } IWaitMultipleVtbl;
5619 
5620 interface IWaitMultiple {
5621     CONST_VTBL IWaitMultipleVtbl* lpVtbl;
5622 };
5623 
5624 #ifdef COBJMACROS
5625 #ifndef WIDL_C_INLINE_WRAPPERS
5626 /*** IUnknown methods ***/
5627 #define IWaitMultiple_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5628 #define IWaitMultiple_AddRef(This) (This)->lpVtbl->AddRef(This)
5629 #define IWaitMultiple_Release(This) (This)->lpVtbl->Release(This)
5630 /*** IWaitMultiple methods ***/
5631 #define IWaitMultiple_WaitMultiple(This,timeout,pSync) (This)->lpVtbl->WaitMultiple(This,timeout,pSync)
5632 #define IWaitMultiple_AddSynchronize(This,pSync) (This)->lpVtbl->AddSynchronize(This,pSync)
5633 #else
5634 /*** IUnknown methods ***/
5635 static FORCEINLINE HRESULT IWaitMultiple_QueryInterface(IWaitMultiple* This,REFIID riid,void **ppvObject) {
5636     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5637 }
5638 static FORCEINLINE ULONG IWaitMultiple_AddRef(IWaitMultiple* This) {
5639     return This->lpVtbl->AddRef(This);
5640 }
5641 static FORCEINLINE ULONG IWaitMultiple_Release(IWaitMultiple* This) {
5642     return This->lpVtbl->Release(This);
5643 }
5644 /*** IWaitMultiple methods ***/
5645 static FORCEINLINE HRESULT IWaitMultiple_WaitMultiple(IWaitMultiple* This,DWORD timeout,ISynchronize **pSync) {
5646     return This->lpVtbl->WaitMultiple(This,timeout,pSync);
5647 }
5648 static FORCEINLINE HRESULT IWaitMultiple_AddSynchronize(IWaitMultiple* This,ISynchronize *pSync) {
5649     return This->lpVtbl->AddSynchronize(This,pSync);
5650 }
5651 #endif
5652 #endif
5653 
5654 #endif
5655 
5656 
5657 #endif  /* __IWaitMultiple_INTERFACE_DEFINED__ */
5658 
5659 
5660 /*****************************************************************************
5661  * IAddrTrackingControl interface
5662  */
5663 #ifndef __IAddrTrackingControl_INTERFACE_DEFINED__
5664 #define __IAddrTrackingControl_INTERFACE_DEFINED__
5665 
5666 typedef IAddrTrackingControl *LPADDRTRACKINGCONTROL;
5667 DEFINE_GUID(IID_IAddrTrackingControl, 0x00000147, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5668 #if defined(__cplusplus) && !defined(CINTERFACE)
5669 MIDL_INTERFACE("00000147-0000-0000-c000-000000000046")
5670 IAddrTrackingControl : public IUnknown
5671 {
5672     virtual HRESULT STDMETHODCALLTYPE EnableCOMDynamicAddrTracking(
5673         ) = 0;
5674 
5675     virtual HRESULT STDMETHODCALLTYPE DisableCOMDynamicAddrTracking(
5676         ) = 0;
5677 
5678 };
5679 #ifdef __CRT_UUID_DECL
5680 __CRT_UUID_DECL(IAddrTrackingControl, 0x00000147, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5681 #endif
5682 #else
5683 typedef struct IAddrTrackingControlVtbl {
5684     BEGIN_INTERFACE
5685 
5686     /*** IUnknown methods ***/
5687     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5688         IAddrTrackingControl *This,
5689         REFIID riid,
5690         void **ppvObject);
5691 
5692     ULONG (STDMETHODCALLTYPE *AddRef)(
5693         IAddrTrackingControl *This);
5694 
5695     ULONG (STDMETHODCALLTYPE *Release)(
5696         IAddrTrackingControl *This);
5697 
5698     /*** IAddrTrackingControl methods ***/
5699     HRESULT (STDMETHODCALLTYPE *EnableCOMDynamicAddrTracking)(
5700         IAddrTrackingControl *This);
5701 
5702     HRESULT (STDMETHODCALLTYPE *DisableCOMDynamicAddrTracking)(
5703         IAddrTrackingControl *This);
5704 
5705     END_INTERFACE
5706 } IAddrTrackingControlVtbl;
5707 
5708 interface IAddrTrackingControl {
5709     CONST_VTBL IAddrTrackingControlVtbl* lpVtbl;
5710 };
5711 
5712 #ifdef COBJMACROS
5713 #ifndef WIDL_C_INLINE_WRAPPERS
5714 /*** IUnknown methods ***/
5715 #define IAddrTrackingControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5716 #define IAddrTrackingControl_AddRef(This) (This)->lpVtbl->AddRef(This)
5717 #define IAddrTrackingControl_Release(This) (This)->lpVtbl->Release(This)
5718 /*** IAddrTrackingControl methods ***/
5719 #define IAddrTrackingControl_EnableCOMDynamicAddrTracking(This) (This)->lpVtbl->EnableCOMDynamicAddrTracking(This)
5720 #define IAddrTrackingControl_DisableCOMDynamicAddrTracking(This) (This)->lpVtbl->DisableCOMDynamicAddrTracking(This)
5721 #else
5722 /*** IUnknown methods ***/
5723 static FORCEINLINE HRESULT IAddrTrackingControl_QueryInterface(IAddrTrackingControl* This,REFIID riid,void **ppvObject) {
5724     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5725 }
5726 static FORCEINLINE ULONG IAddrTrackingControl_AddRef(IAddrTrackingControl* This) {
5727     return This->lpVtbl->AddRef(This);
5728 }
5729 static FORCEINLINE ULONG IAddrTrackingControl_Release(IAddrTrackingControl* This) {
5730     return This->lpVtbl->Release(This);
5731 }
5732 /*** IAddrTrackingControl methods ***/
5733 static FORCEINLINE HRESULT IAddrTrackingControl_EnableCOMDynamicAddrTracking(IAddrTrackingControl* This) {
5734     return This->lpVtbl->EnableCOMDynamicAddrTracking(This);
5735 }
5736 static FORCEINLINE HRESULT IAddrTrackingControl_DisableCOMDynamicAddrTracking(IAddrTrackingControl* This) {
5737     return This->lpVtbl->DisableCOMDynamicAddrTracking(This);
5738 }
5739 #endif
5740 #endif
5741 
5742 #endif
5743 
5744 
5745 #endif  /* __IAddrTrackingControl_INTERFACE_DEFINED__ */
5746 
5747 
5748 /*****************************************************************************
5749  * IAddrExclusionControl interface
5750  */
5751 #ifndef __IAddrExclusionControl_INTERFACE_DEFINED__
5752 #define __IAddrExclusionControl_INTERFACE_DEFINED__
5753 
5754 typedef IAddrExclusionControl *LPADDREXCLUSIONCONTROL;
5755 DEFINE_GUID(IID_IAddrExclusionControl, 0x00000148, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5756 #if defined(__cplusplus) && !defined(CINTERFACE)
5757 MIDL_INTERFACE("00000148-0000-0000-c000-000000000046")
5758 IAddrExclusionControl : public IUnknown
5759 {
5760     virtual HRESULT STDMETHODCALLTYPE GetCurrentAddrExclusionList(
5761         REFIID riid,
5762         void **ppEnumerator) = 0;
5763 
5764     virtual HRESULT STDMETHODCALLTYPE UpdateAddrExclusionList(
5765         IUnknown *pEnumerator) = 0;
5766 
5767 };
5768 #ifdef __CRT_UUID_DECL
5769 __CRT_UUID_DECL(IAddrExclusionControl, 0x00000148, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5770 #endif
5771 #else
5772 typedef struct IAddrExclusionControlVtbl {
5773     BEGIN_INTERFACE
5774 
5775     /*** IUnknown methods ***/
5776     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5777         IAddrExclusionControl *This,
5778         REFIID riid,
5779         void **ppvObject);
5780 
5781     ULONG (STDMETHODCALLTYPE *AddRef)(
5782         IAddrExclusionControl *This);
5783 
5784     ULONG (STDMETHODCALLTYPE *Release)(
5785         IAddrExclusionControl *This);
5786 
5787     /*** IAddrExclusionControl methods ***/
5788     HRESULT (STDMETHODCALLTYPE *GetCurrentAddrExclusionList)(
5789         IAddrExclusionControl *This,
5790         REFIID riid,
5791         void **ppEnumerator);
5792 
5793     HRESULT (STDMETHODCALLTYPE *UpdateAddrExclusionList)(
5794         IAddrExclusionControl *This,
5795         IUnknown *pEnumerator);
5796 
5797     END_INTERFACE
5798 } IAddrExclusionControlVtbl;
5799 
5800 interface IAddrExclusionControl {
5801     CONST_VTBL IAddrExclusionControlVtbl* lpVtbl;
5802 };
5803 
5804 #ifdef COBJMACROS
5805 #ifndef WIDL_C_INLINE_WRAPPERS
5806 /*** IUnknown methods ***/
5807 #define IAddrExclusionControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5808 #define IAddrExclusionControl_AddRef(This) (This)->lpVtbl->AddRef(This)
5809 #define IAddrExclusionControl_Release(This) (This)->lpVtbl->Release(This)
5810 /*** IAddrExclusionControl methods ***/
5811 #define IAddrExclusionControl_GetCurrentAddrExclusionList(This,riid,ppEnumerator) (This)->lpVtbl->GetCurrentAddrExclusionList(This,riid,ppEnumerator)
5812 #define IAddrExclusionControl_UpdateAddrExclusionList(This,pEnumerator) (This)->lpVtbl->UpdateAddrExclusionList(This,pEnumerator)
5813 #else
5814 /*** IUnknown methods ***/
5815 static FORCEINLINE HRESULT IAddrExclusionControl_QueryInterface(IAddrExclusionControl* This,REFIID riid,void **ppvObject) {
5816     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5817 }
5818 static FORCEINLINE ULONG IAddrExclusionControl_AddRef(IAddrExclusionControl* This) {
5819     return This->lpVtbl->AddRef(This);
5820 }
5821 static FORCEINLINE ULONG IAddrExclusionControl_Release(IAddrExclusionControl* This) {
5822     return This->lpVtbl->Release(This);
5823 }
5824 /*** IAddrExclusionControl methods ***/
5825 static FORCEINLINE HRESULT IAddrExclusionControl_GetCurrentAddrExclusionList(IAddrExclusionControl* This,REFIID riid,void **ppEnumerator) {
5826     return This->lpVtbl->GetCurrentAddrExclusionList(This,riid,ppEnumerator);
5827 }
5828 static FORCEINLINE HRESULT IAddrExclusionControl_UpdateAddrExclusionList(IAddrExclusionControl* This,IUnknown *pEnumerator) {
5829     return This->lpVtbl->UpdateAddrExclusionList(This,pEnumerator);
5830 }
5831 #endif
5832 #endif
5833 
5834 #endif
5835 
5836 
5837 #endif  /* __IAddrExclusionControl_INTERFACE_DEFINED__ */
5838 
5839 
5840 /*****************************************************************************
5841  * IPipeByte interface
5842  */
5843 #ifndef __IPipeByte_INTERFACE_DEFINED__
5844 #define __IPipeByte_INTERFACE_DEFINED__
5845 
5846 DEFINE_GUID(IID_IPipeByte, 0xdb2f3aca, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
5847 #if defined(__cplusplus) && !defined(CINTERFACE)
5848 MIDL_INTERFACE("db2f3aca-2f86-11d1-8e04-00c04fb9989a")
5849 IPipeByte : public IUnknown
5850 {
5851     virtual HRESULT STDMETHODCALLTYPE Pull(
5852         BYTE *buf,
5853         ULONG cRequest,
5854         ULONG *pcReturned) = 0;
5855 
5856     virtual HRESULT STDMETHODCALLTYPE Push(
5857         BYTE *buf,
5858         ULONG cSent) = 0;
5859 
5860 };
5861 #ifdef __CRT_UUID_DECL
5862 __CRT_UUID_DECL(IPipeByte, 0xdb2f3aca, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
5863 #endif
5864 #else
5865 typedef struct IPipeByteVtbl {
5866     BEGIN_INTERFACE
5867 
5868     /*** IUnknown methods ***/
5869     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5870         IPipeByte *This,
5871         REFIID riid,
5872         void **ppvObject);
5873 
5874     ULONG (STDMETHODCALLTYPE *AddRef)(
5875         IPipeByte *This);
5876 
5877     ULONG (STDMETHODCALLTYPE *Release)(
5878         IPipeByte *This);
5879 
5880     /*** IPipeByte methods ***/
5881     HRESULT (STDMETHODCALLTYPE *Pull)(
5882         IPipeByte *This,
5883         BYTE *buf,
5884         ULONG cRequest,
5885         ULONG *pcReturned);
5886 
5887     HRESULT (STDMETHODCALLTYPE *Push)(
5888         IPipeByte *This,
5889         BYTE *buf,
5890         ULONG cSent);
5891 
5892     END_INTERFACE
5893 } IPipeByteVtbl;
5894 
5895 interface IPipeByte {
5896     CONST_VTBL IPipeByteVtbl* lpVtbl;
5897 };
5898 
5899 #ifdef COBJMACROS
5900 #ifndef WIDL_C_INLINE_WRAPPERS
5901 /*** IUnknown methods ***/
5902 #define IPipeByte_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5903 #define IPipeByte_AddRef(This) (This)->lpVtbl->AddRef(This)
5904 #define IPipeByte_Release(This) (This)->lpVtbl->Release(This)
5905 /*** IPipeByte methods ***/
5906 #define IPipeByte_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
5907 #define IPipeByte_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
5908 #else
5909 /*** IUnknown methods ***/
5910 static FORCEINLINE HRESULT IPipeByte_QueryInterface(IPipeByte* This,REFIID riid,void **ppvObject) {
5911     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5912 }
5913 static FORCEINLINE ULONG IPipeByte_AddRef(IPipeByte* This) {
5914     return This->lpVtbl->AddRef(This);
5915 }
5916 static FORCEINLINE ULONG IPipeByte_Release(IPipeByte* This) {
5917     return This->lpVtbl->Release(This);
5918 }
5919 /*** IPipeByte methods ***/
5920 static FORCEINLINE HRESULT IPipeByte_Pull(IPipeByte* This,BYTE *buf,ULONG cRequest,ULONG *pcReturned) {
5921     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
5922 }
5923 static FORCEINLINE HRESULT IPipeByte_Push(IPipeByte* This,BYTE *buf,ULONG cSent) {
5924     return This->lpVtbl->Push(This,buf,cSent);
5925 }
5926 #endif
5927 #endif
5928 
5929 #endif
5930 
5931 
5932 #endif  /* __IPipeByte_INTERFACE_DEFINED__ */
5933 
5934 
5935 /*****************************************************************************
5936  * IPipeLong interface
5937  */
5938 #ifndef __IPipeLong_INTERFACE_DEFINED__
5939 #define __IPipeLong_INTERFACE_DEFINED__
5940 
5941 DEFINE_GUID(IID_IPipeLong, 0xdb2f3acc, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
5942 #if defined(__cplusplus) && !defined(CINTERFACE)
5943 MIDL_INTERFACE("db2f3acc-2f86-11d1-8e04-00c04fb9989a")
5944 IPipeLong : public IUnknown
5945 {
5946     virtual HRESULT STDMETHODCALLTYPE Pull(
5947         LONG *buf,
5948         ULONG cRequest,
5949         ULONG *pcReturned) = 0;
5950 
5951     virtual HRESULT STDMETHODCALLTYPE Push(
5952         LONG *buf,
5953         ULONG cSent) = 0;
5954 
5955 };
5956 #ifdef __CRT_UUID_DECL
5957 __CRT_UUID_DECL(IPipeLong, 0xdb2f3acc, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
5958 #endif
5959 #else
5960 typedef struct IPipeLongVtbl {
5961     BEGIN_INTERFACE
5962 
5963     /*** IUnknown methods ***/
5964     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5965         IPipeLong *This,
5966         REFIID riid,
5967         void **ppvObject);
5968 
5969     ULONG (STDMETHODCALLTYPE *AddRef)(
5970         IPipeLong *This);
5971 
5972     ULONG (STDMETHODCALLTYPE *Release)(
5973         IPipeLong *This);
5974 
5975     /*** IPipeLong methods ***/
5976     HRESULT (STDMETHODCALLTYPE *Pull)(
5977         IPipeLong *This,
5978         LONG *buf,
5979         ULONG cRequest,
5980         ULONG *pcReturned);
5981 
5982     HRESULT (STDMETHODCALLTYPE *Push)(
5983         IPipeLong *This,
5984         LONG *buf,
5985         ULONG cSent);
5986 
5987     END_INTERFACE
5988 } IPipeLongVtbl;
5989 
5990 interface IPipeLong {
5991     CONST_VTBL IPipeLongVtbl* lpVtbl;
5992 };
5993 
5994 #ifdef COBJMACROS
5995 #ifndef WIDL_C_INLINE_WRAPPERS
5996 /*** IUnknown methods ***/
5997 #define IPipeLong_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5998 #define IPipeLong_AddRef(This) (This)->lpVtbl->AddRef(This)
5999 #define IPipeLong_Release(This) (This)->lpVtbl->Release(This)
6000 /*** IPipeLong methods ***/
6001 #define IPipeLong_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
6002 #define IPipeLong_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
6003 #else
6004 /*** IUnknown methods ***/
6005 static FORCEINLINE HRESULT IPipeLong_QueryInterface(IPipeLong* This,REFIID riid,void **ppvObject) {
6006     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6007 }
6008 static FORCEINLINE ULONG IPipeLong_AddRef(IPipeLong* This) {
6009     return This->lpVtbl->AddRef(This);
6010 }
6011 static FORCEINLINE ULONG IPipeLong_Release(IPipeLong* This) {
6012     return This->lpVtbl->Release(This);
6013 }
6014 /*** IPipeLong methods ***/
6015 static FORCEINLINE HRESULT IPipeLong_Pull(IPipeLong* This,LONG *buf,ULONG cRequest,ULONG *pcReturned) {
6016     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
6017 }
6018 static FORCEINLINE HRESULT IPipeLong_Push(IPipeLong* This,LONG *buf,ULONG cSent) {
6019     return This->lpVtbl->Push(This,buf,cSent);
6020 }
6021 #endif
6022 #endif
6023 
6024 #endif
6025 
6026 
6027 #endif  /* __IPipeLong_INTERFACE_DEFINED__ */
6028 
6029 
6030 /*****************************************************************************
6031  * IPipeDouble interface
6032  */
6033 #ifndef __IPipeDouble_INTERFACE_DEFINED__
6034 #define __IPipeDouble_INTERFACE_DEFINED__
6035 
6036 DEFINE_GUID(IID_IPipeDouble, 0xdb2f3ace, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a);
6037 #if defined(__cplusplus) && !defined(CINTERFACE)
6038 MIDL_INTERFACE("db2f3ace-2f86-11d1-8e04-00c04fb9989a")
6039 IPipeDouble : public IUnknown
6040 {
6041     virtual HRESULT STDMETHODCALLTYPE Pull(
6042         DOUBLE *buf,
6043         ULONG cRequest,
6044         ULONG *pcReturned) = 0;
6045 
6046     virtual HRESULT STDMETHODCALLTYPE Push(
6047         DOUBLE *buf,
6048         ULONG cSent) = 0;
6049 
6050 };
6051 #ifdef __CRT_UUID_DECL
6052 __CRT_UUID_DECL(IPipeDouble, 0xdb2f3ace, 0x2f86, 0x11d1, 0x8e,0x04, 0x00,0xc0,0x4f,0xb9,0x98,0x9a)
6053 #endif
6054 #else
6055 typedef struct IPipeDoubleVtbl {
6056     BEGIN_INTERFACE
6057 
6058     /*** IUnknown methods ***/
6059     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6060         IPipeDouble *This,
6061         REFIID riid,
6062         void **ppvObject);
6063 
6064     ULONG (STDMETHODCALLTYPE *AddRef)(
6065         IPipeDouble *This);
6066 
6067     ULONG (STDMETHODCALLTYPE *Release)(
6068         IPipeDouble *This);
6069 
6070     /*** IPipeDouble methods ***/
6071     HRESULT (STDMETHODCALLTYPE *Pull)(
6072         IPipeDouble *This,
6073         DOUBLE *buf,
6074         ULONG cRequest,
6075         ULONG *pcReturned);
6076 
6077     HRESULT (STDMETHODCALLTYPE *Push)(
6078         IPipeDouble *This,
6079         DOUBLE *buf,
6080         ULONG cSent);
6081 
6082     END_INTERFACE
6083 } IPipeDoubleVtbl;
6084 
6085 interface IPipeDouble {
6086     CONST_VTBL IPipeDoubleVtbl* lpVtbl;
6087 };
6088 
6089 #ifdef COBJMACROS
6090 #ifndef WIDL_C_INLINE_WRAPPERS
6091 /*** IUnknown methods ***/
6092 #define IPipeDouble_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6093 #define IPipeDouble_AddRef(This) (This)->lpVtbl->AddRef(This)
6094 #define IPipeDouble_Release(This) (This)->lpVtbl->Release(This)
6095 /*** IPipeDouble methods ***/
6096 #define IPipeDouble_Pull(This,buf,cRequest,pcReturned) (This)->lpVtbl->Pull(This,buf,cRequest,pcReturned)
6097 #define IPipeDouble_Push(This,buf,cSent) (This)->lpVtbl->Push(This,buf,cSent)
6098 #else
6099 /*** IUnknown methods ***/
6100 static FORCEINLINE HRESULT IPipeDouble_QueryInterface(IPipeDouble* This,REFIID riid,void **ppvObject) {
6101     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6102 }
6103 static FORCEINLINE ULONG IPipeDouble_AddRef(IPipeDouble* This) {
6104     return This->lpVtbl->AddRef(This);
6105 }
6106 static FORCEINLINE ULONG IPipeDouble_Release(IPipeDouble* This) {
6107     return This->lpVtbl->Release(This);
6108 }
6109 /*** IPipeDouble methods ***/
6110 static FORCEINLINE HRESULT IPipeDouble_Pull(IPipeDouble* This,DOUBLE *buf,ULONG cRequest,ULONG *pcReturned) {
6111     return This->lpVtbl->Pull(This,buf,cRequest,pcReturned);
6112 }
6113 static FORCEINLINE HRESULT IPipeDouble_Push(IPipeDouble* This,DOUBLE *buf,ULONG cSent) {
6114     return This->lpVtbl->Push(This,buf,cSent);
6115 }
6116 #endif
6117 #endif
6118 
6119 #endif
6120 
6121 
6122 #endif  /* __IPipeDouble_INTERFACE_DEFINED__ */
6123 
6124 
6125 #if defined USE_COM_CONTEXT_DEF || defined BUILDTYPE_COMSVCS || defined _COMBASEAPI_ || defined _OLE32_
6126 
6127 typedef DWORD CPFLAGS;
6128 
6129 typedef struct tagContextProperty {
6130     GUID policyId;
6131     CPFLAGS flags;
6132     IUnknown *pUnk;
6133 } ContextProperty;
6134 
6135 /*****************************************************************************
6136  * IEnumContextProps interface
6137  */
6138 #ifndef __IEnumContextProps_INTERFACE_DEFINED__
6139 #define __IEnumContextProps_INTERFACE_DEFINED__
6140 
6141 typedef IEnumContextProps *LPENUMCONTEXTPROPS;
6142 
6143 DEFINE_GUID(IID_IEnumContextProps, 0x000001c1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6144 #if defined(__cplusplus) && !defined(CINTERFACE)
6145 MIDL_INTERFACE("000001c1-0000-0000-c000-000000000046")
6146 IEnumContextProps : public IUnknown
6147 {
6148     virtual HRESULT STDMETHODCALLTYPE Next(
6149         ULONG celt,
6150         ContextProperty *pContextProperties,
6151         ULONG *pceltFetched) = 0;
6152 
6153     virtual HRESULT STDMETHODCALLTYPE Skip(
6154         ULONG celt) = 0;
6155 
6156     virtual HRESULT STDMETHODCALLTYPE Reset(
6157         ) = 0;
6158 
6159     virtual HRESULT STDMETHODCALLTYPE Clone(
6160         IEnumContextProps **ppEnumContextProps) = 0;
6161 
6162     virtual HRESULT STDMETHODCALLTYPE Count(
6163         ULONG *pcelt) = 0;
6164 
6165 };
6166 #ifdef __CRT_UUID_DECL
6167 __CRT_UUID_DECL(IEnumContextProps, 0x000001c1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6168 #endif
6169 #else
6170 typedef struct IEnumContextPropsVtbl {
6171     BEGIN_INTERFACE
6172 
6173     /*** IUnknown methods ***/
6174     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6175         IEnumContextProps *This,
6176         REFIID riid,
6177         void **ppvObject);
6178 
6179     ULONG (STDMETHODCALLTYPE *AddRef)(
6180         IEnumContextProps *This);
6181 
6182     ULONG (STDMETHODCALLTYPE *Release)(
6183         IEnumContextProps *This);
6184 
6185     /*** IEnumContextProps methods ***/
6186     HRESULT (STDMETHODCALLTYPE *Next)(
6187         IEnumContextProps *This,
6188         ULONG celt,
6189         ContextProperty *pContextProperties,
6190         ULONG *pceltFetched);
6191 
6192     HRESULT (STDMETHODCALLTYPE *Skip)(
6193         IEnumContextProps *This,
6194         ULONG celt);
6195 
6196     HRESULT (STDMETHODCALLTYPE *Reset)(
6197         IEnumContextProps *This);
6198 
6199     HRESULT (STDMETHODCALLTYPE *Clone)(
6200         IEnumContextProps *This,
6201         IEnumContextProps **ppEnumContextProps);
6202 
6203     HRESULT (STDMETHODCALLTYPE *Count)(
6204         IEnumContextProps *This,
6205         ULONG *pcelt);
6206 
6207     END_INTERFACE
6208 } IEnumContextPropsVtbl;
6209 
6210 interface IEnumContextProps {
6211     CONST_VTBL IEnumContextPropsVtbl* lpVtbl;
6212 };
6213 
6214 #ifdef COBJMACROS
6215 #ifndef WIDL_C_INLINE_WRAPPERS
6216 /*** IUnknown methods ***/
6217 #define IEnumContextProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6218 #define IEnumContextProps_AddRef(This) (This)->lpVtbl->AddRef(This)
6219 #define IEnumContextProps_Release(This) (This)->lpVtbl->Release(This)
6220 /*** IEnumContextProps methods ***/
6221 #define IEnumContextProps_Next(This,celt,pContextProperties,pceltFetched) (This)->lpVtbl->Next(This,celt,pContextProperties,pceltFetched)
6222 #define IEnumContextProps_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
6223 #define IEnumContextProps_Reset(This) (This)->lpVtbl->Reset(This)
6224 #define IEnumContextProps_Clone(This,ppEnumContextProps) (This)->lpVtbl->Clone(This,ppEnumContextProps)
6225 #define IEnumContextProps_Count(This,pcelt) (This)->lpVtbl->Count(This,pcelt)
6226 #else
6227 /*** IUnknown methods ***/
6228 static FORCEINLINE HRESULT IEnumContextProps_QueryInterface(IEnumContextProps* This,REFIID riid,void **ppvObject) {
6229     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6230 }
6231 static FORCEINLINE ULONG IEnumContextProps_AddRef(IEnumContextProps* This) {
6232     return This->lpVtbl->AddRef(This);
6233 }
6234 static FORCEINLINE ULONG IEnumContextProps_Release(IEnumContextProps* This) {
6235     return This->lpVtbl->Release(This);
6236 }
6237 /*** IEnumContextProps methods ***/
6238 static FORCEINLINE HRESULT IEnumContextProps_Next(IEnumContextProps* This,ULONG celt,ContextProperty *pContextProperties,ULONG *pceltFetched) {
6239     return This->lpVtbl->Next(This,celt,pContextProperties,pceltFetched);
6240 }
6241 static FORCEINLINE HRESULT IEnumContextProps_Skip(IEnumContextProps* This,ULONG celt) {
6242     return This->lpVtbl->Skip(This,celt);
6243 }
6244 static FORCEINLINE HRESULT IEnumContextProps_Reset(IEnumContextProps* This) {
6245     return This->lpVtbl->Reset(This);
6246 }
6247 static FORCEINLINE HRESULT IEnumContextProps_Clone(IEnumContextProps* This,IEnumContextProps **ppEnumContextProps) {
6248     return This->lpVtbl->Clone(This,ppEnumContextProps);
6249 }
6250 static FORCEINLINE HRESULT IEnumContextProps_Count(IEnumContextProps* This,ULONG *pcelt) {
6251     return This->lpVtbl->Count(This,pcelt);
6252 }
6253 #endif
6254 #endif
6255 
6256 #endif
6257 
6258 
6259 #endif  /* __IEnumContextProps_INTERFACE_DEFINED__ */
6260 
6261 
6262 /*****************************************************************************
6263  * IContext interface
6264  */
6265 #ifndef __IContext_INTERFACE_DEFINED__
6266 #define __IContext_INTERFACE_DEFINED__
6267 
6268 DEFINE_GUID(IID_IContext, 0x000001c0, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6269 #if defined(__cplusplus) && !defined(CINTERFACE)
6270 MIDL_INTERFACE("000001c0-0000-0000-c000-000000000046")
6271 IContext : public IUnknown
6272 {
6273     virtual HRESULT STDMETHODCALLTYPE SetProperty(
6274         REFGUID rpolicyId,
6275         CPFLAGS flags,
6276         IUnknown *pUnk) = 0;
6277 
6278     virtual HRESULT STDMETHODCALLTYPE RemoveProperty(
6279         REFGUID rPolicyId) = 0;
6280 
6281     virtual HRESULT STDMETHODCALLTYPE GetProperty(
6282         REFGUID rGuid,
6283         CPFLAGS *pFlags,
6284         IUnknown **ppUnk) = 0;
6285 
6286     virtual HRESULT STDMETHODCALLTYPE EnumContextProps(
6287         IEnumContextProps **ppEnumContextProps) = 0;
6288 
6289 };
6290 #ifdef __CRT_UUID_DECL
6291 __CRT_UUID_DECL(IContext, 0x000001c0, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6292 #endif
6293 #else
6294 typedef struct IContextVtbl {
6295     BEGIN_INTERFACE
6296 
6297     /*** IUnknown methods ***/
6298     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6299         IContext *This,
6300         REFIID riid,
6301         void **ppvObject);
6302 
6303     ULONG (STDMETHODCALLTYPE *AddRef)(
6304         IContext *This);
6305 
6306     ULONG (STDMETHODCALLTYPE *Release)(
6307         IContext *This);
6308 
6309     /*** IContext methods ***/
6310     HRESULT (STDMETHODCALLTYPE *SetProperty)(
6311         IContext *This,
6312         REFGUID rpolicyId,
6313         CPFLAGS flags,
6314         IUnknown *pUnk);
6315 
6316     HRESULT (STDMETHODCALLTYPE *RemoveProperty)(
6317         IContext *This,
6318         REFGUID rPolicyId);
6319 
6320     HRESULT (STDMETHODCALLTYPE *GetProperty)(
6321         IContext *This,
6322         REFGUID rGuid,
6323         CPFLAGS *pFlags,
6324         IUnknown **ppUnk);
6325 
6326     HRESULT (STDMETHODCALLTYPE *EnumContextProps)(
6327         IContext *This,
6328         IEnumContextProps **ppEnumContextProps);
6329 
6330     END_INTERFACE
6331 } IContextVtbl;
6332 
6333 interface IContext {
6334     CONST_VTBL IContextVtbl* lpVtbl;
6335 };
6336 
6337 #ifdef COBJMACROS
6338 #ifndef WIDL_C_INLINE_WRAPPERS
6339 /*** IUnknown methods ***/
6340 #define IContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6341 #define IContext_AddRef(This) (This)->lpVtbl->AddRef(This)
6342 #define IContext_Release(This) (This)->lpVtbl->Release(This)
6343 /*** IContext methods ***/
6344 #define IContext_SetProperty(This,rpolicyId,flags,pUnk) (This)->lpVtbl->SetProperty(This,rpolicyId,flags,pUnk)
6345 #define IContext_RemoveProperty(This,rPolicyId) (This)->lpVtbl->RemoveProperty(This,rPolicyId)
6346 #define IContext_GetProperty(This,rGuid,pFlags,ppUnk) (This)->lpVtbl->GetProperty(This,rGuid,pFlags,ppUnk)
6347 #define IContext_EnumContextProps(This,ppEnumContextProps) (This)->lpVtbl->EnumContextProps(This,ppEnumContextProps)
6348 #else
6349 /*** IUnknown methods ***/
6350 static FORCEINLINE HRESULT IContext_QueryInterface(IContext* This,REFIID riid,void **ppvObject) {
6351     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6352 }
6353 static FORCEINLINE ULONG IContext_AddRef(IContext* This) {
6354     return This->lpVtbl->AddRef(This);
6355 }
6356 static FORCEINLINE ULONG IContext_Release(IContext* This) {
6357     return This->lpVtbl->Release(This);
6358 }
6359 /*** IContext methods ***/
6360 static FORCEINLINE HRESULT IContext_SetProperty(IContext* This,REFGUID rpolicyId,CPFLAGS flags,IUnknown *pUnk) {
6361     return This->lpVtbl->SetProperty(This,rpolicyId,flags,pUnk);
6362 }
6363 static FORCEINLINE HRESULT IContext_RemoveProperty(IContext* This,REFGUID rPolicyId) {
6364     return This->lpVtbl->RemoveProperty(This,rPolicyId);
6365 }
6366 static FORCEINLINE HRESULT IContext_GetProperty(IContext* This,REFGUID rGuid,CPFLAGS *pFlags,IUnknown **ppUnk) {
6367     return This->lpVtbl->GetProperty(This,rGuid,pFlags,ppUnk);
6368 }
6369 static FORCEINLINE HRESULT IContext_EnumContextProps(IContext* This,IEnumContextProps **ppEnumContextProps) {
6370     return This->lpVtbl->EnumContextProps(This,ppEnumContextProps);
6371 }
6372 #endif
6373 #endif
6374 
6375 #endif
6376 
6377 
6378 #endif  /* __IContext_INTERFACE_DEFINED__ */
6379 
6380 #endif
6381 #endif
6382 
6383 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
6384 typedef enum _APTTYPEQUALIFIER {
6385     APTTYPEQUALIFIER_NONE = 0,
6386     APTTYPEQUALIFIER_IMPLICIT_MTA = 1,
6387     APTTYPEQUALIFIER_NA_ON_MTA = 2,
6388     APTTYPEQUALIFIER_NA_ON_STA = 3,
6389     APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA = 4,
6390     APTTYPEQUALIFIER_NA_ON_MAINSTA = 5,
6391     APTTYPEQUALIFIER_APPLICATION_STA = 6
6392 } APTTYPEQUALIFIER;
6393 
6394 typedef enum _APTTYPE {
6395     APTTYPE_CURRENT = -1,
6396     APTTYPE_STA = 0,
6397     APTTYPE_MTA = 1,
6398     APTTYPE_NA = 2,
6399     APTTYPE_MAINSTA = 3
6400 } APTTYPE;
6401 #endif
6402 
6403 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
6404 typedef enum _THDTYPE {
6405     THDTYPE_BLOCKMESSAGES = 0,
6406     THDTYPE_PROCESSMESSAGES = 1
6407 } THDTYPE;
6408 
6409 typedef DWORD APARTMENTID;
6410 
6411 /*****************************************************************************
6412  * IComThreadingInfo interface
6413  */
6414 #ifndef __IComThreadingInfo_INTERFACE_DEFINED__
6415 #define __IComThreadingInfo_INTERFACE_DEFINED__
6416 
6417 DEFINE_GUID(IID_IComThreadingInfo, 0x000001ce, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6418 #if defined(__cplusplus) && !defined(CINTERFACE)
6419 MIDL_INTERFACE("000001ce-0000-0000-c000-000000000046")
6420 IComThreadingInfo : public IUnknown
6421 {
6422     virtual HRESULT STDMETHODCALLTYPE GetCurrentApartmentType(
6423         APTTYPE *pAptType) = 0;
6424 
6425     virtual HRESULT STDMETHODCALLTYPE GetCurrentThreadType(
6426         THDTYPE *pThreadType) = 0;
6427 
6428     virtual HRESULT STDMETHODCALLTYPE GetCurrentLogicalThreadId(
6429         GUID *pguidLogicalThreadId) = 0;
6430 
6431     virtual HRESULT STDMETHODCALLTYPE SetCurrentLogicalThreadId(
6432         REFGUID rguid) = 0;
6433 
6434 };
6435 #ifdef __CRT_UUID_DECL
6436 __CRT_UUID_DECL(IComThreadingInfo, 0x000001ce, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6437 #endif
6438 #else
6439 typedef struct IComThreadingInfoVtbl {
6440     BEGIN_INTERFACE
6441 
6442     /*** IUnknown methods ***/
6443     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6444         IComThreadingInfo *This,
6445         REFIID riid,
6446         void **ppvObject);
6447 
6448     ULONG (STDMETHODCALLTYPE *AddRef)(
6449         IComThreadingInfo *This);
6450 
6451     ULONG (STDMETHODCALLTYPE *Release)(
6452         IComThreadingInfo *This);
6453 
6454     /*** IComThreadingInfo methods ***/
6455     HRESULT (STDMETHODCALLTYPE *GetCurrentApartmentType)(
6456         IComThreadingInfo *This,
6457         APTTYPE *pAptType);
6458 
6459     HRESULT (STDMETHODCALLTYPE *GetCurrentThreadType)(
6460         IComThreadingInfo *This,
6461         THDTYPE *pThreadType);
6462 
6463     HRESULT (STDMETHODCALLTYPE *GetCurrentLogicalThreadId)(
6464         IComThreadingInfo *This,
6465         GUID *pguidLogicalThreadId);
6466 
6467     HRESULT (STDMETHODCALLTYPE *SetCurrentLogicalThreadId)(
6468         IComThreadingInfo *This,
6469         REFGUID rguid);
6470 
6471     END_INTERFACE
6472 } IComThreadingInfoVtbl;
6473 
6474 interface IComThreadingInfo {
6475     CONST_VTBL IComThreadingInfoVtbl* lpVtbl;
6476 };
6477 
6478 #ifdef COBJMACROS
6479 #ifndef WIDL_C_INLINE_WRAPPERS
6480 /*** IUnknown methods ***/
6481 #define IComThreadingInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6482 #define IComThreadingInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
6483 #define IComThreadingInfo_Release(This) (This)->lpVtbl->Release(This)
6484 /*** IComThreadingInfo methods ***/
6485 #define IComThreadingInfo_GetCurrentApartmentType(This,pAptType) (This)->lpVtbl->GetCurrentApartmentType(This,pAptType)
6486 #define IComThreadingInfo_GetCurrentThreadType(This,pThreadType) (This)->lpVtbl->GetCurrentThreadType(This,pThreadType)
6487 #define IComThreadingInfo_GetCurrentLogicalThreadId(This,pguidLogicalThreadId) (This)->lpVtbl->GetCurrentLogicalThreadId(This,pguidLogicalThreadId)
6488 #define IComThreadingInfo_SetCurrentLogicalThreadId(This,rguid) (This)->lpVtbl->SetCurrentLogicalThreadId(This,rguid)
6489 #else
6490 /*** IUnknown methods ***/
6491 static FORCEINLINE HRESULT IComThreadingInfo_QueryInterface(IComThreadingInfo* This,REFIID riid,void **ppvObject) {
6492     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6493 }
6494 static FORCEINLINE ULONG IComThreadingInfo_AddRef(IComThreadingInfo* This) {
6495     return This->lpVtbl->AddRef(This);
6496 }
6497 static FORCEINLINE ULONG IComThreadingInfo_Release(IComThreadingInfo* This) {
6498     return This->lpVtbl->Release(This);
6499 }
6500 /*** IComThreadingInfo methods ***/
6501 static FORCEINLINE HRESULT IComThreadingInfo_GetCurrentApartmentType(IComThreadingInfo* This,APTTYPE *pAptType) {
6502     return This->lpVtbl->GetCurrentApartmentType(This,pAptType);
6503 }
6504 static FORCEINLINE HRESULT IComThreadingInfo_GetCurrentThreadType(IComThreadingInfo* This,THDTYPE *pThreadType) {
6505     return This->lpVtbl->GetCurrentThreadType(This,pThreadType);
6506 }
6507 static FORCEINLINE HRESULT IComThreadingInfo_GetCurrentLogicalThreadId(IComThreadingInfo* This,GUID *pguidLogicalThreadId) {
6508     return This->lpVtbl->GetCurrentLogicalThreadId(This,pguidLogicalThreadId);
6509 }
6510 static FORCEINLINE HRESULT IComThreadingInfo_SetCurrentLogicalThreadId(IComThreadingInfo* This,REFGUID rguid) {
6511     return This->lpVtbl->SetCurrentLogicalThreadId(This,rguid);
6512 }
6513 #endif
6514 #endif
6515 
6516 #endif
6517 
6518 
6519 #endif  /* __IComThreadingInfo_INTERFACE_DEFINED__ */
6520 
6521 
6522 /*****************************************************************************
6523  * IProcessInitControl interface
6524  */
6525 #ifndef __IProcessInitControl_INTERFACE_DEFINED__
6526 #define __IProcessInitControl_INTERFACE_DEFINED__
6527 
6528 DEFINE_GUID(IID_IProcessInitControl, 0x72380d55, 0x8d2b, 0x43a3, 0x85,0x13, 0x2b,0x6e,0xf3,0x14,0x34,0xe9);
6529 #if defined(__cplusplus) && !defined(CINTERFACE)
6530 MIDL_INTERFACE("72380d55-8d2b-43a3-8513-2b6ef31434e9")
6531 IProcessInitControl : public IUnknown
6532 {
6533     virtual HRESULT STDMETHODCALLTYPE ResetInitializerTimeout(
6534         DWORD dwSecondsRemaining) = 0;
6535 
6536 };
6537 #ifdef __CRT_UUID_DECL
6538 __CRT_UUID_DECL(IProcessInitControl, 0x72380d55, 0x8d2b, 0x43a3, 0x85,0x13, 0x2b,0x6e,0xf3,0x14,0x34,0xe9)
6539 #endif
6540 #else
6541 typedef struct IProcessInitControlVtbl {
6542     BEGIN_INTERFACE
6543 
6544     /*** IUnknown methods ***/
6545     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6546         IProcessInitControl *This,
6547         REFIID riid,
6548         void **ppvObject);
6549 
6550     ULONG (STDMETHODCALLTYPE *AddRef)(
6551         IProcessInitControl *This);
6552 
6553     ULONG (STDMETHODCALLTYPE *Release)(
6554         IProcessInitControl *This);
6555 
6556     /*** IProcessInitControl methods ***/
6557     HRESULT (STDMETHODCALLTYPE *ResetInitializerTimeout)(
6558         IProcessInitControl *This,
6559         DWORD dwSecondsRemaining);
6560 
6561     END_INTERFACE
6562 } IProcessInitControlVtbl;
6563 
6564 interface IProcessInitControl {
6565     CONST_VTBL IProcessInitControlVtbl* lpVtbl;
6566 };
6567 
6568 #ifdef COBJMACROS
6569 #ifndef WIDL_C_INLINE_WRAPPERS
6570 /*** IUnknown methods ***/
6571 #define IProcessInitControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6572 #define IProcessInitControl_AddRef(This) (This)->lpVtbl->AddRef(This)
6573 #define IProcessInitControl_Release(This) (This)->lpVtbl->Release(This)
6574 /*** IProcessInitControl methods ***/
6575 #define IProcessInitControl_ResetInitializerTimeout(This,dwSecondsRemaining) (This)->lpVtbl->ResetInitializerTimeout(This,dwSecondsRemaining)
6576 #else
6577 /*** IUnknown methods ***/
6578 static FORCEINLINE HRESULT IProcessInitControl_QueryInterface(IProcessInitControl* This,REFIID riid,void **ppvObject) {
6579     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6580 }
6581 static FORCEINLINE ULONG IProcessInitControl_AddRef(IProcessInitControl* This) {
6582     return This->lpVtbl->AddRef(This);
6583 }
6584 static FORCEINLINE ULONG IProcessInitControl_Release(IProcessInitControl* This) {
6585     return This->lpVtbl->Release(This);
6586 }
6587 /*** IProcessInitControl methods ***/
6588 static FORCEINLINE HRESULT IProcessInitControl_ResetInitializerTimeout(IProcessInitControl* This,DWORD dwSecondsRemaining) {
6589     return This->lpVtbl->ResetInitializerTimeout(This,dwSecondsRemaining);
6590 }
6591 #endif
6592 #endif
6593 
6594 #endif
6595 
6596 
6597 #endif  /* __IProcessInitControl_INTERFACE_DEFINED__ */
6598 
6599 
6600 /*****************************************************************************
6601  * IFastRundown interface
6602  */
6603 #ifndef __IFastRundown_INTERFACE_DEFINED__
6604 #define __IFastRundown_INTERFACE_DEFINED__
6605 
6606 DEFINE_GUID(IID_IFastRundown, 0x00000040, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6607 #if defined(__cplusplus) && !defined(CINTERFACE)
6608 MIDL_INTERFACE("00000040-0000-0000-c000-000000000046")
6609 IFastRundown : public IUnknown
6610 {
6611 };
6612 #ifdef __CRT_UUID_DECL
6613 __CRT_UUID_DECL(IFastRundown, 0x00000040, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6614 #endif
6615 #else
6616 typedef struct IFastRundownVtbl {
6617     BEGIN_INTERFACE
6618 
6619     /*** IUnknown methods ***/
6620     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6621         IFastRundown *This,
6622         REFIID riid,
6623         void **ppvObject);
6624 
6625     ULONG (STDMETHODCALLTYPE *AddRef)(
6626         IFastRundown *This);
6627 
6628     ULONG (STDMETHODCALLTYPE *Release)(
6629         IFastRundown *This);
6630 
6631     END_INTERFACE
6632 } IFastRundownVtbl;
6633 
6634 interface IFastRundown {
6635     CONST_VTBL IFastRundownVtbl* lpVtbl;
6636 };
6637 
6638 #ifdef COBJMACROS
6639 #ifndef WIDL_C_INLINE_WRAPPERS
6640 /*** IUnknown methods ***/
6641 #define IFastRundown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6642 #define IFastRundown_AddRef(This) (This)->lpVtbl->AddRef(This)
6643 #define IFastRundown_Release(This) (This)->lpVtbl->Release(This)
6644 #else
6645 /*** IUnknown methods ***/
6646 static FORCEINLINE HRESULT IFastRundown_QueryInterface(IFastRundown* This,REFIID riid,void **ppvObject) {
6647     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6648 }
6649 static FORCEINLINE ULONG IFastRundown_AddRef(IFastRundown* This) {
6650     return This->lpVtbl->AddRef(This);
6651 }
6652 static FORCEINLINE ULONG IFastRundown_Release(IFastRundown* This) {
6653     return This->lpVtbl->Release(This);
6654 }
6655 #endif
6656 #endif
6657 
6658 #endif
6659 
6660 
6661 #endif  /* __IFastRundown_INTERFACE_DEFINED__ */
6662 
6663 
6664 typedef enum CO_MARSHALING_CONTEXT_ATTRIBUTES {
6665     CO_MARSHALING_SOURCE_IS_APP_CONTAINER = 0
6666 } CO_MARSHALING_CONTEXT_ATTRIBUTES;
6667 
6668 /*****************************************************************************
6669  * IMarshalingStream interface
6670  */
6671 #ifndef __IMarshalingStream_INTERFACE_DEFINED__
6672 #define __IMarshalingStream_INTERFACE_DEFINED__
6673 
6674 DEFINE_GUID(IID_IMarshalingStream, 0xd8f2f5e6, 0x6102, 0x4863, 0x9f,0x26, 0x38,0x9a,0x46,0x76,0xef,0xde);
6675 #if defined(__cplusplus) && !defined(CINTERFACE)
6676 MIDL_INTERFACE("d8f2f5e6-6102-4863-9f26-389a4676efde")
6677 IMarshalingStream : public IStream
6678 {
6679     virtual HRESULT STDMETHODCALLTYPE GetMarshalingContextAttribute(
6680         CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
6681         ULONG_PTR *pAttributeValue) = 0;
6682 
6683 };
6684 #ifdef __CRT_UUID_DECL
6685 __CRT_UUID_DECL(IMarshalingStream, 0xd8f2f5e6, 0x6102, 0x4863, 0x9f,0x26, 0x38,0x9a,0x46,0x76,0xef,0xde)
6686 #endif
6687 #else
6688 typedef struct IMarshalingStreamVtbl {
6689     BEGIN_INTERFACE
6690 
6691     /*** IUnknown methods ***/
6692     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6693         IMarshalingStream *This,
6694         REFIID riid,
6695         void **ppvObject);
6696 
6697     ULONG (STDMETHODCALLTYPE *AddRef)(
6698         IMarshalingStream *This);
6699 
6700     ULONG (STDMETHODCALLTYPE *Release)(
6701         IMarshalingStream *This);
6702 
6703     /*** ISequentialStream methods ***/
6704     HRESULT (STDMETHODCALLTYPE *Read)(
6705         IMarshalingStream *This,
6706         void *pv,
6707         ULONG cb,
6708         ULONG *pcbRead);
6709 
6710     HRESULT (STDMETHODCALLTYPE *Write)(
6711         IMarshalingStream *This,
6712         const void *pv,
6713         ULONG cb,
6714         ULONG *pcbWritten);
6715 
6716     /*** IStream methods ***/
6717     HRESULT (STDMETHODCALLTYPE *Seek)(
6718         IMarshalingStream *This,
6719         LARGE_INTEGER dlibMove,
6720         DWORD dwOrigin,
6721         ULARGE_INTEGER *plibNewPosition);
6722 
6723     HRESULT (STDMETHODCALLTYPE *SetSize)(
6724         IMarshalingStream *This,
6725         ULARGE_INTEGER libNewSize);
6726 
6727     HRESULT (STDMETHODCALLTYPE *CopyTo)(
6728         IMarshalingStream *This,
6729         IStream *pstm,
6730         ULARGE_INTEGER cb,
6731         ULARGE_INTEGER *pcbRead,
6732         ULARGE_INTEGER *pcbWritten);
6733 
6734     HRESULT (STDMETHODCALLTYPE *Commit)(
6735         IMarshalingStream *This,
6736         DWORD grfCommitFlags);
6737 
6738     HRESULT (STDMETHODCALLTYPE *Revert)(
6739         IMarshalingStream *This);
6740 
6741     HRESULT (STDMETHODCALLTYPE *LockRegion)(
6742         IMarshalingStream *This,
6743         ULARGE_INTEGER libOffset,
6744         ULARGE_INTEGER cb,
6745         DWORD dwLockType);
6746 
6747     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
6748         IMarshalingStream *This,
6749         ULARGE_INTEGER libOffset,
6750         ULARGE_INTEGER cb,
6751         DWORD dwLockType);
6752 
6753     HRESULT (STDMETHODCALLTYPE *Stat)(
6754         IMarshalingStream *This,
6755         STATSTG *pstatstg,
6756         DWORD grfStatFlag);
6757 
6758     HRESULT (STDMETHODCALLTYPE *Clone)(
6759         IMarshalingStream *This,
6760         IStream **ppstm);
6761 
6762     /*** IMarshalingStream methods ***/
6763     HRESULT (STDMETHODCALLTYPE *GetMarshalingContextAttribute)(
6764         IMarshalingStream *This,
6765         CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
6766         ULONG_PTR *pAttributeValue);
6767 
6768     END_INTERFACE
6769 } IMarshalingStreamVtbl;
6770 
6771 interface IMarshalingStream {
6772     CONST_VTBL IMarshalingStreamVtbl* lpVtbl;
6773 };
6774 
6775 #ifdef COBJMACROS
6776 #ifndef WIDL_C_INLINE_WRAPPERS
6777 /*** IUnknown methods ***/
6778 #define IMarshalingStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6779 #define IMarshalingStream_AddRef(This) (This)->lpVtbl->AddRef(This)
6780 #define IMarshalingStream_Release(This) (This)->lpVtbl->Release(This)
6781 /*** ISequentialStream methods ***/
6782 #define IMarshalingStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
6783 #define IMarshalingStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
6784 /*** IStream methods ***/
6785 #define IMarshalingStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
6786 #define IMarshalingStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
6787 #define IMarshalingStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
6788 #define IMarshalingStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
6789 #define IMarshalingStream_Revert(This) (This)->lpVtbl->Revert(This)
6790 #define IMarshalingStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
6791 #define IMarshalingStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
6792 #define IMarshalingStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
6793 #define IMarshalingStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
6794 /*** IMarshalingStream methods ***/
6795 #define IMarshalingStream_GetMarshalingContextAttribute(This,attribute,pAttributeValue) (This)->lpVtbl->GetMarshalingContextAttribute(This,attribute,pAttributeValue)
6796 #else
6797 /*** IUnknown methods ***/
6798 static FORCEINLINE HRESULT IMarshalingStream_QueryInterface(IMarshalingStream* This,REFIID riid,void **ppvObject) {
6799     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6800 }
6801 static FORCEINLINE ULONG IMarshalingStream_AddRef(IMarshalingStream* This) {
6802     return This->lpVtbl->AddRef(This);
6803 }
6804 static FORCEINLINE ULONG IMarshalingStream_Release(IMarshalingStream* This) {
6805     return This->lpVtbl->Release(This);
6806 }
6807 /*** ISequentialStream methods ***/
6808 static FORCEINLINE HRESULT IMarshalingStream_Read(IMarshalingStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
6809     return This->lpVtbl->Read(This,pv,cb,pcbRead);
6810 }
6811 static FORCEINLINE HRESULT IMarshalingStream_Write(IMarshalingStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
6812     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
6813 }
6814 /*** IStream methods ***/
6815 static FORCEINLINE HRESULT IMarshalingStream_Seek(IMarshalingStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
6816     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
6817 }
6818 static FORCEINLINE HRESULT IMarshalingStream_SetSize(IMarshalingStream* This,ULARGE_INTEGER libNewSize) {
6819     return This->lpVtbl->SetSize(This,libNewSize);
6820 }
6821 static FORCEINLINE HRESULT IMarshalingStream_CopyTo(IMarshalingStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
6822     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
6823 }
6824 static FORCEINLINE HRESULT IMarshalingStream_Commit(IMarshalingStream* This,DWORD grfCommitFlags) {
6825     return This->lpVtbl->Commit(This,grfCommitFlags);
6826 }
6827 static FORCEINLINE HRESULT IMarshalingStream_Revert(IMarshalingStream* This) {
6828     return This->lpVtbl->Revert(This);
6829 }
6830 static FORCEINLINE HRESULT IMarshalingStream_LockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
6831     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
6832 }
6833 static FORCEINLINE HRESULT IMarshalingStream_UnlockRegion(IMarshalingStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
6834     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
6835 }
6836 static FORCEINLINE HRESULT IMarshalingStream_Stat(IMarshalingStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
6837     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
6838 }
6839 static FORCEINLINE HRESULT IMarshalingStream_Clone(IMarshalingStream* This,IStream **ppstm) {
6840     return This->lpVtbl->Clone(This,ppstm);
6841 }
6842 /*** IMarshalingStream methods ***/
6843 static FORCEINLINE HRESULT IMarshalingStream_GetMarshalingContextAttribute(IMarshalingStream* This,CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,ULONG_PTR *pAttributeValue) {
6844     return This->lpVtbl->GetMarshalingContextAttribute(This,attribute,pAttributeValue);
6845 }
6846 #endif
6847 #endif
6848 
6849 #endif
6850 
6851 
6852 #endif  /* __IMarshalingStream_INTERFACE_DEFINED__ */
6853 
6854 #endif
6855 
6856 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
6857 EXTERN_C const GUID  IID_ICallbackWithNoReentrancyToApplicationSTA;
6858 #endif
6859 #define _OBJIDLBASE_
6860 #endif
6861 #ifndef __IMoniker_FWD_DEFINED__
6862 #define __IMoniker_FWD_DEFINED__
6863 typedef interface IMoniker IMoniker;
6864 #ifdef __cplusplus
6865 interface IMoniker;
6866 #endif /* __cplusplus */
6867 #endif
6868 
6869 #ifndef __IEnumMoniker_FWD_DEFINED__
6870 #define __IEnumMoniker_FWD_DEFINED__
6871 typedef interface IEnumMoniker IEnumMoniker;
6872 #ifdef __cplusplus
6873 interface IEnumMoniker;
6874 #endif /* __cplusplus */
6875 #endif
6876 
6877 #ifndef __IRunningObjectTable_FWD_DEFINED__
6878 #define __IRunningObjectTable_FWD_DEFINED__
6879 typedef interface IRunningObjectTable IRunningObjectTable;
6880 #ifdef __cplusplus
6881 interface IRunningObjectTable;
6882 #endif /* __cplusplus */
6883 #endif
6884 
6885 #ifndef __IStorage_FWD_DEFINED__
6886 #define __IStorage_FWD_DEFINED__
6887 typedef interface IStorage IStorage;
6888 #ifdef __cplusplus
6889 interface IStorage;
6890 #endif /* __cplusplus */
6891 #endif
6892 
6893 #ifndef __IEnumSTATSTG_FWD_DEFINED__
6894 #define __IEnumSTATSTG_FWD_DEFINED__
6895 typedef interface IEnumSTATSTG IEnumSTATSTG;
6896 #ifdef __cplusplus
6897 interface IEnumSTATSTG;
6898 #endif /* __cplusplus */
6899 #endif
6900 
6901 #ifndef __IAdviseSink_FWD_DEFINED__
6902 #define __IAdviseSink_FWD_DEFINED__
6903 typedef interface IAdviseSink IAdviseSink;
6904 #ifdef __cplusplus
6905 interface IAdviseSink;
6906 #endif /* __cplusplus */
6907 #endif
6908 
6909 #ifndef __IBindCtx_FWD_DEFINED__
6910 #define __IBindCtx_FWD_DEFINED__
6911 typedef interface IBindCtx IBindCtx;
6912 #ifdef __cplusplus
6913 interface IBindCtx;
6914 #endif /* __cplusplus */
6915 #endif
6916 
6917 #ifndef __IEnumMoniker_FWD_DEFINED__
6918 #define __IEnumMoniker_FWD_DEFINED__
6919 typedef interface IEnumMoniker IEnumMoniker;
6920 #ifdef __cplusplus
6921 interface IEnumMoniker;
6922 #endif /* __cplusplus */
6923 #endif
6924 
6925 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
6926 /*****************************************************************************
6927  * IMallocSpy interface
6928  */
6929 #ifndef __IMallocSpy_INTERFACE_DEFINED__
6930 #define __IMallocSpy_INTERFACE_DEFINED__
6931 
6932 typedef IMallocSpy *LPMALLOCSPY;
6933 DEFINE_GUID(IID_IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6934 #if defined(__cplusplus) && !defined(CINTERFACE)
6935 MIDL_INTERFACE("0000001d-0000-0000-c000-000000000046")
6936 IMallocSpy : public IUnknown
6937 {
6938     virtual SIZE_T STDMETHODCALLTYPE PreAlloc(
6939         SIZE_T cbRequest) = 0;
6940 
6941     virtual void * STDMETHODCALLTYPE PostAlloc(
6942         void *pActual) = 0;
6943 
6944     virtual void * STDMETHODCALLTYPE PreFree(
6945         void *pRequest,
6946         WINBOOL fSpyed) = 0;
6947 
6948     virtual void STDMETHODCALLTYPE PostFree(
6949         WINBOOL fSpyed) = 0;
6950 
6951     virtual SIZE_T STDMETHODCALLTYPE PreRealloc(
6952         void *pRequest,
6953         SIZE_T cbRequest,
6954         void **ppNewRequest,
6955         WINBOOL fSpyed) = 0;
6956 
6957     virtual void * STDMETHODCALLTYPE PostRealloc(
6958         void *pActual,
6959         WINBOOL fSpyed) = 0;
6960 
6961     virtual void * STDMETHODCALLTYPE PreGetSize(
6962         void *pRequest,
6963         WINBOOL fSpyed) = 0;
6964 
6965     virtual SIZE_T STDMETHODCALLTYPE PostGetSize(
6966         SIZE_T cbActual,
6967         WINBOOL fSpyed) = 0;
6968 
6969     virtual void * STDMETHODCALLTYPE PreDidAlloc(
6970         void *pRequest,
6971         WINBOOL fSpyed) = 0;
6972 
6973     virtual int STDMETHODCALLTYPE PostDidAlloc(
6974         void *pRequest,
6975         WINBOOL fSpyed,
6976         int fActual) = 0;
6977 
6978     virtual void STDMETHODCALLTYPE PreHeapMinimize(
6979         ) = 0;
6980 
6981     virtual void STDMETHODCALLTYPE PostHeapMinimize(
6982         ) = 0;
6983 
6984 };
6985 #ifdef __CRT_UUID_DECL
6986 __CRT_UUID_DECL(IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
6987 #endif
6988 #else
6989 typedef struct IMallocSpyVtbl {
6990     BEGIN_INTERFACE
6991 
6992     /*** IUnknown methods ***/
6993     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6994         IMallocSpy *This,
6995         REFIID riid,
6996         void **ppvObject);
6997 
6998     ULONG (STDMETHODCALLTYPE *AddRef)(
6999         IMallocSpy *This);
7000 
7001     ULONG (STDMETHODCALLTYPE *Release)(
7002         IMallocSpy *This);
7003 
7004     /*** IMallocSpy methods ***/
7005     SIZE_T (STDMETHODCALLTYPE *PreAlloc)(
7006         IMallocSpy *This,
7007         SIZE_T cbRequest);
7008 
7009     void * (STDMETHODCALLTYPE *PostAlloc)(
7010         IMallocSpy *This,
7011         void *pActual);
7012 
7013     void * (STDMETHODCALLTYPE *PreFree)(
7014         IMallocSpy *This,
7015         void *pRequest,
7016         WINBOOL fSpyed);
7017 
7018     void (STDMETHODCALLTYPE *PostFree)(
7019         IMallocSpy *This,
7020         WINBOOL fSpyed);
7021 
7022     SIZE_T (STDMETHODCALLTYPE *PreRealloc)(
7023         IMallocSpy *This,
7024         void *pRequest,
7025         SIZE_T cbRequest,
7026         void **ppNewRequest,
7027         WINBOOL fSpyed);
7028 
7029     void * (STDMETHODCALLTYPE *PostRealloc)(
7030         IMallocSpy *This,
7031         void *pActual,
7032         WINBOOL fSpyed);
7033 
7034     void * (STDMETHODCALLTYPE *PreGetSize)(
7035         IMallocSpy *This,
7036         void *pRequest,
7037         WINBOOL fSpyed);
7038 
7039     SIZE_T (STDMETHODCALLTYPE *PostGetSize)(
7040         IMallocSpy *This,
7041         SIZE_T cbActual,
7042         WINBOOL fSpyed);
7043 
7044     void * (STDMETHODCALLTYPE *PreDidAlloc)(
7045         IMallocSpy *This,
7046         void *pRequest,
7047         WINBOOL fSpyed);
7048 
7049     int (STDMETHODCALLTYPE *PostDidAlloc)(
7050         IMallocSpy *This,
7051         void *pRequest,
7052         WINBOOL fSpyed,
7053         int fActual);
7054 
7055     void (STDMETHODCALLTYPE *PreHeapMinimize)(
7056         IMallocSpy *This);
7057 
7058     void (STDMETHODCALLTYPE *PostHeapMinimize)(
7059         IMallocSpy *This);
7060 
7061     END_INTERFACE
7062 } IMallocSpyVtbl;
7063 
7064 interface IMallocSpy {
7065     CONST_VTBL IMallocSpyVtbl* lpVtbl;
7066 };
7067 
7068 #ifdef COBJMACROS
7069 #ifndef WIDL_C_INLINE_WRAPPERS
7070 /*** IUnknown methods ***/
7071 #define IMallocSpy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7072 #define IMallocSpy_AddRef(This) (This)->lpVtbl->AddRef(This)
7073 #define IMallocSpy_Release(This) (This)->lpVtbl->Release(This)
7074 /*** IMallocSpy methods ***/
7075 #define IMallocSpy_PreAlloc(This,cbRequest) (This)->lpVtbl->PreAlloc(This,cbRequest)
7076 #define IMallocSpy_PostAlloc(This,pActual) (This)->lpVtbl->PostAlloc(This,pActual)
7077 #define IMallocSpy_PreFree(This,pRequest,fSpyed) (This)->lpVtbl->PreFree(This,pRequest,fSpyed)
7078 #define IMallocSpy_PostFree(This,fSpyed) (This)->lpVtbl->PostFree(This,fSpyed)
7079 #define IMallocSpy_PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed) (This)->lpVtbl->PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed)
7080 #define IMallocSpy_PostRealloc(This,pActual,fSpyed) (This)->lpVtbl->PostRealloc(This,pActual,fSpyed)
7081 #define IMallocSpy_PreGetSize(This,pRequest,fSpyed) (This)->lpVtbl->PreGetSize(This,pRequest,fSpyed)
7082 #define IMallocSpy_PostGetSize(This,cbActual,fSpyed) (This)->lpVtbl->PostGetSize(This,cbActual,fSpyed)
7083 #define IMallocSpy_PreDidAlloc(This,pRequest,fSpyed) (This)->lpVtbl->PreDidAlloc(This,pRequest,fSpyed)
7084 #define IMallocSpy_PostDidAlloc(This,pRequest,fSpyed,fActual) (This)->lpVtbl->PostDidAlloc(This,pRequest,fSpyed,fActual)
7085 #define IMallocSpy_PreHeapMinimize(This) (This)->lpVtbl->PreHeapMinimize(This)
7086 #define IMallocSpy_PostHeapMinimize(This) (This)->lpVtbl->PostHeapMinimize(This)
7087 #else
7088 /*** IUnknown methods ***/
7089 static FORCEINLINE HRESULT IMallocSpy_QueryInterface(IMallocSpy* This,REFIID riid,void **ppvObject) {
7090     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7091 }
7092 static FORCEINLINE ULONG IMallocSpy_AddRef(IMallocSpy* This) {
7093     return This->lpVtbl->AddRef(This);
7094 }
7095 static FORCEINLINE ULONG IMallocSpy_Release(IMallocSpy* This) {
7096     return This->lpVtbl->Release(This);
7097 }
7098 /*** IMallocSpy methods ***/
7099 static FORCEINLINE SIZE_T IMallocSpy_PreAlloc(IMallocSpy* This,SIZE_T cbRequest) {
7100     return This->lpVtbl->PreAlloc(This,cbRequest);
7101 }
7102 static FORCEINLINE void * IMallocSpy_PostAlloc(IMallocSpy* This,void *pActual) {
7103     return This->lpVtbl->PostAlloc(This,pActual);
7104 }
7105 static FORCEINLINE void * IMallocSpy_PreFree(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
7106     return This->lpVtbl->PreFree(This,pRequest,fSpyed);
7107 }
7108 static FORCEINLINE void IMallocSpy_PostFree(IMallocSpy* This,WINBOOL fSpyed) {
7109     This->lpVtbl->PostFree(This,fSpyed);
7110 }
7111 static FORCEINLINE SIZE_T IMallocSpy_PreRealloc(IMallocSpy* This,void *pRequest,SIZE_T cbRequest,void **ppNewRequest,WINBOOL fSpyed) {
7112     return This->lpVtbl->PreRealloc(This,pRequest,cbRequest,ppNewRequest,fSpyed);
7113 }
7114 static FORCEINLINE void * IMallocSpy_PostRealloc(IMallocSpy* This,void *pActual,WINBOOL fSpyed) {
7115     return This->lpVtbl->PostRealloc(This,pActual,fSpyed);
7116 }
7117 static FORCEINLINE void * IMallocSpy_PreGetSize(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
7118     return This->lpVtbl->PreGetSize(This,pRequest,fSpyed);
7119 }
7120 static FORCEINLINE SIZE_T IMallocSpy_PostGetSize(IMallocSpy* This,SIZE_T cbActual,WINBOOL fSpyed) {
7121     return This->lpVtbl->PostGetSize(This,cbActual,fSpyed);
7122 }
7123 static FORCEINLINE void * IMallocSpy_PreDidAlloc(IMallocSpy* This,void *pRequest,WINBOOL fSpyed) {
7124     return This->lpVtbl->PreDidAlloc(This,pRequest,fSpyed);
7125 }
7126 static FORCEINLINE int IMallocSpy_PostDidAlloc(IMallocSpy* This,void *pRequest,WINBOOL fSpyed,int fActual) {
7127     return This->lpVtbl->PostDidAlloc(This,pRequest,fSpyed,fActual);
7128 }
7129 static FORCEINLINE void IMallocSpy_PreHeapMinimize(IMallocSpy* This) {
7130     This->lpVtbl->PreHeapMinimize(This);
7131 }
7132 static FORCEINLINE void IMallocSpy_PostHeapMinimize(IMallocSpy* This) {
7133     This->lpVtbl->PostHeapMinimize(This);
7134 }
7135 #endif
7136 #endif
7137 
7138 #endif
7139 
7140 
7141 #endif  /* __IMallocSpy_INTERFACE_DEFINED__ */
7142 
7143 #endif
7144 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
7145 /*****************************************************************************
7146  * IBindCtx interface
7147  */
7148 #ifndef __IBindCtx_INTERFACE_DEFINED__
7149 #define __IBindCtx_INTERFACE_DEFINED__
7150 
7151 typedef IBindCtx *LPBC;
7152 typedef IBindCtx *LPBINDCTX;
7153 #if defined(__cplusplus)
7154 typedef struct tagBIND_OPTS {
7155   DWORD cbStruct;
7156   DWORD grfFlags;
7157   DWORD grfMode;
7158   DWORD dwTickCountDeadline;
7159 } BIND_OPTS, *LPBIND_OPTS;
7160 #else
7161 typedef struct tagBIND_OPTS {
7162     DWORD cbStruct;
7163     DWORD grfFlags;
7164     DWORD grfMode;
7165     DWORD dwTickCountDeadline;
7166 } BIND_OPTS;
7167 typedef struct tagBIND_OPTS *LPBIND_OPTS;
7168 #endif
7169 #if defined(__cplusplus)
7170 typedef struct tagBIND_OPTS2 : tagBIND_OPTS {
7171 DWORD           dwTrackFlags;
7172 DWORD           dwClassContext;
7173 LCID            locale;
7174 COSERVERINFO *  pServerInfo;
7175 } BIND_OPTS2, * LPBIND_OPTS2;
7176 #else
7177 typedef struct tagBIND_OPTS2 {
7178     DWORD cbStruct;
7179     DWORD grfFlags;
7180     DWORD grfMode;
7181     DWORD dwTickCountDeadline;
7182     DWORD dwTrackFlags;
7183     DWORD dwClassContext;
7184     LCID locale;
7185     COSERVERINFO *pServerInfo;
7186 } BIND_OPTS2;
7187 typedef struct tagBIND_OPTS2 *LPBIND_OPTS2;
7188 #endif
7189 #if defined(__cplusplus)
7190 typedef struct tagBIND_OPTS3 : tagBIND_OPTS2 {
7191 HWND           hwnd;
7192 } BIND_OPTS3, * LPBIND_OPTS3;
7193 #else
7194 typedef struct tagBIND_OPTS3 {
7195     DWORD cbStruct;
7196     DWORD grfFlags;
7197     DWORD grfMode;
7198     DWORD dwTickCountDeadline;
7199     DWORD dwTrackFlags;
7200     DWORD dwClassContext;
7201     LCID locale;
7202     COSERVERINFO *pServerInfo;
7203     HWND hwnd;
7204 } BIND_OPTS3;
7205 typedef struct tagBIND_OPTS3 *LPBIND_OPTS3;
7206 #endif
7207 typedef enum tagBIND_FLAGS {
7208     BIND_MAYBOTHERUSER = 1,
7209     BIND_JUSTTESTEXISTENCE = 2
7210 } BIND_FLAGS;
7211 DEFINE_GUID(IID_IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7212 #if defined(__cplusplus) && !defined(CINTERFACE)
7213 MIDL_INTERFACE("0000000e-0000-0000-c000-000000000046")
7214 IBindCtx : public IUnknown
7215 {
7216     virtual HRESULT STDMETHODCALLTYPE RegisterObjectBound(
7217         IUnknown *punk) = 0;
7218 
7219     virtual HRESULT STDMETHODCALLTYPE RevokeObjectBound(
7220         IUnknown *punk) = 0;
7221 
7222     virtual HRESULT STDMETHODCALLTYPE ReleaseBoundObjects(
7223         ) = 0;
7224 
7225     virtual HRESULT STDMETHODCALLTYPE SetBindOptions(
7226         BIND_OPTS *pbindopts) = 0;
7227 
7228     virtual HRESULT STDMETHODCALLTYPE GetBindOptions(
7229         BIND_OPTS *pbindopts) = 0;
7230 
7231     virtual HRESULT STDMETHODCALLTYPE GetRunningObjectTable(
7232         IRunningObjectTable **pprot) = 0;
7233 
7234     virtual HRESULT STDMETHODCALLTYPE RegisterObjectParam(
7235         LPOLESTR pszKey,
7236         IUnknown *punk) = 0;
7237 
7238     virtual HRESULT STDMETHODCALLTYPE GetObjectParam(
7239         LPOLESTR pszKey,
7240         IUnknown **ppunk) = 0;
7241 
7242     virtual HRESULT STDMETHODCALLTYPE EnumObjectParam(
7243         IEnumString **ppenum) = 0;
7244 
7245     virtual HRESULT STDMETHODCALLTYPE RevokeObjectParam(
7246         LPOLESTR pszKey) = 0;
7247 
7248 };
7249 #ifdef __CRT_UUID_DECL
7250 __CRT_UUID_DECL(IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
7251 #endif
7252 #else
7253 typedef struct IBindCtxVtbl {
7254     BEGIN_INTERFACE
7255 
7256     /*** IUnknown methods ***/
7257     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7258         IBindCtx *This,
7259         REFIID riid,
7260         void **ppvObject);
7261 
7262     ULONG (STDMETHODCALLTYPE *AddRef)(
7263         IBindCtx *This);
7264 
7265     ULONG (STDMETHODCALLTYPE *Release)(
7266         IBindCtx *This);
7267 
7268     /*** IBindCtx methods ***/
7269     HRESULT (STDMETHODCALLTYPE *RegisterObjectBound)(
7270         IBindCtx *This,
7271         IUnknown *punk);
7272 
7273     HRESULT (STDMETHODCALLTYPE *RevokeObjectBound)(
7274         IBindCtx *This,
7275         IUnknown *punk);
7276 
7277     HRESULT (STDMETHODCALLTYPE *ReleaseBoundObjects)(
7278         IBindCtx *This);
7279 
7280     HRESULT (STDMETHODCALLTYPE *SetBindOptions)(
7281         IBindCtx *This,
7282         BIND_OPTS *pbindopts);
7283 
7284     HRESULT (STDMETHODCALLTYPE *GetBindOptions)(
7285         IBindCtx *This,
7286         BIND_OPTS *pbindopts);
7287 
7288     HRESULT (STDMETHODCALLTYPE *GetRunningObjectTable)(
7289         IBindCtx *This,
7290         IRunningObjectTable **pprot);
7291 
7292     HRESULT (STDMETHODCALLTYPE *RegisterObjectParam)(
7293         IBindCtx *This,
7294         LPOLESTR pszKey,
7295         IUnknown *punk);
7296 
7297     HRESULT (STDMETHODCALLTYPE *GetObjectParam)(
7298         IBindCtx *This,
7299         LPOLESTR pszKey,
7300         IUnknown **ppunk);
7301 
7302     HRESULT (STDMETHODCALLTYPE *EnumObjectParam)(
7303         IBindCtx *This,
7304         IEnumString **ppenum);
7305 
7306     HRESULT (STDMETHODCALLTYPE *RevokeObjectParam)(
7307         IBindCtx *This,
7308         LPOLESTR pszKey);
7309 
7310     END_INTERFACE
7311 } IBindCtxVtbl;
7312 
7313 interface IBindCtx {
7314     CONST_VTBL IBindCtxVtbl* lpVtbl;
7315 };
7316 
7317 #ifdef COBJMACROS
7318 #ifndef WIDL_C_INLINE_WRAPPERS
7319 /*** IUnknown methods ***/
7320 #define IBindCtx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7321 #define IBindCtx_AddRef(This) (This)->lpVtbl->AddRef(This)
7322 #define IBindCtx_Release(This) (This)->lpVtbl->Release(This)
7323 /*** IBindCtx methods ***/
7324 #define IBindCtx_RegisterObjectBound(This,punk) (This)->lpVtbl->RegisterObjectBound(This,punk)
7325 #define IBindCtx_RevokeObjectBound(This,punk) (This)->lpVtbl->RevokeObjectBound(This,punk)
7326 #define IBindCtx_ReleaseBoundObjects(This) (This)->lpVtbl->ReleaseBoundObjects(This)
7327 #define IBindCtx_SetBindOptions(This,pbindopts) (This)->lpVtbl->SetBindOptions(This,pbindopts)
7328 #define IBindCtx_GetBindOptions(This,pbindopts) (This)->lpVtbl->GetBindOptions(This,pbindopts)
7329 #define IBindCtx_GetRunningObjectTable(This,pprot) (This)->lpVtbl->GetRunningObjectTable(This,pprot)
7330 #define IBindCtx_RegisterObjectParam(This,pszKey,punk) (This)->lpVtbl->RegisterObjectParam(This,pszKey,punk)
7331 #define IBindCtx_GetObjectParam(This,pszKey,ppunk) (This)->lpVtbl->GetObjectParam(This,pszKey,ppunk)
7332 #define IBindCtx_EnumObjectParam(This,ppenum) (This)->lpVtbl->EnumObjectParam(This,ppenum)
7333 #define IBindCtx_RevokeObjectParam(This,pszKey) (This)->lpVtbl->RevokeObjectParam(This,pszKey)
7334 #else
7335 /*** IUnknown methods ***/
7336 static FORCEINLINE HRESULT IBindCtx_QueryInterface(IBindCtx* This,REFIID riid,void **ppvObject) {
7337     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7338 }
7339 static FORCEINLINE ULONG IBindCtx_AddRef(IBindCtx* This) {
7340     return This->lpVtbl->AddRef(This);
7341 }
7342 static FORCEINLINE ULONG IBindCtx_Release(IBindCtx* This) {
7343     return This->lpVtbl->Release(This);
7344 }
7345 /*** IBindCtx methods ***/
7346 static FORCEINLINE HRESULT IBindCtx_RegisterObjectBound(IBindCtx* This,IUnknown *punk) {
7347     return This->lpVtbl->RegisterObjectBound(This,punk);
7348 }
7349 static FORCEINLINE HRESULT IBindCtx_RevokeObjectBound(IBindCtx* This,IUnknown *punk) {
7350     return This->lpVtbl->RevokeObjectBound(This,punk);
7351 }
7352 static FORCEINLINE HRESULT IBindCtx_ReleaseBoundObjects(IBindCtx* This) {
7353     return This->lpVtbl->ReleaseBoundObjects(This);
7354 }
7355 static FORCEINLINE HRESULT IBindCtx_SetBindOptions(IBindCtx* This,BIND_OPTS *pbindopts) {
7356     return This->lpVtbl->SetBindOptions(This,pbindopts);
7357 }
7358 static FORCEINLINE HRESULT IBindCtx_GetBindOptions(IBindCtx* This,BIND_OPTS *pbindopts) {
7359     return This->lpVtbl->GetBindOptions(This,pbindopts);
7360 }
7361 static FORCEINLINE HRESULT IBindCtx_GetRunningObjectTable(IBindCtx* This,IRunningObjectTable **pprot) {
7362     return This->lpVtbl->GetRunningObjectTable(This,pprot);
7363 }
7364 static FORCEINLINE HRESULT IBindCtx_RegisterObjectParam(IBindCtx* This,LPOLESTR pszKey,IUnknown *punk) {
7365     return This->lpVtbl->RegisterObjectParam(This,pszKey,punk);
7366 }
7367 static FORCEINLINE HRESULT IBindCtx_GetObjectParam(IBindCtx* This,LPOLESTR pszKey,IUnknown **ppunk) {
7368     return This->lpVtbl->GetObjectParam(This,pszKey,ppunk);
7369 }
7370 static FORCEINLINE HRESULT IBindCtx_EnumObjectParam(IBindCtx* This,IEnumString **ppenum) {
7371     return This->lpVtbl->EnumObjectParam(This,ppenum);
7372 }
7373 static FORCEINLINE HRESULT IBindCtx_RevokeObjectParam(IBindCtx* This,LPOLESTR pszKey) {
7374     return This->lpVtbl->RevokeObjectParam(This,pszKey);
7375 }
7376 #endif
7377 #endif
7378 
7379 #endif
7380 
7381 HRESULT STDMETHODCALLTYPE IBindCtx_RemoteSetBindOptions_Proxy(
7382     IBindCtx* This,
7383     BIND_OPTS2 *pbindopts);
7384 void __RPC_STUB IBindCtx_RemoteSetBindOptions_Stub(
7385     IRpcStubBuffer* This,
7386     IRpcChannelBuffer* pRpcChannelBuffer,
7387     PRPC_MESSAGE pRpcMessage,
7388     DWORD* pdwStubPhase);
7389 HRESULT STDMETHODCALLTYPE IBindCtx_RemoteGetBindOptions_Proxy(
7390     IBindCtx* This,
7391     BIND_OPTS2 *pbindopts);
7392 void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub(
7393     IRpcStubBuffer* This,
7394     IRpcChannelBuffer* pRpcChannelBuffer,
7395     PRPC_MESSAGE pRpcMessage,
7396     DWORD* pdwStubPhase);
7397 HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
7398     IBindCtx* This,
7399     BIND_OPTS *pbindopts);
7400 HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
7401     IBindCtx* This,
7402     BIND_OPTS2 *pbindopts);
7403 HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
7404     IBindCtx* This,
7405     BIND_OPTS *pbindopts);
7406 HRESULT __RPC_STUB IBindCtx_GetBindOptions_Stub(
7407     IBindCtx* This,
7408     BIND_OPTS2 *pbindopts);
7409 
7410 #endif  /* __IBindCtx_INTERFACE_DEFINED__ */
7411 
7412 /*****************************************************************************
7413  * IEnumMoniker interface
7414  */
7415 #ifndef __IEnumMoniker_INTERFACE_DEFINED__
7416 #define __IEnumMoniker_INTERFACE_DEFINED__
7417 
7418 typedef IEnumMoniker *LPENUMMONIKER;
7419 DEFINE_GUID(IID_IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7420 #if defined(__cplusplus) && !defined(CINTERFACE)
7421 MIDL_INTERFACE("00000102-0000-0000-c000-000000000046")
7422 IEnumMoniker : public IUnknown
7423 {
7424     virtual HRESULT STDMETHODCALLTYPE Next(
7425         ULONG celt,
7426         IMoniker **rgelt,
7427         ULONG *pceltFetched) = 0;
7428 
7429     virtual HRESULT STDMETHODCALLTYPE Skip(
7430         ULONG celt) = 0;
7431 
7432     virtual HRESULT STDMETHODCALLTYPE Reset(
7433         ) = 0;
7434 
7435     virtual HRESULT STDMETHODCALLTYPE Clone(
7436         IEnumMoniker **ppenum) = 0;
7437 
7438 };
7439 #ifdef __CRT_UUID_DECL
7440 __CRT_UUID_DECL(IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
7441 #endif
7442 #else
7443 typedef struct IEnumMonikerVtbl {
7444     BEGIN_INTERFACE
7445 
7446     /*** IUnknown methods ***/
7447     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7448         IEnumMoniker *This,
7449         REFIID riid,
7450         void **ppvObject);
7451 
7452     ULONG (STDMETHODCALLTYPE *AddRef)(
7453         IEnumMoniker *This);
7454 
7455     ULONG (STDMETHODCALLTYPE *Release)(
7456         IEnumMoniker *This);
7457 
7458     /*** IEnumMoniker methods ***/
7459     HRESULT (STDMETHODCALLTYPE *Next)(
7460         IEnumMoniker *This,
7461         ULONG celt,
7462         IMoniker **rgelt,
7463         ULONG *pceltFetched);
7464 
7465     HRESULT (STDMETHODCALLTYPE *Skip)(
7466         IEnumMoniker *This,
7467         ULONG celt);
7468 
7469     HRESULT (STDMETHODCALLTYPE *Reset)(
7470         IEnumMoniker *This);
7471 
7472     HRESULT (STDMETHODCALLTYPE *Clone)(
7473         IEnumMoniker *This,
7474         IEnumMoniker **ppenum);
7475 
7476     END_INTERFACE
7477 } IEnumMonikerVtbl;
7478 
7479 interface IEnumMoniker {
7480     CONST_VTBL IEnumMonikerVtbl* lpVtbl;
7481 };
7482 
7483 #ifdef COBJMACROS
7484 #ifndef WIDL_C_INLINE_WRAPPERS
7485 /*** IUnknown methods ***/
7486 #define IEnumMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7487 #define IEnumMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
7488 #define IEnumMoniker_Release(This) (This)->lpVtbl->Release(This)
7489 /*** IEnumMoniker methods ***/
7490 #define IEnumMoniker_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
7491 #define IEnumMoniker_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
7492 #define IEnumMoniker_Reset(This) (This)->lpVtbl->Reset(This)
7493 #define IEnumMoniker_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
7494 #else
7495 /*** IUnknown methods ***/
7496 static FORCEINLINE HRESULT IEnumMoniker_QueryInterface(IEnumMoniker* This,REFIID riid,void **ppvObject) {
7497     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7498 }
7499 static FORCEINLINE ULONG IEnumMoniker_AddRef(IEnumMoniker* This) {
7500     return This->lpVtbl->AddRef(This);
7501 }
7502 static FORCEINLINE ULONG IEnumMoniker_Release(IEnumMoniker* This) {
7503     return This->lpVtbl->Release(This);
7504 }
7505 /*** IEnumMoniker methods ***/
7506 static FORCEINLINE HRESULT IEnumMoniker_Next(IEnumMoniker* This,ULONG celt,IMoniker **rgelt,ULONG *pceltFetched) {
7507     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
7508 }
7509 static FORCEINLINE HRESULT IEnumMoniker_Skip(IEnumMoniker* This,ULONG celt) {
7510     return This->lpVtbl->Skip(This,celt);
7511 }
7512 static FORCEINLINE HRESULT IEnumMoniker_Reset(IEnumMoniker* This) {
7513     return This->lpVtbl->Reset(This);
7514 }
7515 static FORCEINLINE HRESULT IEnumMoniker_Clone(IEnumMoniker* This,IEnumMoniker **ppenum) {
7516     return This->lpVtbl->Clone(This,ppenum);
7517 }
7518 #endif
7519 #endif
7520 
7521 #endif
7522 
7523 HRESULT STDMETHODCALLTYPE IEnumMoniker_RemoteNext_Proxy(
7524     IEnumMoniker* This,
7525     ULONG celt,
7526     IMoniker **rgelt,
7527     ULONG *pceltFetched);
7528 void __RPC_STUB IEnumMoniker_RemoteNext_Stub(
7529     IRpcStubBuffer* This,
7530     IRpcChannelBuffer* pRpcChannelBuffer,
7531     PRPC_MESSAGE pRpcMessage,
7532     DWORD* pdwStubPhase);
7533 HRESULT CALLBACK IEnumMoniker_Next_Proxy(
7534     IEnumMoniker* This,
7535     ULONG celt,
7536     IMoniker **rgelt,
7537     ULONG *pceltFetched);
7538 HRESULT __RPC_STUB IEnumMoniker_Next_Stub(
7539     IEnumMoniker* This,
7540     ULONG celt,
7541     IMoniker **rgelt,
7542     ULONG *pceltFetched);
7543 
7544 #endif  /* __IEnumMoniker_INTERFACE_DEFINED__ */
7545 
7546 #endif
7547 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
7548 /*****************************************************************************
7549  * IRunnableObject interface
7550  */
7551 #ifndef __IRunnableObject_INTERFACE_DEFINED__
7552 #define __IRunnableObject_INTERFACE_DEFINED__
7553 
7554 typedef IRunnableObject *LPRUNNABLEOBJECT;
7555 DEFINE_GUID(IID_IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7556 #if defined(__cplusplus) && !defined(CINTERFACE)
7557 MIDL_INTERFACE("00000126-0000-0000-c000-000000000046")
7558 IRunnableObject : public IUnknown
7559 {
7560     virtual HRESULT STDMETHODCALLTYPE GetRunningClass(
7561         LPCLSID lpClsid) = 0;
7562 
7563     virtual HRESULT STDMETHODCALLTYPE Run(
7564         LPBINDCTX pbc) = 0;
7565 
7566     virtual WINBOOL STDMETHODCALLTYPE IsRunning(
7567         ) = 0;
7568 
7569     virtual HRESULT STDMETHODCALLTYPE LockRunning(
7570         WINBOOL fLock,
7571         WINBOOL fLastUnlockCloses) = 0;
7572 
7573     virtual HRESULT STDMETHODCALLTYPE SetContainedObject(
7574         WINBOOL fContained) = 0;
7575 
7576 };
7577 #ifdef __CRT_UUID_DECL
7578 __CRT_UUID_DECL(IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
7579 #endif
7580 #else
7581 typedef struct IRunnableObjectVtbl {
7582     BEGIN_INTERFACE
7583 
7584     /*** IUnknown methods ***/
7585     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7586         IRunnableObject *This,
7587         REFIID riid,
7588         void **ppvObject);
7589 
7590     ULONG (STDMETHODCALLTYPE *AddRef)(
7591         IRunnableObject *This);
7592 
7593     ULONG (STDMETHODCALLTYPE *Release)(
7594         IRunnableObject *This);
7595 
7596     /*** IRunnableObject methods ***/
7597     HRESULT (STDMETHODCALLTYPE *GetRunningClass)(
7598         IRunnableObject *This,
7599         LPCLSID lpClsid);
7600 
7601     HRESULT (STDMETHODCALLTYPE *Run)(
7602         IRunnableObject *This,
7603         LPBINDCTX pbc);
7604 
7605     WINBOOL (STDMETHODCALLTYPE *IsRunning)(
7606         IRunnableObject *This);
7607 
7608     HRESULT (STDMETHODCALLTYPE *LockRunning)(
7609         IRunnableObject *This,
7610         WINBOOL fLock,
7611         WINBOOL fLastUnlockCloses);
7612 
7613     HRESULT (STDMETHODCALLTYPE *SetContainedObject)(
7614         IRunnableObject *This,
7615         WINBOOL fContained);
7616 
7617     END_INTERFACE
7618 } IRunnableObjectVtbl;
7619 
7620 interface IRunnableObject {
7621     CONST_VTBL IRunnableObjectVtbl* lpVtbl;
7622 };
7623 
7624 #ifdef COBJMACROS
7625 #ifndef WIDL_C_INLINE_WRAPPERS
7626 /*** IUnknown methods ***/
7627 #define IRunnableObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7628 #define IRunnableObject_AddRef(This) (This)->lpVtbl->AddRef(This)
7629 #define IRunnableObject_Release(This) (This)->lpVtbl->Release(This)
7630 /*** IRunnableObject methods ***/
7631 #define IRunnableObject_GetRunningClass(This,lpClsid) (This)->lpVtbl->GetRunningClass(This,lpClsid)
7632 #define IRunnableObject_Run(This,pbc) (This)->lpVtbl->Run(This,pbc)
7633 #define IRunnableObject_IsRunning(This) (This)->lpVtbl->IsRunning(This)
7634 #define IRunnableObject_LockRunning(This,fLock,fLastUnlockCloses) (This)->lpVtbl->LockRunning(This,fLock,fLastUnlockCloses)
7635 #define IRunnableObject_SetContainedObject(This,fContained) (This)->lpVtbl->SetContainedObject(This,fContained)
7636 #else
7637 /*** IUnknown methods ***/
7638 static FORCEINLINE HRESULT IRunnableObject_QueryInterface(IRunnableObject* This,REFIID riid,void **ppvObject) {
7639     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7640 }
7641 static FORCEINLINE ULONG IRunnableObject_AddRef(IRunnableObject* This) {
7642     return This->lpVtbl->AddRef(This);
7643 }
7644 static FORCEINLINE ULONG IRunnableObject_Release(IRunnableObject* This) {
7645     return This->lpVtbl->Release(This);
7646 }
7647 /*** IRunnableObject methods ***/
7648 static FORCEINLINE HRESULT IRunnableObject_GetRunningClass(IRunnableObject* This,LPCLSID lpClsid) {
7649     return This->lpVtbl->GetRunningClass(This,lpClsid);
7650 }
7651 static FORCEINLINE HRESULT IRunnableObject_Run(IRunnableObject* This,LPBINDCTX pbc) {
7652     return This->lpVtbl->Run(This,pbc);
7653 }
7654 static FORCEINLINE WINBOOL IRunnableObject_IsRunning(IRunnableObject* This) {
7655     return This->lpVtbl->IsRunning(This);
7656 }
7657 static FORCEINLINE HRESULT IRunnableObject_LockRunning(IRunnableObject* This,WINBOOL fLock,WINBOOL fLastUnlockCloses) {
7658     return This->lpVtbl->LockRunning(This,fLock,fLastUnlockCloses);
7659 }
7660 static FORCEINLINE HRESULT IRunnableObject_SetContainedObject(IRunnableObject* This,WINBOOL fContained) {
7661     return This->lpVtbl->SetContainedObject(This,fContained);
7662 }
7663 #endif
7664 #endif
7665 
7666 #endif
7667 
7668 HRESULT STDMETHODCALLTYPE IRunnableObject_RemoteIsRunning_Proxy(
7669     IRunnableObject* This);
7670 void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
7671     IRpcStubBuffer* This,
7672     IRpcChannelBuffer* pRpcChannelBuffer,
7673     PRPC_MESSAGE pRpcMessage,
7674     DWORD* pdwStubPhase);
7675 WINBOOL CALLBACK IRunnableObject_IsRunning_Proxy(
7676     IRunnableObject* This);
7677 HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
7678     IRunnableObject* This);
7679 
7680 #endif  /* __IRunnableObject_INTERFACE_DEFINED__ */
7681 
7682 /*****************************************************************************
7683  * IRunningObjectTable interface
7684  */
7685 #ifndef __IRunningObjectTable_INTERFACE_DEFINED__
7686 #define __IRunningObjectTable_INTERFACE_DEFINED__
7687 
7688 typedef IRunningObjectTable *LPRUNNINGOBJECTTABLE;
7689 DEFINE_GUID(IID_IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7690 #if defined(__cplusplus) && !defined(CINTERFACE)
7691 MIDL_INTERFACE("00000010-0000-0000-c000-000000000046")
7692 IRunningObjectTable : public IUnknown
7693 {
7694     virtual HRESULT STDMETHODCALLTYPE Register(
7695         DWORD grfFlags,
7696         IUnknown *punkObject,
7697         IMoniker *pmkObjectName,
7698         DWORD *pdwRegister) = 0;
7699 
7700     virtual HRESULT STDMETHODCALLTYPE Revoke(
7701         DWORD dwRegister) = 0;
7702 
7703     virtual HRESULT STDMETHODCALLTYPE IsRunning(
7704         IMoniker *pmkObjectName) = 0;
7705 
7706     virtual HRESULT STDMETHODCALLTYPE GetObject(
7707         IMoniker *pmkObjectName,
7708         IUnknown **ppunkObject) = 0;
7709 
7710     virtual HRESULT STDMETHODCALLTYPE NoteChangeTime(
7711         DWORD dwRegister,
7712         FILETIME *pfiletime) = 0;
7713 
7714     virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
7715         IMoniker *pmkObjectName,
7716         FILETIME *pfiletime) = 0;
7717 
7718     virtual HRESULT STDMETHODCALLTYPE EnumRunning(
7719         IEnumMoniker **ppenumMoniker) = 0;
7720 
7721 };
7722 #ifdef __CRT_UUID_DECL
7723 __CRT_UUID_DECL(IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
7724 #endif
7725 #else
7726 typedef struct IRunningObjectTableVtbl {
7727     BEGIN_INTERFACE
7728 
7729     /*** IUnknown methods ***/
7730     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7731         IRunningObjectTable *This,
7732         REFIID riid,
7733         void **ppvObject);
7734 
7735     ULONG (STDMETHODCALLTYPE *AddRef)(
7736         IRunningObjectTable *This);
7737 
7738     ULONG (STDMETHODCALLTYPE *Release)(
7739         IRunningObjectTable *This);
7740 
7741     /*** IRunningObjectTable methods ***/
7742     HRESULT (STDMETHODCALLTYPE *Register)(
7743         IRunningObjectTable *This,
7744         DWORD grfFlags,
7745         IUnknown *punkObject,
7746         IMoniker *pmkObjectName,
7747         DWORD *pdwRegister);
7748 
7749     HRESULT (STDMETHODCALLTYPE *Revoke)(
7750         IRunningObjectTable *This,
7751         DWORD dwRegister);
7752 
7753     HRESULT (STDMETHODCALLTYPE *IsRunning)(
7754         IRunningObjectTable *This,
7755         IMoniker *pmkObjectName);
7756 
7757     HRESULT (STDMETHODCALLTYPE *GetObject)(
7758         IRunningObjectTable *This,
7759         IMoniker *pmkObjectName,
7760         IUnknown **ppunkObject);
7761 
7762     HRESULT (STDMETHODCALLTYPE *NoteChangeTime)(
7763         IRunningObjectTable *This,
7764         DWORD dwRegister,
7765         FILETIME *pfiletime);
7766 
7767     HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
7768         IRunningObjectTable *This,
7769         IMoniker *pmkObjectName,
7770         FILETIME *pfiletime);
7771 
7772     HRESULT (STDMETHODCALLTYPE *EnumRunning)(
7773         IRunningObjectTable *This,
7774         IEnumMoniker **ppenumMoniker);
7775 
7776     END_INTERFACE
7777 } IRunningObjectTableVtbl;
7778 
7779 interface IRunningObjectTable {
7780     CONST_VTBL IRunningObjectTableVtbl* lpVtbl;
7781 };
7782 
7783 #ifdef COBJMACROS
7784 #ifndef WIDL_C_INLINE_WRAPPERS
7785 /*** IUnknown methods ***/
7786 #define IRunningObjectTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7787 #define IRunningObjectTable_AddRef(This) (This)->lpVtbl->AddRef(This)
7788 #define IRunningObjectTable_Release(This) (This)->lpVtbl->Release(This)
7789 /*** IRunningObjectTable methods ***/
7790 #define IRunningObjectTable_Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister) (This)->lpVtbl->Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister)
7791 #define IRunningObjectTable_Revoke(This,dwRegister) (This)->lpVtbl->Revoke(This,dwRegister)
7792 #define IRunningObjectTable_IsRunning(This,pmkObjectName) (This)->lpVtbl->IsRunning(This,pmkObjectName)
7793 #define IRunningObjectTable_GetObject(This,pmkObjectName,ppunkObject) (This)->lpVtbl->GetObject(This,pmkObjectName,ppunkObject)
7794 #define IRunningObjectTable_NoteChangeTime(This,dwRegister,pfiletime) (This)->lpVtbl->NoteChangeTime(This,dwRegister,pfiletime)
7795 #define IRunningObjectTable_GetTimeOfLastChange(This,pmkObjectName,pfiletime) (This)->lpVtbl->GetTimeOfLastChange(This,pmkObjectName,pfiletime)
7796 #define IRunningObjectTable_EnumRunning(This,ppenumMoniker) (This)->lpVtbl->EnumRunning(This,ppenumMoniker)
7797 #else
7798 /*** IUnknown methods ***/
7799 static FORCEINLINE HRESULT IRunningObjectTable_QueryInterface(IRunningObjectTable* This,REFIID riid,void **ppvObject) {
7800     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7801 }
7802 static FORCEINLINE ULONG IRunningObjectTable_AddRef(IRunningObjectTable* This) {
7803     return This->lpVtbl->AddRef(This);
7804 }
7805 static FORCEINLINE ULONG IRunningObjectTable_Release(IRunningObjectTable* This) {
7806     return This->lpVtbl->Release(This);
7807 }
7808 /*** IRunningObjectTable methods ***/
7809 static FORCEINLINE HRESULT IRunningObjectTable_Register(IRunningObjectTable* This,DWORD grfFlags,IUnknown *punkObject,IMoniker *pmkObjectName,DWORD *pdwRegister) {
7810     return This->lpVtbl->Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister);
7811 }
7812 static FORCEINLINE HRESULT IRunningObjectTable_Revoke(IRunningObjectTable* This,DWORD dwRegister) {
7813     return This->lpVtbl->Revoke(This,dwRegister);
7814 }
7815 static FORCEINLINE HRESULT IRunningObjectTable_IsRunning(IRunningObjectTable* This,IMoniker *pmkObjectName) {
7816     return This->lpVtbl->IsRunning(This,pmkObjectName);
7817 }
7818 static FORCEINLINE HRESULT IRunningObjectTable_GetObject(IRunningObjectTable* This,IMoniker *pmkObjectName,IUnknown **ppunkObject) {
7819     return This->lpVtbl->GetObject(This,pmkObjectName,ppunkObject);
7820 }
7821 static FORCEINLINE HRESULT IRunningObjectTable_NoteChangeTime(IRunningObjectTable* This,DWORD dwRegister,FILETIME *pfiletime) {
7822     return This->lpVtbl->NoteChangeTime(This,dwRegister,pfiletime);
7823 }
7824 static FORCEINLINE HRESULT IRunningObjectTable_GetTimeOfLastChange(IRunningObjectTable* This,IMoniker *pmkObjectName,FILETIME *pfiletime) {
7825     return This->lpVtbl->GetTimeOfLastChange(This,pmkObjectName,pfiletime);
7826 }
7827 static FORCEINLINE HRESULT IRunningObjectTable_EnumRunning(IRunningObjectTable* This,IEnumMoniker **ppenumMoniker) {
7828     return This->lpVtbl->EnumRunning(This,ppenumMoniker);
7829 }
7830 #endif
7831 #endif
7832 
7833 #endif
7834 
7835 
7836 #endif  /* __IRunningObjectTable_INTERFACE_DEFINED__ */
7837 
7838 #endif
7839 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
7840 /*****************************************************************************
7841  * IPersist interface
7842  */
7843 #ifndef __IPersist_INTERFACE_DEFINED__
7844 #define __IPersist_INTERFACE_DEFINED__
7845 
7846 typedef IPersist *LPPERSIST;
7847 DEFINE_GUID(IID_IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7848 #if defined(__cplusplus) && !defined(CINTERFACE)
7849 MIDL_INTERFACE("0000010c-0000-0000-c000-000000000046")
7850 IPersist : public IUnknown
7851 {
7852     virtual HRESULT STDMETHODCALLTYPE GetClassID(
7853         CLSID *pClassID) = 0;
7854 
7855 };
7856 #ifdef __CRT_UUID_DECL
7857 __CRT_UUID_DECL(IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
7858 #endif
7859 #else
7860 typedef struct IPersistVtbl {
7861     BEGIN_INTERFACE
7862 
7863     /*** IUnknown methods ***/
7864     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7865         IPersist *This,
7866         REFIID riid,
7867         void **ppvObject);
7868 
7869     ULONG (STDMETHODCALLTYPE *AddRef)(
7870         IPersist *This);
7871 
7872     ULONG (STDMETHODCALLTYPE *Release)(
7873         IPersist *This);
7874 
7875     /*** IPersist methods ***/
7876     HRESULT (STDMETHODCALLTYPE *GetClassID)(
7877         IPersist *This,
7878         CLSID *pClassID);
7879 
7880     END_INTERFACE
7881 } IPersistVtbl;
7882 
7883 interface IPersist {
7884     CONST_VTBL IPersistVtbl* lpVtbl;
7885 };
7886 
7887 #ifdef COBJMACROS
7888 #ifndef WIDL_C_INLINE_WRAPPERS
7889 /*** IUnknown methods ***/
7890 #define IPersist_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7891 #define IPersist_AddRef(This) (This)->lpVtbl->AddRef(This)
7892 #define IPersist_Release(This) (This)->lpVtbl->Release(This)
7893 /*** IPersist methods ***/
7894 #define IPersist_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
7895 #else
7896 /*** IUnknown methods ***/
7897 static FORCEINLINE HRESULT IPersist_QueryInterface(IPersist* This,REFIID riid,void **ppvObject) {
7898     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7899 }
7900 static FORCEINLINE ULONG IPersist_AddRef(IPersist* This) {
7901     return This->lpVtbl->AddRef(This);
7902 }
7903 static FORCEINLINE ULONG IPersist_Release(IPersist* This) {
7904     return This->lpVtbl->Release(This);
7905 }
7906 /*** IPersist methods ***/
7907 static FORCEINLINE HRESULT IPersist_GetClassID(IPersist* This,CLSID *pClassID) {
7908     return This->lpVtbl->GetClassID(This,pClassID);
7909 }
7910 #endif
7911 #endif
7912 
7913 #endif
7914 
7915 
7916 #endif  /* __IPersist_INTERFACE_DEFINED__ */
7917 
7918 /*****************************************************************************
7919  * IPersistStream interface
7920  */
7921 #ifndef __IPersistStream_INTERFACE_DEFINED__
7922 #define __IPersistStream_INTERFACE_DEFINED__
7923 
7924 typedef IPersistStream *LPPERSISTSTREAM;
7925 DEFINE_GUID(IID_IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7926 #if defined(__cplusplus) && !defined(CINTERFACE)
7927 MIDL_INTERFACE("00000109-0000-0000-c000-000000000046")
7928 IPersistStream : public IPersist
7929 {
7930     virtual HRESULT STDMETHODCALLTYPE IsDirty(
7931         ) = 0;
7932 
7933     virtual HRESULT STDMETHODCALLTYPE Load(
7934         IStream *pStm) = 0;
7935 
7936     virtual HRESULT STDMETHODCALLTYPE Save(
7937         IStream *pStm,
7938         WINBOOL fClearDirty) = 0;
7939 
7940     virtual HRESULT STDMETHODCALLTYPE GetSizeMax(
7941         ULARGE_INTEGER *pcbSize) = 0;
7942 
7943 };
7944 #ifdef __CRT_UUID_DECL
7945 __CRT_UUID_DECL(IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
7946 #endif
7947 #else
7948 typedef struct IPersistStreamVtbl {
7949     BEGIN_INTERFACE
7950 
7951     /*** IUnknown methods ***/
7952     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7953         IPersistStream *This,
7954         REFIID riid,
7955         void **ppvObject);
7956 
7957     ULONG (STDMETHODCALLTYPE *AddRef)(
7958         IPersistStream *This);
7959 
7960     ULONG (STDMETHODCALLTYPE *Release)(
7961         IPersistStream *This);
7962 
7963     /*** IPersist methods ***/
7964     HRESULT (STDMETHODCALLTYPE *GetClassID)(
7965         IPersistStream *This,
7966         CLSID *pClassID);
7967 
7968     /*** IPersistStream methods ***/
7969     HRESULT (STDMETHODCALLTYPE *IsDirty)(
7970         IPersistStream *This);
7971 
7972     HRESULT (STDMETHODCALLTYPE *Load)(
7973         IPersistStream *This,
7974         IStream *pStm);
7975 
7976     HRESULT (STDMETHODCALLTYPE *Save)(
7977         IPersistStream *This,
7978         IStream *pStm,
7979         WINBOOL fClearDirty);
7980 
7981     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
7982         IPersistStream *This,
7983         ULARGE_INTEGER *pcbSize);
7984 
7985     END_INTERFACE
7986 } IPersistStreamVtbl;
7987 
7988 interface IPersistStream {
7989     CONST_VTBL IPersistStreamVtbl* lpVtbl;
7990 };
7991 
7992 #ifdef COBJMACROS
7993 #ifndef WIDL_C_INLINE_WRAPPERS
7994 /*** IUnknown methods ***/
7995 #define IPersistStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7996 #define IPersistStream_AddRef(This) (This)->lpVtbl->AddRef(This)
7997 #define IPersistStream_Release(This) (This)->lpVtbl->Release(This)
7998 /*** IPersist methods ***/
7999 #define IPersistStream_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
8000 /*** IPersistStream methods ***/
8001 #define IPersistStream_IsDirty(This) (This)->lpVtbl->IsDirty(This)
8002 #define IPersistStream_Load(This,pStm) (This)->lpVtbl->Load(This,pStm)
8003 #define IPersistStream_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty)
8004 #define IPersistStream_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize)
8005 #else
8006 /*** IUnknown methods ***/
8007 static FORCEINLINE HRESULT IPersistStream_QueryInterface(IPersistStream* This,REFIID riid,void **ppvObject) {
8008     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8009 }
8010 static FORCEINLINE ULONG IPersistStream_AddRef(IPersistStream* This) {
8011     return This->lpVtbl->AddRef(This);
8012 }
8013 static FORCEINLINE ULONG IPersistStream_Release(IPersistStream* This) {
8014     return This->lpVtbl->Release(This);
8015 }
8016 /*** IPersist methods ***/
8017 static FORCEINLINE HRESULT IPersistStream_GetClassID(IPersistStream* This,CLSID *pClassID) {
8018     return This->lpVtbl->GetClassID(This,pClassID);
8019 }
8020 /*** IPersistStream methods ***/
8021 static FORCEINLINE HRESULT IPersistStream_IsDirty(IPersistStream* This) {
8022     return This->lpVtbl->IsDirty(This);
8023 }
8024 static FORCEINLINE HRESULT IPersistStream_Load(IPersistStream* This,IStream *pStm) {
8025     return This->lpVtbl->Load(This,pStm);
8026 }
8027 static FORCEINLINE HRESULT IPersistStream_Save(IPersistStream* This,IStream *pStm,WINBOOL fClearDirty) {
8028     return This->lpVtbl->Save(This,pStm,fClearDirty);
8029 }
8030 static FORCEINLINE HRESULT IPersistStream_GetSizeMax(IPersistStream* This,ULARGE_INTEGER *pcbSize) {
8031     return This->lpVtbl->GetSizeMax(This,pcbSize);
8032 }
8033 #endif
8034 #endif
8035 
8036 #endif
8037 
8038 
8039 #endif  /* __IPersistStream_INTERFACE_DEFINED__ */
8040 
8041 /*****************************************************************************
8042  * IMoniker interface
8043  */
8044 #ifndef __IMoniker_INTERFACE_DEFINED__
8045 #define __IMoniker_INTERFACE_DEFINED__
8046 
8047 typedef IMoniker *LPMONIKER;
8048 typedef enum tagMKSYS {
8049     MKSYS_NONE = 0,
8050     MKSYS_GENERICCOMPOSITE = 1,
8051     MKSYS_FILEMONIKER = 2,
8052     MKSYS_ANTIMONIKER = 3,
8053     MKSYS_ITEMMONIKER = 4,
8054     MKSYS_POINTERMONIKER = 5,
8055     MKSYS_CLASSMONIKER = 7,
8056     MKSYS_OBJREFMONIKER = 8,
8057     MKSYS_SESSIONMONIKER = 9,
8058     MKSYS_LUAMONIKER = 10
8059 } MKSYS;
8060 typedef enum tagMKREDUCE {
8061     MKRREDUCE_ONE = 3 << 16,
8062     MKRREDUCE_TOUSER = 2 << 16,
8063     MKRREDUCE_THROUGHUSER = 1 << 16,
8064     MKRREDUCE_ALL = 0
8065 } MKRREDUCE;
8066 DEFINE_GUID(IID_IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8067 #if defined(__cplusplus) && !defined(CINTERFACE)
8068 MIDL_INTERFACE("0000000f-0000-0000-c000-000000000046")
8069 IMoniker : public IPersistStream
8070 {
8071     virtual HRESULT STDMETHODCALLTYPE BindToObject(
8072         IBindCtx *pbc,
8073         IMoniker *pmkToLeft,
8074         REFIID riidResult,
8075         void **ppvResult) = 0;
8076 
8077     virtual HRESULT STDMETHODCALLTYPE BindToStorage(
8078         IBindCtx *pbc,
8079         IMoniker *pmkToLeft,
8080         REFIID riid,
8081         void **ppvObj) = 0;
8082 
8083     virtual HRESULT STDMETHODCALLTYPE Reduce(
8084         IBindCtx *pbc,
8085         DWORD dwReduceHowFar,
8086         IMoniker **ppmkToLeft,
8087         IMoniker **ppmkReduced) = 0;
8088 
8089     virtual HRESULT STDMETHODCALLTYPE ComposeWith(
8090         IMoniker *pmkRight,
8091         WINBOOL fOnlyIfNotGeneric,
8092         IMoniker **ppmkComposite) = 0;
8093 
8094     virtual HRESULT STDMETHODCALLTYPE Enum(
8095         WINBOOL fForward,
8096         IEnumMoniker **ppenumMoniker) = 0;
8097 
8098     virtual HRESULT STDMETHODCALLTYPE IsEqual(
8099         IMoniker *pmkOtherMoniker) = 0;
8100 
8101     virtual HRESULT STDMETHODCALLTYPE Hash(
8102         DWORD *pdwHash) = 0;
8103 
8104     virtual HRESULT STDMETHODCALLTYPE IsRunning(
8105         IBindCtx *pbc,
8106         IMoniker *pmkToLeft,
8107         IMoniker *pmkNewlyRunning) = 0;
8108 
8109     virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
8110         IBindCtx *pbc,
8111         IMoniker *pmkToLeft,
8112         FILETIME *pFileTime) = 0;
8113 
8114     virtual HRESULT STDMETHODCALLTYPE Inverse(
8115         IMoniker **ppmk) = 0;
8116 
8117     virtual HRESULT STDMETHODCALLTYPE CommonPrefixWith(
8118         IMoniker *pmkOther,
8119         IMoniker **ppmkPrefix) = 0;
8120 
8121     virtual HRESULT STDMETHODCALLTYPE RelativePathTo(
8122         IMoniker *pmkOther,
8123         IMoniker **ppmkRelPath) = 0;
8124 
8125     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
8126         IBindCtx *pbc,
8127         IMoniker *pmkToLeft,
8128         LPOLESTR *ppszDisplayName) = 0;
8129 
8130     virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
8131         IBindCtx *pbc,
8132         IMoniker *pmkToLeft,
8133         LPOLESTR pszDisplayName,
8134         ULONG *pchEaten,
8135         IMoniker **ppmkOut) = 0;
8136 
8137     virtual HRESULT STDMETHODCALLTYPE IsSystemMoniker(
8138         DWORD *pdwMksys) = 0;
8139 
8140 };
8141 #ifdef __CRT_UUID_DECL
8142 __CRT_UUID_DECL(IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8143 #endif
8144 #else
8145 typedef struct IMonikerVtbl {
8146     BEGIN_INTERFACE
8147 
8148     /*** IUnknown methods ***/
8149     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8150         IMoniker *This,
8151         REFIID riid,
8152         void **ppvObject);
8153 
8154     ULONG (STDMETHODCALLTYPE *AddRef)(
8155         IMoniker *This);
8156 
8157     ULONG (STDMETHODCALLTYPE *Release)(
8158         IMoniker *This);
8159 
8160     /*** IPersist methods ***/
8161     HRESULT (STDMETHODCALLTYPE *GetClassID)(
8162         IMoniker *This,
8163         CLSID *pClassID);
8164 
8165     /*** IPersistStream methods ***/
8166     HRESULT (STDMETHODCALLTYPE *IsDirty)(
8167         IMoniker *This);
8168 
8169     HRESULT (STDMETHODCALLTYPE *Load)(
8170         IMoniker *This,
8171         IStream *pStm);
8172 
8173     HRESULT (STDMETHODCALLTYPE *Save)(
8174         IMoniker *This,
8175         IStream *pStm,
8176         WINBOOL fClearDirty);
8177 
8178     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
8179         IMoniker *This,
8180         ULARGE_INTEGER *pcbSize);
8181 
8182     /*** IMoniker methods ***/
8183     HRESULT (STDMETHODCALLTYPE *BindToObject)(
8184         IMoniker *This,
8185         IBindCtx *pbc,
8186         IMoniker *pmkToLeft,
8187         REFIID riidResult,
8188         void **ppvResult);
8189 
8190     HRESULT (STDMETHODCALLTYPE *BindToStorage)(
8191         IMoniker *This,
8192         IBindCtx *pbc,
8193         IMoniker *pmkToLeft,
8194         REFIID riid,
8195         void **ppvObj);
8196 
8197     HRESULT (STDMETHODCALLTYPE *Reduce)(
8198         IMoniker *This,
8199         IBindCtx *pbc,
8200         DWORD dwReduceHowFar,
8201         IMoniker **ppmkToLeft,
8202         IMoniker **ppmkReduced);
8203 
8204     HRESULT (STDMETHODCALLTYPE *ComposeWith)(
8205         IMoniker *This,
8206         IMoniker *pmkRight,
8207         WINBOOL fOnlyIfNotGeneric,
8208         IMoniker **ppmkComposite);
8209 
8210     HRESULT (STDMETHODCALLTYPE *Enum)(
8211         IMoniker *This,
8212         WINBOOL fForward,
8213         IEnumMoniker **ppenumMoniker);
8214 
8215     HRESULT (STDMETHODCALLTYPE *IsEqual)(
8216         IMoniker *This,
8217         IMoniker *pmkOtherMoniker);
8218 
8219     HRESULT (STDMETHODCALLTYPE *Hash)(
8220         IMoniker *This,
8221         DWORD *pdwHash);
8222 
8223     HRESULT (STDMETHODCALLTYPE *IsRunning)(
8224         IMoniker *This,
8225         IBindCtx *pbc,
8226         IMoniker *pmkToLeft,
8227         IMoniker *pmkNewlyRunning);
8228 
8229     HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
8230         IMoniker *This,
8231         IBindCtx *pbc,
8232         IMoniker *pmkToLeft,
8233         FILETIME *pFileTime);
8234 
8235     HRESULT (STDMETHODCALLTYPE *Inverse)(
8236         IMoniker *This,
8237         IMoniker **ppmk);
8238 
8239     HRESULT (STDMETHODCALLTYPE *CommonPrefixWith)(
8240         IMoniker *This,
8241         IMoniker *pmkOther,
8242         IMoniker **ppmkPrefix);
8243 
8244     HRESULT (STDMETHODCALLTYPE *RelativePathTo)(
8245         IMoniker *This,
8246         IMoniker *pmkOther,
8247         IMoniker **ppmkRelPath);
8248 
8249     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
8250         IMoniker *This,
8251         IBindCtx *pbc,
8252         IMoniker *pmkToLeft,
8253         LPOLESTR *ppszDisplayName);
8254 
8255     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
8256         IMoniker *This,
8257         IBindCtx *pbc,
8258         IMoniker *pmkToLeft,
8259         LPOLESTR pszDisplayName,
8260         ULONG *pchEaten,
8261         IMoniker **ppmkOut);
8262 
8263     HRESULT (STDMETHODCALLTYPE *IsSystemMoniker)(
8264         IMoniker *This,
8265         DWORD *pdwMksys);
8266 
8267     END_INTERFACE
8268 } IMonikerVtbl;
8269 
8270 interface IMoniker {
8271     CONST_VTBL IMonikerVtbl* lpVtbl;
8272 };
8273 
8274 #ifdef COBJMACROS
8275 #ifndef WIDL_C_INLINE_WRAPPERS
8276 /*** IUnknown methods ***/
8277 #define IMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8278 #define IMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
8279 #define IMoniker_Release(This) (This)->lpVtbl->Release(This)
8280 /*** IPersist methods ***/
8281 #define IMoniker_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
8282 /*** IPersistStream methods ***/
8283 #define IMoniker_IsDirty(This) (This)->lpVtbl->IsDirty(This)
8284 #define IMoniker_Load(This,pStm) (This)->lpVtbl->Load(This,pStm)
8285 #define IMoniker_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty)
8286 #define IMoniker_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize)
8287 /*** IMoniker methods ***/
8288 #define IMoniker_BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult) (This)->lpVtbl->BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult)
8289 #define IMoniker_BindToStorage(This,pbc,pmkToLeft,riid,ppvObj) (This)->lpVtbl->BindToStorage(This,pbc,pmkToLeft,riid,ppvObj)
8290 #define IMoniker_Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced) (This)->lpVtbl->Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced)
8291 #define IMoniker_ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite) (This)->lpVtbl->ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite)
8292 #define IMoniker_Enum(This,fForward,ppenumMoniker) (This)->lpVtbl->Enum(This,fForward,ppenumMoniker)
8293 #define IMoniker_IsEqual(This,pmkOtherMoniker) (This)->lpVtbl->IsEqual(This,pmkOtherMoniker)
8294 #define IMoniker_Hash(This,pdwHash) (This)->lpVtbl->Hash(This,pdwHash)
8295 #define IMoniker_IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning) (This)->lpVtbl->IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning)
8296 #define IMoniker_GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime) (This)->lpVtbl->GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime)
8297 #define IMoniker_Inverse(This,ppmk) (This)->lpVtbl->Inverse(This,ppmk)
8298 #define IMoniker_CommonPrefixWith(This,pmkOther,ppmkPrefix) (This)->lpVtbl->CommonPrefixWith(This,pmkOther,ppmkPrefix)
8299 #define IMoniker_RelativePathTo(This,pmkOther,ppmkRelPath) (This)->lpVtbl->RelativePathTo(This,pmkOther,ppmkRelPath)
8300 #define IMoniker_GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName) (This)->lpVtbl->GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName)
8301 #define IMoniker_ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut) (This)->lpVtbl->ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut)
8302 #define IMoniker_IsSystemMoniker(This,pdwMksys) (This)->lpVtbl->IsSystemMoniker(This,pdwMksys)
8303 #else
8304 /*** IUnknown methods ***/
8305 static FORCEINLINE HRESULT IMoniker_QueryInterface(IMoniker* This,REFIID riid,void **ppvObject) {
8306     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8307 }
8308 static FORCEINLINE ULONG IMoniker_AddRef(IMoniker* This) {
8309     return This->lpVtbl->AddRef(This);
8310 }
8311 static FORCEINLINE ULONG IMoniker_Release(IMoniker* This) {
8312     return This->lpVtbl->Release(This);
8313 }
8314 /*** IPersist methods ***/
8315 static FORCEINLINE HRESULT IMoniker_GetClassID(IMoniker* This,CLSID *pClassID) {
8316     return This->lpVtbl->GetClassID(This,pClassID);
8317 }
8318 /*** IPersistStream methods ***/
8319 static FORCEINLINE HRESULT IMoniker_IsDirty(IMoniker* This) {
8320     return This->lpVtbl->IsDirty(This);
8321 }
8322 static FORCEINLINE HRESULT IMoniker_Load(IMoniker* This,IStream *pStm) {
8323     return This->lpVtbl->Load(This,pStm);
8324 }
8325 static FORCEINLINE HRESULT IMoniker_Save(IMoniker* This,IStream *pStm,WINBOOL fClearDirty) {
8326     return This->lpVtbl->Save(This,pStm,fClearDirty);
8327 }
8328 static FORCEINLINE HRESULT IMoniker_GetSizeMax(IMoniker* This,ULARGE_INTEGER *pcbSize) {
8329     return This->lpVtbl->GetSizeMax(This,pcbSize);
8330 }
8331 /*** IMoniker methods ***/
8332 static FORCEINLINE HRESULT IMoniker_BindToObject(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,REFIID riidResult,void **ppvResult) {
8333     return This->lpVtbl->BindToObject(This,pbc,pmkToLeft,riidResult,ppvResult);
8334 }
8335 static FORCEINLINE HRESULT IMoniker_BindToStorage(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,REFIID riid,void **ppvObj) {
8336     return This->lpVtbl->BindToStorage(This,pbc,pmkToLeft,riid,ppvObj);
8337 }
8338 static FORCEINLINE HRESULT IMoniker_Reduce(IMoniker* This,IBindCtx *pbc,DWORD dwReduceHowFar,IMoniker **ppmkToLeft,IMoniker **ppmkReduced) {
8339     return This->lpVtbl->Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced);
8340 }
8341 static FORCEINLINE HRESULT IMoniker_ComposeWith(IMoniker* This,IMoniker *pmkRight,WINBOOL fOnlyIfNotGeneric,IMoniker **ppmkComposite) {
8342     return This->lpVtbl->ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite);
8343 }
8344 static FORCEINLINE HRESULT IMoniker_Enum(IMoniker* This,WINBOOL fForward,IEnumMoniker **ppenumMoniker) {
8345     return This->lpVtbl->Enum(This,fForward,ppenumMoniker);
8346 }
8347 static FORCEINLINE HRESULT IMoniker_IsEqual(IMoniker* This,IMoniker *pmkOtherMoniker) {
8348     return This->lpVtbl->IsEqual(This,pmkOtherMoniker);
8349 }
8350 static FORCEINLINE HRESULT IMoniker_Hash(IMoniker* This,DWORD *pdwHash) {
8351     return This->lpVtbl->Hash(This,pdwHash);
8352 }
8353 static FORCEINLINE HRESULT IMoniker_IsRunning(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,IMoniker *pmkNewlyRunning) {
8354     return This->lpVtbl->IsRunning(This,pbc,pmkToLeft,pmkNewlyRunning);
8355 }
8356 static FORCEINLINE HRESULT IMoniker_GetTimeOfLastChange(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,FILETIME *pFileTime) {
8357     return This->lpVtbl->GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime);
8358 }
8359 static FORCEINLINE HRESULT IMoniker_Inverse(IMoniker* This,IMoniker **ppmk) {
8360     return This->lpVtbl->Inverse(This,ppmk);
8361 }
8362 static FORCEINLINE HRESULT IMoniker_CommonPrefixWith(IMoniker* This,IMoniker *pmkOther,IMoniker **ppmkPrefix) {
8363     return This->lpVtbl->CommonPrefixWith(This,pmkOther,ppmkPrefix);
8364 }
8365 static FORCEINLINE HRESULT IMoniker_RelativePathTo(IMoniker* This,IMoniker *pmkOther,IMoniker **ppmkRelPath) {
8366     return This->lpVtbl->RelativePathTo(This,pmkOther,ppmkRelPath);
8367 }
8368 static FORCEINLINE HRESULT IMoniker_GetDisplayName(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,LPOLESTR *ppszDisplayName) {
8369     return This->lpVtbl->GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName);
8370 }
8371 static FORCEINLINE HRESULT IMoniker_ParseDisplayName(IMoniker* This,IBindCtx *pbc,IMoniker *pmkToLeft,LPOLESTR pszDisplayName,ULONG *pchEaten,IMoniker **ppmkOut) {
8372     return This->lpVtbl->ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut);
8373 }
8374 static FORCEINLINE HRESULT IMoniker_IsSystemMoniker(IMoniker* This,DWORD *pdwMksys) {
8375     return This->lpVtbl->IsSystemMoniker(This,pdwMksys);
8376 }
8377 #endif
8378 #endif
8379 
8380 #endif
8381 
8382 HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToObject_Proxy(
8383     IMoniker* This,
8384     IBindCtx *pbc,
8385     IMoniker *pmkToLeft,
8386     REFIID riidResult,
8387     IUnknown **ppvResult);
8388 void __RPC_STUB IMoniker_RemoteBindToObject_Stub(
8389     IRpcStubBuffer* This,
8390     IRpcChannelBuffer* pRpcChannelBuffer,
8391     PRPC_MESSAGE pRpcMessage,
8392     DWORD* pdwStubPhase);
8393 HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToStorage_Proxy(
8394     IMoniker* This,
8395     IBindCtx *pbc,
8396     IMoniker *pmkToLeft,
8397     REFIID riid,
8398     IUnknown **ppvObj);
8399 void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
8400     IRpcStubBuffer* This,
8401     IRpcChannelBuffer* pRpcChannelBuffer,
8402     PRPC_MESSAGE pRpcMessage,
8403     DWORD* pdwStubPhase);
8404 HRESULT CALLBACK IMoniker_BindToObject_Proxy(
8405     IMoniker* This,
8406     IBindCtx *pbc,
8407     IMoniker *pmkToLeft,
8408     REFIID riidResult,
8409     void **ppvResult);
8410 HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
8411     IMoniker* This,
8412     IBindCtx *pbc,
8413     IMoniker *pmkToLeft,
8414     REFIID riidResult,
8415     IUnknown **ppvResult);
8416 HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
8417     IMoniker* This,
8418     IBindCtx *pbc,
8419     IMoniker *pmkToLeft,
8420     REFIID riid,
8421     void **ppvObj);
8422 HRESULT __RPC_STUB IMoniker_BindToStorage_Stub(
8423     IMoniker* This,
8424     IBindCtx *pbc,
8425     IMoniker *pmkToLeft,
8426     REFIID riid,
8427     IUnknown **ppvObj);
8428 
8429 #endif  /* __IMoniker_INTERFACE_DEFINED__ */
8430 
8431 #endif
8432 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
8433 /*****************************************************************************
8434  * IROTData interface
8435  */
8436 #ifndef __IROTData_INTERFACE_DEFINED__
8437 #define __IROTData_INTERFACE_DEFINED__
8438 
8439 DEFINE_GUID(IID_IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f);
8440 #if defined(__cplusplus) && !defined(CINTERFACE)
8441 MIDL_INTERFACE("f29f6bc0-5021-11ce-aa15-00006901293f")
8442 IROTData : public IUnknown
8443 {
8444     virtual HRESULT STDMETHODCALLTYPE GetComparisonData(
8445         byte *pbData,
8446         ULONG cbMax,
8447         ULONG *pcbData) = 0;
8448 
8449 };
8450 #ifdef __CRT_UUID_DECL
8451 __CRT_UUID_DECL(IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f)
8452 #endif
8453 #else
8454 typedef struct IROTDataVtbl {
8455     BEGIN_INTERFACE
8456 
8457     /*** IUnknown methods ***/
8458     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8459         IROTData *This,
8460         REFIID riid,
8461         void **ppvObject);
8462 
8463     ULONG (STDMETHODCALLTYPE *AddRef)(
8464         IROTData *This);
8465 
8466     ULONG (STDMETHODCALLTYPE *Release)(
8467         IROTData *This);
8468 
8469     /*** IROTData methods ***/
8470     HRESULT (STDMETHODCALLTYPE *GetComparisonData)(
8471         IROTData *This,
8472         byte *pbData,
8473         ULONG cbMax,
8474         ULONG *pcbData);
8475 
8476     END_INTERFACE
8477 } IROTDataVtbl;
8478 
8479 interface IROTData {
8480     CONST_VTBL IROTDataVtbl* lpVtbl;
8481 };
8482 
8483 #ifdef COBJMACROS
8484 #ifndef WIDL_C_INLINE_WRAPPERS
8485 /*** IUnknown methods ***/
8486 #define IROTData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8487 #define IROTData_AddRef(This) (This)->lpVtbl->AddRef(This)
8488 #define IROTData_Release(This) (This)->lpVtbl->Release(This)
8489 /*** IROTData methods ***/
8490 #define IROTData_GetComparisonData(This,pbData,cbMax,pcbData) (This)->lpVtbl->GetComparisonData(This,pbData,cbMax,pcbData)
8491 #else
8492 /*** IUnknown methods ***/
8493 static FORCEINLINE HRESULT IROTData_QueryInterface(IROTData* This,REFIID riid,void **ppvObject) {
8494     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8495 }
8496 static FORCEINLINE ULONG IROTData_AddRef(IROTData* This) {
8497     return This->lpVtbl->AddRef(This);
8498 }
8499 static FORCEINLINE ULONG IROTData_Release(IROTData* This) {
8500     return This->lpVtbl->Release(This);
8501 }
8502 /*** IROTData methods ***/
8503 static FORCEINLINE HRESULT IROTData_GetComparisonData(IROTData* This,byte *pbData,ULONG cbMax,ULONG *pcbData) {
8504     return This->lpVtbl->GetComparisonData(This,pbData,cbMax,pcbData);
8505 }
8506 #endif
8507 #endif
8508 
8509 #endif
8510 
8511 
8512 #endif  /* __IROTData_INTERFACE_DEFINED__ */
8513 
8514 #endif
8515 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
8516 /*****************************************************************************
8517  * IEnumSTATSTG interface
8518  */
8519 #ifndef __IEnumSTATSTG_INTERFACE_DEFINED__
8520 #define __IEnumSTATSTG_INTERFACE_DEFINED__
8521 
8522 typedef IEnumSTATSTG *LPENUMSTATSTG;
8523 DEFINE_GUID(IID_IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8524 #if defined(__cplusplus) && !defined(CINTERFACE)
8525 MIDL_INTERFACE("0000000d-0000-0000-c000-000000000046")
8526 IEnumSTATSTG : public IUnknown
8527 {
8528     virtual HRESULT STDMETHODCALLTYPE Next(
8529         ULONG celt,
8530         STATSTG *rgelt,
8531         ULONG *pceltFetched) = 0;
8532 
8533     virtual HRESULT STDMETHODCALLTYPE Skip(
8534         ULONG celt) = 0;
8535 
8536     virtual HRESULT STDMETHODCALLTYPE Reset(
8537         ) = 0;
8538 
8539     virtual HRESULT STDMETHODCALLTYPE Clone(
8540         IEnumSTATSTG **ppenum) = 0;
8541 
8542 };
8543 #ifdef __CRT_UUID_DECL
8544 __CRT_UUID_DECL(IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8545 #endif
8546 #else
8547 typedef struct IEnumSTATSTGVtbl {
8548     BEGIN_INTERFACE
8549 
8550     /*** IUnknown methods ***/
8551     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8552         IEnumSTATSTG *This,
8553         REFIID riid,
8554         void **ppvObject);
8555 
8556     ULONG (STDMETHODCALLTYPE *AddRef)(
8557         IEnumSTATSTG *This);
8558 
8559     ULONG (STDMETHODCALLTYPE *Release)(
8560         IEnumSTATSTG *This);
8561 
8562     /*** IEnumSTATSTG methods ***/
8563     HRESULT (STDMETHODCALLTYPE *Next)(
8564         IEnumSTATSTG *This,
8565         ULONG celt,
8566         STATSTG *rgelt,
8567         ULONG *pceltFetched);
8568 
8569     HRESULT (STDMETHODCALLTYPE *Skip)(
8570         IEnumSTATSTG *This,
8571         ULONG celt);
8572 
8573     HRESULT (STDMETHODCALLTYPE *Reset)(
8574         IEnumSTATSTG *This);
8575 
8576     HRESULT (STDMETHODCALLTYPE *Clone)(
8577         IEnumSTATSTG *This,
8578         IEnumSTATSTG **ppenum);
8579 
8580     END_INTERFACE
8581 } IEnumSTATSTGVtbl;
8582 
8583 interface IEnumSTATSTG {
8584     CONST_VTBL IEnumSTATSTGVtbl* lpVtbl;
8585 };
8586 
8587 #ifdef COBJMACROS
8588 #ifndef WIDL_C_INLINE_WRAPPERS
8589 /*** IUnknown methods ***/
8590 #define IEnumSTATSTG_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8591 #define IEnumSTATSTG_AddRef(This) (This)->lpVtbl->AddRef(This)
8592 #define IEnumSTATSTG_Release(This) (This)->lpVtbl->Release(This)
8593 /*** IEnumSTATSTG methods ***/
8594 #define IEnumSTATSTG_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
8595 #define IEnumSTATSTG_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
8596 #define IEnumSTATSTG_Reset(This) (This)->lpVtbl->Reset(This)
8597 #define IEnumSTATSTG_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
8598 #else
8599 /*** IUnknown methods ***/
8600 static FORCEINLINE HRESULT IEnumSTATSTG_QueryInterface(IEnumSTATSTG* This,REFIID riid,void **ppvObject) {
8601     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8602 }
8603 static FORCEINLINE ULONG IEnumSTATSTG_AddRef(IEnumSTATSTG* This) {
8604     return This->lpVtbl->AddRef(This);
8605 }
8606 static FORCEINLINE ULONG IEnumSTATSTG_Release(IEnumSTATSTG* This) {
8607     return This->lpVtbl->Release(This);
8608 }
8609 /*** IEnumSTATSTG methods ***/
8610 static FORCEINLINE HRESULT IEnumSTATSTG_Next(IEnumSTATSTG* This,ULONG celt,STATSTG *rgelt,ULONG *pceltFetched) {
8611     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
8612 }
8613 static FORCEINLINE HRESULT IEnumSTATSTG_Skip(IEnumSTATSTG* This,ULONG celt) {
8614     return This->lpVtbl->Skip(This,celt);
8615 }
8616 static FORCEINLINE HRESULT IEnumSTATSTG_Reset(IEnumSTATSTG* This) {
8617     return This->lpVtbl->Reset(This);
8618 }
8619 static FORCEINLINE HRESULT IEnumSTATSTG_Clone(IEnumSTATSTG* This,IEnumSTATSTG **ppenum) {
8620     return This->lpVtbl->Clone(This,ppenum);
8621 }
8622 #endif
8623 #endif
8624 
8625 #endif
8626 
8627 HRESULT STDMETHODCALLTYPE IEnumSTATSTG_RemoteNext_Proxy(
8628     IEnumSTATSTG* This,
8629     ULONG celt,
8630     STATSTG *rgelt,
8631     ULONG *pceltFetched);
8632 void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
8633     IRpcStubBuffer* This,
8634     IRpcChannelBuffer* pRpcChannelBuffer,
8635     PRPC_MESSAGE pRpcMessage,
8636     DWORD* pdwStubPhase);
8637 HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
8638     IEnumSTATSTG* This,
8639     ULONG celt,
8640     STATSTG *rgelt,
8641     ULONG *pceltFetched);
8642 HRESULT __RPC_STUB IEnumSTATSTG_Next_Stub(
8643     IEnumSTATSTG* This,
8644     ULONG celt,
8645     STATSTG *rgelt,
8646     ULONG *pceltFetched);
8647 
8648 #endif  /* __IEnumSTATSTG_INTERFACE_DEFINED__ */
8649 
8650 /*****************************************************************************
8651  * IStorage interface
8652  */
8653 #ifndef __IStorage_INTERFACE_DEFINED__
8654 #define __IStorage_INTERFACE_DEFINED__
8655 
8656 typedef IStorage *LPSTORAGE;
8657 typedef struct tagRemSNB {
8658     ULONG ulCntStr;
8659     ULONG ulCntChar;
8660     OLECHAR rgString[1];
8661 } RemSNB;
8662 typedef RemSNB *wireSNB;
8663 typedef LPOLESTR *SNB;
8664 DEFINE_GUID(IID_IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8665 #if defined(__cplusplus) && !defined(CINTERFACE)
8666 MIDL_INTERFACE("0000000b-0000-0000-c000-000000000046")
8667 IStorage : public IUnknown
8668 {
8669     virtual HRESULT STDMETHODCALLTYPE CreateStream(
8670         const OLECHAR *pwcsName,
8671         DWORD grfMode,
8672         DWORD reserved1,
8673         DWORD reserved2,
8674         IStream **ppstm) = 0;
8675 
8676     virtual HRESULT STDMETHODCALLTYPE OpenStream(
8677         const OLECHAR *pwcsName,
8678         void *reserved1,
8679         DWORD grfMode,
8680         DWORD reserved2,
8681         IStream **ppstm) = 0;
8682 
8683     virtual HRESULT STDMETHODCALLTYPE CreateStorage(
8684         const OLECHAR *pwcsName,
8685         DWORD grfMode,
8686         DWORD reserved1,
8687         DWORD reserved2,
8688         IStorage **ppstg) = 0;
8689 
8690     virtual HRESULT STDMETHODCALLTYPE OpenStorage(
8691         const OLECHAR *pwcsName,
8692         IStorage *pstgPriority,
8693         DWORD grfMode,
8694         SNB snbExclude,
8695         DWORD reserved,
8696         IStorage **ppstg) = 0;
8697 
8698     virtual HRESULT STDMETHODCALLTYPE CopyTo(
8699         DWORD ciidExclude,
8700         const IID *rgiidExclude,
8701         SNB snbExclude,
8702         IStorage *pstgDest) = 0;
8703 
8704     virtual HRESULT STDMETHODCALLTYPE MoveElementTo(
8705         const OLECHAR *pwcsName,
8706         IStorage *pstgDest,
8707         const OLECHAR *pwcsNewName,
8708         DWORD grfFlags) = 0;
8709 
8710     virtual HRESULT STDMETHODCALLTYPE Commit(
8711         DWORD grfCommitFlags) = 0;
8712 
8713     virtual HRESULT STDMETHODCALLTYPE Revert(
8714         ) = 0;
8715 
8716     virtual HRESULT STDMETHODCALLTYPE EnumElements(
8717         DWORD reserved1,
8718         void *reserved2,
8719         DWORD reserved3,
8720         IEnumSTATSTG **ppenum) = 0;
8721 
8722     virtual HRESULT STDMETHODCALLTYPE DestroyElement(
8723         const OLECHAR *pwcsName) = 0;
8724 
8725     virtual HRESULT STDMETHODCALLTYPE RenameElement(
8726         const OLECHAR *pwcsOldName,
8727         const OLECHAR *pwcsNewName) = 0;
8728 
8729     virtual HRESULT STDMETHODCALLTYPE SetElementTimes(
8730         const OLECHAR *pwcsName,
8731         const FILETIME *pctime,
8732         const FILETIME *patime,
8733         const FILETIME *pmtime) = 0;
8734 
8735     virtual HRESULT STDMETHODCALLTYPE SetClass(
8736         REFCLSID clsid) = 0;
8737 
8738     virtual HRESULT STDMETHODCALLTYPE SetStateBits(
8739         DWORD grfStateBits,
8740         DWORD grfMask) = 0;
8741 
8742     virtual HRESULT STDMETHODCALLTYPE Stat(
8743         STATSTG *pstatstg,
8744         DWORD grfStatFlag) = 0;
8745 
8746 };
8747 #ifdef __CRT_UUID_DECL
8748 __CRT_UUID_DECL(IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8749 #endif
8750 #else
8751 typedef struct IStorageVtbl {
8752     BEGIN_INTERFACE
8753 
8754     /*** IUnknown methods ***/
8755     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8756         IStorage *This,
8757         REFIID riid,
8758         void **ppvObject);
8759 
8760     ULONG (STDMETHODCALLTYPE *AddRef)(
8761         IStorage *This);
8762 
8763     ULONG (STDMETHODCALLTYPE *Release)(
8764         IStorage *This);
8765 
8766     /*** IStorage methods ***/
8767     HRESULT (STDMETHODCALLTYPE *CreateStream)(
8768         IStorage *This,
8769         const OLECHAR *pwcsName,
8770         DWORD grfMode,
8771         DWORD reserved1,
8772         DWORD reserved2,
8773         IStream **ppstm);
8774 
8775     HRESULT (STDMETHODCALLTYPE *OpenStream)(
8776         IStorage *This,
8777         const OLECHAR *pwcsName,
8778         void *reserved1,
8779         DWORD grfMode,
8780         DWORD reserved2,
8781         IStream **ppstm);
8782 
8783     HRESULT (STDMETHODCALLTYPE *CreateStorage)(
8784         IStorage *This,
8785         const OLECHAR *pwcsName,
8786         DWORD grfMode,
8787         DWORD reserved1,
8788         DWORD reserved2,
8789         IStorage **ppstg);
8790 
8791     HRESULT (STDMETHODCALLTYPE *OpenStorage)(
8792         IStorage *This,
8793         const OLECHAR *pwcsName,
8794         IStorage *pstgPriority,
8795         DWORD grfMode,
8796         SNB snbExclude,
8797         DWORD reserved,
8798         IStorage **ppstg);
8799 
8800     HRESULT (STDMETHODCALLTYPE *CopyTo)(
8801         IStorage *This,
8802         DWORD ciidExclude,
8803         const IID *rgiidExclude,
8804         SNB snbExclude,
8805         IStorage *pstgDest);
8806 
8807     HRESULT (STDMETHODCALLTYPE *MoveElementTo)(
8808         IStorage *This,
8809         const OLECHAR *pwcsName,
8810         IStorage *pstgDest,
8811         const OLECHAR *pwcsNewName,
8812         DWORD grfFlags);
8813 
8814     HRESULT (STDMETHODCALLTYPE *Commit)(
8815         IStorage *This,
8816         DWORD grfCommitFlags);
8817 
8818     HRESULT (STDMETHODCALLTYPE *Revert)(
8819         IStorage *This);
8820 
8821     HRESULT (STDMETHODCALLTYPE *EnumElements)(
8822         IStorage *This,
8823         DWORD reserved1,
8824         void *reserved2,
8825         DWORD reserved3,
8826         IEnumSTATSTG **ppenum);
8827 
8828     HRESULT (STDMETHODCALLTYPE *DestroyElement)(
8829         IStorage *This,
8830         const OLECHAR *pwcsName);
8831 
8832     HRESULT (STDMETHODCALLTYPE *RenameElement)(
8833         IStorage *This,
8834         const OLECHAR *pwcsOldName,
8835         const OLECHAR *pwcsNewName);
8836 
8837     HRESULT (STDMETHODCALLTYPE *SetElementTimes)(
8838         IStorage *This,
8839         const OLECHAR *pwcsName,
8840         const FILETIME *pctime,
8841         const FILETIME *patime,
8842         const FILETIME *pmtime);
8843 
8844     HRESULT (STDMETHODCALLTYPE *SetClass)(
8845         IStorage *This,
8846         REFCLSID clsid);
8847 
8848     HRESULT (STDMETHODCALLTYPE *SetStateBits)(
8849         IStorage *This,
8850         DWORD grfStateBits,
8851         DWORD grfMask);
8852 
8853     HRESULT (STDMETHODCALLTYPE *Stat)(
8854         IStorage *This,
8855         STATSTG *pstatstg,
8856         DWORD grfStatFlag);
8857 
8858     END_INTERFACE
8859 } IStorageVtbl;
8860 
8861 interface IStorage {
8862     CONST_VTBL IStorageVtbl* lpVtbl;
8863 };
8864 
8865 #ifdef COBJMACROS
8866 #ifndef WIDL_C_INLINE_WRAPPERS
8867 /*** IUnknown methods ***/
8868 #define IStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8869 #define IStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
8870 #define IStorage_Release(This) (This)->lpVtbl->Release(This)
8871 /*** IStorage methods ***/
8872 #define IStorage_CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm) (This)->lpVtbl->CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm)
8873 #define IStorage_OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm) (This)->lpVtbl->OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm)
8874 #define IStorage_CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg) (This)->lpVtbl->CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg)
8875 #define IStorage_OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg) (This)->lpVtbl->OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg)
8876 #define IStorage_CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest) (This)->lpVtbl->CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest)
8877 #define IStorage_MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags) (This)->lpVtbl->MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags)
8878 #define IStorage_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
8879 #define IStorage_Revert(This) (This)->lpVtbl->Revert(This)
8880 #define IStorage_EnumElements(This,reserved1,reserved2,reserved3,ppenum) (This)->lpVtbl->EnumElements(This,reserved1,reserved2,reserved3,ppenum)
8881 #define IStorage_DestroyElement(This,pwcsName) (This)->lpVtbl->DestroyElement(This,pwcsName)
8882 #define IStorage_RenameElement(This,pwcsOldName,pwcsNewName) (This)->lpVtbl->RenameElement(This,pwcsOldName,pwcsNewName)
8883 #define IStorage_SetElementTimes(This,pwcsName,pctime,patime,pmtime) (This)->lpVtbl->SetElementTimes(This,pwcsName,pctime,patime,pmtime)
8884 #define IStorage_SetClass(This,clsid) (This)->lpVtbl->SetClass(This,clsid)
8885 #define IStorage_SetStateBits(This,grfStateBits,grfMask) (This)->lpVtbl->SetStateBits(This,grfStateBits,grfMask)
8886 #define IStorage_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
8887 #else
8888 /*** IUnknown methods ***/
8889 static FORCEINLINE HRESULT IStorage_QueryInterface(IStorage* This,REFIID riid,void **ppvObject) {
8890     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8891 }
8892 static FORCEINLINE ULONG IStorage_AddRef(IStorage* This) {
8893     return This->lpVtbl->AddRef(This);
8894 }
8895 static FORCEINLINE ULONG IStorage_Release(IStorage* This) {
8896     return This->lpVtbl->Release(This);
8897 }
8898 /*** IStorage methods ***/
8899 static FORCEINLINE HRESULT IStorage_CreateStream(IStorage* This,const OLECHAR *pwcsName,DWORD grfMode,DWORD reserved1,DWORD reserved2,IStream **ppstm) {
8900     return This->lpVtbl->CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm);
8901 }
8902 static FORCEINLINE HRESULT IStorage_OpenStream(IStorage* This,const OLECHAR *pwcsName,void *reserved1,DWORD grfMode,DWORD reserved2,IStream **ppstm) {
8903     return This->lpVtbl->OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm);
8904 }
8905 static FORCEINLINE HRESULT IStorage_CreateStorage(IStorage* This,const OLECHAR *pwcsName,DWORD grfMode,DWORD reserved1,DWORD reserved2,IStorage **ppstg) {
8906     return This->lpVtbl->CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg);
8907 }
8908 static FORCEINLINE HRESULT IStorage_OpenStorage(IStorage* This,const OLECHAR *pwcsName,IStorage *pstgPriority,DWORD grfMode,SNB snbExclude,DWORD reserved,IStorage **ppstg) {
8909     return This->lpVtbl->OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg);
8910 }
8911 static FORCEINLINE HRESULT IStorage_CopyTo(IStorage* This,DWORD ciidExclude,const IID *rgiidExclude,SNB snbExclude,IStorage *pstgDest) {
8912     return This->lpVtbl->CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest);
8913 }
8914 static FORCEINLINE HRESULT IStorage_MoveElementTo(IStorage* This,const OLECHAR *pwcsName,IStorage *pstgDest,const OLECHAR *pwcsNewName,DWORD grfFlags) {
8915     return This->lpVtbl->MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags);
8916 }
8917 static FORCEINLINE HRESULT IStorage_Commit(IStorage* This,DWORD grfCommitFlags) {
8918     return This->lpVtbl->Commit(This,grfCommitFlags);
8919 }
8920 static FORCEINLINE HRESULT IStorage_Revert(IStorage* This) {
8921     return This->lpVtbl->Revert(This);
8922 }
8923 static FORCEINLINE HRESULT IStorage_EnumElements(IStorage* This,DWORD reserved1,void *reserved2,DWORD reserved3,IEnumSTATSTG **ppenum) {
8924     return This->lpVtbl->EnumElements(This,reserved1,reserved2,reserved3,ppenum);
8925 }
8926 static FORCEINLINE HRESULT IStorage_DestroyElement(IStorage* This,const OLECHAR *pwcsName) {
8927     return This->lpVtbl->DestroyElement(This,pwcsName);
8928 }
8929 static FORCEINLINE HRESULT IStorage_RenameElement(IStorage* This,const OLECHAR *pwcsOldName,const OLECHAR *pwcsNewName) {
8930     return This->lpVtbl->RenameElement(This,pwcsOldName,pwcsNewName);
8931 }
8932 static FORCEINLINE HRESULT IStorage_SetElementTimes(IStorage* This,const OLECHAR *pwcsName,const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime) {
8933     return This->lpVtbl->SetElementTimes(This,pwcsName,pctime,patime,pmtime);
8934 }
8935 static FORCEINLINE HRESULT IStorage_SetClass(IStorage* This,REFCLSID clsid) {
8936     return This->lpVtbl->SetClass(This,clsid);
8937 }
8938 static FORCEINLINE HRESULT IStorage_SetStateBits(IStorage* This,DWORD grfStateBits,DWORD grfMask) {
8939     return This->lpVtbl->SetStateBits(This,grfStateBits,grfMask);
8940 }
8941 static FORCEINLINE HRESULT IStorage_Stat(IStorage* This,STATSTG *pstatstg,DWORD grfStatFlag) {
8942     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
8943 }
8944 #endif
8945 #endif
8946 
8947 #endif
8948 
8949 HRESULT STDMETHODCALLTYPE IStorage_RemoteOpenStream_Proxy(
8950     IStorage* This,
8951     const OLECHAR *pwcsName,
8952     ULONG cbReserved1,
8953     byte *reserved1,
8954     DWORD grfMode,
8955     DWORD reserved2,
8956     IStream **ppstm);
8957 void __RPC_STUB IStorage_RemoteOpenStream_Stub(
8958     IRpcStubBuffer* This,
8959     IRpcChannelBuffer* pRpcChannelBuffer,
8960     PRPC_MESSAGE pRpcMessage,
8961     DWORD* pdwStubPhase);
8962 HRESULT STDMETHODCALLTYPE IStorage_RemoteCopyTo_Proxy(
8963     IStorage* This,
8964     DWORD ciidExclude,
8965     const IID *rgiidExclude,
8966     SNB snbExclude,
8967     IStorage *pstgDest);
8968 void __RPC_STUB IStorage_RemoteCopyTo_Stub(
8969     IRpcStubBuffer* This,
8970     IRpcChannelBuffer* pRpcChannelBuffer,
8971     PRPC_MESSAGE pRpcMessage,
8972     DWORD* pdwStubPhase);
8973 HRESULT STDMETHODCALLTYPE IStorage_RemoteEnumElements_Proxy(
8974     IStorage* This,
8975     DWORD reserved1,
8976     ULONG cbReserved2,
8977     byte *reserved2,
8978     DWORD reserved3,
8979     IEnumSTATSTG **ppenum);
8980 void __RPC_STUB IStorage_RemoteEnumElements_Stub(
8981     IRpcStubBuffer* This,
8982     IRpcChannelBuffer* pRpcChannelBuffer,
8983     PRPC_MESSAGE pRpcMessage,
8984     DWORD* pdwStubPhase);
8985 HRESULT CALLBACK IStorage_OpenStream_Proxy(
8986     IStorage* This,
8987     const OLECHAR *pwcsName,
8988     void *reserved1,
8989     DWORD grfMode,
8990     DWORD reserved2,
8991     IStream **ppstm);
8992 HRESULT __RPC_STUB IStorage_OpenStream_Stub(
8993     IStorage* This,
8994     const OLECHAR *pwcsName,
8995     ULONG cbReserved1,
8996     byte *reserved1,
8997     DWORD grfMode,
8998     DWORD reserved2,
8999     IStream **ppstm);
9000 HRESULT CALLBACK IStorage_CopyTo_Proxy(
9001     IStorage* This,
9002     DWORD ciidExclude,
9003     const IID *rgiidExclude,
9004     SNB snbExclude,
9005     IStorage *pstgDest);
9006 HRESULT __RPC_STUB IStorage_CopyTo_Stub(
9007     IStorage* This,
9008     DWORD ciidExclude,
9009     const IID *rgiidExclude,
9010     SNB snbExclude,
9011     IStorage *pstgDest);
9012 HRESULT CALLBACK IStorage_EnumElements_Proxy(
9013     IStorage* This,
9014     DWORD reserved1,
9015     void *reserved2,
9016     DWORD reserved3,
9017     IEnumSTATSTG **ppenum);
9018 HRESULT __RPC_STUB IStorage_EnumElements_Stub(
9019     IStorage* This,
9020     DWORD reserved1,
9021     ULONG cbReserved2,
9022     byte *reserved2,
9023     DWORD reserved3,
9024     IEnumSTATSTG **ppenum);
9025 
9026 #endif  /* __IStorage_INTERFACE_DEFINED__ */
9027 
9028 #endif
9029 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
9030 /*****************************************************************************
9031  * IPersistFile interface
9032  */
9033 #ifndef __IPersistFile_INTERFACE_DEFINED__
9034 #define __IPersistFile_INTERFACE_DEFINED__
9035 
9036 typedef IPersistFile *LPPERSISTFILE;
9037 DEFINE_GUID(IID_IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9038 #if defined(__cplusplus) && !defined(CINTERFACE)
9039 MIDL_INTERFACE("0000010b-0000-0000-c000-000000000046")
9040 IPersistFile : public IPersist
9041 {
9042     virtual HRESULT STDMETHODCALLTYPE IsDirty(
9043         ) = 0;
9044 
9045     virtual HRESULT STDMETHODCALLTYPE Load(
9046         LPCOLESTR pszFileName,
9047         DWORD dwMode) = 0;
9048 
9049     virtual HRESULT STDMETHODCALLTYPE Save(
9050         LPCOLESTR pszFileName,
9051         WINBOOL fRemember) = 0;
9052 
9053     virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
9054         LPCOLESTR pszFileName) = 0;
9055 
9056     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
9057         LPOLESTR *ppszFileName) = 0;
9058 
9059 };
9060 #ifdef __CRT_UUID_DECL
9061 __CRT_UUID_DECL(IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
9062 #endif
9063 #else
9064 typedef struct IPersistFileVtbl {
9065     BEGIN_INTERFACE
9066 
9067     /*** IUnknown methods ***/
9068     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9069         IPersistFile *This,
9070         REFIID riid,
9071         void **ppvObject);
9072 
9073     ULONG (STDMETHODCALLTYPE *AddRef)(
9074         IPersistFile *This);
9075 
9076     ULONG (STDMETHODCALLTYPE *Release)(
9077         IPersistFile *This);
9078 
9079     /*** IPersist methods ***/
9080     HRESULT (STDMETHODCALLTYPE *GetClassID)(
9081         IPersistFile *This,
9082         CLSID *pClassID);
9083 
9084     /*** IPersistFile methods ***/
9085     HRESULT (STDMETHODCALLTYPE *IsDirty)(
9086         IPersistFile *This);
9087 
9088     HRESULT (STDMETHODCALLTYPE *Load)(
9089         IPersistFile *This,
9090         LPCOLESTR pszFileName,
9091         DWORD dwMode);
9092 
9093     HRESULT (STDMETHODCALLTYPE *Save)(
9094         IPersistFile *This,
9095         LPCOLESTR pszFileName,
9096         WINBOOL fRemember);
9097 
9098     HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
9099         IPersistFile *This,
9100         LPCOLESTR pszFileName);
9101 
9102     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
9103         IPersistFile *This,
9104         LPOLESTR *ppszFileName);
9105 
9106     END_INTERFACE
9107 } IPersistFileVtbl;
9108 
9109 interface IPersistFile {
9110     CONST_VTBL IPersistFileVtbl* lpVtbl;
9111 };
9112 
9113 #ifdef COBJMACROS
9114 #ifndef WIDL_C_INLINE_WRAPPERS
9115 /*** IUnknown methods ***/
9116 #define IPersistFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9117 #define IPersistFile_AddRef(This) (This)->lpVtbl->AddRef(This)
9118 #define IPersistFile_Release(This) (This)->lpVtbl->Release(This)
9119 /*** IPersist methods ***/
9120 #define IPersistFile_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
9121 /*** IPersistFile methods ***/
9122 #define IPersistFile_IsDirty(This) (This)->lpVtbl->IsDirty(This)
9123 #define IPersistFile_Load(This,pszFileName,dwMode) (This)->lpVtbl->Load(This,pszFileName,dwMode)
9124 #define IPersistFile_Save(This,pszFileName,fRemember) (This)->lpVtbl->Save(This,pszFileName,fRemember)
9125 #define IPersistFile_SaveCompleted(This,pszFileName) (This)->lpVtbl->SaveCompleted(This,pszFileName)
9126 #define IPersistFile_GetCurFile(This,ppszFileName) (This)->lpVtbl->GetCurFile(This,ppszFileName)
9127 #else
9128 /*** IUnknown methods ***/
9129 static FORCEINLINE HRESULT IPersistFile_QueryInterface(IPersistFile* This,REFIID riid,void **ppvObject) {
9130     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9131 }
9132 static FORCEINLINE ULONG IPersistFile_AddRef(IPersistFile* This) {
9133     return This->lpVtbl->AddRef(This);
9134 }
9135 static FORCEINLINE ULONG IPersistFile_Release(IPersistFile* This) {
9136     return This->lpVtbl->Release(This);
9137 }
9138 /*** IPersist methods ***/
9139 static FORCEINLINE HRESULT IPersistFile_GetClassID(IPersistFile* This,CLSID *pClassID) {
9140     return This->lpVtbl->GetClassID(This,pClassID);
9141 }
9142 /*** IPersistFile methods ***/
9143 static FORCEINLINE HRESULT IPersistFile_IsDirty(IPersistFile* This) {
9144     return This->lpVtbl->IsDirty(This);
9145 }
9146 static FORCEINLINE HRESULT IPersistFile_Load(IPersistFile* This,LPCOLESTR pszFileName,DWORD dwMode) {
9147     return This->lpVtbl->Load(This,pszFileName,dwMode);
9148 }
9149 static FORCEINLINE HRESULT IPersistFile_Save(IPersistFile* This,LPCOLESTR pszFileName,WINBOOL fRemember) {
9150     return This->lpVtbl->Save(This,pszFileName,fRemember);
9151 }
9152 static FORCEINLINE HRESULT IPersistFile_SaveCompleted(IPersistFile* This,LPCOLESTR pszFileName) {
9153     return This->lpVtbl->SaveCompleted(This,pszFileName);
9154 }
9155 static FORCEINLINE HRESULT IPersistFile_GetCurFile(IPersistFile* This,LPOLESTR *ppszFileName) {
9156     return This->lpVtbl->GetCurFile(This,ppszFileName);
9157 }
9158 #endif
9159 #endif
9160 
9161 #endif
9162 
9163 
9164 #endif  /* __IPersistFile_INTERFACE_DEFINED__ */
9165 
9166 /*****************************************************************************
9167  * IPersistStorage interface
9168  */
9169 #ifndef __IPersistStorage_INTERFACE_DEFINED__
9170 #define __IPersistStorage_INTERFACE_DEFINED__
9171 
9172 typedef IPersistStorage *LPPERSISTSTORAGE;
9173 DEFINE_GUID(IID_IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9174 #if defined(__cplusplus) && !defined(CINTERFACE)
9175 MIDL_INTERFACE("0000010a-0000-0000-c000-000000000046")
9176 IPersistStorage : public IPersist
9177 {
9178     virtual HRESULT STDMETHODCALLTYPE IsDirty(
9179         ) = 0;
9180 
9181     virtual HRESULT STDMETHODCALLTYPE InitNew(
9182         IStorage *pStg) = 0;
9183 
9184     virtual HRESULT STDMETHODCALLTYPE Load(
9185         IStorage *pStg) = 0;
9186 
9187     virtual HRESULT STDMETHODCALLTYPE Save(
9188         IStorage *pStgSave,
9189         WINBOOL fSameAsLoad) = 0;
9190 
9191     virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
9192         IStorage *pStgNew) = 0;
9193 
9194     virtual HRESULT STDMETHODCALLTYPE HandsOffStorage(
9195         ) = 0;
9196 
9197 };
9198 #ifdef __CRT_UUID_DECL
9199 __CRT_UUID_DECL(IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
9200 #endif
9201 #else
9202 typedef struct IPersistStorageVtbl {
9203     BEGIN_INTERFACE
9204 
9205     /*** IUnknown methods ***/
9206     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9207         IPersistStorage *This,
9208         REFIID riid,
9209         void **ppvObject);
9210 
9211     ULONG (STDMETHODCALLTYPE *AddRef)(
9212         IPersistStorage *This);
9213 
9214     ULONG (STDMETHODCALLTYPE *Release)(
9215         IPersistStorage *This);
9216 
9217     /*** IPersist methods ***/
9218     HRESULT (STDMETHODCALLTYPE *GetClassID)(
9219         IPersistStorage *This,
9220         CLSID *pClassID);
9221 
9222     /*** IPersistStorage methods ***/
9223     HRESULT (STDMETHODCALLTYPE *IsDirty)(
9224         IPersistStorage *This);
9225 
9226     HRESULT (STDMETHODCALLTYPE *InitNew)(
9227         IPersistStorage *This,
9228         IStorage *pStg);
9229 
9230     HRESULT (STDMETHODCALLTYPE *Load)(
9231         IPersistStorage *This,
9232         IStorage *pStg);
9233 
9234     HRESULT (STDMETHODCALLTYPE *Save)(
9235         IPersistStorage *This,
9236         IStorage *pStgSave,
9237         WINBOOL fSameAsLoad);
9238 
9239     HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
9240         IPersistStorage *This,
9241         IStorage *pStgNew);
9242 
9243     HRESULT (STDMETHODCALLTYPE *HandsOffStorage)(
9244         IPersistStorage *This);
9245 
9246     END_INTERFACE
9247 } IPersistStorageVtbl;
9248 
9249 interface IPersistStorage {
9250     CONST_VTBL IPersistStorageVtbl* lpVtbl;
9251 };
9252 
9253 #ifdef COBJMACROS
9254 #ifndef WIDL_C_INLINE_WRAPPERS
9255 /*** IUnknown methods ***/
9256 #define IPersistStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9257 #define IPersistStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
9258 #define IPersistStorage_Release(This) (This)->lpVtbl->Release(This)
9259 /*** IPersist methods ***/
9260 #define IPersistStorage_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
9261 /*** IPersistStorage methods ***/
9262 #define IPersistStorage_IsDirty(This) (This)->lpVtbl->IsDirty(This)
9263 #define IPersistStorage_InitNew(This,pStg) (This)->lpVtbl->InitNew(This,pStg)
9264 #define IPersistStorage_Load(This,pStg) (This)->lpVtbl->Load(This,pStg)
9265 #define IPersistStorage_Save(This,pStgSave,fSameAsLoad) (This)->lpVtbl->Save(This,pStgSave,fSameAsLoad)
9266 #define IPersistStorage_SaveCompleted(This,pStgNew) (This)->lpVtbl->SaveCompleted(This,pStgNew)
9267 #define IPersistStorage_HandsOffStorage(This) (This)->lpVtbl->HandsOffStorage(This)
9268 #else
9269 /*** IUnknown methods ***/
9270 static FORCEINLINE HRESULT IPersistStorage_QueryInterface(IPersistStorage* This,REFIID riid,void **ppvObject) {
9271     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9272 }
9273 static FORCEINLINE ULONG IPersistStorage_AddRef(IPersistStorage* This) {
9274     return This->lpVtbl->AddRef(This);
9275 }
9276 static FORCEINLINE ULONG IPersistStorage_Release(IPersistStorage* This) {
9277     return This->lpVtbl->Release(This);
9278 }
9279 /*** IPersist methods ***/
9280 static FORCEINLINE HRESULT IPersistStorage_GetClassID(IPersistStorage* This,CLSID *pClassID) {
9281     return This->lpVtbl->GetClassID(This,pClassID);
9282 }
9283 /*** IPersistStorage methods ***/
9284 static FORCEINLINE HRESULT IPersistStorage_IsDirty(IPersistStorage* This) {
9285     return This->lpVtbl->IsDirty(This);
9286 }
9287 static FORCEINLINE HRESULT IPersistStorage_InitNew(IPersistStorage* This,IStorage *pStg) {
9288     return This->lpVtbl->InitNew(This,pStg);
9289 }
9290 static FORCEINLINE HRESULT IPersistStorage_Load(IPersistStorage* This,IStorage *pStg) {
9291     return This->lpVtbl->Load(This,pStg);
9292 }
9293 static FORCEINLINE HRESULT IPersistStorage_Save(IPersistStorage* This,IStorage *pStgSave,WINBOOL fSameAsLoad) {
9294     return This->lpVtbl->Save(This,pStgSave,fSameAsLoad);
9295 }
9296 static FORCEINLINE HRESULT IPersistStorage_SaveCompleted(IPersistStorage* This,IStorage *pStgNew) {
9297     return This->lpVtbl->SaveCompleted(This,pStgNew);
9298 }
9299 static FORCEINLINE HRESULT IPersistStorage_HandsOffStorage(IPersistStorage* This) {
9300     return This->lpVtbl->HandsOffStorage(This);
9301 }
9302 #endif
9303 #endif
9304 
9305 #endif
9306 
9307 
9308 #endif  /* __IPersistStorage_INTERFACE_DEFINED__ */
9309 
9310 #endif
9311 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
9312 /*****************************************************************************
9313  * ILockBytes interface
9314  */
9315 #ifndef __ILockBytes_INTERFACE_DEFINED__
9316 #define __ILockBytes_INTERFACE_DEFINED__
9317 
9318 typedef ILockBytes *LPLOCKBYTES;
9319 DEFINE_GUID(IID_ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9320 #if defined(__cplusplus) && !defined(CINTERFACE)
9321 MIDL_INTERFACE("0000000a-0000-0000-c000-000000000046")
9322 ILockBytes : public IUnknown
9323 {
9324     virtual HRESULT STDMETHODCALLTYPE ReadAt(
9325         ULARGE_INTEGER ulOffset,
9326         void *pv,
9327         ULONG cb,
9328         ULONG *pcbRead) = 0;
9329 
9330     virtual HRESULT STDMETHODCALLTYPE WriteAt(
9331         ULARGE_INTEGER ulOffset,
9332         const void *pv,
9333         ULONG cb,
9334         ULONG *pcbWritten) = 0;
9335 
9336     virtual HRESULT STDMETHODCALLTYPE Flush(
9337         ) = 0;
9338 
9339     virtual HRESULT STDMETHODCALLTYPE SetSize(
9340         ULARGE_INTEGER cb) = 0;
9341 
9342     virtual HRESULT STDMETHODCALLTYPE LockRegion(
9343         ULARGE_INTEGER libOffset,
9344         ULARGE_INTEGER cb,
9345         DWORD dwLockType) = 0;
9346 
9347     virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
9348         ULARGE_INTEGER libOffset,
9349         ULARGE_INTEGER cb,
9350         DWORD dwLockType) = 0;
9351 
9352     virtual HRESULT STDMETHODCALLTYPE Stat(
9353         STATSTG *pstatstg,
9354         DWORD grfStatFlag) = 0;
9355 
9356 };
9357 #ifdef __CRT_UUID_DECL
9358 __CRT_UUID_DECL(ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
9359 #endif
9360 #else
9361 typedef struct ILockBytesVtbl {
9362     BEGIN_INTERFACE
9363 
9364     /*** IUnknown methods ***/
9365     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9366         ILockBytes *This,
9367         REFIID riid,
9368         void **ppvObject);
9369 
9370     ULONG (STDMETHODCALLTYPE *AddRef)(
9371         ILockBytes *This);
9372 
9373     ULONG (STDMETHODCALLTYPE *Release)(
9374         ILockBytes *This);
9375 
9376     /*** ILockBytes methods ***/
9377     HRESULT (STDMETHODCALLTYPE *ReadAt)(
9378         ILockBytes *This,
9379         ULARGE_INTEGER ulOffset,
9380         void *pv,
9381         ULONG cb,
9382         ULONG *pcbRead);
9383 
9384     HRESULT (STDMETHODCALLTYPE *WriteAt)(
9385         ILockBytes *This,
9386         ULARGE_INTEGER ulOffset,
9387         const void *pv,
9388         ULONG cb,
9389         ULONG *pcbWritten);
9390 
9391     HRESULT (STDMETHODCALLTYPE *Flush)(
9392         ILockBytes *This);
9393 
9394     HRESULT (STDMETHODCALLTYPE *SetSize)(
9395         ILockBytes *This,
9396         ULARGE_INTEGER cb);
9397 
9398     HRESULT (STDMETHODCALLTYPE *LockRegion)(
9399         ILockBytes *This,
9400         ULARGE_INTEGER libOffset,
9401         ULARGE_INTEGER cb,
9402         DWORD dwLockType);
9403 
9404     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
9405         ILockBytes *This,
9406         ULARGE_INTEGER libOffset,
9407         ULARGE_INTEGER cb,
9408         DWORD dwLockType);
9409 
9410     HRESULT (STDMETHODCALLTYPE *Stat)(
9411         ILockBytes *This,
9412         STATSTG *pstatstg,
9413         DWORD grfStatFlag);
9414 
9415     END_INTERFACE
9416 } ILockBytesVtbl;
9417 
9418 interface ILockBytes {
9419     CONST_VTBL ILockBytesVtbl* lpVtbl;
9420 };
9421 
9422 #ifdef COBJMACROS
9423 #ifndef WIDL_C_INLINE_WRAPPERS
9424 /*** IUnknown methods ***/
9425 #define ILockBytes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9426 #define ILockBytes_AddRef(This) (This)->lpVtbl->AddRef(This)
9427 #define ILockBytes_Release(This) (This)->lpVtbl->Release(This)
9428 /*** ILockBytes methods ***/
9429 #define ILockBytes_ReadAt(This,ulOffset,pv,cb,pcbRead) (This)->lpVtbl->ReadAt(This,ulOffset,pv,cb,pcbRead)
9430 #define ILockBytes_WriteAt(This,ulOffset,pv,cb,pcbWritten) (This)->lpVtbl->WriteAt(This,ulOffset,pv,cb,pcbWritten)
9431 #define ILockBytes_Flush(This) (This)->lpVtbl->Flush(This)
9432 #define ILockBytes_SetSize(This,cb) (This)->lpVtbl->SetSize(This,cb)
9433 #define ILockBytes_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
9434 #define ILockBytes_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
9435 #define ILockBytes_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
9436 #else
9437 /*** IUnknown methods ***/
9438 static FORCEINLINE HRESULT ILockBytes_QueryInterface(ILockBytes* This,REFIID riid,void **ppvObject) {
9439     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9440 }
9441 static FORCEINLINE ULONG ILockBytes_AddRef(ILockBytes* This) {
9442     return This->lpVtbl->AddRef(This);
9443 }
9444 static FORCEINLINE ULONG ILockBytes_Release(ILockBytes* This) {
9445     return This->lpVtbl->Release(This);
9446 }
9447 /*** ILockBytes methods ***/
9448 static FORCEINLINE HRESULT ILockBytes_ReadAt(ILockBytes* This,ULARGE_INTEGER ulOffset,void *pv,ULONG cb,ULONG *pcbRead) {
9449     return This->lpVtbl->ReadAt(This,ulOffset,pv,cb,pcbRead);
9450 }
9451 static FORCEINLINE HRESULT ILockBytes_WriteAt(ILockBytes* This,ULARGE_INTEGER ulOffset,const void *pv,ULONG cb,ULONG *pcbWritten) {
9452     return This->lpVtbl->WriteAt(This,ulOffset,pv,cb,pcbWritten);
9453 }
9454 static FORCEINLINE HRESULT ILockBytes_Flush(ILockBytes* This) {
9455     return This->lpVtbl->Flush(This);
9456 }
9457 static FORCEINLINE HRESULT ILockBytes_SetSize(ILockBytes* This,ULARGE_INTEGER cb) {
9458     return This->lpVtbl->SetSize(This,cb);
9459 }
9460 static FORCEINLINE HRESULT ILockBytes_LockRegion(ILockBytes* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
9461     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
9462 }
9463 static FORCEINLINE HRESULT ILockBytes_UnlockRegion(ILockBytes* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
9464     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
9465 }
9466 static FORCEINLINE HRESULT ILockBytes_Stat(ILockBytes* This,STATSTG *pstatstg,DWORD grfStatFlag) {
9467     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
9468 }
9469 #endif
9470 #endif
9471 
9472 #endif
9473 
9474 HRESULT __stdcall ILockBytes_RemoteReadAt_Proxy(
9475     ILockBytes* This,
9476     ULARGE_INTEGER ulOffset,
9477     byte *pv,
9478     ULONG cb,
9479     ULONG *pcbRead);
9480 void __RPC_STUB ILockBytes_RemoteReadAt_Stub(
9481     IRpcStubBuffer* This,
9482     IRpcChannelBuffer* pRpcChannelBuffer,
9483     PRPC_MESSAGE pRpcMessage,
9484     DWORD* pdwStubPhase);
9485 HRESULT STDMETHODCALLTYPE ILockBytes_RemoteWriteAt_Proxy(
9486     ILockBytes* This,
9487     ULARGE_INTEGER ulOffset,
9488     const byte *pv,
9489     ULONG cb,
9490     ULONG *pcbWritten);
9491 void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
9492     IRpcStubBuffer* This,
9493     IRpcChannelBuffer* pRpcChannelBuffer,
9494     PRPC_MESSAGE pRpcMessage,
9495     DWORD* pdwStubPhase);
9496 HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
9497     ILockBytes* This,
9498     ULARGE_INTEGER ulOffset,
9499     void *pv,
9500     ULONG cb,
9501     ULONG *pcbRead);
9502 HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
9503     ILockBytes* This,
9504     ULARGE_INTEGER ulOffset,
9505     byte *pv,
9506     ULONG cb,
9507     ULONG *pcbRead);
9508 HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
9509     ILockBytes* This,
9510     ULARGE_INTEGER ulOffset,
9511     const void *pv,
9512     ULONG cb,
9513     ULONG *pcbWritten);
9514 HRESULT __RPC_STUB ILockBytes_WriteAt_Stub(
9515     ILockBytes* This,
9516     ULARGE_INTEGER ulOffset,
9517     const byte *pv,
9518     ULONG cb,
9519     ULONG *pcbWritten);
9520 
9521 #endif  /* __ILockBytes_INTERFACE_DEFINED__ */
9522 
9523 /*****************************************************************************
9524  * IEnumFORMATETC interface
9525  */
9526 #ifndef __IEnumFORMATETC_INTERFACE_DEFINED__
9527 #define __IEnumFORMATETC_INTERFACE_DEFINED__
9528 
9529 typedef IEnumFORMATETC *LPENUMFORMATETC;
9530 typedef struct tagDVTARGETDEVICE {
9531     DWORD tdSize;
9532     WORD tdDriverNameOffset;
9533     WORD tdDeviceNameOffset;
9534     WORD tdPortNameOffset;
9535     WORD tdExtDevmodeOffset;
9536     BYTE tdData[1];
9537 } DVTARGETDEVICE;
9538 typedef CLIPFORMAT *LPCLIPFORMAT;
9539 typedef struct tagFORMATETC {
9540     CLIPFORMAT cfFormat;
9541     DVTARGETDEVICE *ptd;
9542     DWORD dwAspect;
9543     LONG lindex;
9544     DWORD tymed;
9545 } FORMATETC;
9546 typedef struct tagFORMATETC *LPFORMATETC;
9547 DEFINE_GUID(IID_IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9548 #if defined(__cplusplus) && !defined(CINTERFACE)
9549 MIDL_INTERFACE("00000103-0000-0000-c000-000000000046")
9550 IEnumFORMATETC : public IUnknown
9551 {
9552     virtual HRESULT STDMETHODCALLTYPE Next(
9553         ULONG celt,
9554         FORMATETC *rgelt,
9555         ULONG *pceltFetched) = 0;
9556 
9557     virtual HRESULT STDMETHODCALLTYPE Skip(
9558         ULONG celt) = 0;
9559 
9560     virtual HRESULT STDMETHODCALLTYPE Reset(
9561         ) = 0;
9562 
9563     virtual HRESULT STDMETHODCALLTYPE Clone(
9564         IEnumFORMATETC **ppenum) = 0;
9565 
9566 };
9567 #ifdef __CRT_UUID_DECL
9568 __CRT_UUID_DECL(IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
9569 #endif
9570 #else
9571 typedef struct IEnumFORMATETCVtbl {
9572     BEGIN_INTERFACE
9573 
9574     /*** IUnknown methods ***/
9575     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9576         IEnumFORMATETC *This,
9577         REFIID riid,
9578         void **ppvObject);
9579 
9580     ULONG (STDMETHODCALLTYPE *AddRef)(
9581         IEnumFORMATETC *This);
9582 
9583     ULONG (STDMETHODCALLTYPE *Release)(
9584         IEnumFORMATETC *This);
9585 
9586     /*** IEnumFORMATETC methods ***/
9587     HRESULT (STDMETHODCALLTYPE *Next)(
9588         IEnumFORMATETC *This,
9589         ULONG celt,
9590         FORMATETC *rgelt,
9591         ULONG *pceltFetched);
9592 
9593     HRESULT (STDMETHODCALLTYPE *Skip)(
9594         IEnumFORMATETC *This,
9595         ULONG celt);
9596 
9597     HRESULT (STDMETHODCALLTYPE *Reset)(
9598         IEnumFORMATETC *This);
9599 
9600     HRESULT (STDMETHODCALLTYPE *Clone)(
9601         IEnumFORMATETC *This,
9602         IEnumFORMATETC **ppenum);
9603 
9604     END_INTERFACE
9605 } IEnumFORMATETCVtbl;
9606 
9607 interface IEnumFORMATETC {
9608     CONST_VTBL IEnumFORMATETCVtbl* lpVtbl;
9609 };
9610 
9611 #ifdef COBJMACROS
9612 #ifndef WIDL_C_INLINE_WRAPPERS
9613 /*** IUnknown methods ***/
9614 #define IEnumFORMATETC_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9615 #define IEnumFORMATETC_AddRef(This) (This)->lpVtbl->AddRef(This)
9616 #define IEnumFORMATETC_Release(This) (This)->lpVtbl->Release(This)
9617 /*** IEnumFORMATETC methods ***/
9618 #define IEnumFORMATETC_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
9619 #define IEnumFORMATETC_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
9620 #define IEnumFORMATETC_Reset(This) (This)->lpVtbl->Reset(This)
9621 #define IEnumFORMATETC_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
9622 #else
9623 /*** IUnknown methods ***/
9624 static FORCEINLINE HRESULT IEnumFORMATETC_QueryInterface(IEnumFORMATETC* This,REFIID riid,void **ppvObject) {
9625     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9626 }
9627 static FORCEINLINE ULONG IEnumFORMATETC_AddRef(IEnumFORMATETC* This) {
9628     return This->lpVtbl->AddRef(This);
9629 }
9630 static FORCEINLINE ULONG IEnumFORMATETC_Release(IEnumFORMATETC* This) {
9631     return This->lpVtbl->Release(This);
9632 }
9633 /*** IEnumFORMATETC methods ***/
9634 static FORCEINLINE HRESULT IEnumFORMATETC_Next(IEnumFORMATETC* This,ULONG celt,FORMATETC *rgelt,ULONG *pceltFetched) {
9635     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
9636 }
9637 static FORCEINLINE HRESULT IEnumFORMATETC_Skip(IEnumFORMATETC* This,ULONG celt) {
9638     return This->lpVtbl->Skip(This,celt);
9639 }
9640 static FORCEINLINE HRESULT IEnumFORMATETC_Reset(IEnumFORMATETC* This) {
9641     return This->lpVtbl->Reset(This);
9642 }
9643 static FORCEINLINE HRESULT IEnumFORMATETC_Clone(IEnumFORMATETC* This,IEnumFORMATETC **ppenum) {
9644     return This->lpVtbl->Clone(This,ppenum);
9645 }
9646 #endif
9647 #endif
9648 
9649 #endif
9650 
9651 HRESULT STDMETHODCALLTYPE IEnumFORMATETC_RemoteNext_Proxy(
9652     IEnumFORMATETC* This,
9653     ULONG celt,
9654     FORMATETC *rgelt,
9655     ULONG *pceltFetched);
9656 void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
9657     IRpcStubBuffer* This,
9658     IRpcChannelBuffer* pRpcChannelBuffer,
9659     PRPC_MESSAGE pRpcMessage,
9660     DWORD* pdwStubPhase);
9661 HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
9662     IEnumFORMATETC* This,
9663     ULONG celt,
9664     FORMATETC *rgelt,
9665     ULONG *pceltFetched);
9666 HRESULT __RPC_STUB IEnumFORMATETC_Next_Stub(
9667     IEnumFORMATETC* This,
9668     ULONG celt,
9669     FORMATETC *rgelt,
9670     ULONG *pceltFetched);
9671 
9672 #endif  /* __IEnumFORMATETC_INTERFACE_DEFINED__ */
9673 
9674 /*****************************************************************************
9675  * IEnumSTATDATA interface
9676  */
9677 #ifndef __IEnumSTATDATA_INTERFACE_DEFINED__
9678 #define __IEnumSTATDATA_INTERFACE_DEFINED__
9679 
9680 typedef IEnumSTATDATA *LPENUMSTATDATA;
9681 typedef enum tagADVF {
9682     ADVF_NODATA = 1,
9683     ADVF_PRIMEFIRST = 2,
9684     ADVF_ONLYONCE = 4,
9685     ADVF_DATAONSTOP = 64,
9686     ADVFCACHE_NOHANDLER = 8,
9687     ADVFCACHE_FORCEBUILTIN = 16,
9688     ADVFCACHE_ONSAVE = 32
9689 } ADVF;
9690 typedef struct tagSTATDATA {
9691     FORMATETC formatetc;
9692     DWORD advf;
9693     IAdviseSink *pAdvSink;
9694     DWORD dwConnection;
9695 } STATDATA;
9696 typedef STATDATA *LPSTATDATA;
9697 DEFINE_GUID(IID_IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9698 #if defined(__cplusplus) && !defined(CINTERFACE)
9699 MIDL_INTERFACE("00000105-0000-0000-c000-000000000046")
9700 IEnumSTATDATA : public IUnknown
9701 {
9702     virtual HRESULT STDMETHODCALLTYPE Next(
9703         ULONG celt,
9704         STATDATA *rgelt,
9705         ULONG *pceltFetched) = 0;
9706 
9707     virtual HRESULT STDMETHODCALLTYPE Skip(
9708         ULONG celt) = 0;
9709 
9710     virtual HRESULT STDMETHODCALLTYPE Reset(
9711         ) = 0;
9712 
9713     virtual HRESULT STDMETHODCALLTYPE Clone(
9714         IEnumSTATDATA **ppenum) = 0;
9715 
9716 };
9717 #ifdef __CRT_UUID_DECL
9718 __CRT_UUID_DECL(IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
9719 #endif
9720 #else
9721 typedef struct IEnumSTATDATAVtbl {
9722     BEGIN_INTERFACE
9723 
9724     /*** IUnknown methods ***/
9725     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9726         IEnumSTATDATA *This,
9727         REFIID riid,
9728         void **ppvObject);
9729 
9730     ULONG (STDMETHODCALLTYPE *AddRef)(
9731         IEnumSTATDATA *This);
9732 
9733     ULONG (STDMETHODCALLTYPE *Release)(
9734         IEnumSTATDATA *This);
9735 
9736     /*** IEnumSTATDATA methods ***/
9737     HRESULT (STDMETHODCALLTYPE *Next)(
9738         IEnumSTATDATA *This,
9739         ULONG celt,
9740         STATDATA *rgelt,
9741         ULONG *pceltFetched);
9742 
9743     HRESULT (STDMETHODCALLTYPE *Skip)(
9744         IEnumSTATDATA *This,
9745         ULONG celt);
9746 
9747     HRESULT (STDMETHODCALLTYPE *Reset)(
9748         IEnumSTATDATA *This);
9749 
9750     HRESULT (STDMETHODCALLTYPE *Clone)(
9751         IEnumSTATDATA *This,
9752         IEnumSTATDATA **ppenum);
9753 
9754     END_INTERFACE
9755 } IEnumSTATDATAVtbl;
9756 
9757 interface IEnumSTATDATA {
9758     CONST_VTBL IEnumSTATDATAVtbl* lpVtbl;
9759 };
9760 
9761 #ifdef COBJMACROS
9762 #ifndef WIDL_C_INLINE_WRAPPERS
9763 /*** IUnknown methods ***/
9764 #define IEnumSTATDATA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9765 #define IEnumSTATDATA_AddRef(This) (This)->lpVtbl->AddRef(This)
9766 #define IEnumSTATDATA_Release(This) (This)->lpVtbl->Release(This)
9767 /*** IEnumSTATDATA methods ***/
9768 #define IEnumSTATDATA_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
9769 #define IEnumSTATDATA_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
9770 #define IEnumSTATDATA_Reset(This) (This)->lpVtbl->Reset(This)
9771 #define IEnumSTATDATA_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
9772 #else
9773 /*** IUnknown methods ***/
9774 static FORCEINLINE HRESULT IEnumSTATDATA_QueryInterface(IEnumSTATDATA* This,REFIID riid,void **ppvObject) {
9775     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9776 }
9777 static FORCEINLINE ULONG IEnumSTATDATA_AddRef(IEnumSTATDATA* This) {
9778     return This->lpVtbl->AddRef(This);
9779 }
9780 static FORCEINLINE ULONG IEnumSTATDATA_Release(IEnumSTATDATA* This) {
9781     return This->lpVtbl->Release(This);
9782 }
9783 /*** IEnumSTATDATA methods ***/
9784 static FORCEINLINE HRESULT IEnumSTATDATA_Next(IEnumSTATDATA* This,ULONG celt,STATDATA *rgelt,ULONG *pceltFetched) {
9785     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
9786 }
9787 static FORCEINLINE HRESULT IEnumSTATDATA_Skip(IEnumSTATDATA* This,ULONG celt) {
9788     return This->lpVtbl->Skip(This,celt);
9789 }
9790 static FORCEINLINE HRESULT IEnumSTATDATA_Reset(IEnumSTATDATA* This) {
9791     return This->lpVtbl->Reset(This);
9792 }
9793 static FORCEINLINE HRESULT IEnumSTATDATA_Clone(IEnumSTATDATA* This,IEnumSTATDATA **ppenum) {
9794     return This->lpVtbl->Clone(This,ppenum);
9795 }
9796 #endif
9797 #endif
9798 
9799 #endif
9800 
9801 HRESULT STDMETHODCALLTYPE IEnumSTATDATA_RemoteNext_Proxy(
9802     IEnumSTATDATA* This,
9803     ULONG celt,
9804     STATDATA *rgelt,
9805     ULONG *pceltFetched);
9806 void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
9807     IRpcStubBuffer* This,
9808     IRpcChannelBuffer* pRpcChannelBuffer,
9809     PRPC_MESSAGE pRpcMessage,
9810     DWORD* pdwStubPhase);
9811 HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
9812     IEnumSTATDATA* This,
9813     ULONG celt,
9814     STATDATA *rgelt,
9815     ULONG *pceltFetched);
9816 HRESULT __RPC_STUB IEnumSTATDATA_Next_Stub(
9817     IEnumSTATDATA* This,
9818     ULONG celt,
9819     STATDATA *rgelt,
9820     ULONG *pceltFetched);
9821 
9822 #endif  /* __IEnumSTATDATA_INTERFACE_DEFINED__ */
9823 
9824 /*****************************************************************************
9825  * IRootStorage interface
9826  */
9827 #ifndef __IRootStorage_INTERFACE_DEFINED__
9828 #define __IRootStorage_INTERFACE_DEFINED__
9829 
9830 typedef IRootStorage *LPROOTSTORAGE;
9831 DEFINE_GUID(IID_IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9832 #if defined(__cplusplus) && !defined(CINTERFACE)
9833 MIDL_INTERFACE("00000012-0000-0000-c000-000000000046")
9834 IRootStorage : public IUnknown
9835 {
9836     virtual HRESULT STDMETHODCALLTYPE SwitchToFile(
9837         LPOLESTR pszFile) = 0;
9838 
9839 };
9840 #ifdef __CRT_UUID_DECL
9841 __CRT_UUID_DECL(IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
9842 #endif
9843 #else
9844 typedef struct IRootStorageVtbl {
9845     BEGIN_INTERFACE
9846 
9847     /*** IUnknown methods ***/
9848     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9849         IRootStorage *This,
9850         REFIID riid,
9851         void **ppvObject);
9852 
9853     ULONG (STDMETHODCALLTYPE *AddRef)(
9854         IRootStorage *This);
9855 
9856     ULONG (STDMETHODCALLTYPE *Release)(
9857         IRootStorage *This);
9858 
9859     /*** IRootStorage methods ***/
9860     HRESULT (STDMETHODCALLTYPE *SwitchToFile)(
9861         IRootStorage *This,
9862         LPOLESTR pszFile);
9863 
9864     END_INTERFACE
9865 } IRootStorageVtbl;
9866 
9867 interface IRootStorage {
9868     CONST_VTBL IRootStorageVtbl* lpVtbl;
9869 };
9870 
9871 #ifdef COBJMACROS
9872 #ifndef WIDL_C_INLINE_WRAPPERS
9873 /*** IUnknown methods ***/
9874 #define IRootStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9875 #define IRootStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
9876 #define IRootStorage_Release(This) (This)->lpVtbl->Release(This)
9877 /*** IRootStorage methods ***/
9878 #define IRootStorage_SwitchToFile(This,pszFile) (This)->lpVtbl->SwitchToFile(This,pszFile)
9879 #else
9880 /*** IUnknown methods ***/
9881 static FORCEINLINE HRESULT IRootStorage_QueryInterface(IRootStorage* This,REFIID riid,void **ppvObject) {
9882     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9883 }
9884 static FORCEINLINE ULONG IRootStorage_AddRef(IRootStorage* This) {
9885     return This->lpVtbl->AddRef(This);
9886 }
9887 static FORCEINLINE ULONG IRootStorage_Release(IRootStorage* This) {
9888     return This->lpVtbl->Release(This);
9889 }
9890 /*** IRootStorage methods ***/
9891 static FORCEINLINE HRESULT IRootStorage_SwitchToFile(IRootStorage* This,LPOLESTR pszFile) {
9892     return This->lpVtbl->SwitchToFile(This,pszFile);
9893 }
9894 #endif
9895 #endif
9896 
9897 #endif
9898 
9899 
9900 #endif  /* __IRootStorage_INTERFACE_DEFINED__ */
9901 
9902 /*****************************************************************************
9903  * IAdviseSink interface
9904  */
9905 #ifndef __IAdviseSink_INTERFACE_DEFINED__
9906 #define __IAdviseSink_INTERFACE_DEFINED__
9907 
9908 typedef IAdviseSink *LPADVISESINK;
9909 typedef enum tagTYMED {
9910     TYMED_HGLOBAL = 1,
9911     TYMED_FILE = 2,
9912     TYMED_ISTREAM = 4,
9913     TYMED_ISTORAGE = 8,
9914     TYMED_GDI = 16,
9915     TYMED_MFPICT = 32,
9916     TYMED_ENHMF = 64,
9917     TYMED_NULL = 0
9918 } TYMED;
9919 typedef struct tagRemSTGMEDIUM {
9920     DWORD tymed;
9921     DWORD dwHandleType;
9922     ULONG pData;
9923     ULONG pUnkForRelease;
9924     ULONG cbData;
9925     byte data[1];
9926 } RemSTGMEDIUM;
9927 #ifdef NONAMELESSUNION
9928 typedef struct tagSTGMEDIUM {
9929 DWORD tymed;
9930 union {
9931 HBITMAP hBitmap;
9932 HMETAFILEPICT hMetaFilePict;
9933 HENHMETAFILE hEnhMetaFile;
9934 HGLOBAL hGlobal;
9935 LPOLESTR lpszFileName;
9936 IStream *pstm;
9937 IStorage *pstg;
9938 } u;
9939 IUnknown *pUnkForRelease;
9940 }uSTGMEDIUM;
9941 #else
9942 typedef struct tagSTGMEDIUM {
9943     DWORD tymed;
9944     union {
9945         HBITMAP hBitmap;
9946         HMETAFILEPICT hMetaFilePict;
9947         HENHMETAFILE hEnhMetaFile;
9948         HGLOBAL hGlobal;
9949         LPOLESTR lpszFileName;
9950         IStream *pstm;
9951         IStorage *pstg;
9952     } DUMMYUNIONNAME;
9953     IUnknown *pUnkForRelease;
9954 } uSTGMEDIUM;
9955 #endif
9956 typedef struct _GDI_OBJECT {
9957     DWORD ObjectType;
9958     union __WIDL_objidl_generated_name_0000000C {
9959         wireHBITMAP hBitmap;
9960         wireHPALETTE hPalette;
9961         wireHGLOBAL hGeneric;
9962     } u;
9963 } GDI_OBJECT;
9964 typedef struct _userSTGMEDIUM {
9965     struct _STGMEDIUM_UNION {
9966         DWORD tymed;
9967         union __WIDL_objidl_generated_name_0000000D {
9968             wireHMETAFILEPICT hMetaFilePict;
9969             wireHENHMETAFILE hHEnhMetaFile;
9970             GDI_OBJECT *hGdiHandle;
9971             wireHGLOBAL hGlobal;
9972             LPOLESTR lpszFileName;
9973             BYTE_BLOB *pstm;
9974             BYTE_BLOB *pstg;
9975         } u;
9976     } DUMMYUNIONNAME;
9977     IUnknown *pUnkForRelease;
9978 } userSTGMEDIUM;
9979 typedef userSTGMEDIUM *wireSTGMEDIUM;
9980 typedef uSTGMEDIUM STGMEDIUM;
9981 typedef userSTGMEDIUM *wireASYNC_STGMEDIUM;
9982 typedef STGMEDIUM ASYNC_STGMEDIUM;
9983 typedef STGMEDIUM *LPSTGMEDIUM;
9984 typedef struct _userFLAG_STGMEDIUM {
9985     LONG ContextFlags;
9986     LONG fPassOwnership;
9987     userSTGMEDIUM Stgmed;
9988 } userFLAG_STGMEDIUM;
9989 typedef userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
9990 typedef struct _FLAG_STGMEDIUM {
9991     LONG ContextFlags;
9992     LONG fPassOwnership;
9993     STGMEDIUM Stgmed;
9994 } FLAG_STGMEDIUM;
9995 DEFINE_GUID(IID_IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9996 #if defined(__cplusplus) && !defined(CINTERFACE)
9997 MIDL_INTERFACE("0000010f-0000-0000-c000-000000000046")
9998 IAdviseSink : public IUnknown
9999 {
10000     virtual void STDMETHODCALLTYPE OnDataChange(
10001         FORMATETC *pFormatetc,
10002         STGMEDIUM *pStgmed) = 0;
10003 
10004     virtual void STDMETHODCALLTYPE OnViewChange(
10005         DWORD dwAspect,
10006         LONG lindex) = 0;
10007 
10008     virtual void STDMETHODCALLTYPE OnRename(
10009         IMoniker *pmk) = 0;
10010 
10011     virtual void STDMETHODCALLTYPE OnSave(
10012         ) = 0;
10013 
10014     virtual void STDMETHODCALLTYPE OnClose(
10015         ) = 0;
10016 
10017 };
10018 #ifdef __CRT_UUID_DECL
10019 __CRT_UUID_DECL(IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
10020 #endif
10021 #else
10022 typedef struct IAdviseSinkVtbl {
10023     BEGIN_INTERFACE
10024 
10025     /*** IUnknown methods ***/
10026     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10027         IAdviseSink *This,
10028         REFIID riid,
10029         void **ppvObject);
10030 
10031     ULONG (STDMETHODCALLTYPE *AddRef)(
10032         IAdviseSink *This);
10033 
10034     ULONG (STDMETHODCALLTYPE *Release)(
10035         IAdviseSink *This);
10036 
10037     /*** IAdviseSink methods ***/
10038     void (STDMETHODCALLTYPE *OnDataChange)(
10039         IAdviseSink *This,
10040         FORMATETC *pFormatetc,
10041         STGMEDIUM *pStgmed);
10042 
10043     void (STDMETHODCALLTYPE *OnViewChange)(
10044         IAdviseSink *This,
10045         DWORD dwAspect,
10046         LONG lindex);
10047 
10048     void (STDMETHODCALLTYPE *OnRename)(
10049         IAdviseSink *This,
10050         IMoniker *pmk);
10051 
10052     void (STDMETHODCALLTYPE *OnSave)(
10053         IAdviseSink *This);
10054 
10055     void (STDMETHODCALLTYPE *OnClose)(
10056         IAdviseSink *This);
10057 
10058     END_INTERFACE
10059 } IAdviseSinkVtbl;
10060 
10061 interface IAdviseSink {
10062     CONST_VTBL IAdviseSinkVtbl* lpVtbl;
10063 };
10064 
10065 #ifdef COBJMACROS
10066 #ifndef WIDL_C_INLINE_WRAPPERS
10067 /*** IUnknown methods ***/
10068 #define IAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10069 #define IAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
10070 #define IAdviseSink_Release(This) (This)->lpVtbl->Release(This)
10071 /*** IAdviseSink methods ***/
10072 #define IAdviseSink_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->OnDataChange(This,pFormatetc,pStgmed)
10073 #define IAdviseSink_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->OnViewChange(This,dwAspect,lindex)
10074 #define IAdviseSink_OnRename(This,pmk) (This)->lpVtbl->OnRename(This,pmk)
10075 #define IAdviseSink_OnSave(This) (This)->lpVtbl->OnSave(This)
10076 #define IAdviseSink_OnClose(This) (This)->lpVtbl->OnClose(This)
10077 #else
10078 /*** IUnknown methods ***/
10079 static FORCEINLINE HRESULT IAdviseSink_QueryInterface(IAdviseSink* This,REFIID riid,void **ppvObject) {
10080     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10081 }
10082 static FORCEINLINE ULONG IAdviseSink_AddRef(IAdviseSink* This) {
10083     return This->lpVtbl->AddRef(This);
10084 }
10085 static FORCEINLINE ULONG IAdviseSink_Release(IAdviseSink* This) {
10086     return This->lpVtbl->Release(This);
10087 }
10088 /*** IAdviseSink methods ***/
10089 static FORCEINLINE void IAdviseSink_OnDataChange(IAdviseSink* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
10090     This->lpVtbl->OnDataChange(This,pFormatetc,pStgmed);
10091 }
10092 static FORCEINLINE void IAdviseSink_OnViewChange(IAdviseSink* This,DWORD dwAspect,LONG lindex) {
10093     This->lpVtbl->OnViewChange(This,dwAspect,lindex);
10094 }
10095 static FORCEINLINE void IAdviseSink_OnRename(IAdviseSink* This,IMoniker *pmk) {
10096     This->lpVtbl->OnRename(This,pmk);
10097 }
10098 static FORCEINLINE void IAdviseSink_OnSave(IAdviseSink* This) {
10099     This->lpVtbl->OnSave(This);
10100 }
10101 static FORCEINLINE void IAdviseSink_OnClose(IAdviseSink* This) {
10102     This->lpVtbl->OnClose(This);
10103 }
10104 #endif
10105 #endif
10106 
10107 #endif
10108 
10109 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnDataChange_Proxy(
10110     IAdviseSink* This,
10111     FORMATETC *pFormatetc,
10112     ASYNC_STGMEDIUM *pStgmed);
10113 void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub(
10114     IRpcStubBuffer* This,
10115     IRpcChannelBuffer* pRpcChannelBuffer,
10116     PRPC_MESSAGE pRpcMessage,
10117     DWORD* pdwStubPhase);
10118 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnViewChange_Proxy(
10119     IAdviseSink* This,
10120     DWORD dwAspect,
10121     LONG lindex);
10122 void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub(
10123     IRpcStubBuffer* This,
10124     IRpcChannelBuffer* pRpcChannelBuffer,
10125     PRPC_MESSAGE pRpcMessage,
10126     DWORD* pdwStubPhase);
10127 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnRename_Proxy(
10128     IAdviseSink* This,
10129     IMoniker *pmk);
10130 void __RPC_STUB IAdviseSink_RemoteOnRename_Stub(
10131     IRpcStubBuffer* This,
10132     IRpcChannelBuffer* pRpcChannelBuffer,
10133     PRPC_MESSAGE pRpcMessage,
10134     DWORD* pdwStubPhase);
10135 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnSave_Proxy(
10136     IAdviseSink* This);
10137 void __RPC_STUB IAdviseSink_RemoteOnSave_Stub(
10138     IRpcStubBuffer* This,
10139     IRpcChannelBuffer* pRpcChannelBuffer,
10140     PRPC_MESSAGE pRpcMessage,
10141     DWORD* pdwStubPhase);
10142 HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnClose_Proxy(
10143     IAdviseSink* This);
10144 void __RPC_STUB IAdviseSink_RemoteOnClose_Stub(
10145     IRpcStubBuffer* This,
10146     IRpcChannelBuffer* pRpcChannelBuffer,
10147     PRPC_MESSAGE pRpcMessage,
10148     DWORD* pdwStubPhase);
10149 void CALLBACK IAdviseSink_OnDataChange_Proxy(
10150     IAdviseSink* This,
10151     FORMATETC *pFormatetc,
10152     STGMEDIUM *pStgmed);
10153 HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
10154     IAdviseSink* This,
10155     FORMATETC *pFormatetc,
10156     ASYNC_STGMEDIUM *pStgmed);
10157 void CALLBACK IAdviseSink_OnViewChange_Proxy(
10158     IAdviseSink* This,
10159     DWORD dwAspect,
10160     LONG lindex);
10161 HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
10162     IAdviseSink* This,
10163     DWORD dwAspect,
10164     LONG lindex);
10165 void CALLBACK IAdviseSink_OnRename_Proxy(
10166     IAdviseSink* This,
10167     IMoniker *pmk);
10168 HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
10169     IAdviseSink* This,
10170     IMoniker *pmk);
10171 void CALLBACK IAdviseSink_OnSave_Proxy(
10172     IAdviseSink* This);
10173 HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
10174     IAdviseSink* This);
10175 void CALLBACK IAdviseSink_OnClose_Proxy(
10176     IAdviseSink* This);
10177 HRESULT __RPC_STUB IAdviseSink_OnClose_Stub(
10178     IAdviseSink* This);
10179 
10180 #endif  /* __IAdviseSink_INTERFACE_DEFINED__ */
10181 
10182 /*****************************************************************************
10183  * AsyncIAdviseSink interface
10184  */
10185 #ifndef __AsyncIAdviseSink_INTERFACE_DEFINED__
10186 #define __AsyncIAdviseSink_INTERFACE_DEFINED__
10187 
10188 DEFINE_GUID(IID_AsyncIAdviseSink, 0x00000150, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10189 #if defined(__cplusplus) && !defined(CINTERFACE)
10190 MIDL_INTERFACE("00000150-0000-0000-c000-000000000046")
10191 AsyncIAdviseSink : public IUnknown
10192 {
10193     virtual void STDMETHODCALLTYPE Begin_OnDataChange(
10194         FORMATETC *pFormatetc,
10195         STGMEDIUM *pStgmed) = 0;
10196 
10197     virtual void STDMETHODCALLTYPE Finish_OnDataChange(
10198         ) = 0;
10199 
10200     virtual void STDMETHODCALLTYPE Begin_OnViewChange(
10201         DWORD dwAspect,
10202         LONG lindex) = 0;
10203 
10204     virtual void STDMETHODCALLTYPE Finish_OnViewChange(
10205         ) = 0;
10206 
10207     virtual void STDMETHODCALLTYPE Begin_OnRename(
10208         IMoniker *pmk) = 0;
10209 
10210     virtual void STDMETHODCALLTYPE Finish_OnRename(
10211         ) = 0;
10212 
10213     virtual void STDMETHODCALLTYPE Begin_OnSave(
10214         ) = 0;
10215 
10216     virtual void STDMETHODCALLTYPE Finish_OnSave(
10217         ) = 0;
10218 
10219     virtual void STDMETHODCALLTYPE Begin_OnClose(
10220         ) = 0;
10221 
10222     virtual void STDMETHODCALLTYPE Finish_OnClose(
10223         ) = 0;
10224 
10225 };
10226 #ifdef __CRT_UUID_DECL
10227 __CRT_UUID_DECL(AsyncIAdviseSink, 0x00000150, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
10228 #endif
10229 #else
10230 typedef struct AsyncIAdviseSinkVtbl {
10231     BEGIN_INTERFACE
10232 
10233     /*** IUnknown methods ***/
10234     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10235         AsyncIAdviseSink *This,
10236         REFIID riid,
10237         void **ppvObject);
10238 
10239     ULONG (STDMETHODCALLTYPE *AddRef)(
10240         AsyncIAdviseSink *This);
10241 
10242     ULONG (STDMETHODCALLTYPE *Release)(
10243         AsyncIAdviseSink *This);
10244 
10245     /*** AsyncIAdviseSink methods ***/
10246     void (STDMETHODCALLTYPE *Begin_OnDataChange)(
10247         AsyncIAdviseSink *This,
10248         FORMATETC *pFormatetc,
10249         STGMEDIUM *pStgmed);
10250 
10251     void (STDMETHODCALLTYPE *Finish_OnDataChange)(
10252         AsyncIAdviseSink *This);
10253 
10254     void (STDMETHODCALLTYPE *Begin_OnViewChange)(
10255         AsyncIAdviseSink *This,
10256         DWORD dwAspect,
10257         LONG lindex);
10258 
10259     void (STDMETHODCALLTYPE *Finish_OnViewChange)(
10260         AsyncIAdviseSink *This);
10261 
10262     void (STDMETHODCALLTYPE *Begin_OnRename)(
10263         AsyncIAdviseSink *This,
10264         IMoniker *pmk);
10265 
10266     void (STDMETHODCALLTYPE *Finish_OnRename)(
10267         AsyncIAdviseSink *This);
10268 
10269     void (STDMETHODCALLTYPE *Begin_OnSave)(
10270         AsyncIAdviseSink *This);
10271 
10272     void (STDMETHODCALLTYPE *Finish_OnSave)(
10273         AsyncIAdviseSink *This);
10274 
10275     void (STDMETHODCALLTYPE *Begin_OnClose)(
10276         AsyncIAdviseSink *This);
10277 
10278     void (STDMETHODCALLTYPE *Finish_OnClose)(
10279         AsyncIAdviseSink *This);
10280 
10281     END_INTERFACE
10282 } AsyncIAdviseSinkVtbl;
10283 
10284 interface AsyncIAdviseSink {
10285     CONST_VTBL AsyncIAdviseSinkVtbl* lpVtbl;
10286 };
10287 
10288 #ifdef COBJMACROS
10289 #ifndef WIDL_C_INLINE_WRAPPERS
10290 /*** IUnknown methods ***/
10291 #define AsyncIAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10292 #define AsyncIAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
10293 #define AsyncIAdviseSink_Release(This) (This)->lpVtbl->Release(This)
10294 /*** AsyncIAdviseSink methods ***/
10295 #define AsyncIAdviseSink_Begin_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed)
10296 #define AsyncIAdviseSink_Finish_OnDataChange(This) (This)->lpVtbl->Finish_OnDataChange(This)
10297 #define AsyncIAdviseSink_Begin_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex)
10298 #define AsyncIAdviseSink_Finish_OnViewChange(This) (This)->lpVtbl->Finish_OnViewChange(This)
10299 #define AsyncIAdviseSink_Begin_OnRename(This,pmk) (This)->lpVtbl->Begin_OnRename(This,pmk)
10300 #define AsyncIAdviseSink_Finish_OnRename(This) (This)->lpVtbl->Finish_OnRename(This)
10301 #define AsyncIAdviseSink_Begin_OnSave(This) (This)->lpVtbl->Begin_OnSave(This)
10302 #define AsyncIAdviseSink_Finish_OnSave(This) (This)->lpVtbl->Finish_OnSave(This)
10303 #define AsyncIAdviseSink_Begin_OnClose(This) (This)->lpVtbl->Begin_OnClose(This)
10304 #define AsyncIAdviseSink_Finish_OnClose(This) (This)->lpVtbl->Finish_OnClose(This)
10305 #else
10306 /*** IUnknown methods ***/
10307 static FORCEINLINE HRESULT AsyncIAdviseSink_QueryInterface(AsyncIAdviseSink* This,REFIID riid,void **ppvObject) {
10308     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10309 }
10310 static FORCEINLINE ULONG AsyncIAdviseSink_AddRef(AsyncIAdviseSink* This) {
10311     return This->lpVtbl->AddRef(This);
10312 }
10313 static FORCEINLINE ULONG AsyncIAdviseSink_Release(AsyncIAdviseSink* This) {
10314     return This->lpVtbl->Release(This);
10315 }
10316 /*** AsyncIAdviseSink methods ***/
10317 static FORCEINLINE void AsyncIAdviseSink_Begin_OnDataChange(AsyncIAdviseSink* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
10318     This->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed);
10319 }
10320 static FORCEINLINE void AsyncIAdviseSink_Finish_OnDataChange(AsyncIAdviseSink* This) {
10321     This->lpVtbl->Finish_OnDataChange(This);
10322 }
10323 static FORCEINLINE void AsyncIAdviseSink_Begin_OnViewChange(AsyncIAdviseSink* This,DWORD dwAspect,LONG lindex) {
10324     This->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex);
10325 }
10326 static FORCEINLINE void AsyncIAdviseSink_Finish_OnViewChange(AsyncIAdviseSink* This) {
10327     This->lpVtbl->Finish_OnViewChange(This);
10328 }
10329 static FORCEINLINE void AsyncIAdviseSink_Begin_OnRename(AsyncIAdviseSink* This,IMoniker *pmk) {
10330     This->lpVtbl->Begin_OnRename(This,pmk);
10331 }
10332 static FORCEINLINE void AsyncIAdviseSink_Finish_OnRename(AsyncIAdviseSink* This) {
10333     This->lpVtbl->Finish_OnRename(This);
10334 }
10335 static FORCEINLINE void AsyncIAdviseSink_Begin_OnSave(AsyncIAdviseSink* This) {
10336     This->lpVtbl->Begin_OnSave(This);
10337 }
10338 static FORCEINLINE void AsyncIAdviseSink_Finish_OnSave(AsyncIAdviseSink* This) {
10339     This->lpVtbl->Finish_OnSave(This);
10340 }
10341 static FORCEINLINE void AsyncIAdviseSink_Begin_OnClose(AsyncIAdviseSink* This) {
10342     This->lpVtbl->Begin_OnClose(This);
10343 }
10344 static FORCEINLINE void AsyncIAdviseSink_Finish_OnClose(AsyncIAdviseSink* This) {
10345     This->lpVtbl->Finish_OnClose(This);
10346 }
10347 #endif
10348 #endif
10349 
10350 #endif
10351 
10352 
10353 #endif  /* __AsyncIAdviseSink_INTERFACE_DEFINED__ */
10354 
10355 #endif
10356 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
10357 /*****************************************************************************
10358  * IAdviseSink2 interface
10359  */
10360 #ifndef __IAdviseSink2_INTERFACE_DEFINED__
10361 #define __IAdviseSink2_INTERFACE_DEFINED__
10362 
10363 typedef IAdviseSink2 *LPADVISESINK2;
10364 DEFINE_GUID(IID_IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10365 #if defined(__cplusplus) && !defined(CINTERFACE)
10366 MIDL_INTERFACE("00000125-0000-0000-c000-000000000046")
10367 IAdviseSink2 : public IAdviseSink
10368 {
10369     virtual void STDMETHODCALLTYPE OnLinkSrcChange(
10370         IMoniker *pmk) = 0;
10371 
10372 };
10373 #ifdef __CRT_UUID_DECL
10374 __CRT_UUID_DECL(IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
10375 #endif
10376 #else
10377 typedef struct IAdviseSink2Vtbl {
10378     BEGIN_INTERFACE
10379 
10380     /*** IUnknown methods ***/
10381     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10382         IAdviseSink2 *This,
10383         REFIID riid,
10384         void **ppvObject);
10385 
10386     ULONG (STDMETHODCALLTYPE *AddRef)(
10387         IAdviseSink2 *This);
10388 
10389     ULONG (STDMETHODCALLTYPE *Release)(
10390         IAdviseSink2 *This);
10391 
10392     /*** IAdviseSink methods ***/
10393     void (STDMETHODCALLTYPE *OnDataChange)(
10394         IAdviseSink2 *This,
10395         FORMATETC *pFormatetc,
10396         STGMEDIUM *pStgmed);
10397 
10398     void (STDMETHODCALLTYPE *OnViewChange)(
10399         IAdviseSink2 *This,
10400         DWORD dwAspect,
10401         LONG lindex);
10402 
10403     void (STDMETHODCALLTYPE *OnRename)(
10404         IAdviseSink2 *This,
10405         IMoniker *pmk);
10406 
10407     void (STDMETHODCALLTYPE *OnSave)(
10408         IAdviseSink2 *This);
10409 
10410     void (STDMETHODCALLTYPE *OnClose)(
10411         IAdviseSink2 *This);
10412 
10413     /*** IAdviseSink2 methods ***/
10414     void (STDMETHODCALLTYPE *OnLinkSrcChange)(
10415         IAdviseSink2 *This,
10416         IMoniker *pmk);
10417 
10418     END_INTERFACE
10419 } IAdviseSink2Vtbl;
10420 
10421 interface IAdviseSink2 {
10422     CONST_VTBL IAdviseSink2Vtbl* lpVtbl;
10423 };
10424 
10425 #ifdef COBJMACROS
10426 #ifndef WIDL_C_INLINE_WRAPPERS
10427 /*** IUnknown methods ***/
10428 #define IAdviseSink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10429 #define IAdviseSink2_AddRef(This) (This)->lpVtbl->AddRef(This)
10430 #define IAdviseSink2_Release(This) (This)->lpVtbl->Release(This)
10431 /*** IAdviseSink methods ***/
10432 #define IAdviseSink2_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->OnDataChange(This,pFormatetc,pStgmed)
10433 #define IAdviseSink2_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->OnViewChange(This,dwAspect,lindex)
10434 #define IAdviseSink2_OnRename(This,pmk) (This)->lpVtbl->OnRename(This,pmk)
10435 #define IAdviseSink2_OnSave(This) (This)->lpVtbl->OnSave(This)
10436 #define IAdviseSink2_OnClose(This) (This)->lpVtbl->OnClose(This)
10437 /*** IAdviseSink2 methods ***/
10438 #define IAdviseSink2_OnLinkSrcChange(This,pmk) (This)->lpVtbl->OnLinkSrcChange(This,pmk)
10439 #else
10440 /*** IUnknown methods ***/
10441 static FORCEINLINE HRESULT IAdviseSink2_QueryInterface(IAdviseSink2* This,REFIID riid,void **ppvObject) {
10442     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10443 }
10444 static FORCEINLINE ULONG IAdviseSink2_AddRef(IAdviseSink2* This) {
10445     return This->lpVtbl->AddRef(This);
10446 }
10447 static FORCEINLINE ULONG IAdviseSink2_Release(IAdviseSink2* This) {
10448     return This->lpVtbl->Release(This);
10449 }
10450 /*** IAdviseSink methods ***/
10451 static FORCEINLINE void IAdviseSink2_OnDataChange(IAdviseSink2* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
10452     This->lpVtbl->OnDataChange(This,pFormatetc,pStgmed);
10453 }
10454 static FORCEINLINE void IAdviseSink2_OnViewChange(IAdviseSink2* This,DWORD dwAspect,LONG lindex) {
10455     This->lpVtbl->OnViewChange(This,dwAspect,lindex);
10456 }
10457 static FORCEINLINE void IAdviseSink2_OnRename(IAdviseSink2* This,IMoniker *pmk) {
10458     This->lpVtbl->OnRename(This,pmk);
10459 }
10460 static FORCEINLINE void IAdviseSink2_OnSave(IAdviseSink2* This) {
10461     This->lpVtbl->OnSave(This);
10462 }
10463 static FORCEINLINE void IAdviseSink2_OnClose(IAdviseSink2* This) {
10464     This->lpVtbl->OnClose(This);
10465 }
10466 /*** IAdviseSink2 methods ***/
10467 static FORCEINLINE void IAdviseSink2_OnLinkSrcChange(IAdviseSink2* This,IMoniker *pmk) {
10468     This->lpVtbl->OnLinkSrcChange(This,pmk);
10469 }
10470 #endif
10471 #endif
10472 
10473 #endif
10474 
10475 HRESULT STDMETHODCALLTYPE IAdviseSink2_RemoteOnLinkSrcChange_Proxy(
10476     IAdviseSink2* This,
10477     IMoniker *pmk);
10478 void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub(
10479     IRpcStubBuffer* This,
10480     IRpcChannelBuffer* pRpcChannelBuffer,
10481     PRPC_MESSAGE pRpcMessage,
10482     DWORD* pdwStubPhase);
10483 void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
10484     IAdviseSink2* This,
10485     IMoniker *pmk);
10486 HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
10487     IAdviseSink2* This,
10488     IMoniker *pmk);
10489 
10490 #endif  /* __IAdviseSink2_INTERFACE_DEFINED__ */
10491 
10492 /*****************************************************************************
10493  * AsyncIAdviseSink2 interface
10494  */
10495 #ifndef __AsyncIAdviseSink2_INTERFACE_DEFINED__
10496 #define __AsyncIAdviseSink2_INTERFACE_DEFINED__
10497 
10498 DEFINE_GUID(IID_AsyncIAdviseSink2, 0x00000151, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10499 #if defined(__cplusplus) && !defined(CINTERFACE)
10500 MIDL_INTERFACE("00000151-0000-0000-c000-000000000046")
10501 AsyncIAdviseSink2 : public AsyncIAdviseSink
10502 {
10503     virtual void STDMETHODCALLTYPE Begin_OnLinkSrcChange(
10504         IMoniker *pmk) = 0;
10505 
10506     virtual void STDMETHODCALLTYPE Finish_OnLinkSrcChange(
10507         ) = 0;
10508 
10509 };
10510 #ifdef __CRT_UUID_DECL
10511 __CRT_UUID_DECL(AsyncIAdviseSink2, 0x00000151, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
10512 #endif
10513 #else
10514 typedef struct AsyncIAdviseSink2Vtbl {
10515     BEGIN_INTERFACE
10516 
10517     /*** IUnknown methods ***/
10518     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10519         AsyncIAdviseSink2 *This,
10520         REFIID riid,
10521         void **ppvObject);
10522 
10523     ULONG (STDMETHODCALLTYPE *AddRef)(
10524         AsyncIAdviseSink2 *This);
10525 
10526     ULONG (STDMETHODCALLTYPE *Release)(
10527         AsyncIAdviseSink2 *This);
10528 
10529     /*** AsyncIAdviseSink methods ***/
10530     void (STDMETHODCALLTYPE *Begin_OnDataChange)(
10531         AsyncIAdviseSink2 *This,
10532         FORMATETC *pFormatetc,
10533         STGMEDIUM *pStgmed);
10534 
10535     void (STDMETHODCALLTYPE *Finish_OnDataChange)(
10536         AsyncIAdviseSink2 *This);
10537 
10538     void (STDMETHODCALLTYPE *Begin_OnViewChange)(
10539         AsyncIAdviseSink2 *This,
10540         DWORD dwAspect,
10541         LONG lindex);
10542 
10543     void (STDMETHODCALLTYPE *Finish_OnViewChange)(
10544         AsyncIAdviseSink2 *This);
10545 
10546     void (STDMETHODCALLTYPE *Begin_OnRename)(
10547         AsyncIAdviseSink2 *This,
10548         IMoniker *pmk);
10549 
10550     void (STDMETHODCALLTYPE *Finish_OnRename)(
10551         AsyncIAdviseSink2 *This);
10552 
10553     void (STDMETHODCALLTYPE *Begin_OnSave)(
10554         AsyncIAdviseSink2 *This);
10555 
10556     void (STDMETHODCALLTYPE *Finish_OnSave)(
10557         AsyncIAdviseSink2 *This);
10558 
10559     void (STDMETHODCALLTYPE *Begin_OnClose)(
10560         AsyncIAdviseSink2 *This);
10561 
10562     void (STDMETHODCALLTYPE *Finish_OnClose)(
10563         AsyncIAdviseSink2 *This);
10564 
10565     /*** AsyncIAdviseSink2 methods ***/
10566     void (STDMETHODCALLTYPE *Begin_OnLinkSrcChange)(
10567         AsyncIAdviseSink2 *This,
10568         IMoniker *pmk);
10569 
10570     void (STDMETHODCALLTYPE *Finish_OnLinkSrcChange)(
10571         AsyncIAdviseSink2 *This);
10572 
10573     END_INTERFACE
10574 } AsyncIAdviseSink2Vtbl;
10575 
10576 interface AsyncIAdviseSink2 {
10577     CONST_VTBL AsyncIAdviseSink2Vtbl* lpVtbl;
10578 };
10579 
10580 #ifdef COBJMACROS
10581 #ifndef WIDL_C_INLINE_WRAPPERS
10582 /*** IUnknown methods ***/
10583 #define AsyncIAdviseSink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10584 #define AsyncIAdviseSink2_AddRef(This) (This)->lpVtbl->AddRef(This)
10585 #define AsyncIAdviseSink2_Release(This) (This)->lpVtbl->Release(This)
10586 /*** AsyncIAdviseSink methods ***/
10587 #define AsyncIAdviseSink2_Begin_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed)
10588 #define AsyncIAdviseSink2_Finish_OnDataChange(This) (This)->lpVtbl->Finish_OnDataChange(This)
10589 #define AsyncIAdviseSink2_Begin_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex)
10590 #define AsyncIAdviseSink2_Finish_OnViewChange(This) (This)->lpVtbl->Finish_OnViewChange(This)
10591 #define AsyncIAdviseSink2_Begin_OnRename(This,pmk) (This)->lpVtbl->Begin_OnRename(This,pmk)
10592 #define AsyncIAdviseSink2_Finish_OnRename(This) (This)->lpVtbl->Finish_OnRename(This)
10593 #define AsyncIAdviseSink2_Begin_OnSave(This) (This)->lpVtbl->Begin_OnSave(This)
10594 #define AsyncIAdviseSink2_Finish_OnSave(This) (This)->lpVtbl->Finish_OnSave(This)
10595 #define AsyncIAdviseSink2_Begin_OnClose(This) (This)->lpVtbl->Begin_OnClose(This)
10596 #define AsyncIAdviseSink2_Finish_OnClose(This) (This)->lpVtbl->Finish_OnClose(This)
10597 /*** AsyncIAdviseSink2 methods ***/
10598 #define AsyncIAdviseSink2_Begin_OnLinkSrcChange(This,pmk) (This)->lpVtbl->Begin_OnLinkSrcChange(This,pmk)
10599 #define AsyncIAdviseSink2_Finish_OnLinkSrcChange(This) (This)->lpVtbl->Finish_OnLinkSrcChange(This)
10600 #else
10601 /*** IUnknown methods ***/
10602 static FORCEINLINE HRESULT AsyncIAdviseSink2_QueryInterface(AsyncIAdviseSink2* This,REFIID riid,void **ppvObject) {
10603     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10604 }
10605 static FORCEINLINE ULONG AsyncIAdviseSink2_AddRef(AsyncIAdviseSink2* This) {
10606     return This->lpVtbl->AddRef(This);
10607 }
10608 static FORCEINLINE ULONG AsyncIAdviseSink2_Release(AsyncIAdviseSink2* This) {
10609     return This->lpVtbl->Release(This);
10610 }
10611 /*** AsyncIAdviseSink methods ***/
10612 static FORCEINLINE void AsyncIAdviseSink2_Begin_OnDataChange(AsyncIAdviseSink2* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
10613     This->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed);
10614 }
10615 static FORCEINLINE void AsyncIAdviseSink2_Finish_OnDataChange(AsyncIAdviseSink2* This) {
10616     This->lpVtbl->Finish_OnDataChange(This);
10617 }
10618 static FORCEINLINE void AsyncIAdviseSink2_Begin_OnViewChange(AsyncIAdviseSink2* This,DWORD dwAspect,LONG lindex) {
10619     This->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex);
10620 }
10621 static FORCEINLINE void AsyncIAdviseSink2_Finish_OnViewChange(AsyncIAdviseSink2* This) {
10622     This->lpVtbl->Finish_OnViewChange(This);
10623 }
10624 static FORCEINLINE void AsyncIAdviseSink2_Begin_OnRename(AsyncIAdviseSink2* This,IMoniker *pmk) {
10625     This->lpVtbl->Begin_OnRename(This,pmk);
10626 }
10627 static FORCEINLINE void AsyncIAdviseSink2_Finish_OnRename(AsyncIAdviseSink2* This) {
10628     This->lpVtbl->Finish_OnRename(This);
10629 }
10630 static FORCEINLINE void AsyncIAdviseSink2_Begin_OnSave(AsyncIAdviseSink2* This) {
10631     This->lpVtbl->Begin_OnSave(This);
10632 }
10633 static FORCEINLINE void AsyncIAdviseSink2_Finish_OnSave(AsyncIAdviseSink2* This) {
10634     This->lpVtbl->Finish_OnSave(This);
10635 }
10636 static FORCEINLINE void AsyncIAdviseSink2_Begin_OnClose(AsyncIAdviseSink2* This) {
10637     This->lpVtbl->Begin_OnClose(This);
10638 }
10639 static FORCEINLINE void AsyncIAdviseSink2_Finish_OnClose(AsyncIAdviseSink2* This) {
10640     This->lpVtbl->Finish_OnClose(This);
10641 }
10642 /*** AsyncIAdviseSink2 methods ***/
10643 static FORCEINLINE void AsyncIAdviseSink2_Begin_OnLinkSrcChange(AsyncIAdviseSink2* This,IMoniker *pmk) {
10644     This->lpVtbl->Begin_OnLinkSrcChange(This,pmk);
10645 }
10646 static FORCEINLINE void AsyncIAdviseSink2_Finish_OnLinkSrcChange(AsyncIAdviseSink2* This) {
10647     This->lpVtbl->Finish_OnLinkSrcChange(This);
10648 }
10649 #endif
10650 #endif
10651 
10652 #endif
10653 
10654 
10655 #endif  /* __AsyncIAdviseSink2_INTERFACE_DEFINED__ */
10656 
10657 #endif
10658 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
10659 /*****************************************************************************
10660  * IDataObject interface
10661  */
10662 #ifndef __IDataObject_INTERFACE_DEFINED__
10663 #define __IDataObject_INTERFACE_DEFINED__
10664 
10665 typedef IDataObject *LPDATAOBJECT;
10666 typedef enum tagDATADIR {
10667     DATADIR_GET = 1,
10668     DATADIR_SET = 2
10669 } DATADIR;
10670 DEFINE_GUID(IID_IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10671 #if defined(__cplusplus) && !defined(CINTERFACE)
10672 MIDL_INTERFACE("0000010e-0000-0000-c000-000000000046")
10673 IDataObject : public IUnknown
10674 {
10675     virtual HRESULT STDMETHODCALLTYPE GetData(
10676         FORMATETC *pformatetcIn,
10677         STGMEDIUM *pmedium) = 0;
10678 
10679     virtual HRESULT STDMETHODCALLTYPE GetDataHere(
10680         FORMATETC *pformatetc,
10681         STGMEDIUM *pmedium) = 0;
10682 
10683     virtual HRESULT STDMETHODCALLTYPE QueryGetData(
10684         FORMATETC *pformatetc) = 0;
10685 
10686     virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(
10687         FORMATETC *pformatectIn,
10688         FORMATETC *pformatetcOut) = 0;
10689 
10690     virtual HRESULT STDMETHODCALLTYPE SetData(
10691         FORMATETC *pformatetc,
10692         STGMEDIUM *pmedium,
10693         WINBOOL fRelease) = 0;
10694 
10695     virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc(
10696         DWORD dwDirection,
10697         IEnumFORMATETC **ppenumFormatEtc) = 0;
10698 
10699     virtual HRESULT STDMETHODCALLTYPE DAdvise(
10700         FORMATETC *pformatetc,
10701         DWORD advf,
10702         IAdviseSink *pAdvSink,
10703         DWORD *pdwConnection) = 0;
10704 
10705     virtual HRESULT STDMETHODCALLTYPE DUnadvise(
10706         DWORD dwConnection) = 0;
10707 
10708     virtual HRESULT STDMETHODCALLTYPE EnumDAdvise(
10709         IEnumSTATDATA **ppenumAdvise) = 0;
10710 
10711 };
10712 #ifdef __CRT_UUID_DECL
10713 __CRT_UUID_DECL(IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
10714 #endif
10715 #else
10716 typedef struct IDataObjectVtbl {
10717     BEGIN_INTERFACE
10718 
10719     /*** IUnknown methods ***/
10720     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10721         IDataObject *This,
10722         REFIID riid,
10723         void **ppvObject);
10724 
10725     ULONG (STDMETHODCALLTYPE *AddRef)(
10726         IDataObject *This);
10727 
10728     ULONG (STDMETHODCALLTYPE *Release)(
10729         IDataObject *This);
10730 
10731     /*** IDataObject methods ***/
10732     HRESULT (STDMETHODCALLTYPE *GetData)(
10733         IDataObject *This,
10734         FORMATETC *pformatetcIn,
10735         STGMEDIUM *pmedium);
10736 
10737     HRESULT (STDMETHODCALLTYPE *GetDataHere)(
10738         IDataObject *This,
10739         FORMATETC *pformatetc,
10740         STGMEDIUM *pmedium);
10741 
10742     HRESULT (STDMETHODCALLTYPE *QueryGetData)(
10743         IDataObject *This,
10744         FORMATETC *pformatetc);
10745 
10746     HRESULT (STDMETHODCALLTYPE *GetCanonicalFormatEtc)(
10747         IDataObject *This,
10748         FORMATETC *pformatectIn,
10749         FORMATETC *pformatetcOut);
10750 
10751     HRESULT (STDMETHODCALLTYPE *SetData)(
10752         IDataObject *This,
10753         FORMATETC *pformatetc,
10754         STGMEDIUM *pmedium,
10755         WINBOOL fRelease);
10756 
10757     HRESULT (STDMETHODCALLTYPE *EnumFormatEtc)(
10758         IDataObject *This,
10759         DWORD dwDirection,
10760         IEnumFORMATETC **ppenumFormatEtc);
10761 
10762     HRESULT (STDMETHODCALLTYPE *DAdvise)(
10763         IDataObject *This,
10764         FORMATETC *pformatetc,
10765         DWORD advf,
10766         IAdviseSink *pAdvSink,
10767         DWORD *pdwConnection);
10768 
10769     HRESULT (STDMETHODCALLTYPE *DUnadvise)(
10770         IDataObject *This,
10771         DWORD dwConnection);
10772 
10773     HRESULT (STDMETHODCALLTYPE *EnumDAdvise)(
10774         IDataObject *This,
10775         IEnumSTATDATA **ppenumAdvise);
10776 
10777     END_INTERFACE
10778 } IDataObjectVtbl;
10779 
10780 interface IDataObject {
10781     CONST_VTBL IDataObjectVtbl* lpVtbl;
10782 };
10783 
10784 #ifdef COBJMACROS
10785 #ifndef WIDL_C_INLINE_WRAPPERS
10786 /*** IUnknown methods ***/
10787 #define IDataObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10788 #define IDataObject_AddRef(This) (This)->lpVtbl->AddRef(This)
10789 #define IDataObject_Release(This) (This)->lpVtbl->Release(This)
10790 /*** IDataObject methods ***/
10791 #define IDataObject_GetData(This,pformatetcIn,pmedium) (This)->lpVtbl->GetData(This,pformatetcIn,pmedium)
10792 #define IDataObject_GetDataHere(This,pformatetc,pmedium) (This)->lpVtbl->GetDataHere(This,pformatetc,pmedium)
10793 #define IDataObject_QueryGetData(This,pformatetc) (This)->lpVtbl->QueryGetData(This,pformatetc)
10794 #define IDataObject_GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut) (This)->lpVtbl->GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut)
10795 #define IDataObject_SetData(This,pformatetc,pmedium,fRelease) (This)->lpVtbl->SetData(This,pformatetc,pmedium,fRelease)
10796 #define IDataObject_EnumFormatEtc(This,dwDirection,ppenumFormatEtc) (This)->lpVtbl->EnumFormatEtc(This,dwDirection,ppenumFormatEtc)
10797 #define IDataObject_DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection) (This)->lpVtbl->DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection)
10798 #define IDataObject_DUnadvise(This,dwConnection) (This)->lpVtbl->DUnadvise(This,dwConnection)
10799 #define IDataObject_EnumDAdvise(This,ppenumAdvise) (This)->lpVtbl->EnumDAdvise(This,ppenumAdvise)
10800 #else
10801 /*** IUnknown methods ***/
10802 static FORCEINLINE HRESULT IDataObject_QueryInterface(IDataObject* This,REFIID riid,void **ppvObject) {
10803     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10804 }
10805 static FORCEINLINE ULONG IDataObject_AddRef(IDataObject* This) {
10806     return This->lpVtbl->AddRef(This);
10807 }
10808 static FORCEINLINE ULONG IDataObject_Release(IDataObject* This) {
10809     return This->lpVtbl->Release(This);
10810 }
10811 /*** IDataObject methods ***/
10812 static FORCEINLINE HRESULT IDataObject_GetData(IDataObject* This,FORMATETC *pformatetcIn,STGMEDIUM *pmedium) {
10813     return This->lpVtbl->GetData(This,pformatetcIn,pmedium);
10814 }
10815 static FORCEINLINE HRESULT IDataObject_GetDataHere(IDataObject* This,FORMATETC *pformatetc,STGMEDIUM *pmedium) {
10816     return This->lpVtbl->GetDataHere(This,pformatetc,pmedium);
10817 }
10818 static FORCEINLINE HRESULT IDataObject_QueryGetData(IDataObject* This,FORMATETC *pformatetc) {
10819     return This->lpVtbl->QueryGetData(This,pformatetc);
10820 }
10821 static FORCEINLINE HRESULT IDataObject_GetCanonicalFormatEtc(IDataObject* This,FORMATETC *pformatectIn,FORMATETC *pformatetcOut) {
10822     return This->lpVtbl->GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut);
10823 }
10824 static FORCEINLINE HRESULT IDataObject_SetData(IDataObject* This,FORMATETC *pformatetc,STGMEDIUM *pmedium,WINBOOL fRelease) {
10825     return This->lpVtbl->SetData(This,pformatetc,pmedium,fRelease);
10826 }
10827 static FORCEINLINE HRESULT IDataObject_EnumFormatEtc(IDataObject* This,DWORD dwDirection,IEnumFORMATETC **ppenumFormatEtc) {
10828     return This->lpVtbl->EnumFormatEtc(This,dwDirection,ppenumFormatEtc);
10829 }
10830 static FORCEINLINE HRESULT IDataObject_DAdvise(IDataObject* This,FORMATETC *pformatetc,DWORD advf,IAdviseSink *pAdvSink,DWORD *pdwConnection) {
10831     return This->lpVtbl->DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection);
10832 }
10833 static FORCEINLINE HRESULT IDataObject_DUnadvise(IDataObject* This,DWORD dwConnection) {
10834     return This->lpVtbl->DUnadvise(This,dwConnection);
10835 }
10836 static FORCEINLINE HRESULT IDataObject_EnumDAdvise(IDataObject* This,IEnumSTATDATA **ppenumAdvise) {
10837     return This->lpVtbl->EnumDAdvise(This,ppenumAdvise);
10838 }
10839 #endif
10840 #endif
10841 
10842 #endif
10843 
10844 HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetData_Proxy(
10845     IDataObject* This,
10846     FORMATETC *pformatetcIn,
10847     STGMEDIUM *pRemoteMedium);
10848 void __RPC_STUB IDataObject_RemoteGetData_Stub(
10849     IRpcStubBuffer* This,
10850     IRpcChannelBuffer* pRpcChannelBuffer,
10851     PRPC_MESSAGE pRpcMessage,
10852     DWORD* pdwStubPhase);
10853 HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetDataHere_Proxy(
10854     IDataObject* This,
10855     FORMATETC *pformatetc,
10856     STGMEDIUM *pRemoteMedium);
10857 void __RPC_STUB IDataObject_RemoteGetDataHere_Stub(
10858     IRpcStubBuffer* This,
10859     IRpcChannelBuffer* pRpcChannelBuffer,
10860     PRPC_MESSAGE pRpcMessage,
10861     DWORD* pdwStubPhase);
10862 HRESULT STDMETHODCALLTYPE IDataObject_RemoteSetData_Proxy(
10863     IDataObject* This,
10864     FORMATETC *pformatetc,
10865     FLAG_STGMEDIUM *pmedium,
10866     WINBOOL fRelease);
10867 void __RPC_STUB IDataObject_RemoteSetData_Stub(
10868     IRpcStubBuffer* This,
10869     IRpcChannelBuffer* pRpcChannelBuffer,
10870     PRPC_MESSAGE pRpcMessage,
10871     DWORD* pdwStubPhase);
10872 HRESULT CALLBACK IDataObject_GetData_Proxy(
10873     IDataObject* This,
10874     FORMATETC *pformatetcIn,
10875     STGMEDIUM *pmedium);
10876 HRESULT __RPC_STUB IDataObject_GetData_Stub(
10877     IDataObject* This,
10878     FORMATETC *pformatetcIn,
10879     STGMEDIUM *pRemoteMedium);
10880 HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
10881     IDataObject* This,
10882     FORMATETC *pformatetc,
10883     STGMEDIUM *pmedium);
10884 HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
10885     IDataObject* This,
10886     FORMATETC *pformatetc,
10887     STGMEDIUM *pRemoteMedium);
10888 HRESULT CALLBACK IDataObject_SetData_Proxy(
10889     IDataObject* This,
10890     FORMATETC *pformatetc,
10891     STGMEDIUM *pmedium,
10892     WINBOOL fRelease);
10893 HRESULT __RPC_STUB IDataObject_SetData_Stub(
10894     IDataObject* This,
10895     FORMATETC *pformatetc,
10896     FLAG_STGMEDIUM *pmedium,
10897     WINBOOL fRelease);
10898 
10899 #endif  /* __IDataObject_INTERFACE_DEFINED__ */
10900 
10901 #endif
10902 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
10903 /*****************************************************************************
10904  * IDataAdviseHolder interface
10905  */
10906 #ifndef __IDataAdviseHolder_INTERFACE_DEFINED__
10907 #define __IDataAdviseHolder_INTERFACE_DEFINED__
10908 
10909 typedef IDataAdviseHolder *LPDATAADVISEHOLDER;
10910 DEFINE_GUID(IID_IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
10911 #if defined(__cplusplus) && !defined(CINTERFACE)
10912 MIDL_INTERFACE("00000110-0000-0000-c000-000000000046")
10913 IDataAdviseHolder : public IUnknown
10914 {
10915     virtual HRESULT STDMETHODCALLTYPE Advise(
10916         IDataObject *pDataObject,
10917         FORMATETC *pFetc,
10918         DWORD advf,
10919         IAdviseSink *pAdvise,
10920         DWORD *pdwConnection) = 0;
10921 
10922     virtual HRESULT STDMETHODCALLTYPE Unadvise(
10923         DWORD dwConnection) = 0;
10924 
10925     virtual HRESULT STDMETHODCALLTYPE EnumAdvise(
10926         IEnumSTATDATA **ppenumAdvise) = 0;
10927 
10928     virtual HRESULT STDMETHODCALLTYPE SendOnDataChange(
10929         IDataObject *pDataObject,
10930         DWORD dwReserved,
10931         DWORD advf) = 0;
10932 
10933 };
10934 #ifdef __CRT_UUID_DECL
10935 __CRT_UUID_DECL(IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
10936 #endif
10937 #else
10938 typedef struct IDataAdviseHolderVtbl {
10939     BEGIN_INTERFACE
10940 
10941     /*** IUnknown methods ***/
10942     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10943         IDataAdviseHolder *This,
10944         REFIID riid,
10945         void **ppvObject);
10946 
10947     ULONG (STDMETHODCALLTYPE *AddRef)(
10948         IDataAdviseHolder *This);
10949 
10950     ULONG (STDMETHODCALLTYPE *Release)(
10951         IDataAdviseHolder *This);
10952 
10953     /*** IDataAdviseHolder methods ***/
10954     HRESULT (STDMETHODCALLTYPE *Advise)(
10955         IDataAdviseHolder *This,
10956         IDataObject *pDataObject,
10957         FORMATETC *pFetc,
10958         DWORD advf,
10959         IAdviseSink *pAdvise,
10960         DWORD *pdwConnection);
10961 
10962     HRESULT (STDMETHODCALLTYPE *Unadvise)(
10963         IDataAdviseHolder *This,
10964         DWORD dwConnection);
10965 
10966     HRESULT (STDMETHODCALLTYPE *EnumAdvise)(
10967         IDataAdviseHolder *This,
10968         IEnumSTATDATA **ppenumAdvise);
10969 
10970     HRESULT (STDMETHODCALLTYPE *SendOnDataChange)(
10971         IDataAdviseHolder *This,
10972         IDataObject *pDataObject,
10973         DWORD dwReserved,
10974         DWORD advf);
10975 
10976     END_INTERFACE
10977 } IDataAdviseHolderVtbl;
10978 
10979 interface IDataAdviseHolder {
10980     CONST_VTBL IDataAdviseHolderVtbl* lpVtbl;
10981 };
10982 
10983 #ifdef COBJMACROS
10984 #ifndef WIDL_C_INLINE_WRAPPERS
10985 /*** IUnknown methods ***/
10986 #define IDataAdviseHolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10987 #define IDataAdviseHolder_AddRef(This) (This)->lpVtbl->AddRef(This)
10988 #define IDataAdviseHolder_Release(This) (This)->lpVtbl->Release(This)
10989 /*** IDataAdviseHolder methods ***/
10990 #define IDataAdviseHolder_Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection) (This)->lpVtbl->Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection)
10991 #define IDataAdviseHolder_Unadvise(This,dwConnection) (This)->lpVtbl->Unadvise(This,dwConnection)
10992 #define IDataAdviseHolder_EnumAdvise(This,ppenumAdvise) (This)->lpVtbl->EnumAdvise(This,ppenumAdvise)
10993 #define IDataAdviseHolder_SendOnDataChange(This,pDataObject,dwReserved,advf) (This)->lpVtbl->SendOnDataChange(This,pDataObject,dwReserved,advf)
10994 #else
10995 /*** IUnknown methods ***/
10996 static FORCEINLINE HRESULT IDataAdviseHolder_QueryInterface(IDataAdviseHolder* This,REFIID riid,void **ppvObject) {
10997     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10998 }
10999 static FORCEINLINE ULONG IDataAdviseHolder_AddRef(IDataAdviseHolder* This) {
11000     return This->lpVtbl->AddRef(This);
11001 }
11002 static FORCEINLINE ULONG IDataAdviseHolder_Release(IDataAdviseHolder* This) {
11003     return This->lpVtbl->Release(This);
11004 }
11005 /*** IDataAdviseHolder methods ***/
11006 static FORCEINLINE HRESULT IDataAdviseHolder_Advise(IDataAdviseHolder* This,IDataObject *pDataObject,FORMATETC *pFetc,DWORD advf,IAdviseSink *pAdvise,DWORD *pdwConnection) {
11007     return This->lpVtbl->Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection);
11008 }
11009 static FORCEINLINE HRESULT IDataAdviseHolder_Unadvise(IDataAdviseHolder* This,DWORD dwConnection) {
11010     return This->lpVtbl->Unadvise(This,dwConnection);
11011 }
11012 static FORCEINLINE HRESULT IDataAdviseHolder_EnumAdvise(IDataAdviseHolder* This,IEnumSTATDATA **ppenumAdvise) {
11013     return This->lpVtbl->EnumAdvise(This,ppenumAdvise);
11014 }
11015 static FORCEINLINE HRESULT IDataAdviseHolder_SendOnDataChange(IDataAdviseHolder* This,IDataObject *pDataObject,DWORD dwReserved,DWORD advf) {
11016     return This->lpVtbl->SendOnDataChange(This,pDataObject,dwReserved,advf);
11017 }
11018 #endif
11019 #endif
11020 
11021 #endif
11022 
11023 
11024 #endif  /* __IDataAdviseHolder_INTERFACE_DEFINED__ */
11025 
11026 /*****************************************************************************
11027  * IMessageFilter interface
11028  */
11029 #ifndef __IMessageFilter_INTERFACE_DEFINED__
11030 #define __IMessageFilter_INTERFACE_DEFINED__
11031 
11032 typedef IMessageFilter *LPMESSAGEFILTER;
11033 typedef enum tagCALLTYPE {
11034     CALLTYPE_TOPLEVEL = 1,
11035     CALLTYPE_NESTED = 2,
11036     CALLTYPE_ASYNC = 3,
11037     CALLTYPE_TOPLEVEL_CALLPENDING = 4,
11038     CALLTYPE_ASYNC_CALLPENDING = 5
11039 } CALLTYPE;
11040 typedef enum tagSERVERCALL {
11041     SERVERCALL_ISHANDLED = 0,
11042     SERVERCALL_REJECTED = 1,
11043     SERVERCALL_RETRYLATER = 2
11044 } SERVERCALL;
11045 typedef enum tagPENDINGTYPE {
11046     PENDINGTYPE_TOPLEVEL = 1,
11047     PENDINGTYPE_NESTED = 2
11048 } PENDINGTYPE;
11049 typedef enum tagPENDINGMSG {
11050     PENDINGMSG_CANCELCALL = 0,
11051     PENDINGMSG_WAITNOPROCESS = 1,
11052     PENDINGMSG_WAITDEFPROCESS = 2
11053 } PENDINGMSG;
11054 typedef struct tagINTERFACEINFO {
11055     IUnknown *pUnk;
11056     IID iid;
11057     WORD wMethod;
11058 } INTERFACEINFO;
11059 typedef struct tagINTERFACEINFO *LPINTERFACEINFO;
11060 DEFINE_GUID(IID_IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
11061 #if defined(__cplusplus) && !defined(CINTERFACE)
11062 MIDL_INTERFACE("00000016-0000-0000-c000-000000000046")
11063 IMessageFilter : public IUnknown
11064 {
11065     virtual DWORD STDMETHODCALLTYPE HandleInComingCall(
11066         DWORD dwCallType,
11067         HTASK htaskCaller,
11068         DWORD dwTickCount,
11069         LPINTERFACEINFO lpInterfaceInfo) = 0;
11070 
11071     virtual DWORD STDMETHODCALLTYPE RetryRejectedCall(
11072         HTASK htaskCallee,
11073         DWORD dwTickCount,
11074         DWORD dwRejectType) = 0;
11075 
11076     virtual DWORD STDMETHODCALLTYPE MessagePending(
11077         HTASK htaskCallee,
11078         DWORD dwTickCount,
11079         DWORD dwPendingType) = 0;
11080 
11081 };
11082 #ifdef __CRT_UUID_DECL
11083 __CRT_UUID_DECL(IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
11084 #endif
11085 #else
11086 typedef struct IMessageFilterVtbl {
11087     BEGIN_INTERFACE
11088 
11089     /*** IUnknown methods ***/
11090     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11091         IMessageFilter *This,
11092         REFIID riid,
11093         void **ppvObject);
11094 
11095     ULONG (STDMETHODCALLTYPE *AddRef)(
11096         IMessageFilter *This);
11097 
11098     ULONG (STDMETHODCALLTYPE *Release)(
11099         IMessageFilter *This);
11100 
11101     /*** IMessageFilter methods ***/
11102     DWORD (STDMETHODCALLTYPE *HandleInComingCall)(
11103         IMessageFilter *This,
11104         DWORD dwCallType,
11105         HTASK htaskCaller,
11106         DWORD dwTickCount,
11107         LPINTERFACEINFO lpInterfaceInfo);
11108 
11109     DWORD (STDMETHODCALLTYPE *RetryRejectedCall)(
11110         IMessageFilter *This,
11111         HTASK htaskCallee,
11112         DWORD dwTickCount,
11113         DWORD dwRejectType);
11114 
11115     DWORD (STDMETHODCALLTYPE *MessagePending)(
11116         IMessageFilter *This,
11117         HTASK htaskCallee,
11118         DWORD dwTickCount,
11119         DWORD dwPendingType);
11120 
11121     END_INTERFACE
11122 } IMessageFilterVtbl;
11123 
11124 interface IMessageFilter {
11125     CONST_VTBL IMessageFilterVtbl* lpVtbl;
11126 };
11127 
11128 #ifdef COBJMACROS
11129 #ifndef WIDL_C_INLINE_WRAPPERS
11130 /*** IUnknown methods ***/
11131 #define IMessageFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11132 #define IMessageFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
11133 #define IMessageFilter_Release(This) (This)->lpVtbl->Release(This)
11134 /*** IMessageFilter methods ***/
11135 #define IMessageFilter_HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo) (This)->lpVtbl->HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo)
11136 #define IMessageFilter_RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType) (This)->lpVtbl->RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType)
11137 #define IMessageFilter_MessagePending(This,htaskCallee,dwTickCount,dwPendingType) (This)->lpVtbl->MessagePending(This,htaskCallee,dwTickCount,dwPendingType)
11138 #else
11139 /*** IUnknown methods ***/
11140 static FORCEINLINE HRESULT IMessageFilter_QueryInterface(IMessageFilter* This,REFIID riid,void **ppvObject) {
11141     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11142 }
11143 static FORCEINLINE ULONG IMessageFilter_AddRef(IMessageFilter* This) {
11144     return This->lpVtbl->AddRef(This);
11145 }
11146 static FORCEINLINE ULONG IMessageFilter_Release(IMessageFilter* This) {
11147     return This->lpVtbl->Release(This);
11148 }
11149 /*** IMessageFilter methods ***/
11150 static FORCEINLINE DWORD IMessageFilter_HandleInComingCall(IMessageFilter* This,DWORD dwCallType,HTASK htaskCaller,DWORD dwTickCount,LPINTERFACEINFO lpInterfaceInfo) {
11151     return This->lpVtbl->HandleInComingCall(This,dwCallType,htaskCaller,dwTickCount,lpInterfaceInfo);
11152 }
11153 static FORCEINLINE DWORD IMessageFilter_RetryRejectedCall(IMessageFilter* This,HTASK htaskCallee,DWORD dwTickCount,DWORD dwRejectType) {
11154     return This->lpVtbl->RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType);
11155 }
11156 static FORCEINLINE DWORD IMessageFilter_MessagePending(IMessageFilter* This,HTASK htaskCallee,DWORD dwTickCount,DWORD dwPendingType) {
11157     return This->lpVtbl->MessagePending(This,htaskCallee,dwTickCount,dwPendingType);
11158 }
11159 #endif
11160 #endif
11161 
11162 #endif
11163 
11164 
11165 #endif  /* __IMessageFilter_INTERFACE_DEFINED__ */
11166 
11167 
11168 extern const FMTID FMTID_SummaryInformation;
11169 
11170 extern const FMTID FMTID_DocSummaryInformation;
11171 
11172 extern const FMTID FMTID_UserDefinedProperties;
11173 
11174 extern const FMTID FMTID_DiscardableInformation;
11175 
11176 extern const FMTID FMTID_ImageSummaryInformation;
11177 
11178 extern const FMTID FMTID_AudioSummaryInformation;
11179 
11180 extern const FMTID FMTID_VideoSummaryInformation;
11181 
11182 extern const FMTID FMTID_MediaFileSummaryInformation;
11183 
11184 /*****************************************************************************
11185  * IClassActivator interface
11186  */
11187 #ifndef __IClassActivator_INTERFACE_DEFINED__
11188 #define __IClassActivator_INTERFACE_DEFINED__
11189 
11190 DEFINE_GUID(IID_IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
11191 #if defined(__cplusplus) && !defined(CINTERFACE)
11192 MIDL_INTERFACE("00000140-0000-0000-c000-000000000046")
11193 IClassActivator : public IUnknown
11194 {
11195     virtual HRESULT STDMETHODCALLTYPE GetClassObject(
11196         REFCLSID rclsid,
11197         DWORD dwClassContext,
11198         LCID locale,
11199         REFIID riid,
11200         void **ppv) = 0;
11201 
11202 };
11203 #ifdef __CRT_UUID_DECL
11204 __CRT_UUID_DECL(IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
11205 #endif
11206 #else
11207 typedef struct IClassActivatorVtbl {
11208     BEGIN_INTERFACE
11209 
11210     /*** IUnknown methods ***/
11211     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11212         IClassActivator *This,
11213         REFIID riid,
11214         void **ppvObject);
11215 
11216     ULONG (STDMETHODCALLTYPE *AddRef)(
11217         IClassActivator *This);
11218 
11219     ULONG (STDMETHODCALLTYPE *Release)(
11220         IClassActivator *This);
11221 
11222     /*** IClassActivator methods ***/
11223     HRESULT (STDMETHODCALLTYPE *GetClassObject)(
11224         IClassActivator *This,
11225         REFCLSID rclsid,
11226         DWORD dwClassContext,
11227         LCID locale,
11228         REFIID riid,
11229         void **ppv);
11230 
11231     END_INTERFACE
11232 } IClassActivatorVtbl;
11233 
11234 interface IClassActivator {
11235     CONST_VTBL IClassActivatorVtbl* lpVtbl;
11236 };
11237 
11238 #ifdef COBJMACROS
11239 #ifndef WIDL_C_INLINE_WRAPPERS
11240 /*** IUnknown methods ***/
11241 #define IClassActivator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11242 #define IClassActivator_AddRef(This) (This)->lpVtbl->AddRef(This)
11243 #define IClassActivator_Release(This) (This)->lpVtbl->Release(This)
11244 /*** IClassActivator methods ***/
11245 #define IClassActivator_GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv) (This)->lpVtbl->GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv)
11246 #else
11247 /*** IUnknown methods ***/
11248 static FORCEINLINE HRESULT IClassActivator_QueryInterface(IClassActivator* This,REFIID riid,void **ppvObject) {
11249     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11250 }
11251 static FORCEINLINE ULONG IClassActivator_AddRef(IClassActivator* This) {
11252     return This->lpVtbl->AddRef(This);
11253 }
11254 static FORCEINLINE ULONG IClassActivator_Release(IClassActivator* This) {
11255     return This->lpVtbl->Release(This);
11256 }
11257 /*** IClassActivator methods ***/
11258 static FORCEINLINE HRESULT IClassActivator_GetClassObject(IClassActivator* This,REFCLSID rclsid,DWORD dwClassContext,LCID locale,REFIID riid,void **ppv) {
11259     return This->lpVtbl->GetClassObject(This,rclsid,dwClassContext,locale,riid,ppv);
11260 }
11261 #endif
11262 #endif
11263 
11264 #endif
11265 
11266 
11267 #endif  /* __IClassActivator_INTERFACE_DEFINED__ */
11268 
11269 #endif
11270 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
11271 /*****************************************************************************
11272  * IFillLockBytes interface
11273  */
11274 #ifndef __IFillLockBytes_INTERFACE_DEFINED__
11275 #define __IFillLockBytes_INTERFACE_DEFINED__
11276 
11277 DEFINE_GUID(IID_IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5);
11278 #if defined(__cplusplus) && !defined(CINTERFACE)
11279 MIDL_INTERFACE("99caf010-415e-11cf-8814-00aa00b569f5")
11280 IFillLockBytes : public IUnknown
11281 {
11282     virtual HRESULT STDMETHODCALLTYPE FillAppend(
11283         const void *pv,
11284         ULONG cb,
11285         ULONG *pcbWritten) = 0;
11286 
11287     virtual HRESULT STDMETHODCALLTYPE FillAt(
11288         ULARGE_INTEGER ulOffset,
11289         const void *pv,
11290         ULONG cb,
11291         ULONG *pcbWritten) = 0;
11292 
11293     virtual HRESULT STDMETHODCALLTYPE SetFillSize(
11294         ULARGE_INTEGER ulSize) = 0;
11295 
11296     virtual HRESULT STDMETHODCALLTYPE Terminate(
11297         WINBOOL bCanceled) = 0;
11298 
11299 };
11300 #ifdef __CRT_UUID_DECL
11301 __CRT_UUID_DECL(IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5)
11302 #endif
11303 #else
11304 typedef struct IFillLockBytesVtbl {
11305     BEGIN_INTERFACE
11306 
11307     /*** IUnknown methods ***/
11308     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11309         IFillLockBytes *This,
11310         REFIID riid,
11311         void **ppvObject);
11312 
11313     ULONG (STDMETHODCALLTYPE *AddRef)(
11314         IFillLockBytes *This);
11315 
11316     ULONG (STDMETHODCALLTYPE *Release)(
11317         IFillLockBytes *This);
11318 
11319     /*** IFillLockBytes methods ***/
11320     HRESULT (STDMETHODCALLTYPE *FillAppend)(
11321         IFillLockBytes *This,
11322         const void *pv,
11323         ULONG cb,
11324         ULONG *pcbWritten);
11325 
11326     HRESULT (STDMETHODCALLTYPE *FillAt)(
11327         IFillLockBytes *This,
11328         ULARGE_INTEGER ulOffset,
11329         const void *pv,
11330         ULONG cb,
11331         ULONG *pcbWritten);
11332 
11333     HRESULT (STDMETHODCALLTYPE *SetFillSize)(
11334         IFillLockBytes *This,
11335         ULARGE_INTEGER ulSize);
11336 
11337     HRESULT (STDMETHODCALLTYPE *Terminate)(
11338         IFillLockBytes *This,
11339         WINBOOL bCanceled);
11340 
11341     END_INTERFACE
11342 } IFillLockBytesVtbl;
11343 
11344 interface IFillLockBytes {
11345     CONST_VTBL IFillLockBytesVtbl* lpVtbl;
11346 };
11347 
11348 #ifdef COBJMACROS
11349 #ifndef WIDL_C_INLINE_WRAPPERS
11350 /*** IUnknown methods ***/
11351 #define IFillLockBytes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11352 #define IFillLockBytes_AddRef(This) (This)->lpVtbl->AddRef(This)
11353 #define IFillLockBytes_Release(This) (This)->lpVtbl->Release(This)
11354 /*** IFillLockBytes methods ***/
11355 #define IFillLockBytes_FillAppend(This,pv,cb,pcbWritten) (This)->lpVtbl->FillAppend(This,pv,cb,pcbWritten)
11356 #define IFillLockBytes_FillAt(This,ulOffset,pv,cb,pcbWritten) (This)->lpVtbl->FillAt(This,ulOffset,pv,cb,pcbWritten)
11357 #define IFillLockBytes_SetFillSize(This,ulSize) (This)->lpVtbl->SetFillSize(This,ulSize)
11358 #define IFillLockBytes_Terminate(This,bCanceled) (This)->lpVtbl->Terminate(This,bCanceled)
11359 #else
11360 /*** IUnknown methods ***/
11361 static FORCEINLINE HRESULT IFillLockBytes_QueryInterface(IFillLockBytes* This,REFIID riid,void **ppvObject) {
11362     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11363 }
11364 static FORCEINLINE ULONG IFillLockBytes_AddRef(IFillLockBytes* This) {
11365     return This->lpVtbl->AddRef(This);
11366 }
11367 static FORCEINLINE ULONG IFillLockBytes_Release(IFillLockBytes* This) {
11368     return This->lpVtbl->Release(This);
11369 }
11370 /*** IFillLockBytes methods ***/
11371 static FORCEINLINE HRESULT IFillLockBytes_FillAppend(IFillLockBytes* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
11372     return This->lpVtbl->FillAppend(This,pv,cb,pcbWritten);
11373 }
11374 static FORCEINLINE HRESULT IFillLockBytes_FillAt(IFillLockBytes* This,ULARGE_INTEGER ulOffset,const void *pv,ULONG cb,ULONG *pcbWritten) {
11375     return This->lpVtbl->FillAt(This,ulOffset,pv,cb,pcbWritten);
11376 }
11377 static FORCEINLINE HRESULT IFillLockBytes_SetFillSize(IFillLockBytes* This,ULARGE_INTEGER ulSize) {
11378     return This->lpVtbl->SetFillSize(This,ulSize);
11379 }
11380 static FORCEINLINE HRESULT IFillLockBytes_Terminate(IFillLockBytes* This,WINBOOL bCanceled) {
11381     return This->lpVtbl->Terminate(This,bCanceled);
11382 }
11383 #endif
11384 #endif
11385 
11386 #endif
11387 
11388 HRESULT __stdcall IFillLockBytes_RemoteFillAppend_Proxy(
11389     IFillLockBytes* This,
11390     const byte *pv,
11391     ULONG cb,
11392     ULONG *pcbWritten);
11393 void __RPC_STUB IFillLockBytes_RemoteFillAppend_Stub(
11394     IRpcStubBuffer* This,
11395     IRpcChannelBuffer* pRpcChannelBuffer,
11396     PRPC_MESSAGE pRpcMessage,
11397     DWORD* pdwStubPhase);
11398 HRESULT __stdcall IFillLockBytes_RemoteFillAt_Proxy(
11399     IFillLockBytes* This,
11400     ULARGE_INTEGER ulOffset,
11401     const byte *pv,
11402     ULONG cb,
11403     ULONG *pcbWritten);
11404 void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub(
11405     IRpcStubBuffer* This,
11406     IRpcChannelBuffer* pRpcChannelBuffer,
11407     PRPC_MESSAGE pRpcMessage,
11408     DWORD* pdwStubPhase);
11409 HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
11410     IFillLockBytes* This,
11411     const void *pv,
11412     ULONG cb,
11413     ULONG *pcbWritten);
11414 HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
11415     IFillLockBytes* This,
11416     const byte *pv,
11417     ULONG cb,
11418     ULONG *pcbWritten);
11419 HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
11420     IFillLockBytes* This,
11421     ULARGE_INTEGER ulOffset,
11422     const void *pv,
11423     ULONG cb,
11424     ULONG *pcbWritten);
11425 HRESULT __RPC_STUB IFillLockBytes_FillAt_Stub(
11426     IFillLockBytes* This,
11427     ULARGE_INTEGER ulOffset,
11428     const byte *pv,
11429     ULONG cb,
11430     ULONG *pcbWritten);
11431 
11432 #endif  /* __IFillLockBytes_INTERFACE_DEFINED__ */
11433 
11434 #endif
11435 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
11436 /*****************************************************************************
11437  * IProgressNotify interface
11438  */
11439 #ifndef __IProgressNotify_INTERFACE_DEFINED__
11440 #define __IProgressNotify_INTERFACE_DEFINED__
11441 
11442 DEFINE_GUID(IID_IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
11443 #if defined(__cplusplus) && !defined(CINTERFACE)
11444 MIDL_INTERFACE("a9d758a0-4617-11cf-95fc-00aa00680db4")
11445 IProgressNotify : public IUnknown
11446 {
11447     virtual HRESULT STDMETHODCALLTYPE OnProgress(
11448         DWORD dwProgressCurrent,
11449         DWORD dwProgressMaximum,
11450         WINBOOL fAccurate,
11451         WINBOOL fOwner) = 0;
11452 
11453 };
11454 #ifdef __CRT_UUID_DECL
11455 __CRT_UUID_DECL(IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
11456 #endif
11457 #else
11458 typedef struct IProgressNotifyVtbl {
11459     BEGIN_INTERFACE
11460 
11461     /*** IUnknown methods ***/
11462     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11463         IProgressNotify *This,
11464         REFIID riid,
11465         void **ppvObject);
11466 
11467     ULONG (STDMETHODCALLTYPE *AddRef)(
11468         IProgressNotify *This);
11469 
11470     ULONG (STDMETHODCALLTYPE *Release)(
11471         IProgressNotify *This);
11472 
11473     /*** IProgressNotify methods ***/
11474     HRESULT (STDMETHODCALLTYPE *OnProgress)(
11475         IProgressNotify *This,
11476         DWORD dwProgressCurrent,
11477         DWORD dwProgressMaximum,
11478         WINBOOL fAccurate,
11479         WINBOOL fOwner);
11480 
11481     END_INTERFACE
11482 } IProgressNotifyVtbl;
11483 
11484 interface IProgressNotify {
11485     CONST_VTBL IProgressNotifyVtbl* lpVtbl;
11486 };
11487 
11488 #ifdef COBJMACROS
11489 #ifndef WIDL_C_INLINE_WRAPPERS
11490 /*** IUnknown methods ***/
11491 #define IProgressNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11492 #define IProgressNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
11493 #define IProgressNotify_Release(This) (This)->lpVtbl->Release(This)
11494 /*** IProgressNotify methods ***/
11495 #define IProgressNotify_OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner) (This)->lpVtbl->OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner)
11496 #else
11497 /*** IUnknown methods ***/
11498 static FORCEINLINE HRESULT IProgressNotify_QueryInterface(IProgressNotify* This,REFIID riid,void **ppvObject) {
11499     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11500 }
11501 static FORCEINLINE ULONG IProgressNotify_AddRef(IProgressNotify* This) {
11502     return This->lpVtbl->AddRef(This);
11503 }
11504 static FORCEINLINE ULONG IProgressNotify_Release(IProgressNotify* This) {
11505     return This->lpVtbl->Release(This);
11506 }
11507 /*** IProgressNotify methods ***/
11508 static FORCEINLINE HRESULT IProgressNotify_OnProgress(IProgressNotify* This,DWORD dwProgressCurrent,DWORD dwProgressMaximum,WINBOOL fAccurate,WINBOOL fOwner) {
11509     return This->lpVtbl->OnProgress(This,dwProgressCurrent,dwProgressMaximum,fAccurate,fOwner);
11510 }
11511 #endif
11512 #endif
11513 
11514 #endif
11515 
11516 
11517 #endif  /* __IProgressNotify_INTERFACE_DEFINED__ */
11518 
11519 #endif
11520 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
11521 /*****************************************************************************
11522  * ILayoutStorage interface
11523  */
11524 #ifndef __ILayoutStorage_INTERFACE_DEFINED__
11525 #define __ILayoutStorage_INTERFACE_DEFINED__
11526 
11527 typedef struct tagStorageLayout {
11528     DWORD LayoutType;
11529     OLECHAR *pwcsElementName;
11530     LARGE_INTEGER cOffset;
11531     LARGE_INTEGER cBytes;
11532 } StorageLayout;
11533 DEFINE_GUID(IID_ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
11534 #if defined(__cplusplus) && !defined(CINTERFACE)
11535 MIDL_INTERFACE("0e6d4d90-6738-11cf-9608-00aa00680db4")
11536 ILayoutStorage : public IUnknown
11537 {
11538     virtual HRESULT __stdcall LayoutScript(
11539         StorageLayout *pStorageLayout,
11540         DWORD nEntries,
11541         DWORD glfInterleavedFlag) = 0;
11542 
11543     virtual HRESULT __stdcall BeginMonitor(
11544         ) = 0;
11545 
11546     virtual HRESULT __stdcall EndMonitor(
11547         ) = 0;
11548 
11549     virtual HRESULT __stdcall ReLayoutDocfile(
11550         OLECHAR *pwcsNewDfName) = 0;
11551 
11552     virtual HRESULT __stdcall ReLayoutDocfileOnILockBytes(
11553         ILockBytes *pILockBytes) = 0;
11554 
11555 };
11556 #ifdef __CRT_UUID_DECL
11557 __CRT_UUID_DECL(ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
11558 #endif
11559 #else
11560 typedef struct ILayoutStorageVtbl {
11561     BEGIN_INTERFACE
11562 
11563     /*** IUnknown methods ***/
11564     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11565         ILayoutStorage *This,
11566         REFIID riid,
11567         void **ppvObject);
11568 
11569     ULONG (STDMETHODCALLTYPE *AddRef)(
11570         ILayoutStorage *This);
11571 
11572     ULONG (STDMETHODCALLTYPE *Release)(
11573         ILayoutStorage *This);
11574 
11575     /*** ILayoutStorage methods ***/
11576     HRESULT (__stdcall *LayoutScript)(
11577         ILayoutStorage *This,
11578         StorageLayout *pStorageLayout,
11579         DWORD nEntries,
11580         DWORD glfInterleavedFlag);
11581 
11582     HRESULT (__stdcall *BeginMonitor)(
11583         ILayoutStorage *This);
11584 
11585     HRESULT (__stdcall *EndMonitor)(
11586         ILayoutStorage *This);
11587 
11588     HRESULT (__stdcall *ReLayoutDocfile)(
11589         ILayoutStorage *This,
11590         OLECHAR *pwcsNewDfName);
11591 
11592     HRESULT (__stdcall *ReLayoutDocfileOnILockBytes)(
11593         ILayoutStorage *This,
11594         ILockBytes *pILockBytes);
11595 
11596     END_INTERFACE
11597 } ILayoutStorageVtbl;
11598 
11599 interface ILayoutStorage {
11600     CONST_VTBL ILayoutStorageVtbl* lpVtbl;
11601 };
11602 
11603 #ifdef COBJMACROS
11604 #ifndef WIDL_C_INLINE_WRAPPERS
11605 /*** IUnknown methods ***/
11606 #define ILayoutStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11607 #define ILayoutStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
11608 #define ILayoutStorage_Release(This) (This)->lpVtbl->Release(This)
11609 /*** ILayoutStorage methods ***/
11610 #define ILayoutStorage_LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag) (This)->lpVtbl->LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag)
11611 #define ILayoutStorage_BeginMonitor(This) (This)->lpVtbl->BeginMonitor(This)
11612 #define ILayoutStorage_EndMonitor(This) (This)->lpVtbl->EndMonitor(This)
11613 #define ILayoutStorage_ReLayoutDocfile(This,pwcsNewDfName) (This)->lpVtbl->ReLayoutDocfile(This,pwcsNewDfName)
11614 #define ILayoutStorage_ReLayoutDocfileOnILockBytes(This,pILockBytes) (This)->lpVtbl->ReLayoutDocfileOnILockBytes(This,pILockBytes)
11615 #else
11616 /*** IUnknown methods ***/
11617 static FORCEINLINE HRESULT ILayoutStorage_QueryInterface(ILayoutStorage* This,REFIID riid,void **ppvObject) {
11618     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11619 }
11620 static FORCEINLINE ULONG ILayoutStorage_AddRef(ILayoutStorage* This) {
11621     return This->lpVtbl->AddRef(This);
11622 }
11623 static FORCEINLINE ULONG ILayoutStorage_Release(ILayoutStorage* This) {
11624     return This->lpVtbl->Release(This);
11625 }
11626 /*** ILayoutStorage methods ***/
11627 static FORCEINLINE HRESULT ILayoutStorage_LayoutScript(ILayoutStorage* This,StorageLayout *pStorageLayout,DWORD nEntries,DWORD glfInterleavedFlag) {
11628     return This->lpVtbl->LayoutScript(This,pStorageLayout,nEntries,glfInterleavedFlag);
11629 }
11630 static FORCEINLINE HRESULT ILayoutStorage_BeginMonitor(ILayoutStorage* This) {
11631     return This->lpVtbl->BeginMonitor(This);
11632 }
11633 static FORCEINLINE HRESULT ILayoutStorage_EndMonitor(ILayoutStorage* This) {
11634     return This->lpVtbl->EndMonitor(This);
11635 }
11636 static FORCEINLINE HRESULT ILayoutStorage_ReLayoutDocfile(ILayoutStorage* This,OLECHAR *pwcsNewDfName) {
11637     return This->lpVtbl->ReLayoutDocfile(This,pwcsNewDfName);
11638 }
11639 static FORCEINLINE HRESULT ILayoutStorage_ReLayoutDocfileOnILockBytes(ILayoutStorage* This,ILockBytes *pILockBytes) {
11640     return This->lpVtbl->ReLayoutDocfileOnILockBytes(This,pILockBytes);
11641 }
11642 #endif
11643 #endif
11644 
11645 #endif
11646 
11647 
11648 #endif  /* __ILayoutStorage_INTERFACE_DEFINED__ */
11649 
11650 #endif
11651 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
11652 /*****************************************************************************
11653  * IBlockingLock interface
11654  */
11655 #ifndef __IBlockingLock_INTERFACE_DEFINED__
11656 #define __IBlockingLock_INTERFACE_DEFINED__
11657 
11658 DEFINE_GUID(IID_IBlockingLock, 0x30f3d47a, 0x6447, 0x11d1, 0x8e,0x3c, 0x00,0xc0,0x4f,0xb9,0x38,0x6d);
11659 #if defined(__cplusplus) && !defined(CINTERFACE)
11660 MIDL_INTERFACE("30f3d47a-6447-11d1-8e3c-00c04fb9386d")
11661 IBlockingLock : public IUnknown
11662 {
11663     virtual HRESULT STDMETHODCALLTYPE Lock(
11664         DWORD dwTimeout) = 0;
11665 
11666     virtual HRESULT STDMETHODCALLTYPE Unlock(
11667         ) = 0;
11668 
11669 };
11670 #ifdef __CRT_UUID_DECL
11671 __CRT_UUID_DECL(IBlockingLock, 0x30f3d47a, 0x6447, 0x11d1, 0x8e,0x3c, 0x00,0xc0,0x4f,0xb9,0x38,0x6d)
11672 #endif
11673 #else
11674 typedef struct IBlockingLockVtbl {
11675     BEGIN_INTERFACE
11676 
11677     /*** IUnknown methods ***/
11678     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11679         IBlockingLock *This,
11680         REFIID riid,
11681         void **ppvObject);
11682 
11683     ULONG (STDMETHODCALLTYPE *AddRef)(
11684         IBlockingLock *This);
11685 
11686     ULONG (STDMETHODCALLTYPE *Release)(
11687         IBlockingLock *This);
11688 
11689     /*** IBlockingLock methods ***/
11690     HRESULT (STDMETHODCALLTYPE *Lock)(
11691         IBlockingLock *This,
11692         DWORD dwTimeout);
11693 
11694     HRESULT (STDMETHODCALLTYPE *Unlock)(
11695         IBlockingLock *This);
11696 
11697     END_INTERFACE
11698 } IBlockingLockVtbl;
11699 
11700 interface IBlockingLock {
11701     CONST_VTBL IBlockingLockVtbl* lpVtbl;
11702 };
11703 
11704 #ifdef COBJMACROS
11705 #ifndef WIDL_C_INLINE_WRAPPERS
11706 /*** IUnknown methods ***/
11707 #define IBlockingLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11708 #define IBlockingLock_AddRef(This) (This)->lpVtbl->AddRef(This)
11709 #define IBlockingLock_Release(This) (This)->lpVtbl->Release(This)
11710 /*** IBlockingLock methods ***/
11711 #define IBlockingLock_Lock(This,dwTimeout) (This)->lpVtbl->Lock(This,dwTimeout)
11712 #define IBlockingLock_Unlock(This) (This)->lpVtbl->Unlock(This)
11713 #else
11714 /*** IUnknown methods ***/
11715 static FORCEINLINE HRESULT IBlockingLock_QueryInterface(IBlockingLock* This,REFIID riid,void **ppvObject) {
11716     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11717 }
11718 static FORCEINLINE ULONG IBlockingLock_AddRef(IBlockingLock* This) {
11719     return This->lpVtbl->AddRef(This);
11720 }
11721 static FORCEINLINE ULONG IBlockingLock_Release(IBlockingLock* This) {
11722     return This->lpVtbl->Release(This);
11723 }
11724 /*** IBlockingLock methods ***/
11725 static FORCEINLINE HRESULT IBlockingLock_Lock(IBlockingLock* This,DWORD dwTimeout) {
11726     return This->lpVtbl->Lock(This,dwTimeout);
11727 }
11728 static FORCEINLINE HRESULT IBlockingLock_Unlock(IBlockingLock* This) {
11729     return This->lpVtbl->Unlock(This);
11730 }
11731 #endif
11732 #endif
11733 
11734 #endif
11735 
11736 
11737 #endif  /* __IBlockingLock_INTERFACE_DEFINED__ */
11738 
11739 /*****************************************************************************
11740  * ITimeAndNoticeControl interface
11741  */
11742 #ifndef __ITimeAndNoticeControl_INTERFACE_DEFINED__
11743 #define __ITimeAndNoticeControl_INTERFACE_DEFINED__
11744 
11745 DEFINE_GUID(IID_ITimeAndNoticeControl, 0xbc0bf6ae, 0x8878, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4);
11746 #if defined(__cplusplus) && !defined(CINTERFACE)
11747 MIDL_INTERFACE("bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4")
11748 ITimeAndNoticeControl : public IUnknown
11749 {
11750     virtual HRESULT STDMETHODCALLTYPE SuppressChanges(
11751         DWORD res1,
11752         DWORD res2) = 0;
11753 
11754 };
11755 #ifdef __CRT_UUID_DECL
11756 __CRT_UUID_DECL(ITimeAndNoticeControl, 0xbc0bf6ae, 0x8878, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4)
11757 #endif
11758 #else
11759 typedef struct ITimeAndNoticeControlVtbl {
11760     BEGIN_INTERFACE
11761 
11762     /*** IUnknown methods ***/
11763     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11764         ITimeAndNoticeControl *This,
11765         REFIID riid,
11766         void **ppvObject);
11767 
11768     ULONG (STDMETHODCALLTYPE *AddRef)(
11769         ITimeAndNoticeControl *This);
11770 
11771     ULONG (STDMETHODCALLTYPE *Release)(
11772         ITimeAndNoticeControl *This);
11773 
11774     /*** ITimeAndNoticeControl methods ***/
11775     HRESULT (STDMETHODCALLTYPE *SuppressChanges)(
11776         ITimeAndNoticeControl *This,
11777         DWORD res1,
11778         DWORD res2);
11779 
11780     END_INTERFACE
11781 } ITimeAndNoticeControlVtbl;
11782 
11783 interface ITimeAndNoticeControl {
11784     CONST_VTBL ITimeAndNoticeControlVtbl* lpVtbl;
11785 };
11786 
11787 #ifdef COBJMACROS
11788 #ifndef WIDL_C_INLINE_WRAPPERS
11789 /*** IUnknown methods ***/
11790 #define ITimeAndNoticeControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11791 #define ITimeAndNoticeControl_AddRef(This) (This)->lpVtbl->AddRef(This)
11792 #define ITimeAndNoticeControl_Release(This) (This)->lpVtbl->Release(This)
11793 /*** ITimeAndNoticeControl methods ***/
11794 #define ITimeAndNoticeControl_SuppressChanges(This,res1,res2) (This)->lpVtbl->SuppressChanges(This,res1,res2)
11795 #else
11796 /*** IUnknown methods ***/
11797 static FORCEINLINE HRESULT ITimeAndNoticeControl_QueryInterface(ITimeAndNoticeControl* This,REFIID riid,void **ppvObject) {
11798     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11799 }
11800 static FORCEINLINE ULONG ITimeAndNoticeControl_AddRef(ITimeAndNoticeControl* This) {
11801     return This->lpVtbl->AddRef(This);
11802 }
11803 static FORCEINLINE ULONG ITimeAndNoticeControl_Release(ITimeAndNoticeControl* This) {
11804     return This->lpVtbl->Release(This);
11805 }
11806 /*** ITimeAndNoticeControl methods ***/
11807 static FORCEINLINE HRESULT ITimeAndNoticeControl_SuppressChanges(ITimeAndNoticeControl* This,DWORD res1,DWORD res2) {
11808     return This->lpVtbl->SuppressChanges(This,res1,res2);
11809 }
11810 #endif
11811 #endif
11812 
11813 #endif
11814 
11815 
11816 #endif  /* __ITimeAndNoticeControl_INTERFACE_DEFINED__ */
11817 
11818 /*****************************************************************************
11819  * IOplockStorage interface
11820  */
11821 #ifndef __IOplockStorage_INTERFACE_DEFINED__
11822 #define __IOplockStorage_INTERFACE_DEFINED__
11823 
11824 DEFINE_GUID(IID_IOplockStorage, 0x8d19c834, 0x8879, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4);
11825 #if defined(__cplusplus) && !defined(CINTERFACE)
11826 MIDL_INTERFACE("8d19c834-8879-11d1-83e9-00c04fc2c6d4")
11827 IOplockStorage : public IUnknown
11828 {
11829     virtual HRESULT STDMETHODCALLTYPE CreateStorageEx(
11830         LPCWSTR pwcsName,
11831         DWORD grfMode,
11832         DWORD stgfmt,
11833         DWORD grfAttrs,
11834         REFIID riid,
11835         void **ppstgOpen) = 0;
11836 
11837     virtual HRESULT STDMETHODCALLTYPE OpenStorageEx(
11838         LPCWSTR pwcsName,
11839         DWORD grfMode,
11840         DWORD stgfmt,
11841         DWORD grfAttrs,
11842         REFIID riid,
11843         void **ppstgOpen) = 0;
11844 
11845 };
11846 #ifdef __CRT_UUID_DECL
11847 __CRT_UUID_DECL(IOplockStorage, 0x8d19c834, 0x8879, 0x11d1, 0x83,0xe9, 0x00,0xc0,0x4f,0xc2,0xc6,0xd4)
11848 #endif
11849 #else
11850 typedef struct IOplockStorageVtbl {
11851     BEGIN_INTERFACE
11852 
11853     /*** IUnknown methods ***/
11854     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11855         IOplockStorage *This,
11856         REFIID riid,
11857         void **ppvObject);
11858 
11859     ULONG (STDMETHODCALLTYPE *AddRef)(
11860         IOplockStorage *This);
11861 
11862     ULONG (STDMETHODCALLTYPE *Release)(
11863         IOplockStorage *This);
11864 
11865     /*** IOplockStorage methods ***/
11866     HRESULT (STDMETHODCALLTYPE *CreateStorageEx)(
11867         IOplockStorage *This,
11868         LPCWSTR pwcsName,
11869         DWORD grfMode,
11870         DWORD stgfmt,
11871         DWORD grfAttrs,
11872         REFIID riid,
11873         void **ppstgOpen);
11874 
11875     HRESULT (STDMETHODCALLTYPE *OpenStorageEx)(
11876         IOplockStorage *This,
11877         LPCWSTR pwcsName,
11878         DWORD grfMode,
11879         DWORD stgfmt,
11880         DWORD grfAttrs,
11881         REFIID riid,
11882         void **ppstgOpen);
11883 
11884     END_INTERFACE
11885 } IOplockStorageVtbl;
11886 
11887 interface IOplockStorage {
11888     CONST_VTBL IOplockStorageVtbl* lpVtbl;
11889 };
11890 
11891 #ifdef COBJMACROS
11892 #ifndef WIDL_C_INLINE_WRAPPERS
11893 /*** IUnknown methods ***/
11894 #define IOplockStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11895 #define IOplockStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
11896 #define IOplockStorage_Release(This) (This)->lpVtbl->Release(This)
11897 /*** IOplockStorage methods ***/
11898 #define IOplockStorage_CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen) (This)->lpVtbl->CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen)
11899 #define IOplockStorage_OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen) (This)->lpVtbl->OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen)
11900 #else
11901 /*** IUnknown methods ***/
11902 static FORCEINLINE HRESULT IOplockStorage_QueryInterface(IOplockStorage* This,REFIID riid,void **ppvObject) {
11903     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11904 }
11905 static FORCEINLINE ULONG IOplockStorage_AddRef(IOplockStorage* This) {
11906     return This->lpVtbl->AddRef(This);
11907 }
11908 static FORCEINLINE ULONG IOplockStorage_Release(IOplockStorage* This) {
11909     return This->lpVtbl->Release(This);
11910 }
11911 /*** IOplockStorage methods ***/
11912 static FORCEINLINE HRESULT IOplockStorage_CreateStorageEx(IOplockStorage* This,LPCWSTR pwcsName,DWORD grfMode,DWORD stgfmt,DWORD grfAttrs,REFIID riid,void **ppstgOpen) {
11913     return This->lpVtbl->CreateStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen);
11914 }
11915 static FORCEINLINE HRESULT IOplockStorage_OpenStorageEx(IOplockStorage* This,LPCWSTR pwcsName,DWORD grfMode,DWORD stgfmt,DWORD grfAttrs,REFIID riid,void **ppstgOpen) {
11916     return This->lpVtbl->OpenStorageEx(This,pwcsName,grfMode,stgfmt,grfAttrs,riid,ppstgOpen);
11917 }
11918 #endif
11919 #endif
11920 
11921 #endif
11922 
11923 
11924 #endif  /* __IOplockStorage_INTERFACE_DEFINED__ */
11925 
11926 #endif
11927 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
11928 /*****************************************************************************
11929  * IDirectWriterLock interface
11930  */
11931 #ifndef __IDirectWriterLock_INTERFACE_DEFINED__
11932 #define __IDirectWriterLock_INTERFACE_DEFINED__
11933 
11934 DEFINE_GUID(IID_IDirectWriterLock, 0x0e6d4d92, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
11935 #if defined(__cplusplus) && !defined(CINTERFACE)
11936 MIDL_INTERFACE("0e6d4d92-6738-11cf-9608-00aa00680db4")
11937 IDirectWriterLock : public IUnknown
11938 {
11939     virtual HRESULT STDMETHODCALLTYPE WaitForWriteAccess(
11940         DWORD dwTimeout) = 0;
11941 
11942     virtual HRESULT STDMETHODCALLTYPE ReleaseWriteAccess(
11943         ) = 0;
11944 
11945     virtual HRESULT STDMETHODCALLTYPE HaveWriteAccess(
11946         ) = 0;
11947 
11948 };
11949 #ifdef __CRT_UUID_DECL
11950 __CRT_UUID_DECL(IDirectWriterLock, 0x0e6d4d92, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4)
11951 #endif
11952 #else
11953 typedef struct IDirectWriterLockVtbl {
11954     BEGIN_INTERFACE
11955 
11956     /*** IUnknown methods ***/
11957     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11958         IDirectWriterLock *This,
11959         REFIID riid,
11960         void **ppvObject);
11961 
11962     ULONG (STDMETHODCALLTYPE *AddRef)(
11963         IDirectWriterLock *This);
11964 
11965     ULONG (STDMETHODCALLTYPE *Release)(
11966         IDirectWriterLock *This);
11967 
11968     /*** IDirectWriterLock methods ***/
11969     HRESULT (STDMETHODCALLTYPE *WaitForWriteAccess)(
11970         IDirectWriterLock *This,
11971         DWORD dwTimeout);
11972 
11973     HRESULT (STDMETHODCALLTYPE *ReleaseWriteAccess)(
11974         IDirectWriterLock *This);
11975 
11976     HRESULT (STDMETHODCALLTYPE *HaveWriteAccess)(
11977         IDirectWriterLock *This);
11978 
11979     END_INTERFACE
11980 } IDirectWriterLockVtbl;
11981 
11982 interface IDirectWriterLock {
11983     CONST_VTBL IDirectWriterLockVtbl* lpVtbl;
11984 };
11985 
11986 #ifdef COBJMACROS
11987 #ifndef WIDL_C_INLINE_WRAPPERS
11988 /*** IUnknown methods ***/
11989 #define IDirectWriterLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11990 #define IDirectWriterLock_AddRef(This) (This)->lpVtbl->AddRef(This)
11991 #define IDirectWriterLock_Release(This) (This)->lpVtbl->Release(This)
11992 /*** IDirectWriterLock methods ***/
11993 #define IDirectWriterLock_WaitForWriteAccess(This,dwTimeout) (This)->lpVtbl->WaitForWriteAccess(This,dwTimeout)
11994 #define IDirectWriterLock_ReleaseWriteAccess(This) (This)->lpVtbl->ReleaseWriteAccess(This)
11995 #define IDirectWriterLock_HaveWriteAccess(This) (This)->lpVtbl->HaveWriteAccess(This)
11996 #else
11997 /*** IUnknown methods ***/
11998 static FORCEINLINE HRESULT IDirectWriterLock_QueryInterface(IDirectWriterLock* This,REFIID riid,void **ppvObject) {
11999     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12000 }
12001 static FORCEINLINE ULONG IDirectWriterLock_AddRef(IDirectWriterLock* This) {
12002     return This->lpVtbl->AddRef(This);
12003 }
12004 static FORCEINLINE ULONG IDirectWriterLock_Release(IDirectWriterLock* This) {
12005     return This->lpVtbl->Release(This);
12006 }
12007 /*** IDirectWriterLock methods ***/
12008 static FORCEINLINE HRESULT IDirectWriterLock_WaitForWriteAccess(IDirectWriterLock* This,DWORD dwTimeout) {
12009     return This->lpVtbl->WaitForWriteAccess(This,dwTimeout);
12010 }
12011 static FORCEINLINE HRESULT IDirectWriterLock_ReleaseWriteAccess(IDirectWriterLock* This) {
12012     return This->lpVtbl->ReleaseWriteAccess(This);
12013 }
12014 static FORCEINLINE HRESULT IDirectWriterLock_HaveWriteAccess(IDirectWriterLock* This) {
12015     return This->lpVtbl->HaveWriteAccess(This);
12016 }
12017 #endif
12018 #endif
12019 
12020 #endif
12021 
12022 
12023 #endif  /* __IDirectWriterLock_INTERFACE_DEFINED__ */
12024 
12025 #endif
12026 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
12027 /*****************************************************************************
12028  * IUrlMon interface
12029  */
12030 #ifndef __IUrlMon_INTERFACE_DEFINED__
12031 #define __IUrlMon_INTERFACE_DEFINED__
12032 
12033 DEFINE_GUID(IID_IUrlMon, 0x00000026, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12034 #if defined(__cplusplus) && !defined(CINTERFACE)
12035 MIDL_INTERFACE("00000026-0000-0000-c000-000000000046")
12036 IUrlMon : public IUnknown
12037 {
12038     virtual HRESULT STDMETHODCALLTYPE AsyncGetClassBits(
12039         REFCLSID rclsid,
12040         LPCWSTR pszTYPE,
12041         LPCWSTR pszExt,
12042         DWORD dwFileVersionMS,
12043         DWORD dwFileVersionLS,
12044         LPCWSTR pszCodeBase,
12045         IBindCtx *pbc,
12046         DWORD dwClassContext,
12047         REFIID riid,
12048         DWORD flags) = 0;
12049 
12050 };
12051 #ifdef __CRT_UUID_DECL
12052 __CRT_UUID_DECL(IUrlMon, 0x00000026, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12053 #endif
12054 #else
12055 typedef struct IUrlMonVtbl {
12056     BEGIN_INTERFACE
12057 
12058     /*** IUnknown methods ***/
12059     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12060         IUrlMon *This,
12061         REFIID riid,
12062         void **ppvObject);
12063 
12064     ULONG (STDMETHODCALLTYPE *AddRef)(
12065         IUrlMon *This);
12066 
12067     ULONG (STDMETHODCALLTYPE *Release)(
12068         IUrlMon *This);
12069 
12070     /*** IUrlMon methods ***/
12071     HRESULT (STDMETHODCALLTYPE *AsyncGetClassBits)(
12072         IUrlMon *This,
12073         REFCLSID rclsid,
12074         LPCWSTR pszTYPE,
12075         LPCWSTR pszExt,
12076         DWORD dwFileVersionMS,
12077         DWORD dwFileVersionLS,
12078         LPCWSTR pszCodeBase,
12079         IBindCtx *pbc,
12080         DWORD dwClassContext,
12081         REFIID riid,
12082         DWORD flags);
12083 
12084     END_INTERFACE
12085 } IUrlMonVtbl;
12086 
12087 interface IUrlMon {
12088     CONST_VTBL IUrlMonVtbl* lpVtbl;
12089 };
12090 
12091 #ifdef COBJMACROS
12092 #ifndef WIDL_C_INLINE_WRAPPERS
12093 /*** IUnknown methods ***/
12094 #define IUrlMon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12095 #define IUrlMon_AddRef(This) (This)->lpVtbl->AddRef(This)
12096 #define IUrlMon_Release(This) (This)->lpVtbl->Release(This)
12097 /*** IUrlMon methods ***/
12098 #define IUrlMon_AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags) (This)->lpVtbl->AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags)
12099 #else
12100 /*** IUnknown methods ***/
12101 static FORCEINLINE HRESULT IUrlMon_QueryInterface(IUrlMon* This,REFIID riid,void **ppvObject) {
12102     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12103 }
12104 static FORCEINLINE ULONG IUrlMon_AddRef(IUrlMon* This) {
12105     return This->lpVtbl->AddRef(This);
12106 }
12107 static FORCEINLINE ULONG IUrlMon_Release(IUrlMon* This) {
12108     return This->lpVtbl->Release(This);
12109 }
12110 /*** IUrlMon methods ***/
12111 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) {
12112     return This->lpVtbl->AsyncGetClassBits(This,rclsid,pszTYPE,pszExt,dwFileVersionMS,dwFileVersionLS,pszCodeBase,pbc,dwClassContext,riid,flags);
12113 }
12114 #endif
12115 #endif
12116 
12117 #endif
12118 
12119 
12120 #endif  /* __IUrlMon_INTERFACE_DEFINED__ */
12121 
12122 /*****************************************************************************
12123  * IForegroundTransfer interface
12124  */
12125 #ifndef __IForegroundTransfer_INTERFACE_DEFINED__
12126 #define __IForegroundTransfer_INTERFACE_DEFINED__
12127 
12128 DEFINE_GUID(IID_IForegroundTransfer, 0x00000145, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12129 #if defined(__cplusplus) && !defined(CINTERFACE)
12130 MIDL_INTERFACE("00000145-0000-0000-c000-000000000046")
12131 IForegroundTransfer : public IUnknown
12132 {
12133     virtual HRESULT STDMETHODCALLTYPE AllowForegroundTransfer(
12134         void *lpvReserved) = 0;
12135 
12136 };
12137 #ifdef __CRT_UUID_DECL
12138 __CRT_UUID_DECL(IForegroundTransfer, 0x00000145, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12139 #endif
12140 #else
12141 typedef struct IForegroundTransferVtbl {
12142     BEGIN_INTERFACE
12143 
12144     /*** IUnknown methods ***/
12145     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12146         IForegroundTransfer *This,
12147         REFIID riid,
12148         void **ppvObject);
12149 
12150     ULONG (STDMETHODCALLTYPE *AddRef)(
12151         IForegroundTransfer *This);
12152 
12153     ULONG (STDMETHODCALLTYPE *Release)(
12154         IForegroundTransfer *This);
12155 
12156     /*** IForegroundTransfer methods ***/
12157     HRESULT (STDMETHODCALLTYPE *AllowForegroundTransfer)(
12158         IForegroundTransfer *This,
12159         void *lpvReserved);
12160 
12161     END_INTERFACE
12162 } IForegroundTransferVtbl;
12163 
12164 interface IForegroundTransfer {
12165     CONST_VTBL IForegroundTransferVtbl* lpVtbl;
12166 };
12167 
12168 #ifdef COBJMACROS
12169 #ifndef WIDL_C_INLINE_WRAPPERS
12170 /*** IUnknown methods ***/
12171 #define IForegroundTransfer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12172 #define IForegroundTransfer_AddRef(This) (This)->lpVtbl->AddRef(This)
12173 #define IForegroundTransfer_Release(This) (This)->lpVtbl->Release(This)
12174 /*** IForegroundTransfer methods ***/
12175 #define IForegroundTransfer_AllowForegroundTransfer(This,lpvReserved) (This)->lpVtbl->AllowForegroundTransfer(This,lpvReserved)
12176 #else
12177 /*** IUnknown methods ***/
12178 static FORCEINLINE HRESULT IForegroundTransfer_QueryInterface(IForegroundTransfer* This,REFIID riid,void **ppvObject) {
12179     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12180 }
12181 static FORCEINLINE ULONG IForegroundTransfer_AddRef(IForegroundTransfer* This) {
12182     return This->lpVtbl->AddRef(This);
12183 }
12184 static FORCEINLINE ULONG IForegroundTransfer_Release(IForegroundTransfer* This) {
12185     return This->lpVtbl->Release(This);
12186 }
12187 /*** IForegroundTransfer methods ***/
12188 static FORCEINLINE HRESULT IForegroundTransfer_AllowForegroundTransfer(IForegroundTransfer* This,void *lpvReserved) {
12189     return This->lpVtbl->AllowForegroundTransfer(This,lpvReserved);
12190 }
12191 #endif
12192 #endif
12193 
12194 #endif
12195 
12196 
12197 #endif  /* __IForegroundTransfer_INTERFACE_DEFINED__ */
12198 
12199 /*****************************************************************************
12200  * IThumbnailExtractor interface
12201  */
12202 #ifndef __IThumbnailExtractor_INTERFACE_DEFINED__
12203 #define __IThumbnailExtractor_INTERFACE_DEFINED__
12204 
12205 DEFINE_GUID(IID_IThumbnailExtractor, 0x969dc708, 0x5c76, 0x11d1, 0x8d,0x86, 0x00,0x00,0xf8,0x04,0xb0,0x57);
12206 #if defined(__cplusplus) && !defined(CINTERFACE)
12207 MIDL_INTERFACE("969dc708-5c76-11d1-8d86-0000f804b057")
12208 IThumbnailExtractor : public IUnknown
12209 {
12210     virtual HRESULT STDMETHODCALLTYPE ExtractThumbnail(
12211         IStorage *pStg,
12212         ULONG ulLength,
12213         ULONG ulHeight,
12214         ULONG *pulOutputLength,
12215         ULONG *pulOutputHeight,
12216         HBITMAP *phOutputBitmap) = 0;
12217 
12218     virtual HRESULT STDMETHODCALLTYPE OnFileUpdated(
12219         IStorage *pStg) = 0;
12220 
12221 };
12222 #ifdef __CRT_UUID_DECL
12223 __CRT_UUID_DECL(IThumbnailExtractor, 0x969dc708, 0x5c76, 0x11d1, 0x8d,0x86, 0x00,0x00,0xf8,0x04,0xb0,0x57)
12224 #endif
12225 #else
12226 typedef struct IThumbnailExtractorVtbl {
12227     BEGIN_INTERFACE
12228 
12229     /*** IUnknown methods ***/
12230     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12231         IThumbnailExtractor *This,
12232         REFIID riid,
12233         void **ppvObject);
12234 
12235     ULONG (STDMETHODCALLTYPE *AddRef)(
12236         IThumbnailExtractor *This);
12237 
12238     ULONG (STDMETHODCALLTYPE *Release)(
12239         IThumbnailExtractor *This);
12240 
12241     /*** IThumbnailExtractor methods ***/
12242     HRESULT (STDMETHODCALLTYPE *ExtractThumbnail)(
12243         IThumbnailExtractor *This,
12244         IStorage *pStg,
12245         ULONG ulLength,
12246         ULONG ulHeight,
12247         ULONG *pulOutputLength,
12248         ULONG *pulOutputHeight,
12249         HBITMAP *phOutputBitmap);
12250 
12251     HRESULT (STDMETHODCALLTYPE *OnFileUpdated)(
12252         IThumbnailExtractor *This,
12253         IStorage *pStg);
12254 
12255     END_INTERFACE
12256 } IThumbnailExtractorVtbl;
12257 
12258 interface IThumbnailExtractor {
12259     CONST_VTBL IThumbnailExtractorVtbl* lpVtbl;
12260 };
12261 
12262 #ifdef COBJMACROS
12263 #ifndef WIDL_C_INLINE_WRAPPERS
12264 /*** IUnknown methods ***/
12265 #define IThumbnailExtractor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12266 #define IThumbnailExtractor_AddRef(This) (This)->lpVtbl->AddRef(This)
12267 #define IThumbnailExtractor_Release(This) (This)->lpVtbl->Release(This)
12268 /*** IThumbnailExtractor methods ***/
12269 #define IThumbnailExtractor_ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap) (This)->lpVtbl->ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap)
12270 #define IThumbnailExtractor_OnFileUpdated(This,pStg) (This)->lpVtbl->OnFileUpdated(This,pStg)
12271 #else
12272 /*** IUnknown methods ***/
12273 static FORCEINLINE HRESULT IThumbnailExtractor_QueryInterface(IThumbnailExtractor* This,REFIID riid,void **ppvObject) {
12274     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12275 }
12276 static FORCEINLINE ULONG IThumbnailExtractor_AddRef(IThumbnailExtractor* This) {
12277     return This->lpVtbl->AddRef(This);
12278 }
12279 static FORCEINLINE ULONG IThumbnailExtractor_Release(IThumbnailExtractor* This) {
12280     return This->lpVtbl->Release(This);
12281 }
12282 /*** IThumbnailExtractor methods ***/
12283 static FORCEINLINE HRESULT IThumbnailExtractor_ExtractThumbnail(IThumbnailExtractor* This,IStorage *pStg,ULONG ulLength,ULONG ulHeight,ULONG *pulOutputLength,ULONG *pulOutputHeight,HBITMAP *phOutputBitmap) {
12284     return This->lpVtbl->ExtractThumbnail(This,pStg,ulLength,ulHeight,pulOutputLength,pulOutputHeight,phOutputBitmap);
12285 }
12286 static FORCEINLINE HRESULT IThumbnailExtractor_OnFileUpdated(IThumbnailExtractor* This,IStorage *pStg) {
12287     return This->lpVtbl->OnFileUpdated(This,pStg);
12288 }
12289 #endif
12290 #endif
12291 
12292 #endif
12293 
12294 
12295 #endif  /* __IThumbnailExtractor_INTERFACE_DEFINED__ */
12296 
12297 /*****************************************************************************
12298  * IDummyHICONIncluder interface
12299  */
12300 #ifndef __IDummyHICONIncluder_INTERFACE_DEFINED__
12301 #define __IDummyHICONIncluder_INTERFACE_DEFINED__
12302 
12303 DEFINE_GUID(IID_IDummyHICONIncluder, 0x947990de, 0xcc28, 0x11d2, 0xa0,0xf7, 0x00,0x80,0x5f,0x85,0x8f,0xb1);
12304 #if defined(__cplusplus) && !defined(CINTERFACE)
12305 MIDL_INTERFACE("947990de-cc28-11d2-a0f7-00805f858fb1")
12306 IDummyHICONIncluder : public IUnknown
12307 {
12308     virtual HRESULT STDMETHODCALLTYPE Dummy(
12309         HICON h1,
12310         HDC h2) = 0;
12311 
12312 };
12313 #ifdef __CRT_UUID_DECL
12314 __CRT_UUID_DECL(IDummyHICONIncluder, 0x947990de, 0xcc28, 0x11d2, 0xa0,0xf7, 0x00,0x80,0x5f,0x85,0x8f,0xb1)
12315 #endif
12316 #else
12317 typedef struct IDummyHICONIncluderVtbl {
12318     BEGIN_INTERFACE
12319 
12320     /*** IUnknown methods ***/
12321     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12322         IDummyHICONIncluder *This,
12323         REFIID riid,
12324         void **ppvObject);
12325 
12326     ULONG (STDMETHODCALLTYPE *AddRef)(
12327         IDummyHICONIncluder *This);
12328 
12329     ULONG (STDMETHODCALLTYPE *Release)(
12330         IDummyHICONIncluder *This);
12331 
12332     /*** IDummyHICONIncluder methods ***/
12333     HRESULT (STDMETHODCALLTYPE *Dummy)(
12334         IDummyHICONIncluder *This,
12335         HICON h1,
12336         HDC h2);
12337 
12338     END_INTERFACE
12339 } IDummyHICONIncluderVtbl;
12340 
12341 interface IDummyHICONIncluder {
12342     CONST_VTBL IDummyHICONIncluderVtbl* lpVtbl;
12343 };
12344 
12345 #ifdef COBJMACROS
12346 #ifndef WIDL_C_INLINE_WRAPPERS
12347 /*** IUnknown methods ***/
12348 #define IDummyHICONIncluder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12349 #define IDummyHICONIncluder_AddRef(This) (This)->lpVtbl->AddRef(This)
12350 #define IDummyHICONIncluder_Release(This) (This)->lpVtbl->Release(This)
12351 /*** IDummyHICONIncluder methods ***/
12352 #define IDummyHICONIncluder_Dummy(This,h1,h2) (This)->lpVtbl->Dummy(This,h1,h2)
12353 #else
12354 /*** IUnknown methods ***/
12355 static FORCEINLINE HRESULT IDummyHICONIncluder_QueryInterface(IDummyHICONIncluder* This,REFIID riid,void **ppvObject) {
12356     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12357 }
12358 static FORCEINLINE ULONG IDummyHICONIncluder_AddRef(IDummyHICONIncluder* This) {
12359     return This->lpVtbl->AddRef(This);
12360 }
12361 static FORCEINLINE ULONG IDummyHICONIncluder_Release(IDummyHICONIncluder* This) {
12362     return This->lpVtbl->Release(This);
12363 }
12364 /*** IDummyHICONIncluder methods ***/
12365 static FORCEINLINE HRESULT IDummyHICONIncluder_Dummy(IDummyHICONIncluder* This,HICON h1,HDC h2) {
12366     return This->lpVtbl->Dummy(This,h1,h2);
12367 }
12368 #endif
12369 #endif
12370 
12371 #endif
12372 
12373 
12374 #endif  /* __IDummyHICONIncluder_INTERFACE_DEFINED__ */
12375 
12376 typedef enum tagApplicationType {
12377     ServerApplication = 0,
12378     LibraryApplication = 1
12379 } ApplicationType;
12380 typedef enum tagShutdownType {
12381     IdleShutdown = 0,
12382     ForcedShutdown = 1
12383 } ShutdownType;
12384 /*****************************************************************************
12385  * IProcessLock interface
12386  */
12387 #ifndef __IProcessLock_INTERFACE_DEFINED__
12388 #define __IProcessLock_INTERFACE_DEFINED__
12389 
12390 DEFINE_GUID(IID_IProcessLock, 0x000001d5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12391 #if defined(__cplusplus) && !defined(CINTERFACE)
12392 MIDL_INTERFACE("000001d5-0000-0000-c000-000000000046")
12393 IProcessLock : public IUnknown
12394 {
12395     virtual ULONG STDMETHODCALLTYPE AddRefOnProcess(
12396         ) = 0;
12397 
12398     virtual ULONG STDMETHODCALLTYPE ReleaseRefOnProcess(
12399         ) = 0;
12400 
12401 };
12402 #ifdef __CRT_UUID_DECL
12403 __CRT_UUID_DECL(IProcessLock, 0x000001d5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12404 #endif
12405 #else
12406 typedef struct IProcessLockVtbl {
12407     BEGIN_INTERFACE
12408 
12409     /*** IUnknown methods ***/
12410     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12411         IProcessLock *This,
12412         REFIID riid,
12413         void **ppvObject);
12414 
12415     ULONG (STDMETHODCALLTYPE *AddRef)(
12416         IProcessLock *This);
12417 
12418     ULONG (STDMETHODCALLTYPE *Release)(
12419         IProcessLock *This);
12420 
12421     /*** IProcessLock methods ***/
12422     ULONG (STDMETHODCALLTYPE *AddRefOnProcess)(
12423         IProcessLock *This);
12424 
12425     ULONG (STDMETHODCALLTYPE *ReleaseRefOnProcess)(
12426         IProcessLock *This);
12427 
12428     END_INTERFACE
12429 } IProcessLockVtbl;
12430 
12431 interface IProcessLock {
12432     CONST_VTBL IProcessLockVtbl* lpVtbl;
12433 };
12434 
12435 #ifdef COBJMACROS
12436 #ifndef WIDL_C_INLINE_WRAPPERS
12437 /*** IUnknown methods ***/
12438 #define IProcessLock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12439 #define IProcessLock_AddRef(This) (This)->lpVtbl->AddRef(This)
12440 #define IProcessLock_Release(This) (This)->lpVtbl->Release(This)
12441 /*** IProcessLock methods ***/
12442 #define IProcessLock_AddRefOnProcess(This) (This)->lpVtbl->AddRefOnProcess(This)
12443 #define IProcessLock_ReleaseRefOnProcess(This) (This)->lpVtbl->ReleaseRefOnProcess(This)
12444 #else
12445 /*** IUnknown methods ***/
12446 static FORCEINLINE HRESULT IProcessLock_QueryInterface(IProcessLock* This,REFIID riid,void **ppvObject) {
12447     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12448 }
12449 static FORCEINLINE ULONG IProcessLock_AddRef(IProcessLock* This) {
12450     return This->lpVtbl->AddRef(This);
12451 }
12452 static FORCEINLINE ULONG IProcessLock_Release(IProcessLock* This) {
12453     return This->lpVtbl->Release(This);
12454 }
12455 /*** IProcessLock methods ***/
12456 static FORCEINLINE ULONG IProcessLock_AddRefOnProcess(IProcessLock* This) {
12457     return This->lpVtbl->AddRefOnProcess(This);
12458 }
12459 static FORCEINLINE ULONG IProcessLock_ReleaseRefOnProcess(IProcessLock* This) {
12460     return This->lpVtbl->ReleaseRefOnProcess(This);
12461 }
12462 #endif
12463 #endif
12464 
12465 #endif
12466 
12467 
12468 #endif  /* __IProcessLock_INTERFACE_DEFINED__ */
12469 
12470 /*****************************************************************************
12471  * ISurrogateService interface
12472  */
12473 #ifndef __ISurrogateService_INTERFACE_DEFINED__
12474 #define __ISurrogateService_INTERFACE_DEFINED__
12475 
12476 DEFINE_GUID(IID_ISurrogateService, 0x000001d4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12477 #if defined(__cplusplus) && !defined(CINTERFACE)
12478 MIDL_INTERFACE("000001d4-0000-0000-c000-000000000046")
12479 ISurrogateService : public IUnknown
12480 {
12481     virtual HRESULT STDMETHODCALLTYPE Init(
12482         REFGUID rguidProcessID,
12483         IProcessLock *pProcessLock,
12484         WINBOOL *pfApplicationAware) = 0;
12485 
12486     virtual HRESULT STDMETHODCALLTYPE ApplicationLaunch(
12487         REFGUID rguidApplID,
12488         ApplicationType appType) = 0;
12489 
12490     virtual HRESULT STDMETHODCALLTYPE ApplicationFree(
12491         REFGUID rguidApplID) = 0;
12492 
12493     virtual HRESULT STDMETHODCALLTYPE CatalogRefresh(
12494         ULONG ulReserved) = 0;
12495 
12496     virtual HRESULT STDMETHODCALLTYPE ProcessShutdown(
12497         ShutdownType shutdownType) = 0;
12498 
12499 };
12500 #ifdef __CRT_UUID_DECL
12501 __CRT_UUID_DECL(ISurrogateService, 0x000001d4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12502 #endif
12503 #else
12504 typedef struct ISurrogateServiceVtbl {
12505     BEGIN_INTERFACE
12506 
12507     /*** IUnknown methods ***/
12508     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12509         ISurrogateService *This,
12510         REFIID riid,
12511         void **ppvObject);
12512 
12513     ULONG (STDMETHODCALLTYPE *AddRef)(
12514         ISurrogateService *This);
12515 
12516     ULONG (STDMETHODCALLTYPE *Release)(
12517         ISurrogateService *This);
12518 
12519     /*** ISurrogateService methods ***/
12520     HRESULT (STDMETHODCALLTYPE *Init)(
12521         ISurrogateService *This,
12522         REFGUID rguidProcessID,
12523         IProcessLock *pProcessLock,
12524         WINBOOL *pfApplicationAware);
12525 
12526     HRESULT (STDMETHODCALLTYPE *ApplicationLaunch)(
12527         ISurrogateService *This,
12528         REFGUID rguidApplID,
12529         ApplicationType appType);
12530 
12531     HRESULT (STDMETHODCALLTYPE *ApplicationFree)(
12532         ISurrogateService *This,
12533         REFGUID rguidApplID);
12534 
12535     HRESULT (STDMETHODCALLTYPE *CatalogRefresh)(
12536         ISurrogateService *This,
12537         ULONG ulReserved);
12538 
12539     HRESULT (STDMETHODCALLTYPE *ProcessShutdown)(
12540         ISurrogateService *This,
12541         ShutdownType shutdownType);
12542 
12543     END_INTERFACE
12544 } ISurrogateServiceVtbl;
12545 
12546 interface ISurrogateService {
12547     CONST_VTBL ISurrogateServiceVtbl* lpVtbl;
12548 };
12549 
12550 #ifdef COBJMACROS
12551 #ifndef WIDL_C_INLINE_WRAPPERS
12552 /*** IUnknown methods ***/
12553 #define ISurrogateService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12554 #define ISurrogateService_AddRef(This) (This)->lpVtbl->AddRef(This)
12555 #define ISurrogateService_Release(This) (This)->lpVtbl->Release(This)
12556 /*** ISurrogateService methods ***/
12557 #define ISurrogateService_Init(This,rguidProcessID,pProcessLock,pfApplicationAware) (This)->lpVtbl->Init(This,rguidProcessID,pProcessLock,pfApplicationAware)
12558 #define ISurrogateService_ApplicationLaunch(This,rguidApplID,appType) (This)->lpVtbl->ApplicationLaunch(This,rguidApplID,appType)
12559 #define ISurrogateService_ApplicationFree(This,rguidApplID) (This)->lpVtbl->ApplicationFree(This,rguidApplID)
12560 #define ISurrogateService_CatalogRefresh(This,ulReserved) (This)->lpVtbl->CatalogRefresh(This,ulReserved)
12561 #define ISurrogateService_ProcessShutdown(This,shutdownType) (This)->lpVtbl->ProcessShutdown(This,shutdownType)
12562 #else
12563 /*** IUnknown methods ***/
12564 static FORCEINLINE HRESULT ISurrogateService_QueryInterface(ISurrogateService* This,REFIID riid,void **ppvObject) {
12565     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12566 }
12567 static FORCEINLINE ULONG ISurrogateService_AddRef(ISurrogateService* This) {
12568     return This->lpVtbl->AddRef(This);
12569 }
12570 static FORCEINLINE ULONG ISurrogateService_Release(ISurrogateService* This) {
12571     return This->lpVtbl->Release(This);
12572 }
12573 /*** ISurrogateService methods ***/
12574 static FORCEINLINE HRESULT ISurrogateService_Init(ISurrogateService* This,REFGUID rguidProcessID,IProcessLock *pProcessLock,WINBOOL *pfApplicationAware) {
12575     return This->lpVtbl->Init(This,rguidProcessID,pProcessLock,pfApplicationAware);
12576 }
12577 static FORCEINLINE HRESULT ISurrogateService_ApplicationLaunch(ISurrogateService* This,REFGUID rguidApplID,ApplicationType appType) {
12578     return This->lpVtbl->ApplicationLaunch(This,rguidApplID,appType);
12579 }
12580 static FORCEINLINE HRESULT ISurrogateService_ApplicationFree(ISurrogateService* This,REFGUID rguidApplID) {
12581     return This->lpVtbl->ApplicationFree(This,rguidApplID);
12582 }
12583 static FORCEINLINE HRESULT ISurrogateService_CatalogRefresh(ISurrogateService* This,ULONG ulReserved) {
12584     return This->lpVtbl->CatalogRefresh(This,ulReserved);
12585 }
12586 static FORCEINLINE HRESULT ISurrogateService_ProcessShutdown(ISurrogateService* This,ShutdownType shutdownType) {
12587     return This->lpVtbl->ProcessShutdown(This,shutdownType);
12588 }
12589 #endif
12590 #endif
12591 
12592 #endif
12593 
12594 
12595 #endif  /* __ISurrogateService_INTERFACE_DEFINED__ */
12596 
12597 /*****************************************************************************
12598  * IInitializeSpy interface
12599  */
12600 #ifndef __IInitializeSpy_INTERFACE_DEFINED__
12601 #define __IInitializeSpy_INTERFACE_DEFINED__
12602 
12603 typedef IInitializeSpy *LPINITIALIZESPY;
12604 DEFINE_GUID(IID_IInitializeSpy, 0x00000034, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12605 #if defined(__cplusplus) && !defined(CINTERFACE)
12606 MIDL_INTERFACE("00000034-0000-0000-c000-000000000046")
12607 IInitializeSpy : public IUnknown
12608 {
12609     virtual HRESULT STDMETHODCALLTYPE PreInitialize(
12610         DWORD dwCoInit,
12611         DWORD dwCurThreadAptRefs) = 0;
12612 
12613     virtual HRESULT STDMETHODCALLTYPE PostInitialize(
12614         HRESULT hrCoInit,
12615         DWORD dwCoInit,
12616         DWORD dwNewThreadAptRefs) = 0;
12617 
12618     virtual HRESULT STDMETHODCALLTYPE PreUninitialize(
12619         DWORD dwCurThreadAptRefs) = 0;
12620 
12621     virtual HRESULT STDMETHODCALLTYPE PostUninitialize(
12622         DWORD dwNewThreadAptRefs) = 0;
12623 
12624 };
12625 #ifdef __CRT_UUID_DECL
12626 __CRT_UUID_DECL(IInitializeSpy, 0x00000034, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12627 #endif
12628 #else
12629 typedef struct IInitializeSpyVtbl {
12630     BEGIN_INTERFACE
12631 
12632     /*** IUnknown methods ***/
12633     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12634         IInitializeSpy *This,
12635         REFIID riid,
12636         void **ppvObject);
12637 
12638     ULONG (STDMETHODCALLTYPE *AddRef)(
12639         IInitializeSpy *This);
12640 
12641     ULONG (STDMETHODCALLTYPE *Release)(
12642         IInitializeSpy *This);
12643 
12644     /*** IInitializeSpy methods ***/
12645     HRESULT (STDMETHODCALLTYPE *PreInitialize)(
12646         IInitializeSpy *This,
12647         DWORD dwCoInit,
12648         DWORD dwCurThreadAptRefs);
12649 
12650     HRESULT (STDMETHODCALLTYPE *PostInitialize)(
12651         IInitializeSpy *This,
12652         HRESULT hrCoInit,
12653         DWORD dwCoInit,
12654         DWORD dwNewThreadAptRefs);
12655 
12656     HRESULT (STDMETHODCALLTYPE *PreUninitialize)(
12657         IInitializeSpy *This,
12658         DWORD dwCurThreadAptRefs);
12659 
12660     HRESULT (STDMETHODCALLTYPE *PostUninitialize)(
12661         IInitializeSpy *This,
12662         DWORD dwNewThreadAptRefs);
12663 
12664     END_INTERFACE
12665 } IInitializeSpyVtbl;
12666 
12667 interface IInitializeSpy {
12668     CONST_VTBL IInitializeSpyVtbl* lpVtbl;
12669 };
12670 
12671 #ifdef COBJMACROS
12672 #ifndef WIDL_C_INLINE_WRAPPERS
12673 /*** IUnknown methods ***/
12674 #define IInitializeSpy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12675 #define IInitializeSpy_AddRef(This) (This)->lpVtbl->AddRef(This)
12676 #define IInitializeSpy_Release(This) (This)->lpVtbl->Release(This)
12677 /*** IInitializeSpy methods ***/
12678 #define IInitializeSpy_PreInitialize(This,dwCoInit,dwCurThreadAptRefs) (This)->lpVtbl->PreInitialize(This,dwCoInit,dwCurThreadAptRefs)
12679 #define IInitializeSpy_PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs) (This)->lpVtbl->PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs)
12680 #define IInitializeSpy_PreUninitialize(This,dwCurThreadAptRefs) (This)->lpVtbl->PreUninitialize(This,dwCurThreadAptRefs)
12681 #define IInitializeSpy_PostUninitialize(This,dwNewThreadAptRefs) (This)->lpVtbl->PostUninitialize(This,dwNewThreadAptRefs)
12682 #else
12683 /*** IUnknown methods ***/
12684 static FORCEINLINE HRESULT IInitializeSpy_QueryInterface(IInitializeSpy* This,REFIID riid,void **ppvObject) {
12685     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12686 }
12687 static FORCEINLINE ULONG IInitializeSpy_AddRef(IInitializeSpy* This) {
12688     return This->lpVtbl->AddRef(This);
12689 }
12690 static FORCEINLINE ULONG IInitializeSpy_Release(IInitializeSpy* This) {
12691     return This->lpVtbl->Release(This);
12692 }
12693 /*** IInitializeSpy methods ***/
12694 static FORCEINLINE HRESULT IInitializeSpy_PreInitialize(IInitializeSpy* This,DWORD dwCoInit,DWORD dwCurThreadAptRefs) {
12695     return This->lpVtbl->PreInitialize(This,dwCoInit,dwCurThreadAptRefs);
12696 }
12697 static FORCEINLINE HRESULT IInitializeSpy_PostInitialize(IInitializeSpy* This,HRESULT hrCoInit,DWORD dwCoInit,DWORD dwNewThreadAptRefs) {
12698     return This->lpVtbl->PostInitialize(This,hrCoInit,dwCoInit,dwNewThreadAptRefs);
12699 }
12700 static FORCEINLINE HRESULT IInitializeSpy_PreUninitialize(IInitializeSpy* This,DWORD dwCurThreadAptRefs) {
12701     return This->lpVtbl->PreUninitialize(This,dwCurThreadAptRefs);
12702 }
12703 static FORCEINLINE HRESULT IInitializeSpy_PostUninitialize(IInitializeSpy* This,DWORD dwNewThreadAptRefs) {
12704     return This->lpVtbl->PostUninitialize(This,dwNewThreadAptRefs);
12705 }
12706 #endif
12707 #endif
12708 
12709 #endif
12710 
12711 
12712 #endif  /* __IInitializeSpy_INTERFACE_DEFINED__ */
12713 
12714 #endif
12715 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
12716 /*****************************************************************************
12717  * IApartmentShutdown interface
12718  */
12719 #ifndef __IApartmentShutdown_INTERFACE_DEFINED__
12720 #define __IApartmentShutdown_INTERFACE_DEFINED__
12721 
12722 DEFINE_GUID(IID_IApartmentShutdown, 0xa2f05a09, 0x27a2, 0x42b5, 0xbc,0x0e, 0xac,0x16,0x3e,0xf4,0x9d,0x9b);
12723 #if defined(__cplusplus) && !defined(CINTERFACE)
12724 MIDL_INTERFACE("a2f05a09-27a2-42b5-bc0e-ac163ef49d9b")
12725 IApartmentShutdown : public IUnknown
12726 {
12727     virtual void STDMETHODCALLTYPE OnUninitialize(
12728         UINT64 ui64ApartmentIdentifier) = 0;
12729 
12730 };
12731 #ifdef __CRT_UUID_DECL
12732 __CRT_UUID_DECL(IApartmentShutdown, 0xa2f05a09, 0x27a2, 0x42b5, 0xbc,0x0e, 0xac,0x16,0x3e,0xf4,0x9d,0x9b)
12733 #endif
12734 #else
12735 typedef struct IApartmentShutdownVtbl {
12736     BEGIN_INTERFACE
12737 
12738     /*** IUnknown methods ***/
12739     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12740         IApartmentShutdown *This,
12741         REFIID riid,
12742         void **ppvObject);
12743 
12744     ULONG (STDMETHODCALLTYPE *AddRef)(
12745         IApartmentShutdown *This);
12746 
12747     ULONG (STDMETHODCALLTYPE *Release)(
12748         IApartmentShutdown *This);
12749 
12750     /*** IApartmentShutdown methods ***/
12751     void (STDMETHODCALLTYPE *OnUninitialize)(
12752         IApartmentShutdown *This,
12753         UINT64 ui64ApartmentIdentifier);
12754 
12755     END_INTERFACE
12756 } IApartmentShutdownVtbl;
12757 
12758 interface IApartmentShutdown {
12759     CONST_VTBL IApartmentShutdownVtbl* lpVtbl;
12760 };
12761 
12762 #ifdef COBJMACROS
12763 #ifndef WIDL_C_INLINE_WRAPPERS
12764 /*** IUnknown methods ***/
12765 #define IApartmentShutdown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12766 #define IApartmentShutdown_AddRef(This) (This)->lpVtbl->AddRef(This)
12767 #define IApartmentShutdown_Release(This) (This)->lpVtbl->Release(This)
12768 /*** IApartmentShutdown methods ***/
12769 #define IApartmentShutdown_OnUninitialize(This,ui64ApartmentIdentifier) (This)->lpVtbl->OnUninitialize(This,ui64ApartmentIdentifier)
12770 #else
12771 /*** IUnknown methods ***/
12772 static FORCEINLINE HRESULT IApartmentShutdown_QueryInterface(IApartmentShutdown* This,REFIID riid,void **ppvObject) {
12773     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12774 }
12775 static FORCEINLINE ULONG IApartmentShutdown_AddRef(IApartmentShutdown* This) {
12776     return This->lpVtbl->AddRef(This);
12777 }
12778 static FORCEINLINE ULONG IApartmentShutdown_Release(IApartmentShutdown* This) {
12779     return This->lpVtbl->Release(This);
12780 }
12781 /*** IApartmentShutdown methods ***/
12782 static FORCEINLINE void IApartmentShutdown_OnUninitialize(IApartmentShutdown* This,UINT64 ui64ApartmentIdentifier) {
12783     This->lpVtbl->OnUninitialize(This,ui64ApartmentIdentifier);
12784 }
12785 #endif
12786 #endif
12787 
12788 #endif
12789 
12790 
12791 #endif  /* __IApartmentShutdown_INTERFACE_DEFINED__ */
12792 
12793 #endif
12794 /* Begin additional prototypes for all interfaces */
12795 
12796 ULONG           __RPC_USER SNB_UserSize     (ULONG *, ULONG, SNB *);
12797 unsigned char * __RPC_USER SNB_UserMarshal  (ULONG *, unsigned char *, SNB *);
12798 unsigned char * __RPC_USER SNB_UserUnmarshal(ULONG *, unsigned char *, SNB *);
12799 void            __RPC_USER SNB_UserFree     (ULONG *, SNB *);
12800 ULONG           __RPC_USER CLIPFORMAT_UserSize     (ULONG *, ULONG, CLIPFORMAT *);
12801 unsigned char * __RPC_USER CLIPFORMAT_UserMarshal  (ULONG *, unsigned char *, CLIPFORMAT *);
12802 unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
12803 void            __RPC_USER CLIPFORMAT_UserFree     (ULONG *, CLIPFORMAT *);
12804 ULONG           __RPC_USER STGMEDIUM_UserSize     (ULONG *, ULONG, STGMEDIUM *);
12805 unsigned char * __RPC_USER STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, STGMEDIUM *);
12806 unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, STGMEDIUM *);
12807 void            __RPC_USER STGMEDIUM_UserFree     (ULONG *, STGMEDIUM *);
12808 ULONG           __RPC_USER ASYNC_STGMEDIUM_UserSize     (ULONG *, ULONG, ASYNC_STGMEDIUM *);
12809 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, ASYNC_STGMEDIUM *);
12810 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, ASYNC_STGMEDIUM *);
12811 void            __RPC_USER ASYNC_STGMEDIUM_UserFree     (ULONG *, ASYNC_STGMEDIUM *);
12812 ULONG           __RPC_USER FLAG_STGMEDIUM_UserSize     (ULONG *, ULONG, FLAG_STGMEDIUM *);
12813 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, FLAG_STGMEDIUM *);
12814 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, FLAG_STGMEDIUM *);
12815 void            __RPC_USER FLAG_STGMEDIUM_UserFree     (ULONG *, FLAG_STGMEDIUM *);
12816 ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
12817 unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
12818 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
12819 void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
12820 ULONG           __RPC_USER HICON_UserSize     (ULONG *, ULONG, HICON *);
12821 unsigned char * __RPC_USER HICON_UserMarshal  (ULONG *, unsigned char *, HICON *);
12822 unsigned char * __RPC_USER HICON_UserUnmarshal(ULONG *, unsigned char *, HICON *);
12823 void            __RPC_USER HICON_UserFree     (ULONG *, HICON *);
12824 ULONG           __RPC_USER HDC_UserSize     (ULONG *, ULONG, HDC *);
12825 unsigned char * __RPC_USER HDC_UserMarshal  (ULONG *, unsigned char *, HDC *);
12826 unsigned char * __RPC_USER HDC_UserUnmarshal(ULONG *, unsigned char *, HDC *);
12827 void            __RPC_USER HDC_UserFree     (ULONG *, HDC *);
12828 
12829 /* End additional prototypes */
12830 
12831 #ifdef __cplusplus
12832 }
12833 #endif
12834 
12835 #endif /* __objidl_h__ */
12836