1 /*** Autogenerated by WIDL 6.4 from include/strmif.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 __strmif_h__
17 #define __strmif_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __ICreateDevEnum_FWD_DEFINED__
22 #define __ICreateDevEnum_FWD_DEFINED__
23 typedef interface ICreateDevEnum ICreateDevEnum;
24 #ifdef __cplusplus
25 interface ICreateDevEnum;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __IPin_FWD_DEFINED__
30 #define __IPin_FWD_DEFINED__
31 typedef interface IPin IPin;
32 #ifdef __cplusplus
33 interface IPin;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __IEnumPins_FWD_DEFINED__
38 #define __IEnumPins_FWD_DEFINED__
39 typedef interface IEnumPins IEnumPins;
40 #ifdef __cplusplus
41 interface IEnumPins;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __IEnumMediaTypes_FWD_DEFINED__
46 #define __IEnumMediaTypes_FWD_DEFINED__
47 typedef interface IEnumMediaTypes IEnumMediaTypes;
48 #ifdef __cplusplus
49 interface IEnumMediaTypes;
50 #endif /* __cplusplus */
51 #endif
52 
53 #ifndef __IFilterGraph_FWD_DEFINED__
54 #define __IFilterGraph_FWD_DEFINED__
55 typedef interface IFilterGraph IFilterGraph;
56 #ifdef __cplusplus
57 interface IFilterGraph;
58 #endif /* __cplusplus */
59 #endif
60 
61 #ifndef __IEnumFilters_FWD_DEFINED__
62 #define __IEnumFilters_FWD_DEFINED__
63 typedef interface IEnumFilters IEnumFilters;
64 #ifdef __cplusplus
65 interface IEnumFilters;
66 #endif /* __cplusplus */
67 #endif
68 
69 #ifndef __IMediaFilter_FWD_DEFINED__
70 #define __IMediaFilter_FWD_DEFINED__
71 typedef interface IMediaFilter IMediaFilter;
72 #ifdef __cplusplus
73 interface IMediaFilter;
74 #endif /* __cplusplus */
75 #endif
76 
77 #ifndef __IBaseFilter_FWD_DEFINED__
78 #define __IBaseFilter_FWD_DEFINED__
79 typedef interface IBaseFilter IBaseFilter;
80 #ifdef __cplusplus
81 interface IBaseFilter;
82 #endif /* __cplusplus */
83 #endif
84 
85 #ifndef __IReferenceClock_FWD_DEFINED__
86 #define __IReferenceClock_FWD_DEFINED__
87 typedef interface IReferenceClock IReferenceClock;
88 #ifdef __cplusplus
89 interface IReferenceClock;
90 #endif /* __cplusplus */
91 #endif
92 
93 #ifndef __IReferenceClockTimerControl_FWD_DEFINED__
94 #define __IReferenceClockTimerControl_FWD_DEFINED__
95 typedef interface IReferenceClockTimerControl IReferenceClockTimerControl;
96 #ifdef __cplusplus
97 interface IReferenceClockTimerControl;
98 #endif /* __cplusplus */
99 #endif
100 
101 #ifndef __IReferenceClock2_FWD_DEFINED__
102 #define __IReferenceClock2_FWD_DEFINED__
103 typedef interface IReferenceClock2 IReferenceClock2;
104 #ifdef __cplusplus
105 interface IReferenceClock2;
106 #endif /* __cplusplus */
107 #endif
108 
109 #ifndef __IMediaSample_FWD_DEFINED__
110 #define __IMediaSample_FWD_DEFINED__
111 typedef interface IMediaSample IMediaSample;
112 #ifdef __cplusplus
113 interface IMediaSample;
114 #endif /* __cplusplus */
115 #endif
116 
117 #ifndef __IMediaSample2_FWD_DEFINED__
118 #define __IMediaSample2_FWD_DEFINED__
119 typedef interface IMediaSample2 IMediaSample2;
120 #ifdef __cplusplus
121 interface IMediaSample2;
122 #endif /* __cplusplus */
123 #endif
124 
125 #ifndef __IMediaSample2Config_FWD_DEFINED__
126 #define __IMediaSample2Config_FWD_DEFINED__
127 typedef interface IMediaSample2Config IMediaSample2Config;
128 #ifdef __cplusplus
129 interface IMediaSample2Config;
130 #endif /* __cplusplus */
131 #endif
132 
133 #ifndef __IMemAllocator_FWD_DEFINED__
134 #define __IMemAllocator_FWD_DEFINED__
135 typedef interface IMemAllocator IMemAllocator;
136 #ifdef __cplusplus
137 interface IMemAllocator;
138 #endif /* __cplusplus */
139 #endif
140 
141 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
142 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
143 typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
144 #ifdef __cplusplus
145 interface IMemAllocatorCallbackTemp;
146 #endif /* __cplusplus */
147 #endif
148 
149 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
150 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
151 typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
152 #ifdef __cplusplus
153 interface IMemAllocatorNotifyCallbackTemp;
154 #endif /* __cplusplus */
155 #endif
156 
157 #ifndef __IMemInputPin_FWD_DEFINED__
158 #define __IMemInputPin_FWD_DEFINED__
159 typedef interface IMemInputPin IMemInputPin;
160 #ifdef __cplusplus
161 interface IMemInputPin;
162 #endif /* __cplusplus */
163 #endif
164 
165 #ifndef __IAMovieSetup_FWD_DEFINED__
166 #define __IAMovieSetup_FWD_DEFINED__
167 typedef interface IAMovieSetup IAMovieSetup;
168 #ifdef __cplusplus
169 interface IAMovieSetup;
170 #endif /* __cplusplus */
171 #endif
172 
173 #ifndef __IMediaSeeking_FWD_DEFINED__
174 #define __IMediaSeeking_FWD_DEFINED__
175 typedef interface IMediaSeeking IMediaSeeking;
176 #ifdef __cplusplus
177 interface IMediaSeeking;
178 #endif /* __cplusplus */
179 #endif
180 
181 #ifndef __IEnumRegFilters_FWD_DEFINED__
182 #define __IEnumRegFilters_FWD_DEFINED__
183 typedef interface IEnumRegFilters IEnumRegFilters;
184 #ifdef __cplusplus
185 interface IEnumRegFilters;
186 #endif /* __cplusplus */
187 #endif
188 
189 #ifndef __IFilterMapper_FWD_DEFINED__
190 #define __IFilterMapper_FWD_DEFINED__
191 typedef interface IFilterMapper IFilterMapper;
192 #ifdef __cplusplus
193 interface IFilterMapper;
194 #endif /* __cplusplus */
195 #endif
196 
197 #ifndef __IFilterMapper2_FWD_DEFINED__
198 #define __IFilterMapper2_FWD_DEFINED__
199 typedef interface IFilterMapper2 IFilterMapper2;
200 #ifdef __cplusplus
201 interface IFilterMapper2;
202 #endif /* __cplusplus */
203 #endif
204 
205 #ifndef __IFilterMapper3_FWD_DEFINED__
206 #define __IFilterMapper3_FWD_DEFINED__
207 typedef interface IFilterMapper3 IFilterMapper3;
208 #ifdef __cplusplus
209 interface IFilterMapper3;
210 #endif /* __cplusplus */
211 #endif
212 
213 #ifndef __IQualityControl_FWD_DEFINED__
214 #define __IQualityControl_FWD_DEFINED__
215 typedef interface IQualityControl IQualityControl;
216 #ifdef __cplusplus
217 interface IQualityControl;
218 #endif /* __cplusplus */
219 #endif
220 
221 #ifndef __IOverlayNotify_FWD_DEFINED__
222 #define __IOverlayNotify_FWD_DEFINED__
223 typedef interface IOverlayNotify IOverlayNotify;
224 #ifdef __cplusplus
225 interface IOverlayNotify;
226 #endif /* __cplusplus */
227 #endif
228 
229 #ifndef __IOverlayNotify2_FWD_DEFINED__
230 #define __IOverlayNotify2_FWD_DEFINED__
231 typedef interface IOverlayNotify2 IOverlayNotify2;
232 #ifdef __cplusplus
233 interface IOverlayNotify2;
234 #endif /* __cplusplus */
235 #endif
236 
237 #ifndef __IOverlay_FWD_DEFINED__
238 #define __IOverlay_FWD_DEFINED__
239 typedef interface IOverlay IOverlay;
240 #ifdef __cplusplus
241 interface IOverlay;
242 #endif /* __cplusplus */
243 #endif
244 
245 #ifndef __IMediaEventSink_FWD_DEFINED__
246 #define __IMediaEventSink_FWD_DEFINED__
247 typedef interface IMediaEventSink IMediaEventSink;
248 #ifdef __cplusplus
249 interface IMediaEventSink;
250 #endif /* __cplusplus */
251 #endif
252 
253 #ifndef __IFileSourceFilter_FWD_DEFINED__
254 #define __IFileSourceFilter_FWD_DEFINED__
255 typedef interface IFileSourceFilter IFileSourceFilter;
256 #ifdef __cplusplus
257 interface IFileSourceFilter;
258 #endif /* __cplusplus */
259 #endif
260 
261 #ifndef __IFileSinkFilter_FWD_DEFINED__
262 #define __IFileSinkFilter_FWD_DEFINED__
263 typedef interface IFileSinkFilter IFileSinkFilter;
264 #ifdef __cplusplus
265 interface IFileSinkFilter;
266 #endif /* __cplusplus */
267 #endif
268 
269 #ifndef __IFileSinkFilter2_FWD_DEFINED__
270 #define __IFileSinkFilter2_FWD_DEFINED__
271 typedef interface IFileSinkFilter2 IFileSinkFilter2;
272 #ifdef __cplusplus
273 interface IFileSinkFilter2;
274 #endif /* __cplusplus */
275 #endif
276 
277 #ifndef __IGraphBuilder_FWD_DEFINED__
278 #define __IGraphBuilder_FWD_DEFINED__
279 typedef interface IGraphBuilder IGraphBuilder;
280 #ifdef __cplusplus
281 interface IGraphBuilder;
282 #endif /* __cplusplus */
283 #endif
284 
285 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
286 #define __ICaptureGraphBuilder_FWD_DEFINED__
287 typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
288 #ifdef __cplusplus
289 interface ICaptureGraphBuilder;
290 #endif /* __cplusplus */
291 #endif
292 
293 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
294 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
295 typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
296 #ifdef __cplusplus
297 interface IAMCopyCaptureFileProgress;
298 #endif /* __cplusplus */
299 #endif
300 
301 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
302 #define __ICaptureGraphBuilder2_FWD_DEFINED__
303 typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
304 #ifdef __cplusplus
305 interface ICaptureGraphBuilder2;
306 #endif /* __cplusplus */
307 #endif
308 
309 #ifndef __IConfigAviMux_FWD_DEFINED__
310 #define __IConfigAviMux_FWD_DEFINED__
311 typedef interface IConfigAviMux IConfigAviMux;
312 #ifdef __cplusplus
313 interface IConfigAviMux;
314 #endif /* __cplusplus */
315 #endif
316 
317 #ifndef __IConfigInterleaving_FWD_DEFINED__
318 #define __IConfigInterleaving_FWD_DEFINED__
319 typedef interface IConfigInterleaving IConfigInterleaving;
320 #ifdef __cplusplus
321 interface IConfigInterleaving;
322 #endif /* __cplusplus */
323 #endif
324 
325 #ifndef __IAMClockSlave_FWD_DEFINED__
326 #define __IAMClockSlave_FWD_DEFINED__
327 typedef interface IAMClockSlave IAMClockSlave;
328 #ifdef __cplusplus
329 interface IAMClockSlave;
330 #endif /* __cplusplus */
331 #endif
332 
333 #ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
334 #define __IAMCertifiedOutputProtection_FWD_DEFINED__
335 typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
336 #ifdef __cplusplus
337 interface IAMCertifiedOutputProtection;
338 #endif /* __cplusplus */
339 #endif
340 
341 #ifndef __IFilterGraph2_FWD_DEFINED__
342 #define __IFilterGraph2_FWD_DEFINED__
343 typedef interface IFilterGraph2 IFilterGraph2;
344 #ifdef __cplusplus
345 interface IFilterGraph2;
346 #endif /* __cplusplus */
347 #endif
348 
349 #ifndef __IStreamBuilder_FWD_DEFINED__
350 #define __IStreamBuilder_FWD_DEFINED__
351 typedef interface IStreamBuilder IStreamBuilder;
352 #ifdef __cplusplus
353 interface IStreamBuilder;
354 #endif /* __cplusplus */
355 #endif
356 
357 #ifndef __IAMStreamConfig_FWD_DEFINED__
358 #define __IAMStreamConfig_FWD_DEFINED__
359 typedef interface IAMStreamConfig IAMStreamConfig;
360 #ifdef __cplusplus
361 interface IAMStreamConfig;
362 #endif /* __cplusplus */
363 #endif
364 
365 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
366 #define __IAMVideoProcAmp_FWD_DEFINED__
367 typedef interface IAMVideoProcAmp IAMVideoProcAmp;
368 #ifdef __cplusplus
369 interface IAMVideoProcAmp;
370 #endif /* __cplusplus */
371 #endif
372 
373 #ifndef __IAsyncReader_FWD_DEFINED__
374 #define __IAsyncReader_FWD_DEFINED__
375 typedef interface IAsyncReader IAsyncReader;
376 #ifdef __cplusplus
377 interface IAsyncReader;
378 #endif /* __cplusplus */
379 #endif
380 
381 #ifndef __IGraphVersion_FWD_DEFINED__
382 #define __IGraphVersion_FWD_DEFINED__
383 typedef interface IGraphVersion IGraphVersion;
384 #ifdef __cplusplus
385 interface IGraphVersion;
386 #endif /* __cplusplus */
387 #endif
388 
389 #ifndef __IResourceConsumer_FWD_DEFINED__
390 #define __IResourceConsumer_FWD_DEFINED__
391 typedef interface IResourceConsumer IResourceConsumer;
392 #ifdef __cplusplus
393 interface IResourceConsumer;
394 #endif /* __cplusplus */
395 #endif
396 
397 #ifndef __IResourceManager_FWD_DEFINED__
398 #define __IResourceManager_FWD_DEFINED__
399 typedef interface IResourceManager IResourceManager;
400 #ifdef __cplusplus
401 interface IResourceManager;
402 #endif /* __cplusplus */
403 #endif
404 
405 #ifndef __IAMStreamControl_FWD_DEFINED__
406 #define __IAMStreamControl_FWD_DEFINED__
407 typedef interface IAMStreamControl IAMStreamControl;
408 #ifdef __cplusplus
409 interface IAMStreamControl;
410 #endif /* __cplusplus */
411 #endif
412 
413 #ifndef __IKsPropertySet_FWD_DEFINED__
414 #define __IKsPropertySet_FWD_DEFINED__
415 typedef interface IKsPropertySet IKsPropertySet;
416 #ifdef __cplusplus
417 interface IKsPropertySet;
418 #endif /* __cplusplus */
419 #endif
420 
421 #ifndef __IMediaPropertyBag_FWD_DEFINED__
422 #define __IMediaPropertyBag_FWD_DEFINED__
423 typedef interface IMediaPropertyBag IMediaPropertyBag;
424 #ifdef __cplusplus
425 interface IMediaPropertyBag;
426 #endif /* __cplusplus */
427 #endif
428 
429 #ifndef __IPersistMediaPropertyBag_FWD_DEFINED__
430 #define __IPersistMediaPropertyBag_FWD_DEFINED__
431 typedef interface IPersistMediaPropertyBag IPersistMediaPropertyBag;
432 #ifdef __cplusplus
433 interface IPersistMediaPropertyBag;
434 #endif /* __cplusplus */
435 #endif
436 
437 #ifndef __ISeekingPassThru_FWD_DEFINED__
438 #define __ISeekingPassThru_FWD_DEFINED__
439 typedef interface ISeekingPassThru ISeekingPassThru;
440 #ifdef __cplusplus
441 interface ISeekingPassThru;
442 #endif /* __cplusplus */
443 #endif
444 
445 #ifndef __IAMFilterMiscFlags_FWD_DEFINED__
446 #define __IAMFilterMiscFlags_FWD_DEFINED__
447 typedef interface IAMFilterMiscFlags IAMFilterMiscFlags;
448 #ifdef __cplusplus
449 interface IAMFilterMiscFlags;
450 #endif /* __cplusplus */
451 #endif
452 
453 #ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
454 #define __IAMGraphBuilderCallback_FWD_DEFINED__
455 typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
456 #ifdef __cplusplus
457 interface IAMGraphBuilderCallback;
458 #endif /* __cplusplus */
459 #endif
460 
461 #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
462 #define __IAMVfwCaptureDialogs_FWD_DEFINED__
463 typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
464 #ifdef __cplusplus
465 interface IAMVfwCaptureDialogs;
466 #endif /* __cplusplus */
467 #endif
468 
469 #ifndef __IAMCameraControl_FWD_DEFINED__
470 #define __IAMCameraControl_FWD_DEFINED__
471 typedef interface IAMCameraControl IAMCameraControl;
472 #ifdef __cplusplus
473 interface IAMCameraControl;
474 #endif /* __cplusplus */
475 #endif
476 
477 #ifndef __IAMVideoControl_FWD_DEFINED__
478 #define __IAMVideoControl_FWD_DEFINED__
479 typedef interface IAMVideoControl IAMVideoControl;
480 #ifdef __cplusplus
481 interface IAMVideoControl;
482 #endif /* __cplusplus */
483 #endif
484 
485 #ifndef __IAMBufferNegotiation_FWD_DEFINED__
486 #define __IAMBufferNegotiation_FWD_DEFINED__
487 typedef interface IAMBufferNegotiation IAMBufferNegotiation;
488 #ifdef __cplusplus
489 interface IAMBufferNegotiation;
490 #endif /* __cplusplus */
491 #endif
492 
493 #ifndef __IAMDroppedFrames_FWD_DEFINED__
494 #define __IAMDroppedFrames_FWD_DEFINED__
495 typedef interface IAMDroppedFrames IAMDroppedFrames;
496 #ifdef __cplusplus
497 interface IAMDroppedFrames;
498 #endif /* __cplusplus */
499 #endif
500 
501 #ifndef __IAMLatency_FWD_DEFINED__
502 #define __IAMLatency_FWD_DEFINED__
503 typedef interface IAMLatency IAMLatency;
504 #ifdef __cplusplus
505 interface IAMLatency;
506 #endif /* __cplusplus */
507 #endif
508 
509 #ifndef __IAMPushSource_FWD_DEFINED__
510 #define __IAMPushSource_FWD_DEFINED__
511 typedef interface IAMPushSource IAMPushSource;
512 #ifdef __cplusplus
513 interface IAMPushSource;
514 #endif /* __cplusplus */
515 #endif
516 
517 #ifndef __IAMVideoCompression_FWD_DEFINED__
518 #define __IAMVideoCompression_FWD_DEFINED__
519 typedef interface IAMVideoCompression IAMVideoCompression;
520 #ifdef __cplusplus
521 interface IAMVideoCompression;
522 #endif /* __cplusplus */
523 #endif
524 
525 #ifndef __IAMCrossbar_FWD_DEFINED__
526 #define __IAMCrossbar_FWD_DEFINED__
527 typedef interface IAMCrossbar IAMCrossbar;
528 #ifdef __cplusplus
529 interface IAMCrossbar;
530 #endif /* __cplusplus */
531 #endif
532 
533 #ifndef __IAMTunerNotification_FWD_DEFINED__
534 #define __IAMTunerNotification_FWD_DEFINED__
535 typedef interface IAMTunerNotification IAMTunerNotification;
536 #ifdef __cplusplus
537 interface IAMTunerNotification;
538 #endif /* __cplusplus */
539 #endif
540 
541 #ifndef __IAMTuner_FWD_DEFINED__
542 #define __IAMTuner_FWD_DEFINED__
543 typedef interface IAMTuner IAMTuner;
544 #ifdef __cplusplus
545 interface IAMTuner;
546 #endif /* __cplusplus */
547 #endif
548 
549 #ifndef __IAMTVTuner_FWD_DEFINED__
550 #define __IAMTVTuner_FWD_DEFINED__
551 typedef interface IAMTVTuner IAMTVTuner;
552 #ifdef __cplusplus
553 interface IAMTVTuner;
554 #endif /* __cplusplus */
555 #endif
556 
557 #ifndef __IVideoFrameStep_FWD_DEFINED__
558 #define __IVideoFrameStep_FWD_DEFINED__
559 typedef interface IVideoFrameStep IVideoFrameStep;
560 #ifdef __cplusplus
561 interface IVideoFrameStep;
562 #endif /* __cplusplus */
563 #endif
564 
565 #ifndef __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
566 #define __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
567 typedef interface IAMAsyncReaderTimestampScaling IAMAsyncReaderTimestampScaling;
568 #ifdef __cplusplus
569 interface IAMAsyncReaderTimestampScaling;
570 #endif /* __cplusplus */
571 #endif
572 
573 #ifndef __IAMPluginControl_FWD_DEFINED__
574 #define __IAMPluginControl_FWD_DEFINED__
575 typedef interface IAMPluginControl IAMPluginControl;
576 #ifdef __cplusplus
577 interface IAMPluginControl;
578 #endif /* __cplusplus */
579 #endif
580 
581 /* Headers for imported files */
582 
583 #include <unknwn.h>
584 #include <objidl.h>
585 #include <oaidl.h>
586 
587 #ifdef __cplusplus
588 extern "C" {
589 #endif
590 
591 /**
592  * This file is part of the mingw-w64 runtime package.
593  * No warranty is given; refer to the file DISCLAIMER within this package.
594  */
595 
596 #include <winapifamily.h>
597 
598 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
599 
600 #define CDEF_CLASS_DEFAULT 0x1
601 #define CDEF_BYPASS_CLASS_MANAGER 0x2
602 #define CDEF_MERIT_ABOVE_DO_NOT_USE 0x8
603 #define CDEF_DEVMON_CMGR_DEVICE 0x10
604 #define CDEF_DEVMON_DMO 0x20
605 #define CDEF_DEVMON_PNP_DEVICE 0x40
606 #define CDEF_DEVMON_FILTER 0x80
607 
608 #define CDEF_DEVMON_SELECTIVE_MASK 0xf0
609 
610 
611 /*****************************************************************************
612  * ICreateDevEnum interface
613  */
614 #ifndef __ICreateDevEnum_INTERFACE_DEFINED__
615 #define __ICreateDevEnum_INTERFACE_DEFINED__
616 
617 DEFINE_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86);
618 #if defined(__cplusplus) && !defined(CINTERFACE)
619 MIDL_INTERFACE("29840822-5b84-11d0-bd3b-00a0c911ce86")
620 ICreateDevEnum : public IUnknown
621 {
622     virtual HRESULT STDMETHODCALLTYPE CreateClassEnumerator(
623         REFCLSID clsidDeviceClass,
624         IEnumMoniker **ppEnumMoniker,
625         DWORD dwFlags) = 0;
626 
627 };
628 #ifdef __CRT_UUID_DECL
629 __CRT_UUID_DECL(ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86)
630 #endif
631 #else
632 typedef struct ICreateDevEnumVtbl {
633     BEGIN_INTERFACE
634 
635     /*** IUnknown methods ***/
636     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
637         ICreateDevEnum *This,
638         REFIID riid,
639         void **ppvObject);
640 
641     ULONG (STDMETHODCALLTYPE *AddRef)(
642         ICreateDevEnum *This);
643 
644     ULONG (STDMETHODCALLTYPE *Release)(
645         ICreateDevEnum *This);
646 
647     /*** ICreateDevEnum methods ***/
648     HRESULT (STDMETHODCALLTYPE *CreateClassEnumerator)(
649         ICreateDevEnum *This,
650         REFCLSID clsidDeviceClass,
651         IEnumMoniker **ppEnumMoniker,
652         DWORD dwFlags);
653 
654     END_INTERFACE
655 } ICreateDevEnumVtbl;
656 
657 interface ICreateDevEnum {
658     CONST_VTBL ICreateDevEnumVtbl* lpVtbl;
659 };
660 
661 #ifdef COBJMACROS
662 #ifndef WIDL_C_INLINE_WRAPPERS
663 /*** IUnknown methods ***/
664 #define ICreateDevEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
665 #define ICreateDevEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
666 #define ICreateDevEnum_Release(This) (This)->lpVtbl->Release(This)
667 /*** ICreateDevEnum methods ***/
668 #define ICreateDevEnum_CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags) (This)->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags)
669 #else
670 /*** IUnknown methods ***/
671 static FORCEINLINE HRESULT ICreateDevEnum_QueryInterface(ICreateDevEnum* This,REFIID riid,void **ppvObject) {
672     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
673 }
674 static FORCEINLINE ULONG ICreateDevEnum_AddRef(ICreateDevEnum* This) {
675     return This->lpVtbl->AddRef(This);
676 }
677 static FORCEINLINE ULONG ICreateDevEnum_Release(ICreateDevEnum* This) {
678     return This->lpVtbl->Release(This);
679 }
680 /*** ICreateDevEnum methods ***/
681 static FORCEINLINE HRESULT ICreateDevEnum_CreateClassEnumerator(ICreateDevEnum* This,REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags) {
682     return This->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags);
683 }
684 #endif
685 #endif
686 
687 #endif
688 
689 
690 #endif  /* __ICreateDevEnum_INTERFACE_DEFINED__ */
691 
692 #endif
693 /**
694  * This file is part of the mingw-w64 runtime package.
695  * No warranty is given; refer to the file DISCLAIMER within this package.
696  */
697 
698 #include <winapifamily.h>
699 
700 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
701 
702 #define CHARS_IN_GUID 39
703 
704 #ifdef WINE_NO_UNICODE_MACROS
705 #undef GetTimeFormat
706 #endif
707 
708 typedef struct _AMMediaType {
709     GUID majortype;
710     GUID subtype;
711     WINBOOL bFixedSizeSamples;
712     WINBOOL bTemporalCompression;
713     ULONG lSampleSize;
714     GUID formattype;
715     IUnknown *pUnk;
716     ULONG cbFormat;
717     BYTE *pbFormat;
718 } AM_MEDIA_TYPE;
719 
720 typedef enum _PinDirection {
721     PINDIR_INPUT = 0,
722     PINDIR_OUTPUT = 1
723 } PIN_DIRECTION;
724 
725 #define MAX_PIN_NAME 128
726 #define MAX_FILTER_NAME 128
727 
728 #ifndef REFERENCE_TIME_DEFINED
729 #define REFERENCE_TIME_DEFINED
730 typedef LONGLONG REFERENCE_TIME;
731 #endif
732 
733 #ifndef REFTIME_DEFINED
734 #define REFTIME_DEFINED
735 typedef double REFTIME;
736 #endif
737 
738 typedef DWORD_PTR HSEMAPHORE;
739 typedef DWORD_PTR HEVENT;
740 
741 typedef struct _AllocatorProperties {
742     LONG cBuffers;
743     LONG cbBuffer;
744     LONG cbAlign;
745     LONG cbPrefix;
746 } ALLOCATOR_PROPERTIES;
747 
748 #ifndef __IAMovieSetup_FWD_DEFINED__
749 #define __IAMovieSetup_FWD_DEFINED__
750 typedef interface IAMovieSetup IAMovieSetup;
751 #ifdef __cplusplus
752 interface IAMovieSetup;
753 #endif /* __cplusplus */
754 #endif
755 
756 #ifndef __IEnumFilters_FWD_DEFINED__
757 #define __IEnumFilters_FWD_DEFINED__
758 typedef interface IEnumFilters IEnumFilters;
759 #ifdef __cplusplus
760 interface IEnumFilters;
761 #endif /* __cplusplus */
762 #endif
763 
764 #ifndef __IEnumMediaTypes_FWD_DEFINED__
765 #define __IEnumMediaTypes_FWD_DEFINED__
766 typedef interface IEnumMediaTypes IEnumMediaTypes;
767 #ifdef __cplusplus
768 interface IEnumMediaTypes;
769 #endif /* __cplusplus */
770 #endif
771 
772 #ifndef __IEnumPins_FWD_DEFINED__
773 #define __IEnumPins_FWD_DEFINED__
774 typedef interface IEnumPins IEnumPins;
775 #ifdef __cplusplus
776 interface IEnumPins;
777 #endif /* __cplusplus */
778 #endif
779 
780 #ifndef __IBaseFilter_FWD_DEFINED__
781 #define __IBaseFilter_FWD_DEFINED__
782 typedef interface IBaseFilter IBaseFilter;
783 #ifdef __cplusplus
784 interface IBaseFilter;
785 #endif /* __cplusplus */
786 #endif
787 
788 #ifndef __IFilterGraph_FWD_DEFINED__
789 #define __IFilterGraph_FWD_DEFINED__
790 typedef interface IFilterGraph IFilterGraph;
791 #ifdef __cplusplus
792 interface IFilterGraph;
793 #endif /* __cplusplus */
794 #endif
795 
796 #ifndef __IMediaFilter_FWD_DEFINED__
797 #define __IMediaFilter_FWD_DEFINED__
798 typedef interface IMediaFilter IMediaFilter;
799 #ifdef __cplusplus
800 interface IMediaFilter;
801 #endif /* __cplusplus */
802 #endif
803 
804 #ifndef __IMediaSample_FWD_DEFINED__
805 #define __IMediaSample_FWD_DEFINED__
806 typedef interface IMediaSample IMediaSample;
807 #ifdef __cplusplus
808 interface IMediaSample;
809 #endif /* __cplusplus */
810 #endif
811 
812 #ifndef __IMemAllocator_FWD_DEFINED__
813 #define __IMemAllocator_FWD_DEFINED__
814 typedef interface IMemAllocator IMemAllocator;
815 #ifdef __cplusplus
816 interface IMemAllocator;
817 #endif /* __cplusplus */
818 #endif
819 
820 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
821 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
822 typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
823 #ifdef __cplusplus
824 interface IMemAllocatorCallbackTemp;
825 #endif /* __cplusplus */
826 #endif
827 
828 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
829 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
830 typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
831 #ifdef __cplusplus
832 interface IMemAllocatorNotifyCallbackTemp;
833 #endif /* __cplusplus */
834 #endif
835 
836 #ifndef __IMemInputPin_FWD_DEFINED__
837 #define __IMemInputPin_FWD_DEFINED__
838 typedef interface IMemInputPin IMemInputPin;
839 #ifdef __cplusplus
840 interface IMemInputPin;
841 #endif /* __cplusplus */
842 #endif
843 
844 #ifndef __IPin_FWD_DEFINED__
845 #define __IPin_FWD_DEFINED__
846 typedef interface IPin IPin;
847 #ifdef __cplusplus
848 interface IPin;
849 #endif /* __cplusplus */
850 #endif
851 
852 #ifndef __IReferenceClock_FWD_DEFINED__
853 #define __IReferenceClock_FWD_DEFINED__
854 typedef interface IReferenceClock IReferenceClock;
855 #ifdef __cplusplus
856 interface IReferenceClock;
857 #endif /* __cplusplus */
858 #endif
859 
860 
861 /*****************************************************************************
862  * IPin interface
863  */
864 #ifndef __IPin_INTERFACE_DEFINED__
865 #define __IPin_INTERFACE_DEFINED__
866 
867 typedef struct _PinInfo {
868     IBaseFilter *pFilter;
869     PIN_DIRECTION dir;
870     WCHAR achName[128];
871 } PIN_INFO;
872 
873 DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
874 #if defined(__cplusplus) && !defined(CINTERFACE)
875 MIDL_INTERFACE("56a86891-0ad4-11ce-b03a-0020af0ba770")
876 IPin : public IUnknown
877 {
878     virtual HRESULT STDMETHODCALLTYPE Connect(
879         IPin *pReceivePin,
880         const AM_MEDIA_TYPE *pmt) = 0;
881 
882     virtual HRESULT STDMETHODCALLTYPE ReceiveConnection(
883         IPin *pConnector,
884         const AM_MEDIA_TYPE *pmt) = 0;
885 
886     virtual HRESULT STDMETHODCALLTYPE Disconnect(
887         ) = 0;
888 
889     virtual HRESULT STDMETHODCALLTYPE ConnectedTo(
890         IPin **pPin) = 0;
891 
892     virtual HRESULT STDMETHODCALLTYPE ConnectionMediaType(
893         AM_MEDIA_TYPE *pmt) = 0;
894 
895     virtual HRESULT STDMETHODCALLTYPE QueryPinInfo(
896         PIN_INFO *pInfo) = 0;
897 
898     virtual HRESULT STDMETHODCALLTYPE QueryDirection(
899         PIN_DIRECTION *pPinDir) = 0;
900 
901     virtual HRESULT STDMETHODCALLTYPE QueryId(
902         LPWSTR *Id) = 0;
903 
904     virtual HRESULT STDMETHODCALLTYPE QueryAccept(
905         const AM_MEDIA_TYPE *pmt) = 0;
906 
907     virtual HRESULT STDMETHODCALLTYPE EnumMediaTypes(
908         IEnumMediaTypes **ppEnum) = 0;
909 
910     virtual HRESULT STDMETHODCALLTYPE QueryInternalConnections(
911         IPin **apPin,
912         ULONG *nPin) = 0;
913 
914     virtual HRESULT STDMETHODCALLTYPE EndOfStream(
915         ) = 0;
916 
917     virtual HRESULT STDMETHODCALLTYPE BeginFlush(
918         ) = 0;
919 
920     virtual HRESULT STDMETHODCALLTYPE EndFlush(
921         ) = 0;
922 
923     virtual HRESULT STDMETHODCALLTYPE NewSegment(
924         REFERENCE_TIME tStart,
925         REFERENCE_TIME tStop,
926         double dRate) = 0;
927 
928 };
929 #ifdef __CRT_UUID_DECL
930 __CRT_UUID_DECL(IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
931 #endif
932 #else
933 typedef struct IPinVtbl {
934     BEGIN_INTERFACE
935 
936     /*** IUnknown methods ***/
937     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
938         IPin *This,
939         REFIID riid,
940         void **ppvObject);
941 
942     ULONG (STDMETHODCALLTYPE *AddRef)(
943         IPin *This);
944 
945     ULONG (STDMETHODCALLTYPE *Release)(
946         IPin *This);
947 
948     /*** IPin methods ***/
949     HRESULT (STDMETHODCALLTYPE *Connect)(
950         IPin *This,
951         IPin *pReceivePin,
952         const AM_MEDIA_TYPE *pmt);
953 
954     HRESULT (STDMETHODCALLTYPE *ReceiveConnection)(
955         IPin *This,
956         IPin *pConnector,
957         const AM_MEDIA_TYPE *pmt);
958 
959     HRESULT (STDMETHODCALLTYPE *Disconnect)(
960         IPin *This);
961 
962     HRESULT (STDMETHODCALLTYPE *ConnectedTo)(
963         IPin *This,
964         IPin **pPin);
965 
966     HRESULT (STDMETHODCALLTYPE *ConnectionMediaType)(
967         IPin *This,
968         AM_MEDIA_TYPE *pmt);
969 
970     HRESULT (STDMETHODCALLTYPE *QueryPinInfo)(
971         IPin *This,
972         PIN_INFO *pInfo);
973 
974     HRESULT (STDMETHODCALLTYPE *QueryDirection)(
975         IPin *This,
976         PIN_DIRECTION *pPinDir);
977 
978     HRESULT (STDMETHODCALLTYPE *QueryId)(
979         IPin *This,
980         LPWSTR *Id);
981 
982     HRESULT (STDMETHODCALLTYPE *QueryAccept)(
983         IPin *This,
984         const AM_MEDIA_TYPE *pmt);
985 
986     HRESULT (STDMETHODCALLTYPE *EnumMediaTypes)(
987         IPin *This,
988         IEnumMediaTypes **ppEnum);
989 
990     HRESULT (STDMETHODCALLTYPE *QueryInternalConnections)(
991         IPin *This,
992         IPin **apPin,
993         ULONG *nPin);
994 
995     HRESULT (STDMETHODCALLTYPE *EndOfStream)(
996         IPin *This);
997 
998     HRESULT (STDMETHODCALLTYPE *BeginFlush)(
999         IPin *This);
1000 
1001     HRESULT (STDMETHODCALLTYPE *EndFlush)(
1002         IPin *This);
1003 
1004     HRESULT (STDMETHODCALLTYPE *NewSegment)(
1005         IPin *This,
1006         REFERENCE_TIME tStart,
1007         REFERENCE_TIME tStop,
1008         double dRate);
1009 
1010     END_INTERFACE
1011 } IPinVtbl;
1012 
1013 interface IPin {
1014     CONST_VTBL IPinVtbl* lpVtbl;
1015 };
1016 
1017 #ifdef COBJMACROS
1018 #ifndef WIDL_C_INLINE_WRAPPERS
1019 /*** IUnknown methods ***/
1020 #define IPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1021 #define IPin_AddRef(This) (This)->lpVtbl->AddRef(This)
1022 #define IPin_Release(This) (This)->lpVtbl->Release(This)
1023 /*** IPin methods ***/
1024 #define IPin_Connect(This,pReceivePin,pmt) (This)->lpVtbl->Connect(This,pReceivePin,pmt)
1025 #define IPin_ReceiveConnection(This,pConnector,pmt) (This)->lpVtbl->ReceiveConnection(This,pConnector,pmt)
1026 #define IPin_Disconnect(This) (This)->lpVtbl->Disconnect(This)
1027 #define IPin_ConnectedTo(This,pPin) (This)->lpVtbl->ConnectedTo(This,pPin)
1028 #define IPin_ConnectionMediaType(This,pmt) (This)->lpVtbl->ConnectionMediaType(This,pmt)
1029 #define IPin_QueryPinInfo(This,pInfo) (This)->lpVtbl->QueryPinInfo(This,pInfo)
1030 #define IPin_QueryDirection(This,pPinDir) (This)->lpVtbl->QueryDirection(This,pPinDir)
1031 #define IPin_QueryId(This,Id) (This)->lpVtbl->QueryId(This,Id)
1032 #define IPin_QueryAccept(This,pmt) (This)->lpVtbl->QueryAccept(This,pmt)
1033 #define IPin_EnumMediaTypes(This,ppEnum) (This)->lpVtbl->EnumMediaTypes(This,ppEnum)
1034 #define IPin_QueryInternalConnections(This,apPin,nPin) (This)->lpVtbl->QueryInternalConnections(This,apPin,nPin)
1035 #define IPin_EndOfStream(This) (This)->lpVtbl->EndOfStream(This)
1036 #define IPin_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
1037 #define IPin_EndFlush(This) (This)->lpVtbl->EndFlush(This)
1038 #define IPin_NewSegment(This,tStart,tStop,dRate) (This)->lpVtbl->NewSegment(This,tStart,tStop,dRate)
1039 #else
1040 /*** IUnknown methods ***/
1041 static FORCEINLINE HRESULT IPin_QueryInterface(IPin* This,REFIID riid,void **ppvObject) {
1042     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1043 }
1044 static FORCEINLINE ULONG IPin_AddRef(IPin* This) {
1045     return This->lpVtbl->AddRef(This);
1046 }
1047 static FORCEINLINE ULONG IPin_Release(IPin* This) {
1048     return This->lpVtbl->Release(This);
1049 }
1050 /*** IPin methods ***/
1051 static FORCEINLINE HRESULT IPin_Connect(IPin* This,IPin *pReceivePin,const AM_MEDIA_TYPE *pmt) {
1052     return This->lpVtbl->Connect(This,pReceivePin,pmt);
1053 }
1054 static FORCEINLINE HRESULT IPin_ReceiveConnection(IPin* This,IPin *pConnector,const AM_MEDIA_TYPE *pmt) {
1055     return This->lpVtbl->ReceiveConnection(This,pConnector,pmt);
1056 }
1057 static FORCEINLINE HRESULT IPin_Disconnect(IPin* This) {
1058     return This->lpVtbl->Disconnect(This);
1059 }
1060 static FORCEINLINE HRESULT IPin_ConnectedTo(IPin* This,IPin **pPin) {
1061     return This->lpVtbl->ConnectedTo(This,pPin);
1062 }
1063 static FORCEINLINE HRESULT IPin_ConnectionMediaType(IPin* This,AM_MEDIA_TYPE *pmt) {
1064     return This->lpVtbl->ConnectionMediaType(This,pmt);
1065 }
1066 static FORCEINLINE HRESULT IPin_QueryPinInfo(IPin* This,PIN_INFO *pInfo) {
1067     return This->lpVtbl->QueryPinInfo(This,pInfo);
1068 }
1069 static FORCEINLINE HRESULT IPin_QueryDirection(IPin* This,PIN_DIRECTION *pPinDir) {
1070     return This->lpVtbl->QueryDirection(This,pPinDir);
1071 }
1072 static FORCEINLINE HRESULT IPin_QueryId(IPin* This,LPWSTR *Id) {
1073     return This->lpVtbl->QueryId(This,Id);
1074 }
1075 static FORCEINLINE HRESULT IPin_QueryAccept(IPin* This,const AM_MEDIA_TYPE *pmt) {
1076     return This->lpVtbl->QueryAccept(This,pmt);
1077 }
1078 static FORCEINLINE HRESULT IPin_EnumMediaTypes(IPin* This,IEnumMediaTypes **ppEnum) {
1079     return This->lpVtbl->EnumMediaTypes(This,ppEnum);
1080 }
1081 static FORCEINLINE HRESULT IPin_QueryInternalConnections(IPin* This,IPin **apPin,ULONG *nPin) {
1082     return This->lpVtbl->QueryInternalConnections(This,apPin,nPin);
1083 }
1084 static FORCEINLINE HRESULT IPin_EndOfStream(IPin* This) {
1085     return This->lpVtbl->EndOfStream(This);
1086 }
1087 static FORCEINLINE HRESULT IPin_BeginFlush(IPin* This) {
1088     return This->lpVtbl->BeginFlush(This);
1089 }
1090 static FORCEINLINE HRESULT IPin_EndFlush(IPin* This) {
1091     return This->lpVtbl->EndFlush(This);
1092 }
1093 static FORCEINLINE HRESULT IPin_NewSegment(IPin* This,REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate) {
1094     return This->lpVtbl->NewSegment(This,tStart,tStop,dRate);
1095 }
1096 #endif
1097 #endif
1098 
1099 #endif
1100 
1101 
1102 #endif  /* __IPin_INTERFACE_DEFINED__ */
1103 
1104 typedef IPin *PPIN;
1105 
1106 /*****************************************************************************
1107  * IEnumPins interface
1108  */
1109 #ifndef __IEnumPins_INTERFACE_DEFINED__
1110 #define __IEnumPins_INTERFACE_DEFINED__
1111 
1112 DEFINE_GUID(IID_IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1113 #if defined(__cplusplus) && !defined(CINTERFACE)
1114 MIDL_INTERFACE("56a86892-0ad4-11ce-b03a-0020af0ba770")
1115 IEnumPins : public IUnknown
1116 {
1117     virtual HRESULT STDMETHODCALLTYPE Next(
1118         ULONG cPins,
1119         IPin **ppPins,
1120         ULONG *pcFetched) = 0;
1121 
1122     virtual HRESULT STDMETHODCALLTYPE Skip(
1123         ULONG cPins) = 0;
1124 
1125     virtual HRESULT STDMETHODCALLTYPE Reset(
1126         ) = 0;
1127 
1128     virtual HRESULT STDMETHODCALLTYPE Clone(
1129         IEnumPins **ppEnum) = 0;
1130 
1131 };
1132 #ifdef __CRT_UUID_DECL
1133 __CRT_UUID_DECL(IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1134 #endif
1135 #else
1136 typedef struct IEnumPinsVtbl {
1137     BEGIN_INTERFACE
1138 
1139     /*** IUnknown methods ***/
1140     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1141         IEnumPins *This,
1142         REFIID riid,
1143         void **ppvObject);
1144 
1145     ULONG (STDMETHODCALLTYPE *AddRef)(
1146         IEnumPins *This);
1147 
1148     ULONG (STDMETHODCALLTYPE *Release)(
1149         IEnumPins *This);
1150 
1151     /*** IEnumPins methods ***/
1152     HRESULT (STDMETHODCALLTYPE *Next)(
1153         IEnumPins *This,
1154         ULONG cPins,
1155         IPin **ppPins,
1156         ULONG *pcFetched);
1157 
1158     HRESULT (STDMETHODCALLTYPE *Skip)(
1159         IEnumPins *This,
1160         ULONG cPins);
1161 
1162     HRESULT (STDMETHODCALLTYPE *Reset)(
1163         IEnumPins *This);
1164 
1165     HRESULT (STDMETHODCALLTYPE *Clone)(
1166         IEnumPins *This,
1167         IEnumPins **ppEnum);
1168 
1169     END_INTERFACE
1170 } IEnumPinsVtbl;
1171 
1172 interface IEnumPins {
1173     CONST_VTBL IEnumPinsVtbl* lpVtbl;
1174 };
1175 
1176 #ifdef COBJMACROS
1177 #ifndef WIDL_C_INLINE_WRAPPERS
1178 /*** IUnknown methods ***/
1179 #define IEnumPins_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1180 #define IEnumPins_AddRef(This) (This)->lpVtbl->AddRef(This)
1181 #define IEnumPins_Release(This) (This)->lpVtbl->Release(This)
1182 /*** IEnumPins methods ***/
1183 #define IEnumPins_Next(This,cPins,ppPins,pcFetched) (This)->lpVtbl->Next(This,cPins,ppPins,pcFetched)
1184 #define IEnumPins_Skip(This,cPins) (This)->lpVtbl->Skip(This,cPins)
1185 #define IEnumPins_Reset(This) (This)->lpVtbl->Reset(This)
1186 #define IEnumPins_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
1187 #else
1188 /*** IUnknown methods ***/
1189 static FORCEINLINE HRESULT IEnumPins_QueryInterface(IEnumPins* This,REFIID riid,void **ppvObject) {
1190     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1191 }
1192 static FORCEINLINE ULONG IEnumPins_AddRef(IEnumPins* This) {
1193     return This->lpVtbl->AddRef(This);
1194 }
1195 static FORCEINLINE ULONG IEnumPins_Release(IEnumPins* This) {
1196     return This->lpVtbl->Release(This);
1197 }
1198 /*** IEnumPins methods ***/
1199 static FORCEINLINE HRESULT IEnumPins_Next(IEnumPins* This,ULONG cPins,IPin **ppPins,ULONG *pcFetched) {
1200     return This->lpVtbl->Next(This,cPins,ppPins,pcFetched);
1201 }
1202 static FORCEINLINE HRESULT IEnumPins_Skip(IEnumPins* This,ULONG cPins) {
1203     return This->lpVtbl->Skip(This,cPins);
1204 }
1205 static FORCEINLINE HRESULT IEnumPins_Reset(IEnumPins* This) {
1206     return This->lpVtbl->Reset(This);
1207 }
1208 static FORCEINLINE HRESULT IEnumPins_Clone(IEnumPins* This,IEnumPins **ppEnum) {
1209     return This->lpVtbl->Clone(This,ppEnum);
1210 }
1211 #endif
1212 #endif
1213 
1214 #endif
1215 
1216 
1217 #endif  /* __IEnumPins_INTERFACE_DEFINED__ */
1218 
1219 typedef IEnumPins *PENUMPINS;
1220 
1221 /*****************************************************************************
1222  * IEnumMediaTypes interface
1223  */
1224 #ifndef __IEnumMediaTypes_INTERFACE_DEFINED__
1225 #define __IEnumMediaTypes_INTERFACE_DEFINED__
1226 
1227 DEFINE_GUID(IID_IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a);
1228 #if defined(__cplusplus) && !defined(CINTERFACE)
1229 MIDL_INTERFACE("89c31040-846b-11ce-97d3-00aa0055595a")
1230 IEnumMediaTypes : public IUnknown
1231 {
1232     virtual HRESULT STDMETHODCALLTYPE Next(
1233         ULONG cMediaTypes,
1234         AM_MEDIA_TYPE **ppMediaTypes,
1235         ULONG *pcFetched) = 0;
1236 
1237     virtual HRESULT STDMETHODCALLTYPE Skip(
1238         ULONG cMediaTypes) = 0;
1239 
1240     virtual HRESULT STDMETHODCALLTYPE Reset(
1241         ) = 0;
1242 
1243     virtual HRESULT STDMETHODCALLTYPE Clone(
1244         IEnumMediaTypes **ppEnum) = 0;
1245 
1246 };
1247 #ifdef __CRT_UUID_DECL
1248 __CRT_UUID_DECL(IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a)
1249 #endif
1250 #else
1251 typedef struct IEnumMediaTypesVtbl {
1252     BEGIN_INTERFACE
1253 
1254     /*** IUnknown methods ***/
1255     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1256         IEnumMediaTypes *This,
1257         REFIID riid,
1258         void **ppvObject);
1259 
1260     ULONG (STDMETHODCALLTYPE *AddRef)(
1261         IEnumMediaTypes *This);
1262 
1263     ULONG (STDMETHODCALLTYPE *Release)(
1264         IEnumMediaTypes *This);
1265 
1266     /*** IEnumMediaTypes methods ***/
1267     HRESULT (STDMETHODCALLTYPE *Next)(
1268         IEnumMediaTypes *This,
1269         ULONG cMediaTypes,
1270         AM_MEDIA_TYPE **ppMediaTypes,
1271         ULONG *pcFetched);
1272 
1273     HRESULT (STDMETHODCALLTYPE *Skip)(
1274         IEnumMediaTypes *This,
1275         ULONG cMediaTypes);
1276 
1277     HRESULT (STDMETHODCALLTYPE *Reset)(
1278         IEnumMediaTypes *This);
1279 
1280     HRESULT (STDMETHODCALLTYPE *Clone)(
1281         IEnumMediaTypes *This,
1282         IEnumMediaTypes **ppEnum);
1283 
1284     END_INTERFACE
1285 } IEnumMediaTypesVtbl;
1286 
1287 interface IEnumMediaTypes {
1288     CONST_VTBL IEnumMediaTypesVtbl* lpVtbl;
1289 };
1290 
1291 #ifdef COBJMACROS
1292 #ifndef WIDL_C_INLINE_WRAPPERS
1293 /*** IUnknown methods ***/
1294 #define IEnumMediaTypes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1295 #define IEnumMediaTypes_AddRef(This) (This)->lpVtbl->AddRef(This)
1296 #define IEnumMediaTypes_Release(This) (This)->lpVtbl->Release(This)
1297 /*** IEnumMediaTypes methods ***/
1298 #define IEnumMediaTypes_Next(This,cMediaTypes,ppMediaTypes,pcFetched) (This)->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched)
1299 #define IEnumMediaTypes_Skip(This,cMediaTypes) (This)->lpVtbl->Skip(This,cMediaTypes)
1300 #define IEnumMediaTypes_Reset(This) (This)->lpVtbl->Reset(This)
1301 #define IEnumMediaTypes_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
1302 #else
1303 /*** IUnknown methods ***/
1304 static FORCEINLINE HRESULT IEnumMediaTypes_QueryInterface(IEnumMediaTypes* This,REFIID riid,void **ppvObject) {
1305     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1306 }
1307 static FORCEINLINE ULONG IEnumMediaTypes_AddRef(IEnumMediaTypes* This) {
1308     return This->lpVtbl->AddRef(This);
1309 }
1310 static FORCEINLINE ULONG IEnumMediaTypes_Release(IEnumMediaTypes* This) {
1311     return This->lpVtbl->Release(This);
1312 }
1313 /*** IEnumMediaTypes methods ***/
1314 static FORCEINLINE HRESULT IEnumMediaTypes_Next(IEnumMediaTypes* This,ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched) {
1315     return This->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched);
1316 }
1317 static FORCEINLINE HRESULT IEnumMediaTypes_Skip(IEnumMediaTypes* This,ULONG cMediaTypes) {
1318     return This->lpVtbl->Skip(This,cMediaTypes);
1319 }
1320 static FORCEINLINE HRESULT IEnumMediaTypes_Reset(IEnumMediaTypes* This) {
1321     return This->lpVtbl->Reset(This);
1322 }
1323 static FORCEINLINE HRESULT IEnumMediaTypes_Clone(IEnumMediaTypes* This,IEnumMediaTypes **ppEnum) {
1324     return This->lpVtbl->Clone(This,ppEnum);
1325 }
1326 #endif
1327 #endif
1328 
1329 #endif
1330 
1331 
1332 #endif  /* __IEnumMediaTypes_INTERFACE_DEFINED__ */
1333 
1334 typedef IEnumMediaTypes *PENUMMEDIATYPES;
1335 
1336 /*****************************************************************************
1337  * IFilterGraph interface
1338  */
1339 #ifndef __IFilterGraph_INTERFACE_DEFINED__
1340 #define __IFilterGraph_INTERFACE_DEFINED__
1341 
1342 DEFINE_GUID(IID_IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1343 #if defined(__cplusplus) && !defined(CINTERFACE)
1344 MIDL_INTERFACE("56a8689f-0ad4-11ce-b03a-0020af0ba770")
1345 IFilterGraph : public IUnknown
1346 {
1347     virtual HRESULT STDMETHODCALLTYPE AddFilter(
1348         IBaseFilter *pFilter,
1349         LPCWSTR pName) = 0;
1350 
1351     virtual HRESULT STDMETHODCALLTYPE RemoveFilter(
1352         IBaseFilter *pFilter) = 0;
1353 
1354     virtual HRESULT STDMETHODCALLTYPE EnumFilters(
1355         IEnumFilters **ppEnum) = 0;
1356 
1357     virtual HRESULT STDMETHODCALLTYPE FindFilterByName(
1358         LPCWSTR pName,
1359         IBaseFilter **ppFilter) = 0;
1360 
1361     virtual HRESULT STDMETHODCALLTYPE ConnectDirect(
1362         IPin *ppinOut,
1363         IPin *ppinIn,
1364         const AM_MEDIA_TYPE *pmt) = 0;
1365 
1366     virtual HRESULT STDMETHODCALLTYPE Reconnect(
1367         IPin *ppin) = 0;
1368 
1369     virtual HRESULT STDMETHODCALLTYPE Disconnect(
1370         IPin *ppin) = 0;
1371 
1372     virtual HRESULT STDMETHODCALLTYPE SetDefaultSyncSource(
1373         ) = 0;
1374 
1375 };
1376 #ifdef __CRT_UUID_DECL
1377 __CRT_UUID_DECL(IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1378 #endif
1379 #else
1380 typedef struct IFilterGraphVtbl {
1381     BEGIN_INTERFACE
1382 
1383     /*** IUnknown methods ***/
1384     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1385         IFilterGraph *This,
1386         REFIID riid,
1387         void **ppvObject);
1388 
1389     ULONG (STDMETHODCALLTYPE *AddRef)(
1390         IFilterGraph *This);
1391 
1392     ULONG (STDMETHODCALLTYPE *Release)(
1393         IFilterGraph *This);
1394 
1395     /*** IFilterGraph methods ***/
1396     HRESULT (STDMETHODCALLTYPE *AddFilter)(
1397         IFilterGraph *This,
1398         IBaseFilter *pFilter,
1399         LPCWSTR pName);
1400 
1401     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
1402         IFilterGraph *This,
1403         IBaseFilter *pFilter);
1404 
1405     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
1406         IFilterGraph *This,
1407         IEnumFilters **ppEnum);
1408 
1409     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
1410         IFilterGraph *This,
1411         LPCWSTR pName,
1412         IBaseFilter **ppFilter);
1413 
1414     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
1415         IFilterGraph *This,
1416         IPin *ppinOut,
1417         IPin *ppinIn,
1418         const AM_MEDIA_TYPE *pmt);
1419 
1420     HRESULT (STDMETHODCALLTYPE *Reconnect)(
1421         IFilterGraph *This,
1422         IPin *ppin);
1423 
1424     HRESULT (STDMETHODCALLTYPE *Disconnect)(
1425         IFilterGraph *This,
1426         IPin *ppin);
1427 
1428     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
1429         IFilterGraph *This);
1430 
1431     END_INTERFACE
1432 } IFilterGraphVtbl;
1433 
1434 interface IFilterGraph {
1435     CONST_VTBL IFilterGraphVtbl* lpVtbl;
1436 };
1437 
1438 #ifdef COBJMACROS
1439 #ifndef WIDL_C_INLINE_WRAPPERS
1440 /*** IUnknown methods ***/
1441 #define IFilterGraph_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1442 #define IFilterGraph_AddRef(This) (This)->lpVtbl->AddRef(This)
1443 #define IFilterGraph_Release(This) (This)->lpVtbl->Release(This)
1444 /*** IFilterGraph methods ***/
1445 #define IFilterGraph_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
1446 #define IFilterGraph_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
1447 #define IFilterGraph_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
1448 #define IFilterGraph_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
1449 #define IFilterGraph_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
1450 #define IFilterGraph_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
1451 #define IFilterGraph_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
1452 #define IFilterGraph_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
1453 #else
1454 /*** IUnknown methods ***/
1455 static FORCEINLINE HRESULT IFilterGraph_QueryInterface(IFilterGraph* This,REFIID riid,void **ppvObject) {
1456     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1457 }
1458 static FORCEINLINE ULONG IFilterGraph_AddRef(IFilterGraph* This) {
1459     return This->lpVtbl->AddRef(This);
1460 }
1461 static FORCEINLINE ULONG IFilterGraph_Release(IFilterGraph* This) {
1462     return This->lpVtbl->Release(This);
1463 }
1464 /*** IFilterGraph methods ***/
1465 static FORCEINLINE HRESULT IFilterGraph_AddFilter(IFilterGraph* This,IBaseFilter *pFilter,LPCWSTR pName) {
1466     return This->lpVtbl->AddFilter(This,pFilter,pName);
1467 }
1468 static FORCEINLINE HRESULT IFilterGraph_RemoveFilter(IFilterGraph* This,IBaseFilter *pFilter) {
1469     return This->lpVtbl->RemoveFilter(This,pFilter);
1470 }
1471 static FORCEINLINE HRESULT IFilterGraph_EnumFilters(IFilterGraph* This,IEnumFilters **ppEnum) {
1472     return This->lpVtbl->EnumFilters(This,ppEnum);
1473 }
1474 static FORCEINLINE HRESULT IFilterGraph_FindFilterByName(IFilterGraph* This,LPCWSTR pName,IBaseFilter **ppFilter) {
1475     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
1476 }
1477 static FORCEINLINE HRESULT IFilterGraph_ConnectDirect(IFilterGraph* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
1478     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
1479 }
1480 static FORCEINLINE HRESULT IFilterGraph_Reconnect(IFilterGraph* This,IPin *ppin) {
1481     return This->lpVtbl->Reconnect(This,ppin);
1482 }
1483 static FORCEINLINE HRESULT IFilterGraph_Disconnect(IFilterGraph* This,IPin *ppin) {
1484     return This->lpVtbl->Disconnect(This,ppin);
1485 }
1486 static FORCEINLINE HRESULT IFilterGraph_SetDefaultSyncSource(IFilterGraph* This) {
1487     return This->lpVtbl->SetDefaultSyncSource(This);
1488 }
1489 #endif
1490 #endif
1491 
1492 #endif
1493 
1494 
1495 #endif  /* __IFilterGraph_INTERFACE_DEFINED__ */
1496 
1497 typedef IFilterGraph *PFILTERGRAPH;
1498 
1499 /*****************************************************************************
1500  * IEnumFilters interface
1501  */
1502 #ifndef __IEnumFilters_INTERFACE_DEFINED__
1503 #define __IEnumFilters_INTERFACE_DEFINED__
1504 
1505 DEFINE_GUID(IID_IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1506 #if defined(__cplusplus) && !defined(CINTERFACE)
1507 MIDL_INTERFACE("56a86893-0ad4-11ce-b03a-0020af0ba770")
1508 IEnumFilters : public IUnknown
1509 {
1510     virtual HRESULT STDMETHODCALLTYPE Next(
1511         ULONG cFilters,
1512         IBaseFilter **ppFilter,
1513         ULONG *pcFetched) = 0;
1514 
1515     virtual HRESULT STDMETHODCALLTYPE Skip(
1516         ULONG cFilters) = 0;
1517 
1518     virtual HRESULT STDMETHODCALLTYPE Reset(
1519         ) = 0;
1520 
1521     virtual HRESULT STDMETHODCALLTYPE Clone(
1522         IEnumFilters **ppEnum) = 0;
1523 
1524 };
1525 #ifdef __CRT_UUID_DECL
1526 __CRT_UUID_DECL(IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1527 #endif
1528 #else
1529 typedef struct IEnumFiltersVtbl {
1530     BEGIN_INTERFACE
1531 
1532     /*** IUnknown methods ***/
1533     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1534         IEnumFilters *This,
1535         REFIID riid,
1536         void **ppvObject);
1537 
1538     ULONG (STDMETHODCALLTYPE *AddRef)(
1539         IEnumFilters *This);
1540 
1541     ULONG (STDMETHODCALLTYPE *Release)(
1542         IEnumFilters *This);
1543 
1544     /*** IEnumFilters methods ***/
1545     HRESULT (STDMETHODCALLTYPE *Next)(
1546         IEnumFilters *This,
1547         ULONG cFilters,
1548         IBaseFilter **ppFilter,
1549         ULONG *pcFetched);
1550 
1551     HRESULT (STDMETHODCALLTYPE *Skip)(
1552         IEnumFilters *This,
1553         ULONG cFilters);
1554 
1555     HRESULT (STDMETHODCALLTYPE *Reset)(
1556         IEnumFilters *This);
1557 
1558     HRESULT (STDMETHODCALLTYPE *Clone)(
1559         IEnumFilters *This,
1560         IEnumFilters **ppEnum);
1561 
1562     END_INTERFACE
1563 } IEnumFiltersVtbl;
1564 
1565 interface IEnumFilters {
1566     CONST_VTBL IEnumFiltersVtbl* lpVtbl;
1567 };
1568 
1569 #ifdef COBJMACROS
1570 #ifndef WIDL_C_INLINE_WRAPPERS
1571 /*** IUnknown methods ***/
1572 #define IEnumFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1573 #define IEnumFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
1574 #define IEnumFilters_Release(This) (This)->lpVtbl->Release(This)
1575 /*** IEnumFilters methods ***/
1576 #define IEnumFilters_Next(This,cFilters,ppFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,ppFilter,pcFetched)
1577 #define IEnumFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
1578 #define IEnumFilters_Reset(This) (This)->lpVtbl->Reset(This)
1579 #define IEnumFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
1580 #else
1581 /*** IUnknown methods ***/
1582 static FORCEINLINE HRESULT IEnumFilters_QueryInterface(IEnumFilters* This,REFIID riid,void **ppvObject) {
1583     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1584 }
1585 static FORCEINLINE ULONG IEnumFilters_AddRef(IEnumFilters* This) {
1586     return This->lpVtbl->AddRef(This);
1587 }
1588 static FORCEINLINE ULONG IEnumFilters_Release(IEnumFilters* This) {
1589     return This->lpVtbl->Release(This);
1590 }
1591 /*** IEnumFilters methods ***/
1592 static FORCEINLINE HRESULT IEnumFilters_Next(IEnumFilters* This,ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched) {
1593     return This->lpVtbl->Next(This,cFilters,ppFilter,pcFetched);
1594 }
1595 static FORCEINLINE HRESULT IEnumFilters_Skip(IEnumFilters* This,ULONG cFilters) {
1596     return This->lpVtbl->Skip(This,cFilters);
1597 }
1598 static FORCEINLINE HRESULT IEnumFilters_Reset(IEnumFilters* This) {
1599     return This->lpVtbl->Reset(This);
1600 }
1601 static FORCEINLINE HRESULT IEnumFilters_Clone(IEnumFilters* This,IEnumFilters **ppEnum) {
1602     return This->lpVtbl->Clone(This,ppEnum);
1603 }
1604 #endif
1605 #endif
1606 
1607 #endif
1608 
1609 
1610 #endif  /* __IEnumFilters_INTERFACE_DEFINED__ */
1611 
1612 typedef IEnumFilters *PENUMFILTERS;
1613 
1614 /*****************************************************************************
1615  * IMediaFilter interface
1616  */
1617 #ifndef __IMediaFilter_INTERFACE_DEFINED__
1618 #define __IMediaFilter_INTERFACE_DEFINED__
1619 
1620 typedef enum _FilterState {
1621     State_Stopped = 0,
1622     State_Paused = 1,
1623     State_Running = 2
1624 } FILTER_STATE;
1625 
1626 DEFINE_GUID(IID_IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1627 #if defined(__cplusplus) && !defined(CINTERFACE)
1628 MIDL_INTERFACE("56a86899-0ad4-11ce-b03a-0020af0ba770")
1629 IMediaFilter : public IPersist
1630 {
1631     virtual HRESULT STDMETHODCALLTYPE Stop(
1632         ) = 0;
1633 
1634     virtual HRESULT STDMETHODCALLTYPE Pause(
1635         ) = 0;
1636 
1637     virtual HRESULT STDMETHODCALLTYPE Run(
1638         REFERENCE_TIME tStart) = 0;
1639 
1640     virtual HRESULT STDMETHODCALLTYPE GetState(
1641         DWORD dwMilliSecsTimeout,
1642         FILTER_STATE *State) = 0;
1643 
1644     virtual HRESULT STDMETHODCALLTYPE SetSyncSource(
1645         IReferenceClock *pClock) = 0;
1646 
1647     virtual HRESULT STDMETHODCALLTYPE GetSyncSource(
1648         IReferenceClock **pClock) = 0;
1649 
1650 };
1651 #ifdef __CRT_UUID_DECL
1652 __CRT_UUID_DECL(IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1653 #endif
1654 #else
1655 typedef struct IMediaFilterVtbl {
1656     BEGIN_INTERFACE
1657 
1658     /*** IUnknown methods ***/
1659     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1660         IMediaFilter *This,
1661         REFIID riid,
1662         void **ppvObject);
1663 
1664     ULONG (STDMETHODCALLTYPE *AddRef)(
1665         IMediaFilter *This);
1666 
1667     ULONG (STDMETHODCALLTYPE *Release)(
1668         IMediaFilter *This);
1669 
1670     /*** IPersist methods ***/
1671     HRESULT (STDMETHODCALLTYPE *GetClassID)(
1672         IMediaFilter *This,
1673         CLSID *pClassID);
1674 
1675     /*** IMediaFilter methods ***/
1676     HRESULT (STDMETHODCALLTYPE *Stop)(
1677         IMediaFilter *This);
1678 
1679     HRESULT (STDMETHODCALLTYPE *Pause)(
1680         IMediaFilter *This);
1681 
1682     HRESULT (STDMETHODCALLTYPE *Run)(
1683         IMediaFilter *This,
1684         REFERENCE_TIME tStart);
1685 
1686     HRESULT (STDMETHODCALLTYPE *GetState)(
1687         IMediaFilter *This,
1688         DWORD dwMilliSecsTimeout,
1689         FILTER_STATE *State);
1690 
1691     HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
1692         IMediaFilter *This,
1693         IReferenceClock *pClock);
1694 
1695     HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
1696         IMediaFilter *This,
1697         IReferenceClock **pClock);
1698 
1699     END_INTERFACE
1700 } IMediaFilterVtbl;
1701 
1702 interface IMediaFilter {
1703     CONST_VTBL IMediaFilterVtbl* lpVtbl;
1704 };
1705 
1706 #ifdef COBJMACROS
1707 #ifndef WIDL_C_INLINE_WRAPPERS
1708 /*** IUnknown methods ***/
1709 #define IMediaFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1710 #define IMediaFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
1711 #define IMediaFilter_Release(This) (This)->lpVtbl->Release(This)
1712 /*** IPersist methods ***/
1713 #define IMediaFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
1714 /*** IMediaFilter methods ***/
1715 #define IMediaFilter_Stop(This) (This)->lpVtbl->Stop(This)
1716 #define IMediaFilter_Pause(This) (This)->lpVtbl->Pause(This)
1717 #define IMediaFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
1718 #define IMediaFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
1719 #define IMediaFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
1720 #define IMediaFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
1721 #else
1722 /*** IUnknown methods ***/
1723 static FORCEINLINE HRESULT IMediaFilter_QueryInterface(IMediaFilter* This,REFIID riid,void **ppvObject) {
1724     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1725 }
1726 static FORCEINLINE ULONG IMediaFilter_AddRef(IMediaFilter* This) {
1727     return This->lpVtbl->AddRef(This);
1728 }
1729 static FORCEINLINE ULONG IMediaFilter_Release(IMediaFilter* This) {
1730     return This->lpVtbl->Release(This);
1731 }
1732 /*** IPersist methods ***/
1733 static FORCEINLINE HRESULT IMediaFilter_GetClassID(IMediaFilter* This,CLSID *pClassID) {
1734     return This->lpVtbl->GetClassID(This,pClassID);
1735 }
1736 /*** IMediaFilter methods ***/
1737 static FORCEINLINE HRESULT IMediaFilter_Stop(IMediaFilter* This) {
1738     return This->lpVtbl->Stop(This);
1739 }
1740 static FORCEINLINE HRESULT IMediaFilter_Pause(IMediaFilter* This) {
1741     return This->lpVtbl->Pause(This);
1742 }
1743 static FORCEINLINE HRESULT IMediaFilter_Run(IMediaFilter* This,REFERENCE_TIME tStart) {
1744     return This->lpVtbl->Run(This,tStart);
1745 }
1746 static FORCEINLINE HRESULT IMediaFilter_GetState(IMediaFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
1747     return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
1748 }
1749 static FORCEINLINE HRESULT IMediaFilter_SetSyncSource(IMediaFilter* This,IReferenceClock *pClock) {
1750     return This->lpVtbl->SetSyncSource(This,pClock);
1751 }
1752 static FORCEINLINE HRESULT IMediaFilter_GetSyncSource(IMediaFilter* This,IReferenceClock **pClock) {
1753     return This->lpVtbl->GetSyncSource(This,pClock);
1754 }
1755 #endif
1756 #endif
1757 
1758 #endif
1759 
1760 
1761 #endif  /* __IMediaFilter_INTERFACE_DEFINED__ */
1762 
1763 typedef IMediaFilter *PMEDIAFILTER;
1764 
1765 /*****************************************************************************
1766  * IBaseFilter interface
1767  */
1768 #ifndef __IBaseFilter_INTERFACE_DEFINED__
1769 #define __IBaseFilter_INTERFACE_DEFINED__
1770 
1771 typedef struct _FilterInfo {
1772     WCHAR achName[128];
1773     IFilterGraph *pGraph;
1774 } FILTER_INFO;
1775 
1776 DEFINE_GUID(IID_IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1777 #if defined(__cplusplus) && !defined(CINTERFACE)
1778 MIDL_INTERFACE("56a86895-0ad4-11ce-b03a-0020af0ba770")
1779 IBaseFilter : public IMediaFilter
1780 {
1781     virtual HRESULT STDMETHODCALLTYPE EnumPins(
1782         IEnumPins **ppEnum) = 0;
1783 
1784     virtual HRESULT STDMETHODCALLTYPE FindPin(
1785         LPCWSTR Id,
1786         IPin **ppPin) = 0;
1787 
1788     virtual HRESULT STDMETHODCALLTYPE QueryFilterInfo(
1789         FILTER_INFO *pInfo) = 0;
1790 
1791     virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph(
1792         IFilterGraph *pGraph,
1793         LPCWSTR pName) = 0;
1794 
1795     virtual HRESULT STDMETHODCALLTYPE QueryVendorInfo(
1796         LPWSTR *pVendorInfo) = 0;
1797 
1798 };
1799 #ifdef __CRT_UUID_DECL
1800 __CRT_UUID_DECL(IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1801 #endif
1802 #else
1803 typedef struct IBaseFilterVtbl {
1804     BEGIN_INTERFACE
1805 
1806     /*** IUnknown methods ***/
1807     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1808         IBaseFilter *This,
1809         REFIID riid,
1810         void **ppvObject);
1811 
1812     ULONG (STDMETHODCALLTYPE *AddRef)(
1813         IBaseFilter *This);
1814 
1815     ULONG (STDMETHODCALLTYPE *Release)(
1816         IBaseFilter *This);
1817 
1818     /*** IPersist methods ***/
1819     HRESULT (STDMETHODCALLTYPE *GetClassID)(
1820         IBaseFilter *This,
1821         CLSID *pClassID);
1822 
1823     /*** IMediaFilter methods ***/
1824     HRESULT (STDMETHODCALLTYPE *Stop)(
1825         IBaseFilter *This);
1826 
1827     HRESULT (STDMETHODCALLTYPE *Pause)(
1828         IBaseFilter *This);
1829 
1830     HRESULT (STDMETHODCALLTYPE *Run)(
1831         IBaseFilter *This,
1832         REFERENCE_TIME tStart);
1833 
1834     HRESULT (STDMETHODCALLTYPE *GetState)(
1835         IBaseFilter *This,
1836         DWORD dwMilliSecsTimeout,
1837         FILTER_STATE *State);
1838 
1839     HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
1840         IBaseFilter *This,
1841         IReferenceClock *pClock);
1842 
1843     HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
1844         IBaseFilter *This,
1845         IReferenceClock **pClock);
1846 
1847     /*** IBaseFilter methods ***/
1848     HRESULT (STDMETHODCALLTYPE *EnumPins)(
1849         IBaseFilter *This,
1850         IEnumPins **ppEnum);
1851 
1852     HRESULT (STDMETHODCALLTYPE *FindPin)(
1853         IBaseFilter *This,
1854         LPCWSTR Id,
1855         IPin **ppPin);
1856 
1857     HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)(
1858         IBaseFilter *This,
1859         FILTER_INFO *pInfo);
1860 
1861     HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
1862         IBaseFilter *This,
1863         IFilterGraph *pGraph,
1864         LPCWSTR pName);
1865 
1866     HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)(
1867         IBaseFilter *This,
1868         LPWSTR *pVendorInfo);
1869 
1870     END_INTERFACE
1871 } IBaseFilterVtbl;
1872 
1873 interface IBaseFilter {
1874     CONST_VTBL IBaseFilterVtbl* lpVtbl;
1875 };
1876 
1877 #ifdef COBJMACROS
1878 #ifndef WIDL_C_INLINE_WRAPPERS
1879 /*** IUnknown methods ***/
1880 #define IBaseFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1881 #define IBaseFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
1882 #define IBaseFilter_Release(This) (This)->lpVtbl->Release(This)
1883 /*** IPersist methods ***/
1884 #define IBaseFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
1885 /*** IMediaFilter methods ***/
1886 #define IBaseFilter_Stop(This) (This)->lpVtbl->Stop(This)
1887 #define IBaseFilter_Pause(This) (This)->lpVtbl->Pause(This)
1888 #define IBaseFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
1889 #define IBaseFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
1890 #define IBaseFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
1891 #define IBaseFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
1892 /*** IBaseFilter methods ***/
1893 #define IBaseFilter_EnumPins(This,ppEnum) (This)->lpVtbl->EnumPins(This,ppEnum)
1894 #define IBaseFilter_FindPin(This,Id,ppPin) (This)->lpVtbl->FindPin(This,Id,ppPin)
1895 #define IBaseFilter_QueryFilterInfo(This,pInfo) (This)->lpVtbl->QueryFilterInfo(This,pInfo)
1896 #define IBaseFilter_JoinFilterGraph(This,pGraph,pName) (This)->lpVtbl->JoinFilterGraph(This,pGraph,pName)
1897 #define IBaseFilter_QueryVendorInfo(This,pVendorInfo) (This)->lpVtbl->QueryVendorInfo(This,pVendorInfo)
1898 #else
1899 /*** IUnknown methods ***/
1900 static FORCEINLINE HRESULT IBaseFilter_QueryInterface(IBaseFilter* This,REFIID riid,void **ppvObject) {
1901     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1902 }
1903 static FORCEINLINE ULONG IBaseFilter_AddRef(IBaseFilter* This) {
1904     return This->lpVtbl->AddRef(This);
1905 }
1906 static FORCEINLINE ULONG IBaseFilter_Release(IBaseFilter* This) {
1907     return This->lpVtbl->Release(This);
1908 }
1909 /*** IPersist methods ***/
1910 static FORCEINLINE HRESULT IBaseFilter_GetClassID(IBaseFilter* This,CLSID *pClassID) {
1911     return This->lpVtbl->GetClassID(This,pClassID);
1912 }
1913 /*** IMediaFilter methods ***/
1914 static FORCEINLINE HRESULT IBaseFilter_Stop(IBaseFilter* This) {
1915     return This->lpVtbl->Stop(This);
1916 }
1917 static FORCEINLINE HRESULT IBaseFilter_Pause(IBaseFilter* This) {
1918     return This->lpVtbl->Pause(This);
1919 }
1920 static FORCEINLINE HRESULT IBaseFilter_Run(IBaseFilter* This,REFERENCE_TIME tStart) {
1921     return This->lpVtbl->Run(This,tStart);
1922 }
1923 static FORCEINLINE HRESULT IBaseFilter_GetState(IBaseFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
1924     return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
1925 }
1926 static FORCEINLINE HRESULT IBaseFilter_SetSyncSource(IBaseFilter* This,IReferenceClock *pClock) {
1927     return This->lpVtbl->SetSyncSource(This,pClock);
1928 }
1929 static FORCEINLINE HRESULT IBaseFilter_GetSyncSource(IBaseFilter* This,IReferenceClock **pClock) {
1930     return This->lpVtbl->GetSyncSource(This,pClock);
1931 }
1932 /*** IBaseFilter methods ***/
1933 static FORCEINLINE HRESULT IBaseFilter_EnumPins(IBaseFilter* This,IEnumPins **ppEnum) {
1934     return This->lpVtbl->EnumPins(This,ppEnum);
1935 }
1936 static FORCEINLINE HRESULT IBaseFilter_FindPin(IBaseFilter* This,LPCWSTR Id,IPin **ppPin) {
1937     return This->lpVtbl->FindPin(This,Id,ppPin);
1938 }
1939 static FORCEINLINE HRESULT IBaseFilter_QueryFilterInfo(IBaseFilter* This,FILTER_INFO *pInfo) {
1940     return This->lpVtbl->QueryFilterInfo(This,pInfo);
1941 }
1942 static FORCEINLINE HRESULT IBaseFilter_JoinFilterGraph(IBaseFilter* This,IFilterGraph *pGraph,LPCWSTR pName) {
1943     return This->lpVtbl->JoinFilterGraph(This,pGraph,pName);
1944 }
1945 static FORCEINLINE HRESULT IBaseFilter_QueryVendorInfo(IBaseFilter* This,LPWSTR *pVendorInfo) {
1946     return This->lpVtbl->QueryVendorInfo(This,pVendorInfo);
1947 }
1948 #endif
1949 #endif
1950 
1951 #endif
1952 
1953 
1954 #endif  /* __IBaseFilter_INTERFACE_DEFINED__ */
1955 
1956 typedef IBaseFilter *PFILTER;
1957 
1958 /*****************************************************************************
1959  * IReferenceClock interface
1960  */
1961 #ifndef __IReferenceClock_INTERFACE_DEFINED__
1962 #define __IReferenceClock_INTERFACE_DEFINED__
1963 
1964 DEFINE_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1965 #if defined(__cplusplus) && !defined(CINTERFACE)
1966 MIDL_INTERFACE("56a86897-0ad4-11ce-b03a-0020af0ba770")
1967 IReferenceClock : public IUnknown
1968 {
1969     virtual HRESULT STDMETHODCALLTYPE GetTime(
1970         REFERENCE_TIME *pTime) = 0;
1971 
1972     virtual HRESULT STDMETHODCALLTYPE AdviseTime(
1973         REFERENCE_TIME baseTime,
1974         REFERENCE_TIME streamTime,
1975         HEVENT hEvent,
1976         DWORD_PTR *pdwAdviseCookie) = 0;
1977 
1978     virtual HRESULT STDMETHODCALLTYPE AdvisePeriodic(
1979         REFERENCE_TIME startTime,
1980         REFERENCE_TIME periodTime,
1981         HSEMAPHORE hSemaphore,
1982         DWORD_PTR *pdwAdviseCookie) = 0;
1983 
1984     virtual HRESULT STDMETHODCALLTYPE Unadvise(
1985         DWORD_PTR dwAdviseCookie) = 0;
1986 
1987 };
1988 #ifdef __CRT_UUID_DECL
1989 __CRT_UUID_DECL(IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1990 #endif
1991 #else
1992 typedef struct IReferenceClockVtbl {
1993     BEGIN_INTERFACE
1994 
1995     /*** IUnknown methods ***/
1996     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1997         IReferenceClock *This,
1998         REFIID riid,
1999         void **ppvObject);
2000 
2001     ULONG (STDMETHODCALLTYPE *AddRef)(
2002         IReferenceClock *This);
2003 
2004     ULONG (STDMETHODCALLTYPE *Release)(
2005         IReferenceClock *This);
2006 
2007     /*** IReferenceClock methods ***/
2008     HRESULT (STDMETHODCALLTYPE *GetTime)(
2009         IReferenceClock *This,
2010         REFERENCE_TIME *pTime);
2011 
2012     HRESULT (STDMETHODCALLTYPE *AdviseTime)(
2013         IReferenceClock *This,
2014         REFERENCE_TIME baseTime,
2015         REFERENCE_TIME streamTime,
2016         HEVENT hEvent,
2017         DWORD_PTR *pdwAdviseCookie);
2018 
2019     HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
2020         IReferenceClock *This,
2021         REFERENCE_TIME startTime,
2022         REFERENCE_TIME periodTime,
2023         HSEMAPHORE hSemaphore,
2024         DWORD_PTR *pdwAdviseCookie);
2025 
2026     HRESULT (STDMETHODCALLTYPE *Unadvise)(
2027         IReferenceClock *This,
2028         DWORD_PTR dwAdviseCookie);
2029 
2030     END_INTERFACE
2031 } IReferenceClockVtbl;
2032 
2033 interface IReferenceClock {
2034     CONST_VTBL IReferenceClockVtbl* lpVtbl;
2035 };
2036 
2037 #ifdef COBJMACROS
2038 #ifndef WIDL_C_INLINE_WRAPPERS
2039 /*** IUnknown methods ***/
2040 #define IReferenceClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2041 #define IReferenceClock_AddRef(This) (This)->lpVtbl->AddRef(This)
2042 #define IReferenceClock_Release(This) (This)->lpVtbl->Release(This)
2043 /*** IReferenceClock methods ***/
2044 #define IReferenceClock_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
2045 #define IReferenceClock_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
2046 #define IReferenceClock_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
2047 #define IReferenceClock_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
2048 #else
2049 /*** IUnknown methods ***/
2050 static FORCEINLINE HRESULT IReferenceClock_QueryInterface(IReferenceClock* This,REFIID riid,void **ppvObject) {
2051     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2052 }
2053 static FORCEINLINE ULONG IReferenceClock_AddRef(IReferenceClock* This) {
2054     return This->lpVtbl->AddRef(This);
2055 }
2056 static FORCEINLINE ULONG IReferenceClock_Release(IReferenceClock* This) {
2057     return This->lpVtbl->Release(This);
2058 }
2059 /*** IReferenceClock methods ***/
2060 static FORCEINLINE HRESULT IReferenceClock_GetTime(IReferenceClock* This,REFERENCE_TIME *pTime) {
2061     return This->lpVtbl->GetTime(This,pTime);
2062 }
2063 static FORCEINLINE HRESULT IReferenceClock_AdviseTime(IReferenceClock* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
2064     return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
2065 }
2066 static FORCEINLINE HRESULT IReferenceClock_AdvisePeriodic(IReferenceClock* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
2067     return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
2068 }
2069 static FORCEINLINE HRESULT IReferenceClock_Unadvise(IReferenceClock* This,DWORD_PTR dwAdviseCookie) {
2070     return This->lpVtbl->Unadvise(This,dwAdviseCookie);
2071 }
2072 #endif
2073 #endif
2074 
2075 #endif
2076 
2077 
2078 #endif  /* __IReferenceClock_INTERFACE_DEFINED__ */
2079 
2080 typedef IReferenceClock *PREFERENCECLOCK;
2081 
2082 /*****************************************************************************
2083  * IReferenceClockTimerControl interface
2084  */
2085 #ifndef __IReferenceClockTimerControl_INTERFACE_DEFINED__
2086 #define __IReferenceClockTimerControl_INTERFACE_DEFINED__
2087 
2088 DEFINE_GUID(IID_IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8);
2089 #if defined(__cplusplus) && !defined(CINTERFACE)
2090 MIDL_INTERFACE("ebec459c-2eca-4d42-a8af-30df557614b8")
2091 IReferenceClockTimerControl : public IUnknown
2092 {
2093     virtual HRESULT STDMETHODCALLTYPE SetDefaultTimerResolution(
2094         REFERENCE_TIME timerResolution) = 0;
2095 
2096     virtual HRESULT STDMETHODCALLTYPE GetDefaultTimerResolution(
2097         REFERENCE_TIME *pTimerResolution) = 0;
2098 
2099 };
2100 #ifdef __CRT_UUID_DECL
2101 __CRT_UUID_DECL(IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8)
2102 #endif
2103 #else
2104 typedef struct IReferenceClockTimerControlVtbl {
2105     BEGIN_INTERFACE
2106 
2107     /*** IUnknown methods ***/
2108     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2109         IReferenceClockTimerControl *This,
2110         REFIID riid,
2111         void **ppvObject);
2112 
2113     ULONG (STDMETHODCALLTYPE *AddRef)(
2114         IReferenceClockTimerControl *This);
2115 
2116     ULONG (STDMETHODCALLTYPE *Release)(
2117         IReferenceClockTimerControl *This);
2118 
2119     /*** IReferenceClockTimerControl methods ***/
2120     HRESULT (STDMETHODCALLTYPE *SetDefaultTimerResolution)(
2121         IReferenceClockTimerControl *This,
2122         REFERENCE_TIME timerResolution);
2123 
2124     HRESULT (STDMETHODCALLTYPE *GetDefaultTimerResolution)(
2125         IReferenceClockTimerControl *This,
2126         REFERENCE_TIME *pTimerResolution);
2127 
2128     END_INTERFACE
2129 } IReferenceClockTimerControlVtbl;
2130 
2131 interface IReferenceClockTimerControl {
2132     CONST_VTBL IReferenceClockTimerControlVtbl* lpVtbl;
2133 };
2134 
2135 #ifdef COBJMACROS
2136 #ifndef WIDL_C_INLINE_WRAPPERS
2137 /*** IUnknown methods ***/
2138 #define IReferenceClockTimerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2139 #define IReferenceClockTimerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
2140 #define IReferenceClockTimerControl_Release(This) (This)->lpVtbl->Release(This)
2141 /*** IReferenceClockTimerControl methods ***/
2142 #define IReferenceClockTimerControl_SetDefaultTimerResolution(This,timerResolution) (This)->lpVtbl->SetDefaultTimerResolution(This,timerResolution)
2143 #define IReferenceClockTimerControl_GetDefaultTimerResolution(This,pTimerResolution) (This)->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution)
2144 #else
2145 /*** IUnknown methods ***/
2146 static FORCEINLINE HRESULT IReferenceClockTimerControl_QueryInterface(IReferenceClockTimerControl* This,REFIID riid,void **ppvObject) {
2147     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2148 }
2149 static FORCEINLINE ULONG IReferenceClockTimerControl_AddRef(IReferenceClockTimerControl* This) {
2150     return This->lpVtbl->AddRef(This);
2151 }
2152 static FORCEINLINE ULONG IReferenceClockTimerControl_Release(IReferenceClockTimerControl* This) {
2153     return This->lpVtbl->Release(This);
2154 }
2155 /*** IReferenceClockTimerControl methods ***/
2156 static FORCEINLINE HRESULT IReferenceClockTimerControl_SetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME timerResolution) {
2157     return This->lpVtbl->SetDefaultTimerResolution(This,timerResolution);
2158 }
2159 static FORCEINLINE HRESULT IReferenceClockTimerControl_GetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME *pTimerResolution) {
2160     return This->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution);
2161 }
2162 #endif
2163 #endif
2164 
2165 #endif
2166 
2167 
2168 #endif  /* __IReferenceClockTimerControl_INTERFACE_DEFINED__ */
2169 
2170 
2171 /*****************************************************************************
2172  * IReferenceClock2 interface
2173  */
2174 #ifndef __IReferenceClock2_INTERFACE_DEFINED__
2175 #define __IReferenceClock2_INTERFACE_DEFINED__
2176 
2177 DEFINE_GUID(IID_IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
2178 #if defined(__cplusplus) && !defined(CINTERFACE)
2179 MIDL_INTERFACE("36b73885-c2c8-11cf-8b46-00805f6cef60")
2180 IReferenceClock2 : public IReferenceClock
2181 {
2182 };
2183 #ifdef __CRT_UUID_DECL
2184 __CRT_UUID_DECL(IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
2185 #endif
2186 #else
2187 typedef struct IReferenceClock2Vtbl {
2188     BEGIN_INTERFACE
2189 
2190     /*** IUnknown methods ***/
2191     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2192         IReferenceClock2 *This,
2193         REFIID riid,
2194         void **ppvObject);
2195 
2196     ULONG (STDMETHODCALLTYPE *AddRef)(
2197         IReferenceClock2 *This);
2198 
2199     ULONG (STDMETHODCALLTYPE *Release)(
2200         IReferenceClock2 *This);
2201 
2202     /*** IReferenceClock methods ***/
2203     HRESULT (STDMETHODCALLTYPE *GetTime)(
2204         IReferenceClock2 *This,
2205         REFERENCE_TIME *pTime);
2206 
2207     HRESULT (STDMETHODCALLTYPE *AdviseTime)(
2208         IReferenceClock2 *This,
2209         REFERENCE_TIME baseTime,
2210         REFERENCE_TIME streamTime,
2211         HEVENT hEvent,
2212         DWORD_PTR *pdwAdviseCookie);
2213 
2214     HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
2215         IReferenceClock2 *This,
2216         REFERENCE_TIME startTime,
2217         REFERENCE_TIME periodTime,
2218         HSEMAPHORE hSemaphore,
2219         DWORD_PTR *pdwAdviseCookie);
2220 
2221     HRESULT (STDMETHODCALLTYPE *Unadvise)(
2222         IReferenceClock2 *This,
2223         DWORD_PTR dwAdviseCookie);
2224 
2225     END_INTERFACE
2226 } IReferenceClock2Vtbl;
2227 
2228 interface IReferenceClock2 {
2229     CONST_VTBL IReferenceClock2Vtbl* lpVtbl;
2230 };
2231 
2232 #ifdef COBJMACROS
2233 #ifndef WIDL_C_INLINE_WRAPPERS
2234 /*** IUnknown methods ***/
2235 #define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2236 #define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
2237 #define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
2238 /*** IReferenceClock methods ***/
2239 #define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
2240 #define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
2241 #define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
2242 #define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
2243 #else
2244 /*** IUnknown methods ***/
2245 static FORCEINLINE HRESULT IReferenceClock2_QueryInterface(IReferenceClock2* This,REFIID riid,void **ppvObject) {
2246     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2247 }
2248 static FORCEINLINE ULONG IReferenceClock2_AddRef(IReferenceClock2* This) {
2249     return This->lpVtbl->AddRef(This);
2250 }
2251 static FORCEINLINE ULONG IReferenceClock2_Release(IReferenceClock2* This) {
2252     return This->lpVtbl->Release(This);
2253 }
2254 /*** IReferenceClock methods ***/
2255 static FORCEINLINE HRESULT IReferenceClock2_GetTime(IReferenceClock2* This,REFERENCE_TIME *pTime) {
2256     return This->lpVtbl->GetTime(This,pTime);
2257 }
2258 static FORCEINLINE HRESULT IReferenceClock2_AdviseTime(IReferenceClock2* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
2259     return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
2260 }
2261 static FORCEINLINE HRESULT IReferenceClock2_AdvisePeriodic(IReferenceClock2* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
2262     return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
2263 }
2264 static FORCEINLINE HRESULT IReferenceClock2_Unadvise(IReferenceClock2* This,DWORD_PTR dwAdviseCookie) {
2265     return This->lpVtbl->Unadvise(This,dwAdviseCookie);
2266 }
2267 #endif
2268 #endif
2269 
2270 #endif
2271 
2272 
2273 #endif  /* __IReferenceClock2_INTERFACE_DEFINED__ */
2274 
2275 typedef IReferenceClock2 *PREFERENCECLOCK2;
2276 
2277 /*****************************************************************************
2278  * IMediaSample interface
2279  */
2280 #ifndef __IMediaSample_INTERFACE_DEFINED__
2281 #define __IMediaSample_INTERFACE_DEFINED__
2282 
2283 DEFINE_GUID(IID_IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
2284 #if defined(__cplusplus) && !defined(CINTERFACE)
2285 MIDL_INTERFACE("56a8689a-0ad4-11ce-b03a-0020af0ba770")
2286 IMediaSample : public IUnknown
2287 {
2288     virtual HRESULT STDMETHODCALLTYPE GetPointer(
2289         BYTE **ppBuffer) = 0;
2290 
2291     virtual LONG STDMETHODCALLTYPE GetSize(
2292         ) = 0;
2293 
2294     virtual HRESULT STDMETHODCALLTYPE GetTime(
2295         REFERENCE_TIME *pTimeStart,
2296         REFERENCE_TIME *pTimeEnd) = 0;
2297 
2298     virtual HRESULT STDMETHODCALLTYPE SetTime(
2299         REFERENCE_TIME *pTimeStart,
2300         REFERENCE_TIME *pTimeEnd) = 0;
2301 
2302     virtual HRESULT STDMETHODCALLTYPE IsSyncPoint(
2303         ) = 0;
2304 
2305     virtual HRESULT STDMETHODCALLTYPE SetSyncPoint(
2306         WINBOOL bIsSyncPoint) = 0;
2307 
2308     virtual HRESULT STDMETHODCALLTYPE IsPreroll(
2309         ) = 0;
2310 
2311     virtual HRESULT STDMETHODCALLTYPE SetPreroll(
2312         WINBOOL bIsPreroll) = 0;
2313 
2314     virtual LONG STDMETHODCALLTYPE GetActualDataLength(
2315         ) = 0;
2316 
2317     virtual HRESULT STDMETHODCALLTYPE SetActualDataLength(
2318         LONG a) = 0;
2319 
2320     virtual HRESULT STDMETHODCALLTYPE GetMediaType(
2321         AM_MEDIA_TYPE **ppMediaType) = 0;
2322 
2323     virtual HRESULT STDMETHODCALLTYPE SetMediaType(
2324         AM_MEDIA_TYPE *pMediaType) = 0;
2325 
2326     virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity(
2327         ) = 0;
2328 
2329     virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity(
2330         WINBOOL bDiscontinuity) = 0;
2331 
2332     virtual HRESULT STDMETHODCALLTYPE GetMediaTime(
2333         LONGLONG *pTimeStart,
2334         LONGLONG *pTimeEnd) = 0;
2335 
2336     virtual HRESULT STDMETHODCALLTYPE SetMediaTime(
2337         LONGLONG *pTimeStart,
2338         LONGLONG *pTimeEnd) = 0;
2339 
2340 };
2341 #ifdef __CRT_UUID_DECL
2342 __CRT_UUID_DECL(IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
2343 #endif
2344 #else
2345 typedef struct IMediaSampleVtbl {
2346     BEGIN_INTERFACE
2347 
2348     /*** IUnknown methods ***/
2349     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2350         IMediaSample *This,
2351         REFIID riid,
2352         void **ppvObject);
2353 
2354     ULONG (STDMETHODCALLTYPE *AddRef)(
2355         IMediaSample *This);
2356 
2357     ULONG (STDMETHODCALLTYPE *Release)(
2358         IMediaSample *This);
2359 
2360     /*** IMediaSample methods ***/
2361     HRESULT (STDMETHODCALLTYPE *GetPointer)(
2362         IMediaSample *This,
2363         BYTE **ppBuffer);
2364 
2365     LONG (STDMETHODCALLTYPE *GetSize)(
2366         IMediaSample *This);
2367 
2368     HRESULT (STDMETHODCALLTYPE *GetTime)(
2369         IMediaSample *This,
2370         REFERENCE_TIME *pTimeStart,
2371         REFERENCE_TIME *pTimeEnd);
2372 
2373     HRESULT (STDMETHODCALLTYPE *SetTime)(
2374         IMediaSample *This,
2375         REFERENCE_TIME *pTimeStart,
2376         REFERENCE_TIME *pTimeEnd);
2377 
2378     HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
2379         IMediaSample *This);
2380 
2381     HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
2382         IMediaSample *This,
2383         WINBOOL bIsSyncPoint);
2384 
2385     HRESULT (STDMETHODCALLTYPE *IsPreroll)(
2386         IMediaSample *This);
2387 
2388     HRESULT (STDMETHODCALLTYPE *SetPreroll)(
2389         IMediaSample *This,
2390         WINBOOL bIsPreroll);
2391 
2392     LONG (STDMETHODCALLTYPE *GetActualDataLength)(
2393         IMediaSample *This);
2394 
2395     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
2396         IMediaSample *This,
2397         LONG a);
2398 
2399     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
2400         IMediaSample *This,
2401         AM_MEDIA_TYPE **ppMediaType);
2402 
2403     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
2404         IMediaSample *This,
2405         AM_MEDIA_TYPE *pMediaType);
2406 
2407     HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
2408         IMediaSample *This);
2409 
2410     HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
2411         IMediaSample *This,
2412         WINBOOL bDiscontinuity);
2413 
2414     HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
2415         IMediaSample *This,
2416         LONGLONG *pTimeStart,
2417         LONGLONG *pTimeEnd);
2418 
2419     HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
2420         IMediaSample *This,
2421         LONGLONG *pTimeStart,
2422         LONGLONG *pTimeEnd);
2423 
2424     END_INTERFACE
2425 } IMediaSampleVtbl;
2426 
2427 interface IMediaSample {
2428     CONST_VTBL IMediaSampleVtbl* lpVtbl;
2429 };
2430 
2431 #ifdef COBJMACROS
2432 #ifndef WIDL_C_INLINE_WRAPPERS
2433 /*** IUnknown methods ***/
2434 #define IMediaSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2435 #define IMediaSample_AddRef(This) (This)->lpVtbl->AddRef(This)
2436 #define IMediaSample_Release(This) (This)->lpVtbl->Release(This)
2437 /*** IMediaSample methods ***/
2438 #define IMediaSample_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
2439 #define IMediaSample_GetSize(This) (This)->lpVtbl->GetSize(This)
2440 #define IMediaSample_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
2441 #define IMediaSample_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
2442 #define IMediaSample_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
2443 #define IMediaSample_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
2444 #define IMediaSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
2445 #define IMediaSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
2446 #define IMediaSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
2447 #define IMediaSample_SetActualDataLength(This,a) (This)->lpVtbl->SetActualDataLength(This,a)
2448 #define IMediaSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
2449 #define IMediaSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
2450 #define IMediaSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
2451 #define IMediaSample_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
2452 #define IMediaSample_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
2453 #define IMediaSample_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
2454 #else
2455 /*** IUnknown methods ***/
2456 static FORCEINLINE HRESULT IMediaSample_QueryInterface(IMediaSample* This,REFIID riid,void **ppvObject) {
2457     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2458 }
2459 static FORCEINLINE ULONG IMediaSample_AddRef(IMediaSample* This) {
2460     return This->lpVtbl->AddRef(This);
2461 }
2462 static FORCEINLINE ULONG IMediaSample_Release(IMediaSample* This) {
2463     return This->lpVtbl->Release(This);
2464 }
2465 /*** IMediaSample methods ***/
2466 static FORCEINLINE HRESULT IMediaSample_GetPointer(IMediaSample* This,BYTE **ppBuffer) {
2467     return This->lpVtbl->GetPointer(This,ppBuffer);
2468 }
2469 static FORCEINLINE LONG IMediaSample_GetSize(IMediaSample* This) {
2470     return This->lpVtbl->GetSize(This);
2471 }
2472 static FORCEINLINE HRESULT IMediaSample_GetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2473     return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
2474 }
2475 static FORCEINLINE HRESULT IMediaSample_SetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2476     return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
2477 }
2478 static FORCEINLINE HRESULT IMediaSample_IsSyncPoint(IMediaSample* This) {
2479     return This->lpVtbl->IsSyncPoint(This);
2480 }
2481 static FORCEINLINE HRESULT IMediaSample_SetSyncPoint(IMediaSample* This,WINBOOL bIsSyncPoint) {
2482     return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
2483 }
2484 static FORCEINLINE HRESULT IMediaSample_IsPreroll(IMediaSample* This) {
2485     return This->lpVtbl->IsPreroll(This);
2486 }
2487 static FORCEINLINE HRESULT IMediaSample_SetPreroll(IMediaSample* This,WINBOOL bIsPreroll) {
2488     return This->lpVtbl->SetPreroll(This,bIsPreroll);
2489 }
2490 static FORCEINLINE LONG IMediaSample_GetActualDataLength(IMediaSample* This) {
2491     return This->lpVtbl->GetActualDataLength(This);
2492 }
2493 static FORCEINLINE HRESULT IMediaSample_SetActualDataLength(IMediaSample* This,LONG a) {
2494     return This->lpVtbl->SetActualDataLength(This,a);
2495 }
2496 static FORCEINLINE HRESULT IMediaSample_GetMediaType(IMediaSample* This,AM_MEDIA_TYPE **ppMediaType) {
2497     return This->lpVtbl->GetMediaType(This,ppMediaType);
2498 }
2499 static FORCEINLINE HRESULT IMediaSample_SetMediaType(IMediaSample* This,AM_MEDIA_TYPE *pMediaType) {
2500     return This->lpVtbl->SetMediaType(This,pMediaType);
2501 }
2502 static FORCEINLINE HRESULT IMediaSample_IsDiscontinuity(IMediaSample* This) {
2503     return This->lpVtbl->IsDiscontinuity(This);
2504 }
2505 static FORCEINLINE HRESULT IMediaSample_SetDiscontinuity(IMediaSample* This,WINBOOL bDiscontinuity) {
2506     return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
2507 }
2508 static FORCEINLINE HRESULT IMediaSample_GetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2509     return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
2510 }
2511 static FORCEINLINE HRESULT IMediaSample_SetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2512     return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
2513 }
2514 #endif
2515 #endif
2516 
2517 #endif
2518 
2519 
2520 #endif  /* __IMediaSample_INTERFACE_DEFINED__ */
2521 
2522 typedef IMediaSample *PMEDIASAMPLE;
2523 
2524 enum tagAM_SAMPLE_PROPERTY_FLAGS {
2525     AM_SAMPLE_SPLICEPOINT = 0x1,
2526     AM_SAMPLE_PREROLL = 0x2,
2527     AM_SAMPLE_DATADISCONTINUITY = 0x4,
2528     AM_SAMPLE_TYPECHANGED = 0x8,
2529     AM_SAMPLE_TIMEVALID = 0x10,
2530     AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
2531     AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
2532     AM_SAMPLE_STOPVALID = 0x100,
2533     AM_SAMPLE_ENDOFSTREAM = 0x200,
2534     AM_STREAM_MEDIA = 0,
2535     AM_STREAM_CONTROL = 1
2536 };
2537 
2538 typedef struct tagAM_SAMPLE2_PROPERTIES {
2539     DWORD cbData;
2540     DWORD dwTypeSpecificFlags;
2541     DWORD dwSampleFlags;
2542     LONG lActual;
2543     REFERENCE_TIME tStart;
2544     REFERENCE_TIME tStop;
2545     DWORD dwStreamId;
2546     AM_MEDIA_TYPE *pMediaType;
2547     BYTE *pbBuffer;
2548     LONG cbBuffer;
2549 } AM_SAMPLE2_PROPERTIES;
2550 
2551 /*****************************************************************************
2552  * IMediaSample2 interface
2553  */
2554 #ifndef __IMediaSample2_INTERFACE_DEFINED__
2555 #define __IMediaSample2_INTERFACE_DEFINED__
2556 
2557 DEFINE_GUID(IID_IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
2558 #if defined(__cplusplus) && !defined(CINTERFACE)
2559 MIDL_INTERFACE("36b73884-c2c8-11cf-8b46-00805f6cef60")
2560 IMediaSample2 : public IMediaSample
2561 {
2562     virtual HRESULT STDMETHODCALLTYPE GetProperties(
2563         DWORD cbProperties,
2564         BYTE *pbProperties) = 0;
2565 
2566     virtual HRESULT STDMETHODCALLTYPE SetProperties(
2567         DWORD cbProperties,
2568         const BYTE *pbProperties) = 0;
2569 
2570 };
2571 #ifdef __CRT_UUID_DECL
2572 __CRT_UUID_DECL(IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
2573 #endif
2574 #else
2575 typedef struct IMediaSample2Vtbl {
2576     BEGIN_INTERFACE
2577 
2578     /*** IUnknown methods ***/
2579     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2580         IMediaSample2 *This,
2581         REFIID riid,
2582         void **ppvObject);
2583 
2584     ULONG (STDMETHODCALLTYPE *AddRef)(
2585         IMediaSample2 *This);
2586 
2587     ULONG (STDMETHODCALLTYPE *Release)(
2588         IMediaSample2 *This);
2589 
2590     /*** IMediaSample methods ***/
2591     HRESULT (STDMETHODCALLTYPE *GetPointer)(
2592         IMediaSample2 *This,
2593         BYTE **ppBuffer);
2594 
2595     LONG (STDMETHODCALLTYPE *GetSize)(
2596         IMediaSample2 *This);
2597 
2598     HRESULT (STDMETHODCALLTYPE *GetTime)(
2599         IMediaSample2 *This,
2600         REFERENCE_TIME *pTimeStart,
2601         REFERENCE_TIME *pTimeEnd);
2602 
2603     HRESULT (STDMETHODCALLTYPE *SetTime)(
2604         IMediaSample2 *This,
2605         REFERENCE_TIME *pTimeStart,
2606         REFERENCE_TIME *pTimeEnd);
2607 
2608     HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
2609         IMediaSample2 *This);
2610 
2611     HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
2612         IMediaSample2 *This,
2613         WINBOOL bIsSyncPoint);
2614 
2615     HRESULT (STDMETHODCALLTYPE *IsPreroll)(
2616         IMediaSample2 *This);
2617 
2618     HRESULT (STDMETHODCALLTYPE *SetPreroll)(
2619         IMediaSample2 *This,
2620         WINBOOL bIsPreroll);
2621 
2622     LONG (STDMETHODCALLTYPE *GetActualDataLength)(
2623         IMediaSample2 *This);
2624 
2625     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
2626         IMediaSample2 *This,
2627         LONG a);
2628 
2629     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
2630         IMediaSample2 *This,
2631         AM_MEDIA_TYPE **ppMediaType);
2632 
2633     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
2634         IMediaSample2 *This,
2635         AM_MEDIA_TYPE *pMediaType);
2636 
2637     HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
2638         IMediaSample2 *This);
2639 
2640     HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
2641         IMediaSample2 *This,
2642         WINBOOL bDiscontinuity);
2643 
2644     HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
2645         IMediaSample2 *This,
2646         LONGLONG *pTimeStart,
2647         LONGLONG *pTimeEnd);
2648 
2649     HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
2650         IMediaSample2 *This,
2651         LONGLONG *pTimeStart,
2652         LONGLONG *pTimeEnd);
2653 
2654     /*** IMediaSample2 methods ***/
2655     HRESULT (STDMETHODCALLTYPE *GetProperties)(
2656         IMediaSample2 *This,
2657         DWORD cbProperties,
2658         BYTE *pbProperties);
2659 
2660     HRESULT (STDMETHODCALLTYPE *SetProperties)(
2661         IMediaSample2 *This,
2662         DWORD cbProperties,
2663         const BYTE *pbProperties);
2664 
2665     END_INTERFACE
2666 } IMediaSample2Vtbl;
2667 
2668 interface IMediaSample2 {
2669     CONST_VTBL IMediaSample2Vtbl* lpVtbl;
2670 };
2671 
2672 #ifdef COBJMACROS
2673 #ifndef WIDL_C_INLINE_WRAPPERS
2674 /*** IUnknown methods ***/
2675 #define IMediaSample2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2676 #define IMediaSample2_AddRef(This) (This)->lpVtbl->AddRef(This)
2677 #define IMediaSample2_Release(This) (This)->lpVtbl->Release(This)
2678 /*** IMediaSample methods ***/
2679 #define IMediaSample2_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
2680 #define IMediaSample2_GetSize(This) (This)->lpVtbl->GetSize(This)
2681 #define IMediaSample2_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
2682 #define IMediaSample2_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
2683 #define IMediaSample2_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
2684 #define IMediaSample2_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
2685 #define IMediaSample2_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
2686 #define IMediaSample2_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
2687 #define IMediaSample2_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
2688 #define IMediaSample2_SetActualDataLength(This,a) (This)->lpVtbl->SetActualDataLength(This,a)
2689 #define IMediaSample2_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
2690 #define IMediaSample2_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
2691 #define IMediaSample2_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
2692 #define IMediaSample2_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
2693 #define IMediaSample2_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
2694 #define IMediaSample2_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
2695 /*** IMediaSample2 methods ***/
2696 #define IMediaSample2_GetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->GetProperties(This,cbProperties,pbProperties)
2697 #define IMediaSample2_SetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->SetProperties(This,cbProperties,pbProperties)
2698 #else
2699 /*** IUnknown methods ***/
2700 static FORCEINLINE HRESULT IMediaSample2_QueryInterface(IMediaSample2* This,REFIID riid,void **ppvObject) {
2701     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2702 }
2703 static FORCEINLINE ULONG IMediaSample2_AddRef(IMediaSample2* This) {
2704     return This->lpVtbl->AddRef(This);
2705 }
2706 static FORCEINLINE ULONG IMediaSample2_Release(IMediaSample2* This) {
2707     return This->lpVtbl->Release(This);
2708 }
2709 /*** IMediaSample methods ***/
2710 static FORCEINLINE HRESULT IMediaSample2_GetPointer(IMediaSample2* This,BYTE **ppBuffer) {
2711     return This->lpVtbl->GetPointer(This,ppBuffer);
2712 }
2713 static FORCEINLINE LONG IMediaSample2_GetSize(IMediaSample2* This) {
2714     return This->lpVtbl->GetSize(This);
2715 }
2716 static FORCEINLINE HRESULT IMediaSample2_GetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2717     return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
2718 }
2719 static FORCEINLINE HRESULT IMediaSample2_SetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2720     return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
2721 }
2722 static FORCEINLINE HRESULT IMediaSample2_IsSyncPoint(IMediaSample2* This) {
2723     return This->lpVtbl->IsSyncPoint(This);
2724 }
2725 static FORCEINLINE HRESULT IMediaSample2_SetSyncPoint(IMediaSample2* This,WINBOOL bIsSyncPoint) {
2726     return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
2727 }
2728 static FORCEINLINE HRESULT IMediaSample2_IsPreroll(IMediaSample2* This) {
2729     return This->lpVtbl->IsPreroll(This);
2730 }
2731 static FORCEINLINE HRESULT IMediaSample2_SetPreroll(IMediaSample2* This,WINBOOL bIsPreroll) {
2732     return This->lpVtbl->SetPreroll(This,bIsPreroll);
2733 }
2734 static FORCEINLINE LONG IMediaSample2_GetActualDataLength(IMediaSample2* This) {
2735     return This->lpVtbl->GetActualDataLength(This);
2736 }
2737 static FORCEINLINE HRESULT IMediaSample2_SetActualDataLength(IMediaSample2* This,LONG a) {
2738     return This->lpVtbl->SetActualDataLength(This,a);
2739 }
2740 static FORCEINLINE HRESULT IMediaSample2_GetMediaType(IMediaSample2* This,AM_MEDIA_TYPE **ppMediaType) {
2741     return This->lpVtbl->GetMediaType(This,ppMediaType);
2742 }
2743 static FORCEINLINE HRESULT IMediaSample2_SetMediaType(IMediaSample2* This,AM_MEDIA_TYPE *pMediaType) {
2744     return This->lpVtbl->SetMediaType(This,pMediaType);
2745 }
2746 static FORCEINLINE HRESULT IMediaSample2_IsDiscontinuity(IMediaSample2* This) {
2747     return This->lpVtbl->IsDiscontinuity(This);
2748 }
2749 static FORCEINLINE HRESULT IMediaSample2_SetDiscontinuity(IMediaSample2* This,WINBOOL bDiscontinuity) {
2750     return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
2751 }
2752 static FORCEINLINE HRESULT IMediaSample2_GetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2753     return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
2754 }
2755 static FORCEINLINE HRESULT IMediaSample2_SetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2756     return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
2757 }
2758 /*** IMediaSample2 methods ***/
2759 static FORCEINLINE HRESULT IMediaSample2_GetProperties(IMediaSample2* This,DWORD cbProperties,BYTE *pbProperties) {
2760     return This->lpVtbl->GetProperties(This,cbProperties,pbProperties);
2761 }
2762 static FORCEINLINE HRESULT IMediaSample2_SetProperties(IMediaSample2* This,DWORD cbProperties,const BYTE *pbProperties) {
2763     return This->lpVtbl->SetProperties(This,cbProperties,pbProperties);
2764 }
2765 #endif
2766 #endif
2767 
2768 #endif
2769 
2770 
2771 #endif  /* __IMediaSample2_INTERFACE_DEFINED__ */
2772 
2773 typedef IMediaSample2 *PMEDIASAMPLE2;
2774 
2775 /*****************************************************************************
2776  * IMediaSample2Config interface
2777  */
2778 #ifndef __IMediaSample2Config_INTERFACE_DEFINED__
2779 #define __IMediaSample2Config_INTERFACE_DEFINED__
2780 
2781 DEFINE_GUID(IID_IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3);
2782 #if defined(__cplusplus) && !defined(CINTERFACE)
2783 MIDL_INTERFACE("68961e68-832b-41ea-bc91-63593f3e70e3")
2784 IMediaSample2Config : public IUnknown
2785 {
2786     virtual HRESULT STDMETHODCALLTYPE GetSurface(
2787         IUnknown **ppDirect3DSurface9) = 0;
2788 
2789 };
2790 #ifdef __CRT_UUID_DECL
2791 __CRT_UUID_DECL(IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3)
2792 #endif
2793 #else
2794 typedef struct IMediaSample2ConfigVtbl {
2795     BEGIN_INTERFACE
2796 
2797     /*** IUnknown methods ***/
2798     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2799         IMediaSample2Config *This,
2800         REFIID riid,
2801         void **ppvObject);
2802 
2803     ULONG (STDMETHODCALLTYPE *AddRef)(
2804         IMediaSample2Config *This);
2805 
2806     ULONG (STDMETHODCALLTYPE *Release)(
2807         IMediaSample2Config *This);
2808 
2809     /*** IMediaSample2Config methods ***/
2810     HRESULT (STDMETHODCALLTYPE *GetSurface)(
2811         IMediaSample2Config *This,
2812         IUnknown **ppDirect3DSurface9);
2813 
2814     END_INTERFACE
2815 } IMediaSample2ConfigVtbl;
2816 
2817 interface IMediaSample2Config {
2818     CONST_VTBL IMediaSample2ConfigVtbl* lpVtbl;
2819 };
2820 
2821 #ifdef COBJMACROS
2822 #ifndef WIDL_C_INLINE_WRAPPERS
2823 /*** IUnknown methods ***/
2824 #define IMediaSample2Config_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2825 #define IMediaSample2Config_AddRef(This) (This)->lpVtbl->AddRef(This)
2826 #define IMediaSample2Config_Release(This) (This)->lpVtbl->Release(This)
2827 /*** IMediaSample2Config methods ***/
2828 #define IMediaSample2Config_GetSurface(This,ppDirect3DSurface9) (This)->lpVtbl->GetSurface(This,ppDirect3DSurface9)
2829 #else
2830 /*** IUnknown methods ***/
2831 static FORCEINLINE HRESULT IMediaSample2Config_QueryInterface(IMediaSample2Config* This,REFIID riid,void **ppvObject) {
2832     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2833 }
2834 static FORCEINLINE ULONG IMediaSample2Config_AddRef(IMediaSample2Config* This) {
2835     return This->lpVtbl->AddRef(This);
2836 }
2837 static FORCEINLINE ULONG IMediaSample2Config_Release(IMediaSample2Config* This) {
2838     return This->lpVtbl->Release(This);
2839 }
2840 /*** IMediaSample2Config methods ***/
2841 static FORCEINLINE HRESULT IMediaSample2Config_GetSurface(IMediaSample2Config* This,IUnknown **ppDirect3DSurface9) {
2842     return This->lpVtbl->GetSurface(This,ppDirect3DSurface9);
2843 }
2844 #endif
2845 #endif
2846 
2847 #endif
2848 
2849 
2850 #endif  /* __IMediaSample2Config_INTERFACE_DEFINED__ */
2851 
2852 
2853 #define AM_GBF_PREVFRAMESKIPPED 1
2854 #define AM_GBF_NOTASYNCPOINT 2
2855 #define AM_GBF_NOWAIT 4
2856 #define AM_GBF_NODDSURFACELOCK 8
2857 
2858 /*****************************************************************************
2859  * IMemAllocator interface
2860  */
2861 #ifndef __IMemAllocator_INTERFACE_DEFINED__
2862 #define __IMemAllocator_INTERFACE_DEFINED__
2863 
2864 DEFINE_GUID(IID_IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
2865 #if defined(__cplusplus) && !defined(CINTERFACE)
2866 MIDL_INTERFACE("56a8689c-0ad4-11ce-b03a-0020af0ba770")
2867 IMemAllocator : public IUnknown
2868 {
2869     virtual HRESULT STDMETHODCALLTYPE SetProperties(
2870         ALLOCATOR_PROPERTIES *pRequest,
2871         ALLOCATOR_PROPERTIES *pActual) = 0;
2872 
2873     virtual HRESULT STDMETHODCALLTYPE GetProperties(
2874         ALLOCATOR_PROPERTIES *pProps) = 0;
2875 
2876     virtual HRESULT STDMETHODCALLTYPE Commit(
2877         ) = 0;
2878 
2879     virtual HRESULT STDMETHODCALLTYPE Decommit(
2880         ) = 0;
2881 
2882     virtual HRESULT STDMETHODCALLTYPE GetBuffer(
2883         IMediaSample **ppBuffer,
2884         REFERENCE_TIME *pStartTime,
2885         REFERENCE_TIME *pEndTime,
2886         DWORD dwFlags) = 0;
2887 
2888     virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
2889         IMediaSample *pBuffer) = 0;
2890 
2891 };
2892 #ifdef __CRT_UUID_DECL
2893 __CRT_UUID_DECL(IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
2894 #endif
2895 #else
2896 typedef struct IMemAllocatorVtbl {
2897     BEGIN_INTERFACE
2898 
2899     /*** IUnknown methods ***/
2900     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2901         IMemAllocator *This,
2902         REFIID riid,
2903         void **ppvObject);
2904 
2905     ULONG (STDMETHODCALLTYPE *AddRef)(
2906         IMemAllocator *This);
2907 
2908     ULONG (STDMETHODCALLTYPE *Release)(
2909         IMemAllocator *This);
2910 
2911     /*** IMemAllocator methods ***/
2912     HRESULT (STDMETHODCALLTYPE *SetProperties)(
2913         IMemAllocator *This,
2914         ALLOCATOR_PROPERTIES *pRequest,
2915         ALLOCATOR_PROPERTIES *pActual);
2916 
2917     HRESULT (STDMETHODCALLTYPE *GetProperties)(
2918         IMemAllocator *This,
2919         ALLOCATOR_PROPERTIES *pProps);
2920 
2921     HRESULT (STDMETHODCALLTYPE *Commit)(
2922         IMemAllocator *This);
2923 
2924     HRESULT (STDMETHODCALLTYPE *Decommit)(
2925         IMemAllocator *This);
2926 
2927     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2928         IMemAllocator *This,
2929         IMediaSample **ppBuffer,
2930         REFERENCE_TIME *pStartTime,
2931         REFERENCE_TIME *pEndTime,
2932         DWORD dwFlags);
2933 
2934     HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
2935         IMemAllocator *This,
2936         IMediaSample *pBuffer);
2937 
2938     END_INTERFACE
2939 } IMemAllocatorVtbl;
2940 
2941 interface IMemAllocator {
2942     CONST_VTBL IMemAllocatorVtbl* lpVtbl;
2943 };
2944 
2945 #ifdef COBJMACROS
2946 #ifndef WIDL_C_INLINE_WRAPPERS
2947 /*** IUnknown methods ***/
2948 #define IMemAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2949 #define IMemAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
2950 #define IMemAllocator_Release(This) (This)->lpVtbl->Release(This)
2951 /*** IMemAllocator methods ***/
2952 #define IMemAllocator_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
2953 #define IMemAllocator_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
2954 #define IMemAllocator_Commit(This) (This)->lpVtbl->Commit(This)
2955 #define IMemAllocator_Decommit(This) (This)->lpVtbl->Decommit(This)
2956 #define IMemAllocator_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
2957 #define IMemAllocator_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
2958 #else
2959 /*** IUnknown methods ***/
2960 static FORCEINLINE HRESULT IMemAllocator_QueryInterface(IMemAllocator* This,REFIID riid,void **ppvObject) {
2961     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2962 }
2963 static FORCEINLINE ULONG IMemAllocator_AddRef(IMemAllocator* This) {
2964     return This->lpVtbl->AddRef(This);
2965 }
2966 static FORCEINLINE ULONG IMemAllocator_Release(IMemAllocator* This) {
2967     return This->lpVtbl->Release(This);
2968 }
2969 /*** IMemAllocator methods ***/
2970 static FORCEINLINE HRESULT IMemAllocator_SetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
2971     return This->lpVtbl->SetProperties(This,pRequest,pActual);
2972 }
2973 static FORCEINLINE HRESULT IMemAllocator_GetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pProps) {
2974     return This->lpVtbl->GetProperties(This,pProps);
2975 }
2976 static FORCEINLINE HRESULT IMemAllocator_Commit(IMemAllocator* This) {
2977     return This->lpVtbl->Commit(This);
2978 }
2979 static FORCEINLINE HRESULT IMemAllocator_Decommit(IMemAllocator* This) {
2980     return This->lpVtbl->Decommit(This);
2981 }
2982 static FORCEINLINE HRESULT IMemAllocator_GetBuffer(IMemAllocator* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) {
2983     return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags);
2984 }
2985 static FORCEINLINE HRESULT IMemAllocator_ReleaseBuffer(IMemAllocator* This,IMediaSample *pBuffer) {
2986     return This->lpVtbl->ReleaseBuffer(This,pBuffer);
2987 }
2988 #endif
2989 #endif
2990 
2991 #endif
2992 
2993 
2994 #endif  /* __IMemAllocator_INTERFACE_DEFINED__ */
2995 
2996 typedef IMemAllocator *PMEMALLOCATOR;
2997 
2998 /*****************************************************************************
2999  * IMemAllocatorCallbackTemp interface
3000  */
3001 #ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
3002 #define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
3003 
3004 DEFINE_GUID(IID_IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
3005 #if defined(__cplusplus) && !defined(CINTERFACE)
3006 MIDL_INTERFACE("379a0cf0-c1de-11d2-abf5-00a0c905f375")
3007 IMemAllocatorCallbackTemp : public IMemAllocator
3008 {
3009     virtual HRESULT STDMETHODCALLTYPE SetNotify(
3010         IMemAllocatorNotifyCallbackTemp *pNotify) = 0;
3011 
3012     virtual HRESULT STDMETHODCALLTYPE GetFreeCount(
3013         LONG *plBuffersFree) = 0;
3014 
3015 };
3016 #ifdef __CRT_UUID_DECL
3017 __CRT_UUID_DECL(IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
3018 #endif
3019 #else
3020 typedef struct IMemAllocatorCallbackTempVtbl {
3021     BEGIN_INTERFACE
3022 
3023     /*** IUnknown methods ***/
3024     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3025         IMemAllocatorCallbackTemp *This,
3026         REFIID riid,
3027         void **ppvObject);
3028 
3029     ULONG (STDMETHODCALLTYPE *AddRef)(
3030         IMemAllocatorCallbackTemp *This);
3031 
3032     ULONG (STDMETHODCALLTYPE *Release)(
3033         IMemAllocatorCallbackTemp *This);
3034 
3035     /*** IMemAllocator methods ***/
3036     HRESULT (STDMETHODCALLTYPE *SetProperties)(
3037         IMemAllocatorCallbackTemp *This,
3038         ALLOCATOR_PROPERTIES *pRequest,
3039         ALLOCATOR_PROPERTIES *pActual);
3040 
3041     HRESULT (STDMETHODCALLTYPE *GetProperties)(
3042         IMemAllocatorCallbackTemp *This,
3043         ALLOCATOR_PROPERTIES *pProps);
3044 
3045     HRESULT (STDMETHODCALLTYPE *Commit)(
3046         IMemAllocatorCallbackTemp *This);
3047 
3048     HRESULT (STDMETHODCALLTYPE *Decommit)(
3049         IMemAllocatorCallbackTemp *This);
3050 
3051     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
3052         IMemAllocatorCallbackTemp *This,
3053         IMediaSample **ppBuffer,
3054         REFERENCE_TIME *pStartTime,
3055         REFERENCE_TIME *pEndTime,
3056         DWORD dwFlags);
3057 
3058     HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
3059         IMemAllocatorCallbackTemp *This,
3060         IMediaSample *pBuffer);
3061 
3062     /*** IMemAllocatorCallbackTemp methods ***/
3063     HRESULT (STDMETHODCALLTYPE *SetNotify)(
3064         IMemAllocatorCallbackTemp *This,
3065         IMemAllocatorNotifyCallbackTemp *pNotify);
3066 
3067     HRESULT (STDMETHODCALLTYPE *GetFreeCount)(
3068         IMemAllocatorCallbackTemp *This,
3069         LONG *plBuffersFree);
3070 
3071     END_INTERFACE
3072 } IMemAllocatorCallbackTempVtbl;
3073 
3074 interface IMemAllocatorCallbackTemp {
3075     CONST_VTBL IMemAllocatorCallbackTempVtbl* lpVtbl;
3076 };
3077 
3078 #ifdef COBJMACROS
3079 #ifndef WIDL_C_INLINE_WRAPPERS
3080 /*** IUnknown methods ***/
3081 #define IMemAllocatorCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3082 #define IMemAllocatorCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
3083 #define IMemAllocatorCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
3084 /*** IMemAllocator methods ***/
3085 #define IMemAllocatorCallbackTemp_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
3086 #define IMemAllocatorCallbackTemp_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
3087 #define IMemAllocatorCallbackTemp_Commit(This) (This)->lpVtbl->Commit(This)
3088 #define IMemAllocatorCallbackTemp_Decommit(This) (This)->lpVtbl->Decommit(This)
3089 #define IMemAllocatorCallbackTemp_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
3090 #define IMemAllocatorCallbackTemp_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
3091 /*** IMemAllocatorCallbackTemp methods ***/
3092 #define IMemAllocatorCallbackTemp_SetNotify(This,pNotify) (This)->lpVtbl->SetNotify(This,pNotify)
3093 #define IMemAllocatorCallbackTemp_GetFreeCount(This,plBuffersFree) (This)->lpVtbl->GetFreeCount(This,plBuffersFree)
3094 #else
3095 /*** IUnknown methods ***/
3096 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_QueryInterface(IMemAllocatorCallbackTemp* This,REFIID riid,void **ppvObject) {
3097     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3098 }
3099 static FORCEINLINE ULONG IMemAllocatorCallbackTemp_AddRef(IMemAllocatorCallbackTemp* This) {
3100     return This->lpVtbl->AddRef(This);
3101 }
3102 static FORCEINLINE ULONG IMemAllocatorCallbackTemp_Release(IMemAllocatorCallbackTemp* This) {
3103     return This->lpVtbl->Release(This);
3104 }
3105 /*** IMemAllocator methods ***/
3106 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_SetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
3107     return This->lpVtbl->SetProperties(This,pRequest,pActual);
3108 }
3109 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pProps) {
3110     return This->lpVtbl->GetProperties(This,pProps);
3111 }
3112 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_Commit(IMemAllocatorCallbackTemp* This) {
3113     return This->lpVtbl->Commit(This);
3114 }
3115 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_Decommit(IMemAllocatorCallbackTemp* This) {
3116     return This->lpVtbl->Decommit(This);
3117 }
3118 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetBuffer(IMemAllocatorCallbackTemp* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) {
3119     return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags);
3120 }
3121 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_ReleaseBuffer(IMemAllocatorCallbackTemp* This,IMediaSample *pBuffer) {
3122     return This->lpVtbl->ReleaseBuffer(This,pBuffer);
3123 }
3124 /*** IMemAllocatorCallbackTemp methods ***/
3125 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_SetNotify(IMemAllocatorCallbackTemp* This,IMemAllocatorNotifyCallbackTemp *pNotify) {
3126     return This->lpVtbl->SetNotify(This,pNotify);
3127 }
3128 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetFreeCount(IMemAllocatorCallbackTemp* This,LONG *plBuffersFree) {
3129     return This->lpVtbl->GetFreeCount(This,plBuffersFree);
3130 }
3131 #endif
3132 #endif
3133 
3134 #endif
3135 
3136 
3137 #endif  /* __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ */
3138 
3139 
3140 /*****************************************************************************
3141  * IMemAllocatorNotifyCallbackTemp interface
3142  */
3143 #ifndef __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
3144 #define __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
3145 
3146 DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
3147 #if defined(__cplusplus) && !defined(CINTERFACE)
3148 MIDL_INTERFACE("92980b30-c1de-11d2-abf5-00a0c905f375")
3149 IMemAllocatorNotifyCallbackTemp : public IUnknown
3150 {
3151     virtual HRESULT STDMETHODCALLTYPE NotifyRelease(
3152         ) = 0;
3153 
3154 };
3155 #ifdef __CRT_UUID_DECL
3156 __CRT_UUID_DECL(IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
3157 #endif
3158 #else
3159 typedef struct IMemAllocatorNotifyCallbackTempVtbl {
3160     BEGIN_INTERFACE
3161 
3162     /*** IUnknown methods ***/
3163     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3164         IMemAllocatorNotifyCallbackTemp *This,
3165         REFIID riid,
3166         void **ppvObject);
3167 
3168     ULONG (STDMETHODCALLTYPE *AddRef)(
3169         IMemAllocatorNotifyCallbackTemp *This);
3170 
3171     ULONG (STDMETHODCALLTYPE *Release)(
3172         IMemAllocatorNotifyCallbackTemp *This);
3173 
3174     /*** IMemAllocatorNotifyCallbackTemp methods ***/
3175     HRESULT (STDMETHODCALLTYPE *NotifyRelease)(
3176         IMemAllocatorNotifyCallbackTemp *This);
3177 
3178     END_INTERFACE
3179 } IMemAllocatorNotifyCallbackTempVtbl;
3180 
3181 interface IMemAllocatorNotifyCallbackTemp {
3182     CONST_VTBL IMemAllocatorNotifyCallbackTempVtbl* lpVtbl;
3183 };
3184 
3185 #ifdef COBJMACROS
3186 #ifndef WIDL_C_INLINE_WRAPPERS
3187 /*** IUnknown methods ***/
3188 #define IMemAllocatorNotifyCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3189 #define IMemAllocatorNotifyCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
3190 #define IMemAllocatorNotifyCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
3191 /*** IMemAllocatorNotifyCallbackTemp methods ***/
3192 #define IMemAllocatorNotifyCallbackTemp_NotifyRelease(This) (This)->lpVtbl->NotifyRelease(This)
3193 #else
3194 /*** IUnknown methods ***/
3195 static FORCEINLINE HRESULT IMemAllocatorNotifyCallbackTemp_QueryInterface(IMemAllocatorNotifyCallbackTemp* This,REFIID riid,void **ppvObject) {
3196     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3197 }
3198 static FORCEINLINE ULONG IMemAllocatorNotifyCallbackTemp_AddRef(IMemAllocatorNotifyCallbackTemp* This) {
3199     return This->lpVtbl->AddRef(This);
3200 }
3201 static FORCEINLINE ULONG IMemAllocatorNotifyCallbackTemp_Release(IMemAllocatorNotifyCallbackTemp* This) {
3202     return This->lpVtbl->Release(This);
3203 }
3204 /*** IMemAllocatorNotifyCallbackTemp methods ***/
3205 static FORCEINLINE HRESULT IMemAllocatorNotifyCallbackTemp_NotifyRelease(IMemAllocatorNotifyCallbackTemp* This) {
3206     return This->lpVtbl->NotifyRelease(This);
3207 }
3208 #endif
3209 #endif
3210 
3211 #endif
3212 
3213 
3214 #endif  /* __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ */
3215 
3216 
3217 /*****************************************************************************
3218  * IMemInputPin interface
3219  */
3220 #ifndef __IMemInputPin_INTERFACE_DEFINED__
3221 #define __IMemInputPin_INTERFACE_DEFINED__
3222 
3223 DEFINE_GUID(IID_IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
3224 #if defined(__cplusplus) && !defined(CINTERFACE)
3225 MIDL_INTERFACE("56a8689d-0ad4-11ce-b03a-0020af0ba770")
3226 IMemInputPin : public IUnknown
3227 {
3228     virtual HRESULT STDMETHODCALLTYPE GetAllocator(
3229         IMemAllocator **ppAllocator) = 0;
3230 
3231     virtual HRESULT STDMETHODCALLTYPE NotifyAllocator(
3232         IMemAllocator *pAllocator,
3233         WINBOOL bReadOnly) = 0;
3234 
3235     virtual HRESULT STDMETHODCALLTYPE GetAllocatorRequirements(
3236         ALLOCATOR_PROPERTIES *pProps) = 0;
3237 
3238     virtual HRESULT STDMETHODCALLTYPE Receive(
3239         IMediaSample *pSample) = 0;
3240 
3241     virtual HRESULT STDMETHODCALLTYPE ReceiveMultiple(
3242         IMediaSample **pSamples,
3243         LONG nSamples,
3244         LONG *nSamplesProcessed) = 0;
3245 
3246     virtual HRESULT STDMETHODCALLTYPE ReceiveCanBlock(
3247         ) = 0;
3248 
3249 };
3250 #ifdef __CRT_UUID_DECL
3251 __CRT_UUID_DECL(IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
3252 #endif
3253 #else
3254 typedef struct IMemInputPinVtbl {
3255     BEGIN_INTERFACE
3256 
3257     /*** IUnknown methods ***/
3258     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3259         IMemInputPin *This,
3260         REFIID riid,
3261         void **ppvObject);
3262 
3263     ULONG (STDMETHODCALLTYPE *AddRef)(
3264         IMemInputPin *This);
3265 
3266     ULONG (STDMETHODCALLTYPE *Release)(
3267         IMemInputPin *This);
3268 
3269     /*** IMemInputPin methods ***/
3270     HRESULT (STDMETHODCALLTYPE *GetAllocator)(
3271         IMemInputPin *This,
3272         IMemAllocator **ppAllocator);
3273 
3274     HRESULT (STDMETHODCALLTYPE *NotifyAllocator)(
3275         IMemInputPin *This,
3276         IMemAllocator *pAllocator,
3277         WINBOOL bReadOnly);
3278 
3279     HRESULT (STDMETHODCALLTYPE *GetAllocatorRequirements)(
3280         IMemInputPin *This,
3281         ALLOCATOR_PROPERTIES *pProps);
3282 
3283     HRESULT (STDMETHODCALLTYPE *Receive)(
3284         IMemInputPin *This,
3285         IMediaSample *pSample);
3286 
3287     HRESULT (STDMETHODCALLTYPE *ReceiveMultiple)(
3288         IMemInputPin *This,
3289         IMediaSample **pSamples,
3290         LONG nSamples,
3291         LONG *nSamplesProcessed);
3292 
3293     HRESULT (STDMETHODCALLTYPE *ReceiveCanBlock)(
3294         IMemInputPin *This);
3295 
3296     END_INTERFACE
3297 } IMemInputPinVtbl;
3298 
3299 interface IMemInputPin {
3300     CONST_VTBL IMemInputPinVtbl* lpVtbl;
3301 };
3302 
3303 #ifdef COBJMACROS
3304 #ifndef WIDL_C_INLINE_WRAPPERS
3305 /*** IUnknown methods ***/
3306 #define IMemInputPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3307 #define IMemInputPin_AddRef(This) (This)->lpVtbl->AddRef(This)
3308 #define IMemInputPin_Release(This) (This)->lpVtbl->Release(This)
3309 /*** IMemInputPin methods ***/
3310 #define IMemInputPin_GetAllocator(This,ppAllocator) (This)->lpVtbl->GetAllocator(This,ppAllocator)
3311 #define IMemInputPin_NotifyAllocator(This,pAllocator,bReadOnly) (This)->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly)
3312 #define IMemInputPin_GetAllocatorRequirements(This,pProps) (This)->lpVtbl->GetAllocatorRequirements(This,pProps)
3313 #define IMemInputPin_Receive(This,pSample) (This)->lpVtbl->Receive(This,pSample)
3314 #define IMemInputPin_ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed) (This)->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed)
3315 #define IMemInputPin_ReceiveCanBlock(This) (This)->lpVtbl->ReceiveCanBlock(This)
3316 #else
3317 /*** IUnknown methods ***/
3318 static FORCEINLINE HRESULT IMemInputPin_QueryInterface(IMemInputPin* This,REFIID riid,void **ppvObject) {
3319     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3320 }
3321 static FORCEINLINE ULONG IMemInputPin_AddRef(IMemInputPin* This) {
3322     return This->lpVtbl->AddRef(This);
3323 }
3324 static FORCEINLINE ULONG IMemInputPin_Release(IMemInputPin* This) {
3325     return This->lpVtbl->Release(This);
3326 }
3327 /*** IMemInputPin methods ***/
3328 static FORCEINLINE HRESULT IMemInputPin_GetAllocator(IMemInputPin* This,IMemAllocator **ppAllocator) {
3329     return This->lpVtbl->GetAllocator(This,ppAllocator);
3330 }
3331 static FORCEINLINE HRESULT IMemInputPin_NotifyAllocator(IMemInputPin* This,IMemAllocator *pAllocator,WINBOOL bReadOnly) {
3332     return This->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly);
3333 }
3334 static FORCEINLINE HRESULT IMemInputPin_GetAllocatorRequirements(IMemInputPin* This,ALLOCATOR_PROPERTIES *pProps) {
3335     return This->lpVtbl->GetAllocatorRequirements(This,pProps);
3336 }
3337 static FORCEINLINE HRESULT IMemInputPin_Receive(IMemInputPin* This,IMediaSample *pSample) {
3338     return This->lpVtbl->Receive(This,pSample);
3339 }
3340 static FORCEINLINE HRESULT IMemInputPin_ReceiveMultiple(IMemInputPin* This,IMediaSample **pSamples,LONG nSamples,LONG *nSamplesProcessed) {
3341     return This->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed);
3342 }
3343 static FORCEINLINE HRESULT IMemInputPin_ReceiveCanBlock(IMemInputPin* This) {
3344     return This->lpVtbl->ReceiveCanBlock(This);
3345 }
3346 #endif
3347 #endif
3348 
3349 #endif
3350 
3351 
3352 #endif  /* __IMemInputPin_INTERFACE_DEFINED__ */
3353 
3354 typedef IMemInputPin *PMEMINPUTPIN;
3355 
3356 /*****************************************************************************
3357  * IAMovieSetup interface
3358  */
3359 #ifndef __IAMovieSetup_INTERFACE_DEFINED__
3360 #define __IAMovieSetup_INTERFACE_DEFINED__
3361 
3362 DEFINE_GUID(IID_IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20);
3363 #if defined(__cplusplus) && !defined(CINTERFACE)
3364 MIDL_INTERFACE("a3d8cec0-7e5a-11cf-bbc5-00805f6cef20")
3365 IAMovieSetup : public IUnknown
3366 {
3367     virtual HRESULT STDMETHODCALLTYPE Register(
3368         ) = 0;
3369 
3370     virtual HRESULT STDMETHODCALLTYPE Unregister(
3371         ) = 0;
3372 
3373 };
3374 #ifdef __CRT_UUID_DECL
3375 __CRT_UUID_DECL(IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20)
3376 #endif
3377 #else
3378 typedef struct IAMovieSetupVtbl {
3379     BEGIN_INTERFACE
3380 
3381     /*** IUnknown methods ***/
3382     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3383         IAMovieSetup *This,
3384         REFIID riid,
3385         void **ppvObject);
3386 
3387     ULONG (STDMETHODCALLTYPE *AddRef)(
3388         IAMovieSetup *This);
3389 
3390     ULONG (STDMETHODCALLTYPE *Release)(
3391         IAMovieSetup *This);
3392 
3393     /*** IAMovieSetup methods ***/
3394     HRESULT (STDMETHODCALLTYPE *Register)(
3395         IAMovieSetup *This);
3396 
3397     HRESULT (STDMETHODCALLTYPE *Unregister)(
3398         IAMovieSetup *This);
3399 
3400     END_INTERFACE
3401 } IAMovieSetupVtbl;
3402 
3403 interface IAMovieSetup {
3404     CONST_VTBL IAMovieSetupVtbl* lpVtbl;
3405 };
3406 
3407 #ifdef COBJMACROS
3408 #ifndef WIDL_C_INLINE_WRAPPERS
3409 /*** IUnknown methods ***/
3410 #define IAMovieSetup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3411 #define IAMovieSetup_AddRef(This) (This)->lpVtbl->AddRef(This)
3412 #define IAMovieSetup_Release(This) (This)->lpVtbl->Release(This)
3413 /*** IAMovieSetup methods ***/
3414 #define IAMovieSetup_Register(This) (This)->lpVtbl->Register(This)
3415 #define IAMovieSetup_Unregister(This) (This)->lpVtbl->Unregister(This)
3416 #else
3417 /*** IUnknown methods ***/
3418 static FORCEINLINE HRESULT IAMovieSetup_QueryInterface(IAMovieSetup* This,REFIID riid,void **ppvObject) {
3419     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3420 }
3421 static FORCEINLINE ULONG IAMovieSetup_AddRef(IAMovieSetup* This) {
3422     return This->lpVtbl->AddRef(This);
3423 }
3424 static FORCEINLINE ULONG IAMovieSetup_Release(IAMovieSetup* This) {
3425     return This->lpVtbl->Release(This);
3426 }
3427 /*** IAMovieSetup methods ***/
3428 static FORCEINLINE HRESULT IAMovieSetup_Register(IAMovieSetup* This) {
3429     return This->lpVtbl->Register(This);
3430 }
3431 static FORCEINLINE HRESULT IAMovieSetup_Unregister(IAMovieSetup* This) {
3432     return This->lpVtbl->Unregister(This);
3433 }
3434 #endif
3435 #endif
3436 
3437 #endif
3438 
3439 
3440 #endif  /* __IAMovieSetup_INTERFACE_DEFINED__ */
3441 
3442 typedef IAMovieSetup *PAMOVIESETUP;
3443 
3444 typedef enum AM_SEEKING_SeekingFlags {
3445     AM_SEEKING_NoPositioning = 0x0,
3446     AM_SEEKING_AbsolutePositioning = 0x1,
3447     AM_SEEKING_RelativePositioning = 0x2,
3448     AM_SEEKING_IncrementalPositioning = 0x3,
3449     AM_SEEKING_PositioningBitsMask = 0x3,
3450     AM_SEEKING_SeekToKeyFrame = 0x4,
3451     AM_SEEKING_ReturnTime = 0x8,
3452     AM_SEEKING_Segment = 0x10,
3453     AM_SEEKING_NoFlush = 0x20
3454 } AM_SEEKING_SEEKING_FLAGS;
3455 
3456 typedef enum AM_SEEKING_SeekingCapabilities {
3457     AM_SEEKING_CanSeekAbsolute = 0x1,
3458     AM_SEEKING_CanSeekForwards = 0x2,
3459     AM_SEEKING_CanSeekBackwards = 0x4,
3460     AM_SEEKING_CanGetCurrentPos = 0x8,
3461     AM_SEEKING_CanGetStopPos = 0x10,
3462     AM_SEEKING_CanGetDuration = 0x20,
3463     AM_SEEKING_CanPlayBackwards = 0x40,
3464     AM_SEEKING_CanDoSegments = 0x80,
3465     AM_SEEKING_Source = 0x100
3466 } AM_SEEKING_SEEKING_CAPABILITIES;
3467 
3468 /*****************************************************************************
3469  * IMediaSeeking interface
3470  */
3471 #ifndef __IMediaSeeking_INTERFACE_DEFINED__
3472 #define __IMediaSeeking_INTERFACE_DEFINED__
3473 
3474 DEFINE_GUID(IID_IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
3475 #if defined(__cplusplus) && !defined(CINTERFACE)
3476 MIDL_INTERFACE("36b73880-c2c8-11cf-8b46-00805f6cef60")
3477 IMediaSeeking : public IUnknown
3478 {
3479     virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
3480         DWORD *pCapabilities) = 0;
3481 
3482     virtual HRESULT STDMETHODCALLTYPE CheckCapabilities(
3483         DWORD *pCapabilities) = 0;
3484 
3485     virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
3486         const GUID *pFormat) = 0;
3487 
3488     virtual HRESULT STDMETHODCALLTYPE QueryPreferredFormat(
3489         GUID *pFormat) = 0;
3490 
3491     virtual HRESULT STDMETHODCALLTYPE GetTimeFormat(
3492         GUID *pFormat) = 0;
3493 
3494     virtual HRESULT STDMETHODCALLTYPE IsUsingTimeFormat(
3495         const GUID *pFormat) = 0;
3496 
3497     virtual HRESULT STDMETHODCALLTYPE SetTimeFormat(
3498         const GUID *pFormat) = 0;
3499 
3500     virtual HRESULT STDMETHODCALLTYPE GetDuration(
3501         LONGLONG *pDuration) = 0;
3502 
3503     virtual HRESULT STDMETHODCALLTYPE GetStopPosition(
3504         LONGLONG *pStop) = 0;
3505 
3506     virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(
3507         LONGLONG *pCurrent) = 0;
3508 
3509     virtual HRESULT STDMETHODCALLTYPE ConvertTimeFormat(
3510         LONGLONG *pTarget,
3511         const GUID *pTargetFormat,
3512         LONGLONG Source,
3513         const GUID *pSourceFormat) = 0;
3514 
3515     virtual HRESULT STDMETHODCALLTYPE SetPositions(
3516         LONGLONG *pCurrent,
3517         DWORD dwCurrentFlags,
3518         LONGLONG *pStop,
3519         DWORD dwStopFlags) = 0;
3520 
3521     virtual HRESULT STDMETHODCALLTYPE GetPositions(
3522         LONGLONG *pCurrent,
3523         LONGLONG *pStop) = 0;
3524 
3525     virtual HRESULT STDMETHODCALLTYPE GetAvailable(
3526         LONGLONG *pEarliest,
3527         LONGLONG *pLatest) = 0;
3528 
3529     virtual HRESULT STDMETHODCALLTYPE SetRate(
3530         double dRate) = 0;
3531 
3532     virtual HRESULT STDMETHODCALLTYPE GetRate(
3533         double *pdRate) = 0;
3534 
3535     virtual HRESULT STDMETHODCALLTYPE GetPreroll(
3536         LONGLONG *pllPreroll) = 0;
3537 
3538 };
3539 #ifdef __CRT_UUID_DECL
3540 __CRT_UUID_DECL(IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
3541 #endif
3542 #else
3543 typedef struct IMediaSeekingVtbl {
3544     BEGIN_INTERFACE
3545 
3546     /*** IUnknown methods ***/
3547     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3548         IMediaSeeking *This,
3549         REFIID riid,
3550         void **ppvObject);
3551 
3552     ULONG (STDMETHODCALLTYPE *AddRef)(
3553         IMediaSeeking *This);
3554 
3555     ULONG (STDMETHODCALLTYPE *Release)(
3556         IMediaSeeking *This);
3557 
3558     /*** IMediaSeeking methods ***/
3559     HRESULT (STDMETHODCALLTYPE *GetCapabilities)(
3560         IMediaSeeking *This,
3561         DWORD *pCapabilities);
3562 
3563     HRESULT (STDMETHODCALLTYPE *CheckCapabilities)(
3564         IMediaSeeking *This,
3565         DWORD *pCapabilities);
3566 
3567     HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
3568         IMediaSeeking *This,
3569         const GUID *pFormat);
3570 
3571     HRESULT (STDMETHODCALLTYPE *QueryPreferredFormat)(
3572         IMediaSeeking *This,
3573         GUID *pFormat);
3574 
3575     HRESULT (STDMETHODCALLTYPE *GetTimeFormat)(
3576         IMediaSeeking *This,
3577         GUID *pFormat);
3578 
3579     HRESULT (STDMETHODCALLTYPE *IsUsingTimeFormat)(
3580         IMediaSeeking *This,
3581         const GUID *pFormat);
3582 
3583     HRESULT (STDMETHODCALLTYPE *SetTimeFormat)(
3584         IMediaSeeking *This,
3585         const GUID *pFormat);
3586 
3587     HRESULT (STDMETHODCALLTYPE *GetDuration)(
3588         IMediaSeeking *This,
3589         LONGLONG *pDuration);
3590 
3591     HRESULT (STDMETHODCALLTYPE *GetStopPosition)(
3592         IMediaSeeking *This,
3593         LONGLONG *pStop);
3594 
3595     HRESULT (STDMETHODCALLTYPE *GetCurrentPosition)(
3596         IMediaSeeking *This,
3597         LONGLONG *pCurrent);
3598 
3599     HRESULT (STDMETHODCALLTYPE *ConvertTimeFormat)(
3600         IMediaSeeking *This,
3601         LONGLONG *pTarget,
3602         const GUID *pTargetFormat,
3603         LONGLONG Source,
3604         const GUID *pSourceFormat);
3605 
3606     HRESULT (STDMETHODCALLTYPE *SetPositions)(
3607         IMediaSeeking *This,
3608         LONGLONG *pCurrent,
3609         DWORD dwCurrentFlags,
3610         LONGLONG *pStop,
3611         DWORD dwStopFlags);
3612 
3613     HRESULT (STDMETHODCALLTYPE *GetPositions)(
3614         IMediaSeeking *This,
3615         LONGLONG *pCurrent,
3616         LONGLONG *pStop);
3617 
3618     HRESULT (STDMETHODCALLTYPE *GetAvailable)(
3619         IMediaSeeking *This,
3620         LONGLONG *pEarliest,
3621         LONGLONG *pLatest);
3622 
3623     HRESULT (STDMETHODCALLTYPE *SetRate)(
3624         IMediaSeeking *This,
3625         double dRate);
3626 
3627     HRESULT (STDMETHODCALLTYPE *GetRate)(
3628         IMediaSeeking *This,
3629         double *pdRate);
3630 
3631     HRESULT (STDMETHODCALLTYPE *GetPreroll)(
3632         IMediaSeeking *This,
3633         LONGLONG *pllPreroll);
3634 
3635     END_INTERFACE
3636 } IMediaSeekingVtbl;
3637 
3638 interface IMediaSeeking {
3639     CONST_VTBL IMediaSeekingVtbl* lpVtbl;
3640 };
3641 
3642 #ifdef COBJMACROS
3643 #ifndef WIDL_C_INLINE_WRAPPERS
3644 /*** IUnknown methods ***/
3645 #define IMediaSeeking_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3646 #define IMediaSeeking_AddRef(This) (This)->lpVtbl->AddRef(This)
3647 #define IMediaSeeking_Release(This) (This)->lpVtbl->Release(This)
3648 /*** IMediaSeeking methods ***/
3649 #define IMediaSeeking_GetCapabilities(This,pCapabilities) (This)->lpVtbl->GetCapabilities(This,pCapabilities)
3650 #define IMediaSeeking_CheckCapabilities(This,pCapabilities) (This)->lpVtbl->CheckCapabilities(This,pCapabilities)
3651 #define IMediaSeeking_IsFormatSupported(This,pFormat) (This)->lpVtbl->IsFormatSupported(This,pFormat)
3652 #define IMediaSeeking_QueryPreferredFormat(This,pFormat) (This)->lpVtbl->QueryPreferredFormat(This,pFormat)
3653 #define IMediaSeeking_GetTimeFormat(This,pFormat) (This)->lpVtbl->GetTimeFormat(This,pFormat)
3654 #define IMediaSeeking_IsUsingTimeFormat(This,pFormat) (This)->lpVtbl->IsUsingTimeFormat(This,pFormat)
3655 #define IMediaSeeking_SetTimeFormat(This,pFormat) (This)->lpVtbl->SetTimeFormat(This,pFormat)
3656 #define IMediaSeeking_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration)
3657 #define IMediaSeeking_GetStopPosition(This,pStop) (This)->lpVtbl->GetStopPosition(This,pStop)
3658 #define IMediaSeeking_GetCurrentPosition(This,pCurrent) (This)->lpVtbl->GetCurrentPosition(This,pCurrent)
3659 #define IMediaSeeking_ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat) (This)->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat)
3660 #define IMediaSeeking_SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags) (This)->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags)
3661 #define IMediaSeeking_GetPositions(This,pCurrent,pStop) (This)->lpVtbl->GetPositions(This,pCurrent,pStop)
3662 #define IMediaSeeking_GetAvailable(This,pEarliest,pLatest) (This)->lpVtbl->GetAvailable(This,pEarliest,pLatest)
3663 #define IMediaSeeking_SetRate(This,dRate) (This)->lpVtbl->SetRate(This,dRate)
3664 #define IMediaSeeking_GetRate(This,pdRate) (This)->lpVtbl->GetRate(This,pdRate)
3665 #define IMediaSeeking_GetPreroll(This,pllPreroll) (This)->lpVtbl->GetPreroll(This,pllPreroll)
3666 #else
3667 /*** IUnknown methods ***/
3668 static FORCEINLINE HRESULT IMediaSeeking_QueryInterface(IMediaSeeking* This,REFIID riid,void **ppvObject) {
3669     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3670 }
3671 static FORCEINLINE ULONG IMediaSeeking_AddRef(IMediaSeeking* This) {
3672     return This->lpVtbl->AddRef(This);
3673 }
3674 static FORCEINLINE ULONG IMediaSeeking_Release(IMediaSeeking* This) {
3675     return This->lpVtbl->Release(This);
3676 }
3677 /*** IMediaSeeking methods ***/
3678 static FORCEINLINE HRESULT IMediaSeeking_GetCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
3679     return This->lpVtbl->GetCapabilities(This,pCapabilities);
3680 }
3681 static FORCEINLINE HRESULT IMediaSeeking_CheckCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
3682     return This->lpVtbl->CheckCapabilities(This,pCapabilities);
3683 }
3684 static FORCEINLINE HRESULT IMediaSeeking_IsFormatSupported(IMediaSeeking* This,const GUID *pFormat) {
3685     return This->lpVtbl->IsFormatSupported(This,pFormat);
3686 }
3687 static FORCEINLINE HRESULT IMediaSeeking_QueryPreferredFormat(IMediaSeeking* This,GUID *pFormat) {
3688     return This->lpVtbl->QueryPreferredFormat(This,pFormat);
3689 }
3690 static FORCEINLINE HRESULT IMediaSeeking_GetTimeFormat(IMediaSeeking* This,GUID *pFormat) {
3691     return This->lpVtbl->GetTimeFormat(This,pFormat);
3692 }
3693 static FORCEINLINE HRESULT IMediaSeeking_IsUsingTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
3694     return This->lpVtbl->IsUsingTimeFormat(This,pFormat);
3695 }
3696 static FORCEINLINE HRESULT IMediaSeeking_SetTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
3697     return This->lpVtbl->SetTimeFormat(This,pFormat);
3698 }
3699 static FORCEINLINE HRESULT IMediaSeeking_GetDuration(IMediaSeeking* This,LONGLONG *pDuration) {
3700     return This->lpVtbl->GetDuration(This,pDuration);
3701 }
3702 static FORCEINLINE HRESULT IMediaSeeking_GetStopPosition(IMediaSeeking* This,LONGLONG *pStop) {
3703     return This->lpVtbl->GetStopPosition(This,pStop);
3704 }
3705 static FORCEINLINE HRESULT IMediaSeeking_GetCurrentPosition(IMediaSeeking* This,LONGLONG *pCurrent) {
3706     return This->lpVtbl->GetCurrentPosition(This,pCurrent);
3707 }
3708 static FORCEINLINE HRESULT IMediaSeeking_ConvertTimeFormat(IMediaSeeking* This,LONGLONG *pTarget,const GUID *pTargetFormat,LONGLONG Source,const GUID *pSourceFormat) {
3709     return This->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat);
3710 }
3711 static FORCEINLINE HRESULT IMediaSeeking_SetPositions(IMediaSeeking* This,LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags) {
3712     return This->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags);
3713 }
3714 static FORCEINLINE HRESULT IMediaSeeking_GetPositions(IMediaSeeking* This,LONGLONG *pCurrent,LONGLONG *pStop) {
3715     return This->lpVtbl->GetPositions(This,pCurrent,pStop);
3716 }
3717 static FORCEINLINE HRESULT IMediaSeeking_GetAvailable(IMediaSeeking* This,LONGLONG *pEarliest,LONGLONG *pLatest) {
3718     return This->lpVtbl->GetAvailable(This,pEarliest,pLatest);
3719 }
3720 static FORCEINLINE HRESULT IMediaSeeking_SetRate(IMediaSeeking* This,double dRate) {
3721     return This->lpVtbl->SetRate(This,dRate);
3722 }
3723 static FORCEINLINE HRESULT IMediaSeeking_GetRate(IMediaSeeking* This,double *pdRate) {
3724     return This->lpVtbl->GetRate(This,pdRate);
3725 }
3726 static FORCEINLINE HRESULT IMediaSeeking_GetPreroll(IMediaSeeking* This,LONGLONG *pllPreroll) {
3727     return This->lpVtbl->GetPreroll(This,pllPreroll);
3728 }
3729 #endif
3730 #endif
3731 
3732 #endif
3733 
3734 
3735 #endif  /* __IMediaSeeking_INTERFACE_DEFINED__ */
3736 
3737 typedef IMediaSeeking *PMEDIASEEKING;
3738 
3739 enum tagAM_MEDIAEVENT_FLAGS {
3740   AM_MEDIAEVENT_NONOTIFY = 0x1
3741 };
3742 
3743 #endif
3744 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
3745 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
3746 typedef interface IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
3747 #ifdef __cplusplus
3748 interface IAMAnalogVideoDecoder;
3749 #endif /* __cplusplus */
3750 #endif
3751 
3752 #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
3753 #define __IAMAnalogVideoEncoder_FWD_DEFINED__
3754 typedef interface IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
3755 #ifdef __cplusplus
3756 interface IAMAnalogVideoEncoder;
3757 #endif /* __cplusplus */
3758 #endif
3759 
3760 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
3761 #define __IAMAudioInputMixer_FWD_DEFINED__
3762 typedef interface IAMAudioInputMixer IAMAudioInputMixer;
3763 #ifdef __cplusplus
3764 interface IAMAudioInputMixer;
3765 #endif /* __cplusplus */
3766 #endif
3767 
3768 #ifndef __IAMAudioRendererStats_FWD_DEFINED__
3769 #define __IAMAudioRendererStats_FWD_DEFINED__
3770 typedef interface IAMAudioRendererStats IAMAudioRendererStats;
3771 #ifdef __cplusplus
3772 interface IAMAudioRendererStats;
3773 #endif /* __cplusplus */
3774 #endif
3775 
3776 #ifndef __IAMBufferNegotiation_FWD_DEFINED__
3777 #define __IAMBufferNegotiation_FWD_DEFINED__
3778 typedef interface IAMBufferNegotiation IAMBufferNegotiation;
3779 #ifdef __cplusplus
3780 interface IAMBufferNegotiation;
3781 #endif /* __cplusplus */
3782 #endif
3783 
3784 #ifndef __IAMCameraControl_FWD_DEFINED__
3785 #define __IAMCameraControl_FWD_DEFINED__
3786 typedef interface IAMCameraControl IAMCameraControl;
3787 #ifdef __cplusplus
3788 interface IAMCameraControl;
3789 #endif /* __cplusplus */
3790 #endif
3791 
3792 #ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
3793 #define __IAMCertifiedOutputProtection_FWD_DEFINED__
3794 typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
3795 #ifdef __cplusplus
3796 interface IAMCertifiedOutputProtection;
3797 #endif /* __cplusplus */
3798 #endif
3799 
3800 #ifndef __IAMClockSlave_FWD_DEFINED__
3801 #define __IAMClockSlave_FWD_DEFINED__
3802 typedef interface IAMClockSlave IAMClockSlave;
3803 #ifdef __cplusplus
3804 interface IAMClockSlave;
3805 #endif /* __cplusplus */
3806 #endif
3807 
3808 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
3809 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
3810 typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
3811 #ifdef __cplusplus
3812 interface IAMCopyCaptureFileProgress;
3813 #endif /* __cplusplus */
3814 #endif
3815 
3816 #ifndef __IAMCrossbar_FWD_DEFINED__
3817 #define __IAMCrossbar_FWD_DEFINED__
3818 typedef interface IAMCrossbar IAMCrossbar;
3819 #ifdef __cplusplus
3820 interface IAMCrossbar;
3821 #endif /* __cplusplus */
3822 #endif
3823 
3824 #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
3825 #define __IAMDevMemoryAllocator_FWD_DEFINED__
3826 typedef interface IAMDevMemoryAllocator IAMDevMemoryAllocator;
3827 #ifdef __cplusplus
3828 interface IAMDevMemoryAllocator;
3829 #endif /* __cplusplus */
3830 #endif
3831 
3832 #ifndef __IAMDevMemoryControl_FWD_DEFINED__
3833 #define __IAMDevMemoryControl_FWD_DEFINED__
3834 typedef interface IAMDevMemoryControl IAMDevMemoryControl;
3835 #ifdef __cplusplus
3836 interface IAMDevMemoryControl;
3837 #endif /* __cplusplus */
3838 #endif
3839 
3840 #ifndef __IAMDroppedFrames_FWD_DEFINED__
3841 #define __IAMDroppedFrames_FWD_DEFINED__
3842 typedef interface IAMDroppedFrames IAMDroppedFrames;
3843 #ifdef __cplusplus
3844 interface IAMDroppedFrames;
3845 #endif /* __cplusplus */
3846 #endif
3847 
3848 #ifndef __IAMExtDevice_FWD_DEFINED__
3849 #define __IAMExtDevice_FWD_DEFINED__
3850 typedef interface IAMExtDevice IAMExtDevice;
3851 #ifdef __cplusplus
3852 interface IAMExtDevice;
3853 #endif /* __cplusplus */
3854 #endif
3855 
3856 #ifndef __IAMExtTransport_FWD_DEFINED__
3857 #define __IAMExtTransport_FWD_DEFINED__
3858 typedef interface IAMExtTransport IAMExtTransport;
3859 #ifdef __cplusplus
3860 interface IAMExtTransport;
3861 #endif /* __cplusplus */
3862 #endif
3863 
3864 #ifndef __IAMGraphStreams_FWD_DEFINED__
3865 #define __IAMGraphStreams_FWD_DEFINED__
3866 typedef interface IAMGraphStreams IAMGraphStreams;
3867 #ifdef __cplusplus
3868 interface IAMGraphStreams;
3869 #endif /* __cplusplus */
3870 #endif
3871 
3872 #ifndef __IAMLatency_FWD_DEFINED__
3873 #define __IAMLatency_FWD_DEFINED__
3874 typedef interface IAMLatency IAMLatency;
3875 #ifdef __cplusplus
3876 interface IAMLatency;
3877 #endif /* __cplusplus */
3878 #endif
3879 
3880 #ifndef __IAMOpenProgress_FWD_DEFINED__
3881 #define __IAMOpenProgress_FWD_DEFINED__
3882 typedef interface IAMOpenProgress IAMOpenProgress;
3883 #ifdef __cplusplus
3884 interface IAMOpenProgress;
3885 #endif /* __cplusplus */
3886 #endif
3887 
3888 #ifndef __IAMOverlayFX_FWD_DEFINED__
3889 #define __IAMOverlayFX_FWD_DEFINED__
3890 typedef interface IAMOverlayFX IAMOverlayFX;
3891 #ifdef __cplusplus
3892 interface IAMOverlayFX;
3893 #endif /* __cplusplus */
3894 #endif
3895 
3896 #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
3897 #define __IAMPhysicalPinInfo_FWD_DEFINED__
3898 typedef interface IAMPhysicalPinInfo IAMPhysicalPinInfo;
3899 #ifdef __cplusplus
3900 interface IAMPhysicalPinInfo;
3901 #endif /* __cplusplus */
3902 #endif
3903 
3904 #ifndef __IAMPushSource_FWD_DEFINED__
3905 #define __IAMPushSource_FWD_DEFINED__
3906 typedef interface IAMPushSource IAMPushSource;
3907 #ifdef __cplusplus
3908 interface IAMPushSource;
3909 #endif /* __cplusplus */
3910 #endif
3911 
3912 #ifndef __IAMStreamConfig_FWD_DEFINED__
3913 #define __IAMStreamConfig_FWD_DEFINED__
3914 typedef interface IAMStreamConfig IAMStreamConfig;
3915 #ifdef __cplusplus
3916 interface IAMStreamConfig;
3917 #endif /* __cplusplus */
3918 #endif
3919 
3920 #ifndef __IAMTimecodeDisplay_FWD_DEFINED__
3921 #define __IAMTimecodeDisplay_FWD_DEFINED__
3922 typedef interface IAMTimecodeDisplay IAMTimecodeDisplay;
3923 #ifdef __cplusplus
3924 interface IAMTimecodeDisplay;
3925 #endif /* __cplusplus */
3926 #endif
3927 
3928 #ifndef __IAMTimecodeGenerator_FWD_DEFINED__
3929 #define __IAMTimecodeGenerator_FWD_DEFINED__
3930 typedef interface IAMTimecodeGenerator IAMTimecodeGenerator;
3931 #ifdef __cplusplus
3932 interface IAMTimecodeGenerator;
3933 #endif /* __cplusplus */
3934 #endif
3935 
3936 #ifndef __IAMTimecodeReader_FWD_DEFINED__
3937 #define __IAMTimecodeReader_FWD_DEFINED__
3938 typedef interface IAMTimecodeReader IAMTimecodeReader;
3939 #ifdef __cplusplus
3940 interface IAMTimecodeReader;
3941 #endif /* __cplusplus */
3942 #endif
3943 
3944 #ifndef __IAMTVTuner_FWD_DEFINED__
3945 #define __IAMTVTuner_FWD_DEFINED__
3946 typedef interface IAMTVTuner IAMTVTuner;
3947 #ifdef __cplusplus
3948 interface IAMTVTuner;
3949 #endif /* __cplusplus */
3950 #endif
3951 
3952 #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
3953 #define __IAMVfwCaptureDialogs_FWD_DEFINED__
3954 typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
3955 #ifdef __cplusplus
3956 interface IAMVfwCaptureDialogs;
3957 #endif /* __cplusplus */
3958 #endif
3959 
3960 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
3961 #define __IAMVfwCompressDialogs_FWD_DEFINED__
3962 typedef interface IAMVfwCompressDialogs IAMVfwCompressDialogs;
3963 #ifdef __cplusplus
3964 interface IAMVfwCompressDialogs;
3965 #endif /* __cplusplus */
3966 #endif
3967 
3968 #ifndef __IAMVideoCompression_FWD_DEFINED__
3969 #define __IAMVideoCompression_FWD_DEFINED__
3970 typedef interface IAMVideoCompression IAMVideoCompression;
3971 #ifdef __cplusplus
3972 interface IAMVideoCompression;
3973 #endif /* __cplusplus */
3974 #endif
3975 
3976 #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
3977 #define __IAMVideoDecimationProperties_FWD_DEFINED__
3978 typedef interface IAMVideoDecimationProperties IAMVideoDecimationProperties;
3979 #ifdef __cplusplus
3980 interface IAMVideoDecimationProperties;
3981 #endif /* __cplusplus */
3982 #endif
3983 
3984 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
3985 #define __IAMVideoProcAmp_FWD_DEFINED__
3986 typedef interface IAMVideoProcAmp IAMVideoProcAmp;
3987 #ifdef __cplusplus
3988 interface IAMVideoProcAmp;
3989 #endif /* __cplusplus */
3990 #endif
3991 
3992 #ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
3993 #define __IAMGraphBuilderCallback_FWD_DEFINED__
3994 typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
3995 #ifdef __cplusplus
3996 interface IAMGraphBuilderCallback;
3997 #endif /* __cplusplus */
3998 #endif
3999 
4000 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
4001 #define __ICaptureGraphBuilder_FWD_DEFINED__
4002 typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
4003 #ifdef __cplusplus
4004 interface ICaptureGraphBuilder;
4005 #endif /* __cplusplus */
4006 #endif
4007 
4008 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
4009 #define __ICaptureGraphBuilder2_FWD_DEFINED__
4010 typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
4011 #ifdef __cplusplus
4012 interface ICaptureGraphBuilder2;
4013 #endif /* __cplusplus */
4014 #endif
4015 
4016 #ifndef __IConfigAviMux_FWD_DEFINED__
4017 #define __IConfigAviMux_FWD_DEFINED__
4018 typedef interface IConfigAviMux IConfigAviMux;
4019 #ifdef __cplusplus
4020 interface IConfigAviMux;
4021 #endif /* __cplusplus */
4022 #endif
4023 
4024 #ifndef __IConfigInterleaving_FWD_DEFINED__
4025 #define __IConfigInterleaving_FWD_DEFINED__
4026 typedef interface IConfigInterleaving IConfigInterleaving;
4027 #ifdef __cplusplus
4028 interface IConfigInterleaving;
4029 #endif /* __cplusplus */
4030 #endif
4031 
4032 #ifndef __IDecimateVideoImage_FWD_DEFINED__
4033 #define __IDecimateVideoImage_FWD_DEFINED__
4034 typedef interface IDecimateVideoImage IDecimateVideoImage;
4035 #ifdef __cplusplus
4036 interface IDecimateVideoImage;
4037 #endif /* __cplusplus */
4038 #endif
4039 
4040 #ifndef __IDrawVideoImage_FWD_DEFINED__
4041 #define __IDrawVideoImage_FWD_DEFINED__
4042 typedef interface IDrawVideoImage IDrawVideoImage;
4043 #ifdef __cplusplus
4044 interface IDrawVideoImage;
4045 #endif /* __cplusplus */
4046 #endif
4047 
4048 #ifndef __IEnumRegFilters_FWD_DEFINED__
4049 #define __IEnumRegFilters_FWD_DEFINED__
4050 typedef interface IEnumRegFilters IEnumRegFilters;
4051 #ifdef __cplusplus
4052 interface IEnumRegFilters;
4053 #endif /* __cplusplus */
4054 #endif
4055 
4056 #ifndef __IEnumStreamIdMap_FWD_DEFINED__
4057 #define __IEnumStreamIdMap_FWD_DEFINED__
4058 typedef interface IEnumStreamIdMap IEnumStreamIdMap;
4059 #ifdef __cplusplus
4060 interface IEnumStreamIdMap;
4061 #endif /* __cplusplus */
4062 #endif
4063 
4064 #ifndef __IFileSourceFilter_FWD_DEFINED__
4065 #define __IFileSourceFilter_FWD_DEFINED__
4066 typedef interface IFileSourceFilter IFileSourceFilter;
4067 #ifdef __cplusplus
4068 interface IFileSourceFilter;
4069 #endif /* __cplusplus */
4070 #endif
4071 
4072 #ifndef __IFileSinkFilter_FWD_DEFINED__
4073 #define __IFileSinkFilter_FWD_DEFINED__
4074 typedef interface IFileSinkFilter IFileSinkFilter;
4075 #ifdef __cplusplus
4076 interface IFileSinkFilter;
4077 #endif /* __cplusplus */
4078 #endif
4079 
4080 #ifndef __IFileSinkFilter2_FWD_DEFINED__
4081 #define __IFileSinkFilter2_FWD_DEFINED__
4082 typedef interface IFileSinkFilter2 IFileSinkFilter2;
4083 #ifdef __cplusplus
4084 interface IFileSinkFilter2;
4085 #endif /* __cplusplus */
4086 #endif
4087 
4088 #ifndef __IFilterMapper_FWD_DEFINED__
4089 #define __IFilterMapper_FWD_DEFINED__
4090 typedef interface IFilterMapper IFilterMapper;
4091 #ifdef __cplusplus
4092 interface IFilterMapper;
4093 #endif /* __cplusplus */
4094 #endif
4095 
4096 #ifndef __IFilterMapper2_FWD_DEFINED__
4097 #define __IFilterMapper2_FWD_DEFINED__
4098 typedef interface IFilterMapper2 IFilterMapper2;
4099 #ifdef __cplusplus
4100 interface IFilterMapper2;
4101 #endif /* __cplusplus */
4102 #endif
4103 
4104 #ifndef __IGraphBuilder_FWD_DEFINED__
4105 #define __IGraphBuilder_FWD_DEFINED__
4106 typedef interface IGraphBuilder IGraphBuilder;
4107 #ifdef __cplusplus
4108 interface IGraphBuilder;
4109 #endif /* __cplusplus */
4110 #endif
4111 
4112 #ifndef __IKsPropertySet_FWD_DEFINED__
4113 #define __IKsPropertySet_FWD_DEFINED__
4114 typedef interface IKsPropertySet IKsPropertySet;
4115 #ifdef __cplusplus
4116 interface IKsPropertySet;
4117 #endif /* __cplusplus */
4118 #endif
4119 
4120 #ifndef __IMediaEventSink_FWD_DEFINED__
4121 #define __IMediaEventSink_FWD_DEFINED__
4122 typedef interface IMediaEventSink IMediaEventSink;
4123 #ifdef __cplusplus
4124 interface IMediaEventSink;
4125 #endif /* __cplusplus */
4126 #endif
4127 
4128 #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
4129 #define __IMpeg2Demultiplexer_FWD_DEFINED__
4130 typedef interface IMpeg2Demultiplexer IMpeg2Demultiplexer;
4131 #ifdef __cplusplus
4132 interface IMpeg2Demultiplexer;
4133 #endif /* __cplusplus */
4134 #endif
4135 
4136 #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
4137 #define __IMPEG2StreamIdMap_FWD_DEFINED__
4138 typedef interface IMPEG2StreamIdMap IMPEG2StreamIdMap;
4139 #ifdef __cplusplus
4140 interface IMPEG2StreamIdMap;
4141 #endif /* __cplusplus */
4142 #endif
4143 
4144 #ifndef __IOverlay_FWD_DEFINED__
4145 #define __IOverlay_FWD_DEFINED__
4146 typedef interface IOverlay IOverlay;
4147 #ifdef __cplusplus
4148 interface IOverlay;
4149 #endif /* __cplusplus */
4150 #endif
4151 
4152 #ifndef __IOverlayNotify_FWD_DEFINED__
4153 #define __IOverlayNotify_FWD_DEFINED__
4154 typedef interface IOverlayNotify IOverlayNotify;
4155 #ifdef __cplusplus
4156 interface IOverlayNotify;
4157 #endif /* __cplusplus */
4158 #endif
4159 
4160 #ifndef __IOverlayNotify2_FWD_DEFINED__
4161 #define __IOverlayNotify2_FWD_DEFINED__
4162 typedef interface IOverlayNotify2 IOverlayNotify2;
4163 #ifdef __cplusplus
4164 interface IOverlayNotify2;
4165 #endif /* __cplusplus */
4166 #endif
4167 
4168 #ifndef __IQualityControl_FWD_DEFINED__
4169 #define __IQualityControl_FWD_DEFINED__
4170 typedef interface IQualityControl IQualityControl;
4171 #ifdef __cplusplus
4172 interface IQualityControl;
4173 #endif /* __cplusplus */
4174 #endif
4175 
4176 #ifndef __ISeekingPassThru_FWD_DEFINED__
4177 #define __ISeekingPassThru_FWD_DEFINED__
4178 typedef interface ISeekingPassThru ISeekingPassThru;
4179 #ifdef __cplusplus
4180 interface ISeekingPassThru;
4181 #endif /* __cplusplus */
4182 #endif
4183 
4184 typedef enum tagAnalogVideoStandard {
4185     AnalogVideo_None = 0x0,
4186     AnalogVideo_NTSC_M = 0x1,
4187     AnalogVideo_NTSC_M_J = 0x2,
4188     AnalogVideo_NTSC_433 = 0x4,
4189     AnalogVideo_PAL_B = 0x10,
4190     AnalogVideo_PAL_D = 0x20,
4191     AnalogVideo_PAL_G = 0x40,
4192     AnalogVideo_PAL_H = 0x80,
4193     AnalogVideo_PAL_I = 0x100,
4194     AnalogVideo_PAL_M = 0x200,
4195     AnalogVideo_PAL_N = 0x400,
4196     AnalogVideo_PAL_60 = 0x800,
4197     AnalogVideo_SECAM_B = 0x1000,
4198     AnalogVideo_SECAM_D = 0x2000,
4199     AnalogVideo_SECAM_G = 0x4000,
4200     AnalogVideo_SECAM_H = 0x8000,
4201     AnalogVideo_SECAM_K = 0x10000,
4202     AnalogVideo_SECAM_K1 = 0x20000,
4203     AnalogVideo_SECAM_L = 0x40000,
4204     AnalogVideo_SECAM_L1 = 0x80000,
4205     AnalogVideo_PAL_N_COMBO = 0x100000,
4206     AnalogVideoMask_MCE_NTSC = (((((AnalogVideo_NTSC_M | AnalogVideo_NTSC_M_J) | AnalogVideo_NTSC_433) | AnalogVideo_PAL_M) | AnalogVideo_PAL_N) | AnalogVideo_PAL_60) | AnalogVideo_PAL_N_COMBO,
4207     AnalogVideoMask_MCE_PAL = (((AnalogVideo_PAL_B | AnalogVideo_PAL_D) | AnalogVideo_PAL_G) | AnalogVideo_PAL_H) | AnalogVideo_PAL_I,
4208     AnalogVideoMask_MCE_SECAM = ((((((AnalogVideo_SECAM_B | AnalogVideo_SECAM_D) | AnalogVideo_SECAM_G) | AnalogVideo_SECAM_H) | AnalogVideo_SECAM_K) | AnalogVideo_SECAM_K1) | AnalogVideo_SECAM_L) | AnalogVideo_SECAM_L1
4209 } AnalogVideoStandard;
4210 typedef enum tagTunerInputType {
4211     TunerInputCable = 0,
4212     TunerInputAntenna = 1
4213 } TunerInputType;
4214 typedef struct __WIDL_strmif_generated_name_0000000F {
4215     CLSID Clsid;
4216     LPWSTR Name;
4217 } REGFILTER;
4218 typedef enum tagTVAudioMode {
4219     AMTVAUDIO_MODE_MONO = 0x1,
4220     AMTVAUDIO_MODE_STEREO = 0x2,
4221     AMTVAUDIO_MODE_LANG_A = 0x10,
4222     AMTVAUDIO_MODE_LANG_B = 0x20,
4223     AMTVAUDIO_MODE_LANG_C = 0x40,
4224     AMTVAUDIO_PRESET_STEREO = 0x200,
4225     AMTVAUDIO_PRESET_LANG_A = 0x1000,
4226     AMTVAUDIO_PRESET_LANG_B = 0x2000,
4227     AMTVAUDIO_PRESET_LANG_C = 0x4000
4228 } TVAudioMode;
4229 /*****************************************************************************
4230  * IEnumRegFilters interface
4231  */
4232 #ifndef __IEnumRegFilters_INTERFACE_DEFINED__
4233 #define __IEnumRegFilters_INTERFACE_DEFINED__
4234 
4235 DEFINE_GUID(IID_IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4236 #if defined(__cplusplus) && !defined(CINTERFACE)
4237 MIDL_INTERFACE("56a868a4-0ad4-11ce-b03a-0020af0ba770")
4238 IEnumRegFilters : public IUnknown
4239 {
4240     virtual HRESULT STDMETHODCALLTYPE Next(
4241         ULONG cFilters,
4242         REGFILTER **apRegFilter,
4243         ULONG *pcFetched) = 0;
4244 
4245     virtual HRESULT STDMETHODCALLTYPE Skip(
4246         ULONG cFilters) = 0;
4247 
4248     virtual HRESULT STDMETHODCALLTYPE Reset(
4249         ) = 0;
4250 
4251     virtual HRESULT STDMETHODCALLTYPE Clone(
4252         IEnumRegFilters **ppEnum) = 0;
4253 
4254 };
4255 #ifdef __CRT_UUID_DECL
4256 __CRT_UUID_DECL(IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
4257 #endif
4258 #else
4259 typedef struct IEnumRegFiltersVtbl {
4260     BEGIN_INTERFACE
4261 
4262     /*** IUnknown methods ***/
4263     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4264         IEnumRegFilters *This,
4265         REFIID riid,
4266         void **ppvObject);
4267 
4268     ULONG (STDMETHODCALLTYPE *AddRef)(
4269         IEnumRegFilters *This);
4270 
4271     ULONG (STDMETHODCALLTYPE *Release)(
4272         IEnumRegFilters *This);
4273 
4274     /*** IEnumRegFilters methods ***/
4275     HRESULT (STDMETHODCALLTYPE *Next)(
4276         IEnumRegFilters *This,
4277         ULONG cFilters,
4278         REGFILTER **apRegFilter,
4279         ULONG *pcFetched);
4280 
4281     HRESULT (STDMETHODCALLTYPE *Skip)(
4282         IEnumRegFilters *This,
4283         ULONG cFilters);
4284 
4285     HRESULT (STDMETHODCALLTYPE *Reset)(
4286         IEnumRegFilters *This);
4287 
4288     HRESULT (STDMETHODCALLTYPE *Clone)(
4289         IEnumRegFilters *This,
4290         IEnumRegFilters **ppEnum);
4291 
4292     END_INTERFACE
4293 } IEnumRegFiltersVtbl;
4294 
4295 interface IEnumRegFilters {
4296     CONST_VTBL IEnumRegFiltersVtbl* lpVtbl;
4297 };
4298 
4299 #ifdef COBJMACROS
4300 #ifndef WIDL_C_INLINE_WRAPPERS
4301 /*** IUnknown methods ***/
4302 #define IEnumRegFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4303 #define IEnumRegFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
4304 #define IEnumRegFilters_Release(This) (This)->lpVtbl->Release(This)
4305 /*** IEnumRegFilters methods ***/
4306 #define IEnumRegFilters_Next(This,cFilters,apRegFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched)
4307 #define IEnumRegFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
4308 #define IEnumRegFilters_Reset(This) (This)->lpVtbl->Reset(This)
4309 #define IEnumRegFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
4310 #else
4311 /*** IUnknown methods ***/
4312 static FORCEINLINE HRESULT IEnumRegFilters_QueryInterface(IEnumRegFilters* This,REFIID riid,void **ppvObject) {
4313     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4314 }
4315 static FORCEINLINE ULONG IEnumRegFilters_AddRef(IEnumRegFilters* This) {
4316     return This->lpVtbl->AddRef(This);
4317 }
4318 static FORCEINLINE ULONG IEnumRegFilters_Release(IEnumRegFilters* This) {
4319     return This->lpVtbl->Release(This);
4320 }
4321 /*** IEnumRegFilters methods ***/
4322 static FORCEINLINE HRESULT IEnumRegFilters_Next(IEnumRegFilters* This,ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched) {
4323     return This->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched);
4324 }
4325 static FORCEINLINE HRESULT IEnumRegFilters_Skip(IEnumRegFilters* This,ULONG cFilters) {
4326     return This->lpVtbl->Skip(This,cFilters);
4327 }
4328 static FORCEINLINE HRESULT IEnumRegFilters_Reset(IEnumRegFilters* This) {
4329     return This->lpVtbl->Reset(This);
4330 }
4331 static FORCEINLINE HRESULT IEnumRegFilters_Clone(IEnumRegFilters* This,IEnumRegFilters **ppEnum) {
4332     return This->lpVtbl->Clone(This,ppEnum);
4333 }
4334 #endif
4335 #endif
4336 
4337 #endif
4338 
4339 
4340 #endif  /* __IEnumRegFilters_INTERFACE_DEFINED__ */
4341 
4342 typedef IEnumRegFilters *PENUMREGFILTERS;
4343 /*****************************************************************************
4344  * IFilterMapper interface
4345  */
4346 #ifndef __IFilterMapper_INTERFACE_DEFINED__
4347 #define __IFilterMapper_INTERFACE_DEFINED__
4348 
4349 enum {
4350     MERIT_PREFERRED = 0x800000,
4351     MERIT_NORMAL = 0x600000,
4352     MERIT_UNLIKELY = 0x400000,
4353     MERIT_DO_NOT_USE = 0x200000,
4354     MERIT_SW_COMPRESSOR = 0x100000,
4355     MERIT_HW_COMPRESSOR = 0x100050
4356 };
4357 DEFINE_GUID(IID_IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4358 #if defined(__cplusplus) && !defined(CINTERFACE)
4359 MIDL_INTERFACE("56a868a3-0ad4-11ce-b03a-0020af0ba770")
4360 IFilterMapper : public IUnknown
4361 {
4362     virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
4363         CLSID clsid,
4364         LPCWSTR Name,
4365         DWORD dwMerit) = 0;
4366 
4367     virtual HRESULT STDMETHODCALLTYPE RegisterFilterInstance(
4368         CLSID clsid,
4369         LPCWSTR Name,
4370         CLSID *MRId) = 0;
4371 
4372     virtual HRESULT STDMETHODCALLTYPE RegisterPin(
4373         CLSID Filter,
4374         LPCWSTR Name,
4375         WINBOOL bRendered,
4376         WINBOOL bOutput,
4377         WINBOOL bZero,
4378         WINBOOL bMany,
4379         CLSID ConnectsToFilter,
4380         LPCWSTR ConnectsToPin) = 0;
4381 
4382     virtual HRESULT STDMETHODCALLTYPE RegisterPinType(
4383         CLSID clsFilter,
4384         LPCWSTR strName,
4385         CLSID clsMajorType,
4386         CLSID clsSubType) = 0;
4387 
4388     virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
4389         CLSID Filter) = 0;
4390 
4391     virtual HRESULT STDMETHODCALLTYPE UnregisterFilterInstance(
4392         CLSID MRId) = 0;
4393 
4394     virtual HRESULT STDMETHODCALLTYPE UnregisterPin(
4395         CLSID Filter,
4396         LPCWSTR Name) = 0;
4397 
4398     virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
4399         IEnumRegFilters **ppEnum,
4400         DWORD dwMerit,
4401         WINBOOL bInputNeeded,
4402         CLSID clsInMaj,
4403         CLSID clsInSub,
4404         WINBOOL bRender,
4405         WINBOOL bOutputNeeded,
4406         CLSID clsOutMaj,
4407         CLSID clsOutSub) = 0;
4408 
4409 };
4410 #ifdef __CRT_UUID_DECL
4411 __CRT_UUID_DECL(IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
4412 #endif
4413 #else
4414 typedef struct IFilterMapperVtbl {
4415     BEGIN_INTERFACE
4416 
4417     /*** IUnknown methods ***/
4418     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4419         IFilterMapper *This,
4420         REFIID riid,
4421         void **ppvObject);
4422 
4423     ULONG (STDMETHODCALLTYPE *AddRef)(
4424         IFilterMapper *This);
4425 
4426     ULONG (STDMETHODCALLTYPE *Release)(
4427         IFilterMapper *This);
4428 
4429     /*** IFilterMapper methods ***/
4430     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
4431         IFilterMapper *This,
4432         CLSID clsid,
4433         LPCWSTR Name,
4434         DWORD dwMerit);
4435 
4436     HRESULT (STDMETHODCALLTYPE *RegisterFilterInstance)(
4437         IFilterMapper *This,
4438         CLSID clsid,
4439         LPCWSTR Name,
4440         CLSID *MRId);
4441 
4442     HRESULT (STDMETHODCALLTYPE *RegisterPin)(
4443         IFilterMapper *This,
4444         CLSID Filter,
4445         LPCWSTR Name,
4446         WINBOOL bRendered,
4447         WINBOOL bOutput,
4448         WINBOOL bZero,
4449         WINBOOL bMany,
4450         CLSID ConnectsToFilter,
4451         LPCWSTR ConnectsToPin);
4452 
4453     HRESULT (STDMETHODCALLTYPE *RegisterPinType)(
4454         IFilterMapper *This,
4455         CLSID clsFilter,
4456         LPCWSTR strName,
4457         CLSID clsMajorType,
4458         CLSID clsSubType);
4459 
4460     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
4461         IFilterMapper *This,
4462         CLSID Filter);
4463 
4464     HRESULT (STDMETHODCALLTYPE *UnregisterFilterInstance)(
4465         IFilterMapper *This,
4466         CLSID MRId);
4467 
4468     HRESULT (STDMETHODCALLTYPE *UnregisterPin)(
4469         IFilterMapper *This,
4470         CLSID Filter,
4471         LPCWSTR Name);
4472 
4473     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
4474         IFilterMapper *This,
4475         IEnumRegFilters **ppEnum,
4476         DWORD dwMerit,
4477         WINBOOL bInputNeeded,
4478         CLSID clsInMaj,
4479         CLSID clsInSub,
4480         WINBOOL bRender,
4481         WINBOOL bOutputNeeded,
4482         CLSID clsOutMaj,
4483         CLSID clsOutSub);
4484 
4485     END_INTERFACE
4486 } IFilterMapperVtbl;
4487 
4488 interface IFilterMapper {
4489     CONST_VTBL IFilterMapperVtbl* lpVtbl;
4490 };
4491 
4492 #ifdef COBJMACROS
4493 #ifndef WIDL_C_INLINE_WRAPPERS
4494 /*** IUnknown methods ***/
4495 #define IFilterMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4496 #define IFilterMapper_AddRef(This) (This)->lpVtbl->AddRef(This)
4497 #define IFilterMapper_Release(This) (This)->lpVtbl->Release(This)
4498 /*** IFilterMapper methods ***/
4499 #define IFilterMapper_RegisterFilter(This,clsid,Name,dwMerit) (This)->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit)
4500 #define IFilterMapper_RegisterFilterInstance(This,clsid,Name,MRId) (This)->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId)
4501 #define IFilterMapper_RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin) (This)->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin)
4502 #define IFilterMapper_RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType) (This)->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType)
4503 #define IFilterMapper_UnregisterFilter(This,Filter) (This)->lpVtbl->UnregisterFilter(This,Filter)
4504 #define IFilterMapper_UnregisterFilterInstance(This,MRId) (This)->lpVtbl->UnregisterFilterInstance(This,MRId)
4505 #define IFilterMapper_UnregisterPin(This,Filter,Name) (This)->lpVtbl->UnregisterPin(This,Filter,Name)
4506 #define IFilterMapper_EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub)
4507 #else
4508 /*** IUnknown methods ***/
4509 static FORCEINLINE HRESULT IFilterMapper_QueryInterface(IFilterMapper* This,REFIID riid,void **ppvObject) {
4510     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4511 }
4512 static FORCEINLINE ULONG IFilterMapper_AddRef(IFilterMapper* This) {
4513     return This->lpVtbl->AddRef(This);
4514 }
4515 static FORCEINLINE ULONG IFilterMapper_Release(IFilterMapper* This) {
4516     return This->lpVtbl->Release(This);
4517 }
4518 /*** IFilterMapper methods ***/
4519 static FORCEINLINE HRESULT IFilterMapper_RegisterFilter(IFilterMapper* This,CLSID clsid,LPCWSTR Name,DWORD dwMerit) {
4520     return This->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit);
4521 }
4522 static FORCEINLINE HRESULT IFilterMapper_RegisterFilterInstance(IFilterMapper* This,CLSID clsid,LPCWSTR Name,CLSID *MRId) {
4523     return This->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId);
4524 }
4525 static FORCEINLINE HRESULT IFilterMapper_RegisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name,WINBOOL bRendered,WINBOOL bOutput,WINBOOL bZero,WINBOOL bMany,CLSID ConnectsToFilter,LPCWSTR ConnectsToPin) {
4526     return This->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin);
4527 }
4528 static FORCEINLINE HRESULT IFilterMapper_RegisterPinType(IFilterMapper* This,CLSID clsFilter,LPCWSTR strName,CLSID clsMajorType,CLSID clsSubType) {
4529     return This->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType);
4530 }
4531 static FORCEINLINE HRESULT IFilterMapper_UnregisterFilter(IFilterMapper* This,CLSID Filter) {
4532     return This->lpVtbl->UnregisterFilter(This,Filter);
4533 }
4534 static FORCEINLINE HRESULT IFilterMapper_UnregisterFilterInstance(IFilterMapper* This,CLSID MRId) {
4535     return This->lpVtbl->UnregisterFilterInstance(This,MRId);
4536 }
4537 static FORCEINLINE HRESULT IFilterMapper_UnregisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name) {
4538     return This->lpVtbl->UnregisterPin(This,Filter,Name);
4539 }
4540 static FORCEINLINE HRESULT IFilterMapper_EnumMatchingFilters(IFilterMapper* This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOutputNeeded,CLSID clsOutMaj,CLSID clsOutSub) {
4541     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub);
4542 }
4543 #endif
4544 #endif
4545 
4546 #endif
4547 
4548 
4549 #endif  /* __IFilterMapper_INTERFACE_DEFINED__ */
4550 
4551 typedef struct __WIDL_strmif_generated_name_00000010 {
4552     const CLSID *clsMajorType;
4553     const CLSID *clsMinorType;
4554 } REGPINTYPES;
4555 typedef struct __WIDL_strmif_generated_name_00000011 {
4556     LPWSTR strName;
4557     WINBOOL bRendered;
4558     WINBOOL bOutput;
4559     WINBOOL bZero;
4560     WINBOOL bMany;
4561     const CLSID *clsConnectsToFilter;
4562     const WCHAR *strConnectsToPin;
4563     UINT nMediaTypes;
4564     const REGPINTYPES *lpMediaType;
4565 } REGFILTERPINS;
4566 typedef struct __WIDL_strmif_generated_name_00000012 {
4567     CLSID clsMedium;
4568     DWORD dw1;
4569     DWORD dw2;
4570 } REGPINMEDIUM;
4571 enum {
4572     REG_PINFLAG_B_ZERO = 0x1,
4573     REG_PINFLAG_B_RENDERER = 0x2,
4574     REG_PINFLAG_B_MANY = 0x4,
4575     REG_PINFLAG_B_OUTPUT = 0x8
4576 };
4577 typedef struct __WIDL_strmif_generated_name_00000013 {
4578     DWORD dwFlags;
4579     UINT cInstances;
4580     UINT nMediaTypes;
4581     const REGPINTYPES *lpMediaType;
4582     UINT nMediums;
4583     const REGPINMEDIUM *lpMedium;
4584     const CLSID *clsPinCategory;
4585 } REGFILTERPINS2;
4586 typedef struct __WIDL_strmif_generated_name_00000014 {
4587     DWORD dwVersion;
4588     DWORD dwMerit;
4589     __C89_NAMELESS union {
4590         __C89_NAMELESS struct {
4591             ULONG cPins;
4592             const REGFILTERPINS *rgPins;
4593         } __C89_NAMELESSSTRUCTNAME1;
4594         __C89_NAMELESS struct {
4595             ULONG cPins2;
4596             const REGFILTERPINS2 *rgPins2;
4597         } __C89_NAMELESSSTRUCTNAME2;
4598     } __C89_NAMELESSUNIONNAME;
4599 } REGFILTER2;
4600 /*****************************************************************************
4601  * IFilterMapper2 interface
4602  */
4603 #ifndef __IFilterMapper2_INTERFACE_DEFINED__
4604 #define __IFilterMapper2_INTERFACE_DEFINED__
4605 
4606 DEFINE_GUID(IID_IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
4607 #if defined(__cplusplus) && !defined(CINTERFACE)
4608 MIDL_INTERFACE("b79bb0b0-33c1-11d1-abe1-00a0c905f375")
4609 IFilterMapper2 : public IUnknown
4610 {
4611     virtual HRESULT STDMETHODCALLTYPE CreateCategory(
4612         REFCLSID clsidCategory,
4613         DWORD dwCategoryMerit,
4614         LPCWSTR Description) = 0;
4615 
4616     virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
4617         const CLSID *pclsidCategory,
4618         LPCOLESTR szInstance,
4619         REFCLSID Filter) = 0;
4620 
4621     virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
4622         REFCLSID clsidFilter,
4623         LPCWSTR Name,
4624         IMoniker **ppMoniker,
4625         const CLSID *pclsidCategory,
4626         LPCOLESTR szInstance,
4627         const REGFILTER2 *prf2) = 0;
4628 
4629     virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
4630         IEnumMoniker **ppEnum,
4631         DWORD dwFlags,
4632         WINBOOL bExactMatch,
4633         DWORD dwMerit,
4634         WINBOOL bInputNeeded,
4635         DWORD cInputTypes,
4636         const GUID *pInputTypes,
4637         const REGPINMEDIUM *pMedIn,
4638         const CLSID *pPinCategoryIn,
4639         WINBOOL bRender,
4640         WINBOOL bOutputNeeded,
4641         DWORD cOutputTypes,
4642         const GUID *pOutputTypes,
4643         const REGPINMEDIUM *pMedOut,
4644         const CLSID *pPinCategoryOut) = 0;
4645 
4646 };
4647 #ifdef __CRT_UUID_DECL
4648 __CRT_UUID_DECL(IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
4649 #endif
4650 #else
4651 typedef struct IFilterMapper2Vtbl {
4652     BEGIN_INTERFACE
4653 
4654     /*** IUnknown methods ***/
4655     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4656         IFilterMapper2 *This,
4657         REFIID riid,
4658         void **ppvObject);
4659 
4660     ULONG (STDMETHODCALLTYPE *AddRef)(
4661         IFilterMapper2 *This);
4662 
4663     ULONG (STDMETHODCALLTYPE *Release)(
4664         IFilterMapper2 *This);
4665 
4666     /*** IFilterMapper2 methods ***/
4667     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
4668         IFilterMapper2 *This,
4669         REFCLSID clsidCategory,
4670         DWORD dwCategoryMerit,
4671         LPCWSTR Description);
4672 
4673     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
4674         IFilterMapper2 *This,
4675         const CLSID *pclsidCategory,
4676         LPCOLESTR szInstance,
4677         REFCLSID Filter);
4678 
4679     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
4680         IFilterMapper2 *This,
4681         REFCLSID clsidFilter,
4682         LPCWSTR Name,
4683         IMoniker **ppMoniker,
4684         const CLSID *pclsidCategory,
4685         LPCOLESTR szInstance,
4686         const REGFILTER2 *prf2);
4687 
4688     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
4689         IFilterMapper2 *This,
4690         IEnumMoniker **ppEnum,
4691         DWORD dwFlags,
4692         WINBOOL bExactMatch,
4693         DWORD dwMerit,
4694         WINBOOL bInputNeeded,
4695         DWORD cInputTypes,
4696         const GUID *pInputTypes,
4697         const REGPINMEDIUM *pMedIn,
4698         const CLSID *pPinCategoryIn,
4699         WINBOOL bRender,
4700         WINBOOL bOutputNeeded,
4701         DWORD cOutputTypes,
4702         const GUID *pOutputTypes,
4703         const REGPINMEDIUM *pMedOut,
4704         const CLSID *pPinCategoryOut);
4705 
4706     END_INTERFACE
4707 } IFilterMapper2Vtbl;
4708 
4709 interface IFilterMapper2 {
4710     CONST_VTBL IFilterMapper2Vtbl* lpVtbl;
4711 };
4712 
4713 #ifdef COBJMACROS
4714 #ifndef WIDL_C_INLINE_WRAPPERS
4715 /*** IUnknown methods ***/
4716 #define IFilterMapper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4717 #define IFilterMapper2_AddRef(This) (This)->lpVtbl->AddRef(This)
4718 #define IFilterMapper2_Release(This) (This)->lpVtbl->Release(This)
4719 /*** IFilterMapper2 methods ***/
4720 #define IFilterMapper2_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
4721 #define IFilterMapper2_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
4722 #define IFilterMapper2_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
4723 #define IFilterMapper2_EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut)
4724 #else
4725 /*** IUnknown methods ***/
4726 static FORCEINLINE HRESULT IFilterMapper2_QueryInterface(IFilterMapper2* This,REFIID riid,void **ppvObject) {
4727     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4728 }
4729 static FORCEINLINE ULONG IFilterMapper2_AddRef(IFilterMapper2* This) {
4730     return This->lpVtbl->AddRef(This);
4731 }
4732 static FORCEINLINE ULONG IFilterMapper2_Release(IFilterMapper2* This) {
4733     return This->lpVtbl->Release(This);
4734 }
4735 /*** IFilterMapper2 methods ***/
4736 static FORCEINLINE HRESULT IFilterMapper2_CreateCategory(IFilterMapper2* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
4737     return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
4738 }
4739 static FORCEINLINE HRESULT IFilterMapper2_UnregisterFilter(IFilterMapper2* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
4740     return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
4741 }
4742 static FORCEINLINE HRESULT IFilterMapper2_RegisterFilter(IFilterMapper2* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) {
4743     return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2);
4744 }
4745 static FORCEINLINE HRESULT IFilterMapper2_EnumMatchingFilters(IFilterMapper2* This,IEnumMoniker **ppEnum,DWORD dwFlags,WINBOOL bExactMatch,DWORD dwMerit,WINBOOL bInputNeeded,DWORD cInputTypes,const GUID *pInputTypes,const REGPINMEDIUM *pMedIn,const CLSID *pPinCategoryIn,WINBOOL bRender,WINBOOL bOutputNeeded,DWORD cOutputTypes,const GUID *pOutputTypes,const REGPINMEDIUM *pMedOut,const CLSID *pPinCategoryOut) {
4746     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut);
4747 }
4748 #endif
4749 #endif
4750 
4751 #endif
4752 
4753 
4754 #endif  /* __IFilterMapper2_INTERFACE_DEFINED__ */
4755 
4756 /*****************************************************************************
4757  * IFilterMapper3 interface
4758  */
4759 #ifndef __IFilterMapper3_INTERFACE_DEFINED__
4760 #define __IFilterMapper3_INTERFACE_DEFINED__
4761 
4762 DEFINE_GUID(IID_IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
4763 #if defined(__cplusplus) && !defined(CINTERFACE)
4764 MIDL_INTERFACE("b79bb0b1-33c1-11d1-abe1-00a0c905f375")
4765 IFilterMapper3 : public IFilterMapper2
4766 {
4767     virtual HRESULT STDMETHODCALLTYPE GetICreateDevEnum(
4768         ICreateDevEnum **ppEnum) = 0;
4769 
4770 };
4771 #ifdef __CRT_UUID_DECL
4772 __CRT_UUID_DECL(IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
4773 #endif
4774 #else
4775 typedef struct IFilterMapper3Vtbl {
4776     BEGIN_INTERFACE
4777 
4778     /*** IUnknown methods ***/
4779     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4780         IFilterMapper3 *This,
4781         REFIID riid,
4782         void **ppvObject);
4783 
4784     ULONG (STDMETHODCALLTYPE *AddRef)(
4785         IFilterMapper3 *This);
4786 
4787     ULONG (STDMETHODCALLTYPE *Release)(
4788         IFilterMapper3 *This);
4789 
4790     /*** IFilterMapper2 methods ***/
4791     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
4792         IFilterMapper3 *This,
4793         REFCLSID clsidCategory,
4794         DWORD dwCategoryMerit,
4795         LPCWSTR Description);
4796 
4797     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
4798         IFilterMapper3 *This,
4799         const CLSID *pclsidCategory,
4800         LPCOLESTR szInstance,
4801         REFCLSID Filter);
4802 
4803     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
4804         IFilterMapper3 *This,
4805         REFCLSID clsidFilter,
4806         LPCWSTR Name,
4807         IMoniker **ppMoniker,
4808         const CLSID *pclsidCategory,
4809         LPCOLESTR szInstance,
4810         const REGFILTER2 *prf2);
4811 
4812     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
4813         IFilterMapper3 *This,
4814         IEnumMoniker **ppEnum,
4815         DWORD dwFlags,
4816         WINBOOL bExactMatch,
4817         DWORD dwMerit,
4818         WINBOOL bInputNeeded,
4819         DWORD cInputTypes,
4820         const GUID *pInputTypes,
4821         const REGPINMEDIUM *pMedIn,
4822         const CLSID *pPinCategoryIn,
4823         WINBOOL bRender,
4824         WINBOOL bOutputNeeded,
4825         DWORD cOutputTypes,
4826         const GUID *pOutputTypes,
4827         const REGPINMEDIUM *pMedOut,
4828         const CLSID *pPinCategoryOut);
4829 
4830     /*** IFilterMapper3 methods ***/
4831     HRESULT (STDMETHODCALLTYPE *GetICreateDevEnum)(
4832         IFilterMapper3 *This,
4833         ICreateDevEnum **ppEnum);
4834 
4835     END_INTERFACE
4836 } IFilterMapper3Vtbl;
4837 
4838 interface IFilterMapper3 {
4839     CONST_VTBL IFilterMapper3Vtbl* lpVtbl;
4840 };
4841 
4842 #ifdef COBJMACROS
4843 #ifndef WIDL_C_INLINE_WRAPPERS
4844 /*** IUnknown methods ***/
4845 #define IFilterMapper3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4846 #define IFilterMapper3_AddRef(This) (This)->lpVtbl->AddRef(This)
4847 #define IFilterMapper3_Release(This) (This)->lpVtbl->Release(This)
4848 /*** IFilterMapper2 methods ***/
4849 #define IFilterMapper3_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
4850 #define IFilterMapper3_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
4851 #define IFilterMapper3_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
4852 #define IFilterMapper3_EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut)
4853 /*** IFilterMapper3 methods ***/
4854 #define IFilterMapper3_GetICreateDevEnum(This,ppEnum) (This)->lpVtbl->GetICreateDevEnum(This,ppEnum)
4855 #else
4856 /*** IUnknown methods ***/
4857 static FORCEINLINE HRESULT IFilterMapper3_QueryInterface(IFilterMapper3* This,REFIID riid,void **ppvObject) {
4858     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4859 }
4860 static FORCEINLINE ULONG IFilterMapper3_AddRef(IFilterMapper3* This) {
4861     return This->lpVtbl->AddRef(This);
4862 }
4863 static FORCEINLINE ULONG IFilterMapper3_Release(IFilterMapper3* This) {
4864     return This->lpVtbl->Release(This);
4865 }
4866 /*** IFilterMapper2 methods ***/
4867 static FORCEINLINE HRESULT IFilterMapper3_CreateCategory(IFilterMapper3* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
4868     return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
4869 }
4870 static FORCEINLINE HRESULT IFilterMapper3_UnregisterFilter(IFilterMapper3* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
4871     return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
4872 }
4873 static FORCEINLINE HRESULT IFilterMapper3_RegisterFilter(IFilterMapper3* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) {
4874     return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2);
4875 }
4876 static FORCEINLINE HRESULT IFilterMapper3_EnumMatchingFilters(IFilterMapper3* This,IEnumMoniker **ppEnum,DWORD dwFlags,WINBOOL bExactMatch,DWORD dwMerit,WINBOOL bInputNeeded,DWORD cInputTypes,const GUID *pInputTypes,const REGPINMEDIUM *pMedIn,const CLSID *pPinCategoryIn,WINBOOL bRender,WINBOOL bOutputNeeded,DWORD cOutputTypes,const GUID *pOutputTypes,const REGPINMEDIUM *pMedOut,const CLSID *pPinCategoryOut) {
4877     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut);
4878 }
4879 /*** IFilterMapper3 methods ***/
4880 static FORCEINLINE HRESULT IFilterMapper3_GetICreateDevEnum(IFilterMapper3* This,ICreateDevEnum **ppEnum) {
4881     return This->lpVtbl->GetICreateDevEnum(This,ppEnum);
4882 }
4883 #endif
4884 #endif
4885 
4886 #endif
4887 
4888 
4889 #endif  /* __IFilterMapper3_INTERFACE_DEFINED__ */
4890 
4891 typedef enum tagQualityMessageType {
4892     Famine = 0,
4893     Flood = 1
4894 } QualityMessageType;
4895 typedef struct tagQuality {
4896     QualityMessageType Type;
4897     LONG Proportion;
4898     REFERENCE_TIME Late;
4899     REFERENCE_TIME TimeStamp;
4900 } Quality;
4901 typedef IQualityControl *PQUALITYCONTROL;
4902 /*****************************************************************************
4903  * IQualityControl interface
4904  */
4905 #ifndef __IQualityControl_INTERFACE_DEFINED__
4906 #define __IQualityControl_INTERFACE_DEFINED__
4907 
4908 DEFINE_GUID(IID_IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4909 #if defined(__cplusplus) && !defined(CINTERFACE)
4910 MIDL_INTERFACE("56a868a5-0ad4-11ce-b03a-0020af0ba770")
4911 IQualityControl : public IUnknown
4912 {
4913     virtual HRESULT STDMETHODCALLTYPE Notify(
4914         IBaseFilter *pSelf,
4915         Quality q) = 0;
4916 
4917     virtual HRESULT STDMETHODCALLTYPE SetSink(
4918         IQualityControl *piqc) = 0;
4919 
4920 };
4921 #ifdef __CRT_UUID_DECL
4922 __CRT_UUID_DECL(IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
4923 #endif
4924 #else
4925 typedef struct IQualityControlVtbl {
4926     BEGIN_INTERFACE
4927 
4928     /*** IUnknown methods ***/
4929     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4930         IQualityControl *This,
4931         REFIID riid,
4932         void **ppvObject);
4933 
4934     ULONG (STDMETHODCALLTYPE *AddRef)(
4935         IQualityControl *This);
4936 
4937     ULONG (STDMETHODCALLTYPE *Release)(
4938         IQualityControl *This);
4939 
4940     /*** IQualityControl methods ***/
4941     HRESULT (STDMETHODCALLTYPE *Notify)(
4942         IQualityControl *This,
4943         IBaseFilter *pSelf,
4944         Quality q);
4945 
4946     HRESULT (STDMETHODCALLTYPE *SetSink)(
4947         IQualityControl *This,
4948         IQualityControl *piqc);
4949 
4950     END_INTERFACE
4951 } IQualityControlVtbl;
4952 
4953 interface IQualityControl {
4954     CONST_VTBL IQualityControlVtbl* lpVtbl;
4955 };
4956 
4957 #ifdef COBJMACROS
4958 #ifndef WIDL_C_INLINE_WRAPPERS
4959 /*** IUnknown methods ***/
4960 #define IQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4961 #define IQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
4962 #define IQualityControl_Release(This) (This)->lpVtbl->Release(This)
4963 /*** IQualityControl methods ***/
4964 #define IQualityControl_Notify(This,pSelf,q) (This)->lpVtbl->Notify(This,pSelf,q)
4965 #define IQualityControl_SetSink(This,piqc) (This)->lpVtbl->SetSink(This,piqc)
4966 #else
4967 /*** IUnknown methods ***/
4968 static FORCEINLINE HRESULT IQualityControl_QueryInterface(IQualityControl* This,REFIID riid,void **ppvObject) {
4969     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4970 }
4971 static FORCEINLINE ULONG IQualityControl_AddRef(IQualityControl* This) {
4972     return This->lpVtbl->AddRef(This);
4973 }
4974 static FORCEINLINE ULONG IQualityControl_Release(IQualityControl* This) {
4975     return This->lpVtbl->Release(This);
4976 }
4977 /*** IQualityControl methods ***/
4978 static FORCEINLINE HRESULT IQualityControl_Notify(IQualityControl* This,IBaseFilter *pSelf,Quality q) {
4979     return This->lpVtbl->Notify(This,pSelf,q);
4980 }
4981 static FORCEINLINE HRESULT IQualityControl_SetSink(IQualityControl* This,IQualityControl *piqc) {
4982     return This->lpVtbl->SetSink(This,piqc);
4983 }
4984 #endif
4985 #endif
4986 
4987 #endif
4988 
4989 
4990 #endif  /* __IQualityControl_INTERFACE_DEFINED__ */
4991 
4992 enum {
4993     CK_NOCOLORKEY = 0x0,
4994     CK_INDEX = 0x1,
4995     CK_RGB = 0x2
4996 };
4997 typedef struct tagCOLORKEY {
4998     DWORD KeyType;
4999     DWORD PaletteIndex;
5000     COLORREF LowColorValue;
5001     COLORREF HighColorValue;
5002 } COLORKEY;
5003 enum {
5004     ADVISE_NONE = 0x0,
5005     ADVISE_CLIPPING = 0x1,
5006     ADVISE_PALETTE = 0x2,
5007     ADVISE_COLORKEY = 0x4,
5008     ADVISE_POSITION = 0x8,
5009     ADVISE_DISPLAY_CHANGE = 0x10
5010 };
5011 #define ADVISE_ALL (((ADVISE_CLIPPING | ADVISE_PALETTE) | ADVISE_COLORKEY) | ADVISE_POSITION)
5012 
5013 #define ADVISE_ALL2 (ADVISE_ALL | ADVISE_DISPLAY_CHANGE)
5014 
5015 #ifndef _WINGDI_
5016 typedef struct _RGNDATAHEADER {
5017     DWORD dwSize;
5018     DWORD iType;
5019     DWORD nCount;
5020     DWORD nRgnSize;
5021     RECT rcBound;
5022 } RGNDATAHEADER;
5023 typedef struct _RGNDATA {
5024     RGNDATAHEADER rdh;
5025     char Buffer[1];
5026 } RGNDATA;
5027 #endif /* _WINGDI_ */
5028 /*****************************************************************************
5029  * IOverlayNotify interface
5030  */
5031 #ifndef __IOverlayNotify_INTERFACE_DEFINED__
5032 #define __IOverlayNotify_INTERFACE_DEFINED__
5033 
5034 DEFINE_GUID(IID_IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5035 #if defined(__cplusplus) && !defined(CINTERFACE)
5036 MIDL_INTERFACE("56a868a0-0ad4-11ce-b03a-0020af0ba770")
5037 IOverlayNotify : public IUnknown
5038 {
5039     virtual HRESULT STDMETHODCALLTYPE OnPaletteChange(
5040         DWORD dwColors,
5041         const PALETTEENTRY *pPalette) = 0;
5042 
5043     virtual HRESULT STDMETHODCALLTYPE OnClipChange(
5044         const RECT *pSourceRect,
5045         const RECT *pDestinationRect,
5046         const RGNDATA *pRgnData) = 0;
5047 
5048     virtual HRESULT STDMETHODCALLTYPE OnColorKeyChange(
5049         const COLORKEY *pColorKey) = 0;
5050 
5051     virtual HRESULT STDMETHODCALLTYPE OnPositionChange(
5052         const RECT *pSourceRect,
5053         const RECT *pDestinationRect) = 0;
5054 
5055 };
5056 #ifdef __CRT_UUID_DECL
5057 __CRT_UUID_DECL(IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5058 #endif
5059 #else
5060 typedef struct IOverlayNotifyVtbl {
5061     BEGIN_INTERFACE
5062 
5063     /*** IUnknown methods ***/
5064     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5065         IOverlayNotify *This,
5066         REFIID riid,
5067         void **ppvObject);
5068 
5069     ULONG (STDMETHODCALLTYPE *AddRef)(
5070         IOverlayNotify *This);
5071 
5072     ULONG (STDMETHODCALLTYPE *Release)(
5073         IOverlayNotify *This);
5074 
5075     /*** IOverlayNotify methods ***/
5076     HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
5077         IOverlayNotify *This,
5078         DWORD dwColors,
5079         const PALETTEENTRY *pPalette);
5080 
5081     HRESULT (STDMETHODCALLTYPE *OnClipChange)(
5082         IOverlayNotify *This,
5083         const RECT *pSourceRect,
5084         const RECT *pDestinationRect,
5085         const RGNDATA *pRgnData);
5086 
5087     HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
5088         IOverlayNotify *This,
5089         const COLORKEY *pColorKey);
5090 
5091     HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
5092         IOverlayNotify *This,
5093         const RECT *pSourceRect,
5094         const RECT *pDestinationRect);
5095 
5096     END_INTERFACE
5097 } IOverlayNotifyVtbl;
5098 
5099 interface IOverlayNotify {
5100     CONST_VTBL IOverlayNotifyVtbl* lpVtbl;
5101 };
5102 
5103 #ifdef COBJMACROS
5104 #ifndef WIDL_C_INLINE_WRAPPERS
5105 /*** IUnknown methods ***/
5106 #define IOverlayNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5107 #define IOverlayNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
5108 #define IOverlayNotify_Release(This) (This)->lpVtbl->Release(This)
5109 /*** IOverlayNotify methods ***/
5110 #define IOverlayNotify_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
5111 #define IOverlayNotify_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
5112 #define IOverlayNotify_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
5113 #define IOverlayNotify_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
5114 #else
5115 /*** IUnknown methods ***/
5116 static FORCEINLINE HRESULT IOverlayNotify_QueryInterface(IOverlayNotify* This,REFIID riid,void **ppvObject) {
5117     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5118 }
5119 static FORCEINLINE ULONG IOverlayNotify_AddRef(IOverlayNotify* This) {
5120     return This->lpVtbl->AddRef(This);
5121 }
5122 static FORCEINLINE ULONG IOverlayNotify_Release(IOverlayNotify* This) {
5123     return This->lpVtbl->Release(This);
5124 }
5125 /*** IOverlayNotify methods ***/
5126 static FORCEINLINE HRESULT IOverlayNotify_OnPaletteChange(IOverlayNotify* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
5127     return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
5128 }
5129 static FORCEINLINE HRESULT IOverlayNotify_OnClipChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) {
5130     return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData);
5131 }
5132 static FORCEINLINE HRESULT IOverlayNotify_OnColorKeyChange(IOverlayNotify* This,const COLORKEY *pColorKey) {
5133     return This->lpVtbl->OnColorKeyChange(This,pColorKey);
5134 }
5135 static FORCEINLINE HRESULT IOverlayNotify_OnPositionChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
5136     return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
5137 }
5138 #endif
5139 #endif
5140 
5141 #endif
5142 
5143 
5144 #endif  /* __IOverlayNotify_INTERFACE_DEFINED__ */
5145 
5146 typedef IOverlayNotify *POVERLAYNOTIFY;
5147 #if 0
5148 typedef HANDLE HMONITOR;
5149 #endif /* 0 */
5150 /*****************************************************************************
5151  * IOverlayNotify2 interface
5152  */
5153 #ifndef __IOverlayNotify2_INTERFACE_DEFINED__
5154 #define __IOverlayNotify2_INTERFACE_DEFINED__
5155 
5156 DEFINE_GUID(IID_IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96);
5157 #if defined(__cplusplus) && !defined(CINTERFACE)
5158 MIDL_INTERFACE("680efa10-d535-11d1-87c8-00a0c9223196")
5159 IOverlayNotify2 : public IOverlayNotify
5160 {
5161     virtual HRESULT STDMETHODCALLTYPE OnDisplayChange(
5162         HMONITOR hMonitor) = 0;
5163 
5164 };
5165 #ifdef __CRT_UUID_DECL
5166 __CRT_UUID_DECL(IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96)
5167 #endif
5168 #else
5169 typedef struct IOverlayNotify2Vtbl {
5170     BEGIN_INTERFACE
5171 
5172     /*** IUnknown methods ***/
5173     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5174         IOverlayNotify2 *This,
5175         REFIID riid,
5176         void **ppvObject);
5177 
5178     ULONG (STDMETHODCALLTYPE *AddRef)(
5179         IOverlayNotify2 *This);
5180 
5181     ULONG (STDMETHODCALLTYPE *Release)(
5182         IOverlayNotify2 *This);
5183 
5184     /*** IOverlayNotify methods ***/
5185     HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
5186         IOverlayNotify2 *This,
5187         DWORD dwColors,
5188         const PALETTEENTRY *pPalette);
5189 
5190     HRESULT (STDMETHODCALLTYPE *OnClipChange)(
5191         IOverlayNotify2 *This,
5192         const RECT *pSourceRect,
5193         const RECT *pDestinationRect,
5194         const RGNDATA *pRgnData);
5195 
5196     HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
5197         IOverlayNotify2 *This,
5198         const COLORKEY *pColorKey);
5199 
5200     HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
5201         IOverlayNotify2 *This,
5202         const RECT *pSourceRect,
5203         const RECT *pDestinationRect);
5204 
5205     /*** IOverlayNotify2 methods ***/
5206     HRESULT (STDMETHODCALLTYPE *OnDisplayChange)(
5207         IOverlayNotify2 *This,
5208         HMONITOR hMonitor);
5209 
5210     END_INTERFACE
5211 } IOverlayNotify2Vtbl;
5212 
5213 interface IOverlayNotify2 {
5214     CONST_VTBL IOverlayNotify2Vtbl* lpVtbl;
5215 };
5216 
5217 #ifdef COBJMACROS
5218 #ifndef WIDL_C_INLINE_WRAPPERS
5219 /*** IUnknown methods ***/
5220 #define IOverlayNotify2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5221 #define IOverlayNotify2_AddRef(This) (This)->lpVtbl->AddRef(This)
5222 #define IOverlayNotify2_Release(This) (This)->lpVtbl->Release(This)
5223 /*** IOverlayNotify methods ***/
5224 #define IOverlayNotify2_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
5225 #define IOverlayNotify2_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
5226 #define IOverlayNotify2_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
5227 #define IOverlayNotify2_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
5228 /*** IOverlayNotify2 methods ***/
5229 #define IOverlayNotify2_OnDisplayChange(This,hMonitor) (This)->lpVtbl->OnDisplayChange(This,hMonitor)
5230 #else
5231 /*** IUnknown methods ***/
5232 static FORCEINLINE HRESULT IOverlayNotify2_QueryInterface(IOverlayNotify2* This,REFIID riid,void **ppvObject) {
5233     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5234 }
5235 static FORCEINLINE ULONG IOverlayNotify2_AddRef(IOverlayNotify2* This) {
5236     return This->lpVtbl->AddRef(This);
5237 }
5238 static FORCEINLINE ULONG IOverlayNotify2_Release(IOverlayNotify2* This) {
5239     return This->lpVtbl->Release(This);
5240 }
5241 /*** IOverlayNotify methods ***/
5242 static FORCEINLINE HRESULT IOverlayNotify2_OnPaletteChange(IOverlayNotify2* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
5243     return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
5244 }
5245 static FORCEINLINE HRESULT IOverlayNotify2_OnClipChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) {
5246     return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData);
5247 }
5248 static FORCEINLINE HRESULT IOverlayNotify2_OnColorKeyChange(IOverlayNotify2* This,const COLORKEY *pColorKey) {
5249     return This->lpVtbl->OnColorKeyChange(This,pColorKey);
5250 }
5251 static FORCEINLINE HRESULT IOverlayNotify2_OnPositionChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
5252     return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
5253 }
5254 /*** IOverlayNotify2 methods ***/
5255 static FORCEINLINE HRESULT IOverlayNotify2_OnDisplayChange(IOverlayNotify2* This,HMONITOR hMonitor) {
5256     return This->lpVtbl->OnDisplayChange(This,hMonitor);
5257 }
5258 #endif
5259 #endif
5260 
5261 #endif
5262 
5263 
5264 #endif  /* __IOverlayNotify2_INTERFACE_DEFINED__ */
5265 
5266 typedef IOverlayNotify2 *POVERLAYNOTIFY2;
5267 /*****************************************************************************
5268  * IOverlay interface
5269  */
5270 #ifndef __IOverlay_INTERFACE_DEFINED__
5271 #define __IOverlay_INTERFACE_DEFINED__
5272 
5273 DEFINE_GUID(IID_IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5274 #if defined(__cplusplus) && !defined(CINTERFACE)
5275 MIDL_INTERFACE("56a868a1-0ad4-11ce-b03a-0020af0ba770")
5276 IOverlay : public IUnknown
5277 {
5278     virtual HRESULT STDMETHODCALLTYPE GetPalette(
5279         DWORD *pdwColors,
5280         PALETTEENTRY **ppPalette) = 0;
5281 
5282     virtual HRESULT STDMETHODCALLTYPE SetPalette(
5283         DWORD dwColors,
5284         PALETTEENTRY *pPalette) = 0;
5285 
5286     virtual HRESULT STDMETHODCALLTYPE GetDefaultColorKey(
5287         COLORKEY *pColorKey) = 0;
5288 
5289     virtual HRESULT STDMETHODCALLTYPE GetColorKey(
5290         COLORKEY *pColorKey) = 0;
5291 
5292     virtual HRESULT STDMETHODCALLTYPE SetColorKey(
5293         COLORKEY *pColorKey) = 0;
5294 
5295     virtual HRESULT STDMETHODCALLTYPE GetWindowHandle(
5296         HWND *pHwnd) = 0;
5297 
5298     virtual HRESULT STDMETHODCALLTYPE GetClipList(
5299         RECT *pSourceRect,
5300         RECT *pDestinationRect,
5301         RGNDATA **ppRgnData) = 0;
5302 
5303     virtual HRESULT STDMETHODCALLTYPE GetVideoPosition(
5304         RECT *pSourceRect,
5305         RECT *pDestinationRect) = 0;
5306 
5307     virtual HRESULT STDMETHODCALLTYPE Advise(
5308         IOverlayNotify *pOverlayNotify,
5309         DWORD dwInterests) = 0;
5310 
5311     virtual HRESULT STDMETHODCALLTYPE Unadvise(
5312         ) = 0;
5313 
5314 };
5315 #ifdef __CRT_UUID_DECL
5316 __CRT_UUID_DECL(IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5317 #endif
5318 #else
5319 typedef struct IOverlayVtbl {
5320     BEGIN_INTERFACE
5321 
5322     /*** IUnknown methods ***/
5323     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5324         IOverlay *This,
5325         REFIID riid,
5326         void **ppvObject);
5327 
5328     ULONG (STDMETHODCALLTYPE *AddRef)(
5329         IOverlay *This);
5330 
5331     ULONG (STDMETHODCALLTYPE *Release)(
5332         IOverlay *This);
5333 
5334     /*** IOverlay methods ***/
5335     HRESULT (STDMETHODCALLTYPE *GetPalette)(
5336         IOverlay *This,
5337         DWORD *pdwColors,
5338         PALETTEENTRY **ppPalette);
5339 
5340     HRESULT (STDMETHODCALLTYPE *SetPalette)(
5341         IOverlay *This,
5342         DWORD dwColors,
5343         PALETTEENTRY *pPalette);
5344 
5345     HRESULT (STDMETHODCALLTYPE *GetDefaultColorKey)(
5346         IOverlay *This,
5347         COLORKEY *pColorKey);
5348 
5349     HRESULT (STDMETHODCALLTYPE *GetColorKey)(
5350         IOverlay *This,
5351         COLORKEY *pColorKey);
5352 
5353     HRESULT (STDMETHODCALLTYPE *SetColorKey)(
5354         IOverlay *This,
5355         COLORKEY *pColorKey);
5356 
5357     HRESULT (STDMETHODCALLTYPE *GetWindowHandle)(
5358         IOverlay *This,
5359         HWND *pHwnd);
5360 
5361     HRESULT (STDMETHODCALLTYPE *GetClipList)(
5362         IOverlay *This,
5363         RECT *pSourceRect,
5364         RECT *pDestinationRect,
5365         RGNDATA **ppRgnData);
5366 
5367     HRESULT (STDMETHODCALLTYPE *GetVideoPosition)(
5368         IOverlay *This,
5369         RECT *pSourceRect,
5370         RECT *pDestinationRect);
5371 
5372     HRESULT (STDMETHODCALLTYPE *Advise)(
5373         IOverlay *This,
5374         IOverlayNotify *pOverlayNotify,
5375         DWORD dwInterests);
5376 
5377     HRESULT (STDMETHODCALLTYPE *Unadvise)(
5378         IOverlay *This);
5379 
5380     END_INTERFACE
5381 } IOverlayVtbl;
5382 
5383 interface IOverlay {
5384     CONST_VTBL IOverlayVtbl* lpVtbl;
5385 };
5386 
5387 #ifdef COBJMACROS
5388 #ifndef WIDL_C_INLINE_WRAPPERS
5389 /*** IUnknown methods ***/
5390 #define IOverlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5391 #define IOverlay_AddRef(This) (This)->lpVtbl->AddRef(This)
5392 #define IOverlay_Release(This) (This)->lpVtbl->Release(This)
5393 /*** IOverlay methods ***/
5394 #define IOverlay_GetPalette(This,pdwColors,ppPalette) (This)->lpVtbl->GetPalette(This,pdwColors,ppPalette)
5395 #define IOverlay_SetPalette(This,dwColors,pPalette) (This)->lpVtbl->SetPalette(This,dwColors,pPalette)
5396 #define IOverlay_GetDefaultColorKey(This,pColorKey) (This)->lpVtbl->GetDefaultColorKey(This,pColorKey)
5397 #define IOverlay_GetColorKey(This,pColorKey) (This)->lpVtbl->GetColorKey(This,pColorKey)
5398 #define IOverlay_SetColorKey(This,pColorKey) (This)->lpVtbl->SetColorKey(This,pColorKey)
5399 #define IOverlay_GetWindowHandle(This,pHwnd) (This)->lpVtbl->GetWindowHandle(This,pHwnd)
5400 #define IOverlay_GetClipList(This,pSourceRect,pDestinationRect,ppRgnData) (This)->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData)
5401 #define IOverlay_GetVideoPosition(This,pSourceRect,pDestinationRect) (This)->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect)
5402 #define IOverlay_Advise(This,pOverlayNotify,dwInterests) (This)->lpVtbl->Advise(This,pOverlayNotify,dwInterests)
5403 #define IOverlay_Unadvise(This) (This)->lpVtbl->Unadvise(This)
5404 #else
5405 /*** IUnknown methods ***/
5406 static FORCEINLINE HRESULT IOverlay_QueryInterface(IOverlay* This,REFIID riid,void **ppvObject) {
5407     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5408 }
5409 static FORCEINLINE ULONG IOverlay_AddRef(IOverlay* This) {
5410     return This->lpVtbl->AddRef(This);
5411 }
5412 static FORCEINLINE ULONG IOverlay_Release(IOverlay* This) {
5413     return This->lpVtbl->Release(This);
5414 }
5415 /*** IOverlay methods ***/
5416 static FORCEINLINE HRESULT IOverlay_GetPalette(IOverlay* This,DWORD *pdwColors,PALETTEENTRY **ppPalette) {
5417     return This->lpVtbl->GetPalette(This,pdwColors,ppPalette);
5418 }
5419 static FORCEINLINE HRESULT IOverlay_SetPalette(IOverlay* This,DWORD dwColors,PALETTEENTRY *pPalette) {
5420     return This->lpVtbl->SetPalette(This,dwColors,pPalette);
5421 }
5422 static FORCEINLINE HRESULT IOverlay_GetDefaultColorKey(IOverlay* This,COLORKEY *pColorKey) {
5423     return This->lpVtbl->GetDefaultColorKey(This,pColorKey);
5424 }
5425 static FORCEINLINE HRESULT IOverlay_GetColorKey(IOverlay* This,COLORKEY *pColorKey) {
5426     return This->lpVtbl->GetColorKey(This,pColorKey);
5427 }
5428 static FORCEINLINE HRESULT IOverlay_SetColorKey(IOverlay* This,COLORKEY *pColorKey) {
5429     return This->lpVtbl->SetColorKey(This,pColorKey);
5430 }
5431 static FORCEINLINE HRESULT IOverlay_GetWindowHandle(IOverlay* This,HWND *pHwnd) {
5432     return This->lpVtbl->GetWindowHandle(This,pHwnd);
5433 }
5434 static FORCEINLINE HRESULT IOverlay_GetClipList(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData) {
5435     return This->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData);
5436 }
5437 static FORCEINLINE HRESULT IOverlay_GetVideoPosition(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect) {
5438     return This->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect);
5439 }
5440 static FORCEINLINE HRESULT IOverlay_Advise(IOverlay* This,IOverlayNotify *pOverlayNotify,DWORD dwInterests) {
5441     return This->lpVtbl->Advise(This,pOverlayNotify,dwInterests);
5442 }
5443 static FORCEINLINE HRESULT IOverlay_Unadvise(IOverlay* This) {
5444     return This->lpVtbl->Unadvise(This);
5445 }
5446 #endif
5447 #endif
5448 
5449 #endif
5450 
5451 
5452 #endif  /* __IOverlay_INTERFACE_DEFINED__ */
5453 
5454 typedef IOverlay *POVERLAY;
5455 /*****************************************************************************
5456  * IMediaEventSink interface
5457  */
5458 #ifndef __IMediaEventSink_INTERFACE_DEFINED__
5459 #define __IMediaEventSink_INTERFACE_DEFINED__
5460 
5461 DEFINE_GUID(IID_IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5462 #if defined(__cplusplus) && !defined(CINTERFACE)
5463 MIDL_INTERFACE("56a868a2-0ad4-11ce-b03a-0020af0ba770")
5464 IMediaEventSink : public IUnknown
5465 {
5466     virtual HRESULT STDMETHODCALLTYPE Notify(
5467         LONG EventCode,
5468         LONG_PTR EventParam1,
5469         LONG_PTR EventParam2) = 0;
5470 
5471 };
5472 #ifdef __CRT_UUID_DECL
5473 __CRT_UUID_DECL(IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5474 #endif
5475 #else
5476 typedef struct IMediaEventSinkVtbl {
5477     BEGIN_INTERFACE
5478 
5479     /*** IUnknown methods ***/
5480     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5481         IMediaEventSink *This,
5482         REFIID riid,
5483         void **ppvObject);
5484 
5485     ULONG (STDMETHODCALLTYPE *AddRef)(
5486         IMediaEventSink *This);
5487 
5488     ULONG (STDMETHODCALLTYPE *Release)(
5489         IMediaEventSink *This);
5490 
5491     /*** IMediaEventSink methods ***/
5492     HRESULT (STDMETHODCALLTYPE *Notify)(
5493         IMediaEventSink *This,
5494         LONG EventCode,
5495         LONG_PTR EventParam1,
5496         LONG_PTR EventParam2);
5497 
5498     END_INTERFACE
5499 } IMediaEventSinkVtbl;
5500 
5501 interface IMediaEventSink {
5502     CONST_VTBL IMediaEventSinkVtbl* lpVtbl;
5503 };
5504 
5505 #ifdef COBJMACROS
5506 #ifndef WIDL_C_INLINE_WRAPPERS
5507 /*** IUnknown methods ***/
5508 #define IMediaEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5509 #define IMediaEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
5510 #define IMediaEventSink_Release(This) (This)->lpVtbl->Release(This)
5511 /*** IMediaEventSink methods ***/
5512 #define IMediaEventSink_Notify(This,EventCode,EventParam1,EventParam2) (This)->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2)
5513 #else
5514 /*** IUnknown methods ***/
5515 static FORCEINLINE HRESULT IMediaEventSink_QueryInterface(IMediaEventSink* This,REFIID riid,void **ppvObject) {
5516     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5517 }
5518 static FORCEINLINE ULONG IMediaEventSink_AddRef(IMediaEventSink* This) {
5519     return This->lpVtbl->AddRef(This);
5520 }
5521 static FORCEINLINE ULONG IMediaEventSink_Release(IMediaEventSink* This) {
5522     return This->lpVtbl->Release(This);
5523 }
5524 /*** IMediaEventSink methods ***/
5525 static FORCEINLINE HRESULT IMediaEventSink_Notify(IMediaEventSink* This,LONG EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2) {
5526     return This->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2);
5527 }
5528 #endif
5529 #endif
5530 
5531 #endif
5532 
5533 
5534 #endif  /* __IMediaEventSink_INTERFACE_DEFINED__ */
5535 
5536 typedef IMediaEventSink *PMEDIAEVENTSINK;
5537 /*****************************************************************************
5538  * IFileSourceFilter interface
5539  */
5540 #ifndef __IFileSourceFilter_INTERFACE_DEFINED__
5541 #define __IFileSourceFilter_INTERFACE_DEFINED__
5542 
5543 DEFINE_GUID(IID_IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5544 #if defined(__cplusplus) && !defined(CINTERFACE)
5545 MIDL_INTERFACE("56a868a6-0ad4-11ce-b03a-0020af0ba770")
5546 IFileSourceFilter : public IUnknown
5547 {
5548     virtual HRESULT STDMETHODCALLTYPE Load(
5549         LPCOLESTR pszFileName,
5550         const AM_MEDIA_TYPE *pmt) = 0;
5551 
5552     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
5553         LPOLESTR *ppszFileName,
5554         AM_MEDIA_TYPE *pmt) = 0;
5555 
5556 };
5557 #ifdef __CRT_UUID_DECL
5558 __CRT_UUID_DECL(IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5559 #endif
5560 #else
5561 typedef struct IFileSourceFilterVtbl {
5562     BEGIN_INTERFACE
5563 
5564     /*** IUnknown methods ***/
5565     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5566         IFileSourceFilter *This,
5567         REFIID riid,
5568         void **ppvObject);
5569 
5570     ULONG (STDMETHODCALLTYPE *AddRef)(
5571         IFileSourceFilter *This);
5572 
5573     ULONG (STDMETHODCALLTYPE *Release)(
5574         IFileSourceFilter *This);
5575 
5576     /*** IFileSourceFilter methods ***/
5577     HRESULT (STDMETHODCALLTYPE *Load)(
5578         IFileSourceFilter *This,
5579         LPCOLESTR pszFileName,
5580         const AM_MEDIA_TYPE *pmt);
5581 
5582     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
5583         IFileSourceFilter *This,
5584         LPOLESTR *ppszFileName,
5585         AM_MEDIA_TYPE *pmt);
5586 
5587     END_INTERFACE
5588 } IFileSourceFilterVtbl;
5589 
5590 interface IFileSourceFilter {
5591     CONST_VTBL IFileSourceFilterVtbl* lpVtbl;
5592 };
5593 
5594 #ifdef COBJMACROS
5595 #ifndef WIDL_C_INLINE_WRAPPERS
5596 /*** IUnknown methods ***/
5597 #define IFileSourceFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5598 #define IFileSourceFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
5599 #define IFileSourceFilter_Release(This) (This)->lpVtbl->Release(This)
5600 /*** IFileSourceFilter methods ***/
5601 #define IFileSourceFilter_Load(This,pszFileName,pmt) (This)->lpVtbl->Load(This,pszFileName,pmt)
5602 #define IFileSourceFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
5603 #else
5604 /*** IUnknown methods ***/
5605 static FORCEINLINE HRESULT IFileSourceFilter_QueryInterface(IFileSourceFilter* This,REFIID riid,void **ppvObject) {
5606     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5607 }
5608 static FORCEINLINE ULONG IFileSourceFilter_AddRef(IFileSourceFilter* This) {
5609     return This->lpVtbl->AddRef(This);
5610 }
5611 static FORCEINLINE ULONG IFileSourceFilter_Release(IFileSourceFilter* This) {
5612     return This->lpVtbl->Release(This);
5613 }
5614 /*** IFileSourceFilter methods ***/
5615 static FORCEINLINE HRESULT IFileSourceFilter_Load(IFileSourceFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
5616     return This->lpVtbl->Load(This,pszFileName,pmt);
5617 }
5618 static FORCEINLINE HRESULT IFileSourceFilter_GetCurFile(IFileSourceFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
5619     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
5620 }
5621 #endif
5622 #endif
5623 
5624 #endif
5625 
5626 
5627 #endif  /* __IFileSourceFilter_INTERFACE_DEFINED__ */
5628 
5629 typedef IFileSourceFilter *PFILTERFILESOURCE;
5630 /*****************************************************************************
5631  * IFileSinkFilter interface
5632  */
5633 #ifndef __IFileSinkFilter_INTERFACE_DEFINED__
5634 #define __IFileSinkFilter_INTERFACE_DEFINED__
5635 
5636 DEFINE_GUID(IID_IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
5637 #if defined(__cplusplus) && !defined(CINTERFACE)
5638 MIDL_INTERFACE("a2104830-7c70-11cf-8bce-00aa00a3f1a6")
5639 IFileSinkFilter : public IUnknown
5640 {
5641     virtual HRESULT STDMETHODCALLTYPE SetFileName(
5642         LPCOLESTR pszFileName,
5643         const AM_MEDIA_TYPE *pmt) = 0;
5644 
5645     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
5646         LPOLESTR *ppszFileName,
5647         AM_MEDIA_TYPE *pmt) = 0;
5648 
5649 };
5650 #ifdef __CRT_UUID_DECL
5651 __CRT_UUID_DECL(IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6)
5652 #endif
5653 #else
5654 typedef struct IFileSinkFilterVtbl {
5655     BEGIN_INTERFACE
5656 
5657     /*** IUnknown methods ***/
5658     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5659         IFileSinkFilter *This,
5660         REFIID riid,
5661         void **ppvObject);
5662 
5663     ULONG (STDMETHODCALLTYPE *AddRef)(
5664         IFileSinkFilter *This);
5665 
5666     ULONG (STDMETHODCALLTYPE *Release)(
5667         IFileSinkFilter *This);
5668 
5669     /*** IFileSinkFilter methods ***/
5670     HRESULT (STDMETHODCALLTYPE *SetFileName)(
5671         IFileSinkFilter *This,
5672         LPCOLESTR pszFileName,
5673         const AM_MEDIA_TYPE *pmt);
5674 
5675     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
5676         IFileSinkFilter *This,
5677         LPOLESTR *ppszFileName,
5678         AM_MEDIA_TYPE *pmt);
5679 
5680     END_INTERFACE
5681 } IFileSinkFilterVtbl;
5682 
5683 interface IFileSinkFilter {
5684     CONST_VTBL IFileSinkFilterVtbl* lpVtbl;
5685 };
5686 
5687 #ifdef COBJMACROS
5688 #ifndef WIDL_C_INLINE_WRAPPERS
5689 /*** IUnknown methods ***/
5690 #define IFileSinkFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5691 #define IFileSinkFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
5692 #define IFileSinkFilter_Release(This) (This)->lpVtbl->Release(This)
5693 /*** IFileSinkFilter methods ***/
5694 #define IFileSinkFilter_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
5695 #define IFileSinkFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
5696 #else
5697 /*** IUnknown methods ***/
5698 static FORCEINLINE HRESULT IFileSinkFilter_QueryInterface(IFileSinkFilter* This,REFIID riid,void **ppvObject) {
5699     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5700 }
5701 static FORCEINLINE ULONG IFileSinkFilter_AddRef(IFileSinkFilter* This) {
5702     return This->lpVtbl->AddRef(This);
5703 }
5704 static FORCEINLINE ULONG IFileSinkFilter_Release(IFileSinkFilter* This) {
5705     return This->lpVtbl->Release(This);
5706 }
5707 /*** IFileSinkFilter methods ***/
5708 static FORCEINLINE HRESULT IFileSinkFilter_SetFileName(IFileSinkFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
5709     return This->lpVtbl->SetFileName(This,pszFileName,pmt);
5710 }
5711 static FORCEINLINE HRESULT IFileSinkFilter_GetCurFile(IFileSinkFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
5712     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
5713 }
5714 #endif
5715 #endif
5716 
5717 #endif
5718 
5719 
5720 #endif  /* __IFileSinkFilter_INTERFACE_DEFINED__ */
5721 
5722 typedef IFileSinkFilter *PFILTERFILESINK;
5723 /*****************************************************************************
5724  * IFileSinkFilter2 interface
5725  */
5726 #ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
5727 #define __IFileSinkFilter2_INTERFACE_DEFINED__
5728 
5729 DEFINE_GUID(IID_IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86);
5730 #if defined(__cplusplus) && !defined(CINTERFACE)
5731 MIDL_INTERFACE("00855b90-ce1b-11d0-bd4f-00a0c911ce86")
5732 IFileSinkFilter2 : public IFileSinkFilter
5733 {
5734     virtual HRESULT STDMETHODCALLTYPE SetMode(
5735         DWORD dwFlags) = 0;
5736 
5737     virtual HRESULT STDMETHODCALLTYPE GetMode(
5738         DWORD *pdwFlags) = 0;
5739 
5740 };
5741 #ifdef __CRT_UUID_DECL
5742 __CRT_UUID_DECL(IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86)
5743 #endif
5744 #else
5745 typedef struct IFileSinkFilter2Vtbl {
5746     BEGIN_INTERFACE
5747 
5748     /*** IUnknown methods ***/
5749     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5750         IFileSinkFilter2 *This,
5751         REFIID riid,
5752         void **ppvObject);
5753 
5754     ULONG (STDMETHODCALLTYPE *AddRef)(
5755         IFileSinkFilter2 *This);
5756 
5757     ULONG (STDMETHODCALLTYPE *Release)(
5758         IFileSinkFilter2 *This);
5759 
5760     /*** IFileSinkFilter methods ***/
5761     HRESULT (STDMETHODCALLTYPE *SetFileName)(
5762         IFileSinkFilter2 *This,
5763         LPCOLESTR pszFileName,
5764         const AM_MEDIA_TYPE *pmt);
5765 
5766     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
5767         IFileSinkFilter2 *This,
5768         LPOLESTR *ppszFileName,
5769         AM_MEDIA_TYPE *pmt);
5770 
5771     /*** IFileSinkFilter2 methods ***/
5772     HRESULT (STDMETHODCALLTYPE *SetMode)(
5773         IFileSinkFilter2 *This,
5774         DWORD dwFlags);
5775 
5776     HRESULT (STDMETHODCALLTYPE *GetMode)(
5777         IFileSinkFilter2 *This,
5778         DWORD *pdwFlags);
5779 
5780     END_INTERFACE
5781 } IFileSinkFilter2Vtbl;
5782 
5783 interface IFileSinkFilter2 {
5784     CONST_VTBL IFileSinkFilter2Vtbl* lpVtbl;
5785 };
5786 
5787 #ifdef COBJMACROS
5788 #ifndef WIDL_C_INLINE_WRAPPERS
5789 /*** IUnknown methods ***/
5790 #define IFileSinkFilter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5791 #define IFileSinkFilter2_AddRef(This) (This)->lpVtbl->AddRef(This)
5792 #define IFileSinkFilter2_Release(This) (This)->lpVtbl->Release(This)
5793 /*** IFileSinkFilter methods ***/
5794 #define IFileSinkFilter2_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
5795 #define IFileSinkFilter2_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
5796 /*** IFileSinkFilter2 methods ***/
5797 #define IFileSinkFilter2_SetMode(This,dwFlags) (This)->lpVtbl->SetMode(This,dwFlags)
5798 #define IFileSinkFilter2_GetMode(This,pdwFlags) (This)->lpVtbl->GetMode(This,pdwFlags)
5799 #else
5800 /*** IUnknown methods ***/
5801 static FORCEINLINE HRESULT IFileSinkFilter2_QueryInterface(IFileSinkFilter2* This,REFIID riid,void **ppvObject) {
5802     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5803 }
5804 static FORCEINLINE ULONG IFileSinkFilter2_AddRef(IFileSinkFilter2* This) {
5805     return This->lpVtbl->AddRef(This);
5806 }
5807 static FORCEINLINE ULONG IFileSinkFilter2_Release(IFileSinkFilter2* This) {
5808     return This->lpVtbl->Release(This);
5809 }
5810 /*** IFileSinkFilter methods ***/
5811 static FORCEINLINE HRESULT IFileSinkFilter2_SetFileName(IFileSinkFilter2* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
5812     return This->lpVtbl->SetFileName(This,pszFileName,pmt);
5813 }
5814 static FORCEINLINE HRESULT IFileSinkFilter2_GetCurFile(IFileSinkFilter2* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
5815     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
5816 }
5817 /*** IFileSinkFilter2 methods ***/
5818 static FORCEINLINE HRESULT IFileSinkFilter2_SetMode(IFileSinkFilter2* This,DWORD dwFlags) {
5819     return This->lpVtbl->SetMode(This,dwFlags);
5820 }
5821 static FORCEINLINE HRESULT IFileSinkFilter2_GetMode(IFileSinkFilter2* This,DWORD *pdwFlags) {
5822     return This->lpVtbl->GetMode(This,pdwFlags);
5823 }
5824 #endif
5825 #endif
5826 
5827 #endif
5828 
5829 
5830 #endif  /* __IFileSinkFilter2_INTERFACE_DEFINED__ */
5831 
5832 typedef IFileSinkFilter2 *PFILESINKFILTER2;
5833 typedef enum __WIDL_strmif_generated_name_00000015 {
5834     AM_FILE_OVERWRITE = 0x1
5835 } AM_FILESINK_FLAGS;
5836 /*****************************************************************************
5837  * IGraphBuilder interface
5838  */
5839 #ifndef __IGraphBuilder_INTERFACE_DEFINED__
5840 #define __IGraphBuilder_INTERFACE_DEFINED__
5841 
5842 DEFINE_GUID(IID_IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5843 #if defined(__cplusplus) && !defined(CINTERFACE)
5844 MIDL_INTERFACE("56a868a9-0ad4-11ce-b03a-0020af0ba770")
5845 IGraphBuilder : public IFilterGraph
5846 {
5847     virtual HRESULT STDMETHODCALLTYPE Connect(
5848         IPin *ppinOut,
5849         IPin *ppinIn) = 0;
5850 
5851     virtual HRESULT STDMETHODCALLTYPE Render(
5852         IPin *ppinOut) = 0;
5853 
5854     virtual HRESULT STDMETHODCALLTYPE RenderFile(
5855         LPCWSTR lpcwstrFile,
5856         LPCWSTR lpcwstrPlayList) = 0;
5857 
5858     virtual HRESULT STDMETHODCALLTYPE AddSourceFilter(
5859         LPCWSTR lpcwstrFileName,
5860         LPCWSTR lpcwstrFilterName,
5861         IBaseFilter **ppFilter) = 0;
5862 
5863     virtual HRESULT STDMETHODCALLTYPE SetLogFile(
5864         DWORD_PTR hFile) = 0;
5865 
5866     virtual HRESULT STDMETHODCALLTYPE Abort(
5867         ) = 0;
5868 
5869     virtual HRESULT STDMETHODCALLTYPE ShouldOperationContinue(
5870         ) = 0;
5871 
5872 };
5873 #ifdef __CRT_UUID_DECL
5874 __CRT_UUID_DECL(IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5875 #endif
5876 #else
5877 typedef struct IGraphBuilderVtbl {
5878     BEGIN_INTERFACE
5879 
5880     /*** IUnknown methods ***/
5881     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5882         IGraphBuilder *This,
5883         REFIID riid,
5884         void **ppvObject);
5885 
5886     ULONG (STDMETHODCALLTYPE *AddRef)(
5887         IGraphBuilder *This);
5888 
5889     ULONG (STDMETHODCALLTYPE *Release)(
5890         IGraphBuilder *This);
5891 
5892     /*** IFilterGraph methods ***/
5893     HRESULT (STDMETHODCALLTYPE *AddFilter)(
5894         IGraphBuilder *This,
5895         IBaseFilter *pFilter,
5896         LPCWSTR pName);
5897 
5898     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
5899         IGraphBuilder *This,
5900         IBaseFilter *pFilter);
5901 
5902     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
5903         IGraphBuilder *This,
5904         IEnumFilters **ppEnum);
5905 
5906     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
5907         IGraphBuilder *This,
5908         LPCWSTR pName,
5909         IBaseFilter **ppFilter);
5910 
5911     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
5912         IGraphBuilder *This,
5913         IPin *ppinOut,
5914         IPin *ppinIn,
5915         const AM_MEDIA_TYPE *pmt);
5916 
5917     HRESULT (STDMETHODCALLTYPE *Reconnect)(
5918         IGraphBuilder *This,
5919         IPin *ppin);
5920 
5921     HRESULT (STDMETHODCALLTYPE *Disconnect)(
5922         IGraphBuilder *This,
5923         IPin *ppin);
5924 
5925     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
5926         IGraphBuilder *This);
5927 
5928     /*** IGraphBuilder methods ***/
5929     HRESULT (STDMETHODCALLTYPE *Connect)(
5930         IGraphBuilder *This,
5931         IPin *ppinOut,
5932         IPin *ppinIn);
5933 
5934     HRESULT (STDMETHODCALLTYPE *Render)(
5935         IGraphBuilder *This,
5936         IPin *ppinOut);
5937 
5938     HRESULT (STDMETHODCALLTYPE *RenderFile)(
5939         IGraphBuilder *This,
5940         LPCWSTR lpcwstrFile,
5941         LPCWSTR lpcwstrPlayList);
5942 
5943     HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
5944         IGraphBuilder *This,
5945         LPCWSTR lpcwstrFileName,
5946         LPCWSTR lpcwstrFilterName,
5947         IBaseFilter **ppFilter);
5948 
5949     HRESULT (STDMETHODCALLTYPE *SetLogFile)(
5950         IGraphBuilder *This,
5951         DWORD_PTR hFile);
5952 
5953     HRESULT (STDMETHODCALLTYPE *Abort)(
5954         IGraphBuilder *This);
5955 
5956     HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
5957         IGraphBuilder *This);
5958 
5959     END_INTERFACE
5960 } IGraphBuilderVtbl;
5961 
5962 interface IGraphBuilder {
5963     CONST_VTBL IGraphBuilderVtbl* lpVtbl;
5964 };
5965 
5966 #ifdef COBJMACROS
5967 #ifndef WIDL_C_INLINE_WRAPPERS
5968 /*** IUnknown methods ***/
5969 #define IGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5970 #define IGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
5971 #define IGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
5972 /*** IFilterGraph methods ***/
5973 #define IGraphBuilder_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
5974 #define IGraphBuilder_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
5975 #define IGraphBuilder_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
5976 #define IGraphBuilder_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
5977 #define IGraphBuilder_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
5978 #define IGraphBuilder_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
5979 #define IGraphBuilder_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
5980 #define IGraphBuilder_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
5981 /*** IGraphBuilder methods ***/
5982 #define IGraphBuilder_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
5983 #define IGraphBuilder_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
5984 #define IGraphBuilder_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
5985 #define IGraphBuilder_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
5986 #define IGraphBuilder_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
5987 #define IGraphBuilder_Abort(This) (This)->lpVtbl->Abort(This)
5988 #define IGraphBuilder_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
5989 #else
5990 /*** IUnknown methods ***/
5991 static FORCEINLINE HRESULT IGraphBuilder_QueryInterface(IGraphBuilder* This,REFIID riid,void **ppvObject) {
5992     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5993 }
5994 static FORCEINLINE ULONG IGraphBuilder_AddRef(IGraphBuilder* This) {
5995     return This->lpVtbl->AddRef(This);
5996 }
5997 static FORCEINLINE ULONG IGraphBuilder_Release(IGraphBuilder* This) {
5998     return This->lpVtbl->Release(This);
5999 }
6000 /*** IFilterGraph methods ***/
6001 static FORCEINLINE HRESULT IGraphBuilder_AddFilter(IGraphBuilder* This,IBaseFilter *pFilter,LPCWSTR pName) {
6002     return This->lpVtbl->AddFilter(This,pFilter,pName);
6003 }
6004 static FORCEINLINE HRESULT IGraphBuilder_RemoveFilter(IGraphBuilder* This,IBaseFilter *pFilter) {
6005     return This->lpVtbl->RemoveFilter(This,pFilter);
6006 }
6007 static FORCEINLINE HRESULT IGraphBuilder_EnumFilters(IGraphBuilder* This,IEnumFilters **ppEnum) {
6008     return This->lpVtbl->EnumFilters(This,ppEnum);
6009 }
6010 static FORCEINLINE HRESULT IGraphBuilder_FindFilterByName(IGraphBuilder* This,LPCWSTR pName,IBaseFilter **ppFilter) {
6011     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
6012 }
6013 static FORCEINLINE HRESULT IGraphBuilder_ConnectDirect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
6014     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
6015 }
6016 static FORCEINLINE HRESULT IGraphBuilder_Reconnect(IGraphBuilder* This,IPin *ppin) {
6017     return This->lpVtbl->Reconnect(This,ppin);
6018 }
6019 static FORCEINLINE HRESULT IGraphBuilder_Disconnect(IGraphBuilder* This,IPin *ppin) {
6020     return This->lpVtbl->Disconnect(This,ppin);
6021 }
6022 static FORCEINLINE HRESULT IGraphBuilder_SetDefaultSyncSource(IGraphBuilder* This) {
6023     return This->lpVtbl->SetDefaultSyncSource(This);
6024 }
6025 /*** IGraphBuilder methods ***/
6026 static FORCEINLINE HRESULT IGraphBuilder_Connect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn) {
6027     return This->lpVtbl->Connect(This,ppinOut,ppinIn);
6028 }
6029 static FORCEINLINE HRESULT IGraphBuilder_Render(IGraphBuilder* This,IPin *ppinOut) {
6030     return This->lpVtbl->Render(This,ppinOut);
6031 }
6032 static FORCEINLINE HRESULT IGraphBuilder_RenderFile(IGraphBuilder* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
6033     return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
6034 }
6035 static FORCEINLINE HRESULT IGraphBuilder_AddSourceFilter(IGraphBuilder* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
6036     return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
6037 }
6038 static FORCEINLINE HRESULT IGraphBuilder_SetLogFile(IGraphBuilder* This,DWORD_PTR hFile) {
6039     return This->lpVtbl->SetLogFile(This,hFile);
6040 }
6041 static FORCEINLINE HRESULT IGraphBuilder_Abort(IGraphBuilder* This) {
6042     return This->lpVtbl->Abort(This);
6043 }
6044 static FORCEINLINE HRESULT IGraphBuilder_ShouldOperationContinue(IGraphBuilder* This) {
6045     return This->lpVtbl->ShouldOperationContinue(This);
6046 }
6047 #endif
6048 #endif
6049 
6050 #endif
6051 
6052 
6053 #endif  /* __IGraphBuilder_INTERFACE_DEFINED__ */
6054 
6055 /*****************************************************************************
6056  * ICaptureGraphBuilder interface
6057  */
6058 #ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__
6059 #define __ICaptureGraphBuilder_INTERFACE_DEFINED__
6060 
6061 DEFINE_GUID(IID_ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
6062 #if defined(__cplusplus) && !defined(CINTERFACE)
6063 MIDL_INTERFACE("bf87b6e0-8c27-11d0-b3f0-00aa003761c5")
6064 ICaptureGraphBuilder : public IUnknown
6065 {
6066     virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
6067         IGraphBuilder *pfg) = 0;
6068 
6069     virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
6070         IGraphBuilder **ppfg) = 0;
6071 
6072     virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
6073         const GUID *pType,
6074         LPCOLESTR lpstrFile,
6075         IBaseFilter **ppf,
6076         IFileSinkFilter **ppSink) = 0;
6077 
6078     virtual HRESULT STDMETHODCALLTYPE FindInterface(
6079         const GUID *pCategory,
6080         IBaseFilter *pf,
6081         REFIID riid,
6082         void **ppint) = 0;
6083 
6084     virtual HRESULT STDMETHODCALLTYPE RenderStream(
6085         const GUID *pCategory,
6086         IUnknown *pSource,
6087         IBaseFilter *pfCompressor,
6088         IBaseFilter *pfRenderer) = 0;
6089 
6090     virtual HRESULT STDMETHODCALLTYPE ControlStream(
6091         const GUID *pCategory,
6092         IBaseFilter *pFilter,
6093         REFERENCE_TIME *pstart,
6094         REFERENCE_TIME *pstop,
6095         WORD wStartCookie,
6096         WORD wStopCookie) = 0;
6097 
6098     virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
6099         LPCOLESTR lpstr,
6100         DWORDLONG dwlSize) = 0;
6101 
6102     virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
6103         LPOLESTR lpwstrOld,
6104         LPOLESTR lpwstrNew,
6105         int fAllowEscAbort,
6106         IAMCopyCaptureFileProgress *pCallback) = 0;
6107 
6108 };
6109 #ifdef __CRT_UUID_DECL
6110 __CRT_UUID_DECL(ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
6111 #endif
6112 #else
6113 typedef struct ICaptureGraphBuilderVtbl {
6114     BEGIN_INTERFACE
6115 
6116     /*** IUnknown methods ***/
6117     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6118         ICaptureGraphBuilder *This,
6119         REFIID riid,
6120         void **ppvObject);
6121 
6122     ULONG (STDMETHODCALLTYPE *AddRef)(
6123         ICaptureGraphBuilder *This);
6124 
6125     ULONG (STDMETHODCALLTYPE *Release)(
6126         ICaptureGraphBuilder *This);
6127 
6128     /*** ICaptureGraphBuilder methods ***/
6129     HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
6130         ICaptureGraphBuilder *This,
6131         IGraphBuilder *pfg);
6132 
6133     HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
6134         ICaptureGraphBuilder *This,
6135         IGraphBuilder **ppfg);
6136 
6137     HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
6138         ICaptureGraphBuilder *This,
6139         const GUID *pType,
6140         LPCOLESTR lpstrFile,
6141         IBaseFilter **ppf,
6142         IFileSinkFilter **ppSink);
6143 
6144     HRESULT (STDMETHODCALLTYPE *FindInterface)(
6145         ICaptureGraphBuilder *This,
6146         const GUID *pCategory,
6147         IBaseFilter *pf,
6148         REFIID riid,
6149         void **ppint);
6150 
6151     HRESULT (STDMETHODCALLTYPE *RenderStream)(
6152         ICaptureGraphBuilder *This,
6153         const GUID *pCategory,
6154         IUnknown *pSource,
6155         IBaseFilter *pfCompressor,
6156         IBaseFilter *pfRenderer);
6157 
6158     HRESULT (STDMETHODCALLTYPE *ControlStream)(
6159         ICaptureGraphBuilder *This,
6160         const GUID *pCategory,
6161         IBaseFilter *pFilter,
6162         REFERENCE_TIME *pstart,
6163         REFERENCE_TIME *pstop,
6164         WORD wStartCookie,
6165         WORD wStopCookie);
6166 
6167     HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
6168         ICaptureGraphBuilder *This,
6169         LPCOLESTR lpstr,
6170         DWORDLONG dwlSize);
6171 
6172     HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
6173         ICaptureGraphBuilder *This,
6174         LPOLESTR lpwstrOld,
6175         LPOLESTR lpwstrNew,
6176         int fAllowEscAbort,
6177         IAMCopyCaptureFileProgress *pCallback);
6178 
6179     END_INTERFACE
6180 } ICaptureGraphBuilderVtbl;
6181 
6182 interface ICaptureGraphBuilder {
6183     CONST_VTBL ICaptureGraphBuilderVtbl* lpVtbl;
6184 };
6185 
6186 #ifdef COBJMACROS
6187 #ifndef WIDL_C_INLINE_WRAPPERS
6188 /*** IUnknown methods ***/
6189 #define ICaptureGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6190 #define ICaptureGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
6191 #define ICaptureGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
6192 /*** ICaptureGraphBuilder methods ***/
6193 #define ICaptureGraphBuilder_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
6194 #define ICaptureGraphBuilder_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
6195 #define ICaptureGraphBuilder_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
6196 #define ICaptureGraphBuilder_FindInterface(This,pCategory,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint)
6197 #define ICaptureGraphBuilder_RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer)
6198 #define ICaptureGraphBuilder_ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie)
6199 #define ICaptureGraphBuilder_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
6200 #define ICaptureGraphBuilder_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
6201 #else
6202 /*** IUnknown methods ***/
6203 static FORCEINLINE HRESULT ICaptureGraphBuilder_QueryInterface(ICaptureGraphBuilder* This,REFIID riid,void **ppvObject) {
6204     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6205 }
6206 static FORCEINLINE ULONG ICaptureGraphBuilder_AddRef(ICaptureGraphBuilder* This) {
6207     return This->lpVtbl->AddRef(This);
6208 }
6209 static FORCEINLINE ULONG ICaptureGraphBuilder_Release(ICaptureGraphBuilder* This) {
6210     return This->lpVtbl->Release(This);
6211 }
6212 /*** ICaptureGraphBuilder methods ***/
6213 static FORCEINLINE HRESULT ICaptureGraphBuilder_SetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder *pfg) {
6214     return This->lpVtbl->SetFiltergraph(This,pfg);
6215 }
6216 static FORCEINLINE HRESULT ICaptureGraphBuilder_GetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder **ppfg) {
6217     return This->lpVtbl->GetFiltergraph(This,ppfg);
6218 }
6219 static FORCEINLINE HRESULT ICaptureGraphBuilder_SetOutputFileName(ICaptureGraphBuilder* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) {
6220     return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink);
6221 }
6222 static FORCEINLINE HRESULT ICaptureGraphBuilder_FindInterface(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,void **ppint) {
6223     return This->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint);
6224 }
6225 static FORCEINLINE HRESULT ICaptureGraphBuilder_RenderStream(ICaptureGraphBuilder* This,const GUID *pCategory,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) {
6226     return This->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer);
6227 }
6228 static FORCEINLINE HRESULT ICaptureGraphBuilder_ControlStream(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) {
6229     return This->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie);
6230 }
6231 static FORCEINLINE HRESULT ICaptureGraphBuilder_AllocCapFile(ICaptureGraphBuilder* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
6232     return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
6233 }
6234 static FORCEINLINE HRESULT ICaptureGraphBuilder_CopyCaptureFile(ICaptureGraphBuilder* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) {
6235     return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback);
6236 }
6237 #endif
6238 #endif
6239 
6240 #endif
6241 
6242 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RemoteFindInterface_Proxy(
6243     ICaptureGraphBuilder* This,
6244     const GUID *pCategory,
6245     IBaseFilter *pf,
6246     REFIID riid,
6247     IUnknown **ppint);
6248 void __RPC_STUB ICaptureGraphBuilder_RemoteFindInterface_Stub(
6249     IRpcStubBuffer* This,
6250     IRpcChannelBuffer* pRpcChannelBuffer,
6251     PRPC_MESSAGE pRpcMessage,
6252     DWORD* pdwStubPhase);
6253 HRESULT CALLBACK ICaptureGraphBuilder_FindInterface_Proxy(
6254     ICaptureGraphBuilder* This,
6255     const GUID *pCategory,
6256     IBaseFilter *pf,
6257     REFIID riid,
6258     void **ppint);
6259 HRESULT __RPC_STUB ICaptureGraphBuilder_FindInterface_Stub(
6260     ICaptureGraphBuilder* This,
6261     const GUID *pCategory,
6262     IBaseFilter *pf,
6263     REFIID riid,
6264     IUnknown **ppint);
6265 
6266 #endif  /* __ICaptureGraphBuilder_INTERFACE_DEFINED__ */
6267 
6268 /*****************************************************************************
6269  * IAMCopyCaptureFileProgress interface
6270  */
6271 #ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
6272 #define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
6273 
6274 DEFINE_GUID(IID_IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
6275 #if defined(__cplusplus) && !defined(CINTERFACE)
6276 MIDL_INTERFACE("670d1d20-a068-11d0-b3f0-00aa003761c5")
6277 IAMCopyCaptureFileProgress : public IUnknown
6278 {
6279     virtual HRESULT STDMETHODCALLTYPE Progress(
6280         int iProgress) = 0;
6281 
6282 };
6283 #ifdef __CRT_UUID_DECL
6284 __CRT_UUID_DECL(IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
6285 #endif
6286 #else
6287 typedef struct IAMCopyCaptureFileProgressVtbl {
6288     BEGIN_INTERFACE
6289 
6290     /*** IUnknown methods ***/
6291     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6292         IAMCopyCaptureFileProgress *This,
6293         REFIID riid,
6294         void **ppvObject);
6295 
6296     ULONG (STDMETHODCALLTYPE *AddRef)(
6297         IAMCopyCaptureFileProgress *This);
6298 
6299     ULONG (STDMETHODCALLTYPE *Release)(
6300         IAMCopyCaptureFileProgress *This);
6301 
6302     /*** IAMCopyCaptureFileProgress methods ***/
6303     HRESULT (STDMETHODCALLTYPE *Progress)(
6304         IAMCopyCaptureFileProgress *This,
6305         int iProgress);
6306 
6307     END_INTERFACE
6308 } IAMCopyCaptureFileProgressVtbl;
6309 
6310 interface IAMCopyCaptureFileProgress {
6311     CONST_VTBL IAMCopyCaptureFileProgressVtbl* lpVtbl;
6312 };
6313 
6314 #ifdef COBJMACROS
6315 #ifndef WIDL_C_INLINE_WRAPPERS
6316 /*** IUnknown methods ***/
6317 #define IAMCopyCaptureFileProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6318 #define IAMCopyCaptureFileProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
6319 #define IAMCopyCaptureFileProgress_Release(This) (This)->lpVtbl->Release(This)
6320 /*** IAMCopyCaptureFileProgress methods ***/
6321 #define IAMCopyCaptureFileProgress_Progress(This,iProgress) (This)->lpVtbl->Progress(This,iProgress)
6322 #else
6323 /*** IUnknown methods ***/
6324 static FORCEINLINE HRESULT IAMCopyCaptureFileProgress_QueryInterface(IAMCopyCaptureFileProgress* This,REFIID riid,void **ppvObject) {
6325     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6326 }
6327 static FORCEINLINE ULONG IAMCopyCaptureFileProgress_AddRef(IAMCopyCaptureFileProgress* This) {
6328     return This->lpVtbl->AddRef(This);
6329 }
6330 static FORCEINLINE ULONG IAMCopyCaptureFileProgress_Release(IAMCopyCaptureFileProgress* This) {
6331     return This->lpVtbl->Release(This);
6332 }
6333 /*** IAMCopyCaptureFileProgress methods ***/
6334 static FORCEINLINE HRESULT IAMCopyCaptureFileProgress_Progress(IAMCopyCaptureFileProgress* This,int iProgress) {
6335     return This->lpVtbl->Progress(This,iProgress);
6336 }
6337 #endif
6338 #endif
6339 
6340 #endif
6341 
6342 
6343 #endif  /* __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ */
6344 
6345 /*****************************************************************************
6346  * ICaptureGraphBuilder2 interface
6347  */
6348 #ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
6349 #define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
6350 
6351 DEFINE_GUID(IID_ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d);
6352 #if defined(__cplusplus) && !defined(CINTERFACE)
6353 MIDL_INTERFACE("93e5a4e0-2d50-11d2-abfa-00a0c9c6e38d")
6354 ICaptureGraphBuilder2 : public IUnknown
6355 {
6356     virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
6357         IGraphBuilder *pfg) = 0;
6358 
6359     virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
6360         IGraphBuilder **ppfg) = 0;
6361 
6362     virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
6363         const GUID *pType,
6364         LPCOLESTR lpstrFile,
6365         IBaseFilter **ppf,
6366         IFileSinkFilter **ppSink) = 0;
6367 
6368     virtual HRESULT STDMETHODCALLTYPE FindInterface(
6369         const GUID *pCategory,
6370         const GUID *pType,
6371         IBaseFilter *pf,
6372         REFIID riid,
6373         void **ppint) = 0;
6374 
6375     virtual HRESULT STDMETHODCALLTYPE RenderStream(
6376         const GUID *pCategory,
6377         const GUID *pType,
6378         IUnknown *pSource,
6379         IBaseFilter *pfCompressor,
6380         IBaseFilter *pfRenderer) = 0;
6381 
6382     virtual HRESULT STDMETHODCALLTYPE ControlStream(
6383         const GUID *pCategory,
6384         const GUID *pType,
6385         IBaseFilter *pFilter,
6386         REFERENCE_TIME *pstart,
6387         REFERENCE_TIME *pstop,
6388         WORD wStartCookie,
6389         WORD wStopCookie) = 0;
6390 
6391     virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
6392         LPCOLESTR lpstr,
6393         DWORDLONG dwlSize) = 0;
6394 
6395     virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
6396         LPOLESTR lpwstrOld,
6397         LPOLESTR lpwstrNew,
6398         int fAllowEscAbort,
6399         IAMCopyCaptureFileProgress *pCallback) = 0;
6400 
6401     virtual HRESULT STDMETHODCALLTYPE FindPin(
6402         IUnknown *pSource,
6403         PIN_DIRECTION pindir,
6404         const GUID *pCategory,
6405         const GUID *pType,
6406         WINBOOL fUnconnected,
6407         int num,
6408         IPin **ppPin) = 0;
6409 
6410 };
6411 #ifdef __CRT_UUID_DECL
6412 __CRT_UUID_DECL(ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d)
6413 #endif
6414 #else
6415 typedef struct ICaptureGraphBuilder2Vtbl {
6416     BEGIN_INTERFACE
6417 
6418     /*** IUnknown methods ***/
6419     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6420         ICaptureGraphBuilder2 *This,
6421         REFIID riid,
6422         void **ppvObject);
6423 
6424     ULONG (STDMETHODCALLTYPE *AddRef)(
6425         ICaptureGraphBuilder2 *This);
6426 
6427     ULONG (STDMETHODCALLTYPE *Release)(
6428         ICaptureGraphBuilder2 *This);
6429 
6430     /*** ICaptureGraphBuilder2 methods ***/
6431     HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
6432         ICaptureGraphBuilder2 *This,
6433         IGraphBuilder *pfg);
6434 
6435     HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
6436         ICaptureGraphBuilder2 *This,
6437         IGraphBuilder **ppfg);
6438 
6439     HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
6440         ICaptureGraphBuilder2 *This,
6441         const GUID *pType,
6442         LPCOLESTR lpstrFile,
6443         IBaseFilter **ppf,
6444         IFileSinkFilter **ppSink);
6445 
6446     HRESULT (STDMETHODCALLTYPE *FindInterface)(
6447         ICaptureGraphBuilder2 *This,
6448         const GUID *pCategory,
6449         const GUID *pType,
6450         IBaseFilter *pf,
6451         REFIID riid,
6452         void **ppint);
6453 
6454     HRESULT (STDMETHODCALLTYPE *RenderStream)(
6455         ICaptureGraphBuilder2 *This,
6456         const GUID *pCategory,
6457         const GUID *pType,
6458         IUnknown *pSource,
6459         IBaseFilter *pfCompressor,
6460         IBaseFilter *pfRenderer);
6461 
6462     HRESULT (STDMETHODCALLTYPE *ControlStream)(
6463         ICaptureGraphBuilder2 *This,
6464         const GUID *pCategory,
6465         const GUID *pType,
6466         IBaseFilter *pFilter,
6467         REFERENCE_TIME *pstart,
6468         REFERENCE_TIME *pstop,
6469         WORD wStartCookie,
6470         WORD wStopCookie);
6471 
6472     HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
6473         ICaptureGraphBuilder2 *This,
6474         LPCOLESTR lpstr,
6475         DWORDLONG dwlSize);
6476 
6477     HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
6478         ICaptureGraphBuilder2 *This,
6479         LPOLESTR lpwstrOld,
6480         LPOLESTR lpwstrNew,
6481         int fAllowEscAbort,
6482         IAMCopyCaptureFileProgress *pCallback);
6483 
6484     HRESULT (STDMETHODCALLTYPE *FindPin)(
6485         ICaptureGraphBuilder2 *This,
6486         IUnknown *pSource,
6487         PIN_DIRECTION pindir,
6488         const GUID *pCategory,
6489         const GUID *pType,
6490         WINBOOL fUnconnected,
6491         int num,
6492         IPin **ppPin);
6493 
6494     END_INTERFACE
6495 } ICaptureGraphBuilder2Vtbl;
6496 
6497 interface ICaptureGraphBuilder2 {
6498     CONST_VTBL ICaptureGraphBuilder2Vtbl* lpVtbl;
6499 };
6500 
6501 #ifdef COBJMACROS
6502 #ifndef WIDL_C_INLINE_WRAPPERS
6503 /*** IUnknown methods ***/
6504 #define ICaptureGraphBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6505 #define ICaptureGraphBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
6506 #define ICaptureGraphBuilder2_Release(This) (This)->lpVtbl->Release(This)
6507 /*** ICaptureGraphBuilder2 methods ***/
6508 #define ICaptureGraphBuilder2_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
6509 #define ICaptureGraphBuilder2_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
6510 #define ICaptureGraphBuilder2_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
6511 #define ICaptureGraphBuilder2_FindInterface(This,pCategory,pType,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint)
6512 #define ICaptureGraphBuilder2_RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer)
6513 #define ICaptureGraphBuilder2_ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie)
6514 #define ICaptureGraphBuilder2_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
6515 #define ICaptureGraphBuilder2_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
6516 #define ICaptureGraphBuilder2_FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin) (This)->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin)
6517 #else
6518 /*** IUnknown methods ***/
6519 static FORCEINLINE HRESULT ICaptureGraphBuilder2_QueryInterface(ICaptureGraphBuilder2* This,REFIID riid,void **ppvObject) {
6520     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6521 }
6522 static FORCEINLINE ULONG ICaptureGraphBuilder2_AddRef(ICaptureGraphBuilder2* This) {
6523     return This->lpVtbl->AddRef(This);
6524 }
6525 static FORCEINLINE ULONG ICaptureGraphBuilder2_Release(ICaptureGraphBuilder2* This) {
6526     return This->lpVtbl->Release(This);
6527 }
6528 /*** ICaptureGraphBuilder2 methods ***/
6529 static FORCEINLINE HRESULT ICaptureGraphBuilder2_SetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder *pfg) {
6530     return This->lpVtbl->SetFiltergraph(This,pfg);
6531 }
6532 static FORCEINLINE HRESULT ICaptureGraphBuilder2_GetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder **ppfg) {
6533     return This->lpVtbl->GetFiltergraph(This,ppfg);
6534 }
6535 static FORCEINLINE HRESULT ICaptureGraphBuilder2_SetOutputFileName(ICaptureGraphBuilder2* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) {
6536     return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink);
6537 }
6538 static FORCEINLINE HRESULT ICaptureGraphBuilder2_FindInterface(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,void **ppint) {
6539     return This->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint);
6540 }
6541 static FORCEINLINE HRESULT ICaptureGraphBuilder2_RenderStream(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) {
6542     return This->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer);
6543 }
6544 static FORCEINLINE HRESULT ICaptureGraphBuilder2_ControlStream(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) {
6545     return This->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie);
6546 }
6547 static FORCEINLINE HRESULT ICaptureGraphBuilder2_AllocCapFile(ICaptureGraphBuilder2* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
6548     return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
6549 }
6550 static FORCEINLINE HRESULT ICaptureGraphBuilder2_CopyCaptureFile(ICaptureGraphBuilder2* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) {
6551     return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback);
6552 }
6553 static FORCEINLINE HRESULT ICaptureGraphBuilder2_FindPin(ICaptureGraphBuilder2* This,IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,WINBOOL fUnconnected,int num,IPin **ppPin) {
6554     return This->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin);
6555 }
6556 #endif
6557 #endif
6558 
6559 #endif
6560 
6561 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RemoteFindInterface_Proxy(
6562     ICaptureGraphBuilder2* This,
6563     const GUID *pCategory,
6564     const GUID *pType,
6565     IBaseFilter *pf,
6566     REFIID riid,
6567     IUnknown **ppint);
6568 void __RPC_STUB ICaptureGraphBuilder2_RemoteFindInterface_Stub(
6569     IRpcStubBuffer* This,
6570     IRpcChannelBuffer* pRpcChannelBuffer,
6571     PRPC_MESSAGE pRpcMessage,
6572     DWORD* pdwStubPhase);
6573 HRESULT CALLBACK ICaptureGraphBuilder2_FindInterface_Proxy(
6574     ICaptureGraphBuilder2* This,
6575     const GUID *pCategory,
6576     const GUID *pType,
6577     IBaseFilter *pf,
6578     REFIID riid,
6579     void **ppint);
6580 HRESULT __RPC_STUB ICaptureGraphBuilder2_FindInterface_Stub(
6581     ICaptureGraphBuilder2* This,
6582     const GUID *pCategory,
6583     const GUID *pType,
6584     IBaseFilter *pf,
6585     REFIID riid,
6586     IUnknown **ppint);
6587 
6588 #endif  /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */
6589 
6590 /*****************************************************************************
6591  * IConfigAviMux interface
6592  */
6593 #ifndef __IConfigAviMux_INTERFACE_DEFINED__
6594 #define __IConfigAviMux_INTERFACE_DEFINED__
6595 
6596 DEFINE_GUID(IID_IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
6597 #if defined(__cplusplus) && !defined(CINTERFACE)
6598 MIDL_INTERFACE("5acd6aa0-f482-11ce-8b67-00aa00a3f1a6")
6599 IConfigAviMux : public IUnknown
6600 {
6601     virtual HRESULT STDMETHODCALLTYPE SetMasterStream(
6602         LONG iStream) = 0;
6603 
6604     virtual HRESULT STDMETHODCALLTYPE GetMasterStream(
6605         LONG *pStream) = 0;
6606 
6607     virtual HRESULT STDMETHODCALLTYPE SetOutputCompatibilityIndex(
6608         WINBOOL fOldIndex) = 0;
6609 
6610     virtual HRESULT STDMETHODCALLTYPE GetOutputCompatibilityIndex(
6611         WINBOOL *pfOldIndex) = 0;
6612 
6613 };
6614 #ifdef __CRT_UUID_DECL
6615 __CRT_UUID_DECL(IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6)
6616 #endif
6617 #else
6618 typedef struct IConfigAviMuxVtbl {
6619     BEGIN_INTERFACE
6620 
6621     /*** IUnknown methods ***/
6622     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6623         IConfigAviMux *This,
6624         REFIID riid,
6625         void **ppvObject);
6626 
6627     ULONG (STDMETHODCALLTYPE *AddRef)(
6628         IConfigAviMux *This);
6629 
6630     ULONG (STDMETHODCALLTYPE *Release)(
6631         IConfigAviMux *This);
6632 
6633     /*** IConfigAviMux methods ***/
6634     HRESULT (STDMETHODCALLTYPE *SetMasterStream)(
6635         IConfigAviMux *This,
6636         LONG iStream);
6637 
6638     HRESULT (STDMETHODCALLTYPE *GetMasterStream)(
6639         IConfigAviMux *This,
6640         LONG *pStream);
6641 
6642     HRESULT (STDMETHODCALLTYPE *SetOutputCompatibilityIndex)(
6643         IConfigAviMux *This,
6644         WINBOOL fOldIndex);
6645 
6646     HRESULT (STDMETHODCALLTYPE *GetOutputCompatibilityIndex)(
6647         IConfigAviMux *This,
6648         WINBOOL *pfOldIndex);
6649 
6650     END_INTERFACE
6651 } IConfigAviMuxVtbl;
6652 
6653 interface IConfigAviMux {
6654     CONST_VTBL IConfigAviMuxVtbl* lpVtbl;
6655 };
6656 
6657 #ifdef COBJMACROS
6658 #ifndef WIDL_C_INLINE_WRAPPERS
6659 /*** IUnknown methods ***/
6660 #define IConfigAviMux_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6661 #define IConfigAviMux_AddRef(This) (This)->lpVtbl->AddRef(This)
6662 #define IConfigAviMux_Release(This) (This)->lpVtbl->Release(This)
6663 /*** IConfigAviMux methods ***/
6664 #define IConfigAviMux_SetMasterStream(This,iStream) (This)->lpVtbl->SetMasterStream(This,iStream)
6665 #define IConfigAviMux_GetMasterStream(This,pStream) (This)->lpVtbl->GetMasterStream(This,pStream)
6666 #define IConfigAviMux_SetOutputCompatibilityIndex(This,fOldIndex) (This)->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex)
6667 #define IConfigAviMux_GetOutputCompatibilityIndex(This,pfOldIndex) (This)->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex)
6668 #else
6669 /*** IUnknown methods ***/
6670 static FORCEINLINE HRESULT IConfigAviMux_QueryInterface(IConfigAviMux* This,REFIID riid,void **ppvObject) {
6671     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6672 }
6673 static FORCEINLINE ULONG IConfigAviMux_AddRef(IConfigAviMux* This) {
6674     return This->lpVtbl->AddRef(This);
6675 }
6676 static FORCEINLINE ULONG IConfigAviMux_Release(IConfigAviMux* This) {
6677     return This->lpVtbl->Release(This);
6678 }
6679 /*** IConfigAviMux methods ***/
6680 static FORCEINLINE HRESULT IConfigAviMux_SetMasterStream(IConfigAviMux* This,LONG iStream) {
6681     return This->lpVtbl->SetMasterStream(This,iStream);
6682 }
6683 static FORCEINLINE HRESULT IConfigAviMux_GetMasterStream(IConfigAviMux* This,LONG *pStream) {
6684     return This->lpVtbl->GetMasterStream(This,pStream);
6685 }
6686 static FORCEINLINE HRESULT IConfigAviMux_SetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL fOldIndex) {
6687     return This->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex);
6688 }
6689 static FORCEINLINE HRESULT IConfigAviMux_GetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL *pfOldIndex) {
6690     return This->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex);
6691 }
6692 #endif
6693 #endif
6694 
6695 #endif
6696 
6697 
6698 #endif  /* __IConfigAviMux_INTERFACE_DEFINED__ */
6699 
6700 /*****************************************************************************
6701  * IConfigInterleaving interface
6702  */
6703 #ifndef __IConfigInterleaving_INTERFACE_DEFINED__
6704 #define __IConfigInterleaving_INTERFACE_DEFINED__
6705 
6706 typedef enum InterleavingMode {
6707     INTERLEAVE_NONE = 0,
6708     INTERLEAVE_CAPTURE = 1,
6709     INTERLEAVE_FULL = 2,
6710     INTERLEAVE_NONE_BUFFERED = 3
6711 } InterleavingMode;
6712 DEFINE_GUID(IID_IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86);
6713 #if defined(__cplusplus) && !defined(CINTERFACE)
6714 MIDL_INTERFACE("bee3d220-157b-11d0-bd23-00a0c911ce86")
6715 IConfigInterleaving : public IUnknown
6716 {
6717     virtual HRESULT STDMETHODCALLTYPE put_Mode(
6718         InterleavingMode mode) = 0;
6719 
6720     virtual HRESULT STDMETHODCALLTYPE get_Mode(
6721         InterleavingMode *pMode) = 0;
6722 
6723     virtual HRESULT STDMETHODCALLTYPE put_Interleaving(
6724         const REFERENCE_TIME *prtInterleave,
6725         const REFERENCE_TIME *prtPreroll) = 0;
6726 
6727     virtual HRESULT STDMETHODCALLTYPE get_Interleaving(
6728         REFERENCE_TIME *prtInterleave,
6729         REFERENCE_TIME *prtPreroll) = 0;
6730 
6731 };
6732 #ifdef __CRT_UUID_DECL
6733 __CRT_UUID_DECL(IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86)
6734 #endif
6735 #else
6736 typedef struct IConfigInterleavingVtbl {
6737     BEGIN_INTERFACE
6738 
6739     /*** IUnknown methods ***/
6740     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6741         IConfigInterleaving *This,
6742         REFIID riid,
6743         void **ppvObject);
6744 
6745     ULONG (STDMETHODCALLTYPE *AddRef)(
6746         IConfigInterleaving *This);
6747 
6748     ULONG (STDMETHODCALLTYPE *Release)(
6749         IConfigInterleaving *This);
6750 
6751     /*** IConfigInterleaving methods ***/
6752     HRESULT (STDMETHODCALLTYPE *put_Mode)(
6753         IConfigInterleaving *This,
6754         InterleavingMode mode);
6755 
6756     HRESULT (STDMETHODCALLTYPE *get_Mode)(
6757         IConfigInterleaving *This,
6758         InterleavingMode *pMode);
6759 
6760     HRESULT (STDMETHODCALLTYPE *put_Interleaving)(
6761         IConfigInterleaving *This,
6762         const REFERENCE_TIME *prtInterleave,
6763         const REFERENCE_TIME *prtPreroll);
6764 
6765     HRESULT (STDMETHODCALLTYPE *get_Interleaving)(
6766         IConfigInterleaving *This,
6767         REFERENCE_TIME *prtInterleave,
6768         REFERENCE_TIME *prtPreroll);
6769 
6770     END_INTERFACE
6771 } IConfigInterleavingVtbl;
6772 
6773 interface IConfigInterleaving {
6774     CONST_VTBL IConfigInterleavingVtbl* lpVtbl;
6775 };
6776 
6777 #ifdef COBJMACROS
6778 #ifndef WIDL_C_INLINE_WRAPPERS
6779 /*** IUnknown methods ***/
6780 #define IConfigInterleaving_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6781 #define IConfigInterleaving_AddRef(This) (This)->lpVtbl->AddRef(This)
6782 #define IConfigInterleaving_Release(This) (This)->lpVtbl->Release(This)
6783 /*** IConfigInterleaving methods ***/
6784 #define IConfigInterleaving_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
6785 #define IConfigInterleaving_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
6786 #define IConfigInterleaving_put_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll)
6787 #define IConfigInterleaving_get_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll)
6788 #else
6789 /*** IUnknown methods ***/
6790 static FORCEINLINE HRESULT IConfigInterleaving_QueryInterface(IConfigInterleaving* This,REFIID riid,void **ppvObject) {
6791     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6792 }
6793 static FORCEINLINE ULONG IConfigInterleaving_AddRef(IConfigInterleaving* This) {
6794     return This->lpVtbl->AddRef(This);
6795 }
6796 static FORCEINLINE ULONG IConfigInterleaving_Release(IConfigInterleaving* This) {
6797     return This->lpVtbl->Release(This);
6798 }
6799 /*** IConfigInterleaving methods ***/
6800 static FORCEINLINE HRESULT IConfigInterleaving_put_Mode(IConfigInterleaving* This,InterleavingMode mode) {
6801     return This->lpVtbl->put_Mode(This,mode);
6802 }
6803 static FORCEINLINE HRESULT IConfigInterleaving_get_Mode(IConfigInterleaving* This,InterleavingMode *pMode) {
6804     return This->lpVtbl->get_Mode(This,pMode);
6805 }
6806 static FORCEINLINE HRESULT IConfigInterleaving_put_Interleaving(IConfigInterleaving* This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll) {
6807     return This->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll);
6808 }
6809 static FORCEINLINE HRESULT IConfigInterleaving_get_Interleaving(IConfigInterleaving* This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll) {
6810     return This->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll);
6811 }
6812 #endif
6813 #endif
6814 
6815 #endif
6816 
6817 
6818 #endif  /* __IConfigInterleaving_INTERFACE_DEFINED__ */
6819 
6820 /*****************************************************************************
6821  * IAMClockSlave interface
6822  */
6823 #ifndef __IAMClockSlave_INTERFACE_DEFINED__
6824 #define __IAMClockSlave_INTERFACE_DEFINED__
6825 
6826 DEFINE_GUID(IID_IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe);
6827 #if defined(__cplusplus) && !defined(CINTERFACE)
6828 MIDL_INTERFACE("9fd52741-176d-4b36-8f51-ca8f933223be")
6829 IAMClockSlave : public IUnknown
6830 {
6831     virtual HRESULT STDMETHODCALLTYPE SetErrorTolerance(
6832         DWORD dwTolerance) = 0;
6833 
6834     virtual HRESULT STDMETHODCALLTYPE GetErrorTolerance(
6835         DWORD *pdwTolerance) = 0;
6836 
6837 };
6838 #ifdef __CRT_UUID_DECL
6839 __CRT_UUID_DECL(IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe)
6840 #endif
6841 #else
6842 typedef struct IAMClockSlaveVtbl {
6843     BEGIN_INTERFACE
6844 
6845     /*** IUnknown methods ***/
6846     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6847         IAMClockSlave *This,
6848         REFIID riid,
6849         void **ppvObject);
6850 
6851     ULONG (STDMETHODCALLTYPE *AddRef)(
6852         IAMClockSlave *This);
6853 
6854     ULONG (STDMETHODCALLTYPE *Release)(
6855         IAMClockSlave *This);
6856 
6857     /*** IAMClockSlave methods ***/
6858     HRESULT (STDMETHODCALLTYPE *SetErrorTolerance)(
6859         IAMClockSlave *This,
6860         DWORD dwTolerance);
6861 
6862     HRESULT (STDMETHODCALLTYPE *GetErrorTolerance)(
6863         IAMClockSlave *This,
6864         DWORD *pdwTolerance);
6865 
6866     END_INTERFACE
6867 } IAMClockSlaveVtbl;
6868 
6869 interface IAMClockSlave {
6870     CONST_VTBL IAMClockSlaveVtbl* lpVtbl;
6871 };
6872 
6873 #ifdef COBJMACROS
6874 #ifndef WIDL_C_INLINE_WRAPPERS
6875 /*** IUnknown methods ***/
6876 #define IAMClockSlave_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6877 #define IAMClockSlave_AddRef(This) (This)->lpVtbl->AddRef(This)
6878 #define IAMClockSlave_Release(This) (This)->lpVtbl->Release(This)
6879 /*** IAMClockSlave methods ***/
6880 #define IAMClockSlave_SetErrorTolerance(This,dwTolerance) (This)->lpVtbl->SetErrorTolerance(This,dwTolerance)
6881 #define IAMClockSlave_GetErrorTolerance(This,pdwTolerance) (This)->lpVtbl->GetErrorTolerance(This,pdwTolerance)
6882 #else
6883 /*** IUnknown methods ***/
6884 static FORCEINLINE HRESULT IAMClockSlave_QueryInterface(IAMClockSlave* This,REFIID riid,void **ppvObject) {
6885     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6886 }
6887 static FORCEINLINE ULONG IAMClockSlave_AddRef(IAMClockSlave* This) {
6888     return This->lpVtbl->AddRef(This);
6889 }
6890 static FORCEINLINE ULONG IAMClockSlave_Release(IAMClockSlave* This) {
6891     return This->lpVtbl->Release(This);
6892 }
6893 /*** IAMClockSlave methods ***/
6894 static FORCEINLINE HRESULT IAMClockSlave_SetErrorTolerance(IAMClockSlave* This,DWORD dwTolerance) {
6895     return This->lpVtbl->SetErrorTolerance(This,dwTolerance);
6896 }
6897 static FORCEINLINE HRESULT IAMClockSlave_GetErrorTolerance(IAMClockSlave* This,DWORD *pdwTolerance) {
6898     return This->lpVtbl->GetErrorTolerance(This,pdwTolerance);
6899 }
6900 #endif
6901 #endif
6902 
6903 #endif
6904 
6905 
6906 #endif  /* __IAMClockSlave_INTERFACE_DEFINED__ */
6907 
6908 typedef struct _AMCOPPSignature {
6909     BYTE Signature[256];
6910 } AMCOPPSignature;
6911 typedef struct _AMCOPPCommand {
6912     GUID macKDI;
6913     GUID guidCommandID;
6914     DWORD dwSequence;
6915     DWORD bSizeData;
6916     BYTE CommandData[4056];
6917 } AMCOPPCommand;
6918 typedef struct _AMCOPPCommand *LPAMCOPPCommand;
6919 typedef struct _AMCOPPStatusInput {
6920     GUID rApp;
6921     GUID guidStatusRequestID;
6922     DWORD dwSequence;
6923     DWORD cbSizeData;
6924     BYTE StatusData[4056];
6925 } AMCOPPStatusInput;
6926 typedef struct _AMCOPPStatusInput *LPAMCOPPStatusInput;
6927 typedef struct _AMCOPPStatusOutput {
6928     GUID macKDI;
6929     DWORD cbSizeData;
6930     BYTE COPPStatus[4076];
6931 } AMCOPPStatusOutput;
6932 typedef struct _AMCOPPStatusOutput *LPAMCOPPStatusOutput;
6933 /*****************************************************************************
6934  * IAMCertifiedOutputProtection interface
6935  */
6936 #ifndef __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
6937 #define __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
6938 
6939 DEFINE_GUID(IID_IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15);
6940 #if defined(__cplusplus) && !defined(CINTERFACE)
6941 MIDL_INTERFACE("6feded3e-0ff1-4901-a2f1-43f7012c8515")
6942 IAMCertifiedOutputProtection : public IUnknown
6943 {
6944     virtual HRESULT STDMETHODCALLTYPE KeyExchange(
6945         GUID *pRandom,
6946         BYTE **VarLenCertGH,
6947         DWORD *pdwLengthCertGH) = 0;
6948 
6949     virtual HRESULT STDMETHODCALLTYPE SessionSequenceStart(
6950         AMCOPPSignature *pSig) = 0;
6951 
6952     virtual HRESULT STDMETHODCALLTYPE ProtectionCommand(
6953         const AMCOPPCommand *cmd) = 0;
6954 
6955     virtual HRESULT STDMETHODCALLTYPE ProtectionStatus(
6956         const AMCOPPStatusInput *pStatusInput,
6957         AMCOPPStatusOutput *pStatusOutput) = 0;
6958 
6959 };
6960 #ifdef __CRT_UUID_DECL
6961 __CRT_UUID_DECL(IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15)
6962 #endif
6963 #else
6964 typedef struct IAMCertifiedOutputProtectionVtbl {
6965     BEGIN_INTERFACE
6966 
6967     /*** IUnknown methods ***/
6968     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6969         IAMCertifiedOutputProtection *This,
6970         REFIID riid,
6971         void **ppvObject);
6972 
6973     ULONG (STDMETHODCALLTYPE *AddRef)(
6974         IAMCertifiedOutputProtection *This);
6975 
6976     ULONG (STDMETHODCALLTYPE *Release)(
6977         IAMCertifiedOutputProtection *This);
6978 
6979     /*** IAMCertifiedOutputProtection methods ***/
6980     HRESULT (STDMETHODCALLTYPE *KeyExchange)(
6981         IAMCertifiedOutputProtection *This,
6982         GUID *pRandom,
6983         BYTE **VarLenCertGH,
6984         DWORD *pdwLengthCertGH);
6985 
6986     HRESULT (STDMETHODCALLTYPE *SessionSequenceStart)(
6987         IAMCertifiedOutputProtection *This,
6988         AMCOPPSignature *pSig);
6989 
6990     HRESULT (STDMETHODCALLTYPE *ProtectionCommand)(
6991         IAMCertifiedOutputProtection *This,
6992         const AMCOPPCommand *cmd);
6993 
6994     HRESULT (STDMETHODCALLTYPE *ProtectionStatus)(
6995         IAMCertifiedOutputProtection *This,
6996         const AMCOPPStatusInput *pStatusInput,
6997         AMCOPPStatusOutput *pStatusOutput);
6998 
6999     END_INTERFACE
7000 } IAMCertifiedOutputProtectionVtbl;
7001 
7002 interface IAMCertifiedOutputProtection {
7003     CONST_VTBL IAMCertifiedOutputProtectionVtbl* lpVtbl;
7004 };
7005 
7006 #ifdef COBJMACROS
7007 #ifndef WIDL_C_INLINE_WRAPPERS
7008 /*** IUnknown methods ***/
7009 #define IAMCertifiedOutputProtection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7010 #define IAMCertifiedOutputProtection_AddRef(This) (This)->lpVtbl->AddRef(This)
7011 #define IAMCertifiedOutputProtection_Release(This) (This)->lpVtbl->Release(This)
7012 /*** IAMCertifiedOutputProtection methods ***/
7013 #define IAMCertifiedOutputProtection_KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH) (This)->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH)
7014 #define IAMCertifiedOutputProtection_SessionSequenceStart(This,pSig) (This)->lpVtbl->SessionSequenceStart(This,pSig)
7015 #define IAMCertifiedOutputProtection_ProtectionCommand(This,cmd) (This)->lpVtbl->ProtectionCommand(This,cmd)
7016 #define IAMCertifiedOutputProtection_ProtectionStatus(This,pStatusInput,pStatusOutput) (This)->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput)
7017 #else
7018 /*** IUnknown methods ***/
7019 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_QueryInterface(IAMCertifiedOutputProtection* This,REFIID riid,void **ppvObject) {
7020     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7021 }
7022 static FORCEINLINE ULONG IAMCertifiedOutputProtection_AddRef(IAMCertifiedOutputProtection* This) {
7023     return This->lpVtbl->AddRef(This);
7024 }
7025 static FORCEINLINE ULONG IAMCertifiedOutputProtection_Release(IAMCertifiedOutputProtection* This) {
7026     return This->lpVtbl->Release(This);
7027 }
7028 /*** IAMCertifiedOutputProtection methods ***/
7029 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_KeyExchange(IAMCertifiedOutputProtection* This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH) {
7030     return This->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH);
7031 }
7032 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_SessionSequenceStart(IAMCertifiedOutputProtection* This,AMCOPPSignature *pSig) {
7033     return This->lpVtbl->SessionSequenceStart(This,pSig);
7034 }
7035 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_ProtectionCommand(IAMCertifiedOutputProtection* This,const AMCOPPCommand *cmd) {
7036     return This->lpVtbl->ProtectionCommand(This,cmd);
7037 }
7038 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_ProtectionStatus(IAMCertifiedOutputProtection* This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput) {
7039     return This->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput);
7040 }
7041 #endif
7042 #endif
7043 
7044 #endif
7045 
7046 
7047 #endif  /* __IAMCertifiedOutputProtection_INTERFACE_DEFINED__ */
7048 
7049 enum _AM_RENSDEREXFLAGS {
7050     AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1
7051 };
7052 /*****************************************************************************
7053  * IFilterGraph2 interface
7054  */
7055 #ifndef __IFilterGraph2_INTERFACE_DEFINED__
7056 #define __IFilterGraph2_INTERFACE_DEFINED__
7057 
7058 DEFINE_GUID(IID_IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
7059 #if defined(__cplusplus) && !defined(CINTERFACE)
7060 MIDL_INTERFACE("36b73882-c2c8-11cf-8b46-00805f6cef60")
7061 IFilterGraph2 : public IGraphBuilder
7062 {
7063     virtual HRESULT STDMETHODCALLTYPE AddSourceFilterForMoniker(
7064         IMoniker *pMoniker,
7065         IBindCtx *pCtx,
7066         LPCWSTR lpcwstrFilterName,
7067         IBaseFilter **ppFilter) = 0;
7068 
7069     virtual HRESULT STDMETHODCALLTYPE ReconnectEx(
7070         IPin *ppin,
7071         const AM_MEDIA_TYPE *pmt) = 0;
7072 
7073     virtual HRESULT STDMETHODCALLTYPE RenderEx(
7074         IPin *pPinOut,
7075         DWORD dwFlags,
7076         DWORD *pvContext) = 0;
7077 
7078 };
7079 #ifdef __CRT_UUID_DECL
7080 __CRT_UUID_DECL(IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
7081 #endif
7082 #else
7083 typedef struct IFilterGraph2Vtbl {
7084     BEGIN_INTERFACE
7085 
7086     /*** IUnknown methods ***/
7087     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7088         IFilterGraph2 *This,
7089         REFIID riid,
7090         void **ppvObject);
7091 
7092     ULONG (STDMETHODCALLTYPE *AddRef)(
7093         IFilterGraph2 *This);
7094 
7095     ULONG (STDMETHODCALLTYPE *Release)(
7096         IFilterGraph2 *This);
7097 
7098     /*** IFilterGraph methods ***/
7099     HRESULT (STDMETHODCALLTYPE *AddFilter)(
7100         IFilterGraph2 *This,
7101         IBaseFilter *pFilter,
7102         LPCWSTR pName);
7103 
7104     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
7105         IFilterGraph2 *This,
7106         IBaseFilter *pFilter);
7107 
7108     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
7109         IFilterGraph2 *This,
7110         IEnumFilters **ppEnum);
7111 
7112     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
7113         IFilterGraph2 *This,
7114         LPCWSTR pName,
7115         IBaseFilter **ppFilter);
7116 
7117     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
7118         IFilterGraph2 *This,
7119         IPin *ppinOut,
7120         IPin *ppinIn,
7121         const AM_MEDIA_TYPE *pmt);
7122 
7123     HRESULT (STDMETHODCALLTYPE *Reconnect)(
7124         IFilterGraph2 *This,
7125         IPin *ppin);
7126 
7127     HRESULT (STDMETHODCALLTYPE *Disconnect)(
7128         IFilterGraph2 *This,
7129         IPin *ppin);
7130 
7131     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
7132         IFilterGraph2 *This);
7133 
7134     /*** IGraphBuilder methods ***/
7135     HRESULT (STDMETHODCALLTYPE *Connect)(
7136         IFilterGraph2 *This,
7137         IPin *ppinOut,
7138         IPin *ppinIn);
7139 
7140     HRESULT (STDMETHODCALLTYPE *Render)(
7141         IFilterGraph2 *This,
7142         IPin *ppinOut);
7143 
7144     HRESULT (STDMETHODCALLTYPE *RenderFile)(
7145         IFilterGraph2 *This,
7146         LPCWSTR lpcwstrFile,
7147         LPCWSTR lpcwstrPlayList);
7148 
7149     HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
7150         IFilterGraph2 *This,
7151         LPCWSTR lpcwstrFileName,
7152         LPCWSTR lpcwstrFilterName,
7153         IBaseFilter **ppFilter);
7154 
7155     HRESULT (STDMETHODCALLTYPE *SetLogFile)(
7156         IFilterGraph2 *This,
7157         DWORD_PTR hFile);
7158 
7159     HRESULT (STDMETHODCALLTYPE *Abort)(
7160         IFilterGraph2 *This);
7161 
7162     HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
7163         IFilterGraph2 *This);
7164 
7165     /*** IFilterGraph2 methods ***/
7166     HRESULT (STDMETHODCALLTYPE *AddSourceFilterForMoniker)(
7167         IFilterGraph2 *This,
7168         IMoniker *pMoniker,
7169         IBindCtx *pCtx,
7170         LPCWSTR lpcwstrFilterName,
7171         IBaseFilter **ppFilter);
7172 
7173     HRESULT (STDMETHODCALLTYPE *ReconnectEx)(
7174         IFilterGraph2 *This,
7175         IPin *ppin,
7176         const AM_MEDIA_TYPE *pmt);
7177 
7178     HRESULT (STDMETHODCALLTYPE *RenderEx)(
7179         IFilterGraph2 *This,
7180         IPin *pPinOut,
7181         DWORD dwFlags,
7182         DWORD *pvContext);
7183 
7184     END_INTERFACE
7185 } IFilterGraph2Vtbl;
7186 
7187 interface IFilterGraph2 {
7188     CONST_VTBL IFilterGraph2Vtbl* lpVtbl;
7189 };
7190 
7191 #ifdef COBJMACROS
7192 #ifndef WIDL_C_INLINE_WRAPPERS
7193 /*** IUnknown methods ***/
7194 #define IFilterGraph2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7195 #define IFilterGraph2_AddRef(This) (This)->lpVtbl->AddRef(This)
7196 #define IFilterGraph2_Release(This) (This)->lpVtbl->Release(This)
7197 /*** IFilterGraph methods ***/
7198 #define IFilterGraph2_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
7199 #define IFilterGraph2_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
7200 #define IFilterGraph2_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
7201 #define IFilterGraph2_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
7202 #define IFilterGraph2_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
7203 #define IFilterGraph2_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
7204 #define IFilterGraph2_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
7205 #define IFilterGraph2_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
7206 /*** IGraphBuilder methods ***/
7207 #define IFilterGraph2_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
7208 #define IFilterGraph2_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
7209 #define IFilterGraph2_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
7210 #define IFilterGraph2_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
7211 #define IFilterGraph2_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
7212 #define IFilterGraph2_Abort(This) (This)->lpVtbl->Abort(This)
7213 #define IFilterGraph2_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
7214 /*** IFilterGraph2 methods ***/
7215 #define IFilterGraph2_AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter)
7216 #define IFilterGraph2_ReconnectEx(This,ppin,pmt) (This)->lpVtbl->ReconnectEx(This,ppin,pmt)
7217 #define IFilterGraph2_RenderEx(This,pPinOut,dwFlags,pvContext) (This)->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext)
7218 #else
7219 /*** IUnknown methods ***/
7220 static FORCEINLINE HRESULT IFilterGraph2_QueryInterface(IFilterGraph2* This,REFIID riid,void **ppvObject) {
7221     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7222 }
7223 static FORCEINLINE ULONG IFilterGraph2_AddRef(IFilterGraph2* This) {
7224     return This->lpVtbl->AddRef(This);
7225 }
7226 static FORCEINLINE ULONG IFilterGraph2_Release(IFilterGraph2* This) {
7227     return This->lpVtbl->Release(This);
7228 }
7229 /*** IFilterGraph methods ***/
7230 static FORCEINLINE HRESULT IFilterGraph2_AddFilter(IFilterGraph2* This,IBaseFilter *pFilter,LPCWSTR pName) {
7231     return This->lpVtbl->AddFilter(This,pFilter,pName);
7232 }
7233 static FORCEINLINE HRESULT IFilterGraph2_RemoveFilter(IFilterGraph2* This,IBaseFilter *pFilter) {
7234     return This->lpVtbl->RemoveFilter(This,pFilter);
7235 }
7236 static FORCEINLINE HRESULT IFilterGraph2_EnumFilters(IFilterGraph2* This,IEnumFilters **ppEnum) {
7237     return This->lpVtbl->EnumFilters(This,ppEnum);
7238 }
7239 static FORCEINLINE HRESULT IFilterGraph2_FindFilterByName(IFilterGraph2* This,LPCWSTR pName,IBaseFilter **ppFilter) {
7240     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
7241 }
7242 static FORCEINLINE HRESULT IFilterGraph2_ConnectDirect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
7243     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
7244 }
7245 static FORCEINLINE HRESULT IFilterGraph2_Reconnect(IFilterGraph2* This,IPin *ppin) {
7246     return This->lpVtbl->Reconnect(This,ppin);
7247 }
7248 static FORCEINLINE HRESULT IFilterGraph2_Disconnect(IFilterGraph2* This,IPin *ppin) {
7249     return This->lpVtbl->Disconnect(This,ppin);
7250 }
7251 static FORCEINLINE HRESULT IFilterGraph2_SetDefaultSyncSource(IFilterGraph2* This) {
7252     return This->lpVtbl->SetDefaultSyncSource(This);
7253 }
7254 /*** IGraphBuilder methods ***/
7255 static FORCEINLINE HRESULT IFilterGraph2_Connect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn) {
7256     return This->lpVtbl->Connect(This,ppinOut,ppinIn);
7257 }
7258 static FORCEINLINE HRESULT IFilterGraph2_Render(IFilterGraph2* This,IPin *ppinOut) {
7259     return This->lpVtbl->Render(This,ppinOut);
7260 }
7261 static FORCEINLINE HRESULT IFilterGraph2_RenderFile(IFilterGraph2* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
7262     return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
7263 }
7264 static FORCEINLINE HRESULT IFilterGraph2_AddSourceFilter(IFilterGraph2* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
7265     return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
7266 }
7267 static FORCEINLINE HRESULT IFilterGraph2_SetLogFile(IFilterGraph2* This,DWORD_PTR hFile) {
7268     return This->lpVtbl->SetLogFile(This,hFile);
7269 }
7270 static FORCEINLINE HRESULT IFilterGraph2_Abort(IFilterGraph2* This) {
7271     return This->lpVtbl->Abort(This);
7272 }
7273 static FORCEINLINE HRESULT IFilterGraph2_ShouldOperationContinue(IFilterGraph2* This) {
7274     return This->lpVtbl->ShouldOperationContinue(This);
7275 }
7276 /*** IFilterGraph2 methods ***/
7277 static FORCEINLINE HRESULT IFilterGraph2_AddSourceFilterForMoniker(IFilterGraph2* This,IMoniker *pMoniker,IBindCtx *pCtx,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
7278     return This->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter);
7279 }
7280 static FORCEINLINE HRESULT IFilterGraph2_ReconnectEx(IFilterGraph2* This,IPin *ppin,const AM_MEDIA_TYPE *pmt) {
7281     return This->lpVtbl->ReconnectEx(This,ppin,pmt);
7282 }
7283 static FORCEINLINE HRESULT IFilterGraph2_RenderEx(IFilterGraph2* This,IPin *pPinOut,DWORD dwFlags,DWORD *pvContext) {
7284     return This->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext);
7285 }
7286 #endif
7287 #endif
7288 
7289 #endif
7290 
7291 
7292 #endif  /* __IFilterGraph2_INTERFACE_DEFINED__ */
7293 
7294 /*****************************************************************************
7295  * IStreamBuilder interface
7296  */
7297 #ifndef __IStreamBuilder_INTERFACE_DEFINED__
7298 #define __IStreamBuilder_INTERFACE_DEFINED__
7299 
7300 DEFINE_GUID(IID_IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
7301 #if defined(__cplusplus) && !defined(CINTERFACE)
7302 MIDL_INTERFACE("56a868bf-0ad4-11ce-b03a-0020af0ba770")
7303 IStreamBuilder : public IUnknown
7304 {
7305     virtual HRESULT STDMETHODCALLTYPE Render(
7306         IPin *ppinOut,
7307         IGraphBuilder *pGraph) = 0;
7308 
7309     virtual HRESULT STDMETHODCALLTYPE Backout(
7310         IPin *ppinOut,
7311         IGraphBuilder *pGraph) = 0;
7312 
7313 };
7314 #ifdef __CRT_UUID_DECL
7315 __CRT_UUID_DECL(IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
7316 #endif
7317 #else
7318 typedef struct IStreamBuilderVtbl {
7319     BEGIN_INTERFACE
7320 
7321     /*** IUnknown methods ***/
7322     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7323         IStreamBuilder *This,
7324         REFIID riid,
7325         void **ppvObject);
7326 
7327     ULONG (STDMETHODCALLTYPE *AddRef)(
7328         IStreamBuilder *This);
7329 
7330     ULONG (STDMETHODCALLTYPE *Release)(
7331         IStreamBuilder *This);
7332 
7333     /*** IStreamBuilder methods ***/
7334     HRESULT (STDMETHODCALLTYPE *Render)(
7335         IStreamBuilder *This,
7336         IPin *ppinOut,
7337         IGraphBuilder *pGraph);
7338 
7339     HRESULT (STDMETHODCALLTYPE *Backout)(
7340         IStreamBuilder *This,
7341         IPin *ppinOut,
7342         IGraphBuilder *pGraph);
7343 
7344     END_INTERFACE
7345 } IStreamBuilderVtbl;
7346 
7347 interface IStreamBuilder {
7348     CONST_VTBL IStreamBuilderVtbl* lpVtbl;
7349 };
7350 
7351 #ifdef COBJMACROS
7352 #ifndef WIDL_C_INLINE_WRAPPERS
7353 /*** IUnknown methods ***/
7354 #define IStreamBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7355 #define IStreamBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
7356 #define IStreamBuilder_Release(This) (This)->lpVtbl->Release(This)
7357 /*** IStreamBuilder methods ***/
7358 #define IStreamBuilder_Render(This,ppinOut,pGraph) (This)->lpVtbl->Render(This,ppinOut,pGraph)
7359 #define IStreamBuilder_Backout(This,ppinOut,pGraph) (This)->lpVtbl->Backout(This,ppinOut,pGraph)
7360 #else
7361 /*** IUnknown methods ***/
7362 static FORCEINLINE HRESULT IStreamBuilder_QueryInterface(IStreamBuilder* This,REFIID riid,void **ppvObject) {
7363     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7364 }
7365 static FORCEINLINE ULONG IStreamBuilder_AddRef(IStreamBuilder* This) {
7366     return This->lpVtbl->AddRef(This);
7367 }
7368 static FORCEINLINE ULONG IStreamBuilder_Release(IStreamBuilder* This) {
7369     return This->lpVtbl->Release(This);
7370 }
7371 /*** IStreamBuilder methods ***/
7372 static FORCEINLINE HRESULT IStreamBuilder_Render(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) {
7373     return This->lpVtbl->Render(This,ppinOut,pGraph);
7374 }
7375 static FORCEINLINE HRESULT IStreamBuilder_Backout(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) {
7376     return This->lpVtbl->Backout(This,ppinOut,pGraph);
7377 }
7378 #endif
7379 #endif
7380 
7381 #endif
7382 
7383 
7384 #endif  /* __IStreamBuilder_INTERFACE_DEFINED__ */
7385 
7386 /*****************************************************************************
7387  * IAMStreamConfig interface
7388  */
7389 #ifndef __IAMStreamConfig_INTERFACE_DEFINED__
7390 #define __IAMStreamConfig_INTERFACE_DEFINED__
7391 
7392 typedef struct _VIDEO_STREAM_CONFIG_CAPS {
7393     GUID guid;
7394     ULONG VideoStandard;
7395     SIZE InputSize;
7396     SIZE MinCroppingSize;
7397     SIZE MaxCroppingSize;
7398     int CropGranularityX;
7399     int CropGranularityY;
7400     int CropAlignX;
7401     int CropAlignY;
7402     SIZE MinOutputSize;
7403     SIZE MaxOutputSize;
7404     int OutputGranularityX;
7405     int OutputGranularityY;
7406     int StretchTapsX;
7407     int StretchTapsY;
7408     int ShrinkTapsX;
7409     int ShrinkTapsY;
7410     LONGLONG MinFrameInterval;
7411     LONGLONG MaxFrameInterval;
7412     LONG MinBitsPerSecond;
7413     LONG MaxBitsPerSecond;
7414 } VIDEO_STREAM_CONFIG_CAPS;
7415 typedef struct _AUDIO_STREAM_CONFIG_CAPS {
7416     GUID guid;
7417     ULONG MinimumChannels;
7418     ULONG MaximumChannels;
7419     ULONG ChannelsGranularity;
7420     ULONG MinimumBitsPerSample;
7421     ULONG MaximumBitsPerSample;
7422     ULONG BitsPerSampleGranularity;
7423     ULONG MinimumSampleFrequency;
7424     ULONG MaximumSampleFrequency;
7425     ULONG SampleFrequencyGranularity;
7426 } AUDIO_STREAM_CONFIG_CAPS;
7427 DEFINE_GUID(IID_IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
7428 #if defined(__cplusplus) && !defined(CINTERFACE)
7429 MIDL_INTERFACE("c6e13340-30ac-11d0-a18c-00a0c9118956")
7430 IAMStreamConfig : public IUnknown
7431 {
7432     virtual HRESULT STDMETHODCALLTYPE SetFormat(
7433         AM_MEDIA_TYPE *pmt) = 0;
7434 
7435     virtual HRESULT STDMETHODCALLTYPE GetFormat(
7436         AM_MEDIA_TYPE **pmt) = 0;
7437 
7438     virtual HRESULT STDMETHODCALLTYPE GetNumberOfCapabilities(
7439         int *piCount,
7440         int *piSize) = 0;
7441 
7442     virtual HRESULT STDMETHODCALLTYPE GetStreamCaps(
7443         int iIndex,
7444         AM_MEDIA_TYPE **pmt,
7445         BYTE *pSCC) = 0;
7446 
7447 };
7448 #ifdef __CRT_UUID_DECL
7449 __CRT_UUID_DECL(IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
7450 #endif
7451 #else
7452 typedef struct IAMStreamConfigVtbl {
7453     BEGIN_INTERFACE
7454 
7455     /*** IUnknown methods ***/
7456     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7457         IAMStreamConfig *This,
7458         REFIID riid,
7459         void **ppvObject);
7460 
7461     ULONG (STDMETHODCALLTYPE *AddRef)(
7462         IAMStreamConfig *This);
7463 
7464     ULONG (STDMETHODCALLTYPE *Release)(
7465         IAMStreamConfig *This);
7466 
7467     /*** IAMStreamConfig methods ***/
7468     HRESULT (STDMETHODCALLTYPE *SetFormat)(
7469         IAMStreamConfig *This,
7470         AM_MEDIA_TYPE *pmt);
7471 
7472     HRESULT (STDMETHODCALLTYPE *GetFormat)(
7473         IAMStreamConfig *This,
7474         AM_MEDIA_TYPE **pmt);
7475 
7476     HRESULT (STDMETHODCALLTYPE *GetNumberOfCapabilities)(
7477         IAMStreamConfig *This,
7478         int *piCount,
7479         int *piSize);
7480 
7481     HRESULT (STDMETHODCALLTYPE *GetStreamCaps)(
7482         IAMStreamConfig *This,
7483         int iIndex,
7484         AM_MEDIA_TYPE **pmt,
7485         BYTE *pSCC);
7486 
7487     END_INTERFACE
7488 } IAMStreamConfigVtbl;
7489 
7490 interface IAMStreamConfig {
7491     CONST_VTBL IAMStreamConfigVtbl* lpVtbl;
7492 };
7493 
7494 #ifdef COBJMACROS
7495 #ifndef WIDL_C_INLINE_WRAPPERS
7496 /*** IUnknown methods ***/
7497 #define IAMStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7498 #define IAMStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
7499 #define IAMStreamConfig_Release(This) (This)->lpVtbl->Release(This)
7500 /*** IAMStreamConfig methods ***/
7501 #define IAMStreamConfig_SetFormat(This,pmt) (This)->lpVtbl->SetFormat(This,pmt)
7502 #define IAMStreamConfig_GetFormat(This,pmt) (This)->lpVtbl->GetFormat(This,pmt)
7503 #define IAMStreamConfig_GetNumberOfCapabilities(This,piCount,piSize) (This)->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize)
7504 #define IAMStreamConfig_GetStreamCaps(This,iIndex,pmt,pSCC) (This)->lpVtbl->GetStreamCaps(This,iIndex,pmt,pSCC)
7505 #else
7506 /*** IUnknown methods ***/
7507 static FORCEINLINE HRESULT IAMStreamConfig_QueryInterface(IAMStreamConfig* This,REFIID riid,void **ppvObject) {
7508     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7509 }
7510 static FORCEINLINE ULONG IAMStreamConfig_AddRef(IAMStreamConfig* This) {
7511     return This->lpVtbl->AddRef(This);
7512 }
7513 static FORCEINLINE ULONG IAMStreamConfig_Release(IAMStreamConfig* This) {
7514     return This->lpVtbl->Release(This);
7515 }
7516 /*** IAMStreamConfig methods ***/
7517 static FORCEINLINE HRESULT IAMStreamConfig_SetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE *pmt) {
7518     return This->lpVtbl->SetFormat(This,pmt);
7519 }
7520 static FORCEINLINE HRESULT IAMStreamConfig_GetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE **pmt) {
7521     return This->lpVtbl->GetFormat(This,pmt);
7522 }
7523 static FORCEINLINE HRESULT IAMStreamConfig_GetNumberOfCapabilities(IAMStreamConfig* This,int *piCount,int *piSize) {
7524     return This->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize);
7525 }
7526 static FORCEINLINE HRESULT IAMStreamConfig_GetStreamCaps(IAMStreamConfig* This,int iIndex,AM_MEDIA_TYPE **pmt,BYTE *pSCC) {
7527     return This->lpVtbl->GetStreamCaps(This,iIndex,pmt,pSCC);
7528 }
7529 #endif
7530 #endif
7531 
7532 #endif
7533 
7534 
7535 #endif  /* __IAMStreamConfig_INTERFACE_DEFINED__ */
7536 
7537 typedef enum tagVideoProcAmpProperty {
7538     VideoProcAmp_Brightness = 0,
7539     VideoProcAmp_Contrast = 1,
7540     VideoProcAmp_Hue = 2,
7541     VideoProcAmp_Saturation = 3,
7542     VideoProcAmp_Sharpness = 4,
7543     VideoProcAmp_Gamma = 5,
7544     VideoProcAmp_ColorEnable = 6,
7545     VideoProcAmp_WhiteBalance = 7,
7546     VideoProcAmp_BacklightCompensation = 8,
7547     VideoProcAmp_Gain = 9
7548 } VideoProcAmpProperty;
7549 typedef enum tagVideoProcAmpFlags {
7550     VideoProcAmp_Flags_Auto = 0x1,
7551     VideoProcAmp_Flags_Manual = 0x2
7552 } VideoProcAmpFlags;
7553 /*****************************************************************************
7554  * IAMVideoProcAmp interface
7555  */
7556 #ifndef __IAMVideoProcAmp_INTERFACE_DEFINED__
7557 #define __IAMVideoProcAmp_INTERFACE_DEFINED__
7558 
7559 DEFINE_GUID(IID_IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
7560 #if defined(__cplusplus) && !defined(CINTERFACE)
7561 MIDL_INTERFACE("c6e13360-30ac-11d0-a18c-00a0c9118956")
7562 IAMVideoProcAmp : public IUnknown
7563 {
7564     virtual HRESULT STDMETHODCALLTYPE GetRange(
7565         LONG Property,
7566         LONG *pMin,
7567         LONG *pMax,
7568         LONG *pSteppingDelta,
7569         LONG *pDefault,
7570         LONG *pCapsFlags) = 0;
7571 
7572     virtual HRESULT STDMETHODCALLTYPE Set(
7573         LONG Property,
7574         LONG lValue,
7575         LONG Flags) = 0;
7576 
7577     virtual HRESULT STDMETHODCALLTYPE Get(
7578         LONG Property,
7579         LONG *lValue,
7580         LONG *Flags) = 0;
7581 
7582 };
7583 #ifdef __CRT_UUID_DECL
7584 __CRT_UUID_DECL(IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
7585 #endif
7586 #else
7587 typedef struct IAMVideoProcAmpVtbl {
7588     BEGIN_INTERFACE
7589 
7590     /*** IUnknown methods ***/
7591     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7592         IAMVideoProcAmp *This,
7593         REFIID riid,
7594         void **ppvObject);
7595 
7596     ULONG (STDMETHODCALLTYPE *AddRef)(
7597         IAMVideoProcAmp *This);
7598 
7599     ULONG (STDMETHODCALLTYPE *Release)(
7600         IAMVideoProcAmp *This);
7601 
7602     /*** IAMVideoProcAmp methods ***/
7603     HRESULT (STDMETHODCALLTYPE *GetRange)(
7604         IAMVideoProcAmp *This,
7605         LONG Property,
7606         LONG *pMin,
7607         LONG *pMax,
7608         LONG *pSteppingDelta,
7609         LONG *pDefault,
7610         LONG *pCapsFlags);
7611 
7612     HRESULT (STDMETHODCALLTYPE *Set)(
7613         IAMVideoProcAmp *This,
7614         LONG Property,
7615         LONG lValue,
7616         LONG Flags);
7617 
7618     HRESULT (STDMETHODCALLTYPE *Get)(
7619         IAMVideoProcAmp *This,
7620         LONG Property,
7621         LONG *lValue,
7622         LONG *Flags);
7623 
7624     END_INTERFACE
7625 } IAMVideoProcAmpVtbl;
7626 
7627 interface IAMVideoProcAmp {
7628     CONST_VTBL IAMVideoProcAmpVtbl* lpVtbl;
7629 };
7630 
7631 #ifdef COBJMACROS
7632 #ifndef WIDL_C_INLINE_WRAPPERS
7633 /*** IUnknown methods ***/
7634 #define IAMVideoProcAmp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7635 #define IAMVideoProcAmp_AddRef(This) (This)->lpVtbl->AddRef(This)
7636 #define IAMVideoProcAmp_Release(This) (This)->lpVtbl->Release(This)
7637 /*** IAMVideoProcAmp methods ***/
7638 #define IAMVideoProcAmp_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
7639 #define IAMVideoProcAmp_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
7640 #define IAMVideoProcAmp_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
7641 #else
7642 /*** IUnknown methods ***/
7643 static FORCEINLINE HRESULT IAMVideoProcAmp_QueryInterface(IAMVideoProcAmp* This,REFIID riid,void **ppvObject) {
7644     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7645 }
7646 static FORCEINLINE ULONG IAMVideoProcAmp_AddRef(IAMVideoProcAmp* This) {
7647     return This->lpVtbl->AddRef(This);
7648 }
7649 static FORCEINLINE ULONG IAMVideoProcAmp_Release(IAMVideoProcAmp* This) {
7650     return This->lpVtbl->Release(This);
7651 }
7652 /*** IAMVideoProcAmp methods ***/
7653 static FORCEINLINE HRESULT IAMVideoProcAmp_GetRange(IAMVideoProcAmp* This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags) {
7654     return This->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags);
7655 }
7656 static FORCEINLINE HRESULT IAMVideoProcAmp_Set(IAMVideoProcAmp* This,LONG Property,LONG lValue,LONG Flags) {
7657     return This->lpVtbl->Set(This,Property,lValue,Flags);
7658 }
7659 static FORCEINLINE HRESULT IAMVideoProcAmp_Get(IAMVideoProcAmp* This,LONG Property,LONG *lValue,LONG *Flags) {
7660     return This->lpVtbl->Get(This,Property,lValue,Flags);
7661 }
7662 #endif
7663 #endif
7664 
7665 #endif
7666 
7667 
7668 #endif  /* __IAMVideoProcAmp_INTERFACE_DEFINED__ */
7669 
7670 /*****************************************************************************
7671  * IAsyncReader interface
7672  */
7673 #ifndef __IAsyncReader_INTERFACE_DEFINED__
7674 #define __IAsyncReader_INTERFACE_DEFINED__
7675 
7676 DEFINE_GUID(IID_IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
7677 #if defined(__cplusplus) && !defined(CINTERFACE)
7678 MIDL_INTERFACE("56a868aa-0ad4-11ce-b03a-0020af0ba770")
7679 IAsyncReader : public IUnknown
7680 {
7681     virtual HRESULT STDMETHODCALLTYPE RequestAllocator(
7682         IMemAllocator *pPreferred,
7683         ALLOCATOR_PROPERTIES *pProps,
7684         IMemAllocator **ppActual) = 0;
7685 
7686     virtual HRESULT STDMETHODCALLTYPE Request(
7687         IMediaSample *pSample,
7688         DWORD_PTR dwUser) = 0;
7689 
7690     virtual HRESULT STDMETHODCALLTYPE WaitForNext(
7691         DWORD dwTimeout,
7692         IMediaSample **ppSample,
7693         DWORD_PTR *pdwUser) = 0;
7694 
7695     virtual HRESULT STDMETHODCALLTYPE SyncReadAligned(
7696         IMediaSample *pSample) = 0;
7697 
7698     virtual HRESULT STDMETHODCALLTYPE SyncRead(
7699         LONGLONG llPosition,
7700         LONG lLength,
7701         BYTE *pBuffer) = 0;
7702 
7703     virtual HRESULT STDMETHODCALLTYPE Length(
7704         LONGLONG *pTotal,
7705         LONGLONG *pAvailable) = 0;
7706 
7707     virtual HRESULT STDMETHODCALLTYPE BeginFlush(
7708         ) = 0;
7709 
7710     virtual HRESULT STDMETHODCALLTYPE EndFlush(
7711         ) = 0;
7712 
7713 };
7714 #ifdef __CRT_UUID_DECL
7715 __CRT_UUID_DECL(IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
7716 #endif
7717 #else
7718 typedef struct IAsyncReaderVtbl {
7719     BEGIN_INTERFACE
7720 
7721     /*** IUnknown methods ***/
7722     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7723         IAsyncReader *This,
7724         REFIID riid,
7725         void **ppvObject);
7726 
7727     ULONG (STDMETHODCALLTYPE *AddRef)(
7728         IAsyncReader *This);
7729 
7730     ULONG (STDMETHODCALLTYPE *Release)(
7731         IAsyncReader *This);
7732 
7733     /*** IAsyncReader methods ***/
7734     HRESULT (STDMETHODCALLTYPE *RequestAllocator)(
7735         IAsyncReader *This,
7736         IMemAllocator *pPreferred,
7737         ALLOCATOR_PROPERTIES *pProps,
7738         IMemAllocator **ppActual);
7739 
7740     HRESULT (STDMETHODCALLTYPE *Request)(
7741         IAsyncReader *This,
7742         IMediaSample *pSample,
7743         DWORD_PTR dwUser);
7744 
7745     HRESULT (STDMETHODCALLTYPE *WaitForNext)(
7746         IAsyncReader *This,
7747         DWORD dwTimeout,
7748         IMediaSample **ppSample,
7749         DWORD_PTR *pdwUser);
7750 
7751     HRESULT (STDMETHODCALLTYPE *SyncReadAligned)(
7752         IAsyncReader *This,
7753         IMediaSample *pSample);
7754 
7755     HRESULT (STDMETHODCALLTYPE *SyncRead)(
7756         IAsyncReader *This,
7757         LONGLONG llPosition,
7758         LONG lLength,
7759         BYTE *pBuffer);
7760 
7761     HRESULT (STDMETHODCALLTYPE *Length)(
7762         IAsyncReader *This,
7763         LONGLONG *pTotal,
7764         LONGLONG *pAvailable);
7765 
7766     HRESULT (STDMETHODCALLTYPE *BeginFlush)(
7767         IAsyncReader *This);
7768 
7769     HRESULT (STDMETHODCALLTYPE *EndFlush)(
7770         IAsyncReader *This);
7771 
7772     END_INTERFACE
7773 } IAsyncReaderVtbl;
7774 
7775 interface IAsyncReader {
7776     CONST_VTBL IAsyncReaderVtbl* lpVtbl;
7777 };
7778 
7779 #ifdef COBJMACROS
7780 #ifndef WIDL_C_INLINE_WRAPPERS
7781 /*** IUnknown methods ***/
7782 #define IAsyncReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7783 #define IAsyncReader_AddRef(This) (This)->lpVtbl->AddRef(This)
7784 #define IAsyncReader_Release(This) (This)->lpVtbl->Release(This)
7785 /*** IAsyncReader methods ***/
7786 #define IAsyncReader_RequestAllocator(This,pPreferred,pProps,ppActual) (This)->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual)
7787 #define IAsyncReader_Request(This,pSample,dwUser) (This)->lpVtbl->Request(This,pSample,dwUser)
7788 #define IAsyncReader_WaitForNext(This,dwTimeout,ppSample,pdwUser) (This)->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser)
7789 #define IAsyncReader_SyncReadAligned(This,pSample) (This)->lpVtbl->SyncReadAligned(This,pSample)
7790 #define IAsyncReader_SyncRead(This,llPosition,lLength,pBuffer) (This)->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer)
7791 #define IAsyncReader_Length(This,pTotal,pAvailable) (This)->lpVtbl->Length(This,pTotal,pAvailable)
7792 #define IAsyncReader_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
7793 #define IAsyncReader_EndFlush(This) (This)->lpVtbl->EndFlush(This)
7794 #else
7795 /*** IUnknown methods ***/
7796 static FORCEINLINE HRESULT IAsyncReader_QueryInterface(IAsyncReader* This,REFIID riid,void **ppvObject) {
7797     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7798 }
7799 static FORCEINLINE ULONG IAsyncReader_AddRef(IAsyncReader* This) {
7800     return This->lpVtbl->AddRef(This);
7801 }
7802 static FORCEINLINE ULONG IAsyncReader_Release(IAsyncReader* This) {
7803     return This->lpVtbl->Release(This);
7804 }
7805 /*** IAsyncReader methods ***/
7806 static FORCEINLINE HRESULT IAsyncReader_RequestAllocator(IAsyncReader* This,IMemAllocator *pPreferred,ALLOCATOR_PROPERTIES *pProps,IMemAllocator **ppActual) {
7807     return This->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual);
7808 }
7809 static FORCEINLINE HRESULT IAsyncReader_Request(IAsyncReader* This,IMediaSample *pSample,DWORD_PTR dwUser) {
7810     return This->lpVtbl->Request(This,pSample,dwUser);
7811 }
7812 static FORCEINLINE HRESULT IAsyncReader_WaitForNext(IAsyncReader* This,DWORD dwTimeout,IMediaSample **ppSample,DWORD_PTR *pdwUser) {
7813     return This->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser);
7814 }
7815 static FORCEINLINE HRESULT IAsyncReader_SyncReadAligned(IAsyncReader* This,IMediaSample *pSample) {
7816     return This->lpVtbl->SyncReadAligned(This,pSample);
7817 }
7818 static FORCEINLINE HRESULT IAsyncReader_SyncRead(IAsyncReader* This,LONGLONG llPosition,LONG lLength,BYTE *pBuffer) {
7819     return This->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer);
7820 }
7821 static FORCEINLINE HRESULT IAsyncReader_Length(IAsyncReader* This,LONGLONG *pTotal,LONGLONG *pAvailable) {
7822     return This->lpVtbl->Length(This,pTotal,pAvailable);
7823 }
7824 static FORCEINLINE HRESULT IAsyncReader_BeginFlush(IAsyncReader* This) {
7825     return This->lpVtbl->BeginFlush(This);
7826 }
7827 static FORCEINLINE HRESULT IAsyncReader_EndFlush(IAsyncReader* This) {
7828     return This->lpVtbl->EndFlush(This);
7829 }
7830 #endif
7831 #endif
7832 
7833 #endif
7834 
7835 
7836 #endif  /* __IAsyncReader_INTERFACE_DEFINED__ */
7837 
7838 /*****************************************************************************
7839  * IGraphVersion interface
7840  */
7841 #ifndef __IGraphVersion_INTERFACE_DEFINED__
7842 #define __IGraphVersion_INTERFACE_DEFINED__
7843 
7844 DEFINE_GUID(IID_IGraphVersion, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
7845 #if defined(__cplusplus) && !defined(CINTERFACE)
7846 MIDL_INTERFACE("56a868ab-0ad4-11ce-b03a-0020af0ba770")
7847 IGraphVersion : public IUnknown
7848 {
7849     virtual HRESULT STDMETHODCALLTYPE QueryVersion(
7850         LONG *pVersion) = 0;
7851 
7852 };
7853 #ifdef __CRT_UUID_DECL
7854 __CRT_UUID_DECL(IGraphVersion, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
7855 #endif
7856 #else
7857 typedef struct IGraphVersionVtbl {
7858     BEGIN_INTERFACE
7859 
7860     /*** IUnknown methods ***/
7861     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7862         IGraphVersion *This,
7863         REFIID riid,
7864         void **ppvObject);
7865 
7866     ULONG (STDMETHODCALLTYPE *AddRef)(
7867         IGraphVersion *This);
7868 
7869     ULONG (STDMETHODCALLTYPE *Release)(
7870         IGraphVersion *This);
7871 
7872     /*** IGraphVersion methods ***/
7873     HRESULT (STDMETHODCALLTYPE *QueryVersion)(
7874         IGraphVersion *This,
7875         LONG *pVersion);
7876 
7877     END_INTERFACE
7878 } IGraphVersionVtbl;
7879 
7880 interface IGraphVersion {
7881     CONST_VTBL IGraphVersionVtbl* lpVtbl;
7882 };
7883 
7884 #ifdef COBJMACROS
7885 #ifndef WIDL_C_INLINE_WRAPPERS
7886 /*** IUnknown methods ***/
7887 #define IGraphVersion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7888 #define IGraphVersion_AddRef(This) (This)->lpVtbl->AddRef(This)
7889 #define IGraphVersion_Release(This) (This)->lpVtbl->Release(This)
7890 /*** IGraphVersion methods ***/
7891 #define IGraphVersion_QueryVersion(This,pVersion) (This)->lpVtbl->QueryVersion(This,pVersion)
7892 #else
7893 /*** IUnknown methods ***/
7894 static FORCEINLINE HRESULT IGraphVersion_QueryInterface(IGraphVersion* This,REFIID riid,void **ppvObject) {
7895     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7896 }
7897 static FORCEINLINE ULONG IGraphVersion_AddRef(IGraphVersion* This) {
7898     return This->lpVtbl->AddRef(This);
7899 }
7900 static FORCEINLINE ULONG IGraphVersion_Release(IGraphVersion* This) {
7901     return This->lpVtbl->Release(This);
7902 }
7903 /*** IGraphVersion methods ***/
7904 static FORCEINLINE HRESULT IGraphVersion_QueryVersion(IGraphVersion* This,LONG *pVersion) {
7905     return This->lpVtbl->QueryVersion(This,pVersion);
7906 }
7907 #endif
7908 #endif
7909 
7910 #endif
7911 
7912 
7913 #endif  /* __IGraphVersion_INTERFACE_DEFINED__ */
7914 
7915 /*****************************************************************************
7916  * IResourceConsumer interface
7917  */
7918 #ifndef __IResourceConsumer_INTERFACE_DEFINED__
7919 #define __IResourceConsumer_INTERFACE_DEFINED__
7920 
7921 DEFINE_GUID(IID_IResourceConsumer, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
7922 #if defined(__cplusplus) && !defined(CINTERFACE)
7923 MIDL_INTERFACE("56a868ad-0ad4-11ce-b03a-0020af0ba770")
7924 IResourceConsumer : public IUnknown
7925 {
7926     virtual HRESULT STDMETHODCALLTYPE AcquireResource(
7927         LONG idResource) = 0;
7928 
7929     virtual HRESULT STDMETHODCALLTYPE ReleaseResource(
7930         LONG idResource) = 0;
7931 
7932 };
7933 #ifdef __CRT_UUID_DECL
7934 __CRT_UUID_DECL(IResourceConsumer, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
7935 #endif
7936 #else
7937 typedef struct IResourceConsumerVtbl {
7938     BEGIN_INTERFACE
7939 
7940     /*** IUnknown methods ***/
7941     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7942         IResourceConsumer *This,
7943         REFIID riid,
7944         void **ppvObject);
7945 
7946     ULONG (STDMETHODCALLTYPE *AddRef)(
7947         IResourceConsumer *This);
7948 
7949     ULONG (STDMETHODCALLTYPE *Release)(
7950         IResourceConsumer *This);
7951 
7952     /*** IResourceConsumer methods ***/
7953     HRESULT (STDMETHODCALLTYPE *AcquireResource)(
7954         IResourceConsumer *This,
7955         LONG idResource);
7956 
7957     HRESULT (STDMETHODCALLTYPE *ReleaseResource)(
7958         IResourceConsumer *This,
7959         LONG idResource);
7960 
7961     END_INTERFACE
7962 } IResourceConsumerVtbl;
7963 
7964 interface IResourceConsumer {
7965     CONST_VTBL IResourceConsumerVtbl* lpVtbl;
7966 };
7967 
7968 #ifdef COBJMACROS
7969 #ifndef WIDL_C_INLINE_WRAPPERS
7970 /*** IUnknown methods ***/
7971 #define IResourceConsumer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7972 #define IResourceConsumer_AddRef(This) (This)->lpVtbl->AddRef(This)
7973 #define IResourceConsumer_Release(This) (This)->lpVtbl->Release(This)
7974 /*** IResourceConsumer methods ***/
7975 #define IResourceConsumer_AcquireResource(This,idResource) (This)->lpVtbl->AcquireResource(This,idResource)
7976 #define IResourceConsumer_ReleaseResource(This,idResource) (This)->lpVtbl->ReleaseResource(This,idResource)
7977 #else
7978 /*** IUnknown methods ***/
7979 static FORCEINLINE HRESULT IResourceConsumer_QueryInterface(IResourceConsumer* This,REFIID riid,void **ppvObject) {
7980     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7981 }
7982 static FORCEINLINE ULONG IResourceConsumer_AddRef(IResourceConsumer* This) {
7983     return This->lpVtbl->AddRef(This);
7984 }
7985 static FORCEINLINE ULONG IResourceConsumer_Release(IResourceConsumer* This) {
7986     return This->lpVtbl->Release(This);
7987 }
7988 /*** IResourceConsumer methods ***/
7989 static FORCEINLINE HRESULT IResourceConsumer_AcquireResource(IResourceConsumer* This,LONG idResource) {
7990     return This->lpVtbl->AcquireResource(This,idResource);
7991 }
7992 static FORCEINLINE HRESULT IResourceConsumer_ReleaseResource(IResourceConsumer* This,LONG idResource) {
7993     return This->lpVtbl->ReleaseResource(This,idResource);
7994 }
7995 #endif
7996 #endif
7997 
7998 #endif
7999 
8000 
8001 #endif  /* __IResourceConsumer_INTERFACE_DEFINED__ */
8002 
8003 /*****************************************************************************
8004  * IResourceManager interface
8005  */
8006 #ifndef __IResourceManager_INTERFACE_DEFINED__
8007 #define __IResourceManager_INTERFACE_DEFINED__
8008 
8009 DEFINE_GUID(IID_IResourceManager, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
8010 #if defined(__cplusplus) && !defined(CINTERFACE)
8011 MIDL_INTERFACE("56a868ac-0ad4-11ce-b03a-0020af0ba770")
8012 IResourceManager : public IUnknown
8013 {
8014     virtual HRESULT STDMETHODCALLTYPE Register(
8015         LPCWSTR pName,
8016         LONG cResource,
8017         LONG *plToken) = 0;
8018 
8019     virtual HRESULT STDMETHODCALLTYPE RegisterGroup(
8020         LPCWSTR pName,
8021         LONG cResource,
8022         LONG *palTokens,
8023         LONG *plToken) = 0;
8024 
8025     virtual HRESULT STDMETHODCALLTYPE RequestResource(
8026         LONG idResource,
8027         IUnknown *pFocusObject,
8028         IResourceConsumer *pConsumer) = 0;
8029 
8030     virtual HRESULT STDMETHODCALLTYPE NotifyAcquire(
8031         LONG idResource,
8032         IResourceConsumer *pConsumer,
8033         HRESULT hr) = 0;
8034 
8035     virtual HRESULT STDMETHODCALLTYPE NotifyRelease(
8036         LONG idResource,
8037         IResourceConsumer *pConsumer,
8038         WINBOOL bStillWant) = 0;
8039 
8040     virtual HRESULT STDMETHODCALLTYPE CancelRequest(
8041         LONG idResource,
8042         IResourceConsumer *pConsumer) = 0;
8043 
8044     virtual HRESULT STDMETHODCALLTYPE SetFocus(
8045         IUnknown *pFocusObject) = 0;
8046 
8047     virtual HRESULT STDMETHODCALLTYPE ReleaseFocus(
8048         IUnknown *pFocusObject) = 0;
8049 
8050 };
8051 #ifdef __CRT_UUID_DECL
8052 __CRT_UUID_DECL(IResourceManager, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
8053 #endif
8054 #else
8055 typedef struct IResourceManagerVtbl {
8056     BEGIN_INTERFACE
8057 
8058     /*** IUnknown methods ***/
8059     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8060         IResourceManager *This,
8061         REFIID riid,
8062         void **ppvObject);
8063 
8064     ULONG (STDMETHODCALLTYPE *AddRef)(
8065         IResourceManager *This);
8066 
8067     ULONG (STDMETHODCALLTYPE *Release)(
8068         IResourceManager *This);
8069 
8070     /*** IResourceManager methods ***/
8071     HRESULT (STDMETHODCALLTYPE *Register)(
8072         IResourceManager *This,
8073         LPCWSTR pName,
8074         LONG cResource,
8075         LONG *plToken);
8076 
8077     HRESULT (STDMETHODCALLTYPE *RegisterGroup)(
8078         IResourceManager *This,
8079         LPCWSTR pName,
8080         LONG cResource,
8081         LONG *palTokens,
8082         LONG *plToken);
8083 
8084     HRESULT (STDMETHODCALLTYPE *RequestResource)(
8085         IResourceManager *This,
8086         LONG idResource,
8087         IUnknown *pFocusObject,
8088         IResourceConsumer *pConsumer);
8089 
8090     HRESULT (STDMETHODCALLTYPE *NotifyAcquire)(
8091         IResourceManager *This,
8092         LONG idResource,
8093         IResourceConsumer *pConsumer,
8094         HRESULT hr);
8095 
8096     HRESULT (STDMETHODCALLTYPE *NotifyRelease)(
8097         IResourceManager *This,
8098         LONG idResource,
8099         IResourceConsumer *pConsumer,
8100         WINBOOL bStillWant);
8101 
8102     HRESULT (STDMETHODCALLTYPE *CancelRequest)(
8103         IResourceManager *This,
8104         LONG idResource,
8105         IResourceConsumer *pConsumer);
8106 
8107     HRESULT (STDMETHODCALLTYPE *SetFocus)(
8108         IResourceManager *This,
8109         IUnknown *pFocusObject);
8110 
8111     HRESULT (STDMETHODCALLTYPE *ReleaseFocus)(
8112         IResourceManager *This,
8113         IUnknown *pFocusObject);
8114 
8115     END_INTERFACE
8116 } IResourceManagerVtbl;
8117 
8118 interface IResourceManager {
8119     CONST_VTBL IResourceManagerVtbl* lpVtbl;
8120 };
8121 
8122 #ifdef COBJMACROS
8123 #ifndef WIDL_C_INLINE_WRAPPERS
8124 /*** IUnknown methods ***/
8125 #define IResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8126 #define IResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
8127 #define IResourceManager_Release(This) (This)->lpVtbl->Release(This)
8128 /*** IResourceManager methods ***/
8129 #define IResourceManager_Register(This,pName,cResource,plToken) (This)->lpVtbl->Register(This,pName,cResource,plToken)
8130 #define IResourceManager_RegisterGroup(This,pName,cResource,palTokens,plToken) (This)->lpVtbl->RegisterGroup(This,pName,cResource,palTokens,plToken)
8131 #define IResourceManager_RequestResource(This,idResource,pFocusObject,pConsumer) (This)->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer)
8132 #define IResourceManager_NotifyAcquire(This,idResource,pConsumer,hr) (This)->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr)
8133 #define IResourceManager_NotifyRelease(This,idResource,pConsumer,bStillWant) (This)->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant)
8134 #define IResourceManager_CancelRequest(This,idResource,pConsumer) (This)->lpVtbl->CancelRequest(This,idResource,pConsumer)
8135 #define IResourceManager_SetFocus(This,pFocusObject) (This)->lpVtbl->SetFocus(This,pFocusObject)
8136 #define IResourceManager_ReleaseFocus(This,pFocusObject) (This)->lpVtbl->ReleaseFocus(This,pFocusObject)
8137 #else
8138 /*** IUnknown methods ***/
8139 static FORCEINLINE HRESULT IResourceManager_QueryInterface(IResourceManager* This,REFIID riid,void **ppvObject) {
8140     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8141 }
8142 static FORCEINLINE ULONG IResourceManager_AddRef(IResourceManager* This) {
8143     return This->lpVtbl->AddRef(This);
8144 }
8145 static FORCEINLINE ULONG IResourceManager_Release(IResourceManager* This) {
8146     return This->lpVtbl->Release(This);
8147 }
8148 /*** IResourceManager methods ***/
8149 static FORCEINLINE HRESULT IResourceManager_Register(IResourceManager* This,LPCWSTR pName,LONG cResource,LONG *plToken) {
8150     return This->lpVtbl->Register(This,pName,cResource,plToken);
8151 }
8152 static FORCEINLINE HRESULT IResourceManager_RegisterGroup(IResourceManager* This,LPCWSTR pName,LONG cResource,LONG *palTokens,LONG *plToken) {
8153     return This->lpVtbl->RegisterGroup(This,pName,cResource,palTokens,plToken);
8154 }
8155 static FORCEINLINE HRESULT IResourceManager_RequestResource(IResourceManager* This,LONG idResource,IUnknown *pFocusObject,IResourceConsumer *pConsumer) {
8156     return This->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer);
8157 }
8158 static FORCEINLINE HRESULT IResourceManager_NotifyAcquire(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer,HRESULT hr) {
8159     return This->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr);
8160 }
8161 static FORCEINLINE HRESULT IResourceManager_NotifyRelease(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer,WINBOOL bStillWant) {
8162     return This->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant);
8163 }
8164 static FORCEINLINE HRESULT IResourceManager_CancelRequest(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer) {
8165     return This->lpVtbl->CancelRequest(This,idResource,pConsumer);
8166 }
8167 static FORCEINLINE HRESULT IResourceManager_SetFocus(IResourceManager* This,IUnknown *pFocusObject) {
8168     return This->lpVtbl->SetFocus(This,pFocusObject);
8169 }
8170 static FORCEINLINE HRESULT IResourceManager_ReleaseFocus(IResourceManager* This,IUnknown *pFocusObject) {
8171     return This->lpVtbl->ReleaseFocus(This,pFocusObject);
8172 }
8173 #endif
8174 #endif
8175 
8176 #endif
8177 
8178 
8179 #endif  /* __IResourceManager_INTERFACE_DEFINED__ */
8180 
8181 typedef enum AM_STREAM_INFO_FLAGS {
8182     AM_STREAM_INFO_START_DEFINED = 0x1,
8183     AM_STREAM_INFO_STOP_DEFINED = 0x2,
8184     AM_STREAM_INFO_DISCARDING = 0x4,
8185     AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10
8186 } AM_STREAM_INFO_FLAGS;
8187 typedef struct AM_STREAM_INFO {
8188     REFERENCE_TIME tStart;
8189     REFERENCE_TIME tStop;
8190     DWORD dwStartCookie;
8191     DWORD dwStopCookie;
8192     DWORD dwFlags;
8193 } AM_STREAM_INFO;
8194 /*****************************************************************************
8195  * IAMStreamControl interface
8196  */
8197 #ifndef __IAMStreamControl_INTERFACE_DEFINED__
8198 #define __IAMStreamControl_INTERFACE_DEFINED__
8199 
8200 DEFINE_GUID(IID_IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
8201 #if defined(__cplusplus) && !defined(CINTERFACE)
8202 MIDL_INTERFACE("36b73881-c2c8-11cf-8b46-00805f6cef60")
8203 IAMStreamControl : public IUnknown
8204 {
8205     virtual HRESULT STDMETHODCALLTYPE StartAt(
8206         const REFERENCE_TIME *ptStart,
8207         DWORD dwCookie) = 0;
8208 
8209     virtual HRESULT STDMETHODCALLTYPE StopAt(
8210         const REFERENCE_TIME *ptStop,
8211         WINBOOL bSendExtra,
8212         DWORD dwCookie) = 0;
8213 
8214     virtual HRESULT STDMETHODCALLTYPE GetInfo(
8215         AM_STREAM_INFO *pInfo) = 0;
8216 
8217 };
8218 #ifdef __CRT_UUID_DECL
8219 __CRT_UUID_DECL(IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
8220 #endif
8221 #else
8222 typedef struct IAMStreamControlVtbl {
8223     BEGIN_INTERFACE
8224 
8225     /*** IUnknown methods ***/
8226     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8227         IAMStreamControl *This,
8228         REFIID riid,
8229         void **ppvObject);
8230 
8231     ULONG (STDMETHODCALLTYPE *AddRef)(
8232         IAMStreamControl *This);
8233 
8234     ULONG (STDMETHODCALLTYPE *Release)(
8235         IAMStreamControl *This);
8236 
8237     /*** IAMStreamControl methods ***/
8238     HRESULT (STDMETHODCALLTYPE *StartAt)(
8239         IAMStreamControl *This,
8240         const REFERENCE_TIME *ptStart,
8241         DWORD dwCookie);
8242 
8243     HRESULT (STDMETHODCALLTYPE *StopAt)(
8244         IAMStreamControl *This,
8245         const REFERENCE_TIME *ptStop,
8246         WINBOOL bSendExtra,
8247         DWORD dwCookie);
8248 
8249     HRESULT (STDMETHODCALLTYPE *GetInfo)(
8250         IAMStreamControl *This,
8251         AM_STREAM_INFO *pInfo);
8252 
8253     END_INTERFACE
8254 } IAMStreamControlVtbl;
8255 
8256 interface IAMStreamControl {
8257     CONST_VTBL IAMStreamControlVtbl* lpVtbl;
8258 };
8259 
8260 #ifdef COBJMACROS
8261 #ifndef WIDL_C_INLINE_WRAPPERS
8262 /*** IUnknown methods ***/
8263 #define IAMStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8264 #define IAMStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
8265 #define IAMStreamControl_Release(This) (This)->lpVtbl->Release(This)
8266 /*** IAMStreamControl methods ***/
8267 #define IAMStreamControl_StartAt(This,ptStart,dwCookie) (This)->lpVtbl->StartAt(This,ptStart,dwCookie)
8268 #define IAMStreamControl_StopAt(This,ptStop,bSendExtra,dwCookie) (This)->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie)
8269 #define IAMStreamControl_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
8270 #else
8271 /*** IUnknown methods ***/
8272 static FORCEINLINE HRESULT IAMStreamControl_QueryInterface(IAMStreamControl* This,REFIID riid,void **ppvObject) {
8273     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8274 }
8275 static FORCEINLINE ULONG IAMStreamControl_AddRef(IAMStreamControl* This) {
8276     return This->lpVtbl->AddRef(This);
8277 }
8278 static FORCEINLINE ULONG IAMStreamControl_Release(IAMStreamControl* This) {
8279     return This->lpVtbl->Release(This);
8280 }
8281 /*** IAMStreamControl methods ***/
8282 static FORCEINLINE HRESULT IAMStreamControl_StartAt(IAMStreamControl* This,const REFERENCE_TIME *ptStart,DWORD dwCookie) {
8283     return This->lpVtbl->StartAt(This,ptStart,dwCookie);
8284 }
8285 static FORCEINLINE HRESULT IAMStreamControl_StopAt(IAMStreamControl* This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie) {
8286     return This->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie);
8287 }
8288 static FORCEINLINE HRESULT IAMStreamControl_GetInfo(IAMStreamControl* This,AM_STREAM_INFO *pInfo) {
8289     return This->lpVtbl->GetInfo(This,pInfo);
8290 }
8291 #endif
8292 #endif
8293 
8294 #endif
8295 
8296 
8297 #endif  /* __IAMStreamControl_INTERFACE_DEFINED__ */
8298 
8299 #ifndef _IKsPropertySet_
8300 #define _IKsPropertySet_
8301 #define KSPROPERTY_SUPPORT_GET  1
8302 #define KSPROPERTY_SUPPORT_SET  2
8303 typedef enum AMPROPERTY_PIN {
8304     AMPROPERTY_PIN_CATEGORY = 0,
8305     AMPROPERTY_PIN_MEDIUM = 1
8306 } AMPROPERTY_PIN;
8307 /*****************************************************************************
8308  * IKsPropertySet interface
8309  */
8310 #ifndef __IKsPropertySet_INTERFACE_DEFINED__
8311 #define __IKsPropertySet_INTERFACE_DEFINED__
8312 
8313 DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93);
8314 #if defined(__cplusplus) && !defined(CINTERFACE)
8315 MIDL_INTERFACE("31efac30-515c-11d0-a9aa-00aa0061be93")
8316 IKsPropertySet : public IUnknown
8317 {
8318     virtual HRESULT STDMETHODCALLTYPE Set(
8319         REFGUID guidPropSet,
8320         DWORD dwPropID,
8321         LPVOID pInstanceData,
8322         DWORD cbInstanceData,
8323         LPVOID pPropData,
8324         DWORD cbPropData) = 0;
8325 
8326     virtual HRESULT STDMETHODCALLTYPE Get(
8327         REFGUID guidPropSet,
8328         DWORD dwPropID,
8329         LPVOID pInstanceData,
8330         DWORD cbInstanceData,
8331         LPVOID pPropData,
8332         DWORD cbPropData,
8333         DWORD *pcbReturned) = 0;
8334 
8335     virtual HRESULT STDMETHODCALLTYPE QuerySupported(
8336         REFGUID guidPropSet,
8337         DWORD dwPropID,
8338         DWORD *pTypeSupport) = 0;
8339 
8340 };
8341 #ifdef __CRT_UUID_DECL
8342 __CRT_UUID_DECL(IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93)
8343 #endif
8344 #else
8345 typedef struct IKsPropertySetVtbl {
8346     BEGIN_INTERFACE
8347 
8348     /*** IUnknown methods ***/
8349     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8350         IKsPropertySet *This,
8351         REFIID riid,
8352         void **ppvObject);
8353 
8354     ULONG (STDMETHODCALLTYPE *AddRef)(
8355         IKsPropertySet *This);
8356 
8357     ULONG (STDMETHODCALLTYPE *Release)(
8358         IKsPropertySet *This);
8359 
8360     /*** IKsPropertySet methods ***/
8361     HRESULT (STDMETHODCALLTYPE *Set)(
8362         IKsPropertySet *This,
8363         REFGUID guidPropSet,
8364         DWORD dwPropID,
8365         LPVOID pInstanceData,
8366         DWORD cbInstanceData,
8367         LPVOID pPropData,
8368         DWORD cbPropData);
8369 
8370     HRESULT (STDMETHODCALLTYPE *Get)(
8371         IKsPropertySet *This,
8372         REFGUID guidPropSet,
8373         DWORD dwPropID,
8374         LPVOID pInstanceData,
8375         DWORD cbInstanceData,
8376         LPVOID pPropData,
8377         DWORD cbPropData,
8378         DWORD *pcbReturned);
8379 
8380     HRESULT (STDMETHODCALLTYPE *QuerySupported)(
8381         IKsPropertySet *This,
8382         REFGUID guidPropSet,
8383         DWORD dwPropID,
8384         DWORD *pTypeSupport);
8385 
8386     END_INTERFACE
8387 } IKsPropertySetVtbl;
8388 
8389 interface IKsPropertySet {
8390     CONST_VTBL IKsPropertySetVtbl* lpVtbl;
8391 };
8392 
8393 #ifdef COBJMACROS
8394 #ifndef WIDL_C_INLINE_WRAPPERS
8395 /*** IUnknown methods ***/
8396 #define IKsPropertySet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8397 #define IKsPropertySet_AddRef(This) (This)->lpVtbl->AddRef(This)
8398 #define IKsPropertySet_Release(This) (This)->lpVtbl->Release(This)
8399 /*** IKsPropertySet methods ***/
8400 #define IKsPropertySet_Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData) (This)->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData)
8401 #define IKsPropertySet_Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned) (This)->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned)
8402 #define IKsPropertySet_QuerySupported(This,guidPropSet,dwPropID,pTypeSupport) (This)->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport)
8403 #else
8404 /*** IUnknown methods ***/
8405 static FORCEINLINE HRESULT IKsPropertySet_QueryInterface(IKsPropertySet* This,REFIID riid,void **ppvObject) {
8406     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8407 }
8408 static FORCEINLINE ULONG IKsPropertySet_AddRef(IKsPropertySet* This) {
8409     return This->lpVtbl->AddRef(This);
8410 }
8411 static FORCEINLINE ULONG IKsPropertySet_Release(IKsPropertySet* This) {
8412     return This->lpVtbl->Release(This);
8413 }
8414 /*** IKsPropertySet methods ***/
8415 static FORCEINLINE HRESULT IKsPropertySet_Set(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData) {
8416     return This->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData);
8417 }
8418 static FORCEINLINE HRESULT IKsPropertySet_Get(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData,DWORD *pcbReturned) {
8419     return This->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned);
8420 }
8421 static FORCEINLINE HRESULT IKsPropertySet_QuerySupported(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport) {
8422     return This->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport);
8423 }
8424 #endif
8425 #endif
8426 
8427 #endif
8428 
8429 
8430 #endif  /* __IKsPropertySet_INTERFACE_DEFINED__ */
8431 
8432 #endif /* _IKsPropertySet_ */
8433 /*****************************************************************************
8434  * IMediaPropertyBag interface
8435  */
8436 #ifndef __IMediaPropertyBag_INTERFACE_DEFINED__
8437 #define __IMediaPropertyBag_INTERFACE_DEFINED__
8438 
8439 typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
8440 DEFINE_GUID(IID_IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86);
8441 #if defined(__cplusplus) && !defined(CINTERFACE)
8442 MIDL_INTERFACE("6025a880-c0d5-11d0-bd4e-00a0c911ce86")
8443 IMediaPropertyBag : public IPropertyBag
8444 {
8445     virtual HRESULT STDMETHODCALLTYPE EnumProperty(
8446         ULONG iProperty,
8447         VARIANT *pvarPropertyName,
8448         VARIANT *pvarPropertyValue) = 0;
8449 
8450 };
8451 #ifdef __CRT_UUID_DECL
8452 __CRT_UUID_DECL(IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86)
8453 #endif
8454 #else
8455 typedef struct IMediaPropertyBagVtbl {
8456     BEGIN_INTERFACE
8457 
8458     /*** IUnknown methods ***/
8459     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8460         IMediaPropertyBag *This,
8461         REFIID riid,
8462         void **ppvObject);
8463 
8464     ULONG (STDMETHODCALLTYPE *AddRef)(
8465         IMediaPropertyBag *This);
8466 
8467     ULONG (STDMETHODCALLTYPE *Release)(
8468         IMediaPropertyBag *This);
8469 
8470     /*** IPropertyBag methods ***/
8471     HRESULT (STDMETHODCALLTYPE *Read)(
8472         IMediaPropertyBag *This,
8473         LPCOLESTR pszPropName,
8474         VARIANT *pVar,
8475         IErrorLog *pErrorLog);
8476 
8477     HRESULT (STDMETHODCALLTYPE *Write)(
8478         IMediaPropertyBag *This,
8479         LPCOLESTR pszPropName,
8480         VARIANT *pVar);
8481 
8482     /*** IMediaPropertyBag methods ***/
8483     HRESULT (STDMETHODCALLTYPE *EnumProperty)(
8484         IMediaPropertyBag *This,
8485         ULONG iProperty,
8486         VARIANT *pvarPropertyName,
8487         VARIANT *pvarPropertyValue);
8488 
8489     END_INTERFACE
8490 } IMediaPropertyBagVtbl;
8491 
8492 interface IMediaPropertyBag {
8493     CONST_VTBL IMediaPropertyBagVtbl* lpVtbl;
8494 };
8495 
8496 #ifdef COBJMACROS
8497 #ifndef WIDL_C_INLINE_WRAPPERS
8498 /*** IUnknown methods ***/
8499 #define IMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8500 #define IMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
8501 #define IMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
8502 /*** IPropertyBag methods ***/
8503 #define IMediaPropertyBag_Read(This,pszPropName,pVar,pErrorLog) (This)->lpVtbl->Read(This,pszPropName,pVar,pErrorLog)
8504 #define IMediaPropertyBag_Write(This,pszPropName,pVar) (This)->lpVtbl->Write(This,pszPropName,pVar)
8505 /*** IMediaPropertyBag methods ***/
8506 #define IMediaPropertyBag_EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue) (This)->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue)
8507 #else
8508 /*** IUnknown methods ***/
8509 static FORCEINLINE HRESULT IMediaPropertyBag_QueryInterface(IMediaPropertyBag* This,REFIID riid,void **ppvObject) {
8510     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8511 }
8512 static FORCEINLINE ULONG IMediaPropertyBag_AddRef(IMediaPropertyBag* This) {
8513     return This->lpVtbl->AddRef(This);
8514 }
8515 static FORCEINLINE ULONG IMediaPropertyBag_Release(IMediaPropertyBag* This) {
8516     return This->lpVtbl->Release(This);
8517 }
8518 /*** IPropertyBag methods ***/
8519 static FORCEINLINE HRESULT IMediaPropertyBag_Read(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog) {
8520     return This->lpVtbl->Read(This,pszPropName,pVar,pErrorLog);
8521 }
8522 static FORCEINLINE HRESULT IMediaPropertyBag_Write(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar) {
8523     return This->lpVtbl->Write(This,pszPropName,pVar);
8524 }
8525 /*** IMediaPropertyBag methods ***/
8526 static FORCEINLINE HRESULT IMediaPropertyBag_EnumProperty(IMediaPropertyBag* This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue) {
8527     return This->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue);
8528 }
8529 #endif
8530 #endif
8531 
8532 #endif
8533 
8534 
8535 #endif  /* __IMediaPropertyBag_INTERFACE_DEFINED__ */
8536 
8537 /*****************************************************************************
8538  * IPersistMediaPropertyBag interface
8539  */
8540 #ifndef __IPersistMediaPropertyBag_INTERFACE_DEFINED__
8541 #define __IPersistMediaPropertyBag_INTERFACE_DEFINED__
8542 
8543 typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
8544 DEFINE_GUID(IID_IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86);
8545 #if defined(__cplusplus) && !defined(CINTERFACE)
8546 MIDL_INTERFACE("5738e040-b67f-11d0-bd4d-00a0c911ce86")
8547 IPersistMediaPropertyBag : public IPersist
8548 {
8549     virtual HRESULT STDMETHODCALLTYPE InitNew(
8550         ) = 0;
8551 
8552     virtual HRESULT STDMETHODCALLTYPE Load(
8553         IMediaPropertyBag *pPropBag,
8554         IErrorLog *pErrorLog) = 0;
8555 
8556     virtual HRESULT STDMETHODCALLTYPE Save(
8557         IMediaPropertyBag *pPropBag,
8558         WINBOOL fClearDirty,
8559         WINBOOL fSaveAllProperties) = 0;
8560 
8561 };
8562 #ifdef __CRT_UUID_DECL
8563 __CRT_UUID_DECL(IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86)
8564 #endif
8565 #else
8566 typedef struct IPersistMediaPropertyBagVtbl {
8567     BEGIN_INTERFACE
8568 
8569     /*** IUnknown methods ***/
8570     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8571         IPersistMediaPropertyBag *This,
8572         REFIID riid,
8573         void **ppvObject);
8574 
8575     ULONG (STDMETHODCALLTYPE *AddRef)(
8576         IPersistMediaPropertyBag *This);
8577 
8578     ULONG (STDMETHODCALLTYPE *Release)(
8579         IPersistMediaPropertyBag *This);
8580 
8581     /*** IPersist methods ***/
8582     HRESULT (STDMETHODCALLTYPE *GetClassID)(
8583         IPersistMediaPropertyBag *This,
8584         CLSID *pClassID);
8585 
8586     /*** IPersistMediaPropertyBag methods ***/
8587     HRESULT (STDMETHODCALLTYPE *InitNew)(
8588         IPersistMediaPropertyBag *This);
8589 
8590     HRESULT (STDMETHODCALLTYPE *Load)(
8591         IPersistMediaPropertyBag *This,
8592         IMediaPropertyBag *pPropBag,
8593         IErrorLog *pErrorLog);
8594 
8595     HRESULT (STDMETHODCALLTYPE *Save)(
8596         IPersistMediaPropertyBag *This,
8597         IMediaPropertyBag *pPropBag,
8598         WINBOOL fClearDirty,
8599         WINBOOL fSaveAllProperties);
8600 
8601     END_INTERFACE
8602 } IPersistMediaPropertyBagVtbl;
8603 
8604 interface IPersistMediaPropertyBag {
8605     CONST_VTBL IPersistMediaPropertyBagVtbl* lpVtbl;
8606 };
8607 
8608 #ifdef COBJMACROS
8609 #ifndef WIDL_C_INLINE_WRAPPERS
8610 /*** IUnknown methods ***/
8611 #define IPersistMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8612 #define IPersistMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
8613 #define IPersistMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
8614 /*** IPersist methods ***/
8615 #define IPersistMediaPropertyBag_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
8616 /*** IPersistMediaPropertyBag methods ***/
8617 #define IPersistMediaPropertyBag_InitNew(This) (This)->lpVtbl->InitNew(This)
8618 #define IPersistMediaPropertyBag_Load(This,pPropBag,pErrorLog) (This)->lpVtbl->Load(This,pPropBag,pErrorLog)
8619 #define IPersistMediaPropertyBag_Save(This,pPropBag,fClearDirty,fSaveAllProperties) (This)->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties)
8620 #else
8621 /*** IUnknown methods ***/
8622 static FORCEINLINE HRESULT IPersistMediaPropertyBag_QueryInterface(IPersistMediaPropertyBag* This,REFIID riid,void **ppvObject) {
8623     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8624 }
8625 static FORCEINLINE ULONG IPersistMediaPropertyBag_AddRef(IPersistMediaPropertyBag* This) {
8626     return This->lpVtbl->AddRef(This);
8627 }
8628 static FORCEINLINE ULONG IPersistMediaPropertyBag_Release(IPersistMediaPropertyBag* This) {
8629     return This->lpVtbl->Release(This);
8630 }
8631 /*** IPersist methods ***/
8632 static FORCEINLINE HRESULT IPersistMediaPropertyBag_GetClassID(IPersistMediaPropertyBag* This,CLSID *pClassID) {
8633     return This->lpVtbl->GetClassID(This,pClassID);
8634 }
8635 /*** IPersistMediaPropertyBag methods ***/
8636 static FORCEINLINE HRESULT IPersistMediaPropertyBag_InitNew(IPersistMediaPropertyBag* This) {
8637     return This->lpVtbl->InitNew(This);
8638 }
8639 static FORCEINLINE HRESULT IPersistMediaPropertyBag_Load(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog) {
8640     return This->lpVtbl->Load(This,pPropBag,pErrorLog);
8641 }
8642 static FORCEINLINE HRESULT IPersistMediaPropertyBag_Save(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties) {
8643     return This->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties);
8644 }
8645 #endif
8646 #endif
8647 
8648 #endif
8649 
8650 
8651 #endif  /* __IPersistMediaPropertyBag_INTERFACE_DEFINED__ */
8652 
8653 /*****************************************************************************
8654  * ISeekingPassThru interface
8655  */
8656 #ifndef __ISeekingPassThru_INTERFACE_DEFINED__
8657 #define __ISeekingPassThru_INTERFACE_DEFINED__
8658 
8659 DEFINE_GUID(IID_ISeekingPassThru, 0x36b73883, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
8660 #if defined(__cplusplus) && !defined(CINTERFACE)
8661 MIDL_INTERFACE("36b73883-c2c8-11cf-8b46-00805f6cef60")
8662 ISeekingPassThru : public IUnknown
8663 {
8664     virtual HRESULT STDMETHODCALLTYPE Init(
8665         WINBOOL bSupportRendering,
8666         IPin *pPin) = 0;
8667 
8668 };
8669 #ifdef __CRT_UUID_DECL
8670 __CRT_UUID_DECL(ISeekingPassThru, 0x36b73883, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
8671 #endif
8672 #else
8673 typedef struct ISeekingPassThruVtbl {
8674     BEGIN_INTERFACE
8675 
8676     /*** IUnknown methods ***/
8677     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8678         ISeekingPassThru *This,
8679         REFIID riid,
8680         void **ppvObject);
8681 
8682     ULONG (STDMETHODCALLTYPE *AddRef)(
8683         ISeekingPassThru *This);
8684 
8685     ULONG (STDMETHODCALLTYPE *Release)(
8686         ISeekingPassThru *This);
8687 
8688     /*** ISeekingPassThru methods ***/
8689     HRESULT (STDMETHODCALLTYPE *Init)(
8690         ISeekingPassThru *This,
8691         WINBOOL bSupportRendering,
8692         IPin *pPin);
8693 
8694     END_INTERFACE
8695 } ISeekingPassThruVtbl;
8696 
8697 interface ISeekingPassThru {
8698     CONST_VTBL ISeekingPassThruVtbl* lpVtbl;
8699 };
8700 
8701 #ifdef COBJMACROS
8702 #ifndef WIDL_C_INLINE_WRAPPERS
8703 /*** IUnknown methods ***/
8704 #define ISeekingPassThru_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8705 #define ISeekingPassThru_AddRef(This) (This)->lpVtbl->AddRef(This)
8706 #define ISeekingPassThru_Release(This) (This)->lpVtbl->Release(This)
8707 /*** ISeekingPassThru methods ***/
8708 #define ISeekingPassThru_Init(This,bSupportRendering,pPin) (This)->lpVtbl->Init(This,bSupportRendering,pPin)
8709 #else
8710 /*** IUnknown methods ***/
8711 static FORCEINLINE HRESULT ISeekingPassThru_QueryInterface(ISeekingPassThru* This,REFIID riid,void **ppvObject) {
8712     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8713 }
8714 static FORCEINLINE ULONG ISeekingPassThru_AddRef(ISeekingPassThru* This) {
8715     return This->lpVtbl->AddRef(This);
8716 }
8717 static FORCEINLINE ULONG ISeekingPassThru_Release(ISeekingPassThru* This) {
8718     return This->lpVtbl->Release(This);
8719 }
8720 /*** ISeekingPassThru methods ***/
8721 static FORCEINLINE HRESULT ISeekingPassThru_Init(ISeekingPassThru* This,WINBOOL bSupportRendering,IPin *pPin) {
8722     return This->lpVtbl->Init(This,bSupportRendering,pPin);
8723 }
8724 #endif
8725 #endif
8726 
8727 #endif
8728 
8729 
8730 #endif  /* __ISeekingPassThru_INTERFACE_DEFINED__ */
8731 
8732 enum _AM_FILTER_MISC_FLAGS {
8733     AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1,
8734     AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2
8735 };
8736 /*****************************************************************************
8737  * IAMFilterMiscFlags interface
8738  */
8739 #ifndef __IAMFilterMiscFlags_INTERFACE_DEFINED__
8740 #define __IAMFilterMiscFlags_INTERFACE_DEFINED__
8741 
8742 DEFINE_GUID(IID_IAMFilterMiscFlags, 0x2dd74950, 0xa890, 0x11d1, 0xab,0xe8, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
8743 #if defined(__cplusplus) && !defined(CINTERFACE)
8744 MIDL_INTERFACE("2dd74950-a890-11d1-abe8-00a0c905f375")
8745 IAMFilterMiscFlags : public IUnknown
8746 {
8747     virtual ULONG STDMETHODCALLTYPE GetMiscFlags(
8748         ) = 0;
8749 
8750 };
8751 #ifdef __CRT_UUID_DECL
8752 __CRT_UUID_DECL(IAMFilterMiscFlags, 0x2dd74950, 0xa890, 0x11d1, 0xab,0xe8, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
8753 #endif
8754 #else
8755 typedef struct IAMFilterMiscFlagsVtbl {
8756     BEGIN_INTERFACE
8757 
8758     /*** IUnknown methods ***/
8759     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8760         IAMFilterMiscFlags *This,
8761         REFIID riid,
8762         void **ppvObject);
8763 
8764     ULONG (STDMETHODCALLTYPE *AddRef)(
8765         IAMFilterMiscFlags *This);
8766 
8767     ULONG (STDMETHODCALLTYPE *Release)(
8768         IAMFilterMiscFlags *This);
8769 
8770     /*** IAMFilterMiscFlags methods ***/
8771     ULONG (STDMETHODCALLTYPE *GetMiscFlags)(
8772         IAMFilterMiscFlags *This);
8773 
8774     END_INTERFACE
8775 } IAMFilterMiscFlagsVtbl;
8776 
8777 interface IAMFilterMiscFlags {
8778     CONST_VTBL IAMFilterMiscFlagsVtbl* lpVtbl;
8779 };
8780 
8781 #ifdef COBJMACROS
8782 #ifndef WIDL_C_INLINE_WRAPPERS
8783 /*** IUnknown methods ***/
8784 #define IAMFilterMiscFlags_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8785 #define IAMFilterMiscFlags_AddRef(This) (This)->lpVtbl->AddRef(This)
8786 #define IAMFilterMiscFlags_Release(This) (This)->lpVtbl->Release(This)
8787 /*** IAMFilterMiscFlags methods ***/
8788 #define IAMFilterMiscFlags_GetMiscFlags(This) (This)->lpVtbl->GetMiscFlags(This)
8789 #else
8790 /*** IUnknown methods ***/
8791 static FORCEINLINE HRESULT IAMFilterMiscFlags_QueryInterface(IAMFilterMiscFlags* This,REFIID riid,void **ppvObject) {
8792     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8793 }
8794 static FORCEINLINE ULONG IAMFilterMiscFlags_AddRef(IAMFilterMiscFlags* This) {
8795     return This->lpVtbl->AddRef(This);
8796 }
8797 static FORCEINLINE ULONG IAMFilterMiscFlags_Release(IAMFilterMiscFlags* This) {
8798     return This->lpVtbl->Release(This);
8799 }
8800 /*** IAMFilterMiscFlags methods ***/
8801 static FORCEINLINE ULONG IAMFilterMiscFlags_GetMiscFlags(IAMFilterMiscFlags* This) {
8802     return This->lpVtbl->GetMiscFlags(This);
8803 }
8804 #endif
8805 #endif
8806 
8807 #endif
8808 
8809 
8810 #endif  /* __IAMFilterMiscFlags_INTERFACE_DEFINED__ */
8811 
8812 /*****************************************************************************
8813  * IAMGraphBuilderCallback interface
8814  */
8815 #ifndef __IAMGraphBuilderCallback_INTERFACE_DEFINED__
8816 #define __IAMGraphBuilderCallback_INTERFACE_DEFINED__
8817 
8818 DEFINE_GUID(IID_IAMGraphBuilderCallback, 0x4995f511, 0x9ddb, 0x4f12, 0xbd,0x3b, 0xf0,0x46,0x11,0x80,0x7b,0x79);
8819 #if defined(__cplusplus) && !defined(CINTERFACE)
8820 MIDL_INTERFACE("4995f511-9ddb-4f12-bd3b-f04611807b79")
8821 IAMGraphBuilderCallback : public IUnknown
8822 {
8823     virtual HRESULT STDMETHODCALLTYPE SelectedFilter(
8824         IMoniker *pMon) = 0;
8825 
8826     virtual HRESULT STDMETHODCALLTYPE CreatedFilter(
8827         IBaseFilter *pFil) = 0;
8828 
8829 };
8830 #ifdef __CRT_UUID_DECL
8831 __CRT_UUID_DECL(IAMGraphBuilderCallback, 0x4995f511, 0x9ddb, 0x4f12, 0xbd,0x3b, 0xf0,0x46,0x11,0x80,0x7b,0x79)
8832 #endif
8833 #else
8834 typedef struct IAMGraphBuilderCallbackVtbl {
8835     BEGIN_INTERFACE
8836 
8837     /*** IUnknown methods ***/
8838     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8839         IAMGraphBuilderCallback *This,
8840         REFIID riid,
8841         void **ppvObject);
8842 
8843     ULONG (STDMETHODCALLTYPE *AddRef)(
8844         IAMGraphBuilderCallback *This);
8845 
8846     ULONG (STDMETHODCALLTYPE *Release)(
8847         IAMGraphBuilderCallback *This);
8848 
8849     /*** IAMGraphBuilderCallback methods ***/
8850     HRESULT (STDMETHODCALLTYPE *SelectedFilter)(
8851         IAMGraphBuilderCallback *This,
8852         IMoniker *pMon);
8853 
8854     HRESULT (STDMETHODCALLTYPE *CreatedFilter)(
8855         IAMGraphBuilderCallback *This,
8856         IBaseFilter *pFil);
8857 
8858     END_INTERFACE
8859 } IAMGraphBuilderCallbackVtbl;
8860 
8861 interface IAMGraphBuilderCallback {
8862     CONST_VTBL IAMGraphBuilderCallbackVtbl* lpVtbl;
8863 };
8864 
8865 #ifdef COBJMACROS
8866 #ifndef WIDL_C_INLINE_WRAPPERS
8867 /*** IUnknown methods ***/
8868 #define IAMGraphBuilderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8869 #define IAMGraphBuilderCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
8870 #define IAMGraphBuilderCallback_Release(This) (This)->lpVtbl->Release(This)
8871 /*** IAMGraphBuilderCallback methods ***/
8872 #define IAMGraphBuilderCallback_SelectedFilter(This,pMon) (This)->lpVtbl->SelectedFilter(This,pMon)
8873 #define IAMGraphBuilderCallback_CreatedFilter(This,pFil) (This)->lpVtbl->CreatedFilter(This,pFil)
8874 #else
8875 /*** IUnknown methods ***/
8876 static FORCEINLINE HRESULT IAMGraphBuilderCallback_QueryInterface(IAMGraphBuilderCallback* This,REFIID riid,void **ppvObject) {
8877     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8878 }
8879 static FORCEINLINE ULONG IAMGraphBuilderCallback_AddRef(IAMGraphBuilderCallback* This) {
8880     return This->lpVtbl->AddRef(This);
8881 }
8882 static FORCEINLINE ULONG IAMGraphBuilderCallback_Release(IAMGraphBuilderCallback* This) {
8883     return This->lpVtbl->Release(This);
8884 }
8885 /*** IAMGraphBuilderCallback methods ***/
8886 static FORCEINLINE HRESULT IAMGraphBuilderCallback_SelectedFilter(IAMGraphBuilderCallback* This,IMoniker *pMon) {
8887     return This->lpVtbl->SelectedFilter(This,pMon);
8888 }
8889 static FORCEINLINE HRESULT IAMGraphBuilderCallback_CreatedFilter(IAMGraphBuilderCallback* This,IBaseFilter *pFil) {
8890     return This->lpVtbl->CreatedFilter(This,pFil);
8891 }
8892 #endif
8893 #endif
8894 
8895 #endif
8896 
8897 
8898 #endif  /* __IAMGraphBuilderCallback_INTERFACE_DEFINED__ */
8899 
8900 /*****************************************************************************
8901  * IAMVfwCaptureDialogs interface
8902  */
8903 #ifndef __IAMVfwCaptureDialogs_INTERFACE_DEFINED__
8904 #define __IAMVfwCaptureDialogs_INTERFACE_DEFINED__
8905 
8906 DEFINE_GUID(IID_IAMVfwCaptureDialogs, 0xd8d715a0, 0x6e5e, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
8907 #if defined(__cplusplus) && !defined(CINTERFACE)
8908 MIDL_INTERFACE("d8d715a0-6e5e-11d0-b3f0-00aa003761c5")
8909 IAMVfwCaptureDialogs : public IUnknown
8910 {
8911     virtual HRESULT STDMETHODCALLTYPE HasDialog(
8912         int dialog) = 0;
8913 
8914     virtual HRESULT STDMETHODCALLTYPE ShowDialog(
8915         int dialog,
8916         HWND hwnd) = 0;
8917 
8918     virtual HRESULT STDMETHODCALLTYPE SendDriverMessage(
8919         int dialog,
8920         int msg,
8921         LONG data1,
8922         LONG data2) = 0;
8923 
8924 };
8925 #ifdef __CRT_UUID_DECL
8926 __CRT_UUID_DECL(IAMVfwCaptureDialogs, 0xd8d715a0, 0x6e5e, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
8927 #endif
8928 #else
8929 typedef struct IAMVfwCaptureDialogsVtbl {
8930     BEGIN_INTERFACE
8931 
8932     /*** IUnknown methods ***/
8933     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8934         IAMVfwCaptureDialogs *This,
8935         REFIID riid,
8936         void **ppvObject);
8937 
8938     ULONG (STDMETHODCALLTYPE *AddRef)(
8939         IAMVfwCaptureDialogs *This);
8940 
8941     ULONG (STDMETHODCALLTYPE *Release)(
8942         IAMVfwCaptureDialogs *This);
8943 
8944     /*** IAMVfwCaptureDialogs methods ***/
8945     HRESULT (STDMETHODCALLTYPE *HasDialog)(
8946         IAMVfwCaptureDialogs *This,
8947         int dialog);
8948 
8949     HRESULT (STDMETHODCALLTYPE *ShowDialog)(
8950         IAMVfwCaptureDialogs *This,
8951         int dialog,
8952         HWND hwnd);
8953 
8954     HRESULT (STDMETHODCALLTYPE *SendDriverMessage)(
8955         IAMVfwCaptureDialogs *This,
8956         int dialog,
8957         int msg,
8958         LONG data1,
8959         LONG data2);
8960 
8961     END_INTERFACE
8962 } IAMVfwCaptureDialogsVtbl;
8963 
8964 interface IAMVfwCaptureDialogs {
8965     CONST_VTBL IAMVfwCaptureDialogsVtbl* lpVtbl;
8966 };
8967 
8968 #ifdef COBJMACROS
8969 #ifndef WIDL_C_INLINE_WRAPPERS
8970 /*** IUnknown methods ***/
8971 #define IAMVfwCaptureDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8972 #define IAMVfwCaptureDialogs_AddRef(This) (This)->lpVtbl->AddRef(This)
8973 #define IAMVfwCaptureDialogs_Release(This) (This)->lpVtbl->Release(This)
8974 /*** IAMVfwCaptureDialogs methods ***/
8975 #define IAMVfwCaptureDialogs_HasDialog(This,dialog) (This)->lpVtbl->HasDialog(This,dialog)
8976 #define IAMVfwCaptureDialogs_ShowDialog(This,dialog,hwnd) (This)->lpVtbl->ShowDialog(This,dialog,hwnd)
8977 #define IAMVfwCaptureDialogs_SendDriverMessage(This,dialog,msg,data1,data2) (This)->lpVtbl->SendDriverMessage(This,dialog,msg,data1,data2)
8978 #else
8979 /*** IUnknown methods ***/
8980 static FORCEINLINE HRESULT IAMVfwCaptureDialogs_QueryInterface(IAMVfwCaptureDialogs* This,REFIID riid,void **ppvObject) {
8981     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8982 }
8983 static FORCEINLINE ULONG IAMVfwCaptureDialogs_AddRef(IAMVfwCaptureDialogs* This) {
8984     return This->lpVtbl->AddRef(This);
8985 }
8986 static FORCEINLINE ULONG IAMVfwCaptureDialogs_Release(IAMVfwCaptureDialogs* This) {
8987     return This->lpVtbl->Release(This);
8988 }
8989 /*** IAMVfwCaptureDialogs methods ***/
8990 static FORCEINLINE HRESULT IAMVfwCaptureDialogs_HasDialog(IAMVfwCaptureDialogs* This,int dialog) {
8991     return This->lpVtbl->HasDialog(This,dialog);
8992 }
8993 static FORCEINLINE HRESULT IAMVfwCaptureDialogs_ShowDialog(IAMVfwCaptureDialogs* This,int dialog,HWND hwnd) {
8994     return This->lpVtbl->ShowDialog(This,dialog,hwnd);
8995 }
8996 static FORCEINLINE HRESULT IAMVfwCaptureDialogs_SendDriverMessage(IAMVfwCaptureDialogs* This,int dialog,int msg,LONG data1,LONG data2) {
8997     return This->lpVtbl->SendDriverMessage(This,dialog,msg,data1,data2);
8998 }
8999 #endif
9000 #endif
9001 
9002 #endif
9003 
9004 
9005 #endif  /* __IAMVfwCaptureDialogs_INTERFACE_DEFINED__ */
9006 
9007 /*****************************************************************************
9008  * IAMCameraControl interface
9009  */
9010 #ifndef __IAMCameraControl_INTERFACE_DEFINED__
9011 #define __IAMCameraControl_INTERFACE_DEFINED__
9012 
9013 DEFINE_GUID(IID_IAMCameraControl, 0xc6e13370, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
9014 #if defined(__cplusplus) && !defined(CINTERFACE)
9015 MIDL_INTERFACE("c6e13370-30ac-11d0-a18c-00a0c9118956")
9016 IAMCameraControl : public IUnknown
9017 {
9018     virtual HRESULT STDMETHODCALLTYPE GetRange(
9019         LONG property,
9020         LONG *min,
9021         LONG *max,
9022         LONG *stepping_delta,
9023         LONG *default_value,
9024         LONG *flags) = 0;
9025 
9026     virtual HRESULT STDMETHODCALLTYPE Set(
9027         LONG property,
9028         LONG property_value,
9029         LONG flags) = 0;
9030 
9031     virtual HRESULT STDMETHODCALLTYPE Get(
9032         LONG property,
9033         LONG *property_value,
9034         LONG *flags) = 0;
9035 
9036 };
9037 #ifdef __CRT_UUID_DECL
9038 __CRT_UUID_DECL(IAMCameraControl, 0xc6e13370, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
9039 #endif
9040 #else
9041 typedef struct IAMCameraControlVtbl {
9042     BEGIN_INTERFACE
9043 
9044     /*** IUnknown methods ***/
9045     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9046         IAMCameraControl *This,
9047         REFIID riid,
9048         void **ppvObject);
9049 
9050     ULONG (STDMETHODCALLTYPE *AddRef)(
9051         IAMCameraControl *This);
9052 
9053     ULONG (STDMETHODCALLTYPE *Release)(
9054         IAMCameraControl *This);
9055 
9056     /*** IAMCameraControl methods ***/
9057     HRESULT (STDMETHODCALLTYPE *GetRange)(
9058         IAMCameraControl *This,
9059         LONG property,
9060         LONG *min,
9061         LONG *max,
9062         LONG *stepping_delta,
9063         LONG *default_value,
9064         LONG *flags);
9065 
9066     HRESULT (STDMETHODCALLTYPE *Set)(
9067         IAMCameraControl *This,
9068         LONG property,
9069         LONG property_value,
9070         LONG flags);
9071 
9072     HRESULT (STDMETHODCALLTYPE *Get)(
9073         IAMCameraControl *This,
9074         LONG property,
9075         LONG *property_value,
9076         LONG *flags);
9077 
9078     END_INTERFACE
9079 } IAMCameraControlVtbl;
9080 
9081 interface IAMCameraControl {
9082     CONST_VTBL IAMCameraControlVtbl* lpVtbl;
9083 };
9084 
9085 #ifdef COBJMACROS
9086 #ifndef WIDL_C_INLINE_WRAPPERS
9087 /*** IUnknown methods ***/
9088 #define IAMCameraControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9089 #define IAMCameraControl_AddRef(This) (This)->lpVtbl->AddRef(This)
9090 #define IAMCameraControl_Release(This) (This)->lpVtbl->Release(This)
9091 /*** IAMCameraControl methods ***/
9092 #define IAMCameraControl_GetRange(This,property,min,max,stepping_delta,default_value,flags) (This)->lpVtbl->GetRange(This,property,min,max,stepping_delta,default_value,flags)
9093 #define IAMCameraControl_Set(This,property,property_value,flags) (This)->lpVtbl->Set(This,property,property_value,flags)
9094 #define IAMCameraControl_Get(This,property,property_value,flags) (This)->lpVtbl->Get(This,property,property_value,flags)
9095 #else
9096 /*** IUnknown methods ***/
9097 static FORCEINLINE HRESULT IAMCameraControl_QueryInterface(IAMCameraControl* This,REFIID riid,void **ppvObject) {
9098     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9099 }
9100 static FORCEINLINE ULONG IAMCameraControl_AddRef(IAMCameraControl* This) {
9101     return This->lpVtbl->AddRef(This);
9102 }
9103 static FORCEINLINE ULONG IAMCameraControl_Release(IAMCameraControl* This) {
9104     return This->lpVtbl->Release(This);
9105 }
9106 /*** IAMCameraControl methods ***/
9107 static FORCEINLINE HRESULT IAMCameraControl_GetRange(IAMCameraControl* This,LONG property,LONG *min,LONG *max,LONG *stepping_delta,LONG *default_value,LONG *flags) {
9108     return This->lpVtbl->GetRange(This,property,min,max,stepping_delta,default_value,flags);
9109 }
9110 static FORCEINLINE HRESULT IAMCameraControl_Set(IAMCameraControl* This,LONG property,LONG property_value,LONG flags) {
9111     return This->lpVtbl->Set(This,property,property_value,flags);
9112 }
9113 static FORCEINLINE HRESULT IAMCameraControl_Get(IAMCameraControl* This,LONG property,LONG *property_value,LONG *flags) {
9114     return This->lpVtbl->Get(This,property,property_value,flags);
9115 }
9116 #endif
9117 #endif
9118 
9119 #endif
9120 
9121 
9122 #endif  /* __IAMCameraControl_INTERFACE_DEFINED__ */
9123 
9124 /*****************************************************************************
9125  * IAMVideoControl interface
9126  */
9127 #ifndef __IAMVideoControl_INTERFACE_DEFINED__
9128 #define __IAMVideoControl_INTERFACE_DEFINED__
9129 
9130 DEFINE_GUID(IID_IAMVideoControl, 0x6a2e0670, 0x28e4, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
9131 #if defined(__cplusplus) && !defined(CINTERFACE)
9132 MIDL_INTERFACE("6a2e0670-28e4-11d0-a18c-00a0c9118956")
9133 IAMVideoControl : public IUnknown
9134 {
9135     virtual HRESULT STDMETHODCALLTYPE GetCaps(
9136         IPin *pin,
9137         LONG *flags) = 0;
9138 
9139     virtual HRESULT STDMETHODCALLTYPE SetMode(
9140         IPin *pin,
9141         LONG mode) = 0;
9142 
9143     virtual HRESULT STDMETHODCALLTYPE GetMode(
9144         IPin *pin,
9145         LONG *mode) = 0;
9146 
9147     virtual HRESULT STDMETHODCALLTYPE GetCurrentActualFrameRate(
9148         IPin *pin,
9149         LONGLONG *frame_rate) = 0;
9150 
9151     virtual HRESULT STDMETHODCALLTYPE GetMaxAvailableFrameRate(
9152         IPin *pin,
9153         LONG index,
9154         SIZE dimensions,
9155         LONGLONG *frame_rate) = 0;
9156 
9157     virtual HRESULT STDMETHODCALLTYPE GetFrameRateList(
9158         IPin *pin,
9159         LONG index,
9160         SIZE dimensions,
9161         LONG *list_size,
9162         LONGLONG **frame_rate) = 0;
9163 
9164 };
9165 #ifdef __CRT_UUID_DECL
9166 __CRT_UUID_DECL(IAMVideoControl, 0x6a2e0670, 0x28e4, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
9167 #endif
9168 #else
9169 typedef struct IAMVideoControlVtbl {
9170     BEGIN_INTERFACE
9171 
9172     /*** IUnknown methods ***/
9173     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9174         IAMVideoControl *This,
9175         REFIID riid,
9176         void **ppvObject);
9177 
9178     ULONG (STDMETHODCALLTYPE *AddRef)(
9179         IAMVideoControl *This);
9180 
9181     ULONG (STDMETHODCALLTYPE *Release)(
9182         IAMVideoControl *This);
9183 
9184     /*** IAMVideoControl methods ***/
9185     HRESULT (STDMETHODCALLTYPE *GetCaps)(
9186         IAMVideoControl *This,
9187         IPin *pin,
9188         LONG *flags);
9189 
9190     HRESULT (STDMETHODCALLTYPE *SetMode)(
9191         IAMVideoControl *This,
9192         IPin *pin,
9193         LONG mode);
9194 
9195     HRESULT (STDMETHODCALLTYPE *GetMode)(
9196         IAMVideoControl *This,
9197         IPin *pin,
9198         LONG *mode);
9199 
9200     HRESULT (STDMETHODCALLTYPE *GetCurrentActualFrameRate)(
9201         IAMVideoControl *This,
9202         IPin *pin,
9203         LONGLONG *frame_rate);
9204 
9205     HRESULT (STDMETHODCALLTYPE *GetMaxAvailableFrameRate)(
9206         IAMVideoControl *This,
9207         IPin *pin,
9208         LONG index,
9209         SIZE dimensions,
9210         LONGLONG *frame_rate);
9211 
9212     HRESULT (STDMETHODCALLTYPE *GetFrameRateList)(
9213         IAMVideoControl *This,
9214         IPin *pin,
9215         LONG index,
9216         SIZE dimensions,
9217         LONG *list_size,
9218         LONGLONG **frame_rate);
9219 
9220     END_INTERFACE
9221 } IAMVideoControlVtbl;
9222 
9223 interface IAMVideoControl {
9224     CONST_VTBL IAMVideoControlVtbl* lpVtbl;
9225 };
9226 
9227 #ifdef COBJMACROS
9228 #ifndef WIDL_C_INLINE_WRAPPERS
9229 /*** IUnknown methods ***/
9230 #define IAMVideoControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9231 #define IAMVideoControl_AddRef(This) (This)->lpVtbl->AddRef(This)
9232 #define IAMVideoControl_Release(This) (This)->lpVtbl->Release(This)
9233 /*** IAMVideoControl methods ***/
9234 #define IAMVideoControl_GetCaps(This,pin,flags) (This)->lpVtbl->GetCaps(This,pin,flags)
9235 #define IAMVideoControl_SetMode(This,pin,mode) (This)->lpVtbl->SetMode(This,pin,mode)
9236 #define IAMVideoControl_GetMode(This,pin,mode) (This)->lpVtbl->GetMode(This,pin,mode)
9237 #define IAMVideoControl_GetCurrentActualFrameRate(This,pin,frame_rate) (This)->lpVtbl->GetCurrentActualFrameRate(This,pin,frame_rate)
9238 #define IAMVideoControl_GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate) (This)->lpVtbl->GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate)
9239 #define IAMVideoControl_GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate) (This)->lpVtbl->GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate)
9240 #else
9241 /*** IUnknown methods ***/
9242 static FORCEINLINE HRESULT IAMVideoControl_QueryInterface(IAMVideoControl* This,REFIID riid,void **ppvObject) {
9243     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9244 }
9245 static FORCEINLINE ULONG IAMVideoControl_AddRef(IAMVideoControl* This) {
9246     return This->lpVtbl->AddRef(This);
9247 }
9248 static FORCEINLINE ULONG IAMVideoControl_Release(IAMVideoControl* This) {
9249     return This->lpVtbl->Release(This);
9250 }
9251 /*** IAMVideoControl methods ***/
9252 static FORCEINLINE HRESULT IAMVideoControl_GetCaps(IAMVideoControl* This,IPin *pin,LONG *flags) {
9253     return This->lpVtbl->GetCaps(This,pin,flags);
9254 }
9255 static FORCEINLINE HRESULT IAMVideoControl_SetMode(IAMVideoControl* This,IPin *pin,LONG mode) {
9256     return This->lpVtbl->SetMode(This,pin,mode);
9257 }
9258 static FORCEINLINE HRESULT IAMVideoControl_GetMode(IAMVideoControl* This,IPin *pin,LONG *mode) {
9259     return This->lpVtbl->GetMode(This,pin,mode);
9260 }
9261 static FORCEINLINE HRESULT IAMVideoControl_GetCurrentActualFrameRate(IAMVideoControl* This,IPin *pin,LONGLONG *frame_rate) {
9262     return This->lpVtbl->GetCurrentActualFrameRate(This,pin,frame_rate);
9263 }
9264 static FORCEINLINE HRESULT IAMVideoControl_GetMaxAvailableFrameRate(IAMVideoControl* This,IPin *pin,LONG index,SIZE dimensions,LONGLONG *frame_rate) {
9265     return This->lpVtbl->GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate);
9266 }
9267 static FORCEINLINE HRESULT IAMVideoControl_GetFrameRateList(IAMVideoControl* This,IPin *pin,LONG index,SIZE dimensions,LONG *list_size,LONGLONG **frame_rate) {
9268     return This->lpVtbl->GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate);
9269 }
9270 #endif
9271 #endif
9272 
9273 #endif
9274 
9275 
9276 #endif  /* __IAMVideoControl_INTERFACE_DEFINED__ */
9277 
9278 /*****************************************************************************
9279  * IAMBufferNegotiation interface
9280  */
9281 #ifndef __IAMBufferNegotiation_INTERFACE_DEFINED__
9282 #define __IAMBufferNegotiation_INTERFACE_DEFINED__
9283 
9284 DEFINE_GUID(IID_IAMBufferNegotiation, 0x56ed71a0, 0xaf5f, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
9285 #if defined(__cplusplus) && !defined(CINTERFACE)
9286 MIDL_INTERFACE("56ed71a0-af5f-11d0-b3f0-00aa003761c5")
9287 IAMBufferNegotiation : public IUnknown
9288 {
9289     virtual HRESULT STDMETHODCALLTYPE SuggestAllocatorProperties(
9290         const ALLOCATOR_PROPERTIES *prop) = 0;
9291 
9292     virtual HRESULT STDMETHODCALLTYPE GetAllocatorProperties(
9293         ALLOCATOR_PROPERTIES *prop) = 0;
9294 
9295 };
9296 #ifdef __CRT_UUID_DECL
9297 __CRT_UUID_DECL(IAMBufferNegotiation, 0x56ed71a0, 0xaf5f, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
9298 #endif
9299 #else
9300 typedef struct IAMBufferNegotiationVtbl {
9301     BEGIN_INTERFACE
9302 
9303     /*** IUnknown methods ***/
9304     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9305         IAMBufferNegotiation *This,
9306         REFIID riid,
9307         void **ppvObject);
9308 
9309     ULONG (STDMETHODCALLTYPE *AddRef)(
9310         IAMBufferNegotiation *This);
9311 
9312     ULONG (STDMETHODCALLTYPE *Release)(
9313         IAMBufferNegotiation *This);
9314 
9315     /*** IAMBufferNegotiation methods ***/
9316     HRESULT (STDMETHODCALLTYPE *SuggestAllocatorProperties)(
9317         IAMBufferNegotiation *This,
9318         const ALLOCATOR_PROPERTIES *prop);
9319 
9320     HRESULT (STDMETHODCALLTYPE *GetAllocatorProperties)(
9321         IAMBufferNegotiation *This,
9322         ALLOCATOR_PROPERTIES *prop);
9323 
9324     END_INTERFACE
9325 } IAMBufferNegotiationVtbl;
9326 
9327 interface IAMBufferNegotiation {
9328     CONST_VTBL IAMBufferNegotiationVtbl* lpVtbl;
9329 };
9330 
9331 #ifdef COBJMACROS
9332 #ifndef WIDL_C_INLINE_WRAPPERS
9333 /*** IUnknown methods ***/
9334 #define IAMBufferNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9335 #define IAMBufferNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This)
9336 #define IAMBufferNegotiation_Release(This) (This)->lpVtbl->Release(This)
9337 /*** IAMBufferNegotiation methods ***/
9338 #define IAMBufferNegotiation_SuggestAllocatorProperties(This,prop) (This)->lpVtbl->SuggestAllocatorProperties(This,prop)
9339 #define IAMBufferNegotiation_GetAllocatorProperties(This,prop) (This)->lpVtbl->GetAllocatorProperties(This,prop)
9340 #else
9341 /*** IUnknown methods ***/
9342 static FORCEINLINE HRESULT IAMBufferNegotiation_QueryInterface(IAMBufferNegotiation* This,REFIID riid,void **ppvObject) {
9343     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9344 }
9345 static FORCEINLINE ULONG IAMBufferNegotiation_AddRef(IAMBufferNegotiation* This) {
9346     return This->lpVtbl->AddRef(This);
9347 }
9348 static FORCEINLINE ULONG IAMBufferNegotiation_Release(IAMBufferNegotiation* This) {
9349     return This->lpVtbl->Release(This);
9350 }
9351 /*** IAMBufferNegotiation methods ***/
9352 static FORCEINLINE HRESULT IAMBufferNegotiation_SuggestAllocatorProperties(IAMBufferNegotiation* This,const ALLOCATOR_PROPERTIES *prop) {
9353     return This->lpVtbl->SuggestAllocatorProperties(This,prop);
9354 }
9355 static FORCEINLINE HRESULT IAMBufferNegotiation_GetAllocatorProperties(IAMBufferNegotiation* This,ALLOCATOR_PROPERTIES *prop) {
9356     return This->lpVtbl->GetAllocatorProperties(This,prop);
9357 }
9358 #endif
9359 #endif
9360 
9361 #endif
9362 
9363 
9364 #endif  /* __IAMBufferNegotiation_INTERFACE_DEFINED__ */
9365 
9366 /*****************************************************************************
9367  * IAMDroppedFrames interface
9368  */
9369 #ifndef __IAMDroppedFrames_INTERFACE_DEFINED__
9370 #define __IAMDroppedFrames_INTERFACE_DEFINED__
9371 
9372 DEFINE_GUID(IID_IAMDroppedFrames, 0xc6e13344, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
9373 #if defined(__cplusplus) && !defined(CINTERFACE)
9374 MIDL_INTERFACE("c6e13344-30ac-11d0-a18c-00a0c9118956")
9375 IAMDroppedFrames : public IUnknown
9376 {
9377     virtual HRESULT STDMETHODCALLTYPE GetNumDropped(
9378         LONG *number) = 0;
9379 
9380     virtual HRESULT STDMETHODCALLTYPE GetNumNotDropped(
9381         LONG *number) = 0;
9382 
9383     virtual HRESULT STDMETHODCALLTYPE GetDroppedInfo(
9384         LONG size,
9385         LONG *array,
9386         LONG *copied) = 0;
9387 
9388     virtual HRESULT STDMETHODCALLTYPE GetAverageFrameSize(
9389         LONG *size) = 0;
9390 
9391 };
9392 #ifdef __CRT_UUID_DECL
9393 __CRT_UUID_DECL(IAMDroppedFrames, 0xc6e13344, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
9394 #endif
9395 #else
9396 typedef struct IAMDroppedFramesVtbl {
9397     BEGIN_INTERFACE
9398 
9399     /*** IUnknown methods ***/
9400     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9401         IAMDroppedFrames *This,
9402         REFIID riid,
9403         void **ppvObject);
9404 
9405     ULONG (STDMETHODCALLTYPE *AddRef)(
9406         IAMDroppedFrames *This);
9407 
9408     ULONG (STDMETHODCALLTYPE *Release)(
9409         IAMDroppedFrames *This);
9410 
9411     /*** IAMDroppedFrames methods ***/
9412     HRESULT (STDMETHODCALLTYPE *GetNumDropped)(
9413         IAMDroppedFrames *This,
9414         LONG *number);
9415 
9416     HRESULT (STDMETHODCALLTYPE *GetNumNotDropped)(
9417         IAMDroppedFrames *This,
9418         LONG *number);
9419 
9420     HRESULT (STDMETHODCALLTYPE *GetDroppedInfo)(
9421         IAMDroppedFrames *This,
9422         LONG size,
9423         LONG *array,
9424         LONG *copied);
9425 
9426     HRESULT (STDMETHODCALLTYPE *GetAverageFrameSize)(
9427         IAMDroppedFrames *This,
9428         LONG *size);
9429 
9430     END_INTERFACE
9431 } IAMDroppedFramesVtbl;
9432 
9433 interface IAMDroppedFrames {
9434     CONST_VTBL IAMDroppedFramesVtbl* lpVtbl;
9435 };
9436 
9437 #ifdef COBJMACROS
9438 #ifndef WIDL_C_INLINE_WRAPPERS
9439 /*** IUnknown methods ***/
9440 #define IAMDroppedFrames_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9441 #define IAMDroppedFrames_AddRef(This) (This)->lpVtbl->AddRef(This)
9442 #define IAMDroppedFrames_Release(This) (This)->lpVtbl->Release(This)
9443 /*** IAMDroppedFrames methods ***/
9444 #define IAMDroppedFrames_GetNumDropped(This,number) (This)->lpVtbl->GetNumDropped(This,number)
9445 #define IAMDroppedFrames_GetNumNotDropped(This,number) (This)->lpVtbl->GetNumNotDropped(This,number)
9446 #define IAMDroppedFrames_GetDroppedInfo(This,size,array,copied) (This)->lpVtbl->GetDroppedInfo(This,size,array,copied)
9447 #define IAMDroppedFrames_GetAverageFrameSize(This,size) (This)->lpVtbl->GetAverageFrameSize(This,size)
9448 #else
9449 /*** IUnknown methods ***/
9450 static FORCEINLINE HRESULT IAMDroppedFrames_QueryInterface(IAMDroppedFrames* This,REFIID riid,void **ppvObject) {
9451     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9452 }
9453 static FORCEINLINE ULONG IAMDroppedFrames_AddRef(IAMDroppedFrames* This) {
9454     return This->lpVtbl->AddRef(This);
9455 }
9456 static FORCEINLINE ULONG IAMDroppedFrames_Release(IAMDroppedFrames* This) {
9457     return This->lpVtbl->Release(This);
9458 }
9459 /*** IAMDroppedFrames methods ***/
9460 static FORCEINLINE HRESULT IAMDroppedFrames_GetNumDropped(IAMDroppedFrames* This,LONG *number) {
9461     return This->lpVtbl->GetNumDropped(This,number);
9462 }
9463 static FORCEINLINE HRESULT IAMDroppedFrames_GetNumNotDropped(IAMDroppedFrames* This,LONG *number) {
9464     return This->lpVtbl->GetNumNotDropped(This,number);
9465 }
9466 static FORCEINLINE HRESULT IAMDroppedFrames_GetDroppedInfo(IAMDroppedFrames* This,LONG size,LONG *array,LONG *copied) {
9467     return This->lpVtbl->GetDroppedInfo(This,size,array,copied);
9468 }
9469 static FORCEINLINE HRESULT IAMDroppedFrames_GetAverageFrameSize(IAMDroppedFrames* This,LONG *size) {
9470     return This->lpVtbl->GetAverageFrameSize(This,size);
9471 }
9472 #endif
9473 #endif
9474 
9475 #endif
9476 
9477 
9478 #endif  /* __IAMDroppedFrames_INTERFACE_DEFINED__ */
9479 
9480 /*****************************************************************************
9481  * IAMLatency interface
9482  */
9483 #ifndef __IAMLatency_INTERFACE_DEFINED__
9484 #define __IAMLatency_INTERFACE_DEFINED__
9485 
9486 DEFINE_GUID(IID_IAMLatency, 0x62ea93ba, 0xec62, 0x11d2, 0xb7,0x70, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d);
9487 #if defined(__cplusplus) && !defined(CINTERFACE)
9488 MIDL_INTERFACE("62ea93ba-ec62-11d2-b770-00c04fb6bd3d")
9489 IAMLatency : public IUnknown
9490 {
9491     virtual HRESULT STDMETHODCALLTYPE GetLatency(
9492         REFERENCE_TIME *latency) = 0;
9493 
9494 };
9495 #ifdef __CRT_UUID_DECL
9496 __CRT_UUID_DECL(IAMLatency, 0x62ea93ba, 0xec62, 0x11d2, 0xb7,0x70, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d)
9497 #endif
9498 #else
9499 typedef struct IAMLatencyVtbl {
9500     BEGIN_INTERFACE
9501 
9502     /*** IUnknown methods ***/
9503     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9504         IAMLatency *This,
9505         REFIID riid,
9506         void **ppvObject);
9507 
9508     ULONG (STDMETHODCALLTYPE *AddRef)(
9509         IAMLatency *This);
9510 
9511     ULONG (STDMETHODCALLTYPE *Release)(
9512         IAMLatency *This);
9513 
9514     /*** IAMLatency methods ***/
9515     HRESULT (STDMETHODCALLTYPE *GetLatency)(
9516         IAMLatency *This,
9517         REFERENCE_TIME *latency);
9518 
9519     END_INTERFACE
9520 } IAMLatencyVtbl;
9521 
9522 interface IAMLatency {
9523     CONST_VTBL IAMLatencyVtbl* lpVtbl;
9524 };
9525 
9526 #ifdef COBJMACROS
9527 #ifndef WIDL_C_INLINE_WRAPPERS
9528 /*** IUnknown methods ***/
9529 #define IAMLatency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9530 #define IAMLatency_AddRef(This) (This)->lpVtbl->AddRef(This)
9531 #define IAMLatency_Release(This) (This)->lpVtbl->Release(This)
9532 /*** IAMLatency methods ***/
9533 #define IAMLatency_GetLatency(This,latency) (This)->lpVtbl->GetLatency(This,latency)
9534 #else
9535 /*** IUnknown methods ***/
9536 static FORCEINLINE HRESULT IAMLatency_QueryInterface(IAMLatency* This,REFIID riid,void **ppvObject) {
9537     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9538 }
9539 static FORCEINLINE ULONG IAMLatency_AddRef(IAMLatency* This) {
9540     return This->lpVtbl->AddRef(This);
9541 }
9542 static FORCEINLINE ULONG IAMLatency_Release(IAMLatency* This) {
9543     return This->lpVtbl->Release(This);
9544 }
9545 /*** IAMLatency methods ***/
9546 static FORCEINLINE HRESULT IAMLatency_GetLatency(IAMLatency* This,REFERENCE_TIME *latency) {
9547     return This->lpVtbl->GetLatency(This,latency);
9548 }
9549 #endif
9550 #endif
9551 
9552 #endif
9553 
9554 
9555 #endif  /* __IAMLatency_INTERFACE_DEFINED__ */
9556 
9557 /*****************************************************************************
9558  * IAMPushSource interface
9559  */
9560 #ifndef __IAMPushSource_INTERFACE_DEFINED__
9561 #define __IAMPushSource_INTERFACE_DEFINED__
9562 
9563 DEFINE_GUID(IID_IAMPushSource, 0xf185fe76, 0xe64e, 0x11d2, 0xb7,0x6e, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d);
9564 #if defined(__cplusplus) && !defined(CINTERFACE)
9565 MIDL_INTERFACE("f185fe76-e64e-11d2-b76e-00c04fb6bd3d")
9566 IAMPushSource : public IAMLatency
9567 {
9568     virtual HRESULT STDMETHODCALLTYPE GetPushSourceFlags(
9569         ULONG *flags) = 0;
9570 
9571     virtual HRESULT STDMETHODCALLTYPE SetPushSourceFlags(
9572         ULONG flags) = 0;
9573 
9574     virtual HRESULT STDMETHODCALLTYPE SetStreamOffset(
9575         REFERENCE_TIME offset) = 0;
9576 
9577     virtual HRESULT STDMETHODCALLTYPE GetStreamOffset(
9578         REFERENCE_TIME *offset) = 0;
9579 
9580     virtual HRESULT STDMETHODCALLTYPE GetMaxStreamOffset(
9581         REFERENCE_TIME *offset) = 0;
9582 
9583     virtual HRESULT STDMETHODCALLTYPE SetMaxStreamOffset(
9584         REFERENCE_TIME offset) = 0;
9585 
9586 };
9587 #ifdef __CRT_UUID_DECL
9588 __CRT_UUID_DECL(IAMPushSource, 0xf185fe76, 0xe64e, 0x11d2, 0xb7,0x6e, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d)
9589 #endif
9590 #else
9591 typedef struct IAMPushSourceVtbl {
9592     BEGIN_INTERFACE
9593 
9594     /*** IUnknown methods ***/
9595     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9596         IAMPushSource *This,
9597         REFIID riid,
9598         void **ppvObject);
9599 
9600     ULONG (STDMETHODCALLTYPE *AddRef)(
9601         IAMPushSource *This);
9602 
9603     ULONG (STDMETHODCALLTYPE *Release)(
9604         IAMPushSource *This);
9605 
9606     /*** IAMLatency methods ***/
9607     HRESULT (STDMETHODCALLTYPE *GetLatency)(
9608         IAMPushSource *This,
9609         REFERENCE_TIME *latency);
9610 
9611     /*** IAMPushSource methods ***/
9612     HRESULT (STDMETHODCALLTYPE *GetPushSourceFlags)(
9613         IAMPushSource *This,
9614         ULONG *flags);
9615 
9616     HRESULT (STDMETHODCALLTYPE *SetPushSourceFlags)(
9617         IAMPushSource *This,
9618         ULONG flags);
9619 
9620     HRESULT (STDMETHODCALLTYPE *SetStreamOffset)(
9621         IAMPushSource *This,
9622         REFERENCE_TIME offset);
9623 
9624     HRESULT (STDMETHODCALLTYPE *GetStreamOffset)(
9625         IAMPushSource *This,
9626         REFERENCE_TIME *offset);
9627 
9628     HRESULT (STDMETHODCALLTYPE *GetMaxStreamOffset)(
9629         IAMPushSource *This,
9630         REFERENCE_TIME *offset);
9631 
9632     HRESULT (STDMETHODCALLTYPE *SetMaxStreamOffset)(
9633         IAMPushSource *This,
9634         REFERENCE_TIME offset);
9635 
9636     END_INTERFACE
9637 } IAMPushSourceVtbl;
9638 
9639 interface IAMPushSource {
9640     CONST_VTBL IAMPushSourceVtbl* lpVtbl;
9641 };
9642 
9643 #ifdef COBJMACROS
9644 #ifndef WIDL_C_INLINE_WRAPPERS
9645 /*** IUnknown methods ***/
9646 #define IAMPushSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9647 #define IAMPushSource_AddRef(This) (This)->lpVtbl->AddRef(This)
9648 #define IAMPushSource_Release(This) (This)->lpVtbl->Release(This)
9649 /*** IAMLatency methods ***/
9650 #define IAMPushSource_GetLatency(This,latency) (This)->lpVtbl->GetLatency(This,latency)
9651 /*** IAMPushSource methods ***/
9652 #define IAMPushSource_GetPushSourceFlags(This,flags) (This)->lpVtbl->GetPushSourceFlags(This,flags)
9653 #define IAMPushSource_SetPushSourceFlags(This,flags) (This)->lpVtbl->SetPushSourceFlags(This,flags)
9654 #define IAMPushSource_SetStreamOffset(This,offset) (This)->lpVtbl->SetStreamOffset(This,offset)
9655 #define IAMPushSource_GetStreamOffset(This,offset) (This)->lpVtbl->GetStreamOffset(This,offset)
9656 #define IAMPushSource_GetMaxStreamOffset(This,offset) (This)->lpVtbl->GetMaxStreamOffset(This,offset)
9657 #define IAMPushSource_SetMaxStreamOffset(This,offset) (This)->lpVtbl->SetMaxStreamOffset(This,offset)
9658 #else
9659 /*** IUnknown methods ***/
9660 static FORCEINLINE HRESULT IAMPushSource_QueryInterface(IAMPushSource* This,REFIID riid,void **ppvObject) {
9661     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9662 }
9663 static FORCEINLINE ULONG IAMPushSource_AddRef(IAMPushSource* This) {
9664     return This->lpVtbl->AddRef(This);
9665 }
9666 static FORCEINLINE ULONG IAMPushSource_Release(IAMPushSource* This) {
9667     return This->lpVtbl->Release(This);
9668 }
9669 /*** IAMLatency methods ***/
9670 static FORCEINLINE HRESULT IAMPushSource_GetLatency(IAMPushSource* This,REFERENCE_TIME *latency) {
9671     return This->lpVtbl->GetLatency(This,latency);
9672 }
9673 /*** IAMPushSource methods ***/
9674 static FORCEINLINE HRESULT IAMPushSource_GetPushSourceFlags(IAMPushSource* This,ULONG *flags) {
9675     return This->lpVtbl->GetPushSourceFlags(This,flags);
9676 }
9677 static FORCEINLINE HRESULT IAMPushSource_SetPushSourceFlags(IAMPushSource* This,ULONG flags) {
9678     return This->lpVtbl->SetPushSourceFlags(This,flags);
9679 }
9680 static FORCEINLINE HRESULT IAMPushSource_SetStreamOffset(IAMPushSource* This,REFERENCE_TIME offset) {
9681     return This->lpVtbl->SetStreamOffset(This,offset);
9682 }
9683 static FORCEINLINE HRESULT IAMPushSource_GetStreamOffset(IAMPushSource* This,REFERENCE_TIME *offset) {
9684     return This->lpVtbl->GetStreamOffset(This,offset);
9685 }
9686 static FORCEINLINE HRESULT IAMPushSource_GetMaxStreamOffset(IAMPushSource* This,REFERENCE_TIME *offset) {
9687     return This->lpVtbl->GetMaxStreamOffset(This,offset);
9688 }
9689 static FORCEINLINE HRESULT IAMPushSource_SetMaxStreamOffset(IAMPushSource* This,REFERENCE_TIME offset) {
9690     return This->lpVtbl->SetMaxStreamOffset(This,offset);
9691 }
9692 #endif
9693 #endif
9694 
9695 #endif
9696 
9697 
9698 #endif  /* __IAMPushSource_INTERFACE_DEFINED__ */
9699 
9700 /*****************************************************************************
9701  * IAMVideoCompression interface
9702  */
9703 #ifndef __IAMVideoCompression_INTERFACE_DEFINED__
9704 #define __IAMVideoCompression_INTERFACE_DEFINED__
9705 
9706 DEFINE_GUID(IID_IAMVideoCompression, 0xc6e13343, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
9707 #if defined(__cplusplus) && !defined(CINTERFACE)
9708 MIDL_INTERFACE("c6e13343-30ac-11d0-a18c-00a0c9118956")
9709 IAMVideoCompression : public IUnknown
9710 {
9711     virtual HRESULT STDMETHODCALLTYPE put_KeyFrameRate(
9712         LONG frame_rate) = 0;
9713 
9714     virtual HRESULT STDMETHODCALLTYPE get_KeyFrameRate(
9715         LONG *frame_rate) = 0;
9716 
9717     virtual HRESULT STDMETHODCALLTYPE put_PFramesPerKeyFrame(
9718         LONG frame) = 0;
9719 
9720     virtual HRESULT STDMETHODCALLTYPE get_PFramesPerKeyFrame(
9721         LONG *frame) = 0;
9722 
9723     virtual HRESULT STDMETHODCALLTYPE put_Quality(
9724         double quality) = 0;
9725 
9726     virtual HRESULT STDMETHODCALLTYPE get_Quality(
9727         double *quality) = 0;
9728 
9729     virtual HRESULT STDMETHODCALLTYPE put_WindowSize(
9730         DWORDLONG size) = 0;
9731 
9732     virtual HRESULT STDMETHODCALLTYPE get_WindowSize(
9733         DWORDLONG *size) = 0;
9734 
9735     virtual HRESULT STDMETHODCALLTYPE GetInfo(
9736         LPWSTR version,
9737         int *version_size,
9738         LPWSTR description,
9739         int *description_size,
9740         LONG *frame_rate,
9741         LONG *key,
9742         double *quality,
9743         LONG *capabilities) = 0;
9744 
9745     virtual HRESULT STDMETHODCALLTYPE OverrideKeyFrame(
9746         LONG number) = 0;
9747 
9748     virtual HRESULT STDMETHODCALLTYPE OverrideFrameSize(
9749         LONG number,
9750         LONG size) = 0;
9751 
9752 };
9753 #ifdef __CRT_UUID_DECL
9754 __CRT_UUID_DECL(IAMVideoCompression, 0xc6e13343, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
9755 #endif
9756 #else
9757 typedef struct IAMVideoCompressionVtbl {
9758     BEGIN_INTERFACE
9759 
9760     /*** IUnknown methods ***/
9761     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9762         IAMVideoCompression *This,
9763         REFIID riid,
9764         void **ppvObject);
9765 
9766     ULONG (STDMETHODCALLTYPE *AddRef)(
9767         IAMVideoCompression *This);
9768 
9769     ULONG (STDMETHODCALLTYPE *Release)(
9770         IAMVideoCompression *This);
9771 
9772     /*** IAMVideoCompression methods ***/
9773     HRESULT (STDMETHODCALLTYPE *put_KeyFrameRate)(
9774         IAMVideoCompression *This,
9775         LONG frame_rate);
9776 
9777     HRESULT (STDMETHODCALLTYPE *get_KeyFrameRate)(
9778         IAMVideoCompression *This,
9779         LONG *frame_rate);
9780 
9781     HRESULT (STDMETHODCALLTYPE *put_PFramesPerKeyFrame)(
9782         IAMVideoCompression *This,
9783         LONG frame);
9784 
9785     HRESULT (STDMETHODCALLTYPE *get_PFramesPerKeyFrame)(
9786         IAMVideoCompression *This,
9787         LONG *frame);
9788 
9789     HRESULT (STDMETHODCALLTYPE *put_Quality)(
9790         IAMVideoCompression *This,
9791         double quality);
9792 
9793     HRESULT (STDMETHODCALLTYPE *get_Quality)(
9794         IAMVideoCompression *This,
9795         double *quality);
9796 
9797     HRESULT (STDMETHODCALLTYPE *put_WindowSize)(
9798         IAMVideoCompression *This,
9799         DWORDLONG size);
9800 
9801     HRESULT (STDMETHODCALLTYPE *get_WindowSize)(
9802         IAMVideoCompression *This,
9803         DWORDLONG *size);
9804 
9805     HRESULT (STDMETHODCALLTYPE *GetInfo)(
9806         IAMVideoCompression *This,
9807         LPWSTR version,
9808         int *version_size,
9809         LPWSTR description,
9810         int *description_size,
9811         LONG *frame_rate,
9812         LONG *key,
9813         double *quality,
9814         LONG *capabilities);
9815 
9816     HRESULT (STDMETHODCALLTYPE *OverrideKeyFrame)(
9817         IAMVideoCompression *This,
9818         LONG number);
9819 
9820     HRESULT (STDMETHODCALLTYPE *OverrideFrameSize)(
9821         IAMVideoCompression *This,
9822         LONG number,
9823         LONG size);
9824 
9825     END_INTERFACE
9826 } IAMVideoCompressionVtbl;
9827 
9828 interface IAMVideoCompression {
9829     CONST_VTBL IAMVideoCompressionVtbl* lpVtbl;
9830 };
9831 
9832 #ifdef COBJMACROS
9833 #ifndef WIDL_C_INLINE_WRAPPERS
9834 /*** IUnknown methods ***/
9835 #define IAMVideoCompression_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9836 #define IAMVideoCompression_AddRef(This) (This)->lpVtbl->AddRef(This)
9837 #define IAMVideoCompression_Release(This) (This)->lpVtbl->Release(This)
9838 /*** IAMVideoCompression methods ***/
9839 #define IAMVideoCompression_put_KeyFrameRate(This,frame_rate) (This)->lpVtbl->put_KeyFrameRate(This,frame_rate)
9840 #define IAMVideoCompression_get_KeyFrameRate(This,frame_rate) (This)->lpVtbl->get_KeyFrameRate(This,frame_rate)
9841 #define IAMVideoCompression_put_PFramesPerKeyFrame(This,frame) (This)->lpVtbl->put_PFramesPerKeyFrame(This,frame)
9842 #define IAMVideoCompression_get_PFramesPerKeyFrame(This,frame) (This)->lpVtbl->get_PFramesPerKeyFrame(This,frame)
9843 #define IAMVideoCompression_put_Quality(This,quality) (This)->lpVtbl->put_Quality(This,quality)
9844 #define IAMVideoCompression_get_Quality(This,quality) (This)->lpVtbl->get_Quality(This,quality)
9845 #define IAMVideoCompression_put_WindowSize(This,size) (This)->lpVtbl->put_WindowSize(This,size)
9846 #define IAMVideoCompression_get_WindowSize(This,size) (This)->lpVtbl->get_WindowSize(This,size)
9847 #define IAMVideoCompression_GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities) (This)->lpVtbl->GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities)
9848 #define IAMVideoCompression_OverrideKeyFrame(This,number) (This)->lpVtbl->OverrideKeyFrame(This,number)
9849 #define IAMVideoCompression_OverrideFrameSize(This,number,size) (This)->lpVtbl->OverrideFrameSize(This,number,size)
9850 #else
9851 /*** IUnknown methods ***/
9852 static FORCEINLINE HRESULT IAMVideoCompression_QueryInterface(IAMVideoCompression* This,REFIID riid,void **ppvObject) {
9853     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9854 }
9855 static FORCEINLINE ULONG IAMVideoCompression_AddRef(IAMVideoCompression* This) {
9856     return This->lpVtbl->AddRef(This);
9857 }
9858 static FORCEINLINE ULONG IAMVideoCompression_Release(IAMVideoCompression* This) {
9859     return This->lpVtbl->Release(This);
9860 }
9861 /*** IAMVideoCompression methods ***/
9862 static FORCEINLINE HRESULT IAMVideoCompression_put_KeyFrameRate(IAMVideoCompression* This,LONG frame_rate) {
9863     return This->lpVtbl->put_KeyFrameRate(This,frame_rate);
9864 }
9865 static FORCEINLINE HRESULT IAMVideoCompression_get_KeyFrameRate(IAMVideoCompression* This,LONG *frame_rate) {
9866     return This->lpVtbl->get_KeyFrameRate(This,frame_rate);
9867 }
9868 static FORCEINLINE HRESULT IAMVideoCompression_put_PFramesPerKeyFrame(IAMVideoCompression* This,LONG frame) {
9869     return This->lpVtbl->put_PFramesPerKeyFrame(This,frame);
9870 }
9871 static FORCEINLINE HRESULT IAMVideoCompression_get_PFramesPerKeyFrame(IAMVideoCompression* This,LONG *frame) {
9872     return This->lpVtbl->get_PFramesPerKeyFrame(This,frame);
9873 }
9874 static FORCEINLINE HRESULT IAMVideoCompression_put_Quality(IAMVideoCompression* This,double quality) {
9875     return This->lpVtbl->put_Quality(This,quality);
9876 }
9877 static FORCEINLINE HRESULT IAMVideoCompression_get_Quality(IAMVideoCompression* This,double *quality) {
9878     return This->lpVtbl->get_Quality(This,quality);
9879 }
9880 static FORCEINLINE HRESULT IAMVideoCompression_put_WindowSize(IAMVideoCompression* This,DWORDLONG size) {
9881     return This->lpVtbl->put_WindowSize(This,size);
9882 }
9883 static FORCEINLINE HRESULT IAMVideoCompression_get_WindowSize(IAMVideoCompression* This,DWORDLONG *size) {
9884     return This->lpVtbl->get_WindowSize(This,size);
9885 }
9886 static FORCEINLINE HRESULT IAMVideoCompression_GetInfo(IAMVideoCompression* This,LPWSTR version,int *version_size,LPWSTR description,int *description_size,LONG *frame_rate,LONG *key,double *quality,LONG *capabilities) {
9887     return This->lpVtbl->GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities);
9888 }
9889 static FORCEINLINE HRESULT IAMVideoCompression_OverrideKeyFrame(IAMVideoCompression* This,LONG number) {
9890     return This->lpVtbl->OverrideKeyFrame(This,number);
9891 }
9892 static FORCEINLINE HRESULT IAMVideoCompression_OverrideFrameSize(IAMVideoCompression* This,LONG number,LONG size) {
9893     return This->lpVtbl->OverrideFrameSize(This,number,size);
9894 }
9895 #endif
9896 #endif
9897 
9898 #endif
9899 
9900 
9901 #endif  /* __IAMVideoCompression_INTERFACE_DEFINED__ */
9902 
9903 /*****************************************************************************
9904  * IAMCrossbar interface
9905  */
9906 #ifndef __IAMCrossbar_INTERFACE_DEFINED__
9907 #define __IAMCrossbar_INTERFACE_DEFINED__
9908 
9909 DEFINE_GUID(IID_IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
9910 #if defined(__cplusplus) && !defined(CINTERFACE)
9911 MIDL_INTERFACE("c6e13380-30ac-11d0-a18c-00a0c9118956")
9912 IAMCrossbar : public IUnknown
9913 {
9914     virtual HRESULT STDMETHODCALLTYPE get_PinCounts(
9915         LONG *output,
9916         LONG *intput) = 0;
9917 
9918     virtual HRESULT STDMETHODCALLTYPE CanRoute(
9919         LONG output,
9920         LONG input) = 0;
9921 
9922     virtual HRESULT STDMETHODCALLTYPE Route(
9923         LONG output,
9924         LONG input) = 0;
9925 
9926     virtual HRESULT STDMETHODCALLTYPE get_IsRoutedTo(
9927         LONG output,
9928         LONG *input) = 0;
9929 
9930     virtual HRESULT STDMETHODCALLTYPE get_CrossbarPinInfo(
9931         WINBOOL is_input,
9932         LONG index,
9933         LONG *related,
9934         LONG *type) = 0;
9935 
9936 };
9937 #ifdef __CRT_UUID_DECL
9938 __CRT_UUID_DECL(IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
9939 #endif
9940 #else
9941 typedef struct IAMCrossbarVtbl {
9942     BEGIN_INTERFACE
9943 
9944     /*** IUnknown methods ***/
9945     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9946         IAMCrossbar *This,
9947         REFIID riid,
9948         void **ppvObject);
9949 
9950     ULONG (STDMETHODCALLTYPE *AddRef)(
9951         IAMCrossbar *This);
9952 
9953     ULONG (STDMETHODCALLTYPE *Release)(
9954         IAMCrossbar *This);
9955 
9956     /*** IAMCrossbar methods ***/
9957     HRESULT (STDMETHODCALLTYPE *get_PinCounts)(
9958         IAMCrossbar *This,
9959         LONG *output,
9960         LONG *intput);
9961 
9962     HRESULT (STDMETHODCALLTYPE *CanRoute)(
9963         IAMCrossbar *This,
9964         LONG output,
9965         LONG input);
9966 
9967     HRESULT (STDMETHODCALLTYPE *Route)(
9968         IAMCrossbar *This,
9969         LONG output,
9970         LONG input);
9971 
9972     HRESULT (STDMETHODCALLTYPE *get_IsRoutedTo)(
9973         IAMCrossbar *This,
9974         LONG output,
9975         LONG *input);
9976 
9977     HRESULT (STDMETHODCALLTYPE *get_CrossbarPinInfo)(
9978         IAMCrossbar *This,
9979         WINBOOL is_input,
9980         LONG index,
9981         LONG *related,
9982         LONG *type);
9983 
9984     END_INTERFACE
9985 } IAMCrossbarVtbl;
9986 
9987 interface IAMCrossbar {
9988     CONST_VTBL IAMCrossbarVtbl* lpVtbl;
9989 };
9990 
9991 #ifdef COBJMACROS
9992 #ifndef WIDL_C_INLINE_WRAPPERS
9993 /*** IUnknown methods ***/
9994 #define IAMCrossbar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9995 #define IAMCrossbar_AddRef(This) (This)->lpVtbl->AddRef(This)
9996 #define IAMCrossbar_Release(This) (This)->lpVtbl->Release(This)
9997 /*** IAMCrossbar methods ***/
9998 #define IAMCrossbar_get_PinCounts(This,output,intput) (This)->lpVtbl->get_PinCounts(This,output,intput)
9999 #define IAMCrossbar_CanRoute(This,output,input) (This)->lpVtbl->CanRoute(This,output,input)
10000 #define IAMCrossbar_Route(This,output,input) (This)->lpVtbl->Route(This,output,input)
10001 #define IAMCrossbar_get_IsRoutedTo(This,output,input) (This)->lpVtbl->get_IsRoutedTo(This,output,input)
10002 #define IAMCrossbar_get_CrossbarPinInfo(This,is_input,index,related,type) (This)->lpVtbl->get_CrossbarPinInfo(This,is_input,index,related,type)
10003 #else
10004 /*** IUnknown methods ***/
10005 static FORCEINLINE HRESULT IAMCrossbar_QueryInterface(IAMCrossbar* This,REFIID riid,void **ppvObject) {
10006     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10007 }
10008 static FORCEINLINE ULONG IAMCrossbar_AddRef(IAMCrossbar* This) {
10009     return This->lpVtbl->AddRef(This);
10010 }
10011 static FORCEINLINE ULONG IAMCrossbar_Release(IAMCrossbar* This) {
10012     return This->lpVtbl->Release(This);
10013 }
10014 /*** IAMCrossbar methods ***/
10015 static FORCEINLINE HRESULT IAMCrossbar_get_PinCounts(IAMCrossbar* This,LONG *output,LONG *intput) {
10016     return This->lpVtbl->get_PinCounts(This,output,intput);
10017 }
10018 static FORCEINLINE HRESULT IAMCrossbar_CanRoute(IAMCrossbar* This,LONG output,LONG input) {
10019     return This->lpVtbl->CanRoute(This,output,input);
10020 }
10021 static FORCEINLINE HRESULT IAMCrossbar_Route(IAMCrossbar* This,LONG output,LONG input) {
10022     return This->lpVtbl->Route(This,output,input);
10023 }
10024 static FORCEINLINE HRESULT IAMCrossbar_get_IsRoutedTo(IAMCrossbar* This,LONG output,LONG *input) {
10025     return This->lpVtbl->get_IsRoutedTo(This,output,input);
10026 }
10027 static FORCEINLINE HRESULT IAMCrossbar_get_CrossbarPinInfo(IAMCrossbar* This,WINBOOL is_input,LONG index,LONG *related,LONG *type) {
10028     return This->lpVtbl->get_CrossbarPinInfo(This,is_input,index,related,type);
10029 }
10030 #endif
10031 #endif
10032 
10033 #endif
10034 
10035 
10036 #endif  /* __IAMCrossbar_INTERFACE_DEFINED__ */
10037 
10038 typedef enum tagAMTunerEventType {
10039     AMTUNER_EVENT_CHANGED = 0x1
10040 } AMTunerEventType;
10041 /*****************************************************************************
10042  * IAMTunerNotification interface
10043  */
10044 #ifndef __IAMTunerNotification_INTERFACE_DEFINED__
10045 #define __IAMTunerNotification_INTERFACE_DEFINED__
10046 
10047 DEFINE_GUID(IID_IAMTunerNotification, 0x211a8760, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
10048 #if defined(__cplusplus) && !defined(CINTERFACE)
10049 MIDL_INTERFACE("211a8760-03ac-11d1-8d13-00aa00bd8339")
10050 IAMTunerNotification : public IUnknown
10051 {
10052     virtual HRESULT STDMETHODCALLTYPE OnEvent(
10053         AMTunerEventType event) = 0;
10054 
10055 };
10056 #ifdef __CRT_UUID_DECL
10057 __CRT_UUID_DECL(IAMTunerNotification, 0x211a8760, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39)
10058 #endif
10059 #else
10060 typedef struct IAMTunerNotificationVtbl {
10061     BEGIN_INTERFACE
10062 
10063     /*** IUnknown methods ***/
10064     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10065         IAMTunerNotification *This,
10066         REFIID riid,
10067         void **ppvObject);
10068 
10069     ULONG (STDMETHODCALLTYPE *AddRef)(
10070         IAMTunerNotification *This);
10071 
10072     ULONG (STDMETHODCALLTYPE *Release)(
10073         IAMTunerNotification *This);
10074 
10075     /*** IAMTunerNotification methods ***/
10076     HRESULT (STDMETHODCALLTYPE *OnEvent)(
10077         IAMTunerNotification *This,
10078         AMTunerEventType event);
10079 
10080     END_INTERFACE
10081 } IAMTunerNotificationVtbl;
10082 
10083 interface IAMTunerNotification {
10084     CONST_VTBL IAMTunerNotificationVtbl* lpVtbl;
10085 };
10086 
10087 #ifdef COBJMACROS
10088 #ifndef WIDL_C_INLINE_WRAPPERS
10089 /*** IUnknown methods ***/
10090 #define IAMTunerNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10091 #define IAMTunerNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
10092 #define IAMTunerNotification_Release(This) (This)->lpVtbl->Release(This)
10093 /*** IAMTunerNotification methods ***/
10094 #define IAMTunerNotification_OnEvent(This,event) (This)->lpVtbl->OnEvent(This,event)
10095 #else
10096 /*** IUnknown methods ***/
10097 static FORCEINLINE HRESULT IAMTunerNotification_QueryInterface(IAMTunerNotification* This,REFIID riid,void **ppvObject) {
10098     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10099 }
10100 static FORCEINLINE ULONG IAMTunerNotification_AddRef(IAMTunerNotification* This) {
10101     return This->lpVtbl->AddRef(This);
10102 }
10103 static FORCEINLINE ULONG IAMTunerNotification_Release(IAMTunerNotification* This) {
10104     return This->lpVtbl->Release(This);
10105 }
10106 /*** IAMTunerNotification methods ***/
10107 static FORCEINLINE HRESULT IAMTunerNotification_OnEvent(IAMTunerNotification* This,AMTunerEventType event) {
10108     return This->lpVtbl->OnEvent(This,event);
10109 }
10110 #endif
10111 #endif
10112 
10113 #endif
10114 
10115 
10116 #endif  /* __IAMTunerNotification_INTERFACE_DEFINED__ */
10117 
10118 typedef enum tagAMTunerModeType {
10119     AMTUNER_MODE_DEFAULT = 0x0,
10120     AMTUNER_MODE_TV = 0x1,
10121     AMTUNER_MODE_FM_RADIO = 0x2,
10122     AMTUNER_MODE_AM_RADIO = 0x4,
10123     AMTUNER_MODE_DSS = 0x8
10124 } AMTunerModeType;
10125 /*****************************************************************************
10126  * IAMTuner interface
10127  */
10128 #ifndef __IAMTuner_INTERFACE_DEFINED__
10129 #define __IAMTuner_INTERFACE_DEFINED__
10130 
10131 DEFINE_GUID(IID_IAMTuner, 0x211a8761, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
10132 #if defined(__cplusplus) && !defined(CINTERFACE)
10133 MIDL_INTERFACE("211a8761-03ac-11d1-8d13-00aa00bd8339")
10134 IAMTuner : public IUnknown
10135 {
10136     virtual HRESULT STDMETHODCALLTYPE put_Channel(
10137         LONG channel,
10138         LONG video,
10139         LONG audio) = 0;
10140 
10141     virtual HRESULT STDMETHODCALLTYPE get_Channel(
10142         LONG *channel,
10143         LONG *video,
10144         LONG *audio) = 0;
10145 
10146     virtual HRESULT STDMETHODCALLTYPE ChannelMinMax(
10147         LONG *min,
10148         LONG *max) = 0;
10149 
10150     virtual HRESULT STDMETHODCALLTYPE put_CountryCode(
10151         LONG country) = 0;
10152 
10153     virtual HRESULT STDMETHODCALLTYPE get_CountryCode(
10154         LONG *country) = 0;
10155 
10156     virtual HRESULT STDMETHODCALLTYPE put_TuningSpace(
10157         LONG tuning_space) = 0;
10158 
10159     virtual HRESULT STDMETHODCALLTYPE get_TuningSpace(
10160         LONG *tuning_space) = 0;
10161 
10162     virtual HRESULT STDMETHODCALLTYPE Logon(
10163         HANDLE user) = 0;
10164 
10165     virtual HRESULT STDMETHODCALLTYPE Logout(
10166         ) = 0;
10167 
10168     virtual HRESULT STDMETHODCALLTYPE SignalPresent(
10169         LONG *signal_strength) = 0;
10170 
10171     virtual HRESULT STDMETHODCALLTYPE put_Mode(
10172         AMTunerModeType mode) = 0;
10173 
10174     virtual HRESULT STDMETHODCALLTYPE get_Mode(
10175         AMTunerModeType *mode) = 0;
10176 
10177     virtual HRESULT STDMETHODCALLTYPE GetAvailableModes(
10178         LONG *modes) = 0;
10179 
10180     virtual HRESULT STDMETHODCALLTYPE RegisterNotificationCallBack(
10181         IAMTunerNotification *notify,
10182         LONG events) = 0;
10183 
10184     virtual HRESULT STDMETHODCALLTYPE UnRegisterNotificationCallBack(
10185         IAMTunerNotification *notify) = 0;
10186 
10187 };
10188 #ifdef __CRT_UUID_DECL
10189 __CRT_UUID_DECL(IAMTuner, 0x211a8761, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39)
10190 #endif
10191 #else
10192 typedef struct IAMTunerVtbl {
10193     BEGIN_INTERFACE
10194 
10195     /*** IUnknown methods ***/
10196     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10197         IAMTuner *This,
10198         REFIID riid,
10199         void **ppvObject);
10200 
10201     ULONG (STDMETHODCALLTYPE *AddRef)(
10202         IAMTuner *This);
10203 
10204     ULONG (STDMETHODCALLTYPE *Release)(
10205         IAMTuner *This);
10206 
10207     /*** IAMTuner methods ***/
10208     HRESULT (STDMETHODCALLTYPE *put_Channel)(
10209         IAMTuner *This,
10210         LONG channel,
10211         LONG video,
10212         LONG audio);
10213 
10214     HRESULT (STDMETHODCALLTYPE *get_Channel)(
10215         IAMTuner *This,
10216         LONG *channel,
10217         LONG *video,
10218         LONG *audio);
10219 
10220     HRESULT (STDMETHODCALLTYPE *ChannelMinMax)(
10221         IAMTuner *This,
10222         LONG *min,
10223         LONG *max);
10224 
10225     HRESULT (STDMETHODCALLTYPE *put_CountryCode)(
10226         IAMTuner *This,
10227         LONG country);
10228 
10229     HRESULT (STDMETHODCALLTYPE *get_CountryCode)(
10230         IAMTuner *This,
10231         LONG *country);
10232 
10233     HRESULT (STDMETHODCALLTYPE *put_TuningSpace)(
10234         IAMTuner *This,
10235         LONG tuning_space);
10236 
10237     HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
10238         IAMTuner *This,
10239         LONG *tuning_space);
10240 
10241     HRESULT (STDMETHODCALLTYPE *Logon)(
10242         IAMTuner *This,
10243         HANDLE user);
10244 
10245     HRESULT (STDMETHODCALLTYPE *Logout)(
10246         IAMTuner *This);
10247 
10248     HRESULT (STDMETHODCALLTYPE *SignalPresent)(
10249         IAMTuner *This,
10250         LONG *signal_strength);
10251 
10252     HRESULT (STDMETHODCALLTYPE *put_Mode)(
10253         IAMTuner *This,
10254         AMTunerModeType mode);
10255 
10256     HRESULT (STDMETHODCALLTYPE *get_Mode)(
10257         IAMTuner *This,
10258         AMTunerModeType *mode);
10259 
10260     HRESULT (STDMETHODCALLTYPE *GetAvailableModes)(
10261         IAMTuner *This,
10262         LONG *modes);
10263 
10264     HRESULT (STDMETHODCALLTYPE *RegisterNotificationCallBack)(
10265         IAMTuner *This,
10266         IAMTunerNotification *notify,
10267         LONG events);
10268 
10269     HRESULT (STDMETHODCALLTYPE *UnRegisterNotificationCallBack)(
10270         IAMTuner *This,
10271         IAMTunerNotification *notify);
10272 
10273     END_INTERFACE
10274 } IAMTunerVtbl;
10275 
10276 interface IAMTuner {
10277     CONST_VTBL IAMTunerVtbl* lpVtbl;
10278 };
10279 
10280 #ifdef COBJMACROS
10281 #ifndef WIDL_C_INLINE_WRAPPERS
10282 /*** IUnknown methods ***/
10283 #define IAMTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10284 #define IAMTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
10285 #define IAMTuner_Release(This) (This)->lpVtbl->Release(This)
10286 /*** IAMTuner methods ***/
10287 #define IAMTuner_put_Channel(This,channel,video,audio) (This)->lpVtbl->put_Channel(This,channel,video,audio)
10288 #define IAMTuner_get_Channel(This,channel,video,audio) (This)->lpVtbl->get_Channel(This,channel,video,audio)
10289 #define IAMTuner_ChannelMinMax(This,min,max) (This)->lpVtbl->ChannelMinMax(This,min,max)
10290 #define IAMTuner_put_CountryCode(This,country) (This)->lpVtbl->put_CountryCode(This,country)
10291 #define IAMTuner_get_CountryCode(This,country) (This)->lpVtbl->get_CountryCode(This,country)
10292 #define IAMTuner_put_TuningSpace(This,tuning_space) (This)->lpVtbl->put_TuningSpace(This,tuning_space)
10293 #define IAMTuner_get_TuningSpace(This,tuning_space) (This)->lpVtbl->get_TuningSpace(This,tuning_space)
10294 #define IAMTuner_Logon(This,user) (This)->lpVtbl->Logon(This,user)
10295 #define IAMTuner_Logout(This) (This)->lpVtbl->Logout(This)
10296 #define IAMTuner_SignalPresent(This,signal_strength) (This)->lpVtbl->SignalPresent(This,signal_strength)
10297 #define IAMTuner_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
10298 #define IAMTuner_get_Mode(This,mode) (This)->lpVtbl->get_Mode(This,mode)
10299 #define IAMTuner_GetAvailableModes(This,modes) (This)->lpVtbl->GetAvailableModes(This,modes)
10300 #define IAMTuner_RegisterNotificationCallBack(This,notify,events) (This)->lpVtbl->RegisterNotificationCallBack(This,notify,events)
10301 #define IAMTuner_UnRegisterNotificationCallBack(This,notify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,notify)
10302 #else
10303 /*** IUnknown methods ***/
10304 static FORCEINLINE HRESULT IAMTuner_QueryInterface(IAMTuner* This,REFIID riid,void **ppvObject) {
10305     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10306 }
10307 static FORCEINLINE ULONG IAMTuner_AddRef(IAMTuner* This) {
10308     return This->lpVtbl->AddRef(This);
10309 }
10310 static FORCEINLINE ULONG IAMTuner_Release(IAMTuner* This) {
10311     return This->lpVtbl->Release(This);
10312 }
10313 /*** IAMTuner methods ***/
10314 static FORCEINLINE HRESULT IAMTuner_put_Channel(IAMTuner* This,LONG channel,LONG video,LONG audio) {
10315     return This->lpVtbl->put_Channel(This,channel,video,audio);
10316 }
10317 static FORCEINLINE HRESULT IAMTuner_get_Channel(IAMTuner* This,LONG *channel,LONG *video,LONG *audio) {
10318     return This->lpVtbl->get_Channel(This,channel,video,audio);
10319 }
10320 static FORCEINLINE HRESULT IAMTuner_ChannelMinMax(IAMTuner* This,LONG *min,LONG *max) {
10321     return This->lpVtbl->ChannelMinMax(This,min,max);
10322 }
10323 static FORCEINLINE HRESULT IAMTuner_put_CountryCode(IAMTuner* This,LONG country) {
10324     return This->lpVtbl->put_CountryCode(This,country);
10325 }
10326 static FORCEINLINE HRESULT IAMTuner_get_CountryCode(IAMTuner* This,LONG *country) {
10327     return This->lpVtbl->get_CountryCode(This,country);
10328 }
10329 static FORCEINLINE HRESULT IAMTuner_put_TuningSpace(IAMTuner* This,LONG tuning_space) {
10330     return This->lpVtbl->put_TuningSpace(This,tuning_space);
10331 }
10332 static FORCEINLINE HRESULT IAMTuner_get_TuningSpace(IAMTuner* This,LONG *tuning_space) {
10333     return This->lpVtbl->get_TuningSpace(This,tuning_space);
10334 }
10335 static FORCEINLINE HRESULT IAMTuner_Logon(IAMTuner* This,HANDLE user) {
10336     return This->lpVtbl->Logon(This,user);
10337 }
10338 static FORCEINLINE HRESULT IAMTuner_Logout(IAMTuner* This) {
10339     return This->lpVtbl->Logout(This);
10340 }
10341 static FORCEINLINE HRESULT IAMTuner_SignalPresent(IAMTuner* This,LONG *signal_strength) {
10342     return This->lpVtbl->SignalPresent(This,signal_strength);
10343 }
10344 static FORCEINLINE HRESULT IAMTuner_put_Mode(IAMTuner* This,AMTunerModeType mode) {
10345     return This->lpVtbl->put_Mode(This,mode);
10346 }
10347 static FORCEINLINE HRESULT IAMTuner_get_Mode(IAMTuner* This,AMTunerModeType *mode) {
10348     return This->lpVtbl->get_Mode(This,mode);
10349 }
10350 static FORCEINLINE HRESULT IAMTuner_GetAvailableModes(IAMTuner* This,LONG *modes) {
10351     return This->lpVtbl->GetAvailableModes(This,modes);
10352 }
10353 static FORCEINLINE HRESULT IAMTuner_RegisterNotificationCallBack(IAMTuner* This,IAMTunerNotification *notify,LONG events) {
10354     return This->lpVtbl->RegisterNotificationCallBack(This,notify,events);
10355 }
10356 static FORCEINLINE HRESULT IAMTuner_UnRegisterNotificationCallBack(IAMTuner* This,IAMTunerNotification *notify) {
10357     return This->lpVtbl->UnRegisterNotificationCallBack(This,notify);
10358 }
10359 #endif
10360 #endif
10361 
10362 #endif
10363 
10364 
10365 #endif  /* __IAMTuner_INTERFACE_DEFINED__ */
10366 
10367 /*****************************************************************************
10368  * IAMTVTuner interface
10369  */
10370 #ifndef __IAMTVTuner_INTERFACE_DEFINED__
10371 #define __IAMTVTuner_INTERFACE_DEFINED__
10372 
10373 DEFINE_GUID(IID_IAMTVTuner, 0x211a8766, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
10374 #if defined(__cplusplus) && !defined(CINTERFACE)
10375 MIDL_INTERFACE("211a8766-03ac-11d1-8d13-00aa00bd8339")
10376 IAMTVTuner : public IAMTuner
10377 {
10378     virtual HRESULT STDMETHODCALLTYPE get_AvailableTVFormats(
10379         LONG *standard) = 0;
10380 
10381     virtual HRESULT STDMETHODCALLTYPE get_TVFormat(
10382         LONG *standard) = 0;
10383 
10384     virtual HRESULT STDMETHODCALLTYPE AutoTune(
10385         LONG channel,
10386         LONG *signal) = 0;
10387 
10388     virtual HRESULT STDMETHODCALLTYPE StoreAutoTune(
10389         ) = 0;
10390 
10391     virtual HRESULT STDMETHODCALLTYPE get_NumInputConnections(
10392         LONG *number) = 0;
10393 
10394     virtual HRESULT STDMETHODCALLTYPE put_InputType(
10395         LONG index,
10396         TunerInputType type) = 0;
10397 
10398     virtual HRESULT STDMETHODCALLTYPE get_InputType(
10399         LONG index,
10400         TunerInputType *type) = 0;
10401 
10402     virtual HRESULT STDMETHODCALLTYPE put_ConnectInput(
10403         LONG index) = 0;
10404 
10405     virtual HRESULT STDMETHODCALLTYPE get_ConnectInput(
10406         LONG *index) = 0;
10407 
10408     virtual HRESULT STDMETHODCALLTYPE get_VideoFrequency(
10409         LONG *freq) = 0;
10410 
10411     virtual HRESULT STDMETHODCALLTYPE get_AudioFrequency(
10412         LONG *freq) = 0;
10413 
10414 };
10415 #ifdef __CRT_UUID_DECL
10416 __CRT_UUID_DECL(IAMTVTuner, 0x211a8766, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39)
10417 #endif
10418 #else
10419 typedef struct IAMTVTunerVtbl {
10420     BEGIN_INTERFACE
10421 
10422     /*** IUnknown methods ***/
10423     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10424         IAMTVTuner *This,
10425         REFIID riid,
10426         void **ppvObject);
10427 
10428     ULONG (STDMETHODCALLTYPE *AddRef)(
10429         IAMTVTuner *This);
10430 
10431     ULONG (STDMETHODCALLTYPE *Release)(
10432         IAMTVTuner *This);
10433 
10434     /*** IAMTuner methods ***/
10435     HRESULT (STDMETHODCALLTYPE *put_Channel)(
10436         IAMTVTuner *This,
10437         LONG channel,
10438         LONG video,
10439         LONG audio);
10440 
10441     HRESULT (STDMETHODCALLTYPE *get_Channel)(
10442         IAMTVTuner *This,
10443         LONG *channel,
10444         LONG *video,
10445         LONG *audio);
10446 
10447     HRESULT (STDMETHODCALLTYPE *ChannelMinMax)(
10448         IAMTVTuner *This,
10449         LONG *min,
10450         LONG *max);
10451 
10452     HRESULT (STDMETHODCALLTYPE *put_CountryCode)(
10453         IAMTVTuner *This,
10454         LONG country);
10455 
10456     HRESULT (STDMETHODCALLTYPE *get_CountryCode)(
10457         IAMTVTuner *This,
10458         LONG *country);
10459 
10460     HRESULT (STDMETHODCALLTYPE *put_TuningSpace)(
10461         IAMTVTuner *This,
10462         LONG tuning_space);
10463 
10464     HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
10465         IAMTVTuner *This,
10466         LONG *tuning_space);
10467 
10468     HRESULT (STDMETHODCALLTYPE *Logon)(
10469         IAMTVTuner *This,
10470         HANDLE user);
10471 
10472     HRESULT (STDMETHODCALLTYPE *Logout)(
10473         IAMTVTuner *This);
10474 
10475     HRESULT (STDMETHODCALLTYPE *SignalPresent)(
10476         IAMTVTuner *This,
10477         LONG *signal_strength);
10478 
10479     HRESULT (STDMETHODCALLTYPE *put_Mode)(
10480         IAMTVTuner *This,
10481         AMTunerModeType mode);
10482 
10483     HRESULT (STDMETHODCALLTYPE *get_Mode)(
10484         IAMTVTuner *This,
10485         AMTunerModeType *mode);
10486 
10487     HRESULT (STDMETHODCALLTYPE *GetAvailableModes)(
10488         IAMTVTuner *This,
10489         LONG *modes);
10490 
10491     HRESULT (STDMETHODCALLTYPE *RegisterNotificationCallBack)(
10492         IAMTVTuner *This,
10493         IAMTunerNotification *notify,
10494         LONG events);
10495 
10496     HRESULT (STDMETHODCALLTYPE *UnRegisterNotificationCallBack)(
10497         IAMTVTuner *This,
10498         IAMTunerNotification *notify);
10499 
10500     /*** IAMTVTuner methods ***/
10501     HRESULT (STDMETHODCALLTYPE *get_AvailableTVFormats)(
10502         IAMTVTuner *This,
10503         LONG *standard);
10504 
10505     HRESULT (STDMETHODCALLTYPE *get_TVFormat)(
10506         IAMTVTuner *This,
10507         LONG *standard);
10508 
10509     HRESULT (STDMETHODCALLTYPE *AutoTune)(
10510         IAMTVTuner *This,
10511         LONG channel,
10512         LONG *signal);
10513 
10514     HRESULT (STDMETHODCALLTYPE *StoreAutoTune)(
10515         IAMTVTuner *This);
10516 
10517     HRESULT (STDMETHODCALLTYPE *get_NumInputConnections)(
10518         IAMTVTuner *This,
10519         LONG *number);
10520 
10521     HRESULT (STDMETHODCALLTYPE *put_InputType)(
10522         IAMTVTuner *This,
10523         LONG index,
10524         TunerInputType type);
10525 
10526     HRESULT (STDMETHODCALLTYPE *get_InputType)(
10527         IAMTVTuner *This,
10528         LONG index,
10529         TunerInputType *type);
10530 
10531     HRESULT (STDMETHODCALLTYPE *put_ConnectInput)(
10532         IAMTVTuner *This,
10533         LONG index);
10534 
10535     HRESULT (STDMETHODCALLTYPE *get_ConnectInput)(
10536         IAMTVTuner *This,
10537         LONG *index);
10538 
10539     HRESULT (STDMETHODCALLTYPE *get_VideoFrequency)(
10540         IAMTVTuner *This,
10541         LONG *freq);
10542 
10543     HRESULT (STDMETHODCALLTYPE *get_AudioFrequency)(
10544         IAMTVTuner *This,
10545         LONG *freq);
10546 
10547     END_INTERFACE
10548 } IAMTVTunerVtbl;
10549 
10550 interface IAMTVTuner {
10551     CONST_VTBL IAMTVTunerVtbl* lpVtbl;
10552 };
10553 
10554 #ifdef COBJMACROS
10555 #ifndef WIDL_C_INLINE_WRAPPERS
10556 /*** IUnknown methods ***/
10557 #define IAMTVTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10558 #define IAMTVTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
10559 #define IAMTVTuner_Release(This) (This)->lpVtbl->Release(This)
10560 /*** IAMTuner methods ***/
10561 #define IAMTVTuner_put_Channel(This,channel,video,audio) (This)->lpVtbl->put_Channel(This,channel,video,audio)
10562 #define IAMTVTuner_get_Channel(This,channel,video,audio) (This)->lpVtbl->get_Channel(This,channel,video,audio)
10563 #define IAMTVTuner_ChannelMinMax(This,min,max) (This)->lpVtbl->ChannelMinMax(This,min,max)
10564 #define IAMTVTuner_put_CountryCode(This,country) (This)->lpVtbl->put_CountryCode(This,country)
10565 #define IAMTVTuner_get_CountryCode(This,country) (This)->lpVtbl->get_CountryCode(This,country)
10566 #define IAMTVTuner_put_TuningSpace(This,tuning_space) (This)->lpVtbl->put_TuningSpace(This,tuning_space)
10567 #define IAMTVTuner_get_TuningSpace(This,tuning_space) (This)->lpVtbl->get_TuningSpace(This,tuning_space)
10568 #define IAMTVTuner_Logon(This,user) (This)->lpVtbl->Logon(This,user)
10569 #define IAMTVTuner_Logout(This) (This)->lpVtbl->Logout(This)
10570 #define IAMTVTuner_SignalPresent(This,signal_strength) (This)->lpVtbl->SignalPresent(This,signal_strength)
10571 #define IAMTVTuner_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
10572 #define IAMTVTuner_get_Mode(This,mode) (This)->lpVtbl->get_Mode(This,mode)
10573 #define IAMTVTuner_GetAvailableModes(This,modes) (This)->lpVtbl->GetAvailableModes(This,modes)
10574 #define IAMTVTuner_RegisterNotificationCallBack(This,notify,events) (This)->lpVtbl->RegisterNotificationCallBack(This,notify,events)
10575 #define IAMTVTuner_UnRegisterNotificationCallBack(This,notify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,notify)
10576 /*** IAMTVTuner methods ***/
10577 #define IAMTVTuner_get_AvailableTVFormats(This,standard) (This)->lpVtbl->get_AvailableTVFormats(This,standard)
10578 #define IAMTVTuner_get_TVFormat(This,standard) (This)->lpVtbl->get_TVFormat(This,standard)
10579 #define IAMTVTuner_AutoTune(This,channel,signal) (This)->lpVtbl->AutoTune(This,channel,signal)
10580 #define IAMTVTuner_StoreAutoTune(This) (This)->lpVtbl->StoreAutoTune(This)
10581 #define IAMTVTuner_get_NumInputConnections(This,number) (This)->lpVtbl->get_NumInputConnections(This,number)
10582 #define IAMTVTuner_put_InputType(This,index,type) (This)->lpVtbl->put_InputType(This,index,type)
10583 #define IAMTVTuner_get_InputType(This,index,type) (This)->lpVtbl->get_InputType(This,index,type)
10584 #define IAMTVTuner_put_ConnectInput(This,index) (This)->lpVtbl->put_ConnectInput(This,index)
10585 #define IAMTVTuner_get_ConnectInput(This,index) (This)->lpVtbl->get_ConnectInput(This,index)
10586 #define IAMTVTuner_get_VideoFrequency(This,freq) (This)->lpVtbl->get_VideoFrequency(This,freq)
10587 #define IAMTVTuner_get_AudioFrequency(This,freq) (This)->lpVtbl->get_AudioFrequency(This,freq)
10588 #else
10589 /*** IUnknown methods ***/
10590 static FORCEINLINE HRESULT IAMTVTuner_QueryInterface(IAMTVTuner* This,REFIID riid,void **ppvObject) {
10591     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10592 }
10593 static FORCEINLINE ULONG IAMTVTuner_AddRef(IAMTVTuner* This) {
10594     return This->lpVtbl->AddRef(This);
10595 }
10596 static FORCEINLINE ULONG IAMTVTuner_Release(IAMTVTuner* This) {
10597     return This->lpVtbl->Release(This);
10598 }
10599 /*** IAMTuner methods ***/
10600 static FORCEINLINE HRESULT IAMTVTuner_put_Channel(IAMTVTuner* This,LONG channel,LONG video,LONG audio) {
10601     return This->lpVtbl->put_Channel(This,channel,video,audio);
10602 }
10603 static FORCEINLINE HRESULT IAMTVTuner_get_Channel(IAMTVTuner* This,LONG *channel,LONG *video,LONG *audio) {
10604     return This->lpVtbl->get_Channel(This,channel,video,audio);
10605 }
10606 static FORCEINLINE HRESULT IAMTVTuner_ChannelMinMax(IAMTVTuner* This,LONG *min,LONG *max) {
10607     return This->lpVtbl->ChannelMinMax(This,min,max);
10608 }
10609 static FORCEINLINE HRESULT IAMTVTuner_put_CountryCode(IAMTVTuner* This,LONG country) {
10610     return This->lpVtbl->put_CountryCode(This,country);
10611 }
10612 static FORCEINLINE HRESULT IAMTVTuner_get_CountryCode(IAMTVTuner* This,LONG *country) {
10613     return This->lpVtbl->get_CountryCode(This,country);
10614 }
10615 static FORCEINLINE HRESULT IAMTVTuner_put_TuningSpace(IAMTVTuner* This,LONG tuning_space) {
10616     return This->lpVtbl->put_TuningSpace(This,tuning_space);
10617 }
10618 static FORCEINLINE HRESULT IAMTVTuner_get_TuningSpace(IAMTVTuner* This,LONG *tuning_space) {
10619     return This->lpVtbl->get_TuningSpace(This,tuning_space);
10620 }
10621 static FORCEINLINE HRESULT IAMTVTuner_Logon(IAMTVTuner* This,HANDLE user) {
10622     return This->lpVtbl->Logon(This,user);
10623 }
10624 static FORCEINLINE HRESULT IAMTVTuner_Logout(IAMTVTuner* This) {
10625     return This->lpVtbl->Logout(This);
10626 }
10627 static FORCEINLINE HRESULT IAMTVTuner_SignalPresent(IAMTVTuner* This,LONG *signal_strength) {
10628     return This->lpVtbl->SignalPresent(This,signal_strength);
10629 }
10630 static FORCEINLINE HRESULT IAMTVTuner_put_Mode(IAMTVTuner* This,AMTunerModeType mode) {
10631     return This->lpVtbl->put_Mode(This,mode);
10632 }
10633 static FORCEINLINE HRESULT IAMTVTuner_get_Mode(IAMTVTuner* This,AMTunerModeType *mode) {
10634     return This->lpVtbl->get_Mode(This,mode);
10635 }
10636 static FORCEINLINE HRESULT IAMTVTuner_GetAvailableModes(IAMTVTuner* This,LONG *modes) {
10637     return This->lpVtbl->GetAvailableModes(This,modes);
10638 }
10639 static FORCEINLINE HRESULT IAMTVTuner_RegisterNotificationCallBack(IAMTVTuner* This,IAMTunerNotification *notify,LONG events) {
10640     return This->lpVtbl->RegisterNotificationCallBack(This,notify,events);
10641 }
10642 static FORCEINLINE HRESULT IAMTVTuner_UnRegisterNotificationCallBack(IAMTVTuner* This,IAMTunerNotification *notify) {
10643     return This->lpVtbl->UnRegisterNotificationCallBack(This,notify);
10644 }
10645 /*** IAMTVTuner methods ***/
10646 static FORCEINLINE HRESULT IAMTVTuner_get_AvailableTVFormats(IAMTVTuner* This,LONG *standard) {
10647     return This->lpVtbl->get_AvailableTVFormats(This,standard);
10648 }
10649 static FORCEINLINE HRESULT IAMTVTuner_get_TVFormat(IAMTVTuner* This,LONG *standard) {
10650     return This->lpVtbl->get_TVFormat(This,standard);
10651 }
10652 static FORCEINLINE HRESULT IAMTVTuner_AutoTune(IAMTVTuner* This,LONG channel,LONG *signal) {
10653     return This->lpVtbl->AutoTune(This,channel,signal);
10654 }
10655 static FORCEINLINE HRESULT IAMTVTuner_StoreAutoTune(IAMTVTuner* This) {
10656     return This->lpVtbl->StoreAutoTune(This);
10657 }
10658 static FORCEINLINE HRESULT IAMTVTuner_get_NumInputConnections(IAMTVTuner* This,LONG *number) {
10659     return This->lpVtbl->get_NumInputConnections(This,number);
10660 }
10661 static FORCEINLINE HRESULT IAMTVTuner_put_InputType(IAMTVTuner* This,LONG index,TunerInputType type) {
10662     return This->lpVtbl->put_InputType(This,index,type);
10663 }
10664 static FORCEINLINE HRESULT IAMTVTuner_get_InputType(IAMTVTuner* This,LONG index,TunerInputType *type) {
10665     return This->lpVtbl->get_InputType(This,index,type);
10666 }
10667 static FORCEINLINE HRESULT IAMTVTuner_put_ConnectInput(IAMTVTuner* This,LONG index) {
10668     return This->lpVtbl->put_ConnectInput(This,index);
10669 }
10670 static FORCEINLINE HRESULT IAMTVTuner_get_ConnectInput(IAMTVTuner* This,LONG *index) {
10671     return This->lpVtbl->get_ConnectInput(This,index);
10672 }
10673 static FORCEINLINE HRESULT IAMTVTuner_get_VideoFrequency(IAMTVTuner* This,LONG *freq) {
10674     return This->lpVtbl->get_VideoFrequency(This,freq);
10675 }
10676 static FORCEINLINE HRESULT IAMTVTuner_get_AudioFrequency(IAMTVTuner* This,LONG *freq) {
10677     return This->lpVtbl->get_AudioFrequency(This,freq);
10678 }
10679 #endif
10680 #endif
10681 
10682 #endif
10683 
10684 
10685 #endif  /* __IAMTVTuner_INTERFACE_DEFINED__ */
10686 
10687 /*****************************************************************************
10688  * IVideoFrameStep interface
10689  */
10690 #ifndef __IVideoFrameStep_INTERFACE_DEFINED__
10691 #define __IVideoFrameStep_INTERFACE_DEFINED__
10692 
10693 DEFINE_GUID(IID_IVideoFrameStep, 0xe46a9787, 0x2b71, 0x444d, 0xa4,0xb5, 0x1f,0xab,0x7b,0x70,0x8d,0x6a);
10694 #if defined(__cplusplus) && !defined(CINTERFACE)
10695 MIDL_INTERFACE("e46a9787-2b71-444d-a4b5-1fab7b708d6a")
10696 IVideoFrameStep : public IUnknown
10697 {
10698     virtual HRESULT STDMETHODCALLTYPE Step(
10699         DWORD frame_count,
10700         IUnknown *filter) = 0;
10701 
10702     virtual HRESULT STDMETHODCALLTYPE CanStep(
10703         LONG multiple,
10704         IUnknown *filter) = 0;
10705 
10706     virtual HRESULT STDMETHODCALLTYPE CancelStep(
10707         ) = 0;
10708 
10709 };
10710 #ifdef __CRT_UUID_DECL
10711 __CRT_UUID_DECL(IVideoFrameStep, 0xe46a9787, 0x2b71, 0x444d, 0xa4,0xb5, 0x1f,0xab,0x7b,0x70,0x8d,0x6a)
10712 #endif
10713 #else
10714 typedef struct IVideoFrameStepVtbl {
10715     BEGIN_INTERFACE
10716 
10717     /*** IUnknown methods ***/
10718     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10719         IVideoFrameStep *This,
10720         REFIID riid,
10721         void **ppvObject);
10722 
10723     ULONG (STDMETHODCALLTYPE *AddRef)(
10724         IVideoFrameStep *This);
10725 
10726     ULONG (STDMETHODCALLTYPE *Release)(
10727         IVideoFrameStep *This);
10728 
10729     /*** IVideoFrameStep methods ***/
10730     HRESULT (STDMETHODCALLTYPE *Step)(
10731         IVideoFrameStep *This,
10732         DWORD frame_count,
10733         IUnknown *filter);
10734 
10735     HRESULT (STDMETHODCALLTYPE *CanStep)(
10736         IVideoFrameStep *This,
10737         LONG multiple,
10738         IUnknown *filter);
10739 
10740     HRESULT (STDMETHODCALLTYPE *CancelStep)(
10741         IVideoFrameStep *This);
10742 
10743     END_INTERFACE
10744 } IVideoFrameStepVtbl;
10745 
10746 interface IVideoFrameStep {
10747     CONST_VTBL IVideoFrameStepVtbl* lpVtbl;
10748 };
10749 
10750 #ifdef COBJMACROS
10751 #ifndef WIDL_C_INLINE_WRAPPERS
10752 /*** IUnknown methods ***/
10753 #define IVideoFrameStep_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10754 #define IVideoFrameStep_AddRef(This) (This)->lpVtbl->AddRef(This)
10755 #define IVideoFrameStep_Release(This) (This)->lpVtbl->Release(This)
10756 /*** IVideoFrameStep methods ***/
10757 #define IVideoFrameStep_Step(This,frame_count,filter) (This)->lpVtbl->Step(This,frame_count,filter)
10758 #define IVideoFrameStep_CanStep(This,multiple,filter) (This)->lpVtbl->CanStep(This,multiple,filter)
10759 #define IVideoFrameStep_CancelStep(This) (This)->lpVtbl->CancelStep(This)
10760 #else
10761 /*** IUnknown methods ***/
10762 static FORCEINLINE HRESULT IVideoFrameStep_QueryInterface(IVideoFrameStep* This,REFIID riid,void **ppvObject) {
10763     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10764 }
10765 static FORCEINLINE ULONG IVideoFrameStep_AddRef(IVideoFrameStep* This) {
10766     return This->lpVtbl->AddRef(This);
10767 }
10768 static FORCEINLINE ULONG IVideoFrameStep_Release(IVideoFrameStep* This) {
10769     return This->lpVtbl->Release(This);
10770 }
10771 /*** IVideoFrameStep methods ***/
10772 static FORCEINLINE HRESULT IVideoFrameStep_Step(IVideoFrameStep* This,DWORD frame_count,IUnknown *filter) {
10773     return This->lpVtbl->Step(This,frame_count,filter);
10774 }
10775 static FORCEINLINE HRESULT IVideoFrameStep_CanStep(IVideoFrameStep* This,LONG multiple,IUnknown *filter) {
10776     return This->lpVtbl->CanStep(This,multiple,filter);
10777 }
10778 static FORCEINLINE HRESULT IVideoFrameStep_CancelStep(IVideoFrameStep* This) {
10779     return This->lpVtbl->CancelStep(This);
10780 }
10781 #endif
10782 #endif
10783 
10784 #endif
10785 
10786 
10787 #endif  /* __IVideoFrameStep_INTERFACE_DEFINED__ */
10788 
10789 #if (_WIN32_WINNT >= 0x0601)
10790 /*****************************************************************************
10791  * IAMAsyncReaderTimestampScaling interface
10792  */
10793 #ifndef __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__
10794 #define __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__
10795 
10796 DEFINE_GUID(IID_IAMAsyncReaderTimestampScaling, 0xcf7b26fc, 0x9a00, 0x485b, 0x81,0x47, 0x3e,0x78,0x9d,0x5e,0x8f,0x67);
10797 #if defined(__cplusplus) && !defined(CINTERFACE)
10798 MIDL_INTERFACE("cf7b26fc-9a00-485b-8147-3e789d5e8f67")
10799 IAMAsyncReaderTimestampScaling : public IUnknown
10800 {
10801     virtual HRESULT STDMETHODCALLTYPE GetTimestampMode(
10802         WINBOOL *pfRaw) = 0;
10803 
10804     virtual HRESULT STDMETHODCALLTYPE SetTimestampMode(
10805         WINBOOL fRaw) = 0;
10806 
10807 };
10808 #ifdef __CRT_UUID_DECL
10809 __CRT_UUID_DECL(IAMAsyncReaderTimestampScaling, 0xcf7b26fc, 0x9a00, 0x485b, 0x81,0x47, 0x3e,0x78,0x9d,0x5e,0x8f,0x67)
10810 #endif
10811 #else
10812 typedef struct IAMAsyncReaderTimestampScalingVtbl {
10813     BEGIN_INTERFACE
10814 
10815     /*** IUnknown methods ***/
10816     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10817         IAMAsyncReaderTimestampScaling *This,
10818         REFIID riid,
10819         void **ppvObject);
10820 
10821     ULONG (STDMETHODCALLTYPE *AddRef)(
10822         IAMAsyncReaderTimestampScaling *This);
10823 
10824     ULONG (STDMETHODCALLTYPE *Release)(
10825         IAMAsyncReaderTimestampScaling *This);
10826 
10827     /*** IAMAsyncReaderTimestampScaling methods ***/
10828     HRESULT (STDMETHODCALLTYPE *GetTimestampMode)(
10829         IAMAsyncReaderTimestampScaling *This,
10830         WINBOOL *pfRaw);
10831 
10832     HRESULT (STDMETHODCALLTYPE *SetTimestampMode)(
10833         IAMAsyncReaderTimestampScaling *This,
10834         WINBOOL fRaw);
10835 
10836     END_INTERFACE
10837 } IAMAsyncReaderTimestampScalingVtbl;
10838 
10839 interface IAMAsyncReaderTimestampScaling {
10840     CONST_VTBL IAMAsyncReaderTimestampScalingVtbl* lpVtbl;
10841 };
10842 
10843 #ifdef COBJMACROS
10844 #ifndef WIDL_C_INLINE_WRAPPERS
10845 /*** IUnknown methods ***/
10846 #define IAMAsyncReaderTimestampScaling_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10847 #define IAMAsyncReaderTimestampScaling_AddRef(This) (This)->lpVtbl->AddRef(This)
10848 #define IAMAsyncReaderTimestampScaling_Release(This) (This)->lpVtbl->Release(This)
10849 /*** IAMAsyncReaderTimestampScaling methods ***/
10850 #define IAMAsyncReaderTimestampScaling_GetTimestampMode(This,pfRaw) (This)->lpVtbl->GetTimestampMode(This,pfRaw)
10851 #define IAMAsyncReaderTimestampScaling_SetTimestampMode(This,fRaw) (This)->lpVtbl->SetTimestampMode(This,fRaw)
10852 #else
10853 /*** IUnknown methods ***/
10854 static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_QueryInterface(IAMAsyncReaderTimestampScaling* This,REFIID riid,void **ppvObject) {
10855     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10856 }
10857 static FORCEINLINE ULONG IAMAsyncReaderTimestampScaling_AddRef(IAMAsyncReaderTimestampScaling* This) {
10858     return This->lpVtbl->AddRef(This);
10859 }
10860 static FORCEINLINE ULONG IAMAsyncReaderTimestampScaling_Release(IAMAsyncReaderTimestampScaling* This) {
10861     return This->lpVtbl->Release(This);
10862 }
10863 /*** IAMAsyncReaderTimestampScaling methods ***/
10864 static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_GetTimestampMode(IAMAsyncReaderTimestampScaling* This,WINBOOL *pfRaw) {
10865     return This->lpVtbl->GetTimestampMode(This,pfRaw);
10866 }
10867 static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_SetTimestampMode(IAMAsyncReaderTimestampScaling* This,WINBOOL fRaw) {
10868     return This->lpVtbl->SetTimestampMode(This,fRaw);
10869 }
10870 #endif
10871 #endif
10872 
10873 #endif
10874 
10875 
10876 #endif  /* __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__ */
10877 
10878 /*****************************************************************************
10879  * IAMPluginControl interface
10880  */
10881 #ifndef __IAMPluginControl_INTERFACE_DEFINED__
10882 #define __IAMPluginControl_INTERFACE_DEFINED__
10883 
10884 DEFINE_GUID(IID_IAMPluginControl, 0x0e26a181, 0xf40c, 0x4635, 0x87,0x86, 0x97,0x62,0x84,0xb5,0x29,0x81);
10885 #if defined(__cplusplus) && !defined(CINTERFACE)
10886 MIDL_INTERFACE("0e26a181-f40c-4635-8786-976284b52981")
10887 IAMPluginControl : public IUnknown
10888 {
10889     virtual HRESULT STDMETHODCALLTYPE GetPreferredClsid(
10890         REFGUID subType,
10891         CLSID *clsid) = 0;
10892 
10893     virtual HRESULT STDMETHODCALLTYPE GetPreferredClsidByIndex(
10894         DWORD index,
10895         GUID *subType,
10896         CLSID *clsid) = 0;
10897 
10898     virtual HRESULT STDMETHODCALLTYPE SetPreferredClsid(
10899         REFGUID subType,
10900         const CLSID *clsid) = 0;
10901 
10902     virtual HRESULT STDMETHODCALLTYPE IsDisabled(
10903         REFCLSID clsid) = 0;
10904 
10905     virtual HRESULT STDMETHODCALLTYPE GetDisabledByIndex(
10906         DWORD index,
10907         CLSID *clsid) = 0;
10908 
10909     virtual HRESULT STDMETHODCALLTYPE SetDisabled(
10910         REFCLSID clsid,
10911         WINBOOL disabled) = 0;
10912 
10913     virtual HRESULT STDMETHODCALLTYPE IsLegacyDisabled(
10914         LPCWSTR dllName) = 0;
10915 
10916 };
10917 #ifdef __CRT_UUID_DECL
10918 __CRT_UUID_DECL(IAMPluginControl, 0x0e26a181, 0xf40c, 0x4635, 0x87,0x86, 0x97,0x62,0x84,0xb5,0x29,0x81)
10919 #endif
10920 #else
10921 typedef struct IAMPluginControlVtbl {
10922     BEGIN_INTERFACE
10923 
10924     /*** IUnknown methods ***/
10925     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10926         IAMPluginControl *This,
10927         REFIID riid,
10928         void **ppvObject);
10929 
10930     ULONG (STDMETHODCALLTYPE *AddRef)(
10931         IAMPluginControl *This);
10932 
10933     ULONG (STDMETHODCALLTYPE *Release)(
10934         IAMPluginControl *This);
10935 
10936     /*** IAMPluginControl methods ***/
10937     HRESULT (STDMETHODCALLTYPE *GetPreferredClsid)(
10938         IAMPluginControl *This,
10939         REFGUID subType,
10940         CLSID *clsid);
10941 
10942     HRESULT (STDMETHODCALLTYPE *GetPreferredClsidByIndex)(
10943         IAMPluginControl *This,
10944         DWORD index,
10945         GUID *subType,
10946         CLSID *clsid);
10947 
10948     HRESULT (STDMETHODCALLTYPE *SetPreferredClsid)(
10949         IAMPluginControl *This,
10950         REFGUID subType,
10951         const CLSID *clsid);
10952 
10953     HRESULT (STDMETHODCALLTYPE *IsDisabled)(
10954         IAMPluginControl *This,
10955         REFCLSID clsid);
10956 
10957     HRESULT (STDMETHODCALLTYPE *GetDisabledByIndex)(
10958         IAMPluginControl *This,
10959         DWORD index,
10960         CLSID *clsid);
10961 
10962     HRESULT (STDMETHODCALLTYPE *SetDisabled)(
10963         IAMPluginControl *This,
10964         REFCLSID clsid,
10965         WINBOOL disabled);
10966 
10967     HRESULT (STDMETHODCALLTYPE *IsLegacyDisabled)(
10968         IAMPluginControl *This,
10969         LPCWSTR dllName);
10970 
10971     END_INTERFACE
10972 } IAMPluginControlVtbl;
10973 
10974 interface IAMPluginControl {
10975     CONST_VTBL IAMPluginControlVtbl* lpVtbl;
10976 };
10977 
10978 #ifdef COBJMACROS
10979 #ifndef WIDL_C_INLINE_WRAPPERS
10980 /*** IUnknown methods ***/
10981 #define IAMPluginControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10982 #define IAMPluginControl_AddRef(This) (This)->lpVtbl->AddRef(This)
10983 #define IAMPluginControl_Release(This) (This)->lpVtbl->Release(This)
10984 /*** IAMPluginControl methods ***/
10985 #define IAMPluginControl_GetPreferredClsid(This,subType,clsid) (This)->lpVtbl->GetPreferredClsid(This,subType,clsid)
10986 #define IAMPluginControl_GetPreferredClsidByIndex(This,index,subType,clsid) (This)->lpVtbl->GetPreferredClsidByIndex(This,index,subType,clsid)
10987 #define IAMPluginControl_SetPreferredClsid(This,subType,clsid) (This)->lpVtbl->SetPreferredClsid(This,subType,clsid)
10988 #define IAMPluginControl_IsDisabled(This,clsid) (This)->lpVtbl->IsDisabled(This,clsid)
10989 #define IAMPluginControl_GetDisabledByIndex(This,index,clsid) (This)->lpVtbl->GetDisabledByIndex(This,index,clsid)
10990 #define IAMPluginControl_SetDisabled(This,clsid,disabled) (This)->lpVtbl->SetDisabled(This,clsid,disabled)
10991 #define IAMPluginControl_IsLegacyDisabled(This,dllName) (This)->lpVtbl->IsLegacyDisabled(This,dllName)
10992 #else
10993 /*** IUnknown methods ***/
10994 static FORCEINLINE HRESULT IAMPluginControl_QueryInterface(IAMPluginControl* This,REFIID riid,void **ppvObject) {
10995     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10996 }
10997 static FORCEINLINE ULONG IAMPluginControl_AddRef(IAMPluginControl* This) {
10998     return This->lpVtbl->AddRef(This);
10999 }
11000 static FORCEINLINE ULONG IAMPluginControl_Release(IAMPluginControl* This) {
11001     return This->lpVtbl->Release(This);
11002 }
11003 /*** IAMPluginControl methods ***/
11004 static FORCEINLINE HRESULT IAMPluginControl_GetPreferredClsid(IAMPluginControl* This,REFGUID subType,CLSID *clsid) {
11005     return This->lpVtbl->GetPreferredClsid(This,subType,clsid);
11006 }
11007 static FORCEINLINE HRESULT IAMPluginControl_GetPreferredClsidByIndex(IAMPluginControl* This,DWORD index,GUID *subType,CLSID *clsid) {
11008     return This->lpVtbl->GetPreferredClsidByIndex(This,index,subType,clsid);
11009 }
11010 static FORCEINLINE HRESULT IAMPluginControl_SetPreferredClsid(IAMPluginControl* This,REFGUID subType,const CLSID *clsid) {
11011     return This->lpVtbl->SetPreferredClsid(This,subType,clsid);
11012 }
11013 static FORCEINLINE HRESULT IAMPluginControl_IsDisabled(IAMPluginControl* This,REFCLSID clsid) {
11014     return This->lpVtbl->IsDisabled(This,clsid);
11015 }
11016 static FORCEINLINE HRESULT IAMPluginControl_GetDisabledByIndex(IAMPluginControl* This,DWORD index,CLSID *clsid) {
11017     return This->lpVtbl->GetDisabledByIndex(This,index,clsid);
11018 }
11019 static FORCEINLINE HRESULT IAMPluginControl_SetDisabled(IAMPluginControl* This,REFCLSID clsid,WINBOOL disabled) {
11020     return This->lpVtbl->SetDisabled(This,clsid,disabled);
11021 }
11022 static FORCEINLINE HRESULT IAMPluginControl_IsLegacyDisabled(IAMPluginControl* This,LPCWSTR dllName) {
11023     return This->lpVtbl->IsLegacyDisabled(This,dllName);
11024 }
11025 #endif
11026 #endif
11027 
11028 #endif
11029 
11030 
11031 #endif  /* __IAMPluginControl_INTERFACE_DEFINED__ */
11032 
11033 #endif /*(_WIN32_WINNT >= 0x0601)*/
11034 #ifndef __IReferenceClock2_FWD_DEFINED__
11035 #define __IReferenceClock2_FWD_DEFINED__
11036 typedef struct IReferenceClock2 IReferenceClock2;
11037 #endif
11038 #ifndef __IDistributorNotify_FWD_DEFINED__
11039 #define __IDistributorNotify_FWD_DEFINED__
11040 typedef struct IDistributorNotify IDistributorNotify;
11041 #endif
11042 
11043 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
11044 #define __IAMVfwCompressDialogs_FWD_DEFINED__
11045 typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs;
11046 #endif
11047 
11048 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
11049 #define __IAMAudioInputMixer_FWD_DEFINED__
11050 typedef struct IAMAudioInputMixer IAMAudioInputMixer;
11051 #endif
11052 
11053 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
11054 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
11055 typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
11056 #endif
11057 
11058 #ifndef __IBPCSatelliteTuner_FWD_DEFINED__
11059 #define __IBPCSatelliteTuner_FWD_DEFINED__
11060 typedef struct IBPCSatelliteTuner IBPCSatelliteTuner;
11061 #endif
11062 
11063 #ifndef __IAMTVAudio_FWD_DEFINED__
11064 #define __IAMTVAudio_FWD_DEFINED__
11065 typedef struct IAMTVAudio IAMTVAudio;
11066 #endif
11067 
11068 #ifndef __IAMTVAudioNotification_FWD_DEFINED__
11069 #define __IAMTVAudioNotification_FWD_DEFINED__
11070 typedef struct IAMTVAudioNotification IAMTVAudioNotification;
11071 #endif
11072 
11073 #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
11074 #define __IAMAnalogVideoEncoder_FWD_DEFINED__
11075 typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
11076 #endif
11077 
11078 #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
11079 #define __IAMPhysicalPinInfo_FWD_DEFINED__
11080 typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo;
11081 #endif
11082 
11083 #ifndef __IAMExtDevice_FWD_DEFINED__
11084 #define __IAMExtDevice_FWD_DEFINED__
11085 typedef struct IAMExtDevice IAMExtDevice;
11086 #endif
11087 
11088 #ifndef __IAMExtTransport_FWD_DEFINED__
11089 #define __IAMExtTransport_FWD_DEFINED__
11090 typedef struct IAMExtTransport IAMExtTransport;
11091 #endif
11092 
11093 #ifndef __IAMTimecodeReader_FWD_DEFINED__
11094 #define __IAMTimecodeReader_FWD_DEFINED__
11095 typedef struct IAMTimecodeReader IAMTimecodeReader;
11096 #endif
11097 
11098 #ifndef __IAMTimecodeGenerator_FWD_DEFINED__
11099 #define __IAMTimecodeGenerator_FWD_DEFINED__
11100 typedef struct IAMTimecodeGenerator IAMTimecodeGenerator;
11101 #endif
11102 
11103 #ifndef __IAMTimecodeDisplay_FWD_DEFINED__
11104 #define __IAMTimecodeDisplay_FWD_DEFINED__
11105 typedef struct IAMTimecodeDisplay IAMTimecodeDisplay;
11106 #endif
11107 
11108 #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
11109 #define __IAMDevMemoryAllocator_FWD_DEFINED__
11110 typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator;
11111 #endif
11112 
11113 #ifndef __IAMDevMemoryControl_FWD_DEFINED__
11114 #define __IAMDevMemoryControl_FWD_DEFINED__
11115 typedef struct IAMDevMemoryControl IAMDevMemoryControl;
11116 #endif
11117 
11118 #ifndef __IAMStreamSelect_FWD_DEFINED__
11119 #define __IAMStreamSelect_FWD_DEFINED__
11120 typedef struct IAMStreamSelect IAMStreamSelect;
11121 #endif
11122 
11123 #ifndef __IAMResourceControl_FWD_DEFINED__
11124 #define __IAMResourceControl_FWD_DEFINED__
11125 typedef struct IAMResourceControl IAMResourceControl;
11126 #endif
11127 
11128 #ifndef __IAMClockAdjust_FWD_DEFINED__
11129 #define __IAMClockAdjust_FWD_DEFINED__
11130 typedef struct IAMClockAdjust IAMClockAdjust;
11131 #endif
11132 
11133 #ifndef __IDrawVideoImage_FWD_DEFINED__
11134 #define __IDrawVideoImage_FWD_DEFINED__
11135 typedef struct IDrawVideoImage IDrawVideoImage;
11136 #endif
11137 
11138 #ifndef __IDecimateVideoImage_FWD_DEFINED__
11139 #define __IDecimateVideoImage_FWD_DEFINED__
11140 typedef struct IDecimateVideoImage IDecimateVideoImage;
11141 #endif
11142 
11143 #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
11144 #define __IAMVideoDecimationProperties_FWD_DEFINED__
11145 typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties;
11146 #endif
11147 
11148 #ifndef __IAMDeviceRemoval_FWD_DEFINED__
11149 #define __IAMDeviceRemoval_FWD_DEFINED__
11150 typedef struct IAMDeviceRemoval IAMDeviceRemoval;
11151 #endif
11152 
11153 #ifndef __IDVEnc_FWD_DEFINED__
11154 #define __IDVEnc_FWD_DEFINED__
11155 typedef struct IDVEnc IDVEnc;
11156 #endif
11157 
11158 #ifndef __IIPDVDec_FWD_DEFINED__
11159 #define __IIPDVDec_FWD_DEFINED__
11160 typedef struct IIPDVDec IIPDVDec;
11161 #endif
11162 
11163 #ifndef __IDVRGB219_FWD_DEFINED__
11164 #define __IDVRGB219_FWD_DEFINED__
11165 typedef struct IDVRGB219 IDVRGB219;
11166 #endif
11167 
11168 #ifndef __IDVSplitter_FWD_DEFINED__
11169 #define __IDVSplitter_FWD_DEFINED__
11170 typedef struct IDVSplitter IDVSplitter;
11171 #endif
11172 
11173 #ifndef __IAMAudioRendererStats_FWD_DEFINED__
11174 #define __IAMAudioRendererStats_FWD_DEFINED__
11175 typedef struct IAMAudioRendererStats IAMAudioRendererStats;
11176 #endif
11177 
11178 #ifndef __IAMGraphStreams_FWD_DEFINED__
11179 #define __IAMGraphStreams_FWD_DEFINED__
11180 typedef struct IAMGraphStreams IAMGraphStreams;
11181 #endif
11182 
11183 #ifndef __IAMOverlayFX_FWD_DEFINED__
11184 #define __IAMOverlayFX_FWD_DEFINED__
11185 typedef struct IAMOverlayFX IAMOverlayFX;
11186 #endif
11187 
11188 #ifndef __IAMOpenProgress_FWD_DEFINED__
11189 #define __IAMOpenProgress_FWD_DEFINED__
11190 typedef struct IAMOpenProgress IAMOpenProgress;
11191 #endif
11192 
11193 #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
11194 #define __IMpeg2Demultiplexer_FWD_DEFINED__
11195 typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer;
11196 #endif
11197 
11198 #ifndef __IEnumStreamIdMap_FWD_DEFINED__
11199 #define __IEnumStreamIdMap_FWD_DEFINED__
11200 typedef struct IEnumStreamIdMap IEnumStreamIdMap;
11201 #endif
11202 
11203 #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
11204 #define __IMPEG2StreamIdMap_FWD_DEFINED__
11205 typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap;
11206 #endif
11207 
11208 #ifndef __IRegisterServiceProvider_FWD_DEFINED__
11209 #define __IRegisterServiceProvider_FWD_DEFINED__
11210 typedef struct IRegisterServiceProvider IRegisterServiceProvider;
11211 #endif
11212 
11213 #ifndef __ICodecAPI_FWD_DEFINED__
11214 #define __ICodecAPI_FWD_DEFINED__
11215 typedef struct ICodecAPI ICodecAPI;
11216 #endif
11217 
11218 #ifndef __IGetCapabilitiesKey_FWD_DEFINED__
11219 #define __IGetCapabilitiesKey_FWD_DEFINED__
11220 typedef struct IGetCapabilitiesKey IGetCapabilitiesKey;
11221 #endif
11222 
11223 #ifndef __IEncoderAPI_FWD_DEFINED__
11224 #define __IEncoderAPI_FWD_DEFINED__
11225 typedef struct IEncoderAPI IEncoderAPI;
11226 #endif
11227 
11228 #ifndef __IVideoEncoder_FWD_DEFINED__
11229 #define __IVideoEncoder_FWD_DEFINED__
11230 typedef struct IVideoEncoder IVideoEncoder;
11231 #endif
11232 
11233 #ifndef __IAMDecoderCaps_FWD_DEFINED__
11234 #define __IAMDecoderCaps_FWD_DEFINED__
11235 typedef struct IAMDecoderCaps IAMDecoderCaps;
11236 #endif
11237 
11238 #ifndef __IDvdControl_FWD_DEFINED__
11239 #define __IDvdControl_FWD_DEFINED__
11240 typedef struct IDvdControl IDvdControl;
11241 #endif
11242 
11243 #ifndef __IDvdInfo_FWD_DEFINED__
11244 #define __IDvdInfo_FWD_DEFINED__
11245 typedef struct IDvdInfo IDvdInfo;
11246 #endif
11247 
11248 #ifndef __IDvdCmd_FWD_DEFINED__
11249 #define __IDvdCmd_FWD_DEFINED__
11250 typedef struct IDvdCmd IDvdCmd;
11251 #endif
11252 
11253 #ifndef __IDvdState_FWD_DEFINED__
11254 #define __IDvdState_FWD_DEFINED__
11255 typedef struct IDvdState IDvdState;
11256 #endif
11257 
11258 #ifndef __IDvdControl2_FWD_DEFINED__
11259 #define __IDvdControl2_FWD_DEFINED__
11260 typedef struct IDvdControl2 IDvdControl2;
11261 #endif
11262 
11263 #ifndef __IDvdInfo2_FWD_DEFINED__
11264 #define __IDvdInfo2_FWD_DEFINED__
11265 typedef struct IDvdInfo2 IDvdInfo2;
11266 #endif
11267 
11268 #ifndef __IDvdGraphBuilder_FWD_DEFINED__
11269 #define __IDvdGraphBuilder_FWD_DEFINED__
11270 typedef struct IDvdGraphBuilder IDvdGraphBuilder;
11271 #endif
11272 
11273 #ifndef __IDDrawExclModeVideo_FWD_DEFINED__
11274 #define __IDDrawExclModeVideo_FWD_DEFINED__
11275 typedef struct IDDrawExclModeVideo IDDrawExclModeVideo;
11276 #endif
11277 
11278 #ifndef __IDDrawExclModeVideoCallback_FWD_DEFINED__
11279 #define __IDDrawExclModeVideoCallback_FWD_DEFINED__
11280 typedef struct IDDrawExclModeVideoCallback IDDrawExclModeVideoCallback;
11281 #endif
11282 
11283 #ifndef __IPinConnection_FWD_DEFINED__
11284 #define __IPinConnection_FWD_DEFINED__
11285 typedef struct IPinConnection IPinConnection;
11286 #endif
11287 
11288 #ifndef __IPinFlowControl_FWD_DEFINED__
11289 #define __IPinFlowControl_FWD_DEFINED__
11290 typedef struct IPinFlowControl IPinFlowControl;
11291 #endif
11292 
11293 #ifndef __IGraphConfig_FWD_DEFINED__
11294 #define __IGraphConfig_FWD_DEFINED__
11295 typedef struct IGraphConfig IGraphConfig;
11296 #endif
11297 
11298 #ifndef __IGraphConfigCallback_FWD_DEFINED__
11299 #define __IGraphConfigCallback_FWD_DEFINED__
11300 typedef struct IGraphConfigCallback IGraphConfigCallback;
11301 #endif
11302 
11303 #ifndef __IFilterChain_FWD_DEFINED__
11304 #define __IFilterChain_FWD_DEFINED__
11305 typedef struct IFilterChain IFilterChain;
11306 #endif
11307 
11308 #ifndef __IVMRImagePresenter_FWD_DEFINED__
11309 #define __IVMRImagePresenter_FWD_DEFINED__
11310 typedef struct IVMRImagePresenter IVMRImagePresenter;
11311 #endif
11312 
11313 #ifndef __IVMRSurfaceAllocator_FWD_DEFINED__
11314 #define __IVMRSurfaceAllocator_FWD_DEFINED__
11315 typedef struct IVMRSurfaceAllocator IVMRSurfaceAllocator;
11316 #endif
11317 
11318 #ifndef __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
11319 #define __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
11320 typedef struct IVMRSurfaceAllocatorNotify IVMRSurfaceAllocatorNotify;
11321 #endif
11322 
11323 #ifndef __IVMRWindowlessControl_FWD_DEFINED__
11324 #define __IVMRWindowlessControl_FWD_DEFINED__
11325 typedef struct IVMRWindowlessControl IVMRWindowlessControl;
11326 #endif
11327 
11328 #ifndef __IVMRMixerControl_FWD_DEFINED__
11329 #define __IVMRMixerControl_FWD_DEFINED__
11330 typedef struct IVMRMixerControl IVMRMixerControl;
11331 #endif
11332 
11333 #ifndef __IVMRMonitorConfig_FWD_DEFINED__
11334 #define __IVMRMonitorConfig_FWD_DEFINED__
11335 typedef struct IVMRMonitorConfig IVMRMonitorConfig;
11336 #endif
11337 
11338 #ifndef __IVMRFilterConfig_FWD_DEFINED__
11339 #define __IVMRFilterConfig_FWD_DEFINED__
11340 typedef struct IVMRFilterConfig IVMRFilterConfig;
11341 #endif
11342 
11343 #ifndef __IVMRAspectRatioControl_FWD_DEFINED__
11344 #define __IVMRAspectRatioControl_FWD_DEFINED__
11345 typedef struct IVMRAspectRatioControl IVMRAspectRatioControl;
11346 #endif
11347 
11348 #ifndef __IVMRDeinterlaceControl_FWD_DEFINED__
11349 #define __IVMRDeinterlaceControl_FWD_DEFINED__
11350 typedef struct IVMRDeinterlaceControl IVMRDeinterlaceControl;
11351 #endif
11352 
11353 #ifndef __IVMRMixerBitmap_FWD_DEFINED__
11354 #define __IVMRMixerBitmap_FWD_DEFINED__
11355 typedef struct IVMRMixerBitmap IVMRMixerBitmap;
11356 #endif
11357 
11358 #ifndef __IVMRImageCompositor_FWD_DEFINED__
11359 #define __IVMRImageCompositor_FWD_DEFINED__
11360 typedef struct IVMRImageCompositor IVMRImageCompositor;
11361 #endif
11362 
11363 #ifndef __IVMRVideoStreamControl_FWD_DEFINED__
11364 #define __IVMRVideoStreamControl_FWD_DEFINED__
11365 typedef struct IVMRVideoStreamControl IVMRVideoStreamControl;
11366 #endif
11367 
11368 #ifndef __IVMRSurface_FWD_DEFINED__
11369 #define __IVMRSurface_FWD_DEFINED__
11370 typedef struct IVMRSurface IVMRSurface;
11371 #endif
11372 
11373 #ifndef __IVMRImagePresenterConfig_FWD_DEFINED__
11374 #define __IVMRImagePresenterConfig_FWD_DEFINED__
11375 typedef struct IVMRImagePresenterConfig IVMRImagePresenterConfig;
11376 #endif
11377 
11378 #ifndef __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
11379 #define __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
11380 typedef struct IVMRImagePresenterExclModeConfig IVMRImagePresenterExclModeConfig;
11381 #endif
11382 
11383 #ifndef __IVPManager_FWD_DEFINED__
11384 #define __IVPManager_FWD_DEFINED__
11385 typedef struct IVPManager IVPManager;
11386 #endif
11387 
11388 #ifndef __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
11389 #define __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
11390 typedef struct IAMAsyncReaderTimestampScaling IAMAsyncReaderTimestampScaling;
11391 #endif
11392 
11393 #ifndef __IAMPluginControl_FWD_DEFINED__
11394 #define __IAMPluginControl_FWD_DEFINED__
11395 typedef struct IAMPluginControl IAMPluginControl;
11396 #endif
11397 
11398 #include "ocidl.h"
11399 
11400   extern RPC_IF_HANDLE __MIDL_itf_strmif_0125_v0_0_c_ifspec;
11401   extern RPC_IF_HANDLE __MIDL_itf_strmif_0125_v0_0_s_ifspec;
11402 #ifndef __IReferenceClock2_INTERFACE_DEFINED__
11403 #define __IReferenceClock2_INTERFACE_DEFINED__
11404   EXTERN_C const IID IID_IReferenceClock2;
11405 #if defined(__cplusplus) && !defined(CINTERFACE)
11406   struct IReferenceClock2 : public IReferenceClock {
11407   };
11408 #else
11409   typedef struct IReferenceClock2Vtbl {
11410     BEGIN_INTERFACE
11411       HRESULT (WINAPI *QueryInterface)(IReferenceClock2 *This,REFIID riid,void **ppvObject);
11412       ULONG (WINAPI *AddRef)(IReferenceClock2 *This);
11413       ULONG (WINAPI *Release)(IReferenceClock2 *This);
11414       HRESULT (WINAPI *GetTime)(IReferenceClock2 *This,REFERENCE_TIME *pTime);
11415       HRESULT (WINAPI *AdviseTime)(IReferenceClock2 *This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie);
11416       HRESULT (WINAPI *AdvisePeriodic)(IReferenceClock2 *This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie);
11417       HRESULT (WINAPI *Unadvise)(IReferenceClock2 *This,DWORD_PTR dwAdviseCookie);
11418     END_INTERFACE
11419   } IReferenceClock2Vtbl;
11420   struct IReferenceClock2 {
11421     CONST_VTBL struct IReferenceClock2Vtbl *lpVtbl;
11422   };
11423 #ifdef COBJMACROS
11424 #define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11425 #define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
11426 #define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
11427 #define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
11428 #define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
11429 #define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
11430 #define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
11431 #endif
11432 #endif
11433 #endif
11434 
11435   typedef IReferenceClock2 *PREFERENCECLOCK2;
11436 
11437 #ifndef __IDistributorNotify_INTERFACE_DEFINED__
11438 #define __IDistributorNotify_INTERFACE_DEFINED__
11439   EXTERN_C const IID IID_IDistributorNotify;
11440 #if defined(__cplusplus) && !defined(CINTERFACE)
11441   struct IDistributorNotify : public IUnknown {
11442   public:
11443     virtual HRESULT WINAPI Stop(void) = 0;
11444     virtual HRESULT WINAPI Pause(void) = 0;
11445     virtual HRESULT WINAPI Run(REFERENCE_TIME tStart) = 0;
11446     virtual HRESULT WINAPI SetSyncSource(IReferenceClock *pClock) = 0;
11447     virtual HRESULT WINAPI NotifyGraphChange(void) = 0;
11448   };
11449 #else
11450   typedef struct IDistributorNotifyVtbl {
11451     BEGIN_INTERFACE
11452       HRESULT (WINAPI *QueryInterface)(IDistributorNotify *This,REFIID riid,void **ppvObject);
11453       ULONG (WINAPI *AddRef)(IDistributorNotify *This);
11454       ULONG (WINAPI *Release)(IDistributorNotify *This);
11455       HRESULT (WINAPI *Stop)(IDistributorNotify *This);
11456       HRESULT (WINAPI *Pause)(IDistributorNotify *This);
11457       HRESULT (WINAPI *Run)(IDistributorNotify *This,REFERENCE_TIME tStart);
11458       HRESULT (WINAPI *SetSyncSource)(IDistributorNotify *This,IReferenceClock *pClock);
11459       HRESULT (WINAPI *NotifyGraphChange)(IDistributorNotify *This);
11460     END_INTERFACE
11461   } IDistributorNotifyVtbl;
11462   struct IDistributorNotify {
11463     CONST_VTBL struct IDistributorNotifyVtbl *lpVtbl;
11464   };
11465 #ifdef COBJMACROS
11466 #define IDistributorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11467 #define IDistributorNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
11468 #define IDistributorNotify_Release(This) (This)->lpVtbl->Release(This)
11469 #define IDistributorNotify_Stop(This) (This)->lpVtbl->Stop(This)
11470 #define IDistributorNotify_Pause(This) (This)->lpVtbl->Pause(This)
11471 #define IDistributorNotify_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
11472 #define IDistributorNotify_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
11473 #define IDistributorNotify_NotifyGraphChange(This) (This)->lpVtbl->NotifyGraphChange(This)
11474 #endif
11475 #endif
11476   HRESULT WINAPI IDistributorNotify_Stop_Proxy(IDistributorNotify *This);
11477   void __RPC_STUB IDistributorNotify_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11478   HRESULT WINAPI IDistributorNotify_Pause_Proxy(IDistributorNotify *This);
11479   void __RPC_STUB IDistributorNotify_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11480   HRESULT WINAPI IDistributorNotify_Run_Proxy(IDistributorNotify *This,REFERENCE_TIME tStart);
11481   void __RPC_STUB IDistributorNotify_Run_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11482   HRESULT WINAPI IDistributorNotify_SetSyncSource_Proxy(IDistributorNotify *This,IReferenceClock *pClock);
11483   void __RPC_STUB IDistributorNotify_SetSyncSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11484   HRESULT WINAPI IDistributorNotify_NotifyGraphChange_Proxy(IDistributorNotify *This);
11485   void __RPC_STUB IDistributorNotify_NotifyGraphChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11486 #endif
11487 
11488   typedef enum __MIDL___MIDL_itf_strmif_0167_0001 {
11489     CompressionCaps_CanQuality = 0x1,CompressionCaps_CanCrunch = 0x2,CompressionCaps_CanKeyFrame = 0x4,CompressionCaps_CanBFrame = 0x8,
11490     CompressionCaps_CanWindow = 0x10
11491   } CompressionCaps;
11492 
11493   extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_c_ifspec;
11494   extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_s_ifspec;
11495 
11496   typedef enum __MIDL___MIDL_itf_strmif_0168_0001 {
11497     VfwCaptureDialog_Source = 0x1,VfwCaptureDialog_Format = 0x2,VfwCaptureDialog_Display = 0x4
11498   } VfwCaptureDialogs;
11499 
11500   typedef enum __MIDL___MIDL_itf_strmif_0168_0002 {
11501     VfwCompressDialog_Config = 0x1,VfwCompressDialog_About = 0x2,VfwCompressDialog_QueryConfig = 0x4,VfwCompressDialog_QueryAbout = 0x8
11502   } VfwCompressDialogs;
11503 
11504 #ifndef __IAMVfwCompressDialogs_INTERFACE_DEFINED__
11505 #define __IAMVfwCompressDialogs_INTERFACE_DEFINED__
11506   EXTERN_C const IID IID_IAMVfwCompressDialogs;
11507 #if defined(__cplusplus) && !defined(CINTERFACE)
11508   struct IAMVfwCompressDialogs : public IUnknown {
11509   public:
11510     virtual HRESULT WINAPI ShowDialog(int iDialog,HWND hwnd) = 0;
11511     virtual HRESULT WINAPI GetState(LPVOID pState,int *pcbState) = 0;
11512     virtual HRESULT WINAPI SetState(LPVOID pState,int cbState) = 0;
11513     virtual HRESULT WINAPI SendDriverMessage(int uMsg,LONG dw1,LONG dw2) = 0;
11514   };
11515 #else
11516   typedef struct IAMVfwCompressDialogsVtbl {
11517     BEGIN_INTERFACE
11518       HRESULT (WINAPI *QueryInterface)(IAMVfwCompressDialogs *This,REFIID riid,void **ppvObject);
11519       ULONG (WINAPI *AddRef)(IAMVfwCompressDialogs *This);
11520       ULONG (WINAPI *Release)(IAMVfwCompressDialogs *This);
11521       HRESULT (WINAPI *ShowDialog)(IAMVfwCompressDialogs *This,int iDialog,HWND hwnd);
11522       HRESULT (WINAPI *GetState)(IAMVfwCompressDialogs *This,LPVOID pState,int *pcbState);
11523       HRESULT (WINAPI *SetState)(IAMVfwCompressDialogs *This,LPVOID pState,int cbState);
11524       HRESULT (WINAPI *SendDriverMessage)(IAMVfwCompressDialogs *This,int uMsg,LONG dw1,LONG dw2);
11525     END_INTERFACE
11526   } IAMVfwCompressDialogsVtbl;
11527   struct IAMVfwCompressDialogs {
11528     CONST_VTBL struct IAMVfwCompressDialogsVtbl *lpVtbl;
11529   };
11530 #ifdef COBJMACROS
11531 #define IAMVfwCompressDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11532 #define IAMVfwCompressDialogs_AddRef(This) (This)->lpVtbl->AddRef(This)
11533 #define IAMVfwCompressDialogs_Release(This) (This)->lpVtbl->Release(This)
11534 #define IAMVfwCompressDialogs_ShowDialog(This,iDialog,hwnd) (This)->lpVtbl->ShowDialog(This,iDialog,hwnd)
11535 #define IAMVfwCompressDialogs_GetState(This,pState,pcbState) (This)->lpVtbl->GetState(This,pState,pcbState)
11536 #define IAMVfwCompressDialogs_SetState(This,pState,cbState) (This)->lpVtbl->SetState(This,pState,cbState)
11537 #define IAMVfwCompressDialogs_SendDriverMessage(This,uMsg,dw1,dw2) (This)->lpVtbl->SendDriverMessage(This,uMsg,dw1,dw2)
11538 #endif
11539 #endif
11540   HRESULT WINAPI IAMVfwCompressDialogs_ShowDialog_Proxy(IAMVfwCompressDialogs *This,int iDialog,HWND hwnd);
11541   void __RPC_STUB IAMVfwCompressDialogs_ShowDialog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11542   HRESULT WINAPI IAMVfwCompressDialogs_GetState_Proxy(IAMVfwCompressDialogs *This,LPVOID pState,int *pcbState);
11543   void __RPC_STUB IAMVfwCompressDialogs_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11544   HRESULT WINAPI IAMVfwCompressDialogs_SetState_Proxy(IAMVfwCompressDialogs *This,LPVOID pState,int cbState);
11545   void __RPC_STUB IAMVfwCompressDialogs_SetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11546   HRESULT WINAPI IAMVfwCompressDialogs_SendDriverMessage_Proxy(IAMVfwCompressDialogs *This,int uMsg,LONG dw1,LONG dw2);
11547   void __RPC_STUB IAMVfwCompressDialogs_SendDriverMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11548 #endif
11549 
11550 #define AMF_AUTOMATICGAIN -1.0
11551 
11552   extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_c_ifspec;
11553   extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_s_ifspec;
11554 #ifndef __IAMAudioInputMixer_INTERFACE_DEFINED__
11555 #define __IAMAudioInputMixer_INTERFACE_DEFINED__
11556   EXTERN_C const IID IID_IAMAudioInputMixer;
11557 #if defined(__cplusplus) && !defined(CINTERFACE)
11558   struct IAMAudioInputMixer : public IUnknown {
11559   public:
11560     virtual HRESULT WINAPI put_Enable(WINBOOL fEnable) = 0;
11561     virtual HRESULT WINAPI get_Enable(WINBOOL *pfEnable) = 0;
11562     virtual HRESULT WINAPI put_Mono(WINBOOL fMono) = 0;
11563     virtual HRESULT WINAPI get_Mono(WINBOOL *pfMono) = 0;
11564     virtual HRESULT WINAPI put_MixLevel(double Level) = 0;
11565     virtual HRESULT WINAPI get_MixLevel(double *pLevel) = 0;
11566     virtual HRESULT WINAPI put_Pan(double Pan) = 0;
11567     virtual HRESULT WINAPI get_Pan(double *pPan) = 0;
11568     virtual HRESULT WINAPI put_Loudness(WINBOOL fLoudness) = 0;
11569     virtual HRESULT WINAPI get_Loudness(WINBOOL *pfLoudness) = 0;
11570     virtual HRESULT WINAPI put_Treble(double Treble) = 0;
11571     virtual HRESULT WINAPI get_Treble(double *pTreble) = 0;
11572     virtual HRESULT WINAPI get_TrebleRange(double *pRange) = 0;
11573     virtual HRESULT WINAPI put_Bass(double Bass) = 0;
11574     virtual HRESULT WINAPI get_Bass(double *pBass) = 0;
11575     virtual HRESULT WINAPI get_BassRange(double *pRange) = 0;
11576   };
11577 #else
11578   typedef struct IAMAudioInputMixerVtbl {
11579     BEGIN_INTERFACE
11580       HRESULT (WINAPI *QueryInterface)(IAMAudioInputMixer *This,REFIID riid,void **ppvObject);
11581       ULONG (WINAPI *AddRef)(IAMAudioInputMixer *This);
11582       ULONG (WINAPI *Release)(IAMAudioInputMixer *This);
11583       HRESULT (WINAPI *put_Enable)(IAMAudioInputMixer *This,WINBOOL fEnable);
11584       HRESULT (WINAPI *get_Enable)(IAMAudioInputMixer *This,WINBOOL *pfEnable);
11585       HRESULT (WINAPI *put_Mono)(IAMAudioInputMixer *This,WINBOOL fMono);
11586       HRESULT (WINAPI *get_Mono)(IAMAudioInputMixer *This,WINBOOL *pfMono);
11587       HRESULT (WINAPI *put_MixLevel)(IAMAudioInputMixer *This,double Level);
11588       HRESULT (WINAPI *get_MixLevel)(IAMAudioInputMixer *This,double *pLevel);
11589       HRESULT (WINAPI *put_Pan)(IAMAudioInputMixer *This,double Pan);
11590       HRESULT (WINAPI *get_Pan)(IAMAudioInputMixer *This,double *pPan);
11591       HRESULT (WINAPI *put_Loudness)(IAMAudioInputMixer *This,WINBOOL fLoudness);
11592       HRESULT (WINAPI *get_Loudness)(IAMAudioInputMixer *This,WINBOOL *pfLoudness);
11593       HRESULT (WINAPI *put_Treble)(IAMAudioInputMixer *This,double Treble);
11594       HRESULT (WINAPI *get_Treble)(IAMAudioInputMixer *This,double *pTreble);
11595       HRESULT (WINAPI *get_TrebleRange)(IAMAudioInputMixer *This,double *pRange);
11596       HRESULT (WINAPI *put_Bass)(IAMAudioInputMixer *This,double Bass);
11597       HRESULT (WINAPI *get_Bass)(IAMAudioInputMixer *This,double *pBass);
11598       HRESULT (WINAPI *get_BassRange)(IAMAudioInputMixer *This,double *pRange);
11599     END_INTERFACE
11600   } IAMAudioInputMixerVtbl;
11601   struct IAMAudioInputMixer {
11602     CONST_VTBL struct IAMAudioInputMixerVtbl *lpVtbl;
11603   };
11604 #ifdef COBJMACROS
11605 #define IAMAudioInputMixer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11606 #define IAMAudioInputMixer_AddRef(This) (This)->lpVtbl->AddRef(This)
11607 #define IAMAudioInputMixer_Release(This) (This)->lpVtbl->Release(This)
11608 #define IAMAudioInputMixer_put_Enable(This,fEnable) (This)->lpVtbl->put_Enable(This,fEnable)
11609 #define IAMAudioInputMixer_get_Enable(This,pfEnable) (This)->lpVtbl->get_Enable(This,pfEnable)
11610 #define IAMAudioInputMixer_put_Mono(This,fMono) (This)->lpVtbl->put_Mono(This,fMono)
11611 #define IAMAudioInputMixer_get_Mono(This,pfMono) (This)->lpVtbl->get_Mono(This,pfMono)
11612 #define IAMAudioInputMixer_put_MixLevel(This,Level) (This)->lpVtbl->put_MixLevel(This,Level)
11613 #define IAMAudioInputMixer_get_MixLevel(This,pLevel) (This)->lpVtbl->get_MixLevel(This,pLevel)
11614 #define IAMAudioInputMixer_put_Pan(This,Pan) (This)->lpVtbl->put_Pan(This,Pan)
11615 #define IAMAudioInputMixer_get_Pan(This,pPan) (This)->lpVtbl->get_Pan(This,pPan)
11616 #define IAMAudioInputMixer_put_Loudness(This,fLoudness) (This)->lpVtbl->put_Loudness(This,fLoudness)
11617 #define IAMAudioInputMixer_get_Loudness(This,pfLoudness) (This)->lpVtbl->get_Loudness(This,pfLoudness)
11618 #define IAMAudioInputMixer_put_Treble(This,Treble) (This)->lpVtbl->put_Treble(This,Treble)
11619 #define IAMAudioInputMixer_get_Treble(This,pTreble) (This)->lpVtbl->get_Treble(This,pTreble)
11620 #define IAMAudioInputMixer_get_TrebleRange(This,pRange) (This)->lpVtbl->get_TrebleRange(This,pRange)
11621 #define IAMAudioInputMixer_put_Bass(This,Bass) (This)->lpVtbl->put_Bass(This,Bass)
11622 #define IAMAudioInputMixer_get_Bass(This,pBass) (This)->lpVtbl->get_Bass(This,pBass)
11623 #define IAMAudioInputMixer_get_BassRange(This,pRange) (This)->lpVtbl->get_BassRange(This,pRange)
11624 #endif
11625 #endif
11626   HRESULT WINAPI IAMAudioInputMixer_put_Enable_Proxy(IAMAudioInputMixer *This,WINBOOL fEnable);
11627   void __RPC_STUB IAMAudioInputMixer_put_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11628   HRESULT WINAPI IAMAudioInputMixer_get_Enable_Proxy(IAMAudioInputMixer *This,WINBOOL *pfEnable);
11629   void __RPC_STUB IAMAudioInputMixer_get_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11630   HRESULT WINAPI IAMAudioInputMixer_put_Mono_Proxy(IAMAudioInputMixer *This,WINBOOL fMono);
11631   void __RPC_STUB IAMAudioInputMixer_put_Mono_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11632   HRESULT WINAPI IAMAudioInputMixer_get_Mono_Proxy(IAMAudioInputMixer *This,WINBOOL *pfMono);
11633   void __RPC_STUB IAMAudioInputMixer_get_Mono_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11634   HRESULT WINAPI IAMAudioInputMixer_put_MixLevel_Proxy(IAMAudioInputMixer *This,double Level);
11635   void __RPC_STUB IAMAudioInputMixer_put_MixLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11636   HRESULT WINAPI IAMAudioInputMixer_get_MixLevel_Proxy(IAMAudioInputMixer *This,double *pLevel);
11637   void __RPC_STUB IAMAudioInputMixer_get_MixLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11638   HRESULT WINAPI IAMAudioInputMixer_put_Pan_Proxy(IAMAudioInputMixer *This,double Pan);
11639   void __RPC_STUB IAMAudioInputMixer_put_Pan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11640   HRESULT WINAPI IAMAudioInputMixer_get_Pan_Proxy(IAMAudioInputMixer *This,double *pPan);
11641   void __RPC_STUB IAMAudioInputMixer_get_Pan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11642   HRESULT WINAPI IAMAudioInputMixer_put_Loudness_Proxy(IAMAudioInputMixer *This,WINBOOL fLoudness);
11643   void __RPC_STUB IAMAudioInputMixer_put_Loudness_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11644   HRESULT WINAPI IAMAudioInputMixer_get_Loudness_Proxy(IAMAudioInputMixer *This,WINBOOL *pfLoudness);
11645   void __RPC_STUB IAMAudioInputMixer_get_Loudness_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11646   HRESULT WINAPI IAMAudioInputMixer_put_Treble_Proxy(IAMAudioInputMixer *This,double Treble);
11647   void __RPC_STUB IAMAudioInputMixer_put_Treble_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11648   HRESULT WINAPI IAMAudioInputMixer_get_Treble_Proxy(IAMAudioInputMixer *This,double *pTreble);
11649   void __RPC_STUB IAMAudioInputMixer_get_Treble_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11650   HRESULT WINAPI IAMAudioInputMixer_get_TrebleRange_Proxy(IAMAudioInputMixer *This,double *pRange);
11651   void __RPC_STUB IAMAudioInputMixer_get_TrebleRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11652   HRESULT WINAPI IAMAudioInputMixer_put_Bass_Proxy(IAMAudioInputMixer *This,double Bass);
11653   void __RPC_STUB IAMAudioInputMixer_put_Bass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11654   HRESULT WINAPI IAMAudioInputMixer_get_Bass_Proxy(IAMAudioInputMixer *This,double *pBass);
11655   void __RPC_STUB IAMAudioInputMixer_get_Bass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11656   HRESULT WINAPI IAMAudioInputMixer_get_BassRange_Proxy(IAMAudioInputMixer *This,double *pRange);
11657   void __RPC_STUB IAMAudioInputMixer_get_BassRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11658 #endif
11659 
11660 #define AnalogVideo_NTSC_Mask 0x00000007
11661 #define AnalogVideo_PAL_Mask 0x00100FF0
11662 #define AnalogVideo_SECAM_Mask 0x000FF000
11663 
11664   typedef enum __MIDL___MIDL_itf_strmif_0173_0001 {
11665     VideoCopyProtectionMacrovisionBasic = 0,VideoCopyProtectionMacrovisionCBI = VideoCopyProtectionMacrovisionBasic + 1
11666   } VideoCopyProtectionType;
11667 
11668   typedef enum tagPhysicalConnectorType {
11669     PhysConn_Video_Tuner = 1,
11670     PhysConn_Video_Composite,PhysConn_Video_SVideo,PhysConn_Video_RGB,
11671     PhysConn_Video_YRYBY,PhysConn_Video_SerialDigital,PhysConn_Video_ParallelDigital,
11672     PhysConn_Video_SCSI,PhysConn_Video_AUX,PhysConn_Video_1394,PhysConn_Video_USB,
11673     PhysConn_Video_VideoDecoder,PhysConn_Video_VideoEncoder,PhysConn_Video_SCART,PhysConn_Video_Black,
11674     PhysConn_Audio_Tuner = 0x1000,PhysConn_Audio_Line = 0x1001,PhysConn_Audio_Mic = 0x1002,
11675     PhysConn_Audio_AESDigital = 0x1003,PhysConn_Audio_SPDIFDigital = 0x1004,
11676     PhysConn_Audio_SCSI = 0x1005,PhysConn_Audio_AUX = 0x1006,PhysConn_Audio_1394 = 0x1007,
11677     PhysConn_Audio_USB = 0x1008,PhysConn_Audio_AudioDecoder = 0x1009
11678   } PhysicalConnectorType;
11679 
11680   extern RPC_IF_HANDLE __MIDL_itf_strmif_0173_v0_0_c_ifspec;
11681   extern RPC_IF_HANDLE __MIDL_itf_strmif_0173_v0_0_s_ifspec;
11682 #ifndef __IAMAnalogVideoDecoder_INTERFACE_DEFINED__
11683 #define __IAMAnalogVideoDecoder_INTERFACE_DEFINED__
11684   EXTERN_C const IID IID_IAMAnalogVideoDecoder;
11685 #if defined(__cplusplus) && !defined(CINTERFACE)
11686   struct IAMAnalogVideoDecoder : public IUnknown {
11687   public:
11688     virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
11689     virtual HRESULT WINAPI put_TVFormat(LONG lAnalogVideoStandard) = 0;
11690     virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
11691     virtual HRESULT WINAPI get_HorizontalLocked(LONG *plLocked) = 0;
11692     virtual HRESULT WINAPI put_VCRHorizontalLocking(LONG lVCRHorizontalLocking) = 0;
11693     virtual HRESULT WINAPI get_VCRHorizontalLocking(LONG *plVCRHorizontalLocking) = 0;
11694     virtual HRESULT WINAPI get_NumberOfLines(LONG *plNumberOfLines) = 0;
11695     virtual HRESULT WINAPI put_OutputEnable(LONG lOutputEnable) = 0;
11696     virtual HRESULT WINAPI get_OutputEnable(LONG *plOutputEnable) = 0;
11697   };
11698 #else
11699   typedef struct IAMAnalogVideoDecoderVtbl {
11700     BEGIN_INTERFACE
11701       HRESULT (WINAPI *QueryInterface)(IAMAnalogVideoDecoder *This,REFIID riid,void **ppvObject);
11702       ULONG (WINAPI *AddRef)(IAMAnalogVideoDecoder *This);
11703       ULONG (WINAPI *Release)(IAMAnalogVideoDecoder *This);
11704       HRESULT (WINAPI *get_AvailableTVFormats)(IAMAnalogVideoDecoder *This,LONG *lAnalogVideoStandard);
11705       HRESULT (WINAPI *put_TVFormat)(IAMAnalogVideoDecoder *This,LONG lAnalogVideoStandard);
11706       HRESULT (WINAPI *get_TVFormat)(IAMAnalogVideoDecoder *This,LONG *plAnalogVideoStandard);
11707       HRESULT (WINAPI *get_HorizontalLocked)(IAMAnalogVideoDecoder *This,LONG *plLocked);
11708       HRESULT (WINAPI *put_VCRHorizontalLocking)(IAMAnalogVideoDecoder *This,LONG lVCRHorizontalLocking);
11709       HRESULT (WINAPI *get_VCRHorizontalLocking)(IAMAnalogVideoDecoder *This,LONG *plVCRHorizontalLocking);
11710       HRESULT (WINAPI *get_NumberOfLines)(IAMAnalogVideoDecoder *This,LONG *plNumberOfLines);
11711       HRESULT (WINAPI *put_OutputEnable)(IAMAnalogVideoDecoder *This,LONG lOutputEnable);
11712       HRESULT (WINAPI *get_OutputEnable)(IAMAnalogVideoDecoder *This,LONG *plOutputEnable);
11713     END_INTERFACE
11714   } IAMAnalogVideoDecoderVtbl;
11715   struct IAMAnalogVideoDecoder {
11716     CONST_VTBL struct IAMAnalogVideoDecoderVtbl *lpVtbl;
11717   };
11718 #ifdef COBJMACROS
11719 #define IAMAnalogVideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11720 #define IAMAnalogVideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
11721 #define IAMAnalogVideoDecoder_Release(This) (This)->lpVtbl->Release(This)
11722 #define IAMAnalogVideoDecoder_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
11723 #define IAMAnalogVideoDecoder_put_TVFormat(This,lAnalogVideoStandard) (This)->lpVtbl->put_TVFormat(This,lAnalogVideoStandard)
11724 #define IAMAnalogVideoDecoder_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
11725 #define IAMAnalogVideoDecoder_get_HorizontalLocked(This,plLocked) (This)->lpVtbl->get_HorizontalLocked(This,plLocked)
11726 #define IAMAnalogVideoDecoder_put_VCRHorizontalLocking(This,lVCRHorizontalLocking) (This)->lpVtbl->put_VCRHorizontalLocking(This,lVCRHorizontalLocking)
11727 #define IAMAnalogVideoDecoder_get_VCRHorizontalLocking(This,plVCRHorizontalLocking) (This)->lpVtbl->get_VCRHorizontalLocking(This,plVCRHorizontalLocking)
11728 #define IAMAnalogVideoDecoder_get_NumberOfLines(This,plNumberOfLines) (This)->lpVtbl->get_NumberOfLines(This,plNumberOfLines)
11729 #define IAMAnalogVideoDecoder_put_OutputEnable(This,lOutputEnable) (This)->lpVtbl->put_OutputEnable(This,lOutputEnable)
11730 #define IAMAnalogVideoDecoder_get_OutputEnable(This,plOutputEnable) (This)->lpVtbl->get_OutputEnable(This,plOutputEnable)
11731 #endif
11732 #endif
11733   HRESULT WINAPI IAMAnalogVideoDecoder_get_AvailableTVFormats_Proxy(IAMAnalogVideoDecoder *This,LONG *lAnalogVideoStandard);
11734   void __RPC_STUB IAMAnalogVideoDecoder_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11735   HRESULT WINAPI IAMAnalogVideoDecoder_put_TVFormat_Proxy(IAMAnalogVideoDecoder *This,LONG lAnalogVideoStandard);
11736   void __RPC_STUB IAMAnalogVideoDecoder_put_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11737   HRESULT WINAPI IAMAnalogVideoDecoder_get_TVFormat_Proxy(IAMAnalogVideoDecoder *This,LONG *plAnalogVideoStandard);
11738   void __RPC_STUB IAMAnalogVideoDecoder_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11739   HRESULT WINAPI IAMAnalogVideoDecoder_get_HorizontalLocked_Proxy(IAMAnalogVideoDecoder *This,LONG *plLocked);
11740   void __RPC_STUB IAMAnalogVideoDecoder_get_HorizontalLocked_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11741   HRESULT WINAPI IAMAnalogVideoDecoder_put_VCRHorizontalLocking_Proxy(IAMAnalogVideoDecoder *This,LONG lVCRHorizontalLocking);
11742   void __RPC_STUB IAMAnalogVideoDecoder_put_VCRHorizontalLocking_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11743   HRESULT WINAPI IAMAnalogVideoDecoder_get_VCRHorizontalLocking_Proxy(IAMAnalogVideoDecoder *This,LONG *plVCRHorizontalLocking);
11744   void __RPC_STUB IAMAnalogVideoDecoder_get_VCRHorizontalLocking_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11745   HRESULT WINAPI IAMAnalogVideoDecoder_get_NumberOfLines_Proxy(IAMAnalogVideoDecoder *This,LONG *plNumberOfLines);
11746   void __RPC_STUB IAMAnalogVideoDecoder_get_NumberOfLines_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11747   HRESULT WINAPI IAMAnalogVideoDecoder_put_OutputEnable_Proxy(IAMAnalogVideoDecoder *This,LONG lOutputEnable);
11748   void __RPC_STUB IAMAnalogVideoDecoder_put_OutputEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11749   HRESULT WINAPI IAMAnalogVideoDecoder_get_OutputEnable_Proxy(IAMAnalogVideoDecoder *This,LONG *plOutputEnable);
11750   void __RPC_STUB IAMAnalogVideoDecoder_get_OutputEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11751 #endif
11752 
11753   typedef enum tagCameraControlProperty {
11754     CameraControl_Pan = 0,
11755     CameraControl_Tilt,CameraControl_Roll,CameraControl_Zoom,CameraControl_Exposure,
11756     CameraControl_Iris,CameraControl_Focus
11757   } CameraControlProperty;
11758 
11759   typedef enum tagCameraControlFlags {
11760     CameraControl_Flags_Auto = 0x1,CameraControl_Flags_Manual = 0x2
11761   } CameraControlFlags;
11762 
11763   extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_c_ifspec;
11764   extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_s_ifspec;
11765 
11766   typedef enum tagVideoControlFlags {
11767     VideoControlFlag_FlipHorizontal = 0x1,VideoControlFlag_FlipVertical = 0x2,VideoControlFlag_ExternalTriggerEnable = 0x4,VideoControlFlag_Trigger = 0x8
11768   } VideoControlFlags;
11769 
11770   extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_c_ifspec;
11771   extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_s_ifspec;
11772 
11773   typedef enum tagAMTunerSubChannel {
11774     AMTUNER_SUBCHAN_NO_TUNE = -2,AMTUNER_SUBCHAN_DEFAULT = -1
11775   } AMTunerSubChannel;
11776 
11777   typedef enum tagAMTunerSignalStrength {
11778     AMTUNER_HASNOSIGNALSTRENGTH = -1,AMTUNER_NOSIGNAL = 0,AMTUNER_SIGNALPRESENT = 1
11779   } AMTunerSignalStrength;
11780 
11781   extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_c_ifspec;
11782   extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_s_ifspec;
11783 
11784 #ifndef __IBPCSatelliteTuner_INTERFACE_DEFINED__
11785 #define __IBPCSatelliteTuner_INTERFACE_DEFINED__
11786   EXTERN_C const IID IID_IBPCSatelliteTuner;
11787 #if defined(__cplusplus) && !defined(CINTERFACE)
11788   struct IBPCSatelliteTuner : public IAMTuner {
11789   public:
11790     virtual HRESULT WINAPI get_DefaultSubChannelTypes(LONG *plDefaultVideoType,LONG *plDefaultAudioType) = 0;
11791     virtual HRESULT WINAPI put_DefaultSubChannelTypes(LONG lDefaultVideoType,LONG lDefaultAudioType) = 0;
11792     virtual HRESULT WINAPI IsTapingPermitted(void) = 0;
11793   };
11794 #else
11795   typedef struct IBPCSatelliteTunerVtbl {
11796     BEGIN_INTERFACE
11797       HRESULT (WINAPI *QueryInterface)(IBPCSatelliteTuner *This,REFIID riid,void **ppvObject);
11798       ULONG (WINAPI *AddRef)(IBPCSatelliteTuner *This);
11799       ULONG (WINAPI *Release)(IBPCSatelliteTuner *This);
11800       HRESULT (WINAPI *put_Channel)(IBPCSatelliteTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
11801       HRESULT (WINAPI *get_Channel)(IBPCSatelliteTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
11802       HRESULT (WINAPI *ChannelMinMax)(IBPCSatelliteTuner *This,LONG *lChannelMin,LONG *lChannelMax);
11803       HRESULT (WINAPI *put_CountryCode)(IBPCSatelliteTuner *This,LONG lCountryCode);
11804       HRESULT (WINAPI *get_CountryCode)(IBPCSatelliteTuner *This,LONG *plCountryCode);
11805       HRESULT (WINAPI *put_TuningSpace)(IBPCSatelliteTuner *This,LONG lTuningSpace);
11806       HRESULT (WINAPI *get_TuningSpace)(IBPCSatelliteTuner *This,LONG *plTuningSpace);
11807       HRESULT (WINAPI *Logon)(IBPCSatelliteTuner *This,HANDLE hCurrentUser);
11808       HRESULT (WINAPI *Logout)(IBPCSatelliteTuner *This);
11809       HRESULT (WINAPI *SignalPresent)(IBPCSatelliteTuner *This,LONG *plSignalStrength);
11810       HRESULT (WINAPI *put_Mode)(IBPCSatelliteTuner *This,AMTunerModeType lMode);
11811       HRESULT (WINAPI *get_Mode)(IBPCSatelliteTuner *This,AMTunerModeType *plMode);
11812       HRESULT (WINAPI *GetAvailableModes)(IBPCSatelliteTuner *This,LONG *plModes);
11813       HRESULT (WINAPI *RegisterNotificationCallBack)(IBPCSatelliteTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
11814       HRESULT (WINAPI *UnRegisterNotificationCallBack)(IBPCSatelliteTuner *This,IAMTunerNotification *pNotify);
11815       HRESULT (WINAPI *get_DefaultSubChannelTypes)(IBPCSatelliteTuner *This,LONG *plDefaultVideoType,LONG *plDefaultAudioType);
11816       HRESULT (WINAPI *put_DefaultSubChannelTypes)(IBPCSatelliteTuner *This,LONG lDefaultVideoType,LONG lDefaultAudioType);
11817       HRESULT (WINAPI *IsTapingPermitted)(IBPCSatelliteTuner *This);
11818     END_INTERFACE
11819   } IBPCSatelliteTunerVtbl;
11820   struct IBPCSatelliteTuner {
11821     CONST_VTBL struct IBPCSatelliteTunerVtbl *lpVtbl;
11822   };
11823 #ifdef COBJMACROS
11824 #define IBPCSatelliteTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11825 #define IBPCSatelliteTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
11826 #define IBPCSatelliteTuner_Release(This) (This)->lpVtbl->Release(This)
11827 #define IBPCSatelliteTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
11828 #define IBPCSatelliteTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
11829 #define IBPCSatelliteTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
11830 #define IBPCSatelliteTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
11831 #define IBPCSatelliteTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
11832 #define IBPCSatelliteTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
11833 #define IBPCSatelliteTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
11834 #define IBPCSatelliteTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
11835 #define IBPCSatelliteTuner_Logout(This) (This)->lpVtbl->Logout(This)
11836 #define IBPCSatelliteTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
11837 #define IBPCSatelliteTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
11838 #define IBPCSatelliteTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
11839 #define IBPCSatelliteTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
11840 #define IBPCSatelliteTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
11841 #define IBPCSatelliteTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
11842 #define IBPCSatelliteTuner_get_DefaultSubChannelTypes(This,plDefaultVideoType,plDefaultAudioType) (This)->lpVtbl->get_DefaultSubChannelTypes(This,plDefaultVideoType,plDefaultAudioType)
11843 #define IBPCSatelliteTuner_put_DefaultSubChannelTypes(This,lDefaultVideoType,lDefaultAudioType) (This)->lpVtbl->put_DefaultSubChannelTypes(This,lDefaultVideoType,lDefaultAudioType)
11844 #define IBPCSatelliteTuner_IsTapingPermitted(This) (This)->lpVtbl->IsTapingPermitted(This)
11845 #endif
11846 #endif
11847   HRESULT WINAPI IBPCSatelliteTuner_get_DefaultSubChannelTypes_Proxy(IBPCSatelliteTuner *This,LONG *plDefaultVideoType,LONG *plDefaultAudioType);
11848   void __RPC_STUB IBPCSatelliteTuner_get_DefaultSubChannelTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11849   HRESULT WINAPI IBPCSatelliteTuner_put_DefaultSubChannelTypes_Proxy(IBPCSatelliteTuner *This,LONG lDefaultVideoType,LONG lDefaultAudioType);
11850   void __RPC_STUB IBPCSatelliteTuner_put_DefaultSubChannelTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11851   HRESULT WINAPI IBPCSatelliteTuner_IsTapingPermitted_Proxy(IBPCSatelliteTuner *This);
11852   void __RPC_STUB IBPCSatelliteTuner_IsTapingPermitted_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11853 #endif
11854 
11855   typedef enum tagAMTVAudioEventType {
11856     AMTVAUDIO_EVENT_CHANGED = 0x1
11857   } AMTVAudioEventType;
11858 
11859   extern RPC_IF_HANDLE __MIDL_itf_strmif_0182_v0_0_c_ifspec;
11860   extern RPC_IF_HANDLE __MIDL_itf_strmif_0182_v0_0_s_ifspec;
11861 #ifndef __IAMTVAudio_INTERFACE_DEFINED__
11862 #define __IAMTVAudio_INTERFACE_DEFINED__
11863   EXTERN_C const IID IID_IAMTVAudio;
11864 #if defined(__cplusplus) && !defined(CINTERFACE)
11865   struct IAMTVAudio : public IUnknown {
11866   public:
11867     virtual HRESULT WINAPI GetHardwareSupportedTVAudioModes(LONG *plModes) = 0;
11868     virtual HRESULT WINAPI GetAvailableTVAudioModes(LONG *plModes) = 0;
11869     virtual HRESULT WINAPI get_TVAudioMode(LONG *plMode) = 0;
11870     virtual HRESULT WINAPI put_TVAudioMode(LONG lMode) = 0;
11871     virtual HRESULT WINAPI RegisterNotificationCallBack(IAMTunerNotification *pNotify,LONG lEvents) = 0;
11872     virtual HRESULT WINAPI UnRegisterNotificationCallBack(IAMTunerNotification *pNotify) = 0;
11873   };
11874 #else
11875   typedef struct IAMTVAudioVtbl {
11876     BEGIN_INTERFACE
11877       HRESULT (WINAPI *QueryInterface)(IAMTVAudio *This,REFIID riid,void **ppvObject);
11878       ULONG (WINAPI *AddRef)(IAMTVAudio *This);
11879       ULONG (WINAPI *Release)(IAMTVAudio *This);
11880       HRESULT (WINAPI *GetHardwareSupportedTVAudioModes)(IAMTVAudio *This,LONG *plModes);
11881       HRESULT (WINAPI *GetAvailableTVAudioModes)(IAMTVAudio *This,LONG *plModes);
11882       HRESULT (WINAPI *get_TVAudioMode)(IAMTVAudio *This,LONG *plMode);
11883       HRESULT (WINAPI *put_TVAudioMode)(IAMTVAudio *This,LONG lMode);
11884       HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify,LONG lEvents);
11885       HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify);
11886     END_INTERFACE
11887   } IAMTVAudioVtbl;
11888   struct IAMTVAudio {
11889     CONST_VTBL struct IAMTVAudioVtbl *lpVtbl;
11890   };
11891 #ifdef COBJMACROS
11892 #define IAMTVAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11893 #define IAMTVAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
11894 #define IAMTVAudio_Release(This) (This)->lpVtbl->Release(This)
11895 #define IAMTVAudio_GetHardwareSupportedTVAudioModes(This,plModes) (This)->lpVtbl->GetHardwareSupportedTVAudioModes(This,plModes)
11896 #define IAMTVAudio_GetAvailableTVAudioModes(This,plModes) (This)->lpVtbl->GetAvailableTVAudioModes(This,plModes)
11897 #define IAMTVAudio_get_TVAudioMode(This,plMode) (This)->lpVtbl->get_TVAudioMode(This,plMode)
11898 #define IAMTVAudio_put_TVAudioMode(This,lMode) (This)->lpVtbl->put_TVAudioMode(This,lMode)
11899 #define IAMTVAudio_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
11900 #define IAMTVAudio_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
11901 #endif
11902 #endif
11903   HRESULT WINAPI IAMTVAudio_GetHardwareSupportedTVAudioModes_Proxy(IAMTVAudio *This,LONG *plModes);
11904   void __RPC_STUB IAMTVAudio_GetHardwareSupportedTVAudioModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11905   HRESULT WINAPI IAMTVAudio_GetAvailableTVAudioModes_Proxy(IAMTVAudio *This,LONG *plModes);
11906   void __RPC_STUB IAMTVAudio_GetAvailableTVAudioModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11907   HRESULT WINAPI IAMTVAudio_get_TVAudioMode_Proxy(IAMTVAudio *This,LONG *plMode);
11908   void __RPC_STUB IAMTVAudio_get_TVAudioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11909   HRESULT WINAPI IAMTVAudio_put_TVAudioMode_Proxy(IAMTVAudio *This,LONG lMode);
11910   void __RPC_STUB IAMTVAudio_put_TVAudioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11911   HRESULT WINAPI IAMTVAudio_RegisterNotificationCallBack_Proxy(IAMTVAudio *This,IAMTunerNotification *pNotify,LONG lEvents);
11912   void __RPC_STUB IAMTVAudio_RegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11913   HRESULT WINAPI IAMTVAudio_UnRegisterNotificationCallBack_Proxy(IAMTVAudio *This,IAMTunerNotification *pNotify);
11914   void __RPC_STUB IAMTVAudio_UnRegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11915 #endif
11916 
11917 #ifndef __IAMTVAudioNotification_INTERFACE_DEFINED__
11918 #define __IAMTVAudioNotification_INTERFACE_DEFINED__
11919   EXTERN_C const IID IID_IAMTVAudioNotification;
11920 #if defined(__cplusplus) && !defined(CINTERFACE)
11921   struct IAMTVAudioNotification : public IUnknown {
11922   public:
11923     virtual HRESULT WINAPI OnEvent(AMTVAudioEventType Event) = 0;
11924   };
11925 #else
11926   typedef struct IAMTVAudioNotificationVtbl {
11927     BEGIN_INTERFACE
11928       HRESULT (WINAPI *QueryInterface)(IAMTVAudioNotification *This,REFIID riid,void **ppvObject);
11929       ULONG (WINAPI *AddRef)(IAMTVAudioNotification *This);
11930       ULONG (WINAPI *Release)(IAMTVAudioNotification *This);
11931       HRESULT (WINAPI *OnEvent)(IAMTVAudioNotification *This,AMTVAudioEventType Event);
11932     END_INTERFACE
11933   } IAMTVAudioNotificationVtbl;
11934   struct IAMTVAudioNotification {
11935     CONST_VTBL struct IAMTVAudioNotificationVtbl *lpVtbl;
11936   };
11937 #ifdef COBJMACROS
11938 #define IAMTVAudioNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11939 #define IAMTVAudioNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
11940 #define IAMTVAudioNotification_Release(This) (This)->lpVtbl->Release(This)
11941 #define IAMTVAudioNotification_OnEvent(This,Event) (This)->lpVtbl->OnEvent(This,Event)
11942 #endif
11943 #endif
11944   HRESULT WINAPI IAMTVAudioNotification_OnEvent_Proxy(IAMTVAudioNotification *This,AMTVAudioEventType Event);
11945   void __RPC_STUB IAMTVAudioNotification_OnEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11946 #endif
11947 
11948 #ifndef __IAMAnalogVideoEncoder_INTERFACE_DEFINED__
11949 #define __IAMAnalogVideoEncoder_INTERFACE_DEFINED__
11950   EXTERN_C const IID IID_IAMAnalogVideoEncoder;
11951 #if defined(__cplusplus) && !defined(CINTERFACE)
11952   struct IAMAnalogVideoEncoder : public IUnknown {
11953   public:
11954     virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
11955     virtual HRESULT WINAPI put_TVFormat(LONG lAnalogVideoStandard) = 0;
11956     virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
11957     virtual HRESULT WINAPI put_CopyProtection(LONG lVideoCopyProtection) = 0;
11958     virtual HRESULT WINAPI get_CopyProtection(LONG *lVideoCopyProtection) = 0;
11959     virtual HRESULT WINAPI put_CCEnable(LONG lCCEnable) = 0;
11960     virtual HRESULT WINAPI get_CCEnable(LONG *lCCEnable) = 0;
11961   };
11962 #else
11963   typedef struct IAMAnalogVideoEncoderVtbl {
11964     BEGIN_INTERFACE
11965       HRESULT (WINAPI *QueryInterface)(IAMAnalogVideoEncoder *This,REFIID riid,void **ppvObject);
11966       ULONG (WINAPI *AddRef)(IAMAnalogVideoEncoder *This);
11967       ULONG (WINAPI *Release)(IAMAnalogVideoEncoder *This);
11968       HRESULT (WINAPI *get_AvailableTVFormats)(IAMAnalogVideoEncoder *This,LONG *lAnalogVideoStandard);
11969       HRESULT (WINAPI *put_TVFormat)(IAMAnalogVideoEncoder *This,LONG lAnalogVideoStandard);
11970       HRESULT (WINAPI *get_TVFormat)(IAMAnalogVideoEncoder *This,LONG *plAnalogVideoStandard);
11971       HRESULT (WINAPI *put_CopyProtection)(IAMAnalogVideoEncoder *This,LONG lVideoCopyProtection);
11972       HRESULT (WINAPI *get_CopyProtection)(IAMAnalogVideoEncoder *This,LONG *lVideoCopyProtection);
11973       HRESULT (WINAPI *put_CCEnable)(IAMAnalogVideoEncoder *This,LONG lCCEnable);
11974       HRESULT (WINAPI *get_CCEnable)(IAMAnalogVideoEncoder *This,LONG *lCCEnable);
11975     END_INTERFACE
11976   } IAMAnalogVideoEncoderVtbl;
11977   struct IAMAnalogVideoEncoder {
11978     CONST_VTBL struct IAMAnalogVideoEncoderVtbl *lpVtbl;
11979   };
11980 #ifdef COBJMACROS
11981 #define IAMAnalogVideoEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11982 #define IAMAnalogVideoEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
11983 #define IAMAnalogVideoEncoder_Release(This) (This)->lpVtbl->Release(This)
11984 #define IAMAnalogVideoEncoder_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
11985 #define IAMAnalogVideoEncoder_put_TVFormat(This,lAnalogVideoStandard) (This)->lpVtbl->put_TVFormat(This,lAnalogVideoStandard)
11986 #define IAMAnalogVideoEncoder_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
11987 #define IAMAnalogVideoEncoder_put_CopyProtection(This,lVideoCopyProtection) (This)->lpVtbl->put_CopyProtection(This,lVideoCopyProtection)
11988 #define IAMAnalogVideoEncoder_get_CopyProtection(This,lVideoCopyProtection) (This)->lpVtbl->get_CopyProtection(This,lVideoCopyProtection)
11989 #define IAMAnalogVideoEncoder_put_CCEnable(This,lCCEnable) (This)->lpVtbl->put_CCEnable(This,lCCEnable)
11990 #define IAMAnalogVideoEncoder_get_CCEnable(This,lCCEnable) (This)->lpVtbl->get_CCEnable(This,lCCEnable)
11991 #endif
11992 #endif
11993   HRESULT WINAPI IAMAnalogVideoEncoder_get_AvailableTVFormats_Proxy(IAMAnalogVideoEncoder *This,LONG *lAnalogVideoStandard);
11994   void __RPC_STUB IAMAnalogVideoEncoder_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11995   HRESULT WINAPI IAMAnalogVideoEncoder_put_TVFormat_Proxy(IAMAnalogVideoEncoder *This,LONG lAnalogVideoStandard);
11996   void __RPC_STUB IAMAnalogVideoEncoder_put_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11997   HRESULT WINAPI IAMAnalogVideoEncoder_get_TVFormat_Proxy(IAMAnalogVideoEncoder *This,LONG *plAnalogVideoStandard);
11998   void __RPC_STUB IAMAnalogVideoEncoder_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11999   HRESULT WINAPI IAMAnalogVideoEncoder_put_CopyProtection_Proxy(IAMAnalogVideoEncoder *This,LONG lVideoCopyProtection);
12000   void __RPC_STUB IAMAnalogVideoEncoder_put_CopyProtection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12001   HRESULT WINAPI IAMAnalogVideoEncoder_get_CopyProtection_Proxy(IAMAnalogVideoEncoder *This,LONG *lVideoCopyProtection);
12002   void __RPC_STUB IAMAnalogVideoEncoder_get_CopyProtection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12003   HRESULT WINAPI IAMAnalogVideoEncoder_put_CCEnable_Proxy(IAMAnalogVideoEncoder *This,LONG lCCEnable);
12004   void __RPC_STUB IAMAnalogVideoEncoder_put_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12005   HRESULT WINAPI IAMAnalogVideoEncoder_get_CCEnable_Proxy(IAMAnalogVideoEncoder *This,LONG *lCCEnable);
12006   void __RPC_STUB IAMAnalogVideoEncoder_get_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12007 #endif
12008 
12009 #ifndef __IAMPhysicalPinInfo_INTERFACE_DEFINED__
12010 #define __IAMPhysicalPinInfo_INTERFACE_DEFINED__
12011   EXTERN_C const IID IID_IAMPhysicalPinInfo;
12012 #if defined(__cplusplus) && !defined(CINTERFACE)
12013   struct IAMPhysicalPinInfo : public IUnknown {
12014   public:
12015     virtual HRESULT WINAPI GetPhysicalType(LONG *pType,LPOLESTR *ppszType) = 0;
12016   };
12017 #else
12018   typedef struct IAMPhysicalPinInfoVtbl {
12019     BEGIN_INTERFACE
12020       HRESULT (WINAPI *QueryInterface)(IAMPhysicalPinInfo *This,REFIID riid,void **ppvObject);
12021       ULONG (WINAPI *AddRef)(IAMPhysicalPinInfo *This);
12022       ULONG (WINAPI *Release)(IAMPhysicalPinInfo *This);
12023       HRESULT (WINAPI *GetPhysicalType)(IAMPhysicalPinInfo *This,LONG *pType,LPOLESTR *ppszType);
12024     END_INTERFACE
12025   } IAMPhysicalPinInfoVtbl;
12026   struct IAMPhysicalPinInfo {
12027     CONST_VTBL struct IAMPhysicalPinInfoVtbl *lpVtbl;
12028   };
12029 #ifdef COBJMACROS
12030 #define IAMPhysicalPinInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12031 #define IAMPhysicalPinInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
12032 #define IAMPhysicalPinInfo_Release(This) (This)->lpVtbl->Release(This)
12033 #define IAMPhysicalPinInfo_GetPhysicalType(This,pType,ppszType) (This)->lpVtbl->GetPhysicalType(This,pType,ppszType)
12034 #endif
12035 #endif
12036   HRESULT WINAPI IAMPhysicalPinInfo_GetPhysicalType_Proxy(IAMPhysicalPinInfo *This,LONG *pType,LPOLESTR *ppszType);
12037   void __RPC_STUB IAMPhysicalPinInfo_GetPhysicalType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12038 #endif
12039 
12040   typedef IAMPhysicalPinInfo *PAMPHYSICALPININFO;
12041 
12042   extern RPC_IF_HANDLE __MIDL_itf_strmif_0338_v0_0_c_ifspec;
12043   extern RPC_IF_HANDLE __MIDL_itf_strmif_0338_v0_0_s_ifspec;
12044 #ifndef __IAMExtDevice_INTERFACE_DEFINED__
12045 #define __IAMExtDevice_INTERFACE_DEFINED__
12046   EXTERN_C const IID IID_IAMExtDevice;
12047 #if defined(__cplusplus) && !defined(CINTERFACE)
12048   struct IAMExtDevice : public IUnknown {
12049   public:
12050     virtual HRESULT WINAPI GetCapability(LONG Capability,LONG *pValue,double *pdblValue) = 0;
12051     virtual HRESULT WINAPI get_ExternalDeviceID(LPOLESTR *ppszData) = 0;
12052     virtual HRESULT WINAPI get_ExternalDeviceVersion(LPOLESTR *ppszData) = 0;
12053     virtual HRESULT WINAPI put_DevicePower(LONG PowerMode) = 0;
12054     virtual HRESULT WINAPI get_DevicePower(LONG *pPowerMode) = 0;
12055     virtual HRESULT WINAPI Calibrate(HEVENT hEvent,LONG Mode,LONG *pStatus) = 0;
12056     virtual HRESULT WINAPI put_DevicePort(LONG DevicePort) = 0;
12057     virtual HRESULT WINAPI get_DevicePort(LONG *pDevicePort) = 0;
12058   };
12059 #else
12060   typedef struct IAMExtDeviceVtbl {
12061     BEGIN_INTERFACE
12062       HRESULT (WINAPI *QueryInterface)(IAMExtDevice *This,REFIID riid,void **ppvObject);
12063       ULONG (WINAPI *AddRef)(IAMExtDevice *This);
12064       ULONG (WINAPI *Release)(IAMExtDevice *This);
12065       HRESULT (WINAPI *GetCapability)(IAMExtDevice *This,LONG Capability,LONG *pValue,double *pdblValue);
12066       HRESULT (WINAPI *get_ExternalDeviceID)(IAMExtDevice *This,LPOLESTR *ppszData);
12067       HRESULT (WINAPI *get_ExternalDeviceVersion)(IAMExtDevice *This,LPOLESTR *ppszData);
12068       HRESULT (WINAPI *put_DevicePower)(IAMExtDevice *This,LONG PowerMode);
12069       HRESULT (WINAPI *get_DevicePower)(IAMExtDevice *This,LONG *pPowerMode);
12070       HRESULT (WINAPI *Calibrate)(IAMExtDevice *This,HEVENT hEvent,LONG Mode,LONG *pStatus);
12071       HRESULT (WINAPI *put_DevicePort)(IAMExtDevice *This,LONG DevicePort);
12072       HRESULT (WINAPI *get_DevicePort)(IAMExtDevice *This,LONG *pDevicePort);
12073     END_INTERFACE
12074   } IAMExtDeviceVtbl;
12075   struct IAMExtDevice {
12076     CONST_VTBL struct IAMExtDeviceVtbl *lpVtbl;
12077   };
12078 #ifdef COBJMACROS
12079 #define IAMExtDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12080 #define IAMExtDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
12081 #define IAMExtDevice_Release(This) (This)->lpVtbl->Release(This)
12082 #define IAMExtDevice_GetCapability(This,Capability,pValue,pdblValue) (This)->lpVtbl->GetCapability(This,Capability,pValue,pdblValue)
12083 #define IAMExtDevice_get_ExternalDeviceID(This,ppszData) (This)->lpVtbl->get_ExternalDeviceID(This,ppszData)
12084 #define IAMExtDevice_get_ExternalDeviceVersion(This,ppszData) (This)->lpVtbl->get_ExternalDeviceVersion(This,ppszData)
12085 #define IAMExtDevice_put_DevicePower(This,PowerMode) (This)->lpVtbl->put_DevicePower(This,PowerMode)
12086 #define IAMExtDevice_get_DevicePower(This,pPowerMode) (This)->lpVtbl->get_DevicePower(This,pPowerMode)
12087 #define IAMExtDevice_Calibrate(This,hEvent,Mode,pStatus) (This)->lpVtbl->Calibrate(This,hEvent,Mode,pStatus)
12088 #define IAMExtDevice_put_DevicePort(This,DevicePort) (This)->lpVtbl->put_DevicePort(This,DevicePort)
12089 #define IAMExtDevice_get_DevicePort(This,pDevicePort) (This)->lpVtbl->get_DevicePort(This,pDevicePort)
12090 #endif
12091 #endif
12092   HRESULT WINAPI IAMExtDevice_GetCapability_Proxy(IAMExtDevice *This,LONG Capability,LONG *pValue,double *pdblValue);
12093   void __RPC_STUB IAMExtDevice_GetCapability_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12094   HRESULT WINAPI IAMExtDevice_get_ExternalDeviceID_Proxy(IAMExtDevice *This,LPOLESTR *ppszData);
12095   void __RPC_STUB IAMExtDevice_get_ExternalDeviceID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12096   HRESULT WINAPI IAMExtDevice_get_ExternalDeviceVersion_Proxy(IAMExtDevice *This,LPOLESTR *ppszData);
12097   void __RPC_STUB IAMExtDevice_get_ExternalDeviceVersion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12098   HRESULT WINAPI IAMExtDevice_put_DevicePower_Proxy(IAMExtDevice *This,LONG PowerMode);
12099   void __RPC_STUB IAMExtDevice_put_DevicePower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12100   HRESULT WINAPI IAMExtDevice_get_DevicePower_Proxy(IAMExtDevice *This,LONG *pPowerMode);
12101   void __RPC_STUB IAMExtDevice_get_DevicePower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12102   HRESULT WINAPI IAMExtDevice_Calibrate_Proxy(IAMExtDevice *This,HEVENT hEvent,LONG Mode,LONG *pStatus);
12103   void __RPC_STUB IAMExtDevice_Calibrate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12104   HRESULT WINAPI IAMExtDevice_put_DevicePort_Proxy(IAMExtDevice *This,LONG DevicePort);
12105   void __RPC_STUB IAMExtDevice_put_DevicePort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12106   HRESULT WINAPI IAMExtDevice_get_DevicePort_Proxy(IAMExtDevice *This,LONG *pDevicePort);
12107   void __RPC_STUB IAMExtDevice_get_DevicePort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12108 #endif
12109 
12110   typedef IAMExtDevice *PEXTDEVICE;
12111 
12112   extern RPC_IF_HANDLE __MIDL_itf_strmif_0339_v0_0_c_ifspec;
12113   extern RPC_IF_HANDLE __MIDL_itf_strmif_0339_v0_0_s_ifspec;
12114 #ifndef __IAMExtTransport_INTERFACE_DEFINED__
12115 #define __IAMExtTransport_INTERFACE_DEFINED__
12116   EXTERN_C const IID IID_IAMExtTransport;
12117 #if defined(__cplusplus) && !defined(CINTERFACE)
12118   struct IAMExtTransport : public IUnknown {
12119   public:
12120     virtual HRESULT WINAPI GetCapability(LONG Capability,LONG *pValue,double *pdblValue) = 0;
12121     virtual HRESULT WINAPI put_MediaState(LONG State) = 0;
12122     virtual HRESULT WINAPI get_MediaState(LONG *pState) = 0;
12123     virtual HRESULT WINAPI put_LocalControl(LONG State) = 0;
12124     virtual HRESULT WINAPI get_LocalControl(LONG *pState) = 0;
12125     virtual HRESULT WINAPI GetStatus(LONG StatusItem,LONG *pValue) = 0;
12126     virtual HRESULT WINAPI GetTransportBasicParameters(LONG Param,LONG *pValue,LPOLESTR *ppszData) = 0;
12127     virtual HRESULT WINAPI SetTransportBasicParameters(LONG Param,LONG Value,LPCOLESTR pszData) = 0;
12128     virtual HRESULT WINAPI GetTransportVideoParameters(LONG Param,LONG *pValue) = 0;
12129     virtual HRESULT WINAPI SetTransportVideoParameters(LONG Param,LONG Value) = 0;
12130     virtual HRESULT WINAPI GetTransportAudioParameters(LONG Param,LONG *pValue) = 0;
12131     virtual HRESULT WINAPI SetTransportAudioParameters(LONG Param,LONG Value) = 0;
12132     virtual HRESULT WINAPI put_Mode(LONG Mode) = 0;
12133     virtual HRESULT WINAPI get_Mode(LONG *pMode) = 0;
12134     virtual HRESULT WINAPI put_Rate(double dblRate) = 0;
12135     virtual HRESULT WINAPI get_Rate(double *pdblRate) = 0;
12136     virtual HRESULT WINAPI GetChase(LONG *pEnabled,LONG *pOffset,HEVENT *phEvent) = 0;
12137     virtual HRESULT WINAPI SetChase(LONG Enable,LONG Offset,HEVENT hEvent) = 0;
12138     virtual HRESULT WINAPI GetBump(LONG *pSpeed,LONG *pDuration) = 0;
12139     virtual HRESULT WINAPI SetBump(LONG Speed,LONG Duration) = 0;
12140     virtual HRESULT WINAPI get_AntiClogControl(LONG *pEnabled) = 0;
12141     virtual HRESULT WINAPI put_AntiClogControl(LONG Enable) = 0;
12142     virtual HRESULT WINAPI GetEditPropertySet(LONG EditID,LONG *pState) = 0;
12143     virtual HRESULT WINAPI SetEditPropertySet(LONG *pEditID,LONG State) = 0;
12144     virtual HRESULT WINAPI GetEditProperty(LONG EditID,LONG Param,LONG *pValue) = 0;
12145     virtual HRESULT WINAPI SetEditProperty(LONG EditID,LONG Param,LONG Value) = 0;
12146     virtual HRESULT WINAPI get_EditStart(LONG *pValue) = 0;
12147     virtual HRESULT WINAPI put_EditStart(LONG Value) = 0;
12148   };
12149 #else
12150   typedef struct IAMExtTransportVtbl {
12151     BEGIN_INTERFACE
12152       HRESULT (WINAPI *QueryInterface)(IAMExtTransport *This,REFIID riid,void **ppvObject);
12153       ULONG (WINAPI *AddRef)(IAMExtTransport *This);
12154       ULONG (WINAPI *Release)(IAMExtTransport *This);
12155       HRESULT (WINAPI *GetCapability)(IAMExtTransport *This,LONG Capability,LONG *pValue,double *pdblValue);
12156       HRESULT (WINAPI *put_MediaState)(IAMExtTransport *This,LONG State);
12157       HRESULT (WINAPI *get_MediaState)(IAMExtTransport *This,LONG *pState);
12158       HRESULT (WINAPI *put_LocalControl)(IAMExtTransport *This,LONG State);
12159       HRESULT (WINAPI *get_LocalControl)(IAMExtTransport *This,LONG *pState);
12160       HRESULT (WINAPI *GetStatus)(IAMExtTransport *This,LONG StatusItem,LONG *pValue);
12161       HRESULT (WINAPI *GetTransportBasicParameters)(IAMExtTransport *This,LONG Param,LONG *pValue,LPOLESTR *ppszData);
12162       HRESULT (WINAPI *SetTransportBasicParameters)(IAMExtTransport *This,LONG Param,LONG Value,LPCOLESTR pszData);
12163       HRESULT (WINAPI *GetTransportVideoParameters)(IAMExtTransport *This,LONG Param,LONG *pValue);
12164       HRESULT (WINAPI *SetTransportVideoParameters)(IAMExtTransport *This,LONG Param,LONG Value);
12165       HRESULT (WINAPI *GetTransportAudioParameters)(IAMExtTransport *This,LONG Param,LONG *pValue);
12166       HRESULT (WINAPI *SetTransportAudioParameters)(IAMExtTransport *This,LONG Param,LONG Value);
12167       HRESULT (WINAPI *put_Mode)(IAMExtTransport *This,LONG Mode);
12168       HRESULT (WINAPI *get_Mode)(IAMExtTransport *This,LONG *pMode);
12169       HRESULT (WINAPI *put_Rate)(IAMExtTransport *This,double dblRate);
12170       HRESULT (WINAPI *get_Rate)(IAMExtTransport *This,double *pdblRate);
12171       HRESULT (WINAPI *GetChase)(IAMExtTransport *This,LONG *pEnabled,LONG *pOffset,HEVENT *phEvent);
12172       HRESULT (WINAPI *SetChase)(IAMExtTransport *This,LONG Enable,LONG Offset,HEVENT hEvent);
12173       HRESULT (WINAPI *GetBump)(IAMExtTransport *This,LONG *pSpeed,LONG *pDuration);
12174       HRESULT (WINAPI *SetBump)(IAMExtTransport *This,LONG Speed,LONG Duration);
12175       HRESULT (WINAPI *get_AntiClogControl)(IAMExtTransport *This,LONG *pEnabled);
12176       HRESULT (WINAPI *put_AntiClogControl)(IAMExtTransport *This,LONG Enable);
12177       HRESULT (WINAPI *GetEditPropertySet)(IAMExtTransport *This,LONG EditID,LONG *pState);
12178       HRESULT (WINAPI *SetEditPropertySet)(IAMExtTransport *This,LONG *pEditID,LONG State);
12179       HRESULT (WINAPI *GetEditProperty)(IAMExtTransport *This,LONG EditID,LONG Param,LONG *pValue);
12180       HRESULT (WINAPI *SetEditProperty)(IAMExtTransport *This,LONG EditID,LONG Param,LONG Value);
12181       HRESULT (WINAPI *get_EditStart)(IAMExtTransport *This,LONG *pValue);
12182       HRESULT (WINAPI *put_EditStart)(IAMExtTransport *This,LONG Value);
12183     END_INTERFACE
12184   } IAMExtTransportVtbl;
12185   struct IAMExtTransport {
12186     CONST_VTBL struct IAMExtTransportVtbl *lpVtbl;
12187   };
12188 #ifdef COBJMACROS
12189 #define IAMExtTransport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12190 #define IAMExtTransport_AddRef(This) (This)->lpVtbl->AddRef(This)
12191 #define IAMExtTransport_Release(This) (This)->lpVtbl->Release(This)
12192 #define IAMExtTransport_GetCapability(This,Capability,pValue,pdblValue) (This)->lpVtbl->GetCapability(This,Capability,pValue,pdblValue)
12193 #define IAMExtTransport_put_MediaState(This,State) (This)->lpVtbl->put_MediaState(This,State)
12194 #define IAMExtTransport_get_MediaState(This,pState) (This)->lpVtbl->get_MediaState(This,pState)
12195 #define IAMExtTransport_put_LocalControl(This,State) (This)->lpVtbl->put_LocalControl(This,State)
12196 #define IAMExtTransport_get_LocalControl(This,pState) (This)->lpVtbl->get_LocalControl(This,pState)
12197 #define IAMExtTransport_GetStatus(This,StatusItem,pValue) (This)->lpVtbl->GetStatus(This,StatusItem,pValue)
12198 #define IAMExtTransport_GetTransportBasicParameters(This,Param,pValue,ppszData) (This)->lpVtbl->GetTransportBasicParameters(This,Param,pValue,ppszData)
12199 #define IAMExtTransport_SetTransportBasicParameters(This,Param,Value,pszData) (This)->lpVtbl->SetTransportBasicParameters(This,Param,Value,pszData)
12200 #define IAMExtTransport_GetTransportVideoParameters(This,Param,pValue) (This)->lpVtbl->GetTransportVideoParameters(This,Param,pValue)
12201 #define IAMExtTransport_SetTransportVideoParameters(This,Param,Value) (This)->lpVtbl->SetTransportVideoParameters(This,Param,Value)
12202 #define IAMExtTransport_GetTransportAudioParameters(This,Param,pValue) (This)->lpVtbl->GetTransportAudioParameters(This,Param,pValue)
12203 #define IAMExtTransport_SetTransportAudioParameters(This,Param,Value) (This)->lpVtbl->SetTransportAudioParameters(This,Param,Value)
12204 #define IAMExtTransport_put_Mode(This,Mode) (This)->lpVtbl->put_Mode(This,Mode)
12205 #define IAMExtTransport_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
12206 #define IAMExtTransport_put_Rate(This,dblRate) (This)->lpVtbl->put_Rate(This,dblRate)
12207 #define IAMExtTransport_get_Rate(This,pdblRate) (This)->lpVtbl->get_Rate(This,pdblRate)
12208 #define IAMExtTransport_GetChase(This,pEnabled,pOffset,phEvent) (This)->lpVtbl->GetChase(This,pEnabled,pOffset,phEvent)
12209 #define IAMExtTransport_SetChase(This,Enable,Offset,hEvent) (This)->lpVtbl->SetChase(This,Enable,Offset,hEvent)
12210 #define IAMExtTransport_GetBump(This,pSpeed,pDuration) (This)->lpVtbl->GetBump(This,pSpeed,pDuration)
12211 #define IAMExtTransport_SetBump(This,Speed,Duration) (This)->lpVtbl->SetBump(This,Speed,Duration)
12212 #define IAMExtTransport_get_AntiClogControl(This,pEnabled) (This)->lpVtbl->get_AntiClogControl(This,pEnabled)
12213 #define IAMExtTransport_put_AntiClogControl(This,Enable) (This)->lpVtbl->put_AntiClogControl(This,Enable)
12214 #define IAMExtTransport_GetEditPropertySet(This,EditID,pState) (This)->lpVtbl->GetEditPropertySet(This,EditID,pState)
12215 #define IAMExtTransport_SetEditPropertySet(This,pEditID,State) (This)->lpVtbl->SetEditPropertySet(This,pEditID,State)
12216 #define IAMExtTransport_GetEditProperty(This,EditID,Param,pValue) (This)->lpVtbl->GetEditProperty(This,EditID,Param,pValue)
12217 #define IAMExtTransport_SetEditProperty(This,EditID,Param,Value) (This)->lpVtbl->SetEditProperty(This,EditID,Param,Value)
12218 #define IAMExtTransport_get_EditStart(This,pValue) (This)->lpVtbl->get_EditStart(This,pValue)
12219 #define IAMExtTransport_put_EditStart(This,Value) (This)->lpVtbl->put_EditStart(This,Value)
12220 #endif
12221 #endif
12222   HRESULT WINAPI IAMExtTransport_GetCapability_Proxy(IAMExtTransport *This,LONG Capability,LONG *pValue,double *pdblValue);
12223   void __RPC_STUB IAMExtTransport_GetCapability_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12224   HRESULT WINAPI IAMExtTransport_put_MediaState_Proxy(IAMExtTransport *This,LONG State);
12225   void __RPC_STUB IAMExtTransport_put_MediaState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12226   HRESULT WINAPI IAMExtTransport_get_MediaState_Proxy(IAMExtTransport *This,LONG *pState);
12227   void __RPC_STUB IAMExtTransport_get_MediaState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12228   HRESULT WINAPI IAMExtTransport_put_LocalControl_Proxy(IAMExtTransport *This,LONG State);
12229   void __RPC_STUB IAMExtTransport_put_LocalControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12230   HRESULT WINAPI IAMExtTransport_get_LocalControl_Proxy(IAMExtTransport *This,LONG *pState);
12231   void __RPC_STUB IAMExtTransport_get_LocalControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12232   HRESULT WINAPI IAMExtTransport_GetStatus_Proxy(IAMExtTransport *This,LONG StatusItem,LONG *pValue);
12233   void __RPC_STUB IAMExtTransport_GetStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12234   HRESULT WINAPI IAMExtTransport_GetTransportBasicParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue,LPOLESTR *ppszData);
12235   void __RPC_STUB IAMExtTransport_GetTransportBasicParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12236   HRESULT WINAPI IAMExtTransport_SetTransportBasicParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value,LPCOLESTR pszData);
12237   void __RPC_STUB IAMExtTransport_SetTransportBasicParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12238   HRESULT WINAPI IAMExtTransport_GetTransportVideoParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue);
12239   void __RPC_STUB IAMExtTransport_GetTransportVideoParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12240   HRESULT WINAPI IAMExtTransport_SetTransportVideoParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value);
12241   void __RPC_STUB IAMExtTransport_SetTransportVideoParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12242   HRESULT WINAPI IAMExtTransport_GetTransportAudioParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue);
12243   void __RPC_STUB IAMExtTransport_GetTransportAudioParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12244   HRESULT WINAPI IAMExtTransport_SetTransportAudioParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value);
12245   void __RPC_STUB IAMExtTransport_SetTransportAudioParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12246   HRESULT WINAPI IAMExtTransport_put_Mode_Proxy(IAMExtTransport *This,LONG Mode);
12247   void __RPC_STUB IAMExtTransport_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12248   HRESULT WINAPI IAMExtTransport_get_Mode_Proxy(IAMExtTransport *This,LONG *pMode);
12249   void __RPC_STUB IAMExtTransport_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12250   HRESULT WINAPI IAMExtTransport_put_Rate_Proxy(IAMExtTransport *This,double dblRate);
12251   void __RPC_STUB IAMExtTransport_put_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12252   HRESULT WINAPI IAMExtTransport_get_Rate_Proxy(IAMExtTransport *This,double *pdblRate);
12253   void __RPC_STUB IAMExtTransport_get_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12254   HRESULT WINAPI IAMExtTransport_GetChase_Proxy(IAMExtTransport *This,LONG *pEnabled,LONG *pOffset,HEVENT *phEvent);
12255   void __RPC_STUB IAMExtTransport_GetChase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12256   HRESULT WINAPI IAMExtTransport_SetChase_Proxy(IAMExtTransport *This,LONG Enable,LONG Offset,HEVENT hEvent);
12257   void __RPC_STUB IAMExtTransport_SetChase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12258   HRESULT WINAPI IAMExtTransport_GetBump_Proxy(IAMExtTransport *This,LONG *pSpeed,LONG *pDuration);
12259   void __RPC_STUB IAMExtTransport_GetBump_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12260   HRESULT WINAPI IAMExtTransport_SetBump_Proxy(IAMExtTransport *This,LONG Speed,LONG Duration);
12261   void __RPC_STUB IAMExtTransport_SetBump_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12262   HRESULT WINAPI IAMExtTransport_get_AntiClogControl_Proxy(IAMExtTransport *This,LONG *pEnabled);
12263   void __RPC_STUB IAMExtTransport_get_AntiClogControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12264   HRESULT WINAPI IAMExtTransport_put_AntiClogControl_Proxy(IAMExtTransport *This,LONG Enable);
12265   void __RPC_STUB IAMExtTransport_put_AntiClogControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12266   HRESULT WINAPI IAMExtTransport_GetEditPropertySet_Proxy(IAMExtTransport *This,LONG EditID,LONG *pState);
12267   void __RPC_STUB IAMExtTransport_GetEditPropertySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12268   HRESULT WINAPI IAMExtTransport_SetEditPropertySet_Proxy(IAMExtTransport *This,LONG *pEditID,LONG State);
12269   void __RPC_STUB IAMExtTransport_SetEditPropertySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12270   HRESULT WINAPI IAMExtTransport_GetEditProperty_Proxy(IAMExtTransport *This,LONG EditID,LONG Param,LONG *pValue);
12271   void __RPC_STUB IAMExtTransport_GetEditProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12272   HRESULT WINAPI IAMExtTransport_SetEditProperty_Proxy(IAMExtTransport *This,LONG EditID,LONG Param,LONG Value);
12273   void __RPC_STUB IAMExtTransport_SetEditProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12274   HRESULT WINAPI IAMExtTransport_get_EditStart_Proxy(IAMExtTransport *This,LONG *pValue);
12275   void __RPC_STUB IAMExtTransport_get_EditStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12276   HRESULT WINAPI IAMExtTransport_put_EditStart_Proxy(IAMExtTransport *This,LONG Value);
12277   void __RPC_STUB IAMExtTransport_put_EditStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12278 #endif
12279 
12280   typedef IAMExtTransport *PIAMEXTTRANSPORT;
12281 
12282 #ifndef TIMECODE_DEFINED
12283 #define TIMECODE_DEFINED
12284   typedef union _timecode {
12285     __C89_NAMELESS struct {
12286       WORD wFrameRate;
12287       WORD wFrameFract;
12288       DWORD dwFrames;
12289     };
12290     DWORDLONG qw;
12291   } TIMECODE;
12292 #endif
12293 
12294   typedef TIMECODE *PTIMECODE;
12295 
12296   typedef struct tagTIMECODE_SAMPLE {
12297     LONGLONG qwTick;
12298     TIMECODE timecode;
12299     DWORD dwUser;
12300     DWORD dwFlags;
12301   } TIMECODE_SAMPLE;
12302 
12303   typedef TIMECODE_SAMPLE *PTIMECODE_SAMPLE;
12304 
12305   extern RPC_IF_HANDLE __MIDL_itf_strmif_0340_v0_0_c_ifspec;
12306   extern RPC_IF_HANDLE __MIDL_itf_strmif_0340_v0_0_s_ifspec;
12307 #ifndef __IAMTimecodeReader_INTERFACE_DEFINED__
12308 #define __IAMTimecodeReader_INTERFACE_DEFINED__
12309   EXTERN_C const IID IID_IAMTimecodeReader;
12310 #if defined(__cplusplus) && !defined(CINTERFACE)
12311   struct IAMTimecodeReader : public IUnknown {
12312   public:
12313     virtual HRESULT WINAPI GetTCRMode(LONG Param,LONG *pValue) = 0;
12314     virtual HRESULT WINAPI SetTCRMode(LONG Param,LONG Value) = 0;
12315     virtual HRESULT WINAPI put_VITCLine(LONG Line) = 0;
12316     virtual HRESULT WINAPI get_VITCLine(LONG *pLine) = 0;
12317     virtual HRESULT WINAPI GetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
12318   };
12319 #else
12320   typedef struct IAMTimecodeReaderVtbl {
12321     BEGIN_INTERFACE
12322       HRESULT (WINAPI *QueryInterface)(IAMTimecodeReader *This,REFIID riid,void **ppvObject);
12323       ULONG (WINAPI *AddRef)(IAMTimecodeReader *This);
12324       ULONG (WINAPI *Release)(IAMTimecodeReader *This);
12325       HRESULT (WINAPI *GetTCRMode)(IAMTimecodeReader *This,LONG Param,LONG *pValue);
12326       HRESULT (WINAPI *SetTCRMode)(IAMTimecodeReader *This,LONG Param,LONG Value);
12327       HRESULT (WINAPI *put_VITCLine)(IAMTimecodeReader *This,LONG Line);
12328       HRESULT (WINAPI *get_VITCLine)(IAMTimecodeReader *This,LONG *pLine);
12329       HRESULT (WINAPI *GetTimecode)(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
12330     END_INTERFACE
12331   } IAMTimecodeReaderVtbl;
12332   struct IAMTimecodeReader {
12333     CONST_VTBL struct IAMTimecodeReaderVtbl *lpVtbl;
12334   };
12335 #ifdef COBJMACROS
12336 #define IAMTimecodeReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12337 #define IAMTimecodeReader_AddRef(This) (This)->lpVtbl->AddRef(This)
12338 #define IAMTimecodeReader_Release(This) (This)->lpVtbl->Release(This)
12339 #define IAMTimecodeReader_GetTCRMode(This,Param,pValue) (This)->lpVtbl->GetTCRMode(This,Param,pValue)
12340 #define IAMTimecodeReader_SetTCRMode(This,Param,Value) (This)->lpVtbl->SetTCRMode(This,Param,Value)
12341 #define IAMTimecodeReader_put_VITCLine(This,Line) (This)->lpVtbl->put_VITCLine(This,Line)
12342 #define IAMTimecodeReader_get_VITCLine(This,pLine) (This)->lpVtbl->get_VITCLine(This,pLine)
12343 #define IAMTimecodeReader_GetTimecode(This,pTimecodeSample) (This)->lpVtbl->GetTimecode(This,pTimecodeSample)
12344 #endif
12345 #endif
12346   HRESULT WINAPI IAMTimecodeReader_GetTCRMode_Proxy(IAMTimecodeReader *This,LONG Param,LONG *pValue);
12347   void __RPC_STUB IAMTimecodeReader_GetTCRMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12348   HRESULT WINAPI IAMTimecodeReader_SetTCRMode_Proxy(IAMTimecodeReader *This,LONG Param,LONG Value);
12349   void __RPC_STUB IAMTimecodeReader_SetTCRMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12350   HRESULT WINAPI IAMTimecodeReader_put_VITCLine_Proxy(IAMTimecodeReader *This,LONG Line);
12351   void __RPC_STUB IAMTimecodeReader_put_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12352   HRESULT WINAPI IAMTimecodeReader_get_VITCLine_Proxy(IAMTimecodeReader *This,LONG *pLine);
12353   void __RPC_STUB IAMTimecodeReader_get_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12354   HRESULT WINAPI IAMTimecodeReader_GetTimecode_Proxy(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
12355   void __RPC_STUB IAMTimecodeReader_GetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12356 #endif
12357 
12358   typedef IAMTimecodeReader *PIAMTIMECODEREADER;
12359 
12360   extern RPC_IF_HANDLE __MIDL_itf_strmif_0341_v0_0_c_ifspec;
12361   extern RPC_IF_HANDLE __MIDL_itf_strmif_0341_v0_0_s_ifspec;
12362 #ifndef __IAMTimecodeGenerator_INTERFACE_DEFINED__
12363 #define __IAMTimecodeGenerator_INTERFACE_DEFINED__
12364   EXTERN_C const IID IID_IAMTimecodeGenerator;
12365 #if defined(__cplusplus) && !defined(CINTERFACE)
12366   struct IAMTimecodeGenerator : public IUnknown {
12367   public:
12368     virtual HRESULT WINAPI GetTCGMode(LONG Param,LONG *pValue) = 0;
12369     virtual HRESULT WINAPI SetTCGMode(LONG Param,LONG Value) = 0;
12370     virtual HRESULT WINAPI put_VITCLine(LONG Line) = 0;
12371     virtual HRESULT WINAPI get_VITCLine(LONG *pLine) = 0;
12372     virtual HRESULT WINAPI SetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
12373     virtual HRESULT WINAPI GetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
12374   };
12375 #else
12376   typedef struct IAMTimecodeGeneratorVtbl {
12377     BEGIN_INTERFACE
12378       HRESULT (WINAPI *QueryInterface)(IAMTimecodeGenerator *This,REFIID riid,void **ppvObject);
12379       ULONG (WINAPI *AddRef)(IAMTimecodeGenerator *This);
12380       ULONG (WINAPI *Release)(IAMTimecodeGenerator *This);
12381       HRESULT (WINAPI *GetTCGMode)(IAMTimecodeGenerator *This,LONG Param,LONG *pValue);
12382       HRESULT (WINAPI *SetTCGMode)(IAMTimecodeGenerator *This,LONG Param,LONG Value);
12383       HRESULT (WINAPI *put_VITCLine)(IAMTimecodeGenerator *This,LONG Line);
12384       HRESULT (WINAPI *get_VITCLine)(IAMTimecodeGenerator *This,LONG *pLine);
12385       HRESULT (WINAPI *SetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
12386       HRESULT (WINAPI *GetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
12387     END_INTERFACE
12388   } IAMTimecodeGeneratorVtbl;
12389   struct IAMTimecodeGenerator {
12390     CONST_VTBL struct IAMTimecodeGeneratorVtbl *lpVtbl;
12391   };
12392 #ifdef COBJMACROS
12393 #define IAMTimecodeGenerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12394 #define IAMTimecodeGenerator_AddRef(This) (This)->lpVtbl->AddRef(This)
12395 #define IAMTimecodeGenerator_Release(This) (This)->lpVtbl->Release(This)
12396 #define IAMTimecodeGenerator_GetTCGMode(This,Param,pValue) (This)->lpVtbl->GetTCGMode(This,Param,pValue)
12397 #define IAMTimecodeGenerator_SetTCGMode(This,Param,Value) (This)->lpVtbl->SetTCGMode(This,Param,Value)
12398 #define IAMTimecodeGenerator_put_VITCLine(This,Line) (This)->lpVtbl->put_VITCLine(This,Line)
12399 #define IAMTimecodeGenerator_get_VITCLine(This,pLine) (This)->lpVtbl->get_VITCLine(This,pLine)
12400 #define IAMTimecodeGenerator_SetTimecode(This,pTimecodeSample) (This)->lpVtbl->SetTimecode(This,pTimecodeSample)
12401 #define IAMTimecodeGenerator_GetTimecode(This,pTimecodeSample) (This)->lpVtbl->GetTimecode(This,pTimecodeSample)
12402 #endif
12403 #endif
12404   HRESULT WINAPI IAMTimecodeGenerator_GetTCGMode_Proxy(IAMTimecodeGenerator *This,LONG Param,LONG *pValue);
12405   void __RPC_STUB IAMTimecodeGenerator_GetTCGMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12406   HRESULT WINAPI IAMTimecodeGenerator_SetTCGMode_Proxy(IAMTimecodeGenerator *This,LONG Param,LONG Value);
12407   void __RPC_STUB IAMTimecodeGenerator_SetTCGMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12408   HRESULT WINAPI IAMTimecodeGenerator_put_VITCLine_Proxy(IAMTimecodeGenerator *This,LONG Line);
12409   void __RPC_STUB IAMTimecodeGenerator_put_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12410   HRESULT WINAPI IAMTimecodeGenerator_get_VITCLine_Proxy(IAMTimecodeGenerator *This,LONG *pLine);
12411   void __RPC_STUB IAMTimecodeGenerator_get_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12412   HRESULT WINAPI IAMTimecodeGenerator_SetTimecode_Proxy(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
12413   void __RPC_STUB IAMTimecodeGenerator_SetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12414   HRESULT WINAPI IAMTimecodeGenerator_GetTimecode_Proxy(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
12415   void __RPC_STUB IAMTimecodeGenerator_GetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12416 #endif
12417 
12418   typedef IAMTimecodeGenerator *PIAMTIMECODEGENERATOR;
12419 
12420   extern RPC_IF_HANDLE __MIDL_itf_strmif_0342_v0_0_c_ifspec;
12421   extern RPC_IF_HANDLE __MIDL_itf_strmif_0342_v0_0_s_ifspec;
12422 #ifndef __IAMTimecodeDisplay_INTERFACE_DEFINED__
12423 #define __IAMTimecodeDisplay_INTERFACE_DEFINED__
12424   EXTERN_C const IID IID_IAMTimecodeDisplay;
12425 #if defined(__cplusplus) && !defined(CINTERFACE)
12426   struct IAMTimecodeDisplay : public IUnknown {
12427   public:
12428     virtual HRESULT WINAPI GetTCDisplayEnable(LONG *pState) = 0;
12429     virtual HRESULT WINAPI SetTCDisplayEnable(LONG State) = 0;
12430     virtual HRESULT WINAPI GetTCDisplay(LONG Param,LONG *pValue) = 0;
12431     virtual HRESULT WINAPI SetTCDisplay(LONG Param,LONG Value) = 0;
12432   };
12433 #else
12434   typedef struct IAMTimecodeDisplayVtbl {
12435     BEGIN_INTERFACE
12436       HRESULT (WINAPI *QueryInterface)(IAMTimecodeDisplay *This,REFIID riid,void **ppvObject);
12437       ULONG (WINAPI *AddRef)(IAMTimecodeDisplay *This);
12438       ULONG (WINAPI *Release)(IAMTimecodeDisplay *This);
12439       HRESULT (WINAPI *GetTCDisplayEnable)(IAMTimecodeDisplay *This,LONG *pState);
12440       HRESULT (WINAPI *SetTCDisplayEnable)(IAMTimecodeDisplay *This,LONG State);
12441       HRESULT (WINAPI *GetTCDisplay)(IAMTimecodeDisplay *This,LONG Param,LONG *pValue);
12442       HRESULT (WINAPI *SetTCDisplay)(IAMTimecodeDisplay *This,LONG Param,LONG Value);
12443     END_INTERFACE
12444   } IAMTimecodeDisplayVtbl;
12445   struct IAMTimecodeDisplay {
12446     CONST_VTBL struct IAMTimecodeDisplayVtbl *lpVtbl;
12447   };
12448 #ifdef COBJMACROS
12449 #define IAMTimecodeDisplay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12450 #define IAMTimecodeDisplay_AddRef(This) (This)->lpVtbl->AddRef(This)
12451 #define IAMTimecodeDisplay_Release(This) (This)->lpVtbl->Release(This)
12452 #define IAMTimecodeDisplay_GetTCDisplayEnable(This,pState) (This)->lpVtbl->GetTCDisplayEnable(This,pState)
12453 #define IAMTimecodeDisplay_SetTCDisplayEnable(This,State) (This)->lpVtbl->SetTCDisplayEnable(This,State)
12454 #define IAMTimecodeDisplay_GetTCDisplay(This,Param,pValue) (This)->lpVtbl->GetTCDisplay(This,Param,pValue)
12455 #define IAMTimecodeDisplay_SetTCDisplay(This,Param,Value) (This)->lpVtbl->SetTCDisplay(This,Param,Value)
12456 #endif
12457 #endif
12458   HRESULT WINAPI IAMTimecodeDisplay_GetTCDisplayEnable_Proxy(IAMTimecodeDisplay *This,LONG *pState);
12459   void __RPC_STUB IAMTimecodeDisplay_GetTCDisplayEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12460   HRESULT WINAPI IAMTimecodeDisplay_SetTCDisplayEnable_Proxy(IAMTimecodeDisplay *This,LONG State);
12461   void __RPC_STUB IAMTimecodeDisplay_SetTCDisplayEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12462   HRESULT WINAPI IAMTimecodeDisplay_GetTCDisplay_Proxy(IAMTimecodeDisplay *This,LONG Param,LONG *pValue);
12463   void __RPC_STUB IAMTimecodeDisplay_GetTCDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12464   HRESULT WINAPI IAMTimecodeDisplay_SetTCDisplay_Proxy(IAMTimecodeDisplay *This,LONG Param,LONG Value);
12465   void __RPC_STUB IAMTimecodeDisplay_SetTCDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12466 #endif
12467 
12468   typedef IAMTimecodeDisplay *PIAMTIMECODEDISPLAY;
12469 
12470   extern RPC_IF_HANDLE __MIDL_itf_strmif_0343_v0_0_c_ifspec;
12471   extern RPC_IF_HANDLE __MIDL_itf_strmif_0343_v0_0_s_ifspec;
12472 #ifndef __IAMDevMemoryAllocator_INTERFACE_DEFINED__
12473 #define __IAMDevMemoryAllocator_INTERFACE_DEFINED__
12474   EXTERN_C const IID IID_IAMDevMemoryAllocator;
12475 #if defined(__cplusplus) && !defined(CINTERFACE)
12476   struct IAMDevMemoryAllocator : public IUnknown {
12477   public:
12478     virtual HRESULT WINAPI GetInfo(DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk) = 0;
12479     virtual HRESULT WINAPI CheckMemory(const BYTE *pBuffer) = 0;
12480     virtual HRESULT WINAPI Alloc(BYTE **ppBuffer,DWORD *pdwcbBuffer) = 0;
12481     virtual HRESULT WINAPI Free(BYTE *pBuffer) = 0;
12482     virtual HRESULT WINAPI GetDevMemoryObject(IUnknown **ppUnkInnner,IUnknown *pUnkOuter) = 0;
12483   };
12484 #else
12485   typedef struct IAMDevMemoryAllocatorVtbl {
12486     BEGIN_INTERFACE
12487       HRESULT (WINAPI *QueryInterface)(IAMDevMemoryAllocator *This,REFIID riid,void **ppvObject);
12488       ULONG (WINAPI *AddRef)(IAMDevMemoryAllocator *This);
12489       ULONG (WINAPI *Release)(IAMDevMemoryAllocator *This);
12490       HRESULT (WINAPI *GetInfo)(IAMDevMemoryAllocator *This,DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk);
12491       HRESULT (WINAPI *CheckMemory)(IAMDevMemoryAllocator *This,const BYTE *pBuffer);
12492       HRESULT (WINAPI *Alloc)(IAMDevMemoryAllocator *This,BYTE **ppBuffer,DWORD *pdwcbBuffer);
12493       HRESULT (WINAPI *Free)(IAMDevMemoryAllocator *This,BYTE *pBuffer);
12494       HRESULT (WINAPI *GetDevMemoryObject)(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
12495     END_INTERFACE
12496   } IAMDevMemoryAllocatorVtbl;
12497   struct IAMDevMemoryAllocator {
12498     CONST_VTBL struct IAMDevMemoryAllocatorVtbl *lpVtbl;
12499   };
12500 #ifdef COBJMACROS
12501 #define IAMDevMemoryAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12502 #define IAMDevMemoryAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
12503 #define IAMDevMemoryAllocator_Release(This) (This)->lpVtbl->Release(This)
12504 #define IAMDevMemoryAllocator_GetInfo(This,pdwcbTotalFree,pdwcbLargestFree,pdwcbTotalMemory,pdwcbMinimumChunk) (This)->lpVtbl->GetInfo(This,pdwcbTotalFree,pdwcbLargestFree,pdwcbTotalMemory,pdwcbMinimumChunk)
12505 #define IAMDevMemoryAllocator_CheckMemory(This,pBuffer) (This)->lpVtbl->CheckMemory(This,pBuffer)
12506 #define IAMDevMemoryAllocator_Alloc(This,ppBuffer,pdwcbBuffer) (This)->lpVtbl->Alloc(This,ppBuffer,pdwcbBuffer)
12507 #define IAMDevMemoryAllocator_Free(This,pBuffer) (This)->lpVtbl->Free(This,pBuffer)
12508 #define IAMDevMemoryAllocator_GetDevMemoryObject(This,ppUnkInnner,pUnkOuter) (This)->lpVtbl->GetDevMemoryObject(This,ppUnkInnner,pUnkOuter)
12509 #endif
12510 #endif
12511   HRESULT WINAPI IAMDevMemoryAllocator_GetInfo_Proxy(IAMDevMemoryAllocator *This,DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk);
12512   void __RPC_STUB IAMDevMemoryAllocator_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12513   HRESULT WINAPI IAMDevMemoryAllocator_CheckMemory_Proxy(IAMDevMemoryAllocator *This,const BYTE *pBuffer);
12514   void __RPC_STUB IAMDevMemoryAllocator_CheckMemory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12515   HRESULT WINAPI IAMDevMemoryAllocator_Alloc_Proxy(IAMDevMemoryAllocator *This,BYTE **ppBuffer,DWORD *pdwcbBuffer);
12516   void __RPC_STUB IAMDevMemoryAllocator_Alloc_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12517   HRESULT WINAPI IAMDevMemoryAllocator_Free_Proxy(IAMDevMemoryAllocator *This,BYTE *pBuffer);
12518   void __RPC_STUB IAMDevMemoryAllocator_Free_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12519   HRESULT WINAPI IAMDevMemoryAllocator_GetDevMemoryObject_Proxy(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
12520   void __RPC_STUB IAMDevMemoryAllocator_GetDevMemoryObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12521 #endif
12522 
12523   typedef IAMDevMemoryAllocator *PAMDEVMEMORYALLOCATOR;
12524 
12525   extern RPC_IF_HANDLE __MIDL_itf_strmif_0344_v0_0_c_ifspec;
12526   extern RPC_IF_HANDLE __MIDL_itf_strmif_0344_v0_0_s_ifspec;
12527 #ifndef __IAMDevMemoryControl_INTERFACE_DEFINED__
12528 #define __IAMDevMemoryControl_INTERFACE_DEFINED__
12529   EXTERN_C const IID IID_IAMDevMemoryControl;
12530 #if defined(__cplusplus) && !defined(CINTERFACE)
12531   struct IAMDevMemoryControl : public IUnknown {
12532   public:
12533     virtual HRESULT WINAPI QueryWriteSync(void) = 0;
12534     virtual HRESULT WINAPI WriteSync(void) = 0;
12535     virtual HRESULT WINAPI GetDevId(DWORD *pdwDevId) = 0;
12536   };
12537 #else
12538   typedef struct IAMDevMemoryControlVtbl {
12539     BEGIN_INTERFACE
12540       HRESULT (WINAPI *QueryInterface)(IAMDevMemoryControl *This,REFIID riid,void **ppvObject);
12541       ULONG (WINAPI *AddRef)(IAMDevMemoryControl *This);
12542       ULONG (WINAPI *Release)(IAMDevMemoryControl *This);
12543       HRESULT (WINAPI *QueryWriteSync)(IAMDevMemoryControl *This);
12544       HRESULT (WINAPI *WriteSync)(IAMDevMemoryControl *This);
12545       HRESULT (WINAPI *GetDevId)(IAMDevMemoryControl *This,DWORD *pdwDevId);
12546     END_INTERFACE
12547   } IAMDevMemoryControlVtbl;
12548   struct IAMDevMemoryControl {
12549     CONST_VTBL struct IAMDevMemoryControlVtbl *lpVtbl;
12550   };
12551 #ifdef COBJMACROS
12552 #define IAMDevMemoryControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12553 #define IAMDevMemoryControl_AddRef(This) (This)->lpVtbl->AddRef(This)
12554 #define IAMDevMemoryControl_Release(This) (This)->lpVtbl->Release(This)
12555 #define IAMDevMemoryControl_QueryWriteSync(This) (This)->lpVtbl->QueryWriteSync(This)
12556 #define IAMDevMemoryControl_WriteSync(This) (This)->lpVtbl->WriteSync(This)
12557 #define IAMDevMemoryControl_GetDevId(This,pdwDevId) (This)->lpVtbl->GetDevId(This,pdwDevId)
12558 #endif
12559 #endif
12560   HRESULT WINAPI IAMDevMemoryControl_QueryWriteSync_Proxy(IAMDevMemoryControl *This);
12561   void __RPC_STUB IAMDevMemoryControl_QueryWriteSync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12562   HRESULT WINAPI IAMDevMemoryControl_WriteSync_Proxy(IAMDevMemoryControl *This);
12563   void __RPC_STUB IAMDevMemoryControl_WriteSync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12564   HRESULT WINAPI IAMDevMemoryControl_GetDevId_Proxy(IAMDevMemoryControl *This,DWORD *pdwDevId);
12565   void __RPC_STUB IAMDevMemoryControl_GetDevId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12566 #endif
12567 
12568   typedef IAMDevMemoryControl *PAMDEVMEMORYCONTROL;
12569 
12570   enum _AMSTREAMSELECTINFOFLAGS {
12571     AMSTREAMSELECTINFO_ENABLED = 0x1,AMSTREAMSELECTINFO_EXCLUSIVE = 0x2
12572   };
12573 
12574   enum _AMSTREAMSELECTENABLEFLAGS {
12575     AMSTREAMSELECTENABLE_ENABLE = 0x1,AMSTREAMSELECTENABLE_ENABLEALL = 0x2
12576   };
12577 
12578   extern RPC_IF_HANDLE __MIDL_itf_strmif_0345_v0_0_c_ifspec;
12579   extern RPC_IF_HANDLE __MIDL_itf_strmif_0345_v0_0_s_ifspec;
12580 #ifndef __IAMStreamSelect_INTERFACE_DEFINED__
12581 #define __IAMStreamSelect_INTERFACE_DEFINED__
12582   EXTERN_C const IID IID_IAMStreamSelect;
12583 #if defined(__cplusplus) && !defined(CINTERFACE)
12584   struct IAMStreamSelect : public IUnknown {
12585   public:
12586     virtual HRESULT WINAPI Count(DWORD *pcStreams) = 0;
12587     virtual HRESULT WINAPI Info(LONG lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk) = 0;
12588     virtual HRESULT WINAPI Enable(LONG lIndex,DWORD dwFlags) = 0;
12589   };
12590 #else
12591   typedef struct IAMStreamSelectVtbl {
12592     BEGIN_INTERFACE
12593       HRESULT (WINAPI *QueryInterface)(IAMStreamSelect *This,REFIID riid,void **ppvObject);
12594       ULONG (WINAPI *AddRef)(IAMStreamSelect *This);
12595       ULONG (WINAPI *Release)(IAMStreamSelect *This);
12596       HRESULT (WINAPI *Count)(IAMStreamSelect *This,DWORD *pcStreams);
12597       HRESULT (WINAPI *Info)(IAMStreamSelect *This,LONG lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk);
12598       HRESULT (WINAPI *Enable)(IAMStreamSelect *This,LONG lIndex,DWORD dwFlags);
12599     END_INTERFACE
12600   } IAMStreamSelectVtbl;
12601   struct IAMStreamSelect {
12602     CONST_VTBL struct IAMStreamSelectVtbl *lpVtbl;
12603   };
12604 #ifdef COBJMACROS
12605 #define IAMStreamSelect_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12606 #define IAMStreamSelect_AddRef(This) (This)->lpVtbl->AddRef(This)
12607 #define IAMStreamSelect_Release(This) (This)->lpVtbl->Release(This)
12608 #define IAMStreamSelect_Count(This,pcStreams) (This)->lpVtbl->Count(This,pcStreams)
12609 #define IAMStreamSelect_Info(This,lIndex,ppmt,pdwFlags,plcid,pdwGroup,ppszName,ppObject,ppUnk) (This)->lpVtbl->Info(This,lIndex,ppmt,pdwFlags,plcid,pdwGroup,ppszName,ppObject,ppUnk)
12610 #define IAMStreamSelect_Enable(This,lIndex,dwFlags) (This)->lpVtbl->Enable(This,lIndex,dwFlags)
12611 #endif
12612 #endif
12613   HRESULT WINAPI IAMStreamSelect_Count_Proxy(IAMStreamSelect *This,DWORD *pcStreams);
12614   void __RPC_STUB IAMStreamSelect_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12615   HRESULT WINAPI IAMStreamSelect_Info_Proxy(IAMStreamSelect *This,LONG lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk);
12616   void __RPC_STUB IAMStreamSelect_Info_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12617   HRESULT WINAPI IAMStreamSelect_Enable_Proxy(IAMStreamSelect *This,LONG lIndex,DWORD dwFlags);
12618   void __RPC_STUB IAMStreamSelect_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12619 #endif
12620 
12621   typedef IAMStreamSelect *PAMSTREAMSELECT;
12622 
12623   enum _AMRESCTL_RESERVEFLAGS {
12624     AMRESCTL_RESERVEFLAGS_RESERVE = 0,AMRESCTL_RESERVEFLAGS_UNRESERVE = 0x1
12625   };
12626 
12627   extern RPC_IF_HANDLE __MIDL_itf_strmif_0346_v0_0_c_ifspec;
12628   extern RPC_IF_HANDLE __MIDL_itf_strmif_0346_v0_0_s_ifspec;
12629 #ifndef __IAMResourceControl_INTERFACE_DEFINED__
12630 #define __IAMResourceControl_INTERFACE_DEFINED__
12631   EXTERN_C const IID IID_IAMResourceControl;
12632 #if defined(__cplusplus) && !defined(CINTERFACE)
12633   struct IAMResourceControl : public IUnknown {
12634   public:
12635     virtual HRESULT WINAPI Reserve(DWORD dwFlags,PVOID pvReserved) = 0;
12636   };
12637 #else
12638   typedef struct IAMResourceControlVtbl {
12639     BEGIN_INTERFACE
12640       HRESULT (WINAPI *QueryInterface)(IAMResourceControl *This,REFIID riid,void **ppvObject);
12641       ULONG (WINAPI *AddRef)(IAMResourceControl *This);
12642       ULONG (WINAPI *Release)(IAMResourceControl *This);
12643       HRESULT (WINAPI *Reserve)(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
12644     END_INTERFACE
12645   } IAMResourceControlVtbl;
12646   struct IAMResourceControl {
12647     CONST_VTBL struct IAMResourceControlVtbl *lpVtbl;
12648   };
12649 #ifdef COBJMACROS
12650 #define IAMResourceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12651 #define IAMResourceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
12652 #define IAMResourceControl_Release(This) (This)->lpVtbl->Release(This)
12653 #define IAMResourceControl_Reserve(This,dwFlags,pvReserved) (This)->lpVtbl->Reserve(This,dwFlags,pvReserved)
12654 #endif
12655 #endif
12656   HRESULT WINAPI IAMResourceControl_Reserve_Proxy(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
12657   void __RPC_STUB IAMResourceControl_Reserve_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12658 #endif
12659 
12660 #ifndef __IAMClockAdjust_INTERFACE_DEFINED__
12661 #define __IAMClockAdjust_INTERFACE_DEFINED__
12662   EXTERN_C const IID IID_IAMClockAdjust;
12663 #if defined(__cplusplus) && !defined(CINTERFACE)
12664   struct IAMClockAdjust : public IUnknown {
12665   public:
12666     virtual HRESULT WINAPI SetClockDelta(REFERENCE_TIME rtDelta) = 0;
12667   };
12668 #else
12669   typedef struct IAMClockAdjustVtbl {
12670     BEGIN_INTERFACE
12671       HRESULT (WINAPI *QueryInterface)(IAMClockAdjust *This,REFIID riid,void **ppvObject);
12672       ULONG (WINAPI *AddRef)(IAMClockAdjust *This);
12673       ULONG (WINAPI *Release)(IAMClockAdjust *This);
12674       HRESULT (WINAPI *SetClockDelta)(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
12675     END_INTERFACE
12676   } IAMClockAdjustVtbl;
12677   struct IAMClockAdjust {
12678     CONST_VTBL struct IAMClockAdjustVtbl *lpVtbl;
12679   };
12680 #ifdef COBJMACROS
12681 #define IAMClockAdjust_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12682 #define IAMClockAdjust_AddRef(This) (This)->lpVtbl->AddRef(This)
12683 #define IAMClockAdjust_Release(This) (This)->lpVtbl->Release(This)
12684 #define IAMClockAdjust_SetClockDelta(This,rtDelta) (This)->lpVtbl->SetClockDelta(This,rtDelta)
12685 #endif
12686 #endif
12687   HRESULT WINAPI IAMClockAdjust_SetClockDelta_Proxy(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
12688   void __RPC_STUB IAMClockAdjust_SetClockDelta_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12689 #endif
12690 
12691 #ifndef __IDrawVideoImage_INTERFACE_DEFINED__
12692 #define __IDrawVideoImage_INTERFACE_DEFINED__
12693   EXTERN_C const IID IID_IDrawVideoImage;
12694 #if defined(__cplusplus) && !defined(CINTERFACE)
12695   struct IDrawVideoImage : public IUnknown {
12696   public:
12697     virtual HRESULT WINAPI DrawVideoImageBegin(void) = 0;
12698     virtual HRESULT WINAPI DrawVideoImageEnd(void) = 0;
12699     virtual HRESULT WINAPI DrawVideoImageDraw(HDC hdc,LPRECT lprcSrc,LPRECT lprcDst) = 0;
12700   };
12701 #else
12702   typedef struct IDrawVideoImageVtbl {
12703     BEGIN_INTERFACE
12704       HRESULT (WINAPI *QueryInterface)(IDrawVideoImage *This,REFIID riid,void **ppvObject);
12705       ULONG (WINAPI *AddRef)(IDrawVideoImage *This);
12706       ULONG (WINAPI *Release)(IDrawVideoImage *This);
12707       HRESULT (WINAPI *DrawVideoImageBegin)(IDrawVideoImage *This);
12708       HRESULT (WINAPI *DrawVideoImageEnd)(IDrawVideoImage *This);
12709       HRESULT (WINAPI *DrawVideoImageDraw)(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
12710     END_INTERFACE
12711   } IDrawVideoImageVtbl;
12712   struct IDrawVideoImage {
12713     CONST_VTBL struct IDrawVideoImageVtbl *lpVtbl;
12714   };
12715 #ifdef COBJMACROS
12716 #define IDrawVideoImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12717 #define IDrawVideoImage_AddRef(This) (This)->lpVtbl->AddRef(This)
12718 #define IDrawVideoImage_Release(This) (This)->lpVtbl->Release(This)
12719 #define IDrawVideoImage_DrawVideoImageBegin(This) (This)->lpVtbl->DrawVideoImageBegin(This)
12720 #define IDrawVideoImage_DrawVideoImageEnd(This) (This)->lpVtbl->DrawVideoImageEnd(This)
12721 #define IDrawVideoImage_DrawVideoImageDraw(This,hdc,lprcSrc,lprcDst) (This)->lpVtbl->DrawVideoImageDraw(This,hdc,lprcSrc,lprcDst)
12722 #endif
12723 #endif
12724   HRESULT WINAPI IDrawVideoImage_DrawVideoImageBegin_Proxy(IDrawVideoImage *This);
12725   void __RPC_STUB IDrawVideoImage_DrawVideoImageBegin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12726   HRESULT WINAPI IDrawVideoImage_DrawVideoImageEnd_Proxy(IDrawVideoImage *This);
12727   void __RPC_STUB IDrawVideoImage_DrawVideoImageEnd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12728   HRESULT WINAPI IDrawVideoImage_DrawVideoImageDraw_Proxy(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
12729   void __RPC_STUB IDrawVideoImage_DrawVideoImageDraw_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12730 #endif
12731 
12732 #ifndef __IDecimateVideoImage_INTERFACE_DEFINED__
12733 #define __IDecimateVideoImage_INTERFACE_DEFINED__
12734   EXTERN_C const IID IID_IDecimateVideoImage;
12735 #if defined(__cplusplus) && !defined(CINTERFACE)
12736   struct IDecimateVideoImage : public IUnknown {
12737   public:
12738     virtual HRESULT WINAPI SetDecimationImageSize(LONG lWidth,LONG lHeight) = 0;
12739     virtual HRESULT WINAPI ResetDecimationImageSize(void) = 0;
12740   };
12741 #else
12742   typedef struct IDecimateVideoImageVtbl {
12743     BEGIN_INTERFACE
12744       HRESULT (WINAPI *QueryInterface)(IDecimateVideoImage *This,REFIID riid,void **ppvObject);
12745       ULONG (WINAPI *AddRef)(IDecimateVideoImage *This);
12746       ULONG (WINAPI *Release)(IDecimateVideoImage *This);
12747       HRESULT (WINAPI *SetDecimationImageSize)(IDecimateVideoImage *This,LONG lWidth,LONG lHeight);
12748       HRESULT (WINAPI *ResetDecimationImageSize)(IDecimateVideoImage *This);
12749     END_INTERFACE
12750   } IDecimateVideoImageVtbl;
12751   struct IDecimateVideoImage {
12752     CONST_VTBL struct IDecimateVideoImageVtbl *lpVtbl;
12753   };
12754 #ifdef COBJMACROS
12755 #define IDecimateVideoImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12756 #define IDecimateVideoImage_AddRef(This) (This)->lpVtbl->AddRef(This)
12757 #define IDecimateVideoImage_Release(This) (This)->lpVtbl->Release(This)
12758 #define IDecimateVideoImage_SetDecimationImageSize(This,lWidth,lHeight) (This)->lpVtbl->SetDecimationImageSize(This,lWidth,lHeight)
12759 #define IDecimateVideoImage_ResetDecimationImageSize(This) (This)->lpVtbl->ResetDecimationImageSize(This)
12760 #endif
12761 #endif
12762   HRESULT WINAPI IDecimateVideoImage_SetDecimationImageSize_Proxy(IDecimateVideoImage *This,LONG lWidth,LONG lHeight);
12763   void __RPC_STUB IDecimateVideoImage_SetDecimationImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12764   HRESULT WINAPI IDecimateVideoImage_ResetDecimationImageSize_Proxy(IDecimateVideoImage *This);
12765   void __RPC_STUB IDecimateVideoImage_ResetDecimationImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12766 #endif
12767 
12768   typedef enum _DECIMATION_USAGE {
12769     DECIMATION_LEGACY = 0,
12770     DECIMATION_USE_DECODER_ONLY,DECIMATION_USE_VIDEOPORT_ONLY,DECIMATION_USE_OVERLAY_ONLY,
12771     DECIMATION_DEFAULT
12772   } DECIMATION_USAGE;
12773 
12774   extern RPC_IF_HANDLE __MIDL_itf_strmif_0351_v0_0_c_ifspec;
12775   extern RPC_IF_HANDLE __MIDL_itf_strmif_0351_v0_0_s_ifspec;
12776 #ifndef __IAMVideoDecimationProperties_INTERFACE_DEFINED__
12777 #define __IAMVideoDecimationProperties_INTERFACE_DEFINED__
12778   EXTERN_C const IID IID_IAMVideoDecimationProperties;
12779 #if defined(__cplusplus) && !defined(CINTERFACE)
12780   struct IAMVideoDecimationProperties : public IUnknown {
12781   public:
12782     virtual HRESULT WINAPI QueryDecimationUsage(DECIMATION_USAGE *lpUsage) = 0;
12783     virtual HRESULT WINAPI SetDecimationUsage(DECIMATION_USAGE Usage) = 0;
12784   };
12785 #else
12786   typedef struct IAMVideoDecimationPropertiesVtbl {
12787     BEGIN_INTERFACE
12788       HRESULT (WINAPI *QueryInterface)(IAMVideoDecimationProperties *This,REFIID riid,void **ppvObject);
12789       ULONG (WINAPI *AddRef)(IAMVideoDecimationProperties *This);
12790       ULONG (WINAPI *Release)(IAMVideoDecimationProperties *This);
12791       HRESULT (WINAPI *QueryDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE *lpUsage);
12792       HRESULT (WINAPI *SetDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
12793     END_INTERFACE
12794   } IAMVideoDecimationPropertiesVtbl;
12795   struct IAMVideoDecimationProperties {
12796     CONST_VTBL struct IAMVideoDecimationPropertiesVtbl *lpVtbl;
12797   };
12798 #ifdef COBJMACROS
12799 #define IAMVideoDecimationProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12800 #define IAMVideoDecimationProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
12801 #define IAMVideoDecimationProperties_Release(This) (This)->lpVtbl->Release(This)
12802 #define IAMVideoDecimationProperties_QueryDecimationUsage(This,lpUsage) (This)->lpVtbl->QueryDecimationUsage(This,lpUsage)
12803 #define IAMVideoDecimationProperties_SetDecimationUsage(This,Usage) (This)->lpVtbl->SetDecimationUsage(This,Usage)
12804 #endif
12805 #endif
12806   HRESULT WINAPI IAMVideoDecimationProperties_QueryDecimationUsage_Proxy(IAMVideoDecimationProperties *This,DECIMATION_USAGE *lpUsage);
12807   void __RPC_STUB IAMVideoDecimationProperties_QueryDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12808   HRESULT WINAPI IAMVideoDecimationProperties_SetDecimationUsage_Proxy(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
12809   void __RPC_STUB IAMVideoDecimationProperties_SetDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12810 #endif
12811 
12812   enum _AM_PUSHSOURCE_FLAGS {
12813     AM_PUSHSOURCECAPS_INTERNAL_RM = 0x1,AM_PUSHSOURCECAPS_NOT_LIVE = 0x2,AM_PUSHSOURCECAPS_PRIVATE_CLOCK = 0x4,
12814     AM_PUSHSOURCEREQS_USE_STREAM_CLOCK = 0x10000,AM_PUSHSOURCEREQS_USE_CLOCK_CHAIN = 0x20000
12815   };
12816 
12817   extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_c_ifspec;
12818   extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_s_ifspec;
12819 
12820 #ifndef __IAMDeviceRemoval_INTERFACE_DEFINED__
12821 #define __IAMDeviceRemoval_INTERFACE_DEFINED__
12822   EXTERN_C const IID IID_IAMDeviceRemoval;
12823 #if defined(__cplusplus) && !defined(CINTERFACE)
12824   struct IAMDeviceRemoval : public IUnknown {
12825   public:
12826     virtual HRESULT WINAPI DeviceInfo(CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink) = 0;
12827     virtual HRESULT WINAPI Reassociate(void) = 0;
12828     virtual HRESULT WINAPI Disassociate(void) = 0;
12829   };
12830 #else
12831   typedef struct IAMDeviceRemovalVtbl {
12832     BEGIN_INTERFACE
12833       HRESULT (WINAPI *QueryInterface)(IAMDeviceRemoval *This,REFIID riid,void **ppvObject);
12834       ULONG (WINAPI *AddRef)(IAMDeviceRemoval *This);
12835       ULONG (WINAPI *Release)(IAMDeviceRemoval *This);
12836       HRESULT (WINAPI *DeviceInfo)(IAMDeviceRemoval *This,CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink);
12837       HRESULT (WINAPI *Reassociate)(IAMDeviceRemoval *This);
12838       HRESULT (WINAPI *Disassociate)(IAMDeviceRemoval *This);
12839     END_INTERFACE
12840   } IAMDeviceRemovalVtbl;
12841   struct IAMDeviceRemoval {
12842     CONST_VTBL struct IAMDeviceRemovalVtbl *lpVtbl;
12843   };
12844 #ifdef COBJMACROS
12845 #define IAMDeviceRemoval_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12846 #define IAMDeviceRemoval_AddRef(This) (This)->lpVtbl->AddRef(This)
12847 #define IAMDeviceRemoval_Release(This) (This)->lpVtbl->Release(This)
12848 #define IAMDeviceRemoval_DeviceInfo(This,pclsidInterfaceClass,pwszSymbolicLink) (This)->lpVtbl->DeviceInfo(This,pclsidInterfaceClass,pwszSymbolicLink)
12849 #define IAMDeviceRemoval_Reassociate(This) (This)->lpVtbl->Reassociate(This)
12850 #define IAMDeviceRemoval_Disassociate(This) (This)->lpVtbl->Disassociate(This)
12851 #endif
12852 #endif
12853   HRESULT WINAPI IAMDeviceRemoval_DeviceInfo_Proxy(IAMDeviceRemoval *This,CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink);
12854   void __RPC_STUB IAMDeviceRemoval_DeviceInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12855   HRESULT WINAPI IAMDeviceRemoval_Reassociate_Proxy(IAMDeviceRemoval *This);
12856   void __RPC_STUB IAMDeviceRemoval_Reassociate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12857   HRESULT WINAPI IAMDeviceRemoval_Disassociate_Proxy(IAMDeviceRemoval *This);
12858   void __RPC_STUB IAMDeviceRemoval_Disassociate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12859 #endif
12860 
12861   typedef struct __MIDL___MIDL_itf_strmif_0355_0001 {
12862     DWORD dwDVAAuxSrc;
12863     DWORD dwDVAAuxCtl;
12864     DWORD dwDVAAuxSrc1;
12865     DWORD dwDVAAuxCtl1;
12866     DWORD dwDVVAuxSrc;
12867     DWORD dwDVVAuxCtl;
12868     DWORD dwDVReserved[2];
12869   } DVINFO;
12870 
12871   typedef struct __MIDL___MIDL_itf_strmif_0355_0001 *PDVINFO;
12872 
12873   enum _DVENCODERRESOLUTION {
12874     DVENCODERRESOLUTION_720x480 = 2012,DVENCODERRESOLUTION_360x240 = 2013,DVENCODERRESOLUTION_180x120 = 2014,DVENCODERRESOLUTION_88x60 = 2015
12875   };
12876 
12877   enum _DVENCODERVIDEOFORMAT {
12878     DVENCODERVIDEOFORMAT_NTSC = 2000,DVENCODERVIDEOFORMAT_PAL = 2001
12879   };
12880 
12881   enum _DVENCODERFORMAT {
12882     DVENCODERFORMAT_DVSD = 2007,DVENCODERFORMAT_DVHD = 2008,DVENCODERFORMAT_DVSL = 2009
12883   };
12884 
12885   extern RPC_IF_HANDLE __MIDL_itf_strmif_0355_v0_0_c_ifspec;
12886   extern RPC_IF_HANDLE __MIDL_itf_strmif_0355_v0_0_s_ifspec;
12887 #ifndef __IDVEnc_INTERFACE_DEFINED__
12888 #define __IDVEnc_INTERFACE_DEFINED__
12889   EXTERN_C const IID IID_IDVEnc;
12890 #if defined(__cplusplus) && !defined(CINTERFACE)
12891   struct IDVEnc : public IUnknown {
12892   public:
12893     virtual HRESULT WINAPI get_IFormatResolution(int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo) = 0;
12894     virtual HRESULT WINAPI put_IFormatResolution(int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo) = 0;
12895   };
12896 #else
12897   typedef struct IDVEncVtbl {
12898     BEGIN_INTERFACE
12899       HRESULT (WINAPI *QueryInterface)(IDVEnc *This,REFIID riid,void **ppvObject);
12900       ULONG (WINAPI *AddRef)(IDVEnc *This);
12901       ULONG (WINAPI *Release)(IDVEnc *This);
12902       HRESULT (WINAPI *get_IFormatResolution)(IDVEnc *This,int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
12903       HRESULT (WINAPI *put_IFormatResolution)(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
12904     END_INTERFACE
12905   } IDVEncVtbl;
12906   struct IDVEnc {
12907     CONST_VTBL struct IDVEncVtbl *lpVtbl;
12908   };
12909 #ifdef COBJMACROS
12910 #define IDVEnc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12911 #define IDVEnc_AddRef(This) (This)->lpVtbl->AddRef(This)
12912 #define IDVEnc_Release(This) (This)->lpVtbl->Release(This)
12913 #define IDVEnc_get_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo) (This)->lpVtbl->get_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo)
12914 #define IDVEnc_put_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo) (This)->lpVtbl->put_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo)
12915 #endif
12916 #endif
12917   HRESULT WINAPI IDVEnc_get_IFormatResolution_Proxy(IDVEnc *This,int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
12918   void __RPC_STUB IDVEnc_get_IFormatResolution_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12919   HRESULT WINAPI IDVEnc_put_IFormatResolution_Proxy(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
12920   void __RPC_STUB IDVEnc_put_IFormatResolution_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12921 #endif
12922 
12923   enum _DVDECODERRESOLUTION {
12924     DVDECODERRESOLUTION_720x480 = 1000,DVDECODERRESOLUTION_360x240 = 1001,DVDECODERRESOLUTION_180x120 = 1002,DVDECODERRESOLUTION_88x60 = 1003
12925   };
12926 
12927   enum _DVRESOLUTION {
12928     DVRESOLUTION_FULL = 1000,DVRESOLUTION_HALF = 1001,DVRESOLUTION_QUARTER = 1002,DVRESOLUTION_DC = 1003
12929   };
12930 
12931   extern RPC_IF_HANDLE __MIDL_itf_strmif_0356_v0_0_c_ifspec;
12932   extern RPC_IF_HANDLE __MIDL_itf_strmif_0356_v0_0_s_ifspec;
12933 #ifndef __IIPDVDec_INTERFACE_DEFINED__
12934 #define __IIPDVDec_INTERFACE_DEFINED__
12935   EXTERN_C const IID IID_IIPDVDec;
12936 #if defined(__cplusplus) && !defined(CINTERFACE)
12937   struct IIPDVDec : public IUnknown {
12938   public:
12939     virtual HRESULT WINAPI get_IPDisplay(int *displayPix) = 0;
12940     virtual HRESULT WINAPI put_IPDisplay(int displayPix) = 0;
12941   };
12942 #else
12943   typedef struct IIPDVDecVtbl {
12944     BEGIN_INTERFACE
12945       HRESULT (WINAPI *QueryInterface)(IIPDVDec *This,REFIID riid,void **ppvObject);
12946       ULONG (WINAPI *AddRef)(IIPDVDec *This);
12947       ULONG (WINAPI *Release)(IIPDVDec *This);
12948       HRESULT (WINAPI *get_IPDisplay)(IIPDVDec *This,int *displayPix);
12949       HRESULT (WINAPI *put_IPDisplay)(IIPDVDec *This,int displayPix);
12950     END_INTERFACE
12951   } IIPDVDecVtbl;
12952   struct IIPDVDec {
12953     CONST_VTBL struct IIPDVDecVtbl *lpVtbl;
12954   };
12955 #ifdef COBJMACROS
12956 #define IIPDVDec_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12957 #define IIPDVDec_AddRef(This) (This)->lpVtbl->AddRef(This)
12958 #define IIPDVDec_Release(This) (This)->lpVtbl->Release(This)
12959 #define IIPDVDec_get_IPDisplay(This,displayPix) (This)->lpVtbl->get_IPDisplay(This,displayPix)
12960 #define IIPDVDec_put_IPDisplay(This,displayPix) (This)->lpVtbl->put_IPDisplay(This,displayPix)
12961 #endif
12962 #endif
12963   HRESULT WINAPI IIPDVDec_get_IPDisplay_Proxy(IIPDVDec *This,int *displayPix);
12964   void __RPC_STUB IIPDVDec_get_IPDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12965   HRESULT WINAPI IIPDVDec_put_IPDisplay_Proxy(IIPDVDec *This,int displayPix);
12966   void __RPC_STUB IIPDVDec_put_IPDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12967 #endif
12968 
12969 #ifndef __IDVRGB219_INTERFACE_DEFINED__
12970 #define __IDVRGB219_INTERFACE_DEFINED__
12971   EXTERN_C const IID IID_IDVRGB219;
12972 #if defined(__cplusplus) && !defined(CINTERFACE)
12973   struct IDVRGB219 : public IUnknown {
12974   public:
12975     virtual HRESULT WINAPI SetRGB219(WINBOOL bState) = 0;
12976   };
12977 #else
12978   typedef struct IDVRGB219Vtbl {
12979     BEGIN_INTERFACE
12980       HRESULT (WINAPI *QueryInterface)(IDVRGB219 *This,REFIID riid,void **ppvObject);
12981       ULONG (WINAPI *AddRef)(IDVRGB219 *This);
12982       ULONG (WINAPI *Release)(IDVRGB219 *This);
12983       HRESULT (WINAPI *SetRGB219)(IDVRGB219 *This,WINBOOL bState);
12984     END_INTERFACE
12985   } IDVRGB219Vtbl;
12986   struct IDVRGB219 {
12987     CONST_VTBL struct IDVRGB219Vtbl *lpVtbl;
12988   };
12989 #ifdef COBJMACROS
12990 #define IDVRGB219_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12991 #define IDVRGB219_AddRef(This) (This)->lpVtbl->AddRef(This)
12992 #define IDVRGB219_Release(This) (This)->lpVtbl->Release(This)
12993 #define IDVRGB219_SetRGB219(This,bState) (This)->lpVtbl->SetRGB219(This,bState)
12994 #endif
12995 #endif
12996   HRESULT WINAPI IDVRGB219_SetRGB219_Proxy(IDVRGB219 *This,WINBOOL bState);
12997   void __RPC_STUB IDVRGB219_SetRGB219_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12998 #endif
12999 
13000 #ifndef __IDVSplitter_INTERFACE_DEFINED__
13001 #define __IDVSplitter_INTERFACE_DEFINED__
13002   EXTERN_C const IID IID_IDVSplitter;
13003 #if defined(__cplusplus) && !defined(CINTERFACE)
13004   struct IDVSplitter : public IUnknown {
13005   public:
13006     virtual HRESULT WINAPI DiscardAlternateVideoFrames(int nDiscard) = 0;
13007   };
13008 #else
13009   typedef struct IDVSplitterVtbl {
13010     BEGIN_INTERFACE
13011       HRESULT (WINAPI *QueryInterface)(IDVSplitter *This,REFIID riid,void **ppvObject);
13012       ULONG (WINAPI *AddRef)(IDVSplitter *This);
13013       ULONG (WINAPI *Release)(IDVSplitter *This);
13014       HRESULT (WINAPI *DiscardAlternateVideoFrames)(IDVSplitter *This,int nDiscard);
13015     END_INTERFACE
13016   } IDVSplitterVtbl;
13017   struct IDVSplitter {
13018     CONST_VTBL struct IDVSplitterVtbl *lpVtbl;
13019   };
13020 #ifdef COBJMACROS
13021 #define IDVSplitter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13022 #define IDVSplitter_AddRef(This) (This)->lpVtbl->AddRef(This)
13023 #define IDVSplitter_Release(This) (This)->lpVtbl->Release(This)
13024 #define IDVSplitter_DiscardAlternateVideoFrames(This,nDiscard) (This)->lpVtbl->DiscardAlternateVideoFrames(This,nDiscard)
13025 #endif
13026 #endif
13027   HRESULT WINAPI IDVSplitter_DiscardAlternateVideoFrames_Proxy(IDVSplitter *This,int nDiscard);
13028   void __RPC_STUB IDVSplitter_DiscardAlternateVideoFrames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13029 #endif
13030 
13031   enum _AM_AUDIO_RENDERER_STAT_PARAM {
13032     AM_AUDREND_STAT_PARAM_BREAK_COUNT = 1,
13033     AM_AUDREND_STAT_PARAM_SLAVE_MODE,AM_AUDREND_STAT_PARAM_SILENCE_DUR,
13034     AM_AUDREND_STAT_PARAM_LAST_BUFFER_DUR,AM_AUDREND_STAT_PARAM_DISCONTINUITIES,
13035     AM_AUDREND_STAT_PARAM_SLAVE_RATE,AM_AUDREND_STAT_PARAM_SLAVE_DROPWRITE_DUR,
13036     AM_AUDREND_STAT_PARAM_SLAVE_HIGHLOWERROR,AM_AUDREND_STAT_PARAM_SLAVE_LASTHIGHLOWERROR,
13037     AM_AUDREND_STAT_PARAM_SLAVE_ACCUMERROR,AM_AUDREND_STAT_PARAM_BUFFERFULLNESS,
13038     AM_AUDREND_STAT_PARAM_JITTER
13039   };
13040 
13041   extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_c_ifspec;
13042   extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_s_ifspec;
13043 #ifndef __IAMAudioRendererStats_INTERFACE_DEFINED__
13044 #define __IAMAudioRendererStats_INTERFACE_DEFINED__
13045   EXTERN_C const IID IID_IAMAudioRendererStats;
13046 #if defined(__cplusplus) && !defined(CINTERFACE)
13047   struct IAMAudioRendererStats : public IUnknown {
13048   public:
13049     virtual HRESULT WINAPI GetStatParam(DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2) = 0;
13050   };
13051 #else
13052   typedef struct IAMAudioRendererStatsVtbl {
13053     BEGIN_INTERFACE
13054       HRESULT (WINAPI *QueryInterface)(IAMAudioRendererStats *This,REFIID riid,void **ppvObject);
13055       ULONG (WINAPI *AddRef)(IAMAudioRendererStats *This);
13056       ULONG (WINAPI *Release)(IAMAudioRendererStats *This);
13057       HRESULT (WINAPI *GetStatParam)(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
13058     END_INTERFACE
13059   } IAMAudioRendererStatsVtbl;
13060   struct IAMAudioRendererStats {
13061     CONST_VTBL struct IAMAudioRendererStatsVtbl *lpVtbl;
13062   };
13063 #ifdef COBJMACROS
13064 #define IAMAudioRendererStats_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13065 #define IAMAudioRendererStats_AddRef(This) (This)->lpVtbl->AddRef(This)
13066 #define IAMAudioRendererStats_Release(This) (This)->lpVtbl->Release(This)
13067 #define IAMAudioRendererStats_GetStatParam(This,dwParam,pdwParam1,pdwParam2) (This)->lpVtbl->GetStatParam(This,dwParam,pdwParam1,pdwParam2)
13068 #endif
13069 #endif
13070   HRESULT WINAPI IAMAudioRendererStats_GetStatParam_Proxy(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
13071   void __RPC_STUB IAMAudioRendererStats_GetStatParam_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13072 #endif
13073 
13074   enum _AM_INTF_SEARCH_FLAGS {
13075     AM_INTF_SEARCH_INPUT_PIN = 0x1,AM_INTF_SEARCH_OUTPUT_PIN = 0x2,AM_INTF_SEARCH_FILTER = 0x4
13076   };
13077 
13078   extern RPC_IF_HANDLE __MIDL_itf_strmif_0361_v0_0_c_ifspec;
13079   extern RPC_IF_HANDLE __MIDL_itf_strmif_0361_v0_0_s_ifspec;
13080 #ifndef __IAMGraphStreams_INTERFACE_DEFINED__
13081 #define __IAMGraphStreams_INTERFACE_DEFINED__
13082   EXTERN_C const IID IID_IAMGraphStreams;
13083 #if defined(__cplusplus) && !defined(CINTERFACE)
13084   struct IAMGraphStreams : public IUnknown {
13085   public:
13086     virtual HRESULT WINAPI FindUpstreamInterface(IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags) = 0;
13087     virtual HRESULT WINAPI SyncUsingStreamOffset(WINBOOL bUseStreamOffset) = 0;
13088     virtual HRESULT WINAPI SetMaxGraphLatency(REFERENCE_TIME rtMaxGraphLatency) = 0;
13089   };
13090 #else
13091   typedef struct IAMGraphStreamsVtbl {
13092     BEGIN_INTERFACE
13093       HRESULT (WINAPI *QueryInterface)(IAMGraphStreams *This,REFIID riid,void **ppvObject);
13094       ULONG (WINAPI *AddRef)(IAMGraphStreams *This);
13095       ULONG (WINAPI *Release)(IAMGraphStreams *This);
13096       HRESULT (WINAPI *FindUpstreamInterface)(IAMGraphStreams *This,IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags);
13097       HRESULT (WINAPI *SyncUsingStreamOffset)(IAMGraphStreams *This,WINBOOL bUseStreamOffset);
13098       HRESULT (WINAPI *SetMaxGraphLatency)(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
13099     END_INTERFACE
13100   } IAMGraphStreamsVtbl;
13101   struct IAMGraphStreams {
13102     CONST_VTBL struct IAMGraphStreamsVtbl *lpVtbl;
13103   };
13104 #ifdef COBJMACROS
13105 #define IAMGraphStreams_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13106 #define IAMGraphStreams_AddRef(This) (This)->lpVtbl->AddRef(This)
13107 #define IAMGraphStreams_Release(This) (This)->lpVtbl->Release(This)
13108 #define IAMGraphStreams_FindUpstreamInterface(This,pPin,riid,ppvInterface,dwFlags) (This)->lpVtbl->FindUpstreamInterface(This,pPin,riid,ppvInterface,dwFlags)
13109 #define IAMGraphStreams_SyncUsingStreamOffset(This,bUseStreamOffset) (This)->lpVtbl->SyncUsingStreamOffset(This,bUseStreamOffset)
13110 #define IAMGraphStreams_SetMaxGraphLatency(This,rtMaxGraphLatency) (This)->lpVtbl->SetMaxGraphLatency(This,rtMaxGraphLatency)
13111 #endif
13112 #endif
13113   HRESULT WINAPI IAMGraphStreams_FindUpstreamInterface_Proxy(IAMGraphStreams *This,IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags);
13114   void __RPC_STUB IAMGraphStreams_FindUpstreamInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13115   HRESULT WINAPI IAMGraphStreams_SyncUsingStreamOffset_Proxy(IAMGraphStreams *This,WINBOOL bUseStreamOffset);
13116   void __RPC_STUB IAMGraphStreams_SyncUsingStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13117   HRESULT WINAPI IAMGraphStreams_SetMaxGraphLatency_Proxy(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
13118   void __RPC_STUB IAMGraphStreams_SetMaxGraphLatency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13119 #endif
13120 
13121   enum AMOVERLAYFX {
13122     AMOVERFX_NOFX = 0,AMOVERFX_MIRRORLEFTRIGHT = 0x2,AMOVERFX_MIRRORUPDOWN = 0x4,AMOVERFX_DEINTERLACE = 0x8
13123   };
13124 
13125   extern RPC_IF_HANDLE __MIDL_itf_strmif_0362_v0_0_c_ifspec;
13126   extern RPC_IF_HANDLE __MIDL_itf_strmif_0362_v0_0_s_ifspec;
13127 #ifndef __IAMOverlayFX_INTERFACE_DEFINED__
13128 #define __IAMOverlayFX_INTERFACE_DEFINED__
13129   EXTERN_C const IID IID_IAMOverlayFX;
13130 #if defined(__cplusplus) && !defined(CINTERFACE)
13131   struct IAMOverlayFX : public IUnknown {
13132   public:
13133     virtual HRESULT WINAPI QueryOverlayFXCaps(DWORD *lpdwOverlayFXCaps) = 0;
13134     virtual HRESULT WINAPI SetOverlayFX(DWORD dwOverlayFX) = 0;
13135     virtual HRESULT WINAPI GetOverlayFX(DWORD *lpdwOverlayFX) = 0;
13136   };
13137 #else
13138   typedef struct IAMOverlayFXVtbl {
13139     BEGIN_INTERFACE
13140       HRESULT (WINAPI *QueryInterface)(IAMOverlayFX *This,REFIID riid,void **ppvObject);
13141       ULONG (WINAPI *AddRef)(IAMOverlayFX *This);
13142       ULONG (WINAPI *Release)(IAMOverlayFX *This);
13143       HRESULT (WINAPI *QueryOverlayFXCaps)(IAMOverlayFX *This,DWORD *lpdwOverlayFXCaps);
13144       HRESULT (WINAPI *SetOverlayFX)(IAMOverlayFX *This,DWORD dwOverlayFX);
13145       HRESULT (WINAPI *GetOverlayFX)(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
13146     END_INTERFACE
13147   } IAMOverlayFXVtbl;
13148   struct IAMOverlayFX {
13149     CONST_VTBL struct IAMOverlayFXVtbl *lpVtbl;
13150   };
13151 #ifdef COBJMACROS
13152 #define IAMOverlayFX_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13153 #define IAMOverlayFX_AddRef(This) (This)->lpVtbl->AddRef(This)
13154 #define IAMOverlayFX_Release(This) (This)->lpVtbl->Release(This)
13155 #define IAMOverlayFX_QueryOverlayFXCaps(This,lpdwOverlayFXCaps) (This)->lpVtbl->QueryOverlayFXCaps(This,lpdwOverlayFXCaps)
13156 #define IAMOverlayFX_SetOverlayFX(This,dwOverlayFX) (This)->lpVtbl->SetOverlayFX(This,dwOverlayFX)
13157 #define IAMOverlayFX_GetOverlayFX(This,lpdwOverlayFX) (This)->lpVtbl->GetOverlayFX(This,lpdwOverlayFX)
13158 #endif
13159 #endif
13160   HRESULT WINAPI IAMOverlayFX_QueryOverlayFXCaps_Proxy(IAMOverlayFX *This,DWORD *lpdwOverlayFXCaps);
13161   void __RPC_STUB IAMOverlayFX_QueryOverlayFXCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13162   HRESULT WINAPI IAMOverlayFX_SetOverlayFX_Proxy(IAMOverlayFX *This,DWORD dwOverlayFX);
13163   void __RPC_STUB IAMOverlayFX_SetOverlayFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13164   HRESULT WINAPI IAMOverlayFX_GetOverlayFX_Proxy(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
13165   void __RPC_STUB IAMOverlayFX_GetOverlayFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13166 #endif
13167 
13168 #ifndef __IAMOpenProgress_INTERFACE_DEFINED__
13169 #define __IAMOpenProgress_INTERFACE_DEFINED__
13170   EXTERN_C const IID IID_IAMOpenProgress;
13171 #if defined(__cplusplus) && !defined(CINTERFACE)
13172   struct IAMOpenProgress : public IUnknown {
13173   public:
13174     virtual HRESULT WINAPI QueryProgress(LONGLONG *pllTotal,LONGLONG *pllCurrent) = 0;
13175     virtual HRESULT WINAPI AbortOperation(void) = 0;
13176   };
13177 #else
13178   typedef struct IAMOpenProgressVtbl {
13179     BEGIN_INTERFACE
13180       HRESULT (WINAPI *QueryInterface)(IAMOpenProgress *This,REFIID riid,void **ppvObject);
13181       ULONG (WINAPI *AddRef)(IAMOpenProgress *This);
13182       ULONG (WINAPI *Release)(IAMOpenProgress *This);
13183       HRESULT (WINAPI *QueryProgress)(IAMOpenProgress *This,LONGLONG *pllTotal,LONGLONG *pllCurrent);
13184       HRESULT (WINAPI *AbortOperation)(IAMOpenProgress *This);
13185     END_INTERFACE
13186   } IAMOpenProgressVtbl;
13187   struct IAMOpenProgress {
13188     CONST_VTBL struct IAMOpenProgressVtbl *lpVtbl;
13189   };
13190 #ifdef COBJMACROS
13191 #define IAMOpenProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13192 #define IAMOpenProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
13193 #define IAMOpenProgress_Release(This) (This)->lpVtbl->Release(This)
13194 #define IAMOpenProgress_QueryProgress(This,pllTotal,pllCurrent) (This)->lpVtbl->QueryProgress(This,pllTotal,pllCurrent)
13195 #define IAMOpenProgress_AbortOperation(This) (This)->lpVtbl->AbortOperation(This)
13196 #endif
13197 #endif
13198   HRESULT WINAPI IAMOpenProgress_QueryProgress_Proxy(IAMOpenProgress *This,LONGLONG *pllTotal,LONGLONG *pllCurrent);
13199   void __RPC_STUB IAMOpenProgress_QueryProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13200   HRESULT WINAPI IAMOpenProgress_AbortOperation_Proxy(IAMOpenProgress *This);
13201   void __RPC_STUB IAMOpenProgress_AbortOperation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13202 #endif
13203 
13204 #ifdef __CRT_UUID_DECL
13205 __CRT_UUID_DECL(IMpeg2Demultiplexer,0x436eee9c,0x264f,0x4242,0x90,0xe1,0x4e,0x33,0x0c,0x10,0x75,0x12);
13206 #endif
13207 
13208 #ifndef __IMpeg2Demultiplexer_INTERFACE_DEFINED__
13209 #define __IMpeg2Demultiplexer_INTERFACE_DEFINED__
13210   EXTERN_C const IID IID_IMpeg2Demultiplexer;
13211 #if defined(__cplusplus) && !defined(CINTERFACE)
13212   struct IMpeg2Demultiplexer : public IUnknown {
13213   public:
13214     virtual HRESULT WINAPI CreateOutputPin(AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin) = 0;
13215     virtual HRESULT WINAPI SetOutputPinMediaType(LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType) = 0;
13216     virtual HRESULT WINAPI DeleteOutputPin(LPWSTR pszPinName) = 0;
13217   };
13218 #else
13219   typedef struct IMpeg2DemultiplexerVtbl {
13220     BEGIN_INTERFACE
13221       HRESULT (WINAPI *QueryInterface)(IMpeg2Demultiplexer *This,REFIID riid,void **ppvObject);
13222       ULONG (WINAPI *AddRef)(IMpeg2Demultiplexer *This);
13223       ULONG (WINAPI *Release)(IMpeg2Demultiplexer *This);
13224       HRESULT (WINAPI *CreateOutputPin)(IMpeg2Demultiplexer *This,AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin);
13225       HRESULT (WINAPI *SetOutputPinMediaType)(IMpeg2Demultiplexer *This,LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType);
13226       HRESULT (WINAPI *DeleteOutputPin)(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
13227     END_INTERFACE
13228   } IMpeg2DemultiplexerVtbl;
13229   struct IMpeg2Demultiplexer {
13230     CONST_VTBL struct IMpeg2DemultiplexerVtbl *lpVtbl;
13231   };
13232 #ifdef COBJMACROS
13233 #define IMpeg2Demultiplexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13234 #define IMpeg2Demultiplexer_AddRef(This) (This)->lpVtbl->AddRef(This)
13235 #define IMpeg2Demultiplexer_Release(This) (This)->lpVtbl->Release(This)
13236 #define IMpeg2Demultiplexer_CreateOutputPin(This,pMediaType,pszPinName,ppIPin) (This)->lpVtbl->CreateOutputPin(This,pMediaType,pszPinName,ppIPin)
13237 #define IMpeg2Demultiplexer_SetOutputPinMediaType(This,pszPinName,pMediaType) (This)->lpVtbl->SetOutputPinMediaType(This,pszPinName,pMediaType)
13238 #define IMpeg2Demultiplexer_DeleteOutputPin(This,pszPinName) (This)->lpVtbl->DeleteOutputPin(This,pszPinName)
13239 #endif
13240 #endif
13241   HRESULT WINAPI IMpeg2Demultiplexer_CreateOutputPin_Proxy(IMpeg2Demultiplexer *This,AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin);
13242   void __RPC_STUB IMpeg2Demultiplexer_CreateOutputPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13243   HRESULT WINAPI IMpeg2Demultiplexer_SetOutputPinMediaType_Proxy(IMpeg2Demultiplexer *This,LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType);
13244   void __RPC_STUB IMpeg2Demultiplexer_SetOutputPinMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13245   HRESULT WINAPI IMpeg2Demultiplexer_DeleteOutputPin_Proxy(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
13246   void __RPC_STUB IMpeg2Demultiplexer_DeleteOutputPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13247 #endif
13248 
13249 #define MPEG2_PROGRAM_STREAM_MAP 0x00000000
13250 #define MPEG2_PROGRAM_ELEMENTARY_STREAM 0x00000001
13251 #define MPEG2_PROGRAM_DIRECTORY_PES_PACKET 0x00000002
13252 #define MPEG2_PROGRAM_PACK_HEADER 0x00000003
13253 #define MPEG2_PROGRAM_PES_STREAM 0x00000004
13254 #define MPEG2_PROGRAM_SYSTEM_HEADER 0x00000005
13255 #define SUBSTREAM_FILTER_VAL_NONE 0x10000000
13256 
13257   typedef struct __MIDL___MIDL_itf_strmif_0365_0001 {
13258     ULONG stream_id;
13259     DWORD dwMediaSampleContent;
13260     ULONG ulSubstreamFilterValue;
13261     int iDataOffset;
13262   } STREAM_ID_MAP;
13263 
13264   extern RPC_IF_HANDLE __MIDL_itf_strmif_0365_v0_0_c_ifspec;
13265   extern RPC_IF_HANDLE __MIDL_itf_strmif_0365_v0_0_s_ifspec;
13266 #ifndef __IEnumStreamIdMap_INTERFACE_DEFINED__
13267 #define __IEnumStreamIdMap_INTERFACE_DEFINED__
13268   EXTERN_C const IID IID_IEnumStreamIdMap;
13269 #if defined(__cplusplus) && !defined(CINTERFACE)
13270   struct IEnumStreamIdMap : public IUnknown {
13271   public:
13272     virtual HRESULT WINAPI Next(ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived) = 0;
13273     virtual HRESULT WINAPI Skip(ULONG cRecords) = 0;
13274     virtual HRESULT WINAPI Reset(void) = 0;
13275     virtual HRESULT WINAPI Clone(IEnumStreamIdMap **ppIEnumStreamIdMap) = 0;
13276   };
13277 #else
13278   typedef struct IEnumStreamIdMapVtbl {
13279     BEGIN_INTERFACE
13280       HRESULT (WINAPI *QueryInterface)(IEnumStreamIdMap *This,REFIID riid,void **ppvObject);
13281       ULONG (WINAPI *AddRef)(IEnumStreamIdMap *This);
13282       ULONG (WINAPI *Release)(IEnumStreamIdMap *This);
13283       HRESULT (WINAPI *Next)(IEnumStreamIdMap *This,ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived);
13284       HRESULT (WINAPI *Skip)(IEnumStreamIdMap *This,ULONG cRecords);
13285       HRESULT (WINAPI *Reset)(IEnumStreamIdMap *This);
13286       HRESULT (WINAPI *Clone)(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
13287     END_INTERFACE
13288   } IEnumStreamIdMapVtbl;
13289   struct IEnumStreamIdMap {
13290     CONST_VTBL struct IEnumStreamIdMapVtbl *lpVtbl;
13291   };
13292 #ifdef COBJMACROS
13293 #define IEnumStreamIdMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13294 #define IEnumStreamIdMap_AddRef(This) (This)->lpVtbl->AddRef(This)
13295 #define IEnumStreamIdMap_Release(This) (This)->lpVtbl->Release(This)
13296 #define IEnumStreamIdMap_Next(This,cRequest,pStreamIdMap,pcReceived) (This)->lpVtbl->Next(This,cRequest,pStreamIdMap,pcReceived)
13297 #define IEnumStreamIdMap_Skip(This,cRecords) (This)->lpVtbl->Skip(This,cRecords)
13298 #define IEnumStreamIdMap_Reset(This) (This)->lpVtbl->Reset(This)
13299 #define IEnumStreamIdMap_Clone(This,ppIEnumStreamIdMap) (This)->lpVtbl->Clone(This,ppIEnumStreamIdMap)
13300 #endif
13301 #endif
13302   HRESULT WINAPI IEnumStreamIdMap_Next_Proxy(IEnumStreamIdMap *This,ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived);
13303   void __RPC_STUB IEnumStreamIdMap_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13304   HRESULT WINAPI IEnumStreamIdMap_Skip_Proxy(IEnumStreamIdMap *This,ULONG cRecords);
13305   void __RPC_STUB IEnumStreamIdMap_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13306   HRESULT WINAPI IEnumStreamIdMap_Reset_Proxy(IEnumStreamIdMap *This);
13307   void __RPC_STUB IEnumStreamIdMap_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13308   HRESULT WINAPI IEnumStreamIdMap_Clone_Proxy(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
13309   void __RPC_STUB IEnumStreamIdMap_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13310 #endif
13311 
13312 #ifndef __IMPEG2StreamIdMap_INTERFACE_DEFINED__
13313 #define __IMPEG2StreamIdMap_INTERFACE_DEFINED__
13314   EXTERN_C const IID IID_IMPEG2StreamIdMap;
13315 #if defined(__cplusplus) && !defined(CINTERFACE)
13316   struct IMPEG2StreamIdMap : public IUnknown {
13317   public:
13318     virtual HRESULT WINAPI MapStreamId(ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset) = 0;
13319     virtual HRESULT WINAPI UnmapStreamId(ULONG culStreamId,ULONG *pulStreamId) = 0;
13320     virtual HRESULT WINAPI EnumStreamIdMap(IEnumStreamIdMap **ppIEnumStreamIdMap) = 0;
13321   };
13322 #else
13323   typedef struct IMPEG2StreamIdMapVtbl {
13324     BEGIN_INTERFACE
13325       HRESULT (WINAPI *QueryInterface)(IMPEG2StreamIdMap *This,REFIID riid,void **ppvObject);
13326       ULONG (WINAPI *AddRef)(IMPEG2StreamIdMap *This);
13327       ULONG (WINAPI *Release)(IMPEG2StreamIdMap *This);
13328       HRESULT (WINAPI *MapStreamId)(IMPEG2StreamIdMap *This,ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset);
13329       HRESULT (WINAPI *UnmapStreamId)(IMPEG2StreamIdMap *This,ULONG culStreamId,ULONG *pulStreamId);
13330       HRESULT (WINAPI *EnumStreamIdMap)(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
13331     END_INTERFACE
13332   } IMPEG2StreamIdMapVtbl;
13333   struct IMPEG2StreamIdMap {
13334     CONST_VTBL struct IMPEG2StreamIdMapVtbl *lpVtbl;
13335   };
13336 #ifdef COBJMACROS
13337 #define IMPEG2StreamIdMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13338 #define IMPEG2StreamIdMap_AddRef(This) (This)->lpVtbl->AddRef(This)
13339 #define IMPEG2StreamIdMap_Release(This) (This)->lpVtbl->Release(This)
13340 #define IMPEG2StreamIdMap_MapStreamId(This,ulStreamId,MediaSampleContent,ulSubstreamFilterValue,iDataOffset) (This)->lpVtbl->MapStreamId(This,ulStreamId,MediaSampleContent,ulSubstreamFilterValue,iDataOffset)
13341 #define IMPEG2StreamIdMap_UnmapStreamId(This,culStreamId,pulStreamId) (This)->lpVtbl->UnmapStreamId(This,culStreamId,pulStreamId)
13342 #define IMPEG2StreamIdMap_EnumStreamIdMap(This,ppIEnumStreamIdMap) (This)->lpVtbl->EnumStreamIdMap(This,ppIEnumStreamIdMap)
13343 #endif
13344 #endif
13345   HRESULT WINAPI IMPEG2StreamIdMap_MapStreamId_Proxy(IMPEG2StreamIdMap *This,ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset);
13346   void __RPC_STUB IMPEG2StreamIdMap_MapStreamId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13347   HRESULT WINAPI IMPEG2StreamIdMap_UnmapStreamId_Proxy(IMPEG2StreamIdMap *This,ULONG culStreamId,ULONG *pulStreamId);
13348   void __RPC_STUB IMPEG2StreamIdMap_UnmapStreamId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13349   HRESULT WINAPI IMPEG2StreamIdMap_EnumStreamIdMap_Proxy(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
13350   void __RPC_STUB IMPEG2StreamIdMap_EnumStreamIdMap_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13351 #endif
13352 
13353 #ifndef __IRegisterServiceProvider_INTERFACE_DEFINED__
13354 #define __IRegisterServiceProvider_INTERFACE_DEFINED__
13355   EXTERN_C const IID IID_IRegisterServiceProvider;
13356 #if defined(__cplusplus) && !defined(CINTERFACE)
13357   struct IRegisterServiceProvider : public IUnknown {
13358   public:
13359     virtual HRESULT WINAPI RegisterService(REFGUID guidService,IUnknown *pUnkObject) = 0;
13360   };
13361 #else
13362   typedef struct IRegisterServiceProviderVtbl {
13363     BEGIN_INTERFACE
13364       HRESULT (WINAPI *QueryInterface)(IRegisterServiceProvider *This,REFIID riid,void **ppvObject);
13365       ULONG (WINAPI *AddRef)(IRegisterServiceProvider *This);
13366       ULONG (WINAPI *Release)(IRegisterServiceProvider *This);
13367       HRESULT (WINAPI *RegisterService)(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
13368     END_INTERFACE
13369   } IRegisterServiceProviderVtbl;
13370   struct IRegisterServiceProvider {
13371     CONST_VTBL struct IRegisterServiceProviderVtbl *lpVtbl;
13372   };
13373 #ifdef COBJMACROS
13374 #define IRegisterServiceProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13375 #define IRegisterServiceProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
13376 #define IRegisterServiceProvider_Release(This) (This)->lpVtbl->Release(This)
13377 #define IRegisterServiceProvider_RegisterService(This,guidService,pUnkObject) (This)->lpVtbl->RegisterService(This,guidService,pUnkObject)
13378 #endif
13379 #endif
13380   HRESULT WINAPI IRegisterServiceProvider_RegisterService_Proxy(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
13381   void __RPC_STUB IRegisterServiceProvider_RegisterService_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13382 #endif
13383 
13384 #ifdef __cplusplus
13385 #ifndef _IAMFilterGraphCallback_
13386 #define _IAMFilterGraphCallback_
13387   EXTERN_GUID(IID_IAMFilterGraphCallback,0x56a868fd,0x0ad4,0x11ce,0xb0,0xa3,0x0,0x20,0xaf,0x0b,0xa7,0x70);
13388   struct IAMFilterGraphCallback : public IUnknown {
13389     virtual HRESULT UnableToRender(IPin *pPin) = 0;
13390   };
13391 #endif
13392 #endif
13393   struct CodecAPIEventData {
13394     GUID guid;
13395     DWORD dataLength;
13396     DWORD reserved[3];
13397   };
13398 
13399   extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_c_ifspec;
13400   extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_s_ifspec;
13401 #ifndef __ICodecAPI_INTERFACE_DEFINED__
13402 #define __ICodecAPI_INTERFACE_DEFINED__
13403   EXTERN_C const IID IID_ICodecAPI;
13404 #if defined(__cplusplus) && !defined(CINTERFACE)
13405   struct ICodecAPI : public IUnknown {
13406   public:
13407     virtual HRESULT WINAPI IsSupported(const GUID *Api) = 0;
13408     virtual HRESULT WINAPI IsModifiable(const GUID *Api) = 0;
13409     virtual HRESULT WINAPI GetParameterRange(const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta) = 0;
13410     virtual HRESULT WINAPI GetParameterValues(const GUID *Api,VARIANT **Values,ULONG *ValuesCount) = 0;
13411     virtual HRESULT WINAPI GetDefaultValue(const GUID *Api,VARIANT *Value) = 0;
13412     virtual HRESULT WINAPI GetValue(const GUID *Api,VARIANT *Value) = 0;
13413     virtual HRESULT WINAPI SetValue(const GUID *Api,VARIANT *Value) = 0;
13414     virtual HRESULT WINAPI RegisterForEvent(const GUID *Api,LONG_PTR userData) = 0;
13415     virtual HRESULT WINAPI UnregisterForEvent(const GUID *Api) = 0;
13416     virtual HRESULT WINAPI SetAllDefaults(void) = 0;
13417     virtual HRESULT WINAPI SetValueWithNotify(const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
13418     virtual HRESULT WINAPI SetAllDefaultsWithNotify(GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
13419     virtual HRESULT WINAPI GetAllSettings(IStream *__MIDL_0016) = 0;
13420     virtual HRESULT WINAPI SetAllSettings(IStream *__MIDL_0017) = 0;
13421     virtual HRESULT WINAPI SetAllSettingsWithNotify(IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
13422   };
13423 #else
13424   typedef struct ICodecAPIVtbl {
13425     BEGIN_INTERFACE
13426       HRESULT (WINAPI *QueryInterface)(ICodecAPI *This,REFIID riid,void **ppvObject);
13427       ULONG (WINAPI *AddRef)(ICodecAPI *This);
13428       ULONG (WINAPI *Release)(ICodecAPI *This);
13429       HRESULT (WINAPI *IsSupported)(ICodecAPI *This,const GUID *Api);
13430       HRESULT (WINAPI *IsModifiable)(ICodecAPI *This,const GUID *Api);
13431       HRESULT (WINAPI *GetParameterRange)(ICodecAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
13432       HRESULT (WINAPI *GetParameterValues)(ICodecAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
13433       HRESULT (WINAPI *GetDefaultValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
13434       HRESULT (WINAPI *GetValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
13435       HRESULT (WINAPI *SetValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
13436       HRESULT (WINAPI *RegisterForEvent)(ICodecAPI *This,const GUID *Api,LONG_PTR userData);
13437       HRESULT (WINAPI *UnregisterForEvent)(ICodecAPI *This,const GUID *Api);
13438       HRESULT (WINAPI *SetAllDefaults)(ICodecAPI *This);
13439       HRESULT (WINAPI *SetValueWithNotify)(ICodecAPI *This,const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount);
13440       HRESULT (WINAPI *SetAllDefaultsWithNotify)(ICodecAPI *This,GUID **ChangedParam,ULONG *ChangedParamCount);
13441       HRESULT (WINAPI *GetAllSettings)(ICodecAPI *This,IStream *__MIDL_0016);
13442       HRESULT (WINAPI *SetAllSettings)(ICodecAPI *This,IStream *__MIDL_0017);
13443       HRESULT (WINAPI *SetAllSettingsWithNotify)(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
13444     END_INTERFACE
13445   } ICodecAPIVtbl;
13446   struct ICodecAPI {
13447     CONST_VTBL struct ICodecAPIVtbl *lpVtbl;
13448   };
13449 #ifdef COBJMACROS
13450 #define ICodecAPI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13451 #define ICodecAPI_AddRef(This) (This)->lpVtbl->AddRef(This)
13452 #define ICodecAPI_Release(This) (This)->lpVtbl->Release(This)
13453 #define ICodecAPI_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
13454 #define ICodecAPI_IsModifiable(This,Api) (This)->lpVtbl->IsModifiable(This,Api)
13455 #define ICodecAPI_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
13456 #define ICodecAPI_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
13457 #define ICodecAPI_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
13458 #define ICodecAPI_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
13459 #define ICodecAPI_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
13460 #define ICodecAPI_RegisterForEvent(This,Api,userData) (This)->lpVtbl->RegisterForEvent(This,Api,userData)
13461 #define ICodecAPI_UnregisterForEvent(This,Api) (This)->lpVtbl->UnregisterForEvent(This,Api)
13462 #define ICodecAPI_SetAllDefaults(This) (This)->lpVtbl->SetAllDefaults(This)
13463 #define ICodecAPI_SetValueWithNotify(This,Api,Value,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetValueWithNotify(This,Api,Value,ChangedParam,ChangedParamCount)
13464 #define ICodecAPI_SetAllDefaultsWithNotify(This,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetAllDefaultsWithNotify(This,ChangedParam,ChangedParamCount)
13465 #define ICodecAPI_GetAllSettings(This,__MIDL_0016) (This)->lpVtbl->GetAllSettings(This,__MIDL_0016)
13466 #define ICodecAPI_SetAllSettings(This,__MIDL_0017) (This)->lpVtbl->SetAllSettings(This,__MIDL_0017)
13467 #define ICodecAPI_SetAllSettingsWithNotify(This,__MIDL_0018,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetAllSettingsWithNotify(This,__MIDL_0018,ChangedParam,ChangedParamCount)
13468 #endif
13469 #endif
13470   HRESULT WINAPI ICodecAPI_IsSupported_Proxy(ICodecAPI *This,const GUID *Api);
13471   void __RPC_STUB ICodecAPI_IsSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13472   HRESULT WINAPI ICodecAPI_IsModifiable_Proxy(ICodecAPI *This,const GUID *Api);
13473   void __RPC_STUB ICodecAPI_IsModifiable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13474   HRESULT WINAPI ICodecAPI_GetParameterRange_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
13475   void __RPC_STUB ICodecAPI_GetParameterRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13476   HRESULT WINAPI ICodecAPI_GetParameterValues_Proxy(ICodecAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
13477   void __RPC_STUB ICodecAPI_GetParameterValues_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13478   HRESULT WINAPI ICodecAPI_GetDefaultValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
13479   void __RPC_STUB ICodecAPI_GetDefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13480   HRESULT WINAPI ICodecAPI_GetValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
13481   void __RPC_STUB ICodecAPI_GetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13482   HRESULT WINAPI ICodecAPI_SetValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
13483   void __RPC_STUB ICodecAPI_SetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13484   HRESULT WINAPI ICodecAPI_RegisterForEvent_Proxy(ICodecAPI *This,const GUID *Api,LONG_PTR userData);
13485   void __RPC_STUB ICodecAPI_RegisterForEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13486   HRESULT WINAPI ICodecAPI_UnregisterForEvent_Proxy(ICodecAPI *This,const GUID *Api);
13487   void __RPC_STUB ICodecAPI_UnregisterForEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13488   HRESULT WINAPI ICodecAPI_SetAllDefaults_Proxy(ICodecAPI *This);
13489   void __RPC_STUB ICodecAPI_SetAllDefaults_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13490   HRESULT WINAPI ICodecAPI_SetValueWithNotify_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount);
13491   void __RPC_STUB ICodecAPI_SetValueWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13492   HRESULT WINAPI ICodecAPI_SetAllDefaultsWithNotify_Proxy(ICodecAPI *This,GUID **ChangedParam,ULONG *ChangedParamCount);
13493   void __RPC_STUB ICodecAPI_SetAllDefaultsWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13494   HRESULT WINAPI ICodecAPI_GetAllSettings_Proxy(ICodecAPI *This,IStream *__MIDL_0016);
13495   void __RPC_STUB ICodecAPI_GetAllSettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13496   HRESULT WINAPI ICodecAPI_SetAllSettings_Proxy(ICodecAPI *This,IStream *__MIDL_0017);
13497   void __RPC_STUB ICodecAPI_SetAllSettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13498   HRESULT WINAPI ICodecAPI_SetAllSettingsWithNotify_Proxy(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
13499   void __RPC_STUB ICodecAPI_SetAllSettingsWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13500 #endif
13501 
13502 #ifndef __IGetCapabilitiesKey_INTERFACE_DEFINED__
13503 #define __IGetCapabilitiesKey_INTERFACE_DEFINED__
13504   EXTERN_C const IID IID_IGetCapabilitiesKey;
13505 #if defined(__cplusplus) && !defined(CINTERFACE)
13506   struct IGetCapabilitiesKey : public IUnknown {
13507   public:
13508     virtual HRESULT WINAPI GetCapabilitiesKey(HKEY *pHKey) = 0;
13509   };
13510 #else
13511   typedef struct IGetCapabilitiesKeyVtbl {
13512     BEGIN_INTERFACE
13513       HRESULT (WINAPI *QueryInterface)(IGetCapabilitiesKey *This,REFIID riid,void **ppvObject);
13514       ULONG (WINAPI *AddRef)(IGetCapabilitiesKey *This);
13515       ULONG (WINAPI *Release)(IGetCapabilitiesKey *This);
13516       HRESULT (WINAPI *GetCapabilitiesKey)(IGetCapabilitiesKey *This,HKEY *pHKey);
13517     END_INTERFACE
13518   } IGetCapabilitiesKeyVtbl;
13519   struct IGetCapabilitiesKey {
13520     CONST_VTBL struct IGetCapabilitiesKeyVtbl *lpVtbl;
13521   };
13522 #ifdef COBJMACROS
13523 #define IGetCapabilitiesKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13524 #define IGetCapabilitiesKey_AddRef(This) (This)->lpVtbl->AddRef(This)
13525 #define IGetCapabilitiesKey_Release(This) (This)->lpVtbl->Release(This)
13526 #define IGetCapabilitiesKey_GetCapabilitiesKey(This,pHKey) (This)->lpVtbl->GetCapabilitiesKey(This,pHKey)
13527 #endif
13528 #endif
13529   HRESULT WINAPI IGetCapabilitiesKey_GetCapabilitiesKey_Proxy(IGetCapabilitiesKey *This,HKEY *pHKey);
13530   void __RPC_STUB IGetCapabilitiesKey_GetCapabilitiesKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13531 #endif
13532 
13533 #ifndef __IEncoderAPI_INTERFACE_DEFINED__
13534 #define __IEncoderAPI_INTERFACE_DEFINED__
13535   EXTERN_C const IID IID_IEncoderAPI;
13536 #if defined(__cplusplus) && !defined(CINTERFACE)
13537   struct IEncoderAPI : public IUnknown {
13538   public:
13539     virtual HRESULT WINAPI IsSupported(const GUID *Api) = 0;
13540     virtual HRESULT WINAPI IsAvailable(const GUID *Api) = 0;
13541     virtual HRESULT WINAPI GetParameterRange(const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta) = 0;
13542     virtual HRESULT WINAPI GetParameterValues(const GUID *Api,VARIANT **Values,ULONG *ValuesCount) = 0;
13543     virtual HRESULT WINAPI GetDefaultValue(const GUID *Api,VARIANT *Value) = 0;
13544     virtual HRESULT WINAPI GetValue(const GUID *Api,VARIANT *Value) = 0;
13545     virtual HRESULT WINAPI SetValue(const GUID *Api,VARIANT *Value) = 0;
13546   };
13547 #else
13548   typedef struct IEncoderAPIVtbl {
13549     BEGIN_INTERFACE
13550       HRESULT (WINAPI *QueryInterface)(IEncoderAPI *This,REFIID riid,void **ppvObject);
13551       ULONG (WINAPI *AddRef)(IEncoderAPI *This);
13552       ULONG (WINAPI *Release)(IEncoderAPI *This);
13553       HRESULT (WINAPI *IsSupported)(IEncoderAPI *This,const GUID *Api);
13554       HRESULT (WINAPI *IsAvailable)(IEncoderAPI *This,const GUID *Api);
13555       HRESULT (WINAPI *GetParameterRange)(IEncoderAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
13556       HRESULT (WINAPI *GetParameterValues)(IEncoderAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
13557       HRESULT (WINAPI *GetDefaultValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
13558       HRESULT (WINAPI *GetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
13559       HRESULT (WINAPI *SetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
13560     END_INTERFACE
13561   } IEncoderAPIVtbl;
13562   struct IEncoderAPI {
13563     CONST_VTBL struct IEncoderAPIVtbl *lpVtbl;
13564   };
13565 #ifdef COBJMACROS
13566 #define IEncoderAPI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13567 #define IEncoderAPI_AddRef(This) (This)->lpVtbl->AddRef(This)
13568 #define IEncoderAPI_Release(This) (This)->lpVtbl->Release(This)
13569 #define IEncoderAPI_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
13570 #define IEncoderAPI_IsAvailable(This,Api) (This)->lpVtbl->IsAvailable(This,Api)
13571 #define IEncoderAPI_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
13572 #define IEncoderAPI_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
13573 #define IEncoderAPI_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
13574 #define IEncoderAPI_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
13575 #define IEncoderAPI_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
13576 #endif
13577 #endif
13578   HRESULT WINAPI IEncoderAPI_IsSupported_Proxy(IEncoderAPI *This,const GUID *Api);
13579   void __RPC_STUB IEncoderAPI_IsSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13580   HRESULT WINAPI IEncoderAPI_IsAvailable_Proxy(IEncoderAPI *This,const GUID *Api);
13581   void __RPC_STUB IEncoderAPI_IsAvailable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13582   HRESULT WINAPI IEncoderAPI_GetParameterRange_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
13583   void __RPC_STUB IEncoderAPI_GetParameterRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13584   HRESULT WINAPI IEncoderAPI_GetParameterValues_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
13585   void __RPC_STUB IEncoderAPI_GetParameterValues_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13586   HRESULT WINAPI IEncoderAPI_GetDefaultValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
13587   void __RPC_STUB IEncoderAPI_GetDefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13588   HRESULT WINAPI IEncoderAPI_GetValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
13589   void __RPC_STUB IEncoderAPI_GetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13590   HRESULT WINAPI IEncoderAPI_SetValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
13591   void __RPC_STUB IEncoderAPI_SetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13592 #endif
13593 
13594 #ifndef __IVideoEncoder_INTERFACE_DEFINED__
13595 #define __IVideoEncoder_INTERFACE_DEFINED__
13596   EXTERN_C const IID IID_IVideoEncoder;
13597 #if defined(__cplusplus) && !defined(CINTERFACE)
13598   struct IVideoEncoder : public IEncoderAPI {
13599   public:
13600   };
13601 #else
13602   typedef struct IVideoEncoderVtbl {
13603     BEGIN_INTERFACE
13604       HRESULT (WINAPI *QueryInterface)(IVideoEncoder *This,REFIID riid,void **ppvObject);
13605       ULONG (WINAPI *AddRef)(IVideoEncoder *This);
13606       ULONG (WINAPI *Release)(IVideoEncoder *This);
13607       HRESULT (WINAPI *IsSupported)(IVideoEncoder *This,const GUID *Api);
13608       HRESULT (WINAPI *IsAvailable)(IVideoEncoder *This,const GUID *Api);
13609       HRESULT (WINAPI *GetParameterRange)(IVideoEncoder *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
13610       HRESULT (WINAPI *GetParameterValues)(IVideoEncoder *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
13611       HRESULT (WINAPI *GetDefaultValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
13612       HRESULT (WINAPI *GetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
13613       HRESULT (WINAPI *SetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
13614     END_INTERFACE
13615   } IVideoEncoderVtbl;
13616   struct IVideoEncoder {
13617     CONST_VTBL struct IVideoEncoderVtbl *lpVtbl;
13618   };
13619 #ifdef COBJMACROS
13620 #define IVideoEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13621 #define IVideoEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
13622 #define IVideoEncoder_Release(This) (This)->lpVtbl->Release(This)
13623 #define IVideoEncoder_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
13624 #define IVideoEncoder_IsAvailable(This,Api) (This)->lpVtbl->IsAvailable(This,Api)
13625 #define IVideoEncoder_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
13626 #define IVideoEncoder_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
13627 #define IVideoEncoder_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
13628 #define IVideoEncoder_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
13629 #define IVideoEncoder_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
13630 #endif
13631 #endif
13632 #endif
13633 
13634 #ifndef __ENCODER_API_DEFINES__
13635 #define __ENCODER_API_DEFINES__
13636   typedef enum __MIDL___MIDL_itf_strmif_0374_0001 {
13637     ConstantBitRate = 0,
13638     VariableBitRateAverage,VariableBitRatePeak
13639   } VIDEOENCODER_BITRATE_MODE;
13640 #endif
13641 #define AM_GETDECODERCAP_QUERY_VMR_SUPPORT 0x00000001
13642 #define VMR_NOTSUPPORTED 0x00000000
13643 #define VMR_SUPPORTED 0x00000001
13644 #define AM_QUERY_DECODER_VMR_SUPPORT 0x00000001
13645 #define AM_QUERY_DECODER_DXVA_1_SUPPORT 0x00000002
13646 #define AM_QUERY_DECODER_DVD_SUPPORT 0x00000003
13647 #define AM_QUERY_DECODER_ATSC_SD_SUPPORT 0x00000004
13648 #define AM_QUERY_DECODER_ATSC_HD_SUPPORT 0x00000005
13649 #define AM_GETDECODERCAP_QUERY_VMR9_SUPPORT 0x00000006
13650 #define DECODER_CAP_NOTSUPPORTED 0x00000000
13651 #define DECODER_CAP_SUPPORTED 0x00000001
13652 
13653   extern RPC_IF_HANDLE __MIDL_itf_strmif_0374_v0_0_c_ifspec;
13654   extern RPC_IF_HANDLE __MIDL_itf_strmif_0374_v0_0_s_ifspec;
13655 #ifndef __IAMDecoderCaps_INTERFACE_DEFINED__
13656 #define __IAMDecoderCaps_INTERFACE_DEFINED__
13657   EXTERN_C const IID IID_IAMDecoderCaps;
13658 #if defined(__cplusplus) && !defined(CINTERFACE)
13659   struct IAMDecoderCaps : public IUnknown {
13660   public:
13661     virtual HRESULT WINAPI GetDecoderCaps(DWORD dwCapIndex,DWORD *lpdwCap) = 0;
13662   };
13663 #else
13664   typedef struct IAMDecoderCapsVtbl {
13665     BEGIN_INTERFACE
13666       HRESULT (WINAPI *QueryInterface)(IAMDecoderCaps *This,REFIID riid,void **ppvObject);
13667       ULONG (WINAPI *AddRef)(IAMDecoderCaps *This);
13668       ULONG (WINAPI *Release)(IAMDecoderCaps *This);
13669       HRESULT (WINAPI *GetDecoderCaps)(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
13670     END_INTERFACE
13671   } IAMDecoderCapsVtbl;
13672   struct IAMDecoderCaps {
13673     CONST_VTBL struct IAMDecoderCapsVtbl *lpVtbl;
13674   };
13675 #ifdef COBJMACROS
13676 #define IAMDecoderCaps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13677 #define IAMDecoderCaps_AddRef(This) (This)->lpVtbl->AddRef(This)
13678 #define IAMDecoderCaps_Release(This) (This)->lpVtbl->Release(This)
13679 #define IAMDecoderCaps_GetDecoderCaps(This,dwCapIndex,lpdwCap) (This)->lpVtbl->GetDecoderCaps(This,dwCapIndex,lpdwCap)
13680 #endif
13681 #endif
13682   HRESULT WINAPI IAMDecoderCaps_GetDecoderCaps_Proxy(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
13683   void __RPC_STUB IAMDecoderCaps_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13684 #endif
13685 
13686 #include <ddraw.h>
13687 
13688   typedef enum tagDVD_DOMAIN {
13689     DVD_DOMAIN_FirstPlay = 1,
13690     DVD_DOMAIN_VideoManagerMenu,DVD_DOMAIN_VideoTitleSetMenu,DVD_DOMAIN_Title,
13691     DVD_DOMAIN_Stop
13692   } DVD_DOMAIN;
13693 
13694   typedef enum tagDVD_MENU_ID {
13695     DVD_MENU_Title = 2,DVD_MENU_Root = 3,DVD_MENU_Subpicture = 4,DVD_MENU_Audio = 5,
13696     DVD_MENU_Angle = 6,DVD_MENU_Chapter = 7
13697   } DVD_MENU_ID;
13698 
13699   typedef enum tagDVD_DISC_SIDE {
13700     DVD_SIDE_A = 1,DVD_SIDE_B = 2
13701   } DVD_DISC_SIDE;
13702 
13703   typedef enum tagDVD_PREFERRED_DISPLAY_MODE {
13704     DISPLAY_CONTENT_DEFAULT = 0,DISPLAY_16x9 = 1,DISPLAY_4x3_PANSCAN_PREFERRED = 2,DISPLAY_4x3_LETTERBOX_PREFERRED = 3
13705   } DVD_PREFERRED_DISPLAY_MODE;
13706 
13707   typedef WORD DVD_REGISTER;
13708   typedef DVD_REGISTER GPRMARRAY[16];
13709   typedef DVD_REGISTER SPRMARRAY[24];
13710 
13711   typedef struct tagDVD_ATR {
13712     ULONG ulCAT;
13713     BYTE pbATRI[768];
13714   } DVD_ATR;
13715 
13716   typedef BYTE DVD_VideoATR[2];
13717   typedef BYTE DVD_AudioATR[8];
13718   typedef BYTE DVD_SubpictureATR[6];
13719 
13720   typedef enum tagDVD_FRAMERATE {
13721     DVD_FPS_25 = 1,DVD_FPS_30NonDrop = 3
13722   } DVD_FRAMERATE;
13723 
13724   typedef struct tagDVD_TIMECODE {
13725     ULONG Hours1 :4;
13726     ULONG Hours10 :4;
13727     ULONG Minutes1 :4;
13728     ULONG Minutes10:4;
13729     ULONG Seconds1 :4;
13730     ULONG Seconds10:4;
13731     ULONG Frames1 :4;
13732     ULONG Frames10 :2;
13733     ULONG FrameRateCode: 2;
13734   } DVD_TIMECODE;
13735 
13736   typedef enum tagDVD_TIMECODE_FLAGS {
13737     DVD_TC_FLAG_25fps = 0x1,DVD_TC_FLAG_30fps = 0x2,DVD_TC_FLAG_DropFrame = 0x4,DVD_TC_FLAG_Interpolated = 0x8
13738   } DVD_TIMECODE_FLAGS;
13739 
13740   typedef struct tagDVD_HMSF_TIMECODE {
13741     BYTE bHours;
13742     BYTE bMinutes;
13743     BYTE bSeconds;
13744     BYTE bFrames;
13745   } DVD_HMSF_TIMECODE;
13746 
13747   typedef struct tagDVD_PLAYBACK_LOCATION2 {
13748     ULONG TitleNum;
13749     ULONG ChapterNum;
13750     DVD_HMSF_TIMECODE TimeCode;
13751     ULONG TimeCodeFlags;
13752   } DVD_PLAYBACK_LOCATION2;
13753 
13754   typedef struct tagDVD_PLAYBACK_LOCATION {
13755     ULONG TitleNum;
13756     ULONG ChapterNum;
13757     ULONG TimeCode;
13758   } DVD_PLAYBACK_LOCATION;
13759 
13760   typedef DWORD VALID_UOP_SOMTHING_OR_OTHER;
13761 
13762   typedef enum __MIDL___MIDL_itf_strmif_0376_0001 {
13763     UOP_FLAG_Play_Title_Or_AtTime = 0x1,UOP_FLAG_Play_Chapter = 0x2,UOP_FLAG_Play_Title = 0x4,UOP_FLAG_Stop = 0x8,UOP_FLAG_ReturnFromSubMenu = 0x10,
13764     UOP_FLAG_Play_Chapter_Or_AtTime = 0x20,UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x40,UOP_FLAG_PlayNext_Chapter = 0x80,UOP_FLAG_Play_Forwards = 0x100,
13765     UOP_FLAG_Play_Backwards = 0x200,UOP_FLAG_ShowMenu_Title = 0x400,UOP_FLAG_ShowMenu_Root = 0x800,UOP_FLAG_ShowMenu_SubPic = 0x1000,
13766     UOP_FLAG_ShowMenu_Audio = 0x2000,UOP_FLAG_ShowMenu_Angle = 0x4000,UOP_FLAG_ShowMenu_Chapter = 0x8000,UOP_FLAG_Resume = 0x10000,
13767     UOP_FLAG_Select_Or_Activate_Button = 0x20000,UOP_FLAG_Still_Off = 0x40000,UOP_FLAG_Pause_On = 0x80000,UOP_FLAG_Select_Audio_Stream = 0x100000,
13768     UOP_FLAG_Select_SubPic_Stream = 0x200000,UOP_FLAG_Select_Angle = 0x400000,UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x800000,
13769     UOP_FLAG_Select_Video_Mode_Preference = 0x1000000
13770   } VALID_UOP_FLAG;
13771 
13772   typedef enum __MIDL___MIDL_itf_strmif_0376_0002 {
13773     DVD_CMD_FLAG_None = 0,DVD_CMD_FLAG_Flush = 0x1,DVD_CMD_FLAG_SendEvents = 0x2,DVD_CMD_FLAG_Block = 0x4,DVD_CMD_FLAG_StartWhenRendered = 0x8,
13774     DVD_CMD_FLAG_EndAfterRendered = 0x10
13775   } DVD_CMD_FLAGS;
13776 
13777   typedef enum __MIDL___MIDL_itf_strmif_0376_0003 {
13778     DVD_ResetOnStop = 1,DVD_NotifyParentalLevelChange = 2,DVD_HMSF_TimeCodeEvents = 3,DVD_AudioDuringFFwdRew = 4
13779   } DVD_OPTION_FLAG;
13780 
13781   typedef enum __MIDL___MIDL_itf_strmif_0376_0004 {
13782     DVD_Relative_Upper = 1,DVD_Relative_Lower = 2,DVD_Relative_Left = 3,DVD_Relative_Right = 4
13783   } DVD_RELATIVE_BUTTON;
13784 
13785   typedef enum tagDVD_PARENTAL_LEVEL {
13786     DVD_PARENTAL_LEVEL_8 = 0x8000,DVD_PARENTAL_LEVEL_7 = 0x4000,DVD_PARENTAL_LEVEL_6 = 0x2000,DVD_PARENTAL_LEVEL_5 = 0x1000,
13787     DVD_PARENTAL_LEVEL_4 = 0x800,DVD_PARENTAL_LEVEL_3 = 0x400,DVD_PARENTAL_LEVEL_2 = 0x200,DVD_PARENTAL_LEVEL_1 = 0x100
13788   } DVD_PARENTAL_LEVEL;
13789 
13790   typedef enum tagDVD_AUDIO_LANG_EXT {
13791     DVD_AUD_EXT_NotSpecified = 0,DVD_AUD_EXT_Captions = 1,DVD_AUD_EXT_VisuallyImpaired = 2,DVD_AUD_EXT_DirectorComments1 = 3,
13792     DVD_AUD_EXT_DirectorComments2 = 4
13793   } DVD_AUDIO_LANG_EXT;
13794 
13795   typedef enum tagDVD_SUBPICTURE_LANG_EXT {
13796     DVD_SP_EXT_NotSpecified = 0,DVD_SP_EXT_Caption_Normal = 1,DVD_SP_EXT_Caption_Big = 2,DVD_SP_EXT_Caption_Children = 3,DVD_SP_EXT_CC_Normal = 5,
13797     DVD_SP_EXT_CC_Big = 6,DVD_SP_EXT_CC_Children = 7,DVD_SP_EXT_Forced = 9,DVD_SP_EXT_DirectorComments_Normal = 13,DVD_SP_EXT_DirectorComments_Big = 14,
13798     DVD_SP_EXT_DirectorComments_Children = 15
13799   } DVD_SUBPICTURE_LANG_EXT;
13800 
13801   typedef enum tagDVD_AUDIO_APPMODE {
13802     DVD_AudioMode_None = 0,DVD_AudioMode_Karaoke = 1,DVD_AudioMode_Surround = 2,DVD_AudioMode_Other = 3
13803   } DVD_AUDIO_APPMODE;
13804 
13805   typedef enum tagDVD_AUDIO_FORMAT {
13806     DVD_AudioFormat_AC3 = 0,DVD_AudioFormat_MPEG1 = 1,DVD_AudioFormat_MPEG1_DRC = 2,DVD_AudioFormat_MPEG2 = 3,DVD_AudioFormat_MPEG2_DRC = 4,
13807     DVD_AudioFormat_LPCM = 5,DVD_AudioFormat_DTS = 6,DVD_AudioFormat_SDDS = 7,DVD_AudioFormat_Other = 8
13808   } DVD_AUDIO_FORMAT;
13809 
13810   typedef enum tagDVD_KARAOKE_DOWNMIX {
13811     DVD_Mix_0to0 = 0x1,DVD_Mix_1to0 = 0x2,DVD_Mix_2to0 = 0x4,DVD_Mix_3to0 = 0x8,DVD_Mix_4to0 = 0x10,DVD_Mix_Lto0 = 0x20,DVD_Mix_Rto0 = 0x40,
13812     DVD_Mix_0to1 = 0x100,DVD_Mix_1to1 = 0x200,DVD_Mix_2to1 = 0x400,DVD_Mix_3to1 = 0x800,DVD_Mix_4to1 = 0x1000,DVD_Mix_Lto1 = 0x2000,
13813     DVD_Mix_Rto1 = 0x4000
13814   } DVD_KARAOKE_DOWNMIX;
13815 
13816   typedef struct tagDVD_AudioAttributes {
13817     DVD_AUDIO_APPMODE AppMode;
13818     BYTE AppModeData;
13819     DVD_AUDIO_FORMAT AudioFormat;
13820     LCID Language;
13821     DVD_AUDIO_LANG_EXT LanguageExtension;
13822     WINBOOL fHasMultichannelInfo;
13823     DWORD dwFrequency;
13824     BYTE bQuantization;
13825     BYTE bNumberOfChannels;
13826     DWORD dwReserved[2];
13827   } DVD_AudioAttributes;
13828 
13829   typedef struct tagDVD_MUA_MixingInfo {
13830     WINBOOL fMixTo0;
13831     WINBOOL fMixTo1;
13832     WINBOOL fMix0InPhase;
13833     WINBOOL fMix1InPhase;
13834     DWORD dwSpeakerPosition;
13835   } DVD_MUA_MixingInfo;
13836 
13837   typedef struct tagDVD_MUA_Coeff {
13838     double log2_alpha;
13839     double log2_beta;
13840   } DVD_MUA_Coeff;
13841 
13842   typedef struct tagDVD_MultichannelAudioAttributes {
13843     DVD_MUA_MixingInfo Info[8];
13844     DVD_MUA_Coeff Coeff[8];
13845   } DVD_MultichannelAudioAttributes;
13846 
13847   typedef enum tagDVD_KARAOKE_CONTENTS {
13848     DVD_Karaoke_GuideVocal1 = 0x1,DVD_Karaoke_GuideVocal2 = 0x2,DVD_Karaoke_GuideMelody1 = 0x4,DVD_Karaoke_GuideMelody2 = 0x8,
13849     DVD_Karaoke_GuideMelodyA = 0x10,DVD_Karaoke_GuideMelodyB = 0x20,DVD_Karaoke_SoundEffectA = 0x40,DVD_Karaoke_SoundEffectB = 0x80
13850   } DVD_KARAOKE_CONTENTS;
13851 
13852   typedef enum tagDVD_KARAOKE_ASSIGNMENT {
13853     DVD_Assignment_reserved0 = 0,DVD_Assignment_reserved1 = 1,DVD_Assignment_LR = 2,DVD_Assignment_LRM = 3,DVD_Assignment_LR1 = 4,
13854     DVD_Assignment_LRM1 = 5,DVD_Assignment_LR12 = 6,DVD_Assignment_LRM12 = 7
13855   } DVD_KARAOKE_ASSIGNMENT;
13856 
13857   typedef struct tagDVD_KaraokeAttributes {
13858     BYTE bVersion;
13859     WINBOOL fMasterOfCeremoniesInGuideVocal1;
13860     WINBOOL fDuet;
13861     DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
13862     WORD wChannelContents[8];
13863   } DVD_KaraokeAttributes;
13864 
13865   typedef enum tagDVD_VIDEO_COMPRESSION {
13866     DVD_VideoCompression_Other = 0,DVD_VideoCompression_MPEG1 = 1,DVD_VideoCompression_MPEG2 = 2
13867   } DVD_VIDEO_COMPRESSION;
13868 
13869   typedef struct tagDVD_VideoAttributes {
13870     WINBOOL fPanscanPermitted;
13871     WINBOOL fLetterboxPermitted;
13872     ULONG ulAspectX;
13873     ULONG ulAspectY;
13874     ULONG ulFrameRate;
13875     ULONG ulFrameHeight;
13876     DVD_VIDEO_COMPRESSION Compression;
13877     WINBOOL fLine21Field1InGOP;
13878     WINBOOL fLine21Field2InGOP;
13879     ULONG ulSourceResolutionX;
13880     ULONG ulSourceResolutionY;
13881     WINBOOL fIsSourceLetterboxed;
13882     WINBOOL fIsFilmMode;
13883   } DVD_VideoAttributes;
13884 
13885   typedef enum tagDVD_SUBPICTURE_TYPE {
13886     DVD_SPType_NotSpecified = 0,DVD_SPType_Language = 1,DVD_SPType_Other = 2
13887   } DVD_SUBPICTURE_TYPE;
13888 
13889   typedef enum tagDVD_SUBPICTURE_CODING {
13890     DVD_SPCoding_RunLength = 0,DVD_SPCoding_Extended = 1,DVD_SPCoding_Other = 2
13891   } DVD_SUBPICTURE_CODING;
13892 
13893   typedef struct tagDVD_SubpictureAttributes {
13894     DVD_SUBPICTURE_TYPE Type;
13895     DVD_SUBPICTURE_CODING CodingMode;
13896     LCID Language;
13897     DVD_SUBPICTURE_LANG_EXT LanguageExtension;
13898   } DVD_SubpictureAttributes;
13899 
13900   typedef enum tagDVD_TITLE_APPMODE {
13901     DVD_AppMode_Not_Specified = 0,DVD_AppMode_Karaoke = 1,DVD_AppMode_Other = 3
13902   } DVD_TITLE_APPMODE;
13903 
13904   typedef struct tagDVD_TitleMainAttributes {
13905     DVD_TITLE_APPMODE AppMode;
13906     DVD_VideoAttributes VideoAttributes;
13907     ULONG ulNumberOfAudioStreams;
13908     DVD_AudioAttributes AudioAttributes[8];
13909     DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8];
13910     ULONG ulNumberOfSubpictureStreams;
13911     DVD_SubpictureAttributes SubpictureAttributes[32];
13912   } DVD_TitleAttributes;
13913 
13914   typedef struct tagDVD_MenuAttributes {
13915     WINBOOL fCompatibleRegion[8];
13916     DVD_VideoAttributes VideoAttributes;
13917     WINBOOL fAudioPresent;
13918     DVD_AudioAttributes AudioAttributes;
13919     WINBOOL fSubpicturePresent;
13920     DVD_SubpictureAttributes SubpictureAttributes;
13921   } DVD_MenuAttributes;
13922 
13923   extern RPC_IF_HANDLE __MIDL_itf_strmif_0376_v0_0_c_ifspec;
13924   extern RPC_IF_HANDLE __MIDL_itf_strmif_0376_v0_0_s_ifspec;
13925 #ifndef __IDvdControl_INTERFACE_DEFINED__
13926 #define __IDvdControl_INTERFACE_DEFINED__
13927   EXTERN_C const IID IID_IDvdControl;
13928 #if defined(__cplusplus) && !defined(CINTERFACE)
13929   struct IDvdControl : public IUnknown {
13930   public:
13931     virtual HRESULT WINAPI TitlePlay(ULONG ulTitle) = 0;
13932     virtual HRESULT WINAPI ChapterPlay(ULONG ulTitle,ULONG ulChapter) = 0;
13933     virtual HRESULT WINAPI TimePlay(ULONG ulTitle,ULONG bcdTime) = 0;
13934     virtual HRESULT WINAPI StopForResume(void) = 0;
13935     virtual HRESULT WINAPI GoUp(void) = 0;
13936     virtual HRESULT WINAPI TimeSearch(ULONG bcdTime) = 0;
13937     virtual HRESULT WINAPI ChapterSearch(ULONG ulChapter) = 0;
13938     virtual HRESULT WINAPI PrevPGSearch(void) = 0;
13939     virtual HRESULT WINAPI TopPGSearch(void) = 0;
13940     virtual HRESULT WINAPI NextPGSearch(void) = 0;
13941     virtual HRESULT WINAPI ForwardScan(double dwSpeed) = 0;
13942     virtual HRESULT WINAPI BackwardScan(double dwSpeed) = 0;
13943     virtual HRESULT WINAPI MenuCall(DVD_MENU_ID MenuID) = 0;
13944     virtual HRESULT WINAPI Resume(void) = 0;
13945     virtual HRESULT WINAPI UpperButtonSelect(void) = 0;
13946     virtual HRESULT WINAPI LowerButtonSelect(void) = 0;
13947     virtual HRESULT WINAPI LeftButtonSelect(void) = 0;
13948     virtual HRESULT WINAPI RightButtonSelect(void) = 0;
13949     virtual HRESULT WINAPI ButtonActivate(void) = 0;
13950     virtual HRESULT WINAPI ButtonSelectAndActivate(ULONG ulButton) = 0;
13951     virtual HRESULT WINAPI StillOff(void) = 0;
13952     virtual HRESULT WINAPI PauseOn(void) = 0;
13953     virtual HRESULT WINAPI PauseOff(void) = 0;
13954     virtual HRESULT WINAPI MenuLanguageSelect(LCID Language) = 0;
13955     virtual HRESULT WINAPI AudioStreamChange(ULONG ulAudio) = 0;
13956     virtual HRESULT WINAPI SubpictureStreamChange(ULONG ulSubPicture,WINBOOL bDisplay) = 0;
13957     virtual HRESULT WINAPI AngleChange(ULONG ulAngle) = 0;
13958     virtual HRESULT WINAPI ParentalLevelSelect(ULONG ulParentalLevel) = 0;
13959     virtual HRESULT WINAPI ParentalCountrySelect(WORD wCountry) = 0;
13960     virtual HRESULT WINAPI KaraokeAudioPresentationModeChange(ULONG ulMode) = 0;
13961     virtual HRESULT WINAPI VideoModePreferrence(ULONG ulPreferredDisplayMode) = 0;
13962     virtual HRESULT WINAPI SetRoot(LPCWSTR pszPath) = 0;
13963     virtual HRESULT WINAPI MouseActivate(POINT point) = 0;
13964     virtual HRESULT WINAPI MouseSelect(POINT point) = 0;
13965     virtual HRESULT WINAPI ChapterPlayAutoStop(ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay) = 0;
13966   };
13967 #else
13968   typedef struct IDvdControlVtbl {
13969     BEGIN_INTERFACE
13970       HRESULT (WINAPI *QueryInterface)(IDvdControl *This,REFIID riid,void **ppvObject);
13971       ULONG (WINAPI *AddRef)(IDvdControl *This);
13972       ULONG (WINAPI *Release)(IDvdControl *This);
13973       HRESULT (WINAPI *TitlePlay)(IDvdControl *This,ULONG ulTitle);
13974       HRESULT (WINAPI *ChapterPlay)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter);
13975       HRESULT (WINAPI *TimePlay)(IDvdControl *This,ULONG ulTitle,ULONG bcdTime);
13976       HRESULT (WINAPI *StopForResume)(IDvdControl *This);
13977       HRESULT (WINAPI *GoUp)(IDvdControl *This);
13978       HRESULT (WINAPI *TimeSearch)(IDvdControl *This,ULONG bcdTime);
13979       HRESULT (WINAPI *ChapterSearch)(IDvdControl *This,ULONG ulChapter);
13980       HRESULT (WINAPI *PrevPGSearch)(IDvdControl *This);
13981       HRESULT (WINAPI *TopPGSearch)(IDvdControl *This);
13982       HRESULT (WINAPI *NextPGSearch)(IDvdControl *This);
13983       HRESULT (WINAPI *ForwardScan)(IDvdControl *This,double dwSpeed);
13984       HRESULT (WINAPI *BackwardScan)(IDvdControl *This,double dwSpeed);
13985       HRESULT (WINAPI *MenuCall)(IDvdControl *This,DVD_MENU_ID MenuID);
13986       HRESULT (WINAPI *Resume)(IDvdControl *This);
13987       HRESULT (WINAPI *UpperButtonSelect)(IDvdControl *This);
13988       HRESULT (WINAPI *LowerButtonSelect)(IDvdControl *This);
13989       HRESULT (WINAPI *LeftButtonSelect)(IDvdControl *This);
13990       HRESULT (WINAPI *RightButtonSelect)(IDvdControl *This);
13991       HRESULT (WINAPI *ButtonActivate)(IDvdControl *This);
13992       HRESULT (WINAPI *ButtonSelectAndActivate)(IDvdControl *This,ULONG ulButton);
13993       HRESULT (WINAPI *StillOff)(IDvdControl *This);
13994       HRESULT (WINAPI *PauseOn)(IDvdControl *This);
13995       HRESULT (WINAPI *PauseOff)(IDvdControl *This);
13996       HRESULT (WINAPI *MenuLanguageSelect)(IDvdControl *This,LCID Language);
13997       HRESULT (WINAPI *AudioStreamChange)(IDvdControl *This,ULONG ulAudio);
13998       HRESULT (WINAPI *SubpictureStreamChange)(IDvdControl *This,ULONG ulSubPicture,WINBOOL bDisplay);
13999       HRESULT (WINAPI *AngleChange)(IDvdControl *This,ULONG ulAngle);
14000       HRESULT (WINAPI *ParentalLevelSelect)(IDvdControl *This,ULONG ulParentalLevel);
14001       HRESULT (WINAPI *ParentalCountrySelect)(IDvdControl *This,WORD wCountry);
14002       HRESULT (WINAPI *KaraokeAudioPresentationModeChange)(IDvdControl *This,ULONG ulMode);
14003       HRESULT (WINAPI *VideoModePreferrence)(IDvdControl *This,ULONG ulPreferredDisplayMode);
14004       HRESULT (WINAPI *SetRoot)(IDvdControl *This,LPCWSTR pszPath);
14005       HRESULT (WINAPI *MouseActivate)(IDvdControl *This,POINT point);
14006       HRESULT (WINAPI *MouseSelect)(IDvdControl *This,POINT point);
14007       HRESULT (WINAPI *ChapterPlayAutoStop)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
14008     END_INTERFACE
14009   } IDvdControlVtbl;
14010   struct IDvdControl {
14011     CONST_VTBL struct IDvdControlVtbl *lpVtbl;
14012   };
14013 #ifdef COBJMACROS
14014 #define IDvdControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14015 #define IDvdControl_AddRef(This) (This)->lpVtbl->AddRef(This)
14016 #define IDvdControl_Release(This) (This)->lpVtbl->Release(This)
14017 #define IDvdControl_TitlePlay(This,ulTitle) (This)->lpVtbl->TitlePlay(This,ulTitle)
14018 #define IDvdControl_ChapterPlay(This,ulTitle,ulChapter) (This)->lpVtbl->ChapterPlay(This,ulTitle,ulChapter)
14019 #define IDvdControl_TimePlay(This,ulTitle,bcdTime) (This)->lpVtbl->TimePlay(This,ulTitle,bcdTime)
14020 #define IDvdControl_StopForResume(This) (This)->lpVtbl->StopForResume(This)
14021 #define IDvdControl_GoUp(This) (This)->lpVtbl->GoUp(This)
14022 #define IDvdControl_TimeSearch(This,bcdTime) (This)->lpVtbl->TimeSearch(This,bcdTime)
14023 #define IDvdControl_ChapterSearch(This,ulChapter) (This)->lpVtbl->ChapterSearch(This,ulChapter)
14024 #define IDvdControl_PrevPGSearch(This) (This)->lpVtbl->PrevPGSearch(This)
14025 #define IDvdControl_TopPGSearch(This) (This)->lpVtbl->TopPGSearch(This)
14026 #define IDvdControl_NextPGSearch(This) (This)->lpVtbl->NextPGSearch(This)
14027 #define IDvdControl_ForwardScan(This,dwSpeed) (This)->lpVtbl->ForwardScan(This,dwSpeed)
14028 #define IDvdControl_BackwardScan(This,dwSpeed) (This)->lpVtbl->BackwardScan(This,dwSpeed)
14029 #define IDvdControl_MenuCall(This,MenuID) (This)->lpVtbl->MenuCall(This,MenuID)
14030 #define IDvdControl_Resume(This) (This)->lpVtbl->Resume(This)
14031 #define IDvdControl_UpperButtonSelect(This) (This)->lpVtbl->UpperButtonSelect(This)
14032 #define IDvdControl_LowerButtonSelect(This) (This)->lpVtbl->LowerButtonSelect(This)
14033 #define IDvdControl_LeftButtonSelect(This) (This)->lpVtbl->LeftButtonSelect(This)
14034 #define IDvdControl_RightButtonSelect(This) (This)->lpVtbl->RightButtonSelect(This)
14035 #define IDvdControl_ButtonActivate(This) (This)->lpVtbl->ButtonActivate(This)
14036 #define IDvdControl_ButtonSelectAndActivate(This,ulButton) (This)->lpVtbl->ButtonSelectAndActivate(This,ulButton)
14037 #define IDvdControl_StillOff(This) (This)->lpVtbl->StillOff(This)
14038 #define IDvdControl_PauseOn(This) (This)->lpVtbl->PauseOn(This)
14039 #define IDvdControl_PauseOff(This) (This)->lpVtbl->PauseOff(This)
14040 #define IDvdControl_MenuLanguageSelect(This,Language) (This)->lpVtbl->MenuLanguageSelect(This,Language)
14041 #define IDvdControl_AudioStreamChange(This,ulAudio) (This)->lpVtbl->AudioStreamChange(This,ulAudio)
14042 #define IDvdControl_SubpictureStreamChange(This,ulSubPicture,bDisplay) (This)->lpVtbl->SubpictureStreamChange(This,ulSubPicture,bDisplay)
14043 #define IDvdControl_AngleChange(This,ulAngle) (This)->lpVtbl->AngleChange(This,ulAngle)
14044 #define IDvdControl_ParentalLevelSelect(This,ulParentalLevel) (This)->lpVtbl->ParentalLevelSelect(This,ulParentalLevel)
14045 #define IDvdControl_ParentalCountrySelect(This,wCountry) (This)->lpVtbl->ParentalCountrySelect(This,wCountry)
14046 #define IDvdControl_KaraokeAudioPresentationModeChange(This,ulMode) (This)->lpVtbl->KaraokeAudioPresentationModeChange(This,ulMode)
14047 #define IDvdControl_VideoModePreferrence(This,ulPreferredDisplayMode) (This)->lpVtbl->VideoModePreferrence(This,ulPreferredDisplayMode)
14048 #define IDvdControl_SetRoot(This,pszPath) (This)->lpVtbl->SetRoot(This,pszPath)
14049 #define IDvdControl_MouseActivate(This,point) (This)->lpVtbl->MouseActivate(This,point)
14050 #define IDvdControl_MouseSelect(This,point) (This)->lpVtbl->MouseSelect(This,point)
14051 #define IDvdControl_ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay) (This)->lpVtbl->ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay)
14052 #endif
14053 #endif
14054   HRESULT WINAPI IDvdControl_TitlePlay_Proxy(IDvdControl *This,ULONG ulTitle);
14055   void __RPC_STUB IDvdControl_TitlePlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14056   HRESULT WINAPI IDvdControl_ChapterPlay_Proxy(IDvdControl *This,ULONG ulTitle,ULONG ulChapter);
14057   void __RPC_STUB IDvdControl_ChapterPlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14058   HRESULT WINAPI IDvdControl_TimePlay_Proxy(IDvdControl *This,ULONG ulTitle,ULONG bcdTime);
14059   void __RPC_STUB IDvdControl_TimePlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14060   HRESULT WINAPI IDvdControl_StopForResume_Proxy(IDvdControl *This);
14061   void __RPC_STUB IDvdControl_StopForResume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14062   HRESULT WINAPI IDvdControl_GoUp_Proxy(IDvdControl *This);
14063   void __RPC_STUB IDvdControl_GoUp_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14064   HRESULT WINAPI IDvdControl_TimeSearch_Proxy(IDvdControl *This,ULONG bcdTime);
14065   void __RPC_STUB IDvdControl_TimeSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14066   HRESULT WINAPI IDvdControl_ChapterSearch_Proxy(IDvdControl *This,ULONG ulChapter);
14067   void __RPC_STUB IDvdControl_ChapterSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14068   HRESULT WINAPI IDvdControl_PrevPGSearch_Proxy(IDvdControl *This);
14069   void __RPC_STUB IDvdControl_PrevPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14070   HRESULT WINAPI IDvdControl_TopPGSearch_Proxy(IDvdControl *This);
14071   void __RPC_STUB IDvdControl_TopPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14072   HRESULT WINAPI IDvdControl_NextPGSearch_Proxy(IDvdControl *This);
14073   void __RPC_STUB IDvdControl_NextPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14074   HRESULT WINAPI IDvdControl_ForwardScan_Proxy(IDvdControl *This,double dwSpeed);
14075   void __RPC_STUB IDvdControl_ForwardScan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14076   HRESULT WINAPI IDvdControl_BackwardScan_Proxy(IDvdControl *This,double dwSpeed);
14077   void __RPC_STUB IDvdControl_BackwardScan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14078   HRESULT WINAPI IDvdControl_MenuCall_Proxy(IDvdControl *This,DVD_MENU_ID MenuID);
14079   void __RPC_STUB IDvdControl_MenuCall_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14080   HRESULT WINAPI IDvdControl_Resume_Proxy(IDvdControl *This);
14081   void __RPC_STUB IDvdControl_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14082   HRESULT WINAPI IDvdControl_UpperButtonSelect_Proxy(IDvdControl *This);
14083   void __RPC_STUB IDvdControl_UpperButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14084   HRESULT WINAPI IDvdControl_LowerButtonSelect_Proxy(IDvdControl *This);
14085   void __RPC_STUB IDvdControl_LowerButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14086   HRESULT WINAPI IDvdControl_LeftButtonSelect_Proxy(IDvdControl *This);
14087   void __RPC_STUB IDvdControl_LeftButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14088   HRESULT WINAPI IDvdControl_RightButtonSelect_Proxy(IDvdControl *This);
14089   void __RPC_STUB IDvdControl_RightButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14090   HRESULT WINAPI IDvdControl_ButtonActivate_Proxy(IDvdControl *This);
14091   void __RPC_STUB IDvdControl_ButtonActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14092   HRESULT WINAPI IDvdControl_ButtonSelectAndActivate_Proxy(IDvdControl *This,ULONG ulButton);
14093   void __RPC_STUB IDvdControl_ButtonSelectAndActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14094   HRESULT WINAPI IDvdControl_StillOff_Proxy(IDvdControl *This);
14095   void __RPC_STUB IDvdControl_StillOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14096   HRESULT WINAPI IDvdControl_PauseOn_Proxy(IDvdControl *This);
14097   void __RPC_STUB IDvdControl_PauseOn_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14098   HRESULT WINAPI IDvdControl_PauseOff_Proxy(IDvdControl *This);
14099   void __RPC_STUB IDvdControl_PauseOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14100   HRESULT WINAPI IDvdControl_MenuLanguageSelect_Proxy(IDvdControl *This,LCID Language);
14101   void __RPC_STUB IDvdControl_MenuLanguageSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14102   HRESULT WINAPI IDvdControl_AudioStreamChange_Proxy(IDvdControl *This,ULONG ulAudio);
14103   void __RPC_STUB IDvdControl_AudioStreamChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14104   HRESULT WINAPI IDvdControl_SubpictureStreamChange_Proxy(IDvdControl *This,ULONG ulSubPicture,WINBOOL bDisplay);
14105   void __RPC_STUB IDvdControl_SubpictureStreamChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14106   HRESULT WINAPI IDvdControl_AngleChange_Proxy(IDvdControl *This,ULONG ulAngle);
14107   void __RPC_STUB IDvdControl_AngleChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14108   HRESULT WINAPI IDvdControl_ParentalLevelSelect_Proxy(IDvdControl *This,ULONG ulParentalLevel);
14109   void __RPC_STUB IDvdControl_ParentalLevelSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14110   HRESULT WINAPI IDvdControl_ParentalCountrySelect_Proxy(IDvdControl *This,WORD wCountry);
14111   void __RPC_STUB IDvdControl_ParentalCountrySelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14112   HRESULT WINAPI IDvdControl_KaraokeAudioPresentationModeChange_Proxy(IDvdControl *This,ULONG ulMode);
14113   void __RPC_STUB IDvdControl_KaraokeAudioPresentationModeChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14114   HRESULT WINAPI IDvdControl_VideoModePreferrence_Proxy(IDvdControl *This,ULONG ulPreferredDisplayMode);
14115   void __RPC_STUB IDvdControl_VideoModePreferrence_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14116   HRESULT WINAPI IDvdControl_SetRoot_Proxy(IDvdControl *This,LPCWSTR pszPath);
14117   void __RPC_STUB IDvdControl_SetRoot_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14118   HRESULT WINAPI IDvdControl_MouseActivate_Proxy(IDvdControl *This,POINT point);
14119   void __RPC_STUB IDvdControl_MouseActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14120   HRESULT WINAPI IDvdControl_MouseSelect_Proxy(IDvdControl *This,POINT point);
14121   void __RPC_STUB IDvdControl_MouseSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14122   HRESULT WINAPI IDvdControl_ChapterPlayAutoStop_Proxy(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
14123   void __RPC_STUB IDvdControl_ChapterPlayAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14124 #endif
14125 
14126 #ifndef __IDvdInfo_INTERFACE_DEFINED__
14127 #define __IDvdInfo_INTERFACE_DEFINED__
14128   EXTERN_C const IID IID_IDvdInfo;
14129 #if defined(__cplusplus) && !defined(CINTERFACE)
14130   struct IDvdInfo : public IUnknown {
14131   public:
14132     virtual HRESULT WINAPI GetCurrentDomain(DVD_DOMAIN *pDomain) = 0;
14133     virtual HRESULT WINAPI GetCurrentLocation(DVD_PLAYBACK_LOCATION *pLocation) = 0;
14134     virtual HRESULT WINAPI GetTotalTitleTime(ULONG *pulTotalTime) = 0;
14135     virtual HRESULT WINAPI GetCurrentButton(ULONG *pulButtonsAvailable,ULONG *pulCurrentButton) = 0;
14136     virtual HRESULT WINAPI GetCurrentAngle(ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle) = 0;
14137     virtual HRESULT WINAPI GetCurrentAudio(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream) = 0;
14138     virtual HRESULT WINAPI GetCurrentSubpicture(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled) = 0;
14139     virtual HRESULT WINAPI GetCurrentUOPS(VALID_UOP_SOMTHING_OR_OTHER *pUOP) = 0;
14140     virtual HRESULT WINAPI GetAllSPRMs(SPRMARRAY *pRegisterArray) = 0;
14141     virtual HRESULT WINAPI GetAllGPRMs(GPRMARRAY *pRegisterArray) = 0;
14142     virtual HRESULT WINAPI GetAudioLanguage(ULONG ulStream,LCID *pLanguage) = 0;
14143     virtual HRESULT WINAPI GetSubpictureLanguage(ULONG ulStream,LCID *pLanguage) = 0;
14144     virtual HRESULT WINAPI GetTitleAttributes(ULONG ulTitle,DVD_ATR *pATR) = 0;
14145     virtual HRESULT WINAPI GetVMGAttributes(DVD_ATR *pATR) = 0;
14146     virtual HRESULT WINAPI GetCurrentVideoAttributes(DVD_VideoATR *pATR) = 0;
14147     virtual HRESULT WINAPI GetCurrentAudioAttributes(DVD_AudioATR *pATR) = 0;
14148     virtual HRESULT WINAPI GetCurrentSubpictureAttributes(DVD_SubpictureATR *pATR) = 0;
14149     virtual HRESULT WINAPI GetCurrentVolumeInfo(ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles) = 0;
14150     virtual HRESULT WINAPI GetDVDTextInfo(BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize) = 0;
14151     virtual HRESULT WINAPI GetPlayerParentalLevel(ULONG *pulParentalLevel,ULONG *pulCountryCode) = 0;
14152     virtual HRESULT WINAPI GetNumberOfChapters(ULONG ulTitle,ULONG *pulNumberOfChapters) = 0;
14153     virtual HRESULT WINAPI GetTitleParentalLevels(ULONG ulTitle,ULONG *pulParentalLevels) = 0;
14154     virtual HRESULT WINAPI GetRoot(LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize) = 0;
14155   };
14156 #else
14157   typedef struct IDvdInfoVtbl {
14158     BEGIN_INTERFACE
14159       HRESULT (WINAPI *QueryInterface)(IDvdInfo *This,REFIID riid,void **ppvObject);
14160       ULONG (WINAPI *AddRef)(IDvdInfo *This);
14161       ULONG (WINAPI *Release)(IDvdInfo *This);
14162       HRESULT (WINAPI *GetCurrentDomain)(IDvdInfo *This,DVD_DOMAIN *pDomain);
14163       HRESULT (WINAPI *GetCurrentLocation)(IDvdInfo *This,DVD_PLAYBACK_LOCATION *pLocation);
14164       HRESULT (WINAPI *GetTotalTitleTime)(IDvdInfo *This,ULONG *pulTotalTime);
14165       HRESULT (WINAPI *GetCurrentButton)(IDvdInfo *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
14166       HRESULT (WINAPI *GetCurrentAngle)(IDvdInfo *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
14167       HRESULT (WINAPI *GetCurrentAudio)(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
14168       HRESULT (WINAPI *GetCurrentSubpicture)(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled);
14169       HRESULT (WINAPI *GetCurrentUOPS)(IDvdInfo *This,VALID_UOP_SOMTHING_OR_OTHER *pUOP);
14170       HRESULT (WINAPI *GetAllSPRMs)(IDvdInfo *This,SPRMARRAY *pRegisterArray);
14171       HRESULT (WINAPI *GetAllGPRMs)(IDvdInfo *This,GPRMARRAY *pRegisterArray);
14172       HRESULT (WINAPI *GetAudioLanguage)(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
14173       HRESULT (WINAPI *GetSubpictureLanguage)(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
14174       HRESULT (WINAPI *GetTitleAttributes)(IDvdInfo *This,ULONG ulTitle,DVD_ATR *pATR);
14175       HRESULT (WINAPI *GetVMGAttributes)(IDvdInfo *This,DVD_ATR *pATR);
14176       HRESULT (WINAPI *GetCurrentVideoAttributes)(IDvdInfo *This,DVD_VideoATR *pATR);
14177       HRESULT (WINAPI *GetCurrentAudioAttributes)(IDvdInfo *This,DVD_AudioATR *pATR);
14178       HRESULT (WINAPI *GetCurrentSubpictureAttributes)(IDvdInfo *This,DVD_SubpictureATR *pATR);
14179       HRESULT (WINAPI *GetCurrentVolumeInfo)(IDvdInfo *This,ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
14180       HRESULT (WINAPI *GetDVDTextInfo)(IDvdInfo *This,BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize);
14181       HRESULT (WINAPI *GetPlayerParentalLevel)(IDvdInfo *This,ULONG *pulParentalLevel,ULONG *pulCountryCode);
14182       HRESULT (WINAPI *GetNumberOfChapters)(IDvdInfo *This,ULONG ulTitle,ULONG *pulNumberOfChapters);
14183       HRESULT (WINAPI *GetTitleParentalLevels)(IDvdInfo *This,ULONG ulTitle,ULONG *pulParentalLevels);
14184       HRESULT (WINAPI *GetRoot)(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
14185     END_INTERFACE
14186   } IDvdInfoVtbl;
14187   struct IDvdInfo {
14188     CONST_VTBL struct IDvdInfoVtbl *lpVtbl;
14189   };
14190 #ifdef COBJMACROS
14191 #define IDvdInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14192 #define IDvdInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
14193 #define IDvdInfo_Release(This) (This)->lpVtbl->Release(This)
14194 #define IDvdInfo_GetCurrentDomain(This,pDomain) (This)->lpVtbl->GetCurrentDomain(This,pDomain)
14195 #define IDvdInfo_GetCurrentLocation(This,pLocation) (This)->lpVtbl->GetCurrentLocation(This,pLocation)
14196 #define IDvdInfo_GetTotalTitleTime(This,pulTotalTime) (This)->lpVtbl->GetTotalTitleTime(This,pulTotalTime)
14197 #define IDvdInfo_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton) (This)->lpVtbl->GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
14198 #define IDvdInfo_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle) (This)->lpVtbl->GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
14199 #define IDvdInfo_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream) (This)->lpVtbl->GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
14200 #define IDvdInfo_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled) (This)->lpVtbl->GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled)
14201 #define IDvdInfo_GetCurrentUOPS(This,pUOP) (This)->lpVtbl->GetCurrentUOPS(This,pUOP)
14202 #define IDvdInfo_GetAllSPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllSPRMs(This,pRegisterArray)
14203 #define IDvdInfo_GetAllGPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllGPRMs(This,pRegisterArray)
14204 #define IDvdInfo_GetAudioLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetAudioLanguage(This,ulStream,pLanguage)
14205 #define IDvdInfo_GetSubpictureLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetSubpictureLanguage(This,ulStream,pLanguage)
14206 #define IDvdInfo_GetTitleAttributes(This,ulTitle,pATR) (This)->lpVtbl->GetTitleAttributes(This,ulTitle,pATR)
14207 #define IDvdInfo_GetVMGAttributes(This,pATR) (This)->lpVtbl->GetVMGAttributes(This,pATR)
14208 #define IDvdInfo_GetCurrentVideoAttributes(This,pATR) (This)->lpVtbl->GetCurrentVideoAttributes(This,pATR)
14209 #define IDvdInfo_GetCurrentAudioAttributes(This,pATR) (This)->lpVtbl->GetCurrentAudioAttributes(This,pATR)
14210 #define IDvdInfo_GetCurrentSubpictureAttributes(This,pATR) (This)->lpVtbl->GetCurrentSubpictureAttributes(This,pATR)
14211 #define IDvdInfo_GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles) (This)->lpVtbl->GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles)
14212 #define IDvdInfo_GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize) (This)->lpVtbl->GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize)
14213 #define IDvdInfo_GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode) (This)->lpVtbl->GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode)
14214 #define IDvdInfo_GetNumberOfChapters(This,ulTitle,pulNumberOfChapters) (This)->lpVtbl->GetNumberOfChapters(This,ulTitle,pulNumberOfChapters)
14215 #define IDvdInfo_GetTitleParentalLevels(This,ulTitle,pulParentalLevels) (This)->lpVtbl->GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
14216 #define IDvdInfo_GetRoot(This,pRoot,ulBufSize,pulActualSize) (This)->lpVtbl->GetRoot(This,pRoot,ulBufSize,pulActualSize)
14217 #endif
14218 #endif
14219   HRESULT WINAPI IDvdInfo_GetCurrentDomain_Proxy(IDvdInfo *This,DVD_DOMAIN *pDomain);
14220   void __RPC_STUB IDvdInfo_GetCurrentDomain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14221   HRESULT WINAPI IDvdInfo_GetCurrentLocation_Proxy(IDvdInfo *This,DVD_PLAYBACK_LOCATION *pLocation);
14222   void __RPC_STUB IDvdInfo_GetCurrentLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14223   HRESULT WINAPI IDvdInfo_GetTotalTitleTime_Proxy(IDvdInfo *This,ULONG *pulTotalTime);
14224   void __RPC_STUB IDvdInfo_GetTotalTitleTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14225   HRESULT WINAPI IDvdInfo_GetCurrentButton_Proxy(IDvdInfo *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
14226   void __RPC_STUB IDvdInfo_GetCurrentButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14227   HRESULT WINAPI IDvdInfo_GetCurrentAngle_Proxy(IDvdInfo *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
14228   void __RPC_STUB IDvdInfo_GetCurrentAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14229   HRESULT WINAPI IDvdInfo_GetCurrentAudio_Proxy(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
14230   void __RPC_STUB IDvdInfo_GetCurrentAudio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14231   HRESULT WINAPI IDvdInfo_GetCurrentSubpicture_Proxy(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled);
14232   void __RPC_STUB IDvdInfo_GetCurrentSubpicture_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14233   HRESULT WINAPI IDvdInfo_GetCurrentUOPS_Proxy(IDvdInfo *This,VALID_UOP_SOMTHING_OR_OTHER *pUOP);
14234   void __RPC_STUB IDvdInfo_GetCurrentUOPS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14235   HRESULT WINAPI IDvdInfo_GetAllSPRMs_Proxy(IDvdInfo *This,SPRMARRAY *pRegisterArray);
14236   void __RPC_STUB IDvdInfo_GetAllSPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14237   HRESULT WINAPI IDvdInfo_GetAllGPRMs_Proxy(IDvdInfo *This,GPRMARRAY *pRegisterArray);
14238   void __RPC_STUB IDvdInfo_GetAllGPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14239   HRESULT WINAPI IDvdInfo_GetAudioLanguage_Proxy(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
14240   void __RPC_STUB IDvdInfo_GetAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14241   HRESULT WINAPI IDvdInfo_GetSubpictureLanguage_Proxy(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
14242   void __RPC_STUB IDvdInfo_GetSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14243   HRESULT WINAPI IDvdInfo_GetTitleAttributes_Proxy(IDvdInfo *This,ULONG ulTitle,DVD_ATR *pATR);
14244   void __RPC_STUB IDvdInfo_GetTitleAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14245   HRESULT WINAPI IDvdInfo_GetVMGAttributes_Proxy(IDvdInfo *This,DVD_ATR *pATR);
14246   void __RPC_STUB IDvdInfo_GetVMGAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14247   HRESULT WINAPI IDvdInfo_GetCurrentVideoAttributes_Proxy(IDvdInfo *This,DVD_VideoATR *pATR);
14248   void __RPC_STUB IDvdInfo_GetCurrentVideoAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14249   HRESULT WINAPI IDvdInfo_GetCurrentAudioAttributes_Proxy(IDvdInfo *This,DVD_AudioATR *pATR);
14250   void __RPC_STUB IDvdInfo_GetCurrentAudioAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14251   HRESULT WINAPI IDvdInfo_GetCurrentSubpictureAttributes_Proxy(IDvdInfo *This,DVD_SubpictureATR *pATR);
14252   void __RPC_STUB IDvdInfo_GetCurrentSubpictureAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14253   HRESULT WINAPI IDvdInfo_GetCurrentVolumeInfo_Proxy(IDvdInfo *This,ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
14254   void __RPC_STUB IDvdInfo_GetCurrentVolumeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14255   HRESULT WINAPI IDvdInfo_GetDVDTextInfo_Proxy(IDvdInfo *This,BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize);
14256   void __RPC_STUB IDvdInfo_GetDVDTextInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14257   HRESULT WINAPI IDvdInfo_GetPlayerParentalLevel_Proxy(IDvdInfo *This,ULONG *pulParentalLevel,ULONG *pulCountryCode);
14258   void __RPC_STUB IDvdInfo_GetPlayerParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14259   HRESULT WINAPI IDvdInfo_GetNumberOfChapters_Proxy(IDvdInfo *This,ULONG ulTitle,ULONG *pulNumberOfChapters);
14260   void __RPC_STUB IDvdInfo_GetNumberOfChapters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14261   HRESULT WINAPI IDvdInfo_GetTitleParentalLevels_Proxy(IDvdInfo *This,ULONG ulTitle,ULONG *pulParentalLevels);
14262   void __RPC_STUB IDvdInfo_GetTitleParentalLevels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14263   HRESULT WINAPI IDvdInfo_GetRoot_Proxy(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
14264   void __RPC_STUB IDvdInfo_GetRoot_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14265 #endif
14266 
14267 #ifndef __IDvdCmd_INTERFACE_DEFINED__
14268 #define __IDvdCmd_INTERFACE_DEFINED__
14269   EXTERN_C const IID IID_IDvdCmd;
14270 #if defined(__cplusplus) && !defined(CINTERFACE)
14271   struct IDvdCmd : public IUnknown {
14272   public:
14273     virtual HRESULT WINAPI WaitForStart(void) = 0;
14274     virtual HRESULT WINAPI WaitForEnd(void) = 0;
14275   };
14276 #else
14277   typedef struct IDvdCmdVtbl {
14278     BEGIN_INTERFACE
14279       HRESULT (WINAPI *QueryInterface)(IDvdCmd *This,REFIID riid,void **ppvObject);
14280       ULONG (WINAPI *AddRef)(IDvdCmd *This);
14281       ULONG (WINAPI *Release)(IDvdCmd *This);
14282       HRESULT (WINAPI *WaitForStart)(IDvdCmd *This);
14283       HRESULT (WINAPI *WaitForEnd)(IDvdCmd *This);
14284     END_INTERFACE
14285   } IDvdCmdVtbl;
14286   struct IDvdCmd {
14287     CONST_VTBL struct IDvdCmdVtbl *lpVtbl;
14288   };
14289 #ifdef COBJMACROS
14290 #define IDvdCmd_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14291 #define IDvdCmd_AddRef(This) (This)->lpVtbl->AddRef(This)
14292 #define IDvdCmd_Release(This) (This)->lpVtbl->Release(This)
14293 #define IDvdCmd_WaitForStart(This) (This)->lpVtbl->WaitForStart(This)
14294 #define IDvdCmd_WaitForEnd(This) (This)->lpVtbl->WaitForEnd(This)
14295 #endif
14296 #endif
14297   HRESULT WINAPI IDvdCmd_WaitForStart_Proxy(IDvdCmd *This);
14298   void __RPC_STUB IDvdCmd_WaitForStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14299   HRESULT WINAPI IDvdCmd_WaitForEnd_Proxy(IDvdCmd *This);
14300   void __RPC_STUB IDvdCmd_WaitForEnd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14301 #endif
14302 
14303 #ifndef __IDvdState_INTERFACE_DEFINED__
14304 #define __IDvdState_INTERFACE_DEFINED__
14305   EXTERN_C const IID IID_IDvdState;
14306 #if defined(__cplusplus) && !defined(CINTERFACE)
14307   struct IDvdState : public IUnknown {
14308   public:
14309     virtual HRESULT WINAPI GetDiscID(ULONGLONG *pullUniqueID) = 0;
14310     virtual HRESULT WINAPI GetParentalLevel(ULONG *pulParentalLevel) = 0;
14311   };
14312 #else
14313   typedef struct IDvdStateVtbl {
14314     BEGIN_INTERFACE
14315       HRESULT (WINAPI *QueryInterface)(IDvdState *This,REFIID riid,void **ppvObject);
14316       ULONG (WINAPI *AddRef)(IDvdState *This);
14317       ULONG (WINAPI *Release)(IDvdState *This);
14318       HRESULT (WINAPI *GetDiscID)(IDvdState *This,ULONGLONG *pullUniqueID);
14319       HRESULT (WINAPI *GetParentalLevel)(IDvdState *This,ULONG *pulParentalLevel);
14320     END_INTERFACE
14321   } IDvdStateVtbl;
14322   struct IDvdState {
14323     CONST_VTBL struct IDvdStateVtbl *lpVtbl;
14324   };
14325 #ifdef COBJMACROS
14326 #define IDvdState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14327 #define IDvdState_AddRef(This) (This)->lpVtbl->AddRef(This)
14328 #define IDvdState_Release(This) (This)->lpVtbl->Release(This)
14329 #define IDvdState_GetDiscID(This,pullUniqueID) (This)->lpVtbl->GetDiscID(This,pullUniqueID)
14330 #define IDvdState_GetParentalLevel(This,pulParentalLevel) (This)->lpVtbl->GetParentalLevel(This,pulParentalLevel)
14331 #endif
14332 #endif
14333   HRESULT WINAPI IDvdState_GetDiscID_Proxy(IDvdState *This,ULONGLONG *pullUniqueID);
14334   void __RPC_STUB IDvdState_GetDiscID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14335   HRESULT WINAPI IDvdState_GetParentalLevel_Proxy(IDvdState *This,ULONG *pulParentalLevel);
14336   void __RPC_STUB IDvdState_GetParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14337 #endif
14338 
14339 #ifndef __IDvdControl2_INTERFACE_DEFINED__
14340 #define __IDvdControl2_INTERFACE_DEFINED__
14341   EXTERN_C const IID IID_IDvdControl2;
14342 #if defined(__cplusplus) && !defined(CINTERFACE)
14343   struct IDvdControl2 : public IUnknown {
14344   public:
14345     virtual HRESULT WINAPI PlayTitle(ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14346     virtual HRESULT WINAPI PlayChapterInTitle(ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14347     virtual HRESULT WINAPI PlayAtTimeInTitle(ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14348     virtual HRESULT WINAPI Stop(void) = 0;
14349     virtual HRESULT WINAPI ReturnFromSubmenu(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14350     virtual HRESULT WINAPI PlayAtTime(DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14351     virtual HRESULT WINAPI PlayChapter(ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14352     virtual HRESULT WINAPI PlayPrevChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14353     virtual HRESULT WINAPI ReplayChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14354     virtual HRESULT WINAPI PlayNextChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14355     virtual HRESULT WINAPI PlayForwards(double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14356     virtual HRESULT WINAPI PlayBackwards(double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14357     virtual HRESULT WINAPI ShowMenu(DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14358     virtual HRESULT WINAPI Resume(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14359     virtual HRESULT WINAPI SelectRelativeButton(DVD_RELATIVE_BUTTON buttonDir) = 0;
14360     virtual HRESULT WINAPI ActivateButton(void) = 0;
14361     virtual HRESULT WINAPI SelectButton(ULONG ulButton) = 0;
14362     virtual HRESULT WINAPI SelectAndActivateButton(ULONG ulButton) = 0;
14363     virtual HRESULT WINAPI StillOff(void) = 0;
14364     virtual HRESULT WINAPI Pause(WINBOOL bState) = 0;
14365     virtual HRESULT WINAPI SelectAudioStream(ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14366     virtual HRESULT WINAPI SelectSubpictureStream(ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14367     virtual HRESULT WINAPI SetSubpictureState(WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14368     virtual HRESULT WINAPI SelectAngle(ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14369     virtual HRESULT WINAPI SelectParentalLevel(ULONG ulParentalLevel) = 0;
14370     virtual HRESULT WINAPI SelectParentalCountry(BYTE bCountry[2]) = 0;
14371     virtual HRESULT WINAPI SelectKaraokeAudioPresentationMode(ULONG ulMode) = 0;
14372     virtual HRESULT WINAPI SelectVideoModePreference(ULONG ulPreferredDisplayMode) = 0;
14373     virtual HRESULT WINAPI SetDVDDirectory(LPCWSTR pszwPath) = 0;
14374     virtual HRESULT WINAPI ActivateAtPosition(POINT point) = 0;
14375     virtual HRESULT WINAPI SelectAtPosition(POINT point) = 0;
14376     virtual HRESULT WINAPI PlayChaptersAutoStop(ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14377     virtual HRESULT WINAPI AcceptParentalLevelChange(WINBOOL bAccept) = 0;
14378     virtual HRESULT WINAPI SetOption(DVD_OPTION_FLAG flag,WINBOOL fState) = 0;
14379     virtual HRESULT WINAPI SetState(IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14380     virtual HRESULT WINAPI PlayPeriodInTitleAutoStop(ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14381     virtual HRESULT WINAPI SetGPRM(ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14382     virtual HRESULT WINAPI SelectDefaultMenuLanguage(LCID Language) = 0;
14383     virtual HRESULT WINAPI SelectDefaultAudioLanguage(LCID Language,DVD_AUDIO_LANG_EXT audioExtension) = 0;
14384     virtual HRESULT WINAPI SelectDefaultSubpictureLanguage(LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension) = 0;
14385   };
14386 #else
14387   typedef struct IDvdControl2Vtbl {
14388     BEGIN_INTERFACE
14389       HRESULT (WINAPI *QueryInterface)(IDvdControl2 *This,REFIID riid,void **ppvObject);
14390       ULONG (WINAPI *AddRef)(IDvdControl2 *This);
14391       ULONG (WINAPI *Release)(IDvdControl2 *This);
14392       HRESULT (WINAPI *PlayTitle)(IDvdControl2 *This,ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd);
14393       HRESULT (WINAPI *PlayChapterInTitle)(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
14394       HRESULT (WINAPI *PlayAtTimeInTitle)(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd);
14395       HRESULT (WINAPI *Stop)(IDvdControl2 *This);
14396       HRESULT (WINAPI *ReturnFromSubmenu)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14397       HRESULT (WINAPI *PlayAtTime)(IDvdControl2 *This,DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd);
14398       HRESULT (WINAPI *PlayChapter)(IDvdControl2 *This,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
14399       HRESULT (WINAPI *PlayPrevChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14400       HRESULT (WINAPI *ReplayChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14401       HRESULT (WINAPI *PlayNextChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14402       HRESULT (WINAPI *PlayForwards)(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
14403       HRESULT (WINAPI *PlayBackwards)(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
14404       HRESULT (WINAPI *ShowMenu)(IDvdControl2 *This,DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd);
14405       HRESULT (WINAPI *Resume)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14406       HRESULT (WINAPI *SelectRelativeButton)(IDvdControl2 *This,DVD_RELATIVE_BUTTON buttonDir);
14407       HRESULT (WINAPI *ActivateButton)(IDvdControl2 *This);
14408       HRESULT (WINAPI *SelectButton)(IDvdControl2 *This,ULONG ulButton);
14409       HRESULT (WINAPI *SelectAndActivateButton)(IDvdControl2 *This,ULONG ulButton);
14410       HRESULT (WINAPI *StillOff)(IDvdControl2 *This);
14411       HRESULT (WINAPI *Pause)(IDvdControl2 *This,WINBOOL bState);
14412       HRESULT (WINAPI *SelectAudioStream)(IDvdControl2 *This,ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd);
14413       HRESULT (WINAPI *SelectSubpictureStream)(IDvdControl2 *This,ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd);
14414       HRESULT (WINAPI *SetSubpictureState)(IDvdControl2 *This,WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd);
14415       HRESULT (WINAPI *SelectAngle)(IDvdControl2 *This,ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd);
14416       HRESULT (WINAPI *SelectParentalLevel)(IDvdControl2 *This,ULONG ulParentalLevel);
14417       HRESULT (WINAPI *SelectParentalCountry)(IDvdControl2 *This,BYTE bCountry[2]);
14418       HRESULT (WINAPI *SelectKaraokeAudioPresentationMode)(IDvdControl2 *This,ULONG ulMode);
14419       HRESULT (WINAPI *SelectVideoModePreference)(IDvdControl2 *This,ULONG ulPreferredDisplayMode);
14420       HRESULT (WINAPI *SetDVDDirectory)(IDvdControl2 *This,LPCWSTR pszwPath);
14421       HRESULT (WINAPI *ActivateAtPosition)(IDvdControl2 *This,POINT point);
14422       HRESULT (WINAPI *SelectAtPosition)(IDvdControl2 *This,POINT point);
14423       HRESULT (WINAPI *PlayChaptersAutoStop)(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd);
14424       HRESULT (WINAPI *AcceptParentalLevelChange)(IDvdControl2 *This,WINBOOL bAccept);
14425       HRESULT (WINAPI *SetOption)(IDvdControl2 *This,DVD_OPTION_FLAG flag,WINBOOL fState);
14426       HRESULT (WINAPI *SetState)(IDvdControl2 *This,IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd);
14427       HRESULT (WINAPI *PlayPeriodInTitleAutoStop)(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd);
14428       HRESULT (WINAPI *SetGPRM)(IDvdControl2 *This,ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd);
14429       HRESULT (WINAPI *SelectDefaultMenuLanguage)(IDvdControl2 *This,LCID Language);
14430       HRESULT (WINAPI *SelectDefaultAudioLanguage)(IDvdControl2 *This,LCID Language,DVD_AUDIO_LANG_EXT audioExtension);
14431       HRESULT (WINAPI *SelectDefaultSubpictureLanguage)(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
14432     END_INTERFACE
14433   } IDvdControl2Vtbl;
14434   struct IDvdControl2 {
14435     CONST_VTBL struct IDvdControl2Vtbl *lpVtbl;
14436   };
14437 #ifdef COBJMACROS
14438 #define IDvdControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14439 #define IDvdControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
14440 #define IDvdControl2_Release(This) (This)->lpVtbl->Release(This)
14441 #define IDvdControl2_PlayTitle(This,ulTitle,dwFlags,ppCmd) (This)->lpVtbl->PlayTitle(This,ulTitle,dwFlags,ppCmd)
14442 #define IDvdControl2_PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd) (This)->lpVtbl->PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd)
14443 #define IDvdControl2_PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd) (This)->lpVtbl->PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd)
14444 #define IDvdControl2_Stop(This) (This)->lpVtbl->Stop(This)
14445 #define IDvdControl2_ReturnFromSubmenu(This,dwFlags,ppCmd) (This)->lpVtbl->ReturnFromSubmenu(This,dwFlags,ppCmd)
14446 #define IDvdControl2_PlayAtTime(This,pTime,dwFlags,ppCmd) (This)->lpVtbl->PlayAtTime(This,pTime,dwFlags,ppCmd)
14447 #define IDvdControl2_PlayChapter(This,ulChapter,dwFlags,ppCmd) (This)->lpVtbl->PlayChapter(This,ulChapter,dwFlags,ppCmd)
14448 #define IDvdControl2_PlayPrevChapter(This,dwFlags,ppCmd) (This)->lpVtbl->PlayPrevChapter(This,dwFlags,ppCmd)
14449 #define IDvdControl2_ReplayChapter(This,dwFlags,ppCmd) (This)->lpVtbl->ReplayChapter(This,dwFlags,ppCmd)
14450 #define IDvdControl2_PlayNextChapter(This,dwFlags,ppCmd) (This)->lpVtbl->PlayNextChapter(This,dwFlags,ppCmd)
14451 #define IDvdControl2_PlayForwards(This,dSpeed,dwFlags,ppCmd) (This)->lpVtbl->PlayForwards(This,dSpeed,dwFlags,ppCmd)
14452 #define IDvdControl2_PlayBackwards(This,dSpeed,dwFlags,ppCmd) (This)->lpVtbl->PlayBackwards(This,dSpeed,dwFlags,ppCmd)
14453 #define IDvdControl2_ShowMenu(This,MenuID,dwFlags,ppCmd) (This)->lpVtbl->ShowMenu(This,MenuID,dwFlags,ppCmd)
14454 #define IDvdControl2_Resume(This,dwFlags,ppCmd) (This)->lpVtbl->Resume(This,dwFlags,ppCmd)
14455 #define IDvdControl2_SelectRelativeButton(This,buttonDir) (This)->lpVtbl->SelectRelativeButton(This,buttonDir)
14456 #define IDvdControl2_ActivateButton(This) (This)->lpVtbl->ActivateButton(This)
14457 #define IDvdControl2_SelectButton(This,ulButton) (This)->lpVtbl->SelectButton(This,ulButton)
14458 #define IDvdControl2_SelectAndActivateButton(This,ulButton) (This)->lpVtbl->SelectAndActivateButton(This,ulButton)
14459 #define IDvdControl2_StillOff(This) (This)->lpVtbl->StillOff(This)
14460 #define IDvdControl2_Pause(This,bState) (This)->lpVtbl->Pause(This,bState)
14461 #define IDvdControl2_SelectAudioStream(This,ulAudio,dwFlags,ppCmd) (This)->lpVtbl->SelectAudioStream(This,ulAudio,dwFlags,ppCmd)
14462 #define IDvdControl2_SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd) (This)->lpVtbl->SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd)
14463 #define IDvdControl2_SetSubpictureState(This,bState,dwFlags,ppCmd) (This)->lpVtbl->SetSubpictureState(This,bState,dwFlags,ppCmd)
14464 #define IDvdControl2_SelectAngle(This,ulAngle,dwFlags,ppCmd) (This)->lpVtbl->SelectAngle(This,ulAngle,dwFlags,ppCmd)
14465 #define IDvdControl2_SelectParentalLevel(This,ulParentalLevel) (This)->lpVtbl->SelectParentalLevel(This,ulParentalLevel)
14466 #define IDvdControl2_SelectParentalCountry(This,bCountry) (This)->lpVtbl->SelectParentalCountry(This,bCountry)
14467 #define IDvdControl2_SelectKaraokeAudioPresentationMode(This,ulMode) (This)->lpVtbl->SelectKaraokeAudioPresentationMode(This,ulMode)
14468 #define IDvdControl2_SelectVideoModePreference(This,ulPreferredDisplayMode) (This)->lpVtbl->SelectVideoModePreference(This,ulPreferredDisplayMode)
14469 #define IDvdControl2_SetDVDDirectory(This,pszwPath) (This)->lpVtbl->SetDVDDirectory(This,pszwPath)
14470 #define IDvdControl2_ActivateAtPosition(This,point) (This)->lpVtbl->ActivateAtPosition(This,point)
14471 #define IDvdControl2_SelectAtPosition(This,point) (This)->lpVtbl->SelectAtPosition(This,point)
14472 #define IDvdControl2_PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd) (This)->lpVtbl->PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd)
14473 #define IDvdControl2_AcceptParentalLevelChange(This,bAccept) (This)->lpVtbl->AcceptParentalLevelChange(This,bAccept)
14474 #define IDvdControl2_SetOption(This,flag,fState) (This)->lpVtbl->SetOption(This,flag,fState)
14475 #define IDvdControl2_SetState(This,pState,dwFlags,ppCmd) (This)->lpVtbl->SetState(This,pState,dwFlags,ppCmd)
14476 #define IDvdControl2_PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd) (This)->lpVtbl->PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd)
14477 #define IDvdControl2_SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd) (This)->lpVtbl->SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd)
14478 #define IDvdControl2_SelectDefaultMenuLanguage(This,Language) (This)->lpVtbl->SelectDefaultMenuLanguage(This,Language)
14479 #define IDvdControl2_SelectDefaultAudioLanguage(This,Language,audioExtension) (This)->lpVtbl->SelectDefaultAudioLanguage(This,Language,audioExtension)
14480 #define IDvdControl2_SelectDefaultSubpictureLanguage(This,Language,subpictureExtension) (This)->lpVtbl->SelectDefaultSubpictureLanguage(This,Language,subpictureExtension)
14481 #endif
14482 #endif
14483   HRESULT WINAPI IDvdControl2_PlayTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd);
14484   void __RPC_STUB IDvdControl2_PlayTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14485   HRESULT WINAPI IDvdControl2_PlayChapterInTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
14486   void __RPC_STUB IDvdControl2_PlayChapterInTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14487   HRESULT WINAPI IDvdControl2_PlayAtTimeInTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd);
14488   void __RPC_STUB IDvdControl2_PlayAtTimeInTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14489   HRESULT WINAPI IDvdControl2_Stop_Proxy(IDvdControl2 *This);
14490   void __RPC_STUB IDvdControl2_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14491   HRESULT WINAPI IDvdControl2_ReturnFromSubmenu_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14492   void __RPC_STUB IDvdControl2_ReturnFromSubmenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14493   HRESULT WINAPI IDvdControl2_PlayAtTime_Proxy(IDvdControl2 *This,DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd);
14494   void __RPC_STUB IDvdControl2_PlayAtTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14495   HRESULT WINAPI IDvdControl2_PlayChapter_Proxy(IDvdControl2 *This,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
14496   void __RPC_STUB IDvdControl2_PlayChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14497   HRESULT WINAPI IDvdControl2_PlayPrevChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14498   void __RPC_STUB IDvdControl2_PlayPrevChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14499   HRESULT WINAPI IDvdControl2_ReplayChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14500   void __RPC_STUB IDvdControl2_ReplayChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14501   HRESULT WINAPI IDvdControl2_PlayNextChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14502   void __RPC_STUB IDvdControl2_PlayNextChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14503   HRESULT WINAPI IDvdControl2_PlayForwards_Proxy(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
14504   void __RPC_STUB IDvdControl2_PlayForwards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14505   HRESULT WINAPI IDvdControl2_PlayBackwards_Proxy(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
14506   void __RPC_STUB IDvdControl2_PlayBackwards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14507   HRESULT WINAPI IDvdControl2_ShowMenu_Proxy(IDvdControl2 *This,DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd);
14508   void __RPC_STUB IDvdControl2_ShowMenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14509   HRESULT WINAPI IDvdControl2_Resume_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14510   void __RPC_STUB IDvdControl2_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14511   HRESULT WINAPI IDvdControl2_SelectRelativeButton_Proxy(IDvdControl2 *This,DVD_RELATIVE_BUTTON buttonDir);
14512   void __RPC_STUB IDvdControl2_SelectRelativeButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14513   HRESULT WINAPI IDvdControl2_ActivateButton_Proxy(IDvdControl2 *This);
14514   void __RPC_STUB IDvdControl2_ActivateButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14515   HRESULT WINAPI IDvdControl2_SelectButton_Proxy(IDvdControl2 *This,ULONG ulButton);
14516   void __RPC_STUB IDvdControl2_SelectButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14517   HRESULT WINAPI IDvdControl2_SelectAndActivateButton_Proxy(IDvdControl2 *This,ULONG ulButton);
14518   void __RPC_STUB IDvdControl2_SelectAndActivateButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14519   HRESULT WINAPI IDvdControl2_StillOff_Proxy(IDvdControl2 *This);
14520   void __RPC_STUB IDvdControl2_StillOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14521   HRESULT WINAPI IDvdControl2_Pause_Proxy(IDvdControl2 *This,WINBOOL bState);
14522   void __RPC_STUB IDvdControl2_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14523   HRESULT WINAPI IDvdControl2_SelectAudioStream_Proxy(IDvdControl2 *This,ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd);
14524   void __RPC_STUB IDvdControl2_SelectAudioStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14525   HRESULT WINAPI IDvdControl2_SelectSubpictureStream_Proxy(IDvdControl2 *This,ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd);
14526   void __RPC_STUB IDvdControl2_SelectSubpictureStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14527   HRESULT WINAPI IDvdControl2_SetSubpictureState_Proxy(IDvdControl2 *This,WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd);
14528   void __RPC_STUB IDvdControl2_SetSubpictureState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14529   HRESULT WINAPI IDvdControl2_SelectAngle_Proxy(IDvdControl2 *This,ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd);
14530   void __RPC_STUB IDvdControl2_SelectAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14531   HRESULT WINAPI IDvdControl2_SelectParentalLevel_Proxy(IDvdControl2 *This,ULONG ulParentalLevel);
14532   void __RPC_STUB IDvdControl2_SelectParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14533   HRESULT WINAPI IDvdControl2_SelectParentalCountry_Proxy(IDvdControl2 *This,BYTE bCountry[2]);
14534   void __RPC_STUB IDvdControl2_SelectParentalCountry_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14535   HRESULT WINAPI IDvdControl2_SelectKaraokeAudioPresentationMode_Proxy(IDvdControl2 *This,ULONG ulMode);
14536   void __RPC_STUB IDvdControl2_SelectKaraokeAudioPresentationMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14537   HRESULT WINAPI IDvdControl2_SelectVideoModePreference_Proxy(IDvdControl2 *This,ULONG ulPreferredDisplayMode);
14538   void __RPC_STUB IDvdControl2_SelectVideoModePreference_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14539   HRESULT WINAPI IDvdControl2_SetDVDDirectory_Proxy(IDvdControl2 *This,LPCWSTR pszwPath);
14540   void __RPC_STUB IDvdControl2_SetDVDDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14541   HRESULT WINAPI IDvdControl2_ActivateAtPosition_Proxy(IDvdControl2 *This,POINT point);
14542   void __RPC_STUB IDvdControl2_ActivateAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14543   HRESULT WINAPI IDvdControl2_SelectAtPosition_Proxy(IDvdControl2 *This,POINT point);
14544   void __RPC_STUB IDvdControl2_SelectAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14545   HRESULT WINAPI IDvdControl2_PlayChaptersAutoStop_Proxy(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd);
14546   void __RPC_STUB IDvdControl2_PlayChaptersAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14547   HRESULT WINAPI IDvdControl2_AcceptParentalLevelChange_Proxy(IDvdControl2 *This,WINBOOL bAccept);
14548   void __RPC_STUB IDvdControl2_AcceptParentalLevelChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14549   HRESULT WINAPI IDvdControl2_SetOption_Proxy(IDvdControl2 *This,DVD_OPTION_FLAG flag,WINBOOL fState);
14550   void __RPC_STUB IDvdControl2_SetOption_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14551   HRESULT WINAPI IDvdControl2_SetState_Proxy(IDvdControl2 *This,IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd);
14552   void __RPC_STUB IDvdControl2_SetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14553   HRESULT WINAPI IDvdControl2_PlayPeriodInTitleAutoStop_Proxy(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd);
14554   void __RPC_STUB IDvdControl2_PlayPeriodInTitleAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14555   HRESULT WINAPI IDvdControl2_SetGPRM_Proxy(IDvdControl2 *This,ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd);
14556   void __RPC_STUB IDvdControl2_SetGPRM_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14557   HRESULT WINAPI IDvdControl2_SelectDefaultMenuLanguage_Proxy(IDvdControl2 *This,LCID Language);
14558   void __RPC_STUB IDvdControl2_SelectDefaultMenuLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14559   HRESULT WINAPI IDvdControl2_SelectDefaultAudioLanguage_Proxy(IDvdControl2 *This,LCID Language,DVD_AUDIO_LANG_EXT audioExtension);
14560   void __RPC_STUB IDvdControl2_SelectDefaultAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14561   HRESULT WINAPI IDvdControl2_SelectDefaultSubpictureLanguage_Proxy(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
14562   void __RPC_STUB IDvdControl2_SelectDefaultSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14563 #endif
14564 
14565   enum DVD_TextStringType {
14566     DVD_Struct_Volume = 0x1,DVD_Struct_Title = 0x2,DVD_Struct_ParentalID = 0x3,DVD_Struct_PartOfTitle = 0x4,DVD_Struct_Cell = 0x5,
14567     DVD_Stream_Audio = 0x10,DVD_Stream_Subpicture = 0x11,DVD_Stream_Angle = 0x12,DVD_Channel_Audio = 0x20,DVD_General_Name = 0x30,
14568     DVD_General_Comments = 0x31,DVD_Title_Series = 0x38,DVD_Title_Movie = 0x39,DVD_Title_Video = 0x3a,DVD_Title_Album = 0x3b,DVD_Title_Song = 0x3c,
14569     DVD_Title_Other = 0x3f,DVD_Title_Sub_Series = 0x40,DVD_Title_Sub_Movie = 0x41,DVD_Title_Sub_Video = 0x42,DVD_Title_Sub_Album = 0x43,
14570     DVD_Title_Sub_Song = 0x44,DVD_Title_Sub_Other = 0x47,DVD_Title_Orig_Series = 0x48,DVD_Title_Orig_Movie = 0x49,DVD_Title_Orig_Video = 0x4a,
14571     DVD_Title_Orig_Album = 0x4b,DVD_Title_Orig_Song = 0x4c,DVD_Title_Orig_Other = 0x4f,DVD_Other_Scene = 0x50,DVD_Other_Cut = 0x51,DVD_Other_Take = 0x52
14572   };
14573 
14574   enum DVD_TextCharSet {
14575     DVD_CharSet_Unicode = 0,DVD_CharSet_ISO646 = 1,DVD_CharSet_JIS_Roman_Kanji = 2,DVD_CharSet_ISO8859_1 = 3,
14576     DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
14577   };
14578 #define DVD_TITLE_MENU 0x000
14579 #define DVD_STREAM_DATA_CURRENT 0x800
14580 #define DVD_STREAM_DATA_VMGM 0x400
14581 #define DVD_STREAM_DATA_VTSM 0x401
14582 #define DVD_DEFAULT_AUDIO_STREAM 0x0f
14583 
14584   typedef struct tagDVD_DECODER_CAPS {
14585     DWORD dwSize;
14586     DWORD dwAudioCaps;
14587     double dFwdMaxRateVideo;
14588     double dFwdMaxRateAudio;
14589     double dFwdMaxRateSP;
14590     double dBwdMaxRateVideo;
14591     double dBwdMaxRateAudio;
14592     double dBwdMaxRateSP;
14593     DWORD dwRes1;
14594     DWORD dwRes2;
14595     DWORD dwRes3;
14596     DWORD dwRes4;
14597   } DVD_DECODER_CAPS;
14598 
14599 #define DVD_AUDIO_CAPS_AC3 0x00000001
14600 #define DVD_AUDIO_CAPS_MPEG2 0x00000002
14601 #define DVD_AUDIO_CAPS_LPCM 0x00000004
14602 #define DVD_AUDIO_CAPS_DTS 0x00000008
14603 #define DVD_AUDIO_CAPS_SDDS 0x00000010
14604 
14605   extern RPC_IF_HANDLE __MIDL_itf_strmif_0387_v0_0_c_ifspec;
14606   extern RPC_IF_HANDLE __MIDL_itf_strmif_0387_v0_0_s_ifspec;
14607 #ifndef __IDvdInfo2_INTERFACE_DEFINED__
14608 #define __IDvdInfo2_INTERFACE_DEFINED__
14609   EXTERN_C const IID IID_IDvdInfo2;
14610 #if defined(__cplusplus) && !defined(CINTERFACE)
14611   struct IDvdInfo2 : public IUnknown {
14612   public:
14613     virtual HRESULT WINAPI GetCurrentDomain(DVD_DOMAIN *pDomain) = 0;
14614     virtual HRESULT WINAPI GetCurrentLocation(DVD_PLAYBACK_LOCATION2 *pLocation) = 0;
14615     virtual HRESULT WINAPI GetTotalTitleTime(DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags) = 0;
14616     virtual HRESULT WINAPI GetCurrentButton(ULONG *pulButtonsAvailable,ULONG *pulCurrentButton) = 0;
14617     virtual HRESULT WINAPI GetCurrentAngle(ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle) = 0;
14618     virtual HRESULT WINAPI GetCurrentAudio(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream) = 0;
14619     virtual HRESULT WINAPI GetCurrentSubpicture(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled) = 0;
14620     virtual HRESULT WINAPI GetCurrentUOPS(ULONG *pulUOPs) = 0;
14621     virtual HRESULT WINAPI GetAllSPRMs(SPRMARRAY *pRegisterArray) = 0;
14622     virtual HRESULT WINAPI GetAllGPRMs(GPRMARRAY *pRegisterArray) = 0;
14623     virtual HRESULT WINAPI GetAudioLanguage(ULONG ulStream,LCID *pLanguage) = 0;
14624     virtual HRESULT WINAPI GetSubpictureLanguage(ULONG ulStream,LCID *pLanguage) = 0;
14625     virtual HRESULT WINAPI GetTitleAttributes(ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle) = 0;
14626     virtual HRESULT WINAPI GetVMGAttributes(DVD_MenuAttributes *pATR) = 0;
14627     virtual HRESULT WINAPI GetCurrentVideoAttributes(DVD_VideoAttributes *pATR) = 0;
14628     virtual HRESULT WINAPI GetAudioAttributes(ULONG ulStream,DVD_AudioAttributes *pATR) = 0;
14629     virtual HRESULT WINAPI GetKaraokeAttributes(ULONG ulStream,DVD_KaraokeAttributes *pAttributes) = 0;
14630     virtual HRESULT WINAPI GetSubpictureAttributes(ULONG ulStream,DVD_SubpictureAttributes *pATR) = 0;
14631     virtual HRESULT WINAPI GetDVDVolumeInfo(ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles) = 0;
14632     virtual HRESULT WINAPI GetDVDTextNumberOfLanguages(ULONG *pulNumOfLangs) = 0;
14633     virtual HRESULT WINAPI GetDVDTextLanguageInfo(ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet) = 0;
14634     virtual HRESULT WINAPI GetDVDTextStringAsNative(ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType) = 0;
14635     virtual HRESULT WINAPI GetDVDTextStringAsUnicode(ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType) = 0;
14636     virtual HRESULT WINAPI GetPlayerParentalLevel(ULONG *pulParentalLevel,BYTE pbCountryCode[2]) = 0;
14637     virtual HRESULT WINAPI GetNumberOfChapters(ULONG ulTitle,ULONG *pulNumOfChapters) = 0;
14638     virtual HRESULT WINAPI GetTitleParentalLevels(ULONG ulTitle,ULONG *pulParentalLevels) = 0;
14639     virtual HRESULT WINAPI GetDVDDirectory(LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize) = 0;
14640     virtual HRESULT WINAPI IsAudioStreamEnabled(ULONG ulStreamNum,WINBOOL *pbEnabled) = 0;
14641     virtual HRESULT WINAPI GetDiscID(LPCWSTR pszwPath,ULONGLONG *pullDiscID) = 0;
14642     virtual HRESULT WINAPI GetState(IDvdState **pStateData) = 0;
14643     virtual HRESULT WINAPI GetMenuLanguages(LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages) = 0;
14644     virtual HRESULT WINAPI GetButtonAtPosition(POINT point,ULONG *pulButtonIndex) = 0;
14645     virtual HRESULT WINAPI GetCmdFromEvent(LONG_PTR lParam1,IDvdCmd **pCmdObj) = 0;
14646     virtual HRESULT WINAPI GetDefaultMenuLanguage(LCID *pLanguage) = 0;
14647     virtual HRESULT WINAPI GetDefaultAudioLanguage(LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension) = 0;
14648     virtual HRESULT WINAPI GetDefaultSubpictureLanguage(LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension) = 0;
14649     virtual HRESULT WINAPI GetDecoderCaps(DVD_DECODER_CAPS *pCaps) = 0;
14650     virtual HRESULT WINAPI GetButtonRect(ULONG ulButton,RECT *pRect) = 0;
14651     virtual HRESULT WINAPI IsSubpictureStreamEnabled(ULONG ulStreamNum,WINBOOL *pbEnabled) = 0;
14652   };
14653 #else
14654   typedef struct IDvdInfo2Vtbl {
14655     BEGIN_INTERFACE
14656       HRESULT (WINAPI *QueryInterface)(IDvdInfo2 *This,REFIID riid,void **ppvObject);
14657       ULONG (WINAPI *AddRef)(IDvdInfo2 *This);
14658       ULONG (WINAPI *Release)(IDvdInfo2 *This);
14659       HRESULT (WINAPI *GetCurrentDomain)(IDvdInfo2 *This,DVD_DOMAIN *pDomain);
14660       HRESULT (WINAPI *GetCurrentLocation)(IDvdInfo2 *This,DVD_PLAYBACK_LOCATION2 *pLocation);
14661       HRESULT (WINAPI *GetTotalTitleTime)(IDvdInfo2 *This,DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags);
14662       HRESULT (WINAPI *GetCurrentButton)(IDvdInfo2 *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
14663       HRESULT (WINAPI *GetCurrentAngle)(IDvdInfo2 *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
14664       HRESULT (WINAPI *GetCurrentAudio)(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
14665       HRESULT (WINAPI *GetCurrentSubpicture)(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled);
14666       HRESULT (WINAPI *GetCurrentUOPS)(IDvdInfo2 *This,ULONG *pulUOPs);
14667       HRESULT (WINAPI *GetAllSPRMs)(IDvdInfo2 *This,SPRMARRAY *pRegisterArray);
14668       HRESULT (WINAPI *GetAllGPRMs)(IDvdInfo2 *This,GPRMARRAY *pRegisterArray);
14669       HRESULT (WINAPI *GetAudioLanguage)(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
14670       HRESULT (WINAPI *GetSubpictureLanguage)(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
14671       HRESULT (WINAPI *GetTitleAttributes)(IDvdInfo2 *This,ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle);
14672       HRESULT (WINAPI *GetVMGAttributes)(IDvdInfo2 *This,DVD_MenuAttributes *pATR);
14673       HRESULT (WINAPI *GetCurrentVideoAttributes)(IDvdInfo2 *This,DVD_VideoAttributes *pATR);
14674       HRESULT (WINAPI *GetAudioAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_AudioAttributes *pATR);
14675       HRESULT (WINAPI *GetKaraokeAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_KaraokeAttributes *pAttributes);
14676       HRESULT (WINAPI *GetSubpictureAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_SubpictureAttributes *pATR);
14677       HRESULT (WINAPI *GetDVDVolumeInfo)(IDvdInfo2 *This,ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
14678       HRESULT (WINAPI *GetDVDTextNumberOfLanguages)(IDvdInfo2 *This,ULONG *pulNumOfLangs);
14679       HRESULT (WINAPI *GetDVDTextLanguageInfo)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet);
14680       HRESULT (WINAPI *GetDVDTextStringAsNative)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
14681       HRESULT (WINAPI *GetDVDTextStringAsUnicode)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
14682       HRESULT (WINAPI *GetPlayerParentalLevel)(IDvdInfo2 *This,ULONG *pulParentalLevel,BYTE pbCountryCode[2]);
14683       HRESULT (WINAPI *GetNumberOfChapters)(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulNumOfChapters);
14684       HRESULT (WINAPI *GetTitleParentalLevels)(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulParentalLevels);
14685       HRESULT (WINAPI *GetDVDDirectory)(IDvdInfo2 *This,LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize);
14686       HRESULT (WINAPI *IsAudioStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
14687       HRESULT (WINAPI *GetDiscID)(IDvdInfo2 *This,LPCWSTR pszwPath,ULONGLONG *pullDiscID);
14688       HRESULT (WINAPI *GetState)(IDvdInfo2 *This,IDvdState **pStateData);
14689       HRESULT (WINAPI *GetMenuLanguages)(IDvdInfo2 *This,LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages);
14690       HRESULT (WINAPI *GetButtonAtPosition)(IDvdInfo2 *This,POINT point,ULONG *pulButtonIndex);
14691       HRESULT (WINAPI *GetCmdFromEvent)(IDvdInfo2 *This,LONG_PTR lParam1,IDvdCmd **pCmdObj);
14692       HRESULT (WINAPI *GetDefaultMenuLanguage)(IDvdInfo2 *This,LCID *pLanguage);
14693       HRESULT (WINAPI *GetDefaultAudioLanguage)(IDvdInfo2 *This,LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension);
14694       HRESULT (WINAPI *GetDefaultSubpictureLanguage)(IDvdInfo2 *This,LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
14695       HRESULT (WINAPI *GetDecoderCaps)(IDvdInfo2 *This,DVD_DECODER_CAPS *pCaps);
14696       HRESULT (WINAPI *GetButtonRect)(IDvdInfo2 *This,ULONG ulButton,RECT *pRect);
14697       HRESULT (WINAPI *IsSubpictureStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
14698     END_INTERFACE
14699   } IDvdInfo2Vtbl;
14700   struct IDvdInfo2 {
14701     CONST_VTBL struct IDvdInfo2Vtbl *lpVtbl;
14702   };
14703 #ifdef COBJMACROS
14704 #define IDvdInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14705 #define IDvdInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
14706 #define IDvdInfo2_Release(This) (This)->lpVtbl->Release(This)
14707 #define IDvdInfo2_GetCurrentDomain(This,pDomain) (This)->lpVtbl->GetCurrentDomain(This,pDomain)
14708 #define IDvdInfo2_GetCurrentLocation(This,pLocation) (This)->lpVtbl->GetCurrentLocation(This,pLocation)
14709 #define IDvdInfo2_GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags) (This)->lpVtbl->GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags)
14710 #define IDvdInfo2_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton) (This)->lpVtbl->GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
14711 #define IDvdInfo2_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle) (This)->lpVtbl->GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
14712 #define IDvdInfo2_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream) (This)->lpVtbl->GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
14713 #define IDvdInfo2_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled) (This)->lpVtbl->GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled)
14714 #define IDvdInfo2_GetCurrentUOPS(This,pulUOPs) (This)->lpVtbl->GetCurrentUOPS(This,pulUOPs)
14715 #define IDvdInfo2_GetAllSPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllSPRMs(This,pRegisterArray)
14716 #define IDvdInfo2_GetAllGPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllGPRMs(This,pRegisterArray)
14717 #define IDvdInfo2_GetAudioLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetAudioLanguage(This,ulStream,pLanguage)
14718 #define IDvdInfo2_GetSubpictureLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetSubpictureLanguage(This,ulStream,pLanguage)
14719 #define IDvdInfo2_GetTitleAttributes(This,ulTitle,pMenu,pTitle) (This)->lpVtbl->GetTitleAttributes(This,ulTitle,pMenu,pTitle)
14720 #define IDvdInfo2_GetVMGAttributes(This,pATR) (This)->lpVtbl->GetVMGAttributes(This,pATR)
14721 #define IDvdInfo2_GetCurrentVideoAttributes(This,pATR) (This)->lpVtbl->GetCurrentVideoAttributes(This,pATR)
14722 #define IDvdInfo2_GetAudioAttributes(This,ulStream,pATR) (This)->lpVtbl->GetAudioAttributes(This,ulStream,pATR)
14723 #define IDvdInfo2_GetKaraokeAttributes(This,ulStream,pAttributes) (This)->lpVtbl->GetKaraokeAttributes(This,ulStream,pAttributes)
14724 #define IDvdInfo2_GetSubpictureAttributes(This,ulStream,pATR) (This)->lpVtbl->GetSubpictureAttributes(This,ulStream,pATR)
14725 #define IDvdInfo2_GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles) (This)->lpVtbl->GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles)
14726 #define IDvdInfo2_GetDVDTextNumberOfLanguages(This,pulNumOfLangs) (This)->lpVtbl->GetDVDTextNumberOfLanguages(This,pulNumOfLangs)
14727 #define IDvdInfo2_GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet) (This)->lpVtbl->GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet)
14728 #define IDvdInfo2_GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType) (This)->lpVtbl->GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType)
14729 #define IDvdInfo2_GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType) (This)->lpVtbl->GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType)
14730 #define IDvdInfo2_GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode) (This)->lpVtbl->GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode)
14731 #define IDvdInfo2_GetNumberOfChapters(This,ulTitle,pulNumOfChapters) (This)->lpVtbl->GetNumberOfChapters(This,ulTitle,pulNumOfChapters)
14732 #define IDvdInfo2_GetTitleParentalLevels(This,ulTitle,pulParentalLevels) (This)->lpVtbl->GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
14733 #define IDvdInfo2_GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize) (This)->lpVtbl->GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize)
14734 #define IDvdInfo2_IsAudioStreamEnabled(This,ulStreamNum,pbEnabled) (This)->lpVtbl->IsAudioStreamEnabled(This,ulStreamNum,pbEnabled)
14735 #define IDvdInfo2_GetDiscID(This,pszwPath,pullDiscID) (This)->lpVtbl->GetDiscID(This,pszwPath,pullDiscID)
14736 #define IDvdInfo2_GetState(This,pStateData) (This)->lpVtbl->GetState(This,pStateData)
14737 #define IDvdInfo2_GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages) (This)->lpVtbl->GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages)
14738 #define IDvdInfo2_GetButtonAtPosition(This,point,pulButtonIndex) (This)->lpVtbl->GetButtonAtPosition(This,point,pulButtonIndex)
14739 #define IDvdInfo2_GetCmdFromEvent(This,lParam1,pCmdObj) (This)->lpVtbl->GetCmdFromEvent(This,lParam1,pCmdObj)
14740 #define IDvdInfo2_GetDefaultMenuLanguage(This,pLanguage) (This)->lpVtbl->GetDefaultMenuLanguage(This,pLanguage)
14741 #define IDvdInfo2_GetDefaultAudioLanguage(This,pLanguage,pAudioExtension) (This)->lpVtbl->GetDefaultAudioLanguage(This,pLanguage,pAudioExtension)
14742 #define IDvdInfo2_GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension) (This)->lpVtbl->GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension)
14743 #define IDvdInfo2_GetDecoderCaps(This,pCaps) (This)->lpVtbl->GetDecoderCaps(This,pCaps)
14744 #define IDvdInfo2_GetButtonRect(This,ulButton,pRect) (This)->lpVtbl->GetButtonRect(This,ulButton,pRect)
14745 #define IDvdInfo2_IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled) (This)->lpVtbl->IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled)
14746 #endif
14747 #endif
14748   HRESULT WINAPI IDvdInfo2_GetCurrentDomain_Proxy(IDvdInfo2 *This,DVD_DOMAIN *pDomain);
14749   void __RPC_STUB IDvdInfo2_GetCurrentDomain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14750   HRESULT WINAPI IDvdInfo2_GetCurrentLocation_Proxy(IDvdInfo2 *This,DVD_PLAYBACK_LOCATION2 *pLocation);
14751   void __RPC_STUB IDvdInfo2_GetCurrentLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14752   HRESULT WINAPI IDvdInfo2_GetTotalTitleTime_Proxy(IDvdInfo2 *This,DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags);
14753   void __RPC_STUB IDvdInfo2_GetTotalTitleTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14754   HRESULT WINAPI IDvdInfo2_GetCurrentButton_Proxy(IDvdInfo2 *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
14755   void __RPC_STUB IDvdInfo2_GetCurrentButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14756   HRESULT WINAPI IDvdInfo2_GetCurrentAngle_Proxy(IDvdInfo2 *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
14757   void __RPC_STUB IDvdInfo2_GetCurrentAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14758   HRESULT WINAPI IDvdInfo2_GetCurrentAudio_Proxy(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
14759   void __RPC_STUB IDvdInfo2_GetCurrentAudio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14760   HRESULT WINAPI IDvdInfo2_GetCurrentSubpicture_Proxy(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled);
14761   void __RPC_STUB IDvdInfo2_GetCurrentSubpicture_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14762   HRESULT WINAPI IDvdInfo2_GetCurrentUOPS_Proxy(IDvdInfo2 *This,ULONG *pulUOPs);
14763   void __RPC_STUB IDvdInfo2_GetCurrentUOPS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14764   HRESULT WINAPI IDvdInfo2_GetAllSPRMs_Proxy(IDvdInfo2 *This,SPRMARRAY *pRegisterArray);
14765   void __RPC_STUB IDvdInfo2_GetAllSPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14766   HRESULT WINAPI IDvdInfo2_GetAllGPRMs_Proxy(IDvdInfo2 *This,GPRMARRAY *pRegisterArray);
14767   void __RPC_STUB IDvdInfo2_GetAllGPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14768   HRESULT WINAPI IDvdInfo2_GetAudioLanguage_Proxy(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
14769   void __RPC_STUB IDvdInfo2_GetAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14770   HRESULT WINAPI IDvdInfo2_GetSubpictureLanguage_Proxy(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
14771   void __RPC_STUB IDvdInfo2_GetSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14772   HRESULT WINAPI IDvdInfo2_GetTitleAttributes_Proxy(IDvdInfo2 *This,ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle);
14773   void __RPC_STUB IDvdInfo2_GetTitleAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14774   HRESULT WINAPI IDvdInfo2_GetVMGAttributes_Proxy(IDvdInfo2 *This,DVD_MenuAttributes *pATR);
14775   void __RPC_STUB IDvdInfo2_GetVMGAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14776   HRESULT WINAPI IDvdInfo2_GetCurrentVideoAttributes_Proxy(IDvdInfo2 *This,DVD_VideoAttributes *pATR);
14777   void __RPC_STUB IDvdInfo2_GetCurrentVideoAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14778   HRESULT WINAPI IDvdInfo2_GetAudioAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_AudioAttributes *pATR);
14779   void __RPC_STUB IDvdInfo2_GetAudioAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14780   HRESULT WINAPI IDvdInfo2_GetKaraokeAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_KaraokeAttributes *pAttributes);
14781   void __RPC_STUB IDvdInfo2_GetKaraokeAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14782   HRESULT WINAPI IDvdInfo2_GetSubpictureAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_SubpictureAttributes *pATR);
14783   void __RPC_STUB IDvdInfo2_GetSubpictureAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14784   HRESULT WINAPI IDvdInfo2_GetDVDVolumeInfo_Proxy(IDvdInfo2 *This,ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
14785   void __RPC_STUB IDvdInfo2_GetDVDVolumeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14786   HRESULT WINAPI IDvdInfo2_GetDVDTextNumberOfLanguages_Proxy(IDvdInfo2 *This,ULONG *pulNumOfLangs);
14787   void __RPC_STUB IDvdInfo2_GetDVDTextNumberOfLanguages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14788   HRESULT WINAPI IDvdInfo2_GetDVDTextLanguageInfo_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet);
14789   void __RPC_STUB IDvdInfo2_GetDVDTextLanguageInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14790   HRESULT WINAPI IDvdInfo2_GetDVDTextStringAsNative_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
14791   void __RPC_STUB IDvdInfo2_GetDVDTextStringAsNative_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14792   HRESULT WINAPI IDvdInfo2_GetDVDTextStringAsUnicode_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
14793   void __RPC_STUB IDvdInfo2_GetDVDTextStringAsUnicode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14794   HRESULT WINAPI IDvdInfo2_GetPlayerParentalLevel_Proxy(IDvdInfo2 *This,ULONG *pulParentalLevel,BYTE pbCountryCode[2]);
14795   void __RPC_STUB IDvdInfo2_GetPlayerParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14796   HRESULT WINAPI IDvdInfo2_GetNumberOfChapters_Proxy(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulNumOfChapters);
14797   void __RPC_STUB IDvdInfo2_GetNumberOfChapters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14798   HRESULT WINAPI IDvdInfo2_GetTitleParentalLevels_Proxy(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulParentalLevels);
14799   void __RPC_STUB IDvdInfo2_GetTitleParentalLevels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14800   HRESULT WINAPI IDvdInfo2_GetDVDDirectory_Proxy(IDvdInfo2 *This,LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize);
14801   void __RPC_STUB IDvdInfo2_GetDVDDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14802   HRESULT WINAPI IDvdInfo2_IsAudioStreamEnabled_Proxy(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
14803   void __RPC_STUB IDvdInfo2_IsAudioStreamEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14804   HRESULT WINAPI IDvdInfo2_GetDiscID_Proxy(IDvdInfo2 *This,LPCWSTR pszwPath,ULONGLONG *pullDiscID);
14805   void __RPC_STUB IDvdInfo2_GetDiscID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14806   HRESULT WINAPI IDvdInfo2_GetState_Proxy(IDvdInfo2 *This,IDvdState **pStateData);
14807   void __RPC_STUB IDvdInfo2_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14808   HRESULT WINAPI IDvdInfo2_GetMenuLanguages_Proxy(IDvdInfo2 *This,LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages);
14809   void __RPC_STUB IDvdInfo2_GetMenuLanguages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14810   HRESULT WINAPI IDvdInfo2_GetButtonAtPosition_Proxy(IDvdInfo2 *This,POINT point,ULONG *pulButtonIndex);
14811   void __RPC_STUB IDvdInfo2_GetButtonAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14812   HRESULT WINAPI IDvdInfo2_GetCmdFromEvent_Proxy(IDvdInfo2 *This,LONG_PTR lParam1,IDvdCmd **pCmdObj);
14813   void __RPC_STUB IDvdInfo2_GetCmdFromEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14814   HRESULT WINAPI IDvdInfo2_GetDefaultMenuLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage);
14815   void __RPC_STUB IDvdInfo2_GetDefaultMenuLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14816   HRESULT WINAPI IDvdInfo2_GetDefaultAudioLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension);
14817   void __RPC_STUB IDvdInfo2_GetDefaultAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14818   HRESULT WINAPI IDvdInfo2_GetDefaultSubpictureLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
14819   void __RPC_STUB IDvdInfo2_GetDefaultSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14820   HRESULT WINAPI IDvdInfo2_GetDecoderCaps_Proxy(IDvdInfo2 *This,DVD_DECODER_CAPS *pCaps);
14821   void __RPC_STUB IDvdInfo2_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14822   HRESULT WINAPI IDvdInfo2_GetButtonRect_Proxy(IDvdInfo2 *This,ULONG ulButton,RECT *pRect);
14823   void __RPC_STUB IDvdInfo2_GetButtonRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14824   HRESULT WINAPI IDvdInfo2_IsSubpictureStreamEnabled_Proxy(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
14825   void __RPC_STUB IDvdInfo2_IsSubpictureStreamEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14826 #endif
14827 
14828   typedef enum _AM_DVD_GRAPH_FLAGS {
14829     AM_DVD_HWDEC_PREFER = 0x1,AM_DVD_HWDEC_ONLY = 0x2,AM_DVD_SWDEC_PREFER = 0x4,AM_DVD_SWDEC_ONLY = 0x8,AM_DVD_NOVPE = 0x100,
14830     AM_DVD_VMR9_ONLY = 0x800
14831   } AM_DVD_GRAPH_FLAGS;
14832 
14833   typedef enum _AM_DVD_STREAM_FLAGS {
14834     AM_DVD_STREAM_VIDEO = 0x1,AM_DVD_STREAM_AUDIO = 0x2,AM_DVD_STREAM_SUBPIC = 0x4
14835   } AM_DVD_STREAM_FLAGS;
14836 
14837   typedef struct __MIDL___MIDL_itf_strmif_0389_0001 {
14838     HRESULT hrVPEStatus;
14839     WINBOOL bDvdVolInvalid;
14840     WINBOOL bDvdVolUnknown;
14841     WINBOOL bNoLine21In;
14842     WINBOOL bNoLine21Out;
14843     int iNumStreams;
14844     int iNumStreamsFailed;
14845     DWORD dwFailedStreamsFlag;
14846   } AM_DVD_RENDERSTATUS;
14847 
14848   extern RPC_IF_HANDLE __MIDL_itf_strmif_0389_v0_0_c_ifspec;
14849   extern RPC_IF_HANDLE __MIDL_itf_strmif_0389_v0_0_s_ifspec;
14850 #ifndef __IDvdGraphBuilder_INTERFACE_DEFINED__
14851 #define __IDvdGraphBuilder_INTERFACE_DEFINED__
14852   EXTERN_C const IID IID_IDvdGraphBuilder;
14853 #if defined(__cplusplus) && !defined(CINTERFACE)
14854   struct IDvdGraphBuilder : public IUnknown {
14855   public:
14856     virtual HRESULT WINAPI GetFiltergraph(IGraphBuilder **ppGB) = 0;
14857     virtual HRESULT WINAPI GetDvdInterface(REFIID riid,void **ppvIF) = 0;
14858     virtual HRESULT WINAPI RenderDvdVideoVolume(LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus) = 0;
14859   };
14860 #else
14861   typedef struct IDvdGraphBuilderVtbl {
14862     BEGIN_INTERFACE
14863       HRESULT (WINAPI *QueryInterface)(IDvdGraphBuilder *This,REFIID riid,void **ppvObject);
14864       ULONG (WINAPI *AddRef)(IDvdGraphBuilder *This);
14865       ULONG (WINAPI *Release)(IDvdGraphBuilder *This);
14866       HRESULT (WINAPI *GetFiltergraph)(IDvdGraphBuilder *This,IGraphBuilder **ppGB);
14867       HRESULT (WINAPI *GetDvdInterface)(IDvdGraphBuilder *This,REFIID riid,void **ppvIF);
14868       HRESULT (WINAPI *RenderDvdVideoVolume)(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
14869     END_INTERFACE
14870   } IDvdGraphBuilderVtbl;
14871   struct IDvdGraphBuilder {
14872     CONST_VTBL struct IDvdGraphBuilderVtbl *lpVtbl;
14873   };
14874 #ifdef COBJMACROS
14875 #define IDvdGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14876 #define IDvdGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
14877 #define IDvdGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
14878 #define IDvdGraphBuilder_GetFiltergraph(This,ppGB) (This)->lpVtbl->GetFiltergraph(This,ppGB)
14879 #define IDvdGraphBuilder_GetDvdInterface(This,riid,ppvIF) (This)->lpVtbl->GetDvdInterface(This,riid,ppvIF)
14880 #define IDvdGraphBuilder_RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus) (This)->lpVtbl->RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus)
14881 #endif
14882 #endif
14883   HRESULT WINAPI IDvdGraphBuilder_GetFiltergraph_Proxy(IDvdGraphBuilder *This,IGraphBuilder **ppGB);
14884   void __RPC_STUB IDvdGraphBuilder_GetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14885   HRESULT WINAPI IDvdGraphBuilder_GetDvdInterface_Proxy(IDvdGraphBuilder *This,REFIID riid,void **ppvIF);
14886   void __RPC_STUB IDvdGraphBuilder_GetDvdInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14887   HRESULT WINAPI IDvdGraphBuilder_RenderDvdVideoVolume_Proxy(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
14888   void __RPC_STUB IDvdGraphBuilder_RenderDvdVideoVolume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14889 #endif
14890 
14891 #ifndef __IDDrawExclModeVideo_INTERFACE_DEFINED__
14892 #define __IDDrawExclModeVideo_INTERFACE_DEFINED__
14893   EXTERN_C const IID IID_IDDrawExclModeVideo;
14894 #if defined(__cplusplus) && !defined(CINTERFACE)
14895   struct IDDrawExclModeVideo : public IUnknown {
14896   public:
14897     virtual HRESULT WINAPI SetDDrawObject(IDirectDraw *pDDrawObject) = 0;
14898     virtual HRESULT WINAPI GetDDrawObject(IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal) = 0;
14899     virtual HRESULT WINAPI SetDDrawSurface(IDirectDrawSurface *pDDrawSurface) = 0;
14900     virtual HRESULT WINAPI GetDDrawSurface(IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal) = 0;
14901     virtual HRESULT WINAPI SetDrawParameters(const RECT *prcSource,const RECT *prcTarget) = 0;
14902     virtual HRESULT WINAPI GetNativeVideoProps(DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY) = 0;
14903     virtual HRESULT WINAPI SetCallbackInterface(IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags) = 0;
14904   };
14905 #else
14906   typedef struct IDDrawExclModeVideoVtbl {
14907     BEGIN_INTERFACE
14908       HRESULT (WINAPI *QueryInterface)(IDDrawExclModeVideo *This,REFIID riid,void **ppvObject);
14909       ULONG (WINAPI *AddRef)(IDDrawExclModeVideo *This);
14910       ULONG (WINAPI *Release)(IDDrawExclModeVideo *This);
14911       HRESULT (WINAPI *SetDDrawObject)(IDDrawExclModeVideo *This,IDirectDraw *pDDrawObject);
14912       HRESULT (WINAPI *GetDDrawObject)(IDDrawExclModeVideo *This,IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal);
14913       HRESULT (WINAPI *SetDDrawSurface)(IDDrawExclModeVideo *This,IDirectDrawSurface *pDDrawSurface);
14914       HRESULT (WINAPI *GetDDrawSurface)(IDDrawExclModeVideo *This,IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal);
14915       HRESULT (WINAPI *SetDrawParameters)(IDDrawExclModeVideo *This,const RECT *prcSource,const RECT *prcTarget);
14916       HRESULT (WINAPI *GetNativeVideoProps)(IDDrawExclModeVideo *This,DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY);
14917       HRESULT (WINAPI *SetCallbackInterface)(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
14918     END_INTERFACE
14919   } IDDrawExclModeVideoVtbl;
14920   struct IDDrawExclModeVideo {
14921     CONST_VTBL struct IDDrawExclModeVideoVtbl *lpVtbl;
14922   };
14923 #ifdef COBJMACROS
14924 #define IDDrawExclModeVideo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14925 #define IDDrawExclModeVideo_AddRef(This) (This)->lpVtbl->AddRef(This)
14926 #define IDDrawExclModeVideo_Release(This) (This)->lpVtbl->Release(This)
14927 #define IDDrawExclModeVideo_SetDDrawObject(This,pDDrawObject) (This)->lpVtbl->SetDDrawObject(This,pDDrawObject)
14928 #define IDDrawExclModeVideo_GetDDrawObject(This,ppDDrawObject,pbUsingExternal) (This)->lpVtbl->GetDDrawObject(This,ppDDrawObject,pbUsingExternal)
14929 #define IDDrawExclModeVideo_SetDDrawSurface(This,pDDrawSurface) (This)->lpVtbl->SetDDrawSurface(This,pDDrawSurface)
14930 #define IDDrawExclModeVideo_GetDDrawSurface(This,ppDDrawSurface,pbUsingExternal) (This)->lpVtbl->GetDDrawSurface(This,ppDDrawSurface,pbUsingExternal)
14931 #define IDDrawExclModeVideo_SetDrawParameters(This,prcSource,prcTarget) (This)->lpVtbl->SetDrawParameters(This,prcSource,prcTarget)
14932 #define IDDrawExclModeVideo_GetNativeVideoProps(This,pdwVideoWidth,pdwVideoHeight,pdwPictAspectRatioX,pdwPictAspectRatioY) (This)->lpVtbl->GetNativeVideoProps(This,pdwVideoWidth,pdwVideoHeight,pdwPictAspectRatioX,pdwPictAspectRatioY)
14933 #define IDDrawExclModeVideo_SetCallbackInterface(This,pCallback,dwFlags) (This)->lpVtbl->SetCallbackInterface(This,pCallback,dwFlags)
14934 #endif
14935 #endif
14936   HRESULT WINAPI IDDrawExclModeVideo_SetDDrawObject_Proxy(IDDrawExclModeVideo *This,IDirectDraw *pDDrawObject);
14937   void __RPC_STUB IDDrawExclModeVideo_SetDDrawObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14938   HRESULT WINAPI IDDrawExclModeVideo_GetDDrawObject_Proxy(IDDrawExclModeVideo *This,IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal);
14939   void __RPC_STUB IDDrawExclModeVideo_GetDDrawObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14940   HRESULT WINAPI IDDrawExclModeVideo_SetDDrawSurface_Proxy(IDDrawExclModeVideo *This,IDirectDrawSurface *pDDrawSurface);
14941   void __RPC_STUB IDDrawExclModeVideo_SetDDrawSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14942   HRESULT WINAPI IDDrawExclModeVideo_GetDDrawSurface_Proxy(IDDrawExclModeVideo *This,IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal);
14943   void __RPC_STUB IDDrawExclModeVideo_GetDDrawSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14944   HRESULT WINAPI IDDrawExclModeVideo_SetDrawParameters_Proxy(IDDrawExclModeVideo *This,const RECT *prcSource,const RECT *prcTarget);
14945   void __RPC_STUB IDDrawExclModeVideo_SetDrawParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14946   HRESULT WINAPI IDDrawExclModeVideo_GetNativeVideoProps_Proxy(IDDrawExclModeVideo *This,DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY);
14947   void __RPC_STUB IDDrawExclModeVideo_GetNativeVideoProps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14948   HRESULT WINAPI IDDrawExclModeVideo_SetCallbackInterface_Proxy(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
14949   void __RPC_STUB IDDrawExclModeVideo_SetCallbackInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14950 #endif
14951 
14952   enum _AM_OVERLAY_NOTIFY_FLAGS {
14953     AM_OVERLAY_NOTIFY_VISIBLE_CHANGE = 0x1,AM_OVERLAY_NOTIFY_SOURCE_CHANGE = 0x2,AM_OVERLAY_NOTIFY_DEST_CHANGE = 0x4
14954   };
14955 
14956   extern RPC_IF_HANDLE __MIDL_itf_strmif_0391_v0_0_c_ifspec;
14957   extern RPC_IF_HANDLE __MIDL_itf_strmif_0391_v0_0_s_ifspec;
14958 #ifndef __IDDrawExclModeVideoCallback_INTERFACE_DEFINED__
14959 #define __IDDrawExclModeVideoCallback_INTERFACE_DEFINED__
14960   EXTERN_C const IID IID_IDDrawExclModeVideoCallback;
14961 #if defined(__cplusplus) && !defined(CINTERFACE)
14962   struct IDDrawExclModeVideoCallback : public IUnknown {
14963   public:
14964     virtual HRESULT WINAPI OnUpdateOverlay(WINBOOL bBefore,DWORD dwFlags,WINBOOL bOldVisible,const RECT *prcOldSrc,const RECT *prcOldDest,WINBOOL bNewVisible,const RECT *prcNewSrc,const RECT *prcNewDest) = 0;
14965     virtual HRESULT WINAPI OnUpdateColorKey(const COLORKEY *pKey,DWORD dwColor) = 0;
14966     virtual HRESULT WINAPI OnUpdateSize(DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight) = 0;
14967   };
14968 #else
14969   typedef struct IDDrawExclModeVideoCallbackVtbl {
14970     BEGIN_INTERFACE
14971       HRESULT (WINAPI *QueryInterface)(IDDrawExclModeVideoCallback *This,REFIID riid,void **ppvObject);
14972       ULONG (WINAPI *AddRef)(IDDrawExclModeVideoCallback *This);
14973       ULONG (WINAPI *Release)(IDDrawExclModeVideoCallback *This);
14974       HRESULT (WINAPI *OnUpdateOverlay)(IDDrawExclModeVideoCallback *This,WINBOOL bBefore,DWORD dwFlags,WINBOOL bOldVisible,const RECT *prcOldSrc,const RECT *prcOldDest,WINBOOL bNewVisible,const RECT *prcNewSrc,const RECT *prcNewDest);
14975       HRESULT (WINAPI *OnUpdateColorKey)(IDDrawExclModeVideoCallback *This,const COLORKEY *pKey,DWORD dwColor);
14976       HRESULT (WINAPI *OnUpdateSize)(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
14977     END_INTERFACE
14978   } IDDrawExclModeVideoCallbackVtbl;
14979   struct IDDrawExclModeVideoCallback {
14980     CONST_VTBL struct IDDrawExclModeVideoCallbackVtbl *lpVtbl;
14981   };
14982 #ifdef COBJMACROS
14983 #define IDDrawExclModeVideoCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14984 #define IDDrawExclModeVideoCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
14985 #define IDDrawExclModeVideoCallback_Release(This) (This)->lpVtbl->Release(This)
14986 #define IDDrawExclModeVideoCallback_OnUpdateOverlay(This,bBefore,dwFlags,bOldVisible,prcOldSrc,prcOldDest,bNewVisible,prcNewSrc,prcNewDest) (This)->lpVtbl->OnUpdateOverlay(This,bBefore,dwFlags,bOldVisible,prcOldSrc,prcOldDest,bNewVisible,prcNewSrc,prcNewDest)
14987 #define IDDrawExclModeVideoCallback_OnUpdateColorKey(This,pKey,dwColor) (This)->lpVtbl->OnUpdateColorKey(This,pKey,dwColor)
14988 #define IDDrawExclModeVideoCallback_OnUpdateSize(This,dwWidth,dwHeight,dwARWidth,dwARHeight) (This)->lpVtbl->OnUpdateSize(This,dwWidth,dwHeight,dwARWidth,dwARHeight)
14989 #endif
14990 #endif
14991   HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateOverlay_Proxy(IDDrawExclModeVideoCallback *This,WINBOOL bBefore,DWORD dwFlags,WINBOOL bOldVisible,const RECT *prcOldSrc,const RECT *prcOldDest,WINBOOL bNewVisible,const RECT *prcNewSrc,const RECT *prcNewDest);
14992   void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateOverlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14993   HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateColorKey_Proxy(IDDrawExclModeVideoCallback *This,const COLORKEY *pKey,DWORD dwColor);
14994   void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14995   HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateSize_Proxy(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
14996   void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14997 #endif
14998 
14999   extern RPC_IF_HANDLE __MIDL_itf_strmif_0392_v0_0_c_ifspec;
15000   extern RPC_IF_HANDLE __MIDL_itf_strmif_0392_v0_0_s_ifspec;
15001 #ifndef __IPinConnection_INTERFACE_DEFINED__
15002 #define __IPinConnection_INTERFACE_DEFINED__
15003   EXTERN_C const IID IID_IPinConnection;
15004 #if defined(__cplusplus) && !defined(CINTERFACE)
15005   struct IPinConnection : public IUnknown {
15006   public:
15007     virtual HRESULT WINAPI DynamicQueryAccept(const AM_MEDIA_TYPE *pmt) = 0;
15008     virtual HRESULT WINAPI NotifyEndOfStream(HANDLE hNotifyEvent) = 0;
15009     virtual HRESULT WINAPI IsEndPin(void) = 0;
15010     virtual HRESULT WINAPI DynamicDisconnect(void) = 0;
15011   };
15012 #else
15013   typedef struct IPinConnectionVtbl {
15014     BEGIN_INTERFACE
15015       HRESULT (WINAPI *QueryInterface)(IPinConnection *This,REFIID riid,void **ppvObject);
15016       ULONG (WINAPI *AddRef)(IPinConnection *This);
15017       ULONG (WINAPI *Release)(IPinConnection *This);
15018       HRESULT (WINAPI *DynamicQueryAccept)(IPinConnection *This,const AM_MEDIA_TYPE *pmt);
15019       HRESULT (WINAPI *NotifyEndOfStream)(IPinConnection *This,HANDLE hNotifyEvent);
15020       HRESULT (WINAPI *IsEndPin)(IPinConnection *This);
15021       HRESULT (WINAPI *DynamicDisconnect)(IPinConnection *This);
15022     END_INTERFACE
15023   } IPinConnectionVtbl;
15024   struct IPinConnection {
15025     CONST_VTBL struct IPinConnectionVtbl *lpVtbl;
15026   };
15027 #ifdef COBJMACROS
15028 #define IPinConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15029 #define IPinConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
15030 #define IPinConnection_Release(This) (This)->lpVtbl->Release(This)
15031 #define IPinConnection_DynamicQueryAccept(This,pmt) (This)->lpVtbl->DynamicQueryAccept(This,pmt)
15032 #define IPinConnection_NotifyEndOfStream(This,hNotifyEvent) (This)->lpVtbl->NotifyEndOfStream(This,hNotifyEvent)
15033 #define IPinConnection_IsEndPin(This) (This)->lpVtbl->IsEndPin(This)
15034 #define IPinConnection_DynamicDisconnect(This) (This)->lpVtbl->DynamicDisconnect(This)
15035 #endif
15036 #endif
15037   HRESULT WINAPI IPinConnection_DynamicQueryAccept_Proxy(IPinConnection *This,const AM_MEDIA_TYPE *pmt);
15038   void __RPC_STUB IPinConnection_DynamicQueryAccept_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15039   HRESULT WINAPI IPinConnection_NotifyEndOfStream_Proxy(IPinConnection *This,HANDLE hNotifyEvent);
15040   void __RPC_STUB IPinConnection_NotifyEndOfStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15041   HRESULT WINAPI IPinConnection_IsEndPin_Proxy(IPinConnection *This);
15042   void __RPC_STUB IPinConnection_IsEndPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15043   HRESULT WINAPI IPinConnection_DynamicDisconnect_Proxy(IPinConnection *This);
15044   void __RPC_STUB IPinConnection_DynamicDisconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15045 #endif
15046 
15047 #ifndef __IPinFlowControl_INTERFACE_DEFINED__
15048 #define __IPinFlowControl_INTERFACE_DEFINED__
15049   EXTERN_C const IID IID_IPinFlowControl;
15050 #if defined(__cplusplus) && !defined(CINTERFACE)
15051   struct IPinFlowControl : public IUnknown {
15052   public:
15053     virtual HRESULT WINAPI Block(DWORD dwBlockFlags,HANDLE hEvent) = 0;
15054   };
15055 #else
15056   typedef struct IPinFlowControlVtbl {
15057     BEGIN_INTERFACE
15058       HRESULT (WINAPI *QueryInterface)(IPinFlowControl *This,REFIID riid,void **ppvObject);
15059       ULONG (WINAPI *AddRef)(IPinFlowControl *This);
15060       ULONG (WINAPI *Release)(IPinFlowControl *This);
15061       HRESULT (WINAPI *Block)(IPinFlowControl *This,DWORD dwBlockFlags,HANDLE hEvent);
15062     END_INTERFACE
15063   } IPinFlowControlVtbl;
15064   struct IPinFlowControl {
15065     CONST_VTBL struct IPinFlowControlVtbl *lpVtbl;
15066   };
15067 #ifdef COBJMACROS
15068 #define IPinFlowControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15069 #define IPinFlowControl_AddRef(This) (This)->lpVtbl->AddRef(This)
15070 #define IPinFlowControl_Release(This) (This)->lpVtbl->Release(This)
15071 #define IPinFlowControl_Block(This,dwBlockFlags,hEvent) (This)->lpVtbl->Block(This,dwBlockFlags,hEvent)
15072 #endif
15073 #endif
15074   HRESULT WINAPI IPinFlowControl_Block_Proxy(IPinFlowControl *This,DWORD dwBlockFlags,HANDLE hEvent);
15075   void __RPC_STUB IPinFlowControl_Block_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15076 #endif
15077 
15078   enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS {
15079     AM_PIN_FLOW_CONTROL_BLOCK = 0x1
15080   };
15081   typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS {
15082     AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x1,AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x2,
15083     AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x4
15084   } AM_GRAPH_CONFIG_RECONNECT_FLAGS;
15085 
15086   enum _REM_FILTER_FLAGS {
15087     REMFILTERF_LEAVECONNECTED = 0x1
15088   };
15089 
15090   typedef enum _AM_FILTER_FLAGS {
15091     AM_FILTER_FLAGS_REMOVABLE = 0x1
15092   } AM_FILTER_FLAGS;
15093 
15094   extern RPC_IF_HANDLE __MIDL_itf_strmif_0394_v0_0_c_ifspec;
15095   extern RPC_IF_HANDLE __MIDL_itf_strmif_0394_v0_0_s_ifspec;
15096 #ifndef __IGraphConfig_INTERFACE_DEFINED__
15097 #define __IGraphConfig_INTERFACE_DEFINED__
15098   EXTERN_C const IID IID_IGraphConfig;
15099 #if defined(__cplusplus) && !defined(CINTERFACE)
15100   struct IGraphConfig : public IUnknown {
15101   public:
15102     virtual HRESULT WINAPI Reconnect(IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags) = 0;
15103     virtual HRESULT WINAPI Reconfigure(IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent) = 0;
15104     virtual HRESULT WINAPI AddFilterToCache(IBaseFilter *pFilter) = 0;
15105     virtual HRESULT WINAPI EnumCacheFilter(IEnumFilters **pEnum) = 0;
15106     virtual HRESULT WINAPI RemoveFilterFromCache(IBaseFilter *pFilter) = 0;
15107     virtual HRESULT WINAPI GetStartTime(REFERENCE_TIME *prtStart) = 0;
15108     virtual HRESULT WINAPI PushThroughData(IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort) = 0;
15109     virtual HRESULT WINAPI SetFilterFlags(IBaseFilter *pFilter,DWORD dwFlags) = 0;
15110     virtual HRESULT WINAPI GetFilterFlags(IBaseFilter *pFilter,DWORD *pdwFlags) = 0;
15111     virtual HRESULT WINAPI RemoveFilterEx(IBaseFilter *pFilter,DWORD Flags) = 0;
15112   };
15113 #else
15114   typedef struct IGraphConfigVtbl {
15115     BEGIN_INTERFACE
15116       HRESULT (WINAPI *QueryInterface)(IGraphConfig *This,REFIID riid,void **ppvObject);
15117       ULONG (WINAPI *AddRef)(IGraphConfig *This);
15118       ULONG (WINAPI *Release)(IGraphConfig *This);
15119       HRESULT (WINAPI *Reconnect)(IGraphConfig *This,IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags);
15120       HRESULT (WINAPI *Reconfigure)(IGraphConfig *This,IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent);
15121       HRESULT (WINAPI *AddFilterToCache)(IGraphConfig *This,IBaseFilter *pFilter);
15122       HRESULT (WINAPI *EnumCacheFilter)(IGraphConfig *This,IEnumFilters **pEnum);
15123       HRESULT (WINAPI *RemoveFilterFromCache)(IGraphConfig *This,IBaseFilter *pFilter);
15124       HRESULT (WINAPI *GetStartTime)(IGraphConfig *This,REFERENCE_TIME *prtStart);
15125       HRESULT (WINAPI *PushThroughData)(IGraphConfig *This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort);
15126       HRESULT (WINAPI *SetFilterFlags)(IGraphConfig *This,IBaseFilter *pFilter,DWORD dwFlags);
15127       HRESULT (WINAPI *GetFilterFlags)(IGraphConfig *This,IBaseFilter *pFilter,DWORD *pdwFlags);
15128       HRESULT (WINAPI *RemoveFilterEx)(IGraphConfig *This,IBaseFilter *pFilter,DWORD Flags);
15129     END_INTERFACE
15130   } IGraphConfigVtbl;
15131   struct IGraphConfig {
15132     CONST_VTBL struct IGraphConfigVtbl *lpVtbl;
15133   };
15134 #ifdef COBJMACROS
15135 #define IGraphConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15136 #define IGraphConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
15137 #define IGraphConfig_Release(This) (This)->lpVtbl->Release(This)
15138 #define IGraphConfig_Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags) (This)->lpVtbl->Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags)
15139 #define IGraphConfig_Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent) (This)->lpVtbl->Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent)
15140 #define IGraphConfig_AddFilterToCache(This,pFilter) (This)->lpVtbl->AddFilterToCache(This,pFilter)
15141 #define IGraphConfig_EnumCacheFilter(This,pEnum) (This)->lpVtbl->EnumCacheFilter(This,pEnum)
15142 #define IGraphConfig_RemoveFilterFromCache(This,pFilter) (This)->lpVtbl->RemoveFilterFromCache(This,pFilter)
15143 #define IGraphConfig_GetStartTime(This,prtStart) (This)->lpVtbl->GetStartTime(This,prtStart)
15144 #define IGraphConfig_PushThroughData(This,pOutputPin,pConnection,hEventAbort) (This)->lpVtbl->PushThroughData(This,pOutputPin,pConnection,hEventAbort)
15145 #define IGraphConfig_SetFilterFlags(This,pFilter,dwFlags) (This)->lpVtbl->SetFilterFlags(This,pFilter,dwFlags)
15146 #define IGraphConfig_GetFilterFlags(This,pFilter,pdwFlags) (This)->lpVtbl->GetFilterFlags(This,pFilter,pdwFlags)
15147 #define IGraphConfig_RemoveFilterEx(This,pFilter,Flags) (This)->lpVtbl->RemoveFilterEx(This,pFilter,Flags)
15148 #endif
15149 #endif
15150   HRESULT WINAPI IGraphConfig_Reconnect_Proxy(IGraphConfig *This,IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags);
15151   void __RPC_STUB IGraphConfig_Reconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15152   HRESULT WINAPI IGraphConfig_Reconfigure_Proxy(IGraphConfig *This,IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent);
15153   void __RPC_STUB IGraphConfig_Reconfigure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15154   HRESULT WINAPI IGraphConfig_AddFilterToCache_Proxy(IGraphConfig *This,IBaseFilter *pFilter);
15155   void __RPC_STUB IGraphConfig_AddFilterToCache_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15156   HRESULT WINAPI IGraphConfig_EnumCacheFilter_Proxy(IGraphConfig *This,IEnumFilters **pEnum);
15157   void __RPC_STUB IGraphConfig_EnumCacheFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15158   HRESULT WINAPI IGraphConfig_RemoveFilterFromCache_Proxy(IGraphConfig *This,IBaseFilter *pFilter);
15159   void __RPC_STUB IGraphConfig_RemoveFilterFromCache_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15160   HRESULT WINAPI IGraphConfig_GetStartTime_Proxy(IGraphConfig *This,REFERENCE_TIME *prtStart);
15161   void __RPC_STUB IGraphConfig_GetStartTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15162   HRESULT WINAPI IGraphConfig_PushThroughData_Proxy(IGraphConfig *This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort);
15163   void __RPC_STUB IGraphConfig_PushThroughData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15164   HRESULT WINAPI IGraphConfig_SetFilterFlags_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD dwFlags);
15165   void __RPC_STUB IGraphConfig_SetFilterFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15166   HRESULT WINAPI IGraphConfig_GetFilterFlags_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD *pdwFlags);
15167   void __RPC_STUB IGraphConfig_GetFilterFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15168   HRESULT WINAPI IGraphConfig_RemoveFilterEx_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD Flags);
15169   void __RPC_STUB IGraphConfig_RemoveFilterEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15170 #endif
15171 
15172 #ifndef __IGraphConfigCallback_INTERFACE_DEFINED__
15173 #define __IGraphConfigCallback_INTERFACE_DEFINED__
15174   EXTERN_C const IID IID_IGraphConfigCallback;
15175 #if defined(__cplusplus) && !defined(CINTERFACE)
15176   struct IGraphConfigCallback : public IUnknown {
15177   public:
15178     virtual HRESULT WINAPI Reconfigure(PVOID pvContext,DWORD dwFlags) = 0;
15179   };
15180 #else
15181   typedef struct IGraphConfigCallbackVtbl {
15182     BEGIN_INTERFACE
15183       HRESULT (WINAPI *QueryInterface)(IGraphConfigCallback *This,REFIID riid,void **ppvObject);
15184       ULONG (WINAPI *AddRef)(IGraphConfigCallback *This);
15185       ULONG (WINAPI *Release)(IGraphConfigCallback *This);
15186       HRESULT (WINAPI *Reconfigure)(IGraphConfigCallback *This,PVOID pvContext,DWORD dwFlags);
15187     END_INTERFACE
15188   } IGraphConfigCallbackVtbl;
15189   struct IGraphConfigCallback {
15190     CONST_VTBL struct IGraphConfigCallbackVtbl *lpVtbl;
15191   };
15192 #ifdef COBJMACROS
15193 #define IGraphConfigCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15194 #define IGraphConfigCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
15195 #define IGraphConfigCallback_Release(This) (This)->lpVtbl->Release(This)
15196 #define IGraphConfigCallback_Reconfigure(This,pvContext,dwFlags) (This)->lpVtbl->Reconfigure(This,pvContext,dwFlags)
15197 #endif
15198 #endif
15199   HRESULT WINAPI IGraphConfigCallback_Reconfigure_Proxy(IGraphConfigCallback *This,PVOID pvContext,DWORD dwFlags);
15200   void __RPC_STUB IGraphConfigCallback_Reconfigure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15201 #endif
15202 
15203 #ifndef __IFilterChain_INTERFACE_DEFINED__
15204 #define __IFilterChain_INTERFACE_DEFINED__
15205   EXTERN_C const IID IID_IFilterChain;
15206 #if defined(__cplusplus) && !defined(CINTERFACE)
15207   struct IFilterChain : public IUnknown {
15208   public:
15209     virtual HRESULT WINAPI StartChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
15210     virtual HRESULT WINAPI PauseChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
15211     virtual HRESULT WINAPI StopChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
15212     virtual HRESULT WINAPI RemoveChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
15213   };
15214 #else
15215   typedef struct IFilterChainVtbl {
15216     BEGIN_INTERFACE
15217       HRESULT (WINAPI *QueryInterface)(IFilterChain *This,REFIID riid,void **ppvObject);
15218       ULONG (WINAPI *AddRef)(IFilterChain *This);
15219       ULONG (WINAPI *Release)(IFilterChain *This);
15220       HRESULT (WINAPI *StartChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15221       HRESULT (WINAPI *PauseChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15222       HRESULT (WINAPI *StopChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15223       HRESULT (WINAPI *RemoveChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15224     END_INTERFACE
15225   } IFilterChainVtbl;
15226   struct IFilterChain {
15227     CONST_VTBL struct IFilterChainVtbl *lpVtbl;
15228   };
15229 #ifdef COBJMACROS
15230 #define IFilterChain_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15231 #define IFilterChain_AddRef(This) (This)->lpVtbl->AddRef(This)
15232 #define IFilterChain_Release(This) (This)->lpVtbl->Release(This)
15233 #define IFilterChain_StartChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StartChain(This,pStartFilter,pEndFilter)
15234 #define IFilterChain_PauseChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->PauseChain(This,pStartFilter,pEndFilter)
15235 #define IFilterChain_StopChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StopChain(This,pStartFilter,pEndFilter)
15236 #define IFilterChain_RemoveChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->RemoveChain(This,pStartFilter,pEndFilter)
15237 #endif
15238 #endif
15239   HRESULT WINAPI IFilterChain_StartChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15240   void __RPC_STUB IFilterChain_StartChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15241   HRESULT WINAPI IFilterChain_PauseChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15242   void __RPC_STUB IFilterChain_PauseChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15243   HRESULT WINAPI IFilterChain_StopChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15244   void __RPC_STUB IFilterChain_StopChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15245   HRESULT WINAPI IFilterChain_RemoveChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15246   void __RPC_STUB IFilterChain_RemoveChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15247 #endif
15248 
15249   typedef enum __MIDL___MIDL_itf_strmif_0397_0002 {
15250     VMRSample_SyncPoint = 0x1,VMRSample_Preroll = 0x2,VMRSample_Discontinuity = 0x4,VMRSample_TimeValid = 0x8,VMRSample_SrcDstRectsValid = 0x10
15251   } VMRPresentationFlags;
15252 
15253   typedef struct tagVMRPRESENTATIONINFO {
15254     DWORD dwFlags;
15255     LPDIRECTDRAWSURFACE7 lpSurf;
15256     REFERENCE_TIME rtStart;
15257     REFERENCE_TIME rtEnd;
15258     SIZE szAspectRatio;
15259     RECT rcSrc;
15260     RECT rcDst;
15261     DWORD dwTypeSpecificFlags;
15262     DWORD dwInterlaceFlags;
15263   } VMRPRESENTATIONINFO;
15264 
15265   extern RPC_IF_HANDLE __MIDL_itf_strmif_0397_v0_0_c_ifspec;
15266   extern RPC_IF_HANDLE __MIDL_itf_strmif_0397_v0_0_s_ifspec;
15267 #ifndef __IVMRImagePresenter_INTERFACE_DEFINED__
15268 #define __IVMRImagePresenter_INTERFACE_DEFINED__
15269   EXTERN_C const IID IID_IVMRImagePresenter;
15270 #if defined(__cplusplus) && !defined(CINTERFACE)
15271   struct IVMRImagePresenter : public IUnknown {
15272   public:
15273     virtual HRESULT WINAPI StartPresenting(DWORD_PTR dwUserID) = 0;
15274     virtual HRESULT WINAPI StopPresenting(DWORD_PTR dwUserID) = 0;
15275     virtual HRESULT WINAPI PresentImage(DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo) = 0;
15276   };
15277 #else
15278   typedef struct IVMRImagePresenterVtbl {
15279     BEGIN_INTERFACE
15280       HRESULT (WINAPI *QueryInterface)(IVMRImagePresenter *This,REFIID riid,void **ppvObject);
15281       ULONG (WINAPI *AddRef)(IVMRImagePresenter *This);
15282       ULONG (WINAPI *Release)(IVMRImagePresenter *This);
15283       HRESULT (WINAPI *StartPresenting)(IVMRImagePresenter *This,DWORD_PTR dwUserID);
15284       HRESULT (WINAPI *StopPresenting)(IVMRImagePresenter *This,DWORD_PTR dwUserID);
15285       HRESULT (WINAPI *PresentImage)(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
15286     END_INTERFACE
15287   } IVMRImagePresenterVtbl;
15288   struct IVMRImagePresenter {
15289     CONST_VTBL struct IVMRImagePresenterVtbl *lpVtbl;
15290   };
15291 #ifdef COBJMACROS
15292 #define IVMRImagePresenter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15293 #define IVMRImagePresenter_AddRef(This) (This)->lpVtbl->AddRef(This)
15294 #define IVMRImagePresenter_Release(This) (This)->lpVtbl->Release(This)
15295 #define IVMRImagePresenter_StartPresenting(This,dwUserID) (This)->lpVtbl->StartPresenting(This,dwUserID)
15296 #define IVMRImagePresenter_StopPresenting(This,dwUserID) (This)->lpVtbl->StopPresenting(This,dwUserID)
15297 #define IVMRImagePresenter_PresentImage(This,dwUserID,lpPresInfo) (This)->lpVtbl->PresentImage(This,dwUserID,lpPresInfo)
15298 #endif
15299 #endif
15300   HRESULT WINAPI IVMRImagePresenter_StartPresenting_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID);
15301   void __RPC_STUB IVMRImagePresenter_StartPresenting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15302   HRESULT WINAPI IVMRImagePresenter_StopPresenting_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID);
15303   void __RPC_STUB IVMRImagePresenter_StopPresenting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15304   HRESULT WINAPI IVMRImagePresenter_PresentImage_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
15305   void __RPC_STUB IVMRImagePresenter_PresentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15306 #endif
15307 
15308   typedef enum __MIDL___MIDL_itf_strmif_0398_0001 {
15309     AMAP_PIXELFORMAT_VALID = 0x1,AMAP_3D_TARGET = 0x2,AMAP_ALLOW_SYSMEM = 0x4,AMAP_FORCE_SYSMEM = 0x8,AMAP_DIRECTED_FLIP = 0x10,AMAP_DXVA_TARGET = 0x20
15310   } VMRSurfaceAllocationFlags;
15311 
15312   typedef struct tagVMRALLOCATIONINFO {
15313     DWORD dwFlags;
15314     LPBITMAPINFOHEADER lpHdr;
15315     LPDDPIXELFORMAT lpPixFmt;
15316     SIZE szAspectRatio;
15317     DWORD dwMinBuffers;
15318     DWORD dwMaxBuffers;
15319     DWORD dwInterlaceFlags;
15320     SIZE szNativeSize;
15321   } VMRALLOCATIONINFO;
15322 
15323   extern RPC_IF_HANDLE __MIDL_itf_strmif_0398_v0_0_c_ifspec;
15324   extern RPC_IF_HANDLE __MIDL_itf_strmif_0398_v0_0_s_ifspec;
15325 #ifndef __IVMRSurfaceAllocator_INTERFACE_DEFINED__
15326 #define __IVMRSurfaceAllocator_INTERFACE_DEFINED__
15327   EXTERN_C const IID IID_IVMRSurfaceAllocator;
15328 #if defined(__cplusplus) && !defined(CINTERFACE)
15329   struct IVMRSurfaceAllocator : public IUnknown {
15330   public:
15331     virtual HRESULT WINAPI AllocateSurface(DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface) = 0;
15332     virtual HRESULT WINAPI FreeSurface(DWORD_PTR dwID) = 0;
15333     virtual HRESULT WINAPI PrepareSurface(DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags) = 0;
15334     virtual HRESULT WINAPI AdviseNotify(IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify) = 0;
15335   };
15336 #else
15337   typedef struct IVMRSurfaceAllocatorVtbl {
15338     BEGIN_INTERFACE
15339       HRESULT (WINAPI *QueryInterface)(IVMRSurfaceAllocator *This,REFIID riid,void **ppvObject);
15340       ULONG (WINAPI *AddRef)(IVMRSurfaceAllocator *This);
15341       ULONG (WINAPI *Release)(IVMRSurfaceAllocator *This);
15342       HRESULT (WINAPI *AllocateSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface);
15343       HRESULT (WINAPI *FreeSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwID);
15344       HRESULT (WINAPI *PrepareSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags);
15345       HRESULT (WINAPI *AdviseNotify)(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
15346     END_INTERFACE
15347   } IVMRSurfaceAllocatorVtbl;
15348   struct IVMRSurfaceAllocator {
15349     CONST_VTBL struct IVMRSurfaceAllocatorVtbl *lpVtbl;
15350   };
15351 #ifdef COBJMACROS
15352 #define IVMRSurfaceAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15353 #define IVMRSurfaceAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
15354 #define IVMRSurfaceAllocator_Release(This) (This)->lpVtbl->Release(This)
15355 #define IVMRSurfaceAllocator_AllocateSurface(This,dwUserID,lpAllocInfo,lpdwActualBuffers,lplpSurface) (This)->lpVtbl->AllocateSurface(This,dwUserID,lpAllocInfo,lpdwActualBuffers,lplpSurface)
15356 #define IVMRSurfaceAllocator_FreeSurface(This,dwID) (This)->lpVtbl->FreeSurface(This,dwID)
15357 #define IVMRSurfaceAllocator_PrepareSurface(This,dwUserID,lpSurface,dwSurfaceFlags) (This)->lpVtbl->PrepareSurface(This,dwUserID,lpSurface,dwSurfaceFlags)
15358 #define IVMRSurfaceAllocator_AdviseNotify(This,lpIVMRSurfAllocNotify) (This)->lpVtbl->AdviseNotify(This,lpIVMRSurfAllocNotify)
15359 #endif
15360 #endif
15361   HRESULT WINAPI IVMRSurfaceAllocator_AllocateSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface);
15362   void __RPC_STUB IVMRSurfaceAllocator_AllocateSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15363   HRESULT WINAPI IVMRSurfaceAllocator_FreeSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwID);
15364   void __RPC_STUB IVMRSurfaceAllocator_FreeSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15365   HRESULT WINAPI IVMRSurfaceAllocator_PrepareSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags);
15366   void __RPC_STUB IVMRSurfaceAllocator_PrepareSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15367   HRESULT WINAPI IVMRSurfaceAllocator_AdviseNotify_Proxy(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
15368   void __RPC_STUB IVMRSurfaceAllocator_AdviseNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15369 #endif
15370 
15371 #ifndef __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__
15372 #define __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__
15373   EXTERN_C const IID IID_IVMRSurfaceAllocatorNotify;
15374 #if defined(__cplusplus) && !defined(CINTERFACE)
15375   struct IVMRSurfaceAllocatorNotify : public IUnknown {
15376   public:
15377     virtual HRESULT WINAPI AdviseSurfaceAllocator(DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator) = 0;
15378     virtual HRESULT WINAPI SetDDrawDevice(LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor) = 0;
15379     virtual HRESULT WINAPI ChangeDDrawDevice(LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor) = 0;
15380     virtual HRESULT WINAPI RestoreDDrawSurfaces(void) = 0;
15381     virtual HRESULT WINAPI NotifyEvent(LONG EventCode,LONG_PTR Param1,LONG_PTR Param2) = 0;
15382     virtual HRESULT WINAPI SetBorderColor(COLORREF clrBorder) = 0;
15383   };
15384 #else
15385   typedef struct IVMRSurfaceAllocatorNotifyVtbl {
15386     BEGIN_INTERFACE
15387       HRESULT (WINAPI *QueryInterface)(IVMRSurfaceAllocatorNotify *This,REFIID riid,void **ppvObject);
15388       ULONG (WINAPI *AddRef)(IVMRSurfaceAllocatorNotify *This);
15389       ULONG (WINAPI *Release)(IVMRSurfaceAllocatorNotify *This);
15390       HRESULT (WINAPI *AdviseSurfaceAllocator)(IVMRSurfaceAllocatorNotify *This,DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator);
15391       HRESULT (WINAPI *SetDDrawDevice)(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
15392       HRESULT (WINAPI *ChangeDDrawDevice)(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
15393       HRESULT (WINAPI *RestoreDDrawSurfaces)(IVMRSurfaceAllocatorNotify *This);
15394       HRESULT (WINAPI *NotifyEvent)(IVMRSurfaceAllocatorNotify *This,LONG EventCode,LONG_PTR Param1,LONG_PTR Param2);
15395       HRESULT (WINAPI *SetBorderColor)(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
15396     END_INTERFACE
15397   } IVMRSurfaceAllocatorNotifyVtbl;
15398   struct IVMRSurfaceAllocatorNotify {
15399     CONST_VTBL struct IVMRSurfaceAllocatorNotifyVtbl *lpVtbl;
15400   };
15401 #ifdef COBJMACROS
15402 #define IVMRSurfaceAllocatorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15403 #define IVMRSurfaceAllocatorNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
15404 #define IVMRSurfaceAllocatorNotify_Release(This) (This)->lpVtbl->Release(This)
15405 #define IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator) (This)->lpVtbl->AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator)
15406 #define IVMRSurfaceAllocatorNotify_SetDDrawDevice(This,lpDDrawDevice,hMonitor) (This)->lpVtbl->SetDDrawDevice(This,lpDDrawDevice,hMonitor)
15407 #define IVMRSurfaceAllocatorNotify_ChangeDDrawDevice(This,lpDDrawDevice,hMonitor) (This)->lpVtbl->ChangeDDrawDevice(This,lpDDrawDevice,hMonitor)
15408 #define IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces(This) (This)->lpVtbl->RestoreDDrawSurfaces(This)
15409 #define IVMRSurfaceAllocatorNotify_NotifyEvent(This,EventCode,Param1,Param2) (This)->lpVtbl->NotifyEvent(This,EventCode,Param1,Param2)
15410 #define IVMRSurfaceAllocatorNotify_SetBorderColor(This,clrBorder) (This)->lpVtbl->SetBorderColor(This,clrBorder)
15411 #endif
15412 #endif
15413   HRESULT WINAPI IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator_Proxy(IVMRSurfaceAllocatorNotify *This,DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator);
15414   void __RPC_STUB IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15415   HRESULT WINAPI IVMRSurfaceAllocatorNotify_SetDDrawDevice_Proxy(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
15416   void __RPC_STUB IVMRSurfaceAllocatorNotify_SetDDrawDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15417   HRESULT WINAPI IVMRSurfaceAllocatorNotify_ChangeDDrawDevice_Proxy(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
15418   void __RPC_STUB IVMRSurfaceAllocatorNotify_ChangeDDrawDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15419   HRESULT WINAPI IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces_Proxy(IVMRSurfaceAllocatorNotify *This);
15420   void __RPC_STUB IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15421   HRESULT WINAPI IVMRSurfaceAllocatorNotify_NotifyEvent_Proxy(IVMRSurfaceAllocatorNotify *This,LONG EventCode,LONG_PTR Param1,LONG_PTR Param2);
15422   void __RPC_STUB IVMRSurfaceAllocatorNotify_NotifyEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15423   HRESULT WINAPI IVMRSurfaceAllocatorNotify_SetBorderColor_Proxy(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
15424   void __RPC_STUB IVMRSurfaceAllocatorNotify_SetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15425 #endif
15426 
15427   typedef enum __MIDL___MIDL_itf_strmif_0400_0001 {
15428     VMR_ARMODE_NONE = 0,VMR_ARMODE_LETTER_BOX = VMR_ARMODE_NONE + 1
15429   } VMR_ASPECT_RATIO_MODE;
15430 
15431   extern RPC_IF_HANDLE __MIDL_itf_strmif_0400_v0_0_c_ifspec;
15432   extern RPC_IF_HANDLE __MIDL_itf_strmif_0400_v0_0_s_ifspec;
15433 #ifndef __IVMRWindowlessControl_INTERFACE_DEFINED__
15434 #define __IVMRWindowlessControl_INTERFACE_DEFINED__
15435   EXTERN_C const IID IID_IVMRWindowlessControl;
15436 #if defined(__cplusplus) && !defined(CINTERFACE)
15437   struct IVMRWindowlessControl : public IUnknown {
15438   public:
15439     virtual HRESULT WINAPI GetNativeVideoSize(LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight) = 0;
15440     virtual HRESULT WINAPI GetMinIdealVideoSize(LONG *lpWidth,LONG *lpHeight) = 0;
15441     virtual HRESULT WINAPI GetMaxIdealVideoSize(LONG *lpWidth,LONG *lpHeight) = 0;
15442     virtual HRESULT WINAPI SetVideoPosition(const LPRECT lpSRCRect,const LPRECT lpDSTRect) = 0;
15443     virtual HRESULT WINAPI GetVideoPosition(LPRECT lpSRCRect,LPRECT lpDSTRect) = 0;
15444     virtual HRESULT WINAPI GetAspectRatioMode(DWORD *lpAspectRatioMode) = 0;
15445     virtual HRESULT WINAPI SetAspectRatioMode(DWORD AspectRatioMode) = 0;
15446     virtual HRESULT WINAPI SetVideoClippingWindow(HWND hwnd) = 0;
15447     virtual HRESULT WINAPI RepaintVideo(HWND hwnd,HDC hdc) = 0;
15448     virtual HRESULT WINAPI DisplayModeChanged(void) = 0;
15449     virtual HRESULT WINAPI GetCurrentImage(BYTE **lpDib) = 0;
15450     virtual HRESULT WINAPI SetBorderColor(COLORREF Clr) = 0;
15451     virtual HRESULT WINAPI GetBorderColor(COLORREF *lpClr) = 0;
15452     virtual HRESULT WINAPI SetColorKey(COLORREF Clr) = 0;
15453     virtual HRESULT WINAPI GetColorKey(COLORREF *lpClr) = 0;
15454   };
15455 #else
15456   typedef struct IVMRWindowlessControlVtbl {
15457     BEGIN_INTERFACE
15458       HRESULT (WINAPI *QueryInterface)(IVMRWindowlessControl *This,REFIID riid,void **ppvObject);
15459       ULONG (WINAPI *AddRef)(IVMRWindowlessControl *This);
15460       ULONG (WINAPI *Release)(IVMRWindowlessControl *This);
15461       HRESULT (WINAPI *GetNativeVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight);
15462       HRESULT (WINAPI *GetMinIdealVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
15463       HRESULT (WINAPI *GetMaxIdealVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
15464       HRESULT (WINAPI *SetVideoPosition)(IVMRWindowlessControl *This,const LPRECT lpSRCRect,const LPRECT lpDSTRect);
15465       HRESULT (WINAPI *GetVideoPosition)(IVMRWindowlessControl *This,LPRECT lpSRCRect,LPRECT lpDSTRect);
15466       HRESULT (WINAPI *GetAspectRatioMode)(IVMRWindowlessControl *This,DWORD *lpAspectRatioMode);
15467       HRESULT (WINAPI *SetAspectRatioMode)(IVMRWindowlessControl *This,DWORD AspectRatioMode);
15468       HRESULT (WINAPI *SetVideoClippingWindow)(IVMRWindowlessControl *This,HWND hwnd);
15469       HRESULT (WINAPI *RepaintVideo)(IVMRWindowlessControl *This,HWND hwnd,HDC hdc);
15470       HRESULT (WINAPI *DisplayModeChanged)(IVMRWindowlessControl *This);
15471       HRESULT (WINAPI *GetCurrentImage)(IVMRWindowlessControl *This,BYTE **lpDib);
15472       HRESULT (WINAPI *SetBorderColor)(IVMRWindowlessControl *This,COLORREF Clr);
15473       HRESULT (WINAPI *GetBorderColor)(IVMRWindowlessControl *This,COLORREF *lpClr);
15474       HRESULT (WINAPI *SetColorKey)(IVMRWindowlessControl *This,COLORREF Clr);
15475       HRESULT (WINAPI *GetColorKey)(IVMRWindowlessControl *This,COLORREF *lpClr);
15476     END_INTERFACE
15477   } IVMRWindowlessControlVtbl;
15478   struct IVMRWindowlessControl {
15479     CONST_VTBL struct IVMRWindowlessControlVtbl *lpVtbl;
15480   };
15481 #ifdef COBJMACROS
15482 #define IVMRWindowlessControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15483 #define IVMRWindowlessControl_AddRef(This) (This)->lpVtbl->AddRef(This)
15484 #define IVMRWindowlessControl_Release(This) (This)->lpVtbl->Release(This)
15485 #define IVMRWindowlessControl_GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight) (This)->lpVtbl->GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight)
15486 #define IVMRWindowlessControl_GetMinIdealVideoSize(This,lpWidth,lpHeight) (This)->lpVtbl->GetMinIdealVideoSize(This,lpWidth,lpHeight)
15487 #define IVMRWindowlessControl_GetMaxIdealVideoSize(This,lpWidth,lpHeight) (This)->lpVtbl->GetMaxIdealVideoSize(This,lpWidth,lpHeight)
15488 #define IVMRWindowlessControl_SetVideoPosition(This,lpSRCRect,lpDSTRect) (This)->lpVtbl->SetVideoPosition(This,lpSRCRect,lpDSTRect)
15489 #define IVMRWindowlessControl_GetVideoPosition(This,lpSRCRect,lpDSTRect) (This)->lpVtbl->GetVideoPosition(This,lpSRCRect,lpDSTRect)
15490 #define IVMRWindowlessControl_GetAspectRatioMode(This,lpAspectRatioMode) (This)->lpVtbl->GetAspectRatioMode(This,lpAspectRatioMode)
15491 #define IVMRWindowlessControl_SetAspectRatioMode(This,AspectRatioMode) (This)->lpVtbl->SetAspectRatioMode(This,AspectRatioMode)
15492 #define IVMRWindowlessControl_SetVideoClippingWindow(This,hwnd) (This)->lpVtbl->SetVideoClippingWindow(This,hwnd)
15493 #define IVMRWindowlessControl_RepaintVideo(This,hwnd,hdc) (This)->lpVtbl->RepaintVideo(This,hwnd,hdc)
15494 #define IVMRWindowlessControl_DisplayModeChanged(This) (This)->lpVtbl->DisplayModeChanged(This)
15495 #define IVMRWindowlessControl_GetCurrentImage(This,lpDib) (This)->lpVtbl->GetCurrentImage(This,lpDib)
15496 #define IVMRWindowlessControl_SetBorderColor(This,Clr) (This)->lpVtbl->SetBorderColor(This,Clr)
15497 #define IVMRWindowlessControl_GetBorderColor(This,lpClr) (This)->lpVtbl->GetBorderColor(This,lpClr)
15498 #define IVMRWindowlessControl_SetColorKey(This,Clr) (This)->lpVtbl->SetColorKey(This,Clr)
15499 #define IVMRWindowlessControl_GetColorKey(This,lpClr) (This)->lpVtbl->GetColorKey(This,lpClr)
15500 #endif
15501 #endif
15502   HRESULT WINAPI IVMRWindowlessControl_GetNativeVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight);
15503   void __RPC_STUB IVMRWindowlessControl_GetNativeVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15504   HRESULT WINAPI IVMRWindowlessControl_GetMinIdealVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
15505   void __RPC_STUB IVMRWindowlessControl_GetMinIdealVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15506   HRESULT WINAPI IVMRWindowlessControl_GetMaxIdealVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
15507   void __RPC_STUB IVMRWindowlessControl_GetMaxIdealVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15508   HRESULT WINAPI IVMRWindowlessControl_SetVideoPosition_Proxy(IVMRWindowlessControl *This,const LPRECT lpSRCRect,const LPRECT lpDSTRect);
15509   void __RPC_STUB IVMRWindowlessControl_SetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15510   HRESULT WINAPI IVMRWindowlessControl_GetVideoPosition_Proxy(IVMRWindowlessControl *This,LPRECT lpSRCRect,LPRECT lpDSTRect);
15511   void __RPC_STUB IVMRWindowlessControl_GetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15512   HRESULT WINAPI IVMRWindowlessControl_GetAspectRatioMode_Proxy(IVMRWindowlessControl *This,DWORD *lpAspectRatioMode);
15513   void __RPC_STUB IVMRWindowlessControl_GetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15514   HRESULT WINAPI IVMRWindowlessControl_SetAspectRatioMode_Proxy(IVMRWindowlessControl *This,DWORD AspectRatioMode);
15515   void __RPC_STUB IVMRWindowlessControl_SetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15516   HRESULT WINAPI IVMRWindowlessControl_SetVideoClippingWindow_Proxy(IVMRWindowlessControl *This,HWND hwnd);
15517   void __RPC_STUB IVMRWindowlessControl_SetVideoClippingWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15518   HRESULT WINAPI IVMRWindowlessControl_RepaintVideo_Proxy(IVMRWindowlessControl *This,HWND hwnd,HDC hdc);
15519   void __RPC_STUB IVMRWindowlessControl_RepaintVideo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15520   HRESULT WINAPI IVMRWindowlessControl_DisplayModeChanged_Proxy(IVMRWindowlessControl *This);
15521   void __RPC_STUB IVMRWindowlessControl_DisplayModeChanged_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15522   HRESULT WINAPI IVMRWindowlessControl_GetCurrentImage_Proxy(IVMRWindowlessControl *This,BYTE **lpDib);
15523   void __RPC_STUB IVMRWindowlessControl_GetCurrentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15524   HRESULT WINAPI IVMRWindowlessControl_SetBorderColor_Proxy(IVMRWindowlessControl *This,COLORREF Clr);
15525   void __RPC_STUB IVMRWindowlessControl_SetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15526   HRESULT WINAPI IVMRWindowlessControl_GetBorderColor_Proxy(IVMRWindowlessControl *This,COLORREF *lpClr);
15527   void __RPC_STUB IVMRWindowlessControl_GetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15528   HRESULT WINAPI IVMRWindowlessControl_SetColorKey_Proxy(IVMRWindowlessControl *This,COLORREF Clr);
15529   void __RPC_STUB IVMRWindowlessControl_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15530   HRESULT WINAPI IVMRWindowlessControl_GetColorKey_Proxy(IVMRWindowlessControl *This,COLORREF *lpClr);
15531   void __RPC_STUB IVMRWindowlessControl_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15532 #endif
15533 
15534   typedef enum __MIDL___MIDL_itf_strmif_0401_0001 {
15535     MixerPref_NoDecimation = 0x1,MixerPref_DecimateOutput = 0x2,MixerPref_ARAdjustXorY = 0x4,MixerPref_DecimationReserved = 0x8,
15536     MixerPref_DecimateMask = 0xf,MixerPref_BiLinearFiltering = 0x10,MixerPref_PointFiltering = 0x20,MixerPref_FilteringMask = 0xf0,
15537     MixerPref_RenderTargetRGB = 0x100,MixerPref_RenderTargetYUV = 0x1000,MixerPref_RenderTargetYUV420 = 0x200,MixerPref_RenderTargetYUV422 = 0x400,
15538     MixerPref_RenderTargetYUV444 = 0x800,MixerPref_RenderTargetReserved = 0xe000,MixerPref_RenderTargetMask = 0xff00,
15539     MixerPref_DynamicSwitchToBOB = 0x10000,MixerPref_DynamicDecimateBy2 = 0x20000,MixerPref_DynamicReserved = 0xc0000,
15540     MixerPref_DynamicMask = 0xf0000
15541   } VMRMixerPrefs;
15542 
15543   typedef struct _NORMALIZEDRECT {
15544     float left;
15545     float top;
15546     float right;
15547     float bottom;
15548   } NORMALIZEDRECT;
15549 
15550   typedef struct _NORMALIZEDRECT *PNORMALIZEDRECT;
15551 
15552   extern RPC_IF_HANDLE __MIDL_itf_strmif_0401_v0_0_c_ifspec;
15553   extern RPC_IF_HANDLE __MIDL_itf_strmif_0401_v0_0_s_ifspec;
15554 #ifndef __IVMRMixerControl_INTERFACE_DEFINED__
15555 #define __IVMRMixerControl_INTERFACE_DEFINED__
15556   EXTERN_C const IID IID_IVMRMixerControl;
15557 #if defined(__cplusplus) && !defined(CINTERFACE)
15558   struct IVMRMixerControl : public IUnknown {
15559   public:
15560     virtual HRESULT WINAPI SetAlpha(DWORD dwStreamID,float Alpha) = 0;
15561     virtual HRESULT WINAPI GetAlpha(DWORD dwStreamID,float *pAlpha) = 0;
15562     virtual HRESULT WINAPI SetZOrder(DWORD dwStreamID,DWORD dwZ) = 0;
15563     virtual HRESULT WINAPI GetZOrder(DWORD dwStreamID,DWORD *pZ) = 0;
15564     virtual HRESULT WINAPI SetOutputRect(DWORD dwStreamID,const NORMALIZEDRECT *pRect) = 0;
15565     virtual HRESULT WINAPI GetOutputRect(DWORD dwStreamID,NORMALIZEDRECT *pRect) = 0;
15566     virtual HRESULT WINAPI SetBackgroundClr(COLORREF ClrBkg) = 0;
15567     virtual HRESULT WINAPI GetBackgroundClr(COLORREF *lpClrBkg) = 0;
15568     virtual HRESULT WINAPI SetMixingPrefs(DWORD dwMixerPrefs) = 0;
15569     virtual HRESULT WINAPI GetMixingPrefs(DWORD *pdwMixerPrefs) = 0;
15570   };
15571 #else
15572   typedef struct IVMRMixerControlVtbl {
15573     BEGIN_INTERFACE
15574       HRESULT (WINAPI *QueryInterface)(IVMRMixerControl *This,REFIID riid,void **ppvObject);
15575       ULONG (WINAPI *AddRef)(IVMRMixerControl *This);
15576       ULONG (WINAPI *Release)(IVMRMixerControl *This);
15577       HRESULT (WINAPI *SetAlpha)(IVMRMixerControl *This,DWORD dwStreamID,float Alpha);
15578       HRESULT (WINAPI *GetAlpha)(IVMRMixerControl *This,DWORD dwStreamID,float *pAlpha);
15579       HRESULT (WINAPI *SetZOrder)(IVMRMixerControl *This,DWORD dwStreamID,DWORD dwZ);
15580       HRESULT (WINAPI *GetZOrder)(IVMRMixerControl *This,DWORD dwStreamID,DWORD *pZ);
15581       HRESULT (WINAPI *SetOutputRect)(IVMRMixerControl *This,DWORD dwStreamID,const NORMALIZEDRECT *pRect);
15582       HRESULT (WINAPI *GetOutputRect)(IVMRMixerControl *This,DWORD dwStreamID,NORMALIZEDRECT *pRect);
15583       HRESULT (WINAPI *SetBackgroundClr)(IVMRMixerControl *This,COLORREF ClrBkg);
15584       HRESULT (WINAPI *GetBackgroundClr)(IVMRMixerControl *This,COLORREF *lpClrBkg);
15585       HRESULT (WINAPI *SetMixingPrefs)(IVMRMixerControl *This,DWORD dwMixerPrefs);
15586       HRESULT (WINAPI *GetMixingPrefs)(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
15587     END_INTERFACE
15588   } IVMRMixerControlVtbl;
15589   struct IVMRMixerControl {
15590     CONST_VTBL struct IVMRMixerControlVtbl *lpVtbl;
15591   };
15592 #ifdef COBJMACROS
15593 #define IVMRMixerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15594 #define IVMRMixerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
15595 #define IVMRMixerControl_Release(This) (This)->lpVtbl->Release(This)
15596 #define IVMRMixerControl_SetAlpha(This,dwStreamID,Alpha) (This)->lpVtbl->SetAlpha(This,dwStreamID,Alpha)
15597 #define IVMRMixerControl_GetAlpha(This,dwStreamID,pAlpha) (This)->lpVtbl->GetAlpha(This,dwStreamID,pAlpha)
15598 #define IVMRMixerControl_SetZOrder(This,dwStreamID,dwZ) (This)->lpVtbl->SetZOrder(This,dwStreamID,dwZ)
15599 #define IVMRMixerControl_GetZOrder(This,dwStreamID,pZ) (This)->lpVtbl->GetZOrder(This,dwStreamID,pZ)
15600 #define IVMRMixerControl_SetOutputRect(This,dwStreamID,pRect) (This)->lpVtbl->SetOutputRect(This,dwStreamID,pRect)
15601 #define IVMRMixerControl_GetOutputRect(This,dwStreamID,pRect) (This)->lpVtbl->GetOutputRect(This,dwStreamID,pRect)
15602 #define IVMRMixerControl_SetBackgroundClr(This,ClrBkg) (This)->lpVtbl->SetBackgroundClr(This,ClrBkg)
15603 #define IVMRMixerControl_GetBackgroundClr(This,lpClrBkg) (This)->lpVtbl->GetBackgroundClr(This,lpClrBkg)
15604 #define IVMRMixerControl_SetMixingPrefs(This,dwMixerPrefs) (This)->lpVtbl->SetMixingPrefs(This,dwMixerPrefs)
15605 #define IVMRMixerControl_GetMixingPrefs(This,pdwMixerPrefs) (This)->lpVtbl->GetMixingPrefs(This,pdwMixerPrefs)
15606 #endif
15607 #endif
15608   HRESULT WINAPI IVMRMixerControl_SetAlpha_Proxy(IVMRMixerControl *This,DWORD dwStreamID,float Alpha);
15609   void __RPC_STUB IVMRMixerControl_SetAlpha_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15610   HRESULT WINAPI IVMRMixerControl_GetAlpha_Proxy(IVMRMixerControl *This,DWORD dwStreamID,float *pAlpha);
15611   void __RPC_STUB IVMRMixerControl_GetAlpha_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15612   HRESULT WINAPI IVMRMixerControl_SetZOrder_Proxy(IVMRMixerControl *This,DWORD dwStreamID,DWORD dwZ);
15613   void __RPC_STUB IVMRMixerControl_SetZOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15614   HRESULT WINAPI IVMRMixerControl_GetZOrder_Proxy(IVMRMixerControl *This,DWORD dwStreamID,DWORD *pZ);
15615   void __RPC_STUB IVMRMixerControl_GetZOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15616   HRESULT WINAPI IVMRMixerControl_SetOutputRect_Proxy(IVMRMixerControl *This,DWORD dwStreamID,const NORMALIZEDRECT *pRect);
15617   void __RPC_STUB IVMRMixerControl_SetOutputRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15618   HRESULT WINAPI IVMRMixerControl_GetOutputRect_Proxy(IVMRMixerControl *This,DWORD dwStreamID,NORMALIZEDRECT *pRect);
15619   void __RPC_STUB IVMRMixerControl_GetOutputRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15620   HRESULT WINAPI IVMRMixerControl_SetBackgroundClr_Proxy(IVMRMixerControl *This,COLORREF ClrBkg);
15621   void __RPC_STUB IVMRMixerControl_SetBackgroundClr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15622   HRESULT WINAPI IVMRMixerControl_GetBackgroundClr_Proxy(IVMRMixerControl *This,COLORREF *lpClrBkg);
15623   void __RPC_STUB IVMRMixerControl_GetBackgroundClr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15624   HRESULT WINAPI IVMRMixerControl_SetMixingPrefs_Proxy(IVMRMixerControl *This,DWORD dwMixerPrefs);
15625   void __RPC_STUB IVMRMixerControl_SetMixingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15626   HRESULT WINAPI IVMRMixerControl_GetMixingPrefs_Proxy(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
15627 
15628   void __RPC_STUB IVMRMixerControl_GetMixingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15629 #endif
15630 
15631 #ifdef __cplusplus
15632   typedef struct tagVMRGUID {
15633     ::GUID *pGUID;
15634     ::GUID GUID;
15635   } VMRGUID;
15636 #else
15637   typedef struct tagVMRGUID {
15638     GUID *pGUID;
15639     GUID GUID;
15640   } VMRGUID;
15641 #endif
15642 
15643   typedef struct tagVMRMONITORINFO {
15644     VMRGUID guid;
15645     RECT rcMonitor;
15646     HMONITOR hMon;
15647     DWORD dwFlags;
15648     wchar_t szDevice[32];
15649     wchar_t szDescription[256];
15650     LARGE_INTEGER liDriverVersion;
15651     DWORD dwVendorId;
15652     DWORD dwDeviceId;
15653     DWORD dwSubSysId;
15654     DWORD dwRevision;
15655   } VMRMONITORINFO;
15656 
15657   extern RPC_IF_HANDLE __MIDL_itf_strmif_0402_v0_0_c_ifspec;
15658   extern RPC_IF_HANDLE __MIDL_itf_strmif_0402_v0_0_s_ifspec;
15659 #ifndef __IVMRMonitorConfig_INTERFACE_DEFINED__
15660 #define __IVMRMonitorConfig_INTERFACE_DEFINED__
15661   EXTERN_C const IID IID_IVMRMonitorConfig;
15662 #if defined(__cplusplus) && !defined(CINTERFACE)
15663   struct IVMRMonitorConfig : public IUnknown {
15664   public:
15665     virtual HRESULT WINAPI SetMonitor(const VMRGUID *pGUID) = 0;
15666     virtual HRESULT WINAPI GetMonitor(VMRGUID *pGUID) = 0;
15667     virtual HRESULT WINAPI SetDefaultMonitor(const VMRGUID *pGUID) = 0;
15668     virtual HRESULT WINAPI GetDefaultMonitor(VMRGUID *pGUID) = 0;
15669     virtual HRESULT WINAPI GetAvailableMonitors(VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices) = 0;
15670   };
15671 #else
15672   typedef struct IVMRMonitorConfigVtbl {
15673     BEGIN_INTERFACE
15674       HRESULT (WINAPI *QueryInterface)(IVMRMonitorConfig *This,REFIID riid,void **ppvObject);
15675       ULONG (WINAPI *AddRef)(IVMRMonitorConfig *This);
15676       ULONG (WINAPI *Release)(IVMRMonitorConfig *This);
15677       HRESULT (WINAPI *SetMonitor)(IVMRMonitorConfig *This,const VMRGUID *pGUID);
15678       HRESULT (WINAPI *GetMonitor)(IVMRMonitorConfig *This,VMRGUID *pGUID);
15679       HRESULT (WINAPI *SetDefaultMonitor)(IVMRMonitorConfig *This,const VMRGUID *pGUID);
15680       HRESULT (WINAPI *GetDefaultMonitor)(IVMRMonitorConfig *This,VMRGUID *pGUID);
15681       HRESULT (WINAPI *GetAvailableMonitors)(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
15682     END_INTERFACE
15683   } IVMRMonitorConfigVtbl;
15684   struct IVMRMonitorConfig {
15685     CONST_VTBL struct IVMRMonitorConfigVtbl *lpVtbl;
15686   };
15687 #ifdef COBJMACROS
15688 #define IVMRMonitorConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15689 #define IVMRMonitorConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
15690 #define IVMRMonitorConfig_Release(This) (This)->lpVtbl->Release(This)
15691 #define IVMRMonitorConfig_SetMonitor(This,pGUID) (This)->lpVtbl->SetMonitor(This,pGUID)
15692 #define IVMRMonitorConfig_GetMonitor(This,pGUID) (This)->lpVtbl->GetMonitor(This,pGUID)
15693 #define IVMRMonitorConfig_SetDefaultMonitor(This,pGUID) (This)->lpVtbl->SetDefaultMonitor(This,pGUID)
15694 #define IVMRMonitorConfig_GetDefaultMonitor(This,pGUID) (This)->lpVtbl->GetDefaultMonitor(This,pGUID)
15695 #define IVMRMonitorConfig_GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices) (This)->lpVtbl->GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices)
15696 #endif
15697 #endif
15698   HRESULT WINAPI IVMRMonitorConfig_SetMonitor_Proxy(IVMRMonitorConfig *This,const VMRGUID *pGUID);
15699   void __RPC_STUB IVMRMonitorConfig_SetMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15700   HRESULT WINAPI IVMRMonitorConfig_GetMonitor_Proxy(IVMRMonitorConfig *This,VMRGUID *pGUID);
15701   void __RPC_STUB IVMRMonitorConfig_GetMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15702   HRESULT WINAPI IVMRMonitorConfig_SetDefaultMonitor_Proxy(IVMRMonitorConfig *This,const VMRGUID *pGUID);
15703   void __RPC_STUB IVMRMonitorConfig_SetDefaultMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15704   HRESULT WINAPI IVMRMonitorConfig_GetDefaultMonitor_Proxy(IVMRMonitorConfig *This,VMRGUID *pGUID);
15705   void __RPC_STUB IVMRMonitorConfig_GetDefaultMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15706   HRESULT WINAPI IVMRMonitorConfig_GetAvailableMonitors_Proxy(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
15707   void __RPC_STUB IVMRMonitorConfig_GetAvailableMonitors_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15708 #endif
15709 
15710   typedef enum __MIDL___MIDL_itf_strmif_0403_0001 {
15711     RenderPrefs_RestrictToInitialMonitor = 0,RenderPrefs_ForceOffscreen = 0x1,RenderPrefs_ForceOverlays = 0x2,RenderPrefs_AllowOverlays = 0,
15712     RenderPrefs_AllowOffscreen = 0,RenderPrefs_DoNotRenderColorKeyAndBorder = 0x8,RenderPrefs_Reserved = 0x10,RenderPrefs_PreferAGPMemWhenMixing = 0x20,
15713     RenderPrefs_Mask = 0x3f
15714   } VMRRenderPrefs;
15715 
15716   typedef enum __MIDL___MIDL_itf_strmif_0403_0002 {
15717     VMRMode_Windowed = 0x1,VMRMode_Windowless = 0x2,VMRMode_Renderless = 0x4,VMRMode_Mask = 0x7
15718   } VMRMode;
15719 
15720   enum __MIDL___MIDL_itf_strmif_0403_0003 {
15721     MAX_NUMBER_OF_STREAMS = 16
15722   };
15723 
15724   extern RPC_IF_HANDLE __MIDL_itf_strmif_0403_v0_0_c_ifspec;
15725   extern RPC_IF_HANDLE __MIDL_itf_strmif_0403_v0_0_s_ifspec;
15726 #ifndef __IVMRFilterConfig_INTERFACE_DEFINED__
15727 #define __IVMRFilterConfig_INTERFACE_DEFINED__
15728   EXTERN_C const IID IID_IVMRFilterConfig;
15729 #if defined(__cplusplus) && !defined(CINTERFACE)
15730   struct IVMRFilterConfig : public IUnknown {
15731   public:
15732     virtual HRESULT WINAPI SetImageCompositor(IVMRImageCompositor *lpVMRImgCompositor) = 0;
15733     virtual HRESULT WINAPI SetNumberOfStreams(DWORD dwMaxStreams) = 0;
15734     virtual HRESULT WINAPI GetNumberOfStreams(DWORD *pdwMaxStreams) = 0;
15735     virtual HRESULT WINAPI SetRenderingPrefs(DWORD dwRenderFlags) = 0;
15736     virtual HRESULT WINAPI GetRenderingPrefs(DWORD *pdwRenderFlags) = 0;
15737     virtual HRESULT WINAPI SetRenderingMode(DWORD Mode) = 0;
15738     virtual HRESULT WINAPI GetRenderingMode(DWORD *pMode) = 0;
15739   };
15740 #else
15741   typedef struct IVMRFilterConfigVtbl {
15742     BEGIN_INTERFACE
15743       HRESULT (WINAPI *QueryInterface)(IVMRFilterConfig *This,REFIID riid,void **ppvObject);
15744       ULONG (WINAPI *AddRef)(IVMRFilterConfig *This);
15745       ULONG (WINAPI *Release)(IVMRFilterConfig *This);
15746       HRESULT (WINAPI *SetImageCompositor)(IVMRFilterConfig *This,IVMRImageCompositor *lpVMRImgCompositor);
15747       HRESULT (WINAPI *SetNumberOfStreams)(IVMRFilterConfig *This,DWORD dwMaxStreams);
15748       HRESULT (WINAPI *GetNumberOfStreams)(IVMRFilterConfig *This,DWORD *pdwMaxStreams);
15749       HRESULT (WINAPI *SetRenderingPrefs)(IVMRFilterConfig *This,DWORD dwRenderFlags);
15750       HRESULT (WINAPI *GetRenderingPrefs)(IVMRFilterConfig *This,DWORD *pdwRenderFlags);
15751       HRESULT (WINAPI *SetRenderingMode)(IVMRFilterConfig *This,DWORD Mode);
15752       HRESULT (WINAPI *GetRenderingMode)(IVMRFilterConfig *This,DWORD *pMode);
15753     END_INTERFACE
15754   } IVMRFilterConfigVtbl;
15755   struct IVMRFilterConfig {
15756     CONST_VTBL struct IVMRFilterConfigVtbl *lpVtbl;
15757   };
15758 #ifdef COBJMACROS
15759 #define IVMRFilterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15760 #define IVMRFilterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
15761 #define IVMRFilterConfig_Release(This) (This)->lpVtbl->Release(This)
15762 #define IVMRFilterConfig_SetImageCompositor(This,lpVMRImgCompositor) (This)->lpVtbl->SetImageCompositor(This,lpVMRImgCompositor)
15763 #define IVMRFilterConfig_SetNumberOfStreams(This,dwMaxStreams) (This)->lpVtbl->SetNumberOfStreams(This,dwMaxStreams)
15764 #define IVMRFilterConfig_GetNumberOfStreams(This,pdwMaxStreams) (This)->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams)
15765 #define IVMRFilterConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
15766 #define IVMRFilterConfig_GetRenderingPrefs(This,pdwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags)
15767 #define IVMRFilterConfig_SetRenderingMode(This,Mode) (This)->lpVtbl->SetRenderingMode(This,Mode)
15768 #define IVMRFilterConfig_GetRenderingMode(This,pMode) (This)->lpVtbl->GetRenderingMode(This,pMode)
15769 #endif
15770 #endif
15771   HRESULT WINAPI IVMRFilterConfig_SetImageCompositor_Proxy(IVMRFilterConfig *This,IVMRImageCompositor *lpVMRImgCompositor);
15772   void __RPC_STUB IVMRFilterConfig_SetImageCompositor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15773   HRESULT WINAPI IVMRFilterConfig_SetNumberOfStreams_Proxy(IVMRFilterConfig *This,DWORD dwMaxStreams);
15774   void __RPC_STUB IVMRFilterConfig_SetNumberOfStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15775   HRESULT WINAPI IVMRFilterConfig_GetNumberOfStreams_Proxy(IVMRFilterConfig *This,DWORD *pdwMaxStreams);
15776   void __RPC_STUB IVMRFilterConfig_GetNumberOfStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15777   HRESULT WINAPI IVMRFilterConfig_SetRenderingPrefs_Proxy(IVMRFilterConfig *This,DWORD dwRenderFlags);
15778   void __RPC_STUB IVMRFilterConfig_SetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15779   HRESULT WINAPI IVMRFilterConfig_GetRenderingPrefs_Proxy(IVMRFilterConfig *This,DWORD *pdwRenderFlags);
15780   void __RPC_STUB IVMRFilterConfig_GetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15781   HRESULT WINAPI IVMRFilterConfig_SetRenderingMode_Proxy(IVMRFilterConfig *This,DWORD Mode);
15782   void __RPC_STUB IVMRFilterConfig_SetRenderingMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15783   HRESULT WINAPI IVMRFilterConfig_GetRenderingMode_Proxy(IVMRFilterConfig *This,DWORD *pMode);
15784   void __RPC_STUB IVMRFilterConfig_GetRenderingMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15785 #endif
15786 
15787 #ifndef __IVMRAspectRatioControl_INTERFACE_DEFINED__
15788 #define __IVMRAspectRatioControl_INTERFACE_DEFINED__
15789   EXTERN_C const IID IID_IVMRAspectRatioControl;
15790 #if defined(__cplusplus) && !defined(CINTERFACE)
15791   struct IVMRAspectRatioControl : public IUnknown {
15792   public:
15793     virtual HRESULT WINAPI GetAspectRatioMode(LPDWORD lpdwARMode) = 0;
15794     virtual HRESULT WINAPI SetAspectRatioMode(DWORD dwARMode) = 0;
15795   };
15796 #else
15797   typedef struct IVMRAspectRatioControlVtbl {
15798     BEGIN_INTERFACE
15799       HRESULT (WINAPI *QueryInterface)(IVMRAspectRatioControl *This,REFIID riid,void **ppvObject);
15800       ULONG (WINAPI *AddRef)(IVMRAspectRatioControl *This);
15801       ULONG (WINAPI *Release)(IVMRAspectRatioControl *This);
15802       HRESULT (WINAPI *GetAspectRatioMode)(IVMRAspectRatioControl *This,LPDWORD lpdwARMode);
15803       HRESULT (WINAPI *SetAspectRatioMode)(IVMRAspectRatioControl *This,DWORD dwARMode);
15804     END_INTERFACE
15805   } IVMRAspectRatioControlVtbl;
15806   struct IVMRAspectRatioControl {
15807     CONST_VTBL struct IVMRAspectRatioControlVtbl *lpVtbl;
15808   };
15809 #ifdef COBJMACROS
15810 #define IVMRAspectRatioControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15811 #define IVMRAspectRatioControl_AddRef(This) (This)->lpVtbl->AddRef(This)
15812 #define IVMRAspectRatioControl_Release(This) (This)->lpVtbl->Release(This)
15813 #define IVMRAspectRatioControl_GetAspectRatioMode(This,lpdwARMode) (This)->lpVtbl->GetAspectRatioMode(This,lpdwARMode)
15814 #define IVMRAspectRatioControl_SetAspectRatioMode(This,dwARMode) (This)->lpVtbl->SetAspectRatioMode(This,dwARMode)
15815 #endif
15816 #endif
15817   HRESULT WINAPI IVMRAspectRatioControl_GetAspectRatioMode_Proxy(IVMRAspectRatioControl *This,LPDWORD lpdwARMode);
15818   void __RPC_STUB IVMRAspectRatioControl_GetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15819   HRESULT WINAPI IVMRAspectRatioControl_SetAspectRatioMode_Proxy(IVMRAspectRatioControl *This,DWORD dwARMode);
15820   void __RPC_STUB IVMRAspectRatioControl_SetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15821 #endif
15822 
15823   typedef enum __MIDL___MIDL_itf_strmif_0405_0001 {
15824     DeinterlacePref_NextBest = 0x1,DeinterlacePref_BOB = 0x2,DeinterlacePref_Weave = 0x4,DeinterlacePref_Mask = 0x7
15825   } VMRDeinterlacePrefs;
15826 
15827   typedef enum __MIDL___MIDL_itf_strmif_0405_0002 {
15828     DeinterlaceTech_Unknown = 0,DeinterlaceTech_BOBLineReplicate = 0x1,DeinterlaceTech_BOBVerticalStretch = 0x2,DeinterlaceTech_MedianFiltering = 0x4,
15829     DeinterlaceTech_EdgeFiltering = 0x10,DeinterlaceTech_FieldAdaptive = 0x20,DeinterlaceTech_PixelAdaptive = 0x40,
15830     DeinterlaceTech_MotionVectorSteered = 0x80
15831   } VMRDeinterlaceTech;
15832 
15833   typedef struct _VMRFrequency {
15834     DWORD dwNumerator;
15835     DWORD dwDenominator;
15836   } VMRFrequency;
15837 
15838   typedef struct _VMRVideoDesc {
15839     DWORD dwSize;
15840     DWORD dwSampleWidth;
15841     DWORD dwSampleHeight;
15842     WINBOOL SingleFieldPerSample;
15843     DWORD dwFourCC;
15844     VMRFrequency InputSampleFreq;
15845     VMRFrequency OutputFrameFreq;
15846   } VMRVideoDesc;
15847 
15848   typedef struct _VMRDeinterlaceCaps {
15849     DWORD dwSize;
15850     DWORD dwNumPreviousOutputFrames;
15851     DWORD dwNumForwardRefSamples;
15852     DWORD dwNumBackwardRefSamples;
15853     VMRDeinterlaceTech DeinterlaceTechnology;
15854   } VMRDeinterlaceCaps;
15855 
15856   extern RPC_IF_HANDLE __MIDL_itf_strmif_0405_v0_0_c_ifspec;
15857   extern RPC_IF_HANDLE __MIDL_itf_strmif_0405_v0_0_s_ifspec;
15858 #ifndef __IVMRDeinterlaceControl_INTERFACE_DEFINED__
15859 #define __IVMRDeinterlaceControl_INTERFACE_DEFINED__
15860   EXTERN_C const IID IID_IVMRDeinterlaceControl;
15861 #if defined(__cplusplus) && !defined(CINTERFACE)
15862   struct IVMRDeinterlaceControl : public IUnknown {
15863   public:
15864     virtual HRESULT WINAPI GetNumberOfDeinterlaceModes(VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes) = 0;
15865     virtual HRESULT WINAPI GetDeinterlaceModeCaps(LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps) = 0;
15866     virtual HRESULT WINAPI GetDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
15867     virtual HRESULT WINAPI SetDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
15868     virtual HRESULT WINAPI GetDeinterlacePrefs(LPDWORD lpdwDeinterlacePrefs) = 0;
15869     virtual HRESULT WINAPI SetDeinterlacePrefs(DWORD dwDeinterlacePrefs) = 0;
15870     virtual HRESULT WINAPI GetActualDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
15871   };
15872 #else
15873   typedef struct IVMRDeinterlaceControlVtbl {
15874     BEGIN_INTERFACE
15875       HRESULT (WINAPI *QueryInterface)(IVMRDeinterlaceControl *This,REFIID riid,void **ppvObject);
15876       ULONG (WINAPI *AddRef)(IVMRDeinterlaceControl *This);
15877       ULONG (WINAPI *Release)(IVMRDeinterlaceControl *This);
15878       HRESULT (WINAPI *GetNumberOfDeinterlaceModes)(IVMRDeinterlaceControl *This,VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes);
15879       HRESULT (WINAPI *GetDeinterlaceModeCaps)(IVMRDeinterlaceControl *This,LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps);
15880       HRESULT (WINAPI *GetDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
15881       HRESULT (WINAPI *SetDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
15882       HRESULT (WINAPI *GetDeinterlacePrefs)(IVMRDeinterlaceControl *This,LPDWORD lpdwDeinterlacePrefs);
15883       HRESULT (WINAPI *SetDeinterlacePrefs)(IVMRDeinterlaceControl *This,DWORD dwDeinterlacePrefs);
15884       HRESULT (WINAPI *GetActualDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
15885     END_INTERFACE
15886   } IVMRDeinterlaceControlVtbl;
15887   struct IVMRDeinterlaceControl {
15888     CONST_VTBL struct IVMRDeinterlaceControlVtbl *lpVtbl;
15889   };
15890 #ifdef COBJMACROS
15891 #define IVMRDeinterlaceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15892 #define IVMRDeinterlaceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
15893 #define IVMRDeinterlaceControl_Release(This) (This)->lpVtbl->Release(This)
15894 #define IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes) (This)->lpVtbl->GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes)
15895 #define IVMRDeinterlaceControl_GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps) (This)->lpVtbl->GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps)
15896 #define IVMRDeinterlaceControl_GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
15897 #define IVMRDeinterlaceControl_SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
15898 #define IVMRDeinterlaceControl_GetDeinterlacePrefs(This,lpdwDeinterlacePrefs) (This)->lpVtbl->GetDeinterlacePrefs(This,lpdwDeinterlacePrefs)
15899 #define IVMRDeinterlaceControl_SetDeinterlacePrefs(This,dwDeinterlacePrefs) (This)->lpVtbl->SetDeinterlacePrefs(This,dwDeinterlacePrefs)
15900 #define IVMRDeinterlaceControl_GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
15901 #endif
15902 #endif
15903   HRESULT WINAPI IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes_Proxy(IVMRDeinterlaceControl *This,VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes);
15904   void __RPC_STUB IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15905   HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlaceModeCaps_Proxy(IVMRDeinterlaceControl *This,LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps);
15906   void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlaceModeCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15907   HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
15908   void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15909   HRESULT WINAPI IVMRDeinterlaceControl_SetDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
15910   void __RPC_STUB IVMRDeinterlaceControl_SetDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15911   HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlacePrefs_Proxy(IVMRDeinterlaceControl *This,LPDWORD lpdwDeinterlacePrefs);
15912   void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlacePrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15913   HRESULT WINAPI IVMRDeinterlaceControl_SetDeinterlacePrefs_Proxy(IVMRDeinterlaceControl *This,DWORD dwDeinterlacePrefs);
15914   void __RPC_STUB IVMRDeinterlaceControl_SetDeinterlacePrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15915   HRESULT WINAPI IVMRDeinterlaceControl_GetActualDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
15916   void __RPC_STUB IVMRDeinterlaceControl_GetActualDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15917 #endif
15918 
15919   typedef struct _VMRALPHABITMAP {
15920     DWORD dwFlags;
15921     HDC hdc;
15922     LPDIRECTDRAWSURFACE7 pDDS;
15923     RECT rSrc;
15924     NORMALIZEDRECT rDest;
15925     FLOAT fAlpha;
15926     COLORREF clrSrcKey;
15927   } VMRALPHABITMAP;
15928 
15929   typedef struct _VMRALPHABITMAP *PVMRALPHABITMAP;
15930 
15931 #define VMRBITMAP_DISABLE 0x00000001
15932 #define VMRBITMAP_HDC 0x00000002
15933 #define VMRBITMAP_ENTIREDDS 0x00000004
15934 #define VMRBITMAP_SRCCOLORKEY 0x00000008
15935 #define VMRBITMAP_SRCRECT 0x00000010
15936 
15937   extern RPC_IF_HANDLE __MIDL_itf_strmif_0406_v0_0_c_ifspec;
15938   extern RPC_IF_HANDLE __MIDL_itf_strmif_0406_v0_0_s_ifspec;
15939 #ifndef __IVMRMixerBitmap_INTERFACE_DEFINED__
15940 #define __IVMRMixerBitmap_INTERFACE_DEFINED__
15941   EXTERN_C const IID IID_IVMRMixerBitmap;
15942 #if defined(__cplusplus) && !defined(CINTERFACE)
15943   struct IVMRMixerBitmap : public IUnknown {
15944   public:
15945     virtual HRESULT WINAPI SetAlphaBitmap(const VMRALPHABITMAP *pBmpParms) = 0;
15946     virtual HRESULT WINAPI UpdateAlphaBitmapParameters(PVMRALPHABITMAP pBmpParms) = 0;
15947     virtual HRESULT WINAPI GetAlphaBitmapParameters(PVMRALPHABITMAP pBmpParms) = 0;
15948   };
15949 #else
15950   typedef struct IVMRMixerBitmapVtbl {
15951     BEGIN_INTERFACE
15952       HRESULT (WINAPI *QueryInterface)(IVMRMixerBitmap *This,REFIID riid,void **ppvObject);
15953       ULONG (WINAPI *AddRef)(IVMRMixerBitmap *This);
15954       ULONG (WINAPI *Release)(IVMRMixerBitmap *This);
15955       HRESULT (WINAPI *SetAlphaBitmap)(IVMRMixerBitmap *This,const VMRALPHABITMAP *pBmpParms);
15956       HRESULT (WINAPI *UpdateAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
15957       HRESULT (WINAPI *GetAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
15958     END_INTERFACE
15959   } IVMRMixerBitmapVtbl;
15960   struct IVMRMixerBitmap {
15961     CONST_VTBL struct IVMRMixerBitmapVtbl *lpVtbl;
15962   };
15963 #ifdef COBJMACROS
15964 #define IVMRMixerBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15965 #define IVMRMixerBitmap_AddRef(This) (This)->lpVtbl->AddRef(This)
15966 #define IVMRMixerBitmap_Release(This) (This)->lpVtbl->Release(This)
15967 #define IVMRMixerBitmap_SetAlphaBitmap(This,pBmpParms) (This)->lpVtbl->SetAlphaBitmap(This,pBmpParms)
15968 #define IVMRMixerBitmap_UpdateAlphaBitmapParameters(This,pBmpParms) (This)->lpVtbl->UpdateAlphaBitmapParameters(This,pBmpParms)
15969 #define IVMRMixerBitmap_GetAlphaBitmapParameters(This,pBmpParms) (This)->lpVtbl->GetAlphaBitmapParameters(This,pBmpParms)
15970 #endif
15971 #endif
15972   HRESULT WINAPI IVMRMixerBitmap_SetAlphaBitmap_Proxy(IVMRMixerBitmap *This,const VMRALPHABITMAP *pBmpParms);
15973   void __RPC_STUB IVMRMixerBitmap_SetAlphaBitmap_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15974   HRESULT WINAPI IVMRMixerBitmap_UpdateAlphaBitmapParameters_Proxy(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
15975   void __RPC_STUB IVMRMixerBitmap_UpdateAlphaBitmapParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15976   HRESULT WINAPI IVMRMixerBitmap_GetAlphaBitmapParameters_Proxy(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
15977   void __RPC_STUB IVMRMixerBitmap_GetAlphaBitmapParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15978 #endif
15979 
15980   typedef struct _VMRVIDEOSTREAMINFO {
15981     LPDIRECTDRAWSURFACE7 pddsVideoSurface;
15982     DWORD dwWidth;
15983     DWORD dwHeight;
15984     DWORD dwStrmID;
15985     FLOAT fAlpha;
15986     DDCOLORKEY ddClrKey;
15987     NORMALIZEDRECT rNormal;
15988   } VMRVIDEOSTREAMINFO;
15989 
15990   extern RPC_IF_HANDLE __MIDL_itf_strmif_0407_v0_0_c_ifspec;
15991   extern RPC_IF_HANDLE __MIDL_itf_strmif_0407_v0_0_s_ifspec;
15992 #ifndef __IVMRImageCompositor_INTERFACE_DEFINED__
15993 #define __IVMRImageCompositor_INTERFACE_DEFINED__
15994   EXTERN_C const IID IID_IVMRImageCompositor;
15995 #if defined(__cplusplus) && !defined(CINTERFACE)
15996   struct IVMRImageCompositor : public IUnknown {
15997   public:
15998     virtual HRESULT WINAPI InitCompositionTarget(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget) = 0;
15999     virtual HRESULT WINAPI TermCompositionTarget(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget) = 0;
16000     virtual HRESULT WINAPI SetStreamMediaType(DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture) = 0;
16001     virtual HRESULT WINAPI CompositeImage(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget,AM_MEDIA_TYPE *pmtRenderTarget,REFERENCE_TIME rtStart,REFERENCE_TIME rtEnd,DWORD dwClrBkGnd,VMRVIDEOSTREAMINFO *pVideoStreamInfo,UINT cStreams) = 0;
16002   };
16003 #else
16004   typedef struct IVMRImageCompositorVtbl {
16005     BEGIN_INTERFACE
16006       HRESULT (WINAPI *QueryInterface)(IVMRImageCompositor *This,REFIID riid,void **ppvObject);
16007       ULONG (WINAPI *AddRef)(IVMRImageCompositor *This);
16008       ULONG (WINAPI *Release)(IVMRImageCompositor *This);
16009       HRESULT (WINAPI *InitCompositionTarget)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
16010       HRESULT (WINAPI *TermCompositionTarget)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
16011       HRESULT (WINAPI *SetStreamMediaType)(IVMRImageCompositor *This,DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture);
16012       HRESULT (WINAPI *CompositeImage)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget,AM_MEDIA_TYPE *pmtRenderTarget,REFERENCE_TIME rtStart,REFERENCE_TIME rtEnd,DWORD dwClrBkGnd,VMRVIDEOSTREAMINFO *pVideoStreamInfo,UINT cStreams);
16013     END_INTERFACE
16014   } IVMRImageCompositorVtbl;
16015   struct IVMRImageCompositor {
16016     CONST_VTBL struct IVMRImageCompositorVtbl *lpVtbl;
16017   };
16018 #ifdef COBJMACROS
16019 #define IVMRImageCompositor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16020 #define IVMRImageCompositor_AddRef(This) (This)->lpVtbl->AddRef(This)
16021 #define IVMRImageCompositor_Release(This) (This)->lpVtbl->Release(This)
16022 #define IVMRImageCompositor_InitCompositionTarget(This,pD3DDevice,pddsRenderTarget) (This)->lpVtbl->InitCompositionTarget(This,pD3DDevice,pddsRenderTarget)
16023 #define IVMRImageCompositor_TermCompositionTarget(This,pD3DDevice,pddsRenderTarget) (This)->lpVtbl->TermCompositionTarget(This,pD3DDevice,pddsRenderTarget)
16024 #define IVMRImageCompositor_SetStreamMediaType(This,dwStrmID,pmt,fTexture) (This)->lpVtbl->SetStreamMediaType(This,dwStrmID,pmt,fTexture)
16025 #define IVMRImageCompositor_CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams) (This)->lpVtbl->CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams)
16026 #endif
16027 #endif
16028   HRESULT WINAPI IVMRImageCompositor_InitCompositionTarget_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
16029   void __RPC_STUB IVMRImageCompositor_InitCompositionTarget_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16030   HRESULT WINAPI IVMRImageCompositor_TermCompositionTarget_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
16031   void __RPC_STUB IVMRImageCompositor_TermCompositionTarget_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16032   HRESULT WINAPI IVMRImageCompositor_SetStreamMediaType_Proxy(IVMRImageCompositor *This,DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture);
16033   void __RPC_STUB IVMRImageCompositor_SetStreamMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16034   HRESULT WINAPI IVMRImageCompositor_CompositeImage_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget,AM_MEDIA_TYPE *pmtRenderTarget,REFERENCE_TIME rtStart,REFERENCE_TIME rtEnd,DWORD dwClrBkGnd,VMRVIDEOSTREAMINFO *pVideoStreamInfo,UINT cStreams);
16035   void __RPC_STUB IVMRImageCompositor_CompositeImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16036 #endif
16037 
16038 #ifndef __IVMRVideoStreamControl_INTERFACE_DEFINED__
16039 #define __IVMRVideoStreamControl_INTERFACE_DEFINED__
16040   EXTERN_C const IID IID_IVMRVideoStreamControl;
16041 #if defined(__cplusplus) && !defined(CINTERFACE)
16042   struct IVMRVideoStreamControl : public IUnknown {
16043   public:
16044     virtual HRESULT WINAPI SetColorKey(LPDDCOLORKEY lpClrKey) = 0;
16045     virtual HRESULT WINAPI GetColorKey(LPDDCOLORKEY lpClrKey) = 0;
16046     virtual HRESULT WINAPI SetStreamActiveState(WINBOOL fActive) = 0;
16047     virtual HRESULT WINAPI GetStreamActiveState(WINBOOL *lpfActive) = 0;
16048   };
16049 #else
16050   typedef struct IVMRVideoStreamControlVtbl {
16051     BEGIN_INTERFACE
16052       HRESULT (WINAPI *QueryInterface)(IVMRVideoStreamControl *This,REFIID riid,void **ppvObject);
16053       ULONG (WINAPI *AddRef)(IVMRVideoStreamControl *This);
16054       ULONG (WINAPI *Release)(IVMRVideoStreamControl *This);
16055       HRESULT (WINAPI *SetColorKey)(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
16056       HRESULT (WINAPI *GetColorKey)(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
16057       HRESULT (WINAPI *SetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL fActive);
16058       HRESULT (WINAPI *GetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
16059     END_INTERFACE
16060   } IVMRVideoStreamControlVtbl;
16061   struct IVMRVideoStreamControl {
16062     CONST_VTBL struct IVMRVideoStreamControlVtbl *lpVtbl;
16063   };
16064 #ifdef COBJMACROS
16065 #define IVMRVideoStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16066 #define IVMRVideoStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
16067 #define IVMRVideoStreamControl_Release(This) (This)->lpVtbl->Release(This)
16068 #define IVMRVideoStreamControl_SetColorKey(This,lpClrKey) (This)->lpVtbl->SetColorKey(This,lpClrKey)
16069 #define IVMRVideoStreamControl_GetColorKey(This,lpClrKey) (This)->lpVtbl->GetColorKey(This,lpClrKey)
16070 #define IVMRVideoStreamControl_SetStreamActiveState(This,fActive) (This)->lpVtbl->SetStreamActiveState(This,fActive)
16071 #define IVMRVideoStreamControl_GetStreamActiveState(This,lpfActive) (This)->lpVtbl->GetStreamActiveState(This,lpfActive)
16072 #endif
16073 #endif
16074   HRESULT WINAPI IVMRVideoStreamControl_SetColorKey_Proxy(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
16075   void __RPC_STUB IVMRVideoStreamControl_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16076   HRESULT WINAPI IVMRVideoStreamControl_GetColorKey_Proxy(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
16077   void __RPC_STUB IVMRVideoStreamControl_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16078   HRESULT WINAPI IVMRVideoStreamControl_SetStreamActiveState_Proxy(IVMRVideoStreamControl *This,WINBOOL fActive);
16079   void __RPC_STUB IVMRVideoStreamControl_SetStreamActiveState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16080   HRESULT WINAPI IVMRVideoStreamControl_GetStreamActiveState_Proxy(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
16081   void __RPC_STUB IVMRVideoStreamControl_GetStreamActiveState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16082 #endif
16083 
16084 #ifndef __IVMRSurface_INTERFACE_DEFINED__
16085 #define __IVMRSurface_INTERFACE_DEFINED__
16086   EXTERN_C const IID IID_IVMRSurface;
16087 #if defined(__cplusplus) && !defined(CINTERFACE)
16088   struct IVMRSurface : public IUnknown {
16089   public:
16090     virtual HRESULT WINAPI IsSurfaceLocked(void) = 0;
16091     virtual HRESULT WINAPI LockSurface(BYTE **lpSurface) = 0;
16092     virtual HRESULT WINAPI UnlockSurface(void) = 0;
16093     virtual HRESULT WINAPI GetSurface(LPDIRECTDRAWSURFACE7 *lplpSurface) = 0;
16094   };
16095 #else
16096   typedef struct IVMRSurfaceVtbl {
16097     BEGIN_INTERFACE
16098       HRESULT (WINAPI *QueryInterface)(IVMRSurface *This,REFIID riid,void **ppvObject);
16099       ULONG (WINAPI *AddRef)(IVMRSurface *This);
16100       ULONG (WINAPI *Release)(IVMRSurface *This);
16101       HRESULT (WINAPI *IsSurfaceLocked)(IVMRSurface *This);
16102       HRESULT (WINAPI *LockSurface)(IVMRSurface *This,BYTE **lpSurface);
16103       HRESULT (WINAPI *UnlockSurface)(IVMRSurface *This);
16104       HRESULT (WINAPI *GetSurface)(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
16105     END_INTERFACE
16106   } IVMRSurfaceVtbl;
16107   struct IVMRSurface {
16108     CONST_VTBL struct IVMRSurfaceVtbl *lpVtbl;
16109   };
16110 #ifdef COBJMACROS
16111 #define IVMRSurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16112 #define IVMRSurface_AddRef(This) (This)->lpVtbl->AddRef(This)
16113 #define IVMRSurface_Release(This) (This)->lpVtbl->Release(This)
16114 #define IVMRSurface_IsSurfaceLocked(This) (This)->lpVtbl->IsSurfaceLocked(This)
16115 #define IVMRSurface_LockSurface(This,lpSurface) (This)->lpVtbl->LockSurface(This,lpSurface)
16116 #define IVMRSurface_UnlockSurface(This) (This)->lpVtbl->UnlockSurface(This)
16117 #define IVMRSurface_GetSurface(This,lplpSurface) (This)->lpVtbl->GetSurface(This,lplpSurface)
16118 #endif
16119 #endif
16120   HRESULT WINAPI IVMRSurface_IsSurfaceLocked_Proxy(IVMRSurface *This);
16121   void __RPC_STUB IVMRSurface_IsSurfaceLocked_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16122   HRESULT WINAPI IVMRSurface_LockSurface_Proxy(IVMRSurface *This,BYTE **lpSurface);
16123   void __RPC_STUB IVMRSurface_LockSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16124   HRESULT WINAPI IVMRSurface_UnlockSurface_Proxy(IVMRSurface *This);
16125   void __RPC_STUB IVMRSurface_UnlockSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16126   HRESULT WINAPI IVMRSurface_GetSurface_Proxy(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
16127   void __RPC_STUB IVMRSurface_GetSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16128 #endif
16129 
16130 #ifndef __IVMRImagePresenterConfig_INTERFACE_DEFINED__
16131 #define __IVMRImagePresenterConfig_INTERFACE_DEFINED__
16132   EXTERN_C const IID IID_IVMRImagePresenterConfig;
16133 
16134 #if defined(__cplusplus) && !defined(CINTERFACE)
16135   struct IVMRImagePresenterConfig : public IUnknown {
16136   public:
16137     virtual HRESULT WINAPI SetRenderingPrefs(DWORD dwRenderFlags) = 0;
16138     virtual HRESULT WINAPI GetRenderingPrefs(DWORD *dwRenderFlags) = 0;
16139   };
16140 #else
16141   typedef struct IVMRImagePresenterConfigVtbl {
16142     BEGIN_INTERFACE
16143       HRESULT (WINAPI *QueryInterface)(IVMRImagePresenterConfig *This,REFIID riid,void **ppvObject);
16144       ULONG (WINAPI *AddRef)(IVMRImagePresenterConfig *This);
16145       ULONG (WINAPI *Release)(IVMRImagePresenterConfig *This);
16146       HRESULT (WINAPI *SetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD dwRenderFlags);
16147       HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
16148     END_INTERFACE
16149   } IVMRImagePresenterConfigVtbl;
16150   struct IVMRImagePresenterConfig {
16151     CONST_VTBL struct IVMRImagePresenterConfigVtbl *lpVtbl;
16152   };
16153 #ifdef COBJMACROS
16154 #define IVMRImagePresenterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16155 #define IVMRImagePresenterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
16156 #define IVMRImagePresenterConfig_Release(This) (This)->lpVtbl->Release(This)
16157 #define IVMRImagePresenterConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
16158 #define IVMRImagePresenterConfig_GetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,dwRenderFlags)
16159 #endif
16160 #endif
16161   HRESULT WINAPI IVMRImagePresenterConfig_SetRenderingPrefs_Proxy(IVMRImagePresenterConfig *This,DWORD dwRenderFlags);
16162   void __RPC_STUB IVMRImagePresenterConfig_SetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16163   HRESULT WINAPI IVMRImagePresenterConfig_GetRenderingPrefs_Proxy(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
16164   void __RPC_STUB IVMRImagePresenterConfig_GetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16165 #endif
16166 
16167 #ifndef __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__
16168 #define __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__
16169   EXTERN_C const IID IID_IVMRImagePresenterExclModeConfig;
16170 #if defined(__cplusplus) && !defined(CINTERFACE)
16171   struct IVMRImagePresenterExclModeConfig : public IVMRImagePresenterConfig {
16172   public:
16173     virtual HRESULT WINAPI SetXlcModeDDObjAndPrimarySurface(LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf) = 0;
16174     virtual HRESULT WINAPI GetXlcModeDDObjAndPrimarySurface(LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf) = 0;
16175   };
16176 #else
16177   typedef struct IVMRImagePresenterExclModeConfigVtbl {
16178     BEGIN_INTERFACE
16179       HRESULT (WINAPI *QueryInterface)(IVMRImagePresenterExclModeConfig *This,REFIID riid,void **ppvObject);
16180       ULONG (WINAPI *AddRef)(IVMRImagePresenterExclModeConfig *This);
16181       ULONG (WINAPI *Release)(IVMRImagePresenterExclModeConfig *This);
16182       HRESULT (WINAPI *SetRenderingPrefs)(IVMRImagePresenterExclModeConfig *This,DWORD dwRenderFlags);
16183       HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterExclModeConfig *This,DWORD *dwRenderFlags);
16184       HRESULT (WINAPI *SetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf);
16185       HRESULT (WINAPI *GetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
16186     END_INTERFACE
16187   } IVMRImagePresenterExclModeConfigVtbl;
16188   struct IVMRImagePresenterExclModeConfig {
16189     CONST_VTBL struct IVMRImagePresenterExclModeConfigVtbl *lpVtbl;
16190   };
16191 #ifdef COBJMACROS
16192 #define IVMRImagePresenterExclModeConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16193 #define IVMRImagePresenterExclModeConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
16194 #define IVMRImagePresenterExclModeConfig_Release(This) (This)->lpVtbl->Release(This)
16195 #define IVMRImagePresenterExclModeConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
16196 #define IVMRImagePresenterExclModeConfig_GetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,dwRenderFlags)
16197 #define IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf) (This)->lpVtbl->SetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf)
16198 #define IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf) (This)->lpVtbl->GetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf)
16199 #endif
16200 #endif
16201   HRESULT WINAPI IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface_Proxy(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf);
16202   void __RPC_STUB IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16203   HRESULT WINAPI IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface_Proxy(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
16204   void __RPC_STUB IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16205 #endif
16206 
16207 #ifndef __IVPManager_INTERFACE_DEFINED__
16208 #define __IVPManager_INTERFACE_DEFINED__
16209   EXTERN_C const IID IID_IVPManager;
16210 #if defined(__cplusplus) && !defined(CINTERFACE)
16211   struct IVPManager : public IUnknown {
16212   public:
16213     virtual HRESULT WINAPI SetVideoPortIndex(DWORD dwVideoPortIndex) = 0;
16214     virtual HRESULT WINAPI GetVideoPortIndex(DWORD *pdwVideoPortIndex) = 0;
16215   };
16216 #else
16217   typedef struct IVPManagerVtbl {
16218     BEGIN_INTERFACE
16219       HRESULT (WINAPI *QueryInterface)(IVPManager *This,REFIID riid,void **ppvObject);
16220       ULONG (WINAPI *AddRef)(IVPManager *This);
16221       ULONG (WINAPI *Release)(IVPManager *This);
16222       HRESULT (WINAPI *SetVideoPortIndex)(IVPManager *This,DWORD dwVideoPortIndex);
16223       HRESULT (WINAPI *GetVideoPortIndex)(IVPManager *This,DWORD *pdwVideoPortIndex);
16224     END_INTERFACE
16225   } IVPManagerVtbl;
16226   struct IVPManager {
16227     CONST_VTBL struct IVPManagerVtbl *lpVtbl;
16228   };
16229 #ifdef COBJMACROS
16230 #define IVPManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16231 #define IVPManager_AddRef(This) (This)->lpVtbl->AddRef(This)
16232 #define IVPManager_Release(This) (This)->lpVtbl->Release(This)
16233 #define IVPManager_SetVideoPortIndex(This,dwVideoPortIndex) (This)->lpVtbl->SetVideoPortIndex(This,dwVideoPortIndex)
16234 #define IVPManager_GetVideoPortIndex(This,pdwVideoPortIndex) (This)->lpVtbl->GetVideoPortIndex(This,pdwVideoPortIndex)
16235 #endif
16236 #endif
16237   HRESULT WINAPI IVPManager_SetVideoPortIndex_Proxy(IVPManager *This,DWORD dwVideoPortIndex);
16238   void __RPC_STUB IVPManager_SetVideoPortIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16239   HRESULT WINAPI IVPManager_GetVideoPortIndex_Proxy(IVPManager *This,DWORD *pdwVideoPortIndex);
16240   void __RPC_STUB IVPManager_GetVideoPortIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16241 #endif
16242 
16243   extern RPC_IF_HANDLE __MIDL_itf_strmif_0413_v0_0_c_ifspec;
16244   extern RPC_IF_HANDLE __MIDL_itf_strmif_0413_v0_0_s_ifspec;
16245 /* Begin additional prototypes for all interfaces */
16246 
16247 
16248 /* End additional prototypes */
16249 
16250 #ifdef __cplusplus
16251 }
16252 #endif
16253 
16254 #endif /* __strmif_h__ */
16255