• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*** Autogenerated by WIDL 4.12.1 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 __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
470 #define __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
471 typedef interface IAMAsyncReaderTimestampScaling IAMAsyncReaderTimestampScaling;
472 #ifdef __cplusplus
473 interface IAMAsyncReaderTimestampScaling;
474 #endif /* __cplusplus */
475 #endif
476 
477 #ifndef __IAMPluginControl_FWD_DEFINED__
478 #define __IAMPluginControl_FWD_DEFINED__
479 typedef interface IAMPluginControl IAMPluginControl;
480 #ifdef __cplusplus
481 interface IAMPluginControl;
482 #endif /* __cplusplus */
483 #endif
484 
485 /* Headers for imported files */
486 
487 #include <unknwn.h>
488 #include <objidl.h>
489 #include <oaidl.h>
490 
491 #ifdef __cplusplus
492 extern "C" {
493 #endif
494 
495 /**
496  * This file is part of the mingw-w64 runtime package.
497  * No warranty is given; refer to the file DISCLAIMER within this package.
498  */
499 
500 #include <winapifamily.h>
501 
502 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
503 
504 #define CDEF_CLASS_DEFAULT 0x1
505 #define CDEF_BYPASS_CLASS_MANAGER 0x2
506 #define CDEF_MERIT_ABOVE_DO_NOT_USE 0x8
507 #define CDEF_DEVMON_CMGR_DEVICE 0x10
508 #define CDEF_DEVMON_DMO 0x20
509 #define CDEF_DEVMON_PNP_DEVICE 0x40
510 #define CDEF_DEVMON_FILTER 0x80
511 
512 #define CDEF_DEVMON_SELECTIVE_MASK 0xf0
513 
514 
515 /*****************************************************************************
516  * ICreateDevEnum interface
517  */
518 #ifndef __ICreateDevEnum_INTERFACE_DEFINED__
519 #define __ICreateDevEnum_INTERFACE_DEFINED__
520 
521 DEFINE_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86);
522 #if defined(__cplusplus) && !defined(CINTERFACE)
523 MIDL_INTERFACE("29840822-5b84-11d0-bd3b-00a0c911ce86")
524 ICreateDevEnum : public IUnknown
525 {
526     virtual HRESULT STDMETHODCALLTYPE CreateClassEnumerator(
527         REFCLSID clsidDeviceClass,
528         IEnumMoniker **ppEnumMoniker,
529         DWORD dwFlags) = 0;
530 
531 };
532 #ifdef __CRT_UUID_DECL
533 __CRT_UUID_DECL(ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86)
534 #endif
535 #else
536 typedef struct ICreateDevEnumVtbl {
537     BEGIN_INTERFACE
538 
539     /*** IUnknown methods ***/
540     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
541         ICreateDevEnum *This,
542         REFIID riid,
543         void **ppvObject);
544 
545     ULONG (STDMETHODCALLTYPE *AddRef)(
546         ICreateDevEnum *This);
547 
548     ULONG (STDMETHODCALLTYPE *Release)(
549         ICreateDevEnum *This);
550 
551     /*** ICreateDevEnum methods ***/
552     HRESULT (STDMETHODCALLTYPE *CreateClassEnumerator)(
553         ICreateDevEnum *This,
554         REFCLSID clsidDeviceClass,
555         IEnumMoniker **ppEnumMoniker,
556         DWORD dwFlags);
557 
558     END_INTERFACE
559 } ICreateDevEnumVtbl;
560 
561 interface ICreateDevEnum {
562     CONST_VTBL ICreateDevEnumVtbl* lpVtbl;
563 };
564 
565 #ifdef COBJMACROS
566 #ifndef WIDL_C_INLINE_WRAPPERS
567 /*** IUnknown methods ***/
568 #define ICreateDevEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
569 #define ICreateDevEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
570 #define ICreateDevEnum_Release(This) (This)->lpVtbl->Release(This)
571 /*** ICreateDevEnum methods ***/
572 #define ICreateDevEnum_CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags) (This)->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags)
573 #else
574 /*** IUnknown methods ***/
575 static FORCEINLINE HRESULT ICreateDevEnum_QueryInterface(ICreateDevEnum* This,REFIID riid,void **ppvObject) {
576     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
577 }
578 static FORCEINLINE ULONG ICreateDevEnum_AddRef(ICreateDevEnum* This) {
579     return This->lpVtbl->AddRef(This);
580 }
581 static FORCEINLINE ULONG ICreateDevEnum_Release(ICreateDevEnum* This) {
582     return This->lpVtbl->Release(This);
583 }
584 /*** ICreateDevEnum methods ***/
585 static FORCEINLINE HRESULT ICreateDevEnum_CreateClassEnumerator(ICreateDevEnum* This,REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags) {
586     return This->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags);
587 }
588 #endif
589 #endif
590 
591 #endif
592 
593 
594 #endif  /* __ICreateDevEnum_INTERFACE_DEFINED__ */
595 
596 #endif
597 /**
598  * This file is part of the mingw-w64 runtime package.
599  * No warranty is given; refer to the file DISCLAIMER within this package.
600  */
601 
602 #include <winapifamily.h>
603 
604 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
605 
606 #define CHARS_IN_GUID 39
607 
608 #ifdef WINE_NO_UNICODE_MACROS
609 #undef GetTimeFormat
610 #endif
611 
612 typedef struct _AMMediaType {
613     GUID majortype;
614     GUID subtype;
615     WINBOOL bFixedSizeSamples;
616     WINBOOL bTemporalCompression;
617     ULONG lSampleSize;
618     GUID formattype;
619     IUnknown *pUnk;
620     ULONG cbFormat;
621     BYTE *pbFormat;
622 } AM_MEDIA_TYPE;
623 
624 typedef enum _PinDirection {
625     PINDIR_INPUT = 0,
626     PINDIR_OUTPUT = 1
627 } PIN_DIRECTION;
628 
629 #define MAX_PIN_NAME 128
630 #define MAX_FILTER_NAME 128
631 
632 #ifndef REFERENCE_TIME_DEFINED
633 #define REFERENCE_TIME_DEFINED
634 typedef LONGLONG REFERENCE_TIME;
635 #endif
636 
637 #ifndef REFTIME_DEFINED
638 #define REFTIME_DEFINED
639 typedef double REFTIME;
640 #endif
641 
642 typedef DWORD_PTR HSEMAPHORE;
643 typedef DWORD_PTR HEVENT;
644 
645 typedef struct _AllocatorProperties {
646     LONG cBuffers;
647     LONG cbBuffer;
648     LONG cbAlign;
649     LONG cbPrefix;
650 } ALLOCATOR_PROPERTIES;
651 
652 #ifndef __IAMovieSetup_FWD_DEFINED__
653 #define __IAMovieSetup_FWD_DEFINED__
654 typedef interface IAMovieSetup IAMovieSetup;
655 #ifdef __cplusplus
656 interface IAMovieSetup;
657 #endif /* __cplusplus */
658 #endif
659 
660 #ifndef __IEnumFilters_FWD_DEFINED__
661 #define __IEnumFilters_FWD_DEFINED__
662 typedef interface IEnumFilters IEnumFilters;
663 #ifdef __cplusplus
664 interface IEnumFilters;
665 #endif /* __cplusplus */
666 #endif
667 
668 #ifndef __IEnumMediaTypes_FWD_DEFINED__
669 #define __IEnumMediaTypes_FWD_DEFINED__
670 typedef interface IEnumMediaTypes IEnumMediaTypes;
671 #ifdef __cplusplus
672 interface IEnumMediaTypes;
673 #endif /* __cplusplus */
674 #endif
675 
676 #ifndef __IEnumPins_FWD_DEFINED__
677 #define __IEnumPins_FWD_DEFINED__
678 typedef interface IEnumPins IEnumPins;
679 #ifdef __cplusplus
680 interface IEnumPins;
681 #endif /* __cplusplus */
682 #endif
683 
684 #ifndef __IBaseFilter_FWD_DEFINED__
685 #define __IBaseFilter_FWD_DEFINED__
686 typedef interface IBaseFilter IBaseFilter;
687 #ifdef __cplusplus
688 interface IBaseFilter;
689 #endif /* __cplusplus */
690 #endif
691 
692 #ifndef __IFilterGraph_FWD_DEFINED__
693 #define __IFilterGraph_FWD_DEFINED__
694 typedef interface IFilterGraph IFilterGraph;
695 #ifdef __cplusplus
696 interface IFilterGraph;
697 #endif /* __cplusplus */
698 #endif
699 
700 #ifndef __IMediaFilter_FWD_DEFINED__
701 #define __IMediaFilter_FWD_DEFINED__
702 typedef interface IMediaFilter IMediaFilter;
703 #ifdef __cplusplus
704 interface IMediaFilter;
705 #endif /* __cplusplus */
706 #endif
707 
708 #ifndef __IMediaSample_FWD_DEFINED__
709 #define __IMediaSample_FWD_DEFINED__
710 typedef interface IMediaSample IMediaSample;
711 #ifdef __cplusplus
712 interface IMediaSample;
713 #endif /* __cplusplus */
714 #endif
715 
716 #ifndef __IMemAllocator_FWD_DEFINED__
717 #define __IMemAllocator_FWD_DEFINED__
718 typedef interface IMemAllocator IMemAllocator;
719 #ifdef __cplusplus
720 interface IMemAllocator;
721 #endif /* __cplusplus */
722 #endif
723 
724 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
725 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
726 typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
727 #ifdef __cplusplus
728 interface IMemAllocatorCallbackTemp;
729 #endif /* __cplusplus */
730 #endif
731 
732 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
733 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
734 typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
735 #ifdef __cplusplus
736 interface IMemAllocatorNotifyCallbackTemp;
737 #endif /* __cplusplus */
738 #endif
739 
740 #ifndef __IMemInputPin_FWD_DEFINED__
741 #define __IMemInputPin_FWD_DEFINED__
742 typedef interface IMemInputPin IMemInputPin;
743 #ifdef __cplusplus
744 interface IMemInputPin;
745 #endif /* __cplusplus */
746 #endif
747 
748 #ifndef __IPin_FWD_DEFINED__
749 #define __IPin_FWD_DEFINED__
750 typedef interface IPin IPin;
751 #ifdef __cplusplus
752 interface IPin;
753 #endif /* __cplusplus */
754 #endif
755 
756 #ifndef __IReferenceClock_FWD_DEFINED__
757 #define __IReferenceClock_FWD_DEFINED__
758 typedef interface IReferenceClock IReferenceClock;
759 #ifdef __cplusplus
760 interface IReferenceClock;
761 #endif /* __cplusplus */
762 #endif
763 
764 
765 /*****************************************************************************
766  * IPin interface
767  */
768 #ifndef __IPin_INTERFACE_DEFINED__
769 #define __IPin_INTERFACE_DEFINED__
770 
771 typedef struct _PinInfo {
772     IBaseFilter *pFilter;
773     PIN_DIRECTION dir;
774     WCHAR achName[128];
775 } PIN_INFO;
776 
777 DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
778 #if defined(__cplusplus) && !defined(CINTERFACE)
779 MIDL_INTERFACE("56a86891-0ad4-11ce-b03a-0020af0ba770")
780 IPin : public IUnknown
781 {
782     virtual HRESULT STDMETHODCALLTYPE Connect(
783         IPin *pReceivePin,
784         const AM_MEDIA_TYPE *pmt) = 0;
785 
786     virtual HRESULT STDMETHODCALLTYPE ReceiveConnection(
787         IPin *pConnector,
788         const AM_MEDIA_TYPE *pmt) = 0;
789 
790     virtual HRESULT STDMETHODCALLTYPE Disconnect(
791         ) = 0;
792 
793     virtual HRESULT STDMETHODCALLTYPE ConnectedTo(
794         IPin **pPin) = 0;
795 
796     virtual HRESULT STDMETHODCALLTYPE ConnectionMediaType(
797         AM_MEDIA_TYPE *pmt) = 0;
798 
799     virtual HRESULT STDMETHODCALLTYPE QueryPinInfo(
800         PIN_INFO *pInfo) = 0;
801 
802     virtual HRESULT STDMETHODCALLTYPE QueryDirection(
803         PIN_DIRECTION *pPinDir) = 0;
804 
805     virtual HRESULT STDMETHODCALLTYPE QueryId(
806         LPWSTR *Id) = 0;
807 
808     virtual HRESULT STDMETHODCALLTYPE QueryAccept(
809         const AM_MEDIA_TYPE *pmt) = 0;
810 
811     virtual HRESULT STDMETHODCALLTYPE EnumMediaTypes(
812         IEnumMediaTypes **ppEnum) = 0;
813 
814     virtual HRESULT STDMETHODCALLTYPE QueryInternalConnections(
815         IPin **apPin,
816         ULONG *nPin) = 0;
817 
818     virtual HRESULT STDMETHODCALLTYPE EndOfStream(
819         ) = 0;
820 
821     virtual HRESULT STDMETHODCALLTYPE BeginFlush(
822         ) = 0;
823 
824     virtual HRESULT STDMETHODCALLTYPE EndFlush(
825         ) = 0;
826 
827     virtual HRESULT STDMETHODCALLTYPE NewSegment(
828         REFERENCE_TIME tStart,
829         REFERENCE_TIME tStop,
830         double dRate) = 0;
831 
832 };
833 #ifdef __CRT_UUID_DECL
834 __CRT_UUID_DECL(IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
835 #endif
836 #else
837 typedef struct IPinVtbl {
838     BEGIN_INTERFACE
839 
840     /*** IUnknown methods ***/
841     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
842         IPin *This,
843         REFIID riid,
844         void **ppvObject);
845 
846     ULONG (STDMETHODCALLTYPE *AddRef)(
847         IPin *This);
848 
849     ULONG (STDMETHODCALLTYPE *Release)(
850         IPin *This);
851 
852     /*** IPin methods ***/
853     HRESULT (STDMETHODCALLTYPE *Connect)(
854         IPin *This,
855         IPin *pReceivePin,
856         const AM_MEDIA_TYPE *pmt);
857 
858     HRESULT (STDMETHODCALLTYPE *ReceiveConnection)(
859         IPin *This,
860         IPin *pConnector,
861         const AM_MEDIA_TYPE *pmt);
862 
863     HRESULT (STDMETHODCALLTYPE *Disconnect)(
864         IPin *This);
865 
866     HRESULT (STDMETHODCALLTYPE *ConnectedTo)(
867         IPin *This,
868         IPin **pPin);
869 
870     HRESULT (STDMETHODCALLTYPE *ConnectionMediaType)(
871         IPin *This,
872         AM_MEDIA_TYPE *pmt);
873 
874     HRESULT (STDMETHODCALLTYPE *QueryPinInfo)(
875         IPin *This,
876         PIN_INFO *pInfo);
877 
878     HRESULT (STDMETHODCALLTYPE *QueryDirection)(
879         IPin *This,
880         PIN_DIRECTION *pPinDir);
881 
882     HRESULT (STDMETHODCALLTYPE *QueryId)(
883         IPin *This,
884         LPWSTR *Id);
885 
886     HRESULT (STDMETHODCALLTYPE *QueryAccept)(
887         IPin *This,
888         const AM_MEDIA_TYPE *pmt);
889 
890     HRESULT (STDMETHODCALLTYPE *EnumMediaTypes)(
891         IPin *This,
892         IEnumMediaTypes **ppEnum);
893 
894     HRESULT (STDMETHODCALLTYPE *QueryInternalConnections)(
895         IPin *This,
896         IPin **apPin,
897         ULONG *nPin);
898 
899     HRESULT (STDMETHODCALLTYPE *EndOfStream)(
900         IPin *This);
901 
902     HRESULT (STDMETHODCALLTYPE *BeginFlush)(
903         IPin *This);
904 
905     HRESULT (STDMETHODCALLTYPE *EndFlush)(
906         IPin *This);
907 
908     HRESULT (STDMETHODCALLTYPE *NewSegment)(
909         IPin *This,
910         REFERENCE_TIME tStart,
911         REFERENCE_TIME tStop,
912         double dRate);
913 
914     END_INTERFACE
915 } IPinVtbl;
916 
917 interface IPin {
918     CONST_VTBL IPinVtbl* lpVtbl;
919 };
920 
921 #ifdef COBJMACROS
922 #ifndef WIDL_C_INLINE_WRAPPERS
923 /*** IUnknown methods ***/
924 #define IPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
925 #define IPin_AddRef(This) (This)->lpVtbl->AddRef(This)
926 #define IPin_Release(This) (This)->lpVtbl->Release(This)
927 /*** IPin methods ***/
928 #define IPin_Connect(This,pReceivePin,pmt) (This)->lpVtbl->Connect(This,pReceivePin,pmt)
929 #define IPin_ReceiveConnection(This,pConnector,pmt) (This)->lpVtbl->ReceiveConnection(This,pConnector,pmt)
930 #define IPin_Disconnect(This) (This)->lpVtbl->Disconnect(This)
931 #define IPin_ConnectedTo(This,pPin) (This)->lpVtbl->ConnectedTo(This,pPin)
932 #define IPin_ConnectionMediaType(This,pmt) (This)->lpVtbl->ConnectionMediaType(This,pmt)
933 #define IPin_QueryPinInfo(This,pInfo) (This)->lpVtbl->QueryPinInfo(This,pInfo)
934 #define IPin_QueryDirection(This,pPinDir) (This)->lpVtbl->QueryDirection(This,pPinDir)
935 #define IPin_QueryId(This,Id) (This)->lpVtbl->QueryId(This,Id)
936 #define IPin_QueryAccept(This,pmt) (This)->lpVtbl->QueryAccept(This,pmt)
937 #define IPin_EnumMediaTypes(This,ppEnum) (This)->lpVtbl->EnumMediaTypes(This,ppEnum)
938 #define IPin_QueryInternalConnections(This,apPin,nPin) (This)->lpVtbl->QueryInternalConnections(This,apPin,nPin)
939 #define IPin_EndOfStream(This) (This)->lpVtbl->EndOfStream(This)
940 #define IPin_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
941 #define IPin_EndFlush(This) (This)->lpVtbl->EndFlush(This)
942 #define IPin_NewSegment(This,tStart,tStop,dRate) (This)->lpVtbl->NewSegment(This,tStart,tStop,dRate)
943 #else
944 /*** IUnknown methods ***/
945 static FORCEINLINE HRESULT IPin_QueryInterface(IPin* This,REFIID riid,void **ppvObject) {
946     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
947 }
948 static FORCEINLINE ULONG IPin_AddRef(IPin* This) {
949     return This->lpVtbl->AddRef(This);
950 }
951 static FORCEINLINE ULONG IPin_Release(IPin* This) {
952     return This->lpVtbl->Release(This);
953 }
954 /*** IPin methods ***/
955 static FORCEINLINE HRESULT IPin_Connect(IPin* This,IPin *pReceivePin,const AM_MEDIA_TYPE *pmt) {
956     return This->lpVtbl->Connect(This,pReceivePin,pmt);
957 }
958 static FORCEINLINE HRESULT IPin_ReceiveConnection(IPin* This,IPin *pConnector,const AM_MEDIA_TYPE *pmt) {
959     return This->lpVtbl->ReceiveConnection(This,pConnector,pmt);
960 }
961 static FORCEINLINE HRESULT IPin_Disconnect(IPin* This) {
962     return This->lpVtbl->Disconnect(This);
963 }
964 static FORCEINLINE HRESULT IPin_ConnectedTo(IPin* This,IPin **pPin) {
965     return This->lpVtbl->ConnectedTo(This,pPin);
966 }
967 static FORCEINLINE HRESULT IPin_ConnectionMediaType(IPin* This,AM_MEDIA_TYPE *pmt) {
968     return This->lpVtbl->ConnectionMediaType(This,pmt);
969 }
970 static FORCEINLINE HRESULT IPin_QueryPinInfo(IPin* This,PIN_INFO *pInfo) {
971     return This->lpVtbl->QueryPinInfo(This,pInfo);
972 }
973 static FORCEINLINE HRESULT IPin_QueryDirection(IPin* This,PIN_DIRECTION *pPinDir) {
974     return This->lpVtbl->QueryDirection(This,pPinDir);
975 }
976 static FORCEINLINE HRESULT IPin_QueryId(IPin* This,LPWSTR *Id) {
977     return This->lpVtbl->QueryId(This,Id);
978 }
979 static FORCEINLINE HRESULT IPin_QueryAccept(IPin* This,const AM_MEDIA_TYPE *pmt) {
980     return This->lpVtbl->QueryAccept(This,pmt);
981 }
982 static FORCEINLINE HRESULT IPin_EnumMediaTypes(IPin* This,IEnumMediaTypes **ppEnum) {
983     return This->lpVtbl->EnumMediaTypes(This,ppEnum);
984 }
985 static FORCEINLINE HRESULT IPin_QueryInternalConnections(IPin* This,IPin **apPin,ULONG *nPin) {
986     return This->lpVtbl->QueryInternalConnections(This,apPin,nPin);
987 }
988 static FORCEINLINE HRESULT IPin_EndOfStream(IPin* This) {
989     return This->lpVtbl->EndOfStream(This);
990 }
991 static FORCEINLINE HRESULT IPin_BeginFlush(IPin* This) {
992     return This->lpVtbl->BeginFlush(This);
993 }
994 static FORCEINLINE HRESULT IPin_EndFlush(IPin* This) {
995     return This->lpVtbl->EndFlush(This);
996 }
997 static FORCEINLINE HRESULT IPin_NewSegment(IPin* This,REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate) {
998     return This->lpVtbl->NewSegment(This,tStart,tStop,dRate);
999 }
1000 #endif
1001 #endif
1002 
1003 #endif
1004 
1005 
1006 #endif  /* __IPin_INTERFACE_DEFINED__ */
1007 
1008 typedef IPin *PPIN;
1009 
1010 /*****************************************************************************
1011  * IEnumPins interface
1012  */
1013 #ifndef __IEnumPins_INTERFACE_DEFINED__
1014 #define __IEnumPins_INTERFACE_DEFINED__
1015 
1016 DEFINE_GUID(IID_IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1017 #if defined(__cplusplus) && !defined(CINTERFACE)
1018 MIDL_INTERFACE("56a86892-0ad4-11ce-b03a-0020af0ba770")
1019 IEnumPins : public IUnknown
1020 {
1021     virtual HRESULT STDMETHODCALLTYPE Next(
1022         ULONG cPins,
1023         IPin **ppPins,
1024         ULONG *pcFetched) = 0;
1025 
1026     virtual HRESULT STDMETHODCALLTYPE Skip(
1027         ULONG cPins) = 0;
1028 
1029     virtual HRESULT STDMETHODCALLTYPE Reset(
1030         ) = 0;
1031 
1032     virtual HRESULT STDMETHODCALLTYPE Clone(
1033         IEnumPins **ppEnum) = 0;
1034 
1035 };
1036 #ifdef __CRT_UUID_DECL
1037 __CRT_UUID_DECL(IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1038 #endif
1039 #else
1040 typedef struct IEnumPinsVtbl {
1041     BEGIN_INTERFACE
1042 
1043     /*** IUnknown methods ***/
1044     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1045         IEnumPins *This,
1046         REFIID riid,
1047         void **ppvObject);
1048 
1049     ULONG (STDMETHODCALLTYPE *AddRef)(
1050         IEnumPins *This);
1051 
1052     ULONG (STDMETHODCALLTYPE *Release)(
1053         IEnumPins *This);
1054 
1055     /*** IEnumPins methods ***/
1056     HRESULT (STDMETHODCALLTYPE *Next)(
1057         IEnumPins *This,
1058         ULONG cPins,
1059         IPin **ppPins,
1060         ULONG *pcFetched);
1061 
1062     HRESULT (STDMETHODCALLTYPE *Skip)(
1063         IEnumPins *This,
1064         ULONG cPins);
1065 
1066     HRESULT (STDMETHODCALLTYPE *Reset)(
1067         IEnumPins *This);
1068 
1069     HRESULT (STDMETHODCALLTYPE *Clone)(
1070         IEnumPins *This,
1071         IEnumPins **ppEnum);
1072 
1073     END_INTERFACE
1074 } IEnumPinsVtbl;
1075 
1076 interface IEnumPins {
1077     CONST_VTBL IEnumPinsVtbl* lpVtbl;
1078 };
1079 
1080 #ifdef COBJMACROS
1081 #ifndef WIDL_C_INLINE_WRAPPERS
1082 /*** IUnknown methods ***/
1083 #define IEnumPins_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1084 #define IEnumPins_AddRef(This) (This)->lpVtbl->AddRef(This)
1085 #define IEnumPins_Release(This) (This)->lpVtbl->Release(This)
1086 /*** IEnumPins methods ***/
1087 #define IEnumPins_Next(This,cPins,ppPins,pcFetched) (This)->lpVtbl->Next(This,cPins,ppPins,pcFetched)
1088 #define IEnumPins_Skip(This,cPins) (This)->lpVtbl->Skip(This,cPins)
1089 #define IEnumPins_Reset(This) (This)->lpVtbl->Reset(This)
1090 #define IEnumPins_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
1091 #else
1092 /*** IUnknown methods ***/
1093 static FORCEINLINE HRESULT IEnumPins_QueryInterface(IEnumPins* This,REFIID riid,void **ppvObject) {
1094     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1095 }
1096 static FORCEINLINE ULONG IEnumPins_AddRef(IEnumPins* This) {
1097     return This->lpVtbl->AddRef(This);
1098 }
1099 static FORCEINLINE ULONG IEnumPins_Release(IEnumPins* This) {
1100     return This->lpVtbl->Release(This);
1101 }
1102 /*** IEnumPins methods ***/
1103 static FORCEINLINE HRESULT IEnumPins_Next(IEnumPins* This,ULONG cPins,IPin **ppPins,ULONG *pcFetched) {
1104     return This->lpVtbl->Next(This,cPins,ppPins,pcFetched);
1105 }
1106 static FORCEINLINE HRESULT IEnumPins_Skip(IEnumPins* This,ULONG cPins) {
1107     return This->lpVtbl->Skip(This,cPins);
1108 }
1109 static FORCEINLINE HRESULT IEnumPins_Reset(IEnumPins* This) {
1110     return This->lpVtbl->Reset(This);
1111 }
1112 static FORCEINLINE HRESULT IEnumPins_Clone(IEnumPins* This,IEnumPins **ppEnum) {
1113     return This->lpVtbl->Clone(This,ppEnum);
1114 }
1115 #endif
1116 #endif
1117 
1118 #endif
1119 
1120 
1121 #endif  /* __IEnumPins_INTERFACE_DEFINED__ */
1122 
1123 typedef IEnumPins *PENUMPINS;
1124 
1125 /*****************************************************************************
1126  * IEnumMediaTypes interface
1127  */
1128 #ifndef __IEnumMediaTypes_INTERFACE_DEFINED__
1129 #define __IEnumMediaTypes_INTERFACE_DEFINED__
1130 
1131 DEFINE_GUID(IID_IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a);
1132 #if defined(__cplusplus) && !defined(CINTERFACE)
1133 MIDL_INTERFACE("89c31040-846b-11ce-97d3-00aa0055595a")
1134 IEnumMediaTypes : public IUnknown
1135 {
1136     virtual HRESULT STDMETHODCALLTYPE Next(
1137         ULONG cMediaTypes,
1138         AM_MEDIA_TYPE **ppMediaTypes,
1139         ULONG *pcFetched) = 0;
1140 
1141     virtual HRESULT STDMETHODCALLTYPE Skip(
1142         ULONG cMediaTypes) = 0;
1143 
1144     virtual HRESULT STDMETHODCALLTYPE Reset(
1145         ) = 0;
1146 
1147     virtual HRESULT STDMETHODCALLTYPE Clone(
1148         IEnumMediaTypes **ppEnum) = 0;
1149 
1150 };
1151 #ifdef __CRT_UUID_DECL
1152 __CRT_UUID_DECL(IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a)
1153 #endif
1154 #else
1155 typedef struct IEnumMediaTypesVtbl {
1156     BEGIN_INTERFACE
1157 
1158     /*** IUnknown methods ***/
1159     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1160         IEnumMediaTypes *This,
1161         REFIID riid,
1162         void **ppvObject);
1163 
1164     ULONG (STDMETHODCALLTYPE *AddRef)(
1165         IEnumMediaTypes *This);
1166 
1167     ULONG (STDMETHODCALLTYPE *Release)(
1168         IEnumMediaTypes *This);
1169 
1170     /*** IEnumMediaTypes methods ***/
1171     HRESULT (STDMETHODCALLTYPE *Next)(
1172         IEnumMediaTypes *This,
1173         ULONG cMediaTypes,
1174         AM_MEDIA_TYPE **ppMediaTypes,
1175         ULONG *pcFetched);
1176 
1177     HRESULT (STDMETHODCALLTYPE *Skip)(
1178         IEnumMediaTypes *This,
1179         ULONG cMediaTypes);
1180 
1181     HRESULT (STDMETHODCALLTYPE *Reset)(
1182         IEnumMediaTypes *This);
1183 
1184     HRESULT (STDMETHODCALLTYPE *Clone)(
1185         IEnumMediaTypes *This,
1186         IEnumMediaTypes **ppEnum);
1187 
1188     END_INTERFACE
1189 } IEnumMediaTypesVtbl;
1190 
1191 interface IEnumMediaTypes {
1192     CONST_VTBL IEnumMediaTypesVtbl* lpVtbl;
1193 };
1194 
1195 #ifdef COBJMACROS
1196 #ifndef WIDL_C_INLINE_WRAPPERS
1197 /*** IUnknown methods ***/
1198 #define IEnumMediaTypes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1199 #define IEnumMediaTypes_AddRef(This) (This)->lpVtbl->AddRef(This)
1200 #define IEnumMediaTypes_Release(This) (This)->lpVtbl->Release(This)
1201 /*** IEnumMediaTypes methods ***/
1202 #define IEnumMediaTypes_Next(This,cMediaTypes,ppMediaTypes,pcFetched) (This)->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched)
1203 #define IEnumMediaTypes_Skip(This,cMediaTypes) (This)->lpVtbl->Skip(This,cMediaTypes)
1204 #define IEnumMediaTypes_Reset(This) (This)->lpVtbl->Reset(This)
1205 #define IEnumMediaTypes_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
1206 #else
1207 /*** IUnknown methods ***/
1208 static FORCEINLINE HRESULT IEnumMediaTypes_QueryInterface(IEnumMediaTypes* This,REFIID riid,void **ppvObject) {
1209     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1210 }
1211 static FORCEINLINE ULONG IEnumMediaTypes_AddRef(IEnumMediaTypes* This) {
1212     return This->lpVtbl->AddRef(This);
1213 }
1214 static FORCEINLINE ULONG IEnumMediaTypes_Release(IEnumMediaTypes* This) {
1215     return This->lpVtbl->Release(This);
1216 }
1217 /*** IEnumMediaTypes methods ***/
1218 static FORCEINLINE HRESULT IEnumMediaTypes_Next(IEnumMediaTypes* This,ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched) {
1219     return This->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched);
1220 }
1221 static FORCEINLINE HRESULT IEnumMediaTypes_Skip(IEnumMediaTypes* This,ULONG cMediaTypes) {
1222     return This->lpVtbl->Skip(This,cMediaTypes);
1223 }
1224 static FORCEINLINE HRESULT IEnumMediaTypes_Reset(IEnumMediaTypes* This) {
1225     return This->lpVtbl->Reset(This);
1226 }
1227 static FORCEINLINE HRESULT IEnumMediaTypes_Clone(IEnumMediaTypes* This,IEnumMediaTypes **ppEnum) {
1228     return This->lpVtbl->Clone(This,ppEnum);
1229 }
1230 #endif
1231 #endif
1232 
1233 #endif
1234 
1235 
1236 #endif  /* __IEnumMediaTypes_INTERFACE_DEFINED__ */
1237 
1238 typedef IEnumMediaTypes *PENUMMEDIATYPES;
1239 
1240 /*****************************************************************************
1241  * IFilterGraph interface
1242  */
1243 #ifndef __IFilterGraph_INTERFACE_DEFINED__
1244 #define __IFilterGraph_INTERFACE_DEFINED__
1245 
1246 DEFINE_GUID(IID_IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1247 #if defined(__cplusplus) && !defined(CINTERFACE)
1248 MIDL_INTERFACE("56a8689f-0ad4-11ce-b03a-0020af0ba770")
1249 IFilterGraph : public IUnknown
1250 {
1251     virtual HRESULT STDMETHODCALLTYPE AddFilter(
1252         IBaseFilter *pFilter,
1253         LPCWSTR pName) = 0;
1254 
1255     virtual HRESULT STDMETHODCALLTYPE RemoveFilter(
1256         IBaseFilter *pFilter) = 0;
1257 
1258     virtual HRESULT STDMETHODCALLTYPE EnumFilters(
1259         IEnumFilters **ppEnum) = 0;
1260 
1261     virtual HRESULT STDMETHODCALLTYPE FindFilterByName(
1262         LPCWSTR pName,
1263         IBaseFilter **ppFilter) = 0;
1264 
1265     virtual HRESULT STDMETHODCALLTYPE ConnectDirect(
1266         IPin *ppinOut,
1267         IPin *ppinIn,
1268         const AM_MEDIA_TYPE *pmt) = 0;
1269 
1270     virtual HRESULT STDMETHODCALLTYPE Reconnect(
1271         IPin *ppin) = 0;
1272 
1273     virtual HRESULT STDMETHODCALLTYPE Disconnect(
1274         IPin *ppin) = 0;
1275 
1276     virtual HRESULT STDMETHODCALLTYPE SetDefaultSyncSource(
1277         ) = 0;
1278 
1279 };
1280 #ifdef __CRT_UUID_DECL
1281 __CRT_UUID_DECL(IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1282 #endif
1283 #else
1284 typedef struct IFilterGraphVtbl {
1285     BEGIN_INTERFACE
1286 
1287     /*** IUnknown methods ***/
1288     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1289         IFilterGraph *This,
1290         REFIID riid,
1291         void **ppvObject);
1292 
1293     ULONG (STDMETHODCALLTYPE *AddRef)(
1294         IFilterGraph *This);
1295 
1296     ULONG (STDMETHODCALLTYPE *Release)(
1297         IFilterGraph *This);
1298 
1299     /*** IFilterGraph methods ***/
1300     HRESULT (STDMETHODCALLTYPE *AddFilter)(
1301         IFilterGraph *This,
1302         IBaseFilter *pFilter,
1303         LPCWSTR pName);
1304 
1305     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
1306         IFilterGraph *This,
1307         IBaseFilter *pFilter);
1308 
1309     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
1310         IFilterGraph *This,
1311         IEnumFilters **ppEnum);
1312 
1313     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
1314         IFilterGraph *This,
1315         LPCWSTR pName,
1316         IBaseFilter **ppFilter);
1317 
1318     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
1319         IFilterGraph *This,
1320         IPin *ppinOut,
1321         IPin *ppinIn,
1322         const AM_MEDIA_TYPE *pmt);
1323 
1324     HRESULT (STDMETHODCALLTYPE *Reconnect)(
1325         IFilterGraph *This,
1326         IPin *ppin);
1327 
1328     HRESULT (STDMETHODCALLTYPE *Disconnect)(
1329         IFilterGraph *This,
1330         IPin *ppin);
1331 
1332     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
1333         IFilterGraph *This);
1334 
1335     END_INTERFACE
1336 } IFilterGraphVtbl;
1337 
1338 interface IFilterGraph {
1339     CONST_VTBL IFilterGraphVtbl* lpVtbl;
1340 };
1341 
1342 #ifdef COBJMACROS
1343 #ifndef WIDL_C_INLINE_WRAPPERS
1344 /*** IUnknown methods ***/
1345 #define IFilterGraph_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1346 #define IFilterGraph_AddRef(This) (This)->lpVtbl->AddRef(This)
1347 #define IFilterGraph_Release(This) (This)->lpVtbl->Release(This)
1348 /*** IFilterGraph methods ***/
1349 #define IFilterGraph_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
1350 #define IFilterGraph_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
1351 #define IFilterGraph_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
1352 #define IFilterGraph_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
1353 #define IFilterGraph_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
1354 #define IFilterGraph_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
1355 #define IFilterGraph_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
1356 #define IFilterGraph_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
1357 #else
1358 /*** IUnknown methods ***/
1359 static FORCEINLINE HRESULT IFilterGraph_QueryInterface(IFilterGraph* This,REFIID riid,void **ppvObject) {
1360     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1361 }
1362 static FORCEINLINE ULONG IFilterGraph_AddRef(IFilterGraph* This) {
1363     return This->lpVtbl->AddRef(This);
1364 }
1365 static FORCEINLINE ULONG IFilterGraph_Release(IFilterGraph* This) {
1366     return This->lpVtbl->Release(This);
1367 }
1368 /*** IFilterGraph methods ***/
1369 static FORCEINLINE HRESULT IFilterGraph_AddFilter(IFilterGraph* This,IBaseFilter *pFilter,LPCWSTR pName) {
1370     return This->lpVtbl->AddFilter(This,pFilter,pName);
1371 }
1372 static FORCEINLINE HRESULT IFilterGraph_RemoveFilter(IFilterGraph* This,IBaseFilter *pFilter) {
1373     return This->lpVtbl->RemoveFilter(This,pFilter);
1374 }
1375 static FORCEINLINE HRESULT IFilterGraph_EnumFilters(IFilterGraph* This,IEnumFilters **ppEnum) {
1376     return This->lpVtbl->EnumFilters(This,ppEnum);
1377 }
1378 static FORCEINLINE HRESULT IFilterGraph_FindFilterByName(IFilterGraph* This,LPCWSTR pName,IBaseFilter **ppFilter) {
1379     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
1380 }
1381 static FORCEINLINE HRESULT IFilterGraph_ConnectDirect(IFilterGraph* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
1382     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
1383 }
1384 static FORCEINLINE HRESULT IFilterGraph_Reconnect(IFilterGraph* This,IPin *ppin) {
1385     return This->lpVtbl->Reconnect(This,ppin);
1386 }
1387 static FORCEINLINE HRESULT IFilterGraph_Disconnect(IFilterGraph* This,IPin *ppin) {
1388     return This->lpVtbl->Disconnect(This,ppin);
1389 }
1390 static FORCEINLINE HRESULT IFilterGraph_SetDefaultSyncSource(IFilterGraph* This) {
1391     return This->lpVtbl->SetDefaultSyncSource(This);
1392 }
1393 #endif
1394 #endif
1395 
1396 #endif
1397 
1398 
1399 #endif  /* __IFilterGraph_INTERFACE_DEFINED__ */
1400 
1401 typedef IFilterGraph *PFILTERGRAPH;
1402 
1403 /*****************************************************************************
1404  * IEnumFilters interface
1405  */
1406 #ifndef __IEnumFilters_INTERFACE_DEFINED__
1407 #define __IEnumFilters_INTERFACE_DEFINED__
1408 
1409 DEFINE_GUID(IID_IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1410 #if defined(__cplusplus) && !defined(CINTERFACE)
1411 MIDL_INTERFACE("56a86893-0ad4-11ce-b03a-0020af0ba770")
1412 IEnumFilters : public IUnknown
1413 {
1414     virtual HRESULT STDMETHODCALLTYPE Next(
1415         ULONG cFilters,
1416         IBaseFilter **ppFilter,
1417         ULONG *pcFetched) = 0;
1418 
1419     virtual HRESULT STDMETHODCALLTYPE Skip(
1420         ULONG cFilters) = 0;
1421 
1422     virtual HRESULT STDMETHODCALLTYPE Reset(
1423         ) = 0;
1424 
1425     virtual HRESULT STDMETHODCALLTYPE Clone(
1426         IEnumFilters **ppEnum) = 0;
1427 
1428 };
1429 #ifdef __CRT_UUID_DECL
1430 __CRT_UUID_DECL(IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1431 #endif
1432 #else
1433 typedef struct IEnumFiltersVtbl {
1434     BEGIN_INTERFACE
1435 
1436     /*** IUnknown methods ***/
1437     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1438         IEnumFilters *This,
1439         REFIID riid,
1440         void **ppvObject);
1441 
1442     ULONG (STDMETHODCALLTYPE *AddRef)(
1443         IEnumFilters *This);
1444 
1445     ULONG (STDMETHODCALLTYPE *Release)(
1446         IEnumFilters *This);
1447 
1448     /*** IEnumFilters methods ***/
1449     HRESULT (STDMETHODCALLTYPE *Next)(
1450         IEnumFilters *This,
1451         ULONG cFilters,
1452         IBaseFilter **ppFilter,
1453         ULONG *pcFetched);
1454 
1455     HRESULT (STDMETHODCALLTYPE *Skip)(
1456         IEnumFilters *This,
1457         ULONG cFilters);
1458 
1459     HRESULT (STDMETHODCALLTYPE *Reset)(
1460         IEnumFilters *This);
1461 
1462     HRESULT (STDMETHODCALLTYPE *Clone)(
1463         IEnumFilters *This,
1464         IEnumFilters **ppEnum);
1465 
1466     END_INTERFACE
1467 } IEnumFiltersVtbl;
1468 
1469 interface IEnumFilters {
1470     CONST_VTBL IEnumFiltersVtbl* lpVtbl;
1471 };
1472 
1473 #ifdef COBJMACROS
1474 #ifndef WIDL_C_INLINE_WRAPPERS
1475 /*** IUnknown methods ***/
1476 #define IEnumFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1477 #define IEnumFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
1478 #define IEnumFilters_Release(This) (This)->lpVtbl->Release(This)
1479 /*** IEnumFilters methods ***/
1480 #define IEnumFilters_Next(This,cFilters,ppFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,ppFilter,pcFetched)
1481 #define IEnumFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
1482 #define IEnumFilters_Reset(This) (This)->lpVtbl->Reset(This)
1483 #define IEnumFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
1484 #else
1485 /*** IUnknown methods ***/
1486 static FORCEINLINE HRESULT IEnumFilters_QueryInterface(IEnumFilters* This,REFIID riid,void **ppvObject) {
1487     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1488 }
1489 static FORCEINLINE ULONG IEnumFilters_AddRef(IEnumFilters* This) {
1490     return This->lpVtbl->AddRef(This);
1491 }
1492 static FORCEINLINE ULONG IEnumFilters_Release(IEnumFilters* This) {
1493     return This->lpVtbl->Release(This);
1494 }
1495 /*** IEnumFilters methods ***/
1496 static FORCEINLINE HRESULT IEnumFilters_Next(IEnumFilters* This,ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched) {
1497     return This->lpVtbl->Next(This,cFilters,ppFilter,pcFetched);
1498 }
1499 static FORCEINLINE HRESULT IEnumFilters_Skip(IEnumFilters* This,ULONG cFilters) {
1500     return This->lpVtbl->Skip(This,cFilters);
1501 }
1502 static FORCEINLINE HRESULT IEnumFilters_Reset(IEnumFilters* This) {
1503     return This->lpVtbl->Reset(This);
1504 }
1505 static FORCEINLINE HRESULT IEnumFilters_Clone(IEnumFilters* This,IEnumFilters **ppEnum) {
1506     return This->lpVtbl->Clone(This,ppEnum);
1507 }
1508 #endif
1509 #endif
1510 
1511 #endif
1512 
1513 
1514 #endif  /* __IEnumFilters_INTERFACE_DEFINED__ */
1515 
1516 typedef IEnumFilters *PENUMFILTERS;
1517 
1518 /*****************************************************************************
1519  * IMediaFilter interface
1520  */
1521 #ifndef __IMediaFilter_INTERFACE_DEFINED__
1522 #define __IMediaFilter_INTERFACE_DEFINED__
1523 
1524 typedef enum _FilterState {
1525     State_Stopped = 0,
1526     State_Paused = 1,
1527     State_Running = 2
1528 } FILTER_STATE;
1529 
1530 DEFINE_GUID(IID_IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1531 #if defined(__cplusplus) && !defined(CINTERFACE)
1532 MIDL_INTERFACE("56a86899-0ad4-11ce-b03a-0020af0ba770")
1533 IMediaFilter : public IPersist
1534 {
1535     virtual HRESULT STDMETHODCALLTYPE Stop(
1536         ) = 0;
1537 
1538     virtual HRESULT STDMETHODCALLTYPE Pause(
1539         ) = 0;
1540 
1541     virtual HRESULT STDMETHODCALLTYPE Run(
1542         REFERENCE_TIME tStart) = 0;
1543 
1544     virtual HRESULT STDMETHODCALLTYPE GetState(
1545         DWORD dwMilliSecsTimeout,
1546         FILTER_STATE *State) = 0;
1547 
1548     virtual HRESULT STDMETHODCALLTYPE SetSyncSource(
1549         IReferenceClock *pClock) = 0;
1550 
1551     virtual HRESULT STDMETHODCALLTYPE GetSyncSource(
1552         IReferenceClock **pClock) = 0;
1553 
1554 };
1555 #ifdef __CRT_UUID_DECL
1556 __CRT_UUID_DECL(IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1557 #endif
1558 #else
1559 typedef struct IMediaFilterVtbl {
1560     BEGIN_INTERFACE
1561 
1562     /*** IUnknown methods ***/
1563     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1564         IMediaFilter *This,
1565         REFIID riid,
1566         void **ppvObject);
1567 
1568     ULONG (STDMETHODCALLTYPE *AddRef)(
1569         IMediaFilter *This);
1570 
1571     ULONG (STDMETHODCALLTYPE *Release)(
1572         IMediaFilter *This);
1573 
1574     /*** IPersist methods ***/
1575     HRESULT (STDMETHODCALLTYPE *GetClassID)(
1576         IMediaFilter *This,
1577         CLSID *pClassID);
1578 
1579     /*** IMediaFilter methods ***/
1580     HRESULT (STDMETHODCALLTYPE *Stop)(
1581         IMediaFilter *This);
1582 
1583     HRESULT (STDMETHODCALLTYPE *Pause)(
1584         IMediaFilter *This);
1585 
1586     HRESULT (STDMETHODCALLTYPE *Run)(
1587         IMediaFilter *This,
1588         REFERENCE_TIME tStart);
1589 
1590     HRESULT (STDMETHODCALLTYPE *GetState)(
1591         IMediaFilter *This,
1592         DWORD dwMilliSecsTimeout,
1593         FILTER_STATE *State);
1594 
1595     HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
1596         IMediaFilter *This,
1597         IReferenceClock *pClock);
1598 
1599     HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
1600         IMediaFilter *This,
1601         IReferenceClock **pClock);
1602 
1603     END_INTERFACE
1604 } IMediaFilterVtbl;
1605 
1606 interface IMediaFilter {
1607     CONST_VTBL IMediaFilterVtbl* lpVtbl;
1608 };
1609 
1610 #ifdef COBJMACROS
1611 #ifndef WIDL_C_INLINE_WRAPPERS
1612 /*** IUnknown methods ***/
1613 #define IMediaFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1614 #define IMediaFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
1615 #define IMediaFilter_Release(This) (This)->lpVtbl->Release(This)
1616 /*** IPersist methods ***/
1617 #define IMediaFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
1618 /*** IMediaFilter methods ***/
1619 #define IMediaFilter_Stop(This) (This)->lpVtbl->Stop(This)
1620 #define IMediaFilter_Pause(This) (This)->lpVtbl->Pause(This)
1621 #define IMediaFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
1622 #define IMediaFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
1623 #define IMediaFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
1624 #define IMediaFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
1625 #else
1626 /*** IUnknown methods ***/
1627 static FORCEINLINE HRESULT IMediaFilter_QueryInterface(IMediaFilter* This,REFIID riid,void **ppvObject) {
1628     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1629 }
1630 static FORCEINLINE ULONG IMediaFilter_AddRef(IMediaFilter* This) {
1631     return This->lpVtbl->AddRef(This);
1632 }
1633 static FORCEINLINE ULONG IMediaFilter_Release(IMediaFilter* This) {
1634     return This->lpVtbl->Release(This);
1635 }
1636 /*** IPersist methods ***/
1637 static FORCEINLINE HRESULT IMediaFilter_GetClassID(IMediaFilter* This,CLSID *pClassID) {
1638     return This->lpVtbl->GetClassID(This,pClassID);
1639 }
1640 /*** IMediaFilter methods ***/
1641 static FORCEINLINE HRESULT IMediaFilter_Stop(IMediaFilter* This) {
1642     return This->lpVtbl->Stop(This);
1643 }
1644 static FORCEINLINE HRESULT IMediaFilter_Pause(IMediaFilter* This) {
1645     return This->lpVtbl->Pause(This);
1646 }
1647 static FORCEINLINE HRESULT IMediaFilter_Run(IMediaFilter* This,REFERENCE_TIME tStart) {
1648     return This->lpVtbl->Run(This,tStart);
1649 }
1650 static FORCEINLINE HRESULT IMediaFilter_GetState(IMediaFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
1651     return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
1652 }
1653 static FORCEINLINE HRESULT IMediaFilter_SetSyncSource(IMediaFilter* This,IReferenceClock *pClock) {
1654     return This->lpVtbl->SetSyncSource(This,pClock);
1655 }
1656 static FORCEINLINE HRESULT IMediaFilter_GetSyncSource(IMediaFilter* This,IReferenceClock **pClock) {
1657     return This->lpVtbl->GetSyncSource(This,pClock);
1658 }
1659 #endif
1660 #endif
1661 
1662 #endif
1663 
1664 
1665 #endif  /* __IMediaFilter_INTERFACE_DEFINED__ */
1666 
1667 typedef IMediaFilter *PMEDIAFILTER;
1668 
1669 /*****************************************************************************
1670  * IBaseFilter interface
1671  */
1672 #ifndef __IBaseFilter_INTERFACE_DEFINED__
1673 #define __IBaseFilter_INTERFACE_DEFINED__
1674 
1675 typedef struct _FilterInfo {
1676     WCHAR achName[128];
1677     IFilterGraph *pGraph;
1678 } FILTER_INFO;
1679 
1680 DEFINE_GUID(IID_IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1681 #if defined(__cplusplus) && !defined(CINTERFACE)
1682 MIDL_INTERFACE("56a86895-0ad4-11ce-b03a-0020af0ba770")
1683 IBaseFilter : public IMediaFilter
1684 {
1685     virtual HRESULT STDMETHODCALLTYPE EnumPins(
1686         IEnumPins **ppEnum) = 0;
1687 
1688     virtual HRESULT STDMETHODCALLTYPE FindPin(
1689         LPCWSTR Id,
1690         IPin **ppPin) = 0;
1691 
1692     virtual HRESULT STDMETHODCALLTYPE QueryFilterInfo(
1693         FILTER_INFO *pInfo) = 0;
1694 
1695     virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph(
1696         IFilterGraph *pGraph,
1697         LPCWSTR pName) = 0;
1698 
1699     virtual HRESULT STDMETHODCALLTYPE QueryVendorInfo(
1700         LPWSTR *pVendorInfo) = 0;
1701 
1702 };
1703 #ifdef __CRT_UUID_DECL
1704 __CRT_UUID_DECL(IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1705 #endif
1706 #else
1707 typedef struct IBaseFilterVtbl {
1708     BEGIN_INTERFACE
1709 
1710     /*** IUnknown methods ***/
1711     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1712         IBaseFilter *This,
1713         REFIID riid,
1714         void **ppvObject);
1715 
1716     ULONG (STDMETHODCALLTYPE *AddRef)(
1717         IBaseFilter *This);
1718 
1719     ULONG (STDMETHODCALLTYPE *Release)(
1720         IBaseFilter *This);
1721 
1722     /*** IPersist methods ***/
1723     HRESULT (STDMETHODCALLTYPE *GetClassID)(
1724         IBaseFilter *This,
1725         CLSID *pClassID);
1726 
1727     /*** IMediaFilter methods ***/
1728     HRESULT (STDMETHODCALLTYPE *Stop)(
1729         IBaseFilter *This);
1730 
1731     HRESULT (STDMETHODCALLTYPE *Pause)(
1732         IBaseFilter *This);
1733 
1734     HRESULT (STDMETHODCALLTYPE *Run)(
1735         IBaseFilter *This,
1736         REFERENCE_TIME tStart);
1737 
1738     HRESULT (STDMETHODCALLTYPE *GetState)(
1739         IBaseFilter *This,
1740         DWORD dwMilliSecsTimeout,
1741         FILTER_STATE *State);
1742 
1743     HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
1744         IBaseFilter *This,
1745         IReferenceClock *pClock);
1746 
1747     HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
1748         IBaseFilter *This,
1749         IReferenceClock **pClock);
1750 
1751     /*** IBaseFilter methods ***/
1752     HRESULT (STDMETHODCALLTYPE *EnumPins)(
1753         IBaseFilter *This,
1754         IEnumPins **ppEnum);
1755 
1756     HRESULT (STDMETHODCALLTYPE *FindPin)(
1757         IBaseFilter *This,
1758         LPCWSTR Id,
1759         IPin **ppPin);
1760 
1761     HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)(
1762         IBaseFilter *This,
1763         FILTER_INFO *pInfo);
1764 
1765     HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
1766         IBaseFilter *This,
1767         IFilterGraph *pGraph,
1768         LPCWSTR pName);
1769 
1770     HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)(
1771         IBaseFilter *This,
1772         LPWSTR *pVendorInfo);
1773 
1774     END_INTERFACE
1775 } IBaseFilterVtbl;
1776 
1777 interface IBaseFilter {
1778     CONST_VTBL IBaseFilterVtbl* lpVtbl;
1779 };
1780 
1781 #ifdef COBJMACROS
1782 #ifndef WIDL_C_INLINE_WRAPPERS
1783 /*** IUnknown methods ***/
1784 #define IBaseFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1785 #define IBaseFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
1786 #define IBaseFilter_Release(This) (This)->lpVtbl->Release(This)
1787 /*** IPersist methods ***/
1788 #define IBaseFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
1789 /*** IMediaFilter methods ***/
1790 #define IBaseFilter_Stop(This) (This)->lpVtbl->Stop(This)
1791 #define IBaseFilter_Pause(This) (This)->lpVtbl->Pause(This)
1792 #define IBaseFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
1793 #define IBaseFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
1794 #define IBaseFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
1795 #define IBaseFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
1796 /*** IBaseFilter methods ***/
1797 #define IBaseFilter_EnumPins(This,ppEnum) (This)->lpVtbl->EnumPins(This,ppEnum)
1798 #define IBaseFilter_FindPin(This,Id,ppPin) (This)->lpVtbl->FindPin(This,Id,ppPin)
1799 #define IBaseFilter_QueryFilterInfo(This,pInfo) (This)->lpVtbl->QueryFilterInfo(This,pInfo)
1800 #define IBaseFilter_JoinFilterGraph(This,pGraph,pName) (This)->lpVtbl->JoinFilterGraph(This,pGraph,pName)
1801 #define IBaseFilter_QueryVendorInfo(This,pVendorInfo) (This)->lpVtbl->QueryVendorInfo(This,pVendorInfo)
1802 #else
1803 /*** IUnknown methods ***/
1804 static FORCEINLINE HRESULT IBaseFilter_QueryInterface(IBaseFilter* This,REFIID riid,void **ppvObject) {
1805     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1806 }
1807 static FORCEINLINE ULONG IBaseFilter_AddRef(IBaseFilter* This) {
1808     return This->lpVtbl->AddRef(This);
1809 }
1810 static FORCEINLINE ULONG IBaseFilter_Release(IBaseFilter* This) {
1811     return This->lpVtbl->Release(This);
1812 }
1813 /*** IPersist methods ***/
1814 static FORCEINLINE HRESULT IBaseFilter_GetClassID(IBaseFilter* This,CLSID *pClassID) {
1815     return This->lpVtbl->GetClassID(This,pClassID);
1816 }
1817 /*** IMediaFilter methods ***/
1818 static FORCEINLINE HRESULT IBaseFilter_Stop(IBaseFilter* This) {
1819     return This->lpVtbl->Stop(This);
1820 }
1821 static FORCEINLINE HRESULT IBaseFilter_Pause(IBaseFilter* This) {
1822     return This->lpVtbl->Pause(This);
1823 }
1824 static FORCEINLINE HRESULT IBaseFilter_Run(IBaseFilter* This,REFERENCE_TIME tStart) {
1825     return This->lpVtbl->Run(This,tStart);
1826 }
1827 static FORCEINLINE HRESULT IBaseFilter_GetState(IBaseFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
1828     return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
1829 }
1830 static FORCEINLINE HRESULT IBaseFilter_SetSyncSource(IBaseFilter* This,IReferenceClock *pClock) {
1831     return This->lpVtbl->SetSyncSource(This,pClock);
1832 }
1833 static FORCEINLINE HRESULT IBaseFilter_GetSyncSource(IBaseFilter* This,IReferenceClock **pClock) {
1834     return This->lpVtbl->GetSyncSource(This,pClock);
1835 }
1836 /*** IBaseFilter methods ***/
1837 static FORCEINLINE HRESULT IBaseFilter_EnumPins(IBaseFilter* This,IEnumPins **ppEnum) {
1838     return This->lpVtbl->EnumPins(This,ppEnum);
1839 }
1840 static FORCEINLINE HRESULT IBaseFilter_FindPin(IBaseFilter* This,LPCWSTR Id,IPin **ppPin) {
1841     return This->lpVtbl->FindPin(This,Id,ppPin);
1842 }
1843 static FORCEINLINE HRESULT IBaseFilter_QueryFilterInfo(IBaseFilter* This,FILTER_INFO *pInfo) {
1844     return This->lpVtbl->QueryFilterInfo(This,pInfo);
1845 }
1846 static FORCEINLINE HRESULT IBaseFilter_JoinFilterGraph(IBaseFilter* This,IFilterGraph *pGraph,LPCWSTR pName) {
1847     return This->lpVtbl->JoinFilterGraph(This,pGraph,pName);
1848 }
1849 static FORCEINLINE HRESULT IBaseFilter_QueryVendorInfo(IBaseFilter* This,LPWSTR *pVendorInfo) {
1850     return This->lpVtbl->QueryVendorInfo(This,pVendorInfo);
1851 }
1852 #endif
1853 #endif
1854 
1855 #endif
1856 
1857 
1858 #endif  /* __IBaseFilter_INTERFACE_DEFINED__ */
1859 
1860 typedef IBaseFilter *PFILTER;
1861 
1862 /*****************************************************************************
1863  * IReferenceClock interface
1864  */
1865 #ifndef __IReferenceClock_INTERFACE_DEFINED__
1866 #define __IReferenceClock_INTERFACE_DEFINED__
1867 
1868 DEFINE_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1869 #if defined(__cplusplus) && !defined(CINTERFACE)
1870 MIDL_INTERFACE("56a86897-0ad4-11ce-b03a-0020af0ba770")
1871 IReferenceClock : public IUnknown
1872 {
1873     virtual HRESULT STDMETHODCALLTYPE GetTime(
1874         REFERENCE_TIME *pTime) = 0;
1875 
1876     virtual HRESULT STDMETHODCALLTYPE AdviseTime(
1877         REFERENCE_TIME baseTime,
1878         REFERENCE_TIME streamTime,
1879         HEVENT hEvent,
1880         DWORD_PTR *pdwAdviseCookie) = 0;
1881 
1882     virtual HRESULT STDMETHODCALLTYPE AdvisePeriodic(
1883         REFERENCE_TIME startTime,
1884         REFERENCE_TIME periodTime,
1885         HSEMAPHORE hSemaphore,
1886         DWORD_PTR *pdwAdviseCookie) = 0;
1887 
1888     virtual HRESULT STDMETHODCALLTYPE Unadvise(
1889         DWORD_PTR dwAdviseCookie) = 0;
1890 
1891 };
1892 #ifdef __CRT_UUID_DECL
1893 __CRT_UUID_DECL(IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1894 #endif
1895 #else
1896 typedef struct IReferenceClockVtbl {
1897     BEGIN_INTERFACE
1898 
1899     /*** IUnknown methods ***/
1900     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1901         IReferenceClock *This,
1902         REFIID riid,
1903         void **ppvObject);
1904 
1905     ULONG (STDMETHODCALLTYPE *AddRef)(
1906         IReferenceClock *This);
1907 
1908     ULONG (STDMETHODCALLTYPE *Release)(
1909         IReferenceClock *This);
1910 
1911     /*** IReferenceClock methods ***/
1912     HRESULT (STDMETHODCALLTYPE *GetTime)(
1913         IReferenceClock *This,
1914         REFERENCE_TIME *pTime);
1915 
1916     HRESULT (STDMETHODCALLTYPE *AdviseTime)(
1917         IReferenceClock *This,
1918         REFERENCE_TIME baseTime,
1919         REFERENCE_TIME streamTime,
1920         HEVENT hEvent,
1921         DWORD_PTR *pdwAdviseCookie);
1922 
1923     HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
1924         IReferenceClock *This,
1925         REFERENCE_TIME startTime,
1926         REFERENCE_TIME periodTime,
1927         HSEMAPHORE hSemaphore,
1928         DWORD_PTR *pdwAdviseCookie);
1929 
1930     HRESULT (STDMETHODCALLTYPE *Unadvise)(
1931         IReferenceClock *This,
1932         DWORD_PTR dwAdviseCookie);
1933 
1934     END_INTERFACE
1935 } IReferenceClockVtbl;
1936 
1937 interface IReferenceClock {
1938     CONST_VTBL IReferenceClockVtbl* lpVtbl;
1939 };
1940 
1941 #ifdef COBJMACROS
1942 #ifndef WIDL_C_INLINE_WRAPPERS
1943 /*** IUnknown methods ***/
1944 #define IReferenceClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1945 #define IReferenceClock_AddRef(This) (This)->lpVtbl->AddRef(This)
1946 #define IReferenceClock_Release(This) (This)->lpVtbl->Release(This)
1947 /*** IReferenceClock methods ***/
1948 #define IReferenceClock_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
1949 #define IReferenceClock_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
1950 #define IReferenceClock_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
1951 #define IReferenceClock_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
1952 #else
1953 /*** IUnknown methods ***/
1954 static FORCEINLINE HRESULT IReferenceClock_QueryInterface(IReferenceClock* This,REFIID riid,void **ppvObject) {
1955     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1956 }
1957 static FORCEINLINE ULONG IReferenceClock_AddRef(IReferenceClock* This) {
1958     return This->lpVtbl->AddRef(This);
1959 }
1960 static FORCEINLINE ULONG IReferenceClock_Release(IReferenceClock* This) {
1961     return This->lpVtbl->Release(This);
1962 }
1963 /*** IReferenceClock methods ***/
1964 static FORCEINLINE HRESULT IReferenceClock_GetTime(IReferenceClock* This,REFERENCE_TIME *pTime) {
1965     return This->lpVtbl->GetTime(This,pTime);
1966 }
1967 static FORCEINLINE HRESULT IReferenceClock_AdviseTime(IReferenceClock* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
1968     return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
1969 }
1970 static FORCEINLINE HRESULT IReferenceClock_AdvisePeriodic(IReferenceClock* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
1971     return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
1972 }
1973 static FORCEINLINE HRESULT IReferenceClock_Unadvise(IReferenceClock* This,DWORD_PTR dwAdviseCookie) {
1974     return This->lpVtbl->Unadvise(This,dwAdviseCookie);
1975 }
1976 #endif
1977 #endif
1978 
1979 #endif
1980 
1981 
1982 #endif  /* __IReferenceClock_INTERFACE_DEFINED__ */
1983 
1984 typedef IReferenceClock *PREFERENCECLOCK;
1985 
1986 /*****************************************************************************
1987  * IReferenceClockTimerControl interface
1988  */
1989 #ifndef __IReferenceClockTimerControl_INTERFACE_DEFINED__
1990 #define __IReferenceClockTimerControl_INTERFACE_DEFINED__
1991 
1992 DEFINE_GUID(IID_IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8);
1993 #if defined(__cplusplus) && !defined(CINTERFACE)
1994 MIDL_INTERFACE("ebec459c-2eca-4d42-a8af-30df557614b8")
1995 IReferenceClockTimerControl : public IUnknown
1996 {
1997     virtual HRESULT STDMETHODCALLTYPE SetDefaultTimerResolution(
1998         REFERENCE_TIME timerResolution) = 0;
1999 
2000     virtual HRESULT STDMETHODCALLTYPE GetDefaultTimerResolution(
2001         REFERENCE_TIME *pTimerResolution) = 0;
2002 
2003 };
2004 #ifdef __CRT_UUID_DECL
2005 __CRT_UUID_DECL(IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8)
2006 #endif
2007 #else
2008 typedef struct IReferenceClockTimerControlVtbl {
2009     BEGIN_INTERFACE
2010 
2011     /*** IUnknown methods ***/
2012     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2013         IReferenceClockTimerControl *This,
2014         REFIID riid,
2015         void **ppvObject);
2016 
2017     ULONG (STDMETHODCALLTYPE *AddRef)(
2018         IReferenceClockTimerControl *This);
2019 
2020     ULONG (STDMETHODCALLTYPE *Release)(
2021         IReferenceClockTimerControl *This);
2022 
2023     /*** IReferenceClockTimerControl methods ***/
2024     HRESULT (STDMETHODCALLTYPE *SetDefaultTimerResolution)(
2025         IReferenceClockTimerControl *This,
2026         REFERENCE_TIME timerResolution);
2027 
2028     HRESULT (STDMETHODCALLTYPE *GetDefaultTimerResolution)(
2029         IReferenceClockTimerControl *This,
2030         REFERENCE_TIME *pTimerResolution);
2031 
2032     END_INTERFACE
2033 } IReferenceClockTimerControlVtbl;
2034 
2035 interface IReferenceClockTimerControl {
2036     CONST_VTBL IReferenceClockTimerControlVtbl* lpVtbl;
2037 };
2038 
2039 #ifdef COBJMACROS
2040 #ifndef WIDL_C_INLINE_WRAPPERS
2041 /*** IUnknown methods ***/
2042 #define IReferenceClockTimerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2043 #define IReferenceClockTimerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
2044 #define IReferenceClockTimerControl_Release(This) (This)->lpVtbl->Release(This)
2045 /*** IReferenceClockTimerControl methods ***/
2046 #define IReferenceClockTimerControl_SetDefaultTimerResolution(This,timerResolution) (This)->lpVtbl->SetDefaultTimerResolution(This,timerResolution)
2047 #define IReferenceClockTimerControl_GetDefaultTimerResolution(This,pTimerResolution) (This)->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution)
2048 #else
2049 /*** IUnknown methods ***/
2050 static FORCEINLINE HRESULT IReferenceClockTimerControl_QueryInterface(IReferenceClockTimerControl* This,REFIID riid,void **ppvObject) {
2051     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2052 }
2053 static FORCEINLINE ULONG IReferenceClockTimerControl_AddRef(IReferenceClockTimerControl* This) {
2054     return This->lpVtbl->AddRef(This);
2055 }
2056 static FORCEINLINE ULONG IReferenceClockTimerControl_Release(IReferenceClockTimerControl* This) {
2057     return This->lpVtbl->Release(This);
2058 }
2059 /*** IReferenceClockTimerControl methods ***/
2060 static FORCEINLINE HRESULT IReferenceClockTimerControl_SetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME timerResolution) {
2061     return This->lpVtbl->SetDefaultTimerResolution(This,timerResolution);
2062 }
2063 static FORCEINLINE HRESULT IReferenceClockTimerControl_GetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME *pTimerResolution) {
2064     return This->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution);
2065 }
2066 #endif
2067 #endif
2068 
2069 #endif
2070 
2071 
2072 #endif  /* __IReferenceClockTimerControl_INTERFACE_DEFINED__ */
2073 
2074 
2075 /*****************************************************************************
2076  * IReferenceClock2 interface
2077  */
2078 #ifndef __IReferenceClock2_INTERFACE_DEFINED__
2079 #define __IReferenceClock2_INTERFACE_DEFINED__
2080 
2081 DEFINE_GUID(IID_IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
2082 #if defined(__cplusplus) && !defined(CINTERFACE)
2083 MIDL_INTERFACE("36b73885-c2c8-11cf-8b46-00805f6cef60")
2084 IReferenceClock2 : public IReferenceClock
2085 {
2086 };
2087 #ifdef __CRT_UUID_DECL
2088 __CRT_UUID_DECL(IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
2089 #endif
2090 #else
2091 typedef struct IReferenceClock2Vtbl {
2092     BEGIN_INTERFACE
2093 
2094     /*** IUnknown methods ***/
2095     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2096         IReferenceClock2 *This,
2097         REFIID riid,
2098         void **ppvObject);
2099 
2100     ULONG (STDMETHODCALLTYPE *AddRef)(
2101         IReferenceClock2 *This);
2102 
2103     ULONG (STDMETHODCALLTYPE *Release)(
2104         IReferenceClock2 *This);
2105 
2106     /*** IReferenceClock methods ***/
2107     HRESULT (STDMETHODCALLTYPE *GetTime)(
2108         IReferenceClock2 *This,
2109         REFERENCE_TIME *pTime);
2110 
2111     HRESULT (STDMETHODCALLTYPE *AdviseTime)(
2112         IReferenceClock2 *This,
2113         REFERENCE_TIME baseTime,
2114         REFERENCE_TIME streamTime,
2115         HEVENT hEvent,
2116         DWORD_PTR *pdwAdviseCookie);
2117 
2118     HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
2119         IReferenceClock2 *This,
2120         REFERENCE_TIME startTime,
2121         REFERENCE_TIME periodTime,
2122         HSEMAPHORE hSemaphore,
2123         DWORD_PTR *pdwAdviseCookie);
2124 
2125     HRESULT (STDMETHODCALLTYPE *Unadvise)(
2126         IReferenceClock2 *This,
2127         DWORD_PTR dwAdviseCookie);
2128 
2129     END_INTERFACE
2130 } IReferenceClock2Vtbl;
2131 
2132 interface IReferenceClock2 {
2133     CONST_VTBL IReferenceClock2Vtbl* lpVtbl;
2134 };
2135 
2136 #ifdef COBJMACROS
2137 #ifndef WIDL_C_INLINE_WRAPPERS
2138 /*** IUnknown methods ***/
2139 #define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2140 #define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
2141 #define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
2142 /*** IReferenceClock methods ***/
2143 #define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
2144 #define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
2145 #define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
2146 #define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
2147 #else
2148 /*** IUnknown methods ***/
2149 static FORCEINLINE HRESULT IReferenceClock2_QueryInterface(IReferenceClock2* This,REFIID riid,void **ppvObject) {
2150     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2151 }
2152 static FORCEINLINE ULONG IReferenceClock2_AddRef(IReferenceClock2* This) {
2153     return This->lpVtbl->AddRef(This);
2154 }
2155 static FORCEINLINE ULONG IReferenceClock2_Release(IReferenceClock2* This) {
2156     return This->lpVtbl->Release(This);
2157 }
2158 /*** IReferenceClock methods ***/
2159 static FORCEINLINE HRESULT IReferenceClock2_GetTime(IReferenceClock2* This,REFERENCE_TIME *pTime) {
2160     return This->lpVtbl->GetTime(This,pTime);
2161 }
2162 static FORCEINLINE HRESULT IReferenceClock2_AdviseTime(IReferenceClock2* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
2163     return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
2164 }
2165 static FORCEINLINE HRESULT IReferenceClock2_AdvisePeriodic(IReferenceClock2* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
2166     return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
2167 }
2168 static FORCEINLINE HRESULT IReferenceClock2_Unadvise(IReferenceClock2* This,DWORD_PTR dwAdviseCookie) {
2169     return This->lpVtbl->Unadvise(This,dwAdviseCookie);
2170 }
2171 #endif
2172 #endif
2173 
2174 #endif
2175 
2176 
2177 #endif  /* __IReferenceClock2_INTERFACE_DEFINED__ */
2178 
2179 typedef IReferenceClock2 *PREFERENCECLOCK2;
2180 
2181 /*****************************************************************************
2182  * IMediaSample interface
2183  */
2184 #ifndef __IMediaSample_INTERFACE_DEFINED__
2185 #define __IMediaSample_INTERFACE_DEFINED__
2186 
2187 DEFINE_GUID(IID_IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
2188 #if defined(__cplusplus) && !defined(CINTERFACE)
2189 MIDL_INTERFACE("56a8689a-0ad4-11ce-b03a-0020af0ba770")
2190 IMediaSample : public IUnknown
2191 {
2192     virtual HRESULT STDMETHODCALLTYPE GetPointer(
2193         BYTE **ppBuffer) = 0;
2194 
2195     virtual LONG STDMETHODCALLTYPE GetSize(
2196         ) = 0;
2197 
2198     virtual HRESULT STDMETHODCALLTYPE GetTime(
2199         REFERENCE_TIME *pTimeStart,
2200         REFERENCE_TIME *pTimeEnd) = 0;
2201 
2202     virtual HRESULT STDMETHODCALLTYPE SetTime(
2203         REFERENCE_TIME *pTimeStart,
2204         REFERENCE_TIME *pTimeEnd) = 0;
2205 
2206     virtual HRESULT STDMETHODCALLTYPE IsSyncPoint(
2207         ) = 0;
2208 
2209     virtual HRESULT STDMETHODCALLTYPE SetSyncPoint(
2210         WINBOOL bIsSyncPoint) = 0;
2211 
2212     virtual HRESULT STDMETHODCALLTYPE IsPreroll(
2213         ) = 0;
2214 
2215     virtual HRESULT STDMETHODCALLTYPE SetPreroll(
2216         WINBOOL bIsPreroll) = 0;
2217 
2218     virtual LONG STDMETHODCALLTYPE GetActualDataLength(
2219         ) = 0;
2220 
2221     virtual HRESULT STDMETHODCALLTYPE SetActualDataLength(
2222         LONG a) = 0;
2223 
2224     virtual HRESULT STDMETHODCALLTYPE GetMediaType(
2225         AM_MEDIA_TYPE **ppMediaType) = 0;
2226 
2227     virtual HRESULT STDMETHODCALLTYPE SetMediaType(
2228         AM_MEDIA_TYPE *pMediaType) = 0;
2229 
2230     virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity(
2231         ) = 0;
2232 
2233     virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity(
2234         WINBOOL bDiscontinuity) = 0;
2235 
2236     virtual HRESULT STDMETHODCALLTYPE GetMediaTime(
2237         LONGLONG *pTimeStart,
2238         LONGLONG *pTimeEnd) = 0;
2239 
2240     virtual HRESULT STDMETHODCALLTYPE SetMediaTime(
2241         LONGLONG *pTimeStart,
2242         LONGLONG *pTimeEnd) = 0;
2243 
2244 };
2245 #ifdef __CRT_UUID_DECL
2246 __CRT_UUID_DECL(IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
2247 #endif
2248 #else
2249 typedef struct IMediaSampleVtbl {
2250     BEGIN_INTERFACE
2251 
2252     /*** IUnknown methods ***/
2253     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2254         IMediaSample *This,
2255         REFIID riid,
2256         void **ppvObject);
2257 
2258     ULONG (STDMETHODCALLTYPE *AddRef)(
2259         IMediaSample *This);
2260 
2261     ULONG (STDMETHODCALLTYPE *Release)(
2262         IMediaSample *This);
2263 
2264     /*** IMediaSample methods ***/
2265     HRESULT (STDMETHODCALLTYPE *GetPointer)(
2266         IMediaSample *This,
2267         BYTE **ppBuffer);
2268 
2269     LONG (STDMETHODCALLTYPE *GetSize)(
2270         IMediaSample *This);
2271 
2272     HRESULT (STDMETHODCALLTYPE *GetTime)(
2273         IMediaSample *This,
2274         REFERENCE_TIME *pTimeStart,
2275         REFERENCE_TIME *pTimeEnd);
2276 
2277     HRESULT (STDMETHODCALLTYPE *SetTime)(
2278         IMediaSample *This,
2279         REFERENCE_TIME *pTimeStart,
2280         REFERENCE_TIME *pTimeEnd);
2281 
2282     HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
2283         IMediaSample *This);
2284 
2285     HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
2286         IMediaSample *This,
2287         WINBOOL bIsSyncPoint);
2288 
2289     HRESULT (STDMETHODCALLTYPE *IsPreroll)(
2290         IMediaSample *This);
2291 
2292     HRESULT (STDMETHODCALLTYPE *SetPreroll)(
2293         IMediaSample *This,
2294         WINBOOL bIsPreroll);
2295 
2296     LONG (STDMETHODCALLTYPE *GetActualDataLength)(
2297         IMediaSample *This);
2298 
2299     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
2300         IMediaSample *This,
2301         LONG a);
2302 
2303     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
2304         IMediaSample *This,
2305         AM_MEDIA_TYPE **ppMediaType);
2306 
2307     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
2308         IMediaSample *This,
2309         AM_MEDIA_TYPE *pMediaType);
2310 
2311     HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
2312         IMediaSample *This);
2313 
2314     HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
2315         IMediaSample *This,
2316         WINBOOL bDiscontinuity);
2317 
2318     HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
2319         IMediaSample *This,
2320         LONGLONG *pTimeStart,
2321         LONGLONG *pTimeEnd);
2322 
2323     HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
2324         IMediaSample *This,
2325         LONGLONG *pTimeStart,
2326         LONGLONG *pTimeEnd);
2327 
2328     END_INTERFACE
2329 } IMediaSampleVtbl;
2330 
2331 interface IMediaSample {
2332     CONST_VTBL IMediaSampleVtbl* lpVtbl;
2333 };
2334 
2335 #ifdef COBJMACROS
2336 #ifndef WIDL_C_INLINE_WRAPPERS
2337 /*** IUnknown methods ***/
2338 #define IMediaSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2339 #define IMediaSample_AddRef(This) (This)->lpVtbl->AddRef(This)
2340 #define IMediaSample_Release(This) (This)->lpVtbl->Release(This)
2341 /*** IMediaSample methods ***/
2342 #define IMediaSample_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
2343 #define IMediaSample_GetSize(This) (This)->lpVtbl->GetSize(This)
2344 #define IMediaSample_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
2345 #define IMediaSample_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
2346 #define IMediaSample_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
2347 #define IMediaSample_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
2348 #define IMediaSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
2349 #define IMediaSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
2350 #define IMediaSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
2351 #define IMediaSample_SetActualDataLength(This,a) (This)->lpVtbl->SetActualDataLength(This,a)
2352 #define IMediaSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
2353 #define IMediaSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
2354 #define IMediaSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
2355 #define IMediaSample_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
2356 #define IMediaSample_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
2357 #define IMediaSample_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
2358 #else
2359 /*** IUnknown methods ***/
2360 static FORCEINLINE HRESULT IMediaSample_QueryInterface(IMediaSample* This,REFIID riid,void **ppvObject) {
2361     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2362 }
2363 static FORCEINLINE ULONG IMediaSample_AddRef(IMediaSample* This) {
2364     return This->lpVtbl->AddRef(This);
2365 }
2366 static FORCEINLINE ULONG IMediaSample_Release(IMediaSample* This) {
2367     return This->lpVtbl->Release(This);
2368 }
2369 /*** IMediaSample methods ***/
2370 static FORCEINLINE HRESULT IMediaSample_GetPointer(IMediaSample* This,BYTE **ppBuffer) {
2371     return This->lpVtbl->GetPointer(This,ppBuffer);
2372 }
2373 static FORCEINLINE LONG IMediaSample_GetSize(IMediaSample* This) {
2374     return This->lpVtbl->GetSize(This);
2375 }
2376 static FORCEINLINE HRESULT IMediaSample_GetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2377     return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
2378 }
2379 static FORCEINLINE HRESULT IMediaSample_SetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2380     return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
2381 }
2382 static FORCEINLINE HRESULT IMediaSample_IsSyncPoint(IMediaSample* This) {
2383     return This->lpVtbl->IsSyncPoint(This);
2384 }
2385 static FORCEINLINE HRESULT IMediaSample_SetSyncPoint(IMediaSample* This,WINBOOL bIsSyncPoint) {
2386     return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
2387 }
2388 static FORCEINLINE HRESULT IMediaSample_IsPreroll(IMediaSample* This) {
2389     return This->lpVtbl->IsPreroll(This);
2390 }
2391 static FORCEINLINE HRESULT IMediaSample_SetPreroll(IMediaSample* This,WINBOOL bIsPreroll) {
2392     return This->lpVtbl->SetPreroll(This,bIsPreroll);
2393 }
2394 static FORCEINLINE LONG IMediaSample_GetActualDataLength(IMediaSample* This) {
2395     return This->lpVtbl->GetActualDataLength(This);
2396 }
2397 static FORCEINLINE HRESULT IMediaSample_SetActualDataLength(IMediaSample* This,LONG a) {
2398     return This->lpVtbl->SetActualDataLength(This,a);
2399 }
2400 static FORCEINLINE HRESULT IMediaSample_GetMediaType(IMediaSample* This,AM_MEDIA_TYPE **ppMediaType) {
2401     return This->lpVtbl->GetMediaType(This,ppMediaType);
2402 }
2403 static FORCEINLINE HRESULT IMediaSample_SetMediaType(IMediaSample* This,AM_MEDIA_TYPE *pMediaType) {
2404     return This->lpVtbl->SetMediaType(This,pMediaType);
2405 }
2406 static FORCEINLINE HRESULT IMediaSample_IsDiscontinuity(IMediaSample* This) {
2407     return This->lpVtbl->IsDiscontinuity(This);
2408 }
2409 static FORCEINLINE HRESULT IMediaSample_SetDiscontinuity(IMediaSample* This,WINBOOL bDiscontinuity) {
2410     return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
2411 }
2412 static FORCEINLINE HRESULT IMediaSample_GetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2413     return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
2414 }
2415 static FORCEINLINE HRESULT IMediaSample_SetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2416     return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
2417 }
2418 #endif
2419 #endif
2420 
2421 #endif
2422 
2423 
2424 #endif  /* __IMediaSample_INTERFACE_DEFINED__ */
2425 
2426 typedef IMediaSample *PMEDIASAMPLE;
2427 
2428 enum tagAM_SAMPLE_PROPERTY_FLAGS {
2429     AM_SAMPLE_SPLICEPOINT = 0x1,
2430     AM_SAMPLE_PREROLL = 0x2,
2431     AM_SAMPLE_DATADISCONTINUITY = 0x4,
2432     AM_SAMPLE_TYPECHANGED = 0x8,
2433     AM_SAMPLE_TIMEVALID = 0x10,
2434     AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
2435     AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
2436     AM_SAMPLE_STOPVALID = 0x100,
2437     AM_SAMPLE_ENDOFSTREAM = 0x200,
2438     AM_STREAM_MEDIA = 0,
2439     AM_STREAM_CONTROL = 1
2440 };
2441 
2442 typedef struct tagAM_SAMPLE2_PROPERTIES {
2443     DWORD cbData;
2444     DWORD dwTypeSpecificFlags;
2445     DWORD dwSampleFlags;
2446     LONG lActual;
2447     REFERENCE_TIME tStart;
2448     REFERENCE_TIME tStop;
2449     DWORD dwStreamId;
2450     AM_MEDIA_TYPE *pMediaType;
2451     BYTE *pbBuffer;
2452     LONG cbBuffer;
2453 } AM_SAMPLE2_PROPERTIES;
2454 
2455 /*****************************************************************************
2456  * IMediaSample2 interface
2457  */
2458 #ifndef __IMediaSample2_INTERFACE_DEFINED__
2459 #define __IMediaSample2_INTERFACE_DEFINED__
2460 
2461 DEFINE_GUID(IID_IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
2462 #if defined(__cplusplus) && !defined(CINTERFACE)
2463 MIDL_INTERFACE("36b73884-c2c8-11cf-8b46-00805f6cef60")
2464 IMediaSample2 : public IMediaSample
2465 {
2466     virtual HRESULT STDMETHODCALLTYPE GetProperties(
2467         DWORD cbProperties,
2468         BYTE *pbProperties) = 0;
2469 
2470     virtual HRESULT STDMETHODCALLTYPE SetProperties(
2471         DWORD cbProperties,
2472         const BYTE *pbProperties) = 0;
2473 
2474 };
2475 #ifdef __CRT_UUID_DECL
2476 __CRT_UUID_DECL(IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
2477 #endif
2478 #else
2479 typedef struct IMediaSample2Vtbl {
2480     BEGIN_INTERFACE
2481 
2482     /*** IUnknown methods ***/
2483     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2484         IMediaSample2 *This,
2485         REFIID riid,
2486         void **ppvObject);
2487 
2488     ULONG (STDMETHODCALLTYPE *AddRef)(
2489         IMediaSample2 *This);
2490 
2491     ULONG (STDMETHODCALLTYPE *Release)(
2492         IMediaSample2 *This);
2493 
2494     /*** IMediaSample methods ***/
2495     HRESULT (STDMETHODCALLTYPE *GetPointer)(
2496         IMediaSample2 *This,
2497         BYTE **ppBuffer);
2498 
2499     LONG (STDMETHODCALLTYPE *GetSize)(
2500         IMediaSample2 *This);
2501 
2502     HRESULT (STDMETHODCALLTYPE *GetTime)(
2503         IMediaSample2 *This,
2504         REFERENCE_TIME *pTimeStart,
2505         REFERENCE_TIME *pTimeEnd);
2506 
2507     HRESULT (STDMETHODCALLTYPE *SetTime)(
2508         IMediaSample2 *This,
2509         REFERENCE_TIME *pTimeStart,
2510         REFERENCE_TIME *pTimeEnd);
2511 
2512     HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
2513         IMediaSample2 *This);
2514 
2515     HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
2516         IMediaSample2 *This,
2517         WINBOOL bIsSyncPoint);
2518 
2519     HRESULT (STDMETHODCALLTYPE *IsPreroll)(
2520         IMediaSample2 *This);
2521 
2522     HRESULT (STDMETHODCALLTYPE *SetPreroll)(
2523         IMediaSample2 *This,
2524         WINBOOL bIsPreroll);
2525 
2526     LONG (STDMETHODCALLTYPE *GetActualDataLength)(
2527         IMediaSample2 *This);
2528 
2529     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
2530         IMediaSample2 *This,
2531         LONG a);
2532 
2533     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
2534         IMediaSample2 *This,
2535         AM_MEDIA_TYPE **ppMediaType);
2536 
2537     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
2538         IMediaSample2 *This,
2539         AM_MEDIA_TYPE *pMediaType);
2540 
2541     HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
2542         IMediaSample2 *This);
2543 
2544     HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
2545         IMediaSample2 *This,
2546         WINBOOL bDiscontinuity);
2547 
2548     HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
2549         IMediaSample2 *This,
2550         LONGLONG *pTimeStart,
2551         LONGLONG *pTimeEnd);
2552 
2553     HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
2554         IMediaSample2 *This,
2555         LONGLONG *pTimeStart,
2556         LONGLONG *pTimeEnd);
2557 
2558     /*** IMediaSample2 methods ***/
2559     HRESULT (STDMETHODCALLTYPE *GetProperties)(
2560         IMediaSample2 *This,
2561         DWORD cbProperties,
2562         BYTE *pbProperties);
2563 
2564     HRESULT (STDMETHODCALLTYPE *SetProperties)(
2565         IMediaSample2 *This,
2566         DWORD cbProperties,
2567         const BYTE *pbProperties);
2568 
2569     END_INTERFACE
2570 } IMediaSample2Vtbl;
2571 
2572 interface IMediaSample2 {
2573     CONST_VTBL IMediaSample2Vtbl* lpVtbl;
2574 };
2575 
2576 #ifdef COBJMACROS
2577 #ifndef WIDL_C_INLINE_WRAPPERS
2578 /*** IUnknown methods ***/
2579 #define IMediaSample2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2580 #define IMediaSample2_AddRef(This) (This)->lpVtbl->AddRef(This)
2581 #define IMediaSample2_Release(This) (This)->lpVtbl->Release(This)
2582 /*** IMediaSample methods ***/
2583 #define IMediaSample2_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
2584 #define IMediaSample2_GetSize(This) (This)->lpVtbl->GetSize(This)
2585 #define IMediaSample2_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
2586 #define IMediaSample2_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
2587 #define IMediaSample2_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
2588 #define IMediaSample2_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
2589 #define IMediaSample2_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
2590 #define IMediaSample2_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
2591 #define IMediaSample2_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
2592 #define IMediaSample2_SetActualDataLength(This,a) (This)->lpVtbl->SetActualDataLength(This,a)
2593 #define IMediaSample2_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
2594 #define IMediaSample2_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
2595 #define IMediaSample2_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
2596 #define IMediaSample2_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
2597 #define IMediaSample2_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
2598 #define IMediaSample2_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
2599 /*** IMediaSample2 methods ***/
2600 #define IMediaSample2_GetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->GetProperties(This,cbProperties,pbProperties)
2601 #define IMediaSample2_SetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->SetProperties(This,cbProperties,pbProperties)
2602 #else
2603 /*** IUnknown methods ***/
2604 static FORCEINLINE HRESULT IMediaSample2_QueryInterface(IMediaSample2* This,REFIID riid,void **ppvObject) {
2605     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2606 }
2607 static FORCEINLINE ULONG IMediaSample2_AddRef(IMediaSample2* This) {
2608     return This->lpVtbl->AddRef(This);
2609 }
2610 static FORCEINLINE ULONG IMediaSample2_Release(IMediaSample2* This) {
2611     return This->lpVtbl->Release(This);
2612 }
2613 /*** IMediaSample methods ***/
2614 static FORCEINLINE HRESULT IMediaSample2_GetPointer(IMediaSample2* This,BYTE **ppBuffer) {
2615     return This->lpVtbl->GetPointer(This,ppBuffer);
2616 }
2617 static FORCEINLINE LONG IMediaSample2_GetSize(IMediaSample2* This) {
2618     return This->lpVtbl->GetSize(This);
2619 }
2620 static FORCEINLINE HRESULT IMediaSample2_GetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2621     return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
2622 }
2623 static FORCEINLINE HRESULT IMediaSample2_SetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2624     return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
2625 }
2626 static FORCEINLINE HRESULT IMediaSample2_IsSyncPoint(IMediaSample2* This) {
2627     return This->lpVtbl->IsSyncPoint(This);
2628 }
2629 static FORCEINLINE HRESULT IMediaSample2_SetSyncPoint(IMediaSample2* This,WINBOOL bIsSyncPoint) {
2630     return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
2631 }
2632 static FORCEINLINE HRESULT IMediaSample2_IsPreroll(IMediaSample2* This) {
2633     return This->lpVtbl->IsPreroll(This);
2634 }
2635 static FORCEINLINE HRESULT IMediaSample2_SetPreroll(IMediaSample2* This,WINBOOL bIsPreroll) {
2636     return This->lpVtbl->SetPreroll(This,bIsPreroll);
2637 }
2638 static FORCEINLINE LONG IMediaSample2_GetActualDataLength(IMediaSample2* This) {
2639     return This->lpVtbl->GetActualDataLength(This);
2640 }
2641 static FORCEINLINE HRESULT IMediaSample2_SetActualDataLength(IMediaSample2* This,LONG a) {
2642     return This->lpVtbl->SetActualDataLength(This,a);
2643 }
2644 static FORCEINLINE HRESULT IMediaSample2_GetMediaType(IMediaSample2* This,AM_MEDIA_TYPE **ppMediaType) {
2645     return This->lpVtbl->GetMediaType(This,ppMediaType);
2646 }
2647 static FORCEINLINE HRESULT IMediaSample2_SetMediaType(IMediaSample2* This,AM_MEDIA_TYPE *pMediaType) {
2648     return This->lpVtbl->SetMediaType(This,pMediaType);
2649 }
2650 static FORCEINLINE HRESULT IMediaSample2_IsDiscontinuity(IMediaSample2* This) {
2651     return This->lpVtbl->IsDiscontinuity(This);
2652 }
2653 static FORCEINLINE HRESULT IMediaSample2_SetDiscontinuity(IMediaSample2* This,WINBOOL bDiscontinuity) {
2654     return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
2655 }
2656 static FORCEINLINE HRESULT IMediaSample2_GetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2657     return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
2658 }
2659 static FORCEINLINE HRESULT IMediaSample2_SetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2660     return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
2661 }
2662 /*** IMediaSample2 methods ***/
2663 static FORCEINLINE HRESULT IMediaSample2_GetProperties(IMediaSample2* This,DWORD cbProperties,BYTE *pbProperties) {
2664     return This->lpVtbl->GetProperties(This,cbProperties,pbProperties);
2665 }
2666 static FORCEINLINE HRESULT IMediaSample2_SetProperties(IMediaSample2* This,DWORD cbProperties,const BYTE *pbProperties) {
2667     return This->lpVtbl->SetProperties(This,cbProperties,pbProperties);
2668 }
2669 #endif
2670 #endif
2671 
2672 #endif
2673 
2674 
2675 #endif  /* __IMediaSample2_INTERFACE_DEFINED__ */
2676 
2677 typedef IMediaSample2 *PMEDIASAMPLE2;
2678 
2679 /*****************************************************************************
2680  * IMediaSample2Config interface
2681  */
2682 #ifndef __IMediaSample2Config_INTERFACE_DEFINED__
2683 #define __IMediaSample2Config_INTERFACE_DEFINED__
2684 
2685 DEFINE_GUID(IID_IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3);
2686 #if defined(__cplusplus) && !defined(CINTERFACE)
2687 MIDL_INTERFACE("68961e68-832b-41ea-bc91-63593f3e70e3")
2688 IMediaSample2Config : public IUnknown
2689 {
2690     virtual HRESULT STDMETHODCALLTYPE GetSurface(
2691         IUnknown **ppDirect3DSurface9) = 0;
2692 
2693 };
2694 #ifdef __CRT_UUID_DECL
2695 __CRT_UUID_DECL(IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3)
2696 #endif
2697 #else
2698 typedef struct IMediaSample2ConfigVtbl {
2699     BEGIN_INTERFACE
2700 
2701     /*** IUnknown methods ***/
2702     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2703         IMediaSample2Config *This,
2704         REFIID riid,
2705         void **ppvObject);
2706 
2707     ULONG (STDMETHODCALLTYPE *AddRef)(
2708         IMediaSample2Config *This);
2709 
2710     ULONG (STDMETHODCALLTYPE *Release)(
2711         IMediaSample2Config *This);
2712 
2713     /*** IMediaSample2Config methods ***/
2714     HRESULT (STDMETHODCALLTYPE *GetSurface)(
2715         IMediaSample2Config *This,
2716         IUnknown **ppDirect3DSurface9);
2717 
2718     END_INTERFACE
2719 } IMediaSample2ConfigVtbl;
2720 
2721 interface IMediaSample2Config {
2722     CONST_VTBL IMediaSample2ConfigVtbl* lpVtbl;
2723 };
2724 
2725 #ifdef COBJMACROS
2726 #ifndef WIDL_C_INLINE_WRAPPERS
2727 /*** IUnknown methods ***/
2728 #define IMediaSample2Config_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2729 #define IMediaSample2Config_AddRef(This) (This)->lpVtbl->AddRef(This)
2730 #define IMediaSample2Config_Release(This) (This)->lpVtbl->Release(This)
2731 /*** IMediaSample2Config methods ***/
2732 #define IMediaSample2Config_GetSurface(This,ppDirect3DSurface9) (This)->lpVtbl->GetSurface(This,ppDirect3DSurface9)
2733 #else
2734 /*** IUnknown methods ***/
2735 static FORCEINLINE HRESULT IMediaSample2Config_QueryInterface(IMediaSample2Config* This,REFIID riid,void **ppvObject) {
2736     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2737 }
2738 static FORCEINLINE ULONG IMediaSample2Config_AddRef(IMediaSample2Config* This) {
2739     return This->lpVtbl->AddRef(This);
2740 }
2741 static FORCEINLINE ULONG IMediaSample2Config_Release(IMediaSample2Config* This) {
2742     return This->lpVtbl->Release(This);
2743 }
2744 /*** IMediaSample2Config methods ***/
2745 static FORCEINLINE HRESULT IMediaSample2Config_GetSurface(IMediaSample2Config* This,IUnknown **ppDirect3DSurface9) {
2746     return This->lpVtbl->GetSurface(This,ppDirect3DSurface9);
2747 }
2748 #endif
2749 #endif
2750 
2751 #endif
2752 
2753 
2754 #endif  /* __IMediaSample2Config_INTERFACE_DEFINED__ */
2755 
2756 
2757 #define AM_GBF_PREVFRAMESKIPPED 1
2758 #define AM_GBF_NOTASYNCPOINT 2
2759 #define AM_GBF_NOWAIT 4
2760 #define AM_GBF_NODDSURFACELOCK 8
2761 
2762 /*****************************************************************************
2763  * IMemAllocator interface
2764  */
2765 #ifndef __IMemAllocator_INTERFACE_DEFINED__
2766 #define __IMemAllocator_INTERFACE_DEFINED__
2767 
2768 DEFINE_GUID(IID_IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
2769 #if defined(__cplusplus) && !defined(CINTERFACE)
2770 MIDL_INTERFACE("56a8689c-0ad4-11ce-b03a-0020af0ba770")
2771 IMemAllocator : public IUnknown
2772 {
2773     virtual HRESULT STDMETHODCALLTYPE SetProperties(
2774         ALLOCATOR_PROPERTIES *pRequest,
2775         ALLOCATOR_PROPERTIES *pActual) = 0;
2776 
2777     virtual HRESULT STDMETHODCALLTYPE GetProperties(
2778         ALLOCATOR_PROPERTIES *pProps) = 0;
2779 
2780     virtual HRESULT STDMETHODCALLTYPE Commit(
2781         ) = 0;
2782 
2783     virtual HRESULT STDMETHODCALLTYPE Decommit(
2784         ) = 0;
2785 
2786     virtual HRESULT STDMETHODCALLTYPE GetBuffer(
2787         IMediaSample **ppBuffer,
2788         REFERENCE_TIME *pStartTime,
2789         REFERENCE_TIME *pEndTime,
2790         DWORD dwFlags) = 0;
2791 
2792     virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
2793         IMediaSample *pBuffer) = 0;
2794 
2795 };
2796 #ifdef __CRT_UUID_DECL
2797 __CRT_UUID_DECL(IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
2798 #endif
2799 #else
2800 typedef struct IMemAllocatorVtbl {
2801     BEGIN_INTERFACE
2802 
2803     /*** IUnknown methods ***/
2804     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2805         IMemAllocator *This,
2806         REFIID riid,
2807         void **ppvObject);
2808 
2809     ULONG (STDMETHODCALLTYPE *AddRef)(
2810         IMemAllocator *This);
2811 
2812     ULONG (STDMETHODCALLTYPE *Release)(
2813         IMemAllocator *This);
2814 
2815     /*** IMemAllocator methods ***/
2816     HRESULT (STDMETHODCALLTYPE *SetProperties)(
2817         IMemAllocator *This,
2818         ALLOCATOR_PROPERTIES *pRequest,
2819         ALLOCATOR_PROPERTIES *pActual);
2820 
2821     HRESULT (STDMETHODCALLTYPE *GetProperties)(
2822         IMemAllocator *This,
2823         ALLOCATOR_PROPERTIES *pProps);
2824 
2825     HRESULT (STDMETHODCALLTYPE *Commit)(
2826         IMemAllocator *This);
2827 
2828     HRESULT (STDMETHODCALLTYPE *Decommit)(
2829         IMemAllocator *This);
2830 
2831     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2832         IMemAllocator *This,
2833         IMediaSample **ppBuffer,
2834         REFERENCE_TIME *pStartTime,
2835         REFERENCE_TIME *pEndTime,
2836         DWORD dwFlags);
2837 
2838     HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
2839         IMemAllocator *This,
2840         IMediaSample *pBuffer);
2841 
2842     END_INTERFACE
2843 } IMemAllocatorVtbl;
2844 
2845 interface IMemAllocator {
2846     CONST_VTBL IMemAllocatorVtbl* lpVtbl;
2847 };
2848 
2849 #ifdef COBJMACROS
2850 #ifndef WIDL_C_INLINE_WRAPPERS
2851 /*** IUnknown methods ***/
2852 #define IMemAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2853 #define IMemAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
2854 #define IMemAllocator_Release(This) (This)->lpVtbl->Release(This)
2855 /*** IMemAllocator methods ***/
2856 #define IMemAllocator_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
2857 #define IMemAllocator_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
2858 #define IMemAllocator_Commit(This) (This)->lpVtbl->Commit(This)
2859 #define IMemAllocator_Decommit(This) (This)->lpVtbl->Decommit(This)
2860 #define IMemAllocator_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
2861 #define IMemAllocator_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
2862 #else
2863 /*** IUnknown methods ***/
2864 static FORCEINLINE HRESULT IMemAllocator_QueryInterface(IMemAllocator* This,REFIID riid,void **ppvObject) {
2865     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2866 }
2867 static FORCEINLINE ULONG IMemAllocator_AddRef(IMemAllocator* This) {
2868     return This->lpVtbl->AddRef(This);
2869 }
2870 static FORCEINLINE ULONG IMemAllocator_Release(IMemAllocator* This) {
2871     return This->lpVtbl->Release(This);
2872 }
2873 /*** IMemAllocator methods ***/
2874 static FORCEINLINE HRESULT IMemAllocator_SetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
2875     return This->lpVtbl->SetProperties(This,pRequest,pActual);
2876 }
2877 static FORCEINLINE HRESULT IMemAllocator_GetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pProps) {
2878     return This->lpVtbl->GetProperties(This,pProps);
2879 }
2880 static FORCEINLINE HRESULT IMemAllocator_Commit(IMemAllocator* This) {
2881     return This->lpVtbl->Commit(This);
2882 }
2883 static FORCEINLINE HRESULT IMemAllocator_Decommit(IMemAllocator* This) {
2884     return This->lpVtbl->Decommit(This);
2885 }
2886 static FORCEINLINE HRESULT IMemAllocator_GetBuffer(IMemAllocator* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) {
2887     return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags);
2888 }
2889 static FORCEINLINE HRESULT IMemAllocator_ReleaseBuffer(IMemAllocator* This,IMediaSample *pBuffer) {
2890     return This->lpVtbl->ReleaseBuffer(This,pBuffer);
2891 }
2892 #endif
2893 #endif
2894 
2895 #endif
2896 
2897 
2898 #endif  /* __IMemAllocator_INTERFACE_DEFINED__ */
2899 
2900 typedef IMemAllocator *PMEMALLOCATOR;
2901 
2902 /*****************************************************************************
2903  * IMemAllocatorCallbackTemp interface
2904  */
2905 #ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
2906 #define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
2907 
2908 DEFINE_GUID(IID_IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
2909 #if defined(__cplusplus) && !defined(CINTERFACE)
2910 MIDL_INTERFACE("379a0cf0-c1de-11d2-abf5-00a0c905f375")
2911 IMemAllocatorCallbackTemp : public IMemAllocator
2912 {
2913     virtual HRESULT STDMETHODCALLTYPE SetNotify(
2914         IMemAllocatorNotifyCallbackTemp *pNotify) = 0;
2915 
2916     virtual HRESULT STDMETHODCALLTYPE GetFreeCount(
2917         LONG *plBuffersFree) = 0;
2918 
2919 };
2920 #ifdef __CRT_UUID_DECL
2921 __CRT_UUID_DECL(IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
2922 #endif
2923 #else
2924 typedef struct IMemAllocatorCallbackTempVtbl {
2925     BEGIN_INTERFACE
2926 
2927     /*** IUnknown methods ***/
2928     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2929         IMemAllocatorCallbackTemp *This,
2930         REFIID riid,
2931         void **ppvObject);
2932 
2933     ULONG (STDMETHODCALLTYPE *AddRef)(
2934         IMemAllocatorCallbackTemp *This);
2935 
2936     ULONG (STDMETHODCALLTYPE *Release)(
2937         IMemAllocatorCallbackTemp *This);
2938 
2939     /*** IMemAllocator methods ***/
2940     HRESULT (STDMETHODCALLTYPE *SetProperties)(
2941         IMemAllocatorCallbackTemp *This,
2942         ALLOCATOR_PROPERTIES *pRequest,
2943         ALLOCATOR_PROPERTIES *pActual);
2944 
2945     HRESULT (STDMETHODCALLTYPE *GetProperties)(
2946         IMemAllocatorCallbackTemp *This,
2947         ALLOCATOR_PROPERTIES *pProps);
2948 
2949     HRESULT (STDMETHODCALLTYPE *Commit)(
2950         IMemAllocatorCallbackTemp *This);
2951 
2952     HRESULT (STDMETHODCALLTYPE *Decommit)(
2953         IMemAllocatorCallbackTemp *This);
2954 
2955     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
2956         IMemAllocatorCallbackTemp *This,
2957         IMediaSample **ppBuffer,
2958         REFERENCE_TIME *pStartTime,
2959         REFERENCE_TIME *pEndTime,
2960         DWORD dwFlags);
2961 
2962     HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
2963         IMemAllocatorCallbackTemp *This,
2964         IMediaSample *pBuffer);
2965 
2966     /*** IMemAllocatorCallbackTemp methods ***/
2967     HRESULT (STDMETHODCALLTYPE *SetNotify)(
2968         IMemAllocatorCallbackTemp *This,
2969         IMemAllocatorNotifyCallbackTemp *pNotify);
2970 
2971     HRESULT (STDMETHODCALLTYPE *GetFreeCount)(
2972         IMemAllocatorCallbackTemp *This,
2973         LONG *plBuffersFree);
2974 
2975     END_INTERFACE
2976 } IMemAllocatorCallbackTempVtbl;
2977 
2978 interface IMemAllocatorCallbackTemp {
2979     CONST_VTBL IMemAllocatorCallbackTempVtbl* lpVtbl;
2980 };
2981 
2982 #ifdef COBJMACROS
2983 #ifndef WIDL_C_INLINE_WRAPPERS
2984 /*** IUnknown methods ***/
2985 #define IMemAllocatorCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2986 #define IMemAllocatorCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
2987 #define IMemAllocatorCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
2988 /*** IMemAllocator methods ***/
2989 #define IMemAllocatorCallbackTemp_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
2990 #define IMemAllocatorCallbackTemp_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
2991 #define IMemAllocatorCallbackTemp_Commit(This) (This)->lpVtbl->Commit(This)
2992 #define IMemAllocatorCallbackTemp_Decommit(This) (This)->lpVtbl->Decommit(This)
2993 #define IMemAllocatorCallbackTemp_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
2994 #define IMemAllocatorCallbackTemp_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
2995 /*** IMemAllocatorCallbackTemp methods ***/
2996 #define IMemAllocatorCallbackTemp_SetNotify(This,pNotify) (This)->lpVtbl->SetNotify(This,pNotify)
2997 #define IMemAllocatorCallbackTemp_GetFreeCount(This,plBuffersFree) (This)->lpVtbl->GetFreeCount(This,plBuffersFree)
2998 #else
2999 /*** IUnknown methods ***/
3000 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_QueryInterface(IMemAllocatorCallbackTemp* This,REFIID riid,void **ppvObject) {
3001     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3002 }
3003 static FORCEINLINE ULONG IMemAllocatorCallbackTemp_AddRef(IMemAllocatorCallbackTemp* This) {
3004     return This->lpVtbl->AddRef(This);
3005 }
3006 static FORCEINLINE ULONG IMemAllocatorCallbackTemp_Release(IMemAllocatorCallbackTemp* This) {
3007     return This->lpVtbl->Release(This);
3008 }
3009 /*** IMemAllocator methods ***/
3010 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_SetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
3011     return This->lpVtbl->SetProperties(This,pRequest,pActual);
3012 }
3013 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pProps) {
3014     return This->lpVtbl->GetProperties(This,pProps);
3015 }
3016 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_Commit(IMemAllocatorCallbackTemp* This) {
3017     return This->lpVtbl->Commit(This);
3018 }
3019 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_Decommit(IMemAllocatorCallbackTemp* This) {
3020     return This->lpVtbl->Decommit(This);
3021 }
3022 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetBuffer(IMemAllocatorCallbackTemp* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) {
3023     return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags);
3024 }
3025 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_ReleaseBuffer(IMemAllocatorCallbackTemp* This,IMediaSample *pBuffer) {
3026     return This->lpVtbl->ReleaseBuffer(This,pBuffer);
3027 }
3028 /*** IMemAllocatorCallbackTemp methods ***/
3029 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_SetNotify(IMemAllocatorCallbackTemp* This,IMemAllocatorNotifyCallbackTemp *pNotify) {
3030     return This->lpVtbl->SetNotify(This,pNotify);
3031 }
3032 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetFreeCount(IMemAllocatorCallbackTemp* This,LONG *plBuffersFree) {
3033     return This->lpVtbl->GetFreeCount(This,plBuffersFree);
3034 }
3035 #endif
3036 #endif
3037 
3038 #endif
3039 
3040 
3041 #endif  /* __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ */
3042 
3043 
3044 /*****************************************************************************
3045  * IMemAllocatorNotifyCallbackTemp interface
3046  */
3047 #ifndef __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
3048 #define __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
3049 
3050 DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
3051 #if defined(__cplusplus) && !defined(CINTERFACE)
3052 MIDL_INTERFACE("92980b30-c1de-11d2-abf5-00a0c905f375")
3053 IMemAllocatorNotifyCallbackTemp : public IUnknown
3054 {
3055     virtual HRESULT STDMETHODCALLTYPE NotifyRelease(
3056         ) = 0;
3057 
3058 };
3059 #ifdef __CRT_UUID_DECL
3060 __CRT_UUID_DECL(IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
3061 #endif
3062 #else
3063 typedef struct IMemAllocatorNotifyCallbackTempVtbl {
3064     BEGIN_INTERFACE
3065 
3066     /*** IUnknown methods ***/
3067     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3068         IMemAllocatorNotifyCallbackTemp *This,
3069         REFIID riid,
3070         void **ppvObject);
3071 
3072     ULONG (STDMETHODCALLTYPE *AddRef)(
3073         IMemAllocatorNotifyCallbackTemp *This);
3074 
3075     ULONG (STDMETHODCALLTYPE *Release)(
3076         IMemAllocatorNotifyCallbackTemp *This);
3077 
3078     /*** IMemAllocatorNotifyCallbackTemp methods ***/
3079     HRESULT (STDMETHODCALLTYPE *NotifyRelease)(
3080         IMemAllocatorNotifyCallbackTemp *This);
3081 
3082     END_INTERFACE
3083 } IMemAllocatorNotifyCallbackTempVtbl;
3084 
3085 interface IMemAllocatorNotifyCallbackTemp {
3086     CONST_VTBL IMemAllocatorNotifyCallbackTempVtbl* lpVtbl;
3087 };
3088 
3089 #ifdef COBJMACROS
3090 #ifndef WIDL_C_INLINE_WRAPPERS
3091 /*** IUnknown methods ***/
3092 #define IMemAllocatorNotifyCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3093 #define IMemAllocatorNotifyCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
3094 #define IMemAllocatorNotifyCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
3095 /*** IMemAllocatorNotifyCallbackTemp methods ***/
3096 #define IMemAllocatorNotifyCallbackTemp_NotifyRelease(This) (This)->lpVtbl->NotifyRelease(This)
3097 #else
3098 /*** IUnknown methods ***/
3099 static FORCEINLINE HRESULT IMemAllocatorNotifyCallbackTemp_QueryInterface(IMemAllocatorNotifyCallbackTemp* This,REFIID riid,void **ppvObject) {
3100     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3101 }
3102 static FORCEINLINE ULONG IMemAllocatorNotifyCallbackTemp_AddRef(IMemAllocatorNotifyCallbackTemp* This) {
3103     return This->lpVtbl->AddRef(This);
3104 }
3105 static FORCEINLINE ULONG IMemAllocatorNotifyCallbackTemp_Release(IMemAllocatorNotifyCallbackTemp* This) {
3106     return This->lpVtbl->Release(This);
3107 }
3108 /*** IMemAllocatorNotifyCallbackTemp methods ***/
3109 static FORCEINLINE HRESULT IMemAllocatorNotifyCallbackTemp_NotifyRelease(IMemAllocatorNotifyCallbackTemp* This) {
3110     return This->lpVtbl->NotifyRelease(This);
3111 }
3112 #endif
3113 #endif
3114 
3115 #endif
3116 
3117 
3118 #endif  /* __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ */
3119 
3120 
3121 /*****************************************************************************
3122  * IMemInputPin interface
3123  */
3124 #ifndef __IMemInputPin_INTERFACE_DEFINED__
3125 #define __IMemInputPin_INTERFACE_DEFINED__
3126 
3127 DEFINE_GUID(IID_IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
3128 #if defined(__cplusplus) && !defined(CINTERFACE)
3129 MIDL_INTERFACE("56a8689d-0ad4-11ce-b03a-0020af0ba770")
3130 IMemInputPin : public IUnknown
3131 {
3132     virtual HRESULT STDMETHODCALLTYPE GetAllocator(
3133         IMemAllocator **ppAllocator) = 0;
3134 
3135     virtual HRESULT STDMETHODCALLTYPE NotifyAllocator(
3136         IMemAllocator *pAllocator,
3137         WINBOOL bReadOnly) = 0;
3138 
3139     virtual HRESULT STDMETHODCALLTYPE GetAllocatorRequirements(
3140         ALLOCATOR_PROPERTIES *pProps) = 0;
3141 
3142     virtual HRESULT STDMETHODCALLTYPE Receive(
3143         IMediaSample *pSample) = 0;
3144 
3145     virtual HRESULT STDMETHODCALLTYPE ReceiveMultiple(
3146         IMediaSample **pSamples,
3147         LONG nSamples,
3148         LONG *nSamplesProcessed) = 0;
3149 
3150     virtual HRESULT STDMETHODCALLTYPE ReceiveCanBlock(
3151         ) = 0;
3152 
3153 };
3154 #ifdef __CRT_UUID_DECL
3155 __CRT_UUID_DECL(IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
3156 #endif
3157 #else
3158 typedef struct IMemInputPinVtbl {
3159     BEGIN_INTERFACE
3160 
3161     /*** IUnknown methods ***/
3162     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3163         IMemInputPin *This,
3164         REFIID riid,
3165         void **ppvObject);
3166 
3167     ULONG (STDMETHODCALLTYPE *AddRef)(
3168         IMemInputPin *This);
3169 
3170     ULONG (STDMETHODCALLTYPE *Release)(
3171         IMemInputPin *This);
3172 
3173     /*** IMemInputPin methods ***/
3174     HRESULT (STDMETHODCALLTYPE *GetAllocator)(
3175         IMemInputPin *This,
3176         IMemAllocator **ppAllocator);
3177 
3178     HRESULT (STDMETHODCALLTYPE *NotifyAllocator)(
3179         IMemInputPin *This,
3180         IMemAllocator *pAllocator,
3181         WINBOOL bReadOnly);
3182 
3183     HRESULT (STDMETHODCALLTYPE *GetAllocatorRequirements)(
3184         IMemInputPin *This,
3185         ALLOCATOR_PROPERTIES *pProps);
3186 
3187     HRESULT (STDMETHODCALLTYPE *Receive)(
3188         IMemInputPin *This,
3189         IMediaSample *pSample);
3190 
3191     HRESULT (STDMETHODCALLTYPE *ReceiveMultiple)(
3192         IMemInputPin *This,
3193         IMediaSample **pSamples,
3194         LONG nSamples,
3195         LONG *nSamplesProcessed);
3196 
3197     HRESULT (STDMETHODCALLTYPE *ReceiveCanBlock)(
3198         IMemInputPin *This);
3199 
3200     END_INTERFACE
3201 } IMemInputPinVtbl;
3202 
3203 interface IMemInputPin {
3204     CONST_VTBL IMemInputPinVtbl* lpVtbl;
3205 };
3206 
3207 #ifdef COBJMACROS
3208 #ifndef WIDL_C_INLINE_WRAPPERS
3209 /*** IUnknown methods ***/
3210 #define IMemInputPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3211 #define IMemInputPin_AddRef(This) (This)->lpVtbl->AddRef(This)
3212 #define IMemInputPin_Release(This) (This)->lpVtbl->Release(This)
3213 /*** IMemInputPin methods ***/
3214 #define IMemInputPin_GetAllocator(This,ppAllocator) (This)->lpVtbl->GetAllocator(This,ppAllocator)
3215 #define IMemInputPin_NotifyAllocator(This,pAllocator,bReadOnly) (This)->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly)
3216 #define IMemInputPin_GetAllocatorRequirements(This,pProps) (This)->lpVtbl->GetAllocatorRequirements(This,pProps)
3217 #define IMemInputPin_Receive(This,pSample) (This)->lpVtbl->Receive(This,pSample)
3218 #define IMemInputPin_ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed) (This)->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed)
3219 #define IMemInputPin_ReceiveCanBlock(This) (This)->lpVtbl->ReceiveCanBlock(This)
3220 #else
3221 /*** IUnknown methods ***/
3222 static FORCEINLINE HRESULT IMemInputPin_QueryInterface(IMemInputPin* This,REFIID riid,void **ppvObject) {
3223     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3224 }
3225 static FORCEINLINE ULONG IMemInputPin_AddRef(IMemInputPin* This) {
3226     return This->lpVtbl->AddRef(This);
3227 }
3228 static FORCEINLINE ULONG IMemInputPin_Release(IMemInputPin* This) {
3229     return This->lpVtbl->Release(This);
3230 }
3231 /*** IMemInputPin methods ***/
3232 static FORCEINLINE HRESULT IMemInputPin_GetAllocator(IMemInputPin* This,IMemAllocator **ppAllocator) {
3233     return This->lpVtbl->GetAllocator(This,ppAllocator);
3234 }
3235 static FORCEINLINE HRESULT IMemInputPin_NotifyAllocator(IMemInputPin* This,IMemAllocator *pAllocator,WINBOOL bReadOnly) {
3236     return This->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly);
3237 }
3238 static FORCEINLINE HRESULT IMemInputPin_GetAllocatorRequirements(IMemInputPin* This,ALLOCATOR_PROPERTIES *pProps) {
3239     return This->lpVtbl->GetAllocatorRequirements(This,pProps);
3240 }
3241 static FORCEINLINE HRESULT IMemInputPin_Receive(IMemInputPin* This,IMediaSample *pSample) {
3242     return This->lpVtbl->Receive(This,pSample);
3243 }
3244 static FORCEINLINE HRESULT IMemInputPin_ReceiveMultiple(IMemInputPin* This,IMediaSample **pSamples,LONG nSamples,LONG *nSamplesProcessed) {
3245     return This->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed);
3246 }
3247 static FORCEINLINE HRESULT IMemInputPin_ReceiveCanBlock(IMemInputPin* This) {
3248     return This->lpVtbl->ReceiveCanBlock(This);
3249 }
3250 #endif
3251 #endif
3252 
3253 #endif
3254 
3255 
3256 #endif  /* __IMemInputPin_INTERFACE_DEFINED__ */
3257 
3258 typedef IMemInputPin *PMEMINPUTPIN;
3259 
3260 /*****************************************************************************
3261  * IAMovieSetup interface
3262  */
3263 #ifndef __IAMovieSetup_INTERFACE_DEFINED__
3264 #define __IAMovieSetup_INTERFACE_DEFINED__
3265 
3266 DEFINE_GUID(IID_IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20);
3267 #if defined(__cplusplus) && !defined(CINTERFACE)
3268 MIDL_INTERFACE("a3d8cec0-7e5a-11cf-bbc5-00805f6cef20")
3269 IAMovieSetup : public IUnknown
3270 {
3271     virtual HRESULT STDMETHODCALLTYPE Register(
3272         ) = 0;
3273 
3274     virtual HRESULT STDMETHODCALLTYPE Unregister(
3275         ) = 0;
3276 
3277 };
3278 #ifdef __CRT_UUID_DECL
3279 __CRT_UUID_DECL(IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20)
3280 #endif
3281 #else
3282 typedef struct IAMovieSetupVtbl {
3283     BEGIN_INTERFACE
3284 
3285     /*** IUnknown methods ***/
3286     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3287         IAMovieSetup *This,
3288         REFIID riid,
3289         void **ppvObject);
3290 
3291     ULONG (STDMETHODCALLTYPE *AddRef)(
3292         IAMovieSetup *This);
3293 
3294     ULONG (STDMETHODCALLTYPE *Release)(
3295         IAMovieSetup *This);
3296 
3297     /*** IAMovieSetup methods ***/
3298     HRESULT (STDMETHODCALLTYPE *Register)(
3299         IAMovieSetup *This);
3300 
3301     HRESULT (STDMETHODCALLTYPE *Unregister)(
3302         IAMovieSetup *This);
3303 
3304     END_INTERFACE
3305 } IAMovieSetupVtbl;
3306 
3307 interface IAMovieSetup {
3308     CONST_VTBL IAMovieSetupVtbl* lpVtbl;
3309 };
3310 
3311 #ifdef COBJMACROS
3312 #ifndef WIDL_C_INLINE_WRAPPERS
3313 /*** IUnknown methods ***/
3314 #define IAMovieSetup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3315 #define IAMovieSetup_AddRef(This) (This)->lpVtbl->AddRef(This)
3316 #define IAMovieSetup_Release(This) (This)->lpVtbl->Release(This)
3317 /*** IAMovieSetup methods ***/
3318 #define IAMovieSetup_Register(This) (This)->lpVtbl->Register(This)
3319 #define IAMovieSetup_Unregister(This) (This)->lpVtbl->Unregister(This)
3320 #else
3321 /*** IUnknown methods ***/
3322 static FORCEINLINE HRESULT IAMovieSetup_QueryInterface(IAMovieSetup* This,REFIID riid,void **ppvObject) {
3323     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3324 }
3325 static FORCEINLINE ULONG IAMovieSetup_AddRef(IAMovieSetup* This) {
3326     return This->lpVtbl->AddRef(This);
3327 }
3328 static FORCEINLINE ULONG IAMovieSetup_Release(IAMovieSetup* This) {
3329     return This->lpVtbl->Release(This);
3330 }
3331 /*** IAMovieSetup methods ***/
3332 static FORCEINLINE HRESULT IAMovieSetup_Register(IAMovieSetup* This) {
3333     return This->lpVtbl->Register(This);
3334 }
3335 static FORCEINLINE HRESULT IAMovieSetup_Unregister(IAMovieSetup* This) {
3336     return This->lpVtbl->Unregister(This);
3337 }
3338 #endif
3339 #endif
3340 
3341 #endif
3342 
3343 
3344 #endif  /* __IAMovieSetup_INTERFACE_DEFINED__ */
3345 
3346 typedef IAMovieSetup *PAMOVIESETUP;
3347 
3348 typedef enum AM_SEEKING_SeekingFlags {
3349     AM_SEEKING_NoPositioning = 0x0,
3350     AM_SEEKING_AbsolutePositioning = 0x1,
3351     AM_SEEKING_RelativePositioning = 0x2,
3352     AM_SEEKING_IncrementalPositioning = 0x3,
3353     AM_SEEKING_PositioningBitsMask = 0x3,
3354     AM_SEEKING_SeekToKeyFrame = 0x4,
3355     AM_SEEKING_ReturnTime = 0x8,
3356     AM_SEEKING_Segment = 0x10,
3357     AM_SEEKING_NoFlush = 0x20
3358 } AM_SEEKING_SEEKING_FLAGS;
3359 
3360 typedef enum AM_SEEKING_SeekingCapabilities {
3361     AM_SEEKING_CanSeekAbsolute = 0x1,
3362     AM_SEEKING_CanSeekForwards = 0x2,
3363     AM_SEEKING_CanSeekBackwards = 0x4,
3364     AM_SEEKING_CanGetCurrentPos = 0x8,
3365     AM_SEEKING_CanGetStopPos = 0x10,
3366     AM_SEEKING_CanGetDuration = 0x20,
3367     AM_SEEKING_CanPlayBackwards = 0x40,
3368     AM_SEEKING_CanDoSegments = 0x80,
3369     AM_SEEKING_Source = 0x100
3370 } AM_SEEKING_SEEKING_CAPABILITIES;
3371 
3372 /*****************************************************************************
3373  * IMediaSeeking interface
3374  */
3375 #ifndef __IMediaSeeking_INTERFACE_DEFINED__
3376 #define __IMediaSeeking_INTERFACE_DEFINED__
3377 
3378 DEFINE_GUID(IID_IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
3379 #if defined(__cplusplus) && !defined(CINTERFACE)
3380 MIDL_INTERFACE("36b73880-c2c8-11cf-8b46-00805f6cef60")
3381 IMediaSeeking : public IUnknown
3382 {
3383     virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
3384         DWORD *pCapabilities) = 0;
3385 
3386     virtual HRESULT STDMETHODCALLTYPE CheckCapabilities(
3387         DWORD *pCapabilities) = 0;
3388 
3389     virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
3390         const GUID *pFormat) = 0;
3391 
3392     virtual HRESULT STDMETHODCALLTYPE QueryPreferredFormat(
3393         GUID *pFormat) = 0;
3394 
3395     virtual HRESULT STDMETHODCALLTYPE GetTimeFormat(
3396         GUID *pFormat) = 0;
3397 
3398     virtual HRESULT STDMETHODCALLTYPE IsUsingTimeFormat(
3399         const GUID *pFormat) = 0;
3400 
3401     virtual HRESULT STDMETHODCALLTYPE SetTimeFormat(
3402         const GUID *pFormat) = 0;
3403 
3404     virtual HRESULT STDMETHODCALLTYPE GetDuration(
3405         LONGLONG *pDuration) = 0;
3406 
3407     virtual HRESULT STDMETHODCALLTYPE GetStopPosition(
3408         LONGLONG *pStop) = 0;
3409 
3410     virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(
3411         LONGLONG *pCurrent) = 0;
3412 
3413     virtual HRESULT STDMETHODCALLTYPE ConvertTimeFormat(
3414         LONGLONG *pTarget,
3415         const GUID *pTargetFormat,
3416         LONGLONG Source,
3417         const GUID *pSourceFormat) = 0;
3418 
3419     virtual HRESULT STDMETHODCALLTYPE SetPositions(
3420         LONGLONG *pCurrent,
3421         DWORD dwCurrentFlags,
3422         LONGLONG *pStop,
3423         DWORD dwStopFlags) = 0;
3424 
3425     virtual HRESULT STDMETHODCALLTYPE GetPositions(
3426         LONGLONG *pCurrent,
3427         LONGLONG *pStop) = 0;
3428 
3429     virtual HRESULT STDMETHODCALLTYPE GetAvailable(
3430         LONGLONG *pEarliest,
3431         LONGLONG *pLatest) = 0;
3432 
3433     virtual HRESULT STDMETHODCALLTYPE SetRate(
3434         double dRate) = 0;
3435 
3436     virtual HRESULT STDMETHODCALLTYPE GetRate(
3437         double *pdRate) = 0;
3438 
3439     virtual HRESULT STDMETHODCALLTYPE GetPreroll(
3440         LONGLONG *pllPreroll) = 0;
3441 
3442 };
3443 #ifdef __CRT_UUID_DECL
3444 __CRT_UUID_DECL(IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
3445 #endif
3446 #else
3447 typedef struct IMediaSeekingVtbl {
3448     BEGIN_INTERFACE
3449 
3450     /*** IUnknown methods ***/
3451     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3452         IMediaSeeking *This,
3453         REFIID riid,
3454         void **ppvObject);
3455 
3456     ULONG (STDMETHODCALLTYPE *AddRef)(
3457         IMediaSeeking *This);
3458 
3459     ULONG (STDMETHODCALLTYPE *Release)(
3460         IMediaSeeking *This);
3461 
3462     /*** IMediaSeeking methods ***/
3463     HRESULT (STDMETHODCALLTYPE *GetCapabilities)(
3464         IMediaSeeking *This,
3465         DWORD *pCapabilities);
3466 
3467     HRESULT (STDMETHODCALLTYPE *CheckCapabilities)(
3468         IMediaSeeking *This,
3469         DWORD *pCapabilities);
3470 
3471     HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
3472         IMediaSeeking *This,
3473         const GUID *pFormat);
3474 
3475     HRESULT (STDMETHODCALLTYPE *QueryPreferredFormat)(
3476         IMediaSeeking *This,
3477         GUID *pFormat);
3478 
3479     HRESULT (STDMETHODCALLTYPE *GetTimeFormat)(
3480         IMediaSeeking *This,
3481         GUID *pFormat);
3482 
3483     HRESULT (STDMETHODCALLTYPE *IsUsingTimeFormat)(
3484         IMediaSeeking *This,
3485         const GUID *pFormat);
3486 
3487     HRESULT (STDMETHODCALLTYPE *SetTimeFormat)(
3488         IMediaSeeking *This,
3489         const GUID *pFormat);
3490 
3491     HRESULT (STDMETHODCALLTYPE *GetDuration)(
3492         IMediaSeeking *This,
3493         LONGLONG *pDuration);
3494 
3495     HRESULT (STDMETHODCALLTYPE *GetStopPosition)(
3496         IMediaSeeking *This,
3497         LONGLONG *pStop);
3498 
3499     HRESULT (STDMETHODCALLTYPE *GetCurrentPosition)(
3500         IMediaSeeking *This,
3501         LONGLONG *pCurrent);
3502 
3503     HRESULT (STDMETHODCALLTYPE *ConvertTimeFormat)(
3504         IMediaSeeking *This,
3505         LONGLONG *pTarget,
3506         const GUID *pTargetFormat,
3507         LONGLONG Source,
3508         const GUID *pSourceFormat);
3509 
3510     HRESULT (STDMETHODCALLTYPE *SetPositions)(
3511         IMediaSeeking *This,
3512         LONGLONG *pCurrent,
3513         DWORD dwCurrentFlags,
3514         LONGLONG *pStop,
3515         DWORD dwStopFlags);
3516 
3517     HRESULT (STDMETHODCALLTYPE *GetPositions)(
3518         IMediaSeeking *This,
3519         LONGLONG *pCurrent,
3520         LONGLONG *pStop);
3521 
3522     HRESULT (STDMETHODCALLTYPE *GetAvailable)(
3523         IMediaSeeking *This,
3524         LONGLONG *pEarliest,
3525         LONGLONG *pLatest);
3526 
3527     HRESULT (STDMETHODCALLTYPE *SetRate)(
3528         IMediaSeeking *This,
3529         double dRate);
3530 
3531     HRESULT (STDMETHODCALLTYPE *GetRate)(
3532         IMediaSeeking *This,
3533         double *pdRate);
3534 
3535     HRESULT (STDMETHODCALLTYPE *GetPreroll)(
3536         IMediaSeeking *This,
3537         LONGLONG *pllPreroll);
3538 
3539     END_INTERFACE
3540 } IMediaSeekingVtbl;
3541 
3542 interface IMediaSeeking {
3543     CONST_VTBL IMediaSeekingVtbl* lpVtbl;
3544 };
3545 
3546 #ifdef COBJMACROS
3547 #ifndef WIDL_C_INLINE_WRAPPERS
3548 /*** IUnknown methods ***/
3549 #define IMediaSeeking_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3550 #define IMediaSeeking_AddRef(This) (This)->lpVtbl->AddRef(This)
3551 #define IMediaSeeking_Release(This) (This)->lpVtbl->Release(This)
3552 /*** IMediaSeeking methods ***/
3553 #define IMediaSeeking_GetCapabilities(This,pCapabilities) (This)->lpVtbl->GetCapabilities(This,pCapabilities)
3554 #define IMediaSeeking_CheckCapabilities(This,pCapabilities) (This)->lpVtbl->CheckCapabilities(This,pCapabilities)
3555 #define IMediaSeeking_IsFormatSupported(This,pFormat) (This)->lpVtbl->IsFormatSupported(This,pFormat)
3556 #define IMediaSeeking_QueryPreferredFormat(This,pFormat) (This)->lpVtbl->QueryPreferredFormat(This,pFormat)
3557 #define IMediaSeeking_GetTimeFormat(This,pFormat) (This)->lpVtbl->GetTimeFormat(This,pFormat)
3558 #define IMediaSeeking_IsUsingTimeFormat(This,pFormat) (This)->lpVtbl->IsUsingTimeFormat(This,pFormat)
3559 #define IMediaSeeking_SetTimeFormat(This,pFormat) (This)->lpVtbl->SetTimeFormat(This,pFormat)
3560 #define IMediaSeeking_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration)
3561 #define IMediaSeeking_GetStopPosition(This,pStop) (This)->lpVtbl->GetStopPosition(This,pStop)
3562 #define IMediaSeeking_GetCurrentPosition(This,pCurrent) (This)->lpVtbl->GetCurrentPosition(This,pCurrent)
3563 #define IMediaSeeking_ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat) (This)->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat)
3564 #define IMediaSeeking_SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags) (This)->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags)
3565 #define IMediaSeeking_GetPositions(This,pCurrent,pStop) (This)->lpVtbl->GetPositions(This,pCurrent,pStop)
3566 #define IMediaSeeking_GetAvailable(This,pEarliest,pLatest) (This)->lpVtbl->GetAvailable(This,pEarliest,pLatest)
3567 #define IMediaSeeking_SetRate(This,dRate) (This)->lpVtbl->SetRate(This,dRate)
3568 #define IMediaSeeking_GetRate(This,pdRate) (This)->lpVtbl->GetRate(This,pdRate)
3569 #define IMediaSeeking_GetPreroll(This,pllPreroll) (This)->lpVtbl->GetPreroll(This,pllPreroll)
3570 #else
3571 /*** IUnknown methods ***/
3572 static FORCEINLINE HRESULT IMediaSeeking_QueryInterface(IMediaSeeking* This,REFIID riid,void **ppvObject) {
3573     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3574 }
3575 static FORCEINLINE ULONG IMediaSeeking_AddRef(IMediaSeeking* This) {
3576     return This->lpVtbl->AddRef(This);
3577 }
3578 static FORCEINLINE ULONG IMediaSeeking_Release(IMediaSeeking* This) {
3579     return This->lpVtbl->Release(This);
3580 }
3581 /*** IMediaSeeking methods ***/
3582 static FORCEINLINE HRESULT IMediaSeeking_GetCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
3583     return This->lpVtbl->GetCapabilities(This,pCapabilities);
3584 }
3585 static FORCEINLINE HRESULT IMediaSeeking_CheckCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
3586     return This->lpVtbl->CheckCapabilities(This,pCapabilities);
3587 }
3588 static FORCEINLINE HRESULT IMediaSeeking_IsFormatSupported(IMediaSeeking* This,const GUID *pFormat) {
3589     return This->lpVtbl->IsFormatSupported(This,pFormat);
3590 }
3591 static FORCEINLINE HRESULT IMediaSeeking_QueryPreferredFormat(IMediaSeeking* This,GUID *pFormat) {
3592     return This->lpVtbl->QueryPreferredFormat(This,pFormat);
3593 }
3594 static FORCEINLINE HRESULT IMediaSeeking_GetTimeFormat(IMediaSeeking* This,GUID *pFormat) {
3595     return This->lpVtbl->GetTimeFormat(This,pFormat);
3596 }
3597 static FORCEINLINE HRESULT IMediaSeeking_IsUsingTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
3598     return This->lpVtbl->IsUsingTimeFormat(This,pFormat);
3599 }
3600 static FORCEINLINE HRESULT IMediaSeeking_SetTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
3601     return This->lpVtbl->SetTimeFormat(This,pFormat);
3602 }
3603 static FORCEINLINE HRESULT IMediaSeeking_GetDuration(IMediaSeeking* This,LONGLONG *pDuration) {
3604     return This->lpVtbl->GetDuration(This,pDuration);
3605 }
3606 static FORCEINLINE HRESULT IMediaSeeking_GetStopPosition(IMediaSeeking* This,LONGLONG *pStop) {
3607     return This->lpVtbl->GetStopPosition(This,pStop);
3608 }
3609 static FORCEINLINE HRESULT IMediaSeeking_GetCurrentPosition(IMediaSeeking* This,LONGLONG *pCurrent) {
3610     return This->lpVtbl->GetCurrentPosition(This,pCurrent);
3611 }
3612 static FORCEINLINE HRESULT IMediaSeeking_ConvertTimeFormat(IMediaSeeking* This,LONGLONG *pTarget,const GUID *pTargetFormat,LONGLONG Source,const GUID *pSourceFormat) {
3613     return This->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat);
3614 }
3615 static FORCEINLINE HRESULT IMediaSeeking_SetPositions(IMediaSeeking* This,LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags) {
3616     return This->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags);
3617 }
3618 static FORCEINLINE HRESULT IMediaSeeking_GetPositions(IMediaSeeking* This,LONGLONG *pCurrent,LONGLONG *pStop) {
3619     return This->lpVtbl->GetPositions(This,pCurrent,pStop);
3620 }
3621 static FORCEINLINE HRESULT IMediaSeeking_GetAvailable(IMediaSeeking* This,LONGLONG *pEarliest,LONGLONG *pLatest) {
3622     return This->lpVtbl->GetAvailable(This,pEarliest,pLatest);
3623 }
3624 static FORCEINLINE HRESULT IMediaSeeking_SetRate(IMediaSeeking* This,double dRate) {
3625     return This->lpVtbl->SetRate(This,dRate);
3626 }
3627 static FORCEINLINE HRESULT IMediaSeeking_GetRate(IMediaSeeking* This,double *pdRate) {
3628     return This->lpVtbl->GetRate(This,pdRate);
3629 }
3630 static FORCEINLINE HRESULT IMediaSeeking_GetPreroll(IMediaSeeking* This,LONGLONG *pllPreroll) {
3631     return This->lpVtbl->GetPreroll(This,pllPreroll);
3632 }
3633 #endif
3634 #endif
3635 
3636 #endif
3637 
3638 
3639 #endif  /* __IMediaSeeking_INTERFACE_DEFINED__ */
3640 
3641 typedef IMediaSeeking *PMEDIASEEKING;
3642 
3643 enum tagAM_MEDIAEVENT_FLAGS {
3644   AM_MEDIAEVENT_NONOTIFY = 0x1
3645 };
3646 
3647 #endif
3648 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
3649 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
3650 typedef interface IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
3651 #ifdef __cplusplus
3652 interface IAMAnalogVideoDecoder;
3653 #endif /* __cplusplus */
3654 #endif
3655 
3656 #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
3657 #define __IAMAnalogVideoEncoder_FWD_DEFINED__
3658 typedef interface IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
3659 #ifdef __cplusplus
3660 interface IAMAnalogVideoEncoder;
3661 #endif /* __cplusplus */
3662 #endif
3663 
3664 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
3665 #define __IAMAudioInputMixer_FWD_DEFINED__
3666 typedef interface IAMAudioInputMixer IAMAudioInputMixer;
3667 #ifdef __cplusplus
3668 interface IAMAudioInputMixer;
3669 #endif /* __cplusplus */
3670 #endif
3671 
3672 #ifndef __IAMAudioRendererStats_FWD_DEFINED__
3673 #define __IAMAudioRendererStats_FWD_DEFINED__
3674 typedef interface IAMAudioRendererStats IAMAudioRendererStats;
3675 #ifdef __cplusplus
3676 interface IAMAudioRendererStats;
3677 #endif /* __cplusplus */
3678 #endif
3679 
3680 #ifndef __IAMBufferNegotiation_FWD_DEFINED__
3681 #define __IAMBufferNegotiation_FWD_DEFINED__
3682 typedef interface IAMBufferNegotiation IAMBufferNegotiation;
3683 #ifdef __cplusplus
3684 interface IAMBufferNegotiation;
3685 #endif /* __cplusplus */
3686 #endif
3687 
3688 #ifndef __IAMCameraControl_FWD_DEFINED__
3689 #define __IAMCameraControl_FWD_DEFINED__
3690 typedef interface IAMCameraControl IAMCameraControl;
3691 #ifdef __cplusplus
3692 interface IAMCameraControl;
3693 #endif /* __cplusplus */
3694 #endif
3695 
3696 #ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
3697 #define __IAMCertifiedOutputProtection_FWD_DEFINED__
3698 typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
3699 #ifdef __cplusplus
3700 interface IAMCertifiedOutputProtection;
3701 #endif /* __cplusplus */
3702 #endif
3703 
3704 #ifndef __IAMClockSlave_FWD_DEFINED__
3705 #define __IAMClockSlave_FWD_DEFINED__
3706 typedef interface IAMClockSlave IAMClockSlave;
3707 #ifdef __cplusplus
3708 interface IAMClockSlave;
3709 #endif /* __cplusplus */
3710 #endif
3711 
3712 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
3713 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
3714 typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
3715 #ifdef __cplusplus
3716 interface IAMCopyCaptureFileProgress;
3717 #endif /* __cplusplus */
3718 #endif
3719 
3720 #ifndef __IAMCrossbar_FWD_DEFINED__
3721 #define __IAMCrossbar_FWD_DEFINED__
3722 typedef interface IAMCrossbar IAMCrossbar;
3723 #ifdef __cplusplus
3724 interface IAMCrossbar;
3725 #endif /* __cplusplus */
3726 #endif
3727 
3728 #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
3729 #define __IAMDevMemoryAllocator_FWD_DEFINED__
3730 typedef interface IAMDevMemoryAllocator IAMDevMemoryAllocator;
3731 #ifdef __cplusplus
3732 interface IAMDevMemoryAllocator;
3733 #endif /* __cplusplus */
3734 #endif
3735 
3736 #ifndef __IAMDevMemoryControl_FWD_DEFINED__
3737 #define __IAMDevMemoryControl_FWD_DEFINED__
3738 typedef interface IAMDevMemoryControl IAMDevMemoryControl;
3739 #ifdef __cplusplus
3740 interface IAMDevMemoryControl;
3741 #endif /* __cplusplus */
3742 #endif
3743 
3744 #ifndef __IAMDroppedFrames_FWD_DEFINED__
3745 #define __IAMDroppedFrames_FWD_DEFINED__
3746 typedef interface IAMDroppedFrames IAMDroppedFrames;
3747 #ifdef __cplusplus
3748 interface IAMDroppedFrames;
3749 #endif /* __cplusplus */
3750 #endif
3751 
3752 #ifndef __IAMExtDevice_FWD_DEFINED__
3753 #define __IAMExtDevice_FWD_DEFINED__
3754 typedef interface IAMExtDevice IAMExtDevice;
3755 #ifdef __cplusplus
3756 interface IAMExtDevice;
3757 #endif /* __cplusplus */
3758 #endif
3759 
3760 #ifndef __IAMExtTransport_FWD_DEFINED__
3761 #define __IAMExtTransport_FWD_DEFINED__
3762 typedef interface IAMExtTransport IAMExtTransport;
3763 #ifdef __cplusplus
3764 interface IAMExtTransport;
3765 #endif /* __cplusplus */
3766 #endif
3767 
3768 #ifndef __IAMGraphStreams_FWD_DEFINED__
3769 #define __IAMGraphStreams_FWD_DEFINED__
3770 typedef interface IAMGraphStreams IAMGraphStreams;
3771 #ifdef __cplusplus
3772 interface IAMGraphStreams;
3773 #endif /* __cplusplus */
3774 #endif
3775 
3776 #ifndef __IAMLatency_FWD_DEFINED__
3777 #define __IAMLatency_FWD_DEFINED__
3778 typedef interface IAMLatency IAMLatency;
3779 #ifdef __cplusplus
3780 interface IAMLatency;
3781 #endif /* __cplusplus */
3782 #endif
3783 
3784 #ifndef __IAMOpenProgress_FWD_DEFINED__
3785 #define __IAMOpenProgress_FWD_DEFINED__
3786 typedef interface IAMOpenProgress IAMOpenProgress;
3787 #ifdef __cplusplus
3788 interface IAMOpenProgress;
3789 #endif /* __cplusplus */
3790 #endif
3791 
3792 #ifndef __IAMOverlayFX_FWD_DEFINED__
3793 #define __IAMOverlayFX_FWD_DEFINED__
3794 typedef interface IAMOverlayFX IAMOverlayFX;
3795 #ifdef __cplusplus
3796 interface IAMOverlayFX;
3797 #endif /* __cplusplus */
3798 #endif
3799 
3800 #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
3801 #define __IAMPhysicalPinInfo_FWD_DEFINED__
3802 typedef interface IAMPhysicalPinInfo IAMPhysicalPinInfo;
3803 #ifdef __cplusplus
3804 interface IAMPhysicalPinInfo;
3805 #endif /* __cplusplus */
3806 #endif
3807 
3808 #ifndef __IAMPushSource_FWD_DEFINED__
3809 #define __IAMPushSource_FWD_DEFINED__
3810 typedef interface IAMPushSource IAMPushSource;
3811 #ifdef __cplusplus
3812 interface IAMPushSource;
3813 #endif /* __cplusplus */
3814 #endif
3815 
3816 #ifndef __IAMStreamConfig_FWD_DEFINED__
3817 #define __IAMStreamConfig_FWD_DEFINED__
3818 typedef interface IAMStreamConfig IAMStreamConfig;
3819 #ifdef __cplusplus
3820 interface IAMStreamConfig;
3821 #endif /* __cplusplus */
3822 #endif
3823 
3824 #ifndef __IAMTimecodeDisplay_FWD_DEFINED__
3825 #define __IAMTimecodeDisplay_FWD_DEFINED__
3826 typedef interface IAMTimecodeDisplay IAMTimecodeDisplay;
3827 #ifdef __cplusplus
3828 interface IAMTimecodeDisplay;
3829 #endif /* __cplusplus */
3830 #endif
3831 
3832 #ifndef __IAMTimecodeGenerator_FWD_DEFINED__
3833 #define __IAMTimecodeGenerator_FWD_DEFINED__
3834 typedef interface IAMTimecodeGenerator IAMTimecodeGenerator;
3835 #ifdef __cplusplus
3836 interface IAMTimecodeGenerator;
3837 #endif /* __cplusplus */
3838 #endif
3839 
3840 #ifndef __IAMTimecodeReader_FWD_DEFINED__
3841 #define __IAMTimecodeReader_FWD_DEFINED__
3842 typedef interface IAMTimecodeReader IAMTimecodeReader;
3843 #ifdef __cplusplus
3844 interface IAMTimecodeReader;
3845 #endif /* __cplusplus */
3846 #endif
3847 
3848 #ifndef __IAMTVTuner_FWD_DEFINED__
3849 #define __IAMTVTuner_FWD_DEFINED__
3850 typedef interface IAMTVTuner IAMTVTuner;
3851 #ifdef __cplusplus
3852 interface IAMTVTuner;
3853 #endif /* __cplusplus */
3854 #endif
3855 
3856 #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
3857 #define __IAMVfwCaptureDialogs_FWD_DEFINED__
3858 typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
3859 #ifdef __cplusplus
3860 interface IAMVfwCaptureDialogs;
3861 #endif /* __cplusplus */
3862 #endif
3863 
3864 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
3865 #define __IAMVfwCompressDialogs_FWD_DEFINED__
3866 typedef interface IAMVfwCompressDialogs IAMVfwCompressDialogs;
3867 #ifdef __cplusplus
3868 interface IAMVfwCompressDialogs;
3869 #endif /* __cplusplus */
3870 #endif
3871 
3872 #ifndef __IAMVideoCompression_FWD_DEFINED__
3873 #define __IAMVideoCompression_FWD_DEFINED__
3874 typedef interface IAMVideoCompression IAMVideoCompression;
3875 #ifdef __cplusplus
3876 interface IAMVideoCompression;
3877 #endif /* __cplusplus */
3878 #endif
3879 
3880 #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
3881 #define __IAMVideoDecimationProperties_FWD_DEFINED__
3882 typedef interface IAMVideoDecimationProperties IAMVideoDecimationProperties;
3883 #ifdef __cplusplus
3884 interface IAMVideoDecimationProperties;
3885 #endif /* __cplusplus */
3886 #endif
3887 
3888 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
3889 #define __IAMVideoProcAmp_FWD_DEFINED__
3890 typedef interface IAMVideoProcAmp IAMVideoProcAmp;
3891 #ifdef __cplusplus
3892 interface IAMVideoProcAmp;
3893 #endif /* __cplusplus */
3894 #endif
3895 
3896 #ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
3897 #define __IAMGraphBuilderCallback_FWD_DEFINED__
3898 typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
3899 #ifdef __cplusplus
3900 interface IAMGraphBuilderCallback;
3901 #endif /* __cplusplus */
3902 #endif
3903 
3904 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
3905 #define __ICaptureGraphBuilder_FWD_DEFINED__
3906 typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
3907 #ifdef __cplusplus
3908 interface ICaptureGraphBuilder;
3909 #endif /* __cplusplus */
3910 #endif
3911 
3912 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
3913 #define __ICaptureGraphBuilder2_FWD_DEFINED__
3914 typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
3915 #ifdef __cplusplus
3916 interface ICaptureGraphBuilder2;
3917 #endif /* __cplusplus */
3918 #endif
3919 
3920 #ifndef __IConfigAviMux_FWD_DEFINED__
3921 #define __IConfigAviMux_FWD_DEFINED__
3922 typedef interface IConfigAviMux IConfigAviMux;
3923 #ifdef __cplusplus
3924 interface IConfigAviMux;
3925 #endif /* __cplusplus */
3926 #endif
3927 
3928 #ifndef __IConfigInterleaving_FWD_DEFINED__
3929 #define __IConfigInterleaving_FWD_DEFINED__
3930 typedef interface IConfigInterleaving IConfigInterleaving;
3931 #ifdef __cplusplus
3932 interface IConfigInterleaving;
3933 #endif /* __cplusplus */
3934 #endif
3935 
3936 #ifndef __IDecimateVideoImage_FWD_DEFINED__
3937 #define __IDecimateVideoImage_FWD_DEFINED__
3938 typedef interface IDecimateVideoImage IDecimateVideoImage;
3939 #ifdef __cplusplus
3940 interface IDecimateVideoImage;
3941 #endif /* __cplusplus */
3942 #endif
3943 
3944 #ifndef __IDrawVideoImage_FWD_DEFINED__
3945 #define __IDrawVideoImage_FWD_DEFINED__
3946 typedef interface IDrawVideoImage IDrawVideoImage;
3947 #ifdef __cplusplus
3948 interface IDrawVideoImage;
3949 #endif /* __cplusplus */
3950 #endif
3951 
3952 #ifndef __IEnumRegFilters_FWD_DEFINED__
3953 #define __IEnumRegFilters_FWD_DEFINED__
3954 typedef interface IEnumRegFilters IEnumRegFilters;
3955 #ifdef __cplusplus
3956 interface IEnumRegFilters;
3957 #endif /* __cplusplus */
3958 #endif
3959 
3960 #ifndef __IEnumStreamIdMap_FWD_DEFINED__
3961 #define __IEnumStreamIdMap_FWD_DEFINED__
3962 typedef interface IEnumStreamIdMap IEnumStreamIdMap;
3963 #ifdef __cplusplus
3964 interface IEnumStreamIdMap;
3965 #endif /* __cplusplus */
3966 #endif
3967 
3968 #ifndef __IFileSourceFilter_FWD_DEFINED__
3969 #define __IFileSourceFilter_FWD_DEFINED__
3970 typedef interface IFileSourceFilter IFileSourceFilter;
3971 #ifdef __cplusplus
3972 interface IFileSourceFilter;
3973 #endif /* __cplusplus */
3974 #endif
3975 
3976 #ifndef __IFileSinkFilter_FWD_DEFINED__
3977 #define __IFileSinkFilter_FWD_DEFINED__
3978 typedef interface IFileSinkFilter IFileSinkFilter;
3979 #ifdef __cplusplus
3980 interface IFileSinkFilter;
3981 #endif /* __cplusplus */
3982 #endif
3983 
3984 #ifndef __IFileSinkFilter2_FWD_DEFINED__
3985 #define __IFileSinkFilter2_FWD_DEFINED__
3986 typedef interface IFileSinkFilter2 IFileSinkFilter2;
3987 #ifdef __cplusplus
3988 interface IFileSinkFilter2;
3989 #endif /* __cplusplus */
3990 #endif
3991 
3992 #ifndef __IFilterMapper_FWD_DEFINED__
3993 #define __IFilterMapper_FWD_DEFINED__
3994 typedef interface IFilterMapper IFilterMapper;
3995 #ifdef __cplusplus
3996 interface IFilterMapper;
3997 #endif /* __cplusplus */
3998 #endif
3999 
4000 #ifndef __IFilterMapper2_FWD_DEFINED__
4001 #define __IFilterMapper2_FWD_DEFINED__
4002 typedef interface IFilterMapper2 IFilterMapper2;
4003 #ifdef __cplusplus
4004 interface IFilterMapper2;
4005 #endif /* __cplusplus */
4006 #endif
4007 
4008 #ifndef __IGraphBuilder_FWD_DEFINED__
4009 #define __IGraphBuilder_FWD_DEFINED__
4010 typedef interface IGraphBuilder IGraphBuilder;
4011 #ifdef __cplusplus
4012 interface IGraphBuilder;
4013 #endif /* __cplusplus */
4014 #endif
4015 
4016 #ifndef __IKsPropertySet_FWD_DEFINED__
4017 #define __IKsPropertySet_FWD_DEFINED__
4018 typedef interface IKsPropertySet IKsPropertySet;
4019 #ifdef __cplusplus
4020 interface IKsPropertySet;
4021 #endif /* __cplusplus */
4022 #endif
4023 
4024 #ifndef __IMediaEventSink_FWD_DEFINED__
4025 #define __IMediaEventSink_FWD_DEFINED__
4026 typedef interface IMediaEventSink IMediaEventSink;
4027 #ifdef __cplusplus
4028 interface IMediaEventSink;
4029 #endif /* __cplusplus */
4030 #endif
4031 
4032 #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
4033 #define __IMpeg2Demultiplexer_FWD_DEFINED__
4034 typedef interface IMpeg2Demultiplexer IMpeg2Demultiplexer;
4035 #ifdef __cplusplus
4036 interface IMpeg2Demultiplexer;
4037 #endif /* __cplusplus */
4038 #endif
4039 
4040 #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
4041 #define __IMPEG2StreamIdMap_FWD_DEFINED__
4042 typedef interface IMPEG2StreamIdMap IMPEG2StreamIdMap;
4043 #ifdef __cplusplus
4044 interface IMPEG2StreamIdMap;
4045 #endif /* __cplusplus */
4046 #endif
4047 
4048 #ifndef __IOverlay_FWD_DEFINED__
4049 #define __IOverlay_FWD_DEFINED__
4050 typedef interface IOverlay IOverlay;
4051 #ifdef __cplusplus
4052 interface IOverlay;
4053 #endif /* __cplusplus */
4054 #endif
4055 
4056 #ifndef __IOverlayNotify_FWD_DEFINED__
4057 #define __IOverlayNotify_FWD_DEFINED__
4058 typedef interface IOverlayNotify IOverlayNotify;
4059 #ifdef __cplusplus
4060 interface IOverlayNotify;
4061 #endif /* __cplusplus */
4062 #endif
4063 
4064 #ifndef __IOverlayNotify2_FWD_DEFINED__
4065 #define __IOverlayNotify2_FWD_DEFINED__
4066 typedef interface IOverlayNotify2 IOverlayNotify2;
4067 #ifdef __cplusplus
4068 interface IOverlayNotify2;
4069 #endif /* __cplusplus */
4070 #endif
4071 
4072 #ifndef __IQualityControl_FWD_DEFINED__
4073 #define __IQualityControl_FWD_DEFINED__
4074 typedef interface IQualityControl IQualityControl;
4075 #ifdef __cplusplus
4076 interface IQualityControl;
4077 #endif /* __cplusplus */
4078 #endif
4079 
4080 #ifndef __ISeekingPassThru_FWD_DEFINED__
4081 #define __ISeekingPassThru_FWD_DEFINED__
4082 typedef interface ISeekingPassThru ISeekingPassThru;
4083 #ifdef __cplusplus
4084 interface ISeekingPassThru;
4085 #endif /* __cplusplus */
4086 #endif
4087 
4088 typedef enum tagAnalogVideoStandard {
4089     AnalogVideo_None = 0x0,
4090     AnalogVideo_NTSC_M = 0x1,
4091     AnalogVideo_NTSC_M_J = 0x2,
4092     AnalogVideo_NTSC_433 = 0x4,
4093     AnalogVideo_PAL_B = 0x10,
4094     AnalogVideo_PAL_D = 0x20,
4095     AnalogVideo_PAL_G = 0x40,
4096     AnalogVideo_PAL_H = 0x80,
4097     AnalogVideo_PAL_I = 0x100,
4098     AnalogVideo_PAL_M = 0x200,
4099     AnalogVideo_PAL_N = 0x400,
4100     AnalogVideo_PAL_60 = 0x800,
4101     AnalogVideo_SECAM_B = 0x1000,
4102     AnalogVideo_SECAM_D = 0x2000,
4103     AnalogVideo_SECAM_G = 0x4000,
4104     AnalogVideo_SECAM_H = 0x8000,
4105     AnalogVideo_SECAM_K = 0x10000,
4106     AnalogVideo_SECAM_K1 = 0x20000,
4107     AnalogVideo_SECAM_L = 0x40000,
4108     AnalogVideo_SECAM_L1 = 0x80000,
4109     AnalogVideo_PAL_N_COMBO = 0x100000,
4110     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,
4111     AnalogVideoMask_MCE_PAL = (((AnalogVideo_PAL_B | AnalogVideo_PAL_D) | AnalogVideo_PAL_G) | AnalogVideo_PAL_H) | AnalogVideo_PAL_I,
4112     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
4113 } AnalogVideoStandard;
4114 typedef enum tagTunerInputType {
4115     TunerInputCable = 0,
4116     TunerInputAntenna = 1
4117 } TunerInputType;
4118 typedef struct __WIDL_strmif_generated_name_00000002 {
4119     CLSID Clsid;
4120     LPWSTR Name;
4121 } REGFILTER;
4122 typedef enum tagTVAudioMode {
4123     AMTVAUDIO_MODE_MONO = 0x1,
4124     AMTVAUDIO_MODE_STEREO = 0x2,
4125     AMTVAUDIO_MODE_LANG_A = 0x10,
4126     AMTVAUDIO_MODE_LANG_B = 0x20,
4127     AMTVAUDIO_MODE_LANG_C = 0x40,
4128     AMTVAUDIO_PRESET_STEREO = 0x200,
4129     AMTVAUDIO_PRESET_LANG_A = 0x1000,
4130     AMTVAUDIO_PRESET_LANG_B = 0x2000,
4131     AMTVAUDIO_PRESET_LANG_C = 0x4000
4132 } TVAudioMode;
4133 /*****************************************************************************
4134  * IEnumRegFilters interface
4135  */
4136 #ifndef __IEnumRegFilters_INTERFACE_DEFINED__
4137 #define __IEnumRegFilters_INTERFACE_DEFINED__
4138 
4139 DEFINE_GUID(IID_IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4140 #if defined(__cplusplus) && !defined(CINTERFACE)
4141 MIDL_INTERFACE("56a868a4-0ad4-11ce-b03a-0020af0ba770")
4142 IEnumRegFilters : public IUnknown
4143 {
4144     virtual HRESULT STDMETHODCALLTYPE Next(
4145         ULONG cFilters,
4146         REGFILTER **apRegFilter,
4147         ULONG *pcFetched) = 0;
4148 
4149     virtual HRESULT STDMETHODCALLTYPE Skip(
4150         ULONG cFilters) = 0;
4151 
4152     virtual HRESULT STDMETHODCALLTYPE Reset(
4153         ) = 0;
4154 
4155     virtual HRESULT STDMETHODCALLTYPE Clone(
4156         IEnumRegFilters **ppEnum) = 0;
4157 
4158 };
4159 #ifdef __CRT_UUID_DECL
4160 __CRT_UUID_DECL(IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
4161 #endif
4162 #else
4163 typedef struct IEnumRegFiltersVtbl {
4164     BEGIN_INTERFACE
4165 
4166     /*** IUnknown methods ***/
4167     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4168         IEnumRegFilters *This,
4169         REFIID riid,
4170         void **ppvObject);
4171 
4172     ULONG (STDMETHODCALLTYPE *AddRef)(
4173         IEnumRegFilters *This);
4174 
4175     ULONG (STDMETHODCALLTYPE *Release)(
4176         IEnumRegFilters *This);
4177 
4178     /*** IEnumRegFilters methods ***/
4179     HRESULT (STDMETHODCALLTYPE *Next)(
4180         IEnumRegFilters *This,
4181         ULONG cFilters,
4182         REGFILTER **apRegFilter,
4183         ULONG *pcFetched);
4184 
4185     HRESULT (STDMETHODCALLTYPE *Skip)(
4186         IEnumRegFilters *This,
4187         ULONG cFilters);
4188 
4189     HRESULT (STDMETHODCALLTYPE *Reset)(
4190         IEnumRegFilters *This);
4191 
4192     HRESULT (STDMETHODCALLTYPE *Clone)(
4193         IEnumRegFilters *This,
4194         IEnumRegFilters **ppEnum);
4195 
4196     END_INTERFACE
4197 } IEnumRegFiltersVtbl;
4198 
4199 interface IEnumRegFilters {
4200     CONST_VTBL IEnumRegFiltersVtbl* lpVtbl;
4201 };
4202 
4203 #ifdef COBJMACROS
4204 #ifndef WIDL_C_INLINE_WRAPPERS
4205 /*** IUnknown methods ***/
4206 #define IEnumRegFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4207 #define IEnumRegFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
4208 #define IEnumRegFilters_Release(This) (This)->lpVtbl->Release(This)
4209 /*** IEnumRegFilters methods ***/
4210 #define IEnumRegFilters_Next(This,cFilters,apRegFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched)
4211 #define IEnumRegFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
4212 #define IEnumRegFilters_Reset(This) (This)->lpVtbl->Reset(This)
4213 #define IEnumRegFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
4214 #else
4215 /*** IUnknown methods ***/
4216 static FORCEINLINE HRESULT IEnumRegFilters_QueryInterface(IEnumRegFilters* This,REFIID riid,void **ppvObject) {
4217     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4218 }
4219 static FORCEINLINE ULONG IEnumRegFilters_AddRef(IEnumRegFilters* This) {
4220     return This->lpVtbl->AddRef(This);
4221 }
4222 static FORCEINLINE ULONG IEnumRegFilters_Release(IEnumRegFilters* This) {
4223     return This->lpVtbl->Release(This);
4224 }
4225 /*** IEnumRegFilters methods ***/
4226 static FORCEINLINE HRESULT IEnumRegFilters_Next(IEnumRegFilters* This,ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched) {
4227     return This->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched);
4228 }
4229 static FORCEINLINE HRESULT IEnumRegFilters_Skip(IEnumRegFilters* This,ULONG cFilters) {
4230     return This->lpVtbl->Skip(This,cFilters);
4231 }
4232 static FORCEINLINE HRESULT IEnumRegFilters_Reset(IEnumRegFilters* This) {
4233     return This->lpVtbl->Reset(This);
4234 }
4235 static FORCEINLINE HRESULT IEnumRegFilters_Clone(IEnumRegFilters* This,IEnumRegFilters **ppEnum) {
4236     return This->lpVtbl->Clone(This,ppEnum);
4237 }
4238 #endif
4239 #endif
4240 
4241 #endif
4242 
4243 
4244 #endif  /* __IEnumRegFilters_INTERFACE_DEFINED__ */
4245 
4246 typedef IEnumRegFilters *PENUMREGFILTERS;
4247 /*****************************************************************************
4248  * IFilterMapper interface
4249  */
4250 #ifndef __IFilterMapper_INTERFACE_DEFINED__
4251 #define __IFilterMapper_INTERFACE_DEFINED__
4252 
4253 enum {
4254     MERIT_PREFERRED = 0x800000,
4255     MERIT_NORMAL = 0x600000,
4256     MERIT_UNLIKELY = 0x400000,
4257     MERIT_DO_NOT_USE = 0x200000,
4258     MERIT_SW_COMPRESSOR = 0x100000,
4259     MERIT_HW_COMPRESSOR = 0x100050
4260 };
4261 DEFINE_GUID(IID_IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4262 #if defined(__cplusplus) && !defined(CINTERFACE)
4263 MIDL_INTERFACE("56a868a3-0ad4-11ce-b03a-0020af0ba770")
4264 IFilterMapper : public IUnknown
4265 {
4266     virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
4267         CLSID clsid,
4268         LPCWSTR Name,
4269         DWORD dwMerit) = 0;
4270 
4271     virtual HRESULT STDMETHODCALLTYPE RegisterFilterInstance(
4272         CLSID clsid,
4273         LPCWSTR Name,
4274         CLSID *MRId) = 0;
4275 
4276     virtual HRESULT STDMETHODCALLTYPE RegisterPin(
4277         CLSID Filter,
4278         LPCWSTR Name,
4279         WINBOOL bRendered,
4280         WINBOOL bOutput,
4281         WINBOOL bZero,
4282         WINBOOL bMany,
4283         CLSID ConnectsToFilter,
4284         LPCWSTR ConnectsToPin) = 0;
4285 
4286     virtual HRESULT STDMETHODCALLTYPE RegisterPinType(
4287         CLSID clsFilter,
4288         LPCWSTR strName,
4289         CLSID clsMajorType,
4290         CLSID clsSubType) = 0;
4291 
4292     virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
4293         CLSID Filter) = 0;
4294 
4295     virtual HRESULT STDMETHODCALLTYPE UnregisterFilterInstance(
4296         CLSID MRId) = 0;
4297 
4298     virtual HRESULT STDMETHODCALLTYPE UnregisterPin(
4299         CLSID Filter,
4300         LPCWSTR Name) = 0;
4301 
4302     virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
4303         IEnumRegFilters **ppEnum,
4304         DWORD dwMerit,
4305         WINBOOL bInputNeeded,
4306         CLSID clsInMaj,
4307         CLSID clsInSub,
4308         WINBOOL bRender,
4309         WINBOOL bOututNeeded,
4310         CLSID clsOutMaj,
4311         CLSID clsOutSub) = 0;
4312 
4313 };
4314 #ifdef __CRT_UUID_DECL
4315 __CRT_UUID_DECL(IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
4316 #endif
4317 #else
4318 typedef struct IFilterMapperVtbl {
4319     BEGIN_INTERFACE
4320 
4321     /*** IUnknown methods ***/
4322     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4323         IFilterMapper *This,
4324         REFIID riid,
4325         void **ppvObject);
4326 
4327     ULONG (STDMETHODCALLTYPE *AddRef)(
4328         IFilterMapper *This);
4329 
4330     ULONG (STDMETHODCALLTYPE *Release)(
4331         IFilterMapper *This);
4332 
4333     /*** IFilterMapper methods ***/
4334     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
4335         IFilterMapper *This,
4336         CLSID clsid,
4337         LPCWSTR Name,
4338         DWORD dwMerit);
4339 
4340     HRESULT (STDMETHODCALLTYPE *RegisterFilterInstance)(
4341         IFilterMapper *This,
4342         CLSID clsid,
4343         LPCWSTR Name,
4344         CLSID *MRId);
4345 
4346     HRESULT (STDMETHODCALLTYPE *RegisterPin)(
4347         IFilterMapper *This,
4348         CLSID Filter,
4349         LPCWSTR Name,
4350         WINBOOL bRendered,
4351         WINBOOL bOutput,
4352         WINBOOL bZero,
4353         WINBOOL bMany,
4354         CLSID ConnectsToFilter,
4355         LPCWSTR ConnectsToPin);
4356 
4357     HRESULT (STDMETHODCALLTYPE *RegisterPinType)(
4358         IFilterMapper *This,
4359         CLSID clsFilter,
4360         LPCWSTR strName,
4361         CLSID clsMajorType,
4362         CLSID clsSubType);
4363 
4364     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
4365         IFilterMapper *This,
4366         CLSID Filter);
4367 
4368     HRESULT (STDMETHODCALLTYPE *UnregisterFilterInstance)(
4369         IFilterMapper *This,
4370         CLSID MRId);
4371 
4372     HRESULT (STDMETHODCALLTYPE *UnregisterPin)(
4373         IFilterMapper *This,
4374         CLSID Filter,
4375         LPCWSTR Name);
4376 
4377     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
4378         IFilterMapper *This,
4379         IEnumRegFilters **ppEnum,
4380         DWORD dwMerit,
4381         WINBOOL bInputNeeded,
4382         CLSID clsInMaj,
4383         CLSID clsInSub,
4384         WINBOOL bRender,
4385         WINBOOL bOututNeeded,
4386         CLSID clsOutMaj,
4387         CLSID clsOutSub);
4388 
4389     END_INTERFACE
4390 } IFilterMapperVtbl;
4391 
4392 interface IFilterMapper {
4393     CONST_VTBL IFilterMapperVtbl* lpVtbl;
4394 };
4395 
4396 #ifdef COBJMACROS
4397 #ifndef WIDL_C_INLINE_WRAPPERS
4398 /*** IUnknown methods ***/
4399 #define IFilterMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4400 #define IFilterMapper_AddRef(This) (This)->lpVtbl->AddRef(This)
4401 #define IFilterMapper_Release(This) (This)->lpVtbl->Release(This)
4402 /*** IFilterMapper methods ***/
4403 #define IFilterMapper_RegisterFilter(This,clsid,Name,dwMerit) (This)->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit)
4404 #define IFilterMapper_RegisterFilterInstance(This,clsid,Name,MRId) (This)->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId)
4405 #define IFilterMapper_RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin) (This)->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin)
4406 #define IFilterMapper_RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType) (This)->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType)
4407 #define IFilterMapper_UnregisterFilter(This,Filter) (This)->lpVtbl->UnregisterFilter(This,Filter)
4408 #define IFilterMapper_UnregisterFilterInstance(This,MRId) (This)->lpVtbl->UnregisterFilterInstance(This,MRId)
4409 #define IFilterMapper_UnregisterPin(This,Filter,Name) (This)->lpVtbl->UnregisterPin(This,Filter,Name)
4410 #define IFilterMapper_EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub)
4411 #else
4412 /*** IUnknown methods ***/
4413 static FORCEINLINE HRESULT IFilterMapper_QueryInterface(IFilterMapper* This,REFIID riid,void **ppvObject) {
4414     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4415 }
4416 static FORCEINLINE ULONG IFilterMapper_AddRef(IFilterMapper* This) {
4417     return This->lpVtbl->AddRef(This);
4418 }
4419 static FORCEINLINE ULONG IFilterMapper_Release(IFilterMapper* This) {
4420     return This->lpVtbl->Release(This);
4421 }
4422 /*** IFilterMapper methods ***/
4423 static FORCEINLINE HRESULT IFilterMapper_RegisterFilter(IFilterMapper* This,CLSID clsid,LPCWSTR Name,DWORD dwMerit) {
4424     return This->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit);
4425 }
4426 static FORCEINLINE HRESULT IFilterMapper_RegisterFilterInstance(IFilterMapper* This,CLSID clsid,LPCWSTR Name,CLSID *MRId) {
4427     return This->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId);
4428 }
4429 static FORCEINLINE HRESULT IFilterMapper_RegisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name,WINBOOL bRendered,WINBOOL bOutput,WINBOOL bZero,WINBOOL bMany,CLSID ConnectsToFilter,LPCWSTR ConnectsToPin) {
4430     return This->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin);
4431 }
4432 static FORCEINLINE HRESULT IFilterMapper_RegisterPinType(IFilterMapper* This,CLSID clsFilter,LPCWSTR strName,CLSID clsMajorType,CLSID clsSubType) {
4433     return This->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType);
4434 }
4435 static FORCEINLINE HRESULT IFilterMapper_UnregisterFilter(IFilterMapper* This,CLSID Filter) {
4436     return This->lpVtbl->UnregisterFilter(This,Filter);
4437 }
4438 static FORCEINLINE HRESULT IFilterMapper_UnregisterFilterInstance(IFilterMapper* This,CLSID MRId) {
4439     return This->lpVtbl->UnregisterFilterInstance(This,MRId);
4440 }
4441 static FORCEINLINE HRESULT IFilterMapper_UnregisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name) {
4442     return This->lpVtbl->UnregisterPin(This,Filter,Name);
4443 }
4444 static FORCEINLINE HRESULT IFilterMapper_EnumMatchingFilters(IFilterMapper* This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOututNeeded,CLSID clsOutMaj,CLSID clsOutSub) {
4445     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub);
4446 }
4447 #endif
4448 #endif
4449 
4450 #endif
4451 
4452 
4453 #endif  /* __IFilterMapper_INTERFACE_DEFINED__ */
4454 
4455 typedef struct __WIDL_strmif_generated_name_00000003 {
4456     const CLSID *clsMajorType;
4457     const CLSID *clsMinorType;
4458 } REGPINTYPES;
4459 typedef struct __WIDL_strmif_generated_name_00000004 {
4460     LPWSTR strName;
4461     WINBOOL bRendered;
4462     WINBOOL bOutput;
4463     WINBOOL bZero;
4464     WINBOOL bMany;
4465     const CLSID *clsConnectsToFilter;
4466     const WCHAR *strConnectsToPin;
4467     UINT nMediaTypes;
4468     const REGPINTYPES *lpMediaType;
4469 } REGFILTERPINS;
4470 typedef struct __WIDL_strmif_generated_name_00000005 {
4471     CLSID clsMedium;
4472     DWORD dw1;
4473     DWORD dw2;
4474 } REGPINMEDIUM;
4475 enum {
4476     REG_PINFLAG_B_ZERO = 0x1,
4477     REG_PINFLAG_B_RENDERER = 0x2,
4478     REG_PINFLAG_B_MANY = 0x4,
4479     REG_PINFLAG_B_OUTPUT = 0x8
4480 };
4481 typedef struct __WIDL_strmif_generated_name_00000006 {
4482     DWORD dwFlags;
4483     UINT cInstances;
4484     UINT nMediaTypes;
4485     const REGPINTYPES *lpMediaType;
4486     UINT nMediums;
4487     const REGPINMEDIUM *lpMedium;
4488     const CLSID *clsPinCategory;
4489 } REGFILTERPINS2;
4490 typedef struct __WIDL_strmif_generated_name_00000007 {
4491     DWORD dwVersion;
4492     DWORD dwMerit;
4493     __C89_NAMELESS union {
4494         __C89_NAMELESS struct {
4495             ULONG cPins;
4496             const REGFILTERPINS *rgPins;
4497         } __C89_NAMELESSSTRUCTNAME1;
4498         __C89_NAMELESS struct {
4499             ULONG cPins2;
4500             const REGFILTERPINS2 *rgPins2;
4501         } __C89_NAMELESSSTRUCTNAME2;
4502     } __C89_NAMELESSUNIONNAME;
4503 } REGFILTER2;
4504 /*****************************************************************************
4505  * IFilterMapper2 interface
4506  */
4507 #ifndef __IFilterMapper2_INTERFACE_DEFINED__
4508 #define __IFilterMapper2_INTERFACE_DEFINED__
4509 
4510 DEFINE_GUID(IID_IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
4511 #if defined(__cplusplus) && !defined(CINTERFACE)
4512 MIDL_INTERFACE("b79bb0b0-33c1-11d1-abe1-00a0c905f375")
4513 IFilterMapper2 : public IUnknown
4514 {
4515     virtual HRESULT STDMETHODCALLTYPE CreateCategory(
4516         REFCLSID clsidCategory,
4517         DWORD dwCategoryMerit,
4518         LPCWSTR Description) = 0;
4519 
4520     virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
4521         const CLSID *pclsidCategory,
4522         LPCOLESTR szInstance,
4523         REFCLSID Filter) = 0;
4524 
4525     virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
4526         REFCLSID clsidFilter,
4527         LPCWSTR Name,
4528         IMoniker **ppMoniker,
4529         const CLSID *pclsidCategory,
4530         LPCOLESTR szInstance,
4531         const REGFILTER2 *prf2) = 0;
4532 
4533     virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
4534         IEnumMoniker **ppEnum,
4535         DWORD dwFlags,
4536         WINBOOL bExactMatch,
4537         DWORD dwMerit,
4538         WINBOOL bInputNeeded,
4539         DWORD cInputTypes,
4540         const GUID *pInputTypes,
4541         const REGPINMEDIUM *pMedIn,
4542         const CLSID *pPinCategoryIn,
4543         WINBOOL bRender,
4544         WINBOOL bOutputNeeded,
4545         DWORD cOutputTypes,
4546         const GUID *pOutputTypes,
4547         const REGPINMEDIUM *pMedOut,
4548         const CLSID *pPinCategoryOut) = 0;
4549 
4550 };
4551 #ifdef __CRT_UUID_DECL
4552 __CRT_UUID_DECL(IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
4553 #endif
4554 #else
4555 typedef struct IFilterMapper2Vtbl {
4556     BEGIN_INTERFACE
4557 
4558     /*** IUnknown methods ***/
4559     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4560         IFilterMapper2 *This,
4561         REFIID riid,
4562         void **ppvObject);
4563 
4564     ULONG (STDMETHODCALLTYPE *AddRef)(
4565         IFilterMapper2 *This);
4566 
4567     ULONG (STDMETHODCALLTYPE *Release)(
4568         IFilterMapper2 *This);
4569 
4570     /*** IFilterMapper2 methods ***/
4571     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
4572         IFilterMapper2 *This,
4573         REFCLSID clsidCategory,
4574         DWORD dwCategoryMerit,
4575         LPCWSTR Description);
4576 
4577     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
4578         IFilterMapper2 *This,
4579         const CLSID *pclsidCategory,
4580         LPCOLESTR szInstance,
4581         REFCLSID Filter);
4582 
4583     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
4584         IFilterMapper2 *This,
4585         REFCLSID clsidFilter,
4586         LPCWSTR Name,
4587         IMoniker **ppMoniker,
4588         const CLSID *pclsidCategory,
4589         LPCOLESTR szInstance,
4590         const REGFILTER2 *prf2);
4591 
4592     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
4593         IFilterMapper2 *This,
4594         IEnumMoniker **ppEnum,
4595         DWORD dwFlags,
4596         WINBOOL bExactMatch,
4597         DWORD dwMerit,
4598         WINBOOL bInputNeeded,
4599         DWORD cInputTypes,
4600         const GUID *pInputTypes,
4601         const REGPINMEDIUM *pMedIn,
4602         const CLSID *pPinCategoryIn,
4603         WINBOOL bRender,
4604         WINBOOL bOutputNeeded,
4605         DWORD cOutputTypes,
4606         const GUID *pOutputTypes,
4607         const REGPINMEDIUM *pMedOut,
4608         const CLSID *pPinCategoryOut);
4609 
4610     END_INTERFACE
4611 } IFilterMapper2Vtbl;
4612 
4613 interface IFilterMapper2 {
4614     CONST_VTBL IFilterMapper2Vtbl* lpVtbl;
4615 };
4616 
4617 #ifdef COBJMACROS
4618 #ifndef WIDL_C_INLINE_WRAPPERS
4619 /*** IUnknown methods ***/
4620 #define IFilterMapper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4621 #define IFilterMapper2_AddRef(This) (This)->lpVtbl->AddRef(This)
4622 #define IFilterMapper2_Release(This) (This)->lpVtbl->Release(This)
4623 /*** IFilterMapper2 methods ***/
4624 #define IFilterMapper2_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
4625 #define IFilterMapper2_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
4626 #define IFilterMapper2_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
4627 #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)
4628 #else
4629 /*** IUnknown methods ***/
4630 static FORCEINLINE HRESULT IFilterMapper2_QueryInterface(IFilterMapper2* This,REFIID riid,void **ppvObject) {
4631     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4632 }
4633 static FORCEINLINE ULONG IFilterMapper2_AddRef(IFilterMapper2* This) {
4634     return This->lpVtbl->AddRef(This);
4635 }
4636 static FORCEINLINE ULONG IFilterMapper2_Release(IFilterMapper2* This) {
4637     return This->lpVtbl->Release(This);
4638 }
4639 /*** IFilterMapper2 methods ***/
4640 static FORCEINLINE HRESULT IFilterMapper2_CreateCategory(IFilterMapper2* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
4641     return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
4642 }
4643 static FORCEINLINE HRESULT IFilterMapper2_UnregisterFilter(IFilterMapper2* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
4644     return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
4645 }
4646 static FORCEINLINE HRESULT IFilterMapper2_RegisterFilter(IFilterMapper2* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) {
4647     return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2);
4648 }
4649 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) {
4650     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut);
4651 }
4652 #endif
4653 #endif
4654 
4655 #endif
4656 
4657 
4658 #endif  /* __IFilterMapper2_INTERFACE_DEFINED__ */
4659 
4660 /*****************************************************************************
4661  * IFilterMapper3 interface
4662  */
4663 #ifndef __IFilterMapper3_INTERFACE_DEFINED__
4664 #define __IFilterMapper3_INTERFACE_DEFINED__
4665 
4666 DEFINE_GUID(IID_IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
4667 #if defined(__cplusplus) && !defined(CINTERFACE)
4668 MIDL_INTERFACE("b79bb0b1-33c1-11d1-abe1-00a0c905f375")
4669 IFilterMapper3 : public IFilterMapper2
4670 {
4671     virtual HRESULT STDMETHODCALLTYPE GetICreateDevEnum(
4672         ICreateDevEnum **ppEnum) = 0;
4673 
4674 };
4675 #ifdef __CRT_UUID_DECL
4676 __CRT_UUID_DECL(IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
4677 #endif
4678 #else
4679 typedef struct IFilterMapper3Vtbl {
4680     BEGIN_INTERFACE
4681 
4682     /*** IUnknown methods ***/
4683     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4684         IFilterMapper3 *This,
4685         REFIID riid,
4686         void **ppvObject);
4687 
4688     ULONG (STDMETHODCALLTYPE *AddRef)(
4689         IFilterMapper3 *This);
4690 
4691     ULONG (STDMETHODCALLTYPE *Release)(
4692         IFilterMapper3 *This);
4693 
4694     /*** IFilterMapper2 methods ***/
4695     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
4696         IFilterMapper3 *This,
4697         REFCLSID clsidCategory,
4698         DWORD dwCategoryMerit,
4699         LPCWSTR Description);
4700 
4701     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
4702         IFilterMapper3 *This,
4703         const CLSID *pclsidCategory,
4704         LPCOLESTR szInstance,
4705         REFCLSID Filter);
4706 
4707     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
4708         IFilterMapper3 *This,
4709         REFCLSID clsidFilter,
4710         LPCWSTR Name,
4711         IMoniker **ppMoniker,
4712         const CLSID *pclsidCategory,
4713         LPCOLESTR szInstance,
4714         const REGFILTER2 *prf2);
4715 
4716     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
4717         IFilterMapper3 *This,
4718         IEnumMoniker **ppEnum,
4719         DWORD dwFlags,
4720         WINBOOL bExactMatch,
4721         DWORD dwMerit,
4722         WINBOOL bInputNeeded,
4723         DWORD cInputTypes,
4724         const GUID *pInputTypes,
4725         const REGPINMEDIUM *pMedIn,
4726         const CLSID *pPinCategoryIn,
4727         WINBOOL bRender,
4728         WINBOOL bOutputNeeded,
4729         DWORD cOutputTypes,
4730         const GUID *pOutputTypes,
4731         const REGPINMEDIUM *pMedOut,
4732         const CLSID *pPinCategoryOut);
4733 
4734     /*** IFilterMapper3 methods ***/
4735     HRESULT (STDMETHODCALLTYPE *GetICreateDevEnum)(
4736         IFilterMapper3 *This,
4737         ICreateDevEnum **ppEnum);
4738 
4739     END_INTERFACE
4740 } IFilterMapper3Vtbl;
4741 
4742 interface IFilterMapper3 {
4743     CONST_VTBL IFilterMapper3Vtbl* lpVtbl;
4744 };
4745 
4746 #ifdef COBJMACROS
4747 #ifndef WIDL_C_INLINE_WRAPPERS
4748 /*** IUnknown methods ***/
4749 #define IFilterMapper3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4750 #define IFilterMapper3_AddRef(This) (This)->lpVtbl->AddRef(This)
4751 #define IFilterMapper3_Release(This) (This)->lpVtbl->Release(This)
4752 /*** IFilterMapper2 methods ***/
4753 #define IFilterMapper3_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
4754 #define IFilterMapper3_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
4755 #define IFilterMapper3_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
4756 #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)
4757 /*** IFilterMapper3 methods ***/
4758 #define IFilterMapper3_GetICreateDevEnum(This,ppEnum) (This)->lpVtbl->GetICreateDevEnum(This,ppEnum)
4759 #else
4760 /*** IUnknown methods ***/
4761 static FORCEINLINE HRESULT IFilterMapper3_QueryInterface(IFilterMapper3* This,REFIID riid,void **ppvObject) {
4762     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4763 }
4764 static FORCEINLINE ULONG IFilterMapper3_AddRef(IFilterMapper3* This) {
4765     return This->lpVtbl->AddRef(This);
4766 }
4767 static FORCEINLINE ULONG IFilterMapper3_Release(IFilterMapper3* This) {
4768     return This->lpVtbl->Release(This);
4769 }
4770 /*** IFilterMapper2 methods ***/
4771 static FORCEINLINE HRESULT IFilterMapper3_CreateCategory(IFilterMapper3* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
4772     return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
4773 }
4774 static FORCEINLINE HRESULT IFilterMapper3_UnregisterFilter(IFilterMapper3* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
4775     return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
4776 }
4777 static FORCEINLINE HRESULT IFilterMapper3_RegisterFilter(IFilterMapper3* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) {
4778     return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2);
4779 }
4780 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) {
4781     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut);
4782 }
4783 /*** IFilterMapper3 methods ***/
4784 static FORCEINLINE HRESULT IFilterMapper3_GetICreateDevEnum(IFilterMapper3* This,ICreateDevEnum **ppEnum) {
4785     return This->lpVtbl->GetICreateDevEnum(This,ppEnum);
4786 }
4787 #endif
4788 #endif
4789 
4790 #endif
4791 
4792 
4793 #endif  /* __IFilterMapper3_INTERFACE_DEFINED__ */
4794 
4795 typedef enum tagQualityMessageType {
4796     Famine = 0,
4797     Flood = 1
4798 } QualityMessageType;
4799 typedef struct tagQuality {
4800     QualityMessageType Type;
4801     LONG Proportion;
4802     REFERENCE_TIME Late;
4803     REFERENCE_TIME TimeStamp;
4804 } Quality;
4805 typedef IQualityControl *PQUALITYCONTROL;
4806 /*****************************************************************************
4807  * IQualityControl interface
4808  */
4809 #ifndef __IQualityControl_INTERFACE_DEFINED__
4810 #define __IQualityControl_INTERFACE_DEFINED__
4811 
4812 DEFINE_GUID(IID_IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4813 #if defined(__cplusplus) && !defined(CINTERFACE)
4814 MIDL_INTERFACE("56a868a5-0ad4-11ce-b03a-0020af0ba770")
4815 IQualityControl : public IUnknown
4816 {
4817     virtual HRESULT STDMETHODCALLTYPE Notify(
4818         IBaseFilter *pSelf,
4819         Quality q) = 0;
4820 
4821     virtual HRESULT STDMETHODCALLTYPE SetSink(
4822         IQualityControl *piqc) = 0;
4823 
4824 };
4825 #ifdef __CRT_UUID_DECL
4826 __CRT_UUID_DECL(IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
4827 #endif
4828 #else
4829 typedef struct IQualityControlVtbl {
4830     BEGIN_INTERFACE
4831 
4832     /*** IUnknown methods ***/
4833     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4834         IQualityControl *This,
4835         REFIID riid,
4836         void **ppvObject);
4837 
4838     ULONG (STDMETHODCALLTYPE *AddRef)(
4839         IQualityControl *This);
4840 
4841     ULONG (STDMETHODCALLTYPE *Release)(
4842         IQualityControl *This);
4843 
4844     /*** IQualityControl methods ***/
4845     HRESULT (STDMETHODCALLTYPE *Notify)(
4846         IQualityControl *This,
4847         IBaseFilter *pSelf,
4848         Quality q);
4849 
4850     HRESULT (STDMETHODCALLTYPE *SetSink)(
4851         IQualityControl *This,
4852         IQualityControl *piqc);
4853 
4854     END_INTERFACE
4855 } IQualityControlVtbl;
4856 
4857 interface IQualityControl {
4858     CONST_VTBL IQualityControlVtbl* lpVtbl;
4859 };
4860 
4861 #ifdef COBJMACROS
4862 #ifndef WIDL_C_INLINE_WRAPPERS
4863 /*** IUnknown methods ***/
4864 #define IQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4865 #define IQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
4866 #define IQualityControl_Release(This) (This)->lpVtbl->Release(This)
4867 /*** IQualityControl methods ***/
4868 #define IQualityControl_Notify(This,pSelf,q) (This)->lpVtbl->Notify(This,pSelf,q)
4869 #define IQualityControl_SetSink(This,piqc) (This)->lpVtbl->SetSink(This,piqc)
4870 #else
4871 /*** IUnknown methods ***/
4872 static FORCEINLINE HRESULT IQualityControl_QueryInterface(IQualityControl* This,REFIID riid,void **ppvObject) {
4873     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4874 }
4875 static FORCEINLINE ULONG IQualityControl_AddRef(IQualityControl* This) {
4876     return This->lpVtbl->AddRef(This);
4877 }
4878 static FORCEINLINE ULONG IQualityControl_Release(IQualityControl* This) {
4879     return This->lpVtbl->Release(This);
4880 }
4881 /*** IQualityControl methods ***/
4882 static FORCEINLINE HRESULT IQualityControl_Notify(IQualityControl* This,IBaseFilter *pSelf,Quality q) {
4883     return This->lpVtbl->Notify(This,pSelf,q);
4884 }
4885 static FORCEINLINE HRESULT IQualityControl_SetSink(IQualityControl* This,IQualityControl *piqc) {
4886     return This->lpVtbl->SetSink(This,piqc);
4887 }
4888 #endif
4889 #endif
4890 
4891 #endif
4892 
4893 
4894 #endif  /* __IQualityControl_INTERFACE_DEFINED__ */
4895 
4896 enum {
4897     CK_NOCOLORKEY = 0x0,
4898     CK_INDEX = 0x1,
4899     CK_RGB = 0x2
4900 };
4901 typedef struct tagCOLORKEY {
4902     DWORD KeyType;
4903     DWORD PaletteIndex;
4904     COLORREF LowColorValue;
4905     COLORREF HighColorValue;
4906 } COLORKEY;
4907 enum {
4908     ADVISE_NONE = 0x0,
4909     ADVISE_CLIPPING = 0x1,
4910     ADVISE_PALETTE = 0x2,
4911     ADVISE_COLORKEY = 0x4,
4912     ADVISE_POSITION = 0x8,
4913     ADVISE_DISPLAY_CHANGE = 0x10
4914 };
4915 #define ADVISE_ALL (((ADVISE_CLIPPING | ADVISE_PALETTE) | ADVISE_COLORKEY) | ADVISE_POSITION)
4916 
4917 #define ADVISE_ALL2 (ADVISE_ALL | ADVISE_DISPLAY_CHANGE)
4918 
4919 #ifndef _WINGDI_
4920 typedef struct _RGNDATAHEADER {
4921     DWORD dwSize;
4922     DWORD iType;
4923     DWORD nCount;
4924     DWORD nRgnSize;
4925     RECT rcBound;
4926 } RGNDATAHEADER;
4927 typedef struct _RGNDATA {
4928     RGNDATAHEADER rdh;
4929     char Buffer[1];
4930 } RGNDATA;
4931 #endif /* _WINGDI_ */
4932 /*****************************************************************************
4933  * IOverlayNotify interface
4934  */
4935 #ifndef __IOverlayNotify_INTERFACE_DEFINED__
4936 #define __IOverlayNotify_INTERFACE_DEFINED__
4937 
4938 DEFINE_GUID(IID_IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4939 #if defined(__cplusplus) && !defined(CINTERFACE)
4940 MIDL_INTERFACE("56a868a0-0ad4-11ce-b03a-0020af0ba770")
4941 IOverlayNotify : public IUnknown
4942 {
4943     virtual HRESULT STDMETHODCALLTYPE OnPaletteChange(
4944         DWORD dwColors,
4945         const PALETTEENTRY *pPalette) = 0;
4946 
4947     virtual HRESULT STDMETHODCALLTYPE OnClipChange(
4948         const RECT *pSourceRect,
4949         const RECT *pDestinationRect,
4950         const RGNDATA *pRgnData) = 0;
4951 
4952     virtual HRESULT STDMETHODCALLTYPE OnColorKeyChange(
4953         const COLORKEY *pColorKey) = 0;
4954 
4955     virtual HRESULT STDMETHODCALLTYPE OnPositionChange(
4956         const RECT *pSourceRect,
4957         const RECT *pDestinationRect) = 0;
4958 
4959 };
4960 #ifdef __CRT_UUID_DECL
4961 __CRT_UUID_DECL(IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
4962 #endif
4963 #else
4964 typedef struct IOverlayNotifyVtbl {
4965     BEGIN_INTERFACE
4966 
4967     /*** IUnknown methods ***/
4968     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4969         IOverlayNotify *This,
4970         REFIID riid,
4971         void **ppvObject);
4972 
4973     ULONG (STDMETHODCALLTYPE *AddRef)(
4974         IOverlayNotify *This);
4975 
4976     ULONG (STDMETHODCALLTYPE *Release)(
4977         IOverlayNotify *This);
4978 
4979     /*** IOverlayNotify methods ***/
4980     HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
4981         IOverlayNotify *This,
4982         DWORD dwColors,
4983         const PALETTEENTRY *pPalette);
4984 
4985     HRESULT (STDMETHODCALLTYPE *OnClipChange)(
4986         IOverlayNotify *This,
4987         const RECT *pSourceRect,
4988         const RECT *pDestinationRect,
4989         const RGNDATA *pRgnData);
4990 
4991     HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
4992         IOverlayNotify *This,
4993         const COLORKEY *pColorKey);
4994 
4995     HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
4996         IOverlayNotify *This,
4997         const RECT *pSourceRect,
4998         const RECT *pDestinationRect);
4999 
5000     END_INTERFACE
5001 } IOverlayNotifyVtbl;
5002 
5003 interface IOverlayNotify {
5004     CONST_VTBL IOverlayNotifyVtbl* lpVtbl;
5005 };
5006 
5007 #ifdef COBJMACROS
5008 #ifndef WIDL_C_INLINE_WRAPPERS
5009 /*** IUnknown methods ***/
5010 #define IOverlayNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5011 #define IOverlayNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
5012 #define IOverlayNotify_Release(This) (This)->lpVtbl->Release(This)
5013 /*** IOverlayNotify methods ***/
5014 #define IOverlayNotify_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
5015 #define IOverlayNotify_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
5016 #define IOverlayNotify_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
5017 #define IOverlayNotify_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
5018 #else
5019 /*** IUnknown methods ***/
5020 static FORCEINLINE HRESULT IOverlayNotify_QueryInterface(IOverlayNotify* This,REFIID riid,void **ppvObject) {
5021     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5022 }
5023 static FORCEINLINE ULONG IOverlayNotify_AddRef(IOverlayNotify* This) {
5024     return This->lpVtbl->AddRef(This);
5025 }
5026 static FORCEINLINE ULONG IOverlayNotify_Release(IOverlayNotify* This) {
5027     return This->lpVtbl->Release(This);
5028 }
5029 /*** IOverlayNotify methods ***/
5030 static FORCEINLINE HRESULT IOverlayNotify_OnPaletteChange(IOverlayNotify* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
5031     return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
5032 }
5033 static FORCEINLINE HRESULT IOverlayNotify_OnClipChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) {
5034     return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData);
5035 }
5036 static FORCEINLINE HRESULT IOverlayNotify_OnColorKeyChange(IOverlayNotify* This,const COLORKEY *pColorKey) {
5037     return This->lpVtbl->OnColorKeyChange(This,pColorKey);
5038 }
5039 static FORCEINLINE HRESULT IOverlayNotify_OnPositionChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
5040     return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
5041 }
5042 #endif
5043 #endif
5044 
5045 #endif
5046 
5047 
5048 #endif  /* __IOverlayNotify_INTERFACE_DEFINED__ */
5049 
5050 typedef IOverlayNotify *POVERLAYNOTIFY;
5051 #if 0
5052 typedef HANDLE HMONITOR;
5053 #endif /* 0 */
5054 /*****************************************************************************
5055  * IOverlayNotify2 interface
5056  */
5057 #ifndef __IOverlayNotify2_INTERFACE_DEFINED__
5058 #define __IOverlayNotify2_INTERFACE_DEFINED__
5059 
5060 DEFINE_GUID(IID_IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96);
5061 #if defined(__cplusplus) && !defined(CINTERFACE)
5062 MIDL_INTERFACE("680efa10-d535-11d1-87c8-00a0c9223196")
5063 IOverlayNotify2 : public IOverlayNotify
5064 {
5065     virtual HRESULT STDMETHODCALLTYPE OnDisplayChange(
5066         HMONITOR hMonitor) = 0;
5067 
5068 };
5069 #ifdef __CRT_UUID_DECL
5070 __CRT_UUID_DECL(IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96)
5071 #endif
5072 #else
5073 typedef struct IOverlayNotify2Vtbl {
5074     BEGIN_INTERFACE
5075 
5076     /*** IUnknown methods ***/
5077     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5078         IOverlayNotify2 *This,
5079         REFIID riid,
5080         void **ppvObject);
5081 
5082     ULONG (STDMETHODCALLTYPE *AddRef)(
5083         IOverlayNotify2 *This);
5084 
5085     ULONG (STDMETHODCALLTYPE *Release)(
5086         IOverlayNotify2 *This);
5087 
5088     /*** IOverlayNotify methods ***/
5089     HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
5090         IOverlayNotify2 *This,
5091         DWORD dwColors,
5092         const PALETTEENTRY *pPalette);
5093 
5094     HRESULT (STDMETHODCALLTYPE *OnClipChange)(
5095         IOverlayNotify2 *This,
5096         const RECT *pSourceRect,
5097         const RECT *pDestinationRect,
5098         const RGNDATA *pRgnData);
5099 
5100     HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
5101         IOverlayNotify2 *This,
5102         const COLORKEY *pColorKey);
5103 
5104     HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
5105         IOverlayNotify2 *This,
5106         const RECT *pSourceRect,
5107         const RECT *pDestinationRect);
5108 
5109     /*** IOverlayNotify2 methods ***/
5110     HRESULT (STDMETHODCALLTYPE *OnDisplayChange)(
5111         IOverlayNotify2 *This,
5112         HMONITOR hMonitor);
5113 
5114     END_INTERFACE
5115 } IOverlayNotify2Vtbl;
5116 
5117 interface IOverlayNotify2 {
5118     CONST_VTBL IOverlayNotify2Vtbl* lpVtbl;
5119 };
5120 
5121 #ifdef COBJMACROS
5122 #ifndef WIDL_C_INLINE_WRAPPERS
5123 /*** IUnknown methods ***/
5124 #define IOverlayNotify2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5125 #define IOverlayNotify2_AddRef(This) (This)->lpVtbl->AddRef(This)
5126 #define IOverlayNotify2_Release(This) (This)->lpVtbl->Release(This)
5127 /*** IOverlayNotify methods ***/
5128 #define IOverlayNotify2_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
5129 #define IOverlayNotify2_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
5130 #define IOverlayNotify2_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
5131 #define IOverlayNotify2_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
5132 /*** IOverlayNotify2 methods ***/
5133 #define IOverlayNotify2_OnDisplayChange(This,hMonitor) (This)->lpVtbl->OnDisplayChange(This,hMonitor)
5134 #else
5135 /*** IUnknown methods ***/
5136 static FORCEINLINE HRESULT IOverlayNotify2_QueryInterface(IOverlayNotify2* This,REFIID riid,void **ppvObject) {
5137     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5138 }
5139 static FORCEINLINE ULONG IOverlayNotify2_AddRef(IOverlayNotify2* This) {
5140     return This->lpVtbl->AddRef(This);
5141 }
5142 static FORCEINLINE ULONG IOverlayNotify2_Release(IOverlayNotify2* This) {
5143     return This->lpVtbl->Release(This);
5144 }
5145 /*** IOverlayNotify methods ***/
5146 static FORCEINLINE HRESULT IOverlayNotify2_OnPaletteChange(IOverlayNotify2* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
5147     return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
5148 }
5149 static FORCEINLINE HRESULT IOverlayNotify2_OnClipChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) {
5150     return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData);
5151 }
5152 static FORCEINLINE HRESULT IOverlayNotify2_OnColorKeyChange(IOverlayNotify2* This,const COLORKEY *pColorKey) {
5153     return This->lpVtbl->OnColorKeyChange(This,pColorKey);
5154 }
5155 static FORCEINLINE HRESULT IOverlayNotify2_OnPositionChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
5156     return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
5157 }
5158 /*** IOverlayNotify2 methods ***/
5159 static FORCEINLINE HRESULT IOverlayNotify2_OnDisplayChange(IOverlayNotify2* This,HMONITOR hMonitor) {
5160     return This->lpVtbl->OnDisplayChange(This,hMonitor);
5161 }
5162 #endif
5163 #endif
5164 
5165 #endif
5166 
5167 
5168 #endif  /* __IOverlayNotify2_INTERFACE_DEFINED__ */
5169 
5170 typedef IOverlayNotify2 *POVERLAYNOTIFY2;
5171 /*****************************************************************************
5172  * IOverlay interface
5173  */
5174 #ifndef __IOverlay_INTERFACE_DEFINED__
5175 #define __IOverlay_INTERFACE_DEFINED__
5176 
5177 DEFINE_GUID(IID_IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5178 #if defined(__cplusplus) && !defined(CINTERFACE)
5179 MIDL_INTERFACE("56a868a1-0ad4-11ce-b03a-0020af0ba770")
5180 IOverlay : public IUnknown
5181 {
5182     virtual HRESULT STDMETHODCALLTYPE GetPalette(
5183         DWORD *pdwColors,
5184         PALETTEENTRY **ppPalette) = 0;
5185 
5186     virtual HRESULT STDMETHODCALLTYPE SetPalette(
5187         DWORD dwColors,
5188         PALETTEENTRY *pPalette) = 0;
5189 
5190     virtual HRESULT STDMETHODCALLTYPE GetDefaultColorKey(
5191         COLORKEY *pColorKey) = 0;
5192 
5193     virtual HRESULT STDMETHODCALLTYPE GetColorKey(
5194         COLORKEY *pColorKey) = 0;
5195 
5196     virtual HRESULT STDMETHODCALLTYPE SetColorKey(
5197         COLORKEY *pColorKey) = 0;
5198 
5199     virtual HRESULT STDMETHODCALLTYPE GetWindowHandle(
5200         HWND *pHwnd) = 0;
5201 
5202     virtual HRESULT STDMETHODCALLTYPE GetClipList(
5203         RECT *pSourceRect,
5204         RECT *pDestinationRect,
5205         RGNDATA **ppRgnData) = 0;
5206 
5207     virtual HRESULT STDMETHODCALLTYPE GetVideoPosition(
5208         RECT *pSourceRect,
5209         RECT *pDestinationRect) = 0;
5210 
5211     virtual HRESULT STDMETHODCALLTYPE Advise(
5212         IOverlayNotify *pOverlayNotify,
5213         DWORD dwInterests) = 0;
5214 
5215     virtual HRESULT STDMETHODCALLTYPE Unadvise(
5216         ) = 0;
5217 
5218 };
5219 #ifdef __CRT_UUID_DECL
5220 __CRT_UUID_DECL(IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5221 #endif
5222 #else
5223 typedef struct IOverlayVtbl {
5224     BEGIN_INTERFACE
5225 
5226     /*** IUnknown methods ***/
5227     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5228         IOverlay *This,
5229         REFIID riid,
5230         void **ppvObject);
5231 
5232     ULONG (STDMETHODCALLTYPE *AddRef)(
5233         IOverlay *This);
5234 
5235     ULONG (STDMETHODCALLTYPE *Release)(
5236         IOverlay *This);
5237 
5238     /*** IOverlay methods ***/
5239     HRESULT (STDMETHODCALLTYPE *GetPalette)(
5240         IOverlay *This,
5241         DWORD *pdwColors,
5242         PALETTEENTRY **ppPalette);
5243 
5244     HRESULT (STDMETHODCALLTYPE *SetPalette)(
5245         IOverlay *This,
5246         DWORD dwColors,
5247         PALETTEENTRY *pPalette);
5248 
5249     HRESULT (STDMETHODCALLTYPE *GetDefaultColorKey)(
5250         IOverlay *This,
5251         COLORKEY *pColorKey);
5252 
5253     HRESULT (STDMETHODCALLTYPE *GetColorKey)(
5254         IOverlay *This,
5255         COLORKEY *pColorKey);
5256 
5257     HRESULT (STDMETHODCALLTYPE *SetColorKey)(
5258         IOverlay *This,
5259         COLORKEY *pColorKey);
5260 
5261     HRESULT (STDMETHODCALLTYPE *GetWindowHandle)(
5262         IOverlay *This,
5263         HWND *pHwnd);
5264 
5265     HRESULT (STDMETHODCALLTYPE *GetClipList)(
5266         IOverlay *This,
5267         RECT *pSourceRect,
5268         RECT *pDestinationRect,
5269         RGNDATA **ppRgnData);
5270 
5271     HRESULT (STDMETHODCALLTYPE *GetVideoPosition)(
5272         IOverlay *This,
5273         RECT *pSourceRect,
5274         RECT *pDestinationRect);
5275 
5276     HRESULT (STDMETHODCALLTYPE *Advise)(
5277         IOverlay *This,
5278         IOverlayNotify *pOverlayNotify,
5279         DWORD dwInterests);
5280 
5281     HRESULT (STDMETHODCALLTYPE *Unadvise)(
5282         IOverlay *This);
5283 
5284     END_INTERFACE
5285 } IOverlayVtbl;
5286 
5287 interface IOverlay {
5288     CONST_VTBL IOverlayVtbl* lpVtbl;
5289 };
5290 
5291 #ifdef COBJMACROS
5292 #ifndef WIDL_C_INLINE_WRAPPERS
5293 /*** IUnknown methods ***/
5294 #define IOverlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5295 #define IOverlay_AddRef(This) (This)->lpVtbl->AddRef(This)
5296 #define IOverlay_Release(This) (This)->lpVtbl->Release(This)
5297 /*** IOverlay methods ***/
5298 #define IOverlay_GetPalette(This,pdwColors,ppPalette) (This)->lpVtbl->GetPalette(This,pdwColors,ppPalette)
5299 #define IOverlay_SetPalette(This,dwColors,pPalette) (This)->lpVtbl->SetPalette(This,dwColors,pPalette)
5300 #define IOverlay_GetDefaultColorKey(This,pColorKey) (This)->lpVtbl->GetDefaultColorKey(This,pColorKey)
5301 #define IOverlay_GetColorKey(This,pColorKey) (This)->lpVtbl->GetColorKey(This,pColorKey)
5302 #define IOverlay_SetColorKey(This,pColorKey) (This)->lpVtbl->SetColorKey(This,pColorKey)
5303 #define IOverlay_GetWindowHandle(This,pHwnd) (This)->lpVtbl->GetWindowHandle(This,pHwnd)
5304 #define IOverlay_GetClipList(This,pSourceRect,pDestinationRect,ppRgnData) (This)->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData)
5305 #define IOverlay_GetVideoPosition(This,pSourceRect,pDestinationRect) (This)->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect)
5306 #define IOverlay_Advise(This,pOverlayNotify,dwInterests) (This)->lpVtbl->Advise(This,pOverlayNotify,dwInterests)
5307 #define IOverlay_Unadvise(This) (This)->lpVtbl->Unadvise(This)
5308 #else
5309 /*** IUnknown methods ***/
5310 static FORCEINLINE HRESULT IOverlay_QueryInterface(IOverlay* This,REFIID riid,void **ppvObject) {
5311     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5312 }
5313 static FORCEINLINE ULONG IOverlay_AddRef(IOverlay* This) {
5314     return This->lpVtbl->AddRef(This);
5315 }
5316 static FORCEINLINE ULONG IOverlay_Release(IOverlay* This) {
5317     return This->lpVtbl->Release(This);
5318 }
5319 /*** IOverlay methods ***/
5320 static FORCEINLINE HRESULT IOverlay_GetPalette(IOverlay* This,DWORD *pdwColors,PALETTEENTRY **ppPalette) {
5321     return This->lpVtbl->GetPalette(This,pdwColors,ppPalette);
5322 }
5323 static FORCEINLINE HRESULT IOverlay_SetPalette(IOverlay* This,DWORD dwColors,PALETTEENTRY *pPalette) {
5324     return This->lpVtbl->SetPalette(This,dwColors,pPalette);
5325 }
5326 static FORCEINLINE HRESULT IOverlay_GetDefaultColorKey(IOverlay* This,COLORKEY *pColorKey) {
5327     return This->lpVtbl->GetDefaultColorKey(This,pColorKey);
5328 }
5329 static FORCEINLINE HRESULT IOverlay_GetColorKey(IOverlay* This,COLORKEY *pColorKey) {
5330     return This->lpVtbl->GetColorKey(This,pColorKey);
5331 }
5332 static FORCEINLINE HRESULT IOverlay_SetColorKey(IOverlay* This,COLORKEY *pColorKey) {
5333     return This->lpVtbl->SetColorKey(This,pColorKey);
5334 }
5335 static FORCEINLINE HRESULT IOverlay_GetWindowHandle(IOverlay* This,HWND *pHwnd) {
5336     return This->lpVtbl->GetWindowHandle(This,pHwnd);
5337 }
5338 static FORCEINLINE HRESULT IOverlay_GetClipList(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData) {
5339     return This->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData);
5340 }
5341 static FORCEINLINE HRESULT IOverlay_GetVideoPosition(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect) {
5342     return This->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect);
5343 }
5344 static FORCEINLINE HRESULT IOverlay_Advise(IOverlay* This,IOverlayNotify *pOverlayNotify,DWORD dwInterests) {
5345     return This->lpVtbl->Advise(This,pOverlayNotify,dwInterests);
5346 }
5347 static FORCEINLINE HRESULT IOverlay_Unadvise(IOverlay* This) {
5348     return This->lpVtbl->Unadvise(This);
5349 }
5350 #endif
5351 #endif
5352 
5353 #endif
5354 
5355 
5356 #endif  /* __IOverlay_INTERFACE_DEFINED__ */
5357 
5358 typedef IOverlay *POVERLAY;
5359 /*****************************************************************************
5360  * IMediaEventSink interface
5361  */
5362 #ifndef __IMediaEventSink_INTERFACE_DEFINED__
5363 #define __IMediaEventSink_INTERFACE_DEFINED__
5364 
5365 DEFINE_GUID(IID_IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5366 #if defined(__cplusplus) && !defined(CINTERFACE)
5367 MIDL_INTERFACE("56a868a2-0ad4-11ce-b03a-0020af0ba770")
5368 IMediaEventSink : public IUnknown
5369 {
5370     virtual HRESULT STDMETHODCALLTYPE Notify(
5371         LONG EventCode,
5372         LONG_PTR EventParam1,
5373         LONG_PTR EventParam2) = 0;
5374 
5375 };
5376 #ifdef __CRT_UUID_DECL
5377 __CRT_UUID_DECL(IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5378 #endif
5379 #else
5380 typedef struct IMediaEventSinkVtbl {
5381     BEGIN_INTERFACE
5382 
5383     /*** IUnknown methods ***/
5384     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5385         IMediaEventSink *This,
5386         REFIID riid,
5387         void **ppvObject);
5388 
5389     ULONG (STDMETHODCALLTYPE *AddRef)(
5390         IMediaEventSink *This);
5391 
5392     ULONG (STDMETHODCALLTYPE *Release)(
5393         IMediaEventSink *This);
5394 
5395     /*** IMediaEventSink methods ***/
5396     HRESULT (STDMETHODCALLTYPE *Notify)(
5397         IMediaEventSink *This,
5398         LONG EventCode,
5399         LONG_PTR EventParam1,
5400         LONG_PTR EventParam2);
5401 
5402     END_INTERFACE
5403 } IMediaEventSinkVtbl;
5404 
5405 interface IMediaEventSink {
5406     CONST_VTBL IMediaEventSinkVtbl* lpVtbl;
5407 };
5408 
5409 #ifdef COBJMACROS
5410 #ifndef WIDL_C_INLINE_WRAPPERS
5411 /*** IUnknown methods ***/
5412 #define IMediaEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5413 #define IMediaEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
5414 #define IMediaEventSink_Release(This) (This)->lpVtbl->Release(This)
5415 /*** IMediaEventSink methods ***/
5416 #define IMediaEventSink_Notify(This,EventCode,EventParam1,EventParam2) (This)->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2)
5417 #else
5418 /*** IUnknown methods ***/
5419 static FORCEINLINE HRESULT IMediaEventSink_QueryInterface(IMediaEventSink* This,REFIID riid,void **ppvObject) {
5420     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5421 }
5422 static FORCEINLINE ULONG IMediaEventSink_AddRef(IMediaEventSink* This) {
5423     return This->lpVtbl->AddRef(This);
5424 }
5425 static FORCEINLINE ULONG IMediaEventSink_Release(IMediaEventSink* This) {
5426     return This->lpVtbl->Release(This);
5427 }
5428 /*** IMediaEventSink methods ***/
5429 static FORCEINLINE HRESULT IMediaEventSink_Notify(IMediaEventSink* This,LONG EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2) {
5430     return This->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2);
5431 }
5432 #endif
5433 #endif
5434 
5435 #endif
5436 
5437 
5438 #endif  /* __IMediaEventSink_INTERFACE_DEFINED__ */
5439 
5440 typedef IMediaEventSink *PMEDIAEVENTSINK;
5441 /*****************************************************************************
5442  * IFileSourceFilter interface
5443  */
5444 #ifndef __IFileSourceFilter_INTERFACE_DEFINED__
5445 #define __IFileSourceFilter_INTERFACE_DEFINED__
5446 
5447 DEFINE_GUID(IID_IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5448 #if defined(__cplusplus) && !defined(CINTERFACE)
5449 MIDL_INTERFACE("56a868a6-0ad4-11ce-b03a-0020af0ba770")
5450 IFileSourceFilter : public IUnknown
5451 {
5452     virtual HRESULT STDMETHODCALLTYPE Load(
5453         LPCOLESTR pszFileName,
5454         const AM_MEDIA_TYPE *pmt) = 0;
5455 
5456     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
5457         LPOLESTR *ppszFileName,
5458         AM_MEDIA_TYPE *pmt) = 0;
5459 
5460 };
5461 #ifdef __CRT_UUID_DECL
5462 __CRT_UUID_DECL(IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5463 #endif
5464 #else
5465 typedef struct IFileSourceFilterVtbl {
5466     BEGIN_INTERFACE
5467 
5468     /*** IUnknown methods ***/
5469     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5470         IFileSourceFilter *This,
5471         REFIID riid,
5472         void **ppvObject);
5473 
5474     ULONG (STDMETHODCALLTYPE *AddRef)(
5475         IFileSourceFilter *This);
5476 
5477     ULONG (STDMETHODCALLTYPE *Release)(
5478         IFileSourceFilter *This);
5479 
5480     /*** IFileSourceFilter methods ***/
5481     HRESULT (STDMETHODCALLTYPE *Load)(
5482         IFileSourceFilter *This,
5483         LPCOLESTR pszFileName,
5484         const AM_MEDIA_TYPE *pmt);
5485 
5486     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
5487         IFileSourceFilter *This,
5488         LPOLESTR *ppszFileName,
5489         AM_MEDIA_TYPE *pmt);
5490 
5491     END_INTERFACE
5492 } IFileSourceFilterVtbl;
5493 
5494 interface IFileSourceFilter {
5495     CONST_VTBL IFileSourceFilterVtbl* lpVtbl;
5496 };
5497 
5498 #ifdef COBJMACROS
5499 #ifndef WIDL_C_INLINE_WRAPPERS
5500 /*** IUnknown methods ***/
5501 #define IFileSourceFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5502 #define IFileSourceFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
5503 #define IFileSourceFilter_Release(This) (This)->lpVtbl->Release(This)
5504 /*** IFileSourceFilter methods ***/
5505 #define IFileSourceFilter_Load(This,pszFileName,pmt) (This)->lpVtbl->Load(This,pszFileName,pmt)
5506 #define IFileSourceFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
5507 #else
5508 /*** IUnknown methods ***/
5509 static FORCEINLINE HRESULT IFileSourceFilter_QueryInterface(IFileSourceFilter* This,REFIID riid,void **ppvObject) {
5510     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5511 }
5512 static FORCEINLINE ULONG IFileSourceFilter_AddRef(IFileSourceFilter* This) {
5513     return This->lpVtbl->AddRef(This);
5514 }
5515 static FORCEINLINE ULONG IFileSourceFilter_Release(IFileSourceFilter* This) {
5516     return This->lpVtbl->Release(This);
5517 }
5518 /*** IFileSourceFilter methods ***/
5519 static FORCEINLINE HRESULT IFileSourceFilter_Load(IFileSourceFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
5520     return This->lpVtbl->Load(This,pszFileName,pmt);
5521 }
5522 static FORCEINLINE HRESULT IFileSourceFilter_GetCurFile(IFileSourceFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
5523     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
5524 }
5525 #endif
5526 #endif
5527 
5528 #endif
5529 
5530 
5531 #endif  /* __IFileSourceFilter_INTERFACE_DEFINED__ */
5532 
5533 typedef IFileSourceFilter *PFILTERFILESOURCE;
5534 /*****************************************************************************
5535  * IFileSinkFilter interface
5536  */
5537 #ifndef __IFileSinkFilter_INTERFACE_DEFINED__
5538 #define __IFileSinkFilter_INTERFACE_DEFINED__
5539 
5540 DEFINE_GUID(IID_IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
5541 #if defined(__cplusplus) && !defined(CINTERFACE)
5542 MIDL_INTERFACE("a2104830-7c70-11cf-8bce-00aa00a3f1a6")
5543 IFileSinkFilter : public IUnknown
5544 {
5545     virtual HRESULT STDMETHODCALLTYPE SetFileName(
5546         LPCOLESTR pszFileName,
5547         const AM_MEDIA_TYPE *pmt) = 0;
5548 
5549     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
5550         LPOLESTR *ppszFileName,
5551         AM_MEDIA_TYPE *pmt) = 0;
5552 
5553 };
5554 #ifdef __CRT_UUID_DECL
5555 __CRT_UUID_DECL(IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6)
5556 #endif
5557 #else
5558 typedef struct IFileSinkFilterVtbl {
5559     BEGIN_INTERFACE
5560 
5561     /*** IUnknown methods ***/
5562     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5563         IFileSinkFilter *This,
5564         REFIID riid,
5565         void **ppvObject);
5566 
5567     ULONG (STDMETHODCALLTYPE *AddRef)(
5568         IFileSinkFilter *This);
5569 
5570     ULONG (STDMETHODCALLTYPE *Release)(
5571         IFileSinkFilter *This);
5572 
5573     /*** IFileSinkFilter methods ***/
5574     HRESULT (STDMETHODCALLTYPE *SetFileName)(
5575         IFileSinkFilter *This,
5576         LPCOLESTR pszFileName,
5577         const AM_MEDIA_TYPE *pmt);
5578 
5579     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
5580         IFileSinkFilter *This,
5581         LPOLESTR *ppszFileName,
5582         AM_MEDIA_TYPE *pmt);
5583 
5584     END_INTERFACE
5585 } IFileSinkFilterVtbl;
5586 
5587 interface IFileSinkFilter {
5588     CONST_VTBL IFileSinkFilterVtbl* lpVtbl;
5589 };
5590 
5591 #ifdef COBJMACROS
5592 #ifndef WIDL_C_INLINE_WRAPPERS
5593 /*** IUnknown methods ***/
5594 #define IFileSinkFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5595 #define IFileSinkFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
5596 #define IFileSinkFilter_Release(This) (This)->lpVtbl->Release(This)
5597 /*** IFileSinkFilter methods ***/
5598 #define IFileSinkFilter_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
5599 #define IFileSinkFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
5600 #else
5601 /*** IUnknown methods ***/
5602 static FORCEINLINE HRESULT IFileSinkFilter_QueryInterface(IFileSinkFilter* This,REFIID riid,void **ppvObject) {
5603     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5604 }
5605 static FORCEINLINE ULONG IFileSinkFilter_AddRef(IFileSinkFilter* This) {
5606     return This->lpVtbl->AddRef(This);
5607 }
5608 static FORCEINLINE ULONG IFileSinkFilter_Release(IFileSinkFilter* This) {
5609     return This->lpVtbl->Release(This);
5610 }
5611 /*** IFileSinkFilter methods ***/
5612 static FORCEINLINE HRESULT IFileSinkFilter_SetFileName(IFileSinkFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
5613     return This->lpVtbl->SetFileName(This,pszFileName,pmt);
5614 }
5615 static FORCEINLINE HRESULT IFileSinkFilter_GetCurFile(IFileSinkFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
5616     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
5617 }
5618 #endif
5619 #endif
5620 
5621 #endif
5622 
5623 
5624 #endif  /* __IFileSinkFilter_INTERFACE_DEFINED__ */
5625 
5626 typedef IFileSinkFilter *PFILTERFILESINK;
5627 /*****************************************************************************
5628  * IFileSinkFilter2 interface
5629  */
5630 #ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
5631 #define __IFileSinkFilter2_INTERFACE_DEFINED__
5632 
5633 DEFINE_GUID(IID_IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86);
5634 #if defined(__cplusplus) && !defined(CINTERFACE)
5635 MIDL_INTERFACE("00855b90-ce1b-11d0-bd4f-00a0c911ce86")
5636 IFileSinkFilter2 : public IFileSinkFilter
5637 {
5638     virtual HRESULT STDMETHODCALLTYPE SetMode(
5639         DWORD dwFlags) = 0;
5640 
5641     virtual HRESULT STDMETHODCALLTYPE GetMode(
5642         DWORD *pdwFlags) = 0;
5643 
5644 };
5645 #ifdef __CRT_UUID_DECL
5646 __CRT_UUID_DECL(IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86)
5647 #endif
5648 #else
5649 typedef struct IFileSinkFilter2Vtbl {
5650     BEGIN_INTERFACE
5651 
5652     /*** IUnknown methods ***/
5653     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5654         IFileSinkFilter2 *This,
5655         REFIID riid,
5656         void **ppvObject);
5657 
5658     ULONG (STDMETHODCALLTYPE *AddRef)(
5659         IFileSinkFilter2 *This);
5660 
5661     ULONG (STDMETHODCALLTYPE *Release)(
5662         IFileSinkFilter2 *This);
5663 
5664     /*** IFileSinkFilter methods ***/
5665     HRESULT (STDMETHODCALLTYPE *SetFileName)(
5666         IFileSinkFilter2 *This,
5667         LPCOLESTR pszFileName,
5668         const AM_MEDIA_TYPE *pmt);
5669 
5670     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
5671         IFileSinkFilter2 *This,
5672         LPOLESTR *ppszFileName,
5673         AM_MEDIA_TYPE *pmt);
5674 
5675     /*** IFileSinkFilter2 methods ***/
5676     HRESULT (STDMETHODCALLTYPE *SetMode)(
5677         IFileSinkFilter2 *This,
5678         DWORD dwFlags);
5679 
5680     HRESULT (STDMETHODCALLTYPE *GetMode)(
5681         IFileSinkFilter2 *This,
5682         DWORD *pdwFlags);
5683 
5684     END_INTERFACE
5685 } IFileSinkFilter2Vtbl;
5686 
5687 interface IFileSinkFilter2 {
5688     CONST_VTBL IFileSinkFilter2Vtbl* lpVtbl;
5689 };
5690 
5691 #ifdef COBJMACROS
5692 #ifndef WIDL_C_INLINE_WRAPPERS
5693 /*** IUnknown methods ***/
5694 #define IFileSinkFilter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5695 #define IFileSinkFilter2_AddRef(This) (This)->lpVtbl->AddRef(This)
5696 #define IFileSinkFilter2_Release(This) (This)->lpVtbl->Release(This)
5697 /*** IFileSinkFilter methods ***/
5698 #define IFileSinkFilter2_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
5699 #define IFileSinkFilter2_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
5700 /*** IFileSinkFilter2 methods ***/
5701 #define IFileSinkFilter2_SetMode(This,dwFlags) (This)->lpVtbl->SetMode(This,dwFlags)
5702 #define IFileSinkFilter2_GetMode(This,pdwFlags) (This)->lpVtbl->GetMode(This,pdwFlags)
5703 #else
5704 /*** IUnknown methods ***/
5705 static FORCEINLINE HRESULT IFileSinkFilter2_QueryInterface(IFileSinkFilter2* This,REFIID riid,void **ppvObject) {
5706     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5707 }
5708 static FORCEINLINE ULONG IFileSinkFilter2_AddRef(IFileSinkFilter2* This) {
5709     return This->lpVtbl->AddRef(This);
5710 }
5711 static FORCEINLINE ULONG IFileSinkFilter2_Release(IFileSinkFilter2* This) {
5712     return This->lpVtbl->Release(This);
5713 }
5714 /*** IFileSinkFilter methods ***/
5715 static FORCEINLINE HRESULT IFileSinkFilter2_SetFileName(IFileSinkFilter2* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
5716     return This->lpVtbl->SetFileName(This,pszFileName,pmt);
5717 }
5718 static FORCEINLINE HRESULT IFileSinkFilter2_GetCurFile(IFileSinkFilter2* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
5719     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
5720 }
5721 /*** IFileSinkFilter2 methods ***/
5722 static FORCEINLINE HRESULT IFileSinkFilter2_SetMode(IFileSinkFilter2* This,DWORD dwFlags) {
5723     return This->lpVtbl->SetMode(This,dwFlags);
5724 }
5725 static FORCEINLINE HRESULT IFileSinkFilter2_GetMode(IFileSinkFilter2* This,DWORD *pdwFlags) {
5726     return This->lpVtbl->GetMode(This,pdwFlags);
5727 }
5728 #endif
5729 #endif
5730 
5731 #endif
5732 
5733 
5734 #endif  /* __IFileSinkFilter2_INTERFACE_DEFINED__ */
5735 
5736 typedef IFileSinkFilter2 *PFILESINKFILTER2;
5737 typedef enum __WIDL_strmif_generated_name_00000008 {
5738     AM_FILE_OVERWRITE = 0x1
5739 } AM_FILESINK_FLAGS;
5740 /*****************************************************************************
5741  * IGraphBuilder interface
5742  */
5743 #ifndef __IGraphBuilder_INTERFACE_DEFINED__
5744 #define __IGraphBuilder_INTERFACE_DEFINED__
5745 
5746 DEFINE_GUID(IID_IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5747 #if defined(__cplusplus) && !defined(CINTERFACE)
5748 MIDL_INTERFACE("56a868a9-0ad4-11ce-b03a-0020af0ba770")
5749 IGraphBuilder : public IFilterGraph
5750 {
5751     virtual HRESULT STDMETHODCALLTYPE Connect(
5752         IPin *ppinOut,
5753         IPin *ppinIn) = 0;
5754 
5755     virtual HRESULT STDMETHODCALLTYPE Render(
5756         IPin *ppinOut) = 0;
5757 
5758     virtual HRESULT STDMETHODCALLTYPE RenderFile(
5759         LPCWSTR lpcwstrFile,
5760         LPCWSTR lpcwstrPlayList) = 0;
5761 
5762     virtual HRESULT STDMETHODCALLTYPE AddSourceFilter(
5763         LPCWSTR lpcwstrFileName,
5764         LPCWSTR lpcwstrFilterName,
5765         IBaseFilter **ppFilter) = 0;
5766 
5767     virtual HRESULT STDMETHODCALLTYPE SetLogFile(
5768         DWORD_PTR hFile) = 0;
5769 
5770     virtual HRESULT STDMETHODCALLTYPE Abort(
5771         ) = 0;
5772 
5773     virtual HRESULT STDMETHODCALLTYPE ShouldOperationContinue(
5774         ) = 0;
5775 
5776 };
5777 #ifdef __CRT_UUID_DECL
5778 __CRT_UUID_DECL(IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5779 #endif
5780 #else
5781 typedef struct IGraphBuilderVtbl {
5782     BEGIN_INTERFACE
5783 
5784     /*** IUnknown methods ***/
5785     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5786         IGraphBuilder *This,
5787         REFIID riid,
5788         void **ppvObject);
5789 
5790     ULONG (STDMETHODCALLTYPE *AddRef)(
5791         IGraphBuilder *This);
5792 
5793     ULONG (STDMETHODCALLTYPE *Release)(
5794         IGraphBuilder *This);
5795 
5796     /*** IFilterGraph methods ***/
5797     HRESULT (STDMETHODCALLTYPE *AddFilter)(
5798         IGraphBuilder *This,
5799         IBaseFilter *pFilter,
5800         LPCWSTR pName);
5801 
5802     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
5803         IGraphBuilder *This,
5804         IBaseFilter *pFilter);
5805 
5806     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
5807         IGraphBuilder *This,
5808         IEnumFilters **ppEnum);
5809 
5810     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
5811         IGraphBuilder *This,
5812         LPCWSTR pName,
5813         IBaseFilter **ppFilter);
5814 
5815     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
5816         IGraphBuilder *This,
5817         IPin *ppinOut,
5818         IPin *ppinIn,
5819         const AM_MEDIA_TYPE *pmt);
5820 
5821     HRESULT (STDMETHODCALLTYPE *Reconnect)(
5822         IGraphBuilder *This,
5823         IPin *ppin);
5824 
5825     HRESULT (STDMETHODCALLTYPE *Disconnect)(
5826         IGraphBuilder *This,
5827         IPin *ppin);
5828 
5829     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
5830         IGraphBuilder *This);
5831 
5832     /*** IGraphBuilder methods ***/
5833     HRESULT (STDMETHODCALLTYPE *Connect)(
5834         IGraphBuilder *This,
5835         IPin *ppinOut,
5836         IPin *ppinIn);
5837 
5838     HRESULT (STDMETHODCALLTYPE *Render)(
5839         IGraphBuilder *This,
5840         IPin *ppinOut);
5841 
5842     HRESULT (STDMETHODCALLTYPE *RenderFile)(
5843         IGraphBuilder *This,
5844         LPCWSTR lpcwstrFile,
5845         LPCWSTR lpcwstrPlayList);
5846 
5847     HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
5848         IGraphBuilder *This,
5849         LPCWSTR lpcwstrFileName,
5850         LPCWSTR lpcwstrFilterName,
5851         IBaseFilter **ppFilter);
5852 
5853     HRESULT (STDMETHODCALLTYPE *SetLogFile)(
5854         IGraphBuilder *This,
5855         DWORD_PTR hFile);
5856 
5857     HRESULT (STDMETHODCALLTYPE *Abort)(
5858         IGraphBuilder *This);
5859 
5860     HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
5861         IGraphBuilder *This);
5862 
5863     END_INTERFACE
5864 } IGraphBuilderVtbl;
5865 
5866 interface IGraphBuilder {
5867     CONST_VTBL IGraphBuilderVtbl* lpVtbl;
5868 };
5869 
5870 #ifdef COBJMACROS
5871 #ifndef WIDL_C_INLINE_WRAPPERS
5872 /*** IUnknown methods ***/
5873 #define IGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5874 #define IGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
5875 #define IGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
5876 /*** IFilterGraph methods ***/
5877 #define IGraphBuilder_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
5878 #define IGraphBuilder_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
5879 #define IGraphBuilder_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
5880 #define IGraphBuilder_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
5881 #define IGraphBuilder_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
5882 #define IGraphBuilder_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
5883 #define IGraphBuilder_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
5884 #define IGraphBuilder_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
5885 /*** IGraphBuilder methods ***/
5886 #define IGraphBuilder_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
5887 #define IGraphBuilder_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
5888 #define IGraphBuilder_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
5889 #define IGraphBuilder_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
5890 #define IGraphBuilder_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
5891 #define IGraphBuilder_Abort(This) (This)->lpVtbl->Abort(This)
5892 #define IGraphBuilder_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
5893 #else
5894 /*** IUnknown methods ***/
5895 static FORCEINLINE HRESULT IGraphBuilder_QueryInterface(IGraphBuilder* This,REFIID riid,void **ppvObject) {
5896     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5897 }
5898 static FORCEINLINE ULONG IGraphBuilder_AddRef(IGraphBuilder* This) {
5899     return This->lpVtbl->AddRef(This);
5900 }
5901 static FORCEINLINE ULONG IGraphBuilder_Release(IGraphBuilder* This) {
5902     return This->lpVtbl->Release(This);
5903 }
5904 /*** IFilterGraph methods ***/
5905 static FORCEINLINE HRESULT IGraphBuilder_AddFilter(IGraphBuilder* This,IBaseFilter *pFilter,LPCWSTR pName) {
5906     return This->lpVtbl->AddFilter(This,pFilter,pName);
5907 }
5908 static FORCEINLINE HRESULT IGraphBuilder_RemoveFilter(IGraphBuilder* This,IBaseFilter *pFilter) {
5909     return This->lpVtbl->RemoveFilter(This,pFilter);
5910 }
5911 static FORCEINLINE HRESULT IGraphBuilder_EnumFilters(IGraphBuilder* This,IEnumFilters **ppEnum) {
5912     return This->lpVtbl->EnumFilters(This,ppEnum);
5913 }
5914 static FORCEINLINE HRESULT IGraphBuilder_FindFilterByName(IGraphBuilder* This,LPCWSTR pName,IBaseFilter **ppFilter) {
5915     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
5916 }
5917 static FORCEINLINE HRESULT IGraphBuilder_ConnectDirect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
5918     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
5919 }
5920 static FORCEINLINE HRESULT IGraphBuilder_Reconnect(IGraphBuilder* This,IPin *ppin) {
5921     return This->lpVtbl->Reconnect(This,ppin);
5922 }
5923 static FORCEINLINE HRESULT IGraphBuilder_Disconnect(IGraphBuilder* This,IPin *ppin) {
5924     return This->lpVtbl->Disconnect(This,ppin);
5925 }
5926 static FORCEINLINE HRESULT IGraphBuilder_SetDefaultSyncSource(IGraphBuilder* This) {
5927     return This->lpVtbl->SetDefaultSyncSource(This);
5928 }
5929 /*** IGraphBuilder methods ***/
5930 static FORCEINLINE HRESULT IGraphBuilder_Connect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn) {
5931     return This->lpVtbl->Connect(This,ppinOut,ppinIn);
5932 }
5933 static FORCEINLINE HRESULT IGraphBuilder_Render(IGraphBuilder* This,IPin *ppinOut) {
5934     return This->lpVtbl->Render(This,ppinOut);
5935 }
5936 static FORCEINLINE HRESULT IGraphBuilder_RenderFile(IGraphBuilder* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
5937     return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
5938 }
5939 static FORCEINLINE HRESULT IGraphBuilder_AddSourceFilter(IGraphBuilder* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
5940     return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
5941 }
5942 static FORCEINLINE HRESULT IGraphBuilder_SetLogFile(IGraphBuilder* This,DWORD_PTR hFile) {
5943     return This->lpVtbl->SetLogFile(This,hFile);
5944 }
5945 static FORCEINLINE HRESULT IGraphBuilder_Abort(IGraphBuilder* This) {
5946     return This->lpVtbl->Abort(This);
5947 }
5948 static FORCEINLINE HRESULT IGraphBuilder_ShouldOperationContinue(IGraphBuilder* This) {
5949     return This->lpVtbl->ShouldOperationContinue(This);
5950 }
5951 #endif
5952 #endif
5953 
5954 #endif
5955 
5956 
5957 #endif  /* __IGraphBuilder_INTERFACE_DEFINED__ */
5958 
5959 /*****************************************************************************
5960  * ICaptureGraphBuilder interface
5961  */
5962 #ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__
5963 #define __ICaptureGraphBuilder_INTERFACE_DEFINED__
5964 
5965 DEFINE_GUID(IID_ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
5966 #if defined(__cplusplus) && !defined(CINTERFACE)
5967 MIDL_INTERFACE("bf87b6e0-8c27-11d0-b3f0-00aa003761c5")
5968 ICaptureGraphBuilder : public IUnknown
5969 {
5970     virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
5971         IGraphBuilder *pfg) = 0;
5972 
5973     virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
5974         IGraphBuilder **ppfg) = 0;
5975 
5976     virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
5977         const GUID *pType,
5978         LPCOLESTR lpstrFile,
5979         IBaseFilter **ppf,
5980         IFileSinkFilter **ppSink) = 0;
5981 
5982     virtual HRESULT STDMETHODCALLTYPE FindInterface(
5983         const GUID *pCategory,
5984         IBaseFilter *pf,
5985         REFIID riid,
5986         void **ppint) = 0;
5987 
5988     virtual HRESULT STDMETHODCALLTYPE RenderStream(
5989         const GUID *pCategory,
5990         IUnknown *pSource,
5991         IBaseFilter *pfCompressor,
5992         IBaseFilter *pfRenderer) = 0;
5993 
5994     virtual HRESULT STDMETHODCALLTYPE ControlStream(
5995         const GUID *pCategory,
5996         IBaseFilter *pFilter,
5997         REFERENCE_TIME *pstart,
5998         REFERENCE_TIME *pstop,
5999         WORD wStartCookie,
6000         WORD wStopCookie) = 0;
6001 
6002     virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
6003         LPCOLESTR lpstr,
6004         DWORDLONG dwlSize) = 0;
6005 
6006     virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
6007         LPOLESTR lpwstrOld,
6008         LPOLESTR lpwstrNew,
6009         int fAllowEscAbort,
6010         IAMCopyCaptureFileProgress *pCallback) = 0;
6011 
6012 };
6013 #ifdef __CRT_UUID_DECL
6014 __CRT_UUID_DECL(ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
6015 #endif
6016 #else
6017 typedef struct ICaptureGraphBuilderVtbl {
6018     BEGIN_INTERFACE
6019 
6020     /*** IUnknown methods ***/
6021     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6022         ICaptureGraphBuilder *This,
6023         REFIID riid,
6024         void **ppvObject);
6025 
6026     ULONG (STDMETHODCALLTYPE *AddRef)(
6027         ICaptureGraphBuilder *This);
6028 
6029     ULONG (STDMETHODCALLTYPE *Release)(
6030         ICaptureGraphBuilder *This);
6031 
6032     /*** ICaptureGraphBuilder methods ***/
6033     HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
6034         ICaptureGraphBuilder *This,
6035         IGraphBuilder *pfg);
6036 
6037     HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
6038         ICaptureGraphBuilder *This,
6039         IGraphBuilder **ppfg);
6040 
6041     HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
6042         ICaptureGraphBuilder *This,
6043         const GUID *pType,
6044         LPCOLESTR lpstrFile,
6045         IBaseFilter **ppf,
6046         IFileSinkFilter **ppSink);
6047 
6048     HRESULT (STDMETHODCALLTYPE *FindInterface)(
6049         ICaptureGraphBuilder *This,
6050         const GUID *pCategory,
6051         IBaseFilter *pf,
6052         REFIID riid,
6053         void **ppint);
6054 
6055     HRESULT (STDMETHODCALLTYPE *RenderStream)(
6056         ICaptureGraphBuilder *This,
6057         const GUID *pCategory,
6058         IUnknown *pSource,
6059         IBaseFilter *pfCompressor,
6060         IBaseFilter *pfRenderer);
6061 
6062     HRESULT (STDMETHODCALLTYPE *ControlStream)(
6063         ICaptureGraphBuilder *This,
6064         const GUID *pCategory,
6065         IBaseFilter *pFilter,
6066         REFERENCE_TIME *pstart,
6067         REFERENCE_TIME *pstop,
6068         WORD wStartCookie,
6069         WORD wStopCookie);
6070 
6071     HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
6072         ICaptureGraphBuilder *This,
6073         LPCOLESTR lpstr,
6074         DWORDLONG dwlSize);
6075 
6076     HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
6077         ICaptureGraphBuilder *This,
6078         LPOLESTR lpwstrOld,
6079         LPOLESTR lpwstrNew,
6080         int fAllowEscAbort,
6081         IAMCopyCaptureFileProgress *pCallback);
6082 
6083     END_INTERFACE
6084 } ICaptureGraphBuilderVtbl;
6085 
6086 interface ICaptureGraphBuilder {
6087     CONST_VTBL ICaptureGraphBuilderVtbl* lpVtbl;
6088 };
6089 
6090 #ifdef COBJMACROS
6091 #ifndef WIDL_C_INLINE_WRAPPERS
6092 /*** IUnknown methods ***/
6093 #define ICaptureGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6094 #define ICaptureGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
6095 #define ICaptureGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
6096 /*** ICaptureGraphBuilder methods ***/
6097 #define ICaptureGraphBuilder_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
6098 #define ICaptureGraphBuilder_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
6099 #define ICaptureGraphBuilder_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
6100 #define ICaptureGraphBuilder_FindInterface(This,pCategory,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint)
6101 #define ICaptureGraphBuilder_RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer)
6102 #define ICaptureGraphBuilder_ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie)
6103 #define ICaptureGraphBuilder_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
6104 #define ICaptureGraphBuilder_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
6105 #else
6106 /*** IUnknown methods ***/
6107 static FORCEINLINE HRESULT ICaptureGraphBuilder_QueryInterface(ICaptureGraphBuilder* This,REFIID riid,void **ppvObject) {
6108     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6109 }
6110 static FORCEINLINE ULONG ICaptureGraphBuilder_AddRef(ICaptureGraphBuilder* This) {
6111     return This->lpVtbl->AddRef(This);
6112 }
6113 static FORCEINLINE ULONG ICaptureGraphBuilder_Release(ICaptureGraphBuilder* This) {
6114     return This->lpVtbl->Release(This);
6115 }
6116 /*** ICaptureGraphBuilder methods ***/
6117 static FORCEINLINE HRESULT ICaptureGraphBuilder_SetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder *pfg) {
6118     return This->lpVtbl->SetFiltergraph(This,pfg);
6119 }
6120 static FORCEINLINE HRESULT ICaptureGraphBuilder_GetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder **ppfg) {
6121     return This->lpVtbl->GetFiltergraph(This,ppfg);
6122 }
6123 static FORCEINLINE HRESULT ICaptureGraphBuilder_SetOutputFileName(ICaptureGraphBuilder* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) {
6124     return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink);
6125 }
6126 static FORCEINLINE HRESULT ICaptureGraphBuilder_FindInterface(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,void **ppint) {
6127     return This->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint);
6128 }
6129 static FORCEINLINE HRESULT ICaptureGraphBuilder_RenderStream(ICaptureGraphBuilder* This,const GUID *pCategory,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) {
6130     return This->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer);
6131 }
6132 static FORCEINLINE HRESULT ICaptureGraphBuilder_ControlStream(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) {
6133     return This->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie);
6134 }
6135 static FORCEINLINE HRESULT ICaptureGraphBuilder_AllocCapFile(ICaptureGraphBuilder* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
6136     return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
6137 }
6138 static FORCEINLINE HRESULT ICaptureGraphBuilder_CopyCaptureFile(ICaptureGraphBuilder* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) {
6139     return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback);
6140 }
6141 #endif
6142 #endif
6143 
6144 #endif
6145 
6146 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RemoteFindInterface_Proxy(
6147     ICaptureGraphBuilder* This,
6148     const GUID *pCategory,
6149     IBaseFilter *pf,
6150     REFIID riid,
6151     IUnknown **ppint);
6152 void __RPC_STUB ICaptureGraphBuilder_RemoteFindInterface_Stub(
6153     IRpcStubBuffer* This,
6154     IRpcChannelBuffer* pRpcChannelBuffer,
6155     PRPC_MESSAGE pRpcMessage,
6156     DWORD* pdwStubPhase);
6157 HRESULT CALLBACK ICaptureGraphBuilder_FindInterface_Proxy(
6158     ICaptureGraphBuilder* This,
6159     const GUID *pCategory,
6160     IBaseFilter *pf,
6161     REFIID riid,
6162     void **ppint);
6163 HRESULT __RPC_STUB ICaptureGraphBuilder_FindInterface_Stub(
6164     ICaptureGraphBuilder* This,
6165     const GUID *pCategory,
6166     IBaseFilter *pf,
6167     REFIID riid,
6168     IUnknown **ppint);
6169 
6170 #endif  /* __ICaptureGraphBuilder_INTERFACE_DEFINED__ */
6171 
6172 /*****************************************************************************
6173  * IAMCopyCaptureFileProgress interface
6174  */
6175 #ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
6176 #define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
6177 
6178 DEFINE_GUID(IID_IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
6179 #if defined(__cplusplus) && !defined(CINTERFACE)
6180 MIDL_INTERFACE("670d1d20-a068-11d0-b3f0-00aa003761c5")
6181 IAMCopyCaptureFileProgress : public IUnknown
6182 {
6183     virtual HRESULT STDMETHODCALLTYPE Progress(
6184         int iProgress) = 0;
6185 
6186 };
6187 #ifdef __CRT_UUID_DECL
6188 __CRT_UUID_DECL(IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
6189 #endif
6190 #else
6191 typedef struct IAMCopyCaptureFileProgressVtbl {
6192     BEGIN_INTERFACE
6193 
6194     /*** IUnknown methods ***/
6195     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6196         IAMCopyCaptureFileProgress *This,
6197         REFIID riid,
6198         void **ppvObject);
6199 
6200     ULONG (STDMETHODCALLTYPE *AddRef)(
6201         IAMCopyCaptureFileProgress *This);
6202 
6203     ULONG (STDMETHODCALLTYPE *Release)(
6204         IAMCopyCaptureFileProgress *This);
6205 
6206     /*** IAMCopyCaptureFileProgress methods ***/
6207     HRESULT (STDMETHODCALLTYPE *Progress)(
6208         IAMCopyCaptureFileProgress *This,
6209         int iProgress);
6210 
6211     END_INTERFACE
6212 } IAMCopyCaptureFileProgressVtbl;
6213 
6214 interface IAMCopyCaptureFileProgress {
6215     CONST_VTBL IAMCopyCaptureFileProgressVtbl* lpVtbl;
6216 };
6217 
6218 #ifdef COBJMACROS
6219 #ifndef WIDL_C_INLINE_WRAPPERS
6220 /*** IUnknown methods ***/
6221 #define IAMCopyCaptureFileProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6222 #define IAMCopyCaptureFileProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
6223 #define IAMCopyCaptureFileProgress_Release(This) (This)->lpVtbl->Release(This)
6224 /*** IAMCopyCaptureFileProgress methods ***/
6225 #define IAMCopyCaptureFileProgress_Progress(This,iProgress) (This)->lpVtbl->Progress(This,iProgress)
6226 #else
6227 /*** IUnknown methods ***/
6228 static FORCEINLINE HRESULT IAMCopyCaptureFileProgress_QueryInterface(IAMCopyCaptureFileProgress* This,REFIID riid,void **ppvObject) {
6229     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6230 }
6231 static FORCEINLINE ULONG IAMCopyCaptureFileProgress_AddRef(IAMCopyCaptureFileProgress* This) {
6232     return This->lpVtbl->AddRef(This);
6233 }
6234 static FORCEINLINE ULONG IAMCopyCaptureFileProgress_Release(IAMCopyCaptureFileProgress* This) {
6235     return This->lpVtbl->Release(This);
6236 }
6237 /*** IAMCopyCaptureFileProgress methods ***/
6238 static FORCEINLINE HRESULT IAMCopyCaptureFileProgress_Progress(IAMCopyCaptureFileProgress* This,int iProgress) {
6239     return This->lpVtbl->Progress(This,iProgress);
6240 }
6241 #endif
6242 #endif
6243 
6244 #endif
6245 
6246 
6247 #endif  /* __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ */
6248 
6249 /*****************************************************************************
6250  * ICaptureGraphBuilder2 interface
6251  */
6252 #ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
6253 #define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
6254 
6255 DEFINE_GUID(IID_ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d);
6256 #if defined(__cplusplus) && !defined(CINTERFACE)
6257 MIDL_INTERFACE("93e5a4e0-2d50-11d2-abfa-00a0c9c6e38d")
6258 ICaptureGraphBuilder2 : public IUnknown
6259 {
6260     virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
6261         IGraphBuilder *pfg) = 0;
6262 
6263     virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
6264         IGraphBuilder **ppfg) = 0;
6265 
6266     virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
6267         const GUID *pType,
6268         LPCOLESTR lpstrFile,
6269         IBaseFilter **ppf,
6270         IFileSinkFilter **ppSink) = 0;
6271 
6272     virtual HRESULT STDMETHODCALLTYPE FindInterface(
6273         const GUID *pCategory,
6274         const GUID *pType,
6275         IBaseFilter *pf,
6276         REFIID riid,
6277         void **ppint) = 0;
6278 
6279     virtual HRESULT STDMETHODCALLTYPE RenderStream(
6280         const GUID *pCategory,
6281         const GUID *pType,
6282         IUnknown *pSource,
6283         IBaseFilter *pfCompressor,
6284         IBaseFilter *pfRenderer) = 0;
6285 
6286     virtual HRESULT STDMETHODCALLTYPE ControlStream(
6287         const GUID *pCategory,
6288         const GUID *pType,
6289         IBaseFilter *pFilter,
6290         REFERENCE_TIME *pstart,
6291         REFERENCE_TIME *pstop,
6292         WORD wStartCookie,
6293         WORD wStopCookie) = 0;
6294 
6295     virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
6296         LPCOLESTR lpstr,
6297         DWORDLONG dwlSize) = 0;
6298 
6299     virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
6300         LPOLESTR lpwstrOld,
6301         LPOLESTR lpwstrNew,
6302         int fAllowEscAbort,
6303         IAMCopyCaptureFileProgress *pCallback) = 0;
6304 
6305     virtual HRESULT STDMETHODCALLTYPE FindPin(
6306         IUnknown *pSource,
6307         PIN_DIRECTION pindir,
6308         const GUID *pCategory,
6309         const GUID *pType,
6310         WINBOOL fUnconnected,
6311         int num,
6312         IPin **ppPin) = 0;
6313 
6314 };
6315 #ifdef __CRT_UUID_DECL
6316 __CRT_UUID_DECL(ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d)
6317 #endif
6318 #else
6319 typedef struct ICaptureGraphBuilder2Vtbl {
6320     BEGIN_INTERFACE
6321 
6322     /*** IUnknown methods ***/
6323     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6324         ICaptureGraphBuilder2 *This,
6325         REFIID riid,
6326         void **ppvObject);
6327 
6328     ULONG (STDMETHODCALLTYPE *AddRef)(
6329         ICaptureGraphBuilder2 *This);
6330 
6331     ULONG (STDMETHODCALLTYPE *Release)(
6332         ICaptureGraphBuilder2 *This);
6333 
6334     /*** ICaptureGraphBuilder2 methods ***/
6335     HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
6336         ICaptureGraphBuilder2 *This,
6337         IGraphBuilder *pfg);
6338 
6339     HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
6340         ICaptureGraphBuilder2 *This,
6341         IGraphBuilder **ppfg);
6342 
6343     HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
6344         ICaptureGraphBuilder2 *This,
6345         const GUID *pType,
6346         LPCOLESTR lpstrFile,
6347         IBaseFilter **ppf,
6348         IFileSinkFilter **ppSink);
6349 
6350     HRESULT (STDMETHODCALLTYPE *FindInterface)(
6351         ICaptureGraphBuilder2 *This,
6352         const GUID *pCategory,
6353         const GUID *pType,
6354         IBaseFilter *pf,
6355         REFIID riid,
6356         void **ppint);
6357 
6358     HRESULT (STDMETHODCALLTYPE *RenderStream)(
6359         ICaptureGraphBuilder2 *This,
6360         const GUID *pCategory,
6361         const GUID *pType,
6362         IUnknown *pSource,
6363         IBaseFilter *pfCompressor,
6364         IBaseFilter *pfRenderer);
6365 
6366     HRESULT (STDMETHODCALLTYPE *ControlStream)(
6367         ICaptureGraphBuilder2 *This,
6368         const GUID *pCategory,
6369         const GUID *pType,
6370         IBaseFilter *pFilter,
6371         REFERENCE_TIME *pstart,
6372         REFERENCE_TIME *pstop,
6373         WORD wStartCookie,
6374         WORD wStopCookie);
6375 
6376     HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
6377         ICaptureGraphBuilder2 *This,
6378         LPCOLESTR lpstr,
6379         DWORDLONG dwlSize);
6380 
6381     HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
6382         ICaptureGraphBuilder2 *This,
6383         LPOLESTR lpwstrOld,
6384         LPOLESTR lpwstrNew,
6385         int fAllowEscAbort,
6386         IAMCopyCaptureFileProgress *pCallback);
6387 
6388     HRESULT (STDMETHODCALLTYPE *FindPin)(
6389         ICaptureGraphBuilder2 *This,
6390         IUnknown *pSource,
6391         PIN_DIRECTION pindir,
6392         const GUID *pCategory,
6393         const GUID *pType,
6394         WINBOOL fUnconnected,
6395         int num,
6396         IPin **ppPin);
6397 
6398     END_INTERFACE
6399 } ICaptureGraphBuilder2Vtbl;
6400 
6401 interface ICaptureGraphBuilder2 {
6402     CONST_VTBL ICaptureGraphBuilder2Vtbl* lpVtbl;
6403 };
6404 
6405 #ifdef COBJMACROS
6406 #ifndef WIDL_C_INLINE_WRAPPERS
6407 /*** IUnknown methods ***/
6408 #define ICaptureGraphBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6409 #define ICaptureGraphBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
6410 #define ICaptureGraphBuilder2_Release(This) (This)->lpVtbl->Release(This)
6411 /*** ICaptureGraphBuilder2 methods ***/
6412 #define ICaptureGraphBuilder2_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
6413 #define ICaptureGraphBuilder2_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
6414 #define ICaptureGraphBuilder2_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
6415 #define ICaptureGraphBuilder2_FindInterface(This,pCategory,pType,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint)
6416 #define ICaptureGraphBuilder2_RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer)
6417 #define ICaptureGraphBuilder2_ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie)
6418 #define ICaptureGraphBuilder2_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
6419 #define ICaptureGraphBuilder2_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
6420 #define ICaptureGraphBuilder2_FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin) (This)->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin)
6421 #else
6422 /*** IUnknown methods ***/
6423 static FORCEINLINE HRESULT ICaptureGraphBuilder2_QueryInterface(ICaptureGraphBuilder2* This,REFIID riid,void **ppvObject) {
6424     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6425 }
6426 static FORCEINLINE ULONG ICaptureGraphBuilder2_AddRef(ICaptureGraphBuilder2* This) {
6427     return This->lpVtbl->AddRef(This);
6428 }
6429 static FORCEINLINE ULONG ICaptureGraphBuilder2_Release(ICaptureGraphBuilder2* This) {
6430     return This->lpVtbl->Release(This);
6431 }
6432 /*** ICaptureGraphBuilder2 methods ***/
6433 static FORCEINLINE HRESULT ICaptureGraphBuilder2_SetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder *pfg) {
6434     return This->lpVtbl->SetFiltergraph(This,pfg);
6435 }
6436 static FORCEINLINE HRESULT ICaptureGraphBuilder2_GetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder **ppfg) {
6437     return This->lpVtbl->GetFiltergraph(This,ppfg);
6438 }
6439 static FORCEINLINE HRESULT ICaptureGraphBuilder2_SetOutputFileName(ICaptureGraphBuilder2* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) {
6440     return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink);
6441 }
6442 static FORCEINLINE HRESULT ICaptureGraphBuilder2_FindInterface(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,void **ppint) {
6443     return This->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint);
6444 }
6445 static FORCEINLINE HRESULT ICaptureGraphBuilder2_RenderStream(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) {
6446     return This->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer);
6447 }
6448 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) {
6449     return This->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie);
6450 }
6451 static FORCEINLINE HRESULT ICaptureGraphBuilder2_AllocCapFile(ICaptureGraphBuilder2* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
6452     return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
6453 }
6454 static FORCEINLINE HRESULT ICaptureGraphBuilder2_CopyCaptureFile(ICaptureGraphBuilder2* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) {
6455     return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback);
6456 }
6457 static FORCEINLINE HRESULT ICaptureGraphBuilder2_FindPin(ICaptureGraphBuilder2* This,IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,WINBOOL fUnconnected,int num,IPin **ppPin) {
6458     return This->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin);
6459 }
6460 #endif
6461 #endif
6462 
6463 #endif
6464 
6465 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RemoteFindInterface_Proxy(
6466     ICaptureGraphBuilder2* This,
6467     const GUID *pCategory,
6468     const GUID *pType,
6469     IBaseFilter *pf,
6470     REFIID riid,
6471     IUnknown **ppint);
6472 void __RPC_STUB ICaptureGraphBuilder2_RemoteFindInterface_Stub(
6473     IRpcStubBuffer* This,
6474     IRpcChannelBuffer* pRpcChannelBuffer,
6475     PRPC_MESSAGE pRpcMessage,
6476     DWORD* pdwStubPhase);
6477 HRESULT CALLBACK ICaptureGraphBuilder2_FindInterface_Proxy(
6478     ICaptureGraphBuilder2* This,
6479     const GUID *pCategory,
6480     const GUID *pType,
6481     IBaseFilter *pf,
6482     REFIID riid,
6483     void **ppint);
6484 HRESULT __RPC_STUB ICaptureGraphBuilder2_FindInterface_Stub(
6485     ICaptureGraphBuilder2* This,
6486     const GUID *pCategory,
6487     const GUID *pType,
6488     IBaseFilter *pf,
6489     REFIID riid,
6490     IUnknown **ppint);
6491 
6492 #endif  /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */
6493 
6494 /*****************************************************************************
6495  * IConfigAviMux interface
6496  */
6497 #ifndef __IConfigAviMux_INTERFACE_DEFINED__
6498 #define __IConfigAviMux_INTERFACE_DEFINED__
6499 
6500 DEFINE_GUID(IID_IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
6501 #if defined(__cplusplus) && !defined(CINTERFACE)
6502 MIDL_INTERFACE("5acd6aa0-f482-11ce-8b67-00aa00a3f1a6")
6503 IConfigAviMux : public IUnknown
6504 {
6505     virtual HRESULT STDMETHODCALLTYPE SetMasterStream(
6506         LONG iStream) = 0;
6507 
6508     virtual HRESULT STDMETHODCALLTYPE GetMasterStream(
6509         LONG *pStream) = 0;
6510 
6511     virtual HRESULT STDMETHODCALLTYPE SetOutputCompatibilityIndex(
6512         WINBOOL fOldIndex) = 0;
6513 
6514     virtual HRESULT STDMETHODCALLTYPE GetOutputCompatibilityIndex(
6515         WINBOOL *pfOldIndex) = 0;
6516 
6517 };
6518 #ifdef __CRT_UUID_DECL
6519 __CRT_UUID_DECL(IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6)
6520 #endif
6521 #else
6522 typedef struct IConfigAviMuxVtbl {
6523     BEGIN_INTERFACE
6524 
6525     /*** IUnknown methods ***/
6526     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6527         IConfigAviMux *This,
6528         REFIID riid,
6529         void **ppvObject);
6530 
6531     ULONG (STDMETHODCALLTYPE *AddRef)(
6532         IConfigAviMux *This);
6533 
6534     ULONG (STDMETHODCALLTYPE *Release)(
6535         IConfigAviMux *This);
6536 
6537     /*** IConfigAviMux methods ***/
6538     HRESULT (STDMETHODCALLTYPE *SetMasterStream)(
6539         IConfigAviMux *This,
6540         LONG iStream);
6541 
6542     HRESULT (STDMETHODCALLTYPE *GetMasterStream)(
6543         IConfigAviMux *This,
6544         LONG *pStream);
6545 
6546     HRESULT (STDMETHODCALLTYPE *SetOutputCompatibilityIndex)(
6547         IConfigAviMux *This,
6548         WINBOOL fOldIndex);
6549 
6550     HRESULT (STDMETHODCALLTYPE *GetOutputCompatibilityIndex)(
6551         IConfigAviMux *This,
6552         WINBOOL *pfOldIndex);
6553 
6554     END_INTERFACE
6555 } IConfigAviMuxVtbl;
6556 
6557 interface IConfigAviMux {
6558     CONST_VTBL IConfigAviMuxVtbl* lpVtbl;
6559 };
6560 
6561 #ifdef COBJMACROS
6562 #ifndef WIDL_C_INLINE_WRAPPERS
6563 /*** IUnknown methods ***/
6564 #define IConfigAviMux_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6565 #define IConfigAviMux_AddRef(This) (This)->lpVtbl->AddRef(This)
6566 #define IConfigAviMux_Release(This) (This)->lpVtbl->Release(This)
6567 /*** IConfigAviMux methods ***/
6568 #define IConfigAviMux_SetMasterStream(This,iStream) (This)->lpVtbl->SetMasterStream(This,iStream)
6569 #define IConfigAviMux_GetMasterStream(This,pStream) (This)->lpVtbl->GetMasterStream(This,pStream)
6570 #define IConfigAviMux_SetOutputCompatibilityIndex(This,fOldIndex) (This)->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex)
6571 #define IConfigAviMux_GetOutputCompatibilityIndex(This,pfOldIndex) (This)->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex)
6572 #else
6573 /*** IUnknown methods ***/
6574 static FORCEINLINE HRESULT IConfigAviMux_QueryInterface(IConfigAviMux* This,REFIID riid,void **ppvObject) {
6575     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6576 }
6577 static FORCEINLINE ULONG IConfigAviMux_AddRef(IConfigAviMux* This) {
6578     return This->lpVtbl->AddRef(This);
6579 }
6580 static FORCEINLINE ULONG IConfigAviMux_Release(IConfigAviMux* This) {
6581     return This->lpVtbl->Release(This);
6582 }
6583 /*** IConfigAviMux methods ***/
6584 static FORCEINLINE HRESULT IConfigAviMux_SetMasterStream(IConfigAviMux* This,LONG iStream) {
6585     return This->lpVtbl->SetMasterStream(This,iStream);
6586 }
6587 static FORCEINLINE HRESULT IConfigAviMux_GetMasterStream(IConfigAviMux* This,LONG *pStream) {
6588     return This->lpVtbl->GetMasterStream(This,pStream);
6589 }
6590 static FORCEINLINE HRESULT IConfigAviMux_SetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL fOldIndex) {
6591     return This->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex);
6592 }
6593 static FORCEINLINE HRESULT IConfigAviMux_GetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL *pfOldIndex) {
6594     return This->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex);
6595 }
6596 #endif
6597 #endif
6598 
6599 #endif
6600 
6601 
6602 #endif  /* __IConfigAviMux_INTERFACE_DEFINED__ */
6603 
6604 /*****************************************************************************
6605  * IConfigInterleaving interface
6606  */
6607 #ifndef __IConfigInterleaving_INTERFACE_DEFINED__
6608 #define __IConfigInterleaving_INTERFACE_DEFINED__
6609 
6610 typedef enum InterleavingMode {
6611     INTERLEAVE_NONE = 0,
6612     INTERLEAVE_CAPTURE = 1,
6613     INTERLEAVE_FULL = 2,
6614     INTERLEAVE_NONE_BUFFERED = 3
6615 } InterleavingMode;
6616 DEFINE_GUID(IID_IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86);
6617 #if defined(__cplusplus) && !defined(CINTERFACE)
6618 MIDL_INTERFACE("bee3d220-157b-11d0-bd23-00a0c911ce86")
6619 IConfigInterleaving : public IUnknown
6620 {
6621     virtual HRESULT STDMETHODCALLTYPE put_Mode(
6622         InterleavingMode mode) = 0;
6623 
6624     virtual HRESULT STDMETHODCALLTYPE get_Mode(
6625         InterleavingMode *pMode) = 0;
6626 
6627     virtual HRESULT STDMETHODCALLTYPE put_Interleaving(
6628         const REFERENCE_TIME *prtInterleave,
6629         const REFERENCE_TIME *prtPreroll) = 0;
6630 
6631     virtual HRESULT STDMETHODCALLTYPE get_Interleaving(
6632         REFERENCE_TIME *prtInterleave,
6633         REFERENCE_TIME *prtPreroll) = 0;
6634 
6635 };
6636 #ifdef __CRT_UUID_DECL
6637 __CRT_UUID_DECL(IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86)
6638 #endif
6639 #else
6640 typedef struct IConfigInterleavingVtbl {
6641     BEGIN_INTERFACE
6642 
6643     /*** IUnknown methods ***/
6644     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6645         IConfigInterleaving *This,
6646         REFIID riid,
6647         void **ppvObject);
6648 
6649     ULONG (STDMETHODCALLTYPE *AddRef)(
6650         IConfigInterleaving *This);
6651 
6652     ULONG (STDMETHODCALLTYPE *Release)(
6653         IConfigInterleaving *This);
6654 
6655     /*** IConfigInterleaving methods ***/
6656     HRESULT (STDMETHODCALLTYPE *put_Mode)(
6657         IConfigInterleaving *This,
6658         InterleavingMode mode);
6659 
6660     HRESULT (STDMETHODCALLTYPE *get_Mode)(
6661         IConfigInterleaving *This,
6662         InterleavingMode *pMode);
6663 
6664     HRESULT (STDMETHODCALLTYPE *put_Interleaving)(
6665         IConfigInterleaving *This,
6666         const REFERENCE_TIME *prtInterleave,
6667         const REFERENCE_TIME *prtPreroll);
6668 
6669     HRESULT (STDMETHODCALLTYPE *get_Interleaving)(
6670         IConfigInterleaving *This,
6671         REFERENCE_TIME *prtInterleave,
6672         REFERENCE_TIME *prtPreroll);
6673 
6674     END_INTERFACE
6675 } IConfigInterleavingVtbl;
6676 
6677 interface IConfigInterleaving {
6678     CONST_VTBL IConfigInterleavingVtbl* lpVtbl;
6679 };
6680 
6681 #ifdef COBJMACROS
6682 #ifndef WIDL_C_INLINE_WRAPPERS
6683 /*** IUnknown methods ***/
6684 #define IConfigInterleaving_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6685 #define IConfigInterleaving_AddRef(This) (This)->lpVtbl->AddRef(This)
6686 #define IConfigInterleaving_Release(This) (This)->lpVtbl->Release(This)
6687 /*** IConfigInterleaving methods ***/
6688 #define IConfigInterleaving_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
6689 #define IConfigInterleaving_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
6690 #define IConfigInterleaving_put_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll)
6691 #define IConfigInterleaving_get_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll)
6692 #else
6693 /*** IUnknown methods ***/
6694 static FORCEINLINE HRESULT IConfigInterleaving_QueryInterface(IConfigInterleaving* This,REFIID riid,void **ppvObject) {
6695     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6696 }
6697 static FORCEINLINE ULONG IConfigInterleaving_AddRef(IConfigInterleaving* This) {
6698     return This->lpVtbl->AddRef(This);
6699 }
6700 static FORCEINLINE ULONG IConfigInterleaving_Release(IConfigInterleaving* This) {
6701     return This->lpVtbl->Release(This);
6702 }
6703 /*** IConfigInterleaving methods ***/
6704 static FORCEINLINE HRESULT IConfigInterleaving_put_Mode(IConfigInterleaving* This,InterleavingMode mode) {
6705     return This->lpVtbl->put_Mode(This,mode);
6706 }
6707 static FORCEINLINE HRESULT IConfigInterleaving_get_Mode(IConfigInterleaving* This,InterleavingMode *pMode) {
6708     return This->lpVtbl->get_Mode(This,pMode);
6709 }
6710 static FORCEINLINE HRESULT IConfigInterleaving_put_Interleaving(IConfigInterleaving* This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll) {
6711     return This->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll);
6712 }
6713 static FORCEINLINE HRESULT IConfigInterleaving_get_Interleaving(IConfigInterleaving* This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll) {
6714     return This->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll);
6715 }
6716 #endif
6717 #endif
6718 
6719 #endif
6720 
6721 
6722 #endif  /* __IConfigInterleaving_INTERFACE_DEFINED__ */
6723 
6724 /*****************************************************************************
6725  * IAMClockSlave interface
6726  */
6727 #ifndef __IAMClockSlave_INTERFACE_DEFINED__
6728 #define __IAMClockSlave_INTERFACE_DEFINED__
6729 
6730 DEFINE_GUID(IID_IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe);
6731 #if defined(__cplusplus) && !defined(CINTERFACE)
6732 MIDL_INTERFACE("9fd52741-176d-4b36-8f51-ca8f933223be")
6733 IAMClockSlave : public IUnknown
6734 {
6735     virtual HRESULT STDMETHODCALLTYPE SetErrorTolerance(
6736         DWORD dwTolerance) = 0;
6737 
6738     virtual HRESULT STDMETHODCALLTYPE GetErrorTolerance(
6739         DWORD *pdwTolerance) = 0;
6740 
6741 };
6742 #ifdef __CRT_UUID_DECL
6743 __CRT_UUID_DECL(IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe)
6744 #endif
6745 #else
6746 typedef struct IAMClockSlaveVtbl {
6747     BEGIN_INTERFACE
6748 
6749     /*** IUnknown methods ***/
6750     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6751         IAMClockSlave *This,
6752         REFIID riid,
6753         void **ppvObject);
6754 
6755     ULONG (STDMETHODCALLTYPE *AddRef)(
6756         IAMClockSlave *This);
6757 
6758     ULONG (STDMETHODCALLTYPE *Release)(
6759         IAMClockSlave *This);
6760 
6761     /*** IAMClockSlave methods ***/
6762     HRESULT (STDMETHODCALLTYPE *SetErrorTolerance)(
6763         IAMClockSlave *This,
6764         DWORD dwTolerance);
6765 
6766     HRESULT (STDMETHODCALLTYPE *GetErrorTolerance)(
6767         IAMClockSlave *This,
6768         DWORD *pdwTolerance);
6769 
6770     END_INTERFACE
6771 } IAMClockSlaveVtbl;
6772 
6773 interface IAMClockSlave {
6774     CONST_VTBL IAMClockSlaveVtbl* lpVtbl;
6775 };
6776 
6777 #ifdef COBJMACROS
6778 #ifndef WIDL_C_INLINE_WRAPPERS
6779 /*** IUnknown methods ***/
6780 #define IAMClockSlave_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6781 #define IAMClockSlave_AddRef(This) (This)->lpVtbl->AddRef(This)
6782 #define IAMClockSlave_Release(This) (This)->lpVtbl->Release(This)
6783 /*** IAMClockSlave methods ***/
6784 #define IAMClockSlave_SetErrorTolerance(This,dwTolerance) (This)->lpVtbl->SetErrorTolerance(This,dwTolerance)
6785 #define IAMClockSlave_GetErrorTolerance(This,pdwTolerance) (This)->lpVtbl->GetErrorTolerance(This,pdwTolerance)
6786 #else
6787 /*** IUnknown methods ***/
6788 static FORCEINLINE HRESULT IAMClockSlave_QueryInterface(IAMClockSlave* This,REFIID riid,void **ppvObject) {
6789     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6790 }
6791 static FORCEINLINE ULONG IAMClockSlave_AddRef(IAMClockSlave* This) {
6792     return This->lpVtbl->AddRef(This);
6793 }
6794 static FORCEINLINE ULONG IAMClockSlave_Release(IAMClockSlave* This) {
6795     return This->lpVtbl->Release(This);
6796 }
6797 /*** IAMClockSlave methods ***/
6798 static FORCEINLINE HRESULT IAMClockSlave_SetErrorTolerance(IAMClockSlave* This,DWORD dwTolerance) {
6799     return This->lpVtbl->SetErrorTolerance(This,dwTolerance);
6800 }
6801 static FORCEINLINE HRESULT IAMClockSlave_GetErrorTolerance(IAMClockSlave* This,DWORD *pdwTolerance) {
6802     return This->lpVtbl->GetErrorTolerance(This,pdwTolerance);
6803 }
6804 #endif
6805 #endif
6806 
6807 #endif
6808 
6809 
6810 #endif  /* __IAMClockSlave_INTERFACE_DEFINED__ */
6811 
6812 typedef struct _AMCOPPSignature {
6813     BYTE Signature[256];
6814 } AMCOPPSignature;
6815 typedef struct _AMCOPPCommand {
6816     GUID macKDI;
6817     GUID guidCommandID;
6818     DWORD dwSequence;
6819     DWORD bSizeData;
6820     BYTE CommandData[4056];
6821 } AMCOPPCommand;
6822 typedef struct _AMCOPPCommand *LPAMCOPPCommand;
6823 typedef struct _AMCOPPStatusInput {
6824     GUID rApp;
6825     GUID guidStatusRequestID;
6826     DWORD dwSequence;
6827     DWORD cbSizeData;
6828     BYTE StatusData[4056];
6829 } AMCOPPStatusInput;
6830 typedef struct _AMCOPPStatusInput *LPAMCOPPStatusInput;
6831 typedef struct _AMCOPPStatusOutput {
6832     GUID macKDI;
6833     DWORD cbSizeData;
6834     BYTE COPPStatus[4076];
6835 } AMCOPPStatusOutput;
6836 typedef struct _AMCOPPStatusOutput *LPAMCOPPStatusOutput;
6837 /*****************************************************************************
6838  * IAMCertifiedOutputProtection interface
6839  */
6840 #ifndef __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
6841 #define __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
6842 
6843 DEFINE_GUID(IID_IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15);
6844 #if defined(__cplusplus) && !defined(CINTERFACE)
6845 MIDL_INTERFACE("6feded3e-0ff1-4901-a2f1-43f7012c8515")
6846 IAMCertifiedOutputProtection : public IUnknown
6847 {
6848     virtual HRESULT STDMETHODCALLTYPE KeyExchange(
6849         GUID *pRandom,
6850         BYTE **VarLenCertGH,
6851         DWORD *pdwLengthCertGH) = 0;
6852 
6853     virtual HRESULT STDMETHODCALLTYPE SessionSequenceStart(
6854         AMCOPPSignature *pSig) = 0;
6855 
6856     virtual HRESULT STDMETHODCALLTYPE ProtectionCommand(
6857         const AMCOPPCommand *cmd) = 0;
6858 
6859     virtual HRESULT STDMETHODCALLTYPE ProtectionStatus(
6860         const AMCOPPStatusInput *pStatusInput,
6861         AMCOPPStatusOutput *pStatusOutput) = 0;
6862 
6863 };
6864 #ifdef __CRT_UUID_DECL
6865 __CRT_UUID_DECL(IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15)
6866 #endif
6867 #else
6868 typedef struct IAMCertifiedOutputProtectionVtbl {
6869     BEGIN_INTERFACE
6870 
6871     /*** IUnknown methods ***/
6872     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6873         IAMCertifiedOutputProtection *This,
6874         REFIID riid,
6875         void **ppvObject);
6876 
6877     ULONG (STDMETHODCALLTYPE *AddRef)(
6878         IAMCertifiedOutputProtection *This);
6879 
6880     ULONG (STDMETHODCALLTYPE *Release)(
6881         IAMCertifiedOutputProtection *This);
6882 
6883     /*** IAMCertifiedOutputProtection methods ***/
6884     HRESULT (STDMETHODCALLTYPE *KeyExchange)(
6885         IAMCertifiedOutputProtection *This,
6886         GUID *pRandom,
6887         BYTE **VarLenCertGH,
6888         DWORD *pdwLengthCertGH);
6889 
6890     HRESULT (STDMETHODCALLTYPE *SessionSequenceStart)(
6891         IAMCertifiedOutputProtection *This,
6892         AMCOPPSignature *pSig);
6893 
6894     HRESULT (STDMETHODCALLTYPE *ProtectionCommand)(
6895         IAMCertifiedOutputProtection *This,
6896         const AMCOPPCommand *cmd);
6897 
6898     HRESULT (STDMETHODCALLTYPE *ProtectionStatus)(
6899         IAMCertifiedOutputProtection *This,
6900         const AMCOPPStatusInput *pStatusInput,
6901         AMCOPPStatusOutput *pStatusOutput);
6902 
6903     END_INTERFACE
6904 } IAMCertifiedOutputProtectionVtbl;
6905 
6906 interface IAMCertifiedOutputProtection {
6907     CONST_VTBL IAMCertifiedOutputProtectionVtbl* lpVtbl;
6908 };
6909 
6910 #ifdef COBJMACROS
6911 #ifndef WIDL_C_INLINE_WRAPPERS
6912 /*** IUnknown methods ***/
6913 #define IAMCertifiedOutputProtection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6914 #define IAMCertifiedOutputProtection_AddRef(This) (This)->lpVtbl->AddRef(This)
6915 #define IAMCertifiedOutputProtection_Release(This) (This)->lpVtbl->Release(This)
6916 /*** IAMCertifiedOutputProtection methods ***/
6917 #define IAMCertifiedOutputProtection_KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH) (This)->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH)
6918 #define IAMCertifiedOutputProtection_SessionSequenceStart(This,pSig) (This)->lpVtbl->SessionSequenceStart(This,pSig)
6919 #define IAMCertifiedOutputProtection_ProtectionCommand(This,cmd) (This)->lpVtbl->ProtectionCommand(This,cmd)
6920 #define IAMCertifiedOutputProtection_ProtectionStatus(This,pStatusInput,pStatusOutput) (This)->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput)
6921 #else
6922 /*** IUnknown methods ***/
6923 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_QueryInterface(IAMCertifiedOutputProtection* This,REFIID riid,void **ppvObject) {
6924     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6925 }
6926 static FORCEINLINE ULONG IAMCertifiedOutputProtection_AddRef(IAMCertifiedOutputProtection* This) {
6927     return This->lpVtbl->AddRef(This);
6928 }
6929 static FORCEINLINE ULONG IAMCertifiedOutputProtection_Release(IAMCertifiedOutputProtection* This) {
6930     return This->lpVtbl->Release(This);
6931 }
6932 /*** IAMCertifiedOutputProtection methods ***/
6933 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_KeyExchange(IAMCertifiedOutputProtection* This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH) {
6934     return This->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH);
6935 }
6936 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_SessionSequenceStart(IAMCertifiedOutputProtection* This,AMCOPPSignature *pSig) {
6937     return This->lpVtbl->SessionSequenceStart(This,pSig);
6938 }
6939 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_ProtectionCommand(IAMCertifiedOutputProtection* This,const AMCOPPCommand *cmd) {
6940     return This->lpVtbl->ProtectionCommand(This,cmd);
6941 }
6942 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_ProtectionStatus(IAMCertifiedOutputProtection* This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput) {
6943     return This->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput);
6944 }
6945 #endif
6946 #endif
6947 
6948 #endif
6949 
6950 
6951 #endif  /* __IAMCertifiedOutputProtection_INTERFACE_DEFINED__ */
6952 
6953 enum _AM_RENSDEREXFLAGS {
6954     AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1
6955 };
6956 /*****************************************************************************
6957  * IFilterGraph2 interface
6958  */
6959 #ifndef __IFilterGraph2_INTERFACE_DEFINED__
6960 #define __IFilterGraph2_INTERFACE_DEFINED__
6961 
6962 DEFINE_GUID(IID_IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
6963 #if defined(__cplusplus) && !defined(CINTERFACE)
6964 MIDL_INTERFACE("36b73882-c2c8-11cf-8b46-00805f6cef60")
6965 IFilterGraph2 : public IGraphBuilder
6966 {
6967     virtual HRESULT STDMETHODCALLTYPE AddSourceFilterForMoniker(
6968         IMoniker *pMoniker,
6969         IBindCtx *pCtx,
6970         LPCWSTR lpcwstrFilterName,
6971         IBaseFilter **ppFilter) = 0;
6972 
6973     virtual HRESULT STDMETHODCALLTYPE ReconnectEx(
6974         IPin *ppin,
6975         const AM_MEDIA_TYPE *pmt) = 0;
6976 
6977     virtual HRESULT STDMETHODCALLTYPE RenderEx(
6978         IPin *pPinOut,
6979         DWORD dwFlags,
6980         DWORD *pvContext) = 0;
6981 
6982 };
6983 #ifdef __CRT_UUID_DECL
6984 __CRT_UUID_DECL(IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
6985 #endif
6986 #else
6987 typedef struct IFilterGraph2Vtbl {
6988     BEGIN_INTERFACE
6989 
6990     /*** IUnknown methods ***/
6991     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6992         IFilterGraph2 *This,
6993         REFIID riid,
6994         void **ppvObject);
6995 
6996     ULONG (STDMETHODCALLTYPE *AddRef)(
6997         IFilterGraph2 *This);
6998 
6999     ULONG (STDMETHODCALLTYPE *Release)(
7000         IFilterGraph2 *This);
7001 
7002     /*** IFilterGraph methods ***/
7003     HRESULT (STDMETHODCALLTYPE *AddFilter)(
7004         IFilterGraph2 *This,
7005         IBaseFilter *pFilter,
7006         LPCWSTR pName);
7007 
7008     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
7009         IFilterGraph2 *This,
7010         IBaseFilter *pFilter);
7011 
7012     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
7013         IFilterGraph2 *This,
7014         IEnumFilters **ppEnum);
7015 
7016     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
7017         IFilterGraph2 *This,
7018         LPCWSTR pName,
7019         IBaseFilter **ppFilter);
7020 
7021     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
7022         IFilterGraph2 *This,
7023         IPin *ppinOut,
7024         IPin *ppinIn,
7025         const AM_MEDIA_TYPE *pmt);
7026 
7027     HRESULT (STDMETHODCALLTYPE *Reconnect)(
7028         IFilterGraph2 *This,
7029         IPin *ppin);
7030 
7031     HRESULT (STDMETHODCALLTYPE *Disconnect)(
7032         IFilterGraph2 *This,
7033         IPin *ppin);
7034 
7035     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
7036         IFilterGraph2 *This);
7037 
7038     /*** IGraphBuilder methods ***/
7039     HRESULT (STDMETHODCALLTYPE *Connect)(
7040         IFilterGraph2 *This,
7041         IPin *ppinOut,
7042         IPin *ppinIn);
7043 
7044     HRESULT (STDMETHODCALLTYPE *Render)(
7045         IFilterGraph2 *This,
7046         IPin *ppinOut);
7047 
7048     HRESULT (STDMETHODCALLTYPE *RenderFile)(
7049         IFilterGraph2 *This,
7050         LPCWSTR lpcwstrFile,
7051         LPCWSTR lpcwstrPlayList);
7052 
7053     HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
7054         IFilterGraph2 *This,
7055         LPCWSTR lpcwstrFileName,
7056         LPCWSTR lpcwstrFilterName,
7057         IBaseFilter **ppFilter);
7058 
7059     HRESULT (STDMETHODCALLTYPE *SetLogFile)(
7060         IFilterGraph2 *This,
7061         DWORD_PTR hFile);
7062 
7063     HRESULT (STDMETHODCALLTYPE *Abort)(
7064         IFilterGraph2 *This);
7065 
7066     HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
7067         IFilterGraph2 *This);
7068 
7069     /*** IFilterGraph2 methods ***/
7070     HRESULT (STDMETHODCALLTYPE *AddSourceFilterForMoniker)(
7071         IFilterGraph2 *This,
7072         IMoniker *pMoniker,
7073         IBindCtx *pCtx,
7074         LPCWSTR lpcwstrFilterName,
7075         IBaseFilter **ppFilter);
7076 
7077     HRESULT (STDMETHODCALLTYPE *ReconnectEx)(
7078         IFilterGraph2 *This,
7079         IPin *ppin,
7080         const AM_MEDIA_TYPE *pmt);
7081 
7082     HRESULT (STDMETHODCALLTYPE *RenderEx)(
7083         IFilterGraph2 *This,
7084         IPin *pPinOut,
7085         DWORD dwFlags,
7086         DWORD *pvContext);
7087 
7088     END_INTERFACE
7089 } IFilterGraph2Vtbl;
7090 
7091 interface IFilterGraph2 {
7092     CONST_VTBL IFilterGraph2Vtbl* lpVtbl;
7093 };
7094 
7095 #ifdef COBJMACROS
7096 #ifndef WIDL_C_INLINE_WRAPPERS
7097 /*** IUnknown methods ***/
7098 #define IFilterGraph2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7099 #define IFilterGraph2_AddRef(This) (This)->lpVtbl->AddRef(This)
7100 #define IFilterGraph2_Release(This) (This)->lpVtbl->Release(This)
7101 /*** IFilterGraph methods ***/
7102 #define IFilterGraph2_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
7103 #define IFilterGraph2_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
7104 #define IFilterGraph2_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
7105 #define IFilterGraph2_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
7106 #define IFilterGraph2_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
7107 #define IFilterGraph2_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
7108 #define IFilterGraph2_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
7109 #define IFilterGraph2_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
7110 /*** IGraphBuilder methods ***/
7111 #define IFilterGraph2_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
7112 #define IFilterGraph2_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
7113 #define IFilterGraph2_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
7114 #define IFilterGraph2_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
7115 #define IFilterGraph2_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
7116 #define IFilterGraph2_Abort(This) (This)->lpVtbl->Abort(This)
7117 #define IFilterGraph2_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
7118 /*** IFilterGraph2 methods ***/
7119 #define IFilterGraph2_AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter)
7120 #define IFilterGraph2_ReconnectEx(This,ppin,pmt) (This)->lpVtbl->ReconnectEx(This,ppin,pmt)
7121 #define IFilterGraph2_RenderEx(This,pPinOut,dwFlags,pvContext) (This)->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext)
7122 #else
7123 /*** IUnknown methods ***/
7124 static FORCEINLINE HRESULT IFilterGraph2_QueryInterface(IFilterGraph2* This,REFIID riid,void **ppvObject) {
7125     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7126 }
7127 static FORCEINLINE ULONG IFilterGraph2_AddRef(IFilterGraph2* This) {
7128     return This->lpVtbl->AddRef(This);
7129 }
7130 static FORCEINLINE ULONG IFilterGraph2_Release(IFilterGraph2* This) {
7131     return This->lpVtbl->Release(This);
7132 }
7133 /*** IFilterGraph methods ***/
7134 static FORCEINLINE HRESULT IFilterGraph2_AddFilter(IFilterGraph2* This,IBaseFilter *pFilter,LPCWSTR pName) {
7135     return This->lpVtbl->AddFilter(This,pFilter,pName);
7136 }
7137 static FORCEINLINE HRESULT IFilterGraph2_RemoveFilter(IFilterGraph2* This,IBaseFilter *pFilter) {
7138     return This->lpVtbl->RemoveFilter(This,pFilter);
7139 }
7140 static FORCEINLINE HRESULT IFilterGraph2_EnumFilters(IFilterGraph2* This,IEnumFilters **ppEnum) {
7141     return This->lpVtbl->EnumFilters(This,ppEnum);
7142 }
7143 static FORCEINLINE HRESULT IFilterGraph2_FindFilterByName(IFilterGraph2* This,LPCWSTR pName,IBaseFilter **ppFilter) {
7144     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
7145 }
7146 static FORCEINLINE HRESULT IFilterGraph2_ConnectDirect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
7147     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
7148 }
7149 static FORCEINLINE HRESULT IFilterGraph2_Reconnect(IFilterGraph2* This,IPin *ppin) {
7150     return This->lpVtbl->Reconnect(This,ppin);
7151 }
7152 static FORCEINLINE HRESULT IFilterGraph2_Disconnect(IFilterGraph2* This,IPin *ppin) {
7153     return This->lpVtbl->Disconnect(This,ppin);
7154 }
7155 static FORCEINLINE HRESULT IFilterGraph2_SetDefaultSyncSource(IFilterGraph2* This) {
7156     return This->lpVtbl->SetDefaultSyncSource(This);
7157 }
7158 /*** IGraphBuilder methods ***/
7159 static FORCEINLINE HRESULT IFilterGraph2_Connect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn) {
7160     return This->lpVtbl->Connect(This,ppinOut,ppinIn);
7161 }
7162 static FORCEINLINE HRESULT IFilterGraph2_Render(IFilterGraph2* This,IPin *ppinOut) {
7163     return This->lpVtbl->Render(This,ppinOut);
7164 }
7165 static FORCEINLINE HRESULT IFilterGraph2_RenderFile(IFilterGraph2* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
7166     return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
7167 }
7168 static FORCEINLINE HRESULT IFilterGraph2_AddSourceFilter(IFilterGraph2* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
7169     return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
7170 }
7171 static FORCEINLINE HRESULT IFilterGraph2_SetLogFile(IFilterGraph2* This,DWORD_PTR hFile) {
7172     return This->lpVtbl->SetLogFile(This,hFile);
7173 }
7174 static FORCEINLINE HRESULT IFilterGraph2_Abort(IFilterGraph2* This) {
7175     return This->lpVtbl->Abort(This);
7176 }
7177 static FORCEINLINE HRESULT IFilterGraph2_ShouldOperationContinue(IFilterGraph2* This) {
7178     return This->lpVtbl->ShouldOperationContinue(This);
7179 }
7180 /*** IFilterGraph2 methods ***/
7181 static FORCEINLINE HRESULT IFilterGraph2_AddSourceFilterForMoniker(IFilterGraph2* This,IMoniker *pMoniker,IBindCtx *pCtx,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
7182     return This->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter);
7183 }
7184 static FORCEINLINE HRESULT IFilterGraph2_ReconnectEx(IFilterGraph2* This,IPin *ppin,const AM_MEDIA_TYPE *pmt) {
7185     return This->lpVtbl->ReconnectEx(This,ppin,pmt);
7186 }
7187 static FORCEINLINE HRESULT IFilterGraph2_RenderEx(IFilterGraph2* This,IPin *pPinOut,DWORD dwFlags,DWORD *pvContext) {
7188     return This->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext);
7189 }
7190 #endif
7191 #endif
7192 
7193 #endif
7194 
7195 
7196 #endif  /* __IFilterGraph2_INTERFACE_DEFINED__ */
7197 
7198 /*****************************************************************************
7199  * IStreamBuilder interface
7200  */
7201 #ifndef __IStreamBuilder_INTERFACE_DEFINED__
7202 #define __IStreamBuilder_INTERFACE_DEFINED__
7203 
7204 DEFINE_GUID(IID_IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
7205 #if defined(__cplusplus) && !defined(CINTERFACE)
7206 MIDL_INTERFACE("56a868bf-0ad4-11ce-b03a-0020af0ba770")
7207 IStreamBuilder : public IUnknown
7208 {
7209     virtual HRESULT STDMETHODCALLTYPE Render(
7210         IPin *ppinOut,
7211         IGraphBuilder *pGraph) = 0;
7212 
7213     virtual HRESULT STDMETHODCALLTYPE Backout(
7214         IPin *ppinOut,
7215         IGraphBuilder *pGraph) = 0;
7216 
7217 };
7218 #ifdef __CRT_UUID_DECL
7219 __CRT_UUID_DECL(IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
7220 #endif
7221 #else
7222 typedef struct IStreamBuilderVtbl {
7223     BEGIN_INTERFACE
7224 
7225     /*** IUnknown methods ***/
7226     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7227         IStreamBuilder *This,
7228         REFIID riid,
7229         void **ppvObject);
7230 
7231     ULONG (STDMETHODCALLTYPE *AddRef)(
7232         IStreamBuilder *This);
7233 
7234     ULONG (STDMETHODCALLTYPE *Release)(
7235         IStreamBuilder *This);
7236 
7237     /*** IStreamBuilder methods ***/
7238     HRESULT (STDMETHODCALLTYPE *Render)(
7239         IStreamBuilder *This,
7240         IPin *ppinOut,
7241         IGraphBuilder *pGraph);
7242 
7243     HRESULT (STDMETHODCALLTYPE *Backout)(
7244         IStreamBuilder *This,
7245         IPin *ppinOut,
7246         IGraphBuilder *pGraph);
7247 
7248     END_INTERFACE
7249 } IStreamBuilderVtbl;
7250 
7251 interface IStreamBuilder {
7252     CONST_VTBL IStreamBuilderVtbl* lpVtbl;
7253 };
7254 
7255 #ifdef COBJMACROS
7256 #ifndef WIDL_C_INLINE_WRAPPERS
7257 /*** IUnknown methods ***/
7258 #define IStreamBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7259 #define IStreamBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
7260 #define IStreamBuilder_Release(This) (This)->lpVtbl->Release(This)
7261 /*** IStreamBuilder methods ***/
7262 #define IStreamBuilder_Render(This,ppinOut,pGraph) (This)->lpVtbl->Render(This,ppinOut,pGraph)
7263 #define IStreamBuilder_Backout(This,ppinOut,pGraph) (This)->lpVtbl->Backout(This,ppinOut,pGraph)
7264 #else
7265 /*** IUnknown methods ***/
7266 static FORCEINLINE HRESULT IStreamBuilder_QueryInterface(IStreamBuilder* This,REFIID riid,void **ppvObject) {
7267     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7268 }
7269 static FORCEINLINE ULONG IStreamBuilder_AddRef(IStreamBuilder* This) {
7270     return This->lpVtbl->AddRef(This);
7271 }
7272 static FORCEINLINE ULONG IStreamBuilder_Release(IStreamBuilder* This) {
7273     return This->lpVtbl->Release(This);
7274 }
7275 /*** IStreamBuilder methods ***/
7276 static FORCEINLINE HRESULT IStreamBuilder_Render(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) {
7277     return This->lpVtbl->Render(This,ppinOut,pGraph);
7278 }
7279 static FORCEINLINE HRESULT IStreamBuilder_Backout(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) {
7280     return This->lpVtbl->Backout(This,ppinOut,pGraph);
7281 }
7282 #endif
7283 #endif
7284 
7285 #endif
7286 
7287 
7288 #endif  /* __IStreamBuilder_INTERFACE_DEFINED__ */
7289 
7290 /*****************************************************************************
7291  * IAMStreamConfig interface
7292  */
7293 #ifndef __IAMStreamConfig_INTERFACE_DEFINED__
7294 #define __IAMStreamConfig_INTERFACE_DEFINED__
7295 
7296 typedef struct _VIDEO_STREAM_CONFIG_CAPS {
7297     GUID guid;
7298     ULONG VideoStandard;
7299     SIZE InputSize;
7300     SIZE MinCroppingSize;
7301     SIZE MaxCroppingSize;
7302     int CropGranularityX;
7303     int CropGranularityY;
7304     int CropAlignX;
7305     int CropAlignY;
7306     SIZE MinOutputSize;
7307     SIZE MaxOutputSize;
7308     int OutputGranularityX;
7309     int OutputGranularityY;
7310     int StretchTapsX;
7311     int StretchTapsY;
7312     int ShrinkTapsX;
7313     int ShrinkTapsY;
7314     LONGLONG MinFrameInterval;
7315     LONGLONG MaxFrameInterval;
7316     LONG MinBitsPerSecond;
7317     LONG MaxBitsPerSecond;
7318 } VIDEO_STREAM_CONFIG_CAPS;
7319 typedef struct _AUDIO_STREAM_CONFIG_CAPS {
7320     GUID guid;
7321     ULONG MinimumChannels;
7322     ULONG MaximumChannels;
7323     ULONG ChannelsGranularity;
7324     ULONG MinimumBitsPerSample;
7325     ULONG MaximumBitsPerSample;
7326     ULONG BitsPerSampleGranularity;
7327     ULONG MinimumSampleFrequency;
7328     ULONG MaximumSampleFrequency;
7329     ULONG SampleFrequencyGranularity;
7330 } AUDIO_STREAM_CONFIG_CAPS;
7331 DEFINE_GUID(IID_IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
7332 #if defined(__cplusplus) && !defined(CINTERFACE)
7333 MIDL_INTERFACE("c6e13340-30ac-11d0-a18c-00a0c9118956")
7334 IAMStreamConfig : public IUnknown
7335 {
7336     virtual HRESULT STDMETHODCALLTYPE SetFormat(
7337         AM_MEDIA_TYPE *pmt) = 0;
7338 
7339     virtual HRESULT STDMETHODCALLTYPE GetFormat(
7340         AM_MEDIA_TYPE **pmt) = 0;
7341 
7342     virtual HRESULT STDMETHODCALLTYPE GetNumberOfCapabilities(
7343         int *piCount,
7344         int *piSize) = 0;
7345 
7346     virtual HRESULT STDMETHODCALLTYPE GetStreamCaps(
7347         int iIndex,
7348         AM_MEDIA_TYPE **pmt,
7349         BYTE *pSCC) = 0;
7350 
7351 };
7352 #ifdef __CRT_UUID_DECL
7353 __CRT_UUID_DECL(IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
7354 #endif
7355 #else
7356 typedef struct IAMStreamConfigVtbl {
7357     BEGIN_INTERFACE
7358 
7359     /*** IUnknown methods ***/
7360     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7361         IAMStreamConfig *This,
7362         REFIID riid,
7363         void **ppvObject);
7364 
7365     ULONG (STDMETHODCALLTYPE *AddRef)(
7366         IAMStreamConfig *This);
7367 
7368     ULONG (STDMETHODCALLTYPE *Release)(
7369         IAMStreamConfig *This);
7370 
7371     /*** IAMStreamConfig methods ***/
7372     HRESULT (STDMETHODCALLTYPE *SetFormat)(
7373         IAMStreamConfig *This,
7374         AM_MEDIA_TYPE *pmt);
7375 
7376     HRESULT (STDMETHODCALLTYPE *GetFormat)(
7377         IAMStreamConfig *This,
7378         AM_MEDIA_TYPE **pmt);
7379 
7380     HRESULT (STDMETHODCALLTYPE *GetNumberOfCapabilities)(
7381         IAMStreamConfig *This,
7382         int *piCount,
7383         int *piSize);
7384 
7385     HRESULT (STDMETHODCALLTYPE *GetStreamCaps)(
7386         IAMStreamConfig *This,
7387         int iIndex,
7388         AM_MEDIA_TYPE **pmt,
7389         BYTE *pSCC);
7390 
7391     END_INTERFACE
7392 } IAMStreamConfigVtbl;
7393 
7394 interface IAMStreamConfig {
7395     CONST_VTBL IAMStreamConfigVtbl* lpVtbl;
7396 };
7397 
7398 #ifdef COBJMACROS
7399 #ifndef WIDL_C_INLINE_WRAPPERS
7400 /*** IUnknown methods ***/
7401 #define IAMStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7402 #define IAMStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
7403 #define IAMStreamConfig_Release(This) (This)->lpVtbl->Release(This)
7404 /*** IAMStreamConfig methods ***/
7405 #define IAMStreamConfig_SetFormat(This,pmt) (This)->lpVtbl->SetFormat(This,pmt)
7406 #define IAMStreamConfig_GetFormat(This,pmt) (This)->lpVtbl->GetFormat(This,pmt)
7407 #define IAMStreamConfig_GetNumberOfCapabilities(This,piCount,piSize) (This)->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize)
7408 #define IAMStreamConfig_GetStreamCaps(This,iIndex,pmt,pSCC) (This)->lpVtbl->GetStreamCaps(This,iIndex,pmt,pSCC)
7409 #else
7410 /*** IUnknown methods ***/
7411 static FORCEINLINE HRESULT IAMStreamConfig_QueryInterface(IAMStreamConfig* This,REFIID riid,void **ppvObject) {
7412     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7413 }
7414 static FORCEINLINE ULONG IAMStreamConfig_AddRef(IAMStreamConfig* This) {
7415     return This->lpVtbl->AddRef(This);
7416 }
7417 static FORCEINLINE ULONG IAMStreamConfig_Release(IAMStreamConfig* This) {
7418     return This->lpVtbl->Release(This);
7419 }
7420 /*** IAMStreamConfig methods ***/
7421 static FORCEINLINE HRESULT IAMStreamConfig_SetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE *pmt) {
7422     return This->lpVtbl->SetFormat(This,pmt);
7423 }
7424 static FORCEINLINE HRESULT IAMStreamConfig_GetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE **pmt) {
7425     return This->lpVtbl->GetFormat(This,pmt);
7426 }
7427 static FORCEINLINE HRESULT IAMStreamConfig_GetNumberOfCapabilities(IAMStreamConfig* This,int *piCount,int *piSize) {
7428     return This->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize);
7429 }
7430 static FORCEINLINE HRESULT IAMStreamConfig_GetStreamCaps(IAMStreamConfig* This,int iIndex,AM_MEDIA_TYPE **pmt,BYTE *pSCC) {
7431     return This->lpVtbl->GetStreamCaps(This,iIndex,pmt,pSCC);
7432 }
7433 #endif
7434 #endif
7435 
7436 #endif
7437 
7438 
7439 #endif  /* __IAMStreamConfig_INTERFACE_DEFINED__ */
7440 
7441 typedef enum tagVideoProcAmpProperty {
7442     VideoProcAmp_Brightness = 0,
7443     VideoProcAmp_Contrast = 1,
7444     VideoProcAmp_Hue = 2,
7445     VideoProcAmp_Saturation = 3,
7446     VideoProcAmp_Sharpness = 4,
7447     VideoProcAmp_Gamma = 5,
7448     VideoProcAmp_ColorEnable = 6,
7449     VideoProcAmp_WhiteBalance = 7,
7450     VideoProcAmp_BacklightCompensation = 8,
7451     VideoProcAmp_Gain = 9
7452 } VideoProcAmpProperty;
7453 typedef enum tagVideoProcAmpFlags {
7454     VideoProcAmp_Flags_Auto = 0x1,
7455     VideoProcAmp_Flags_Manual = 0x2
7456 } VideoProcAmpFlags;
7457 /*****************************************************************************
7458  * IAMVideoProcAmp interface
7459  */
7460 #ifndef __IAMVideoProcAmp_INTERFACE_DEFINED__
7461 #define __IAMVideoProcAmp_INTERFACE_DEFINED__
7462 
7463 DEFINE_GUID(IID_IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
7464 #if defined(__cplusplus) && !defined(CINTERFACE)
7465 MIDL_INTERFACE("c6e13360-30ac-11d0-a18c-00a0c9118956")
7466 IAMVideoProcAmp : public IUnknown
7467 {
7468     virtual HRESULT STDMETHODCALLTYPE GetRange(
7469         LONG Property,
7470         LONG *pMin,
7471         LONG *pMax,
7472         LONG *pSteppingDelta,
7473         LONG *pDefault,
7474         LONG *pCapsFlags) = 0;
7475 
7476     virtual HRESULT STDMETHODCALLTYPE Set(
7477         LONG Property,
7478         LONG lValue,
7479         LONG Flags) = 0;
7480 
7481     virtual HRESULT STDMETHODCALLTYPE Get(
7482         LONG Property,
7483         LONG *lValue,
7484         LONG *Flags) = 0;
7485 
7486 };
7487 #ifdef __CRT_UUID_DECL
7488 __CRT_UUID_DECL(IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
7489 #endif
7490 #else
7491 typedef struct IAMVideoProcAmpVtbl {
7492     BEGIN_INTERFACE
7493 
7494     /*** IUnknown methods ***/
7495     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7496         IAMVideoProcAmp *This,
7497         REFIID riid,
7498         void **ppvObject);
7499 
7500     ULONG (STDMETHODCALLTYPE *AddRef)(
7501         IAMVideoProcAmp *This);
7502 
7503     ULONG (STDMETHODCALLTYPE *Release)(
7504         IAMVideoProcAmp *This);
7505 
7506     /*** IAMVideoProcAmp methods ***/
7507     HRESULT (STDMETHODCALLTYPE *GetRange)(
7508         IAMVideoProcAmp *This,
7509         LONG Property,
7510         LONG *pMin,
7511         LONG *pMax,
7512         LONG *pSteppingDelta,
7513         LONG *pDefault,
7514         LONG *pCapsFlags);
7515 
7516     HRESULT (STDMETHODCALLTYPE *Set)(
7517         IAMVideoProcAmp *This,
7518         LONG Property,
7519         LONG lValue,
7520         LONG Flags);
7521 
7522     HRESULT (STDMETHODCALLTYPE *Get)(
7523         IAMVideoProcAmp *This,
7524         LONG Property,
7525         LONG *lValue,
7526         LONG *Flags);
7527 
7528     END_INTERFACE
7529 } IAMVideoProcAmpVtbl;
7530 
7531 interface IAMVideoProcAmp {
7532     CONST_VTBL IAMVideoProcAmpVtbl* lpVtbl;
7533 };
7534 
7535 #ifdef COBJMACROS
7536 #ifndef WIDL_C_INLINE_WRAPPERS
7537 /*** IUnknown methods ***/
7538 #define IAMVideoProcAmp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7539 #define IAMVideoProcAmp_AddRef(This) (This)->lpVtbl->AddRef(This)
7540 #define IAMVideoProcAmp_Release(This) (This)->lpVtbl->Release(This)
7541 /*** IAMVideoProcAmp methods ***/
7542 #define IAMVideoProcAmp_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
7543 #define IAMVideoProcAmp_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
7544 #define IAMVideoProcAmp_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
7545 #else
7546 /*** IUnknown methods ***/
7547 static FORCEINLINE HRESULT IAMVideoProcAmp_QueryInterface(IAMVideoProcAmp* This,REFIID riid,void **ppvObject) {
7548     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7549 }
7550 static FORCEINLINE ULONG IAMVideoProcAmp_AddRef(IAMVideoProcAmp* This) {
7551     return This->lpVtbl->AddRef(This);
7552 }
7553 static FORCEINLINE ULONG IAMVideoProcAmp_Release(IAMVideoProcAmp* This) {
7554     return This->lpVtbl->Release(This);
7555 }
7556 /*** IAMVideoProcAmp methods ***/
7557 static FORCEINLINE HRESULT IAMVideoProcAmp_GetRange(IAMVideoProcAmp* This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags) {
7558     return This->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags);
7559 }
7560 static FORCEINLINE HRESULT IAMVideoProcAmp_Set(IAMVideoProcAmp* This,LONG Property,LONG lValue,LONG Flags) {
7561     return This->lpVtbl->Set(This,Property,lValue,Flags);
7562 }
7563 static FORCEINLINE HRESULT IAMVideoProcAmp_Get(IAMVideoProcAmp* This,LONG Property,LONG *lValue,LONG *Flags) {
7564     return This->lpVtbl->Get(This,Property,lValue,Flags);
7565 }
7566 #endif
7567 #endif
7568 
7569 #endif
7570 
7571 
7572 #endif  /* __IAMVideoProcAmp_INTERFACE_DEFINED__ */
7573 
7574 /*****************************************************************************
7575  * IAsyncReader interface
7576  */
7577 #ifndef __IAsyncReader_INTERFACE_DEFINED__
7578 #define __IAsyncReader_INTERFACE_DEFINED__
7579 
7580 DEFINE_GUID(IID_IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
7581 #if defined(__cplusplus) && !defined(CINTERFACE)
7582 MIDL_INTERFACE("56a868aa-0ad4-11ce-b03a-0020af0ba770")
7583 IAsyncReader : public IUnknown
7584 {
7585     virtual HRESULT STDMETHODCALLTYPE RequestAllocator(
7586         IMemAllocator *pPreferred,
7587         ALLOCATOR_PROPERTIES *pProps,
7588         IMemAllocator **ppActual) = 0;
7589 
7590     virtual HRESULT STDMETHODCALLTYPE Request(
7591         IMediaSample *pSample,
7592         DWORD_PTR dwUser) = 0;
7593 
7594     virtual HRESULT STDMETHODCALLTYPE WaitForNext(
7595         DWORD dwTimeout,
7596         IMediaSample **ppSample,
7597         DWORD_PTR *pdwUser) = 0;
7598 
7599     virtual HRESULT STDMETHODCALLTYPE SyncReadAligned(
7600         IMediaSample *pSample) = 0;
7601 
7602     virtual HRESULT STDMETHODCALLTYPE SyncRead(
7603         LONGLONG llPosition,
7604         LONG lLength,
7605         BYTE *pBuffer) = 0;
7606 
7607     virtual HRESULT STDMETHODCALLTYPE Length(
7608         LONGLONG *pTotal,
7609         LONGLONG *pAvailable) = 0;
7610 
7611     virtual HRESULT STDMETHODCALLTYPE BeginFlush(
7612         ) = 0;
7613 
7614     virtual HRESULT STDMETHODCALLTYPE EndFlush(
7615         ) = 0;
7616 
7617 };
7618 #ifdef __CRT_UUID_DECL
7619 __CRT_UUID_DECL(IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
7620 #endif
7621 #else
7622 typedef struct IAsyncReaderVtbl {
7623     BEGIN_INTERFACE
7624 
7625     /*** IUnknown methods ***/
7626     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7627         IAsyncReader *This,
7628         REFIID riid,
7629         void **ppvObject);
7630 
7631     ULONG (STDMETHODCALLTYPE *AddRef)(
7632         IAsyncReader *This);
7633 
7634     ULONG (STDMETHODCALLTYPE *Release)(
7635         IAsyncReader *This);
7636 
7637     /*** IAsyncReader methods ***/
7638     HRESULT (STDMETHODCALLTYPE *RequestAllocator)(
7639         IAsyncReader *This,
7640         IMemAllocator *pPreferred,
7641         ALLOCATOR_PROPERTIES *pProps,
7642         IMemAllocator **ppActual);
7643 
7644     HRESULT (STDMETHODCALLTYPE *Request)(
7645         IAsyncReader *This,
7646         IMediaSample *pSample,
7647         DWORD_PTR dwUser);
7648 
7649     HRESULT (STDMETHODCALLTYPE *WaitForNext)(
7650         IAsyncReader *This,
7651         DWORD dwTimeout,
7652         IMediaSample **ppSample,
7653         DWORD_PTR *pdwUser);
7654 
7655     HRESULT (STDMETHODCALLTYPE *SyncReadAligned)(
7656         IAsyncReader *This,
7657         IMediaSample *pSample);
7658 
7659     HRESULT (STDMETHODCALLTYPE *SyncRead)(
7660         IAsyncReader *This,
7661         LONGLONG llPosition,
7662         LONG lLength,
7663         BYTE *pBuffer);
7664 
7665     HRESULT (STDMETHODCALLTYPE *Length)(
7666         IAsyncReader *This,
7667         LONGLONG *pTotal,
7668         LONGLONG *pAvailable);
7669 
7670     HRESULT (STDMETHODCALLTYPE *BeginFlush)(
7671         IAsyncReader *This);
7672 
7673     HRESULT (STDMETHODCALLTYPE *EndFlush)(
7674         IAsyncReader *This);
7675 
7676     END_INTERFACE
7677 } IAsyncReaderVtbl;
7678 
7679 interface IAsyncReader {
7680     CONST_VTBL IAsyncReaderVtbl* lpVtbl;
7681 };
7682 
7683 #ifdef COBJMACROS
7684 #ifndef WIDL_C_INLINE_WRAPPERS
7685 /*** IUnknown methods ***/
7686 #define IAsyncReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7687 #define IAsyncReader_AddRef(This) (This)->lpVtbl->AddRef(This)
7688 #define IAsyncReader_Release(This) (This)->lpVtbl->Release(This)
7689 /*** IAsyncReader methods ***/
7690 #define IAsyncReader_RequestAllocator(This,pPreferred,pProps,ppActual) (This)->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual)
7691 #define IAsyncReader_Request(This,pSample,dwUser) (This)->lpVtbl->Request(This,pSample,dwUser)
7692 #define IAsyncReader_WaitForNext(This,dwTimeout,ppSample,pdwUser) (This)->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser)
7693 #define IAsyncReader_SyncReadAligned(This,pSample) (This)->lpVtbl->SyncReadAligned(This,pSample)
7694 #define IAsyncReader_SyncRead(This,llPosition,lLength,pBuffer) (This)->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer)
7695 #define IAsyncReader_Length(This,pTotal,pAvailable) (This)->lpVtbl->Length(This,pTotal,pAvailable)
7696 #define IAsyncReader_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
7697 #define IAsyncReader_EndFlush(This) (This)->lpVtbl->EndFlush(This)
7698 #else
7699 /*** IUnknown methods ***/
7700 static FORCEINLINE HRESULT IAsyncReader_QueryInterface(IAsyncReader* This,REFIID riid,void **ppvObject) {
7701     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7702 }
7703 static FORCEINLINE ULONG IAsyncReader_AddRef(IAsyncReader* This) {
7704     return This->lpVtbl->AddRef(This);
7705 }
7706 static FORCEINLINE ULONG IAsyncReader_Release(IAsyncReader* This) {
7707     return This->lpVtbl->Release(This);
7708 }
7709 /*** IAsyncReader methods ***/
7710 static FORCEINLINE HRESULT IAsyncReader_RequestAllocator(IAsyncReader* This,IMemAllocator *pPreferred,ALLOCATOR_PROPERTIES *pProps,IMemAllocator **ppActual) {
7711     return This->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual);
7712 }
7713 static FORCEINLINE HRESULT IAsyncReader_Request(IAsyncReader* This,IMediaSample *pSample,DWORD_PTR dwUser) {
7714     return This->lpVtbl->Request(This,pSample,dwUser);
7715 }
7716 static FORCEINLINE HRESULT IAsyncReader_WaitForNext(IAsyncReader* This,DWORD dwTimeout,IMediaSample **ppSample,DWORD_PTR *pdwUser) {
7717     return This->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser);
7718 }
7719 static FORCEINLINE HRESULT IAsyncReader_SyncReadAligned(IAsyncReader* This,IMediaSample *pSample) {
7720     return This->lpVtbl->SyncReadAligned(This,pSample);
7721 }
7722 static FORCEINLINE HRESULT IAsyncReader_SyncRead(IAsyncReader* This,LONGLONG llPosition,LONG lLength,BYTE *pBuffer) {
7723     return This->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer);
7724 }
7725 static FORCEINLINE HRESULT IAsyncReader_Length(IAsyncReader* This,LONGLONG *pTotal,LONGLONG *pAvailable) {
7726     return This->lpVtbl->Length(This,pTotal,pAvailable);
7727 }
7728 static FORCEINLINE HRESULT IAsyncReader_BeginFlush(IAsyncReader* This) {
7729     return This->lpVtbl->BeginFlush(This);
7730 }
7731 static FORCEINLINE HRESULT IAsyncReader_EndFlush(IAsyncReader* This) {
7732     return This->lpVtbl->EndFlush(This);
7733 }
7734 #endif
7735 #endif
7736 
7737 #endif
7738 
7739 
7740 #endif  /* __IAsyncReader_INTERFACE_DEFINED__ */
7741 
7742 /*****************************************************************************
7743  * IGraphVersion interface
7744  */
7745 #ifndef __IGraphVersion_INTERFACE_DEFINED__
7746 #define __IGraphVersion_INTERFACE_DEFINED__
7747 
7748 DEFINE_GUID(IID_IGraphVersion, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
7749 #if defined(__cplusplus) && !defined(CINTERFACE)
7750 MIDL_INTERFACE("56a868ab-0ad4-11ce-b03a-0020af0ba770")
7751 IGraphVersion : public IUnknown
7752 {
7753     virtual HRESULT STDMETHODCALLTYPE QueryVersion(
7754         LONG *pVersion) = 0;
7755 
7756 };
7757 #ifdef __CRT_UUID_DECL
7758 __CRT_UUID_DECL(IGraphVersion, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
7759 #endif
7760 #else
7761 typedef struct IGraphVersionVtbl {
7762     BEGIN_INTERFACE
7763 
7764     /*** IUnknown methods ***/
7765     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7766         IGraphVersion *This,
7767         REFIID riid,
7768         void **ppvObject);
7769 
7770     ULONG (STDMETHODCALLTYPE *AddRef)(
7771         IGraphVersion *This);
7772 
7773     ULONG (STDMETHODCALLTYPE *Release)(
7774         IGraphVersion *This);
7775 
7776     /*** IGraphVersion methods ***/
7777     HRESULT (STDMETHODCALLTYPE *QueryVersion)(
7778         IGraphVersion *This,
7779         LONG *pVersion);
7780 
7781     END_INTERFACE
7782 } IGraphVersionVtbl;
7783 
7784 interface IGraphVersion {
7785     CONST_VTBL IGraphVersionVtbl* lpVtbl;
7786 };
7787 
7788 #ifdef COBJMACROS
7789 #ifndef WIDL_C_INLINE_WRAPPERS
7790 /*** IUnknown methods ***/
7791 #define IGraphVersion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7792 #define IGraphVersion_AddRef(This) (This)->lpVtbl->AddRef(This)
7793 #define IGraphVersion_Release(This) (This)->lpVtbl->Release(This)
7794 /*** IGraphVersion methods ***/
7795 #define IGraphVersion_QueryVersion(This,pVersion) (This)->lpVtbl->QueryVersion(This,pVersion)
7796 #else
7797 /*** IUnknown methods ***/
7798 static FORCEINLINE HRESULT IGraphVersion_QueryInterface(IGraphVersion* This,REFIID riid,void **ppvObject) {
7799     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7800 }
7801 static FORCEINLINE ULONG IGraphVersion_AddRef(IGraphVersion* This) {
7802     return This->lpVtbl->AddRef(This);
7803 }
7804 static FORCEINLINE ULONG IGraphVersion_Release(IGraphVersion* This) {
7805     return This->lpVtbl->Release(This);
7806 }
7807 /*** IGraphVersion methods ***/
7808 static FORCEINLINE HRESULT IGraphVersion_QueryVersion(IGraphVersion* This,LONG *pVersion) {
7809     return This->lpVtbl->QueryVersion(This,pVersion);
7810 }
7811 #endif
7812 #endif
7813 
7814 #endif
7815 
7816 
7817 #endif  /* __IGraphVersion_INTERFACE_DEFINED__ */
7818 
7819 /*****************************************************************************
7820  * IResourceConsumer interface
7821  */
7822 #ifndef __IResourceConsumer_INTERFACE_DEFINED__
7823 #define __IResourceConsumer_INTERFACE_DEFINED__
7824 
7825 DEFINE_GUID(IID_IResourceConsumer, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
7826 #if defined(__cplusplus) && !defined(CINTERFACE)
7827 MIDL_INTERFACE("56a868ad-0ad4-11ce-b03a-0020af0ba770")
7828 IResourceConsumer : public IUnknown
7829 {
7830     virtual HRESULT STDMETHODCALLTYPE AcquireResource(
7831         LONG idResource) = 0;
7832 
7833     virtual HRESULT STDMETHODCALLTYPE ReleaseResource(
7834         LONG idResource) = 0;
7835 
7836 };
7837 #ifdef __CRT_UUID_DECL
7838 __CRT_UUID_DECL(IResourceConsumer, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
7839 #endif
7840 #else
7841 typedef struct IResourceConsumerVtbl {
7842     BEGIN_INTERFACE
7843 
7844     /*** IUnknown methods ***/
7845     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7846         IResourceConsumer *This,
7847         REFIID riid,
7848         void **ppvObject);
7849 
7850     ULONG (STDMETHODCALLTYPE *AddRef)(
7851         IResourceConsumer *This);
7852 
7853     ULONG (STDMETHODCALLTYPE *Release)(
7854         IResourceConsumer *This);
7855 
7856     /*** IResourceConsumer methods ***/
7857     HRESULT (STDMETHODCALLTYPE *AcquireResource)(
7858         IResourceConsumer *This,
7859         LONG idResource);
7860 
7861     HRESULT (STDMETHODCALLTYPE *ReleaseResource)(
7862         IResourceConsumer *This,
7863         LONG idResource);
7864 
7865     END_INTERFACE
7866 } IResourceConsumerVtbl;
7867 
7868 interface IResourceConsumer {
7869     CONST_VTBL IResourceConsumerVtbl* lpVtbl;
7870 };
7871 
7872 #ifdef COBJMACROS
7873 #ifndef WIDL_C_INLINE_WRAPPERS
7874 /*** IUnknown methods ***/
7875 #define IResourceConsumer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7876 #define IResourceConsumer_AddRef(This) (This)->lpVtbl->AddRef(This)
7877 #define IResourceConsumer_Release(This) (This)->lpVtbl->Release(This)
7878 /*** IResourceConsumer methods ***/
7879 #define IResourceConsumer_AcquireResource(This,idResource) (This)->lpVtbl->AcquireResource(This,idResource)
7880 #define IResourceConsumer_ReleaseResource(This,idResource) (This)->lpVtbl->ReleaseResource(This,idResource)
7881 #else
7882 /*** IUnknown methods ***/
7883 static FORCEINLINE HRESULT IResourceConsumer_QueryInterface(IResourceConsumer* This,REFIID riid,void **ppvObject) {
7884     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7885 }
7886 static FORCEINLINE ULONG IResourceConsumer_AddRef(IResourceConsumer* This) {
7887     return This->lpVtbl->AddRef(This);
7888 }
7889 static FORCEINLINE ULONG IResourceConsumer_Release(IResourceConsumer* This) {
7890     return This->lpVtbl->Release(This);
7891 }
7892 /*** IResourceConsumer methods ***/
7893 static FORCEINLINE HRESULT IResourceConsumer_AcquireResource(IResourceConsumer* This,LONG idResource) {
7894     return This->lpVtbl->AcquireResource(This,idResource);
7895 }
7896 static FORCEINLINE HRESULT IResourceConsumer_ReleaseResource(IResourceConsumer* This,LONG idResource) {
7897     return This->lpVtbl->ReleaseResource(This,idResource);
7898 }
7899 #endif
7900 #endif
7901 
7902 #endif
7903 
7904 
7905 #endif  /* __IResourceConsumer_INTERFACE_DEFINED__ */
7906 
7907 /*****************************************************************************
7908  * IResourceManager interface
7909  */
7910 #ifndef __IResourceManager_INTERFACE_DEFINED__
7911 #define __IResourceManager_INTERFACE_DEFINED__
7912 
7913 DEFINE_GUID(IID_IResourceManager, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
7914 #if defined(__cplusplus) && !defined(CINTERFACE)
7915 MIDL_INTERFACE("56a868ac-0ad4-11ce-b03a-0020af0ba770")
7916 IResourceManager : public IUnknown
7917 {
7918     virtual HRESULT STDMETHODCALLTYPE Register(
7919         LPCWSTR pName,
7920         LONG cResource,
7921         LONG *plToken) = 0;
7922 
7923     virtual HRESULT STDMETHODCALLTYPE RegisterGroup(
7924         LPCWSTR pName,
7925         LONG cResource,
7926         LONG *palTokens,
7927         LONG *plToken) = 0;
7928 
7929     virtual HRESULT STDMETHODCALLTYPE RequestResource(
7930         LONG idResource,
7931         IUnknown *pFocusObject,
7932         IResourceConsumer *pConsumer) = 0;
7933 
7934     virtual HRESULT STDMETHODCALLTYPE NotifyAcquire(
7935         LONG idResource,
7936         IResourceConsumer *pConsumer,
7937         HRESULT hr) = 0;
7938 
7939     virtual HRESULT STDMETHODCALLTYPE NotifyRelease(
7940         LONG idResource,
7941         IResourceConsumer *pConsumer,
7942         WINBOOL bStillWant) = 0;
7943 
7944     virtual HRESULT STDMETHODCALLTYPE CancelRequest(
7945         LONG idResource,
7946         IResourceConsumer *pConsumer) = 0;
7947 
7948     virtual HRESULT STDMETHODCALLTYPE SetFocus(
7949         IUnknown *pFocusObject) = 0;
7950 
7951     virtual HRESULT STDMETHODCALLTYPE ReleaseFocus(
7952         IUnknown *pFocusObject) = 0;
7953 
7954 };
7955 #ifdef __CRT_UUID_DECL
7956 __CRT_UUID_DECL(IResourceManager, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
7957 #endif
7958 #else
7959 typedef struct IResourceManagerVtbl {
7960     BEGIN_INTERFACE
7961 
7962     /*** IUnknown methods ***/
7963     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7964         IResourceManager *This,
7965         REFIID riid,
7966         void **ppvObject);
7967 
7968     ULONG (STDMETHODCALLTYPE *AddRef)(
7969         IResourceManager *This);
7970 
7971     ULONG (STDMETHODCALLTYPE *Release)(
7972         IResourceManager *This);
7973 
7974     /*** IResourceManager methods ***/
7975     HRESULT (STDMETHODCALLTYPE *Register)(
7976         IResourceManager *This,
7977         LPCWSTR pName,
7978         LONG cResource,
7979         LONG *plToken);
7980 
7981     HRESULT (STDMETHODCALLTYPE *RegisterGroup)(
7982         IResourceManager *This,
7983         LPCWSTR pName,
7984         LONG cResource,
7985         LONG *palTokens,
7986         LONG *plToken);
7987 
7988     HRESULT (STDMETHODCALLTYPE *RequestResource)(
7989         IResourceManager *This,
7990         LONG idResource,
7991         IUnknown *pFocusObject,
7992         IResourceConsumer *pConsumer);
7993 
7994     HRESULT (STDMETHODCALLTYPE *NotifyAcquire)(
7995         IResourceManager *This,
7996         LONG idResource,
7997         IResourceConsumer *pConsumer,
7998         HRESULT hr);
7999 
8000     HRESULT (STDMETHODCALLTYPE *NotifyRelease)(
8001         IResourceManager *This,
8002         LONG idResource,
8003         IResourceConsumer *pConsumer,
8004         WINBOOL bStillWant);
8005 
8006     HRESULT (STDMETHODCALLTYPE *CancelRequest)(
8007         IResourceManager *This,
8008         LONG idResource,
8009         IResourceConsumer *pConsumer);
8010 
8011     HRESULT (STDMETHODCALLTYPE *SetFocus)(
8012         IResourceManager *This,
8013         IUnknown *pFocusObject);
8014 
8015     HRESULT (STDMETHODCALLTYPE *ReleaseFocus)(
8016         IResourceManager *This,
8017         IUnknown *pFocusObject);
8018 
8019     END_INTERFACE
8020 } IResourceManagerVtbl;
8021 
8022 interface IResourceManager {
8023     CONST_VTBL IResourceManagerVtbl* lpVtbl;
8024 };
8025 
8026 #ifdef COBJMACROS
8027 #ifndef WIDL_C_INLINE_WRAPPERS
8028 /*** IUnknown methods ***/
8029 #define IResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8030 #define IResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
8031 #define IResourceManager_Release(This) (This)->lpVtbl->Release(This)
8032 /*** IResourceManager methods ***/
8033 #define IResourceManager_Register(This,pName,cResource,plToken) (This)->lpVtbl->Register(This,pName,cResource,plToken)
8034 #define IResourceManager_RegisterGroup(This,pName,cResource,palTokens,plToken) (This)->lpVtbl->RegisterGroup(This,pName,cResource,palTokens,plToken)
8035 #define IResourceManager_RequestResource(This,idResource,pFocusObject,pConsumer) (This)->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer)
8036 #define IResourceManager_NotifyAcquire(This,idResource,pConsumer,hr) (This)->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr)
8037 #define IResourceManager_NotifyRelease(This,idResource,pConsumer,bStillWant) (This)->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant)
8038 #define IResourceManager_CancelRequest(This,idResource,pConsumer) (This)->lpVtbl->CancelRequest(This,idResource,pConsumer)
8039 #define IResourceManager_SetFocus(This,pFocusObject) (This)->lpVtbl->SetFocus(This,pFocusObject)
8040 #define IResourceManager_ReleaseFocus(This,pFocusObject) (This)->lpVtbl->ReleaseFocus(This,pFocusObject)
8041 #else
8042 /*** IUnknown methods ***/
8043 static FORCEINLINE HRESULT IResourceManager_QueryInterface(IResourceManager* This,REFIID riid,void **ppvObject) {
8044     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8045 }
8046 static FORCEINLINE ULONG IResourceManager_AddRef(IResourceManager* This) {
8047     return This->lpVtbl->AddRef(This);
8048 }
8049 static FORCEINLINE ULONG IResourceManager_Release(IResourceManager* This) {
8050     return This->lpVtbl->Release(This);
8051 }
8052 /*** IResourceManager methods ***/
8053 static FORCEINLINE HRESULT IResourceManager_Register(IResourceManager* This,LPCWSTR pName,LONG cResource,LONG *plToken) {
8054     return This->lpVtbl->Register(This,pName,cResource,plToken);
8055 }
8056 static FORCEINLINE HRESULT IResourceManager_RegisterGroup(IResourceManager* This,LPCWSTR pName,LONG cResource,LONG *palTokens,LONG *plToken) {
8057     return This->lpVtbl->RegisterGroup(This,pName,cResource,palTokens,plToken);
8058 }
8059 static FORCEINLINE HRESULT IResourceManager_RequestResource(IResourceManager* This,LONG idResource,IUnknown *pFocusObject,IResourceConsumer *pConsumer) {
8060     return This->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer);
8061 }
8062 static FORCEINLINE HRESULT IResourceManager_NotifyAcquire(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer,HRESULT hr) {
8063     return This->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr);
8064 }
8065 static FORCEINLINE HRESULT IResourceManager_NotifyRelease(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer,WINBOOL bStillWant) {
8066     return This->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant);
8067 }
8068 static FORCEINLINE HRESULT IResourceManager_CancelRequest(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer) {
8069     return This->lpVtbl->CancelRequest(This,idResource,pConsumer);
8070 }
8071 static FORCEINLINE HRESULT IResourceManager_SetFocus(IResourceManager* This,IUnknown *pFocusObject) {
8072     return This->lpVtbl->SetFocus(This,pFocusObject);
8073 }
8074 static FORCEINLINE HRESULT IResourceManager_ReleaseFocus(IResourceManager* This,IUnknown *pFocusObject) {
8075     return This->lpVtbl->ReleaseFocus(This,pFocusObject);
8076 }
8077 #endif
8078 #endif
8079 
8080 #endif
8081 
8082 
8083 #endif  /* __IResourceManager_INTERFACE_DEFINED__ */
8084 
8085 typedef enum AM_STREAM_INFO_FLAGS {
8086     AM_STREAM_INFO_START_DEFINED = 0x1,
8087     AM_STREAM_INFO_STOP_DEFINED = 0x2,
8088     AM_STREAM_INFO_DISCARDING = 0x4,
8089     AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10
8090 } AM_STREAM_INFO_FLAGS;
8091 typedef struct AM_STREAM_INFO {
8092     REFERENCE_TIME tStart;
8093     REFERENCE_TIME tStop;
8094     DWORD dwStartCookie;
8095     DWORD dwStopCookie;
8096     DWORD dwFlags;
8097 } AM_STREAM_INFO;
8098 /*****************************************************************************
8099  * IAMStreamControl interface
8100  */
8101 #ifndef __IAMStreamControl_INTERFACE_DEFINED__
8102 #define __IAMStreamControl_INTERFACE_DEFINED__
8103 
8104 DEFINE_GUID(IID_IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
8105 #if defined(__cplusplus) && !defined(CINTERFACE)
8106 MIDL_INTERFACE("36b73881-c2c8-11cf-8b46-00805f6cef60")
8107 IAMStreamControl : public IUnknown
8108 {
8109     virtual HRESULT STDMETHODCALLTYPE StartAt(
8110         const REFERENCE_TIME *ptStart,
8111         DWORD dwCookie) = 0;
8112 
8113     virtual HRESULT STDMETHODCALLTYPE StopAt(
8114         const REFERENCE_TIME *ptStop,
8115         WINBOOL bSendExtra,
8116         DWORD dwCookie) = 0;
8117 
8118     virtual HRESULT STDMETHODCALLTYPE GetInfo(
8119         AM_STREAM_INFO *pInfo) = 0;
8120 
8121 };
8122 #ifdef __CRT_UUID_DECL
8123 __CRT_UUID_DECL(IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
8124 #endif
8125 #else
8126 typedef struct IAMStreamControlVtbl {
8127     BEGIN_INTERFACE
8128 
8129     /*** IUnknown methods ***/
8130     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8131         IAMStreamControl *This,
8132         REFIID riid,
8133         void **ppvObject);
8134 
8135     ULONG (STDMETHODCALLTYPE *AddRef)(
8136         IAMStreamControl *This);
8137 
8138     ULONG (STDMETHODCALLTYPE *Release)(
8139         IAMStreamControl *This);
8140 
8141     /*** IAMStreamControl methods ***/
8142     HRESULT (STDMETHODCALLTYPE *StartAt)(
8143         IAMStreamControl *This,
8144         const REFERENCE_TIME *ptStart,
8145         DWORD dwCookie);
8146 
8147     HRESULT (STDMETHODCALLTYPE *StopAt)(
8148         IAMStreamControl *This,
8149         const REFERENCE_TIME *ptStop,
8150         WINBOOL bSendExtra,
8151         DWORD dwCookie);
8152 
8153     HRESULT (STDMETHODCALLTYPE *GetInfo)(
8154         IAMStreamControl *This,
8155         AM_STREAM_INFO *pInfo);
8156 
8157     END_INTERFACE
8158 } IAMStreamControlVtbl;
8159 
8160 interface IAMStreamControl {
8161     CONST_VTBL IAMStreamControlVtbl* lpVtbl;
8162 };
8163 
8164 #ifdef COBJMACROS
8165 #ifndef WIDL_C_INLINE_WRAPPERS
8166 /*** IUnknown methods ***/
8167 #define IAMStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8168 #define IAMStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
8169 #define IAMStreamControl_Release(This) (This)->lpVtbl->Release(This)
8170 /*** IAMStreamControl methods ***/
8171 #define IAMStreamControl_StartAt(This,ptStart,dwCookie) (This)->lpVtbl->StartAt(This,ptStart,dwCookie)
8172 #define IAMStreamControl_StopAt(This,ptStop,bSendExtra,dwCookie) (This)->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie)
8173 #define IAMStreamControl_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
8174 #else
8175 /*** IUnknown methods ***/
8176 static FORCEINLINE HRESULT IAMStreamControl_QueryInterface(IAMStreamControl* This,REFIID riid,void **ppvObject) {
8177     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8178 }
8179 static FORCEINLINE ULONG IAMStreamControl_AddRef(IAMStreamControl* This) {
8180     return This->lpVtbl->AddRef(This);
8181 }
8182 static FORCEINLINE ULONG IAMStreamControl_Release(IAMStreamControl* This) {
8183     return This->lpVtbl->Release(This);
8184 }
8185 /*** IAMStreamControl methods ***/
8186 static FORCEINLINE HRESULT IAMStreamControl_StartAt(IAMStreamControl* This,const REFERENCE_TIME *ptStart,DWORD dwCookie) {
8187     return This->lpVtbl->StartAt(This,ptStart,dwCookie);
8188 }
8189 static FORCEINLINE HRESULT IAMStreamControl_StopAt(IAMStreamControl* This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie) {
8190     return This->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie);
8191 }
8192 static FORCEINLINE HRESULT IAMStreamControl_GetInfo(IAMStreamControl* This,AM_STREAM_INFO *pInfo) {
8193     return This->lpVtbl->GetInfo(This,pInfo);
8194 }
8195 #endif
8196 #endif
8197 
8198 #endif
8199 
8200 
8201 #endif  /* __IAMStreamControl_INTERFACE_DEFINED__ */
8202 
8203 #ifndef _IKsPropertySet_
8204 #define _IKsPropertySet_
8205 #define KSPROPERTY_SUPPORT_GET  1
8206 #define KSPROPERTY_SUPPORT_SET  2
8207 /*****************************************************************************
8208  * IKsPropertySet interface
8209  */
8210 #ifndef __IKsPropertySet_INTERFACE_DEFINED__
8211 #define __IKsPropertySet_INTERFACE_DEFINED__
8212 
8213 DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93);
8214 #if defined(__cplusplus) && !defined(CINTERFACE)
8215 MIDL_INTERFACE("31efac30-515c-11d0-a9aa-00aa0061be93")
8216 IKsPropertySet : public IUnknown
8217 {
8218     virtual HRESULT STDMETHODCALLTYPE Set(
8219         REFGUID guidPropSet,
8220         DWORD dwPropID,
8221         LPVOID pInstanceData,
8222         DWORD cbInstanceData,
8223         LPVOID pPropData,
8224         DWORD cbPropData) = 0;
8225 
8226     virtual HRESULT STDMETHODCALLTYPE Get(
8227         REFGUID guidPropSet,
8228         DWORD dwPropID,
8229         LPVOID pInstanceData,
8230         DWORD cbInstanceData,
8231         LPVOID pPropData,
8232         DWORD cbPropData,
8233         DWORD *pcbReturned) = 0;
8234 
8235     virtual HRESULT STDMETHODCALLTYPE QuerySupported(
8236         REFGUID guidPropSet,
8237         DWORD dwPropID,
8238         DWORD *pTypeSupport) = 0;
8239 
8240 };
8241 #ifdef __CRT_UUID_DECL
8242 __CRT_UUID_DECL(IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93)
8243 #endif
8244 #else
8245 typedef struct IKsPropertySetVtbl {
8246     BEGIN_INTERFACE
8247 
8248     /*** IUnknown methods ***/
8249     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8250         IKsPropertySet *This,
8251         REFIID riid,
8252         void **ppvObject);
8253 
8254     ULONG (STDMETHODCALLTYPE *AddRef)(
8255         IKsPropertySet *This);
8256 
8257     ULONG (STDMETHODCALLTYPE *Release)(
8258         IKsPropertySet *This);
8259 
8260     /*** IKsPropertySet methods ***/
8261     HRESULT (STDMETHODCALLTYPE *Set)(
8262         IKsPropertySet *This,
8263         REFGUID guidPropSet,
8264         DWORD dwPropID,
8265         LPVOID pInstanceData,
8266         DWORD cbInstanceData,
8267         LPVOID pPropData,
8268         DWORD cbPropData);
8269 
8270     HRESULT (STDMETHODCALLTYPE *Get)(
8271         IKsPropertySet *This,
8272         REFGUID guidPropSet,
8273         DWORD dwPropID,
8274         LPVOID pInstanceData,
8275         DWORD cbInstanceData,
8276         LPVOID pPropData,
8277         DWORD cbPropData,
8278         DWORD *pcbReturned);
8279 
8280     HRESULT (STDMETHODCALLTYPE *QuerySupported)(
8281         IKsPropertySet *This,
8282         REFGUID guidPropSet,
8283         DWORD dwPropID,
8284         DWORD *pTypeSupport);
8285 
8286     END_INTERFACE
8287 } IKsPropertySetVtbl;
8288 
8289 interface IKsPropertySet {
8290     CONST_VTBL IKsPropertySetVtbl* lpVtbl;
8291 };
8292 
8293 #ifdef COBJMACROS
8294 #ifndef WIDL_C_INLINE_WRAPPERS
8295 /*** IUnknown methods ***/
8296 #define IKsPropertySet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8297 #define IKsPropertySet_AddRef(This) (This)->lpVtbl->AddRef(This)
8298 #define IKsPropertySet_Release(This) (This)->lpVtbl->Release(This)
8299 /*** IKsPropertySet methods ***/
8300 #define IKsPropertySet_Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData) (This)->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData)
8301 #define IKsPropertySet_Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned) (This)->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned)
8302 #define IKsPropertySet_QuerySupported(This,guidPropSet,dwPropID,pTypeSupport) (This)->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport)
8303 #else
8304 /*** IUnknown methods ***/
8305 static FORCEINLINE HRESULT IKsPropertySet_QueryInterface(IKsPropertySet* This,REFIID riid,void **ppvObject) {
8306     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8307 }
8308 static FORCEINLINE ULONG IKsPropertySet_AddRef(IKsPropertySet* This) {
8309     return This->lpVtbl->AddRef(This);
8310 }
8311 static FORCEINLINE ULONG IKsPropertySet_Release(IKsPropertySet* This) {
8312     return This->lpVtbl->Release(This);
8313 }
8314 /*** IKsPropertySet methods ***/
8315 static FORCEINLINE HRESULT IKsPropertySet_Set(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData) {
8316     return This->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData);
8317 }
8318 static FORCEINLINE HRESULT IKsPropertySet_Get(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData,DWORD *pcbReturned) {
8319     return This->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned);
8320 }
8321 static FORCEINLINE HRESULT IKsPropertySet_QuerySupported(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport) {
8322     return This->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport);
8323 }
8324 #endif
8325 #endif
8326 
8327 #endif
8328 
8329 
8330 #endif  /* __IKsPropertySet_INTERFACE_DEFINED__ */
8331 
8332 #endif /* _IKsPropertySet_ */
8333 /*****************************************************************************
8334  * IMediaPropertyBag interface
8335  */
8336 #ifndef __IMediaPropertyBag_INTERFACE_DEFINED__
8337 #define __IMediaPropertyBag_INTERFACE_DEFINED__
8338 
8339 typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
8340 DEFINE_GUID(IID_IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86);
8341 #if defined(__cplusplus) && !defined(CINTERFACE)
8342 MIDL_INTERFACE("6025a880-c0d5-11d0-bd4e-00a0c911ce86")
8343 IMediaPropertyBag : public IPropertyBag
8344 {
8345     virtual HRESULT STDMETHODCALLTYPE EnumProperty(
8346         ULONG iProperty,
8347         VARIANT *pvarPropertyName,
8348         VARIANT *pvarPropertyValue) = 0;
8349 
8350 };
8351 #ifdef __CRT_UUID_DECL
8352 __CRT_UUID_DECL(IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86)
8353 #endif
8354 #else
8355 typedef struct IMediaPropertyBagVtbl {
8356     BEGIN_INTERFACE
8357 
8358     /*** IUnknown methods ***/
8359     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8360         IMediaPropertyBag *This,
8361         REFIID riid,
8362         void **ppvObject);
8363 
8364     ULONG (STDMETHODCALLTYPE *AddRef)(
8365         IMediaPropertyBag *This);
8366 
8367     ULONG (STDMETHODCALLTYPE *Release)(
8368         IMediaPropertyBag *This);
8369 
8370     /*** IPropertyBag methods ***/
8371     HRESULT (STDMETHODCALLTYPE *Read)(
8372         IMediaPropertyBag *This,
8373         LPCOLESTR pszPropName,
8374         VARIANT *pVar,
8375         IErrorLog *pErrorLog);
8376 
8377     HRESULT (STDMETHODCALLTYPE *Write)(
8378         IMediaPropertyBag *This,
8379         LPCOLESTR pszPropName,
8380         VARIANT *pVar);
8381 
8382     /*** IMediaPropertyBag methods ***/
8383     HRESULT (STDMETHODCALLTYPE *EnumProperty)(
8384         IMediaPropertyBag *This,
8385         ULONG iProperty,
8386         VARIANT *pvarPropertyName,
8387         VARIANT *pvarPropertyValue);
8388 
8389     END_INTERFACE
8390 } IMediaPropertyBagVtbl;
8391 
8392 interface IMediaPropertyBag {
8393     CONST_VTBL IMediaPropertyBagVtbl* lpVtbl;
8394 };
8395 
8396 #ifdef COBJMACROS
8397 #ifndef WIDL_C_INLINE_WRAPPERS
8398 /*** IUnknown methods ***/
8399 #define IMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8400 #define IMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
8401 #define IMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
8402 /*** IPropertyBag methods ***/
8403 #define IMediaPropertyBag_Read(This,pszPropName,pVar,pErrorLog) (This)->lpVtbl->Read(This,pszPropName,pVar,pErrorLog)
8404 #define IMediaPropertyBag_Write(This,pszPropName,pVar) (This)->lpVtbl->Write(This,pszPropName,pVar)
8405 /*** IMediaPropertyBag methods ***/
8406 #define IMediaPropertyBag_EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue) (This)->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue)
8407 #else
8408 /*** IUnknown methods ***/
8409 static FORCEINLINE HRESULT IMediaPropertyBag_QueryInterface(IMediaPropertyBag* This,REFIID riid,void **ppvObject) {
8410     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8411 }
8412 static FORCEINLINE ULONG IMediaPropertyBag_AddRef(IMediaPropertyBag* This) {
8413     return This->lpVtbl->AddRef(This);
8414 }
8415 static FORCEINLINE ULONG IMediaPropertyBag_Release(IMediaPropertyBag* This) {
8416     return This->lpVtbl->Release(This);
8417 }
8418 /*** IPropertyBag methods ***/
8419 static FORCEINLINE HRESULT IMediaPropertyBag_Read(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog) {
8420     return This->lpVtbl->Read(This,pszPropName,pVar,pErrorLog);
8421 }
8422 static FORCEINLINE HRESULT IMediaPropertyBag_Write(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar) {
8423     return This->lpVtbl->Write(This,pszPropName,pVar);
8424 }
8425 /*** IMediaPropertyBag methods ***/
8426 static FORCEINLINE HRESULT IMediaPropertyBag_EnumProperty(IMediaPropertyBag* This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue) {
8427     return This->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue);
8428 }
8429 #endif
8430 #endif
8431 
8432 #endif
8433 
8434 
8435 #endif  /* __IMediaPropertyBag_INTERFACE_DEFINED__ */
8436 
8437 /*****************************************************************************
8438  * IPersistMediaPropertyBag interface
8439  */
8440 #ifndef __IPersistMediaPropertyBag_INTERFACE_DEFINED__
8441 #define __IPersistMediaPropertyBag_INTERFACE_DEFINED__
8442 
8443 typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
8444 DEFINE_GUID(IID_IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86);
8445 #if defined(__cplusplus) && !defined(CINTERFACE)
8446 MIDL_INTERFACE("5738e040-b67f-11d0-bd4d-00a0c911ce86")
8447 IPersistMediaPropertyBag : public IPersist
8448 {
8449     virtual HRESULT STDMETHODCALLTYPE InitNew(
8450         ) = 0;
8451 
8452     virtual HRESULT STDMETHODCALLTYPE Load(
8453         IMediaPropertyBag *pPropBag,
8454         IErrorLog *pErrorLog) = 0;
8455 
8456     virtual HRESULT STDMETHODCALLTYPE Save(
8457         IMediaPropertyBag *pPropBag,
8458         WINBOOL fClearDirty,
8459         WINBOOL fSaveAllProperties) = 0;
8460 
8461 };
8462 #ifdef __CRT_UUID_DECL
8463 __CRT_UUID_DECL(IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86)
8464 #endif
8465 #else
8466 typedef struct IPersistMediaPropertyBagVtbl {
8467     BEGIN_INTERFACE
8468 
8469     /*** IUnknown methods ***/
8470     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8471         IPersistMediaPropertyBag *This,
8472         REFIID riid,
8473         void **ppvObject);
8474 
8475     ULONG (STDMETHODCALLTYPE *AddRef)(
8476         IPersistMediaPropertyBag *This);
8477 
8478     ULONG (STDMETHODCALLTYPE *Release)(
8479         IPersistMediaPropertyBag *This);
8480 
8481     /*** IPersist methods ***/
8482     HRESULT (STDMETHODCALLTYPE *GetClassID)(
8483         IPersistMediaPropertyBag *This,
8484         CLSID *pClassID);
8485 
8486     /*** IPersistMediaPropertyBag methods ***/
8487     HRESULT (STDMETHODCALLTYPE *InitNew)(
8488         IPersistMediaPropertyBag *This);
8489 
8490     HRESULT (STDMETHODCALLTYPE *Load)(
8491         IPersistMediaPropertyBag *This,
8492         IMediaPropertyBag *pPropBag,
8493         IErrorLog *pErrorLog);
8494 
8495     HRESULT (STDMETHODCALLTYPE *Save)(
8496         IPersistMediaPropertyBag *This,
8497         IMediaPropertyBag *pPropBag,
8498         WINBOOL fClearDirty,
8499         WINBOOL fSaveAllProperties);
8500 
8501     END_INTERFACE
8502 } IPersistMediaPropertyBagVtbl;
8503 
8504 interface IPersistMediaPropertyBag {
8505     CONST_VTBL IPersistMediaPropertyBagVtbl* lpVtbl;
8506 };
8507 
8508 #ifdef COBJMACROS
8509 #ifndef WIDL_C_INLINE_WRAPPERS
8510 /*** IUnknown methods ***/
8511 #define IPersistMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8512 #define IPersistMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
8513 #define IPersistMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
8514 /*** IPersist methods ***/
8515 #define IPersistMediaPropertyBag_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
8516 /*** IPersistMediaPropertyBag methods ***/
8517 #define IPersistMediaPropertyBag_InitNew(This) (This)->lpVtbl->InitNew(This)
8518 #define IPersistMediaPropertyBag_Load(This,pPropBag,pErrorLog) (This)->lpVtbl->Load(This,pPropBag,pErrorLog)
8519 #define IPersistMediaPropertyBag_Save(This,pPropBag,fClearDirty,fSaveAllProperties) (This)->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties)
8520 #else
8521 /*** IUnknown methods ***/
8522 static FORCEINLINE HRESULT IPersistMediaPropertyBag_QueryInterface(IPersistMediaPropertyBag* This,REFIID riid,void **ppvObject) {
8523     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8524 }
8525 static FORCEINLINE ULONG IPersistMediaPropertyBag_AddRef(IPersistMediaPropertyBag* This) {
8526     return This->lpVtbl->AddRef(This);
8527 }
8528 static FORCEINLINE ULONG IPersistMediaPropertyBag_Release(IPersistMediaPropertyBag* This) {
8529     return This->lpVtbl->Release(This);
8530 }
8531 /*** IPersist methods ***/
8532 static FORCEINLINE HRESULT IPersistMediaPropertyBag_GetClassID(IPersistMediaPropertyBag* This,CLSID *pClassID) {
8533     return This->lpVtbl->GetClassID(This,pClassID);
8534 }
8535 /*** IPersistMediaPropertyBag methods ***/
8536 static FORCEINLINE HRESULT IPersistMediaPropertyBag_InitNew(IPersistMediaPropertyBag* This) {
8537     return This->lpVtbl->InitNew(This);
8538 }
8539 static FORCEINLINE HRESULT IPersistMediaPropertyBag_Load(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog) {
8540     return This->lpVtbl->Load(This,pPropBag,pErrorLog);
8541 }
8542 static FORCEINLINE HRESULT IPersistMediaPropertyBag_Save(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties) {
8543     return This->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties);
8544 }
8545 #endif
8546 #endif
8547 
8548 #endif
8549 
8550 
8551 #endif  /* __IPersistMediaPropertyBag_INTERFACE_DEFINED__ */
8552 
8553 /*****************************************************************************
8554  * ISeekingPassThru interface
8555  */
8556 #ifndef __ISeekingPassThru_INTERFACE_DEFINED__
8557 #define __ISeekingPassThru_INTERFACE_DEFINED__
8558 
8559 DEFINE_GUID(IID_ISeekingPassThru, 0x36b73883, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
8560 #if defined(__cplusplus) && !defined(CINTERFACE)
8561 MIDL_INTERFACE("36b73883-c2c8-11cf-8b46-00805f6cef60")
8562 ISeekingPassThru : public IUnknown
8563 {
8564     virtual HRESULT STDMETHODCALLTYPE Init(
8565         WINBOOL bSupportRendering,
8566         IPin *pPin) = 0;
8567 
8568 };
8569 #ifdef __CRT_UUID_DECL
8570 __CRT_UUID_DECL(ISeekingPassThru, 0x36b73883, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
8571 #endif
8572 #else
8573 typedef struct ISeekingPassThruVtbl {
8574     BEGIN_INTERFACE
8575 
8576     /*** IUnknown methods ***/
8577     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8578         ISeekingPassThru *This,
8579         REFIID riid,
8580         void **ppvObject);
8581 
8582     ULONG (STDMETHODCALLTYPE *AddRef)(
8583         ISeekingPassThru *This);
8584 
8585     ULONG (STDMETHODCALLTYPE *Release)(
8586         ISeekingPassThru *This);
8587 
8588     /*** ISeekingPassThru methods ***/
8589     HRESULT (STDMETHODCALLTYPE *Init)(
8590         ISeekingPassThru *This,
8591         WINBOOL bSupportRendering,
8592         IPin *pPin);
8593 
8594     END_INTERFACE
8595 } ISeekingPassThruVtbl;
8596 
8597 interface ISeekingPassThru {
8598     CONST_VTBL ISeekingPassThruVtbl* lpVtbl;
8599 };
8600 
8601 #ifdef COBJMACROS
8602 #ifndef WIDL_C_INLINE_WRAPPERS
8603 /*** IUnknown methods ***/
8604 #define ISeekingPassThru_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8605 #define ISeekingPassThru_AddRef(This) (This)->lpVtbl->AddRef(This)
8606 #define ISeekingPassThru_Release(This) (This)->lpVtbl->Release(This)
8607 /*** ISeekingPassThru methods ***/
8608 #define ISeekingPassThru_Init(This,bSupportRendering,pPin) (This)->lpVtbl->Init(This,bSupportRendering,pPin)
8609 #else
8610 /*** IUnknown methods ***/
8611 static FORCEINLINE HRESULT ISeekingPassThru_QueryInterface(ISeekingPassThru* This,REFIID riid,void **ppvObject) {
8612     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8613 }
8614 static FORCEINLINE ULONG ISeekingPassThru_AddRef(ISeekingPassThru* This) {
8615     return This->lpVtbl->AddRef(This);
8616 }
8617 static FORCEINLINE ULONG ISeekingPassThru_Release(ISeekingPassThru* This) {
8618     return This->lpVtbl->Release(This);
8619 }
8620 /*** ISeekingPassThru methods ***/
8621 static FORCEINLINE HRESULT ISeekingPassThru_Init(ISeekingPassThru* This,WINBOOL bSupportRendering,IPin *pPin) {
8622     return This->lpVtbl->Init(This,bSupportRendering,pPin);
8623 }
8624 #endif
8625 #endif
8626 
8627 #endif
8628 
8629 
8630 #endif  /* __ISeekingPassThru_INTERFACE_DEFINED__ */
8631 
8632 enum _AM_FILTER_MISC_FLAGS {
8633     AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1,
8634     AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2
8635 };
8636 /*****************************************************************************
8637  * IAMFilterMiscFlags interface
8638  */
8639 #ifndef __IAMFilterMiscFlags_INTERFACE_DEFINED__
8640 #define __IAMFilterMiscFlags_INTERFACE_DEFINED__
8641 
8642 DEFINE_GUID(IID_IAMFilterMiscFlags, 0x2dd74950, 0xa890, 0x11d1, 0xab,0xe8, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
8643 #if defined(__cplusplus) && !defined(CINTERFACE)
8644 MIDL_INTERFACE("2dd74950-a890-11d1-abe8-00a0c905f375")
8645 IAMFilterMiscFlags : public IUnknown
8646 {
8647     virtual ULONG STDMETHODCALLTYPE GetMiscFlags(
8648         ) = 0;
8649 
8650 };
8651 #ifdef __CRT_UUID_DECL
8652 __CRT_UUID_DECL(IAMFilterMiscFlags, 0x2dd74950, 0xa890, 0x11d1, 0xab,0xe8, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
8653 #endif
8654 #else
8655 typedef struct IAMFilterMiscFlagsVtbl {
8656     BEGIN_INTERFACE
8657 
8658     /*** IUnknown methods ***/
8659     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8660         IAMFilterMiscFlags *This,
8661         REFIID riid,
8662         void **ppvObject);
8663 
8664     ULONG (STDMETHODCALLTYPE *AddRef)(
8665         IAMFilterMiscFlags *This);
8666 
8667     ULONG (STDMETHODCALLTYPE *Release)(
8668         IAMFilterMiscFlags *This);
8669 
8670     /*** IAMFilterMiscFlags methods ***/
8671     ULONG (STDMETHODCALLTYPE *GetMiscFlags)(
8672         IAMFilterMiscFlags *This);
8673 
8674     END_INTERFACE
8675 } IAMFilterMiscFlagsVtbl;
8676 
8677 interface IAMFilterMiscFlags {
8678     CONST_VTBL IAMFilterMiscFlagsVtbl* lpVtbl;
8679 };
8680 
8681 #ifdef COBJMACROS
8682 #ifndef WIDL_C_INLINE_WRAPPERS
8683 /*** IUnknown methods ***/
8684 #define IAMFilterMiscFlags_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8685 #define IAMFilterMiscFlags_AddRef(This) (This)->lpVtbl->AddRef(This)
8686 #define IAMFilterMiscFlags_Release(This) (This)->lpVtbl->Release(This)
8687 /*** IAMFilterMiscFlags methods ***/
8688 #define IAMFilterMiscFlags_GetMiscFlags(This) (This)->lpVtbl->GetMiscFlags(This)
8689 #else
8690 /*** IUnknown methods ***/
8691 static FORCEINLINE HRESULT IAMFilterMiscFlags_QueryInterface(IAMFilterMiscFlags* This,REFIID riid,void **ppvObject) {
8692     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8693 }
8694 static FORCEINLINE ULONG IAMFilterMiscFlags_AddRef(IAMFilterMiscFlags* This) {
8695     return This->lpVtbl->AddRef(This);
8696 }
8697 static FORCEINLINE ULONG IAMFilterMiscFlags_Release(IAMFilterMiscFlags* This) {
8698     return This->lpVtbl->Release(This);
8699 }
8700 /*** IAMFilterMiscFlags methods ***/
8701 static FORCEINLINE ULONG IAMFilterMiscFlags_GetMiscFlags(IAMFilterMiscFlags* This) {
8702     return This->lpVtbl->GetMiscFlags(This);
8703 }
8704 #endif
8705 #endif
8706 
8707 #endif
8708 
8709 
8710 #endif  /* __IAMFilterMiscFlags_INTERFACE_DEFINED__ */
8711 
8712 /*****************************************************************************
8713  * IAMGraphBuilderCallback interface
8714  */
8715 #ifndef __IAMGraphBuilderCallback_INTERFACE_DEFINED__
8716 #define __IAMGraphBuilderCallback_INTERFACE_DEFINED__
8717 
8718 DEFINE_GUID(IID_IAMGraphBuilderCallback, 0x4995f511, 0x9ddb, 0x4f12, 0xbd,0x3b, 0xf0,0x46,0x11,0x80,0x7b,0x79);
8719 #if defined(__cplusplus) && !defined(CINTERFACE)
8720 MIDL_INTERFACE("4995f511-9ddb-4f12-bd3b-f04611807b79")
8721 IAMGraphBuilderCallback : public IUnknown
8722 {
8723     virtual HRESULT STDMETHODCALLTYPE SelectedFilter(
8724         IMoniker *pMon) = 0;
8725 
8726     virtual HRESULT STDMETHODCALLTYPE CreatedFilter(
8727         IBaseFilter *pFil) = 0;
8728 
8729 };
8730 #ifdef __CRT_UUID_DECL
8731 __CRT_UUID_DECL(IAMGraphBuilderCallback, 0x4995f511, 0x9ddb, 0x4f12, 0xbd,0x3b, 0xf0,0x46,0x11,0x80,0x7b,0x79)
8732 #endif
8733 #else
8734 typedef struct IAMGraphBuilderCallbackVtbl {
8735     BEGIN_INTERFACE
8736 
8737     /*** IUnknown methods ***/
8738     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8739         IAMGraphBuilderCallback *This,
8740         REFIID riid,
8741         void **ppvObject);
8742 
8743     ULONG (STDMETHODCALLTYPE *AddRef)(
8744         IAMGraphBuilderCallback *This);
8745 
8746     ULONG (STDMETHODCALLTYPE *Release)(
8747         IAMGraphBuilderCallback *This);
8748 
8749     /*** IAMGraphBuilderCallback methods ***/
8750     HRESULT (STDMETHODCALLTYPE *SelectedFilter)(
8751         IAMGraphBuilderCallback *This,
8752         IMoniker *pMon);
8753 
8754     HRESULT (STDMETHODCALLTYPE *CreatedFilter)(
8755         IAMGraphBuilderCallback *This,
8756         IBaseFilter *pFil);
8757 
8758     END_INTERFACE
8759 } IAMGraphBuilderCallbackVtbl;
8760 
8761 interface IAMGraphBuilderCallback {
8762     CONST_VTBL IAMGraphBuilderCallbackVtbl* lpVtbl;
8763 };
8764 
8765 #ifdef COBJMACROS
8766 #ifndef WIDL_C_INLINE_WRAPPERS
8767 /*** IUnknown methods ***/
8768 #define IAMGraphBuilderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8769 #define IAMGraphBuilderCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
8770 #define IAMGraphBuilderCallback_Release(This) (This)->lpVtbl->Release(This)
8771 /*** IAMGraphBuilderCallback methods ***/
8772 #define IAMGraphBuilderCallback_SelectedFilter(This,pMon) (This)->lpVtbl->SelectedFilter(This,pMon)
8773 #define IAMGraphBuilderCallback_CreatedFilter(This,pFil) (This)->lpVtbl->CreatedFilter(This,pFil)
8774 #else
8775 /*** IUnknown methods ***/
8776 static FORCEINLINE HRESULT IAMGraphBuilderCallback_QueryInterface(IAMGraphBuilderCallback* This,REFIID riid,void **ppvObject) {
8777     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8778 }
8779 static FORCEINLINE ULONG IAMGraphBuilderCallback_AddRef(IAMGraphBuilderCallback* This) {
8780     return This->lpVtbl->AddRef(This);
8781 }
8782 static FORCEINLINE ULONG IAMGraphBuilderCallback_Release(IAMGraphBuilderCallback* This) {
8783     return This->lpVtbl->Release(This);
8784 }
8785 /*** IAMGraphBuilderCallback methods ***/
8786 static FORCEINLINE HRESULT IAMGraphBuilderCallback_SelectedFilter(IAMGraphBuilderCallback* This,IMoniker *pMon) {
8787     return This->lpVtbl->SelectedFilter(This,pMon);
8788 }
8789 static FORCEINLINE HRESULT IAMGraphBuilderCallback_CreatedFilter(IAMGraphBuilderCallback* This,IBaseFilter *pFil) {
8790     return This->lpVtbl->CreatedFilter(This,pFil);
8791 }
8792 #endif
8793 #endif
8794 
8795 #endif
8796 
8797 
8798 #endif  /* __IAMGraphBuilderCallback_INTERFACE_DEFINED__ */
8799 
8800 /*****************************************************************************
8801  * IAMVfwCaptureDialogs interface
8802  */
8803 #ifndef __IAMVfwCaptureDialogs_INTERFACE_DEFINED__
8804 #define __IAMVfwCaptureDialogs_INTERFACE_DEFINED__
8805 
8806 DEFINE_GUID(IID_IAMVfwCaptureDialogs, 0xd8d715a0, 0x6e5e, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
8807 #if defined(__cplusplus) && !defined(CINTERFACE)
8808 MIDL_INTERFACE("d8d715a0-6e5e-11d0-b3f0-00aa003761c5")
8809 IAMVfwCaptureDialogs : public IUnknown
8810 {
8811     virtual HRESULT STDMETHODCALLTYPE HasDialog(
8812         int dialog) = 0;
8813 
8814     virtual HRESULT STDMETHODCALLTYPE ShowDialog(
8815         int dialog,
8816         HWND hwnd) = 0;
8817 
8818     virtual HRESULT STDMETHODCALLTYPE SendDriverMessage(
8819         int dialog,
8820         int msg,
8821         LONG data1,
8822         LONG data2) = 0;
8823 
8824 };
8825 #ifdef __CRT_UUID_DECL
8826 __CRT_UUID_DECL(IAMVfwCaptureDialogs, 0xd8d715a0, 0x6e5e, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
8827 #endif
8828 #else
8829 typedef struct IAMVfwCaptureDialogsVtbl {
8830     BEGIN_INTERFACE
8831 
8832     /*** IUnknown methods ***/
8833     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8834         IAMVfwCaptureDialogs *This,
8835         REFIID riid,
8836         void **ppvObject);
8837 
8838     ULONG (STDMETHODCALLTYPE *AddRef)(
8839         IAMVfwCaptureDialogs *This);
8840 
8841     ULONG (STDMETHODCALLTYPE *Release)(
8842         IAMVfwCaptureDialogs *This);
8843 
8844     /*** IAMVfwCaptureDialogs methods ***/
8845     HRESULT (STDMETHODCALLTYPE *HasDialog)(
8846         IAMVfwCaptureDialogs *This,
8847         int dialog);
8848 
8849     HRESULT (STDMETHODCALLTYPE *ShowDialog)(
8850         IAMVfwCaptureDialogs *This,
8851         int dialog,
8852         HWND hwnd);
8853 
8854     HRESULT (STDMETHODCALLTYPE *SendDriverMessage)(
8855         IAMVfwCaptureDialogs *This,
8856         int dialog,
8857         int msg,
8858         LONG data1,
8859         LONG data2);
8860 
8861     END_INTERFACE
8862 } IAMVfwCaptureDialogsVtbl;
8863 
8864 interface IAMVfwCaptureDialogs {
8865     CONST_VTBL IAMVfwCaptureDialogsVtbl* lpVtbl;
8866 };
8867 
8868 #ifdef COBJMACROS
8869 #ifndef WIDL_C_INLINE_WRAPPERS
8870 /*** IUnknown methods ***/
8871 #define IAMVfwCaptureDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8872 #define IAMVfwCaptureDialogs_AddRef(This) (This)->lpVtbl->AddRef(This)
8873 #define IAMVfwCaptureDialogs_Release(This) (This)->lpVtbl->Release(This)
8874 /*** IAMVfwCaptureDialogs methods ***/
8875 #define IAMVfwCaptureDialogs_HasDialog(This,dialog) (This)->lpVtbl->HasDialog(This,dialog)
8876 #define IAMVfwCaptureDialogs_ShowDialog(This,dialog,hwnd) (This)->lpVtbl->ShowDialog(This,dialog,hwnd)
8877 #define IAMVfwCaptureDialogs_SendDriverMessage(This,dialog,msg,data1,data2) (This)->lpVtbl->SendDriverMessage(This,dialog,msg,data1,data2)
8878 #else
8879 /*** IUnknown methods ***/
8880 static FORCEINLINE HRESULT IAMVfwCaptureDialogs_QueryInterface(IAMVfwCaptureDialogs* This,REFIID riid,void **ppvObject) {
8881     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8882 }
8883 static FORCEINLINE ULONG IAMVfwCaptureDialogs_AddRef(IAMVfwCaptureDialogs* This) {
8884     return This->lpVtbl->AddRef(This);
8885 }
8886 static FORCEINLINE ULONG IAMVfwCaptureDialogs_Release(IAMVfwCaptureDialogs* This) {
8887     return This->lpVtbl->Release(This);
8888 }
8889 /*** IAMVfwCaptureDialogs methods ***/
8890 static FORCEINLINE HRESULT IAMVfwCaptureDialogs_HasDialog(IAMVfwCaptureDialogs* This,int dialog) {
8891     return This->lpVtbl->HasDialog(This,dialog);
8892 }
8893 static FORCEINLINE HRESULT IAMVfwCaptureDialogs_ShowDialog(IAMVfwCaptureDialogs* This,int dialog,HWND hwnd) {
8894     return This->lpVtbl->ShowDialog(This,dialog,hwnd);
8895 }
8896 static FORCEINLINE HRESULT IAMVfwCaptureDialogs_SendDriverMessage(IAMVfwCaptureDialogs* This,int dialog,int msg,LONG data1,LONG data2) {
8897     return This->lpVtbl->SendDriverMessage(This,dialog,msg,data1,data2);
8898 }
8899 #endif
8900 #endif
8901 
8902 #endif
8903 
8904 
8905 #endif  /* __IAMVfwCaptureDialogs_INTERFACE_DEFINED__ */
8906 
8907 #if (_WIN32_WINNT >= 0x0601)
8908 /*****************************************************************************
8909  * IAMAsyncReaderTimestampScaling interface
8910  */
8911 #ifndef __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__
8912 #define __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__
8913 
8914 DEFINE_GUID(IID_IAMAsyncReaderTimestampScaling, 0xcf7b26fc, 0x9a00, 0x485b, 0x81,0x47, 0x3e,0x78,0x9d,0x5e,0x8f,0x67);
8915 #if defined(__cplusplus) && !defined(CINTERFACE)
8916 MIDL_INTERFACE("cf7b26fc-9a00-485b-8147-3e789d5e8f67")
8917 IAMAsyncReaderTimestampScaling : public IUnknown
8918 {
8919     virtual HRESULT STDMETHODCALLTYPE GetTimestampMode(
8920         WINBOOL *pfRaw) = 0;
8921 
8922     virtual HRESULT STDMETHODCALLTYPE SetTimestampMode(
8923         WINBOOL fRaw) = 0;
8924 
8925 };
8926 #ifdef __CRT_UUID_DECL
8927 __CRT_UUID_DECL(IAMAsyncReaderTimestampScaling, 0xcf7b26fc, 0x9a00, 0x485b, 0x81,0x47, 0x3e,0x78,0x9d,0x5e,0x8f,0x67)
8928 #endif
8929 #else
8930 typedef struct IAMAsyncReaderTimestampScalingVtbl {
8931     BEGIN_INTERFACE
8932 
8933     /*** IUnknown methods ***/
8934     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8935         IAMAsyncReaderTimestampScaling *This,
8936         REFIID riid,
8937         void **ppvObject);
8938 
8939     ULONG (STDMETHODCALLTYPE *AddRef)(
8940         IAMAsyncReaderTimestampScaling *This);
8941 
8942     ULONG (STDMETHODCALLTYPE *Release)(
8943         IAMAsyncReaderTimestampScaling *This);
8944 
8945     /*** IAMAsyncReaderTimestampScaling methods ***/
8946     HRESULT (STDMETHODCALLTYPE *GetTimestampMode)(
8947         IAMAsyncReaderTimestampScaling *This,
8948         WINBOOL *pfRaw);
8949 
8950     HRESULT (STDMETHODCALLTYPE *SetTimestampMode)(
8951         IAMAsyncReaderTimestampScaling *This,
8952         WINBOOL fRaw);
8953 
8954     END_INTERFACE
8955 } IAMAsyncReaderTimestampScalingVtbl;
8956 
8957 interface IAMAsyncReaderTimestampScaling {
8958     CONST_VTBL IAMAsyncReaderTimestampScalingVtbl* lpVtbl;
8959 };
8960 
8961 #ifdef COBJMACROS
8962 #ifndef WIDL_C_INLINE_WRAPPERS
8963 /*** IUnknown methods ***/
8964 #define IAMAsyncReaderTimestampScaling_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8965 #define IAMAsyncReaderTimestampScaling_AddRef(This) (This)->lpVtbl->AddRef(This)
8966 #define IAMAsyncReaderTimestampScaling_Release(This) (This)->lpVtbl->Release(This)
8967 /*** IAMAsyncReaderTimestampScaling methods ***/
8968 #define IAMAsyncReaderTimestampScaling_GetTimestampMode(This,pfRaw) (This)->lpVtbl->GetTimestampMode(This,pfRaw)
8969 #define IAMAsyncReaderTimestampScaling_SetTimestampMode(This,fRaw) (This)->lpVtbl->SetTimestampMode(This,fRaw)
8970 #else
8971 /*** IUnknown methods ***/
8972 static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_QueryInterface(IAMAsyncReaderTimestampScaling* This,REFIID riid,void **ppvObject) {
8973     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8974 }
8975 static FORCEINLINE ULONG IAMAsyncReaderTimestampScaling_AddRef(IAMAsyncReaderTimestampScaling* This) {
8976     return This->lpVtbl->AddRef(This);
8977 }
8978 static FORCEINLINE ULONG IAMAsyncReaderTimestampScaling_Release(IAMAsyncReaderTimestampScaling* This) {
8979     return This->lpVtbl->Release(This);
8980 }
8981 /*** IAMAsyncReaderTimestampScaling methods ***/
8982 static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_GetTimestampMode(IAMAsyncReaderTimestampScaling* This,WINBOOL *pfRaw) {
8983     return This->lpVtbl->GetTimestampMode(This,pfRaw);
8984 }
8985 static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_SetTimestampMode(IAMAsyncReaderTimestampScaling* This,WINBOOL fRaw) {
8986     return This->lpVtbl->SetTimestampMode(This,fRaw);
8987 }
8988 #endif
8989 #endif
8990 
8991 #endif
8992 
8993 
8994 #endif  /* __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__ */
8995 
8996 /*****************************************************************************
8997  * IAMPluginControl interface
8998  */
8999 #ifndef __IAMPluginControl_INTERFACE_DEFINED__
9000 #define __IAMPluginControl_INTERFACE_DEFINED__
9001 
9002 DEFINE_GUID(IID_IAMPluginControl, 0x0e26a181, 0xf40c, 0x4635, 0x87,0x86, 0x97,0x62,0x84,0xb5,0x29,0x81);
9003 #if defined(__cplusplus) && !defined(CINTERFACE)
9004 MIDL_INTERFACE("0e26a181-f40c-4635-8786-976284b52981")
9005 IAMPluginControl : public IUnknown
9006 {
9007     virtual HRESULT STDMETHODCALLTYPE GetPreferredClsid(
9008         REFGUID subType,
9009         CLSID *clsid) = 0;
9010 
9011     virtual HRESULT STDMETHODCALLTYPE GetPreferredClsidByIndex(
9012         DWORD index,
9013         GUID *subType,
9014         CLSID *clsid) = 0;
9015 
9016     virtual HRESULT STDMETHODCALLTYPE SetPreferredClsid(
9017         REFGUID subType,
9018         const CLSID *clsid) = 0;
9019 
9020     virtual HRESULT STDMETHODCALLTYPE IsDisabled(
9021         REFCLSID clsid) = 0;
9022 
9023     virtual HRESULT STDMETHODCALLTYPE GetDisabledByIndex(
9024         DWORD index,
9025         CLSID *clsid) = 0;
9026 
9027     virtual HRESULT STDMETHODCALLTYPE SetDisabled(
9028         REFCLSID clsid,
9029         WINBOOL disabled) = 0;
9030 
9031     virtual HRESULT STDMETHODCALLTYPE IsLegacyDisabled(
9032         LPCWSTR dllName) = 0;
9033 
9034 };
9035 #ifdef __CRT_UUID_DECL
9036 __CRT_UUID_DECL(IAMPluginControl, 0x0e26a181, 0xf40c, 0x4635, 0x87,0x86, 0x97,0x62,0x84,0xb5,0x29,0x81)
9037 #endif
9038 #else
9039 typedef struct IAMPluginControlVtbl {
9040     BEGIN_INTERFACE
9041 
9042     /*** IUnknown methods ***/
9043     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9044         IAMPluginControl *This,
9045         REFIID riid,
9046         void **ppvObject);
9047 
9048     ULONG (STDMETHODCALLTYPE *AddRef)(
9049         IAMPluginControl *This);
9050 
9051     ULONG (STDMETHODCALLTYPE *Release)(
9052         IAMPluginControl *This);
9053 
9054     /*** IAMPluginControl methods ***/
9055     HRESULT (STDMETHODCALLTYPE *GetPreferredClsid)(
9056         IAMPluginControl *This,
9057         REFGUID subType,
9058         CLSID *clsid);
9059 
9060     HRESULT (STDMETHODCALLTYPE *GetPreferredClsidByIndex)(
9061         IAMPluginControl *This,
9062         DWORD index,
9063         GUID *subType,
9064         CLSID *clsid);
9065 
9066     HRESULT (STDMETHODCALLTYPE *SetPreferredClsid)(
9067         IAMPluginControl *This,
9068         REFGUID subType,
9069         const CLSID *clsid);
9070 
9071     HRESULT (STDMETHODCALLTYPE *IsDisabled)(
9072         IAMPluginControl *This,
9073         REFCLSID clsid);
9074 
9075     HRESULT (STDMETHODCALLTYPE *GetDisabledByIndex)(
9076         IAMPluginControl *This,
9077         DWORD index,
9078         CLSID *clsid);
9079 
9080     HRESULT (STDMETHODCALLTYPE *SetDisabled)(
9081         IAMPluginControl *This,
9082         REFCLSID clsid,
9083         WINBOOL disabled);
9084 
9085     HRESULT (STDMETHODCALLTYPE *IsLegacyDisabled)(
9086         IAMPluginControl *This,
9087         LPCWSTR dllName);
9088 
9089     END_INTERFACE
9090 } IAMPluginControlVtbl;
9091 
9092 interface IAMPluginControl {
9093     CONST_VTBL IAMPluginControlVtbl* lpVtbl;
9094 };
9095 
9096 #ifdef COBJMACROS
9097 #ifndef WIDL_C_INLINE_WRAPPERS
9098 /*** IUnknown methods ***/
9099 #define IAMPluginControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9100 #define IAMPluginControl_AddRef(This) (This)->lpVtbl->AddRef(This)
9101 #define IAMPluginControl_Release(This) (This)->lpVtbl->Release(This)
9102 /*** IAMPluginControl methods ***/
9103 #define IAMPluginControl_GetPreferredClsid(This,subType,clsid) (This)->lpVtbl->GetPreferredClsid(This,subType,clsid)
9104 #define IAMPluginControl_GetPreferredClsidByIndex(This,index,subType,clsid) (This)->lpVtbl->GetPreferredClsidByIndex(This,index,subType,clsid)
9105 #define IAMPluginControl_SetPreferredClsid(This,subType,clsid) (This)->lpVtbl->SetPreferredClsid(This,subType,clsid)
9106 #define IAMPluginControl_IsDisabled(This,clsid) (This)->lpVtbl->IsDisabled(This,clsid)
9107 #define IAMPluginControl_GetDisabledByIndex(This,index,clsid) (This)->lpVtbl->GetDisabledByIndex(This,index,clsid)
9108 #define IAMPluginControl_SetDisabled(This,clsid,disabled) (This)->lpVtbl->SetDisabled(This,clsid,disabled)
9109 #define IAMPluginControl_IsLegacyDisabled(This,dllName) (This)->lpVtbl->IsLegacyDisabled(This,dllName)
9110 #else
9111 /*** IUnknown methods ***/
9112 static FORCEINLINE HRESULT IAMPluginControl_QueryInterface(IAMPluginControl* This,REFIID riid,void **ppvObject) {
9113     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9114 }
9115 static FORCEINLINE ULONG IAMPluginControl_AddRef(IAMPluginControl* This) {
9116     return This->lpVtbl->AddRef(This);
9117 }
9118 static FORCEINLINE ULONG IAMPluginControl_Release(IAMPluginControl* This) {
9119     return This->lpVtbl->Release(This);
9120 }
9121 /*** IAMPluginControl methods ***/
9122 static FORCEINLINE HRESULT IAMPluginControl_GetPreferredClsid(IAMPluginControl* This,REFGUID subType,CLSID *clsid) {
9123     return This->lpVtbl->GetPreferredClsid(This,subType,clsid);
9124 }
9125 static FORCEINLINE HRESULT IAMPluginControl_GetPreferredClsidByIndex(IAMPluginControl* This,DWORD index,GUID *subType,CLSID *clsid) {
9126     return This->lpVtbl->GetPreferredClsidByIndex(This,index,subType,clsid);
9127 }
9128 static FORCEINLINE HRESULT IAMPluginControl_SetPreferredClsid(IAMPluginControl* This,REFGUID subType,const CLSID *clsid) {
9129     return This->lpVtbl->SetPreferredClsid(This,subType,clsid);
9130 }
9131 static FORCEINLINE HRESULT IAMPluginControl_IsDisabled(IAMPluginControl* This,REFCLSID clsid) {
9132     return This->lpVtbl->IsDisabled(This,clsid);
9133 }
9134 static FORCEINLINE HRESULT IAMPluginControl_GetDisabledByIndex(IAMPluginControl* This,DWORD index,CLSID *clsid) {
9135     return This->lpVtbl->GetDisabledByIndex(This,index,clsid);
9136 }
9137 static FORCEINLINE HRESULT IAMPluginControl_SetDisabled(IAMPluginControl* This,REFCLSID clsid,WINBOOL disabled) {
9138     return This->lpVtbl->SetDisabled(This,clsid,disabled);
9139 }
9140 static FORCEINLINE HRESULT IAMPluginControl_IsLegacyDisabled(IAMPluginControl* This,LPCWSTR dllName) {
9141     return This->lpVtbl->IsLegacyDisabled(This,dllName);
9142 }
9143 #endif
9144 #endif
9145 
9146 #endif
9147 
9148 
9149 #endif  /* __IAMPluginControl_INTERFACE_DEFINED__ */
9150 
9151 #endif /*(_WIN32_WINNT >= 0x0601)*/
9152 #ifndef __IReferenceClock2_FWD_DEFINED__
9153 #define __IReferenceClock2_FWD_DEFINED__
9154 typedef struct IReferenceClock2 IReferenceClock2;
9155 #endif
9156 #ifndef __IDistributorNotify_FWD_DEFINED__
9157 #define __IDistributorNotify_FWD_DEFINED__
9158 typedef struct IDistributorNotify IDistributorNotify;
9159 #endif
9160 
9161 #ifndef __IAMVideoCompression_FWD_DEFINED__
9162 #define __IAMVideoCompression_FWD_DEFINED__
9163 typedef struct IAMVideoCompression IAMVideoCompression;
9164 #endif
9165 
9166 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
9167 #define __IAMVfwCompressDialogs_FWD_DEFINED__
9168 typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs;
9169 #endif
9170 
9171 #ifndef __IAMDroppedFrames_FWD_DEFINED__
9172 #define __IAMDroppedFrames_FWD_DEFINED__
9173 typedef struct IAMDroppedFrames IAMDroppedFrames;
9174 #endif
9175 
9176 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
9177 #define __IAMAudioInputMixer_FWD_DEFINED__
9178 typedef struct IAMAudioInputMixer IAMAudioInputMixer;
9179 #endif
9180 
9181 #ifndef __IAMBufferNegotiation_FWD_DEFINED__
9182 #define __IAMBufferNegotiation_FWD_DEFINED__
9183 typedef struct IAMBufferNegotiation IAMBufferNegotiation;
9184 #endif
9185 
9186 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
9187 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
9188 typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
9189 #endif
9190 
9191 #ifndef __IAMCameraControl_FWD_DEFINED__
9192 #define __IAMCameraControl_FWD_DEFINED__
9193 typedef struct IAMCameraControl IAMCameraControl;
9194 #endif
9195 
9196 #ifndef __IAMVideoControl_FWD_DEFINED__
9197 #define __IAMVideoControl_FWD_DEFINED__
9198 typedef struct IAMVideoControl IAMVideoControl;
9199 #endif
9200 
9201 #ifndef __IAMCrossbar_FWD_DEFINED__
9202 #define __IAMCrossbar_FWD_DEFINED__
9203 typedef struct IAMCrossbar IAMCrossbar;
9204 #endif
9205 
9206 #ifndef __IAMTuner_FWD_DEFINED__
9207 #define __IAMTuner_FWD_DEFINED__
9208 typedef struct IAMTuner IAMTuner;
9209 #endif
9210 
9211 #ifndef __IAMTunerNotification_FWD_DEFINED__
9212 #define __IAMTunerNotification_FWD_DEFINED__
9213 typedef struct IAMTunerNotification IAMTunerNotification;
9214 #endif
9215 
9216 #ifndef __IAMTVTuner_FWD_DEFINED__
9217 #define __IAMTVTuner_FWD_DEFINED__
9218 typedef struct IAMTVTuner IAMTVTuner;
9219 #endif
9220 
9221 #ifndef __IBPCSatelliteTuner_FWD_DEFINED__
9222 #define __IBPCSatelliteTuner_FWD_DEFINED__
9223 typedef struct IBPCSatelliteTuner IBPCSatelliteTuner;
9224 #endif
9225 
9226 #ifndef __IAMTVAudio_FWD_DEFINED__
9227 #define __IAMTVAudio_FWD_DEFINED__
9228 typedef struct IAMTVAudio IAMTVAudio;
9229 #endif
9230 
9231 #ifndef __IAMTVAudioNotification_FWD_DEFINED__
9232 #define __IAMTVAudioNotification_FWD_DEFINED__
9233 typedef struct IAMTVAudioNotification IAMTVAudioNotification;
9234 #endif
9235 
9236 #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
9237 #define __IAMAnalogVideoEncoder_FWD_DEFINED__
9238 typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
9239 #endif
9240 
9241 #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
9242 #define __IAMPhysicalPinInfo_FWD_DEFINED__
9243 typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo;
9244 #endif
9245 
9246 #ifndef __IAMExtDevice_FWD_DEFINED__
9247 #define __IAMExtDevice_FWD_DEFINED__
9248 typedef struct IAMExtDevice IAMExtDevice;
9249 #endif
9250 
9251 #ifndef __IAMExtTransport_FWD_DEFINED__
9252 #define __IAMExtTransport_FWD_DEFINED__
9253 typedef struct IAMExtTransport IAMExtTransport;
9254 #endif
9255 
9256 #ifndef __IAMTimecodeReader_FWD_DEFINED__
9257 #define __IAMTimecodeReader_FWD_DEFINED__
9258 typedef struct IAMTimecodeReader IAMTimecodeReader;
9259 #endif
9260 
9261 #ifndef __IAMTimecodeGenerator_FWD_DEFINED__
9262 #define __IAMTimecodeGenerator_FWD_DEFINED__
9263 typedef struct IAMTimecodeGenerator IAMTimecodeGenerator;
9264 #endif
9265 
9266 #ifndef __IAMTimecodeDisplay_FWD_DEFINED__
9267 #define __IAMTimecodeDisplay_FWD_DEFINED__
9268 typedef struct IAMTimecodeDisplay IAMTimecodeDisplay;
9269 #endif
9270 
9271 #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
9272 #define __IAMDevMemoryAllocator_FWD_DEFINED__
9273 typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator;
9274 #endif
9275 
9276 #ifndef __IAMDevMemoryControl_FWD_DEFINED__
9277 #define __IAMDevMemoryControl_FWD_DEFINED__
9278 typedef struct IAMDevMemoryControl IAMDevMemoryControl;
9279 #endif
9280 
9281 #ifndef __IAMStreamSelect_FWD_DEFINED__
9282 #define __IAMStreamSelect_FWD_DEFINED__
9283 typedef struct IAMStreamSelect IAMStreamSelect;
9284 #endif
9285 
9286 #ifndef __IAMResourceControl_FWD_DEFINED__
9287 #define __IAMResourceControl_FWD_DEFINED__
9288 typedef struct IAMResourceControl IAMResourceControl;
9289 #endif
9290 
9291 #ifndef __IAMClockAdjust_FWD_DEFINED__
9292 #define __IAMClockAdjust_FWD_DEFINED__
9293 typedef struct IAMClockAdjust IAMClockAdjust;
9294 #endif
9295 
9296 #ifndef __IDrawVideoImage_FWD_DEFINED__
9297 #define __IDrawVideoImage_FWD_DEFINED__
9298 typedef struct IDrawVideoImage IDrawVideoImage;
9299 #endif
9300 
9301 #ifndef __IDecimateVideoImage_FWD_DEFINED__
9302 #define __IDecimateVideoImage_FWD_DEFINED__
9303 typedef struct IDecimateVideoImage IDecimateVideoImage;
9304 #endif
9305 
9306 #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
9307 #define __IAMVideoDecimationProperties_FWD_DEFINED__
9308 typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties;
9309 #endif
9310 
9311 #ifndef __IVideoFrameStep_FWD_DEFINED__
9312 #define __IVideoFrameStep_FWD_DEFINED__
9313 typedef struct IVideoFrameStep IVideoFrameStep;
9314 #endif
9315 
9316 #ifndef __IAMLatency_FWD_DEFINED__
9317 #define __IAMLatency_FWD_DEFINED__
9318 typedef struct IAMLatency IAMLatency;
9319 #endif
9320 
9321 #ifndef __IAMPushSource_FWD_DEFINED__
9322 #define __IAMPushSource_FWD_DEFINED__
9323 typedef struct IAMPushSource IAMPushSource;
9324 #endif
9325 
9326 #ifndef __IAMDeviceRemoval_FWD_DEFINED__
9327 #define __IAMDeviceRemoval_FWD_DEFINED__
9328 typedef struct IAMDeviceRemoval IAMDeviceRemoval;
9329 #endif
9330 
9331 #ifndef __IDVEnc_FWD_DEFINED__
9332 #define __IDVEnc_FWD_DEFINED__
9333 typedef struct IDVEnc IDVEnc;
9334 #endif
9335 
9336 #ifndef __IIPDVDec_FWD_DEFINED__
9337 #define __IIPDVDec_FWD_DEFINED__
9338 typedef struct IIPDVDec IIPDVDec;
9339 #endif
9340 
9341 #ifndef __IDVRGB219_FWD_DEFINED__
9342 #define __IDVRGB219_FWD_DEFINED__
9343 typedef struct IDVRGB219 IDVRGB219;
9344 #endif
9345 
9346 #ifndef __IDVSplitter_FWD_DEFINED__
9347 #define __IDVSplitter_FWD_DEFINED__
9348 typedef struct IDVSplitter IDVSplitter;
9349 #endif
9350 
9351 #ifndef __IAMAudioRendererStats_FWD_DEFINED__
9352 #define __IAMAudioRendererStats_FWD_DEFINED__
9353 typedef struct IAMAudioRendererStats IAMAudioRendererStats;
9354 #endif
9355 
9356 #ifndef __IAMGraphStreams_FWD_DEFINED__
9357 #define __IAMGraphStreams_FWD_DEFINED__
9358 typedef struct IAMGraphStreams IAMGraphStreams;
9359 #endif
9360 
9361 #ifndef __IAMOverlayFX_FWD_DEFINED__
9362 #define __IAMOverlayFX_FWD_DEFINED__
9363 typedef struct IAMOverlayFX IAMOverlayFX;
9364 #endif
9365 
9366 #ifndef __IAMOpenProgress_FWD_DEFINED__
9367 #define __IAMOpenProgress_FWD_DEFINED__
9368 typedef struct IAMOpenProgress IAMOpenProgress;
9369 #endif
9370 
9371 #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
9372 #define __IMpeg2Demultiplexer_FWD_DEFINED__
9373 typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer;
9374 #endif
9375 
9376 #ifndef __IEnumStreamIdMap_FWD_DEFINED__
9377 #define __IEnumStreamIdMap_FWD_DEFINED__
9378 typedef struct IEnumStreamIdMap IEnumStreamIdMap;
9379 #endif
9380 
9381 #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
9382 #define __IMPEG2StreamIdMap_FWD_DEFINED__
9383 typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap;
9384 #endif
9385 
9386 #ifndef __IRegisterServiceProvider_FWD_DEFINED__
9387 #define __IRegisterServiceProvider_FWD_DEFINED__
9388 typedef struct IRegisterServiceProvider IRegisterServiceProvider;
9389 #endif
9390 
9391 #ifndef __ICodecAPI_FWD_DEFINED__
9392 #define __ICodecAPI_FWD_DEFINED__
9393 typedef struct ICodecAPI ICodecAPI;
9394 #endif
9395 
9396 #ifndef __IGetCapabilitiesKey_FWD_DEFINED__
9397 #define __IGetCapabilitiesKey_FWD_DEFINED__
9398 typedef struct IGetCapabilitiesKey IGetCapabilitiesKey;
9399 #endif
9400 
9401 #ifndef __IEncoderAPI_FWD_DEFINED__
9402 #define __IEncoderAPI_FWD_DEFINED__
9403 typedef struct IEncoderAPI IEncoderAPI;
9404 #endif
9405 
9406 #ifndef __IVideoEncoder_FWD_DEFINED__
9407 #define __IVideoEncoder_FWD_DEFINED__
9408 typedef struct IVideoEncoder IVideoEncoder;
9409 #endif
9410 
9411 #ifndef __IAMDecoderCaps_FWD_DEFINED__
9412 #define __IAMDecoderCaps_FWD_DEFINED__
9413 typedef struct IAMDecoderCaps IAMDecoderCaps;
9414 #endif
9415 
9416 #ifndef __IDvdControl_FWD_DEFINED__
9417 #define __IDvdControl_FWD_DEFINED__
9418 typedef struct IDvdControl IDvdControl;
9419 #endif
9420 
9421 #ifndef __IDvdInfo_FWD_DEFINED__
9422 #define __IDvdInfo_FWD_DEFINED__
9423 typedef struct IDvdInfo IDvdInfo;
9424 #endif
9425 
9426 #ifndef __IDvdCmd_FWD_DEFINED__
9427 #define __IDvdCmd_FWD_DEFINED__
9428 typedef struct IDvdCmd IDvdCmd;
9429 #endif
9430 
9431 #ifndef __IDvdState_FWD_DEFINED__
9432 #define __IDvdState_FWD_DEFINED__
9433 typedef struct IDvdState IDvdState;
9434 #endif
9435 
9436 #ifndef __IDvdControl2_FWD_DEFINED__
9437 #define __IDvdControl2_FWD_DEFINED__
9438 typedef struct IDvdControl2 IDvdControl2;
9439 #endif
9440 
9441 #ifndef __IDvdInfo2_FWD_DEFINED__
9442 #define __IDvdInfo2_FWD_DEFINED__
9443 typedef struct IDvdInfo2 IDvdInfo2;
9444 #endif
9445 
9446 #ifndef __IDvdGraphBuilder_FWD_DEFINED__
9447 #define __IDvdGraphBuilder_FWD_DEFINED__
9448 typedef struct IDvdGraphBuilder IDvdGraphBuilder;
9449 #endif
9450 
9451 #ifndef __IDDrawExclModeVideo_FWD_DEFINED__
9452 #define __IDDrawExclModeVideo_FWD_DEFINED__
9453 typedef struct IDDrawExclModeVideo IDDrawExclModeVideo;
9454 #endif
9455 
9456 #ifndef __IDDrawExclModeVideoCallback_FWD_DEFINED__
9457 #define __IDDrawExclModeVideoCallback_FWD_DEFINED__
9458 typedef struct IDDrawExclModeVideoCallback IDDrawExclModeVideoCallback;
9459 #endif
9460 
9461 #ifndef __IPinConnection_FWD_DEFINED__
9462 #define __IPinConnection_FWD_DEFINED__
9463 typedef struct IPinConnection IPinConnection;
9464 #endif
9465 
9466 #ifndef __IPinFlowControl_FWD_DEFINED__
9467 #define __IPinFlowControl_FWD_DEFINED__
9468 typedef struct IPinFlowControl IPinFlowControl;
9469 #endif
9470 
9471 #ifndef __IGraphConfig_FWD_DEFINED__
9472 #define __IGraphConfig_FWD_DEFINED__
9473 typedef struct IGraphConfig IGraphConfig;
9474 #endif
9475 
9476 #ifndef __IGraphConfigCallback_FWD_DEFINED__
9477 #define __IGraphConfigCallback_FWD_DEFINED__
9478 typedef struct IGraphConfigCallback IGraphConfigCallback;
9479 #endif
9480 
9481 #ifndef __IFilterChain_FWD_DEFINED__
9482 #define __IFilterChain_FWD_DEFINED__
9483 typedef struct IFilterChain IFilterChain;
9484 #endif
9485 
9486 #ifndef __IVMRImagePresenter_FWD_DEFINED__
9487 #define __IVMRImagePresenter_FWD_DEFINED__
9488 typedef struct IVMRImagePresenter IVMRImagePresenter;
9489 #endif
9490 
9491 #ifndef __IVMRSurfaceAllocator_FWD_DEFINED__
9492 #define __IVMRSurfaceAllocator_FWD_DEFINED__
9493 typedef struct IVMRSurfaceAllocator IVMRSurfaceAllocator;
9494 #endif
9495 
9496 #ifndef __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
9497 #define __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
9498 typedef struct IVMRSurfaceAllocatorNotify IVMRSurfaceAllocatorNotify;
9499 #endif
9500 
9501 #ifndef __IVMRWindowlessControl_FWD_DEFINED__
9502 #define __IVMRWindowlessControl_FWD_DEFINED__
9503 typedef struct IVMRWindowlessControl IVMRWindowlessControl;
9504 #endif
9505 
9506 #ifndef __IVMRMixerControl_FWD_DEFINED__
9507 #define __IVMRMixerControl_FWD_DEFINED__
9508 typedef struct IVMRMixerControl IVMRMixerControl;
9509 #endif
9510 
9511 #ifndef __IVMRMonitorConfig_FWD_DEFINED__
9512 #define __IVMRMonitorConfig_FWD_DEFINED__
9513 typedef struct IVMRMonitorConfig IVMRMonitorConfig;
9514 #endif
9515 
9516 #ifndef __IVMRFilterConfig_FWD_DEFINED__
9517 #define __IVMRFilterConfig_FWD_DEFINED__
9518 typedef struct IVMRFilterConfig IVMRFilterConfig;
9519 #endif
9520 
9521 #ifndef __IVMRAspectRatioControl_FWD_DEFINED__
9522 #define __IVMRAspectRatioControl_FWD_DEFINED__
9523 typedef struct IVMRAspectRatioControl IVMRAspectRatioControl;
9524 #endif
9525 
9526 #ifndef __IVMRDeinterlaceControl_FWD_DEFINED__
9527 #define __IVMRDeinterlaceControl_FWD_DEFINED__
9528 typedef struct IVMRDeinterlaceControl IVMRDeinterlaceControl;
9529 #endif
9530 
9531 #ifndef __IVMRMixerBitmap_FWD_DEFINED__
9532 #define __IVMRMixerBitmap_FWD_DEFINED__
9533 typedef struct IVMRMixerBitmap IVMRMixerBitmap;
9534 #endif
9535 
9536 #ifndef __IVMRImageCompositor_FWD_DEFINED__
9537 #define __IVMRImageCompositor_FWD_DEFINED__
9538 typedef struct IVMRImageCompositor IVMRImageCompositor;
9539 #endif
9540 
9541 #ifndef __IVMRVideoStreamControl_FWD_DEFINED__
9542 #define __IVMRVideoStreamControl_FWD_DEFINED__
9543 typedef struct IVMRVideoStreamControl IVMRVideoStreamControl;
9544 #endif
9545 
9546 #ifndef __IVMRSurface_FWD_DEFINED__
9547 #define __IVMRSurface_FWD_DEFINED__
9548 typedef struct IVMRSurface IVMRSurface;
9549 #endif
9550 
9551 #ifndef __IVMRImagePresenterConfig_FWD_DEFINED__
9552 #define __IVMRImagePresenterConfig_FWD_DEFINED__
9553 typedef struct IVMRImagePresenterConfig IVMRImagePresenterConfig;
9554 #endif
9555 
9556 #ifndef __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
9557 #define __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
9558 typedef struct IVMRImagePresenterExclModeConfig IVMRImagePresenterExclModeConfig;
9559 #endif
9560 
9561 #ifndef __IVPManager_FWD_DEFINED__
9562 #define __IVPManager_FWD_DEFINED__
9563 typedef struct IVPManager IVPManager;
9564 #endif
9565 
9566 #ifndef __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
9567 #define __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
9568 typedef struct IAMAsyncReaderTimestampScaling IAMAsyncReaderTimestampScaling;
9569 #endif
9570 
9571 #ifndef __IAMPluginControl_FWD_DEFINED__
9572 #define __IAMPluginControl_FWD_DEFINED__
9573 typedef struct IAMPluginControl IAMPluginControl;
9574 #endif
9575 
9576 #include "ocidl.h"
9577 
9578   extern RPC_IF_HANDLE __MIDL_itf_strmif_0125_v0_0_c_ifspec;
9579   extern RPC_IF_HANDLE __MIDL_itf_strmif_0125_v0_0_s_ifspec;
9580 #ifndef __IReferenceClock2_INTERFACE_DEFINED__
9581 #define __IReferenceClock2_INTERFACE_DEFINED__
9582   EXTERN_C const IID IID_IReferenceClock2;
9583 #if defined(__cplusplus) && !defined(CINTERFACE)
9584   struct IReferenceClock2 : public IReferenceClock {
9585   };
9586 #else
9587   typedef struct IReferenceClock2Vtbl {
9588     BEGIN_INTERFACE
9589       HRESULT (WINAPI *QueryInterface)(IReferenceClock2 *This,REFIID riid,void **ppvObject);
9590       ULONG (WINAPI *AddRef)(IReferenceClock2 *This);
9591       ULONG (WINAPI *Release)(IReferenceClock2 *This);
9592       HRESULT (WINAPI *GetTime)(IReferenceClock2 *This,REFERENCE_TIME *pTime);
9593       HRESULT (WINAPI *AdviseTime)(IReferenceClock2 *This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie);
9594       HRESULT (WINAPI *AdvisePeriodic)(IReferenceClock2 *This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie);
9595       HRESULT (WINAPI *Unadvise)(IReferenceClock2 *This,DWORD_PTR dwAdviseCookie);
9596     END_INTERFACE
9597   } IReferenceClock2Vtbl;
9598   struct IReferenceClock2 {
9599     CONST_VTBL struct IReferenceClock2Vtbl *lpVtbl;
9600   };
9601 #ifdef COBJMACROS
9602 #define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9603 #define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
9604 #define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
9605 #define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
9606 #define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
9607 #define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
9608 #define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
9609 #endif
9610 #endif
9611 #endif
9612 
9613   typedef IReferenceClock2 *PREFERENCECLOCK2;
9614 
9615 #ifndef __IDistributorNotify_INTERFACE_DEFINED__
9616 #define __IDistributorNotify_INTERFACE_DEFINED__
9617   EXTERN_C const IID IID_IDistributorNotify;
9618 #if defined(__cplusplus) && !defined(CINTERFACE)
9619   struct IDistributorNotify : public IUnknown {
9620   public:
9621     virtual HRESULT WINAPI Stop(void) = 0;
9622     virtual HRESULT WINAPI Pause(void) = 0;
9623     virtual HRESULT WINAPI Run(REFERENCE_TIME tStart) = 0;
9624     virtual HRESULT WINAPI SetSyncSource(IReferenceClock *pClock) = 0;
9625     virtual HRESULT WINAPI NotifyGraphChange(void) = 0;
9626   };
9627 #else
9628   typedef struct IDistributorNotifyVtbl {
9629     BEGIN_INTERFACE
9630       HRESULT (WINAPI *QueryInterface)(IDistributorNotify *This,REFIID riid,void **ppvObject);
9631       ULONG (WINAPI *AddRef)(IDistributorNotify *This);
9632       ULONG (WINAPI *Release)(IDistributorNotify *This);
9633       HRESULT (WINAPI *Stop)(IDistributorNotify *This);
9634       HRESULT (WINAPI *Pause)(IDistributorNotify *This);
9635       HRESULT (WINAPI *Run)(IDistributorNotify *This,REFERENCE_TIME tStart);
9636       HRESULT (WINAPI *SetSyncSource)(IDistributorNotify *This,IReferenceClock *pClock);
9637       HRESULT (WINAPI *NotifyGraphChange)(IDistributorNotify *This);
9638     END_INTERFACE
9639   } IDistributorNotifyVtbl;
9640   struct IDistributorNotify {
9641     CONST_VTBL struct IDistributorNotifyVtbl *lpVtbl;
9642   };
9643 #ifdef COBJMACROS
9644 #define IDistributorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9645 #define IDistributorNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
9646 #define IDistributorNotify_Release(This) (This)->lpVtbl->Release(This)
9647 #define IDistributorNotify_Stop(This) (This)->lpVtbl->Stop(This)
9648 #define IDistributorNotify_Pause(This) (This)->lpVtbl->Pause(This)
9649 #define IDistributorNotify_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
9650 #define IDistributorNotify_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
9651 #define IDistributorNotify_NotifyGraphChange(This) (This)->lpVtbl->NotifyGraphChange(This)
9652 #endif
9653 #endif
9654   HRESULT WINAPI IDistributorNotify_Stop_Proxy(IDistributorNotify *This);
9655   void __RPC_STUB IDistributorNotify_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9656   HRESULT WINAPI IDistributorNotify_Pause_Proxy(IDistributorNotify *This);
9657   void __RPC_STUB IDistributorNotify_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9658   HRESULT WINAPI IDistributorNotify_Run_Proxy(IDistributorNotify *This,REFERENCE_TIME tStart);
9659   void __RPC_STUB IDistributorNotify_Run_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9660   HRESULT WINAPI IDistributorNotify_SetSyncSource_Proxy(IDistributorNotify *This,IReferenceClock *pClock);
9661   void __RPC_STUB IDistributorNotify_SetSyncSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9662   HRESULT WINAPI IDistributorNotify_NotifyGraphChange_Proxy(IDistributorNotify *This);
9663   void __RPC_STUB IDistributorNotify_NotifyGraphChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9664 #endif
9665 
9666   typedef enum __MIDL___MIDL_itf_strmif_0167_0001 {
9667     CompressionCaps_CanQuality = 0x1,CompressionCaps_CanCrunch = 0x2,CompressionCaps_CanKeyFrame = 0x4,CompressionCaps_CanBFrame = 0x8,
9668     CompressionCaps_CanWindow = 0x10
9669   } CompressionCaps;
9670 
9671   extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_c_ifspec;
9672   extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_s_ifspec;
9673 #ifndef __IAMVideoCompression_INTERFACE_DEFINED__
9674 #define __IAMVideoCompression_INTERFACE_DEFINED__
9675   EXTERN_C const IID IID_IAMVideoCompression;
9676 #if defined(__cplusplus) && !defined(CINTERFACE)
9677   struct IAMVideoCompression : public IUnknown {
9678   public:
9679     virtual HRESULT WINAPI put_KeyFrameRate(LONG KeyFrameRate) = 0;
9680     virtual HRESULT WINAPI get_KeyFrameRate(LONG *pKeyFrameRate) = 0;
9681     virtual HRESULT WINAPI put_PFramesPerKeyFrame(LONG PFramesPerKeyFrame) = 0;
9682     virtual HRESULT WINAPI get_PFramesPerKeyFrame(LONG *pPFramesPerKeyFrame) = 0;
9683     virtual HRESULT WINAPI put_Quality(double Quality) = 0;
9684     virtual HRESULT WINAPI get_Quality(double *pQuality) = 0;
9685     virtual HRESULT WINAPI put_WindowSize(DWORDLONG WindowSize) = 0;
9686     virtual HRESULT WINAPI get_WindowSize(DWORDLONG *pWindowSize) = 0;
9687     virtual HRESULT WINAPI GetInfo(WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities) = 0;
9688     virtual HRESULT WINAPI OverrideKeyFrame(LONG FrameNumber) = 0;
9689     virtual HRESULT WINAPI OverrideFrameSize(LONG FrameNumber,LONG Size) = 0;
9690   };
9691 #else
9692   typedef struct IAMVideoCompressionVtbl {
9693     BEGIN_INTERFACE
9694       HRESULT (WINAPI *QueryInterface)(IAMVideoCompression *This,REFIID riid,void **ppvObject);
9695       ULONG (WINAPI *AddRef)(IAMVideoCompression *This);
9696       ULONG (WINAPI *Release)(IAMVideoCompression *This);
9697       HRESULT (WINAPI *put_KeyFrameRate)(IAMVideoCompression *This,LONG KeyFrameRate);
9698       HRESULT (WINAPI *get_KeyFrameRate)(IAMVideoCompression *This,LONG *pKeyFrameRate);
9699       HRESULT (WINAPI *put_PFramesPerKeyFrame)(IAMVideoCompression *This,LONG PFramesPerKeyFrame);
9700       HRESULT (WINAPI *get_PFramesPerKeyFrame)(IAMVideoCompression *This,LONG *pPFramesPerKeyFrame);
9701       HRESULT (WINAPI *put_Quality)(IAMVideoCompression *This,double Quality);
9702       HRESULT (WINAPI *get_Quality)(IAMVideoCompression *This,double *pQuality);
9703       HRESULT (WINAPI *put_WindowSize)(IAMVideoCompression *This,DWORDLONG WindowSize);
9704       HRESULT (WINAPI *get_WindowSize)(IAMVideoCompression *This,DWORDLONG *pWindowSize);
9705       HRESULT (WINAPI *GetInfo)(IAMVideoCompression *This,WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities);
9706       HRESULT (WINAPI *OverrideKeyFrame)(IAMVideoCompression *This,LONG FrameNumber);
9707       HRESULT (WINAPI *OverrideFrameSize)(IAMVideoCompression *This,LONG FrameNumber,LONG Size);
9708     END_INTERFACE
9709   } IAMVideoCompressionVtbl;
9710   struct IAMVideoCompression {
9711     CONST_VTBL struct IAMVideoCompressionVtbl *lpVtbl;
9712   };
9713 #ifdef COBJMACROS
9714 #define IAMVideoCompression_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9715 #define IAMVideoCompression_AddRef(This) (This)->lpVtbl->AddRef(This)
9716 #define IAMVideoCompression_Release(This) (This)->lpVtbl->Release(This)
9717 #define IAMVideoCompression_put_KeyFrameRate(This,KeyFrameRate) (This)->lpVtbl->put_KeyFrameRate(This,KeyFrameRate)
9718 #define IAMVideoCompression_get_KeyFrameRate(This,pKeyFrameRate) (This)->lpVtbl->get_KeyFrameRate(This,pKeyFrameRate)
9719 #define IAMVideoCompression_put_PFramesPerKeyFrame(This,PFramesPerKeyFrame) (This)->lpVtbl->put_PFramesPerKeyFrame(This,PFramesPerKeyFrame)
9720 #define IAMVideoCompression_get_PFramesPerKeyFrame(This,pPFramesPerKeyFrame) (This)->lpVtbl->get_PFramesPerKeyFrame(This,pPFramesPerKeyFrame)
9721 #define IAMVideoCompression_put_Quality(This,Quality) (This)->lpVtbl->put_Quality(This,Quality)
9722 #define IAMVideoCompression_get_Quality(This,pQuality) (This)->lpVtbl->get_Quality(This,pQuality)
9723 #define IAMVideoCompression_put_WindowSize(This,WindowSize) (This)->lpVtbl->put_WindowSize(This,WindowSize)
9724 #define IAMVideoCompression_get_WindowSize(This,pWindowSize) (This)->lpVtbl->get_WindowSize(This,pWindowSize)
9725 #define IAMVideoCompression_GetInfo(This,pszVersion,pcbVersion,pszDescription,pcbDescription,pDefaultKeyFrameRate,pDefaultPFramesPerKey,pDefaultQuality,pCapabilities) (This)->lpVtbl->GetInfo(This,pszVersion,pcbVersion,pszDescription,pcbDescription,pDefaultKeyFrameRate,pDefaultPFramesPerKey,pDefaultQuality,pCapabilities)
9726 #define IAMVideoCompression_OverrideKeyFrame(This,FrameNumber) (This)->lpVtbl->OverrideKeyFrame(This,FrameNumber)
9727 #define IAMVideoCompression_OverrideFrameSize(This,FrameNumber,Size) (This)->lpVtbl->OverrideFrameSize(This,FrameNumber,Size)
9728 #endif
9729 #endif
9730   HRESULT WINAPI IAMVideoCompression_put_KeyFrameRate_Proxy(IAMVideoCompression *This,LONG KeyFrameRate);
9731   void __RPC_STUB IAMVideoCompression_put_KeyFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9732   HRESULT WINAPI IAMVideoCompression_get_KeyFrameRate_Proxy(IAMVideoCompression *This,LONG *pKeyFrameRate);
9733   void __RPC_STUB IAMVideoCompression_get_KeyFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9734   HRESULT WINAPI IAMVideoCompression_put_PFramesPerKeyFrame_Proxy(IAMVideoCompression *This,LONG PFramesPerKeyFrame);
9735   void __RPC_STUB IAMVideoCompression_put_PFramesPerKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9736   HRESULT WINAPI IAMVideoCompression_get_PFramesPerKeyFrame_Proxy(IAMVideoCompression *This,LONG *pPFramesPerKeyFrame);
9737   void __RPC_STUB IAMVideoCompression_get_PFramesPerKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9738   HRESULT WINAPI IAMVideoCompression_put_Quality_Proxy(IAMVideoCompression *This,double Quality);
9739   void __RPC_STUB IAMVideoCompression_put_Quality_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9740   HRESULT WINAPI IAMVideoCompression_get_Quality_Proxy(IAMVideoCompression *This,double *pQuality);
9741   void __RPC_STUB IAMVideoCompression_get_Quality_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9742   HRESULT WINAPI IAMVideoCompression_put_WindowSize_Proxy(IAMVideoCompression *This,DWORDLONG WindowSize);
9743   void __RPC_STUB IAMVideoCompression_put_WindowSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9744   HRESULT WINAPI IAMVideoCompression_get_WindowSize_Proxy(IAMVideoCompression *This,DWORDLONG *pWindowSize);
9745   void __RPC_STUB IAMVideoCompression_get_WindowSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9746   HRESULT WINAPI IAMVideoCompression_GetInfo_Proxy(IAMVideoCompression *This,WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities);
9747   void __RPC_STUB IAMVideoCompression_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9748   HRESULT WINAPI IAMVideoCompression_OverrideKeyFrame_Proxy(IAMVideoCompression *This,LONG FrameNumber);
9749   void __RPC_STUB IAMVideoCompression_OverrideKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9750   HRESULT WINAPI IAMVideoCompression_OverrideFrameSize_Proxy(IAMVideoCompression *This,LONG FrameNumber,LONG Size);
9751   void __RPC_STUB IAMVideoCompression_OverrideFrameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9752 #endif
9753 
9754   typedef enum __MIDL___MIDL_itf_strmif_0168_0001 {
9755     VfwCaptureDialog_Source = 0x1,VfwCaptureDialog_Format = 0x2,VfwCaptureDialog_Display = 0x4
9756   } VfwCaptureDialogs;
9757 
9758   typedef enum __MIDL___MIDL_itf_strmif_0168_0002 {
9759     VfwCompressDialog_Config = 0x1,VfwCompressDialog_About = 0x2,VfwCompressDialog_QueryConfig = 0x4,VfwCompressDialog_QueryAbout = 0x8
9760   } VfwCompressDialogs;
9761 
9762 #ifndef __IAMVfwCompressDialogs_INTERFACE_DEFINED__
9763 #define __IAMVfwCompressDialogs_INTERFACE_DEFINED__
9764   EXTERN_C const IID IID_IAMVfwCompressDialogs;
9765 #if defined(__cplusplus) && !defined(CINTERFACE)
9766   struct IAMVfwCompressDialogs : public IUnknown {
9767   public:
9768     virtual HRESULT WINAPI ShowDialog(int iDialog,HWND hwnd) = 0;
9769     virtual HRESULT WINAPI GetState(LPVOID pState,int *pcbState) = 0;
9770     virtual HRESULT WINAPI SetState(LPVOID pState,int cbState) = 0;
9771     virtual HRESULT WINAPI SendDriverMessage(int uMsg,LONG dw1,LONG dw2) = 0;
9772   };
9773 #else
9774   typedef struct IAMVfwCompressDialogsVtbl {
9775     BEGIN_INTERFACE
9776       HRESULT (WINAPI *QueryInterface)(IAMVfwCompressDialogs *This,REFIID riid,void **ppvObject);
9777       ULONG (WINAPI *AddRef)(IAMVfwCompressDialogs *This);
9778       ULONG (WINAPI *Release)(IAMVfwCompressDialogs *This);
9779       HRESULT (WINAPI *ShowDialog)(IAMVfwCompressDialogs *This,int iDialog,HWND hwnd);
9780       HRESULT (WINAPI *GetState)(IAMVfwCompressDialogs *This,LPVOID pState,int *pcbState);
9781       HRESULT (WINAPI *SetState)(IAMVfwCompressDialogs *This,LPVOID pState,int cbState);
9782       HRESULT (WINAPI *SendDriverMessage)(IAMVfwCompressDialogs *This,int uMsg,LONG dw1,LONG dw2);
9783     END_INTERFACE
9784   } IAMVfwCompressDialogsVtbl;
9785   struct IAMVfwCompressDialogs {
9786     CONST_VTBL struct IAMVfwCompressDialogsVtbl *lpVtbl;
9787   };
9788 #ifdef COBJMACROS
9789 #define IAMVfwCompressDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9790 #define IAMVfwCompressDialogs_AddRef(This) (This)->lpVtbl->AddRef(This)
9791 #define IAMVfwCompressDialogs_Release(This) (This)->lpVtbl->Release(This)
9792 #define IAMVfwCompressDialogs_ShowDialog(This,iDialog,hwnd) (This)->lpVtbl->ShowDialog(This,iDialog,hwnd)
9793 #define IAMVfwCompressDialogs_GetState(This,pState,pcbState) (This)->lpVtbl->GetState(This,pState,pcbState)
9794 #define IAMVfwCompressDialogs_SetState(This,pState,cbState) (This)->lpVtbl->SetState(This,pState,cbState)
9795 #define IAMVfwCompressDialogs_SendDriverMessage(This,uMsg,dw1,dw2) (This)->lpVtbl->SendDriverMessage(This,uMsg,dw1,dw2)
9796 #endif
9797 #endif
9798   HRESULT WINAPI IAMVfwCompressDialogs_ShowDialog_Proxy(IAMVfwCompressDialogs *This,int iDialog,HWND hwnd);
9799   void __RPC_STUB IAMVfwCompressDialogs_ShowDialog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9800   HRESULT WINAPI IAMVfwCompressDialogs_GetState_Proxy(IAMVfwCompressDialogs *This,LPVOID pState,int *pcbState);
9801   void __RPC_STUB IAMVfwCompressDialogs_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9802   HRESULT WINAPI IAMVfwCompressDialogs_SetState_Proxy(IAMVfwCompressDialogs *This,LPVOID pState,int cbState);
9803   void __RPC_STUB IAMVfwCompressDialogs_SetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9804   HRESULT WINAPI IAMVfwCompressDialogs_SendDriverMessage_Proxy(IAMVfwCompressDialogs *This,int uMsg,LONG dw1,LONG dw2);
9805   void __RPC_STUB IAMVfwCompressDialogs_SendDriverMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9806 #endif
9807 
9808 #ifndef __IAMDroppedFrames_INTERFACE_DEFINED__
9809 #define __IAMDroppedFrames_INTERFACE_DEFINED__
9810   EXTERN_C const IID IID_IAMDroppedFrames;
9811 #if defined(__cplusplus) && !defined(CINTERFACE)
9812   struct IAMDroppedFrames : public IUnknown {
9813   public:
9814     virtual HRESULT WINAPI GetNumDropped(LONG *plDropped) = 0;
9815     virtual HRESULT WINAPI GetNumNotDropped(LONG *plNotDropped) = 0;
9816     virtual HRESULT WINAPI GetDroppedInfo(LONG lSize,LONG *plArray,LONG *plNumCopied) = 0;
9817     virtual HRESULT WINAPI GetAverageFrameSize(LONG *plAverageSize) = 0;
9818   };
9819 #else
9820   typedef struct IAMDroppedFramesVtbl {
9821     BEGIN_INTERFACE
9822       HRESULT (WINAPI *QueryInterface)(IAMDroppedFrames *This,REFIID riid,void **ppvObject);
9823       ULONG (WINAPI *AddRef)(IAMDroppedFrames *This);
9824       ULONG (WINAPI *Release)(IAMDroppedFrames *This);
9825       HRESULT (WINAPI *GetNumDropped)(IAMDroppedFrames *This,LONG *plDropped);
9826       HRESULT (WINAPI *GetNumNotDropped)(IAMDroppedFrames *This,LONG *plNotDropped);
9827       HRESULT (WINAPI *GetDroppedInfo)(IAMDroppedFrames *This,LONG lSize,LONG *plArray,LONG *plNumCopied);
9828       HRESULT (WINAPI *GetAverageFrameSize)(IAMDroppedFrames *This,LONG *plAverageSize);
9829     END_INTERFACE
9830   } IAMDroppedFramesVtbl;
9831   struct IAMDroppedFrames {
9832     CONST_VTBL struct IAMDroppedFramesVtbl *lpVtbl;
9833   };
9834 #ifdef COBJMACROS
9835 #define IAMDroppedFrames_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9836 #define IAMDroppedFrames_AddRef(This) (This)->lpVtbl->AddRef(This)
9837 #define IAMDroppedFrames_Release(This) (This)->lpVtbl->Release(This)
9838 #define IAMDroppedFrames_GetNumDropped(This,plDropped) (This)->lpVtbl->GetNumDropped(This,plDropped)
9839 #define IAMDroppedFrames_GetNumNotDropped(This,plNotDropped) (This)->lpVtbl->GetNumNotDropped(This,plNotDropped)
9840 #define IAMDroppedFrames_GetDroppedInfo(This,lSize,plArray,plNumCopied) (This)->lpVtbl->GetDroppedInfo(This,lSize,plArray,plNumCopied)
9841 #define IAMDroppedFrames_GetAverageFrameSize(This,plAverageSize) (This)->lpVtbl->GetAverageFrameSize(This,plAverageSize)
9842 #endif
9843 #endif
9844   HRESULT WINAPI IAMDroppedFrames_GetNumDropped_Proxy(IAMDroppedFrames *This,LONG *plDropped);
9845   void __RPC_STUB IAMDroppedFrames_GetNumDropped_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9846   HRESULT WINAPI IAMDroppedFrames_GetNumNotDropped_Proxy(IAMDroppedFrames *This,LONG *plNotDropped);
9847   void __RPC_STUB IAMDroppedFrames_GetNumNotDropped_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9848   HRESULT WINAPI IAMDroppedFrames_GetDroppedInfo_Proxy(IAMDroppedFrames *This,LONG lSize,LONG *plArray,LONG *plNumCopied);
9849   void __RPC_STUB IAMDroppedFrames_GetDroppedInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9850   HRESULT WINAPI IAMDroppedFrames_GetAverageFrameSize_Proxy(IAMDroppedFrames *This,LONG *plAverageSize);
9851   void __RPC_STUB IAMDroppedFrames_GetAverageFrameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9852 #endif
9853 
9854 #define AMF_AUTOMATICGAIN -1.0
9855 
9856   extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_c_ifspec;
9857   extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_s_ifspec;
9858 #ifndef __IAMAudioInputMixer_INTERFACE_DEFINED__
9859 #define __IAMAudioInputMixer_INTERFACE_DEFINED__
9860   EXTERN_C const IID IID_IAMAudioInputMixer;
9861 #if defined(__cplusplus) && !defined(CINTERFACE)
9862   struct IAMAudioInputMixer : public IUnknown {
9863   public:
9864     virtual HRESULT WINAPI put_Enable(WINBOOL fEnable) = 0;
9865     virtual HRESULT WINAPI get_Enable(WINBOOL *pfEnable) = 0;
9866     virtual HRESULT WINAPI put_Mono(WINBOOL fMono) = 0;
9867     virtual HRESULT WINAPI get_Mono(WINBOOL *pfMono) = 0;
9868     virtual HRESULT WINAPI put_MixLevel(double Level) = 0;
9869     virtual HRESULT WINAPI get_MixLevel(double *pLevel) = 0;
9870     virtual HRESULT WINAPI put_Pan(double Pan) = 0;
9871     virtual HRESULT WINAPI get_Pan(double *pPan) = 0;
9872     virtual HRESULT WINAPI put_Loudness(WINBOOL fLoudness) = 0;
9873     virtual HRESULT WINAPI get_Loudness(WINBOOL *pfLoudness) = 0;
9874     virtual HRESULT WINAPI put_Treble(double Treble) = 0;
9875     virtual HRESULT WINAPI get_Treble(double *pTreble) = 0;
9876     virtual HRESULT WINAPI get_TrebleRange(double *pRange) = 0;
9877     virtual HRESULT WINAPI put_Bass(double Bass) = 0;
9878     virtual HRESULT WINAPI get_Bass(double *pBass) = 0;
9879     virtual HRESULT WINAPI get_BassRange(double *pRange) = 0;
9880   };
9881 #else
9882   typedef struct IAMAudioInputMixerVtbl {
9883     BEGIN_INTERFACE
9884       HRESULT (WINAPI *QueryInterface)(IAMAudioInputMixer *This,REFIID riid,void **ppvObject);
9885       ULONG (WINAPI *AddRef)(IAMAudioInputMixer *This);
9886       ULONG (WINAPI *Release)(IAMAudioInputMixer *This);
9887       HRESULT (WINAPI *put_Enable)(IAMAudioInputMixer *This,WINBOOL fEnable);
9888       HRESULT (WINAPI *get_Enable)(IAMAudioInputMixer *This,WINBOOL *pfEnable);
9889       HRESULT (WINAPI *put_Mono)(IAMAudioInputMixer *This,WINBOOL fMono);
9890       HRESULT (WINAPI *get_Mono)(IAMAudioInputMixer *This,WINBOOL *pfMono);
9891       HRESULT (WINAPI *put_MixLevel)(IAMAudioInputMixer *This,double Level);
9892       HRESULT (WINAPI *get_MixLevel)(IAMAudioInputMixer *This,double *pLevel);
9893       HRESULT (WINAPI *put_Pan)(IAMAudioInputMixer *This,double Pan);
9894       HRESULT (WINAPI *get_Pan)(IAMAudioInputMixer *This,double *pPan);
9895       HRESULT (WINAPI *put_Loudness)(IAMAudioInputMixer *This,WINBOOL fLoudness);
9896       HRESULT (WINAPI *get_Loudness)(IAMAudioInputMixer *This,WINBOOL *pfLoudness);
9897       HRESULT (WINAPI *put_Treble)(IAMAudioInputMixer *This,double Treble);
9898       HRESULT (WINAPI *get_Treble)(IAMAudioInputMixer *This,double *pTreble);
9899       HRESULT (WINAPI *get_TrebleRange)(IAMAudioInputMixer *This,double *pRange);
9900       HRESULT (WINAPI *put_Bass)(IAMAudioInputMixer *This,double Bass);
9901       HRESULT (WINAPI *get_Bass)(IAMAudioInputMixer *This,double *pBass);
9902       HRESULT (WINAPI *get_BassRange)(IAMAudioInputMixer *This,double *pRange);
9903     END_INTERFACE
9904   } IAMAudioInputMixerVtbl;
9905   struct IAMAudioInputMixer {
9906     CONST_VTBL struct IAMAudioInputMixerVtbl *lpVtbl;
9907   };
9908 #ifdef COBJMACROS
9909 #define IAMAudioInputMixer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9910 #define IAMAudioInputMixer_AddRef(This) (This)->lpVtbl->AddRef(This)
9911 #define IAMAudioInputMixer_Release(This) (This)->lpVtbl->Release(This)
9912 #define IAMAudioInputMixer_put_Enable(This,fEnable) (This)->lpVtbl->put_Enable(This,fEnable)
9913 #define IAMAudioInputMixer_get_Enable(This,pfEnable) (This)->lpVtbl->get_Enable(This,pfEnable)
9914 #define IAMAudioInputMixer_put_Mono(This,fMono) (This)->lpVtbl->put_Mono(This,fMono)
9915 #define IAMAudioInputMixer_get_Mono(This,pfMono) (This)->lpVtbl->get_Mono(This,pfMono)
9916 #define IAMAudioInputMixer_put_MixLevel(This,Level) (This)->lpVtbl->put_MixLevel(This,Level)
9917 #define IAMAudioInputMixer_get_MixLevel(This,pLevel) (This)->lpVtbl->get_MixLevel(This,pLevel)
9918 #define IAMAudioInputMixer_put_Pan(This,Pan) (This)->lpVtbl->put_Pan(This,Pan)
9919 #define IAMAudioInputMixer_get_Pan(This,pPan) (This)->lpVtbl->get_Pan(This,pPan)
9920 #define IAMAudioInputMixer_put_Loudness(This,fLoudness) (This)->lpVtbl->put_Loudness(This,fLoudness)
9921 #define IAMAudioInputMixer_get_Loudness(This,pfLoudness) (This)->lpVtbl->get_Loudness(This,pfLoudness)
9922 #define IAMAudioInputMixer_put_Treble(This,Treble) (This)->lpVtbl->put_Treble(This,Treble)
9923 #define IAMAudioInputMixer_get_Treble(This,pTreble) (This)->lpVtbl->get_Treble(This,pTreble)
9924 #define IAMAudioInputMixer_get_TrebleRange(This,pRange) (This)->lpVtbl->get_TrebleRange(This,pRange)
9925 #define IAMAudioInputMixer_put_Bass(This,Bass) (This)->lpVtbl->put_Bass(This,Bass)
9926 #define IAMAudioInputMixer_get_Bass(This,pBass) (This)->lpVtbl->get_Bass(This,pBass)
9927 #define IAMAudioInputMixer_get_BassRange(This,pRange) (This)->lpVtbl->get_BassRange(This,pRange)
9928 #endif
9929 #endif
9930   HRESULT WINAPI IAMAudioInputMixer_put_Enable_Proxy(IAMAudioInputMixer *This,WINBOOL fEnable);
9931   void __RPC_STUB IAMAudioInputMixer_put_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9932   HRESULT WINAPI IAMAudioInputMixer_get_Enable_Proxy(IAMAudioInputMixer *This,WINBOOL *pfEnable);
9933   void __RPC_STUB IAMAudioInputMixer_get_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9934   HRESULT WINAPI IAMAudioInputMixer_put_Mono_Proxy(IAMAudioInputMixer *This,WINBOOL fMono);
9935   void __RPC_STUB IAMAudioInputMixer_put_Mono_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9936   HRESULT WINAPI IAMAudioInputMixer_get_Mono_Proxy(IAMAudioInputMixer *This,WINBOOL *pfMono);
9937   void __RPC_STUB IAMAudioInputMixer_get_Mono_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9938   HRESULT WINAPI IAMAudioInputMixer_put_MixLevel_Proxy(IAMAudioInputMixer *This,double Level);
9939   void __RPC_STUB IAMAudioInputMixer_put_MixLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9940   HRESULT WINAPI IAMAudioInputMixer_get_MixLevel_Proxy(IAMAudioInputMixer *This,double *pLevel);
9941   void __RPC_STUB IAMAudioInputMixer_get_MixLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9942   HRESULT WINAPI IAMAudioInputMixer_put_Pan_Proxy(IAMAudioInputMixer *This,double Pan);
9943   void __RPC_STUB IAMAudioInputMixer_put_Pan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9944   HRESULT WINAPI IAMAudioInputMixer_get_Pan_Proxy(IAMAudioInputMixer *This,double *pPan);
9945   void __RPC_STUB IAMAudioInputMixer_get_Pan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9946   HRESULT WINAPI IAMAudioInputMixer_put_Loudness_Proxy(IAMAudioInputMixer *This,WINBOOL fLoudness);
9947   void __RPC_STUB IAMAudioInputMixer_put_Loudness_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9948   HRESULT WINAPI IAMAudioInputMixer_get_Loudness_Proxy(IAMAudioInputMixer *This,WINBOOL *pfLoudness);
9949   void __RPC_STUB IAMAudioInputMixer_get_Loudness_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9950   HRESULT WINAPI IAMAudioInputMixer_put_Treble_Proxy(IAMAudioInputMixer *This,double Treble);
9951   void __RPC_STUB IAMAudioInputMixer_put_Treble_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9952   HRESULT WINAPI IAMAudioInputMixer_get_Treble_Proxy(IAMAudioInputMixer *This,double *pTreble);
9953   void __RPC_STUB IAMAudioInputMixer_get_Treble_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9954   HRESULT WINAPI IAMAudioInputMixer_get_TrebleRange_Proxy(IAMAudioInputMixer *This,double *pRange);
9955   void __RPC_STUB IAMAudioInputMixer_get_TrebleRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9956   HRESULT WINAPI IAMAudioInputMixer_put_Bass_Proxy(IAMAudioInputMixer *This,double Bass);
9957   void __RPC_STUB IAMAudioInputMixer_put_Bass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9958   HRESULT WINAPI IAMAudioInputMixer_get_Bass_Proxy(IAMAudioInputMixer *This,double *pBass);
9959   void __RPC_STUB IAMAudioInputMixer_get_Bass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9960   HRESULT WINAPI IAMAudioInputMixer_get_BassRange_Proxy(IAMAudioInputMixer *This,double *pRange);
9961   void __RPC_STUB IAMAudioInputMixer_get_BassRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9962 #endif
9963 
9964 #ifndef __IAMBufferNegotiation_INTERFACE_DEFINED__
9965 #define __IAMBufferNegotiation_INTERFACE_DEFINED__
9966   EXTERN_C const IID IID_IAMBufferNegotiation;
9967 #if defined(__cplusplus) && !defined(CINTERFACE)
9968   struct IAMBufferNegotiation : public IUnknown {
9969   public:
9970     virtual HRESULT WINAPI SuggestAllocatorProperties(const ALLOCATOR_PROPERTIES *pprop) = 0;
9971     virtual HRESULT WINAPI GetAllocatorProperties(ALLOCATOR_PROPERTIES *pprop) = 0;
9972   };
9973 #else
9974   typedef struct IAMBufferNegotiationVtbl {
9975     BEGIN_INTERFACE
9976       HRESULT (WINAPI *QueryInterface)(IAMBufferNegotiation *This,REFIID riid,void **ppvObject);
9977       ULONG (WINAPI *AddRef)(IAMBufferNegotiation *This);
9978       ULONG (WINAPI *Release)(IAMBufferNegotiation *This);
9979       HRESULT (WINAPI *SuggestAllocatorProperties)(IAMBufferNegotiation *This,const ALLOCATOR_PROPERTIES *pprop);
9980       HRESULT (WINAPI *GetAllocatorProperties)(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
9981     END_INTERFACE
9982   } IAMBufferNegotiationVtbl;
9983   struct IAMBufferNegotiation {
9984     CONST_VTBL struct IAMBufferNegotiationVtbl *lpVtbl;
9985   };
9986 #ifdef COBJMACROS
9987 #define IAMBufferNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9988 #define IAMBufferNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This)
9989 #define IAMBufferNegotiation_Release(This) (This)->lpVtbl->Release(This)
9990 #define IAMBufferNegotiation_SuggestAllocatorProperties(This,pprop) (This)->lpVtbl->SuggestAllocatorProperties(This,pprop)
9991 #define IAMBufferNegotiation_GetAllocatorProperties(This,pprop) (This)->lpVtbl->GetAllocatorProperties(This,pprop)
9992 #endif
9993 #endif
9994   HRESULT WINAPI IAMBufferNegotiation_SuggestAllocatorProperties_Proxy(IAMBufferNegotiation *This,const ALLOCATOR_PROPERTIES *pprop);
9995   void __RPC_STUB IAMBufferNegotiation_SuggestAllocatorProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9996   HRESULT WINAPI IAMBufferNegotiation_GetAllocatorProperties_Proxy(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
9997   void __RPC_STUB IAMBufferNegotiation_GetAllocatorProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9998 #endif
9999 
10000 #define AnalogVideo_NTSC_Mask 0x00000007
10001 #define AnalogVideo_PAL_Mask 0x00100FF0
10002 #define AnalogVideo_SECAM_Mask 0x000FF000
10003 
10004   typedef enum __MIDL___MIDL_itf_strmif_0173_0001 {
10005     VideoCopyProtectionMacrovisionBasic = 0,VideoCopyProtectionMacrovisionCBI = VideoCopyProtectionMacrovisionBasic + 1
10006   } VideoCopyProtectionType;
10007 
10008   typedef enum tagPhysicalConnectorType {
10009     PhysConn_Video_Tuner = 1,
10010     PhysConn_Video_Composite,PhysConn_Video_SVideo,PhysConn_Video_RGB,
10011     PhysConn_Video_YRYBY,PhysConn_Video_SerialDigital,PhysConn_Video_ParallelDigital,
10012     PhysConn_Video_SCSI,PhysConn_Video_AUX,PhysConn_Video_1394,PhysConn_Video_USB,
10013     PhysConn_Video_VideoDecoder,PhysConn_Video_VideoEncoder,PhysConn_Video_SCART,PhysConn_Video_Black,
10014     PhysConn_Audio_Tuner = 0x1000,PhysConn_Audio_Line = 0x1001,PhysConn_Audio_Mic = 0x1002,
10015     PhysConn_Audio_AESDigital = 0x1003,PhysConn_Audio_SPDIFDigital = 0x1004,
10016     PhysConn_Audio_SCSI = 0x1005,PhysConn_Audio_AUX = 0x1006,PhysConn_Audio_1394 = 0x1007,
10017     PhysConn_Audio_USB = 0x1008,PhysConn_Audio_AudioDecoder = 0x1009
10018   } PhysicalConnectorType;
10019 
10020   extern RPC_IF_HANDLE __MIDL_itf_strmif_0173_v0_0_c_ifspec;
10021   extern RPC_IF_HANDLE __MIDL_itf_strmif_0173_v0_0_s_ifspec;
10022 #ifndef __IAMAnalogVideoDecoder_INTERFACE_DEFINED__
10023 #define __IAMAnalogVideoDecoder_INTERFACE_DEFINED__
10024   EXTERN_C const IID IID_IAMAnalogVideoDecoder;
10025 #if defined(__cplusplus) && !defined(CINTERFACE)
10026   struct IAMAnalogVideoDecoder : public IUnknown {
10027   public:
10028     virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
10029     virtual HRESULT WINAPI put_TVFormat(LONG lAnalogVideoStandard) = 0;
10030     virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
10031     virtual HRESULT WINAPI get_HorizontalLocked(LONG *plLocked) = 0;
10032     virtual HRESULT WINAPI put_VCRHorizontalLocking(LONG lVCRHorizontalLocking) = 0;
10033     virtual HRESULT WINAPI get_VCRHorizontalLocking(LONG *plVCRHorizontalLocking) = 0;
10034     virtual HRESULT WINAPI get_NumberOfLines(LONG *plNumberOfLines) = 0;
10035     virtual HRESULT WINAPI put_OutputEnable(LONG lOutputEnable) = 0;
10036     virtual HRESULT WINAPI get_OutputEnable(LONG *plOutputEnable) = 0;
10037   };
10038 #else
10039   typedef struct IAMAnalogVideoDecoderVtbl {
10040     BEGIN_INTERFACE
10041       HRESULT (WINAPI *QueryInterface)(IAMAnalogVideoDecoder *This,REFIID riid,void **ppvObject);
10042       ULONG (WINAPI *AddRef)(IAMAnalogVideoDecoder *This);
10043       ULONG (WINAPI *Release)(IAMAnalogVideoDecoder *This);
10044       HRESULT (WINAPI *get_AvailableTVFormats)(IAMAnalogVideoDecoder *This,LONG *lAnalogVideoStandard);
10045       HRESULT (WINAPI *put_TVFormat)(IAMAnalogVideoDecoder *This,LONG lAnalogVideoStandard);
10046       HRESULT (WINAPI *get_TVFormat)(IAMAnalogVideoDecoder *This,LONG *plAnalogVideoStandard);
10047       HRESULT (WINAPI *get_HorizontalLocked)(IAMAnalogVideoDecoder *This,LONG *plLocked);
10048       HRESULT (WINAPI *put_VCRHorizontalLocking)(IAMAnalogVideoDecoder *This,LONG lVCRHorizontalLocking);
10049       HRESULT (WINAPI *get_VCRHorizontalLocking)(IAMAnalogVideoDecoder *This,LONG *plVCRHorizontalLocking);
10050       HRESULT (WINAPI *get_NumberOfLines)(IAMAnalogVideoDecoder *This,LONG *plNumberOfLines);
10051       HRESULT (WINAPI *put_OutputEnable)(IAMAnalogVideoDecoder *This,LONG lOutputEnable);
10052       HRESULT (WINAPI *get_OutputEnable)(IAMAnalogVideoDecoder *This,LONG *plOutputEnable);
10053     END_INTERFACE
10054   } IAMAnalogVideoDecoderVtbl;
10055   struct IAMAnalogVideoDecoder {
10056     CONST_VTBL struct IAMAnalogVideoDecoderVtbl *lpVtbl;
10057   };
10058 #ifdef COBJMACROS
10059 #define IAMAnalogVideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10060 #define IAMAnalogVideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
10061 #define IAMAnalogVideoDecoder_Release(This) (This)->lpVtbl->Release(This)
10062 #define IAMAnalogVideoDecoder_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
10063 #define IAMAnalogVideoDecoder_put_TVFormat(This,lAnalogVideoStandard) (This)->lpVtbl->put_TVFormat(This,lAnalogVideoStandard)
10064 #define IAMAnalogVideoDecoder_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
10065 #define IAMAnalogVideoDecoder_get_HorizontalLocked(This,plLocked) (This)->lpVtbl->get_HorizontalLocked(This,plLocked)
10066 #define IAMAnalogVideoDecoder_put_VCRHorizontalLocking(This,lVCRHorizontalLocking) (This)->lpVtbl->put_VCRHorizontalLocking(This,lVCRHorizontalLocking)
10067 #define IAMAnalogVideoDecoder_get_VCRHorizontalLocking(This,plVCRHorizontalLocking) (This)->lpVtbl->get_VCRHorizontalLocking(This,plVCRHorizontalLocking)
10068 #define IAMAnalogVideoDecoder_get_NumberOfLines(This,plNumberOfLines) (This)->lpVtbl->get_NumberOfLines(This,plNumberOfLines)
10069 #define IAMAnalogVideoDecoder_put_OutputEnable(This,lOutputEnable) (This)->lpVtbl->put_OutputEnable(This,lOutputEnable)
10070 #define IAMAnalogVideoDecoder_get_OutputEnable(This,plOutputEnable) (This)->lpVtbl->get_OutputEnable(This,plOutputEnable)
10071 #endif
10072 #endif
10073   HRESULT WINAPI IAMAnalogVideoDecoder_get_AvailableTVFormats_Proxy(IAMAnalogVideoDecoder *This,LONG *lAnalogVideoStandard);
10074   void __RPC_STUB IAMAnalogVideoDecoder_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10075   HRESULT WINAPI IAMAnalogVideoDecoder_put_TVFormat_Proxy(IAMAnalogVideoDecoder *This,LONG lAnalogVideoStandard);
10076   void __RPC_STUB IAMAnalogVideoDecoder_put_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10077   HRESULT WINAPI IAMAnalogVideoDecoder_get_TVFormat_Proxy(IAMAnalogVideoDecoder *This,LONG *plAnalogVideoStandard);
10078   void __RPC_STUB IAMAnalogVideoDecoder_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10079   HRESULT WINAPI IAMAnalogVideoDecoder_get_HorizontalLocked_Proxy(IAMAnalogVideoDecoder *This,LONG *plLocked);
10080   void __RPC_STUB IAMAnalogVideoDecoder_get_HorizontalLocked_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10081   HRESULT WINAPI IAMAnalogVideoDecoder_put_VCRHorizontalLocking_Proxy(IAMAnalogVideoDecoder *This,LONG lVCRHorizontalLocking);
10082   void __RPC_STUB IAMAnalogVideoDecoder_put_VCRHorizontalLocking_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10083   HRESULT WINAPI IAMAnalogVideoDecoder_get_VCRHorizontalLocking_Proxy(IAMAnalogVideoDecoder *This,LONG *plVCRHorizontalLocking);
10084   void __RPC_STUB IAMAnalogVideoDecoder_get_VCRHorizontalLocking_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10085   HRESULT WINAPI IAMAnalogVideoDecoder_get_NumberOfLines_Proxy(IAMAnalogVideoDecoder *This,LONG *plNumberOfLines);
10086   void __RPC_STUB IAMAnalogVideoDecoder_get_NumberOfLines_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10087   HRESULT WINAPI IAMAnalogVideoDecoder_put_OutputEnable_Proxy(IAMAnalogVideoDecoder *This,LONG lOutputEnable);
10088   void __RPC_STUB IAMAnalogVideoDecoder_put_OutputEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10089   HRESULT WINAPI IAMAnalogVideoDecoder_get_OutputEnable_Proxy(IAMAnalogVideoDecoder *This,LONG *plOutputEnable);
10090   void __RPC_STUB IAMAnalogVideoDecoder_get_OutputEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10091 #endif
10092 
10093   typedef enum tagCameraControlProperty {
10094     CameraControl_Pan = 0,
10095     CameraControl_Tilt,CameraControl_Roll,CameraControl_Zoom,CameraControl_Exposure,
10096     CameraControl_Iris,CameraControl_Focus
10097   } CameraControlProperty;
10098 
10099   typedef enum tagCameraControlFlags {
10100     CameraControl_Flags_Auto = 0x1,CameraControl_Flags_Manual = 0x2
10101   } CameraControlFlags;
10102 
10103   extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_c_ifspec;
10104   extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_s_ifspec;
10105 #ifndef __IAMCameraControl_INTERFACE_DEFINED__
10106 #define __IAMCameraControl_INTERFACE_DEFINED__
10107   EXTERN_C const IID IID_IAMCameraControl;
10108 #if defined(__cplusplus) && !defined(CINTERFACE)
10109   struct IAMCameraControl : public IUnknown {
10110   public:
10111     virtual HRESULT WINAPI GetRange(LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags) = 0;
10112     virtual HRESULT WINAPI Set(LONG Property,LONG lValue,LONG Flags) = 0;
10113     virtual HRESULT WINAPI Get(LONG Property,LONG *lValue,LONG *Flags) = 0;
10114   };
10115 #else
10116   typedef struct IAMCameraControlVtbl {
10117     BEGIN_INTERFACE
10118       HRESULT (WINAPI *QueryInterface)(IAMCameraControl *This,REFIID riid,void **ppvObject);
10119       ULONG (WINAPI *AddRef)(IAMCameraControl *This);
10120       ULONG (WINAPI *Release)(IAMCameraControl *This);
10121       HRESULT (WINAPI *GetRange)(IAMCameraControl *This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags);
10122       HRESULT (WINAPI *Set)(IAMCameraControl *This,LONG Property,LONG lValue,LONG Flags);
10123       HRESULT (WINAPI *Get)(IAMCameraControl *This,LONG Property,LONG *lValue,LONG *Flags);
10124     END_INTERFACE
10125   } IAMCameraControlVtbl;
10126   struct IAMCameraControl {
10127     CONST_VTBL struct IAMCameraControlVtbl *lpVtbl;
10128   };
10129 #ifdef COBJMACROS
10130 #define IAMCameraControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10131 #define IAMCameraControl_AddRef(This) (This)->lpVtbl->AddRef(This)
10132 #define IAMCameraControl_Release(This) (This)->lpVtbl->Release(This)
10133 #define IAMCameraControl_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
10134 #define IAMCameraControl_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
10135 #define IAMCameraControl_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
10136 #endif
10137 #endif
10138   HRESULT WINAPI IAMCameraControl_GetRange_Proxy(IAMCameraControl *This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags);
10139   void __RPC_STUB IAMCameraControl_GetRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10140   HRESULT WINAPI IAMCameraControl_Set_Proxy(IAMCameraControl *This,LONG Property,LONG lValue,LONG Flags);
10141   void __RPC_STUB IAMCameraControl_Set_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10142   HRESULT WINAPI IAMCameraControl_Get_Proxy(IAMCameraControl *This,LONG Property,LONG *lValue,LONG *Flags);
10143   void __RPC_STUB IAMCameraControl_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10144 #endif
10145 
10146   typedef enum tagVideoControlFlags {
10147     VideoControlFlag_FlipHorizontal = 0x1,VideoControlFlag_FlipVertical = 0x2,VideoControlFlag_ExternalTriggerEnable = 0x4,VideoControlFlag_Trigger = 0x8
10148   } VideoControlFlags;
10149 
10150   extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_c_ifspec;
10151   extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_s_ifspec;
10152 #ifndef __IAMVideoControl_INTERFACE_DEFINED__
10153 #define __IAMVideoControl_INTERFACE_DEFINED__
10154   EXTERN_C const IID IID_IAMVideoControl;
10155 #if defined(__cplusplus) && !defined(CINTERFACE)
10156   struct IAMVideoControl : public IUnknown {
10157   public:
10158     virtual HRESULT WINAPI GetCaps(IPin *pPin,LONG *pCapsFlags) = 0;
10159     virtual HRESULT WINAPI SetMode(IPin *pPin,LONG Mode) = 0;
10160     virtual HRESULT WINAPI GetMode(IPin *pPin,LONG *Mode) = 0;
10161     virtual HRESULT WINAPI GetCurrentActualFrameRate(IPin *pPin,LONGLONG *ActualFrameRate) = 0;
10162     virtual HRESULT WINAPI GetMaxAvailableFrameRate(IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate) = 0;
10163     virtual HRESULT WINAPI GetFrameRateList(IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates) = 0;
10164   };
10165 #else
10166   typedef struct IAMVideoControlVtbl {
10167     BEGIN_INTERFACE
10168       HRESULT (WINAPI *QueryInterface)(IAMVideoControl *This,REFIID riid,void **ppvObject);
10169       ULONG (WINAPI *AddRef)(IAMVideoControl *This);
10170       ULONG (WINAPI *Release)(IAMVideoControl *This);
10171       HRESULT (WINAPI *GetCaps)(IAMVideoControl *This,IPin *pPin,LONG *pCapsFlags);
10172       HRESULT (WINAPI *SetMode)(IAMVideoControl *This,IPin *pPin,LONG Mode);
10173       HRESULT (WINAPI *GetMode)(IAMVideoControl *This,IPin *pPin,LONG *Mode);
10174       HRESULT (WINAPI *GetCurrentActualFrameRate)(IAMVideoControl *This,IPin *pPin,LONGLONG *ActualFrameRate);
10175       HRESULT (WINAPI *GetMaxAvailableFrameRate)(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate);
10176       HRESULT (WINAPI *GetFrameRateList)(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates);
10177     END_INTERFACE
10178   } IAMVideoControlVtbl;
10179   struct IAMVideoControl {
10180     CONST_VTBL struct IAMVideoControlVtbl *lpVtbl;
10181   };
10182 #ifdef COBJMACROS
10183 #define IAMVideoControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10184 #define IAMVideoControl_AddRef(This) (This)->lpVtbl->AddRef(This)
10185 #define IAMVideoControl_Release(This) (This)->lpVtbl->Release(This)
10186 #define IAMVideoControl_GetCaps(This,pPin,pCapsFlags) (This)->lpVtbl->GetCaps(This,pPin,pCapsFlags)
10187 #define IAMVideoControl_SetMode(This,pPin,Mode) (This)->lpVtbl->SetMode(This,pPin,Mode)
10188 #define IAMVideoControl_GetMode(This,pPin,Mode) (This)->lpVtbl->GetMode(This,pPin,Mode)
10189 #define IAMVideoControl_GetCurrentActualFrameRate(This,pPin,ActualFrameRate) (This)->lpVtbl->GetCurrentActualFrameRate(This,pPin,ActualFrameRate)
10190 #define IAMVideoControl_GetMaxAvailableFrameRate(This,pPin,iIndex,Dimensions,MaxAvailableFrameRate) (This)->lpVtbl->GetMaxAvailableFrameRate(This,pPin,iIndex,Dimensions,MaxAvailableFrameRate)
10191 #define IAMVideoControl_GetFrameRateList(This,pPin,iIndex,Dimensions,ListSize,FrameRates) (This)->lpVtbl->GetFrameRateList(This,pPin,iIndex,Dimensions,ListSize,FrameRates)
10192 #endif
10193 #endif
10194   HRESULT WINAPI IAMVideoControl_GetCaps_Proxy(IAMVideoControl *This,IPin *pPin,LONG *pCapsFlags);
10195   void __RPC_STUB IAMVideoControl_GetCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10196   HRESULT WINAPI IAMVideoControl_SetMode_Proxy(IAMVideoControl *This,IPin *pPin,LONG Mode);
10197   void __RPC_STUB IAMVideoControl_SetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10198   HRESULT WINAPI IAMVideoControl_GetMode_Proxy(IAMVideoControl *This,IPin *pPin,LONG *Mode);
10199   void __RPC_STUB IAMVideoControl_GetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10200   HRESULT WINAPI IAMVideoControl_GetCurrentActualFrameRate_Proxy(IAMVideoControl *This,IPin *pPin,LONGLONG *ActualFrameRate);
10201   void __RPC_STUB IAMVideoControl_GetCurrentActualFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10202   HRESULT WINAPI IAMVideoControl_GetMaxAvailableFrameRate_Proxy(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate);
10203   void __RPC_STUB IAMVideoControl_GetMaxAvailableFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10204   HRESULT WINAPI IAMVideoControl_GetFrameRateList_Proxy(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates);
10205   void __RPC_STUB IAMVideoControl_GetFrameRateList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10206 #endif
10207 
10208 #ifdef __CRT_UUID_DECL
10209 __CRT_UUID_DECL(IAMCrossbar,0xc6e13380,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56);
10210 #endif
10211 
10212 #ifndef __IAMCrossbar_INTERFACE_DEFINED__
10213 #define __IAMCrossbar_INTERFACE_DEFINED__
10214   EXTERN_C const IID IID_IAMCrossbar;
10215 #if defined(__cplusplus) && !defined(CINTERFACE)
10216   struct IAMCrossbar : public IUnknown {
10217   public:
10218     virtual HRESULT WINAPI get_PinCounts(LONG *OutputPinCount,LONG *InputPinCount) = 0;
10219     virtual HRESULT WINAPI CanRoute(LONG OutputPinIndex,LONG InputPinIndex) = 0;
10220     virtual HRESULT WINAPI Route(LONG OutputPinIndex,LONG InputPinIndex) = 0;
10221     virtual HRESULT WINAPI get_IsRoutedTo(LONG OutputPinIndex,LONG *InputPinIndex) = 0;
10222     virtual HRESULT WINAPI get_CrossbarPinInfo(WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType) = 0;
10223   };
10224 #else
10225   typedef struct IAMCrossbarVtbl {
10226     BEGIN_INTERFACE
10227       HRESULT (WINAPI *QueryInterface)(IAMCrossbar *This,REFIID riid,void **ppvObject);
10228       ULONG (WINAPI *AddRef)(IAMCrossbar *This);
10229       ULONG (WINAPI *Release)(IAMCrossbar *This);
10230       HRESULT (WINAPI *get_PinCounts)(IAMCrossbar *This,LONG *OutputPinCount,LONG *InputPinCount);
10231       HRESULT (WINAPI *CanRoute)(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
10232       HRESULT (WINAPI *Route)(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
10233       HRESULT (WINAPI *get_IsRoutedTo)(IAMCrossbar *This,LONG OutputPinIndex,LONG *InputPinIndex);
10234       HRESULT (WINAPI *get_CrossbarPinInfo)(IAMCrossbar *This,WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType);
10235     END_INTERFACE
10236   } IAMCrossbarVtbl;
10237   struct IAMCrossbar {
10238     CONST_VTBL struct IAMCrossbarVtbl *lpVtbl;
10239   };
10240 #ifdef COBJMACROS
10241 #define IAMCrossbar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10242 #define IAMCrossbar_AddRef(This) (This)->lpVtbl->AddRef(This)
10243 #define IAMCrossbar_Release(This) (This)->lpVtbl->Release(This)
10244 #define IAMCrossbar_get_PinCounts(This,OutputPinCount,InputPinCount) (This)->lpVtbl->get_PinCounts(This,OutputPinCount,InputPinCount)
10245 #define IAMCrossbar_CanRoute(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->CanRoute(This,OutputPinIndex,InputPinIndex)
10246 #define IAMCrossbar_Route(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->Route(This,OutputPinIndex,InputPinIndex)
10247 #define IAMCrossbar_get_IsRoutedTo(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->get_IsRoutedTo(This,OutputPinIndex,InputPinIndex)
10248 #define IAMCrossbar_get_CrossbarPinInfo(This,IsInputPin,PinIndex,PinIndexRelated,PhysicalType) (This)->lpVtbl->get_CrossbarPinInfo(This,IsInputPin,PinIndex,PinIndexRelated,PhysicalType)
10249 #endif
10250 #endif
10251   HRESULT WINAPI IAMCrossbar_get_PinCounts_Proxy(IAMCrossbar *This,LONG *OutputPinCount,LONG *InputPinCount);
10252   void __RPC_STUB IAMCrossbar_get_PinCounts_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10253   HRESULT WINAPI IAMCrossbar_CanRoute_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
10254   void __RPC_STUB IAMCrossbar_CanRoute_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10255   HRESULT WINAPI IAMCrossbar_Route_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
10256   void __RPC_STUB IAMCrossbar_Route_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10257   HRESULT WINAPI IAMCrossbar_get_IsRoutedTo_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG *InputPinIndex);
10258   void __RPC_STUB IAMCrossbar_get_IsRoutedTo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10259   HRESULT WINAPI IAMCrossbar_get_CrossbarPinInfo_Proxy(IAMCrossbar *This,WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType);
10260   void __RPC_STUB IAMCrossbar_get_CrossbarPinInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10261 #endif
10262 
10263   typedef enum tagAMTunerSubChannel {
10264     AMTUNER_SUBCHAN_NO_TUNE = -2,AMTUNER_SUBCHAN_DEFAULT = -1
10265   } AMTunerSubChannel;
10266 
10267   typedef enum tagAMTunerSignalStrength {
10268     AMTUNER_HASNOSIGNALSTRENGTH = -1,AMTUNER_NOSIGNAL = 0,AMTUNER_SIGNALPRESENT = 1
10269   } AMTunerSignalStrength;
10270 
10271   typedef enum tagAMTunerModeType {
10272     AMTUNER_MODE_DEFAULT = 0,AMTUNER_MODE_TV = 0x1,AMTUNER_MODE_FM_RADIO = 0x2,AMTUNER_MODE_AM_RADIO = 0x4,AMTUNER_MODE_DSS = 0x8
10273   } AMTunerModeType;
10274 
10275   typedef enum tagAMTunerEventType {
10276     AMTUNER_EVENT_CHANGED = 0x1
10277   } AMTunerEventType;
10278 
10279   extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_c_ifspec;
10280   extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_s_ifspec;
10281 #ifndef __IAMTuner_INTERFACE_DEFINED__
10282 #define __IAMTuner_INTERFACE_DEFINED__
10283   EXTERN_C const IID IID_IAMTuner;
10284 #if defined(__cplusplus) && !defined(CINTERFACE)
10285   struct IAMTuner : public IUnknown {
10286   public:
10287     virtual HRESULT WINAPI put_Channel(LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel) = 0;
10288     virtual HRESULT WINAPI get_Channel(LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel) = 0;
10289     virtual HRESULT WINAPI ChannelMinMax(LONG *lChannelMin,LONG *lChannelMax) = 0;
10290     virtual HRESULT WINAPI put_CountryCode(LONG lCountryCode) = 0;
10291     virtual HRESULT WINAPI get_CountryCode(LONG *plCountryCode) = 0;
10292     virtual HRESULT WINAPI put_TuningSpace(LONG lTuningSpace) = 0;
10293     virtual HRESULT WINAPI get_TuningSpace(LONG *plTuningSpace) = 0;
10294     virtual HRESULT WINAPI Logon(HANDLE hCurrentUser) = 0;
10295     virtual HRESULT WINAPI Logout(void) = 0;
10296     virtual HRESULT WINAPI SignalPresent(LONG *plSignalStrength) = 0;
10297     virtual HRESULT WINAPI put_Mode(AMTunerModeType lMode) = 0;
10298     virtual HRESULT WINAPI get_Mode(AMTunerModeType *plMode) = 0;
10299     virtual HRESULT WINAPI GetAvailableModes(LONG *plModes) = 0;
10300     virtual HRESULT WINAPI RegisterNotificationCallBack(IAMTunerNotification *pNotify,LONG lEvents) = 0;
10301     virtual HRESULT WINAPI UnRegisterNotificationCallBack(IAMTunerNotification *pNotify) = 0;
10302   };
10303 #else
10304   typedef struct IAMTunerVtbl {
10305     BEGIN_INTERFACE
10306       HRESULT (WINAPI *QueryInterface)(IAMTuner *This,REFIID riid,void **ppvObject);
10307       ULONG (WINAPI *AddRef)(IAMTuner *This);
10308       ULONG (WINAPI *Release)(IAMTuner *This);
10309       HRESULT (WINAPI *put_Channel)(IAMTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
10310       HRESULT (WINAPI *get_Channel)(IAMTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
10311       HRESULT (WINAPI *ChannelMinMax)(IAMTuner *This,LONG *lChannelMin,LONG *lChannelMax);
10312       HRESULT (WINAPI *put_CountryCode)(IAMTuner *This,LONG lCountryCode);
10313       HRESULT (WINAPI *get_CountryCode)(IAMTuner *This,LONG *plCountryCode);
10314       HRESULT (WINAPI *put_TuningSpace)(IAMTuner *This,LONG lTuningSpace);
10315       HRESULT (WINAPI *get_TuningSpace)(IAMTuner *This,LONG *plTuningSpace);
10316       HRESULT (WINAPI *Logon)(IAMTuner *This,HANDLE hCurrentUser);
10317       HRESULT (WINAPI *Logout)(IAMTuner *This);
10318       HRESULT (WINAPI *SignalPresent)(IAMTuner *This,LONG *plSignalStrength);
10319       HRESULT (WINAPI *put_Mode)(IAMTuner *This,AMTunerModeType lMode);
10320       HRESULT (WINAPI *get_Mode)(IAMTuner *This,AMTunerModeType *plMode);
10321       HRESULT (WINAPI *GetAvailableModes)(IAMTuner *This,LONG *plModes);
10322       HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
10323       HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify);
10324     END_INTERFACE
10325   } IAMTunerVtbl;
10326   struct IAMTuner {
10327     CONST_VTBL struct IAMTunerVtbl *lpVtbl;
10328   };
10329 #ifdef COBJMACROS
10330 #define IAMTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10331 #define IAMTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
10332 #define IAMTuner_Release(This) (This)->lpVtbl->Release(This)
10333 #define IAMTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
10334 #define IAMTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
10335 #define IAMTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
10336 #define IAMTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
10337 #define IAMTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
10338 #define IAMTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
10339 #define IAMTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
10340 #define IAMTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
10341 #define IAMTuner_Logout(This) (This)->lpVtbl->Logout(This)
10342 #define IAMTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
10343 #define IAMTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
10344 #define IAMTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
10345 #define IAMTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
10346 #define IAMTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
10347 #define IAMTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
10348 #endif
10349 #endif
10350   HRESULT WINAPI IAMTuner_put_Channel_Proxy(IAMTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
10351   void __RPC_STUB IAMTuner_put_Channel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10352   HRESULT WINAPI IAMTuner_get_Channel_Proxy(IAMTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
10353   void __RPC_STUB IAMTuner_get_Channel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10354   HRESULT WINAPI IAMTuner_ChannelMinMax_Proxy(IAMTuner *This,LONG *lChannelMin,LONG *lChannelMax);
10355   void __RPC_STUB IAMTuner_ChannelMinMax_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10356   HRESULT WINAPI IAMTuner_put_CountryCode_Proxy(IAMTuner *This,LONG lCountryCode);
10357   void __RPC_STUB IAMTuner_put_CountryCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10358   HRESULT WINAPI IAMTuner_get_CountryCode_Proxy(IAMTuner *This,LONG *plCountryCode);
10359   void __RPC_STUB IAMTuner_get_CountryCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10360   HRESULT WINAPI IAMTuner_put_TuningSpace_Proxy(IAMTuner *This,LONG lTuningSpace);
10361   void __RPC_STUB IAMTuner_put_TuningSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10362   HRESULT WINAPI IAMTuner_get_TuningSpace_Proxy(IAMTuner *This,LONG *plTuningSpace);
10363   void __RPC_STUB IAMTuner_get_TuningSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10364   HRESULT WINAPI IAMTuner_Logon_Proxy(IAMTuner *This,HANDLE hCurrentUser);
10365   void __RPC_STUB IAMTuner_Logon_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10366   HRESULT WINAPI IAMTuner_Logout_Proxy(IAMTuner *This);
10367   void __RPC_STUB IAMTuner_Logout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10368   HRESULT WINAPI IAMTuner_SignalPresent_Proxy(IAMTuner *This,LONG *plSignalStrength);
10369   void __RPC_STUB IAMTuner_SignalPresent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10370   HRESULT WINAPI IAMTuner_put_Mode_Proxy(IAMTuner *This,AMTunerModeType lMode);
10371   void __RPC_STUB IAMTuner_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10372   HRESULT WINAPI IAMTuner_get_Mode_Proxy(IAMTuner *This,AMTunerModeType *plMode);
10373   void __RPC_STUB IAMTuner_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10374   HRESULT WINAPI IAMTuner_GetAvailableModes_Proxy(IAMTuner *This,LONG *plModes);
10375   void __RPC_STUB IAMTuner_GetAvailableModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10376   HRESULT WINAPI IAMTuner_RegisterNotificationCallBack_Proxy(IAMTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
10377   void __RPC_STUB IAMTuner_RegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10378   HRESULT WINAPI IAMTuner_UnRegisterNotificationCallBack_Proxy(IAMTuner *This,IAMTunerNotification *pNotify);
10379   void __RPC_STUB IAMTuner_UnRegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10380 #endif
10381 
10382 #ifndef __IAMTunerNotification_INTERFACE_DEFINED__
10383 #define __IAMTunerNotification_INTERFACE_DEFINED__
10384   EXTERN_C const IID IID_IAMTunerNotification;
10385 #if defined(__cplusplus) && !defined(CINTERFACE)
10386   struct IAMTunerNotification : public IUnknown {
10387   public:
10388     virtual HRESULT WINAPI OnEvent(AMTunerEventType Event) = 0;
10389   };
10390 #else
10391   typedef struct IAMTunerNotificationVtbl {
10392     BEGIN_INTERFACE
10393       HRESULT (WINAPI *QueryInterface)(IAMTunerNotification *This,REFIID riid,void **ppvObject);
10394       ULONG (WINAPI *AddRef)(IAMTunerNotification *This);
10395       ULONG (WINAPI *Release)(IAMTunerNotification *This);
10396       HRESULT (WINAPI *OnEvent)(IAMTunerNotification *This,AMTunerEventType Event);
10397     END_INTERFACE
10398   } IAMTunerNotificationVtbl;
10399   struct IAMTunerNotification {
10400     CONST_VTBL struct IAMTunerNotificationVtbl *lpVtbl;
10401   };
10402 #ifdef COBJMACROS
10403 #define IAMTunerNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10404 #define IAMTunerNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
10405 #define IAMTunerNotification_Release(This) (This)->lpVtbl->Release(This)
10406 #define IAMTunerNotification_OnEvent(This,Event) (This)->lpVtbl->OnEvent(This,Event)
10407 #endif
10408 #endif
10409   HRESULT WINAPI IAMTunerNotification_OnEvent_Proxy(IAMTunerNotification *This,AMTunerEventType Event);
10410   void __RPC_STUB IAMTunerNotification_OnEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10411 #endif
10412 
10413 #ifndef __IAMTVTuner_INTERFACE_DEFINED__
10414 #define __IAMTVTuner_INTERFACE_DEFINED__
10415   EXTERN_C const IID IID_IAMTVTuner;
10416 #if defined(__cplusplus) && !defined(CINTERFACE)
10417   struct IAMTVTuner : public IAMTuner {
10418   public:
10419     virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
10420     virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
10421     virtual HRESULT WINAPI AutoTune(LONG lChannel,LONG *plFoundSignal) = 0;
10422     virtual HRESULT WINAPI StoreAutoTune(void) = 0;
10423     virtual HRESULT WINAPI get_NumInputConnections(LONG *plNumInputConnections) = 0;
10424     virtual HRESULT WINAPI put_InputType(LONG lIndex,TunerInputType InputType) = 0;
10425     virtual HRESULT WINAPI get_InputType(LONG lIndex,TunerInputType *pInputType) = 0;
10426     virtual HRESULT WINAPI put_ConnectInput(LONG lIndex) = 0;
10427     virtual HRESULT WINAPI get_ConnectInput(LONG *plIndex) = 0;
10428     virtual HRESULT WINAPI get_VideoFrequency(LONG *lFreq) = 0;
10429     virtual HRESULT WINAPI get_AudioFrequency(LONG *lFreq) = 0;
10430   };
10431 #else
10432   typedef struct IAMTVTunerVtbl {
10433     BEGIN_INTERFACE
10434       HRESULT (WINAPI *QueryInterface)(IAMTVTuner *This,REFIID riid,void **ppvObject);
10435       ULONG (WINAPI *AddRef)(IAMTVTuner *This);
10436       ULONG (WINAPI *Release)(IAMTVTuner *This);
10437       HRESULT (WINAPI *put_Channel)(IAMTVTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
10438       HRESULT (WINAPI *get_Channel)(IAMTVTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
10439       HRESULT (WINAPI *ChannelMinMax)(IAMTVTuner *This,LONG *lChannelMin,LONG *lChannelMax);
10440       HRESULT (WINAPI *put_CountryCode)(IAMTVTuner *This,LONG lCountryCode);
10441       HRESULT (WINAPI *get_CountryCode)(IAMTVTuner *This,LONG *plCountryCode);
10442       HRESULT (WINAPI *put_TuningSpace)(IAMTVTuner *This,LONG lTuningSpace);
10443       HRESULT (WINAPI *get_TuningSpace)(IAMTVTuner *This,LONG *plTuningSpace);
10444       HRESULT (WINAPI *Logon)(IAMTVTuner *This,HANDLE hCurrentUser);
10445       HRESULT (WINAPI *Logout)(IAMTVTuner *This);
10446       HRESULT (WINAPI *SignalPresent)(IAMTVTuner *This,LONG *plSignalStrength);
10447       HRESULT (WINAPI *put_Mode)(IAMTVTuner *This,AMTunerModeType lMode);
10448       HRESULT (WINAPI *get_Mode)(IAMTVTuner *This,AMTunerModeType *plMode);
10449       HRESULT (WINAPI *GetAvailableModes)(IAMTVTuner *This,LONG *plModes);
10450       HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTVTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
10451       HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVTuner *This,IAMTunerNotification *pNotify);
10452       HRESULT (WINAPI *get_AvailableTVFormats)(IAMTVTuner *This,LONG *lAnalogVideoStandard);
10453       HRESULT (WINAPI *get_TVFormat)(IAMTVTuner *This,LONG *plAnalogVideoStandard);
10454       HRESULT (WINAPI *AutoTune)(IAMTVTuner *This,LONG lChannel,LONG *plFoundSignal);
10455       HRESULT (WINAPI *StoreAutoTune)(IAMTVTuner *This);
10456       HRESULT (WINAPI *get_NumInputConnections)(IAMTVTuner *This,LONG *plNumInputConnections);
10457       HRESULT (WINAPI *put_InputType)(IAMTVTuner *This,LONG lIndex,TunerInputType InputType);
10458       HRESULT (WINAPI *get_InputType)(IAMTVTuner *This,LONG lIndex,TunerInputType *pInputType);
10459       HRESULT (WINAPI *put_ConnectInput)(IAMTVTuner *This,LONG lIndex);
10460       HRESULT (WINAPI *get_ConnectInput)(IAMTVTuner *This,LONG *plIndex);
10461       HRESULT (WINAPI *get_VideoFrequency)(IAMTVTuner *This,LONG *lFreq);
10462       HRESULT (WINAPI *get_AudioFrequency)(IAMTVTuner *This,LONG *lFreq);
10463     END_INTERFACE
10464   } IAMTVTunerVtbl;
10465   struct IAMTVTuner {
10466     CONST_VTBL struct IAMTVTunerVtbl *lpVtbl;
10467   };
10468 #ifdef COBJMACROS
10469 #define IAMTVTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10470 #define IAMTVTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
10471 #define IAMTVTuner_Release(This) (This)->lpVtbl->Release(This)
10472 #define IAMTVTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
10473 #define IAMTVTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
10474 #define IAMTVTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
10475 #define IAMTVTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
10476 #define IAMTVTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
10477 #define IAMTVTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
10478 #define IAMTVTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
10479 #define IAMTVTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
10480 #define IAMTVTuner_Logout(This) (This)->lpVtbl->Logout(This)
10481 #define IAMTVTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
10482 #define IAMTVTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
10483 #define IAMTVTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
10484 #define IAMTVTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
10485 #define IAMTVTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
10486 #define IAMTVTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
10487 #define IAMTVTuner_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
10488 #define IAMTVTuner_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
10489 #define IAMTVTuner_AutoTune(This,lChannel,plFoundSignal) (This)->lpVtbl->AutoTune(This,lChannel,plFoundSignal)
10490 #define IAMTVTuner_StoreAutoTune(This) (This)->lpVtbl->StoreAutoTune(This)
10491 #define IAMTVTuner_get_NumInputConnections(This,plNumInputConnections) (This)->lpVtbl->get_NumInputConnections(This,plNumInputConnections)
10492 #define IAMTVTuner_put_InputType(This,lIndex,InputType) (This)->lpVtbl->put_InputType(This,lIndex,InputType)
10493 #define IAMTVTuner_get_InputType(This,lIndex,pInputType) (This)->lpVtbl->get_InputType(This,lIndex,pInputType)
10494 #define IAMTVTuner_put_ConnectInput(This,lIndex) (This)->lpVtbl->put_ConnectInput(This,lIndex)
10495 #define IAMTVTuner_get_ConnectInput(This,plIndex) (This)->lpVtbl->get_ConnectInput(This,plIndex)
10496 #define IAMTVTuner_get_VideoFrequency(This,lFreq) (This)->lpVtbl->get_VideoFrequency(This,lFreq)
10497 #define IAMTVTuner_get_AudioFrequency(This,lFreq) (This)->lpVtbl->get_AudioFrequency(This,lFreq)
10498 #endif
10499 #endif
10500   HRESULT WINAPI IAMTVTuner_get_AvailableTVFormats_Proxy(IAMTVTuner *This,LONG *lAnalogVideoStandard);
10501   void __RPC_STUB IAMTVTuner_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10502   HRESULT WINAPI IAMTVTuner_get_TVFormat_Proxy(IAMTVTuner *This,LONG *plAnalogVideoStandard);
10503   void __RPC_STUB IAMTVTuner_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10504   HRESULT WINAPI IAMTVTuner_AutoTune_Proxy(IAMTVTuner *This,LONG lChannel,LONG *plFoundSignal);
10505   void __RPC_STUB IAMTVTuner_AutoTune_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10506   HRESULT WINAPI IAMTVTuner_StoreAutoTune_Proxy(IAMTVTuner *This);
10507   void __RPC_STUB IAMTVTuner_StoreAutoTune_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10508   HRESULT WINAPI IAMTVTuner_get_NumInputConnections_Proxy(IAMTVTuner *This,LONG *plNumInputConnections);
10509   void __RPC_STUB IAMTVTuner_get_NumInputConnections_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10510   HRESULT WINAPI IAMTVTuner_put_InputType_Proxy(IAMTVTuner *This,LONG lIndex,TunerInputType InputType);
10511   void __RPC_STUB IAMTVTuner_put_InputType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10512   HRESULT WINAPI IAMTVTuner_get_InputType_Proxy(IAMTVTuner *This,LONG lIndex,TunerInputType *pInputType);
10513   void __RPC_STUB IAMTVTuner_get_InputType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10514   HRESULT WINAPI IAMTVTuner_put_ConnectInput_Proxy(IAMTVTuner *This,LONG lIndex);
10515   void __RPC_STUB IAMTVTuner_put_ConnectInput_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10516   HRESULT WINAPI IAMTVTuner_get_ConnectInput_Proxy(IAMTVTuner *This,LONG *plIndex);
10517   void __RPC_STUB IAMTVTuner_get_ConnectInput_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10518   HRESULT WINAPI IAMTVTuner_get_VideoFrequency_Proxy(IAMTVTuner *This,LONG *lFreq);
10519   void __RPC_STUB IAMTVTuner_get_VideoFrequency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10520   HRESULT WINAPI IAMTVTuner_get_AudioFrequency_Proxy(IAMTVTuner *This,LONG *lFreq);
10521   void __RPC_STUB IAMTVTuner_get_AudioFrequency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10522 #endif
10523 
10524 #ifndef __IBPCSatelliteTuner_INTERFACE_DEFINED__
10525 #define __IBPCSatelliteTuner_INTERFACE_DEFINED__
10526   EXTERN_C const IID IID_IBPCSatelliteTuner;
10527 #if defined(__cplusplus) && !defined(CINTERFACE)
10528   struct IBPCSatelliteTuner : public IAMTuner {
10529   public:
10530     virtual HRESULT WINAPI get_DefaultSubChannelTypes(LONG *plDefaultVideoType,LONG *plDefaultAudioType) = 0;
10531     virtual HRESULT WINAPI put_DefaultSubChannelTypes(LONG lDefaultVideoType,LONG lDefaultAudioType) = 0;
10532     virtual HRESULT WINAPI IsTapingPermitted(void) = 0;
10533   };
10534 #else
10535   typedef struct IBPCSatelliteTunerVtbl {
10536     BEGIN_INTERFACE
10537       HRESULT (WINAPI *QueryInterface)(IBPCSatelliteTuner *This,REFIID riid,void **ppvObject);
10538       ULONG (WINAPI *AddRef)(IBPCSatelliteTuner *This);
10539       ULONG (WINAPI *Release)(IBPCSatelliteTuner *This);
10540       HRESULT (WINAPI *put_Channel)(IBPCSatelliteTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
10541       HRESULT (WINAPI *get_Channel)(IBPCSatelliteTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
10542       HRESULT (WINAPI *ChannelMinMax)(IBPCSatelliteTuner *This,LONG *lChannelMin,LONG *lChannelMax);
10543       HRESULT (WINAPI *put_CountryCode)(IBPCSatelliteTuner *This,LONG lCountryCode);
10544       HRESULT (WINAPI *get_CountryCode)(IBPCSatelliteTuner *This,LONG *plCountryCode);
10545       HRESULT (WINAPI *put_TuningSpace)(IBPCSatelliteTuner *This,LONG lTuningSpace);
10546       HRESULT (WINAPI *get_TuningSpace)(IBPCSatelliteTuner *This,LONG *plTuningSpace);
10547       HRESULT (WINAPI *Logon)(IBPCSatelliteTuner *This,HANDLE hCurrentUser);
10548       HRESULT (WINAPI *Logout)(IBPCSatelliteTuner *This);
10549       HRESULT (WINAPI *SignalPresent)(IBPCSatelliteTuner *This,LONG *plSignalStrength);
10550       HRESULT (WINAPI *put_Mode)(IBPCSatelliteTuner *This,AMTunerModeType lMode);
10551       HRESULT (WINAPI *get_Mode)(IBPCSatelliteTuner *This,AMTunerModeType *plMode);
10552       HRESULT (WINAPI *GetAvailableModes)(IBPCSatelliteTuner *This,LONG *plModes);
10553       HRESULT (WINAPI *RegisterNotificationCallBack)(IBPCSatelliteTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
10554       HRESULT (WINAPI *UnRegisterNotificationCallBack)(IBPCSatelliteTuner *This,IAMTunerNotification *pNotify);
10555       HRESULT (WINAPI *get_DefaultSubChannelTypes)(IBPCSatelliteTuner *This,LONG *plDefaultVideoType,LONG *plDefaultAudioType);
10556       HRESULT (WINAPI *put_DefaultSubChannelTypes)(IBPCSatelliteTuner *This,LONG lDefaultVideoType,LONG lDefaultAudioType);
10557       HRESULT (WINAPI *IsTapingPermitted)(IBPCSatelliteTuner *This);
10558     END_INTERFACE
10559   } IBPCSatelliteTunerVtbl;
10560   struct IBPCSatelliteTuner {
10561     CONST_VTBL struct IBPCSatelliteTunerVtbl *lpVtbl;
10562   };
10563 #ifdef COBJMACROS
10564 #define IBPCSatelliteTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10565 #define IBPCSatelliteTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
10566 #define IBPCSatelliteTuner_Release(This) (This)->lpVtbl->Release(This)
10567 #define IBPCSatelliteTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
10568 #define IBPCSatelliteTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
10569 #define IBPCSatelliteTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
10570 #define IBPCSatelliteTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
10571 #define IBPCSatelliteTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
10572 #define IBPCSatelliteTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
10573 #define IBPCSatelliteTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
10574 #define IBPCSatelliteTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
10575 #define IBPCSatelliteTuner_Logout(This) (This)->lpVtbl->Logout(This)
10576 #define IBPCSatelliteTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
10577 #define IBPCSatelliteTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
10578 #define IBPCSatelliteTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
10579 #define IBPCSatelliteTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
10580 #define IBPCSatelliteTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
10581 #define IBPCSatelliteTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
10582 #define IBPCSatelliteTuner_get_DefaultSubChannelTypes(This,plDefaultVideoType,plDefaultAudioType) (This)->lpVtbl->get_DefaultSubChannelTypes(This,plDefaultVideoType,plDefaultAudioType)
10583 #define IBPCSatelliteTuner_put_DefaultSubChannelTypes(This,lDefaultVideoType,lDefaultAudioType) (This)->lpVtbl->put_DefaultSubChannelTypes(This,lDefaultVideoType,lDefaultAudioType)
10584 #define IBPCSatelliteTuner_IsTapingPermitted(This) (This)->lpVtbl->IsTapingPermitted(This)
10585 #endif
10586 #endif
10587   HRESULT WINAPI IBPCSatelliteTuner_get_DefaultSubChannelTypes_Proxy(IBPCSatelliteTuner *This,LONG *plDefaultVideoType,LONG *plDefaultAudioType);
10588   void __RPC_STUB IBPCSatelliteTuner_get_DefaultSubChannelTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10589   HRESULT WINAPI IBPCSatelliteTuner_put_DefaultSubChannelTypes_Proxy(IBPCSatelliteTuner *This,LONG lDefaultVideoType,LONG lDefaultAudioType);
10590   void __RPC_STUB IBPCSatelliteTuner_put_DefaultSubChannelTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10591   HRESULT WINAPI IBPCSatelliteTuner_IsTapingPermitted_Proxy(IBPCSatelliteTuner *This);
10592   void __RPC_STUB IBPCSatelliteTuner_IsTapingPermitted_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10593 #endif
10594 
10595   typedef enum tagAMTVAudioEventType {
10596     AMTVAUDIO_EVENT_CHANGED = 0x1
10597   } AMTVAudioEventType;
10598 
10599   extern RPC_IF_HANDLE __MIDL_itf_strmif_0182_v0_0_c_ifspec;
10600   extern RPC_IF_HANDLE __MIDL_itf_strmif_0182_v0_0_s_ifspec;
10601 #ifndef __IAMTVAudio_INTERFACE_DEFINED__
10602 #define __IAMTVAudio_INTERFACE_DEFINED__
10603   EXTERN_C const IID IID_IAMTVAudio;
10604 #if defined(__cplusplus) && !defined(CINTERFACE)
10605   struct IAMTVAudio : public IUnknown {
10606   public:
10607     virtual HRESULT WINAPI GetHardwareSupportedTVAudioModes(LONG *plModes) = 0;
10608     virtual HRESULT WINAPI GetAvailableTVAudioModes(LONG *plModes) = 0;
10609     virtual HRESULT WINAPI get_TVAudioMode(LONG *plMode) = 0;
10610     virtual HRESULT WINAPI put_TVAudioMode(LONG lMode) = 0;
10611     virtual HRESULT WINAPI RegisterNotificationCallBack(IAMTunerNotification *pNotify,LONG lEvents) = 0;
10612     virtual HRESULT WINAPI UnRegisterNotificationCallBack(IAMTunerNotification *pNotify) = 0;
10613   };
10614 #else
10615   typedef struct IAMTVAudioVtbl {
10616     BEGIN_INTERFACE
10617       HRESULT (WINAPI *QueryInterface)(IAMTVAudio *This,REFIID riid,void **ppvObject);
10618       ULONG (WINAPI *AddRef)(IAMTVAudio *This);
10619       ULONG (WINAPI *Release)(IAMTVAudio *This);
10620       HRESULT (WINAPI *GetHardwareSupportedTVAudioModes)(IAMTVAudio *This,LONG *plModes);
10621       HRESULT (WINAPI *GetAvailableTVAudioModes)(IAMTVAudio *This,LONG *plModes);
10622       HRESULT (WINAPI *get_TVAudioMode)(IAMTVAudio *This,LONG *plMode);
10623       HRESULT (WINAPI *put_TVAudioMode)(IAMTVAudio *This,LONG lMode);
10624       HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify,LONG lEvents);
10625       HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify);
10626     END_INTERFACE
10627   } IAMTVAudioVtbl;
10628   struct IAMTVAudio {
10629     CONST_VTBL struct IAMTVAudioVtbl *lpVtbl;
10630   };
10631 #ifdef COBJMACROS
10632 #define IAMTVAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10633 #define IAMTVAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
10634 #define IAMTVAudio_Release(This) (This)->lpVtbl->Release(This)
10635 #define IAMTVAudio_GetHardwareSupportedTVAudioModes(This,plModes) (This)->lpVtbl->GetHardwareSupportedTVAudioModes(This,plModes)
10636 #define IAMTVAudio_GetAvailableTVAudioModes(This,plModes) (This)->lpVtbl->GetAvailableTVAudioModes(This,plModes)
10637 #define IAMTVAudio_get_TVAudioMode(This,plMode) (This)->lpVtbl->get_TVAudioMode(This,plMode)
10638 #define IAMTVAudio_put_TVAudioMode(This,lMode) (This)->lpVtbl->put_TVAudioMode(This,lMode)
10639 #define IAMTVAudio_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
10640 #define IAMTVAudio_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
10641 #endif
10642 #endif
10643   HRESULT WINAPI IAMTVAudio_GetHardwareSupportedTVAudioModes_Proxy(IAMTVAudio *This,LONG *plModes);
10644   void __RPC_STUB IAMTVAudio_GetHardwareSupportedTVAudioModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10645   HRESULT WINAPI IAMTVAudio_GetAvailableTVAudioModes_Proxy(IAMTVAudio *This,LONG *plModes);
10646   void __RPC_STUB IAMTVAudio_GetAvailableTVAudioModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10647   HRESULT WINAPI IAMTVAudio_get_TVAudioMode_Proxy(IAMTVAudio *This,LONG *plMode);
10648   void __RPC_STUB IAMTVAudio_get_TVAudioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10649   HRESULT WINAPI IAMTVAudio_put_TVAudioMode_Proxy(IAMTVAudio *This,LONG lMode);
10650   void __RPC_STUB IAMTVAudio_put_TVAudioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10651   HRESULT WINAPI IAMTVAudio_RegisterNotificationCallBack_Proxy(IAMTVAudio *This,IAMTunerNotification *pNotify,LONG lEvents);
10652   void __RPC_STUB IAMTVAudio_RegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10653   HRESULT WINAPI IAMTVAudio_UnRegisterNotificationCallBack_Proxy(IAMTVAudio *This,IAMTunerNotification *pNotify);
10654   void __RPC_STUB IAMTVAudio_UnRegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10655 #endif
10656 
10657 #ifndef __IAMTVAudioNotification_INTERFACE_DEFINED__
10658 #define __IAMTVAudioNotification_INTERFACE_DEFINED__
10659   EXTERN_C const IID IID_IAMTVAudioNotification;
10660 #if defined(__cplusplus) && !defined(CINTERFACE)
10661   struct IAMTVAudioNotification : public IUnknown {
10662   public:
10663     virtual HRESULT WINAPI OnEvent(AMTVAudioEventType Event) = 0;
10664   };
10665 #else
10666   typedef struct IAMTVAudioNotificationVtbl {
10667     BEGIN_INTERFACE
10668       HRESULT (WINAPI *QueryInterface)(IAMTVAudioNotification *This,REFIID riid,void **ppvObject);
10669       ULONG (WINAPI *AddRef)(IAMTVAudioNotification *This);
10670       ULONG (WINAPI *Release)(IAMTVAudioNotification *This);
10671       HRESULT (WINAPI *OnEvent)(IAMTVAudioNotification *This,AMTVAudioEventType Event);
10672     END_INTERFACE
10673   } IAMTVAudioNotificationVtbl;
10674   struct IAMTVAudioNotification {
10675     CONST_VTBL struct IAMTVAudioNotificationVtbl *lpVtbl;
10676   };
10677 #ifdef COBJMACROS
10678 #define IAMTVAudioNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10679 #define IAMTVAudioNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
10680 #define IAMTVAudioNotification_Release(This) (This)->lpVtbl->Release(This)
10681 #define IAMTVAudioNotification_OnEvent(This,Event) (This)->lpVtbl->OnEvent(This,Event)
10682 #endif
10683 #endif
10684   HRESULT WINAPI IAMTVAudioNotification_OnEvent_Proxy(IAMTVAudioNotification *This,AMTVAudioEventType Event);
10685   void __RPC_STUB IAMTVAudioNotification_OnEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10686 #endif
10687 
10688 #ifndef __IAMAnalogVideoEncoder_INTERFACE_DEFINED__
10689 #define __IAMAnalogVideoEncoder_INTERFACE_DEFINED__
10690   EXTERN_C const IID IID_IAMAnalogVideoEncoder;
10691 #if defined(__cplusplus) && !defined(CINTERFACE)
10692   struct IAMAnalogVideoEncoder : public IUnknown {
10693   public:
10694     virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
10695     virtual HRESULT WINAPI put_TVFormat(LONG lAnalogVideoStandard) = 0;
10696     virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
10697     virtual HRESULT WINAPI put_CopyProtection(LONG lVideoCopyProtection) = 0;
10698     virtual HRESULT WINAPI get_CopyProtection(LONG *lVideoCopyProtection) = 0;
10699     virtual HRESULT WINAPI put_CCEnable(LONG lCCEnable) = 0;
10700     virtual HRESULT WINAPI get_CCEnable(LONG *lCCEnable) = 0;
10701   };
10702 #else
10703   typedef struct IAMAnalogVideoEncoderVtbl {
10704     BEGIN_INTERFACE
10705       HRESULT (WINAPI *QueryInterface)(IAMAnalogVideoEncoder *This,REFIID riid,void **ppvObject);
10706       ULONG (WINAPI *AddRef)(IAMAnalogVideoEncoder *This);
10707       ULONG (WINAPI *Release)(IAMAnalogVideoEncoder *This);
10708       HRESULT (WINAPI *get_AvailableTVFormats)(IAMAnalogVideoEncoder *This,LONG *lAnalogVideoStandard);
10709       HRESULT (WINAPI *put_TVFormat)(IAMAnalogVideoEncoder *This,LONG lAnalogVideoStandard);
10710       HRESULT (WINAPI *get_TVFormat)(IAMAnalogVideoEncoder *This,LONG *plAnalogVideoStandard);
10711       HRESULT (WINAPI *put_CopyProtection)(IAMAnalogVideoEncoder *This,LONG lVideoCopyProtection);
10712       HRESULT (WINAPI *get_CopyProtection)(IAMAnalogVideoEncoder *This,LONG *lVideoCopyProtection);
10713       HRESULT (WINAPI *put_CCEnable)(IAMAnalogVideoEncoder *This,LONG lCCEnable);
10714       HRESULT (WINAPI *get_CCEnable)(IAMAnalogVideoEncoder *This,LONG *lCCEnable);
10715     END_INTERFACE
10716   } IAMAnalogVideoEncoderVtbl;
10717   struct IAMAnalogVideoEncoder {
10718     CONST_VTBL struct IAMAnalogVideoEncoderVtbl *lpVtbl;
10719   };
10720 #ifdef COBJMACROS
10721 #define IAMAnalogVideoEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10722 #define IAMAnalogVideoEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
10723 #define IAMAnalogVideoEncoder_Release(This) (This)->lpVtbl->Release(This)
10724 #define IAMAnalogVideoEncoder_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
10725 #define IAMAnalogVideoEncoder_put_TVFormat(This,lAnalogVideoStandard) (This)->lpVtbl->put_TVFormat(This,lAnalogVideoStandard)
10726 #define IAMAnalogVideoEncoder_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
10727 #define IAMAnalogVideoEncoder_put_CopyProtection(This,lVideoCopyProtection) (This)->lpVtbl->put_CopyProtection(This,lVideoCopyProtection)
10728 #define IAMAnalogVideoEncoder_get_CopyProtection(This,lVideoCopyProtection) (This)->lpVtbl->get_CopyProtection(This,lVideoCopyProtection)
10729 #define IAMAnalogVideoEncoder_put_CCEnable(This,lCCEnable) (This)->lpVtbl->put_CCEnable(This,lCCEnable)
10730 #define IAMAnalogVideoEncoder_get_CCEnable(This,lCCEnable) (This)->lpVtbl->get_CCEnable(This,lCCEnable)
10731 #endif
10732 #endif
10733   HRESULT WINAPI IAMAnalogVideoEncoder_get_AvailableTVFormats_Proxy(IAMAnalogVideoEncoder *This,LONG *lAnalogVideoStandard);
10734   void __RPC_STUB IAMAnalogVideoEncoder_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10735   HRESULT WINAPI IAMAnalogVideoEncoder_put_TVFormat_Proxy(IAMAnalogVideoEncoder *This,LONG lAnalogVideoStandard);
10736   void __RPC_STUB IAMAnalogVideoEncoder_put_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10737   HRESULT WINAPI IAMAnalogVideoEncoder_get_TVFormat_Proxy(IAMAnalogVideoEncoder *This,LONG *plAnalogVideoStandard);
10738   void __RPC_STUB IAMAnalogVideoEncoder_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10739   HRESULT WINAPI IAMAnalogVideoEncoder_put_CopyProtection_Proxy(IAMAnalogVideoEncoder *This,LONG lVideoCopyProtection);
10740   void __RPC_STUB IAMAnalogVideoEncoder_put_CopyProtection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10741   HRESULT WINAPI IAMAnalogVideoEncoder_get_CopyProtection_Proxy(IAMAnalogVideoEncoder *This,LONG *lVideoCopyProtection);
10742   void __RPC_STUB IAMAnalogVideoEncoder_get_CopyProtection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10743   HRESULT WINAPI IAMAnalogVideoEncoder_put_CCEnable_Proxy(IAMAnalogVideoEncoder *This,LONG lCCEnable);
10744   void __RPC_STUB IAMAnalogVideoEncoder_put_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10745   HRESULT WINAPI IAMAnalogVideoEncoder_get_CCEnable_Proxy(IAMAnalogVideoEncoder *This,LONG *lCCEnable);
10746   void __RPC_STUB IAMAnalogVideoEncoder_get_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10747 #endif
10748 
10749   typedef enum __MIDL___MIDL_itf_strmif_0185_0001 {
10750     AMPROPERTY_PIN_CATEGORY = 0,AMPROPERTY_PIN_MEDIUM = AMPROPERTY_PIN_CATEGORY + 1
10751   } AMPROPERTY_PIN;
10752 
10753 #ifndef __IAMPhysicalPinInfo_INTERFACE_DEFINED__
10754 #define __IAMPhysicalPinInfo_INTERFACE_DEFINED__
10755   EXTERN_C const IID IID_IAMPhysicalPinInfo;
10756 #if defined(__cplusplus) && !defined(CINTERFACE)
10757   struct IAMPhysicalPinInfo : public IUnknown {
10758   public:
10759     virtual HRESULT WINAPI GetPhysicalType(LONG *pType,LPOLESTR *ppszType) = 0;
10760   };
10761 #else
10762   typedef struct IAMPhysicalPinInfoVtbl {
10763     BEGIN_INTERFACE
10764       HRESULT (WINAPI *QueryInterface)(IAMPhysicalPinInfo *This,REFIID riid,void **ppvObject);
10765       ULONG (WINAPI *AddRef)(IAMPhysicalPinInfo *This);
10766       ULONG (WINAPI *Release)(IAMPhysicalPinInfo *This);
10767       HRESULT (WINAPI *GetPhysicalType)(IAMPhysicalPinInfo *This,LONG *pType,LPOLESTR *ppszType);
10768     END_INTERFACE
10769   } IAMPhysicalPinInfoVtbl;
10770   struct IAMPhysicalPinInfo {
10771     CONST_VTBL struct IAMPhysicalPinInfoVtbl *lpVtbl;
10772   };
10773 #ifdef COBJMACROS
10774 #define IAMPhysicalPinInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10775 #define IAMPhysicalPinInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
10776 #define IAMPhysicalPinInfo_Release(This) (This)->lpVtbl->Release(This)
10777 #define IAMPhysicalPinInfo_GetPhysicalType(This,pType,ppszType) (This)->lpVtbl->GetPhysicalType(This,pType,ppszType)
10778 #endif
10779 #endif
10780   HRESULT WINAPI IAMPhysicalPinInfo_GetPhysicalType_Proxy(IAMPhysicalPinInfo *This,LONG *pType,LPOLESTR *ppszType);
10781   void __RPC_STUB IAMPhysicalPinInfo_GetPhysicalType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10782 #endif
10783 
10784   typedef IAMPhysicalPinInfo *PAMPHYSICALPININFO;
10785 
10786   extern RPC_IF_HANDLE __MIDL_itf_strmif_0338_v0_0_c_ifspec;
10787   extern RPC_IF_HANDLE __MIDL_itf_strmif_0338_v0_0_s_ifspec;
10788 #ifndef __IAMExtDevice_INTERFACE_DEFINED__
10789 #define __IAMExtDevice_INTERFACE_DEFINED__
10790   EXTERN_C const IID IID_IAMExtDevice;
10791 #if defined(__cplusplus) && !defined(CINTERFACE)
10792   struct IAMExtDevice : public IUnknown {
10793   public:
10794     virtual HRESULT WINAPI GetCapability(LONG Capability,LONG *pValue,double *pdblValue) = 0;
10795     virtual HRESULT WINAPI get_ExternalDeviceID(LPOLESTR *ppszData) = 0;
10796     virtual HRESULT WINAPI get_ExternalDeviceVersion(LPOLESTR *ppszData) = 0;
10797     virtual HRESULT WINAPI put_DevicePower(LONG PowerMode) = 0;
10798     virtual HRESULT WINAPI get_DevicePower(LONG *pPowerMode) = 0;
10799     virtual HRESULT WINAPI Calibrate(HEVENT hEvent,LONG Mode,LONG *pStatus) = 0;
10800     virtual HRESULT WINAPI put_DevicePort(LONG DevicePort) = 0;
10801     virtual HRESULT WINAPI get_DevicePort(LONG *pDevicePort) = 0;
10802   };
10803 #else
10804   typedef struct IAMExtDeviceVtbl {
10805     BEGIN_INTERFACE
10806       HRESULT (WINAPI *QueryInterface)(IAMExtDevice *This,REFIID riid,void **ppvObject);
10807       ULONG (WINAPI *AddRef)(IAMExtDevice *This);
10808       ULONG (WINAPI *Release)(IAMExtDevice *This);
10809       HRESULT (WINAPI *GetCapability)(IAMExtDevice *This,LONG Capability,LONG *pValue,double *pdblValue);
10810       HRESULT (WINAPI *get_ExternalDeviceID)(IAMExtDevice *This,LPOLESTR *ppszData);
10811       HRESULT (WINAPI *get_ExternalDeviceVersion)(IAMExtDevice *This,LPOLESTR *ppszData);
10812       HRESULT (WINAPI *put_DevicePower)(IAMExtDevice *This,LONG PowerMode);
10813       HRESULT (WINAPI *get_DevicePower)(IAMExtDevice *This,LONG *pPowerMode);
10814       HRESULT (WINAPI *Calibrate)(IAMExtDevice *This,HEVENT hEvent,LONG Mode,LONG *pStatus);
10815       HRESULT (WINAPI *put_DevicePort)(IAMExtDevice *This,LONG DevicePort);
10816       HRESULT (WINAPI *get_DevicePort)(IAMExtDevice *This,LONG *pDevicePort);
10817     END_INTERFACE
10818   } IAMExtDeviceVtbl;
10819   struct IAMExtDevice {
10820     CONST_VTBL struct IAMExtDeviceVtbl *lpVtbl;
10821   };
10822 #ifdef COBJMACROS
10823 #define IAMExtDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10824 #define IAMExtDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
10825 #define IAMExtDevice_Release(This) (This)->lpVtbl->Release(This)
10826 #define IAMExtDevice_GetCapability(This,Capability,pValue,pdblValue) (This)->lpVtbl->GetCapability(This,Capability,pValue,pdblValue)
10827 #define IAMExtDevice_get_ExternalDeviceID(This,ppszData) (This)->lpVtbl->get_ExternalDeviceID(This,ppszData)
10828 #define IAMExtDevice_get_ExternalDeviceVersion(This,ppszData) (This)->lpVtbl->get_ExternalDeviceVersion(This,ppszData)
10829 #define IAMExtDevice_put_DevicePower(This,PowerMode) (This)->lpVtbl->put_DevicePower(This,PowerMode)
10830 #define IAMExtDevice_get_DevicePower(This,pPowerMode) (This)->lpVtbl->get_DevicePower(This,pPowerMode)
10831 #define IAMExtDevice_Calibrate(This,hEvent,Mode,pStatus) (This)->lpVtbl->Calibrate(This,hEvent,Mode,pStatus)
10832 #define IAMExtDevice_put_DevicePort(This,DevicePort) (This)->lpVtbl->put_DevicePort(This,DevicePort)
10833 #define IAMExtDevice_get_DevicePort(This,pDevicePort) (This)->lpVtbl->get_DevicePort(This,pDevicePort)
10834 #endif
10835 #endif
10836   HRESULT WINAPI IAMExtDevice_GetCapability_Proxy(IAMExtDevice *This,LONG Capability,LONG *pValue,double *pdblValue);
10837   void __RPC_STUB IAMExtDevice_GetCapability_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10838   HRESULT WINAPI IAMExtDevice_get_ExternalDeviceID_Proxy(IAMExtDevice *This,LPOLESTR *ppszData);
10839   void __RPC_STUB IAMExtDevice_get_ExternalDeviceID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10840   HRESULT WINAPI IAMExtDevice_get_ExternalDeviceVersion_Proxy(IAMExtDevice *This,LPOLESTR *ppszData);
10841   void __RPC_STUB IAMExtDevice_get_ExternalDeviceVersion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10842   HRESULT WINAPI IAMExtDevice_put_DevicePower_Proxy(IAMExtDevice *This,LONG PowerMode);
10843   void __RPC_STUB IAMExtDevice_put_DevicePower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10844   HRESULT WINAPI IAMExtDevice_get_DevicePower_Proxy(IAMExtDevice *This,LONG *pPowerMode);
10845   void __RPC_STUB IAMExtDevice_get_DevicePower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10846   HRESULT WINAPI IAMExtDevice_Calibrate_Proxy(IAMExtDevice *This,HEVENT hEvent,LONG Mode,LONG *pStatus);
10847   void __RPC_STUB IAMExtDevice_Calibrate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10848   HRESULT WINAPI IAMExtDevice_put_DevicePort_Proxy(IAMExtDevice *This,LONG DevicePort);
10849   void __RPC_STUB IAMExtDevice_put_DevicePort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10850   HRESULT WINAPI IAMExtDevice_get_DevicePort_Proxy(IAMExtDevice *This,LONG *pDevicePort);
10851   void __RPC_STUB IAMExtDevice_get_DevicePort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10852 #endif
10853 
10854   typedef IAMExtDevice *PEXTDEVICE;
10855 
10856   extern RPC_IF_HANDLE __MIDL_itf_strmif_0339_v0_0_c_ifspec;
10857   extern RPC_IF_HANDLE __MIDL_itf_strmif_0339_v0_0_s_ifspec;
10858 #ifndef __IAMExtTransport_INTERFACE_DEFINED__
10859 #define __IAMExtTransport_INTERFACE_DEFINED__
10860   EXTERN_C const IID IID_IAMExtTransport;
10861 #if defined(__cplusplus) && !defined(CINTERFACE)
10862   struct IAMExtTransport : public IUnknown {
10863   public:
10864     virtual HRESULT WINAPI GetCapability(LONG Capability,LONG *pValue,double *pdblValue) = 0;
10865     virtual HRESULT WINAPI put_MediaState(LONG State) = 0;
10866     virtual HRESULT WINAPI get_MediaState(LONG *pState) = 0;
10867     virtual HRESULT WINAPI put_LocalControl(LONG State) = 0;
10868     virtual HRESULT WINAPI get_LocalControl(LONG *pState) = 0;
10869     virtual HRESULT WINAPI GetStatus(LONG StatusItem,LONG *pValue) = 0;
10870     virtual HRESULT WINAPI GetTransportBasicParameters(LONG Param,LONG *pValue,LPOLESTR *ppszData) = 0;
10871     virtual HRESULT WINAPI SetTransportBasicParameters(LONG Param,LONG Value,LPCOLESTR pszData) = 0;
10872     virtual HRESULT WINAPI GetTransportVideoParameters(LONG Param,LONG *pValue) = 0;
10873     virtual HRESULT WINAPI SetTransportVideoParameters(LONG Param,LONG Value) = 0;
10874     virtual HRESULT WINAPI GetTransportAudioParameters(LONG Param,LONG *pValue) = 0;
10875     virtual HRESULT WINAPI SetTransportAudioParameters(LONG Param,LONG Value) = 0;
10876     virtual HRESULT WINAPI put_Mode(LONG Mode) = 0;
10877     virtual HRESULT WINAPI get_Mode(LONG *pMode) = 0;
10878     virtual HRESULT WINAPI put_Rate(double dblRate) = 0;
10879     virtual HRESULT WINAPI get_Rate(double *pdblRate) = 0;
10880     virtual HRESULT WINAPI GetChase(LONG *pEnabled,LONG *pOffset,HEVENT *phEvent) = 0;
10881     virtual HRESULT WINAPI SetChase(LONG Enable,LONG Offset,HEVENT hEvent) = 0;
10882     virtual HRESULT WINAPI GetBump(LONG *pSpeed,LONG *pDuration) = 0;
10883     virtual HRESULT WINAPI SetBump(LONG Speed,LONG Duration) = 0;
10884     virtual HRESULT WINAPI get_AntiClogControl(LONG *pEnabled) = 0;
10885     virtual HRESULT WINAPI put_AntiClogControl(LONG Enable) = 0;
10886     virtual HRESULT WINAPI GetEditPropertySet(LONG EditID,LONG *pState) = 0;
10887     virtual HRESULT WINAPI SetEditPropertySet(LONG *pEditID,LONG State) = 0;
10888     virtual HRESULT WINAPI GetEditProperty(LONG EditID,LONG Param,LONG *pValue) = 0;
10889     virtual HRESULT WINAPI SetEditProperty(LONG EditID,LONG Param,LONG Value) = 0;
10890     virtual HRESULT WINAPI get_EditStart(LONG *pValue) = 0;
10891     virtual HRESULT WINAPI put_EditStart(LONG Value) = 0;
10892   };
10893 #else
10894   typedef struct IAMExtTransportVtbl {
10895     BEGIN_INTERFACE
10896       HRESULT (WINAPI *QueryInterface)(IAMExtTransport *This,REFIID riid,void **ppvObject);
10897       ULONG (WINAPI *AddRef)(IAMExtTransport *This);
10898       ULONG (WINAPI *Release)(IAMExtTransport *This);
10899       HRESULT (WINAPI *GetCapability)(IAMExtTransport *This,LONG Capability,LONG *pValue,double *pdblValue);
10900       HRESULT (WINAPI *put_MediaState)(IAMExtTransport *This,LONG State);
10901       HRESULT (WINAPI *get_MediaState)(IAMExtTransport *This,LONG *pState);
10902       HRESULT (WINAPI *put_LocalControl)(IAMExtTransport *This,LONG State);
10903       HRESULT (WINAPI *get_LocalControl)(IAMExtTransport *This,LONG *pState);
10904       HRESULT (WINAPI *GetStatus)(IAMExtTransport *This,LONG StatusItem,LONG *pValue);
10905       HRESULT (WINAPI *GetTransportBasicParameters)(IAMExtTransport *This,LONG Param,LONG *pValue,LPOLESTR *ppszData);
10906       HRESULT (WINAPI *SetTransportBasicParameters)(IAMExtTransport *This,LONG Param,LONG Value,LPCOLESTR pszData);
10907       HRESULT (WINAPI *GetTransportVideoParameters)(IAMExtTransport *This,LONG Param,LONG *pValue);
10908       HRESULT (WINAPI *SetTransportVideoParameters)(IAMExtTransport *This,LONG Param,LONG Value);
10909       HRESULT (WINAPI *GetTransportAudioParameters)(IAMExtTransport *This,LONG Param,LONG *pValue);
10910       HRESULT (WINAPI *SetTransportAudioParameters)(IAMExtTransport *This,LONG Param,LONG Value);
10911       HRESULT (WINAPI *put_Mode)(IAMExtTransport *This,LONG Mode);
10912       HRESULT (WINAPI *get_Mode)(IAMExtTransport *This,LONG *pMode);
10913       HRESULT (WINAPI *put_Rate)(IAMExtTransport *This,double dblRate);
10914       HRESULT (WINAPI *get_Rate)(IAMExtTransport *This,double *pdblRate);
10915       HRESULT (WINAPI *GetChase)(IAMExtTransport *This,LONG *pEnabled,LONG *pOffset,HEVENT *phEvent);
10916       HRESULT (WINAPI *SetChase)(IAMExtTransport *This,LONG Enable,LONG Offset,HEVENT hEvent);
10917       HRESULT (WINAPI *GetBump)(IAMExtTransport *This,LONG *pSpeed,LONG *pDuration);
10918       HRESULT (WINAPI *SetBump)(IAMExtTransport *This,LONG Speed,LONG Duration);
10919       HRESULT (WINAPI *get_AntiClogControl)(IAMExtTransport *This,LONG *pEnabled);
10920       HRESULT (WINAPI *put_AntiClogControl)(IAMExtTransport *This,LONG Enable);
10921       HRESULT (WINAPI *GetEditPropertySet)(IAMExtTransport *This,LONG EditID,LONG *pState);
10922       HRESULT (WINAPI *SetEditPropertySet)(IAMExtTransport *This,LONG *pEditID,LONG State);
10923       HRESULT (WINAPI *GetEditProperty)(IAMExtTransport *This,LONG EditID,LONG Param,LONG *pValue);
10924       HRESULT (WINAPI *SetEditProperty)(IAMExtTransport *This,LONG EditID,LONG Param,LONG Value);
10925       HRESULT (WINAPI *get_EditStart)(IAMExtTransport *This,LONG *pValue);
10926       HRESULT (WINAPI *put_EditStart)(IAMExtTransport *This,LONG Value);
10927     END_INTERFACE
10928   } IAMExtTransportVtbl;
10929   struct IAMExtTransport {
10930     CONST_VTBL struct IAMExtTransportVtbl *lpVtbl;
10931   };
10932 #ifdef COBJMACROS
10933 #define IAMExtTransport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10934 #define IAMExtTransport_AddRef(This) (This)->lpVtbl->AddRef(This)
10935 #define IAMExtTransport_Release(This) (This)->lpVtbl->Release(This)
10936 #define IAMExtTransport_GetCapability(This,Capability,pValue,pdblValue) (This)->lpVtbl->GetCapability(This,Capability,pValue,pdblValue)
10937 #define IAMExtTransport_put_MediaState(This,State) (This)->lpVtbl->put_MediaState(This,State)
10938 #define IAMExtTransport_get_MediaState(This,pState) (This)->lpVtbl->get_MediaState(This,pState)
10939 #define IAMExtTransport_put_LocalControl(This,State) (This)->lpVtbl->put_LocalControl(This,State)
10940 #define IAMExtTransport_get_LocalControl(This,pState) (This)->lpVtbl->get_LocalControl(This,pState)
10941 #define IAMExtTransport_GetStatus(This,StatusItem,pValue) (This)->lpVtbl->GetStatus(This,StatusItem,pValue)
10942 #define IAMExtTransport_GetTransportBasicParameters(This,Param,pValue,ppszData) (This)->lpVtbl->GetTransportBasicParameters(This,Param,pValue,ppszData)
10943 #define IAMExtTransport_SetTransportBasicParameters(This,Param,Value,pszData) (This)->lpVtbl->SetTransportBasicParameters(This,Param,Value,pszData)
10944 #define IAMExtTransport_GetTransportVideoParameters(This,Param,pValue) (This)->lpVtbl->GetTransportVideoParameters(This,Param,pValue)
10945 #define IAMExtTransport_SetTransportVideoParameters(This,Param,Value) (This)->lpVtbl->SetTransportVideoParameters(This,Param,Value)
10946 #define IAMExtTransport_GetTransportAudioParameters(This,Param,pValue) (This)->lpVtbl->GetTransportAudioParameters(This,Param,pValue)
10947 #define IAMExtTransport_SetTransportAudioParameters(This,Param,Value) (This)->lpVtbl->SetTransportAudioParameters(This,Param,Value)
10948 #define IAMExtTransport_put_Mode(This,Mode) (This)->lpVtbl->put_Mode(This,Mode)
10949 #define IAMExtTransport_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
10950 #define IAMExtTransport_put_Rate(This,dblRate) (This)->lpVtbl->put_Rate(This,dblRate)
10951 #define IAMExtTransport_get_Rate(This,pdblRate) (This)->lpVtbl->get_Rate(This,pdblRate)
10952 #define IAMExtTransport_GetChase(This,pEnabled,pOffset,phEvent) (This)->lpVtbl->GetChase(This,pEnabled,pOffset,phEvent)
10953 #define IAMExtTransport_SetChase(This,Enable,Offset,hEvent) (This)->lpVtbl->SetChase(This,Enable,Offset,hEvent)
10954 #define IAMExtTransport_GetBump(This,pSpeed,pDuration) (This)->lpVtbl->GetBump(This,pSpeed,pDuration)
10955 #define IAMExtTransport_SetBump(This,Speed,Duration) (This)->lpVtbl->SetBump(This,Speed,Duration)
10956 #define IAMExtTransport_get_AntiClogControl(This,pEnabled) (This)->lpVtbl->get_AntiClogControl(This,pEnabled)
10957 #define IAMExtTransport_put_AntiClogControl(This,Enable) (This)->lpVtbl->put_AntiClogControl(This,Enable)
10958 #define IAMExtTransport_GetEditPropertySet(This,EditID,pState) (This)->lpVtbl->GetEditPropertySet(This,EditID,pState)
10959 #define IAMExtTransport_SetEditPropertySet(This,pEditID,State) (This)->lpVtbl->SetEditPropertySet(This,pEditID,State)
10960 #define IAMExtTransport_GetEditProperty(This,EditID,Param,pValue) (This)->lpVtbl->GetEditProperty(This,EditID,Param,pValue)
10961 #define IAMExtTransport_SetEditProperty(This,EditID,Param,Value) (This)->lpVtbl->SetEditProperty(This,EditID,Param,Value)
10962 #define IAMExtTransport_get_EditStart(This,pValue) (This)->lpVtbl->get_EditStart(This,pValue)
10963 #define IAMExtTransport_put_EditStart(This,Value) (This)->lpVtbl->put_EditStart(This,Value)
10964 #endif
10965 #endif
10966   HRESULT WINAPI IAMExtTransport_GetCapability_Proxy(IAMExtTransport *This,LONG Capability,LONG *pValue,double *pdblValue);
10967   void __RPC_STUB IAMExtTransport_GetCapability_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10968   HRESULT WINAPI IAMExtTransport_put_MediaState_Proxy(IAMExtTransport *This,LONG State);
10969   void __RPC_STUB IAMExtTransport_put_MediaState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10970   HRESULT WINAPI IAMExtTransport_get_MediaState_Proxy(IAMExtTransport *This,LONG *pState);
10971   void __RPC_STUB IAMExtTransport_get_MediaState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10972   HRESULT WINAPI IAMExtTransport_put_LocalControl_Proxy(IAMExtTransport *This,LONG State);
10973   void __RPC_STUB IAMExtTransport_put_LocalControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10974   HRESULT WINAPI IAMExtTransport_get_LocalControl_Proxy(IAMExtTransport *This,LONG *pState);
10975   void __RPC_STUB IAMExtTransport_get_LocalControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10976   HRESULT WINAPI IAMExtTransport_GetStatus_Proxy(IAMExtTransport *This,LONG StatusItem,LONG *pValue);
10977   void __RPC_STUB IAMExtTransport_GetStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10978   HRESULT WINAPI IAMExtTransport_GetTransportBasicParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue,LPOLESTR *ppszData);
10979   void __RPC_STUB IAMExtTransport_GetTransportBasicParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10980   HRESULT WINAPI IAMExtTransport_SetTransportBasicParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value,LPCOLESTR pszData);
10981   void __RPC_STUB IAMExtTransport_SetTransportBasicParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10982   HRESULT WINAPI IAMExtTransport_GetTransportVideoParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue);
10983   void __RPC_STUB IAMExtTransport_GetTransportVideoParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10984   HRESULT WINAPI IAMExtTransport_SetTransportVideoParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value);
10985   void __RPC_STUB IAMExtTransport_SetTransportVideoParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10986   HRESULT WINAPI IAMExtTransport_GetTransportAudioParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue);
10987   void __RPC_STUB IAMExtTransport_GetTransportAudioParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10988   HRESULT WINAPI IAMExtTransport_SetTransportAudioParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value);
10989   void __RPC_STUB IAMExtTransport_SetTransportAudioParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10990   HRESULT WINAPI IAMExtTransport_put_Mode_Proxy(IAMExtTransport *This,LONG Mode);
10991   void __RPC_STUB IAMExtTransport_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10992   HRESULT WINAPI IAMExtTransport_get_Mode_Proxy(IAMExtTransport *This,LONG *pMode);
10993   void __RPC_STUB IAMExtTransport_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10994   HRESULT WINAPI IAMExtTransport_put_Rate_Proxy(IAMExtTransport *This,double dblRate);
10995   void __RPC_STUB IAMExtTransport_put_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10996   HRESULT WINAPI IAMExtTransport_get_Rate_Proxy(IAMExtTransport *This,double *pdblRate);
10997   void __RPC_STUB IAMExtTransport_get_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
10998   HRESULT WINAPI IAMExtTransport_GetChase_Proxy(IAMExtTransport *This,LONG *pEnabled,LONG *pOffset,HEVENT *phEvent);
10999   void __RPC_STUB IAMExtTransport_GetChase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11000   HRESULT WINAPI IAMExtTransport_SetChase_Proxy(IAMExtTransport *This,LONG Enable,LONG Offset,HEVENT hEvent);
11001   void __RPC_STUB IAMExtTransport_SetChase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11002   HRESULT WINAPI IAMExtTransport_GetBump_Proxy(IAMExtTransport *This,LONG *pSpeed,LONG *pDuration);
11003   void __RPC_STUB IAMExtTransport_GetBump_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11004   HRESULT WINAPI IAMExtTransport_SetBump_Proxy(IAMExtTransport *This,LONG Speed,LONG Duration);
11005   void __RPC_STUB IAMExtTransport_SetBump_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11006   HRESULT WINAPI IAMExtTransport_get_AntiClogControl_Proxy(IAMExtTransport *This,LONG *pEnabled);
11007   void __RPC_STUB IAMExtTransport_get_AntiClogControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11008   HRESULT WINAPI IAMExtTransport_put_AntiClogControl_Proxy(IAMExtTransport *This,LONG Enable);
11009   void __RPC_STUB IAMExtTransport_put_AntiClogControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11010   HRESULT WINAPI IAMExtTransport_GetEditPropertySet_Proxy(IAMExtTransport *This,LONG EditID,LONG *pState);
11011   void __RPC_STUB IAMExtTransport_GetEditPropertySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11012   HRESULT WINAPI IAMExtTransport_SetEditPropertySet_Proxy(IAMExtTransport *This,LONG *pEditID,LONG State);
11013   void __RPC_STUB IAMExtTransport_SetEditPropertySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11014   HRESULT WINAPI IAMExtTransport_GetEditProperty_Proxy(IAMExtTransport *This,LONG EditID,LONG Param,LONG *pValue);
11015   void __RPC_STUB IAMExtTransport_GetEditProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11016   HRESULT WINAPI IAMExtTransport_SetEditProperty_Proxy(IAMExtTransport *This,LONG EditID,LONG Param,LONG Value);
11017   void __RPC_STUB IAMExtTransport_SetEditProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11018   HRESULT WINAPI IAMExtTransport_get_EditStart_Proxy(IAMExtTransport *This,LONG *pValue);
11019   void __RPC_STUB IAMExtTransport_get_EditStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11020   HRESULT WINAPI IAMExtTransport_put_EditStart_Proxy(IAMExtTransport *This,LONG Value);
11021   void __RPC_STUB IAMExtTransport_put_EditStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11022 #endif
11023 
11024   typedef IAMExtTransport *PIAMEXTTRANSPORT;
11025 
11026 #ifndef TIMECODE_DEFINED
11027 #define TIMECODE_DEFINED
11028   typedef union _timecode {
11029     __C89_NAMELESS struct {
11030       WORD wFrameRate;
11031       WORD wFrameFract;
11032       DWORD dwFrames;
11033     };
11034     DWORDLONG qw;
11035   } TIMECODE;
11036 #endif
11037 
11038   typedef TIMECODE *PTIMECODE;
11039 
11040   typedef struct tagTIMECODE_SAMPLE {
11041     LONGLONG qwTick;
11042     TIMECODE timecode;
11043     DWORD dwUser;
11044     DWORD dwFlags;
11045   } TIMECODE_SAMPLE;
11046 
11047   typedef TIMECODE_SAMPLE *PTIMECODE_SAMPLE;
11048 
11049   extern RPC_IF_HANDLE __MIDL_itf_strmif_0340_v0_0_c_ifspec;
11050   extern RPC_IF_HANDLE __MIDL_itf_strmif_0340_v0_0_s_ifspec;
11051 #ifndef __IAMTimecodeReader_INTERFACE_DEFINED__
11052 #define __IAMTimecodeReader_INTERFACE_DEFINED__
11053   EXTERN_C const IID IID_IAMTimecodeReader;
11054 #if defined(__cplusplus) && !defined(CINTERFACE)
11055   struct IAMTimecodeReader : public IUnknown {
11056   public:
11057     virtual HRESULT WINAPI GetTCRMode(LONG Param,LONG *pValue) = 0;
11058     virtual HRESULT WINAPI SetTCRMode(LONG Param,LONG Value) = 0;
11059     virtual HRESULT WINAPI put_VITCLine(LONG Line) = 0;
11060     virtual HRESULT WINAPI get_VITCLine(LONG *pLine) = 0;
11061     virtual HRESULT WINAPI GetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
11062   };
11063 #else
11064   typedef struct IAMTimecodeReaderVtbl {
11065     BEGIN_INTERFACE
11066       HRESULT (WINAPI *QueryInterface)(IAMTimecodeReader *This,REFIID riid,void **ppvObject);
11067       ULONG (WINAPI *AddRef)(IAMTimecodeReader *This);
11068       ULONG (WINAPI *Release)(IAMTimecodeReader *This);
11069       HRESULT (WINAPI *GetTCRMode)(IAMTimecodeReader *This,LONG Param,LONG *pValue);
11070       HRESULT (WINAPI *SetTCRMode)(IAMTimecodeReader *This,LONG Param,LONG Value);
11071       HRESULT (WINAPI *put_VITCLine)(IAMTimecodeReader *This,LONG Line);
11072       HRESULT (WINAPI *get_VITCLine)(IAMTimecodeReader *This,LONG *pLine);
11073       HRESULT (WINAPI *GetTimecode)(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
11074     END_INTERFACE
11075   } IAMTimecodeReaderVtbl;
11076   struct IAMTimecodeReader {
11077     CONST_VTBL struct IAMTimecodeReaderVtbl *lpVtbl;
11078   };
11079 #ifdef COBJMACROS
11080 #define IAMTimecodeReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11081 #define IAMTimecodeReader_AddRef(This) (This)->lpVtbl->AddRef(This)
11082 #define IAMTimecodeReader_Release(This) (This)->lpVtbl->Release(This)
11083 #define IAMTimecodeReader_GetTCRMode(This,Param,pValue) (This)->lpVtbl->GetTCRMode(This,Param,pValue)
11084 #define IAMTimecodeReader_SetTCRMode(This,Param,Value) (This)->lpVtbl->SetTCRMode(This,Param,Value)
11085 #define IAMTimecodeReader_put_VITCLine(This,Line) (This)->lpVtbl->put_VITCLine(This,Line)
11086 #define IAMTimecodeReader_get_VITCLine(This,pLine) (This)->lpVtbl->get_VITCLine(This,pLine)
11087 #define IAMTimecodeReader_GetTimecode(This,pTimecodeSample) (This)->lpVtbl->GetTimecode(This,pTimecodeSample)
11088 #endif
11089 #endif
11090   HRESULT WINAPI IAMTimecodeReader_GetTCRMode_Proxy(IAMTimecodeReader *This,LONG Param,LONG *pValue);
11091   void __RPC_STUB IAMTimecodeReader_GetTCRMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11092   HRESULT WINAPI IAMTimecodeReader_SetTCRMode_Proxy(IAMTimecodeReader *This,LONG Param,LONG Value);
11093   void __RPC_STUB IAMTimecodeReader_SetTCRMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11094   HRESULT WINAPI IAMTimecodeReader_put_VITCLine_Proxy(IAMTimecodeReader *This,LONG Line);
11095   void __RPC_STUB IAMTimecodeReader_put_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11096   HRESULT WINAPI IAMTimecodeReader_get_VITCLine_Proxy(IAMTimecodeReader *This,LONG *pLine);
11097   void __RPC_STUB IAMTimecodeReader_get_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11098   HRESULT WINAPI IAMTimecodeReader_GetTimecode_Proxy(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
11099   void __RPC_STUB IAMTimecodeReader_GetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11100 #endif
11101 
11102   typedef IAMTimecodeReader *PIAMTIMECODEREADER;
11103 
11104   extern RPC_IF_HANDLE __MIDL_itf_strmif_0341_v0_0_c_ifspec;
11105   extern RPC_IF_HANDLE __MIDL_itf_strmif_0341_v0_0_s_ifspec;
11106 #ifndef __IAMTimecodeGenerator_INTERFACE_DEFINED__
11107 #define __IAMTimecodeGenerator_INTERFACE_DEFINED__
11108   EXTERN_C const IID IID_IAMTimecodeGenerator;
11109 #if defined(__cplusplus) && !defined(CINTERFACE)
11110   struct IAMTimecodeGenerator : public IUnknown {
11111   public:
11112     virtual HRESULT WINAPI GetTCGMode(LONG Param,LONG *pValue) = 0;
11113     virtual HRESULT WINAPI SetTCGMode(LONG Param,LONG Value) = 0;
11114     virtual HRESULT WINAPI put_VITCLine(LONG Line) = 0;
11115     virtual HRESULT WINAPI get_VITCLine(LONG *pLine) = 0;
11116     virtual HRESULT WINAPI SetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
11117     virtual HRESULT WINAPI GetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
11118   };
11119 #else
11120   typedef struct IAMTimecodeGeneratorVtbl {
11121     BEGIN_INTERFACE
11122       HRESULT (WINAPI *QueryInterface)(IAMTimecodeGenerator *This,REFIID riid,void **ppvObject);
11123       ULONG (WINAPI *AddRef)(IAMTimecodeGenerator *This);
11124       ULONG (WINAPI *Release)(IAMTimecodeGenerator *This);
11125       HRESULT (WINAPI *GetTCGMode)(IAMTimecodeGenerator *This,LONG Param,LONG *pValue);
11126       HRESULT (WINAPI *SetTCGMode)(IAMTimecodeGenerator *This,LONG Param,LONG Value);
11127       HRESULT (WINAPI *put_VITCLine)(IAMTimecodeGenerator *This,LONG Line);
11128       HRESULT (WINAPI *get_VITCLine)(IAMTimecodeGenerator *This,LONG *pLine);
11129       HRESULT (WINAPI *SetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
11130       HRESULT (WINAPI *GetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
11131     END_INTERFACE
11132   } IAMTimecodeGeneratorVtbl;
11133   struct IAMTimecodeGenerator {
11134     CONST_VTBL struct IAMTimecodeGeneratorVtbl *lpVtbl;
11135   };
11136 #ifdef COBJMACROS
11137 #define IAMTimecodeGenerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11138 #define IAMTimecodeGenerator_AddRef(This) (This)->lpVtbl->AddRef(This)
11139 #define IAMTimecodeGenerator_Release(This) (This)->lpVtbl->Release(This)
11140 #define IAMTimecodeGenerator_GetTCGMode(This,Param,pValue) (This)->lpVtbl->GetTCGMode(This,Param,pValue)
11141 #define IAMTimecodeGenerator_SetTCGMode(This,Param,Value) (This)->lpVtbl->SetTCGMode(This,Param,Value)
11142 #define IAMTimecodeGenerator_put_VITCLine(This,Line) (This)->lpVtbl->put_VITCLine(This,Line)
11143 #define IAMTimecodeGenerator_get_VITCLine(This,pLine) (This)->lpVtbl->get_VITCLine(This,pLine)
11144 #define IAMTimecodeGenerator_SetTimecode(This,pTimecodeSample) (This)->lpVtbl->SetTimecode(This,pTimecodeSample)
11145 #define IAMTimecodeGenerator_GetTimecode(This,pTimecodeSample) (This)->lpVtbl->GetTimecode(This,pTimecodeSample)
11146 #endif
11147 #endif
11148   HRESULT WINAPI IAMTimecodeGenerator_GetTCGMode_Proxy(IAMTimecodeGenerator *This,LONG Param,LONG *pValue);
11149   void __RPC_STUB IAMTimecodeGenerator_GetTCGMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11150   HRESULT WINAPI IAMTimecodeGenerator_SetTCGMode_Proxy(IAMTimecodeGenerator *This,LONG Param,LONG Value);
11151   void __RPC_STUB IAMTimecodeGenerator_SetTCGMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11152   HRESULT WINAPI IAMTimecodeGenerator_put_VITCLine_Proxy(IAMTimecodeGenerator *This,LONG Line);
11153   void __RPC_STUB IAMTimecodeGenerator_put_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11154   HRESULT WINAPI IAMTimecodeGenerator_get_VITCLine_Proxy(IAMTimecodeGenerator *This,LONG *pLine);
11155   void __RPC_STUB IAMTimecodeGenerator_get_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11156   HRESULT WINAPI IAMTimecodeGenerator_SetTimecode_Proxy(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
11157   void __RPC_STUB IAMTimecodeGenerator_SetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11158   HRESULT WINAPI IAMTimecodeGenerator_GetTimecode_Proxy(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
11159   void __RPC_STUB IAMTimecodeGenerator_GetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11160 #endif
11161 
11162   typedef IAMTimecodeGenerator *PIAMTIMECODEGENERATOR;
11163 
11164   extern RPC_IF_HANDLE __MIDL_itf_strmif_0342_v0_0_c_ifspec;
11165   extern RPC_IF_HANDLE __MIDL_itf_strmif_0342_v0_0_s_ifspec;
11166 #ifndef __IAMTimecodeDisplay_INTERFACE_DEFINED__
11167 #define __IAMTimecodeDisplay_INTERFACE_DEFINED__
11168   EXTERN_C const IID IID_IAMTimecodeDisplay;
11169 #if defined(__cplusplus) && !defined(CINTERFACE)
11170   struct IAMTimecodeDisplay : public IUnknown {
11171   public:
11172     virtual HRESULT WINAPI GetTCDisplayEnable(LONG *pState) = 0;
11173     virtual HRESULT WINAPI SetTCDisplayEnable(LONG State) = 0;
11174     virtual HRESULT WINAPI GetTCDisplay(LONG Param,LONG *pValue) = 0;
11175     virtual HRESULT WINAPI SetTCDisplay(LONG Param,LONG Value) = 0;
11176   };
11177 #else
11178   typedef struct IAMTimecodeDisplayVtbl {
11179     BEGIN_INTERFACE
11180       HRESULT (WINAPI *QueryInterface)(IAMTimecodeDisplay *This,REFIID riid,void **ppvObject);
11181       ULONG (WINAPI *AddRef)(IAMTimecodeDisplay *This);
11182       ULONG (WINAPI *Release)(IAMTimecodeDisplay *This);
11183       HRESULT (WINAPI *GetTCDisplayEnable)(IAMTimecodeDisplay *This,LONG *pState);
11184       HRESULT (WINAPI *SetTCDisplayEnable)(IAMTimecodeDisplay *This,LONG State);
11185       HRESULT (WINAPI *GetTCDisplay)(IAMTimecodeDisplay *This,LONG Param,LONG *pValue);
11186       HRESULT (WINAPI *SetTCDisplay)(IAMTimecodeDisplay *This,LONG Param,LONG Value);
11187     END_INTERFACE
11188   } IAMTimecodeDisplayVtbl;
11189   struct IAMTimecodeDisplay {
11190     CONST_VTBL struct IAMTimecodeDisplayVtbl *lpVtbl;
11191   };
11192 #ifdef COBJMACROS
11193 #define IAMTimecodeDisplay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11194 #define IAMTimecodeDisplay_AddRef(This) (This)->lpVtbl->AddRef(This)
11195 #define IAMTimecodeDisplay_Release(This) (This)->lpVtbl->Release(This)
11196 #define IAMTimecodeDisplay_GetTCDisplayEnable(This,pState) (This)->lpVtbl->GetTCDisplayEnable(This,pState)
11197 #define IAMTimecodeDisplay_SetTCDisplayEnable(This,State) (This)->lpVtbl->SetTCDisplayEnable(This,State)
11198 #define IAMTimecodeDisplay_GetTCDisplay(This,Param,pValue) (This)->lpVtbl->GetTCDisplay(This,Param,pValue)
11199 #define IAMTimecodeDisplay_SetTCDisplay(This,Param,Value) (This)->lpVtbl->SetTCDisplay(This,Param,Value)
11200 #endif
11201 #endif
11202   HRESULT WINAPI IAMTimecodeDisplay_GetTCDisplayEnable_Proxy(IAMTimecodeDisplay *This,LONG *pState);
11203   void __RPC_STUB IAMTimecodeDisplay_GetTCDisplayEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11204   HRESULT WINAPI IAMTimecodeDisplay_SetTCDisplayEnable_Proxy(IAMTimecodeDisplay *This,LONG State);
11205   void __RPC_STUB IAMTimecodeDisplay_SetTCDisplayEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11206   HRESULT WINAPI IAMTimecodeDisplay_GetTCDisplay_Proxy(IAMTimecodeDisplay *This,LONG Param,LONG *pValue);
11207   void __RPC_STUB IAMTimecodeDisplay_GetTCDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11208   HRESULT WINAPI IAMTimecodeDisplay_SetTCDisplay_Proxy(IAMTimecodeDisplay *This,LONG Param,LONG Value);
11209   void __RPC_STUB IAMTimecodeDisplay_SetTCDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11210 #endif
11211 
11212   typedef IAMTimecodeDisplay *PIAMTIMECODEDISPLAY;
11213 
11214   extern RPC_IF_HANDLE __MIDL_itf_strmif_0343_v0_0_c_ifspec;
11215   extern RPC_IF_HANDLE __MIDL_itf_strmif_0343_v0_0_s_ifspec;
11216 #ifndef __IAMDevMemoryAllocator_INTERFACE_DEFINED__
11217 #define __IAMDevMemoryAllocator_INTERFACE_DEFINED__
11218   EXTERN_C const IID IID_IAMDevMemoryAllocator;
11219 #if defined(__cplusplus) && !defined(CINTERFACE)
11220   struct IAMDevMemoryAllocator : public IUnknown {
11221   public:
11222     virtual HRESULT WINAPI GetInfo(DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk) = 0;
11223     virtual HRESULT WINAPI CheckMemory(const BYTE *pBuffer) = 0;
11224     virtual HRESULT WINAPI Alloc(BYTE **ppBuffer,DWORD *pdwcbBuffer) = 0;
11225     virtual HRESULT WINAPI Free(BYTE *pBuffer) = 0;
11226     virtual HRESULT WINAPI GetDevMemoryObject(IUnknown **ppUnkInnner,IUnknown *pUnkOuter) = 0;
11227   };
11228 #else
11229   typedef struct IAMDevMemoryAllocatorVtbl {
11230     BEGIN_INTERFACE
11231       HRESULT (WINAPI *QueryInterface)(IAMDevMemoryAllocator *This,REFIID riid,void **ppvObject);
11232       ULONG (WINAPI *AddRef)(IAMDevMemoryAllocator *This);
11233       ULONG (WINAPI *Release)(IAMDevMemoryAllocator *This);
11234       HRESULT (WINAPI *GetInfo)(IAMDevMemoryAllocator *This,DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk);
11235       HRESULT (WINAPI *CheckMemory)(IAMDevMemoryAllocator *This,const BYTE *pBuffer);
11236       HRESULT (WINAPI *Alloc)(IAMDevMemoryAllocator *This,BYTE **ppBuffer,DWORD *pdwcbBuffer);
11237       HRESULT (WINAPI *Free)(IAMDevMemoryAllocator *This,BYTE *pBuffer);
11238       HRESULT (WINAPI *GetDevMemoryObject)(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
11239     END_INTERFACE
11240   } IAMDevMemoryAllocatorVtbl;
11241   struct IAMDevMemoryAllocator {
11242     CONST_VTBL struct IAMDevMemoryAllocatorVtbl *lpVtbl;
11243   };
11244 #ifdef COBJMACROS
11245 #define IAMDevMemoryAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11246 #define IAMDevMemoryAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
11247 #define IAMDevMemoryAllocator_Release(This) (This)->lpVtbl->Release(This)
11248 #define IAMDevMemoryAllocator_GetInfo(This,pdwcbTotalFree,pdwcbLargestFree,pdwcbTotalMemory,pdwcbMinimumChunk) (This)->lpVtbl->GetInfo(This,pdwcbTotalFree,pdwcbLargestFree,pdwcbTotalMemory,pdwcbMinimumChunk)
11249 #define IAMDevMemoryAllocator_CheckMemory(This,pBuffer) (This)->lpVtbl->CheckMemory(This,pBuffer)
11250 #define IAMDevMemoryAllocator_Alloc(This,ppBuffer,pdwcbBuffer) (This)->lpVtbl->Alloc(This,ppBuffer,pdwcbBuffer)
11251 #define IAMDevMemoryAllocator_Free(This,pBuffer) (This)->lpVtbl->Free(This,pBuffer)
11252 #define IAMDevMemoryAllocator_GetDevMemoryObject(This,ppUnkInnner,pUnkOuter) (This)->lpVtbl->GetDevMemoryObject(This,ppUnkInnner,pUnkOuter)
11253 #endif
11254 #endif
11255   HRESULT WINAPI IAMDevMemoryAllocator_GetInfo_Proxy(IAMDevMemoryAllocator *This,DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk);
11256   void __RPC_STUB IAMDevMemoryAllocator_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11257   HRESULT WINAPI IAMDevMemoryAllocator_CheckMemory_Proxy(IAMDevMemoryAllocator *This,const BYTE *pBuffer);
11258   void __RPC_STUB IAMDevMemoryAllocator_CheckMemory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11259   HRESULT WINAPI IAMDevMemoryAllocator_Alloc_Proxy(IAMDevMemoryAllocator *This,BYTE **ppBuffer,DWORD *pdwcbBuffer);
11260   void __RPC_STUB IAMDevMemoryAllocator_Alloc_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11261   HRESULT WINAPI IAMDevMemoryAllocator_Free_Proxy(IAMDevMemoryAllocator *This,BYTE *pBuffer);
11262   void __RPC_STUB IAMDevMemoryAllocator_Free_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11263   HRESULT WINAPI IAMDevMemoryAllocator_GetDevMemoryObject_Proxy(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
11264   void __RPC_STUB IAMDevMemoryAllocator_GetDevMemoryObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11265 #endif
11266 
11267   typedef IAMDevMemoryAllocator *PAMDEVMEMORYALLOCATOR;
11268 
11269   extern RPC_IF_HANDLE __MIDL_itf_strmif_0344_v0_0_c_ifspec;
11270   extern RPC_IF_HANDLE __MIDL_itf_strmif_0344_v0_0_s_ifspec;
11271 #ifndef __IAMDevMemoryControl_INTERFACE_DEFINED__
11272 #define __IAMDevMemoryControl_INTERFACE_DEFINED__
11273   EXTERN_C const IID IID_IAMDevMemoryControl;
11274 #if defined(__cplusplus) && !defined(CINTERFACE)
11275   struct IAMDevMemoryControl : public IUnknown {
11276   public:
11277     virtual HRESULT WINAPI QueryWriteSync(void) = 0;
11278     virtual HRESULT WINAPI WriteSync(void) = 0;
11279     virtual HRESULT WINAPI GetDevId(DWORD *pdwDevId) = 0;
11280   };
11281 #else
11282   typedef struct IAMDevMemoryControlVtbl {
11283     BEGIN_INTERFACE
11284       HRESULT (WINAPI *QueryInterface)(IAMDevMemoryControl *This,REFIID riid,void **ppvObject);
11285       ULONG (WINAPI *AddRef)(IAMDevMemoryControl *This);
11286       ULONG (WINAPI *Release)(IAMDevMemoryControl *This);
11287       HRESULT (WINAPI *QueryWriteSync)(IAMDevMemoryControl *This);
11288       HRESULT (WINAPI *WriteSync)(IAMDevMemoryControl *This);
11289       HRESULT (WINAPI *GetDevId)(IAMDevMemoryControl *This,DWORD *pdwDevId);
11290     END_INTERFACE
11291   } IAMDevMemoryControlVtbl;
11292   struct IAMDevMemoryControl {
11293     CONST_VTBL struct IAMDevMemoryControlVtbl *lpVtbl;
11294   };
11295 #ifdef COBJMACROS
11296 #define IAMDevMemoryControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11297 #define IAMDevMemoryControl_AddRef(This) (This)->lpVtbl->AddRef(This)
11298 #define IAMDevMemoryControl_Release(This) (This)->lpVtbl->Release(This)
11299 #define IAMDevMemoryControl_QueryWriteSync(This) (This)->lpVtbl->QueryWriteSync(This)
11300 #define IAMDevMemoryControl_WriteSync(This) (This)->lpVtbl->WriteSync(This)
11301 #define IAMDevMemoryControl_GetDevId(This,pdwDevId) (This)->lpVtbl->GetDevId(This,pdwDevId)
11302 #endif
11303 #endif
11304   HRESULT WINAPI IAMDevMemoryControl_QueryWriteSync_Proxy(IAMDevMemoryControl *This);
11305   void __RPC_STUB IAMDevMemoryControl_QueryWriteSync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11306   HRESULT WINAPI IAMDevMemoryControl_WriteSync_Proxy(IAMDevMemoryControl *This);
11307   void __RPC_STUB IAMDevMemoryControl_WriteSync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11308   HRESULT WINAPI IAMDevMemoryControl_GetDevId_Proxy(IAMDevMemoryControl *This,DWORD *pdwDevId);
11309   void __RPC_STUB IAMDevMemoryControl_GetDevId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11310 #endif
11311 
11312   typedef IAMDevMemoryControl *PAMDEVMEMORYCONTROL;
11313 
11314   enum _AMSTREAMSELECTINFOFLAGS {
11315     AMSTREAMSELECTINFO_ENABLED = 0x1,AMSTREAMSELECTINFO_EXCLUSIVE = 0x2
11316   };
11317 
11318   enum _AMSTREAMSELECTENABLEFLAGS {
11319     AMSTREAMSELECTENABLE_ENABLE = 0x1,AMSTREAMSELECTENABLE_ENABLEALL = 0x2
11320   };
11321 
11322   extern RPC_IF_HANDLE __MIDL_itf_strmif_0345_v0_0_c_ifspec;
11323   extern RPC_IF_HANDLE __MIDL_itf_strmif_0345_v0_0_s_ifspec;
11324 #ifndef __IAMStreamSelect_INTERFACE_DEFINED__
11325 #define __IAMStreamSelect_INTERFACE_DEFINED__
11326   EXTERN_C const IID IID_IAMStreamSelect;
11327 #if defined(__cplusplus) && !defined(CINTERFACE)
11328   struct IAMStreamSelect : public IUnknown {
11329   public:
11330     virtual HRESULT WINAPI Count(DWORD *pcStreams) = 0;
11331     virtual HRESULT WINAPI Info(LONG lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk) = 0;
11332     virtual HRESULT WINAPI Enable(LONG lIndex,DWORD dwFlags) = 0;
11333   };
11334 #else
11335   typedef struct IAMStreamSelectVtbl {
11336     BEGIN_INTERFACE
11337       HRESULT (WINAPI *QueryInterface)(IAMStreamSelect *This,REFIID riid,void **ppvObject);
11338       ULONG (WINAPI *AddRef)(IAMStreamSelect *This);
11339       ULONG (WINAPI *Release)(IAMStreamSelect *This);
11340       HRESULT (WINAPI *Count)(IAMStreamSelect *This,DWORD *pcStreams);
11341       HRESULT (WINAPI *Info)(IAMStreamSelect *This,LONG lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk);
11342       HRESULT (WINAPI *Enable)(IAMStreamSelect *This,LONG lIndex,DWORD dwFlags);
11343     END_INTERFACE
11344   } IAMStreamSelectVtbl;
11345   struct IAMStreamSelect {
11346     CONST_VTBL struct IAMStreamSelectVtbl *lpVtbl;
11347   };
11348 #ifdef COBJMACROS
11349 #define IAMStreamSelect_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11350 #define IAMStreamSelect_AddRef(This) (This)->lpVtbl->AddRef(This)
11351 #define IAMStreamSelect_Release(This) (This)->lpVtbl->Release(This)
11352 #define IAMStreamSelect_Count(This,pcStreams) (This)->lpVtbl->Count(This,pcStreams)
11353 #define IAMStreamSelect_Info(This,lIndex,ppmt,pdwFlags,plcid,pdwGroup,ppszName,ppObject,ppUnk) (This)->lpVtbl->Info(This,lIndex,ppmt,pdwFlags,plcid,pdwGroup,ppszName,ppObject,ppUnk)
11354 #define IAMStreamSelect_Enable(This,lIndex,dwFlags) (This)->lpVtbl->Enable(This,lIndex,dwFlags)
11355 #endif
11356 #endif
11357   HRESULT WINAPI IAMStreamSelect_Count_Proxy(IAMStreamSelect *This,DWORD *pcStreams);
11358   void __RPC_STUB IAMStreamSelect_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11359   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);
11360   void __RPC_STUB IAMStreamSelect_Info_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11361   HRESULT WINAPI IAMStreamSelect_Enable_Proxy(IAMStreamSelect *This,LONG lIndex,DWORD dwFlags);
11362   void __RPC_STUB IAMStreamSelect_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11363 #endif
11364 
11365   typedef IAMStreamSelect *PAMSTREAMSELECT;
11366 
11367   enum _AMRESCTL_RESERVEFLAGS {
11368     AMRESCTL_RESERVEFLAGS_RESERVE = 0,AMRESCTL_RESERVEFLAGS_UNRESERVE = 0x1
11369   };
11370 
11371   extern RPC_IF_HANDLE __MIDL_itf_strmif_0346_v0_0_c_ifspec;
11372   extern RPC_IF_HANDLE __MIDL_itf_strmif_0346_v0_0_s_ifspec;
11373 #ifndef __IAMResourceControl_INTERFACE_DEFINED__
11374 #define __IAMResourceControl_INTERFACE_DEFINED__
11375   EXTERN_C const IID IID_IAMResourceControl;
11376 #if defined(__cplusplus) && !defined(CINTERFACE)
11377   struct IAMResourceControl : public IUnknown {
11378   public:
11379     virtual HRESULT WINAPI Reserve(DWORD dwFlags,PVOID pvReserved) = 0;
11380   };
11381 #else
11382   typedef struct IAMResourceControlVtbl {
11383     BEGIN_INTERFACE
11384       HRESULT (WINAPI *QueryInterface)(IAMResourceControl *This,REFIID riid,void **ppvObject);
11385       ULONG (WINAPI *AddRef)(IAMResourceControl *This);
11386       ULONG (WINAPI *Release)(IAMResourceControl *This);
11387       HRESULT (WINAPI *Reserve)(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
11388     END_INTERFACE
11389   } IAMResourceControlVtbl;
11390   struct IAMResourceControl {
11391     CONST_VTBL struct IAMResourceControlVtbl *lpVtbl;
11392   };
11393 #ifdef COBJMACROS
11394 #define IAMResourceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11395 #define IAMResourceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
11396 #define IAMResourceControl_Release(This) (This)->lpVtbl->Release(This)
11397 #define IAMResourceControl_Reserve(This,dwFlags,pvReserved) (This)->lpVtbl->Reserve(This,dwFlags,pvReserved)
11398 #endif
11399 #endif
11400   HRESULT WINAPI IAMResourceControl_Reserve_Proxy(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
11401   void __RPC_STUB IAMResourceControl_Reserve_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11402 #endif
11403 
11404 #ifndef __IAMClockAdjust_INTERFACE_DEFINED__
11405 #define __IAMClockAdjust_INTERFACE_DEFINED__
11406   EXTERN_C const IID IID_IAMClockAdjust;
11407 #if defined(__cplusplus) && !defined(CINTERFACE)
11408   struct IAMClockAdjust : public IUnknown {
11409   public:
11410     virtual HRESULT WINAPI SetClockDelta(REFERENCE_TIME rtDelta) = 0;
11411   };
11412 #else
11413   typedef struct IAMClockAdjustVtbl {
11414     BEGIN_INTERFACE
11415       HRESULT (WINAPI *QueryInterface)(IAMClockAdjust *This,REFIID riid,void **ppvObject);
11416       ULONG (WINAPI *AddRef)(IAMClockAdjust *This);
11417       ULONG (WINAPI *Release)(IAMClockAdjust *This);
11418       HRESULT (WINAPI *SetClockDelta)(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
11419     END_INTERFACE
11420   } IAMClockAdjustVtbl;
11421   struct IAMClockAdjust {
11422     CONST_VTBL struct IAMClockAdjustVtbl *lpVtbl;
11423   };
11424 #ifdef COBJMACROS
11425 #define IAMClockAdjust_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11426 #define IAMClockAdjust_AddRef(This) (This)->lpVtbl->AddRef(This)
11427 #define IAMClockAdjust_Release(This) (This)->lpVtbl->Release(This)
11428 #define IAMClockAdjust_SetClockDelta(This,rtDelta) (This)->lpVtbl->SetClockDelta(This,rtDelta)
11429 #endif
11430 #endif
11431   HRESULT WINAPI IAMClockAdjust_SetClockDelta_Proxy(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
11432   void __RPC_STUB IAMClockAdjust_SetClockDelta_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11433 #endif
11434 
11435 #ifndef __IDrawVideoImage_INTERFACE_DEFINED__
11436 #define __IDrawVideoImage_INTERFACE_DEFINED__
11437   EXTERN_C const IID IID_IDrawVideoImage;
11438 #if defined(__cplusplus) && !defined(CINTERFACE)
11439   struct IDrawVideoImage : public IUnknown {
11440   public:
11441     virtual HRESULT WINAPI DrawVideoImageBegin(void) = 0;
11442     virtual HRESULT WINAPI DrawVideoImageEnd(void) = 0;
11443     virtual HRESULT WINAPI DrawVideoImageDraw(HDC hdc,LPRECT lprcSrc,LPRECT lprcDst) = 0;
11444   };
11445 #else
11446   typedef struct IDrawVideoImageVtbl {
11447     BEGIN_INTERFACE
11448       HRESULT (WINAPI *QueryInterface)(IDrawVideoImage *This,REFIID riid,void **ppvObject);
11449       ULONG (WINAPI *AddRef)(IDrawVideoImage *This);
11450       ULONG (WINAPI *Release)(IDrawVideoImage *This);
11451       HRESULT (WINAPI *DrawVideoImageBegin)(IDrawVideoImage *This);
11452       HRESULT (WINAPI *DrawVideoImageEnd)(IDrawVideoImage *This);
11453       HRESULT (WINAPI *DrawVideoImageDraw)(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
11454     END_INTERFACE
11455   } IDrawVideoImageVtbl;
11456   struct IDrawVideoImage {
11457     CONST_VTBL struct IDrawVideoImageVtbl *lpVtbl;
11458   };
11459 #ifdef COBJMACROS
11460 #define IDrawVideoImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11461 #define IDrawVideoImage_AddRef(This) (This)->lpVtbl->AddRef(This)
11462 #define IDrawVideoImage_Release(This) (This)->lpVtbl->Release(This)
11463 #define IDrawVideoImage_DrawVideoImageBegin(This) (This)->lpVtbl->DrawVideoImageBegin(This)
11464 #define IDrawVideoImage_DrawVideoImageEnd(This) (This)->lpVtbl->DrawVideoImageEnd(This)
11465 #define IDrawVideoImage_DrawVideoImageDraw(This,hdc,lprcSrc,lprcDst) (This)->lpVtbl->DrawVideoImageDraw(This,hdc,lprcSrc,lprcDst)
11466 #endif
11467 #endif
11468   HRESULT WINAPI IDrawVideoImage_DrawVideoImageBegin_Proxy(IDrawVideoImage *This);
11469   void __RPC_STUB IDrawVideoImage_DrawVideoImageBegin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11470   HRESULT WINAPI IDrawVideoImage_DrawVideoImageEnd_Proxy(IDrawVideoImage *This);
11471   void __RPC_STUB IDrawVideoImage_DrawVideoImageEnd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11472   HRESULT WINAPI IDrawVideoImage_DrawVideoImageDraw_Proxy(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
11473   void __RPC_STUB IDrawVideoImage_DrawVideoImageDraw_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11474 #endif
11475 
11476 #ifndef __IDecimateVideoImage_INTERFACE_DEFINED__
11477 #define __IDecimateVideoImage_INTERFACE_DEFINED__
11478   EXTERN_C const IID IID_IDecimateVideoImage;
11479 #if defined(__cplusplus) && !defined(CINTERFACE)
11480   struct IDecimateVideoImage : public IUnknown {
11481   public:
11482     virtual HRESULT WINAPI SetDecimationImageSize(LONG lWidth,LONG lHeight) = 0;
11483     virtual HRESULT WINAPI ResetDecimationImageSize(void) = 0;
11484   };
11485 #else
11486   typedef struct IDecimateVideoImageVtbl {
11487     BEGIN_INTERFACE
11488       HRESULT (WINAPI *QueryInterface)(IDecimateVideoImage *This,REFIID riid,void **ppvObject);
11489       ULONG (WINAPI *AddRef)(IDecimateVideoImage *This);
11490       ULONG (WINAPI *Release)(IDecimateVideoImage *This);
11491       HRESULT (WINAPI *SetDecimationImageSize)(IDecimateVideoImage *This,LONG lWidth,LONG lHeight);
11492       HRESULT (WINAPI *ResetDecimationImageSize)(IDecimateVideoImage *This);
11493     END_INTERFACE
11494   } IDecimateVideoImageVtbl;
11495   struct IDecimateVideoImage {
11496     CONST_VTBL struct IDecimateVideoImageVtbl *lpVtbl;
11497   };
11498 #ifdef COBJMACROS
11499 #define IDecimateVideoImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11500 #define IDecimateVideoImage_AddRef(This) (This)->lpVtbl->AddRef(This)
11501 #define IDecimateVideoImage_Release(This) (This)->lpVtbl->Release(This)
11502 #define IDecimateVideoImage_SetDecimationImageSize(This,lWidth,lHeight) (This)->lpVtbl->SetDecimationImageSize(This,lWidth,lHeight)
11503 #define IDecimateVideoImage_ResetDecimationImageSize(This) (This)->lpVtbl->ResetDecimationImageSize(This)
11504 #endif
11505 #endif
11506   HRESULT WINAPI IDecimateVideoImage_SetDecimationImageSize_Proxy(IDecimateVideoImage *This,LONG lWidth,LONG lHeight);
11507   void __RPC_STUB IDecimateVideoImage_SetDecimationImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11508   HRESULT WINAPI IDecimateVideoImage_ResetDecimationImageSize_Proxy(IDecimateVideoImage *This);
11509   void __RPC_STUB IDecimateVideoImage_ResetDecimationImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11510 #endif
11511 
11512   typedef enum _DECIMATION_USAGE {
11513     DECIMATION_LEGACY = 0,
11514     DECIMATION_USE_DECODER_ONLY,DECIMATION_USE_VIDEOPORT_ONLY,DECIMATION_USE_OVERLAY_ONLY,
11515     DECIMATION_DEFAULT
11516   } DECIMATION_USAGE;
11517 
11518   extern RPC_IF_HANDLE __MIDL_itf_strmif_0351_v0_0_c_ifspec;
11519   extern RPC_IF_HANDLE __MIDL_itf_strmif_0351_v0_0_s_ifspec;
11520 #ifndef __IAMVideoDecimationProperties_INTERFACE_DEFINED__
11521 #define __IAMVideoDecimationProperties_INTERFACE_DEFINED__
11522   EXTERN_C const IID IID_IAMVideoDecimationProperties;
11523 #if defined(__cplusplus) && !defined(CINTERFACE)
11524   struct IAMVideoDecimationProperties : public IUnknown {
11525   public:
11526     virtual HRESULT WINAPI QueryDecimationUsage(DECIMATION_USAGE *lpUsage) = 0;
11527     virtual HRESULT WINAPI SetDecimationUsage(DECIMATION_USAGE Usage) = 0;
11528   };
11529 #else
11530   typedef struct IAMVideoDecimationPropertiesVtbl {
11531     BEGIN_INTERFACE
11532       HRESULT (WINAPI *QueryInterface)(IAMVideoDecimationProperties *This,REFIID riid,void **ppvObject);
11533       ULONG (WINAPI *AddRef)(IAMVideoDecimationProperties *This);
11534       ULONG (WINAPI *Release)(IAMVideoDecimationProperties *This);
11535       HRESULT (WINAPI *QueryDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE *lpUsage);
11536       HRESULT (WINAPI *SetDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
11537     END_INTERFACE
11538   } IAMVideoDecimationPropertiesVtbl;
11539   struct IAMVideoDecimationProperties {
11540     CONST_VTBL struct IAMVideoDecimationPropertiesVtbl *lpVtbl;
11541   };
11542 #ifdef COBJMACROS
11543 #define IAMVideoDecimationProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11544 #define IAMVideoDecimationProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
11545 #define IAMVideoDecimationProperties_Release(This) (This)->lpVtbl->Release(This)
11546 #define IAMVideoDecimationProperties_QueryDecimationUsage(This,lpUsage) (This)->lpVtbl->QueryDecimationUsage(This,lpUsage)
11547 #define IAMVideoDecimationProperties_SetDecimationUsage(This,Usage) (This)->lpVtbl->SetDecimationUsage(This,Usage)
11548 #endif
11549 #endif
11550   HRESULT WINAPI IAMVideoDecimationProperties_QueryDecimationUsage_Proxy(IAMVideoDecimationProperties *This,DECIMATION_USAGE *lpUsage);
11551   void __RPC_STUB IAMVideoDecimationProperties_QueryDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11552   HRESULT WINAPI IAMVideoDecimationProperties_SetDecimationUsage_Proxy(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
11553   void __RPC_STUB IAMVideoDecimationProperties_SetDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11554 #endif
11555 
11556 #ifndef __IVideoFrameStep_INTERFACE_DEFINED__
11557 #define __IVideoFrameStep_INTERFACE_DEFINED__
11558   EXTERN_C const IID IID_IVideoFrameStep;
11559 #if defined(__cplusplus) && !defined(CINTERFACE)
11560   struct IVideoFrameStep : public IUnknown {
11561   public:
11562     virtual HRESULT WINAPI Step(DWORD dwFrames,IUnknown *pStepObject) = 0;
11563     virtual HRESULT WINAPI CanStep(LONG bMultiple,IUnknown *pStepObject) = 0;
11564     virtual HRESULT WINAPI CancelStep(void) = 0;
11565   };
11566 #else
11567   typedef struct IVideoFrameStepVtbl {
11568     BEGIN_INTERFACE
11569       HRESULT (WINAPI *QueryInterface)(IVideoFrameStep *This,REFIID riid,void **ppvObject);
11570       ULONG (WINAPI *AddRef)(IVideoFrameStep *This);
11571       ULONG (WINAPI *Release)(IVideoFrameStep *This);
11572       HRESULT (WINAPI *Step)(IVideoFrameStep *This,DWORD dwFrames,IUnknown *pStepObject);
11573       HRESULT (WINAPI *CanStep)(IVideoFrameStep *This,LONG bMultiple,IUnknown *pStepObject);
11574       HRESULT (WINAPI *CancelStep)(IVideoFrameStep *This);
11575     END_INTERFACE
11576   } IVideoFrameStepVtbl;
11577   struct IVideoFrameStep {
11578     CONST_VTBL struct IVideoFrameStepVtbl *lpVtbl;
11579   };
11580 #ifdef COBJMACROS
11581 #define IVideoFrameStep_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11582 #define IVideoFrameStep_AddRef(This) (This)->lpVtbl->AddRef(This)
11583 #define IVideoFrameStep_Release(This) (This)->lpVtbl->Release(This)
11584 #define IVideoFrameStep_Step(This,dwFrames,pStepObject) (This)->lpVtbl->Step(This,dwFrames,pStepObject)
11585 #define IVideoFrameStep_CanStep(This,bMultiple,pStepObject) (This)->lpVtbl->CanStep(This,bMultiple,pStepObject)
11586 #define IVideoFrameStep_CancelStep(This) (This)->lpVtbl->CancelStep(This)
11587 #endif
11588 #endif
11589   HRESULT WINAPI IVideoFrameStep_Step_Proxy(IVideoFrameStep *This,DWORD dwFrames,IUnknown *pStepObject);
11590   void __RPC_STUB IVideoFrameStep_Step_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11591   HRESULT WINAPI IVideoFrameStep_CanStep_Proxy(IVideoFrameStep *This,LONG bMultiple,IUnknown *pStepObject);
11592   void __RPC_STUB IVideoFrameStep_CanStep_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11593   HRESULT WINAPI IVideoFrameStep_CancelStep_Proxy(IVideoFrameStep *This);
11594   void __RPC_STUB IVideoFrameStep_CancelStep_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11595 #endif
11596 
11597   enum _AM_PUSHSOURCE_FLAGS {
11598     AM_PUSHSOURCECAPS_INTERNAL_RM = 0x1,AM_PUSHSOURCECAPS_NOT_LIVE = 0x2,AM_PUSHSOURCECAPS_PRIVATE_CLOCK = 0x4,
11599     AM_PUSHSOURCEREQS_USE_STREAM_CLOCK = 0x10000,AM_PUSHSOURCEREQS_USE_CLOCK_CHAIN = 0x20000
11600   };
11601 
11602   extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_c_ifspec;
11603   extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_s_ifspec;
11604 #ifndef __IAMLatency_INTERFACE_DEFINED__
11605 #define __IAMLatency_INTERFACE_DEFINED__
11606   EXTERN_C const IID IID_IAMLatency;
11607 #if defined(__cplusplus) && !defined(CINTERFACE)
11608   struct IAMLatency : public IUnknown {
11609   public:
11610     virtual HRESULT WINAPI GetLatency(REFERENCE_TIME *prtLatency) = 0;
11611   };
11612 #else
11613   typedef struct IAMLatencyVtbl {
11614     BEGIN_INTERFACE
11615       HRESULT (WINAPI *QueryInterface)(IAMLatency *This,REFIID riid,void **ppvObject);
11616       ULONG (WINAPI *AddRef)(IAMLatency *This);
11617       ULONG (WINAPI *Release)(IAMLatency *This);
11618       HRESULT (WINAPI *GetLatency)(IAMLatency *This,REFERENCE_TIME *prtLatency);
11619     END_INTERFACE
11620   } IAMLatencyVtbl;
11621   struct IAMLatency {
11622     CONST_VTBL struct IAMLatencyVtbl *lpVtbl;
11623   };
11624 #ifdef COBJMACROS
11625 #define IAMLatency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11626 #define IAMLatency_AddRef(This) (This)->lpVtbl->AddRef(This)
11627 #define IAMLatency_Release(This) (This)->lpVtbl->Release(This)
11628 #define IAMLatency_GetLatency(This,prtLatency) (This)->lpVtbl->GetLatency(This,prtLatency)
11629 #endif
11630 #endif
11631   HRESULT WINAPI IAMLatency_GetLatency_Proxy(IAMLatency *This,REFERENCE_TIME *prtLatency);
11632   void __RPC_STUB IAMLatency_GetLatency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11633 #endif
11634 
11635 #ifndef __IAMPushSource_INTERFACE_DEFINED__
11636 #define __IAMPushSource_INTERFACE_DEFINED__
11637   EXTERN_C const IID IID_IAMPushSource;
11638 #if defined(__cplusplus) && !defined(CINTERFACE)
11639   struct IAMPushSource : public IAMLatency {
11640   public:
11641     virtual HRESULT WINAPI GetPushSourceFlags(ULONG *pFlags) = 0;
11642     virtual HRESULT WINAPI SetPushSourceFlags(ULONG Flags) = 0;
11643     virtual HRESULT WINAPI SetStreamOffset(REFERENCE_TIME rtOffset) = 0;
11644     virtual HRESULT WINAPI GetStreamOffset(REFERENCE_TIME *prtOffset) = 0;
11645     virtual HRESULT WINAPI GetMaxStreamOffset(REFERENCE_TIME *prtMaxOffset) = 0;
11646     virtual HRESULT WINAPI SetMaxStreamOffset(REFERENCE_TIME rtMaxOffset) = 0;
11647   };
11648 #else
11649   typedef struct IAMPushSourceVtbl {
11650     BEGIN_INTERFACE
11651       HRESULT (WINAPI *QueryInterface)(IAMPushSource *This,REFIID riid,void **ppvObject);
11652       ULONG (WINAPI *AddRef)(IAMPushSource *This);
11653       ULONG (WINAPI *Release)(IAMPushSource *This);
11654       HRESULT (WINAPI *GetLatency)(IAMPushSource *This,REFERENCE_TIME *prtLatency);
11655       HRESULT (WINAPI *GetPushSourceFlags)(IAMPushSource *This,ULONG *pFlags);
11656       HRESULT (WINAPI *SetPushSourceFlags)(IAMPushSource *This,ULONG Flags);
11657       HRESULT (WINAPI *SetStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtOffset);
11658       HRESULT (WINAPI *GetStreamOffset)(IAMPushSource *This,REFERENCE_TIME *prtOffset);
11659       HRESULT (WINAPI *GetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME *prtMaxOffset);
11660       HRESULT (WINAPI *SetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
11661     END_INTERFACE
11662   } IAMPushSourceVtbl;
11663   struct IAMPushSource {
11664     CONST_VTBL struct IAMPushSourceVtbl *lpVtbl;
11665   };
11666 #ifdef COBJMACROS
11667 #define IAMPushSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11668 #define IAMPushSource_AddRef(This) (This)->lpVtbl->AddRef(This)
11669 #define IAMPushSource_Release(This) (This)->lpVtbl->Release(This)
11670 #define IAMPushSource_GetLatency(This,prtLatency) (This)->lpVtbl->GetLatency(This,prtLatency)
11671 #define IAMPushSource_GetPushSourceFlags(This,pFlags) (This)->lpVtbl->GetPushSourceFlags(This,pFlags)
11672 #define IAMPushSource_SetPushSourceFlags(This,Flags) (This)->lpVtbl->SetPushSourceFlags(This,Flags)
11673 #define IAMPushSource_SetStreamOffset(This,rtOffset) (This)->lpVtbl->SetStreamOffset(This,rtOffset)
11674 #define IAMPushSource_GetStreamOffset(This,prtOffset) (This)->lpVtbl->GetStreamOffset(This,prtOffset)
11675 #define IAMPushSource_GetMaxStreamOffset(This,prtMaxOffset) (This)->lpVtbl->GetMaxStreamOffset(This,prtMaxOffset)
11676 #define IAMPushSource_SetMaxStreamOffset(This,rtMaxOffset) (This)->lpVtbl->SetMaxStreamOffset(This,rtMaxOffset)
11677 #endif
11678 #endif
11679   HRESULT WINAPI IAMPushSource_GetPushSourceFlags_Proxy(IAMPushSource *This,ULONG *pFlags);
11680   void __RPC_STUB IAMPushSource_GetPushSourceFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11681   HRESULT WINAPI IAMPushSource_SetPushSourceFlags_Proxy(IAMPushSource *This,ULONG Flags);
11682   void __RPC_STUB IAMPushSource_SetPushSourceFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11683   HRESULT WINAPI IAMPushSource_SetStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME rtOffset);
11684   void __RPC_STUB IAMPushSource_SetStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11685   HRESULT WINAPI IAMPushSource_GetStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME *prtOffset);
11686   void __RPC_STUB IAMPushSource_GetStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11687   HRESULT WINAPI IAMPushSource_GetMaxStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME *prtMaxOffset);
11688   void __RPC_STUB IAMPushSource_GetMaxStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11689   HRESULT WINAPI IAMPushSource_SetMaxStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
11690   void __RPC_STUB IAMPushSource_SetMaxStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11691 #endif
11692 
11693 #ifndef __IAMDeviceRemoval_INTERFACE_DEFINED__
11694 #define __IAMDeviceRemoval_INTERFACE_DEFINED__
11695   EXTERN_C const IID IID_IAMDeviceRemoval;
11696 #if defined(__cplusplus) && !defined(CINTERFACE)
11697   struct IAMDeviceRemoval : public IUnknown {
11698   public:
11699     virtual HRESULT WINAPI DeviceInfo(CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink) = 0;
11700     virtual HRESULT WINAPI Reassociate(void) = 0;
11701     virtual HRESULT WINAPI Disassociate(void) = 0;
11702   };
11703 #else
11704   typedef struct IAMDeviceRemovalVtbl {
11705     BEGIN_INTERFACE
11706       HRESULT (WINAPI *QueryInterface)(IAMDeviceRemoval *This,REFIID riid,void **ppvObject);
11707       ULONG (WINAPI *AddRef)(IAMDeviceRemoval *This);
11708       ULONG (WINAPI *Release)(IAMDeviceRemoval *This);
11709       HRESULT (WINAPI *DeviceInfo)(IAMDeviceRemoval *This,CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink);
11710       HRESULT (WINAPI *Reassociate)(IAMDeviceRemoval *This);
11711       HRESULT (WINAPI *Disassociate)(IAMDeviceRemoval *This);
11712     END_INTERFACE
11713   } IAMDeviceRemovalVtbl;
11714   struct IAMDeviceRemoval {
11715     CONST_VTBL struct IAMDeviceRemovalVtbl *lpVtbl;
11716   };
11717 #ifdef COBJMACROS
11718 #define IAMDeviceRemoval_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11719 #define IAMDeviceRemoval_AddRef(This) (This)->lpVtbl->AddRef(This)
11720 #define IAMDeviceRemoval_Release(This) (This)->lpVtbl->Release(This)
11721 #define IAMDeviceRemoval_DeviceInfo(This,pclsidInterfaceClass,pwszSymbolicLink) (This)->lpVtbl->DeviceInfo(This,pclsidInterfaceClass,pwszSymbolicLink)
11722 #define IAMDeviceRemoval_Reassociate(This) (This)->lpVtbl->Reassociate(This)
11723 #define IAMDeviceRemoval_Disassociate(This) (This)->lpVtbl->Disassociate(This)
11724 #endif
11725 #endif
11726   HRESULT WINAPI IAMDeviceRemoval_DeviceInfo_Proxy(IAMDeviceRemoval *This,CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink);
11727   void __RPC_STUB IAMDeviceRemoval_DeviceInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11728   HRESULT WINAPI IAMDeviceRemoval_Reassociate_Proxy(IAMDeviceRemoval *This);
11729   void __RPC_STUB IAMDeviceRemoval_Reassociate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11730   HRESULT WINAPI IAMDeviceRemoval_Disassociate_Proxy(IAMDeviceRemoval *This);
11731   void __RPC_STUB IAMDeviceRemoval_Disassociate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11732 #endif
11733 
11734   typedef struct __MIDL___MIDL_itf_strmif_0355_0001 {
11735     DWORD dwDVAAuxSrc;
11736     DWORD dwDVAAuxCtl;
11737     DWORD dwDVAAuxSrc1;
11738     DWORD dwDVAAuxCtl1;
11739     DWORD dwDVVAuxSrc;
11740     DWORD dwDVVAuxCtl;
11741     DWORD dwDVReserved[2];
11742   } DVINFO;
11743 
11744   typedef struct __MIDL___MIDL_itf_strmif_0355_0001 *PDVINFO;
11745 
11746   enum _DVENCODERRESOLUTION {
11747     DVENCODERRESOLUTION_720x480 = 2012,DVENCODERRESOLUTION_360x240 = 2013,DVENCODERRESOLUTION_180x120 = 2014,DVENCODERRESOLUTION_88x60 = 2015
11748   };
11749 
11750   enum _DVENCODERVIDEOFORMAT {
11751     DVENCODERVIDEOFORMAT_NTSC = 2000,DVENCODERVIDEOFORMAT_PAL = 2001
11752   };
11753 
11754   enum _DVENCODERFORMAT {
11755     DVENCODERFORMAT_DVSD = 2007,DVENCODERFORMAT_DVHD = 2008,DVENCODERFORMAT_DVSL = 2009
11756   };
11757 
11758   extern RPC_IF_HANDLE __MIDL_itf_strmif_0355_v0_0_c_ifspec;
11759   extern RPC_IF_HANDLE __MIDL_itf_strmif_0355_v0_0_s_ifspec;
11760 #ifndef __IDVEnc_INTERFACE_DEFINED__
11761 #define __IDVEnc_INTERFACE_DEFINED__
11762   EXTERN_C const IID IID_IDVEnc;
11763 #if defined(__cplusplus) && !defined(CINTERFACE)
11764   struct IDVEnc : public IUnknown {
11765   public:
11766     virtual HRESULT WINAPI get_IFormatResolution(int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo) = 0;
11767     virtual HRESULT WINAPI put_IFormatResolution(int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo) = 0;
11768   };
11769 #else
11770   typedef struct IDVEncVtbl {
11771     BEGIN_INTERFACE
11772       HRESULT (WINAPI *QueryInterface)(IDVEnc *This,REFIID riid,void **ppvObject);
11773       ULONG (WINAPI *AddRef)(IDVEnc *This);
11774       ULONG (WINAPI *Release)(IDVEnc *This);
11775       HRESULT (WINAPI *get_IFormatResolution)(IDVEnc *This,int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
11776       HRESULT (WINAPI *put_IFormatResolution)(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
11777     END_INTERFACE
11778   } IDVEncVtbl;
11779   struct IDVEnc {
11780     CONST_VTBL struct IDVEncVtbl *lpVtbl;
11781   };
11782 #ifdef COBJMACROS
11783 #define IDVEnc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11784 #define IDVEnc_AddRef(This) (This)->lpVtbl->AddRef(This)
11785 #define IDVEnc_Release(This) (This)->lpVtbl->Release(This)
11786 #define IDVEnc_get_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo) (This)->lpVtbl->get_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo)
11787 #define IDVEnc_put_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo) (This)->lpVtbl->put_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo)
11788 #endif
11789 #endif
11790   HRESULT WINAPI IDVEnc_get_IFormatResolution_Proxy(IDVEnc *This,int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
11791   void __RPC_STUB IDVEnc_get_IFormatResolution_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11792   HRESULT WINAPI IDVEnc_put_IFormatResolution_Proxy(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
11793   void __RPC_STUB IDVEnc_put_IFormatResolution_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11794 #endif
11795 
11796   enum _DVDECODERRESOLUTION {
11797     DVDECODERRESOLUTION_720x480 = 1000,DVDECODERRESOLUTION_360x240 = 1001,DVDECODERRESOLUTION_180x120 = 1002,DVDECODERRESOLUTION_88x60 = 1003
11798   };
11799 
11800   enum _DVRESOLUTION {
11801     DVRESOLUTION_FULL = 1000,DVRESOLUTION_HALF = 1001,DVRESOLUTION_QUARTER = 1002,DVRESOLUTION_DC = 1003
11802   };
11803 
11804   extern RPC_IF_HANDLE __MIDL_itf_strmif_0356_v0_0_c_ifspec;
11805   extern RPC_IF_HANDLE __MIDL_itf_strmif_0356_v0_0_s_ifspec;
11806 #ifndef __IIPDVDec_INTERFACE_DEFINED__
11807 #define __IIPDVDec_INTERFACE_DEFINED__
11808   EXTERN_C const IID IID_IIPDVDec;
11809 #if defined(__cplusplus) && !defined(CINTERFACE)
11810   struct IIPDVDec : public IUnknown {
11811   public:
11812     virtual HRESULT WINAPI get_IPDisplay(int *displayPix) = 0;
11813     virtual HRESULT WINAPI put_IPDisplay(int displayPix) = 0;
11814   };
11815 #else
11816   typedef struct IIPDVDecVtbl {
11817     BEGIN_INTERFACE
11818       HRESULT (WINAPI *QueryInterface)(IIPDVDec *This,REFIID riid,void **ppvObject);
11819       ULONG (WINAPI *AddRef)(IIPDVDec *This);
11820       ULONG (WINAPI *Release)(IIPDVDec *This);
11821       HRESULT (WINAPI *get_IPDisplay)(IIPDVDec *This,int *displayPix);
11822       HRESULT (WINAPI *put_IPDisplay)(IIPDVDec *This,int displayPix);
11823     END_INTERFACE
11824   } IIPDVDecVtbl;
11825   struct IIPDVDec {
11826     CONST_VTBL struct IIPDVDecVtbl *lpVtbl;
11827   };
11828 #ifdef COBJMACROS
11829 #define IIPDVDec_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11830 #define IIPDVDec_AddRef(This) (This)->lpVtbl->AddRef(This)
11831 #define IIPDVDec_Release(This) (This)->lpVtbl->Release(This)
11832 #define IIPDVDec_get_IPDisplay(This,displayPix) (This)->lpVtbl->get_IPDisplay(This,displayPix)
11833 #define IIPDVDec_put_IPDisplay(This,displayPix) (This)->lpVtbl->put_IPDisplay(This,displayPix)
11834 #endif
11835 #endif
11836   HRESULT WINAPI IIPDVDec_get_IPDisplay_Proxy(IIPDVDec *This,int *displayPix);
11837   void __RPC_STUB IIPDVDec_get_IPDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11838   HRESULT WINAPI IIPDVDec_put_IPDisplay_Proxy(IIPDVDec *This,int displayPix);
11839   void __RPC_STUB IIPDVDec_put_IPDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11840 #endif
11841 
11842 #ifndef __IDVRGB219_INTERFACE_DEFINED__
11843 #define __IDVRGB219_INTERFACE_DEFINED__
11844   EXTERN_C const IID IID_IDVRGB219;
11845 #if defined(__cplusplus) && !defined(CINTERFACE)
11846   struct IDVRGB219 : public IUnknown {
11847   public:
11848     virtual HRESULT WINAPI SetRGB219(WINBOOL bState) = 0;
11849   };
11850 #else
11851   typedef struct IDVRGB219Vtbl {
11852     BEGIN_INTERFACE
11853       HRESULT (WINAPI *QueryInterface)(IDVRGB219 *This,REFIID riid,void **ppvObject);
11854       ULONG (WINAPI *AddRef)(IDVRGB219 *This);
11855       ULONG (WINAPI *Release)(IDVRGB219 *This);
11856       HRESULT (WINAPI *SetRGB219)(IDVRGB219 *This,WINBOOL bState);
11857     END_INTERFACE
11858   } IDVRGB219Vtbl;
11859   struct IDVRGB219 {
11860     CONST_VTBL struct IDVRGB219Vtbl *lpVtbl;
11861   };
11862 #ifdef COBJMACROS
11863 #define IDVRGB219_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11864 #define IDVRGB219_AddRef(This) (This)->lpVtbl->AddRef(This)
11865 #define IDVRGB219_Release(This) (This)->lpVtbl->Release(This)
11866 #define IDVRGB219_SetRGB219(This,bState) (This)->lpVtbl->SetRGB219(This,bState)
11867 #endif
11868 #endif
11869   HRESULT WINAPI IDVRGB219_SetRGB219_Proxy(IDVRGB219 *This,WINBOOL bState);
11870   void __RPC_STUB IDVRGB219_SetRGB219_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11871 #endif
11872 
11873 #ifndef __IDVSplitter_INTERFACE_DEFINED__
11874 #define __IDVSplitter_INTERFACE_DEFINED__
11875   EXTERN_C const IID IID_IDVSplitter;
11876 #if defined(__cplusplus) && !defined(CINTERFACE)
11877   struct IDVSplitter : public IUnknown {
11878   public:
11879     virtual HRESULT WINAPI DiscardAlternateVideoFrames(int nDiscard) = 0;
11880   };
11881 #else
11882   typedef struct IDVSplitterVtbl {
11883     BEGIN_INTERFACE
11884       HRESULT (WINAPI *QueryInterface)(IDVSplitter *This,REFIID riid,void **ppvObject);
11885       ULONG (WINAPI *AddRef)(IDVSplitter *This);
11886       ULONG (WINAPI *Release)(IDVSplitter *This);
11887       HRESULT (WINAPI *DiscardAlternateVideoFrames)(IDVSplitter *This,int nDiscard);
11888     END_INTERFACE
11889   } IDVSplitterVtbl;
11890   struct IDVSplitter {
11891     CONST_VTBL struct IDVSplitterVtbl *lpVtbl;
11892   };
11893 #ifdef COBJMACROS
11894 #define IDVSplitter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11895 #define IDVSplitter_AddRef(This) (This)->lpVtbl->AddRef(This)
11896 #define IDVSplitter_Release(This) (This)->lpVtbl->Release(This)
11897 #define IDVSplitter_DiscardAlternateVideoFrames(This,nDiscard) (This)->lpVtbl->DiscardAlternateVideoFrames(This,nDiscard)
11898 #endif
11899 #endif
11900   HRESULT WINAPI IDVSplitter_DiscardAlternateVideoFrames_Proxy(IDVSplitter *This,int nDiscard);
11901   void __RPC_STUB IDVSplitter_DiscardAlternateVideoFrames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11902 #endif
11903 
11904   enum _AM_AUDIO_RENDERER_STAT_PARAM {
11905     AM_AUDREND_STAT_PARAM_BREAK_COUNT = 1,
11906     AM_AUDREND_STAT_PARAM_SLAVE_MODE,AM_AUDREND_STAT_PARAM_SILENCE_DUR,
11907     AM_AUDREND_STAT_PARAM_LAST_BUFFER_DUR,AM_AUDREND_STAT_PARAM_DISCONTINUITIES,
11908     AM_AUDREND_STAT_PARAM_SLAVE_RATE,AM_AUDREND_STAT_PARAM_SLAVE_DROPWRITE_DUR,
11909     AM_AUDREND_STAT_PARAM_SLAVE_HIGHLOWERROR,AM_AUDREND_STAT_PARAM_SLAVE_LASTHIGHLOWERROR,
11910     AM_AUDREND_STAT_PARAM_SLAVE_ACCUMERROR,AM_AUDREND_STAT_PARAM_BUFFERFULLNESS,
11911     AM_AUDREND_STAT_PARAM_JITTER
11912   };
11913 
11914   extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_c_ifspec;
11915   extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_s_ifspec;
11916 #ifndef __IAMAudioRendererStats_INTERFACE_DEFINED__
11917 #define __IAMAudioRendererStats_INTERFACE_DEFINED__
11918   EXTERN_C const IID IID_IAMAudioRendererStats;
11919 #if defined(__cplusplus) && !defined(CINTERFACE)
11920   struct IAMAudioRendererStats : public IUnknown {
11921   public:
11922     virtual HRESULT WINAPI GetStatParam(DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2) = 0;
11923   };
11924 #else
11925   typedef struct IAMAudioRendererStatsVtbl {
11926     BEGIN_INTERFACE
11927       HRESULT (WINAPI *QueryInterface)(IAMAudioRendererStats *This,REFIID riid,void **ppvObject);
11928       ULONG (WINAPI *AddRef)(IAMAudioRendererStats *This);
11929       ULONG (WINAPI *Release)(IAMAudioRendererStats *This);
11930       HRESULT (WINAPI *GetStatParam)(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
11931     END_INTERFACE
11932   } IAMAudioRendererStatsVtbl;
11933   struct IAMAudioRendererStats {
11934     CONST_VTBL struct IAMAudioRendererStatsVtbl *lpVtbl;
11935   };
11936 #ifdef COBJMACROS
11937 #define IAMAudioRendererStats_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11938 #define IAMAudioRendererStats_AddRef(This) (This)->lpVtbl->AddRef(This)
11939 #define IAMAudioRendererStats_Release(This) (This)->lpVtbl->Release(This)
11940 #define IAMAudioRendererStats_GetStatParam(This,dwParam,pdwParam1,pdwParam2) (This)->lpVtbl->GetStatParam(This,dwParam,pdwParam1,pdwParam2)
11941 #endif
11942 #endif
11943   HRESULT WINAPI IAMAudioRendererStats_GetStatParam_Proxy(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
11944   void __RPC_STUB IAMAudioRendererStats_GetStatParam_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11945 #endif
11946 
11947   enum _AM_INTF_SEARCH_FLAGS {
11948     AM_INTF_SEARCH_INPUT_PIN = 0x1,AM_INTF_SEARCH_OUTPUT_PIN = 0x2,AM_INTF_SEARCH_FILTER = 0x4
11949   };
11950 
11951   extern RPC_IF_HANDLE __MIDL_itf_strmif_0361_v0_0_c_ifspec;
11952   extern RPC_IF_HANDLE __MIDL_itf_strmif_0361_v0_0_s_ifspec;
11953 #ifndef __IAMGraphStreams_INTERFACE_DEFINED__
11954 #define __IAMGraphStreams_INTERFACE_DEFINED__
11955   EXTERN_C const IID IID_IAMGraphStreams;
11956 #if defined(__cplusplus) && !defined(CINTERFACE)
11957   struct IAMGraphStreams : public IUnknown {
11958   public:
11959     virtual HRESULT WINAPI FindUpstreamInterface(IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags) = 0;
11960     virtual HRESULT WINAPI SyncUsingStreamOffset(WINBOOL bUseStreamOffset) = 0;
11961     virtual HRESULT WINAPI SetMaxGraphLatency(REFERENCE_TIME rtMaxGraphLatency) = 0;
11962   };
11963 #else
11964   typedef struct IAMGraphStreamsVtbl {
11965     BEGIN_INTERFACE
11966       HRESULT (WINAPI *QueryInterface)(IAMGraphStreams *This,REFIID riid,void **ppvObject);
11967       ULONG (WINAPI *AddRef)(IAMGraphStreams *This);
11968       ULONG (WINAPI *Release)(IAMGraphStreams *This);
11969       HRESULT (WINAPI *FindUpstreamInterface)(IAMGraphStreams *This,IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags);
11970       HRESULT (WINAPI *SyncUsingStreamOffset)(IAMGraphStreams *This,WINBOOL bUseStreamOffset);
11971       HRESULT (WINAPI *SetMaxGraphLatency)(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
11972     END_INTERFACE
11973   } IAMGraphStreamsVtbl;
11974   struct IAMGraphStreams {
11975     CONST_VTBL struct IAMGraphStreamsVtbl *lpVtbl;
11976   };
11977 #ifdef COBJMACROS
11978 #define IAMGraphStreams_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11979 #define IAMGraphStreams_AddRef(This) (This)->lpVtbl->AddRef(This)
11980 #define IAMGraphStreams_Release(This) (This)->lpVtbl->Release(This)
11981 #define IAMGraphStreams_FindUpstreamInterface(This,pPin,riid,ppvInterface,dwFlags) (This)->lpVtbl->FindUpstreamInterface(This,pPin,riid,ppvInterface,dwFlags)
11982 #define IAMGraphStreams_SyncUsingStreamOffset(This,bUseStreamOffset) (This)->lpVtbl->SyncUsingStreamOffset(This,bUseStreamOffset)
11983 #define IAMGraphStreams_SetMaxGraphLatency(This,rtMaxGraphLatency) (This)->lpVtbl->SetMaxGraphLatency(This,rtMaxGraphLatency)
11984 #endif
11985 #endif
11986   HRESULT WINAPI IAMGraphStreams_FindUpstreamInterface_Proxy(IAMGraphStreams *This,IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags);
11987   void __RPC_STUB IAMGraphStreams_FindUpstreamInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11988   HRESULT WINAPI IAMGraphStreams_SyncUsingStreamOffset_Proxy(IAMGraphStreams *This,WINBOOL bUseStreamOffset);
11989   void __RPC_STUB IAMGraphStreams_SyncUsingStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11990   HRESULT WINAPI IAMGraphStreams_SetMaxGraphLatency_Proxy(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
11991   void __RPC_STUB IAMGraphStreams_SetMaxGraphLatency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11992 #endif
11993 
11994   enum AMOVERLAYFX {
11995     AMOVERFX_NOFX = 0,AMOVERFX_MIRRORLEFTRIGHT = 0x2,AMOVERFX_MIRRORUPDOWN = 0x4,AMOVERFX_DEINTERLACE = 0x8
11996   };
11997 
11998   extern RPC_IF_HANDLE __MIDL_itf_strmif_0362_v0_0_c_ifspec;
11999   extern RPC_IF_HANDLE __MIDL_itf_strmif_0362_v0_0_s_ifspec;
12000 #ifndef __IAMOverlayFX_INTERFACE_DEFINED__
12001 #define __IAMOverlayFX_INTERFACE_DEFINED__
12002   EXTERN_C const IID IID_IAMOverlayFX;
12003 #if defined(__cplusplus) && !defined(CINTERFACE)
12004   struct IAMOverlayFX : public IUnknown {
12005   public:
12006     virtual HRESULT WINAPI QueryOverlayFXCaps(DWORD *lpdwOverlayFXCaps) = 0;
12007     virtual HRESULT WINAPI SetOverlayFX(DWORD dwOverlayFX) = 0;
12008     virtual HRESULT WINAPI GetOverlayFX(DWORD *lpdwOverlayFX) = 0;
12009   };
12010 #else
12011   typedef struct IAMOverlayFXVtbl {
12012     BEGIN_INTERFACE
12013       HRESULT (WINAPI *QueryInterface)(IAMOverlayFX *This,REFIID riid,void **ppvObject);
12014       ULONG (WINAPI *AddRef)(IAMOverlayFX *This);
12015       ULONG (WINAPI *Release)(IAMOverlayFX *This);
12016       HRESULT (WINAPI *QueryOverlayFXCaps)(IAMOverlayFX *This,DWORD *lpdwOverlayFXCaps);
12017       HRESULT (WINAPI *SetOverlayFX)(IAMOverlayFX *This,DWORD dwOverlayFX);
12018       HRESULT (WINAPI *GetOverlayFX)(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
12019     END_INTERFACE
12020   } IAMOverlayFXVtbl;
12021   struct IAMOverlayFX {
12022     CONST_VTBL struct IAMOverlayFXVtbl *lpVtbl;
12023   };
12024 #ifdef COBJMACROS
12025 #define IAMOverlayFX_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12026 #define IAMOverlayFX_AddRef(This) (This)->lpVtbl->AddRef(This)
12027 #define IAMOverlayFX_Release(This) (This)->lpVtbl->Release(This)
12028 #define IAMOverlayFX_QueryOverlayFXCaps(This,lpdwOverlayFXCaps) (This)->lpVtbl->QueryOverlayFXCaps(This,lpdwOverlayFXCaps)
12029 #define IAMOverlayFX_SetOverlayFX(This,dwOverlayFX) (This)->lpVtbl->SetOverlayFX(This,dwOverlayFX)
12030 #define IAMOverlayFX_GetOverlayFX(This,lpdwOverlayFX) (This)->lpVtbl->GetOverlayFX(This,lpdwOverlayFX)
12031 #endif
12032 #endif
12033   HRESULT WINAPI IAMOverlayFX_QueryOverlayFXCaps_Proxy(IAMOverlayFX *This,DWORD *lpdwOverlayFXCaps);
12034   void __RPC_STUB IAMOverlayFX_QueryOverlayFXCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12035   HRESULT WINAPI IAMOverlayFX_SetOverlayFX_Proxy(IAMOverlayFX *This,DWORD dwOverlayFX);
12036   void __RPC_STUB IAMOverlayFX_SetOverlayFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12037   HRESULT WINAPI IAMOverlayFX_GetOverlayFX_Proxy(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
12038   void __RPC_STUB IAMOverlayFX_GetOverlayFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12039 #endif
12040 
12041 #ifndef __IAMOpenProgress_INTERFACE_DEFINED__
12042 #define __IAMOpenProgress_INTERFACE_DEFINED__
12043   EXTERN_C const IID IID_IAMOpenProgress;
12044 #if defined(__cplusplus) && !defined(CINTERFACE)
12045   struct IAMOpenProgress : public IUnknown {
12046   public:
12047     virtual HRESULT WINAPI QueryProgress(LONGLONG *pllTotal,LONGLONG *pllCurrent) = 0;
12048     virtual HRESULT WINAPI AbortOperation(void) = 0;
12049   };
12050 #else
12051   typedef struct IAMOpenProgressVtbl {
12052     BEGIN_INTERFACE
12053       HRESULT (WINAPI *QueryInterface)(IAMOpenProgress *This,REFIID riid,void **ppvObject);
12054       ULONG (WINAPI *AddRef)(IAMOpenProgress *This);
12055       ULONG (WINAPI *Release)(IAMOpenProgress *This);
12056       HRESULT (WINAPI *QueryProgress)(IAMOpenProgress *This,LONGLONG *pllTotal,LONGLONG *pllCurrent);
12057       HRESULT (WINAPI *AbortOperation)(IAMOpenProgress *This);
12058     END_INTERFACE
12059   } IAMOpenProgressVtbl;
12060   struct IAMOpenProgress {
12061     CONST_VTBL struct IAMOpenProgressVtbl *lpVtbl;
12062   };
12063 #ifdef COBJMACROS
12064 #define IAMOpenProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12065 #define IAMOpenProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
12066 #define IAMOpenProgress_Release(This) (This)->lpVtbl->Release(This)
12067 #define IAMOpenProgress_QueryProgress(This,pllTotal,pllCurrent) (This)->lpVtbl->QueryProgress(This,pllTotal,pllCurrent)
12068 #define IAMOpenProgress_AbortOperation(This) (This)->lpVtbl->AbortOperation(This)
12069 #endif
12070 #endif
12071   HRESULT WINAPI IAMOpenProgress_QueryProgress_Proxy(IAMOpenProgress *This,LONGLONG *pllTotal,LONGLONG *pllCurrent);
12072   void __RPC_STUB IAMOpenProgress_QueryProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12073   HRESULT WINAPI IAMOpenProgress_AbortOperation_Proxy(IAMOpenProgress *This);
12074   void __RPC_STUB IAMOpenProgress_AbortOperation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12075 #endif
12076 
12077 #ifdef __CRT_UUID_DECL
12078 __CRT_UUID_DECL(IMpeg2Demultiplexer,0x436eee9c,0x264f,0x4242,0x90,0xe1,0x4e,0x33,0x0c,0x10,0x75,0x12);
12079 #endif
12080 
12081 #ifndef __IMpeg2Demultiplexer_INTERFACE_DEFINED__
12082 #define __IMpeg2Demultiplexer_INTERFACE_DEFINED__
12083   EXTERN_C const IID IID_IMpeg2Demultiplexer;
12084 #if defined(__cplusplus) && !defined(CINTERFACE)
12085   struct IMpeg2Demultiplexer : public IUnknown {
12086   public:
12087     virtual HRESULT WINAPI CreateOutputPin(AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin) = 0;
12088     virtual HRESULT WINAPI SetOutputPinMediaType(LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType) = 0;
12089     virtual HRESULT WINAPI DeleteOutputPin(LPWSTR pszPinName) = 0;
12090   };
12091 #else
12092   typedef struct IMpeg2DemultiplexerVtbl {
12093     BEGIN_INTERFACE
12094       HRESULT (WINAPI *QueryInterface)(IMpeg2Demultiplexer *This,REFIID riid,void **ppvObject);
12095       ULONG (WINAPI *AddRef)(IMpeg2Demultiplexer *This);
12096       ULONG (WINAPI *Release)(IMpeg2Demultiplexer *This);
12097       HRESULT (WINAPI *CreateOutputPin)(IMpeg2Demultiplexer *This,AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin);
12098       HRESULT (WINAPI *SetOutputPinMediaType)(IMpeg2Demultiplexer *This,LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType);
12099       HRESULT (WINAPI *DeleteOutputPin)(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
12100     END_INTERFACE
12101   } IMpeg2DemultiplexerVtbl;
12102   struct IMpeg2Demultiplexer {
12103     CONST_VTBL struct IMpeg2DemultiplexerVtbl *lpVtbl;
12104   };
12105 #ifdef COBJMACROS
12106 #define IMpeg2Demultiplexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12107 #define IMpeg2Demultiplexer_AddRef(This) (This)->lpVtbl->AddRef(This)
12108 #define IMpeg2Demultiplexer_Release(This) (This)->lpVtbl->Release(This)
12109 #define IMpeg2Demultiplexer_CreateOutputPin(This,pMediaType,pszPinName,ppIPin) (This)->lpVtbl->CreateOutputPin(This,pMediaType,pszPinName,ppIPin)
12110 #define IMpeg2Demultiplexer_SetOutputPinMediaType(This,pszPinName,pMediaType) (This)->lpVtbl->SetOutputPinMediaType(This,pszPinName,pMediaType)
12111 #define IMpeg2Demultiplexer_DeleteOutputPin(This,pszPinName) (This)->lpVtbl->DeleteOutputPin(This,pszPinName)
12112 #endif
12113 #endif
12114   HRESULT WINAPI IMpeg2Demultiplexer_CreateOutputPin_Proxy(IMpeg2Demultiplexer *This,AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin);
12115   void __RPC_STUB IMpeg2Demultiplexer_CreateOutputPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12116   HRESULT WINAPI IMpeg2Demultiplexer_SetOutputPinMediaType_Proxy(IMpeg2Demultiplexer *This,LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType);
12117   void __RPC_STUB IMpeg2Demultiplexer_SetOutputPinMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12118   HRESULT WINAPI IMpeg2Demultiplexer_DeleteOutputPin_Proxy(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
12119   void __RPC_STUB IMpeg2Demultiplexer_DeleteOutputPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12120 #endif
12121 
12122 #define MPEG2_PROGRAM_STREAM_MAP 0x00000000
12123 #define MPEG2_PROGRAM_ELEMENTARY_STREAM 0x00000001
12124 #define MPEG2_PROGRAM_DIRECTORY_PES_PACKET 0x00000002
12125 #define MPEG2_PROGRAM_PACK_HEADER 0x00000003
12126 #define MPEG2_PROGRAM_PES_STREAM 0x00000004
12127 #define MPEG2_PROGRAM_SYSTEM_HEADER 0x00000005
12128 #define SUBSTREAM_FILTER_VAL_NONE 0x10000000
12129 
12130   typedef struct __MIDL___MIDL_itf_strmif_0365_0001 {
12131     ULONG stream_id;
12132     DWORD dwMediaSampleContent;
12133     ULONG ulSubstreamFilterValue;
12134     int iDataOffset;
12135   } STREAM_ID_MAP;
12136 
12137   extern RPC_IF_HANDLE __MIDL_itf_strmif_0365_v0_0_c_ifspec;
12138   extern RPC_IF_HANDLE __MIDL_itf_strmif_0365_v0_0_s_ifspec;
12139 #ifndef __IEnumStreamIdMap_INTERFACE_DEFINED__
12140 #define __IEnumStreamIdMap_INTERFACE_DEFINED__
12141   EXTERN_C const IID IID_IEnumStreamIdMap;
12142 #if defined(__cplusplus) && !defined(CINTERFACE)
12143   struct IEnumStreamIdMap : public IUnknown {
12144   public:
12145     virtual HRESULT WINAPI Next(ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived) = 0;
12146     virtual HRESULT WINAPI Skip(ULONG cRecords) = 0;
12147     virtual HRESULT WINAPI Reset(void) = 0;
12148     virtual HRESULT WINAPI Clone(IEnumStreamIdMap **ppIEnumStreamIdMap) = 0;
12149   };
12150 #else
12151   typedef struct IEnumStreamIdMapVtbl {
12152     BEGIN_INTERFACE
12153       HRESULT (WINAPI *QueryInterface)(IEnumStreamIdMap *This,REFIID riid,void **ppvObject);
12154       ULONG (WINAPI *AddRef)(IEnumStreamIdMap *This);
12155       ULONG (WINAPI *Release)(IEnumStreamIdMap *This);
12156       HRESULT (WINAPI *Next)(IEnumStreamIdMap *This,ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived);
12157       HRESULT (WINAPI *Skip)(IEnumStreamIdMap *This,ULONG cRecords);
12158       HRESULT (WINAPI *Reset)(IEnumStreamIdMap *This);
12159       HRESULT (WINAPI *Clone)(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
12160     END_INTERFACE
12161   } IEnumStreamIdMapVtbl;
12162   struct IEnumStreamIdMap {
12163     CONST_VTBL struct IEnumStreamIdMapVtbl *lpVtbl;
12164   };
12165 #ifdef COBJMACROS
12166 #define IEnumStreamIdMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12167 #define IEnumStreamIdMap_AddRef(This) (This)->lpVtbl->AddRef(This)
12168 #define IEnumStreamIdMap_Release(This) (This)->lpVtbl->Release(This)
12169 #define IEnumStreamIdMap_Next(This,cRequest,pStreamIdMap,pcReceived) (This)->lpVtbl->Next(This,cRequest,pStreamIdMap,pcReceived)
12170 #define IEnumStreamIdMap_Skip(This,cRecords) (This)->lpVtbl->Skip(This,cRecords)
12171 #define IEnumStreamIdMap_Reset(This) (This)->lpVtbl->Reset(This)
12172 #define IEnumStreamIdMap_Clone(This,ppIEnumStreamIdMap) (This)->lpVtbl->Clone(This,ppIEnumStreamIdMap)
12173 #endif
12174 #endif
12175   HRESULT WINAPI IEnumStreamIdMap_Next_Proxy(IEnumStreamIdMap *This,ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived);
12176   void __RPC_STUB IEnumStreamIdMap_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12177   HRESULT WINAPI IEnumStreamIdMap_Skip_Proxy(IEnumStreamIdMap *This,ULONG cRecords);
12178   void __RPC_STUB IEnumStreamIdMap_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12179   HRESULT WINAPI IEnumStreamIdMap_Reset_Proxy(IEnumStreamIdMap *This);
12180   void __RPC_STUB IEnumStreamIdMap_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12181   HRESULT WINAPI IEnumStreamIdMap_Clone_Proxy(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
12182   void __RPC_STUB IEnumStreamIdMap_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12183 #endif
12184 
12185 #ifndef __IMPEG2StreamIdMap_INTERFACE_DEFINED__
12186 #define __IMPEG2StreamIdMap_INTERFACE_DEFINED__
12187   EXTERN_C const IID IID_IMPEG2StreamIdMap;
12188 #if defined(__cplusplus) && !defined(CINTERFACE)
12189   struct IMPEG2StreamIdMap : public IUnknown {
12190   public:
12191     virtual HRESULT WINAPI MapStreamId(ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset) = 0;
12192     virtual HRESULT WINAPI UnmapStreamId(ULONG culStreamId,ULONG *pulStreamId) = 0;
12193     virtual HRESULT WINAPI EnumStreamIdMap(IEnumStreamIdMap **ppIEnumStreamIdMap) = 0;
12194   };
12195 #else
12196   typedef struct IMPEG2StreamIdMapVtbl {
12197     BEGIN_INTERFACE
12198       HRESULT (WINAPI *QueryInterface)(IMPEG2StreamIdMap *This,REFIID riid,void **ppvObject);
12199       ULONG (WINAPI *AddRef)(IMPEG2StreamIdMap *This);
12200       ULONG (WINAPI *Release)(IMPEG2StreamIdMap *This);
12201       HRESULT (WINAPI *MapStreamId)(IMPEG2StreamIdMap *This,ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset);
12202       HRESULT (WINAPI *UnmapStreamId)(IMPEG2StreamIdMap *This,ULONG culStreamId,ULONG *pulStreamId);
12203       HRESULT (WINAPI *EnumStreamIdMap)(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
12204     END_INTERFACE
12205   } IMPEG2StreamIdMapVtbl;
12206   struct IMPEG2StreamIdMap {
12207     CONST_VTBL struct IMPEG2StreamIdMapVtbl *lpVtbl;
12208   };
12209 #ifdef COBJMACROS
12210 #define IMPEG2StreamIdMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12211 #define IMPEG2StreamIdMap_AddRef(This) (This)->lpVtbl->AddRef(This)
12212 #define IMPEG2StreamIdMap_Release(This) (This)->lpVtbl->Release(This)
12213 #define IMPEG2StreamIdMap_MapStreamId(This,ulStreamId,MediaSampleContent,ulSubstreamFilterValue,iDataOffset) (This)->lpVtbl->MapStreamId(This,ulStreamId,MediaSampleContent,ulSubstreamFilterValue,iDataOffset)
12214 #define IMPEG2StreamIdMap_UnmapStreamId(This,culStreamId,pulStreamId) (This)->lpVtbl->UnmapStreamId(This,culStreamId,pulStreamId)
12215 #define IMPEG2StreamIdMap_EnumStreamIdMap(This,ppIEnumStreamIdMap) (This)->lpVtbl->EnumStreamIdMap(This,ppIEnumStreamIdMap)
12216 #endif
12217 #endif
12218   HRESULT WINAPI IMPEG2StreamIdMap_MapStreamId_Proxy(IMPEG2StreamIdMap *This,ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset);
12219   void __RPC_STUB IMPEG2StreamIdMap_MapStreamId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12220   HRESULT WINAPI IMPEG2StreamIdMap_UnmapStreamId_Proxy(IMPEG2StreamIdMap *This,ULONG culStreamId,ULONG *pulStreamId);
12221   void __RPC_STUB IMPEG2StreamIdMap_UnmapStreamId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12222   HRESULT WINAPI IMPEG2StreamIdMap_EnumStreamIdMap_Proxy(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
12223   void __RPC_STUB IMPEG2StreamIdMap_EnumStreamIdMap_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12224 #endif
12225 
12226 #ifndef __IRegisterServiceProvider_INTERFACE_DEFINED__
12227 #define __IRegisterServiceProvider_INTERFACE_DEFINED__
12228   EXTERN_C const IID IID_IRegisterServiceProvider;
12229 #if defined(__cplusplus) && !defined(CINTERFACE)
12230   struct IRegisterServiceProvider : public IUnknown {
12231   public:
12232     virtual HRESULT WINAPI RegisterService(REFGUID guidService,IUnknown *pUnkObject) = 0;
12233   };
12234 #else
12235   typedef struct IRegisterServiceProviderVtbl {
12236     BEGIN_INTERFACE
12237       HRESULT (WINAPI *QueryInterface)(IRegisterServiceProvider *This,REFIID riid,void **ppvObject);
12238       ULONG (WINAPI *AddRef)(IRegisterServiceProvider *This);
12239       ULONG (WINAPI *Release)(IRegisterServiceProvider *This);
12240       HRESULT (WINAPI *RegisterService)(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
12241     END_INTERFACE
12242   } IRegisterServiceProviderVtbl;
12243   struct IRegisterServiceProvider {
12244     CONST_VTBL struct IRegisterServiceProviderVtbl *lpVtbl;
12245   };
12246 #ifdef COBJMACROS
12247 #define IRegisterServiceProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12248 #define IRegisterServiceProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
12249 #define IRegisterServiceProvider_Release(This) (This)->lpVtbl->Release(This)
12250 #define IRegisterServiceProvider_RegisterService(This,guidService,pUnkObject) (This)->lpVtbl->RegisterService(This,guidService,pUnkObject)
12251 #endif
12252 #endif
12253   HRESULT WINAPI IRegisterServiceProvider_RegisterService_Proxy(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
12254   void __RPC_STUB IRegisterServiceProvider_RegisterService_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12255 #endif
12256 
12257 #ifdef __cplusplus
12258 #ifndef _IAMFilterGraphCallback_
12259 #define _IAMFilterGraphCallback_
12260   EXTERN_GUID(IID_IAMFilterGraphCallback,0x56a868fd,0x0ad4,0x11ce,0xb0,0xa3,0x0,0x20,0xaf,0x0b,0xa7,0x70);
12261   struct IAMFilterGraphCallback : public IUnknown {
12262     virtual HRESULT UnableToRender(IPin *pPin) = 0;
12263   };
12264 #endif
12265 #endif
12266   struct CodecAPIEventData {
12267     GUID guid;
12268     DWORD dataLength;
12269     DWORD reserved[3];
12270   };
12271 
12272   extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_c_ifspec;
12273   extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_s_ifspec;
12274 #ifndef __ICodecAPI_INTERFACE_DEFINED__
12275 #define __ICodecAPI_INTERFACE_DEFINED__
12276   EXTERN_C const IID IID_ICodecAPI;
12277 #if defined(__cplusplus) && !defined(CINTERFACE)
12278   struct ICodecAPI : public IUnknown {
12279   public:
12280     virtual HRESULT WINAPI IsSupported(const GUID *Api) = 0;
12281     virtual HRESULT WINAPI IsModifiable(const GUID *Api) = 0;
12282     virtual HRESULT WINAPI GetParameterRange(const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta) = 0;
12283     virtual HRESULT WINAPI GetParameterValues(const GUID *Api,VARIANT **Values,ULONG *ValuesCount) = 0;
12284     virtual HRESULT WINAPI GetDefaultValue(const GUID *Api,VARIANT *Value) = 0;
12285     virtual HRESULT WINAPI GetValue(const GUID *Api,VARIANT *Value) = 0;
12286     virtual HRESULT WINAPI SetValue(const GUID *Api,VARIANT *Value) = 0;
12287     virtual HRESULT WINAPI RegisterForEvent(const GUID *Api,LONG_PTR userData) = 0;
12288     virtual HRESULT WINAPI UnregisterForEvent(const GUID *Api) = 0;
12289     virtual HRESULT WINAPI SetAllDefaults(void) = 0;
12290     virtual HRESULT WINAPI SetValueWithNotify(const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
12291     virtual HRESULT WINAPI SetAllDefaultsWithNotify(GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
12292     virtual HRESULT WINAPI GetAllSettings(IStream *__MIDL_0016) = 0;
12293     virtual HRESULT WINAPI SetAllSettings(IStream *__MIDL_0017) = 0;
12294     virtual HRESULT WINAPI SetAllSettingsWithNotify(IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
12295   };
12296 #else
12297   typedef struct ICodecAPIVtbl {
12298     BEGIN_INTERFACE
12299       HRESULT (WINAPI *QueryInterface)(ICodecAPI *This,REFIID riid,void **ppvObject);
12300       ULONG (WINAPI *AddRef)(ICodecAPI *This);
12301       ULONG (WINAPI *Release)(ICodecAPI *This);
12302       HRESULT (WINAPI *IsSupported)(ICodecAPI *This,const GUID *Api);
12303       HRESULT (WINAPI *IsModifiable)(ICodecAPI *This,const GUID *Api);
12304       HRESULT (WINAPI *GetParameterRange)(ICodecAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
12305       HRESULT (WINAPI *GetParameterValues)(ICodecAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
12306       HRESULT (WINAPI *GetDefaultValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
12307       HRESULT (WINAPI *GetValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
12308       HRESULT (WINAPI *SetValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
12309       HRESULT (WINAPI *RegisterForEvent)(ICodecAPI *This,const GUID *Api,LONG_PTR userData);
12310       HRESULT (WINAPI *UnregisterForEvent)(ICodecAPI *This,const GUID *Api);
12311       HRESULT (WINAPI *SetAllDefaults)(ICodecAPI *This);
12312       HRESULT (WINAPI *SetValueWithNotify)(ICodecAPI *This,const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount);
12313       HRESULT (WINAPI *SetAllDefaultsWithNotify)(ICodecAPI *This,GUID **ChangedParam,ULONG *ChangedParamCount);
12314       HRESULT (WINAPI *GetAllSettings)(ICodecAPI *This,IStream *__MIDL_0016);
12315       HRESULT (WINAPI *SetAllSettings)(ICodecAPI *This,IStream *__MIDL_0017);
12316       HRESULT (WINAPI *SetAllSettingsWithNotify)(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
12317     END_INTERFACE
12318   } ICodecAPIVtbl;
12319   struct ICodecAPI {
12320     CONST_VTBL struct ICodecAPIVtbl *lpVtbl;
12321   };
12322 #ifdef COBJMACROS
12323 #define ICodecAPI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12324 #define ICodecAPI_AddRef(This) (This)->lpVtbl->AddRef(This)
12325 #define ICodecAPI_Release(This) (This)->lpVtbl->Release(This)
12326 #define ICodecAPI_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
12327 #define ICodecAPI_IsModifiable(This,Api) (This)->lpVtbl->IsModifiable(This,Api)
12328 #define ICodecAPI_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
12329 #define ICodecAPI_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
12330 #define ICodecAPI_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
12331 #define ICodecAPI_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
12332 #define ICodecAPI_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
12333 #define ICodecAPI_RegisterForEvent(This,Api,userData) (This)->lpVtbl->RegisterForEvent(This,Api,userData)
12334 #define ICodecAPI_UnregisterForEvent(This,Api) (This)->lpVtbl->UnregisterForEvent(This,Api)
12335 #define ICodecAPI_SetAllDefaults(This) (This)->lpVtbl->SetAllDefaults(This)
12336 #define ICodecAPI_SetValueWithNotify(This,Api,Value,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetValueWithNotify(This,Api,Value,ChangedParam,ChangedParamCount)
12337 #define ICodecAPI_SetAllDefaultsWithNotify(This,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetAllDefaultsWithNotify(This,ChangedParam,ChangedParamCount)
12338 #define ICodecAPI_GetAllSettings(This,__MIDL_0016) (This)->lpVtbl->GetAllSettings(This,__MIDL_0016)
12339 #define ICodecAPI_SetAllSettings(This,__MIDL_0017) (This)->lpVtbl->SetAllSettings(This,__MIDL_0017)
12340 #define ICodecAPI_SetAllSettingsWithNotify(This,__MIDL_0018,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetAllSettingsWithNotify(This,__MIDL_0018,ChangedParam,ChangedParamCount)
12341 #endif
12342 #endif
12343   HRESULT WINAPI ICodecAPI_IsSupported_Proxy(ICodecAPI *This,const GUID *Api);
12344   void __RPC_STUB ICodecAPI_IsSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12345   HRESULT WINAPI ICodecAPI_IsModifiable_Proxy(ICodecAPI *This,const GUID *Api);
12346   void __RPC_STUB ICodecAPI_IsModifiable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12347   HRESULT WINAPI ICodecAPI_GetParameterRange_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
12348   void __RPC_STUB ICodecAPI_GetParameterRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12349   HRESULT WINAPI ICodecAPI_GetParameterValues_Proxy(ICodecAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
12350   void __RPC_STUB ICodecAPI_GetParameterValues_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12351   HRESULT WINAPI ICodecAPI_GetDefaultValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
12352   void __RPC_STUB ICodecAPI_GetDefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12353   HRESULT WINAPI ICodecAPI_GetValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
12354   void __RPC_STUB ICodecAPI_GetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12355   HRESULT WINAPI ICodecAPI_SetValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
12356   void __RPC_STUB ICodecAPI_SetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12357   HRESULT WINAPI ICodecAPI_RegisterForEvent_Proxy(ICodecAPI *This,const GUID *Api,LONG_PTR userData);
12358   void __RPC_STUB ICodecAPI_RegisterForEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12359   HRESULT WINAPI ICodecAPI_UnregisterForEvent_Proxy(ICodecAPI *This,const GUID *Api);
12360   void __RPC_STUB ICodecAPI_UnregisterForEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12361   HRESULT WINAPI ICodecAPI_SetAllDefaults_Proxy(ICodecAPI *This);
12362   void __RPC_STUB ICodecAPI_SetAllDefaults_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12363   HRESULT WINAPI ICodecAPI_SetValueWithNotify_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount);
12364   void __RPC_STUB ICodecAPI_SetValueWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12365   HRESULT WINAPI ICodecAPI_SetAllDefaultsWithNotify_Proxy(ICodecAPI *This,GUID **ChangedParam,ULONG *ChangedParamCount);
12366   void __RPC_STUB ICodecAPI_SetAllDefaultsWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12367   HRESULT WINAPI ICodecAPI_GetAllSettings_Proxy(ICodecAPI *This,IStream *__MIDL_0016);
12368   void __RPC_STUB ICodecAPI_GetAllSettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12369   HRESULT WINAPI ICodecAPI_SetAllSettings_Proxy(ICodecAPI *This,IStream *__MIDL_0017);
12370   void __RPC_STUB ICodecAPI_SetAllSettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12371   HRESULT WINAPI ICodecAPI_SetAllSettingsWithNotify_Proxy(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
12372   void __RPC_STUB ICodecAPI_SetAllSettingsWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12373 #endif
12374 
12375 #ifndef __IGetCapabilitiesKey_INTERFACE_DEFINED__
12376 #define __IGetCapabilitiesKey_INTERFACE_DEFINED__
12377   EXTERN_C const IID IID_IGetCapabilitiesKey;
12378 #if defined(__cplusplus) && !defined(CINTERFACE)
12379   struct IGetCapabilitiesKey : public IUnknown {
12380   public:
12381     virtual HRESULT WINAPI GetCapabilitiesKey(HKEY *pHKey) = 0;
12382   };
12383 #else
12384   typedef struct IGetCapabilitiesKeyVtbl {
12385     BEGIN_INTERFACE
12386       HRESULT (WINAPI *QueryInterface)(IGetCapabilitiesKey *This,REFIID riid,void **ppvObject);
12387       ULONG (WINAPI *AddRef)(IGetCapabilitiesKey *This);
12388       ULONG (WINAPI *Release)(IGetCapabilitiesKey *This);
12389       HRESULT (WINAPI *GetCapabilitiesKey)(IGetCapabilitiesKey *This,HKEY *pHKey);
12390     END_INTERFACE
12391   } IGetCapabilitiesKeyVtbl;
12392   struct IGetCapabilitiesKey {
12393     CONST_VTBL struct IGetCapabilitiesKeyVtbl *lpVtbl;
12394   };
12395 #ifdef COBJMACROS
12396 #define IGetCapabilitiesKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12397 #define IGetCapabilitiesKey_AddRef(This) (This)->lpVtbl->AddRef(This)
12398 #define IGetCapabilitiesKey_Release(This) (This)->lpVtbl->Release(This)
12399 #define IGetCapabilitiesKey_GetCapabilitiesKey(This,pHKey) (This)->lpVtbl->GetCapabilitiesKey(This,pHKey)
12400 #endif
12401 #endif
12402   HRESULT WINAPI IGetCapabilitiesKey_GetCapabilitiesKey_Proxy(IGetCapabilitiesKey *This,HKEY *pHKey);
12403   void __RPC_STUB IGetCapabilitiesKey_GetCapabilitiesKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12404 #endif
12405 
12406 #ifndef __IEncoderAPI_INTERFACE_DEFINED__
12407 #define __IEncoderAPI_INTERFACE_DEFINED__
12408   EXTERN_C const IID IID_IEncoderAPI;
12409 #if defined(__cplusplus) && !defined(CINTERFACE)
12410   struct IEncoderAPI : public IUnknown {
12411   public:
12412     virtual HRESULT WINAPI IsSupported(const GUID *Api) = 0;
12413     virtual HRESULT WINAPI IsAvailable(const GUID *Api) = 0;
12414     virtual HRESULT WINAPI GetParameterRange(const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta) = 0;
12415     virtual HRESULT WINAPI GetParameterValues(const GUID *Api,VARIANT **Values,ULONG *ValuesCount) = 0;
12416     virtual HRESULT WINAPI GetDefaultValue(const GUID *Api,VARIANT *Value) = 0;
12417     virtual HRESULT WINAPI GetValue(const GUID *Api,VARIANT *Value) = 0;
12418     virtual HRESULT WINAPI SetValue(const GUID *Api,VARIANT *Value) = 0;
12419   };
12420 #else
12421   typedef struct IEncoderAPIVtbl {
12422     BEGIN_INTERFACE
12423       HRESULT (WINAPI *QueryInterface)(IEncoderAPI *This,REFIID riid,void **ppvObject);
12424       ULONG (WINAPI *AddRef)(IEncoderAPI *This);
12425       ULONG (WINAPI *Release)(IEncoderAPI *This);
12426       HRESULT (WINAPI *IsSupported)(IEncoderAPI *This,const GUID *Api);
12427       HRESULT (WINAPI *IsAvailable)(IEncoderAPI *This,const GUID *Api);
12428       HRESULT (WINAPI *GetParameterRange)(IEncoderAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
12429       HRESULT (WINAPI *GetParameterValues)(IEncoderAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
12430       HRESULT (WINAPI *GetDefaultValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
12431       HRESULT (WINAPI *GetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
12432       HRESULT (WINAPI *SetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
12433     END_INTERFACE
12434   } IEncoderAPIVtbl;
12435   struct IEncoderAPI {
12436     CONST_VTBL struct IEncoderAPIVtbl *lpVtbl;
12437   };
12438 #ifdef COBJMACROS
12439 #define IEncoderAPI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12440 #define IEncoderAPI_AddRef(This) (This)->lpVtbl->AddRef(This)
12441 #define IEncoderAPI_Release(This) (This)->lpVtbl->Release(This)
12442 #define IEncoderAPI_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
12443 #define IEncoderAPI_IsAvailable(This,Api) (This)->lpVtbl->IsAvailable(This,Api)
12444 #define IEncoderAPI_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
12445 #define IEncoderAPI_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
12446 #define IEncoderAPI_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
12447 #define IEncoderAPI_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
12448 #define IEncoderAPI_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
12449 #endif
12450 #endif
12451   HRESULT WINAPI IEncoderAPI_IsSupported_Proxy(IEncoderAPI *This,const GUID *Api);
12452   void __RPC_STUB IEncoderAPI_IsSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12453   HRESULT WINAPI IEncoderAPI_IsAvailable_Proxy(IEncoderAPI *This,const GUID *Api);
12454   void __RPC_STUB IEncoderAPI_IsAvailable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12455   HRESULT WINAPI IEncoderAPI_GetParameterRange_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
12456   void __RPC_STUB IEncoderAPI_GetParameterRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12457   HRESULT WINAPI IEncoderAPI_GetParameterValues_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
12458   void __RPC_STUB IEncoderAPI_GetParameterValues_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12459   HRESULT WINAPI IEncoderAPI_GetDefaultValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
12460   void __RPC_STUB IEncoderAPI_GetDefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12461   HRESULT WINAPI IEncoderAPI_GetValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
12462   void __RPC_STUB IEncoderAPI_GetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12463   HRESULT WINAPI IEncoderAPI_SetValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
12464   void __RPC_STUB IEncoderAPI_SetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12465 #endif
12466 
12467 #ifndef __IVideoEncoder_INTERFACE_DEFINED__
12468 #define __IVideoEncoder_INTERFACE_DEFINED__
12469   EXTERN_C const IID IID_IVideoEncoder;
12470 #if defined(__cplusplus) && !defined(CINTERFACE)
12471   struct IVideoEncoder : public IEncoderAPI {
12472   public:
12473   };
12474 #else
12475   typedef struct IVideoEncoderVtbl {
12476     BEGIN_INTERFACE
12477       HRESULT (WINAPI *QueryInterface)(IVideoEncoder *This,REFIID riid,void **ppvObject);
12478       ULONG (WINAPI *AddRef)(IVideoEncoder *This);
12479       ULONG (WINAPI *Release)(IVideoEncoder *This);
12480       HRESULT (WINAPI *IsSupported)(IVideoEncoder *This,const GUID *Api);
12481       HRESULT (WINAPI *IsAvailable)(IVideoEncoder *This,const GUID *Api);
12482       HRESULT (WINAPI *GetParameterRange)(IVideoEncoder *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
12483       HRESULT (WINAPI *GetParameterValues)(IVideoEncoder *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
12484       HRESULT (WINAPI *GetDefaultValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
12485       HRESULT (WINAPI *GetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
12486       HRESULT (WINAPI *SetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
12487     END_INTERFACE
12488   } IVideoEncoderVtbl;
12489   struct IVideoEncoder {
12490     CONST_VTBL struct IVideoEncoderVtbl *lpVtbl;
12491   };
12492 #ifdef COBJMACROS
12493 #define IVideoEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12494 #define IVideoEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
12495 #define IVideoEncoder_Release(This) (This)->lpVtbl->Release(This)
12496 #define IVideoEncoder_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
12497 #define IVideoEncoder_IsAvailable(This,Api) (This)->lpVtbl->IsAvailable(This,Api)
12498 #define IVideoEncoder_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
12499 #define IVideoEncoder_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
12500 #define IVideoEncoder_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
12501 #define IVideoEncoder_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
12502 #define IVideoEncoder_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
12503 #endif
12504 #endif
12505 #endif
12506 
12507 #ifndef __ENCODER_API_DEFINES__
12508 #define __ENCODER_API_DEFINES__
12509   typedef enum __MIDL___MIDL_itf_strmif_0374_0001 {
12510     ConstantBitRate = 0,
12511     VariableBitRateAverage,VariableBitRatePeak
12512   } VIDEOENCODER_BITRATE_MODE;
12513 #endif
12514 #define AM_GETDECODERCAP_QUERY_VMR_SUPPORT 0x00000001
12515 #define VMR_NOTSUPPORTED 0x00000000
12516 #define VMR_SUPPORTED 0x00000001
12517 #define AM_QUERY_DECODER_VMR_SUPPORT 0x00000001
12518 #define AM_QUERY_DECODER_DXVA_1_SUPPORT 0x00000002
12519 #define AM_QUERY_DECODER_DVD_SUPPORT 0x00000003
12520 #define AM_QUERY_DECODER_ATSC_SD_SUPPORT 0x00000004
12521 #define AM_QUERY_DECODER_ATSC_HD_SUPPORT 0x00000005
12522 #define AM_GETDECODERCAP_QUERY_VMR9_SUPPORT 0x00000006
12523 #define DECODER_CAP_NOTSUPPORTED 0x00000000
12524 #define DECODER_CAP_SUPPORTED 0x00000001
12525 
12526   extern RPC_IF_HANDLE __MIDL_itf_strmif_0374_v0_0_c_ifspec;
12527   extern RPC_IF_HANDLE __MIDL_itf_strmif_0374_v0_0_s_ifspec;
12528 #ifndef __IAMDecoderCaps_INTERFACE_DEFINED__
12529 #define __IAMDecoderCaps_INTERFACE_DEFINED__
12530   EXTERN_C const IID IID_IAMDecoderCaps;
12531 #if defined(__cplusplus) && !defined(CINTERFACE)
12532   struct IAMDecoderCaps : public IUnknown {
12533   public:
12534     virtual HRESULT WINAPI GetDecoderCaps(DWORD dwCapIndex,DWORD *lpdwCap) = 0;
12535   };
12536 #else
12537   typedef struct IAMDecoderCapsVtbl {
12538     BEGIN_INTERFACE
12539       HRESULT (WINAPI *QueryInterface)(IAMDecoderCaps *This,REFIID riid,void **ppvObject);
12540       ULONG (WINAPI *AddRef)(IAMDecoderCaps *This);
12541       ULONG (WINAPI *Release)(IAMDecoderCaps *This);
12542       HRESULT (WINAPI *GetDecoderCaps)(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
12543     END_INTERFACE
12544   } IAMDecoderCapsVtbl;
12545   struct IAMDecoderCaps {
12546     CONST_VTBL struct IAMDecoderCapsVtbl *lpVtbl;
12547   };
12548 #ifdef COBJMACROS
12549 #define IAMDecoderCaps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12550 #define IAMDecoderCaps_AddRef(This) (This)->lpVtbl->AddRef(This)
12551 #define IAMDecoderCaps_Release(This) (This)->lpVtbl->Release(This)
12552 #define IAMDecoderCaps_GetDecoderCaps(This,dwCapIndex,lpdwCap) (This)->lpVtbl->GetDecoderCaps(This,dwCapIndex,lpdwCap)
12553 #endif
12554 #endif
12555   HRESULT WINAPI IAMDecoderCaps_GetDecoderCaps_Proxy(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
12556   void __RPC_STUB IAMDecoderCaps_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12557 #endif
12558 
12559 #ifdef MINGW_HAS_DDRAW_H
12560 #include <ddraw.h>
12561 #else
12562   typedef void *IDirectDraw;
12563   typedef void *IDirectDrawSurface;
12564   typedef void *LPDIRECTDRAWSURFACE7;
12565   typedef void *LPDIRECTDRAW7;
12566   typedef void *LPDDPIXELFORMAT;
12567   typedef struct DDCOLORKEY {
12568     DWORD dw1;
12569     DWORD dw2;
12570   } DDCOLORKEY;
12571   typedef DDCOLORKEY *LPDDCOLORKEY;
12572 #endif
12573 
12574   typedef enum tagDVD_DOMAIN {
12575     DVD_DOMAIN_FirstPlay = 1,
12576     DVD_DOMAIN_VideoManagerMenu,DVD_DOMAIN_VideoTitleSetMenu,DVD_DOMAIN_Title,
12577     DVD_DOMAIN_Stop
12578   } DVD_DOMAIN;
12579 
12580   typedef enum tagDVD_MENU_ID {
12581     DVD_MENU_Title = 2,DVD_MENU_Root = 3,DVD_MENU_Subpicture = 4,DVD_MENU_Audio = 5,
12582     DVD_MENU_Angle = 6,DVD_MENU_Chapter = 7
12583   } DVD_MENU_ID;
12584 
12585   typedef enum tagDVD_DISC_SIDE {
12586     DVD_SIDE_A = 1,DVD_SIDE_B = 2
12587   } DVD_DISC_SIDE;
12588 
12589   typedef enum tagDVD_PREFERRED_DISPLAY_MODE {
12590     DISPLAY_CONTENT_DEFAULT = 0,DISPLAY_16x9 = 1,DISPLAY_4x3_PANSCAN_PREFERRED = 2,DISPLAY_4x3_LETTERBOX_PREFERRED = 3
12591   } DVD_PREFERRED_DISPLAY_MODE;
12592 
12593   typedef WORD DVD_REGISTER;
12594   typedef DVD_REGISTER GPRMARRAY[16];
12595   typedef DVD_REGISTER SPRMARRAY[24];
12596 
12597   typedef struct tagDVD_ATR {
12598     ULONG ulCAT;
12599     BYTE pbATRI[768];
12600   } DVD_ATR;
12601 
12602   typedef BYTE DVD_VideoATR[2];
12603   typedef BYTE DVD_AudioATR[8];
12604   typedef BYTE DVD_SubpictureATR[6];
12605 
12606   typedef enum tagDVD_FRAMERATE {
12607     DVD_FPS_25 = 1,DVD_FPS_30NonDrop = 3
12608   } DVD_FRAMERATE;
12609 
12610   typedef struct tagDVD_TIMECODE {
12611     ULONG Hours1 :4;
12612     ULONG Hours10 :4;
12613     ULONG Minutes1 :4;
12614     ULONG Minutes10:4;
12615     ULONG Seconds1 :4;
12616     ULONG Seconds10:4;
12617     ULONG Frames1 :4;
12618     ULONG Frames10 :2;
12619     ULONG FrameRateCode: 2;
12620   } DVD_TIMECODE;
12621 
12622   typedef enum tagDVD_TIMECODE_FLAGS {
12623     DVD_TC_FLAG_25fps = 0x1,DVD_TC_FLAG_30fps = 0x2,DVD_TC_FLAG_DropFrame = 0x4,DVD_TC_FLAG_Interpolated = 0x8
12624   } DVD_TIMECODE_FLAGS;
12625 
12626   typedef struct tagDVD_HMSF_TIMECODE {
12627     BYTE bHours;
12628     BYTE bMinutes;
12629     BYTE bSeconds;
12630     BYTE bFrames;
12631   } DVD_HMSF_TIMECODE;
12632 
12633   typedef struct tagDVD_PLAYBACK_LOCATION2 {
12634     ULONG TitleNum;
12635     ULONG ChapterNum;
12636     DVD_HMSF_TIMECODE TimeCode;
12637     ULONG TimeCodeFlags;
12638   } DVD_PLAYBACK_LOCATION2;
12639 
12640   typedef struct tagDVD_PLAYBACK_LOCATION {
12641     ULONG TitleNum;
12642     ULONG ChapterNum;
12643     ULONG TimeCode;
12644   } DVD_PLAYBACK_LOCATION;
12645 
12646   typedef DWORD VALID_UOP_SOMTHING_OR_OTHER;
12647 
12648   typedef enum __MIDL___MIDL_itf_strmif_0376_0001 {
12649     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,
12650     UOP_FLAG_Play_Chapter_Or_AtTime = 0x20,UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x40,UOP_FLAG_PlayNext_Chapter = 0x80,UOP_FLAG_Play_Forwards = 0x100,
12651     UOP_FLAG_Play_Backwards = 0x200,UOP_FLAG_ShowMenu_Title = 0x400,UOP_FLAG_ShowMenu_Root = 0x800,UOP_FLAG_ShowMenu_SubPic = 0x1000,
12652     UOP_FLAG_ShowMenu_Audio = 0x2000,UOP_FLAG_ShowMenu_Angle = 0x4000,UOP_FLAG_ShowMenu_Chapter = 0x8000,UOP_FLAG_Resume = 0x10000,
12653     UOP_FLAG_Select_Or_Activate_Button = 0x20000,UOP_FLAG_Still_Off = 0x40000,UOP_FLAG_Pause_On = 0x80000,UOP_FLAG_Select_Audio_Stream = 0x100000,
12654     UOP_FLAG_Select_SubPic_Stream = 0x200000,UOP_FLAG_Select_Angle = 0x400000,UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x800000,
12655     UOP_FLAG_Select_Video_Mode_Preference = 0x1000000
12656   } VALID_UOP_FLAG;
12657 
12658   typedef enum __MIDL___MIDL_itf_strmif_0376_0002 {
12659     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,
12660     DVD_CMD_FLAG_EndAfterRendered = 0x10
12661   } DVD_CMD_FLAGS;
12662 
12663   typedef enum __MIDL___MIDL_itf_strmif_0376_0003 {
12664     DVD_ResetOnStop = 1,DVD_NotifyParentalLevelChange = 2,DVD_HMSF_TimeCodeEvents = 3,DVD_AudioDuringFFwdRew = 4
12665   } DVD_OPTION_FLAG;
12666 
12667   typedef enum __MIDL___MIDL_itf_strmif_0376_0004 {
12668     DVD_Relative_Upper = 1,DVD_Relative_Lower = 2,DVD_Relative_Left = 3,DVD_Relative_Right = 4
12669   } DVD_RELATIVE_BUTTON;
12670 
12671   typedef enum tagDVD_PARENTAL_LEVEL {
12672     DVD_PARENTAL_LEVEL_8 = 0x8000,DVD_PARENTAL_LEVEL_7 = 0x4000,DVD_PARENTAL_LEVEL_6 = 0x2000,DVD_PARENTAL_LEVEL_5 = 0x1000,
12673     DVD_PARENTAL_LEVEL_4 = 0x800,DVD_PARENTAL_LEVEL_3 = 0x400,DVD_PARENTAL_LEVEL_2 = 0x200,DVD_PARENTAL_LEVEL_1 = 0x100
12674   } DVD_PARENTAL_LEVEL;
12675 
12676   typedef enum tagDVD_AUDIO_LANG_EXT {
12677     DVD_AUD_EXT_NotSpecified = 0,DVD_AUD_EXT_Captions = 1,DVD_AUD_EXT_VisuallyImpaired = 2,DVD_AUD_EXT_DirectorComments1 = 3,
12678     DVD_AUD_EXT_DirectorComments2 = 4
12679   } DVD_AUDIO_LANG_EXT;
12680 
12681   typedef enum tagDVD_SUBPICTURE_LANG_EXT {
12682     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,
12683     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,
12684     DVD_SP_EXT_DirectorComments_Children = 15
12685   } DVD_SUBPICTURE_LANG_EXT;
12686 
12687   typedef enum tagDVD_AUDIO_APPMODE {
12688     DVD_AudioMode_None = 0,DVD_AudioMode_Karaoke = 1,DVD_AudioMode_Surround = 2,DVD_AudioMode_Other = 3
12689   } DVD_AUDIO_APPMODE;
12690 
12691   typedef enum tagDVD_AUDIO_FORMAT {
12692     DVD_AudioFormat_AC3 = 0,DVD_AudioFormat_MPEG1 = 1,DVD_AudioFormat_MPEG1_DRC = 2,DVD_AudioFormat_MPEG2 = 3,DVD_AudioFormat_MPEG2_DRC = 4,
12693     DVD_AudioFormat_LPCM = 5,DVD_AudioFormat_DTS = 6,DVD_AudioFormat_SDDS = 7,DVD_AudioFormat_Other = 8
12694   } DVD_AUDIO_FORMAT;
12695 
12696   typedef enum tagDVD_KARAOKE_DOWNMIX {
12697     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,
12698     DVD_Mix_0to1 = 0x100,DVD_Mix_1to1 = 0x200,DVD_Mix_2to1 = 0x400,DVD_Mix_3to1 = 0x800,DVD_Mix_4to1 = 0x1000,DVD_Mix_Lto1 = 0x2000,
12699     DVD_Mix_Rto1 = 0x4000
12700   } DVD_KARAOKE_DOWNMIX;
12701 
12702   typedef struct tagDVD_AudioAttributes {
12703     DVD_AUDIO_APPMODE AppMode;
12704     BYTE AppModeData;
12705     DVD_AUDIO_FORMAT AudioFormat;
12706     LCID Language;
12707     DVD_AUDIO_LANG_EXT LanguageExtension;
12708     WINBOOL fHasMultichannelInfo;
12709     DWORD dwFrequency;
12710     BYTE bQuantization;
12711     BYTE bNumberOfChannels;
12712     DWORD dwReserved[2];
12713   } DVD_AudioAttributes;
12714 
12715   typedef struct tagDVD_MUA_MixingInfo {
12716     WINBOOL fMixTo0;
12717     WINBOOL fMixTo1;
12718     WINBOOL fMix0InPhase;
12719     WINBOOL fMix1InPhase;
12720     DWORD dwSpeakerPosition;
12721   } DVD_MUA_MixingInfo;
12722 
12723   typedef struct tagDVD_MUA_Coeff {
12724     double log2_alpha;
12725     double log2_beta;
12726   } DVD_MUA_Coeff;
12727 
12728   typedef struct tagDVD_MultichannelAudioAttributes {
12729     DVD_MUA_MixingInfo Info[8];
12730     DVD_MUA_Coeff Coeff[8];
12731   } DVD_MultichannelAudioAttributes;
12732 
12733   typedef enum tagDVD_KARAOKE_CONTENTS {
12734     DVD_Karaoke_GuideVocal1 = 0x1,DVD_Karaoke_GuideVocal2 = 0x2,DVD_Karaoke_GuideMelody1 = 0x4,DVD_Karaoke_GuideMelody2 = 0x8,
12735     DVD_Karaoke_GuideMelodyA = 0x10,DVD_Karaoke_GuideMelodyB = 0x20,DVD_Karaoke_SoundEffectA = 0x40,DVD_Karaoke_SoundEffectB = 0x80
12736   } DVD_KARAOKE_CONTENTS;
12737 
12738   typedef enum tagDVD_KARAOKE_ASSIGNMENT {
12739     DVD_Assignment_reserved0 = 0,DVD_Assignment_reserved1 = 1,DVD_Assignment_LR = 2,DVD_Assignment_LRM = 3,DVD_Assignment_LR1 = 4,
12740     DVD_Assignment_LRM1 = 5,DVD_Assignment_LR12 = 6,DVD_Assignment_LRM12 = 7
12741   } DVD_KARAOKE_ASSIGNMENT;
12742 
12743   typedef struct tagDVD_KaraokeAttributes {
12744     BYTE bVersion;
12745     WINBOOL fMasterOfCeremoniesInGuideVocal1;
12746     WINBOOL fDuet;
12747     DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
12748     WORD wChannelContents[8];
12749   } DVD_KaraokeAttributes;
12750 
12751   typedef enum tagDVD_VIDEO_COMPRESSION {
12752     DVD_VideoCompression_Other = 0,DVD_VideoCompression_MPEG1 = 1,DVD_VideoCompression_MPEG2 = 2
12753   } DVD_VIDEO_COMPRESSION;
12754 
12755   typedef struct tagDVD_VideoAttributes {
12756     WINBOOL fPanscanPermitted;
12757     WINBOOL fLetterboxPermitted;
12758     ULONG ulAspectX;
12759     ULONG ulAspectY;
12760     ULONG ulFrameRate;
12761     ULONG ulFrameHeight;
12762     DVD_VIDEO_COMPRESSION Compression;
12763     WINBOOL fLine21Field1InGOP;
12764     WINBOOL fLine21Field2InGOP;
12765     ULONG ulSourceResolutionX;
12766     ULONG ulSourceResolutionY;
12767     WINBOOL fIsSourceLetterboxed;
12768     WINBOOL fIsFilmMode;
12769   } DVD_VideoAttributes;
12770 
12771   typedef enum tagDVD_SUBPICTURE_TYPE {
12772     DVD_SPType_NotSpecified = 0,DVD_SPType_Language = 1,DVD_SPType_Other = 2
12773   } DVD_SUBPICTURE_TYPE;
12774 
12775   typedef enum tagDVD_SUBPICTURE_CODING {
12776     DVD_SPCoding_RunLength = 0,DVD_SPCoding_Extended = 1,DVD_SPCoding_Other = 2
12777   } DVD_SUBPICTURE_CODING;
12778 
12779   typedef struct tagDVD_SubpictureAttributes {
12780     DVD_SUBPICTURE_TYPE Type;
12781     DVD_SUBPICTURE_CODING CodingMode;
12782     LCID Language;
12783     DVD_SUBPICTURE_LANG_EXT LanguageExtension;
12784   } DVD_SubpictureAttributes;
12785 
12786   typedef enum tagDVD_TITLE_APPMODE {
12787     DVD_AppMode_Not_Specified = 0,DVD_AppMode_Karaoke = 1,DVD_AppMode_Other = 3
12788   } DVD_TITLE_APPMODE;
12789 
12790   typedef struct tagDVD_TitleMainAttributes {
12791     DVD_TITLE_APPMODE AppMode;
12792     DVD_VideoAttributes VideoAttributes;
12793     ULONG ulNumberOfAudioStreams;
12794     DVD_AudioAttributes AudioAttributes[8];
12795     DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8];
12796     ULONG ulNumberOfSubpictureStreams;
12797     DVD_SubpictureAttributes SubpictureAttributes[32];
12798   } DVD_TitleAttributes;
12799 
12800   typedef struct tagDVD_MenuAttributes {
12801     WINBOOL fCompatibleRegion[8];
12802     DVD_VideoAttributes VideoAttributes;
12803     WINBOOL fAudioPresent;
12804     DVD_AudioAttributes AudioAttributes;
12805     WINBOOL fSubpicturePresent;
12806     DVD_SubpictureAttributes SubpictureAttributes;
12807   } DVD_MenuAttributes;
12808 
12809   extern RPC_IF_HANDLE __MIDL_itf_strmif_0376_v0_0_c_ifspec;
12810   extern RPC_IF_HANDLE __MIDL_itf_strmif_0376_v0_0_s_ifspec;
12811 #ifndef __IDvdControl_INTERFACE_DEFINED__
12812 #define __IDvdControl_INTERFACE_DEFINED__
12813   EXTERN_C const IID IID_IDvdControl;
12814 #if defined(__cplusplus) && !defined(CINTERFACE)
12815   struct IDvdControl : public IUnknown {
12816   public:
12817     virtual HRESULT WINAPI TitlePlay(ULONG ulTitle) = 0;
12818     virtual HRESULT WINAPI ChapterPlay(ULONG ulTitle,ULONG ulChapter) = 0;
12819     virtual HRESULT WINAPI TimePlay(ULONG ulTitle,ULONG bcdTime) = 0;
12820     virtual HRESULT WINAPI StopForResume(void) = 0;
12821     virtual HRESULT WINAPI GoUp(void) = 0;
12822     virtual HRESULT WINAPI TimeSearch(ULONG bcdTime) = 0;
12823     virtual HRESULT WINAPI ChapterSearch(ULONG ulChapter) = 0;
12824     virtual HRESULT WINAPI PrevPGSearch(void) = 0;
12825     virtual HRESULT WINAPI TopPGSearch(void) = 0;
12826     virtual HRESULT WINAPI NextPGSearch(void) = 0;
12827     virtual HRESULT WINAPI ForwardScan(double dwSpeed) = 0;
12828     virtual HRESULT WINAPI BackwardScan(double dwSpeed) = 0;
12829     virtual HRESULT WINAPI MenuCall(DVD_MENU_ID MenuID) = 0;
12830     virtual HRESULT WINAPI Resume(void) = 0;
12831     virtual HRESULT WINAPI UpperButtonSelect(void) = 0;
12832     virtual HRESULT WINAPI LowerButtonSelect(void) = 0;
12833     virtual HRESULT WINAPI LeftButtonSelect(void) = 0;
12834     virtual HRESULT WINAPI RightButtonSelect(void) = 0;
12835     virtual HRESULT WINAPI ButtonActivate(void) = 0;
12836     virtual HRESULT WINAPI ButtonSelectAndActivate(ULONG ulButton) = 0;
12837     virtual HRESULT WINAPI StillOff(void) = 0;
12838     virtual HRESULT WINAPI PauseOn(void) = 0;
12839     virtual HRESULT WINAPI PauseOff(void) = 0;
12840     virtual HRESULT WINAPI MenuLanguageSelect(LCID Language) = 0;
12841     virtual HRESULT WINAPI AudioStreamChange(ULONG ulAudio) = 0;
12842     virtual HRESULT WINAPI SubpictureStreamChange(ULONG ulSubPicture,WINBOOL bDisplay) = 0;
12843     virtual HRESULT WINAPI AngleChange(ULONG ulAngle) = 0;
12844     virtual HRESULT WINAPI ParentalLevelSelect(ULONG ulParentalLevel) = 0;
12845     virtual HRESULT WINAPI ParentalCountrySelect(WORD wCountry) = 0;
12846     virtual HRESULT WINAPI KaraokeAudioPresentationModeChange(ULONG ulMode) = 0;
12847     virtual HRESULT WINAPI VideoModePreferrence(ULONG ulPreferredDisplayMode) = 0;
12848     virtual HRESULT WINAPI SetRoot(LPCWSTR pszPath) = 0;
12849     virtual HRESULT WINAPI MouseActivate(POINT point) = 0;
12850     virtual HRESULT WINAPI MouseSelect(POINT point) = 0;
12851     virtual HRESULT WINAPI ChapterPlayAutoStop(ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay) = 0;
12852   };
12853 #else
12854   typedef struct IDvdControlVtbl {
12855     BEGIN_INTERFACE
12856       HRESULT (WINAPI *QueryInterface)(IDvdControl *This,REFIID riid,void **ppvObject);
12857       ULONG (WINAPI *AddRef)(IDvdControl *This);
12858       ULONG (WINAPI *Release)(IDvdControl *This);
12859       HRESULT (WINAPI *TitlePlay)(IDvdControl *This,ULONG ulTitle);
12860       HRESULT (WINAPI *ChapterPlay)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter);
12861       HRESULT (WINAPI *TimePlay)(IDvdControl *This,ULONG ulTitle,ULONG bcdTime);
12862       HRESULT (WINAPI *StopForResume)(IDvdControl *This);
12863       HRESULT (WINAPI *GoUp)(IDvdControl *This);
12864       HRESULT (WINAPI *TimeSearch)(IDvdControl *This,ULONG bcdTime);
12865       HRESULT (WINAPI *ChapterSearch)(IDvdControl *This,ULONG ulChapter);
12866       HRESULT (WINAPI *PrevPGSearch)(IDvdControl *This);
12867       HRESULT (WINAPI *TopPGSearch)(IDvdControl *This);
12868       HRESULT (WINAPI *NextPGSearch)(IDvdControl *This);
12869       HRESULT (WINAPI *ForwardScan)(IDvdControl *This,double dwSpeed);
12870       HRESULT (WINAPI *BackwardScan)(IDvdControl *This,double dwSpeed);
12871       HRESULT (WINAPI *MenuCall)(IDvdControl *This,DVD_MENU_ID MenuID);
12872       HRESULT (WINAPI *Resume)(IDvdControl *This);
12873       HRESULT (WINAPI *UpperButtonSelect)(IDvdControl *This);
12874       HRESULT (WINAPI *LowerButtonSelect)(IDvdControl *This);
12875       HRESULT (WINAPI *LeftButtonSelect)(IDvdControl *This);
12876       HRESULT (WINAPI *RightButtonSelect)(IDvdControl *This);
12877       HRESULT (WINAPI *ButtonActivate)(IDvdControl *This);
12878       HRESULT (WINAPI *ButtonSelectAndActivate)(IDvdControl *This,ULONG ulButton);
12879       HRESULT (WINAPI *StillOff)(IDvdControl *This);
12880       HRESULT (WINAPI *PauseOn)(IDvdControl *This);
12881       HRESULT (WINAPI *PauseOff)(IDvdControl *This);
12882       HRESULT (WINAPI *MenuLanguageSelect)(IDvdControl *This,LCID Language);
12883       HRESULT (WINAPI *AudioStreamChange)(IDvdControl *This,ULONG ulAudio);
12884       HRESULT (WINAPI *SubpictureStreamChange)(IDvdControl *This,ULONG ulSubPicture,WINBOOL bDisplay);
12885       HRESULT (WINAPI *AngleChange)(IDvdControl *This,ULONG ulAngle);
12886       HRESULT (WINAPI *ParentalLevelSelect)(IDvdControl *This,ULONG ulParentalLevel);
12887       HRESULT (WINAPI *ParentalCountrySelect)(IDvdControl *This,WORD wCountry);
12888       HRESULT (WINAPI *KaraokeAudioPresentationModeChange)(IDvdControl *This,ULONG ulMode);
12889       HRESULT (WINAPI *VideoModePreferrence)(IDvdControl *This,ULONG ulPreferredDisplayMode);
12890       HRESULT (WINAPI *SetRoot)(IDvdControl *This,LPCWSTR pszPath);
12891       HRESULT (WINAPI *MouseActivate)(IDvdControl *This,POINT point);
12892       HRESULT (WINAPI *MouseSelect)(IDvdControl *This,POINT point);
12893       HRESULT (WINAPI *ChapterPlayAutoStop)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
12894     END_INTERFACE
12895   } IDvdControlVtbl;
12896   struct IDvdControl {
12897     CONST_VTBL struct IDvdControlVtbl *lpVtbl;
12898   };
12899 #ifdef COBJMACROS
12900 #define IDvdControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12901 #define IDvdControl_AddRef(This) (This)->lpVtbl->AddRef(This)
12902 #define IDvdControl_Release(This) (This)->lpVtbl->Release(This)
12903 #define IDvdControl_TitlePlay(This,ulTitle) (This)->lpVtbl->TitlePlay(This,ulTitle)
12904 #define IDvdControl_ChapterPlay(This,ulTitle,ulChapter) (This)->lpVtbl->ChapterPlay(This,ulTitle,ulChapter)
12905 #define IDvdControl_TimePlay(This,ulTitle,bcdTime) (This)->lpVtbl->TimePlay(This,ulTitle,bcdTime)
12906 #define IDvdControl_StopForResume(This) (This)->lpVtbl->StopForResume(This)
12907 #define IDvdControl_GoUp(This) (This)->lpVtbl->GoUp(This)
12908 #define IDvdControl_TimeSearch(This,bcdTime) (This)->lpVtbl->TimeSearch(This,bcdTime)
12909 #define IDvdControl_ChapterSearch(This,ulChapter) (This)->lpVtbl->ChapterSearch(This,ulChapter)
12910 #define IDvdControl_PrevPGSearch(This) (This)->lpVtbl->PrevPGSearch(This)
12911 #define IDvdControl_TopPGSearch(This) (This)->lpVtbl->TopPGSearch(This)
12912 #define IDvdControl_NextPGSearch(This) (This)->lpVtbl->NextPGSearch(This)
12913 #define IDvdControl_ForwardScan(This,dwSpeed) (This)->lpVtbl->ForwardScan(This,dwSpeed)
12914 #define IDvdControl_BackwardScan(This,dwSpeed) (This)->lpVtbl->BackwardScan(This,dwSpeed)
12915 #define IDvdControl_MenuCall(This,MenuID) (This)->lpVtbl->MenuCall(This,MenuID)
12916 #define IDvdControl_Resume(This) (This)->lpVtbl->Resume(This)
12917 #define IDvdControl_UpperButtonSelect(This) (This)->lpVtbl->UpperButtonSelect(This)
12918 #define IDvdControl_LowerButtonSelect(This) (This)->lpVtbl->LowerButtonSelect(This)
12919 #define IDvdControl_LeftButtonSelect(This) (This)->lpVtbl->LeftButtonSelect(This)
12920 #define IDvdControl_RightButtonSelect(This) (This)->lpVtbl->RightButtonSelect(This)
12921 #define IDvdControl_ButtonActivate(This) (This)->lpVtbl->ButtonActivate(This)
12922 #define IDvdControl_ButtonSelectAndActivate(This,ulButton) (This)->lpVtbl->ButtonSelectAndActivate(This,ulButton)
12923 #define IDvdControl_StillOff(This) (This)->lpVtbl->StillOff(This)
12924 #define IDvdControl_PauseOn(This) (This)->lpVtbl->PauseOn(This)
12925 #define IDvdControl_PauseOff(This) (This)->lpVtbl->PauseOff(This)
12926 #define IDvdControl_MenuLanguageSelect(This,Language) (This)->lpVtbl->MenuLanguageSelect(This,Language)
12927 #define IDvdControl_AudioStreamChange(This,ulAudio) (This)->lpVtbl->AudioStreamChange(This,ulAudio)
12928 #define IDvdControl_SubpictureStreamChange(This,ulSubPicture,bDisplay) (This)->lpVtbl->SubpictureStreamChange(This,ulSubPicture,bDisplay)
12929 #define IDvdControl_AngleChange(This,ulAngle) (This)->lpVtbl->AngleChange(This,ulAngle)
12930 #define IDvdControl_ParentalLevelSelect(This,ulParentalLevel) (This)->lpVtbl->ParentalLevelSelect(This,ulParentalLevel)
12931 #define IDvdControl_ParentalCountrySelect(This,wCountry) (This)->lpVtbl->ParentalCountrySelect(This,wCountry)
12932 #define IDvdControl_KaraokeAudioPresentationModeChange(This,ulMode) (This)->lpVtbl->KaraokeAudioPresentationModeChange(This,ulMode)
12933 #define IDvdControl_VideoModePreferrence(This,ulPreferredDisplayMode) (This)->lpVtbl->VideoModePreferrence(This,ulPreferredDisplayMode)
12934 #define IDvdControl_SetRoot(This,pszPath) (This)->lpVtbl->SetRoot(This,pszPath)
12935 #define IDvdControl_MouseActivate(This,point) (This)->lpVtbl->MouseActivate(This,point)
12936 #define IDvdControl_MouseSelect(This,point) (This)->lpVtbl->MouseSelect(This,point)
12937 #define IDvdControl_ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay) (This)->lpVtbl->ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay)
12938 #endif
12939 #endif
12940   HRESULT WINAPI IDvdControl_TitlePlay_Proxy(IDvdControl *This,ULONG ulTitle);
12941   void __RPC_STUB IDvdControl_TitlePlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12942   HRESULT WINAPI IDvdControl_ChapterPlay_Proxy(IDvdControl *This,ULONG ulTitle,ULONG ulChapter);
12943   void __RPC_STUB IDvdControl_ChapterPlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12944   HRESULT WINAPI IDvdControl_TimePlay_Proxy(IDvdControl *This,ULONG ulTitle,ULONG bcdTime);
12945   void __RPC_STUB IDvdControl_TimePlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12946   HRESULT WINAPI IDvdControl_StopForResume_Proxy(IDvdControl *This);
12947   void __RPC_STUB IDvdControl_StopForResume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12948   HRESULT WINAPI IDvdControl_GoUp_Proxy(IDvdControl *This);
12949   void __RPC_STUB IDvdControl_GoUp_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12950   HRESULT WINAPI IDvdControl_TimeSearch_Proxy(IDvdControl *This,ULONG bcdTime);
12951   void __RPC_STUB IDvdControl_TimeSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12952   HRESULT WINAPI IDvdControl_ChapterSearch_Proxy(IDvdControl *This,ULONG ulChapter);
12953   void __RPC_STUB IDvdControl_ChapterSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12954   HRESULT WINAPI IDvdControl_PrevPGSearch_Proxy(IDvdControl *This);
12955   void __RPC_STUB IDvdControl_PrevPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12956   HRESULT WINAPI IDvdControl_TopPGSearch_Proxy(IDvdControl *This);
12957   void __RPC_STUB IDvdControl_TopPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12958   HRESULT WINAPI IDvdControl_NextPGSearch_Proxy(IDvdControl *This);
12959   void __RPC_STUB IDvdControl_NextPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12960   HRESULT WINAPI IDvdControl_ForwardScan_Proxy(IDvdControl *This,double dwSpeed);
12961   void __RPC_STUB IDvdControl_ForwardScan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12962   HRESULT WINAPI IDvdControl_BackwardScan_Proxy(IDvdControl *This,double dwSpeed);
12963   void __RPC_STUB IDvdControl_BackwardScan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12964   HRESULT WINAPI IDvdControl_MenuCall_Proxy(IDvdControl *This,DVD_MENU_ID MenuID);
12965   void __RPC_STUB IDvdControl_MenuCall_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12966   HRESULT WINAPI IDvdControl_Resume_Proxy(IDvdControl *This);
12967   void __RPC_STUB IDvdControl_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12968   HRESULT WINAPI IDvdControl_UpperButtonSelect_Proxy(IDvdControl *This);
12969   void __RPC_STUB IDvdControl_UpperButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12970   HRESULT WINAPI IDvdControl_LowerButtonSelect_Proxy(IDvdControl *This);
12971   void __RPC_STUB IDvdControl_LowerButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12972   HRESULT WINAPI IDvdControl_LeftButtonSelect_Proxy(IDvdControl *This);
12973   void __RPC_STUB IDvdControl_LeftButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12974   HRESULT WINAPI IDvdControl_RightButtonSelect_Proxy(IDvdControl *This);
12975   void __RPC_STUB IDvdControl_RightButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12976   HRESULT WINAPI IDvdControl_ButtonActivate_Proxy(IDvdControl *This);
12977   void __RPC_STUB IDvdControl_ButtonActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12978   HRESULT WINAPI IDvdControl_ButtonSelectAndActivate_Proxy(IDvdControl *This,ULONG ulButton);
12979   void __RPC_STUB IDvdControl_ButtonSelectAndActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12980   HRESULT WINAPI IDvdControl_StillOff_Proxy(IDvdControl *This);
12981   void __RPC_STUB IDvdControl_StillOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12982   HRESULT WINAPI IDvdControl_PauseOn_Proxy(IDvdControl *This);
12983   void __RPC_STUB IDvdControl_PauseOn_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12984   HRESULT WINAPI IDvdControl_PauseOff_Proxy(IDvdControl *This);
12985   void __RPC_STUB IDvdControl_PauseOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12986   HRESULT WINAPI IDvdControl_MenuLanguageSelect_Proxy(IDvdControl *This,LCID Language);
12987   void __RPC_STUB IDvdControl_MenuLanguageSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12988   HRESULT WINAPI IDvdControl_AudioStreamChange_Proxy(IDvdControl *This,ULONG ulAudio);
12989   void __RPC_STUB IDvdControl_AudioStreamChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12990   HRESULT WINAPI IDvdControl_SubpictureStreamChange_Proxy(IDvdControl *This,ULONG ulSubPicture,WINBOOL bDisplay);
12991   void __RPC_STUB IDvdControl_SubpictureStreamChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12992   HRESULT WINAPI IDvdControl_AngleChange_Proxy(IDvdControl *This,ULONG ulAngle);
12993   void __RPC_STUB IDvdControl_AngleChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12994   HRESULT WINAPI IDvdControl_ParentalLevelSelect_Proxy(IDvdControl *This,ULONG ulParentalLevel);
12995   void __RPC_STUB IDvdControl_ParentalLevelSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12996   HRESULT WINAPI IDvdControl_ParentalCountrySelect_Proxy(IDvdControl *This,WORD wCountry);
12997   void __RPC_STUB IDvdControl_ParentalCountrySelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12998   HRESULT WINAPI IDvdControl_KaraokeAudioPresentationModeChange_Proxy(IDvdControl *This,ULONG ulMode);
12999   void __RPC_STUB IDvdControl_KaraokeAudioPresentationModeChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13000   HRESULT WINAPI IDvdControl_VideoModePreferrence_Proxy(IDvdControl *This,ULONG ulPreferredDisplayMode);
13001   void __RPC_STUB IDvdControl_VideoModePreferrence_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13002   HRESULT WINAPI IDvdControl_SetRoot_Proxy(IDvdControl *This,LPCWSTR pszPath);
13003   void __RPC_STUB IDvdControl_SetRoot_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13004   HRESULT WINAPI IDvdControl_MouseActivate_Proxy(IDvdControl *This,POINT point);
13005   void __RPC_STUB IDvdControl_MouseActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13006   HRESULT WINAPI IDvdControl_MouseSelect_Proxy(IDvdControl *This,POINT point);
13007   void __RPC_STUB IDvdControl_MouseSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13008   HRESULT WINAPI IDvdControl_ChapterPlayAutoStop_Proxy(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
13009   void __RPC_STUB IDvdControl_ChapterPlayAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13010 #endif
13011 
13012 #ifndef __IDvdInfo_INTERFACE_DEFINED__
13013 #define __IDvdInfo_INTERFACE_DEFINED__
13014   EXTERN_C const IID IID_IDvdInfo;
13015 #if defined(__cplusplus) && !defined(CINTERFACE)
13016   struct IDvdInfo : public IUnknown {
13017   public:
13018     virtual HRESULT WINAPI GetCurrentDomain(DVD_DOMAIN *pDomain) = 0;
13019     virtual HRESULT WINAPI GetCurrentLocation(DVD_PLAYBACK_LOCATION *pLocation) = 0;
13020     virtual HRESULT WINAPI GetTotalTitleTime(ULONG *pulTotalTime) = 0;
13021     virtual HRESULT WINAPI GetCurrentButton(ULONG *pulButtonsAvailable,ULONG *pulCurrentButton) = 0;
13022     virtual HRESULT WINAPI GetCurrentAngle(ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle) = 0;
13023     virtual HRESULT WINAPI GetCurrentAudio(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream) = 0;
13024     virtual HRESULT WINAPI GetCurrentSubpicture(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled) = 0;
13025     virtual HRESULT WINAPI GetCurrentUOPS(VALID_UOP_SOMTHING_OR_OTHER *pUOP) = 0;
13026     virtual HRESULT WINAPI GetAllSPRMs(SPRMARRAY *pRegisterArray) = 0;
13027     virtual HRESULT WINAPI GetAllGPRMs(GPRMARRAY *pRegisterArray) = 0;
13028     virtual HRESULT WINAPI GetAudioLanguage(ULONG ulStream,LCID *pLanguage) = 0;
13029     virtual HRESULT WINAPI GetSubpictureLanguage(ULONG ulStream,LCID *pLanguage) = 0;
13030     virtual HRESULT WINAPI GetTitleAttributes(ULONG ulTitle,DVD_ATR *pATR) = 0;
13031     virtual HRESULT WINAPI GetVMGAttributes(DVD_ATR *pATR) = 0;
13032     virtual HRESULT WINAPI GetCurrentVideoAttributes(DVD_VideoATR *pATR) = 0;
13033     virtual HRESULT WINAPI GetCurrentAudioAttributes(DVD_AudioATR *pATR) = 0;
13034     virtual HRESULT WINAPI GetCurrentSubpictureAttributes(DVD_SubpictureATR *pATR) = 0;
13035     virtual HRESULT WINAPI GetCurrentVolumeInfo(ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles) = 0;
13036     virtual HRESULT WINAPI GetDVDTextInfo(BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize) = 0;
13037     virtual HRESULT WINAPI GetPlayerParentalLevel(ULONG *pulParentalLevel,ULONG *pulCountryCode) = 0;
13038     virtual HRESULT WINAPI GetNumberOfChapters(ULONG ulTitle,ULONG *pulNumberOfChapters) = 0;
13039     virtual HRESULT WINAPI GetTitleParentalLevels(ULONG ulTitle,ULONG *pulParentalLevels) = 0;
13040     virtual HRESULT WINAPI GetRoot(LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize) = 0;
13041   };
13042 #else
13043   typedef struct IDvdInfoVtbl {
13044     BEGIN_INTERFACE
13045       HRESULT (WINAPI *QueryInterface)(IDvdInfo *This,REFIID riid,void **ppvObject);
13046       ULONG (WINAPI *AddRef)(IDvdInfo *This);
13047       ULONG (WINAPI *Release)(IDvdInfo *This);
13048       HRESULT (WINAPI *GetCurrentDomain)(IDvdInfo *This,DVD_DOMAIN *pDomain);
13049       HRESULT (WINAPI *GetCurrentLocation)(IDvdInfo *This,DVD_PLAYBACK_LOCATION *pLocation);
13050       HRESULT (WINAPI *GetTotalTitleTime)(IDvdInfo *This,ULONG *pulTotalTime);
13051       HRESULT (WINAPI *GetCurrentButton)(IDvdInfo *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
13052       HRESULT (WINAPI *GetCurrentAngle)(IDvdInfo *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
13053       HRESULT (WINAPI *GetCurrentAudio)(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
13054       HRESULT (WINAPI *GetCurrentSubpicture)(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled);
13055       HRESULT (WINAPI *GetCurrentUOPS)(IDvdInfo *This,VALID_UOP_SOMTHING_OR_OTHER *pUOP);
13056       HRESULT (WINAPI *GetAllSPRMs)(IDvdInfo *This,SPRMARRAY *pRegisterArray);
13057       HRESULT (WINAPI *GetAllGPRMs)(IDvdInfo *This,GPRMARRAY *pRegisterArray);
13058       HRESULT (WINAPI *GetAudioLanguage)(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
13059       HRESULT (WINAPI *GetSubpictureLanguage)(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
13060       HRESULT (WINAPI *GetTitleAttributes)(IDvdInfo *This,ULONG ulTitle,DVD_ATR *pATR);
13061       HRESULT (WINAPI *GetVMGAttributes)(IDvdInfo *This,DVD_ATR *pATR);
13062       HRESULT (WINAPI *GetCurrentVideoAttributes)(IDvdInfo *This,DVD_VideoATR *pATR);
13063       HRESULT (WINAPI *GetCurrentAudioAttributes)(IDvdInfo *This,DVD_AudioATR *pATR);
13064       HRESULT (WINAPI *GetCurrentSubpictureAttributes)(IDvdInfo *This,DVD_SubpictureATR *pATR);
13065       HRESULT (WINAPI *GetCurrentVolumeInfo)(IDvdInfo *This,ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
13066       HRESULT (WINAPI *GetDVDTextInfo)(IDvdInfo *This,BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize);
13067       HRESULT (WINAPI *GetPlayerParentalLevel)(IDvdInfo *This,ULONG *pulParentalLevel,ULONG *pulCountryCode);
13068       HRESULT (WINAPI *GetNumberOfChapters)(IDvdInfo *This,ULONG ulTitle,ULONG *pulNumberOfChapters);
13069       HRESULT (WINAPI *GetTitleParentalLevels)(IDvdInfo *This,ULONG ulTitle,ULONG *pulParentalLevels);
13070       HRESULT (WINAPI *GetRoot)(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
13071     END_INTERFACE
13072   } IDvdInfoVtbl;
13073   struct IDvdInfo {
13074     CONST_VTBL struct IDvdInfoVtbl *lpVtbl;
13075   };
13076 #ifdef COBJMACROS
13077 #define IDvdInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13078 #define IDvdInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
13079 #define IDvdInfo_Release(This) (This)->lpVtbl->Release(This)
13080 #define IDvdInfo_GetCurrentDomain(This,pDomain) (This)->lpVtbl->GetCurrentDomain(This,pDomain)
13081 #define IDvdInfo_GetCurrentLocation(This,pLocation) (This)->lpVtbl->GetCurrentLocation(This,pLocation)
13082 #define IDvdInfo_GetTotalTitleTime(This,pulTotalTime) (This)->lpVtbl->GetTotalTitleTime(This,pulTotalTime)
13083 #define IDvdInfo_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton) (This)->lpVtbl->GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
13084 #define IDvdInfo_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle) (This)->lpVtbl->GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
13085 #define IDvdInfo_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream) (This)->lpVtbl->GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
13086 #define IDvdInfo_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled) (This)->lpVtbl->GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled)
13087 #define IDvdInfo_GetCurrentUOPS(This,pUOP) (This)->lpVtbl->GetCurrentUOPS(This,pUOP)
13088 #define IDvdInfo_GetAllSPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllSPRMs(This,pRegisterArray)
13089 #define IDvdInfo_GetAllGPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllGPRMs(This,pRegisterArray)
13090 #define IDvdInfo_GetAudioLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetAudioLanguage(This,ulStream,pLanguage)
13091 #define IDvdInfo_GetSubpictureLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetSubpictureLanguage(This,ulStream,pLanguage)
13092 #define IDvdInfo_GetTitleAttributes(This,ulTitle,pATR) (This)->lpVtbl->GetTitleAttributes(This,ulTitle,pATR)
13093 #define IDvdInfo_GetVMGAttributes(This,pATR) (This)->lpVtbl->GetVMGAttributes(This,pATR)
13094 #define IDvdInfo_GetCurrentVideoAttributes(This,pATR) (This)->lpVtbl->GetCurrentVideoAttributes(This,pATR)
13095 #define IDvdInfo_GetCurrentAudioAttributes(This,pATR) (This)->lpVtbl->GetCurrentAudioAttributes(This,pATR)
13096 #define IDvdInfo_GetCurrentSubpictureAttributes(This,pATR) (This)->lpVtbl->GetCurrentSubpictureAttributes(This,pATR)
13097 #define IDvdInfo_GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles) (This)->lpVtbl->GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles)
13098 #define IDvdInfo_GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize) (This)->lpVtbl->GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize)
13099 #define IDvdInfo_GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode) (This)->lpVtbl->GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode)
13100 #define IDvdInfo_GetNumberOfChapters(This,ulTitle,pulNumberOfChapters) (This)->lpVtbl->GetNumberOfChapters(This,ulTitle,pulNumberOfChapters)
13101 #define IDvdInfo_GetTitleParentalLevels(This,ulTitle,pulParentalLevels) (This)->lpVtbl->GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
13102 #define IDvdInfo_GetRoot(This,pRoot,ulBufSize,pulActualSize) (This)->lpVtbl->GetRoot(This,pRoot,ulBufSize,pulActualSize)
13103 #endif
13104 #endif
13105   HRESULT WINAPI IDvdInfo_GetCurrentDomain_Proxy(IDvdInfo *This,DVD_DOMAIN *pDomain);
13106   void __RPC_STUB IDvdInfo_GetCurrentDomain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13107   HRESULT WINAPI IDvdInfo_GetCurrentLocation_Proxy(IDvdInfo *This,DVD_PLAYBACK_LOCATION *pLocation);
13108   void __RPC_STUB IDvdInfo_GetCurrentLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13109   HRESULT WINAPI IDvdInfo_GetTotalTitleTime_Proxy(IDvdInfo *This,ULONG *pulTotalTime);
13110   void __RPC_STUB IDvdInfo_GetTotalTitleTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13111   HRESULT WINAPI IDvdInfo_GetCurrentButton_Proxy(IDvdInfo *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
13112   void __RPC_STUB IDvdInfo_GetCurrentButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13113   HRESULT WINAPI IDvdInfo_GetCurrentAngle_Proxy(IDvdInfo *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
13114   void __RPC_STUB IDvdInfo_GetCurrentAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13115   HRESULT WINAPI IDvdInfo_GetCurrentAudio_Proxy(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
13116   void __RPC_STUB IDvdInfo_GetCurrentAudio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13117   HRESULT WINAPI IDvdInfo_GetCurrentSubpicture_Proxy(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled);
13118   void __RPC_STUB IDvdInfo_GetCurrentSubpicture_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13119   HRESULT WINAPI IDvdInfo_GetCurrentUOPS_Proxy(IDvdInfo *This,VALID_UOP_SOMTHING_OR_OTHER *pUOP);
13120   void __RPC_STUB IDvdInfo_GetCurrentUOPS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13121   HRESULT WINAPI IDvdInfo_GetAllSPRMs_Proxy(IDvdInfo *This,SPRMARRAY *pRegisterArray);
13122   void __RPC_STUB IDvdInfo_GetAllSPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13123   HRESULT WINAPI IDvdInfo_GetAllGPRMs_Proxy(IDvdInfo *This,GPRMARRAY *pRegisterArray);
13124   void __RPC_STUB IDvdInfo_GetAllGPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13125   HRESULT WINAPI IDvdInfo_GetAudioLanguage_Proxy(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
13126   void __RPC_STUB IDvdInfo_GetAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13127   HRESULT WINAPI IDvdInfo_GetSubpictureLanguage_Proxy(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
13128   void __RPC_STUB IDvdInfo_GetSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13129   HRESULT WINAPI IDvdInfo_GetTitleAttributes_Proxy(IDvdInfo *This,ULONG ulTitle,DVD_ATR *pATR);
13130   void __RPC_STUB IDvdInfo_GetTitleAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13131   HRESULT WINAPI IDvdInfo_GetVMGAttributes_Proxy(IDvdInfo *This,DVD_ATR *pATR);
13132   void __RPC_STUB IDvdInfo_GetVMGAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13133   HRESULT WINAPI IDvdInfo_GetCurrentVideoAttributes_Proxy(IDvdInfo *This,DVD_VideoATR *pATR);
13134   void __RPC_STUB IDvdInfo_GetCurrentVideoAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13135   HRESULT WINAPI IDvdInfo_GetCurrentAudioAttributes_Proxy(IDvdInfo *This,DVD_AudioATR *pATR);
13136   void __RPC_STUB IDvdInfo_GetCurrentAudioAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13137   HRESULT WINAPI IDvdInfo_GetCurrentSubpictureAttributes_Proxy(IDvdInfo *This,DVD_SubpictureATR *pATR);
13138   void __RPC_STUB IDvdInfo_GetCurrentSubpictureAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13139   HRESULT WINAPI IDvdInfo_GetCurrentVolumeInfo_Proxy(IDvdInfo *This,ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
13140   void __RPC_STUB IDvdInfo_GetCurrentVolumeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13141   HRESULT WINAPI IDvdInfo_GetDVDTextInfo_Proxy(IDvdInfo *This,BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize);
13142   void __RPC_STUB IDvdInfo_GetDVDTextInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13143   HRESULT WINAPI IDvdInfo_GetPlayerParentalLevel_Proxy(IDvdInfo *This,ULONG *pulParentalLevel,ULONG *pulCountryCode);
13144   void __RPC_STUB IDvdInfo_GetPlayerParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13145   HRESULT WINAPI IDvdInfo_GetNumberOfChapters_Proxy(IDvdInfo *This,ULONG ulTitle,ULONG *pulNumberOfChapters);
13146   void __RPC_STUB IDvdInfo_GetNumberOfChapters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13147   HRESULT WINAPI IDvdInfo_GetTitleParentalLevels_Proxy(IDvdInfo *This,ULONG ulTitle,ULONG *pulParentalLevels);
13148   void __RPC_STUB IDvdInfo_GetTitleParentalLevels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13149   HRESULT WINAPI IDvdInfo_GetRoot_Proxy(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
13150   void __RPC_STUB IDvdInfo_GetRoot_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13151 #endif
13152 
13153 #ifndef __IDvdCmd_INTERFACE_DEFINED__
13154 #define __IDvdCmd_INTERFACE_DEFINED__
13155   EXTERN_C const IID IID_IDvdCmd;
13156 #if defined(__cplusplus) && !defined(CINTERFACE)
13157   struct IDvdCmd : public IUnknown {
13158   public:
13159     virtual HRESULT WINAPI WaitForStart(void) = 0;
13160     virtual HRESULT WINAPI WaitForEnd(void) = 0;
13161   };
13162 #else
13163   typedef struct IDvdCmdVtbl {
13164     BEGIN_INTERFACE
13165       HRESULT (WINAPI *QueryInterface)(IDvdCmd *This,REFIID riid,void **ppvObject);
13166       ULONG (WINAPI *AddRef)(IDvdCmd *This);
13167       ULONG (WINAPI *Release)(IDvdCmd *This);
13168       HRESULT (WINAPI *WaitForStart)(IDvdCmd *This);
13169       HRESULT (WINAPI *WaitForEnd)(IDvdCmd *This);
13170     END_INTERFACE
13171   } IDvdCmdVtbl;
13172   struct IDvdCmd {
13173     CONST_VTBL struct IDvdCmdVtbl *lpVtbl;
13174   };
13175 #ifdef COBJMACROS
13176 #define IDvdCmd_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13177 #define IDvdCmd_AddRef(This) (This)->lpVtbl->AddRef(This)
13178 #define IDvdCmd_Release(This) (This)->lpVtbl->Release(This)
13179 #define IDvdCmd_WaitForStart(This) (This)->lpVtbl->WaitForStart(This)
13180 #define IDvdCmd_WaitForEnd(This) (This)->lpVtbl->WaitForEnd(This)
13181 #endif
13182 #endif
13183   HRESULT WINAPI IDvdCmd_WaitForStart_Proxy(IDvdCmd *This);
13184   void __RPC_STUB IDvdCmd_WaitForStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13185   HRESULT WINAPI IDvdCmd_WaitForEnd_Proxy(IDvdCmd *This);
13186   void __RPC_STUB IDvdCmd_WaitForEnd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13187 #endif
13188 
13189 #ifndef __IDvdState_INTERFACE_DEFINED__
13190 #define __IDvdState_INTERFACE_DEFINED__
13191   EXTERN_C const IID IID_IDvdState;
13192 #if defined(__cplusplus) && !defined(CINTERFACE)
13193   struct IDvdState : public IUnknown {
13194   public:
13195     virtual HRESULT WINAPI GetDiscID(ULONGLONG *pullUniqueID) = 0;
13196     virtual HRESULT WINAPI GetParentalLevel(ULONG *pulParentalLevel) = 0;
13197   };
13198 #else
13199   typedef struct IDvdStateVtbl {
13200     BEGIN_INTERFACE
13201       HRESULT (WINAPI *QueryInterface)(IDvdState *This,REFIID riid,void **ppvObject);
13202       ULONG (WINAPI *AddRef)(IDvdState *This);
13203       ULONG (WINAPI *Release)(IDvdState *This);
13204       HRESULT (WINAPI *GetDiscID)(IDvdState *This,ULONGLONG *pullUniqueID);
13205       HRESULT (WINAPI *GetParentalLevel)(IDvdState *This,ULONG *pulParentalLevel);
13206     END_INTERFACE
13207   } IDvdStateVtbl;
13208   struct IDvdState {
13209     CONST_VTBL struct IDvdStateVtbl *lpVtbl;
13210   };
13211 #ifdef COBJMACROS
13212 #define IDvdState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13213 #define IDvdState_AddRef(This) (This)->lpVtbl->AddRef(This)
13214 #define IDvdState_Release(This) (This)->lpVtbl->Release(This)
13215 #define IDvdState_GetDiscID(This,pullUniqueID) (This)->lpVtbl->GetDiscID(This,pullUniqueID)
13216 #define IDvdState_GetParentalLevel(This,pulParentalLevel) (This)->lpVtbl->GetParentalLevel(This,pulParentalLevel)
13217 #endif
13218 #endif
13219   HRESULT WINAPI IDvdState_GetDiscID_Proxy(IDvdState *This,ULONGLONG *pullUniqueID);
13220   void __RPC_STUB IDvdState_GetDiscID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13221   HRESULT WINAPI IDvdState_GetParentalLevel_Proxy(IDvdState *This,ULONG *pulParentalLevel);
13222   void __RPC_STUB IDvdState_GetParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13223 #endif
13224 
13225 #ifndef __IDvdControl2_INTERFACE_DEFINED__
13226 #define __IDvdControl2_INTERFACE_DEFINED__
13227   EXTERN_C const IID IID_IDvdControl2;
13228 #if defined(__cplusplus) && !defined(CINTERFACE)
13229   struct IDvdControl2 : public IUnknown {
13230   public:
13231     virtual HRESULT WINAPI PlayTitle(ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13232     virtual HRESULT WINAPI PlayChapterInTitle(ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13233     virtual HRESULT WINAPI PlayAtTimeInTitle(ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13234     virtual HRESULT WINAPI Stop(void) = 0;
13235     virtual HRESULT WINAPI ReturnFromSubmenu(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13236     virtual HRESULT WINAPI PlayAtTime(DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13237     virtual HRESULT WINAPI PlayChapter(ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13238     virtual HRESULT WINAPI PlayPrevChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13239     virtual HRESULT WINAPI ReplayChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13240     virtual HRESULT WINAPI PlayNextChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13241     virtual HRESULT WINAPI PlayForwards(double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13242     virtual HRESULT WINAPI PlayBackwards(double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13243     virtual HRESULT WINAPI ShowMenu(DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13244     virtual HRESULT WINAPI Resume(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13245     virtual HRESULT WINAPI SelectRelativeButton(DVD_RELATIVE_BUTTON buttonDir) = 0;
13246     virtual HRESULT WINAPI ActivateButton(void) = 0;
13247     virtual HRESULT WINAPI SelectButton(ULONG ulButton) = 0;
13248     virtual HRESULT WINAPI SelectAndActivateButton(ULONG ulButton) = 0;
13249     virtual HRESULT WINAPI StillOff(void) = 0;
13250     virtual HRESULT WINAPI Pause(WINBOOL bState) = 0;
13251     virtual HRESULT WINAPI SelectAudioStream(ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13252     virtual HRESULT WINAPI SelectSubpictureStream(ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13253     virtual HRESULT WINAPI SetSubpictureState(WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13254     virtual HRESULT WINAPI SelectAngle(ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13255     virtual HRESULT WINAPI SelectParentalLevel(ULONG ulParentalLevel) = 0;
13256     virtual HRESULT WINAPI SelectParentalCountry(BYTE bCountry[2]) = 0;
13257     virtual HRESULT WINAPI SelectKaraokeAudioPresentationMode(ULONG ulMode) = 0;
13258     virtual HRESULT WINAPI SelectVideoModePreference(ULONG ulPreferredDisplayMode) = 0;
13259     virtual HRESULT WINAPI SetDVDDirectory(LPCWSTR pszwPath) = 0;
13260     virtual HRESULT WINAPI ActivateAtPosition(POINT point) = 0;
13261     virtual HRESULT WINAPI SelectAtPosition(POINT point) = 0;
13262     virtual HRESULT WINAPI PlayChaptersAutoStop(ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13263     virtual HRESULT WINAPI AcceptParentalLevelChange(WINBOOL bAccept) = 0;
13264     virtual HRESULT WINAPI SetOption(DVD_OPTION_FLAG flag,WINBOOL fState) = 0;
13265     virtual HRESULT WINAPI SetState(IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13266     virtual HRESULT WINAPI PlayPeriodInTitleAutoStop(ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13267     virtual HRESULT WINAPI SetGPRM(ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
13268     virtual HRESULT WINAPI SelectDefaultMenuLanguage(LCID Language) = 0;
13269     virtual HRESULT WINAPI SelectDefaultAudioLanguage(LCID Language,DVD_AUDIO_LANG_EXT audioExtension) = 0;
13270     virtual HRESULT WINAPI SelectDefaultSubpictureLanguage(LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension) = 0;
13271   };
13272 #else
13273   typedef struct IDvdControl2Vtbl {
13274     BEGIN_INTERFACE
13275       HRESULT (WINAPI *QueryInterface)(IDvdControl2 *This,REFIID riid,void **ppvObject);
13276       ULONG (WINAPI *AddRef)(IDvdControl2 *This);
13277       ULONG (WINAPI *Release)(IDvdControl2 *This);
13278       HRESULT (WINAPI *PlayTitle)(IDvdControl2 *This,ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd);
13279       HRESULT (WINAPI *PlayChapterInTitle)(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
13280       HRESULT (WINAPI *PlayAtTimeInTitle)(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd);
13281       HRESULT (WINAPI *Stop)(IDvdControl2 *This);
13282       HRESULT (WINAPI *ReturnFromSubmenu)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
13283       HRESULT (WINAPI *PlayAtTime)(IDvdControl2 *This,DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd);
13284       HRESULT (WINAPI *PlayChapter)(IDvdControl2 *This,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
13285       HRESULT (WINAPI *PlayPrevChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
13286       HRESULT (WINAPI *ReplayChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
13287       HRESULT (WINAPI *PlayNextChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
13288       HRESULT (WINAPI *PlayForwards)(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
13289       HRESULT (WINAPI *PlayBackwards)(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
13290       HRESULT (WINAPI *ShowMenu)(IDvdControl2 *This,DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd);
13291       HRESULT (WINAPI *Resume)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
13292       HRESULT (WINAPI *SelectRelativeButton)(IDvdControl2 *This,DVD_RELATIVE_BUTTON buttonDir);
13293       HRESULT (WINAPI *ActivateButton)(IDvdControl2 *This);
13294       HRESULT (WINAPI *SelectButton)(IDvdControl2 *This,ULONG ulButton);
13295       HRESULT (WINAPI *SelectAndActivateButton)(IDvdControl2 *This,ULONG ulButton);
13296       HRESULT (WINAPI *StillOff)(IDvdControl2 *This);
13297       HRESULT (WINAPI *Pause)(IDvdControl2 *This,WINBOOL bState);
13298       HRESULT (WINAPI *SelectAudioStream)(IDvdControl2 *This,ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd);
13299       HRESULT (WINAPI *SelectSubpictureStream)(IDvdControl2 *This,ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd);
13300       HRESULT (WINAPI *SetSubpictureState)(IDvdControl2 *This,WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd);
13301       HRESULT (WINAPI *SelectAngle)(IDvdControl2 *This,ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd);
13302       HRESULT (WINAPI *SelectParentalLevel)(IDvdControl2 *This,ULONG ulParentalLevel);
13303       HRESULT (WINAPI *SelectParentalCountry)(IDvdControl2 *This,BYTE bCountry[2]);
13304       HRESULT (WINAPI *SelectKaraokeAudioPresentationMode)(IDvdControl2 *This,ULONG ulMode);
13305       HRESULT (WINAPI *SelectVideoModePreference)(IDvdControl2 *This,ULONG ulPreferredDisplayMode);
13306       HRESULT (WINAPI *SetDVDDirectory)(IDvdControl2 *This,LPCWSTR pszwPath);
13307       HRESULT (WINAPI *ActivateAtPosition)(IDvdControl2 *This,POINT point);
13308       HRESULT (WINAPI *SelectAtPosition)(IDvdControl2 *This,POINT point);
13309       HRESULT (WINAPI *PlayChaptersAutoStop)(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd);
13310       HRESULT (WINAPI *AcceptParentalLevelChange)(IDvdControl2 *This,WINBOOL bAccept);
13311       HRESULT (WINAPI *SetOption)(IDvdControl2 *This,DVD_OPTION_FLAG flag,WINBOOL fState);
13312       HRESULT (WINAPI *SetState)(IDvdControl2 *This,IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd);
13313       HRESULT (WINAPI *PlayPeriodInTitleAutoStop)(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd);
13314       HRESULT (WINAPI *SetGPRM)(IDvdControl2 *This,ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd);
13315       HRESULT (WINAPI *SelectDefaultMenuLanguage)(IDvdControl2 *This,LCID Language);
13316       HRESULT (WINAPI *SelectDefaultAudioLanguage)(IDvdControl2 *This,LCID Language,DVD_AUDIO_LANG_EXT audioExtension);
13317       HRESULT (WINAPI *SelectDefaultSubpictureLanguage)(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
13318     END_INTERFACE
13319   } IDvdControl2Vtbl;
13320   struct IDvdControl2 {
13321     CONST_VTBL struct IDvdControl2Vtbl *lpVtbl;
13322   };
13323 #ifdef COBJMACROS
13324 #define IDvdControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13325 #define IDvdControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
13326 #define IDvdControl2_Release(This) (This)->lpVtbl->Release(This)
13327 #define IDvdControl2_PlayTitle(This,ulTitle,dwFlags,ppCmd) (This)->lpVtbl->PlayTitle(This,ulTitle,dwFlags,ppCmd)
13328 #define IDvdControl2_PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd) (This)->lpVtbl->PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd)
13329 #define IDvdControl2_PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd) (This)->lpVtbl->PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd)
13330 #define IDvdControl2_Stop(This) (This)->lpVtbl->Stop(This)
13331 #define IDvdControl2_ReturnFromSubmenu(This,dwFlags,ppCmd) (This)->lpVtbl->ReturnFromSubmenu(This,dwFlags,ppCmd)
13332 #define IDvdControl2_PlayAtTime(This,pTime,dwFlags,ppCmd) (This)->lpVtbl->PlayAtTime(This,pTime,dwFlags,ppCmd)
13333 #define IDvdControl2_PlayChapter(This,ulChapter,dwFlags,ppCmd) (This)->lpVtbl->PlayChapter(This,ulChapter,dwFlags,ppCmd)
13334 #define IDvdControl2_PlayPrevChapter(This,dwFlags,ppCmd) (This)->lpVtbl->PlayPrevChapter(This,dwFlags,ppCmd)
13335 #define IDvdControl2_ReplayChapter(This,dwFlags,ppCmd) (This)->lpVtbl->ReplayChapter(This,dwFlags,ppCmd)
13336 #define IDvdControl2_PlayNextChapter(This,dwFlags,ppCmd) (This)->lpVtbl->PlayNextChapter(This,dwFlags,ppCmd)
13337 #define IDvdControl2_PlayForwards(This,dSpeed,dwFlags,ppCmd) (This)->lpVtbl->PlayForwards(This,dSpeed,dwFlags,ppCmd)
13338 #define IDvdControl2_PlayBackwards(This,dSpeed,dwFlags,ppCmd) (This)->lpVtbl->PlayBackwards(This,dSpeed,dwFlags,ppCmd)
13339 #define IDvdControl2_ShowMenu(This,MenuID,dwFlags,ppCmd) (This)->lpVtbl->ShowMenu(This,MenuID,dwFlags,ppCmd)
13340 #define IDvdControl2_Resume(This,dwFlags,ppCmd) (This)->lpVtbl->Resume(This,dwFlags,ppCmd)
13341 #define IDvdControl2_SelectRelativeButton(This,buttonDir) (This)->lpVtbl->SelectRelativeButton(This,buttonDir)
13342 #define IDvdControl2_ActivateButton(This) (This)->lpVtbl->ActivateButton(This)
13343 #define IDvdControl2_SelectButton(This,ulButton) (This)->lpVtbl->SelectButton(This,ulButton)
13344 #define IDvdControl2_SelectAndActivateButton(This,ulButton) (This)->lpVtbl->SelectAndActivateButton(This,ulButton)
13345 #define IDvdControl2_StillOff(This) (This)->lpVtbl->StillOff(This)
13346 #define IDvdControl2_Pause(This,bState) (This)->lpVtbl->Pause(This,bState)
13347 #define IDvdControl2_SelectAudioStream(This,ulAudio,dwFlags,ppCmd) (This)->lpVtbl->SelectAudioStream(This,ulAudio,dwFlags,ppCmd)
13348 #define IDvdControl2_SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd) (This)->lpVtbl->SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd)
13349 #define IDvdControl2_SetSubpictureState(This,bState,dwFlags,ppCmd) (This)->lpVtbl->SetSubpictureState(This,bState,dwFlags,ppCmd)
13350 #define IDvdControl2_SelectAngle(This,ulAngle,dwFlags,ppCmd) (This)->lpVtbl->SelectAngle(This,ulAngle,dwFlags,ppCmd)
13351 #define IDvdControl2_SelectParentalLevel(This,ulParentalLevel) (This)->lpVtbl->SelectParentalLevel(This,ulParentalLevel)
13352 #define IDvdControl2_SelectParentalCountry(This,bCountry) (This)->lpVtbl->SelectParentalCountry(This,bCountry)
13353 #define IDvdControl2_SelectKaraokeAudioPresentationMode(This,ulMode) (This)->lpVtbl->SelectKaraokeAudioPresentationMode(This,ulMode)
13354 #define IDvdControl2_SelectVideoModePreference(This,ulPreferredDisplayMode) (This)->lpVtbl->SelectVideoModePreference(This,ulPreferredDisplayMode)
13355 #define IDvdControl2_SetDVDDirectory(This,pszwPath) (This)->lpVtbl->SetDVDDirectory(This,pszwPath)
13356 #define IDvdControl2_ActivateAtPosition(This,point) (This)->lpVtbl->ActivateAtPosition(This,point)
13357 #define IDvdControl2_SelectAtPosition(This,point) (This)->lpVtbl->SelectAtPosition(This,point)
13358 #define IDvdControl2_PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd) (This)->lpVtbl->PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd)
13359 #define IDvdControl2_AcceptParentalLevelChange(This,bAccept) (This)->lpVtbl->AcceptParentalLevelChange(This,bAccept)
13360 #define IDvdControl2_SetOption(This,flag,fState) (This)->lpVtbl->SetOption(This,flag,fState)
13361 #define IDvdControl2_SetState(This,pState,dwFlags,ppCmd) (This)->lpVtbl->SetState(This,pState,dwFlags,ppCmd)
13362 #define IDvdControl2_PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd) (This)->lpVtbl->PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd)
13363 #define IDvdControl2_SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd) (This)->lpVtbl->SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd)
13364 #define IDvdControl2_SelectDefaultMenuLanguage(This,Language) (This)->lpVtbl->SelectDefaultMenuLanguage(This,Language)
13365 #define IDvdControl2_SelectDefaultAudioLanguage(This,Language,audioExtension) (This)->lpVtbl->SelectDefaultAudioLanguage(This,Language,audioExtension)
13366 #define IDvdControl2_SelectDefaultSubpictureLanguage(This,Language,subpictureExtension) (This)->lpVtbl->SelectDefaultSubpictureLanguage(This,Language,subpictureExtension)
13367 #endif
13368 #endif
13369   HRESULT WINAPI IDvdControl2_PlayTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd);
13370   void __RPC_STUB IDvdControl2_PlayTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13371   HRESULT WINAPI IDvdControl2_PlayChapterInTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
13372   void __RPC_STUB IDvdControl2_PlayChapterInTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13373   HRESULT WINAPI IDvdControl2_PlayAtTimeInTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd);
13374   void __RPC_STUB IDvdControl2_PlayAtTimeInTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13375   HRESULT WINAPI IDvdControl2_Stop_Proxy(IDvdControl2 *This);
13376   void __RPC_STUB IDvdControl2_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13377   HRESULT WINAPI IDvdControl2_ReturnFromSubmenu_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
13378   void __RPC_STUB IDvdControl2_ReturnFromSubmenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13379   HRESULT WINAPI IDvdControl2_PlayAtTime_Proxy(IDvdControl2 *This,DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd);
13380   void __RPC_STUB IDvdControl2_PlayAtTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13381   HRESULT WINAPI IDvdControl2_PlayChapter_Proxy(IDvdControl2 *This,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
13382   void __RPC_STUB IDvdControl2_PlayChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13383   HRESULT WINAPI IDvdControl2_PlayPrevChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
13384   void __RPC_STUB IDvdControl2_PlayPrevChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13385   HRESULT WINAPI IDvdControl2_ReplayChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
13386   void __RPC_STUB IDvdControl2_ReplayChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13387   HRESULT WINAPI IDvdControl2_PlayNextChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
13388   void __RPC_STUB IDvdControl2_PlayNextChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13389   HRESULT WINAPI IDvdControl2_PlayForwards_Proxy(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
13390   void __RPC_STUB IDvdControl2_PlayForwards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13391   HRESULT WINAPI IDvdControl2_PlayBackwards_Proxy(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
13392   void __RPC_STUB IDvdControl2_PlayBackwards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13393   HRESULT WINAPI IDvdControl2_ShowMenu_Proxy(IDvdControl2 *This,DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd);
13394   void __RPC_STUB IDvdControl2_ShowMenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13395   HRESULT WINAPI IDvdControl2_Resume_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
13396   void __RPC_STUB IDvdControl2_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13397   HRESULT WINAPI IDvdControl2_SelectRelativeButton_Proxy(IDvdControl2 *This,DVD_RELATIVE_BUTTON buttonDir);
13398   void __RPC_STUB IDvdControl2_SelectRelativeButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13399   HRESULT WINAPI IDvdControl2_ActivateButton_Proxy(IDvdControl2 *This);
13400   void __RPC_STUB IDvdControl2_ActivateButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13401   HRESULT WINAPI IDvdControl2_SelectButton_Proxy(IDvdControl2 *This,ULONG ulButton);
13402   void __RPC_STUB IDvdControl2_SelectButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13403   HRESULT WINAPI IDvdControl2_SelectAndActivateButton_Proxy(IDvdControl2 *This,ULONG ulButton);
13404   void __RPC_STUB IDvdControl2_SelectAndActivateButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13405   HRESULT WINAPI IDvdControl2_StillOff_Proxy(IDvdControl2 *This);
13406   void __RPC_STUB IDvdControl2_StillOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13407   HRESULT WINAPI IDvdControl2_Pause_Proxy(IDvdControl2 *This,WINBOOL bState);
13408   void __RPC_STUB IDvdControl2_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13409   HRESULT WINAPI IDvdControl2_SelectAudioStream_Proxy(IDvdControl2 *This,ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd);
13410   void __RPC_STUB IDvdControl2_SelectAudioStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13411   HRESULT WINAPI IDvdControl2_SelectSubpictureStream_Proxy(IDvdControl2 *This,ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd);
13412   void __RPC_STUB IDvdControl2_SelectSubpictureStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13413   HRESULT WINAPI IDvdControl2_SetSubpictureState_Proxy(IDvdControl2 *This,WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd);
13414   void __RPC_STUB IDvdControl2_SetSubpictureState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13415   HRESULT WINAPI IDvdControl2_SelectAngle_Proxy(IDvdControl2 *This,ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd);
13416   void __RPC_STUB IDvdControl2_SelectAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13417   HRESULT WINAPI IDvdControl2_SelectParentalLevel_Proxy(IDvdControl2 *This,ULONG ulParentalLevel);
13418   void __RPC_STUB IDvdControl2_SelectParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13419   HRESULT WINAPI IDvdControl2_SelectParentalCountry_Proxy(IDvdControl2 *This,BYTE bCountry[2]);
13420   void __RPC_STUB IDvdControl2_SelectParentalCountry_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13421   HRESULT WINAPI IDvdControl2_SelectKaraokeAudioPresentationMode_Proxy(IDvdControl2 *This,ULONG ulMode);
13422   void __RPC_STUB IDvdControl2_SelectKaraokeAudioPresentationMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13423   HRESULT WINAPI IDvdControl2_SelectVideoModePreference_Proxy(IDvdControl2 *This,ULONG ulPreferredDisplayMode);
13424   void __RPC_STUB IDvdControl2_SelectVideoModePreference_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13425   HRESULT WINAPI IDvdControl2_SetDVDDirectory_Proxy(IDvdControl2 *This,LPCWSTR pszwPath);
13426   void __RPC_STUB IDvdControl2_SetDVDDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13427   HRESULT WINAPI IDvdControl2_ActivateAtPosition_Proxy(IDvdControl2 *This,POINT point);
13428   void __RPC_STUB IDvdControl2_ActivateAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13429   HRESULT WINAPI IDvdControl2_SelectAtPosition_Proxy(IDvdControl2 *This,POINT point);
13430   void __RPC_STUB IDvdControl2_SelectAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13431   HRESULT WINAPI IDvdControl2_PlayChaptersAutoStop_Proxy(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd);
13432   void __RPC_STUB IDvdControl2_PlayChaptersAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13433   HRESULT WINAPI IDvdControl2_AcceptParentalLevelChange_Proxy(IDvdControl2 *This,WINBOOL bAccept);
13434   void __RPC_STUB IDvdControl2_AcceptParentalLevelChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13435   HRESULT WINAPI IDvdControl2_SetOption_Proxy(IDvdControl2 *This,DVD_OPTION_FLAG flag,WINBOOL fState);
13436   void __RPC_STUB IDvdControl2_SetOption_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13437   HRESULT WINAPI IDvdControl2_SetState_Proxy(IDvdControl2 *This,IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd);
13438   void __RPC_STUB IDvdControl2_SetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13439   HRESULT WINAPI IDvdControl2_PlayPeriodInTitleAutoStop_Proxy(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd);
13440   void __RPC_STUB IDvdControl2_PlayPeriodInTitleAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13441   HRESULT WINAPI IDvdControl2_SetGPRM_Proxy(IDvdControl2 *This,ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd);
13442   void __RPC_STUB IDvdControl2_SetGPRM_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13443   HRESULT WINAPI IDvdControl2_SelectDefaultMenuLanguage_Proxy(IDvdControl2 *This,LCID Language);
13444   void __RPC_STUB IDvdControl2_SelectDefaultMenuLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13445   HRESULT WINAPI IDvdControl2_SelectDefaultAudioLanguage_Proxy(IDvdControl2 *This,LCID Language,DVD_AUDIO_LANG_EXT audioExtension);
13446   void __RPC_STUB IDvdControl2_SelectDefaultAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13447   HRESULT WINAPI IDvdControl2_SelectDefaultSubpictureLanguage_Proxy(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
13448   void __RPC_STUB IDvdControl2_SelectDefaultSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13449 #endif
13450 
13451   enum DVD_TextStringType {
13452     DVD_Struct_Volume = 0x1,DVD_Struct_Title = 0x2,DVD_Struct_ParentalID = 0x3,DVD_Struct_PartOfTitle = 0x4,DVD_Struct_Cell = 0x5,
13453     DVD_Stream_Audio = 0x10,DVD_Stream_Subpicture = 0x11,DVD_Stream_Angle = 0x12,DVD_Channel_Audio = 0x20,DVD_General_Name = 0x30,
13454     DVD_General_Comments = 0x31,DVD_Title_Series = 0x38,DVD_Title_Movie = 0x39,DVD_Title_Video = 0x3a,DVD_Title_Album = 0x3b,DVD_Title_Song = 0x3c,
13455     DVD_Title_Other = 0x3f,DVD_Title_Sub_Series = 0x40,DVD_Title_Sub_Movie = 0x41,DVD_Title_Sub_Video = 0x42,DVD_Title_Sub_Album = 0x43,
13456     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,
13457     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
13458   };
13459 
13460   enum DVD_TextCharSet {
13461     DVD_CharSet_Unicode = 0,DVD_CharSet_ISO646 = 1,DVD_CharSet_JIS_Roman_Kanji = 2,DVD_CharSet_ISO8859_1 = 3,
13462     DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
13463   };
13464 #define DVD_TITLE_MENU 0x000
13465 #define DVD_STREAM_DATA_CURRENT 0x800
13466 #define DVD_STREAM_DATA_VMGM 0x400
13467 #define DVD_STREAM_DATA_VTSM 0x401
13468 #define DVD_DEFAULT_AUDIO_STREAM 0x0f
13469 
13470   typedef struct tagDVD_DECODER_CAPS {
13471     DWORD dwSize;
13472     DWORD dwAudioCaps;
13473     double dFwdMaxRateVideo;
13474     double dFwdMaxRateAudio;
13475     double dFwdMaxRateSP;
13476     double dBwdMaxRateVideo;
13477     double dBwdMaxRateAudio;
13478     double dBwdMaxRateSP;
13479     DWORD dwRes1;
13480     DWORD dwRes2;
13481     DWORD dwRes3;
13482     DWORD dwRes4;
13483   } DVD_DECODER_CAPS;
13484 
13485 #define DVD_AUDIO_CAPS_AC3 0x00000001
13486 #define DVD_AUDIO_CAPS_MPEG2 0x00000002
13487 #define DVD_AUDIO_CAPS_LPCM 0x00000004
13488 #define DVD_AUDIO_CAPS_DTS 0x00000008
13489 #define DVD_AUDIO_CAPS_SDDS 0x00000010
13490 
13491   extern RPC_IF_HANDLE __MIDL_itf_strmif_0387_v0_0_c_ifspec;
13492   extern RPC_IF_HANDLE __MIDL_itf_strmif_0387_v0_0_s_ifspec;
13493 #ifndef __IDvdInfo2_INTERFACE_DEFINED__
13494 #define __IDvdInfo2_INTERFACE_DEFINED__
13495   EXTERN_C const IID IID_IDvdInfo2;
13496 #if defined(__cplusplus) && !defined(CINTERFACE)
13497   struct IDvdInfo2 : public IUnknown {
13498   public:
13499     virtual HRESULT WINAPI GetCurrentDomain(DVD_DOMAIN *pDomain) = 0;
13500     virtual HRESULT WINAPI GetCurrentLocation(DVD_PLAYBACK_LOCATION2 *pLocation) = 0;
13501     virtual HRESULT WINAPI GetTotalTitleTime(DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags) = 0;
13502     virtual HRESULT WINAPI GetCurrentButton(ULONG *pulButtonsAvailable,ULONG *pulCurrentButton) = 0;
13503     virtual HRESULT WINAPI GetCurrentAngle(ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle) = 0;
13504     virtual HRESULT WINAPI GetCurrentAudio(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream) = 0;
13505     virtual HRESULT WINAPI GetCurrentSubpicture(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled) = 0;
13506     virtual HRESULT WINAPI GetCurrentUOPS(ULONG *pulUOPs) = 0;
13507     virtual HRESULT WINAPI GetAllSPRMs(SPRMARRAY *pRegisterArray) = 0;
13508     virtual HRESULT WINAPI GetAllGPRMs(GPRMARRAY *pRegisterArray) = 0;
13509     virtual HRESULT WINAPI GetAudioLanguage(ULONG ulStream,LCID *pLanguage) = 0;
13510     virtual HRESULT WINAPI GetSubpictureLanguage(ULONG ulStream,LCID *pLanguage) = 0;
13511     virtual HRESULT WINAPI GetTitleAttributes(ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle) = 0;
13512     virtual HRESULT WINAPI GetVMGAttributes(DVD_MenuAttributes *pATR) = 0;
13513     virtual HRESULT WINAPI GetCurrentVideoAttributes(DVD_VideoAttributes *pATR) = 0;
13514     virtual HRESULT WINAPI GetAudioAttributes(ULONG ulStream,DVD_AudioAttributes *pATR) = 0;
13515     virtual HRESULT WINAPI GetKaraokeAttributes(ULONG ulStream,DVD_KaraokeAttributes *pAttributes) = 0;
13516     virtual HRESULT WINAPI GetSubpictureAttributes(ULONG ulStream,DVD_SubpictureAttributes *pATR) = 0;
13517     virtual HRESULT WINAPI GetDVDVolumeInfo(ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles) = 0;
13518     virtual HRESULT WINAPI GetDVDTextNumberOfLanguages(ULONG *pulNumOfLangs) = 0;
13519     virtual HRESULT WINAPI GetDVDTextLanguageInfo(ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet) = 0;
13520     virtual HRESULT WINAPI GetDVDTextStringAsNative(ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType) = 0;
13521     virtual HRESULT WINAPI GetDVDTextStringAsUnicode(ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType) = 0;
13522     virtual HRESULT WINAPI GetPlayerParentalLevel(ULONG *pulParentalLevel,BYTE pbCountryCode[2]) = 0;
13523     virtual HRESULT WINAPI GetNumberOfChapters(ULONG ulTitle,ULONG *pulNumOfChapters) = 0;
13524     virtual HRESULT WINAPI GetTitleParentalLevels(ULONG ulTitle,ULONG *pulParentalLevels) = 0;
13525     virtual HRESULT WINAPI GetDVDDirectory(LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize) = 0;
13526     virtual HRESULT WINAPI IsAudioStreamEnabled(ULONG ulStreamNum,WINBOOL *pbEnabled) = 0;
13527     virtual HRESULT WINAPI GetDiscID(LPCWSTR pszwPath,ULONGLONG *pullDiscID) = 0;
13528     virtual HRESULT WINAPI GetState(IDvdState **pStateData) = 0;
13529     virtual HRESULT WINAPI GetMenuLanguages(LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages) = 0;
13530     virtual HRESULT WINAPI GetButtonAtPosition(POINT point,ULONG *pulButtonIndex) = 0;
13531     virtual HRESULT WINAPI GetCmdFromEvent(LONG_PTR lParam1,IDvdCmd **pCmdObj) = 0;
13532     virtual HRESULT WINAPI GetDefaultMenuLanguage(LCID *pLanguage) = 0;
13533     virtual HRESULT WINAPI GetDefaultAudioLanguage(LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension) = 0;
13534     virtual HRESULT WINAPI GetDefaultSubpictureLanguage(LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension) = 0;
13535     virtual HRESULT WINAPI GetDecoderCaps(DVD_DECODER_CAPS *pCaps) = 0;
13536     virtual HRESULT WINAPI GetButtonRect(ULONG ulButton,RECT *pRect) = 0;
13537     virtual HRESULT WINAPI IsSubpictureStreamEnabled(ULONG ulStreamNum,WINBOOL *pbEnabled) = 0;
13538   };
13539 #else
13540   typedef struct IDvdInfo2Vtbl {
13541     BEGIN_INTERFACE
13542       HRESULT (WINAPI *QueryInterface)(IDvdInfo2 *This,REFIID riid,void **ppvObject);
13543       ULONG (WINAPI *AddRef)(IDvdInfo2 *This);
13544       ULONG (WINAPI *Release)(IDvdInfo2 *This);
13545       HRESULT (WINAPI *GetCurrentDomain)(IDvdInfo2 *This,DVD_DOMAIN *pDomain);
13546       HRESULT (WINAPI *GetCurrentLocation)(IDvdInfo2 *This,DVD_PLAYBACK_LOCATION2 *pLocation);
13547       HRESULT (WINAPI *GetTotalTitleTime)(IDvdInfo2 *This,DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags);
13548       HRESULT (WINAPI *GetCurrentButton)(IDvdInfo2 *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
13549       HRESULT (WINAPI *GetCurrentAngle)(IDvdInfo2 *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
13550       HRESULT (WINAPI *GetCurrentAudio)(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
13551       HRESULT (WINAPI *GetCurrentSubpicture)(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled);
13552       HRESULT (WINAPI *GetCurrentUOPS)(IDvdInfo2 *This,ULONG *pulUOPs);
13553       HRESULT (WINAPI *GetAllSPRMs)(IDvdInfo2 *This,SPRMARRAY *pRegisterArray);
13554       HRESULT (WINAPI *GetAllGPRMs)(IDvdInfo2 *This,GPRMARRAY *pRegisterArray);
13555       HRESULT (WINAPI *GetAudioLanguage)(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
13556       HRESULT (WINAPI *GetSubpictureLanguage)(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
13557       HRESULT (WINAPI *GetTitleAttributes)(IDvdInfo2 *This,ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle);
13558       HRESULT (WINAPI *GetVMGAttributes)(IDvdInfo2 *This,DVD_MenuAttributes *pATR);
13559       HRESULT (WINAPI *GetCurrentVideoAttributes)(IDvdInfo2 *This,DVD_VideoAttributes *pATR);
13560       HRESULT (WINAPI *GetAudioAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_AudioAttributes *pATR);
13561       HRESULT (WINAPI *GetKaraokeAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_KaraokeAttributes *pAttributes);
13562       HRESULT (WINAPI *GetSubpictureAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_SubpictureAttributes *pATR);
13563       HRESULT (WINAPI *GetDVDVolumeInfo)(IDvdInfo2 *This,ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
13564       HRESULT (WINAPI *GetDVDTextNumberOfLanguages)(IDvdInfo2 *This,ULONG *pulNumOfLangs);
13565       HRESULT (WINAPI *GetDVDTextLanguageInfo)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet);
13566       HRESULT (WINAPI *GetDVDTextStringAsNative)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
13567       HRESULT (WINAPI *GetDVDTextStringAsUnicode)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
13568       HRESULT (WINAPI *GetPlayerParentalLevel)(IDvdInfo2 *This,ULONG *pulParentalLevel,BYTE pbCountryCode[2]);
13569       HRESULT (WINAPI *GetNumberOfChapters)(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulNumOfChapters);
13570       HRESULT (WINAPI *GetTitleParentalLevels)(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulParentalLevels);
13571       HRESULT (WINAPI *GetDVDDirectory)(IDvdInfo2 *This,LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize);
13572       HRESULT (WINAPI *IsAudioStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
13573       HRESULT (WINAPI *GetDiscID)(IDvdInfo2 *This,LPCWSTR pszwPath,ULONGLONG *pullDiscID);
13574       HRESULT (WINAPI *GetState)(IDvdInfo2 *This,IDvdState **pStateData);
13575       HRESULT (WINAPI *GetMenuLanguages)(IDvdInfo2 *This,LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages);
13576       HRESULT (WINAPI *GetButtonAtPosition)(IDvdInfo2 *This,POINT point,ULONG *pulButtonIndex);
13577       HRESULT (WINAPI *GetCmdFromEvent)(IDvdInfo2 *This,LONG_PTR lParam1,IDvdCmd **pCmdObj);
13578       HRESULT (WINAPI *GetDefaultMenuLanguage)(IDvdInfo2 *This,LCID *pLanguage);
13579       HRESULT (WINAPI *GetDefaultAudioLanguage)(IDvdInfo2 *This,LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension);
13580       HRESULT (WINAPI *GetDefaultSubpictureLanguage)(IDvdInfo2 *This,LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
13581       HRESULT (WINAPI *GetDecoderCaps)(IDvdInfo2 *This,DVD_DECODER_CAPS *pCaps);
13582       HRESULT (WINAPI *GetButtonRect)(IDvdInfo2 *This,ULONG ulButton,RECT *pRect);
13583       HRESULT (WINAPI *IsSubpictureStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
13584     END_INTERFACE
13585   } IDvdInfo2Vtbl;
13586   struct IDvdInfo2 {
13587     CONST_VTBL struct IDvdInfo2Vtbl *lpVtbl;
13588   };
13589 #ifdef COBJMACROS
13590 #define IDvdInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13591 #define IDvdInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
13592 #define IDvdInfo2_Release(This) (This)->lpVtbl->Release(This)
13593 #define IDvdInfo2_GetCurrentDomain(This,pDomain) (This)->lpVtbl->GetCurrentDomain(This,pDomain)
13594 #define IDvdInfo2_GetCurrentLocation(This,pLocation) (This)->lpVtbl->GetCurrentLocation(This,pLocation)
13595 #define IDvdInfo2_GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags) (This)->lpVtbl->GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags)
13596 #define IDvdInfo2_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton) (This)->lpVtbl->GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
13597 #define IDvdInfo2_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle) (This)->lpVtbl->GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
13598 #define IDvdInfo2_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream) (This)->lpVtbl->GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
13599 #define IDvdInfo2_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled) (This)->lpVtbl->GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled)
13600 #define IDvdInfo2_GetCurrentUOPS(This,pulUOPs) (This)->lpVtbl->GetCurrentUOPS(This,pulUOPs)
13601 #define IDvdInfo2_GetAllSPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllSPRMs(This,pRegisterArray)
13602 #define IDvdInfo2_GetAllGPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllGPRMs(This,pRegisterArray)
13603 #define IDvdInfo2_GetAudioLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetAudioLanguage(This,ulStream,pLanguage)
13604 #define IDvdInfo2_GetSubpictureLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetSubpictureLanguage(This,ulStream,pLanguage)
13605 #define IDvdInfo2_GetTitleAttributes(This,ulTitle,pMenu,pTitle) (This)->lpVtbl->GetTitleAttributes(This,ulTitle,pMenu,pTitle)
13606 #define IDvdInfo2_GetVMGAttributes(This,pATR) (This)->lpVtbl->GetVMGAttributes(This,pATR)
13607 #define IDvdInfo2_GetCurrentVideoAttributes(This,pATR) (This)->lpVtbl->GetCurrentVideoAttributes(This,pATR)
13608 #define IDvdInfo2_GetAudioAttributes(This,ulStream,pATR) (This)->lpVtbl->GetAudioAttributes(This,ulStream,pATR)
13609 #define IDvdInfo2_GetKaraokeAttributes(This,ulStream,pAttributes) (This)->lpVtbl->GetKaraokeAttributes(This,ulStream,pAttributes)
13610 #define IDvdInfo2_GetSubpictureAttributes(This,ulStream,pATR) (This)->lpVtbl->GetSubpictureAttributes(This,ulStream,pATR)
13611 #define IDvdInfo2_GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles) (This)->lpVtbl->GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles)
13612 #define IDvdInfo2_GetDVDTextNumberOfLanguages(This,pulNumOfLangs) (This)->lpVtbl->GetDVDTextNumberOfLanguages(This,pulNumOfLangs)
13613 #define IDvdInfo2_GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet) (This)->lpVtbl->GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet)
13614 #define IDvdInfo2_GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType) (This)->lpVtbl->GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType)
13615 #define IDvdInfo2_GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType) (This)->lpVtbl->GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType)
13616 #define IDvdInfo2_GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode) (This)->lpVtbl->GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode)
13617 #define IDvdInfo2_GetNumberOfChapters(This,ulTitle,pulNumOfChapters) (This)->lpVtbl->GetNumberOfChapters(This,ulTitle,pulNumOfChapters)
13618 #define IDvdInfo2_GetTitleParentalLevels(This,ulTitle,pulParentalLevels) (This)->lpVtbl->GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
13619 #define IDvdInfo2_GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize) (This)->lpVtbl->GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize)
13620 #define IDvdInfo2_IsAudioStreamEnabled(This,ulStreamNum,pbEnabled) (This)->lpVtbl->IsAudioStreamEnabled(This,ulStreamNum,pbEnabled)
13621 #define IDvdInfo2_GetDiscID(This,pszwPath,pullDiscID) (This)->lpVtbl->GetDiscID(This,pszwPath,pullDiscID)
13622 #define IDvdInfo2_GetState(This,pStateData) (This)->lpVtbl->GetState(This,pStateData)
13623 #define IDvdInfo2_GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages) (This)->lpVtbl->GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages)
13624 #define IDvdInfo2_GetButtonAtPosition(This,point,pulButtonIndex) (This)->lpVtbl->GetButtonAtPosition(This,point,pulButtonIndex)
13625 #define IDvdInfo2_GetCmdFromEvent(This,lParam1,pCmdObj) (This)->lpVtbl->GetCmdFromEvent(This,lParam1,pCmdObj)
13626 #define IDvdInfo2_GetDefaultMenuLanguage(This,pLanguage) (This)->lpVtbl->GetDefaultMenuLanguage(This,pLanguage)
13627 #define IDvdInfo2_GetDefaultAudioLanguage(This,pLanguage,pAudioExtension) (This)->lpVtbl->GetDefaultAudioLanguage(This,pLanguage,pAudioExtension)
13628 #define IDvdInfo2_GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension) (This)->lpVtbl->GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension)
13629 #define IDvdInfo2_GetDecoderCaps(This,pCaps) (This)->lpVtbl->GetDecoderCaps(This,pCaps)
13630 #define IDvdInfo2_GetButtonRect(This,ulButton,pRect) (This)->lpVtbl->GetButtonRect(This,ulButton,pRect)
13631 #define IDvdInfo2_IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled) (This)->lpVtbl->IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled)
13632 #endif
13633 #endif
13634   HRESULT WINAPI IDvdInfo2_GetCurrentDomain_Proxy(IDvdInfo2 *This,DVD_DOMAIN *pDomain);
13635   void __RPC_STUB IDvdInfo2_GetCurrentDomain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13636   HRESULT WINAPI IDvdInfo2_GetCurrentLocation_Proxy(IDvdInfo2 *This,DVD_PLAYBACK_LOCATION2 *pLocation);
13637   void __RPC_STUB IDvdInfo2_GetCurrentLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13638   HRESULT WINAPI IDvdInfo2_GetTotalTitleTime_Proxy(IDvdInfo2 *This,DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags);
13639   void __RPC_STUB IDvdInfo2_GetTotalTitleTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13640   HRESULT WINAPI IDvdInfo2_GetCurrentButton_Proxy(IDvdInfo2 *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
13641   void __RPC_STUB IDvdInfo2_GetCurrentButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13642   HRESULT WINAPI IDvdInfo2_GetCurrentAngle_Proxy(IDvdInfo2 *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
13643   void __RPC_STUB IDvdInfo2_GetCurrentAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13644   HRESULT WINAPI IDvdInfo2_GetCurrentAudio_Proxy(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
13645   void __RPC_STUB IDvdInfo2_GetCurrentAudio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13646   HRESULT WINAPI IDvdInfo2_GetCurrentSubpicture_Proxy(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled);
13647   void __RPC_STUB IDvdInfo2_GetCurrentSubpicture_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13648   HRESULT WINAPI IDvdInfo2_GetCurrentUOPS_Proxy(IDvdInfo2 *This,ULONG *pulUOPs);
13649   void __RPC_STUB IDvdInfo2_GetCurrentUOPS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13650   HRESULT WINAPI IDvdInfo2_GetAllSPRMs_Proxy(IDvdInfo2 *This,SPRMARRAY *pRegisterArray);
13651   void __RPC_STUB IDvdInfo2_GetAllSPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13652   HRESULT WINAPI IDvdInfo2_GetAllGPRMs_Proxy(IDvdInfo2 *This,GPRMARRAY *pRegisterArray);
13653   void __RPC_STUB IDvdInfo2_GetAllGPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13654   HRESULT WINAPI IDvdInfo2_GetAudioLanguage_Proxy(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
13655   void __RPC_STUB IDvdInfo2_GetAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13656   HRESULT WINAPI IDvdInfo2_GetSubpictureLanguage_Proxy(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
13657   void __RPC_STUB IDvdInfo2_GetSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13658   HRESULT WINAPI IDvdInfo2_GetTitleAttributes_Proxy(IDvdInfo2 *This,ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle);
13659   void __RPC_STUB IDvdInfo2_GetTitleAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13660   HRESULT WINAPI IDvdInfo2_GetVMGAttributes_Proxy(IDvdInfo2 *This,DVD_MenuAttributes *pATR);
13661   void __RPC_STUB IDvdInfo2_GetVMGAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13662   HRESULT WINAPI IDvdInfo2_GetCurrentVideoAttributes_Proxy(IDvdInfo2 *This,DVD_VideoAttributes *pATR);
13663   void __RPC_STUB IDvdInfo2_GetCurrentVideoAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13664   HRESULT WINAPI IDvdInfo2_GetAudioAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_AudioAttributes *pATR);
13665   void __RPC_STUB IDvdInfo2_GetAudioAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13666   HRESULT WINAPI IDvdInfo2_GetKaraokeAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_KaraokeAttributes *pAttributes);
13667   void __RPC_STUB IDvdInfo2_GetKaraokeAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13668   HRESULT WINAPI IDvdInfo2_GetSubpictureAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_SubpictureAttributes *pATR);
13669   void __RPC_STUB IDvdInfo2_GetSubpictureAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13670   HRESULT WINAPI IDvdInfo2_GetDVDVolumeInfo_Proxy(IDvdInfo2 *This,ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
13671   void __RPC_STUB IDvdInfo2_GetDVDVolumeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13672   HRESULT WINAPI IDvdInfo2_GetDVDTextNumberOfLanguages_Proxy(IDvdInfo2 *This,ULONG *pulNumOfLangs);
13673   void __RPC_STUB IDvdInfo2_GetDVDTextNumberOfLanguages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13674   HRESULT WINAPI IDvdInfo2_GetDVDTextLanguageInfo_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet);
13675   void __RPC_STUB IDvdInfo2_GetDVDTextLanguageInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13676   HRESULT WINAPI IDvdInfo2_GetDVDTextStringAsNative_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
13677   void __RPC_STUB IDvdInfo2_GetDVDTextStringAsNative_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13678   HRESULT WINAPI IDvdInfo2_GetDVDTextStringAsUnicode_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
13679   void __RPC_STUB IDvdInfo2_GetDVDTextStringAsUnicode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13680   HRESULT WINAPI IDvdInfo2_GetPlayerParentalLevel_Proxy(IDvdInfo2 *This,ULONG *pulParentalLevel,BYTE pbCountryCode[2]);
13681   void __RPC_STUB IDvdInfo2_GetPlayerParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13682   HRESULT WINAPI IDvdInfo2_GetNumberOfChapters_Proxy(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulNumOfChapters);
13683   void __RPC_STUB IDvdInfo2_GetNumberOfChapters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13684   HRESULT WINAPI IDvdInfo2_GetTitleParentalLevels_Proxy(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulParentalLevels);
13685   void __RPC_STUB IDvdInfo2_GetTitleParentalLevels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13686   HRESULT WINAPI IDvdInfo2_GetDVDDirectory_Proxy(IDvdInfo2 *This,LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize);
13687   void __RPC_STUB IDvdInfo2_GetDVDDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13688   HRESULT WINAPI IDvdInfo2_IsAudioStreamEnabled_Proxy(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
13689   void __RPC_STUB IDvdInfo2_IsAudioStreamEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13690   HRESULT WINAPI IDvdInfo2_GetDiscID_Proxy(IDvdInfo2 *This,LPCWSTR pszwPath,ULONGLONG *pullDiscID);
13691   void __RPC_STUB IDvdInfo2_GetDiscID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13692   HRESULT WINAPI IDvdInfo2_GetState_Proxy(IDvdInfo2 *This,IDvdState **pStateData);
13693   void __RPC_STUB IDvdInfo2_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13694   HRESULT WINAPI IDvdInfo2_GetMenuLanguages_Proxy(IDvdInfo2 *This,LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages);
13695   void __RPC_STUB IDvdInfo2_GetMenuLanguages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13696   HRESULT WINAPI IDvdInfo2_GetButtonAtPosition_Proxy(IDvdInfo2 *This,POINT point,ULONG *pulButtonIndex);
13697   void __RPC_STUB IDvdInfo2_GetButtonAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13698   HRESULT WINAPI IDvdInfo2_GetCmdFromEvent_Proxy(IDvdInfo2 *This,LONG_PTR lParam1,IDvdCmd **pCmdObj);
13699   void __RPC_STUB IDvdInfo2_GetCmdFromEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13700   HRESULT WINAPI IDvdInfo2_GetDefaultMenuLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage);
13701   void __RPC_STUB IDvdInfo2_GetDefaultMenuLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13702   HRESULT WINAPI IDvdInfo2_GetDefaultAudioLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension);
13703   void __RPC_STUB IDvdInfo2_GetDefaultAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13704   HRESULT WINAPI IDvdInfo2_GetDefaultSubpictureLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
13705   void __RPC_STUB IDvdInfo2_GetDefaultSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13706   HRESULT WINAPI IDvdInfo2_GetDecoderCaps_Proxy(IDvdInfo2 *This,DVD_DECODER_CAPS *pCaps);
13707   void __RPC_STUB IDvdInfo2_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13708   HRESULT WINAPI IDvdInfo2_GetButtonRect_Proxy(IDvdInfo2 *This,ULONG ulButton,RECT *pRect);
13709   void __RPC_STUB IDvdInfo2_GetButtonRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13710   HRESULT WINAPI IDvdInfo2_IsSubpictureStreamEnabled_Proxy(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
13711   void __RPC_STUB IDvdInfo2_IsSubpictureStreamEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13712 #endif
13713 
13714   typedef enum _AM_DVD_GRAPH_FLAGS {
13715     AM_DVD_HWDEC_PREFER = 0x1,AM_DVD_HWDEC_ONLY = 0x2,AM_DVD_SWDEC_PREFER = 0x4,AM_DVD_SWDEC_ONLY = 0x8,AM_DVD_NOVPE = 0x100,
13716     AM_DVD_VMR9_ONLY = 0x800
13717   } AM_DVD_GRAPH_FLAGS;
13718 
13719   typedef enum _AM_DVD_STREAM_FLAGS {
13720     AM_DVD_STREAM_VIDEO = 0x1,AM_DVD_STREAM_AUDIO = 0x2,AM_DVD_STREAM_SUBPIC = 0x4
13721   } AM_DVD_STREAM_FLAGS;
13722 
13723   typedef struct __MIDL___MIDL_itf_strmif_0389_0001 {
13724     HRESULT hrVPEStatus;
13725     WINBOOL bDvdVolInvalid;
13726     WINBOOL bDvdVolUnknown;
13727     WINBOOL bNoLine21In;
13728     WINBOOL bNoLine21Out;
13729     int iNumStreams;
13730     int iNumStreamsFailed;
13731     DWORD dwFailedStreamsFlag;
13732   } AM_DVD_RENDERSTATUS;
13733 
13734   extern RPC_IF_HANDLE __MIDL_itf_strmif_0389_v0_0_c_ifspec;
13735   extern RPC_IF_HANDLE __MIDL_itf_strmif_0389_v0_0_s_ifspec;
13736 #ifndef __IDvdGraphBuilder_INTERFACE_DEFINED__
13737 #define __IDvdGraphBuilder_INTERFACE_DEFINED__
13738   EXTERN_C const IID IID_IDvdGraphBuilder;
13739 #if defined(__cplusplus) && !defined(CINTERFACE)
13740   struct IDvdGraphBuilder : public IUnknown {
13741   public:
13742     virtual HRESULT WINAPI GetFiltergraph(IGraphBuilder **ppGB) = 0;
13743     virtual HRESULT WINAPI GetDvdInterface(REFIID riid,void **ppvIF) = 0;
13744     virtual HRESULT WINAPI RenderDvdVideoVolume(LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus) = 0;
13745   };
13746 #else
13747   typedef struct IDvdGraphBuilderVtbl {
13748     BEGIN_INTERFACE
13749       HRESULT (WINAPI *QueryInterface)(IDvdGraphBuilder *This,REFIID riid,void **ppvObject);
13750       ULONG (WINAPI *AddRef)(IDvdGraphBuilder *This);
13751       ULONG (WINAPI *Release)(IDvdGraphBuilder *This);
13752       HRESULT (WINAPI *GetFiltergraph)(IDvdGraphBuilder *This,IGraphBuilder **ppGB);
13753       HRESULT (WINAPI *GetDvdInterface)(IDvdGraphBuilder *This,REFIID riid,void **ppvIF);
13754       HRESULT (WINAPI *RenderDvdVideoVolume)(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
13755     END_INTERFACE
13756   } IDvdGraphBuilderVtbl;
13757   struct IDvdGraphBuilder {
13758     CONST_VTBL struct IDvdGraphBuilderVtbl *lpVtbl;
13759   };
13760 #ifdef COBJMACROS
13761 #define IDvdGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13762 #define IDvdGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
13763 #define IDvdGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
13764 #define IDvdGraphBuilder_GetFiltergraph(This,ppGB) (This)->lpVtbl->GetFiltergraph(This,ppGB)
13765 #define IDvdGraphBuilder_GetDvdInterface(This,riid,ppvIF) (This)->lpVtbl->GetDvdInterface(This,riid,ppvIF)
13766 #define IDvdGraphBuilder_RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus) (This)->lpVtbl->RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus)
13767 #endif
13768 #endif
13769   HRESULT WINAPI IDvdGraphBuilder_GetFiltergraph_Proxy(IDvdGraphBuilder *This,IGraphBuilder **ppGB);
13770   void __RPC_STUB IDvdGraphBuilder_GetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13771   HRESULT WINAPI IDvdGraphBuilder_GetDvdInterface_Proxy(IDvdGraphBuilder *This,REFIID riid,void **ppvIF);
13772   void __RPC_STUB IDvdGraphBuilder_GetDvdInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13773   HRESULT WINAPI IDvdGraphBuilder_RenderDvdVideoVolume_Proxy(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
13774   void __RPC_STUB IDvdGraphBuilder_RenderDvdVideoVolume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13775 #endif
13776 
13777 #ifndef __IDDrawExclModeVideo_INTERFACE_DEFINED__
13778 #define __IDDrawExclModeVideo_INTERFACE_DEFINED__
13779   EXTERN_C const IID IID_IDDrawExclModeVideo;
13780 #if defined(__cplusplus) && !defined(CINTERFACE)
13781   struct IDDrawExclModeVideo : public IUnknown {
13782   public:
13783     virtual HRESULT WINAPI SetDDrawObject(IDirectDraw *pDDrawObject) = 0;
13784     virtual HRESULT WINAPI GetDDrawObject(IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal) = 0;
13785     virtual HRESULT WINAPI SetDDrawSurface(IDirectDrawSurface *pDDrawSurface) = 0;
13786     virtual HRESULT WINAPI GetDDrawSurface(IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal) = 0;
13787     virtual HRESULT WINAPI SetDrawParameters(const RECT *prcSource,const RECT *prcTarget) = 0;
13788     virtual HRESULT WINAPI GetNativeVideoProps(DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY) = 0;
13789     virtual HRESULT WINAPI SetCallbackInterface(IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags) = 0;
13790   };
13791 #else
13792   typedef struct IDDrawExclModeVideoVtbl {
13793     BEGIN_INTERFACE
13794       HRESULT (WINAPI *QueryInterface)(IDDrawExclModeVideo *This,REFIID riid,void **ppvObject);
13795       ULONG (WINAPI *AddRef)(IDDrawExclModeVideo *This);
13796       ULONG (WINAPI *Release)(IDDrawExclModeVideo *This);
13797       HRESULT (WINAPI *SetDDrawObject)(IDDrawExclModeVideo *This,IDirectDraw *pDDrawObject);
13798       HRESULT (WINAPI *GetDDrawObject)(IDDrawExclModeVideo *This,IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal);
13799       HRESULT (WINAPI *SetDDrawSurface)(IDDrawExclModeVideo *This,IDirectDrawSurface *pDDrawSurface);
13800       HRESULT (WINAPI *GetDDrawSurface)(IDDrawExclModeVideo *This,IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal);
13801       HRESULT (WINAPI *SetDrawParameters)(IDDrawExclModeVideo *This,const RECT *prcSource,const RECT *prcTarget);
13802       HRESULT (WINAPI *GetNativeVideoProps)(IDDrawExclModeVideo *This,DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY);
13803       HRESULT (WINAPI *SetCallbackInterface)(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
13804     END_INTERFACE
13805   } IDDrawExclModeVideoVtbl;
13806   struct IDDrawExclModeVideo {
13807     CONST_VTBL struct IDDrawExclModeVideoVtbl *lpVtbl;
13808   };
13809 #ifdef COBJMACROS
13810 #define IDDrawExclModeVideo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13811 #define IDDrawExclModeVideo_AddRef(This) (This)->lpVtbl->AddRef(This)
13812 #define IDDrawExclModeVideo_Release(This) (This)->lpVtbl->Release(This)
13813 #define IDDrawExclModeVideo_SetDDrawObject(This,pDDrawObject) (This)->lpVtbl->SetDDrawObject(This,pDDrawObject)
13814 #define IDDrawExclModeVideo_GetDDrawObject(This,ppDDrawObject,pbUsingExternal) (This)->lpVtbl->GetDDrawObject(This,ppDDrawObject,pbUsingExternal)
13815 #define IDDrawExclModeVideo_SetDDrawSurface(This,pDDrawSurface) (This)->lpVtbl->SetDDrawSurface(This,pDDrawSurface)
13816 #define IDDrawExclModeVideo_GetDDrawSurface(This,ppDDrawSurface,pbUsingExternal) (This)->lpVtbl->GetDDrawSurface(This,ppDDrawSurface,pbUsingExternal)
13817 #define IDDrawExclModeVideo_SetDrawParameters(This,prcSource,prcTarget) (This)->lpVtbl->SetDrawParameters(This,prcSource,prcTarget)
13818 #define IDDrawExclModeVideo_GetNativeVideoProps(This,pdwVideoWidth,pdwVideoHeight,pdwPictAspectRatioX,pdwPictAspectRatioY) (This)->lpVtbl->GetNativeVideoProps(This,pdwVideoWidth,pdwVideoHeight,pdwPictAspectRatioX,pdwPictAspectRatioY)
13819 #define IDDrawExclModeVideo_SetCallbackInterface(This,pCallback,dwFlags) (This)->lpVtbl->SetCallbackInterface(This,pCallback,dwFlags)
13820 #endif
13821 #endif
13822   HRESULT WINAPI IDDrawExclModeVideo_SetDDrawObject_Proxy(IDDrawExclModeVideo *This,IDirectDraw *pDDrawObject);
13823   void __RPC_STUB IDDrawExclModeVideo_SetDDrawObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13824   HRESULT WINAPI IDDrawExclModeVideo_GetDDrawObject_Proxy(IDDrawExclModeVideo *This,IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal);
13825   void __RPC_STUB IDDrawExclModeVideo_GetDDrawObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13826   HRESULT WINAPI IDDrawExclModeVideo_SetDDrawSurface_Proxy(IDDrawExclModeVideo *This,IDirectDrawSurface *pDDrawSurface);
13827   void __RPC_STUB IDDrawExclModeVideo_SetDDrawSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13828   HRESULT WINAPI IDDrawExclModeVideo_GetDDrawSurface_Proxy(IDDrawExclModeVideo *This,IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal);
13829   void __RPC_STUB IDDrawExclModeVideo_GetDDrawSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13830   HRESULT WINAPI IDDrawExclModeVideo_SetDrawParameters_Proxy(IDDrawExclModeVideo *This,const RECT *prcSource,const RECT *prcTarget);
13831   void __RPC_STUB IDDrawExclModeVideo_SetDrawParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13832   HRESULT WINAPI IDDrawExclModeVideo_GetNativeVideoProps_Proxy(IDDrawExclModeVideo *This,DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY);
13833   void __RPC_STUB IDDrawExclModeVideo_GetNativeVideoProps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13834   HRESULT WINAPI IDDrawExclModeVideo_SetCallbackInterface_Proxy(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
13835   void __RPC_STUB IDDrawExclModeVideo_SetCallbackInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13836 #endif
13837 
13838   enum _AM_OVERLAY_NOTIFY_FLAGS {
13839     AM_OVERLAY_NOTIFY_VISIBLE_CHANGE = 0x1,AM_OVERLAY_NOTIFY_SOURCE_CHANGE = 0x2,AM_OVERLAY_NOTIFY_DEST_CHANGE = 0x4
13840   };
13841 
13842   extern RPC_IF_HANDLE __MIDL_itf_strmif_0391_v0_0_c_ifspec;
13843   extern RPC_IF_HANDLE __MIDL_itf_strmif_0391_v0_0_s_ifspec;
13844 #ifndef __IDDrawExclModeVideoCallback_INTERFACE_DEFINED__
13845 #define __IDDrawExclModeVideoCallback_INTERFACE_DEFINED__
13846   EXTERN_C const IID IID_IDDrawExclModeVideoCallback;
13847 #if defined(__cplusplus) && !defined(CINTERFACE)
13848   struct IDDrawExclModeVideoCallback : public IUnknown {
13849   public:
13850     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;
13851     virtual HRESULT WINAPI OnUpdateColorKey(const COLORKEY *pKey,DWORD dwColor) = 0;
13852     virtual HRESULT WINAPI OnUpdateSize(DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight) = 0;
13853   };
13854 #else
13855   typedef struct IDDrawExclModeVideoCallbackVtbl {
13856     BEGIN_INTERFACE
13857       HRESULT (WINAPI *QueryInterface)(IDDrawExclModeVideoCallback *This,REFIID riid,void **ppvObject);
13858       ULONG (WINAPI *AddRef)(IDDrawExclModeVideoCallback *This);
13859       ULONG (WINAPI *Release)(IDDrawExclModeVideoCallback *This);
13860       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);
13861       HRESULT (WINAPI *OnUpdateColorKey)(IDDrawExclModeVideoCallback *This,const COLORKEY *pKey,DWORD dwColor);
13862       HRESULT (WINAPI *OnUpdateSize)(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
13863     END_INTERFACE
13864   } IDDrawExclModeVideoCallbackVtbl;
13865   struct IDDrawExclModeVideoCallback {
13866     CONST_VTBL struct IDDrawExclModeVideoCallbackVtbl *lpVtbl;
13867   };
13868 #ifdef COBJMACROS
13869 #define IDDrawExclModeVideoCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13870 #define IDDrawExclModeVideoCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
13871 #define IDDrawExclModeVideoCallback_Release(This) (This)->lpVtbl->Release(This)
13872 #define IDDrawExclModeVideoCallback_OnUpdateOverlay(This,bBefore,dwFlags,bOldVisible,prcOldSrc,prcOldDest,bNewVisible,prcNewSrc,prcNewDest) (This)->lpVtbl->OnUpdateOverlay(This,bBefore,dwFlags,bOldVisible,prcOldSrc,prcOldDest,bNewVisible,prcNewSrc,prcNewDest)
13873 #define IDDrawExclModeVideoCallback_OnUpdateColorKey(This,pKey,dwColor) (This)->lpVtbl->OnUpdateColorKey(This,pKey,dwColor)
13874 #define IDDrawExclModeVideoCallback_OnUpdateSize(This,dwWidth,dwHeight,dwARWidth,dwARHeight) (This)->lpVtbl->OnUpdateSize(This,dwWidth,dwHeight,dwARWidth,dwARHeight)
13875 #endif
13876 #endif
13877   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);
13878   void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateOverlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13879   HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateColorKey_Proxy(IDDrawExclModeVideoCallback *This,const COLORKEY *pKey,DWORD dwColor);
13880   void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13881   HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateSize_Proxy(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
13882   void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13883 #endif
13884 
13885   extern RPC_IF_HANDLE __MIDL_itf_strmif_0392_v0_0_c_ifspec;
13886   extern RPC_IF_HANDLE __MIDL_itf_strmif_0392_v0_0_s_ifspec;
13887 #ifndef __IPinConnection_INTERFACE_DEFINED__
13888 #define __IPinConnection_INTERFACE_DEFINED__
13889   EXTERN_C const IID IID_IPinConnection;
13890 #if defined(__cplusplus) && !defined(CINTERFACE)
13891   struct IPinConnection : public IUnknown {
13892   public:
13893     virtual HRESULT WINAPI DynamicQueryAccept(const AM_MEDIA_TYPE *pmt) = 0;
13894     virtual HRESULT WINAPI NotifyEndOfStream(HANDLE hNotifyEvent) = 0;
13895     virtual HRESULT WINAPI IsEndPin(void) = 0;
13896     virtual HRESULT WINAPI DynamicDisconnect(void) = 0;
13897   };
13898 #else
13899   typedef struct IPinConnectionVtbl {
13900     BEGIN_INTERFACE
13901       HRESULT (WINAPI *QueryInterface)(IPinConnection *This,REFIID riid,void **ppvObject);
13902       ULONG (WINAPI *AddRef)(IPinConnection *This);
13903       ULONG (WINAPI *Release)(IPinConnection *This);
13904       HRESULT (WINAPI *DynamicQueryAccept)(IPinConnection *This,const AM_MEDIA_TYPE *pmt);
13905       HRESULT (WINAPI *NotifyEndOfStream)(IPinConnection *This,HANDLE hNotifyEvent);
13906       HRESULT (WINAPI *IsEndPin)(IPinConnection *This);
13907       HRESULT (WINAPI *DynamicDisconnect)(IPinConnection *This);
13908     END_INTERFACE
13909   } IPinConnectionVtbl;
13910   struct IPinConnection {
13911     CONST_VTBL struct IPinConnectionVtbl *lpVtbl;
13912   };
13913 #ifdef COBJMACROS
13914 #define IPinConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13915 #define IPinConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
13916 #define IPinConnection_Release(This) (This)->lpVtbl->Release(This)
13917 #define IPinConnection_DynamicQueryAccept(This,pmt) (This)->lpVtbl->DynamicQueryAccept(This,pmt)
13918 #define IPinConnection_NotifyEndOfStream(This,hNotifyEvent) (This)->lpVtbl->NotifyEndOfStream(This,hNotifyEvent)
13919 #define IPinConnection_IsEndPin(This) (This)->lpVtbl->IsEndPin(This)
13920 #define IPinConnection_DynamicDisconnect(This) (This)->lpVtbl->DynamicDisconnect(This)
13921 #endif
13922 #endif
13923   HRESULT WINAPI IPinConnection_DynamicQueryAccept_Proxy(IPinConnection *This,const AM_MEDIA_TYPE *pmt);
13924   void __RPC_STUB IPinConnection_DynamicQueryAccept_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13925   HRESULT WINAPI IPinConnection_NotifyEndOfStream_Proxy(IPinConnection *This,HANDLE hNotifyEvent);
13926   void __RPC_STUB IPinConnection_NotifyEndOfStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13927   HRESULT WINAPI IPinConnection_IsEndPin_Proxy(IPinConnection *This);
13928   void __RPC_STUB IPinConnection_IsEndPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13929   HRESULT WINAPI IPinConnection_DynamicDisconnect_Proxy(IPinConnection *This);
13930   void __RPC_STUB IPinConnection_DynamicDisconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13931 #endif
13932 
13933 #ifndef __IPinFlowControl_INTERFACE_DEFINED__
13934 #define __IPinFlowControl_INTERFACE_DEFINED__
13935   EXTERN_C const IID IID_IPinFlowControl;
13936 #if defined(__cplusplus) && !defined(CINTERFACE)
13937   struct IPinFlowControl : public IUnknown {
13938   public:
13939     virtual HRESULT WINAPI Block(DWORD dwBlockFlags,HANDLE hEvent) = 0;
13940   };
13941 #else
13942   typedef struct IPinFlowControlVtbl {
13943     BEGIN_INTERFACE
13944       HRESULT (WINAPI *QueryInterface)(IPinFlowControl *This,REFIID riid,void **ppvObject);
13945       ULONG (WINAPI *AddRef)(IPinFlowControl *This);
13946       ULONG (WINAPI *Release)(IPinFlowControl *This);
13947       HRESULT (WINAPI *Block)(IPinFlowControl *This,DWORD dwBlockFlags,HANDLE hEvent);
13948     END_INTERFACE
13949   } IPinFlowControlVtbl;
13950   struct IPinFlowControl {
13951     CONST_VTBL struct IPinFlowControlVtbl *lpVtbl;
13952   };
13953 #ifdef COBJMACROS
13954 #define IPinFlowControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13955 #define IPinFlowControl_AddRef(This) (This)->lpVtbl->AddRef(This)
13956 #define IPinFlowControl_Release(This) (This)->lpVtbl->Release(This)
13957 #define IPinFlowControl_Block(This,dwBlockFlags,hEvent) (This)->lpVtbl->Block(This,dwBlockFlags,hEvent)
13958 #endif
13959 #endif
13960   HRESULT WINAPI IPinFlowControl_Block_Proxy(IPinFlowControl *This,DWORD dwBlockFlags,HANDLE hEvent);
13961   void __RPC_STUB IPinFlowControl_Block_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13962 #endif
13963 
13964   enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS {
13965     AM_PIN_FLOW_CONTROL_BLOCK = 0x1
13966   };
13967   typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS {
13968     AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x1,AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x2,
13969     AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x4
13970   } AM_GRAPH_CONFIG_RECONNECT_FLAGS;
13971 
13972   enum _REM_FILTER_FLAGS {
13973     REMFILTERF_LEAVECONNECTED = 0x1
13974   };
13975 
13976   typedef enum _AM_FILTER_FLAGS {
13977     AM_FILTER_FLAGS_REMOVABLE = 0x1
13978   } AM_FILTER_FLAGS;
13979 
13980   extern RPC_IF_HANDLE __MIDL_itf_strmif_0394_v0_0_c_ifspec;
13981   extern RPC_IF_HANDLE __MIDL_itf_strmif_0394_v0_0_s_ifspec;
13982 #ifndef __IGraphConfig_INTERFACE_DEFINED__
13983 #define __IGraphConfig_INTERFACE_DEFINED__
13984   EXTERN_C const IID IID_IGraphConfig;
13985 #if defined(__cplusplus) && !defined(CINTERFACE)
13986   struct IGraphConfig : public IUnknown {
13987   public:
13988     virtual HRESULT WINAPI Reconnect(IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags) = 0;
13989     virtual HRESULT WINAPI Reconfigure(IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent) = 0;
13990     virtual HRESULT WINAPI AddFilterToCache(IBaseFilter *pFilter) = 0;
13991     virtual HRESULT WINAPI EnumCacheFilter(IEnumFilters **pEnum) = 0;
13992     virtual HRESULT WINAPI RemoveFilterFromCache(IBaseFilter *pFilter) = 0;
13993     virtual HRESULT WINAPI GetStartTime(REFERENCE_TIME *prtStart) = 0;
13994     virtual HRESULT WINAPI PushThroughData(IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort) = 0;
13995     virtual HRESULT WINAPI SetFilterFlags(IBaseFilter *pFilter,DWORD dwFlags) = 0;
13996     virtual HRESULT WINAPI GetFilterFlags(IBaseFilter *pFilter,DWORD *pdwFlags) = 0;
13997     virtual HRESULT WINAPI RemoveFilterEx(IBaseFilter *pFilter,DWORD Flags) = 0;
13998   };
13999 #else
14000   typedef struct IGraphConfigVtbl {
14001     BEGIN_INTERFACE
14002       HRESULT (WINAPI *QueryInterface)(IGraphConfig *This,REFIID riid,void **ppvObject);
14003       ULONG (WINAPI *AddRef)(IGraphConfig *This);
14004       ULONG (WINAPI *Release)(IGraphConfig *This);
14005       HRESULT (WINAPI *Reconnect)(IGraphConfig *This,IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags);
14006       HRESULT (WINAPI *Reconfigure)(IGraphConfig *This,IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent);
14007       HRESULT (WINAPI *AddFilterToCache)(IGraphConfig *This,IBaseFilter *pFilter);
14008       HRESULT (WINAPI *EnumCacheFilter)(IGraphConfig *This,IEnumFilters **pEnum);
14009       HRESULT (WINAPI *RemoveFilterFromCache)(IGraphConfig *This,IBaseFilter *pFilter);
14010       HRESULT (WINAPI *GetStartTime)(IGraphConfig *This,REFERENCE_TIME *prtStart);
14011       HRESULT (WINAPI *PushThroughData)(IGraphConfig *This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort);
14012       HRESULT (WINAPI *SetFilterFlags)(IGraphConfig *This,IBaseFilter *pFilter,DWORD dwFlags);
14013       HRESULT (WINAPI *GetFilterFlags)(IGraphConfig *This,IBaseFilter *pFilter,DWORD *pdwFlags);
14014       HRESULT (WINAPI *RemoveFilterEx)(IGraphConfig *This,IBaseFilter *pFilter,DWORD Flags);
14015     END_INTERFACE
14016   } IGraphConfigVtbl;
14017   struct IGraphConfig {
14018     CONST_VTBL struct IGraphConfigVtbl *lpVtbl;
14019   };
14020 #ifdef COBJMACROS
14021 #define IGraphConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14022 #define IGraphConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
14023 #define IGraphConfig_Release(This) (This)->lpVtbl->Release(This)
14024 #define IGraphConfig_Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags) (This)->lpVtbl->Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags)
14025 #define IGraphConfig_Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent) (This)->lpVtbl->Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent)
14026 #define IGraphConfig_AddFilterToCache(This,pFilter) (This)->lpVtbl->AddFilterToCache(This,pFilter)
14027 #define IGraphConfig_EnumCacheFilter(This,pEnum) (This)->lpVtbl->EnumCacheFilter(This,pEnum)
14028 #define IGraphConfig_RemoveFilterFromCache(This,pFilter) (This)->lpVtbl->RemoveFilterFromCache(This,pFilter)
14029 #define IGraphConfig_GetStartTime(This,prtStart) (This)->lpVtbl->GetStartTime(This,prtStart)
14030 #define IGraphConfig_PushThroughData(This,pOutputPin,pConnection,hEventAbort) (This)->lpVtbl->PushThroughData(This,pOutputPin,pConnection,hEventAbort)
14031 #define IGraphConfig_SetFilterFlags(This,pFilter,dwFlags) (This)->lpVtbl->SetFilterFlags(This,pFilter,dwFlags)
14032 #define IGraphConfig_GetFilterFlags(This,pFilter,pdwFlags) (This)->lpVtbl->GetFilterFlags(This,pFilter,pdwFlags)
14033 #define IGraphConfig_RemoveFilterEx(This,pFilter,Flags) (This)->lpVtbl->RemoveFilterEx(This,pFilter,Flags)
14034 #endif
14035 #endif
14036   HRESULT WINAPI IGraphConfig_Reconnect_Proxy(IGraphConfig *This,IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags);
14037   void __RPC_STUB IGraphConfig_Reconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14038   HRESULT WINAPI IGraphConfig_Reconfigure_Proxy(IGraphConfig *This,IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent);
14039   void __RPC_STUB IGraphConfig_Reconfigure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14040   HRESULT WINAPI IGraphConfig_AddFilterToCache_Proxy(IGraphConfig *This,IBaseFilter *pFilter);
14041   void __RPC_STUB IGraphConfig_AddFilterToCache_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14042   HRESULT WINAPI IGraphConfig_EnumCacheFilter_Proxy(IGraphConfig *This,IEnumFilters **pEnum);
14043   void __RPC_STUB IGraphConfig_EnumCacheFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14044   HRESULT WINAPI IGraphConfig_RemoveFilterFromCache_Proxy(IGraphConfig *This,IBaseFilter *pFilter);
14045   void __RPC_STUB IGraphConfig_RemoveFilterFromCache_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14046   HRESULT WINAPI IGraphConfig_GetStartTime_Proxy(IGraphConfig *This,REFERENCE_TIME *prtStart);
14047   void __RPC_STUB IGraphConfig_GetStartTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14048   HRESULT WINAPI IGraphConfig_PushThroughData_Proxy(IGraphConfig *This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort);
14049   void __RPC_STUB IGraphConfig_PushThroughData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14050   HRESULT WINAPI IGraphConfig_SetFilterFlags_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD dwFlags);
14051   void __RPC_STUB IGraphConfig_SetFilterFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14052   HRESULT WINAPI IGraphConfig_GetFilterFlags_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD *pdwFlags);
14053   void __RPC_STUB IGraphConfig_GetFilterFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14054   HRESULT WINAPI IGraphConfig_RemoveFilterEx_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD Flags);
14055   void __RPC_STUB IGraphConfig_RemoveFilterEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14056 #endif
14057 
14058 #ifndef __IGraphConfigCallback_INTERFACE_DEFINED__
14059 #define __IGraphConfigCallback_INTERFACE_DEFINED__
14060   EXTERN_C const IID IID_IGraphConfigCallback;
14061 #if defined(__cplusplus) && !defined(CINTERFACE)
14062   struct IGraphConfigCallback : public IUnknown {
14063   public:
14064     virtual HRESULT WINAPI Reconfigure(PVOID pvContext,DWORD dwFlags) = 0;
14065   };
14066 #else
14067   typedef struct IGraphConfigCallbackVtbl {
14068     BEGIN_INTERFACE
14069       HRESULT (WINAPI *QueryInterface)(IGraphConfigCallback *This,REFIID riid,void **ppvObject);
14070       ULONG (WINAPI *AddRef)(IGraphConfigCallback *This);
14071       ULONG (WINAPI *Release)(IGraphConfigCallback *This);
14072       HRESULT (WINAPI *Reconfigure)(IGraphConfigCallback *This,PVOID pvContext,DWORD dwFlags);
14073     END_INTERFACE
14074   } IGraphConfigCallbackVtbl;
14075   struct IGraphConfigCallback {
14076     CONST_VTBL struct IGraphConfigCallbackVtbl *lpVtbl;
14077   };
14078 #ifdef COBJMACROS
14079 #define IGraphConfigCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14080 #define IGraphConfigCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
14081 #define IGraphConfigCallback_Release(This) (This)->lpVtbl->Release(This)
14082 #define IGraphConfigCallback_Reconfigure(This,pvContext,dwFlags) (This)->lpVtbl->Reconfigure(This,pvContext,dwFlags)
14083 #endif
14084 #endif
14085   HRESULT WINAPI IGraphConfigCallback_Reconfigure_Proxy(IGraphConfigCallback *This,PVOID pvContext,DWORD dwFlags);
14086   void __RPC_STUB IGraphConfigCallback_Reconfigure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14087 #endif
14088 
14089 #ifndef __IFilterChain_INTERFACE_DEFINED__
14090 #define __IFilterChain_INTERFACE_DEFINED__
14091   EXTERN_C const IID IID_IFilterChain;
14092 #if defined(__cplusplus) && !defined(CINTERFACE)
14093   struct IFilterChain : public IUnknown {
14094   public:
14095     virtual HRESULT WINAPI StartChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
14096     virtual HRESULT WINAPI PauseChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
14097     virtual HRESULT WINAPI StopChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
14098     virtual HRESULT WINAPI RemoveChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
14099   };
14100 #else
14101   typedef struct IFilterChainVtbl {
14102     BEGIN_INTERFACE
14103       HRESULT (WINAPI *QueryInterface)(IFilterChain *This,REFIID riid,void **ppvObject);
14104       ULONG (WINAPI *AddRef)(IFilterChain *This);
14105       ULONG (WINAPI *Release)(IFilterChain *This);
14106       HRESULT (WINAPI *StartChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
14107       HRESULT (WINAPI *PauseChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
14108       HRESULT (WINAPI *StopChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
14109       HRESULT (WINAPI *RemoveChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
14110     END_INTERFACE
14111   } IFilterChainVtbl;
14112   struct IFilterChain {
14113     CONST_VTBL struct IFilterChainVtbl *lpVtbl;
14114   };
14115 #ifdef COBJMACROS
14116 #define IFilterChain_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14117 #define IFilterChain_AddRef(This) (This)->lpVtbl->AddRef(This)
14118 #define IFilterChain_Release(This) (This)->lpVtbl->Release(This)
14119 #define IFilterChain_StartChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StartChain(This,pStartFilter,pEndFilter)
14120 #define IFilterChain_PauseChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->PauseChain(This,pStartFilter,pEndFilter)
14121 #define IFilterChain_StopChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StopChain(This,pStartFilter,pEndFilter)
14122 #define IFilterChain_RemoveChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->RemoveChain(This,pStartFilter,pEndFilter)
14123 #endif
14124 #endif
14125   HRESULT WINAPI IFilterChain_StartChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
14126   void __RPC_STUB IFilterChain_StartChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14127   HRESULT WINAPI IFilterChain_PauseChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
14128   void __RPC_STUB IFilterChain_PauseChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14129   HRESULT WINAPI IFilterChain_StopChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
14130   void __RPC_STUB IFilterChain_StopChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14131   HRESULT WINAPI IFilterChain_RemoveChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
14132   void __RPC_STUB IFilterChain_RemoveChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14133 #endif
14134 
14135 #ifdef MINGW_HAS_DDRAW_H
14136 #include <ddraw.h>
14137 #endif
14138 
14139   typedef enum __MIDL___MIDL_itf_strmif_0397_0002 {
14140     VMRSample_SyncPoint = 0x1,VMRSample_Preroll = 0x2,VMRSample_Discontinuity = 0x4,VMRSample_TimeValid = 0x8,VMRSample_SrcDstRectsValid = 0x10
14141   } VMRPresentationFlags;
14142 
14143   typedef struct tagVMRPRESENTATIONINFO {
14144     DWORD dwFlags;
14145     LPDIRECTDRAWSURFACE7 lpSurf;
14146     REFERENCE_TIME rtStart;
14147     REFERENCE_TIME rtEnd;
14148     SIZE szAspectRatio;
14149     RECT rcSrc;
14150     RECT rcDst;
14151     DWORD dwTypeSpecificFlags;
14152     DWORD dwInterlaceFlags;
14153   } VMRPRESENTATIONINFO;
14154 
14155   extern RPC_IF_HANDLE __MIDL_itf_strmif_0397_v0_0_c_ifspec;
14156   extern RPC_IF_HANDLE __MIDL_itf_strmif_0397_v0_0_s_ifspec;
14157 #ifndef __IVMRImagePresenter_INTERFACE_DEFINED__
14158 #define __IVMRImagePresenter_INTERFACE_DEFINED__
14159   EXTERN_C const IID IID_IVMRImagePresenter;
14160 #if defined(__cplusplus) && !defined(CINTERFACE)
14161   struct IVMRImagePresenter : public IUnknown {
14162   public:
14163     virtual HRESULT WINAPI StartPresenting(DWORD_PTR dwUserID) = 0;
14164     virtual HRESULT WINAPI StopPresenting(DWORD_PTR dwUserID) = 0;
14165     virtual HRESULT WINAPI PresentImage(DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo) = 0;
14166   };
14167 #else
14168   typedef struct IVMRImagePresenterVtbl {
14169     BEGIN_INTERFACE
14170       HRESULT (WINAPI *QueryInterface)(IVMRImagePresenter *This,REFIID riid,void **ppvObject);
14171       ULONG (WINAPI *AddRef)(IVMRImagePresenter *This);
14172       ULONG (WINAPI *Release)(IVMRImagePresenter *This);
14173       HRESULT (WINAPI *StartPresenting)(IVMRImagePresenter *This,DWORD_PTR dwUserID);
14174       HRESULT (WINAPI *StopPresenting)(IVMRImagePresenter *This,DWORD_PTR dwUserID);
14175       HRESULT (WINAPI *PresentImage)(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
14176     END_INTERFACE
14177   } IVMRImagePresenterVtbl;
14178   struct IVMRImagePresenter {
14179     CONST_VTBL struct IVMRImagePresenterVtbl *lpVtbl;
14180   };
14181 #ifdef COBJMACROS
14182 #define IVMRImagePresenter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14183 #define IVMRImagePresenter_AddRef(This) (This)->lpVtbl->AddRef(This)
14184 #define IVMRImagePresenter_Release(This) (This)->lpVtbl->Release(This)
14185 #define IVMRImagePresenter_StartPresenting(This,dwUserID) (This)->lpVtbl->StartPresenting(This,dwUserID)
14186 #define IVMRImagePresenter_StopPresenting(This,dwUserID) (This)->lpVtbl->StopPresenting(This,dwUserID)
14187 #define IVMRImagePresenter_PresentImage(This,dwUserID,lpPresInfo) (This)->lpVtbl->PresentImage(This,dwUserID,lpPresInfo)
14188 #endif
14189 #endif
14190   HRESULT WINAPI IVMRImagePresenter_StartPresenting_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID);
14191   void __RPC_STUB IVMRImagePresenter_StartPresenting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14192   HRESULT WINAPI IVMRImagePresenter_StopPresenting_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID);
14193   void __RPC_STUB IVMRImagePresenter_StopPresenting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14194   HRESULT WINAPI IVMRImagePresenter_PresentImage_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
14195   void __RPC_STUB IVMRImagePresenter_PresentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14196 #endif
14197 
14198   typedef enum __MIDL___MIDL_itf_strmif_0398_0001 {
14199     AMAP_PIXELFORMAT_VALID = 0x1,AMAP_3D_TARGET = 0x2,AMAP_ALLOW_SYSMEM = 0x4,AMAP_FORCE_SYSMEM = 0x8,AMAP_DIRECTED_FLIP = 0x10,AMAP_DXVA_TARGET = 0x20
14200   } VMRSurfaceAllocationFlags;
14201 
14202   typedef struct tagVMRALLOCATIONINFO {
14203     DWORD dwFlags;
14204     LPBITMAPINFOHEADER lpHdr;
14205     LPDDPIXELFORMAT lpPixFmt;
14206     SIZE szAspectRatio;
14207     DWORD dwMinBuffers;
14208     DWORD dwMaxBuffers;
14209     DWORD dwInterlaceFlags;
14210     SIZE szNativeSize;
14211   } VMRALLOCATIONINFO;
14212 
14213   extern RPC_IF_HANDLE __MIDL_itf_strmif_0398_v0_0_c_ifspec;
14214   extern RPC_IF_HANDLE __MIDL_itf_strmif_0398_v0_0_s_ifspec;
14215 #ifndef __IVMRSurfaceAllocator_INTERFACE_DEFINED__
14216 #define __IVMRSurfaceAllocator_INTERFACE_DEFINED__
14217   EXTERN_C const IID IID_IVMRSurfaceAllocator;
14218 #if defined(__cplusplus) && !defined(CINTERFACE)
14219   struct IVMRSurfaceAllocator : public IUnknown {
14220   public:
14221     virtual HRESULT WINAPI AllocateSurface(DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface) = 0;
14222     virtual HRESULT WINAPI FreeSurface(DWORD_PTR dwID) = 0;
14223     virtual HRESULT WINAPI PrepareSurface(DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags) = 0;
14224     virtual HRESULT WINAPI AdviseNotify(IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify) = 0;
14225   };
14226 #else
14227   typedef struct IVMRSurfaceAllocatorVtbl {
14228     BEGIN_INTERFACE
14229       HRESULT (WINAPI *QueryInterface)(IVMRSurfaceAllocator *This,REFIID riid,void **ppvObject);
14230       ULONG (WINAPI *AddRef)(IVMRSurfaceAllocator *This);
14231       ULONG (WINAPI *Release)(IVMRSurfaceAllocator *This);
14232       HRESULT (WINAPI *AllocateSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface);
14233       HRESULT (WINAPI *FreeSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwID);
14234       HRESULT (WINAPI *PrepareSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags);
14235       HRESULT (WINAPI *AdviseNotify)(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
14236     END_INTERFACE
14237   } IVMRSurfaceAllocatorVtbl;
14238   struct IVMRSurfaceAllocator {
14239     CONST_VTBL struct IVMRSurfaceAllocatorVtbl *lpVtbl;
14240   };
14241 #ifdef COBJMACROS
14242 #define IVMRSurfaceAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14243 #define IVMRSurfaceAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
14244 #define IVMRSurfaceAllocator_Release(This) (This)->lpVtbl->Release(This)
14245 #define IVMRSurfaceAllocator_AllocateSurface(This,dwUserID,lpAllocInfo,lpdwActualBuffers,lplpSurface) (This)->lpVtbl->AllocateSurface(This,dwUserID,lpAllocInfo,lpdwActualBuffers,lplpSurface)
14246 #define IVMRSurfaceAllocator_FreeSurface(This,dwID) (This)->lpVtbl->FreeSurface(This,dwID)
14247 #define IVMRSurfaceAllocator_PrepareSurface(This,dwUserID,lpSurface,dwSurfaceFlags) (This)->lpVtbl->PrepareSurface(This,dwUserID,lpSurface,dwSurfaceFlags)
14248 #define IVMRSurfaceAllocator_AdviseNotify(This,lpIVMRSurfAllocNotify) (This)->lpVtbl->AdviseNotify(This,lpIVMRSurfAllocNotify)
14249 #endif
14250 #endif
14251   HRESULT WINAPI IVMRSurfaceAllocator_AllocateSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface);
14252   void __RPC_STUB IVMRSurfaceAllocator_AllocateSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14253   HRESULT WINAPI IVMRSurfaceAllocator_FreeSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwID);
14254   void __RPC_STUB IVMRSurfaceAllocator_FreeSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14255   HRESULT WINAPI IVMRSurfaceAllocator_PrepareSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags);
14256   void __RPC_STUB IVMRSurfaceAllocator_PrepareSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14257   HRESULT WINAPI IVMRSurfaceAllocator_AdviseNotify_Proxy(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
14258   void __RPC_STUB IVMRSurfaceAllocator_AdviseNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14259 #endif
14260 
14261 #ifndef __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__
14262 #define __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__
14263   EXTERN_C const IID IID_IVMRSurfaceAllocatorNotify;
14264 #if defined(__cplusplus) && !defined(CINTERFACE)
14265   struct IVMRSurfaceAllocatorNotify : public IUnknown {
14266   public:
14267     virtual HRESULT WINAPI AdviseSurfaceAllocator(DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator) = 0;
14268     virtual HRESULT WINAPI SetDDrawDevice(LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor) = 0;
14269     virtual HRESULT WINAPI ChangeDDrawDevice(LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor) = 0;
14270     virtual HRESULT WINAPI RestoreDDrawSurfaces(void) = 0;
14271     virtual HRESULT WINAPI NotifyEvent(LONG EventCode,LONG_PTR Param1,LONG_PTR Param2) = 0;
14272     virtual HRESULT WINAPI SetBorderColor(COLORREF clrBorder) = 0;
14273   };
14274 #else
14275   typedef struct IVMRSurfaceAllocatorNotifyVtbl {
14276     BEGIN_INTERFACE
14277       HRESULT (WINAPI *QueryInterface)(IVMRSurfaceAllocatorNotify *This,REFIID riid,void **ppvObject);
14278       ULONG (WINAPI *AddRef)(IVMRSurfaceAllocatorNotify *This);
14279       ULONG (WINAPI *Release)(IVMRSurfaceAllocatorNotify *This);
14280       HRESULT (WINAPI *AdviseSurfaceAllocator)(IVMRSurfaceAllocatorNotify *This,DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator);
14281       HRESULT (WINAPI *SetDDrawDevice)(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
14282       HRESULT (WINAPI *ChangeDDrawDevice)(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
14283       HRESULT (WINAPI *RestoreDDrawSurfaces)(IVMRSurfaceAllocatorNotify *This);
14284       HRESULT (WINAPI *NotifyEvent)(IVMRSurfaceAllocatorNotify *This,LONG EventCode,LONG_PTR Param1,LONG_PTR Param2);
14285       HRESULT (WINAPI *SetBorderColor)(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
14286     END_INTERFACE
14287   } IVMRSurfaceAllocatorNotifyVtbl;
14288   struct IVMRSurfaceAllocatorNotify {
14289     CONST_VTBL struct IVMRSurfaceAllocatorNotifyVtbl *lpVtbl;
14290   };
14291 #ifdef COBJMACROS
14292 #define IVMRSurfaceAllocatorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14293 #define IVMRSurfaceAllocatorNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
14294 #define IVMRSurfaceAllocatorNotify_Release(This) (This)->lpVtbl->Release(This)
14295 #define IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator) (This)->lpVtbl->AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator)
14296 #define IVMRSurfaceAllocatorNotify_SetDDrawDevice(This,lpDDrawDevice,hMonitor) (This)->lpVtbl->SetDDrawDevice(This,lpDDrawDevice,hMonitor)
14297 #define IVMRSurfaceAllocatorNotify_ChangeDDrawDevice(This,lpDDrawDevice,hMonitor) (This)->lpVtbl->ChangeDDrawDevice(This,lpDDrawDevice,hMonitor)
14298 #define IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces(This) (This)->lpVtbl->RestoreDDrawSurfaces(This)
14299 #define IVMRSurfaceAllocatorNotify_NotifyEvent(This,EventCode,Param1,Param2) (This)->lpVtbl->NotifyEvent(This,EventCode,Param1,Param2)
14300 #define IVMRSurfaceAllocatorNotify_SetBorderColor(This,clrBorder) (This)->lpVtbl->SetBorderColor(This,clrBorder)
14301 #endif
14302 #endif
14303   HRESULT WINAPI IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator_Proxy(IVMRSurfaceAllocatorNotify *This,DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator);
14304   void __RPC_STUB IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14305   HRESULT WINAPI IVMRSurfaceAllocatorNotify_SetDDrawDevice_Proxy(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
14306   void __RPC_STUB IVMRSurfaceAllocatorNotify_SetDDrawDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14307   HRESULT WINAPI IVMRSurfaceAllocatorNotify_ChangeDDrawDevice_Proxy(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
14308   void __RPC_STUB IVMRSurfaceAllocatorNotify_ChangeDDrawDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14309   HRESULT WINAPI IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces_Proxy(IVMRSurfaceAllocatorNotify *This);
14310   void __RPC_STUB IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14311   HRESULT WINAPI IVMRSurfaceAllocatorNotify_NotifyEvent_Proxy(IVMRSurfaceAllocatorNotify *This,LONG EventCode,LONG_PTR Param1,LONG_PTR Param2);
14312   void __RPC_STUB IVMRSurfaceAllocatorNotify_NotifyEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14313   HRESULT WINAPI IVMRSurfaceAllocatorNotify_SetBorderColor_Proxy(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
14314   void __RPC_STUB IVMRSurfaceAllocatorNotify_SetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14315 #endif
14316 
14317   typedef enum __MIDL___MIDL_itf_strmif_0400_0001 {
14318     VMR_ARMODE_NONE = 0,VMR_ARMODE_LETTER_BOX = VMR_ARMODE_NONE + 1
14319   } VMR_ASPECT_RATIO_MODE;
14320 
14321   extern RPC_IF_HANDLE __MIDL_itf_strmif_0400_v0_0_c_ifspec;
14322   extern RPC_IF_HANDLE __MIDL_itf_strmif_0400_v0_0_s_ifspec;
14323 #ifndef __IVMRWindowlessControl_INTERFACE_DEFINED__
14324 #define __IVMRWindowlessControl_INTERFACE_DEFINED__
14325   EXTERN_C const IID IID_IVMRWindowlessControl;
14326 #if defined(__cplusplus) && !defined(CINTERFACE)
14327   struct IVMRWindowlessControl : public IUnknown {
14328   public:
14329     virtual HRESULT WINAPI GetNativeVideoSize(LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight) = 0;
14330     virtual HRESULT WINAPI GetMinIdealVideoSize(LONG *lpWidth,LONG *lpHeight) = 0;
14331     virtual HRESULT WINAPI GetMaxIdealVideoSize(LONG *lpWidth,LONG *lpHeight) = 0;
14332     virtual HRESULT WINAPI SetVideoPosition(const LPRECT lpSRCRect,const LPRECT lpDSTRect) = 0;
14333     virtual HRESULT WINAPI GetVideoPosition(LPRECT lpSRCRect,LPRECT lpDSTRect) = 0;
14334     virtual HRESULT WINAPI GetAspectRatioMode(DWORD *lpAspectRatioMode) = 0;
14335     virtual HRESULT WINAPI SetAspectRatioMode(DWORD AspectRatioMode) = 0;
14336     virtual HRESULT WINAPI SetVideoClippingWindow(HWND hwnd) = 0;
14337     virtual HRESULT WINAPI RepaintVideo(HWND hwnd,HDC hdc) = 0;
14338     virtual HRESULT WINAPI DisplayModeChanged(void) = 0;
14339     virtual HRESULT WINAPI GetCurrentImage(BYTE **lpDib) = 0;
14340     virtual HRESULT WINAPI SetBorderColor(COLORREF Clr) = 0;
14341     virtual HRESULT WINAPI GetBorderColor(COLORREF *lpClr) = 0;
14342     virtual HRESULT WINAPI SetColorKey(COLORREF Clr) = 0;
14343     virtual HRESULT WINAPI GetColorKey(COLORREF *lpClr) = 0;
14344   };
14345 #else
14346   typedef struct IVMRWindowlessControlVtbl {
14347     BEGIN_INTERFACE
14348       HRESULT (WINAPI *QueryInterface)(IVMRWindowlessControl *This,REFIID riid,void **ppvObject);
14349       ULONG (WINAPI *AddRef)(IVMRWindowlessControl *This);
14350       ULONG (WINAPI *Release)(IVMRWindowlessControl *This);
14351       HRESULT (WINAPI *GetNativeVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight);
14352       HRESULT (WINAPI *GetMinIdealVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
14353       HRESULT (WINAPI *GetMaxIdealVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
14354       HRESULT (WINAPI *SetVideoPosition)(IVMRWindowlessControl *This,const LPRECT lpSRCRect,const LPRECT lpDSTRect);
14355       HRESULT (WINAPI *GetVideoPosition)(IVMRWindowlessControl *This,LPRECT lpSRCRect,LPRECT lpDSTRect);
14356       HRESULT (WINAPI *GetAspectRatioMode)(IVMRWindowlessControl *This,DWORD *lpAspectRatioMode);
14357       HRESULT (WINAPI *SetAspectRatioMode)(IVMRWindowlessControl *This,DWORD AspectRatioMode);
14358       HRESULT (WINAPI *SetVideoClippingWindow)(IVMRWindowlessControl *This,HWND hwnd);
14359       HRESULT (WINAPI *RepaintVideo)(IVMRWindowlessControl *This,HWND hwnd,HDC hdc);
14360       HRESULT (WINAPI *DisplayModeChanged)(IVMRWindowlessControl *This);
14361       HRESULT (WINAPI *GetCurrentImage)(IVMRWindowlessControl *This,BYTE **lpDib);
14362       HRESULT (WINAPI *SetBorderColor)(IVMRWindowlessControl *This,COLORREF Clr);
14363       HRESULT (WINAPI *GetBorderColor)(IVMRWindowlessControl *This,COLORREF *lpClr);
14364       HRESULT (WINAPI *SetColorKey)(IVMRWindowlessControl *This,COLORREF Clr);
14365       HRESULT (WINAPI *GetColorKey)(IVMRWindowlessControl *This,COLORREF *lpClr);
14366     END_INTERFACE
14367   } IVMRWindowlessControlVtbl;
14368   struct IVMRWindowlessControl {
14369     CONST_VTBL struct IVMRWindowlessControlVtbl *lpVtbl;
14370   };
14371 #ifdef COBJMACROS
14372 #define IVMRWindowlessControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14373 #define IVMRWindowlessControl_AddRef(This) (This)->lpVtbl->AddRef(This)
14374 #define IVMRWindowlessControl_Release(This) (This)->lpVtbl->Release(This)
14375 #define IVMRWindowlessControl_GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight) (This)->lpVtbl->GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight)
14376 #define IVMRWindowlessControl_GetMinIdealVideoSize(This,lpWidth,lpHeight) (This)->lpVtbl->GetMinIdealVideoSize(This,lpWidth,lpHeight)
14377 #define IVMRWindowlessControl_GetMaxIdealVideoSize(This,lpWidth,lpHeight) (This)->lpVtbl->GetMaxIdealVideoSize(This,lpWidth,lpHeight)
14378 #define IVMRWindowlessControl_SetVideoPosition(This,lpSRCRect,lpDSTRect) (This)->lpVtbl->SetVideoPosition(This,lpSRCRect,lpDSTRect)
14379 #define IVMRWindowlessControl_GetVideoPosition(This,lpSRCRect,lpDSTRect) (This)->lpVtbl->GetVideoPosition(This,lpSRCRect,lpDSTRect)
14380 #define IVMRWindowlessControl_GetAspectRatioMode(This,lpAspectRatioMode) (This)->lpVtbl->GetAspectRatioMode(This,lpAspectRatioMode)
14381 #define IVMRWindowlessControl_SetAspectRatioMode(This,AspectRatioMode) (This)->lpVtbl->SetAspectRatioMode(This,AspectRatioMode)
14382 #define IVMRWindowlessControl_SetVideoClippingWindow(This,hwnd) (This)->lpVtbl->SetVideoClippingWindow(This,hwnd)
14383 #define IVMRWindowlessControl_RepaintVideo(This,hwnd,hdc) (This)->lpVtbl->RepaintVideo(This,hwnd,hdc)
14384 #define IVMRWindowlessControl_DisplayModeChanged(This) (This)->lpVtbl->DisplayModeChanged(This)
14385 #define IVMRWindowlessControl_GetCurrentImage(This,lpDib) (This)->lpVtbl->GetCurrentImage(This,lpDib)
14386 #define IVMRWindowlessControl_SetBorderColor(This,Clr) (This)->lpVtbl->SetBorderColor(This,Clr)
14387 #define IVMRWindowlessControl_GetBorderColor(This,lpClr) (This)->lpVtbl->GetBorderColor(This,lpClr)
14388 #define IVMRWindowlessControl_SetColorKey(This,Clr) (This)->lpVtbl->SetColorKey(This,Clr)
14389 #define IVMRWindowlessControl_GetColorKey(This,lpClr) (This)->lpVtbl->GetColorKey(This,lpClr)
14390 #endif
14391 #endif
14392   HRESULT WINAPI IVMRWindowlessControl_GetNativeVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight);
14393   void __RPC_STUB IVMRWindowlessControl_GetNativeVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14394   HRESULT WINAPI IVMRWindowlessControl_GetMinIdealVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
14395   void __RPC_STUB IVMRWindowlessControl_GetMinIdealVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14396   HRESULT WINAPI IVMRWindowlessControl_GetMaxIdealVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
14397   void __RPC_STUB IVMRWindowlessControl_GetMaxIdealVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14398   HRESULT WINAPI IVMRWindowlessControl_SetVideoPosition_Proxy(IVMRWindowlessControl *This,const LPRECT lpSRCRect,const LPRECT lpDSTRect);
14399   void __RPC_STUB IVMRWindowlessControl_SetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14400   HRESULT WINAPI IVMRWindowlessControl_GetVideoPosition_Proxy(IVMRWindowlessControl *This,LPRECT lpSRCRect,LPRECT lpDSTRect);
14401   void __RPC_STUB IVMRWindowlessControl_GetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14402   HRESULT WINAPI IVMRWindowlessControl_GetAspectRatioMode_Proxy(IVMRWindowlessControl *This,DWORD *lpAspectRatioMode);
14403   void __RPC_STUB IVMRWindowlessControl_GetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14404   HRESULT WINAPI IVMRWindowlessControl_SetAspectRatioMode_Proxy(IVMRWindowlessControl *This,DWORD AspectRatioMode);
14405   void __RPC_STUB IVMRWindowlessControl_SetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14406   HRESULT WINAPI IVMRWindowlessControl_SetVideoClippingWindow_Proxy(IVMRWindowlessControl *This,HWND hwnd);
14407   void __RPC_STUB IVMRWindowlessControl_SetVideoClippingWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14408   HRESULT WINAPI IVMRWindowlessControl_RepaintVideo_Proxy(IVMRWindowlessControl *This,HWND hwnd,HDC hdc);
14409   void __RPC_STUB IVMRWindowlessControl_RepaintVideo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14410   HRESULT WINAPI IVMRWindowlessControl_DisplayModeChanged_Proxy(IVMRWindowlessControl *This);
14411   void __RPC_STUB IVMRWindowlessControl_DisplayModeChanged_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14412   HRESULT WINAPI IVMRWindowlessControl_GetCurrentImage_Proxy(IVMRWindowlessControl *This,BYTE **lpDib);
14413   void __RPC_STUB IVMRWindowlessControl_GetCurrentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14414   HRESULT WINAPI IVMRWindowlessControl_SetBorderColor_Proxy(IVMRWindowlessControl *This,COLORREF Clr);
14415   void __RPC_STUB IVMRWindowlessControl_SetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14416   HRESULT WINAPI IVMRWindowlessControl_GetBorderColor_Proxy(IVMRWindowlessControl *This,COLORREF *lpClr);
14417   void __RPC_STUB IVMRWindowlessControl_GetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14418   HRESULT WINAPI IVMRWindowlessControl_SetColorKey_Proxy(IVMRWindowlessControl *This,COLORREF Clr);
14419   void __RPC_STUB IVMRWindowlessControl_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14420   HRESULT WINAPI IVMRWindowlessControl_GetColorKey_Proxy(IVMRWindowlessControl *This,COLORREF *lpClr);
14421   void __RPC_STUB IVMRWindowlessControl_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14422 #endif
14423 
14424   typedef enum __MIDL___MIDL_itf_strmif_0401_0001 {
14425     MixerPref_NoDecimation = 0x1,MixerPref_DecimateOutput = 0x2,MixerPref_ARAdjustXorY = 0x4,MixerPref_DecimationReserved = 0x8,
14426     MixerPref_DecimateMask = 0xf,MixerPref_BiLinearFiltering = 0x10,MixerPref_PointFiltering = 0x20,MixerPref_FilteringMask = 0xf0,
14427     MixerPref_RenderTargetRGB = 0x100,MixerPref_RenderTargetYUV = 0x1000,MixerPref_RenderTargetYUV420 = 0x200,MixerPref_RenderTargetYUV422 = 0x400,
14428     MixerPref_RenderTargetYUV444 = 0x800,MixerPref_RenderTargetReserved = 0xe000,MixerPref_RenderTargetMask = 0xff00,
14429     MixerPref_DynamicSwitchToBOB = 0x10000,MixerPref_DynamicDecimateBy2 = 0x20000,MixerPref_DynamicReserved = 0xc0000,
14430     MixerPref_DynamicMask = 0xf0000
14431   } VMRMixerPrefs;
14432 
14433   typedef struct _NORMALIZEDRECT {
14434     float left;
14435     float top;
14436     float right;
14437     float bottom;
14438   } NORMALIZEDRECT;
14439 
14440   typedef struct _NORMALIZEDRECT *PNORMALIZEDRECT;
14441 
14442   extern RPC_IF_HANDLE __MIDL_itf_strmif_0401_v0_0_c_ifspec;
14443   extern RPC_IF_HANDLE __MIDL_itf_strmif_0401_v0_0_s_ifspec;
14444 #ifndef __IVMRMixerControl_INTERFACE_DEFINED__
14445 #define __IVMRMixerControl_INTERFACE_DEFINED__
14446   EXTERN_C const IID IID_IVMRMixerControl;
14447 #if defined(__cplusplus) && !defined(CINTERFACE)
14448   struct IVMRMixerControl : public IUnknown {
14449   public:
14450     virtual HRESULT WINAPI SetAlpha(DWORD dwStreamID,float Alpha) = 0;
14451     virtual HRESULT WINAPI GetAlpha(DWORD dwStreamID,float *pAlpha) = 0;
14452     virtual HRESULT WINAPI SetZOrder(DWORD dwStreamID,DWORD dwZ) = 0;
14453     virtual HRESULT WINAPI GetZOrder(DWORD dwStreamID,DWORD *pZ) = 0;
14454     virtual HRESULT WINAPI SetOutputRect(DWORD dwStreamID,const NORMALIZEDRECT *pRect) = 0;
14455     virtual HRESULT WINAPI GetOutputRect(DWORD dwStreamID,NORMALIZEDRECT *pRect) = 0;
14456     virtual HRESULT WINAPI SetBackgroundClr(COLORREF ClrBkg) = 0;
14457     virtual HRESULT WINAPI GetBackgroundClr(COLORREF *lpClrBkg) = 0;
14458     virtual HRESULT WINAPI SetMixingPrefs(DWORD dwMixerPrefs) = 0;
14459     virtual HRESULT WINAPI GetMixingPrefs(DWORD *pdwMixerPrefs) = 0;
14460   };
14461 #else
14462   typedef struct IVMRMixerControlVtbl {
14463     BEGIN_INTERFACE
14464       HRESULT (WINAPI *QueryInterface)(IVMRMixerControl *This,REFIID riid,void **ppvObject);
14465       ULONG (WINAPI *AddRef)(IVMRMixerControl *This);
14466       ULONG (WINAPI *Release)(IVMRMixerControl *This);
14467       HRESULT (WINAPI *SetAlpha)(IVMRMixerControl *This,DWORD dwStreamID,float Alpha);
14468       HRESULT (WINAPI *GetAlpha)(IVMRMixerControl *This,DWORD dwStreamID,float *pAlpha);
14469       HRESULT (WINAPI *SetZOrder)(IVMRMixerControl *This,DWORD dwStreamID,DWORD dwZ);
14470       HRESULT (WINAPI *GetZOrder)(IVMRMixerControl *This,DWORD dwStreamID,DWORD *pZ);
14471       HRESULT (WINAPI *SetOutputRect)(IVMRMixerControl *This,DWORD dwStreamID,const NORMALIZEDRECT *pRect);
14472       HRESULT (WINAPI *GetOutputRect)(IVMRMixerControl *This,DWORD dwStreamID,NORMALIZEDRECT *pRect);
14473       HRESULT (WINAPI *SetBackgroundClr)(IVMRMixerControl *This,COLORREF ClrBkg);
14474       HRESULT (WINAPI *GetBackgroundClr)(IVMRMixerControl *This,COLORREF *lpClrBkg);
14475       HRESULT (WINAPI *SetMixingPrefs)(IVMRMixerControl *This,DWORD dwMixerPrefs);
14476       HRESULT (WINAPI *GetMixingPrefs)(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
14477     END_INTERFACE
14478   } IVMRMixerControlVtbl;
14479   struct IVMRMixerControl {
14480     CONST_VTBL struct IVMRMixerControlVtbl *lpVtbl;
14481   };
14482 #ifdef COBJMACROS
14483 #define IVMRMixerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14484 #define IVMRMixerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
14485 #define IVMRMixerControl_Release(This) (This)->lpVtbl->Release(This)
14486 #define IVMRMixerControl_SetAlpha(This,dwStreamID,Alpha) (This)->lpVtbl->SetAlpha(This,dwStreamID,Alpha)
14487 #define IVMRMixerControl_GetAlpha(This,dwStreamID,pAlpha) (This)->lpVtbl->GetAlpha(This,dwStreamID,pAlpha)
14488 #define IVMRMixerControl_SetZOrder(This,dwStreamID,dwZ) (This)->lpVtbl->SetZOrder(This,dwStreamID,dwZ)
14489 #define IVMRMixerControl_GetZOrder(This,dwStreamID,pZ) (This)->lpVtbl->GetZOrder(This,dwStreamID,pZ)
14490 #define IVMRMixerControl_SetOutputRect(This,dwStreamID,pRect) (This)->lpVtbl->SetOutputRect(This,dwStreamID,pRect)
14491 #define IVMRMixerControl_GetOutputRect(This,dwStreamID,pRect) (This)->lpVtbl->GetOutputRect(This,dwStreamID,pRect)
14492 #define IVMRMixerControl_SetBackgroundClr(This,ClrBkg) (This)->lpVtbl->SetBackgroundClr(This,ClrBkg)
14493 #define IVMRMixerControl_GetBackgroundClr(This,lpClrBkg) (This)->lpVtbl->GetBackgroundClr(This,lpClrBkg)
14494 #define IVMRMixerControl_SetMixingPrefs(This,dwMixerPrefs) (This)->lpVtbl->SetMixingPrefs(This,dwMixerPrefs)
14495 #define IVMRMixerControl_GetMixingPrefs(This,pdwMixerPrefs) (This)->lpVtbl->GetMixingPrefs(This,pdwMixerPrefs)
14496 #endif
14497 #endif
14498   HRESULT WINAPI IVMRMixerControl_SetAlpha_Proxy(IVMRMixerControl *This,DWORD dwStreamID,float Alpha);
14499   void __RPC_STUB IVMRMixerControl_SetAlpha_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14500   HRESULT WINAPI IVMRMixerControl_GetAlpha_Proxy(IVMRMixerControl *This,DWORD dwStreamID,float *pAlpha);
14501   void __RPC_STUB IVMRMixerControl_GetAlpha_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14502   HRESULT WINAPI IVMRMixerControl_SetZOrder_Proxy(IVMRMixerControl *This,DWORD dwStreamID,DWORD dwZ);
14503   void __RPC_STUB IVMRMixerControl_SetZOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14504   HRESULT WINAPI IVMRMixerControl_GetZOrder_Proxy(IVMRMixerControl *This,DWORD dwStreamID,DWORD *pZ);
14505   void __RPC_STUB IVMRMixerControl_GetZOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14506   HRESULT WINAPI IVMRMixerControl_SetOutputRect_Proxy(IVMRMixerControl *This,DWORD dwStreamID,const NORMALIZEDRECT *pRect);
14507   void __RPC_STUB IVMRMixerControl_SetOutputRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14508   HRESULT WINAPI IVMRMixerControl_GetOutputRect_Proxy(IVMRMixerControl *This,DWORD dwStreamID,NORMALIZEDRECT *pRect);
14509   void __RPC_STUB IVMRMixerControl_GetOutputRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14510   HRESULT WINAPI IVMRMixerControl_SetBackgroundClr_Proxy(IVMRMixerControl *This,COLORREF ClrBkg);
14511   void __RPC_STUB IVMRMixerControl_SetBackgroundClr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14512   HRESULT WINAPI IVMRMixerControl_GetBackgroundClr_Proxy(IVMRMixerControl *This,COLORREF *lpClrBkg);
14513   void __RPC_STUB IVMRMixerControl_GetBackgroundClr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14514   HRESULT WINAPI IVMRMixerControl_SetMixingPrefs_Proxy(IVMRMixerControl *This,DWORD dwMixerPrefs);
14515   void __RPC_STUB IVMRMixerControl_SetMixingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14516   HRESULT WINAPI IVMRMixerControl_GetMixingPrefs_Proxy(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
14517 
14518   void __RPC_STUB IVMRMixerControl_GetMixingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14519 #endif
14520 
14521 #ifdef __cplusplus
14522   typedef struct tagVMRGUID {
14523     ::GUID *pGUID;
14524     ::GUID GUID;
14525   } VMRGUID;
14526 #else
14527   typedef struct tagVMRGUID {
14528     GUID *pGUID;
14529     GUID GUID;
14530   } VMRGUID;
14531 #endif
14532 
14533   typedef struct tagVMRMONITORINFO {
14534     VMRGUID guid;
14535     RECT rcMonitor;
14536     HMONITOR hMon;
14537     DWORD dwFlags;
14538     wchar_t szDevice[32];
14539     wchar_t szDescription[256];
14540     LARGE_INTEGER liDriverVersion;
14541     DWORD dwVendorId;
14542     DWORD dwDeviceId;
14543     DWORD dwSubSysId;
14544     DWORD dwRevision;
14545   } VMRMONITORINFO;
14546 
14547   extern RPC_IF_HANDLE __MIDL_itf_strmif_0402_v0_0_c_ifspec;
14548   extern RPC_IF_HANDLE __MIDL_itf_strmif_0402_v0_0_s_ifspec;
14549 #ifndef __IVMRMonitorConfig_INTERFACE_DEFINED__
14550 #define __IVMRMonitorConfig_INTERFACE_DEFINED__
14551   EXTERN_C const IID IID_IVMRMonitorConfig;
14552 #if defined(__cplusplus) && !defined(CINTERFACE)
14553   struct IVMRMonitorConfig : public IUnknown {
14554   public:
14555     virtual HRESULT WINAPI SetMonitor(const VMRGUID *pGUID) = 0;
14556     virtual HRESULT WINAPI GetMonitor(VMRGUID *pGUID) = 0;
14557     virtual HRESULT WINAPI SetDefaultMonitor(const VMRGUID *pGUID) = 0;
14558     virtual HRESULT WINAPI GetDefaultMonitor(VMRGUID *pGUID) = 0;
14559     virtual HRESULT WINAPI GetAvailableMonitors(VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices) = 0;
14560   };
14561 #else
14562   typedef struct IVMRMonitorConfigVtbl {
14563     BEGIN_INTERFACE
14564       HRESULT (WINAPI *QueryInterface)(IVMRMonitorConfig *This,REFIID riid,void **ppvObject);
14565       ULONG (WINAPI *AddRef)(IVMRMonitorConfig *This);
14566       ULONG (WINAPI *Release)(IVMRMonitorConfig *This);
14567       HRESULT (WINAPI *SetMonitor)(IVMRMonitorConfig *This,const VMRGUID *pGUID);
14568       HRESULT (WINAPI *GetMonitor)(IVMRMonitorConfig *This,VMRGUID *pGUID);
14569       HRESULT (WINAPI *SetDefaultMonitor)(IVMRMonitorConfig *This,const VMRGUID *pGUID);
14570       HRESULT (WINAPI *GetDefaultMonitor)(IVMRMonitorConfig *This,VMRGUID *pGUID);
14571       HRESULT (WINAPI *GetAvailableMonitors)(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
14572     END_INTERFACE
14573   } IVMRMonitorConfigVtbl;
14574   struct IVMRMonitorConfig {
14575     CONST_VTBL struct IVMRMonitorConfigVtbl *lpVtbl;
14576   };
14577 #ifdef COBJMACROS
14578 #define IVMRMonitorConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14579 #define IVMRMonitorConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
14580 #define IVMRMonitorConfig_Release(This) (This)->lpVtbl->Release(This)
14581 #define IVMRMonitorConfig_SetMonitor(This,pGUID) (This)->lpVtbl->SetMonitor(This,pGUID)
14582 #define IVMRMonitorConfig_GetMonitor(This,pGUID) (This)->lpVtbl->GetMonitor(This,pGUID)
14583 #define IVMRMonitorConfig_SetDefaultMonitor(This,pGUID) (This)->lpVtbl->SetDefaultMonitor(This,pGUID)
14584 #define IVMRMonitorConfig_GetDefaultMonitor(This,pGUID) (This)->lpVtbl->GetDefaultMonitor(This,pGUID)
14585 #define IVMRMonitorConfig_GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices) (This)->lpVtbl->GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices)
14586 #endif
14587 #endif
14588   HRESULT WINAPI IVMRMonitorConfig_SetMonitor_Proxy(IVMRMonitorConfig *This,const VMRGUID *pGUID);
14589   void __RPC_STUB IVMRMonitorConfig_SetMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14590   HRESULT WINAPI IVMRMonitorConfig_GetMonitor_Proxy(IVMRMonitorConfig *This,VMRGUID *pGUID);
14591   void __RPC_STUB IVMRMonitorConfig_GetMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14592   HRESULT WINAPI IVMRMonitorConfig_SetDefaultMonitor_Proxy(IVMRMonitorConfig *This,const VMRGUID *pGUID);
14593   void __RPC_STUB IVMRMonitorConfig_SetDefaultMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14594   HRESULT WINAPI IVMRMonitorConfig_GetDefaultMonitor_Proxy(IVMRMonitorConfig *This,VMRGUID *pGUID);
14595   void __RPC_STUB IVMRMonitorConfig_GetDefaultMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14596   HRESULT WINAPI IVMRMonitorConfig_GetAvailableMonitors_Proxy(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
14597   void __RPC_STUB IVMRMonitorConfig_GetAvailableMonitors_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14598 #endif
14599 
14600   typedef enum __MIDL___MIDL_itf_strmif_0403_0001 {
14601     RenderPrefs_RestrictToInitialMonitor = 0,RenderPrefs_ForceOffscreen = 0x1,RenderPrefs_ForceOverlays = 0x2,RenderPrefs_AllowOverlays = 0,
14602     RenderPrefs_AllowOffscreen = 0,RenderPrefs_DoNotRenderColorKeyAndBorder = 0x8,RenderPrefs_Reserved = 0x10,RenderPrefs_PreferAGPMemWhenMixing = 0x20,
14603     RenderPrefs_Mask = 0x3f
14604   } VMRRenderPrefs;
14605 
14606   typedef enum __MIDL___MIDL_itf_strmif_0403_0002 {
14607     VMRMode_Windowed = 0x1,VMRMode_Windowless = 0x2,VMRMode_Renderless = 0x4,VMRMode_Mask = 0x7
14608   } VMRMode;
14609 
14610   enum __MIDL___MIDL_itf_strmif_0403_0003 {
14611     MAX_NUMBER_OF_STREAMS = 16
14612   };
14613 
14614   extern RPC_IF_HANDLE __MIDL_itf_strmif_0403_v0_0_c_ifspec;
14615   extern RPC_IF_HANDLE __MIDL_itf_strmif_0403_v0_0_s_ifspec;
14616 #ifndef __IVMRFilterConfig_INTERFACE_DEFINED__
14617 #define __IVMRFilterConfig_INTERFACE_DEFINED__
14618   EXTERN_C const IID IID_IVMRFilterConfig;
14619 #if defined(__cplusplus) && !defined(CINTERFACE)
14620   struct IVMRFilterConfig : public IUnknown {
14621   public:
14622     virtual HRESULT WINAPI SetImageCompositor(IVMRImageCompositor *lpVMRImgCompositor) = 0;
14623     virtual HRESULT WINAPI SetNumberOfStreams(DWORD dwMaxStreams) = 0;
14624     virtual HRESULT WINAPI GetNumberOfStreams(DWORD *pdwMaxStreams) = 0;
14625     virtual HRESULT WINAPI SetRenderingPrefs(DWORD dwRenderFlags) = 0;
14626     virtual HRESULT WINAPI GetRenderingPrefs(DWORD *pdwRenderFlags) = 0;
14627     virtual HRESULT WINAPI SetRenderingMode(DWORD Mode) = 0;
14628     virtual HRESULT WINAPI GetRenderingMode(DWORD *pMode) = 0;
14629   };
14630 #else
14631   typedef struct IVMRFilterConfigVtbl {
14632     BEGIN_INTERFACE
14633       HRESULT (WINAPI *QueryInterface)(IVMRFilterConfig *This,REFIID riid,void **ppvObject);
14634       ULONG (WINAPI *AddRef)(IVMRFilterConfig *This);
14635       ULONG (WINAPI *Release)(IVMRFilterConfig *This);
14636       HRESULT (WINAPI *SetImageCompositor)(IVMRFilterConfig *This,IVMRImageCompositor *lpVMRImgCompositor);
14637       HRESULT (WINAPI *SetNumberOfStreams)(IVMRFilterConfig *This,DWORD dwMaxStreams);
14638       HRESULT (WINAPI *GetNumberOfStreams)(IVMRFilterConfig *This,DWORD *pdwMaxStreams);
14639       HRESULT (WINAPI *SetRenderingPrefs)(IVMRFilterConfig *This,DWORD dwRenderFlags);
14640       HRESULT (WINAPI *GetRenderingPrefs)(IVMRFilterConfig *This,DWORD *pdwRenderFlags);
14641       HRESULT (WINAPI *SetRenderingMode)(IVMRFilterConfig *This,DWORD Mode);
14642       HRESULT (WINAPI *GetRenderingMode)(IVMRFilterConfig *This,DWORD *pMode);
14643     END_INTERFACE
14644   } IVMRFilterConfigVtbl;
14645   struct IVMRFilterConfig {
14646     CONST_VTBL struct IVMRFilterConfigVtbl *lpVtbl;
14647   };
14648 #ifdef COBJMACROS
14649 #define IVMRFilterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14650 #define IVMRFilterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
14651 #define IVMRFilterConfig_Release(This) (This)->lpVtbl->Release(This)
14652 #define IVMRFilterConfig_SetImageCompositor(This,lpVMRImgCompositor) (This)->lpVtbl->SetImageCompositor(This,lpVMRImgCompositor)
14653 #define IVMRFilterConfig_SetNumberOfStreams(This,dwMaxStreams) (This)->lpVtbl->SetNumberOfStreams(This,dwMaxStreams)
14654 #define IVMRFilterConfig_GetNumberOfStreams(This,pdwMaxStreams) (This)->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams)
14655 #define IVMRFilterConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
14656 #define IVMRFilterConfig_GetRenderingPrefs(This,pdwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags)
14657 #define IVMRFilterConfig_SetRenderingMode(This,Mode) (This)->lpVtbl->SetRenderingMode(This,Mode)
14658 #define IVMRFilterConfig_GetRenderingMode(This,pMode) (This)->lpVtbl->GetRenderingMode(This,pMode)
14659 #endif
14660 #endif
14661   HRESULT WINAPI IVMRFilterConfig_SetImageCompositor_Proxy(IVMRFilterConfig *This,IVMRImageCompositor *lpVMRImgCompositor);
14662   void __RPC_STUB IVMRFilterConfig_SetImageCompositor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14663   HRESULT WINAPI IVMRFilterConfig_SetNumberOfStreams_Proxy(IVMRFilterConfig *This,DWORD dwMaxStreams);
14664   void __RPC_STUB IVMRFilterConfig_SetNumberOfStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14665   HRESULT WINAPI IVMRFilterConfig_GetNumberOfStreams_Proxy(IVMRFilterConfig *This,DWORD *pdwMaxStreams);
14666   void __RPC_STUB IVMRFilterConfig_GetNumberOfStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14667   HRESULT WINAPI IVMRFilterConfig_SetRenderingPrefs_Proxy(IVMRFilterConfig *This,DWORD dwRenderFlags);
14668   void __RPC_STUB IVMRFilterConfig_SetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14669   HRESULT WINAPI IVMRFilterConfig_GetRenderingPrefs_Proxy(IVMRFilterConfig *This,DWORD *pdwRenderFlags);
14670   void __RPC_STUB IVMRFilterConfig_GetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14671   HRESULT WINAPI IVMRFilterConfig_SetRenderingMode_Proxy(IVMRFilterConfig *This,DWORD Mode);
14672   void __RPC_STUB IVMRFilterConfig_SetRenderingMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14673   HRESULT WINAPI IVMRFilterConfig_GetRenderingMode_Proxy(IVMRFilterConfig *This,DWORD *pMode);
14674   void __RPC_STUB IVMRFilterConfig_GetRenderingMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14675 #endif
14676 
14677 #ifndef __IVMRAspectRatioControl_INTERFACE_DEFINED__
14678 #define __IVMRAspectRatioControl_INTERFACE_DEFINED__
14679   EXTERN_C const IID IID_IVMRAspectRatioControl;
14680 #if defined(__cplusplus) && !defined(CINTERFACE)
14681   struct IVMRAspectRatioControl : public IUnknown {
14682   public:
14683     virtual HRESULT WINAPI GetAspectRatioMode(LPDWORD lpdwARMode) = 0;
14684     virtual HRESULT WINAPI SetAspectRatioMode(DWORD dwARMode) = 0;
14685   };
14686 #else
14687   typedef struct IVMRAspectRatioControlVtbl {
14688     BEGIN_INTERFACE
14689       HRESULT (WINAPI *QueryInterface)(IVMRAspectRatioControl *This,REFIID riid,void **ppvObject);
14690       ULONG (WINAPI *AddRef)(IVMRAspectRatioControl *This);
14691       ULONG (WINAPI *Release)(IVMRAspectRatioControl *This);
14692       HRESULT (WINAPI *GetAspectRatioMode)(IVMRAspectRatioControl *This,LPDWORD lpdwARMode);
14693       HRESULT (WINAPI *SetAspectRatioMode)(IVMRAspectRatioControl *This,DWORD dwARMode);
14694     END_INTERFACE
14695   } IVMRAspectRatioControlVtbl;
14696   struct IVMRAspectRatioControl {
14697     CONST_VTBL struct IVMRAspectRatioControlVtbl *lpVtbl;
14698   };
14699 #ifdef COBJMACROS
14700 #define IVMRAspectRatioControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14701 #define IVMRAspectRatioControl_AddRef(This) (This)->lpVtbl->AddRef(This)
14702 #define IVMRAspectRatioControl_Release(This) (This)->lpVtbl->Release(This)
14703 #define IVMRAspectRatioControl_GetAspectRatioMode(This,lpdwARMode) (This)->lpVtbl->GetAspectRatioMode(This,lpdwARMode)
14704 #define IVMRAspectRatioControl_SetAspectRatioMode(This,dwARMode) (This)->lpVtbl->SetAspectRatioMode(This,dwARMode)
14705 #endif
14706 #endif
14707   HRESULT WINAPI IVMRAspectRatioControl_GetAspectRatioMode_Proxy(IVMRAspectRatioControl *This,LPDWORD lpdwARMode);
14708   void __RPC_STUB IVMRAspectRatioControl_GetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14709   HRESULT WINAPI IVMRAspectRatioControl_SetAspectRatioMode_Proxy(IVMRAspectRatioControl *This,DWORD dwARMode);
14710   void __RPC_STUB IVMRAspectRatioControl_SetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14711 #endif
14712 
14713   typedef enum __MIDL___MIDL_itf_strmif_0405_0001 {
14714     DeinterlacePref_NextBest = 0x1,DeinterlacePref_BOB = 0x2,DeinterlacePref_Weave = 0x4,DeinterlacePref_Mask = 0x7
14715   } VMRDeinterlacePrefs;
14716 
14717   typedef enum __MIDL___MIDL_itf_strmif_0405_0002 {
14718     DeinterlaceTech_Unknown = 0,DeinterlaceTech_BOBLineReplicate = 0x1,DeinterlaceTech_BOBVerticalStretch = 0x2,DeinterlaceTech_MedianFiltering = 0x4,
14719     DeinterlaceTech_EdgeFiltering = 0x10,DeinterlaceTech_FieldAdaptive = 0x20,DeinterlaceTech_PixelAdaptive = 0x40,
14720     DeinterlaceTech_MotionVectorSteered = 0x80
14721   } VMRDeinterlaceTech;
14722 
14723   typedef struct _VMRFrequency {
14724     DWORD dwNumerator;
14725     DWORD dwDenominator;
14726   } VMRFrequency;
14727 
14728   typedef struct _VMRVideoDesc {
14729     DWORD dwSize;
14730     DWORD dwSampleWidth;
14731     DWORD dwSampleHeight;
14732     WINBOOL SingleFieldPerSample;
14733     DWORD dwFourCC;
14734     VMRFrequency InputSampleFreq;
14735     VMRFrequency OutputFrameFreq;
14736   } VMRVideoDesc;
14737 
14738   typedef struct _VMRDeinterlaceCaps {
14739     DWORD dwSize;
14740     DWORD dwNumPreviousOutputFrames;
14741     DWORD dwNumForwardRefSamples;
14742     DWORD dwNumBackwardRefSamples;
14743     VMRDeinterlaceTech DeinterlaceTechnology;
14744   } VMRDeinterlaceCaps;
14745 
14746   extern RPC_IF_HANDLE __MIDL_itf_strmif_0405_v0_0_c_ifspec;
14747   extern RPC_IF_HANDLE __MIDL_itf_strmif_0405_v0_0_s_ifspec;
14748 #ifndef __IVMRDeinterlaceControl_INTERFACE_DEFINED__
14749 #define __IVMRDeinterlaceControl_INTERFACE_DEFINED__
14750   EXTERN_C const IID IID_IVMRDeinterlaceControl;
14751 #if defined(__cplusplus) && !defined(CINTERFACE)
14752   struct IVMRDeinterlaceControl : public IUnknown {
14753   public:
14754     virtual HRESULT WINAPI GetNumberOfDeinterlaceModes(VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes) = 0;
14755     virtual HRESULT WINAPI GetDeinterlaceModeCaps(LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps) = 0;
14756     virtual HRESULT WINAPI GetDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
14757     virtual HRESULT WINAPI SetDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
14758     virtual HRESULT WINAPI GetDeinterlacePrefs(LPDWORD lpdwDeinterlacePrefs) = 0;
14759     virtual HRESULT WINAPI SetDeinterlacePrefs(DWORD dwDeinterlacePrefs) = 0;
14760     virtual HRESULT WINAPI GetActualDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
14761   };
14762 #else
14763   typedef struct IVMRDeinterlaceControlVtbl {
14764     BEGIN_INTERFACE
14765       HRESULT (WINAPI *QueryInterface)(IVMRDeinterlaceControl *This,REFIID riid,void **ppvObject);
14766       ULONG (WINAPI *AddRef)(IVMRDeinterlaceControl *This);
14767       ULONG (WINAPI *Release)(IVMRDeinterlaceControl *This);
14768       HRESULT (WINAPI *GetNumberOfDeinterlaceModes)(IVMRDeinterlaceControl *This,VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes);
14769       HRESULT (WINAPI *GetDeinterlaceModeCaps)(IVMRDeinterlaceControl *This,LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps);
14770       HRESULT (WINAPI *GetDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
14771       HRESULT (WINAPI *SetDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
14772       HRESULT (WINAPI *GetDeinterlacePrefs)(IVMRDeinterlaceControl *This,LPDWORD lpdwDeinterlacePrefs);
14773       HRESULT (WINAPI *SetDeinterlacePrefs)(IVMRDeinterlaceControl *This,DWORD dwDeinterlacePrefs);
14774       HRESULT (WINAPI *GetActualDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
14775     END_INTERFACE
14776   } IVMRDeinterlaceControlVtbl;
14777   struct IVMRDeinterlaceControl {
14778     CONST_VTBL struct IVMRDeinterlaceControlVtbl *lpVtbl;
14779   };
14780 #ifdef COBJMACROS
14781 #define IVMRDeinterlaceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14782 #define IVMRDeinterlaceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
14783 #define IVMRDeinterlaceControl_Release(This) (This)->lpVtbl->Release(This)
14784 #define IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes) (This)->lpVtbl->GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes)
14785 #define IVMRDeinterlaceControl_GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps) (This)->lpVtbl->GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps)
14786 #define IVMRDeinterlaceControl_GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
14787 #define IVMRDeinterlaceControl_SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
14788 #define IVMRDeinterlaceControl_GetDeinterlacePrefs(This,lpdwDeinterlacePrefs) (This)->lpVtbl->GetDeinterlacePrefs(This,lpdwDeinterlacePrefs)
14789 #define IVMRDeinterlaceControl_SetDeinterlacePrefs(This,dwDeinterlacePrefs) (This)->lpVtbl->SetDeinterlacePrefs(This,dwDeinterlacePrefs)
14790 #define IVMRDeinterlaceControl_GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
14791 #endif
14792 #endif
14793   HRESULT WINAPI IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes_Proxy(IVMRDeinterlaceControl *This,VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes);
14794   void __RPC_STUB IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14795   HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlaceModeCaps_Proxy(IVMRDeinterlaceControl *This,LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps);
14796   void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlaceModeCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14797   HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
14798   void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14799   HRESULT WINAPI IVMRDeinterlaceControl_SetDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
14800   void __RPC_STUB IVMRDeinterlaceControl_SetDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14801   HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlacePrefs_Proxy(IVMRDeinterlaceControl *This,LPDWORD lpdwDeinterlacePrefs);
14802   void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlacePrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14803   HRESULT WINAPI IVMRDeinterlaceControl_SetDeinterlacePrefs_Proxy(IVMRDeinterlaceControl *This,DWORD dwDeinterlacePrefs);
14804   void __RPC_STUB IVMRDeinterlaceControl_SetDeinterlacePrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14805   HRESULT WINAPI IVMRDeinterlaceControl_GetActualDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
14806   void __RPC_STUB IVMRDeinterlaceControl_GetActualDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14807 #endif
14808 
14809   typedef struct _VMRALPHABITMAP {
14810     DWORD dwFlags;
14811     HDC hdc;
14812     LPDIRECTDRAWSURFACE7 pDDS;
14813     RECT rSrc;
14814     NORMALIZEDRECT rDest;
14815     FLOAT fAlpha;
14816     COLORREF clrSrcKey;
14817   } VMRALPHABITMAP;
14818 
14819   typedef struct _VMRALPHABITMAP *PVMRALPHABITMAP;
14820 
14821 #define VMRBITMAP_DISABLE 0x00000001
14822 #define VMRBITMAP_HDC 0x00000002
14823 #define VMRBITMAP_ENTIREDDS 0x00000004
14824 #define VMRBITMAP_SRCCOLORKEY 0x00000008
14825 #define VMRBITMAP_SRCRECT 0x00000010
14826 
14827   extern RPC_IF_HANDLE __MIDL_itf_strmif_0406_v0_0_c_ifspec;
14828   extern RPC_IF_HANDLE __MIDL_itf_strmif_0406_v0_0_s_ifspec;
14829 #ifndef __IVMRMixerBitmap_INTERFACE_DEFINED__
14830 #define __IVMRMixerBitmap_INTERFACE_DEFINED__
14831   EXTERN_C const IID IID_IVMRMixerBitmap;
14832 #if defined(__cplusplus) && !defined(CINTERFACE)
14833   struct IVMRMixerBitmap : public IUnknown {
14834   public:
14835     virtual HRESULT WINAPI SetAlphaBitmap(const VMRALPHABITMAP *pBmpParms) = 0;
14836     virtual HRESULT WINAPI UpdateAlphaBitmapParameters(PVMRALPHABITMAP pBmpParms) = 0;
14837     virtual HRESULT WINAPI GetAlphaBitmapParameters(PVMRALPHABITMAP pBmpParms) = 0;
14838   };
14839 #else
14840   typedef struct IVMRMixerBitmapVtbl {
14841     BEGIN_INTERFACE
14842       HRESULT (WINAPI *QueryInterface)(IVMRMixerBitmap *This,REFIID riid,void **ppvObject);
14843       ULONG (WINAPI *AddRef)(IVMRMixerBitmap *This);
14844       ULONG (WINAPI *Release)(IVMRMixerBitmap *This);
14845       HRESULT (WINAPI *SetAlphaBitmap)(IVMRMixerBitmap *This,const VMRALPHABITMAP *pBmpParms);
14846       HRESULT (WINAPI *UpdateAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
14847       HRESULT (WINAPI *GetAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
14848     END_INTERFACE
14849   } IVMRMixerBitmapVtbl;
14850   struct IVMRMixerBitmap {
14851     CONST_VTBL struct IVMRMixerBitmapVtbl *lpVtbl;
14852   };
14853 #ifdef COBJMACROS
14854 #define IVMRMixerBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14855 #define IVMRMixerBitmap_AddRef(This) (This)->lpVtbl->AddRef(This)
14856 #define IVMRMixerBitmap_Release(This) (This)->lpVtbl->Release(This)
14857 #define IVMRMixerBitmap_SetAlphaBitmap(This,pBmpParms) (This)->lpVtbl->SetAlphaBitmap(This,pBmpParms)
14858 #define IVMRMixerBitmap_UpdateAlphaBitmapParameters(This,pBmpParms) (This)->lpVtbl->UpdateAlphaBitmapParameters(This,pBmpParms)
14859 #define IVMRMixerBitmap_GetAlphaBitmapParameters(This,pBmpParms) (This)->lpVtbl->GetAlphaBitmapParameters(This,pBmpParms)
14860 #endif
14861 #endif
14862   HRESULT WINAPI IVMRMixerBitmap_SetAlphaBitmap_Proxy(IVMRMixerBitmap *This,const VMRALPHABITMAP *pBmpParms);
14863   void __RPC_STUB IVMRMixerBitmap_SetAlphaBitmap_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14864   HRESULT WINAPI IVMRMixerBitmap_UpdateAlphaBitmapParameters_Proxy(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
14865   void __RPC_STUB IVMRMixerBitmap_UpdateAlphaBitmapParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14866   HRESULT WINAPI IVMRMixerBitmap_GetAlphaBitmapParameters_Proxy(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
14867   void __RPC_STUB IVMRMixerBitmap_GetAlphaBitmapParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14868 #endif
14869 
14870   typedef struct _VMRVIDEOSTREAMINFO {
14871     LPDIRECTDRAWSURFACE7 pddsVideoSurface;
14872     DWORD dwWidth;
14873     DWORD dwHeight;
14874     DWORD dwStrmID;
14875     FLOAT fAlpha;
14876     DDCOLORKEY ddClrKey;
14877     NORMALIZEDRECT rNormal;
14878   } VMRVIDEOSTREAMINFO;
14879 
14880   extern RPC_IF_HANDLE __MIDL_itf_strmif_0407_v0_0_c_ifspec;
14881   extern RPC_IF_HANDLE __MIDL_itf_strmif_0407_v0_0_s_ifspec;
14882 #ifndef __IVMRImageCompositor_INTERFACE_DEFINED__
14883 #define __IVMRImageCompositor_INTERFACE_DEFINED__
14884   EXTERN_C const IID IID_IVMRImageCompositor;
14885 #if defined(__cplusplus) && !defined(CINTERFACE)
14886   struct IVMRImageCompositor : public IUnknown {
14887   public:
14888     virtual HRESULT WINAPI InitCompositionTarget(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget) = 0;
14889     virtual HRESULT WINAPI TermCompositionTarget(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget) = 0;
14890     virtual HRESULT WINAPI SetStreamMediaType(DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture) = 0;
14891     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;
14892   };
14893 #else
14894   typedef struct IVMRImageCompositorVtbl {
14895     BEGIN_INTERFACE
14896       HRESULT (WINAPI *QueryInterface)(IVMRImageCompositor *This,REFIID riid,void **ppvObject);
14897       ULONG (WINAPI *AddRef)(IVMRImageCompositor *This);
14898       ULONG (WINAPI *Release)(IVMRImageCompositor *This);
14899       HRESULT (WINAPI *InitCompositionTarget)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
14900       HRESULT (WINAPI *TermCompositionTarget)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
14901       HRESULT (WINAPI *SetStreamMediaType)(IVMRImageCompositor *This,DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture);
14902       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);
14903     END_INTERFACE
14904   } IVMRImageCompositorVtbl;
14905   struct IVMRImageCompositor {
14906     CONST_VTBL struct IVMRImageCompositorVtbl *lpVtbl;
14907   };
14908 #ifdef COBJMACROS
14909 #define IVMRImageCompositor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14910 #define IVMRImageCompositor_AddRef(This) (This)->lpVtbl->AddRef(This)
14911 #define IVMRImageCompositor_Release(This) (This)->lpVtbl->Release(This)
14912 #define IVMRImageCompositor_InitCompositionTarget(This,pD3DDevice,pddsRenderTarget) (This)->lpVtbl->InitCompositionTarget(This,pD3DDevice,pddsRenderTarget)
14913 #define IVMRImageCompositor_TermCompositionTarget(This,pD3DDevice,pddsRenderTarget) (This)->lpVtbl->TermCompositionTarget(This,pD3DDevice,pddsRenderTarget)
14914 #define IVMRImageCompositor_SetStreamMediaType(This,dwStrmID,pmt,fTexture) (This)->lpVtbl->SetStreamMediaType(This,dwStrmID,pmt,fTexture)
14915 #define IVMRImageCompositor_CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams) (This)->lpVtbl->CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams)
14916 #endif
14917 #endif
14918   HRESULT WINAPI IVMRImageCompositor_InitCompositionTarget_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
14919   void __RPC_STUB IVMRImageCompositor_InitCompositionTarget_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14920   HRESULT WINAPI IVMRImageCompositor_TermCompositionTarget_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
14921   void __RPC_STUB IVMRImageCompositor_TermCompositionTarget_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14922   HRESULT WINAPI IVMRImageCompositor_SetStreamMediaType_Proxy(IVMRImageCompositor *This,DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture);
14923   void __RPC_STUB IVMRImageCompositor_SetStreamMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14924   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);
14925   void __RPC_STUB IVMRImageCompositor_CompositeImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14926 #endif
14927 
14928 #ifndef __IVMRVideoStreamControl_INTERFACE_DEFINED__
14929 #define __IVMRVideoStreamControl_INTERFACE_DEFINED__
14930   EXTERN_C const IID IID_IVMRVideoStreamControl;
14931 #if defined(__cplusplus) && !defined(CINTERFACE)
14932   struct IVMRVideoStreamControl : public IUnknown {
14933   public:
14934     virtual HRESULT WINAPI SetColorKey(LPDDCOLORKEY lpClrKey) = 0;
14935     virtual HRESULT WINAPI GetColorKey(LPDDCOLORKEY lpClrKey) = 0;
14936     virtual HRESULT WINAPI SetStreamActiveState(WINBOOL fActive) = 0;
14937     virtual HRESULT WINAPI GetStreamActiveState(WINBOOL *lpfActive) = 0;
14938   };
14939 #else
14940   typedef struct IVMRVideoStreamControlVtbl {
14941     BEGIN_INTERFACE
14942       HRESULT (WINAPI *QueryInterface)(IVMRVideoStreamControl *This,REFIID riid,void **ppvObject);
14943       ULONG (WINAPI *AddRef)(IVMRVideoStreamControl *This);
14944       ULONG (WINAPI *Release)(IVMRVideoStreamControl *This);
14945       HRESULT (WINAPI *SetColorKey)(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
14946       HRESULT (WINAPI *GetColorKey)(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
14947       HRESULT (WINAPI *SetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL fActive);
14948       HRESULT (WINAPI *GetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
14949     END_INTERFACE
14950   } IVMRVideoStreamControlVtbl;
14951   struct IVMRVideoStreamControl {
14952     CONST_VTBL struct IVMRVideoStreamControlVtbl *lpVtbl;
14953   };
14954 #ifdef COBJMACROS
14955 #define IVMRVideoStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14956 #define IVMRVideoStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
14957 #define IVMRVideoStreamControl_Release(This) (This)->lpVtbl->Release(This)
14958 #define IVMRVideoStreamControl_SetColorKey(This,lpClrKey) (This)->lpVtbl->SetColorKey(This,lpClrKey)
14959 #define IVMRVideoStreamControl_GetColorKey(This,lpClrKey) (This)->lpVtbl->GetColorKey(This,lpClrKey)
14960 #define IVMRVideoStreamControl_SetStreamActiveState(This,fActive) (This)->lpVtbl->SetStreamActiveState(This,fActive)
14961 #define IVMRVideoStreamControl_GetStreamActiveState(This,lpfActive) (This)->lpVtbl->GetStreamActiveState(This,lpfActive)
14962 #endif
14963 #endif
14964   HRESULT WINAPI IVMRVideoStreamControl_SetColorKey_Proxy(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
14965   void __RPC_STUB IVMRVideoStreamControl_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14966   HRESULT WINAPI IVMRVideoStreamControl_GetColorKey_Proxy(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
14967   void __RPC_STUB IVMRVideoStreamControl_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14968   HRESULT WINAPI IVMRVideoStreamControl_SetStreamActiveState_Proxy(IVMRVideoStreamControl *This,WINBOOL fActive);
14969   void __RPC_STUB IVMRVideoStreamControl_SetStreamActiveState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14970   HRESULT WINAPI IVMRVideoStreamControl_GetStreamActiveState_Proxy(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
14971   void __RPC_STUB IVMRVideoStreamControl_GetStreamActiveState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14972 #endif
14973 
14974 #ifndef __IVMRSurface_INTERFACE_DEFINED__
14975 #define __IVMRSurface_INTERFACE_DEFINED__
14976   EXTERN_C const IID IID_IVMRSurface;
14977 #if defined(__cplusplus) && !defined(CINTERFACE)
14978   struct IVMRSurface : public IUnknown {
14979   public:
14980     virtual HRESULT WINAPI IsSurfaceLocked(void) = 0;
14981     virtual HRESULT WINAPI LockSurface(BYTE **lpSurface) = 0;
14982     virtual HRESULT WINAPI UnlockSurface(void) = 0;
14983     virtual HRESULT WINAPI GetSurface(LPDIRECTDRAWSURFACE7 *lplpSurface) = 0;
14984   };
14985 #else
14986   typedef struct IVMRSurfaceVtbl {
14987     BEGIN_INTERFACE
14988       HRESULT (WINAPI *QueryInterface)(IVMRSurface *This,REFIID riid,void **ppvObject);
14989       ULONG (WINAPI *AddRef)(IVMRSurface *This);
14990       ULONG (WINAPI *Release)(IVMRSurface *This);
14991       HRESULT (WINAPI *IsSurfaceLocked)(IVMRSurface *This);
14992       HRESULT (WINAPI *LockSurface)(IVMRSurface *This,BYTE **lpSurface);
14993       HRESULT (WINAPI *UnlockSurface)(IVMRSurface *This);
14994       HRESULT (WINAPI *GetSurface)(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
14995     END_INTERFACE
14996   } IVMRSurfaceVtbl;
14997   struct IVMRSurface {
14998     CONST_VTBL struct IVMRSurfaceVtbl *lpVtbl;
14999   };
15000 #ifdef COBJMACROS
15001 #define IVMRSurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15002 #define IVMRSurface_AddRef(This) (This)->lpVtbl->AddRef(This)
15003 #define IVMRSurface_Release(This) (This)->lpVtbl->Release(This)
15004 #define IVMRSurface_IsSurfaceLocked(This) (This)->lpVtbl->IsSurfaceLocked(This)
15005 #define IVMRSurface_LockSurface(This,lpSurface) (This)->lpVtbl->LockSurface(This,lpSurface)
15006 #define IVMRSurface_UnlockSurface(This) (This)->lpVtbl->UnlockSurface(This)
15007 #define IVMRSurface_GetSurface(This,lplpSurface) (This)->lpVtbl->GetSurface(This,lplpSurface)
15008 #endif
15009 #endif
15010   HRESULT WINAPI IVMRSurface_IsSurfaceLocked_Proxy(IVMRSurface *This);
15011   void __RPC_STUB IVMRSurface_IsSurfaceLocked_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15012   HRESULT WINAPI IVMRSurface_LockSurface_Proxy(IVMRSurface *This,BYTE **lpSurface);
15013   void __RPC_STUB IVMRSurface_LockSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15014   HRESULT WINAPI IVMRSurface_UnlockSurface_Proxy(IVMRSurface *This);
15015   void __RPC_STUB IVMRSurface_UnlockSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15016   HRESULT WINAPI IVMRSurface_GetSurface_Proxy(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
15017   void __RPC_STUB IVMRSurface_GetSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15018 #endif
15019 
15020 #ifndef __IVMRImagePresenterConfig_INTERFACE_DEFINED__
15021 #define __IVMRImagePresenterConfig_INTERFACE_DEFINED__
15022   EXTERN_C const IID IID_IVMRImagePresenterConfig;
15023 
15024 #if defined(__cplusplus) && !defined(CINTERFACE)
15025   struct IVMRImagePresenterConfig : public IUnknown {
15026   public:
15027     virtual HRESULT WINAPI SetRenderingPrefs(DWORD dwRenderFlags) = 0;
15028     virtual HRESULT WINAPI GetRenderingPrefs(DWORD *dwRenderFlags) = 0;
15029   };
15030 #else
15031   typedef struct IVMRImagePresenterConfigVtbl {
15032     BEGIN_INTERFACE
15033       HRESULT (WINAPI *QueryInterface)(IVMRImagePresenterConfig *This,REFIID riid,void **ppvObject);
15034       ULONG (WINAPI *AddRef)(IVMRImagePresenterConfig *This);
15035       ULONG (WINAPI *Release)(IVMRImagePresenterConfig *This);
15036       HRESULT (WINAPI *SetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD dwRenderFlags);
15037       HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
15038     END_INTERFACE
15039   } IVMRImagePresenterConfigVtbl;
15040   struct IVMRImagePresenterConfig {
15041     CONST_VTBL struct IVMRImagePresenterConfigVtbl *lpVtbl;
15042   };
15043 #ifdef COBJMACROS
15044 #define IVMRImagePresenterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15045 #define IVMRImagePresenterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
15046 #define IVMRImagePresenterConfig_Release(This) (This)->lpVtbl->Release(This)
15047 #define IVMRImagePresenterConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
15048 #define IVMRImagePresenterConfig_GetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,dwRenderFlags)
15049 #endif
15050 #endif
15051   HRESULT WINAPI IVMRImagePresenterConfig_SetRenderingPrefs_Proxy(IVMRImagePresenterConfig *This,DWORD dwRenderFlags);
15052   void __RPC_STUB IVMRImagePresenterConfig_SetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15053   HRESULT WINAPI IVMRImagePresenterConfig_GetRenderingPrefs_Proxy(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
15054   void __RPC_STUB IVMRImagePresenterConfig_GetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15055 #endif
15056 
15057 #ifndef __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__
15058 #define __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__
15059   EXTERN_C const IID IID_IVMRImagePresenterExclModeConfig;
15060 #if defined(__cplusplus) && !defined(CINTERFACE)
15061   struct IVMRImagePresenterExclModeConfig : public IVMRImagePresenterConfig {
15062   public:
15063     virtual HRESULT WINAPI SetXlcModeDDObjAndPrimarySurface(LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf) = 0;
15064     virtual HRESULT WINAPI GetXlcModeDDObjAndPrimarySurface(LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf) = 0;
15065   };
15066 #else
15067   typedef struct IVMRImagePresenterExclModeConfigVtbl {
15068     BEGIN_INTERFACE
15069       HRESULT (WINAPI *QueryInterface)(IVMRImagePresenterExclModeConfig *This,REFIID riid,void **ppvObject);
15070       ULONG (WINAPI *AddRef)(IVMRImagePresenterExclModeConfig *This);
15071       ULONG (WINAPI *Release)(IVMRImagePresenterExclModeConfig *This);
15072       HRESULT (WINAPI *SetRenderingPrefs)(IVMRImagePresenterExclModeConfig *This,DWORD dwRenderFlags);
15073       HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterExclModeConfig *This,DWORD *dwRenderFlags);
15074       HRESULT (WINAPI *SetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf);
15075       HRESULT (WINAPI *GetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
15076     END_INTERFACE
15077   } IVMRImagePresenterExclModeConfigVtbl;
15078   struct IVMRImagePresenterExclModeConfig {
15079     CONST_VTBL struct IVMRImagePresenterExclModeConfigVtbl *lpVtbl;
15080   };
15081 #ifdef COBJMACROS
15082 #define IVMRImagePresenterExclModeConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15083 #define IVMRImagePresenterExclModeConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
15084 #define IVMRImagePresenterExclModeConfig_Release(This) (This)->lpVtbl->Release(This)
15085 #define IVMRImagePresenterExclModeConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
15086 #define IVMRImagePresenterExclModeConfig_GetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,dwRenderFlags)
15087 #define IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf) (This)->lpVtbl->SetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf)
15088 #define IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf) (This)->lpVtbl->GetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf)
15089 #endif
15090 #endif
15091   HRESULT WINAPI IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface_Proxy(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf);
15092   void __RPC_STUB IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15093   HRESULT WINAPI IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface_Proxy(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
15094   void __RPC_STUB IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15095 #endif
15096 
15097 #ifndef __IVPManager_INTERFACE_DEFINED__
15098 #define __IVPManager_INTERFACE_DEFINED__
15099   EXTERN_C const IID IID_IVPManager;
15100 #if defined(__cplusplus) && !defined(CINTERFACE)
15101   struct IVPManager : public IUnknown {
15102   public:
15103     virtual HRESULT WINAPI SetVideoPortIndex(DWORD dwVideoPortIndex) = 0;
15104     virtual HRESULT WINAPI GetVideoPortIndex(DWORD *pdwVideoPortIndex) = 0;
15105   };
15106 #else
15107   typedef struct IVPManagerVtbl {
15108     BEGIN_INTERFACE
15109       HRESULT (WINAPI *QueryInterface)(IVPManager *This,REFIID riid,void **ppvObject);
15110       ULONG (WINAPI *AddRef)(IVPManager *This);
15111       ULONG (WINAPI *Release)(IVPManager *This);
15112       HRESULT (WINAPI *SetVideoPortIndex)(IVPManager *This,DWORD dwVideoPortIndex);
15113       HRESULT (WINAPI *GetVideoPortIndex)(IVPManager *This,DWORD *pdwVideoPortIndex);
15114     END_INTERFACE
15115   } IVPManagerVtbl;
15116   struct IVPManager {
15117     CONST_VTBL struct IVPManagerVtbl *lpVtbl;
15118   };
15119 #ifdef COBJMACROS
15120 #define IVPManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15121 #define IVPManager_AddRef(This) (This)->lpVtbl->AddRef(This)
15122 #define IVPManager_Release(This) (This)->lpVtbl->Release(This)
15123 #define IVPManager_SetVideoPortIndex(This,dwVideoPortIndex) (This)->lpVtbl->SetVideoPortIndex(This,dwVideoPortIndex)
15124 #define IVPManager_GetVideoPortIndex(This,pdwVideoPortIndex) (This)->lpVtbl->GetVideoPortIndex(This,pdwVideoPortIndex)
15125 #endif
15126 #endif
15127   HRESULT WINAPI IVPManager_SetVideoPortIndex_Proxy(IVPManager *This,DWORD dwVideoPortIndex);
15128   void __RPC_STUB IVPManager_SetVideoPortIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15129   HRESULT WINAPI IVPManager_GetVideoPortIndex_Proxy(IVPManager *This,DWORD *pdwVideoPortIndex);
15130   void __RPC_STUB IVPManager_GetVideoPortIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15131 #endif
15132 
15133   extern RPC_IF_HANDLE __MIDL_itf_strmif_0413_v0_0_c_ifspec;
15134   extern RPC_IF_HANDLE __MIDL_itf_strmif_0413_v0_0_s_ifspec;
15135 /* Begin additional prototypes for all interfaces */
15136 
15137 
15138 /* End additional prototypes */
15139 
15140 #ifdef __cplusplus
15141 }
15142 #endif
15143 
15144 #endif /* __strmif_h__ */
15145