1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef __REQUIRED_RPCNDR_H_VERSION__
7#define __REQUIRED_RPCNDR_H_VERSION__ 475
8#endif
9
10#include "rpc.h"
11#include "rpcndr.h"
12
13#ifndef __RPCNDR_H_VERSION__
14#error This stub requires an updated version of <rpcndr.h>
15#endif
16
17#ifndef COM_NO_WINDOWS_H
18#include "windows.h"
19#include "ole2.h"
20#endif
21
22#ifndef __strmif_h__
23#define __strmif_h__
24
25#ifndef __ICreateDevEnum_FWD_DEFINED__
26#define __ICreateDevEnum_FWD_DEFINED__
27typedef struct ICreateDevEnum ICreateDevEnum;
28#endif
29
30#ifndef __IPin_FWD_DEFINED__
31#define __IPin_FWD_DEFINED__
32typedef struct IPin IPin;
33#endif
34
35#ifndef __IEnumPins_FWD_DEFINED__
36#define __IEnumPins_FWD_DEFINED__
37typedef struct IEnumPins IEnumPins;
38#endif
39
40#ifndef __IEnumMediaTypes_FWD_DEFINED__
41#define __IEnumMediaTypes_FWD_DEFINED__
42typedef struct IEnumMediaTypes IEnumMediaTypes;
43#endif
44
45#ifndef __IFilterGraph_FWD_DEFINED__
46#define __IFilterGraph_FWD_DEFINED__
47typedef struct IFilterGraph IFilterGraph;
48#endif
49
50#ifndef __IEnumFilters_FWD_DEFINED__
51#define __IEnumFilters_FWD_DEFINED__
52typedef struct IEnumFilters IEnumFilters;
53#endif
54
55#ifndef __IMediaFilter_FWD_DEFINED__
56#define __IMediaFilter_FWD_DEFINED__
57typedef struct IMediaFilter IMediaFilter;
58#endif
59
60#ifndef __IBaseFilter_FWD_DEFINED__
61#define __IBaseFilter_FWD_DEFINED__
62typedef struct IBaseFilter IBaseFilter;
63#endif
64
65#ifndef __IReferenceClock_FWD_DEFINED__
66#define __IReferenceClock_FWD_DEFINED__
67typedef struct IReferenceClock IReferenceClock;
68#endif
69
70#ifndef __IReferenceClock2_FWD_DEFINED__
71#define __IReferenceClock2_FWD_DEFINED__
72typedef struct IReferenceClock2 IReferenceClock2;
73#endif
74
75#ifndef __IMediaSample_FWD_DEFINED__
76#define __IMediaSample_FWD_DEFINED__
77typedef struct IMediaSample IMediaSample;
78#endif
79
80#ifndef __IMediaSample2_FWD_DEFINED__
81#define __IMediaSample2_FWD_DEFINED__
82typedef struct IMediaSample2 IMediaSample2;
83#endif
84
85#ifndef __IMemAllocator_FWD_DEFINED__
86#define __IMemAllocator_FWD_DEFINED__
87typedef struct IMemAllocator IMemAllocator;
88#endif
89
90#ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
91#define __IMemAllocatorCallbackTemp_FWD_DEFINED__
92typedef struct IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
93#endif
94
95#ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
96#define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
97typedef struct IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
98#endif
99
100#ifndef __IMemInputPin_FWD_DEFINED__
101#define __IMemInputPin_FWD_DEFINED__
102typedef struct IMemInputPin IMemInputPin;
103#endif
104
105#ifndef __IAMovieSetup_FWD_DEFINED__
106#define __IAMovieSetup_FWD_DEFINED__
107typedef struct IAMovieSetup IAMovieSetup;
108#endif
109
110#ifndef __IMediaSeeking_FWD_DEFINED__
111#define __IMediaSeeking_FWD_DEFINED__
112typedef struct IMediaSeeking IMediaSeeking;
113#endif
114
115#ifndef __IEnumRegFilters_FWD_DEFINED__
116#define __IEnumRegFilters_FWD_DEFINED__
117typedef struct IEnumRegFilters IEnumRegFilters;
118#endif
119
120#ifndef __IFilterMapper_FWD_DEFINED__
121#define __IFilterMapper_FWD_DEFINED__
122typedef struct IFilterMapper IFilterMapper;
123#endif
124
125#ifndef __IFilterMapper2_FWD_DEFINED__
126#define __IFilterMapper2_FWD_DEFINED__
127typedef struct IFilterMapper2 IFilterMapper2;
128#endif
129
130#ifndef __IFilterMapper3_FWD_DEFINED__
131#define __IFilterMapper3_FWD_DEFINED__
132typedef struct IFilterMapper3 IFilterMapper3;
133#endif
134
135#ifndef __IQualityControl_FWD_DEFINED__
136#define __IQualityControl_FWD_DEFINED__
137typedef struct IQualityControl IQualityControl;
138#endif
139
140#ifndef __IOverlayNotify_FWD_DEFINED__
141#define __IOverlayNotify_FWD_DEFINED__
142typedef struct IOverlayNotify IOverlayNotify;
143#endif
144
145#ifndef __IOverlayNotify2_FWD_DEFINED__
146#define __IOverlayNotify2_FWD_DEFINED__
147typedef struct IOverlayNotify2 IOverlayNotify2;
148#endif
149
150#ifndef __IOverlay_FWD_DEFINED__
151#define __IOverlay_FWD_DEFINED__
152typedef struct IOverlay IOverlay;
153#endif
154
155#ifndef __IMediaEventSink_FWD_DEFINED__
156#define __IMediaEventSink_FWD_DEFINED__
157typedef struct IMediaEventSink IMediaEventSink;
158#endif
159
160#ifndef __IFileSourceFilter_FWD_DEFINED__
161#define __IFileSourceFilter_FWD_DEFINED__
162typedef struct IFileSourceFilter IFileSourceFilter;
163#endif
164
165#ifndef __IFileSinkFilter_FWD_DEFINED__
166#define __IFileSinkFilter_FWD_DEFINED__
167typedef struct IFileSinkFilter IFileSinkFilter;
168#endif
169
170#ifndef __IFileSinkFilter2_FWD_DEFINED__
171#define __IFileSinkFilter2_FWD_DEFINED__
172typedef struct IFileSinkFilter2 IFileSinkFilter2;
173#endif
174
175#ifndef __IGraphBuilder_FWD_DEFINED__
176#define __IGraphBuilder_FWD_DEFINED__
177typedef struct IGraphBuilder IGraphBuilder;
178#endif
179
180#ifndef __ICaptureGraphBuilder_FWD_DEFINED__
181#define __ICaptureGraphBuilder_FWD_DEFINED__
182typedef struct ICaptureGraphBuilder ICaptureGraphBuilder;
183#endif
184
185#ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
186#define __IAMCopyCaptureFileProgress_FWD_DEFINED__
187typedef struct IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
188#endif
189
190#ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
191#define __ICaptureGraphBuilder2_FWD_DEFINED__
192typedef struct ICaptureGraphBuilder2 ICaptureGraphBuilder2;
193#endif
194
195#ifndef __IFilterGraph2_FWD_DEFINED__
196#define __IFilterGraph2_FWD_DEFINED__
197typedef struct IFilterGraph2 IFilterGraph2;
198#endif
199
200#ifndef __IStreamBuilder_FWD_DEFINED__
201#define __IStreamBuilder_FWD_DEFINED__
202typedef struct IStreamBuilder IStreamBuilder;
203#endif
204
205#ifndef __IAsyncReader_FWD_DEFINED__
206#define __IAsyncReader_FWD_DEFINED__
207typedef struct IAsyncReader IAsyncReader;
208#endif
209
210#ifndef __IGraphVersion_FWD_DEFINED__
211#define __IGraphVersion_FWD_DEFINED__
212typedef struct IGraphVersion IGraphVersion;
213#endif
214
215#ifndef __IResourceConsumer_FWD_DEFINED__
216#define __IResourceConsumer_FWD_DEFINED__
217typedef struct IResourceConsumer IResourceConsumer;
218#endif
219
220#ifndef __IResourceManager_FWD_DEFINED__
221#define __IResourceManager_FWD_DEFINED__
222typedef struct IResourceManager IResourceManager;
223#endif
224
225#ifndef __IDistributorNotify_FWD_DEFINED__
226#define __IDistributorNotify_FWD_DEFINED__
227typedef struct IDistributorNotify IDistributorNotify;
228#endif
229
230#ifndef __IAMStreamControl_FWD_DEFINED__
231#define __IAMStreamControl_FWD_DEFINED__
232typedef struct IAMStreamControl IAMStreamControl;
233#endif
234
235#ifndef __ISeekingPassThru_FWD_DEFINED__
236#define __ISeekingPassThru_FWD_DEFINED__
237typedef struct ISeekingPassThru ISeekingPassThru;
238#endif
239
240#ifndef __IAMStreamConfig_FWD_DEFINED__
241#define __IAMStreamConfig_FWD_DEFINED__
242typedef struct IAMStreamConfig IAMStreamConfig;
243#endif
244
245#ifndef __IConfigInterleaving_FWD_DEFINED__
246#define __IConfigInterleaving_FWD_DEFINED__
247typedef struct IConfigInterleaving IConfigInterleaving;
248#endif
249
250#ifndef __IConfigAviMux_FWD_DEFINED__
251#define __IConfigAviMux_FWD_DEFINED__
252typedef struct IConfigAviMux IConfigAviMux;
253#endif
254
255#ifndef __IAMVideoCompression_FWD_DEFINED__
256#define __IAMVideoCompression_FWD_DEFINED__
257typedef struct IAMVideoCompression IAMVideoCompression;
258#endif
259
260#ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
261#define __IAMVfwCaptureDialogs_FWD_DEFINED__
262typedef struct IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
263#endif
264
265#ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
266#define __IAMVfwCompressDialogs_FWD_DEFINED__
267typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs;
268#endif
269
270#ifndef __IAMDroppedFrames_FWD_DEFINED__
271#define __IAMDroppedFrames_FWD_DEFINED__
272typedef struct IAMDroppedFrames IAMDroppedFrames;
273#endif
274
275#ifndef __IAMAudioInputMixer_FWD_DEFINED__
276#define __IAMAudioInputMixer_FWD_DEFINED__
277typedef struct IAMAudioInputMixer IAMAudioInputMixer;
278#endif
279
280#ifndef __IAMBufferNegotiation_FWD_DEFINED__
281#define __IAMBufferNegotiation_FWD_DEFINED__
282typedef struct IAMBufferNegotiation IAMBufferNegotiation;
283#endif
284
285#ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
286#define __IAMAnalogVideoDecoder_FWD_DEFINED__
287typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
288#endif
289
290#ifndef __IAMVideoProcAmp_FWD_DEFINED__
291#define __IAMVideoProcAmp_FWD_DEFINED__
292typedef struct IAMVideoProcAmp IAMVideoProcAmp;
293#endif
294
295#ifndef __IAMCameraControl_FWD_DEFINED__
296#define __IAMCameraControl_FWD_DEFINED__
297typedef struct IAMCameraControl IAMCameraControl;
298#endif
299
300#ifndef __IAMVideoControl_FWD_DEFINED__
301#define __IAMVideoControl_FWD_DEFINED__
302typedef struct IAMVideoControl IAMVideoControl;
303#endif
304
305#ifndef __IAMCrossbar_FWD_DEFINED__
306#define __IAMCrossbar_FWD_DEFINED__
307typedef struct IAMCrossbar IAMCrossbar;
308#endif
309
310#ifndef __IAMTuner_FWD_DEFINED__
311#define __IAMTuner_FWD_DEFINED__
312typedef struct IAMTuner IAMTuner;
313#endif
314
315#ifndef __IAMTunerNotification_FWD_DEFINED__
316#define __IAMTunerNotification_FWD_DEFINED__
317typedef struct IAMTunerNotification IAMTunerNotification;
318#endif
319
320#ifndef __IAMTVTuner_FWD_DEFINED__
321#define __IAMTVTuner_FWD_DEFINED__
322typedef struct IAMTVTuner IAMTVTuner;
323#endif
324
325#ifndef __IBPCSatelliteTuner_FWD_DEFINED__
326#define __IBPCSatelliteTuner_FWD_DEFINED__
327typedef struct IBPCSatelliteTuner IBPCSatelliteTuner;
328#endif
329
330#ifndef __IAMTVAudio_FWD_DEFINED__
331#define __IAMTVAudio_FWD_DEFINED__
332typedef struct IAMTVAudio IAMTVAudio;
333#endif
334
335#ifndef __IAMTVAudioNotification_FWD_DEFINED__
336#define __IAMTVAudioNotification_FWD_DEFINED__
337typedef struct IAMTVAudioNotification IAMTVAudioNotification;
338#endif
339
340#ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
341#define __IAMAnalogVideoEncoder_FWD_DEFINED__
342typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
343#endif
344
345#ifndef __IKsPropertySet_FWD_DEFINED__
346#define __IKsPropertySet_FWD_DEFINED__
347typedef struct IKsPropertySet IKsPropertySet;
348#endif
349
350#ifndef __IMediaPropertyBag_FWD_DEFINED__
351#define __IMediaPropertyBag_FWD_DEFINED__
352typedef struct IMediaPropertyBag IMediaPropertyBag;
353#endif
354
355#ifndef __IPersistMediaPropertyBag_FWD_DEFINED__
356#define __IPersistMediaPropertyBag_FWD_DEFINED__
357typedef struct IPersistMediaPropertyBag IPersistMediaPropertyBag;
358#endif
359
360#ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
361#define __IAMPhysicalPinInfo_FWD_DEFINED__
362typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo;
363#endif
364
365#ifndef __IAMExtDevice_FWD_DEFINED__
366#define __IAMExtDevice_FWD_DEFINED__
367typedef struct IAMExtDevice IAMExtDevice;
368#endif
369
370#ifndef __IAMExtTransport_FWD_DEFINED__
371#define __IAMExtTransport_FWD_DEFINED__
372typedef struct IAMExtTransport IAMExtTransport;
373#endif
374
375#ifndef __IAMTimecodeReader_FWD_DEFINED__
376#define __IAMTimecodeReader_FWD_DEFINED__
377typedef struct IAMTimecodeReader IAMTimecodeReader;
378#endif
379
380#ifndef __IAMTimecodeGenerator_FWD_DEFINED__
381#define __IAMTimecodeGenerator_FWD_DEFINED__
382typedef struct IAMTimecodeGenerator IAMTimecodeGenerator;
383#endif
384
385#ifndef __IAMTimecodeDisplay_FWD_DEFINED__
386#define __IAMTimecodeDisplay_FWD_DEFINED__
387typedef struct IAMTimecodeDisplay IAMTimecodeDisplay;
388#endif
389
390#ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
391#define __IAMDevMemoryAllocator_FWD_DEFINED__
392typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator;
393#endif
394
395#ifndef __IAMDevMemoryControl_FWD_DEFINED__
396#define __IAMDevMemoryControl_FWD_DEFINED__
397typedef struct IAMDevMemoryControl IAMDevMemoryControl;
398#endif
399
400#ifndef __IAMStreamSelect_FWD_DEFINED__
401#define __IAMStreamSelect_FWD_DEFINED__
402typedef struct IAMStreamSelect IAMStreamSelect;
403#endif
404
405#ifndef __IAMResourceControl_FWD_DEFINED__
406#define __IAMResourceControl_FWD_DEFINED__
407typedef struct IAMResourceControl IAMResourceControl;
408#endif
409
410#ifndef __IAMClockAdjust_FWD_DEFINED__
411#define __IAMClockAdjust_FWD_DEFINED__
412typedef struct IAMClockAdjust IAMClockAdjust;
413#endif
414
415#ifndef __IAMFilterMiscFlags_FWD_DEFINED__
416#define __IAMFilterMiscFlags_FWD_DEFINED__
417typedef struct IAMFilterMiscFlags IAMFilterMiscFlags;
418#endif
419
420#ifndef __IDrawVideoImage_FWD_DEFINED__
421#define __IDrawVideoImage_FWD_DEFINED__
422typedef struct IDrawVideoImage IDrawVideoImage;
423#endif
424
425#ifndef __IDecimateVideoImage_FWD_DEFINED__
426#define __IDecimateVideoImage_FWD_DEFINED__
427typedef struct IDecimateVideoImage IDecimateVideoImage;
428#endif
429
430#ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
431#define __IAMVideoDecimationProperties_FWD_DEFINED__
432typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties;
433#endif
434
435#ifndef __IVideoFrameStep_FWD_DEFINED__
436#define __IVideoFrameStep_FWD_DEFINED__
437typedef struct IVideoFrameStep IVideoFrameStep;
438#endif
439
440#ifndef __IAMLatency_FWD_DEFINED__
441#define __IAMLatency_FWD_DEFINED__
442typedef struct IAMLatency IAMLatency;
443#endif
444
445#ifndef __IAMPushSource_FWD_DEFINED__
446#define __IAMPushSource_FWD_DEFINED__
447typedef struct IAMPushSource IAMPushSource;
448#endif
449
450#ifndef __IAMDeviceRemoval_FWD_DEFINED__
451#define __IAMDeviceRemoval_FWD_DEFINED__
452typedef struct IAMDeviceRemoval IAMDeviceRemoval;
453#endif
454
455#ifndef __IDVEnc_FWD_DEFINED__
456#define __IDVEnc_FWD_DEFINED__
457typedef struct IDVEnc IDVEnc;
458#endif
459
460#ifndef __IIPDVDec_FWD_DEFINED__
461#define __IIPDVDec_FWD_DEFINED__
462typedef struct IIPDVDec IIPDVDec;
463#endif
464
465#ifndef __IDVRGB219_FWD_DEFINED__
466#define __IDVRGB219_FWD_DEFINED__
467typedef struct IDVRGB219 IDVRGB219;
468#endif
469
470#ifndef __IDVSplitter_FWD_DEFINED__
471#define __IDVSplitter_FWD_DEFINED__
472typedef struct IDVSplitter IDVSplitter;
473#endif
474
475#ifndef __IAMAudioRendererStats_FWD_DEFINED__
476#define __IAMAudioRendererStats_FWD_DEFINED__
477typedef struct IAMAudioRendererStats IAMAudioRendererStats;
478#endif
479
480#ifndef __IAMGraphStreams_FWD_DEFINED__
481#define __IAMGraphStreams_FWD_DEFINED__
482typedef struct IAMGraphStreams IAMGraphStreams;
483#endif
484
485#ifndef __IAMOverlayFX_FWD_DEFINED__
486#define __IAMOverlayFX_FWD_DEFINED__
487typedef struct IAMOverlayFX IAMOverlayFX;
488#endif
489
490#ifndef __IAMOpenProgress_FWD_DEFINED__
491#define __IAMOpenProgress_FWD_DEFINED__
492typedef struct IAMOpenProgress IAMOpenProgress;
493#endif
494
495#ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
496#define __IMpeg2Demultiplexer_FWD_DEFINED__
497typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer;
498#endif
499
500#ifndef __IEnumStreamIdMap_FWD_DEFINED__
501#define __IEnumStreamIdMap_FWD_DEFINED__
502typedef struct IEnumStreamIdMap IEnumStreamIdMap;
503#endif
504
505#ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
506#define __IMPEG2StreamIdMap_FWD_DEFINED__
507typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap;
508#endif
509
510#ifndef __IRegisterServiceProvider_FWD_DEFINED__
511#define __IRegisterServiceProvider_FWD_DEFINED__
512typedef struct IRegisterServiceProvider IRegisterServiceProvider;
513#endif
514
515#ifndef __IAMClockSlave_FWD_DEFINED__
516#define __IAMClockSlave_FWD_DEFINED__
517typedef struct IAMClockSlave IAMClockSlave;
518#endif
519
520#ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
521#define __IAMGraphBuilderCallback_FWD_DEFINED__
522typedef struct IAMGraphBuilderCallback IAMGraphBuilderCallback;
523#endif
524
525#ifndef __ICodecAPI_FWD_DEFINED__
526#define __ICodecAPI_FWD_DEFINED__
527typedef struct ICodecAPI ICodecAPI;
528#endif
529
530#ifndef __IGetCapabilitiesKey_FWD_DEFINED__
531#define __IGetCapabilitiesKey_FWD_DEFINED__
532typedef struct IGetCapabilitiesKey IGetCapabilitiesKey;
533#endif
534
535#ifndef __IEncoderAPI_FWD_DEFINED__
536#define __IEncoderAPI_FWD_DEFINED__
537typedef struct IEncoderAPI IEncoderAPI;
538#endif
539
540#ifndef __IVideoEncoder_FWD_DEFINED__
541#define __IVideoEncoder_FWD_DEFINED__
542typedef struct IVideoEncoder IVideoEncoder;
543#endif
544
545#ifndef __IAMDecoderCaps_FWD_DEFINED__
546#define __IAMDecoderCaps_FWD_DEFINED__
547typedef struct IAMDecoderCaps IAMDecoderCaps;
548#endif
549
550#ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
551#define __IAMCertifiedOutputProtection_FWD_DEFINED__
552typedef struct IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
553#endif
554
555#ifndef __IDvdControl_FWD_DEFINED__
556#define __IDvdControl_FWD_DEFINED__
557typedef struct IDvdControl IDvdControl;
558#endif
559
560#ifndef __IDvdInfo_FWD_DEFINED__
561#define __IDvdInfo_FWD_DEFINED__
562typedef struct IDvdInfo IDvdInfo;
563#endif
564
565#ifndef __IDvdCmd_FWD_DEFINED__
566#define __IDvdCmd_FWD_DEFINED__
567typedef struct IDvdCmd IDvdCmd;
568#endif
569
570#ifndef __IDvdState_FWD_DEFINED__
571#define __IDvdState_FWD_DEFINED__
572typedef struct IDvdState IDvdState;
573#endif
574
575#ifndef __IDvdControl2_FWD_DEFINED__
576#define __IDvdControl2_FWD_DEFINED__
577typedef struct IDvdControl2 IDvdControl2;
578#endif
579
580#ifndef __IDvdInfo2_FWD_DEFINED__
581#define __IDvdInfo2_FWD_DEFINED__
582typedef struct IDvdInfo2 IDvdInfo2;
583#endif
584
585#ifndef __IDvdGraphBuilder_FWD_DEFINED__
586#define __IDvdGraphBuilder_FWD_DEFINED__
587typedef struct IDvdGraphBuilder IDvdGraphBuilder;
588#endif
589
590#ifndef __IDDrawExclModeVideo_FWD_DEFINED__
591#define __IDDrawExclModeVideo_FWD_DEFINED__
592typedef struct IDDrawExclModeVideo IDDrawExclModeVideo;
593#endif
594
595#ifndef __IDDrawExclModeVideoCallback_FWD_DEFINED__
596#define __IDDrawExclModeVideoCallback_FWD_DEFINED__
597typedef struct IDDrawExclModeVideoCallback IDDrawExclModeVideoCallback;
598#endif
599
600#ifndef __IPinConnection_FWD_DEFINED__
601#define __IPinConnection_FWD_DEFINED__
602typedef struct IPinConnection IPinConnection;
603#endif
604
605#ifndef __IPinFlowControl_FWD_DEFINED__
606#define __IPinFlowControl_FWD_DEFINED__
607typedef struct IPinFlowControl IPinFlowControl;
608#endif
609
610#ifndef __IGraphConfig_FWD_DEFINED__
611#define __IGraphConfig_FWD_DEFINED__
612typedef struct IGraphConfig IGraphConfig;
613#endif
614
615#ifndef __IGraphConfigCallback_FWD_DEFINED__
616#define __IGraphConfigCallback_FWD_DEFINED__
617typedef struct IGraphConfigCallback IGraphConfigCallback;
618#endif
619
620#ifndef __IFilterChain_FWD_DEFINED__
621#define __IFilterChain_FWD_DEFINED__
622typedef struct IFilterChain IFilterChain;
623#endif
624
625#ifndef __IVMRImagePresenter_FWD_DEFINED__
626#define __IVMRImagePresenter_FWD_DEFINED__
627typedef struct IVMRImagePresenter IVMRImagePresenter;
628#endif
629
630#ifndef __IVMRSurfaceAllocator_FWD_DEFINED__
631#define __IVMRSurfaceAllocator_FWD_DEFINED__
632typedef struct IVMRSurfaceAllocator IVMRSurfaceAllocator;
633#endif
634
635#ifndef __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
636#define __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
637typedef struct IVMRSurfaceAllocatorNotify IVMRSurfaceAllocatorNotify;
638#endif
639
640#ifndef __IVMRWindowlessControl_FWD_DEFINED__
641#define __IVMRWindowlessControl_FWD_DEFINED__
642typedef struct IVMRWindowlessControl IVMRWindowlessControl;
643#endif
644
645#ifndef __IVMRMixerControl_FWD_DEFINED__
646#define __IVMRMixerControl_FWD_DEFINED__
647typedef struct IVMRMixerControl IVMRMixerControl;
648#endif
649
650#ifndef __IVMRMonitorConfig_FWD_DEFINED__
651#define __IVMRMonitorConfig_FWD_DEFINED__
652typedef struct IVMRMonitorConfig IVMRMonitorConfig;
653#endif
654
655#ifndef __IVMRFilterConfig_FWD_DEFINED__
656#define __IVMRFilterConfig_FWD_DEFINED__
657typedef struct IVMRFilterConfig IVMRFilterConfig;
658#endif
659
660#ifndef __IVMRAspectRatioControl_FWD_DEFINED__
661#define __IVMRAspectRatioControl_FWD_DEFINED__
662typedef struct IVMRAspectRatioControl IVMRAspectRatioControl;
663#endif
664
665#ifndef __IVMRDeinterlaceControl_FWD_DEFINED__
666#define __IVMRDeinterlaceControl_FWD_DEFINED__
667typedef struct IVMRDeinterlaceControl IVMRDeinterlaceControl;
668#endif
669
670#ifndef __IVMRMixerBitmap_FWD_DEFINED__
671#define __IVMRMixerBitmap_FWD_DEFINED__
672typedef struct IVMRMixerBitmap IVMRMixerBitmap;
673#endif
674
675#ifndef __IVMRImageCompositor_FWD_DEFINED__
676#define __IVMRImageCompositor_FWD_DEFINED__
677typedef struct IVMRImageCompositor IVMRImageCompositor;
678#endif
679
680#ifndef __IVMRVideoStreamControl_FWD_DEFINED__
681#define __IVMRVideoStreamControl_FWD_DEFINED__
682typedef struct IVMRVideoStreamControl IVMRVideoStreamControl;
683#endif
684
685#ifndef __IVMRSurface_FWD_DEFINED__
686#define __IVMRSurface_FWD_DEFINED__
687typedef struct IVMRSurface IVMRSurface;
688#endif
689
690#ifndef __IVMRImagePresenterConfig_FWD_DEFINED__
691#define __IVMRImagePresenterConfig_FWD_DEFINED__
692typedef struct IVMRImagePresenterConfig IVMRImagePresenterConfig;
693#endif
694
695#ifndef __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
696#define __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
697typedef struct IVMRImagePresenterExclModeConfig IVMRImagePresenterExclModeConfig;
698#endif
699
700#ifndef __IVPManager_FWD_DEFINED__
701#define __IVPManager_FWD_DEFINED__
702typedef struct IVPManager IVPManager;
703#endif
704
705#include "unknwn.h"
706#include "objidl.h"
707#include "oaidl.h"
708#include "ocidl.h"
709
710#ifdef __cplusplus
711extern "C" {
712#endif
713
714#ifndef __MIDL_user_allocate_free_DEFINED__
715#define __MIDL_user_allocate_free_DEFINED__
716  void *__RPC_API MIDL_user_allocate(size_t);
717  void __RPC_API MIDL_user_free(void *);
718#endif
719
720#define CDEF_CLASS_DEFAULT 0x0001
721#define CDEF_BYPASS_CLASS_MANAGER 0x0002
722#define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008
723#define CDEF_DEVMON_CMGR_DEVICE 0x0010
724#define CDEF_DEVMON_DMO 0x0020
725#define CDEF_DEVMON_PNP_DEVICE 0x0040
726#define CDEF_DEVMON_FILTER 0x0080
727#define CDEF_DEVMON_SELECTIVE_MASK 0x00f0
728
729  extern RPC_IF_HANDLE __MIDL_itf_strmif_0000_v0_0_c_ifspec;
730  extern RPC_IF_HANDLE __MIDL_itf_strmif_0000_v0_0_s_ifspec;
731#ifndef __ICreateDevEnum_INTERFACE_DEFINED__
732#define __ICreateDevEnum_INTERFACE_DEFINED__
733  EXTERN_C const IID IID_ICreateDevEnum;
734#if defined(__cplusplus) && !defined(CINTERFACE)
735  struct ICreateDevEnum : public IUnknown {
736  public:
737    virtual HRESULT WINAPI CreateClassEnumerator(REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags) = 0;
738  };
739#else
740  typedef struct ICreateDevEnumVtbl {
741    BEGIN_INTERFACE
742      HRESULT (WINAPI *QueryInterface)(ICreateDevEnum *This,REFIID riid,void **ppvObject);
743      ULONG (WINAPI *AddRef)(ICreateDevEnum *This);
744      ULONG (WINAPI *Release)(ICreateDevEnum *This);
745      HRESULT (WINAPI *CreateClassEnumerator)(ICreateDevEnum *This,REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags);
746    END_INTERFACE
747  } ICreateDevEnumVtbl;
748  struct ICreateDevEnum {
749    CONST_VTBL struct ICreateDevEnumVtbl *lpVtbl;
750  };
751#ifdef COBJMACROS
752#define ICreateDevEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
753#define ICreateDevEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
754#define ICreateDevEnum_Release(This) (This)->lpVtbl->Release(This)
755#define ICreateDevEnum_CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags) (This)->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags)
756#endif
757#endif
758  HRESULT WINAPI ICreateDevEnum_CreateClassEnumerator_Proxy(ICreateDevEnum *This,REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags);
759  void __RPC_STUB ICreateDevEnum_CreateClassEnumerator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
760#endif
761
762#define CHARS_IN_GUID 39
763  typedef struct _AMMediaType {
764    GUID majortype;
765    GUID subtype;
766    WINBOOL bFixedSizeSamples;
767    WINBOOL bTemporalCompression;
768    ULONG lSampleSize;
769    GUID formattype;
770    IUnknown *pUnk;
771    ULONG cbFormat;
772    BYTE *pbFormat;
773  } AM_MEDIA_TYPE;
774
775  typedef enum _PinDirection {
776    PINDIR_INPUT = 0,PINDIR_OUTPUT = PINDIR_INPUT + 1
777  } PIN_DIRECTION;
778
779#define MAX_PIN_NAME 128
780#define MAX_FILTER_NAME 128
781
782#ifndef __REFERENCE_TIME_DEFINED
783#define __REFERENCE_TIME_DEFINED
784typedef LONGLONG REFERENCE_TIME;
785#endif /*__REFERENCE_TIME_DEFINED*/
786
787  typedef double REFTIME;
788  typedef DWORD_PTR HSEMAPHORE;
789  typedef DWORD_PTR HEVENT;
790
791  typedef struct _AllocatorProperties {
792    long cBuffers;
793    long cbBuffer;
794    long cbAlign;
795    long cbPrefix;
796  } ALLOCATOR_PROPERTIES;
797
798  extern RPC_IF_HANDLE __MIDL_itf_strmif_0117_v0_0_c_ifspec;
799  extern RPC_IF_HANDLE __MIDL_itf_strmif_0117_v0_0_s_ifspec;
800#ifndef __IPin_INTERFACE_DEFINED__
801#define __IPin_INTERFACE_DEFINED__
802  typedef struct _PinInfo {
803    IBaseFilter *pFilter;
804    PIN_DIRECTION dir;
805    WCHAR achName[128];
806  } PIN_INFO;
807
808  EXTERN_C const IID IID_IPin;
809#if defined(__cplusplus) && !defined(CINTERFACE)
810  struct IPin : public IUnknown {
811  public:
812    virtual HRESULT WINAPI Connect(IPin *pReceivePin,const AM_MEDIA_TYPE *pmt) = 0;
813    virtual HRESULT WINAPI ReceiveConnection(IPin *pConnector,const AM_MEDIA_TYPE *pmt) = 0;
814    virtual HRESULT WINAPI Disconnect(void) = 0;
815    virtual HRESULT WINAPI ConnectedTo(IPin **pPin) = 0;
816    virtual HRESULT WINAPI ConnectionMediaType(AM_MEDIA_TYPE *pmt) = 0;
817    virtual HRESULT WINAPI QueryPinInfo(PIN_INFO *pInfo) = 0;
818    virtual HRESULT WINAPI QueryDirection(PIN_DIRECTION *pPinDir) = 0;
819    virtual HRESULT WINAPI QueryId(LPWSTR *Id) = 0;
820    virtual HRESULT WINAPI QueryAccept(const AM_MEDIA_TYPE *pmt) = 0;
821    virtual HRESULT WINAPI EnumMediaTypes(IEnumMediaTypes **ppEnum) = 0;
822    virtual HRESULT WINAPI QueryInternalConnections(IPin **apPin,ULONG *nPin) = 0;
823    virtual HRESULT WINAPI EndOfStream(void) = 0;
824    virtual HRESULT WINAPI BeginFlush(void) = 0;
825    virtual HRESULT WINAPI EndFlush(void) = 0;
826    virtual HRESULT WINAPI NewSegment(REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate) = 0;
827  };
828#else
829  typedef struct IPinVtbl {
830    BEGIN_INTERFACE
831      HRESULT (WINAPI *QueryInterface)(IPin *This,REFIID riid,void **ppvObject);
832      ULONG (WINAPI *AddRef)(IPin *This);
833      ULONG (WINAPI *Release)(IPin *This);
834      HRESULT (WINAPI *Connect)(IPin *This,IPin *pReceivePin,const AM_MEDIA_TYPE *pmt);
835      HRESULT (WINAPI *ReceiveConnection)(IPin *This,IPin *pConnector,const AM_MEDIA_TYPE *pmt);
836      HRESULT (WINAPI *Disconnect)(IPin *This);
837      HRESULT (WINAPI *ConnectedTo)(IPin *This,IPin **pPin);
838      HRESULT (WINAPI *ConnectionMediaType)(IPin *This,AM_MEDIA_TYPE *pmt);
839      HRESULT (WINAPI *QueryPinInfo)(IPin *This,PIN_INFO *pInfo);
840      HRESULT (WINAPI *QueryDirection)(IPin *This,PIN_DIRECTION *pPinDir);
841      HRESULT (WINAPI *QueryId)(IPin *This,LPWSTR *Id);
842      HRESULT (WINAPI *QueryAccept)(IPin *This,const AM_MEDIA_TYPE *pmt);
843      HRESULT (WINAPI *EnumMediaTypes)(IPin *This,IEnumMediaTypes **ppEnum);
844      HRESULT (WINAPI *QueryInternalConnections)(IPin *This,IPin **apPin,ULONG *nPin);
845      HRESULT (WINAPI *EndOfStream)(IPin *This);
846      HRESULT (WINAPI *BeginFlush)(IPin *This);
847      HRESULT (WINAPI *EndFlush)(IPin *This);
848      HRESULT (WINAPI *NewSegment)(IPin *This,REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate);
849    END_INTERFACE
850  } IPinVtbl;
851  struct IPin {
852    CONST_VTBL struct IPinVtbl *lpVtbl;
853  };
854#ifdef COBJMACROS
855#define IPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
856#define IPin_AddRef(This) (This)->lpVtbl->AddRef(This)
857#define IPin_Release(This) (This)->lpVtbl->Release(This)
858#define IPin_Connect(This,pReceivePin,pmt) (This)->lpVtbl->Connect(This,pReceivePin,pmt)
859#define IPin_ReceiveConnection(This,pConnector,pmt) (This)->lpVtbl->ReceiveConnection(This,pConnector,pmt)
860#define IPin_Disconnect(This) (This)->lpVtbl->Disconnect(This)
861#define IPin_ConnectedTo(This,pPin) (This)->lpVtbl->ConnectedTo(This,pPin)
862#define IPin_ConnectionMediaType(This,pmt) (This)->lpVtbl->ConnectionMediaType(This,pmt)
863#define IPin_QueryPinInfo(This,pInfo) (This)->lpVtbl->QueryPinInfo(This,pInfo)
864#define IPin_QueryDirection(This,pPinDir) (This)->lpVtbl->QueryDirection(This,pPinDir)
865#define IPin_QueryId(This,Id) (This)->lpVtbl->QueryId(This,Id)
866#define IPin_QueryAccept(This,pmt) (This)->lpVtbl->QueryAccept(This,pmt)
867#define IPin_EnumMediaTypes(This,ppEnum) (This)->lpVtbl->EnumMediaTypes(This,ppEnum)
868#define IPin_QueryInternalConnections(This,apPin,nPin) (This)->lpVtbl->QueryInternalConnections(This,apPin,nPin)
869#define IPin_EndOfStream(This) (This)->lpVtbl->EndOfStream(This)
870#define IPin_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
871#define IPin_EndFlush(This) (This)->lpVtbl->EndFlush(This)
872#define IPin_NewSegment(This,tStart,tStop,dRate) (This)->lpVtbl->NewSegment(This,tStart,tStop,dRate)
873#endif
874#endif
875  HRESULT WINAPI IPin_Connect_Proxy(IPin *This,IPin *pReceivePin,const AM_MEDIA_TYPE *pmt);
876  void __RPC_STUB IPin_Connect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
877  HRESULT WINAPI IPin_ReceiveConnection_Proxy(IPin *This,IPin *pConnector,const AM_MEDIA_TYPE *pmt);
878  void __RPC_STUB IPin_ReceiveConnection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
879  HRESULT WINAPI IPin_Disconnect_Proxy(IPin *This);
880  void __RPC_STUB IPin_Disconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
881  HRESULT WINAPI IPin_ConnectedTo_Proxy(IPin *This,IPin **pPin);
882  void __RPC_STUB IPin_ConnectedTo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
883  HRESULT WINAPI IPin_ConnectionMediaType_Proxy(IPin *This,AM_MEDIA_TYPE *pmt);
884  void __RPC_STUB IPin_ConnectionMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
885  HRESULT WINAPI IPin_QueryPinInfo_Proxy(IPin *This,PIN_INFO *pInfo);
886  void __RPC_STUB IPin_QueryPinInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
887  HRESULT WINAPI IPin_QueryDirection_Proxy(IPin *This,PIN_DIRECTION *pPinDir);
888  void __RPC_STUB IPin_QueryDirection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
889  HRESULT WINAPI IPin_QueryId_Proxy(IPin *This,LPWSTR *Id);
890  void __RPC_STUB IPin_QueryId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
891  HRESULT WINAPI IPin_QueryAccept_Proxy(IPin *This,const AM_MEDIA_TYPE *pmt);
892  void __RPC_STUB IPin_QueryAccept_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
893  HRESULT WINAPI IPin_EnumMediaTypes_Proxy(IPin *This,IEnumMediaTypes **ppEnum);
894  void __RPC_STUB IPin_EnumMediaTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
895  HRESULT WINAPI IPin_QueryInternalConnections_Proxy(IPin *This,IPin **apPin,ULONG *nPin);
896  void __RPC_STUB IPin_QueryInternalConnections_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
897  HRESULT WINAPI IPin_EndOfStream_Proxy(IPin *This);
898  void __RPC_STUB IPin_EndOfStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
899  HRESULT WINAPI IPin_BeginFlush_Proxy(IPin *This);
900  void __RPC_STUB IPin_BeginFlush_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
901  HRESULT WINAPI IPin_EndFlush_Proxy(IPin *This);
902  void __RPC_STUB IPin_EndFlush_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
903  HRESULT WINAPI IPin_NewSegment_Proxy(IPin *This,REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate);
904  void __RPC_STUB IPin_NewSegment_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
905#endif
906
907  typedef IPin *PPIN;
908
909  extern RPC_IF_HANDLE __MIDL_itf_strmif_0118_v0_0_c_ifspec;
910  extern RPC_IF_HANDLE __MIDL_itf_strmif_0118_v0_0_s_ifspec;
911#ifndef __IEnumPins_INTERFACE_DEFINED__
912#define __IEnumPins_INTERFACE_DEFINED__
913  EXTERN_C const IID IID_IEnumPins;
914#if defined(__cplusplus) && !defined(CINTERFACE)
915  struct IEnumPins : public IUnknown {
916  public:
917    virtual HRESULT WINAPI Next(ULONG cPins,IPin **ppPins,ULONG *pcFetched) = 0;
918    virtual HRESULT WINAPI Skip(ULONG cPins) = 0;
919    virtual HRESULT WINAPI Reset(void) = 0;
920    virtual HRESULT WINAPI Clone(IEnumPins **ppEnum) = 0;
921  };
922#else
923  typedef struct IEnumPinsVtbl {
924    BEGIN_INTERFACE
925      HRESULT (WINAPI *QueryInterface)(IEnumPins *This,REFIID riid,void **ppvObject);
926      ULONG (WINAPI *AddRef)(IEnumPins *This);
927      ULONG (WINAPI *Release)(IEnumPins *This);
928      HRESULT (WINAPI *Next)(IEnumPins *This,ULONG cPins,IPin **ppPins,ULONG *pcFetched);
929      HRESULT (WINAPI *Skip)(IEnumPins *This,ULONG cPins);
930      HRESULT (WINAPI *Reset)(IEnumPins *This);
931      HRESULT (WINAPI *Clone)(IEnumPins *This,IEnumPins **ppEnum);
932    END_INTERFACE
933  } IEnumPinsVtbl;
934  struct IEnumPins {
935    CONST_VTBL struct IEnumPinsVtbl *lpVtbl;
936  };
937#ifdef COBJMACROS
938#define IEnumPins_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
939#define IEnumPins_AddRef(This) (This)->lpVtbl->AddRef(This)
940#define IEnumPins_Release(This) (This)->lpVtbl->Release(This)
941#define IEnumPins_Next(This,cPins,ppPins,pcFetched) (This)->lpVtbl->Next(This,cPins,ppPins,pcFetched)
942#define IEnumPins_Skip(This,cPins) (This)->lpVtbl->Skip(This,cPins)
943#define IEnumPins_Reset(This) (This)->lpVtbl->Reset(This)
944#define IEnumPins_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
945#endif
946#endif
947  HRESULT WINAPI IEnumPins_Next_Proxy(IEnumPins *This,ULONG cPins,IPin **ppPins,ULONG *pcFetched);
948  void __RPC_STUB IEnumPins_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
949  HRESULT WINAPI IEnumPins_Skip_Proxy(IEnumPins *This,ULONG cPins);
950  void __RPC_STUB IEnumPins_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
951  HRESULT WINAPI IEnumPins_Reset_Proxy(IEnumPins *This);
952  void __RPC_STUB IEnumPins_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
953  HRESULT WINAPI IEnumPins_Clone_Proxy(IEnumPins *This,IEnumPins **ppEnum);
954  void __RPC_STUB IEnumPins_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
955#endif
956
957  typedef IEnumPins *PENUMPINS;
958
959  extern RPC_IF_HANDLE __MIDL_itf_strmif_0119_v0_0_c_ifspec;
960  extern RPC_IF_HANDLE __MIDL_itf_strmif_0119_v0_0_s_ifspec;
961#ifndef __IEnumMediaTypes_INTERFACE_DEFINED__
962#define __IEnumMediaTypes_INTERFACE_DEFINED__
963  EXTERN_C const IID IID_IEnumMediaTypes;
964#if defined(__cplusplus) && !defined(CINTERFACE)
965  struct IEnumMediaTypes : public IUnknown {
966  public:
967    virtual HRESULT WINAPI Next(ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched) = 0;
968    virtual HRESULT WINAPI Skip(ULONG cMediaTypes) = 0;
969    virtual HRESULT WINAPI Reset(void) = 0;
970    virtual HRESULT WINAPI Clone(IEnumMediaTypes **ppEnum) = 0;
971  };
972#else
973  typedef struct IEnumMediaTypesVtbl {
974    BEGIN_INTERFACE
975      HRESULT (WINAPI *QueryInterface)(IEnumMediaTypes *This,REFIID riid,void **ppvObject);
976      ULONG (WINAPI *AddRef)(IEnumMediaTypes *This);
977      ULONG (WINAPI *Release)(IEnumMediaTypes *This);
978      HRESULT (WINAPI *Next)(IEnumMediaTypes *This,ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched);
979      HRESULT (WINAPI *Skip)(IEnumMediaTypes *This,ULONG cMediaTypes);
980      HRESULT (WINAPI *Reset)(IEnumMediaTypes *This);
981      HRESULT (WINAPI *Clone)(IEnumMediaTypes *This,IEnumMediaTypes **ppEnum);
982    END_INTERFACE
983  } IEnumMediaTypesVtbl;
984  struct IEnumMediaTypes {
985    CONST_VTBL struct IEnumMediaTypesVtbl *lpVtbl;
986  };
987#ifdef COBJMACROS
988#define IEnumMediaTypes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
989#define IEnumMediaTypes_AddRef(This) (This)->lpVtbl->AddRef(This)
990#define IEnumMediaTypes_Release(This) (This)->lpVtbl->Release(This)
991#define IEnumMediaTypes_Next(This,cMediaTypes,ppMediaTypes,pcFetched) (This)->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched)
992#define IEnumMediaTypes_Skip(This,cMediaTypes) (This)->lpVtbl->Skip(This,cMediaTypes)
993#define IEnumMediaTypes_Reset(This) (This)->lpVtbl->Reset(This)
994#define IEnumMediaTypes_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
995#endif
996#endif
997  HRESULT WINAPI IEnumMediaTypes_Next_Proxy(IEnumMediaTypes *This,ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched);
998  void __RPC_STUB IEnumMediaTypes_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
999  HRESULT WINAPI IEnumMediaTypes_Skip_Proxy(IEnumMediaTypes *This,ULONG cMediaTypes);
1000  void __RPC_STUB IEnumMediaTypes_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1001  HRESULT WINAPI IEnumMediaTypes_Reset_Proxy(IEnumMediaTypes *This);
1002  void __RPC_STUB IEnumMediaTypes_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1003  HRESULT WINAPI IEnumMediaTypes_Clone_Proxy(IEnumMediaTypes *This,IEnumMediaTypes **ppEnum);
1004  void __RPC_STUB IEnumMediaTypes_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1005#endif
1006
1007  typedef IEnumMediaTypes *PENUMMEDIATYPES;
1008
1009  extern RPC_IF_HANDLE __MIDL_itf_strmif_0120_v0_0_c_ifspec;
1010  extern RPC_IF_HANDLE __MIDL_itf_strmif_0120_v0_0_s_ifspec;
1011#ifndef __IFilterGraph_INTERFACE_DEFINED__
1012#define __IFilterGraph_INTERFACE_DEFINED__
1013
1014  EXTERN_C const IID IID_IFilterGraph;
1015#if defined(__cplusplus) && !defined(CINTERFACE)
1016  struct IFilterGraph : public IUnknown {
1017  public:
1018    virtual HRESULT WINAPI AddFilter(IBaseFilter *pFilter,LPCWSTR pName) = 0;
1019    virtual HRESULT WINAPI RemoveFilter(IBaseFilter *pFilter) = 0;
1020    virtual HRESULT WINAPI EnumFilters(IEnumFilters **ppEnum) = 0;
1021    virtual HRESULT WINAPI FindFilterByName(LPCWSTR pName,IBaseFilter **ppFilter) = 0;
1022    virtual HRESULT WINAPI ConnectDirect(IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) = 0;
1023    virtual HRESULT WINAPI Reconnect(IPin *ppin) = 0;
1024    virtual HRESULT WINAPI Disconnect(IPin *ppin) = 0;
1025    virtual HRESULT WINAPI SetDefaultSyncSource(void) = 0;
1026  };
1027#else
1028  typedef struct IFilterGraphVtbl {
1029    BEGIN_INTERFACE
1030      HRESULT (WINAPI *QueryInterface)(IFilterGraph *This,REFIID riid,void **ppvObject);
1031      ULONG (WINAPI *AddRef)(IFilterGraph *This);
1032      ULONG (WINAPI *Release)(IFilterGraph *This);
1033      HRESULT (WINAPI *AddFilter)(IFilterGraph *This,IBaseFilter *pFilter,LPCWSTR pName);
1034      HRESULT (WINAPI *RemoveFilter)(IFilterGraph *This,IBaseFilter *pFilter);
1035      HRESULT (WINAPI *EnumFilters)(IFilterGraph *This,IEnumFilters **ppEnum);
1036      HRESULT (WINAPI *FindFilterByName)(IFilterGraph *This,LPCWSTR pName,IBaseFilter **ppFilter);
1037      HRESULT (WINAPI *ConnectDirect)(IFilterGraph *This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt);
1038      HRESULT (WINAPI *Reconnect)(IFilterGraph *This,IPin *ppin);
1039      HRESULT (WINAPI *Disconnect)(IFilterGraph *This,IPin *ppin);
1040      HRESULT (WINAPI *SetDefaultSyncSource)(IFilterGraph *This);
1041    END_INTERFACE
1042  } IFilterGraphVtbl;
1043  struct IFilterGraph {
1044    CONST_VTBL struct IFilterGraphVtbl *lpVtbl;
1045  };
1046#ifdef COBJMACROS
1047#define IFilterGraph_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1048#define IFilterGraph_AddRef(This) (This)->lpVtbl->AddRef(This)
1049#define IFilterGraph_Release(This) (This)->lpVtbl->Release(This)
1050#define IFilterGraph_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
1051#define IFilterGraph_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
1052#define IFilterGraph_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
1053#define IFilterGraph_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
1054#define IFilterGraph_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
1055#define IFilterGraph_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
1056#define IFilterGraph_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
1057#define IFilterGraph_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
1058#endif
1059#endif
1060  HRESULT WINAPI IFilterGraph_AddFilter_Proxy(IFilterGraph *This,IBaseFilter *pFilter,LPCWSTR pName);
1061  void __RPC_STUB IFilterGraph_AddFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1062  HRESULT WINAPI IFilterGraph_RemoveFilter_Proxy(IFilterGraph *This,IBaseFilter *pFilter);
1063  void __RPC_STUB IFilterGraph_RemoveFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1064  HRESULT WINAPI IFilterGraph_EnumFilters_Proxy(IFilterGraph *This,IEnumFilters **ppEnum);
1065  void __RPC_STUB IFilterGraph_EnumFilters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1066  HRESULT WINAPI IFilterGraph_FindFilterByName_Proxy(IFilterGraph *This,LPCWSTR pName,IBaseFilter **ppFilter);
1067  void __RPC_STUB IFilterGraph_FindFilterByName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1068  HRESULT WINAPI IFilterGraph_ConnectDirect_Proxy(IFilterGraph *This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt);
1069  void __RPC_STUB IFilterGraph_ConnectDirect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1070  HRESULT WINAPI IFilterGraph_Reconnect_Proxy(IFilterGraph *This,IPin *ppin);
1071  void __RPC_STUB IFilterGraph_Reconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1072  HRESULT WINAPI IFilterGraph_Disconnect_Proxy(IFilterGraph *This,IPin *ppin);
1073  void __RPC_STUB IFilterGraph_Disconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1074  HRESULT WINAPI IFilterGraph_SetDefaultSyncSource_Proxy(IFilterGraph *This);
1075  void __RPC_STUB IFilterGraph_SetDefaultSyncSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1076#endif
1077
1078  typedef IFilterGraph *PFILTERGRAPH;
1079
1080  extern RPC_IF_HANDLE __MIDL_itf_strmif_0121_v0_0_c_ifspec;
1081  extern RPC_IF_HANDLE __MIDL_itf_strmif_0121_v0_0_s_ifspec;
1082#ifndef __IEnumFilters_INTERFACE_DEFINED__
1083#define __IEnumFilters_INTERFACE_DEFINED__
1084  EXTERN_C const IID IID_IEnumFilters;
1085#if defined(__cplusplus) && !defined(CINTERFACE)
1086  struct IEnumFilters : public IUnknown {
1087  public:
1088    virtual HRESULT WINAPI Next(ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched) = 0;
1089    virtual HRESULT WINAPI Skip(ULONG cFilters) = 0;
1090    virtual HRESULT WINAPI Reset(void) = 0;
1091    virtual HRESULT WINAPI Clone(IEnumFilters **ppEnum) = 0;
1092  };
1093#else
1094  typedef struct IEnumFiltersVtbl {
1095    BEGIN_INTERFACE
1096      HRESULT (WINAPI *QueryInterface)(IEnumFilters *This,REFIID riid,void **ppvObject);
1097      ULONG (WINAPI *AddRef)(IEnumFilters *This);
1098      ULONG (WINAPI *Release)(IEnumFilters *This);
1099      HRESULT (WINAPI *Next)(IEnumFilters *This,ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched);
1100      HRESULT (WINAPI *Skip)(IEnumFilters *This,ULONG cFilters);
1101      HRESULT (WINAPI *Reset)(IEnumFilters *This);
1102      HRESULT (WINAPI *Clone)(IEnumFilters *This,IEnumFilters **ppEnum);
1103    END_INTERFACE
1104  } IEnumFiltersVtbl;
1105  struct IEnumFilters {
1106    CONST_VTBL struct IEnumFiltersVtbl *lpVtbl;
1107  };
1108#ifdef COBJMACROS
1109#define IEnumFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1110#define IEnumFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
1111#define IEnumFilters_Release(This) (This)->lpVtbl->Release(This)
1112#define IEnumFilters_Next(This,cFilters,ppFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,ppFilter,pcFetched)
1113#define IEnumFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
1114#define IEnumFilters_Reset(This) (This)->lpVtbl->Reset(This)
1115#define IEnumFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
1116#endif
1117#endif
1118  HRESULT WINAPI IEnumFilters_Next_Proxy(IEnumFilters *This,ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched);
1119  void __RPC_STUB IEnumFilters_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1120  HRESULT WINAPI IEnumFilters_Skip_Proxy(IEnumFilters *This,ULONG cFilters);
1121  void __RPC_STUB IEnumFilters_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1122  HRESULT WINAPI IEnumFilters_Reset_Proxy(IEnumFilters *This);
1123  void __RPC_STUB IEnumFilters_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1124  HRESULT WINAPI IEnumFilters_Clone_Proxy(IEnumFilters *This,IEnumFilters **ppEnum);
1125  void __RPC_STUB IEnumFilters_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1126#endif
1127
1128  typedef IEnumFilters *PENUMFILTERS;
1129
1130  extern RPC_IF_HANDLE __MIDL_itf_strmif_0122_v0_0_c_ifspec;
1131  extern RPC_IF_HANDLE __MIDL_itf_strmif_0122_v0_0_s_ifspec;
1132#ifndef __IMediaFilter_INTERFACE_DEFINED__
1133#define __IMediaFilter_INTERFACE_DEFINED__
1134  typedef enum _FilterState {
1135    State_Stopped = 0,State_Paused,State_Running
1136  } FILTER_STATE;
1137
1138  EXTERN_C const IID IID_IMediaFilter;
1139#if defined(__cplusplus) && !defined(CINTERFACE)
1140  struct IMediaFilter : public IPersist {
1141  public:
1142    virtual HRESULT WINAPI Stop(void) = 0;
1143    virtual HRESULT WINAPI Pause(void) = 0;
1144    virtual HRESULT WINAPI Run(REFERENCE_TIME tStart) = 0;
1145    virtual HRESULT WINAPI GetState(DWORD dwMilliSecsTimeout,FILTER_STATE *State) = 0;
1146    virtual HRESULT WINAPI SetSyncSource(IReferenceClock *pClock) = 0;
1147    virtual HRESULT WINAPI GetSyncSource(IReferenceClock **pClock) = 0;
1148  };
1149#else
1150  typedef struct IMediaFilterVtbl {
1151    BEGIN_INTERFACE
1152      HRESULT (WINAPI *QueryInterface)(IMediaFilter *This,REFIID riid,void **ppvObject);
1153      ULONG (WINAPI *AddRef)(IMediaFilter *This);
1154      ULONG (WINAPI *Release)(IMediaFilter *This);
1155      HRESULT (WINAPI *GetClassID)(IMediaFilter *This,CLSID *pClassID);
1156      HRESULT (WINAPI *Stop)(IMediaFilter *This);
1157      HRESULT (WINAPI *Pause)(IMediaFilter *This);
1158      HRESULT (WINAPI *Run)(IMediaFilter *This,REFERENCE_TIME tStart);
1159      HRESULT (WINAPI *GetState)(IMediaFilter *This,DWORD dwMilliSecsTimeout,FILTER_STATE *State);
1160      HRESULT (WINAPI *SetSyncSource)(IMediaFilter *This,IReferenceClock *pClock);
1161      HRESULT (WINAPI *GetSyncSource)(IMediaFilter *This,IReferenceClock **pClock);
1162    END_INTERFACE
1163  } IMediaFilterVtbl;
1164  struct IMediaFilter {
1165    CONST_VTBL struct IMediaFilterVtbl *lpVtbl;
1166  };
1167#ifdef COBJMACROS
1168#define IMediaFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1169#define IMediaFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
1170#define IMediaFilter_Release(This) (This)->lpVtbl->Release(This)
1171#define IMediaFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
1172#define IMediaFilter_Stop(This) (This)->lpVtbl->Stop(This)
1173#define IMediaFilter_Pause(This) (This)->lpVtbl->Pause(This)
1174#define IMediaFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
1175#define IMediaFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
1176#define IMediaFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
1177#define IMediaFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
1178#endif
1179#endif
1180  HRESULT WINAPI IMediaFilter_Stop_Proxy(IMediaFilter *This);
1181  void __RPC_STUB IMediaFilter_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1182  HRESULT WINAPI IMediaFilter_Pause_Proxy(IMediaFilter *This);
1183  void __RPC_STUB IMediaFilter_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1184  HRESULT WINAPI IMediaFilter_Run_Proxy(IMediaFilter *This,REFERENCE_TIME tStart);
1185  void __RPC_STUB IMediaFilter_Run_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1186  HRESULT WINAPI IMediaFilter_GetState_Proxy(IMediaFilter *This,DWORD dwMilliSecsTimeout,FILTER_STATE *State);
1187  void __RPC_STUB IMediaFilter_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1188  HRESULT WINAPI IMediaFilter_SetSyncSource_Proxy(IMediaFilter *This,IReferenceClock *pClock);
1189  void __RPC_STUB IMediaFilter_SetSyncSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1190  HRESULT WINAPI IMediaFilter_GetSyncSource_Proxy(IMediaFilter *This,IReferenceClock **pClock);
1191  void __RPC_STUB IMediaFilter_GetSyncSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1192#endif
1193
1194  typedef IMediaFilter *PMEDIAFILTER;
1195
1196  extern RPC_IF_HANDLE __MIDL_itf_strmif_0123_v0_0_c_ifspec;
1197  extern RPC_IF_HANDLE __MIDL_itf_strmif_0123_v0_0_s_ifspec;
1198#ifndef __IBaseFilter_INTERFACE_DEFINED__
1199#define __IBaseFilter_INTERFACE_DEFINED__
1200
1201  typedef struct _FilterInfo {
1202    WCHAR achName[128];
1203    IFilterGraph *pGraph;
1204  } FILTER_INFO;
1205
1206  EXTERN_C const IID IID_IBaseFilter;
1207#if defined(__cplusplus) && !defined(CINTERFACE)
1208  struct IBaseFilter : public IMediaFilter {
1209  public:
1210    virtual HRESULT WINAPI EnumPins(IEnumPins **ppEnum) = 0;
1211    virtual HRESULT WINAPI FindPin(LPCWSTR Id,IPin **ppPin) = 0;
1212    virtual HRESULT WINAPI QueryFilterInfo(FILTER_INFO *pInfo) = 0;
1213    virtual HRESULT WINAPI JoinFilterGraph(IFilterGraph *pGraph,LPCWSTR pName) = 0;
1214    virtual HRESULT WINAPI QueryVendorInfo(LPWSTR *pVendorInfo) = 0;
1215  };
1216#else
1217  typedef struct IBaseFilterVtbl {
1218    BEGIN_INTERFACE
1219      HRESULT (WINAPI *QueryInterface)(IBaseFilter *This,REFIID riid,void **ppvObject);
1220      ULONG (WINAPI *AddRef)(IBaseFilter *This);
1221      ULONG (WINAPI *Release)(IBaseFilter *This);
1222      HRESULT (WINAPI *GetClassID)(IBaseFilter *This,CLSID *pClassID);
1223      HRESULT (WINAPI *Stop)(IBaseFilter *This);
1224      HRESULT (WINAPI *Pause)(IBaseFilter *This);
1225      HRESULT (WINAPI *Run)(IBaseFilter *This,REFERENCE_TIME tStart);
1226      HRESULT (WINAPI *GetState)(IBaseFilter *This,DWORD dwMilliSecsTimeout,FILTER_STATE *State);
1227      HRESULT (WINAPI *SetSyncSource)(IBaseFilter *This,IReferenceClock *pClock);
1228      HRESULT (WINAPI *GetSyncSource)(IBaseFilter *This,IReferenceClock **pClock);
1229      HRESULT (WINAPI *EnumPins)(IBaseFilter *This,IEnumPins **ppEnum);
1230      HRESULT (WINAPI *FindPin)(IBaseFilter *This,LPCWSTR Id,IPin **ppPin);
1231      HRESULT (WINAPI *QueryFilterInfo)(IBaseFilter *This,FILTER_INFO *pInfo);
1232      HRESULT (WINAPI *JoinFilterGraph)(IBaseFilter *This,IFilterGraph *pGraph,LPCWSTR pName);
1233      HRESULT (WINAPI *QueryVendorInfo)(IBaseFilter *This,LPWSTR *pVendorInfo);
1234    END_INTERFACE
1235  } IBaseFilterVtbl;
1236  struct IBaseFilter {
1237    CONST_VTBL struct IBaseFilterVtbl *lpVtbl;
1238  };
1239#ifdef COBJMACROS
1240#define IBaseFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1241#define IBaseFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
1242#define IBaseFilter_Release(This) (This)->lpVtbl->Release(This)
1243#define IBaseFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
1244#define IBaseFilter_Stop(This) (This)->lpVtbl->Stop(This)
1245#define IBaseFilter_Pause(This) (This)->lpVtbl->Pause(This)
1246#define IBaseFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
1247#define IBaseFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
1248#define IBaseFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
1249#define IBaseFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
1250#define IBaseFilter_EnumPins(This,ppEnum) (This)->lpVtbl->EnumPins(This,ppEnum)
1251#define IBaseFilter_FindPin(This,Id,ppPin) (This)->lpVtbl->FindPin(This,Id,ppPin)
1252#define IBaseFilter_QueryFilterInfo(This,pInfo) (This)->lpVtbl->QueryFilterInfo(This,pInfo)
1253#define IBaseFilter_JoinFilterGraph(This,pGraph,pName) (This)->lpVtbl->JoinFilterGraph(This,pGraph,pName)
1254#define IBaseFilter_QueryVendorInfo(This,pVendorInfo) (This)->lpVtbl->QueryVendorInfo(This,pVendorInfo)
1255#endif
1256#endif
1257  HRESULT WINAPI IBaseFilter_EnumPins_Proxy(IBaseFilter *This,IEnumPins **ppEnum);
1258  void __RPC_STUB IBaseFilter_EnumPins_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1259  HRESULT WINAPI IBaseFilter_FindPin_Proxy(IBaseFilter *This,LPCWSTR Id,IPin **ppPin);
1260  void __RPC_STUB IBaseFilter_FindPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1261  HRESULT WINAPI IBaseFilter_QueryFilterInfo_Proxy(IBaseFilter *This,FILTER_INFO *pInfo);
1262  void __RPC_STUB IBaseFilter_QueryFilterInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1263  HRESULT WINAPI IBaseFilter_JoinFilterGraph_Proxy(IBaseFilter *This,IFilterGraph *pGraph,LPCWSTR pName);
1264  void __RPC_STUB IBaseFilter_JoinFilterGraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1265  HRESULT WINAPI IBaseFilter_QueryVendorInfo_Proxy(IBaseFilter *This,LPWSTR *pVendorInfo);
1266  void __RPC_STUB IBaseFilter_QueryVendorInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1267#endif
1268
1269  typedef IBaseFilter *PFILTER;
1270
1271  extern RPC_IF_HANDLE __MIDL_itf_strmif_0124_v0_0_c_ifspec;
1272  extern RPC_IF_HANDLE __MIDL_itf_strmif_0124_v0_0_s_ifspec;
1273#ifndef __IReferenceClock_INTERFACE_DEFINED__
1274#define __IReferenceClock_INTERFACE_DEFINED__
1275  EXTERN_C const IID IID_IReferenceClock;
1276#if defined(__cplusplus) && !defined(CINTERFACE)
1277  struct IReferenceClock : public IUnknown {
1278  public:
1279    virtual HRESULT WINAPI GetTime(REFERENCE_TIME *pTime) = 0;
1280    virtual HRESULT WINAPI AdviseTime(REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) = 0;
1281    virtual HRESULT WINAPI AdvisePeriodic(REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) = 0;
1282    virtual HRESULT WINAPI Unadvise(DWORD_PTR dwAdviseCookie) = 0;
1283  };
1284#else
1285  typedef struct IReferenceClockVtbl {
1286    BEGIN_INTERFACE
1287      HRESULT (WINAPI *QueryInterface)(IReferenceClock *This,REFIID riid,void **ppvObject);
1288      ULONG (WINAPI *AddRef)(IReferenceClock *This);
1289      ULONG (WINAPI *Release)(IReferenceClock *This);
1290      HRESULT (WINAPI *GetTime)(IReferenceClock *This,REFERENCE_TIME *pTime);
1291      HRESULT (WINAPI *AdviseTime)(IReferenceClock *This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie);
1292      HRESULT (WINAPI *AdvisePeriodic)(IReferenceClock *This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie);
1293      HRESULT (WINAPI *Unadvise)(IReferenceClock *This,DWORD_PTR dwAdviseCookie);
1294    END_INTERFACE
1295  } IReferenceClockVtbl;
1296  struct IReferenceClock {
1297    CONST_VTBL struct IReferenceClockVtbl *lpVtbl;
1298  };
1299#ifdef COBJMACROS
1300#define IReferenceClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1301#define IReferenceClock_AddRef(This) (This)->lpVtbl->AddRef(This)
1302#define IReferenceClock_Release(This) (This)->lpVtbl->Release(This)
1303#define IReferenceClock_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
1304#define IReferenceClock_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
1305#define IReferenceClock_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
1306#define IReferenceClock_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
1307#endif
1308#endif
1309  HRESULT WINAPI IReferenceClock_GetTime_Proxy(IReferenceClock *This,REFERENCE_TIME *pTime);
1310  void __RPC_STUB IReferenceClock_GetTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1311  HRESULT WINAPI IReferenceClock_AdviseTime_Proxy(IReferenceClock *This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie);
1312  void __RPC_STUB IReferenceClock_AdviseTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1313  HRESULT WINAPI IReferenceClock_AdvisePeriodic_Proxy(IReferenceClock *This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie);
1314  void __RPC_STUB IReferenceClock_AdvisePeriodic_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1315  HRESULT WINAPI IReferenceClock_Unadvise_Proxy(IReferenceClock *This,DWORD_PTR dwAdviseCookie);
1316  void __RPC_STUB IReferenceClock_Unadvise_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1317#endif
1318
1319  typedef IReferenceClock *PREFERENCECLOCK;
1320
1321  extern RPC_IF_HANDLE __MIDL_itf_strmif_0125_v0_0_c_ifspec;
1322  extern RPC_IF_HANDLE __MIDL_itf_strmif_0125_v0_0_s_ifspec;
1323#ifndef __IReferenceClock2_INTERFACE_DEFINED__
1324#define __IReferenceClock2_INTERFACE_DEFINED__
1325  EXTERN_C const IID IID_IReferenceClock2;
1326#if defined(__cplusplus) && !defined(CINTERFACE)
1327  struct IReferenceClock2 : public IReferenceClock {
1328  };
1329#else
1330  typedef struct IReferenceClock2Vtbl {
1331    BEGIN_INTERFACE
1332      HRESULT (WINAPI *QueryInterface)(IReferenceClock2 *This,REFIID riid,void **ppvObject);
1333      ULONG (WINAPI *AddRef)(IReferenceClock2 *This);
1334      ULONG (WINAPI *Release)(IReferenceClock2 *This);
1335      HRESULT (WINAPI *GetTime)(IReferenceClock2 *This,REFERENCE_TIME *pTime);
1336      HRESULT (WINAPI *AdviseTime)(IReferenceClock2 *This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie);
1337      HRESULT (WINAPI *AdvisePeriodic)(IReferenceClock2 *This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie);
1338      HRESULT (WINAPI *Unadvise)(IReferenceClock2 *This,DWORD_PTR dwAdviseCookie);
1339    END_INTERFACE
1340  } IReferenceClock2Vtbl;
1341  struct IReferenceClock2 {
1342    CONST_VTBL struct IReferenceClock2Vtbl *lpVtbl;
1343  };
1344#ifdef COBJMACROS
1345#define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1346#define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
1347#define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
1348#define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
1349#define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
1350#define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
1351#define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
1352#endif
1353#endif
1354#endif
1355
1356  typedef IReferenceClock2 *PREFERENCECLOCK2;
1357
1358  extern RPC_IF_HANDLE __MIDL_itf_strmif_0126_v0_0_c_ifspec;
1359  extern RPC_IF_HANDLE __MIDL_itf_strmif_0126_v0_0_s_ifspec;
1360#ifndef __IMediaSample_INTERFACE_DEFINED__
1361#define __IMediaSample_INTERFACE_DEFINED__
1362  EXTERN_C const IID IID_IMediaSample;
1363#if defined(__cplusplus) && !defined(CINTERFACE)
1364  struct IMediaSample : public IUnknown {
1365  public:
1366    virtual HRESULT WINAPI GetPointer(BYTE **ppBuffer) = 0;
1367    virtual long WINAPI GetSize(void) = 0;
1368    virtual HRESULT WINAPI GetTime(REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) = 0;
1369    virtual HRESULT WINAPI SetTime(REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) = 0;
1370    virtual HRESULT WINAPI IsSyncPoint(void) = 0;
1371    virtual HRESULT WINAPI SetSyncPoint(WINBOOL bIsSyncPoint) = 0;
1372    virtual HRESULT WINAPI IsPreroll(void) = 0;
1373    virtual HRESULT WINAPI SetPreroll(WINBOOL bIsPreroll) = 0;
1374    virtual long WINAPI GetActualDataLength(void) = 0;
1375    virtual HRESULT WINAPI SetActualDataLength(long __MIDL_0010) = 0;
1376    virtual HRESULT WINAPI GetMediaType(AM_MEDIA_TYPE **ppMediaType) = 0;
1377    virtual HRESULT WINAPI SetMediaType(AM_MEDIA_TYPE *pMediaType) = 0;
1378    virtual HRESULT WINAPI IsDiscontinuity(void) = 0;
1379    virtual HRESULT WINAPI SetDiscontinuity(WINBOOL bDiscontinuity) = 0;
1380    virtual HRESULT WINAPI GetMediaTime(LONGLONG *pTimeStart,LONGLONG *pTimeEnd) = 0;
1381    virtual HRESULT WINAPI SetMediaTime(LONGLONG *pTimeStart,LONGLONG *pTimeEnd) = 0;
1382  };
1383#else
1384  typedef struct IMediaSampleVtbl {
1385    BEGIN_INTERFACE
1386      HRESULT (WINAPI *QueryInterface)(IMediaSample *This,REFIID riid,void **ppvObject);
1387      ULONG (WINAPI *AddRef)(IMediaSample *This);
1388      ULONG (WINAPI *Release)(IMediaSample *This);
1389      HRESULT (WINAPI *GetPointer)(IMediaSample *This,BYTE **ppBuffer);
1390      long (WINAPI *GetSize)(IMediaSample *This);
1391      HRESULT (WINAPI *GetTime)(IMediaSample *This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd);
1392      HRESULT (WINAPI *SetTime)(IMediaSample *This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd);
1393      HRESULT (WINAPI *IsSyncPoint)(IMediaSample *This);
1394      HRESULT (WINAPI *SetSyncPoint)(IMediaSample *This,WINBOOL bIsSyncPoint);
1395      HRESULT (WINAPI *IsPreroll)(IMediaSample *This);
1396      HRESULT (WINAPI *SetPreroll)(IMediaSample *This,WINBOOL bIsPreroll);
1397      long (WINAPI *GetActualDataLength)(IMediaSample *This);
1398      HRESULT (WINAPI *SetActualDataLength)(IMediaSample *This,long __MIDL_0010);
1399      HRESULT (WINAPI *GetMediaType)(IMediaSample *This,AM_MEDIA_TYPE **ppMediaType);
1400      HRESULT (WINAPI *SetMediaType)(IMediaSample *This,AM_MEDIA_TYPE *pMediaType);
1401      HRESULT (WINAPI *IsDiscontinuity)(IMediaSample *This);
1402      HRESULT (WINAPI *SetDiscontinuity)(IMediaSample *This,WINBOOL bDiscontinuity);
1403      HRESULT (WINAPI *GetMediaTime)(IMediaSample *This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd);
1404      HRESULT (WINAPI *SetMediaTime)(IMediaSample *This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd);
1405    END_INTERFACE
1406  } IMediaSampleVtbl;
1407  struct IMediaSample {
1408    CONST_VTBL struct IMediaSampleVtbl *lpVtbl;
1409  };
1410#ifdef COBJMACROS
1411#define IMediaSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1412#define IMediaSample_AddRef(This) (This)->lpVtbl->AddRef(This)
1413#define IMediaSample_Release(This) (This)->lpVtbl->Release(This)
1414#define IMediaSample_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
1415#define IMediaSample_GetSize(This) (This)->lpVtbl->GetSize(This)
1416#define IMediaSample_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
1417#define IMediaSample_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
1418#define IMediaSample_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
1419#define IMediaSample_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
1420#define IMediaSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
1421#define IMediaSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
1422#define IMediaSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
1423#define IMediaSample_SetActualDataLength(This,__MIDL_0010) (This)->lpVtbl->SetActualDataLength(This,__MIDL_0010)
1424#define IMediaSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
1425#define IMediaSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
1426#define IMediaSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
1427#define IMediaSample_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
1428#define IMediaSample_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
1429#define IMediaSample_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
1430#endif
1431#endif
1432  HRESULT WINAPI IMediaSample_GetPointer_Proxy(IMediaSample *This,BYTE **ppBuffer);
1433  void __RPC_STUB IMediaSample_GetPointer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1434  long WINAPI IMediaSample_GetSize_Proxy(IMediaSample *This);
1435  void __RPC_STUB IMediaSample_GetSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1436  HRESULT WINAPI IMediaSample_GetTime_Proxy(IMediaSample *This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd);
1437  void __RPC_STUB IMediaSample_GetTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1438  HRESULT WINAPI IMediaSample_SetTime_Proxy(IMediaSample *This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd);
1439  void __RPC_STUB IMediaSample_SetTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1440  HRESULT WINAPI IMediaSample_IsSyncPoint_Proxy(IMediaSample *This);
1441  void __RPC_STUB IMediaSample_IsSyncPoint_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1442  HRESULT WINAPI IMediaSample_SetSyncPoint_Proxy(IMediaSample *This,WINBOOL bIsSyncPoint);
1443  void __RPC_STUB IMediaSample_SetSyncPoint_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1444  HRESULT WINAPI IMediaSample_IsPreroll_Proxy(IMediaSample *This);
1445  void __RPC_STUB IMediaSample_IsPreroll_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1446  HRESULT WINAPI IMediaSample_SetPreroll_Proxy(IMediaSample *This,WINBOOL bIsPreroll);
1447  void __RPC_STUB IMediaSample_SetPreroll_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1448  long WINAPI IMediaSample_GetActualDataLength_Proxy(IMediaSample *This);
1449  void __RPC_STUB IMediaSample_GetActualDataLength_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1450  HRESULT WINAPI IMediaSample_SetActualDataLength_Proxy(IMediaSample *This,long __MIDL_0010);
1451  void __RPC_STUB IMediaSample_SetActualDataLength_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1452  HRESULT WINAPI IMediaSample_GetMediaType_Proxy(IMediaSample *This,AM_MEDIA_TYPE **ppMediaType);
1453  void __RPC_STUB IMediaSample_GetMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1454  HRESULT WINAPI IMediaSample_SetMediaType_Proxy(IMediaSample *This,AM_MEDIA_TYPE *pMediaType);
1455  void __RPC_STUB IMediaSample_SetMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1456  HRESULT WINAPI IMediaSample_IsDiscontinuity_Proxy(IMediaSample *This);
1457  void __RPC_STUB IMediaSample_IsDiscontinuity_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1458  HRESULT WINAPI IMediaSample_SetDiscontinuity_Proxy(IMediaSample *This,WINBOOL bDiscontinuity);
1459  void __RPC_STUB IMediaSample_SetDiscontinuity_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1460  HRESULT WINAPI IMediaSample_GetMediaTime_Proxy(IMediaSample *This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd);
1461  void __RPC_STUB IMediaSample_GetMediaTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1462  HRESULT WINAPI IMediaSample_SetMediaTime_Proxy(IMediaSample *This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd);
1463  void __RPC_STUB IMediaSample_SetMediaTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1464#endif
1465
1466  typedef IMediaSample *PMEDIASAMPLE;
1467
1468  enum tagAM_SAMPLE_PROPERTY_FLAGS {
1469    AM_SAMPLE_SPLICEPOINT = 0x1,AM_SAMPLE_PREROLL = 0x2,AM_SAMPLE_DATADISCONTINUITY = 0x4,AM_SAMPLE_TYPECHANGED = 0x8,AM_SAMPLE_TIMEVALID = 0x10,
1470    AM_SAMPLE_TIMEDISCONTINUITY = 0x40,AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,AM_SAMPLE_STOPVALID = 0x100,AM_SAMPLE_ENDOFSTREAM = 0x200,AM_STREAM_MEDIA = 0,
1471    AM_STREAM_CONTROL = 1
1472  };
1473  typedef struct tagAM_SAMPLE2_PROPERTIES {
1474    DWORD cbData;
1475    DWORD dwTypeSpecificFlags;
1476    DWORD dwSampleFlags;
1477    LONG lActual;
1478    REFERENCE_TIME tStart;
1479    REFERENCE_TIME tStop;
1480    DWORD dwStreamId;
1481    AM_MEDIA_TYPE *pMediaType;
1482    BYTE *pbBuffer;
1483    LONG cbBuffer;
1484  } AM_SAMPLE2_PROPERTIES;
1485
1486  extern RPC_IF_HANDLE __MIDL_itf_strmif_0127_v0_0_c_ifspec;
1487  extern RPC_IF_HANDLE __MIDL_itf_strmif_0127_v0_0_s_ifspec;
1488#ifndef __IMediaSample2_INTERFACE_DEFINED__
1489#define __IMediaSample2_INTERFACE_DEFINED__
1490  EXTERN_C const IID IID_IMediaSample2;
1491#if defined(__cplusplus) && !defined(CINTERFACE)
1492  struct IMediaSample2 : public IMediaSample {
1493  public:
1494    virtual HRESULT WINAPI GetProperties(DWORD cbProperties,BYTE *pbProperties) = 0;
1495    virtual HRESULT WINAPI SetProperties(DWORD cbProperties,const BYTE *pbProperties) = 0;
1496  };
1497#else
1498  typedef struct IMediaSample2Vtbl {
1499    BEGIN_INTERFACE
1500      HRESULT (WINAPI *QueryInterface)(IMediaSample2 *This,REFIID riid,void **ppvObject);
1501      ULONG (WINAPI *AddRef)(IMediaSample2 *This);
1502      ULONG (WINAPI *Release)(IMediaSample2 *This);
1503      HRESULT (WINAPI *GetPointer)(IMediaSample2 *This,BYTE **ppBuffer);
1504      long (WINAPI *GetSize)(IMediaSample2 *This);
1505      HRESULT (WINAPI *GetTime)(IMediaSample2 *This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd);
1506      HRESULT (WINAPI *SetTime)(IMediaSample2 *This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd);
1507      HRESULT (WINAPI *IsSyncPoint)(IMediaSample2 *This);
1508      HRESULT (WINAPI *SetSyncPoint)(IMediaSample2 *This,WINBOOL bIsSyncPoint);
1509      HRESULT (WINAPI *IsPreroll)(IMediaSample2 *This);
1510      HRESULT (WINAPI *SetPreroll)(IMediaSample2 *This,WINBOOL bIsPreroll);
1511      long (WINAPI *GetActualDataLength)(IMediaSample2 *This);
1512      HRESULT (WINAPI *SetActualDataLength)(IMediaSample2 *This,long __MIDL_0010);
1513      HRESULT (WINAPI *GetMediaType)(IMediaSample2 *This,AM_MEDIA_TYPE **ppMediaType);
1514      HRESULT (WINAPI *SetMediaType)(IMediaSample2 *This,AM_MEDIA_TYPE *pMediaType);
1515      HRESULT (WINAPI *IsDiscontinuity)(IMediaSample2 *This);
1516      HRESULT (WINAPI *SetDiscontinuity)(IMediaSample2 *This,WINBOOL bDiscontinuity);
1517      HRESULT (WINAPI *GetMediaTime)(IMediaSample2 *This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd);
1518      HRESULT (WINAPI *SetMediaTime)(IMediaSample2 *This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd);
1519      HRESULT (WINAPI *GetProperties)(IMediaSample2 *This,DWORD cbProperties,BYTE *pbProperties);
1520      HRESULT (WINAPI *SetProperties)(IMediaSample2 *This,DWORD cbProperties,const BYTE *pbProperties);
1521    END_INTERFACE
1522  } IMediaSample2Vtbl;
1523  struct IMediaSample2 {
1524    CONST_VTBL struct IMediaSample2Vtbl *lpVtbl;
1525  };
1526#ifdef COBJMACROS
1527#define IMediaSample2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1528#define IMediaSample2_AddRef(This) (This)->lpVtbl->AddRef(This)
1529#define IMediaSample2_Release(This) (This)->lpVtbl->Release(This)
1530#define IMediaSample2_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
1531#define IMediaSample2_GetSize(This) (This)->lpVtbl->GetSize(This)
1532#define IMediaSample2_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
1533#define IMediaSample2_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
1534#define IMediaSample2_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
1535#define IMediaSample2_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
1536#define IMediaSample2_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
1537#define IMediaSample2_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
1538#define IMediaSample2_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
1539#define IMediaSample2_SetActualDataLength(This,__MIDL_0010) (This)->lpVtbl->SetActualDataLength(This,__MIDL_0010)
1540#define IMediaSample2_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
1541#define IMediaSample2_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
1542#define IMediaSample2_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
1543#define IMediaSample2_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
1544#define IMediaSample2_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
1545#define IMediaSample2_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
1546#define IMediaSample2_GetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->GetProperties(This,cbProperties,pbProperties)
1547#define IMediaSample2_SetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->SetProperties(This,cbProperties,pbProperties)
1548#endif
1549#endif
1550  HRESULT WINAPI IMediaSample2_GetProperties_Proxy(IMediaSample2 *This,DWORD cbProperties,BYTE *pbProperties);
1551  void __RPC_STUB IMediaSample2_GetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1552  HRESULT WINAPI IMediaSample2_SetProperties_Proxy(IMediaSample2 *This,DWORD cbProperties,const BYTE *pbProperties);
1553  void __RPC_STUB IMediaSample2_SetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1554#endif
1555
1556  typedef IMediaSample2 *PMEDIASAMPLE2;
1557
1558#define AM_GBF_PREVFRAMESKIPPED 1
1559#define AM_GBF_NOTASYNCPOINT 2
1560#define AM_GBF_NOWAIT 4
1561#define AM_GBF_NODDSURFACELOCK 8
1562
1563  extern RPC_IF_HANDLE __MIDL_itf_strmif_0128_v0_0_c_ifspec;
1564  extern RPC_IF_HANDLE __MIDL_itf_strmif_0128_v0_0_s_ifspec;
1565#ifndef __IMemAllocator_INTERFACE_DEFINED__
1566#define __IMemAllocator_INTERFACE_DEFINED__
1567  EXTERN_C const IID IID_IMemAllocator;
1568#if defined(__cplusplus) && !defined(CINTERFACE)
1569  struct IMemAllocator : public IUnknown {
1570  public:
1571    virtual HRESULT WINAPI SetProperties(ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) = 0;
1572    virtual HRESULT WINAPI GetProperties(ALLOCATOR_PROPERTIES *pProps) = 0;
1573    virtual HRESULT WINAPI Commit(void) = 0;
1574    virtual HRESULT WINAPI Decommit(void) = 0;
1575    virtual HRESULT WINAPI GetBuffer(IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) = 0;
1576    virtual HRESULT WINAPI ReleaseBuffer(IMediaSample *pBuffer) = 0;
1577  };
1578#else
1579  typedef struct IMemAllocatorVtbl {
1580    BEGIN_INTERFACE
1581      HRESULT (WINAPI *QueryInterface)(IMemAllocator *This,REFIID riid,void **ppvObject);
1582      ULONG (WINAPI *AddRef)(IMemAllocator *This);
1583      ULONG (WINAPI *Release)(IMemAllocator *This);
1584      HRESULT (WINAPI *SetProperties)(IMemAllocator *This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual);
1585      HRESULT (WINAPI *GetProperties)(IMemAllocator *This,ALLOCATOR_PROPERTIES *pProps);
1586      HRESULT (WINAPI *Commit)(IMemAllocator *This);
1587      HRESULT (WINAPI *Decommit)(IMemAllocator *This);
1588      HRESULT (WINAPI *GetBuffer)(IMemAllocator *This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags);
1589      HRESULT (WINAPI *ReleaseBuffer)(IMemAllocator *This,IMediaSample *pBuffer);
1590    END_INTERFACE
1591  } IMemAllocatorVtbl;
1592  struct IMemAllocator {
1593    CONST_VTBL struct IMemAllocatorVtbl *lpVtbl;
1594  };
1595#ifdef COBJMACROS
1596#define IMemAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1597#define IMemAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
1598#define IMemAllocator_Release(This) (This)->lpVtbl->Release(This)
1599#define IMemAllocator_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
1600#define IMemAllocator_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
1601#define IMemAllocator_Commit(This) (This)->lpVtbl->Commit(This)
1602#define IMemAllocator_Decommit(This) (This)->lpVtbl->Decommit(This)
1603#define IMemAllocator_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
1604#define IMemAllocator_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
1605#endif
1606#endif
1607  HRESULT WINAPI IMemAllocator_SetProperties_Proxy(IMemAllocator *This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual);
1608  void __RPC_STUB IMemAllocator_SetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1609  HRESULT WINAPI IMemAllocator_GetProperties_Proxy(IMemAllocator *This,ALLOCATOR_PROPERTIES *pProps);
1610  void __RPC_STUB IMemAllocator_GetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1611  HRESULT WINAPI IMemAllocator_Commit_Proxy(IMemAllocator *This);
1612  void __RPC_STUB IMemAllocator_Commit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1613  HRESULT WINAPI IMemAllocator_Decommit_Proxy(IMemAllocator *This);
1614  void __RPC_STUB IMemAllocator_Decommit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1615  HRESULT WINAPI IMemAllocator_GetBuffer_Proxy(IMemAllocator *This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags);
1616  void __RPC_STUB IMemAllocator_GetBuffer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1617  HRESULT WINAPI IMemAllocator_ReleaseBuffer_Proxy(IMemAllocator *This,IMediaSample *pBuffer);
1618  void __RPC_STUB IMemAllocator_ReleaseBuffer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1619#endif
1620
1621  typedef IMemAllocator *PMEMALLOCATOR;
1622
1623  extern RPC_IF_HANDLE __MIDL_itf_strmif_0129_v0_0_c_ifspec;
1624  extern RPC_IF_HANDLE __MIDL_itf_strmif_0129_v0_0_s_ifspec;
1625#ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
1626#define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
1627  EXTERN_C const IID IID_IMemAllocatorCallbackTemp;
1628#if defined(__cplusplus) && !defined(CINTERFACE)
1629  struct IMemAllocatorCallbackTemp : public IMemAllocator {
1630  public:
1631    virtual HRESULT WINAPI SetNotify(IMemAllocatorNotifyCallbackTemp *pNotify) = 0;
1632    virtual HRESULT WINAPI GetFreeCount(LONG *plBuffersFree) = 0;
1633  };
1634#else
1635  typedef struct IMemAllocatorCallbackTempVtbl {
1636    BEGIN_INTERFACE
1637      HRESULT (WINAPI *QueryInterface)(IMemAllocatorCallbackTemp *This,REFIID riid,void **ppvObject);
1638      ULONG (WINAPI *AddRef)(IMemAllocatorCallbackTemp *This);
1639      ULONG (WINAPI *Release)(IMemAllocatorCallbackTemp *This);
1640      HRESULT (WINAPI *SetProperties)(IMemAllocatorCallbackTemp *This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual);
1641      HRESULT (WINAPI *GetProperties)(IMemAllocatorCallbackTemp *This,ALLOCATOR_PROPERTIES *pProps);
1642      HRESULT (WINAPI *Commit)(IMemAllocatorCallbackTemp *This);
1643      HRESULT (WINAPI *Decommit)(IMemAllocatorCallbackTemp *This);
1644      HRESULT (WINAPI *GetBuffer)(IMemAllocatorCallbackTemp *This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags);
1645      HRESULT (WINAPI *ReleaseBuffer)(IMemAllocatorCallbackTemp *This,IMediaSample *pBuffer);
1646      HRESULT (WINAPI *SetNotify)(IMemAllocatorCallbackTemp *This,IMemAllocatorNotifyCallbackTemp *pNotify);
1647      HRESULT (WINAPI *GetFreeCount)(IMemAllocatorCallbackTemp *This,LONG *plBuffersFree);
1648    END_INTERFACE
1649  } IMemAllocatorCallbackTempVtbl;
1650  struct IMemAllocatorCallbackTemp {
1651    CONST_VTBL struct IMemAllocatorCallbackTempVtbl *lpVtbl;
1652  };
1653#ifdef COBJMACROS
1654#define IMemAllocatorCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1655#define IMemAllocatorCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
1656#define IMemAllocatorCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
1657#define IMemAllocatorCallbackTemp_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
1658#define IMemAllocatorCallbackTemp_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
1659#define IMemAllocatorCallbackTemp_Commit(This) (This)->lpVtbl->Commit(This)
1660#define IMemAllocatorCallbackTemp_Decommit(This) (This)->lpVtbl->Decommit(This)
1661#define IMemAllocatorCallbackTemp_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
1662#define IMemAllocatorCallbackTemp_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
1663#define IMemAllocatorCallbackTemp_SetNotify(This,pNotify) (This)->lpVtbl->SetNotify(This,pNotify)
1664#define IMemAllocatorCallbackTemp_GetFreeCount(This,plBuffersFree) (This)->lpVtbl->GetFreeCount(This,plBuffersFree)
1665#endif
1666#endif
1667  HRESULT WINAPI IMemAllocatorCallbackTemp_SetNotify_Proxy(IMemAllocatorCallbackTemp *This,IMemAllocatorNotifyCallbackTemp *pNotify);
1668  void __RPC_STUB IMemAllocatorCallbackTemp_SetNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1669  HRESULT WINAPI IMemAllocatorCallbackTemp_GetFreeCount_Proxy(IMemAllocatorCallbackTemp *This,LONG *plBuffersFree);
1670  void __RPC_STUB IMemAllocatorCallbackTemp_GetFreeCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1671#endif
1672
1673#ifndef __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
1674#define __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
1675  EXTERN_C const IID IID_IMemAllocatorNotifyCallbackTemp;
1676#if defined(__cplusplus) && !defined(CINTERFACE)
1677  struct IMemAllocatorNotifyCallbackTemp : public IUnknown {
1678  public:
1679    virtual HRESULT WINAPI NotifyRelease(void) = 0;
1680  };
1681#else
1682  typedef struct IMemAllocatorNotifyCallbackTempVtbl {
1683    BEGIN_INTERFACE
1684      HRESULT (WINAPI *QueryInterface)(IMemAllocatorNotifyCallbackTemp *This,REFIID riid,void **ppvObject);
1685      ULONG (WINAPI *AddRef)(IMemAllocatorNotifyCallbackTemp *This);
1686      ULONG (WINAPI *Release)(IMemAllocatorNotifyCallbackTemp *This);
1687      HRESULT (WINAPI *NotifyRelease)(IMemAllocatorNotifyCallbackTemp *This);
1688    END_INTERFACE
1689  } IMemAllocatorNotifyCallbackTempVtbl;
1690  struct IMemAllocatorNotifyCallbackTemp {
1691    CONST_VTBL struct IMemAllocatorNotifyCallbackTempVtbl *lpVtbl;
1692  };
1693#ifdef COBJMACROS
1694#define IMemAllocatorNotifyCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1695#define IMemAllocatorNotifyCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
1696#define IMemAllocatorNotifyCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
1697#define IMemAllocatorNotifyCallbackTemp_NotifyRelease(This) (This)->lpVtbl->NotifyRelease(This)
1698#endif
1699#endif
1700  HRESULT WINAPI IMemAllocatorNotifyCallbackTemp_NotifyRelease_Proxy(IMemAllocatorNotifyCallbackTemp *This);
1701  void __RPC_STUB IMemAllocatorNotifyCallbackTemp_NotifyRelease_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1702#endif
1703
1704#ifndef __IMemInputPin_INTERFACE_DEFINED__
1705#define __IMemInputPin_INTERFACE_DEFINED__
1706  EXTERN_C const IID IID_IMemInputPin;
1707#if defined(__cplusplus) && !defined(CINTERFACE)
1708  struct IMemInputPin : public IUnknown {
1709  public:
1710    virtual HRESULT WINAPI GetAllocator(IMemAllocator **ppAllocator) = 0;
1711    virtual HRESULT WINAPI NotifyAllocator(IMemAllocator *pAllocator,WINBOOL bReadOnly) = 0;
1712    virtual HRESULT WINAPI GetAllocatorRequirements(ALLOCATOR_PROPERTIES *pProps) = 0;
1713    virtual HRESULT WINAPI Receive(IMediaSample *pSample) = 0;
1714    virtual HRESULT WINAPI ReceiveMultiple(IMediaSample **pSamples,long nSamples,long *nSamplesProcessed) = 0;
1715    virtual HRESULT WINAPI ReceiveCanBlock(void) = 0;
1716  };
1717#else
1718  typedef struct IMemInputPinVtbl {
1719    BEGIN_INTERFACE
1720      HRESULT (WINAPI *QueryInterface)(IMemInputPin *This,REFIID riid,void **ppvObject);
1721      ULONG (WINAPI *AddRef)(IMemInputPin *This);
1722      ULONG (WINAPI *Release)(IMemInputPin *This);
1723      HRESULT (WINAPI *GetAllocator)(IMemInputPin *This,IMemAllocator **ppAllocator);
1724      HRESULT (WINAPI *NotifyAllocator)(IMemInputPin *This,IMemAllocator *pAllocator,WINBOOL bReadOnly);
1725      HRESULT (WINAPI *GetAllocatorRequirements)(IMemInputPin *This,ALLOCATOR_PROPERTIES *pProps);
1726      HRESULT (WINAPI *Receive)(IMemInputPin *This,IMediaSample *pSample);
1727      HRESULT (WINAPI *ReceiveMultiple)(IMemInputPin *This,IMediaSample **pSamples,long nSamples,long *nSamplesProcessed);
1728      HRESULT (WINAPI *ReceiveCanBlock)(IMemInputPin *This);
1729    END_INTERFACE
1730  } IMemInputPinVtbl;
1731  struct IMemInputPin {
1732    CONST_VTBL struct IMemInputPinVtbl *lpVtbl;
1733  };
1734#ifdef COBJMACROS
1735#define IMemInputPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1736#define IMemInputPin_AddRef(This) (This)->lpVtbl->AddRef(This)
1737#define IMemInputPin_Release(This) (This)->lpVtbl->Release(This)
1738#define IMemInputPin_GetAllocator(This,ppAllocator) (This)->lpVtbl->GetAllocator(This,ppAllocator)
1739#define IMemInputPin_NotifyAllocator(This,pAllocator,bReadOnly) (This)->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly)
1740#define IMemInputPin_GetAllocatorRequirements(This,pProps) (This)->lpVtbl->GetAllocatorRequirements(This,pProps)
1741#define IMemInputPin_Receive(This,pSample) (This)->lpVtbl->Receive(This,pSample)
1742#define IMemInputPin_ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed) (This)->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed)
1743#define IMemInputPin_ReceiveCanBlock(This) (This)->lpVtbl->ReceiveCanBlock(This)
1744#endif
1745#endif
1746  HRESULT WINAPI IMemInputPin_GetAllocator_Proxy(IMemInputPin *This,IMemAllocator **ppAllocator);
1747  void __RPC_STUB IMemInputPin_GetAllocator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1748  HRESULT WINAPI IMemInputPin_NotifyAllocator_Proxy(IMemInputPin *This,IMemAllocator *pAllocator,WINBOOL bReadOnly);
1749  void __RPC_STUB IMemInputPin_NotifyAllocator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1750  HRESULT WINAPI IMemInputPin_GetAllocatorRequirements_Proxy(IMemInputPin *This,ALLOCATOR_PROPERTIES *pProps);
1751  void __RPC_STUB IMemInputPin_GetAllocatorRequirements_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1752  HRESULT WINAPI IMemInputPin_Receive_Proxy(IMemInputPin *This,IMediaSample *pSample);
1753  void __RPC_STUB IMemInputPin_Receive_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1754  HRESULT WINAPI IMemInputPin_ReceiveMultiple_Proxy(IMemInputPin *This,IMediaSample **pSamples,long nSamples,long *nSamplesProcessed);
1755  void __RPC_STUB IMemInputPin_ReceiveMultiple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1756  HRESULT WINAPI IMemInputPin_ReceiveCanBlock_Proxy(IMemInputPin *This);
1757  void __RPC_STUB IMemInputPin_ReceiveCanBlock_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1758#endif
1759
1760  typedef IMemInputPin *PMEMINPUTPIN;
1761
1762  extern RPC_IF_HANDLE __MIDL_itf_strmif_0132_v0_0_c_ifspec;
1763  extern RPC_IF_HANDLE __MIDL_itf_strmif_0132_v0_0_s_ifspec;
1764#ifndef __IAMovieSetup_INTERFACE_DEFINED__
1765#define __IAMovieSetup_INTERFACE_DEFINED__
1766  EXTERN_C const IID IID_IAMovieSetup;
1767#if defined(__cplusplus) && !defined(CINTERFACE)
1768  struct IAMovieSetup : public IUnknown {
1769  public:
1770    virtual HRESULT WINAPI Register(void) = 0;
1771    virtual HRESULT WINAPI Unregister(void) = 0;
1772  };
1773#else
1774  typedef struct IAMovieSetupVtbl {
1775    BEGIN_INTERFACE
1776      HRESULT (WINAPI *QueryInterface)(IAMovieSetup *This,REFIID riid,void **ppvObject);
1777      ULONG (WINAPI *AddRef)(IAMovieSetup *This);
1778      ULONG (WINAPI *Release)(IAMovieSetup *This);
1779      HRESULT (WINAPI *Register)(IAMovieSetup *This);
1780      HRESULT (WINAPI *Unregister)(IAMovieSetup *This);
1781    END_INTERFACE
1782  } IAMovieSetupVtbl;
1783  struct IAMovieSetup {
1784    CONST_VTBL struct IAMovieSetupVtbl *lpVtbl;
1785  };
1786#ifdef COBJMACROS
1787#define IAMovieSetup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1788#define IAMovieSetup_AddRef(This) (This)->lpVtbl->AddRef(This)
1789#define IAMovieSetup_Release(This) (This)->lpVtbl->Release(This)
1790#define IAMovieSetup_Register(This) (This)->lpVtbl->Register(This)
1791#define IAMovieSetup_Unregister(This) (This)->lpVtbl->Unregister(This)
1792#endif
1793#endif
1794  HRESULT WINAPI IAMovieSetup_Register_Proxy(IAMovieSetup *This);
1795  void __RPC_STUB IAMovieSetup_Register_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1796  HRESULT WINAPI IAMovieSetup_Unregister_Proxy(IAMovieSetup *This);
1797  void __RPC_STUB IAMovieSetup_Unregister_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1798#endif
1799
1800  typedef IAMovieSetup *PAMOVIESETUP;
1801
1802  typedef enum AM_SEEKING_SeekingFlags {
1803    AM_SEEKING_NoPositioning = 0,AM_SEEKING_AbsolutePositioning = 0x1,AM_SEEKING_RelativePositioning = 0x2,AM_SEEKING_IncrementalPositioning = 0x3,
1804    AM_SEEKING_PositioningBitsMask = 0x3,AM_SEEKING_SeekToKeyFrame = 0x4,AM_SEEKING_ReturnTime = 0x8,AM_SEEKING_Segment = 0x10,AM_SEEKING_NoFlush = 0x20
1805  } AM_SEEKING_SEEKING_FLAGS;
1806
1807  typedef enum AM_SEEKING_SeekingCapabilities {
1808    AM_SEEKING_CanSeekAbsolute = 0x1,AM_SEEKING_CanSeekForwards = 0x2,AM_SEEKING_CanSeekBackwards = 0x4,AM_SEEKING_CanGetCurrentPos = 0x8,
1809    AM_SEEKING_CanGetStopPos = 0x10,AM_SEEKING_CanGetDuration = 0x20,AM_SEEKING_CanPlayBackwards = 0x40,AM_SEEKING_CanDoSegments = 0x80,
1810    AM_SEEKING_Source = 0x100
1811  } AM_SEEKING_SEEKING_CAPABILITIES;
1812
1813  extern RPC_IF_HANDLE __MIDL_itf_strmif_0133_v0_0_c_ifspec;
1814  extern RPC_IF_HANDLE __MIDL_itf_strmif_0133_v0_0_s_ifspec;
1815#ifndef __IMediaSeeking_INTERFACE_DEFINED__
1816#define __IMediaSeeking_INTERFACE_DEFINED__
1817  EXTERN_C const IID IID_IMediaSeeking;
1818#if defined(__cplusplus) && !defined(CINTERFACE)
1819  struct IMediaSeeking : public IUnknown {
1820  public:
1821    virtual HRESULT WINAPI GetCapabilities(DWORD *pCapabilities) = 0;
1822    virtual HRESULT WINAPI CheckCapabilities(DWORD *pCapabilities) = 0;
1823    virtual HRESULT WINAPI IsFormatSupported(const GUID *pFormat) = 0;
1824    virtual HRESULT WINAPI QueryPreferredFormat(GUID *pFormat) = 0;
1825    virtual HRESULT WINAPI GetTimeFormat(GUID *pFormat) = 0;
1826    virtual HRESULT WINAPI IsUsingTimeFormat(const GUID *pFormat) = 0;
1827    virtual HRESULT WINAPI SetTimeFormat(const GUID *pFormat) = 0;
1828    virtual HRESULT WINAPI GetDuration(LONGLONG *pDuration) = 0;
1829    virtual HRESULT WINAPI GetStopPosition(LONGLONG *pStop) = 0;
1830    virtual HRESULT WINAPI GetCurrentPosition(LONGLONG *pCurrent) = 0;
1831    virtual HRESULT WINAPI ConvertTimeFormat(LONGLONG *pTarget,const GUID *pTargetFormat,LONGLONG Source,const GUID *pSourceFormat) = 0;
1832    virtual HRESULT WINAPI SetPositions(LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags) = 0;
1833    virtual HRESULT WINAPI GetPositions(LONGLONG *pCurrent,LONGLONG *pStop) = 0;
1834    virtual HRESULT WINAPI GetAvailable(LONGLONG *pEarliest,LONGLONG *pLatest) = 0;
1835    virtual HRESULT WINAPI SetRate(double dRate) = 0;
1836    virtual HRESULT WINAPI GetRate(double *pdRate) = 0;
1837    virtual HRESULT WINAPI GetPreroll(LONGLONG *pllPreroll) = 0;
1838  };
1839#else
1840  typedef struct IMediaSeekingVtbl {
1841    BEGIN_INTERFACE
1842      HRESULT (WINAPI *QueryInterface)(IMediaSeeking *This,REFIID riid,void **ppvObject);
1843      ULONG (WINAPI *AddRef)(IMediaSeeking *This);
1844      ULONG (WINAPI *Release)(IMediaSeeking *This);
1845      HRESULT (WINAPI *GetCapabilities)(IMediaSeeking *This,DWORD *pCapabilities);
1846      HRESULT (WINAPI *CheckCapabilities)(IMediaSeeking *This,DWORD *pCapabilities);
1847      HRESULT (WINAPI *IsFormatSupported)(IMediaSeeking *This,const GUID *pFormat);
1848      HRESULT (WINAPI *QueryPreferredFormat)(IMediaSeeking *This,GUID *pFormat);
1849      HRESULT (WINAPI *GetTimeFormat)(IMediaSeeking *This,GUID *pFormat);
1850      HRESULT (WINAPI *IsUsingTimeFormat)(IMediaSeeking *This,const GUID *pFormat);
1851      HRESULT (WINAPI *SetTimeFormat)(IMediaSeeking *This,const GUID *pFormat);
1852      HRESULT (WINAPI *GetDuration)(IMediaSeeking *This,LONGLONG *pDuration);
1853      HRESULT (WINAPI *GetStopPosition)(IMediaSeeking *This,LONGLONG *pStop);
1854      HRESULT (WINAPI *GetCurrentPosition)(IMediaSeeking *This,LONGLONG *pCurrent);
1855      HRESULT (WINAPI *ConvertTimeFormat)(IMediaSeeking *This,LONGLONG *pTarget,const GUID *pTargetFormat,LONGLONG Source,const GUID *pSourceFormat);
1856      HRESULT (WINAPI *SetPositions)(IMediaSeeking *This,LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags);
1857      HRESULT (WINAPI *GetPositions)(IMediaSeeking *This,LONGLONG *pCurrent,LONGLONG *pStop);
1858      HRESULT (WINAPI *GetAvailable)(IMediaSeeking *This,LONGLONG *pEarliest,LONGLONG *pLatest);
1859      HRESULT (WINAPI *SetRate)(IMediaSeeking *This,double dRate);
1860      HRESULT (WINAPI *GetRate)(IMediaSeeking *This,double *pdRate);
1861      HRESULT (WINAPI *GetPreroll)(IMediaSeeking *This,LONGLONG *pllPreroll);
1862    END_INTERFACE
1863  } IMediaSeekingVtbl;
1864  struct IMediaSeeking {
1865    CONST_VTBL struct IMediaSeekingVtbl *lpVtbl;
1866  };
1867#ifdef COBJMACROS
1868#define IMediaSeeking_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1869#define IMediaSeeking_AddRef(This) (This)->lpVtbl->AddRef(This)
1870#define IMediaSeeking_Release(This) (This)->lpVtbl->Release(This)
1871#define IMediaSeeking_GetCapabilities(This,pCapabilities) (This)->lpVtbl->GetCapabilities(This,pCapabilities)
1872#define IMediaSeeking_CheckCapabilities(This,pCapabilities) (This)->lpVtbl->CheckCapabilities(This,pCapabilities)
1873#define IMediaSeeking_IsFormatSupported(This,pFormat) (This)->lpVtbl->IsFormatSupported(This,pFormat)
1874#define IMediaSeeking_QueryPreferredFormat(This,pFormat) (This)->lpVtbl->QueryPreferredFormat(This,pFormat)
1875#define IMediaSeeking_GetTimeFormat(This,pFormat) (This)->lpVtbl->GetTimeFormat(This,pFormat)
1876#define IMediaSeeking_IsUsingTimeFormat(This,pFormat) (This)->lpVtbl->IsUsingTimeFormat(This,pFormat)
1877#define IMediaSeeking_SetTimeFormat(This,pFormat) (This)->lpVtbl->SetTimeFormat(This,pFormat)
1878#define IMediaSeeking_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration)
1879#define IMediaSeeking_GetStopPosition(This,pStop) (This)->lpVtbl->GetStopPosition(This,pStop)
1880#define IMediaSeeking_GetCurrentPosition(This,pCurrent) (This)->lpVtbl->GetCurrentPosition(This,pCurrent)
1881#define IMediaSeeking_ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat) (This)->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat)
1882#define IMediaSeeking_SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags) (This)->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags)
1883#define IMediaSeeking_GetPositions(This,pCurrent,pStop) (This)->lpVtbl->GetPositions(This,pCurrent,pStop)
1884#define IMediaSeeking_GetAvailable(This,pEarliest,pLatest) (This)->lpVtbl->GetAvailable(This,pEarliest,pLatest)
1885#define IMediaSeeking_SetRate(This,dRate) (This)->lpVtbl->SetRate(This,dRate)
1886#define IMediaSeeking_GetRate(This,pdRate) (This)->lpVtbl->GetRate(This,pdRate)
1887#define IMediaSeeking_GetPreroll(This,pllPreroll) (This)->lpVtbl->GetPreroll(This,pllPreroll)
1888#endif
1889#endif
1890  HRESULT WINAPI IMediaSeeking_GetCapabilities_Proxy(IMediaSeeking *This,DWORD *pCapabilities);
1891  void __RPC_STUB IMediaSeeking_GetCapabilities_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1892  HRESULT WINAPI IMediaSeeking_CheckCapabilities_Proxy(IMediaSeeking *This,DWORD *pCapabilities);
1893  void __RPC_STUB IMediaSeeking_CheckCapabilities_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1894  HRESULT WINAPI IMediaSeeking_IsFormatSupported_Proxy(IMediaSeeking *This,const GUID *pFormat);
1895  void __RPC_STUB IMediaSeeking_IsFormatSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1896  HRESULT WINAPI IMediaSeeking_QueryPreferredFormat_Proxy(IMediaSeeking *This,GUID *pFormat);
1897  void __RPC_STUB IMediaSeeking_QueryPreferredFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1898  HRESULT WINAPI IMediaSeeking_GetTimeFormat_Proxy(IMediaSeeking *This,GUID *pFormat);
1899  void __RPC_STUB IMediaSeeking_GetTimeFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1900  HRESULT WINAPI IMediaSeeking_IsUsingTimeFormat_Proxy(IMediaSeeking *This,const GUID *pFormat);
1901  void __RPC_STUB IMediaSeeking_IsUsingTimeFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1902  HRESULT WINAPI IMediaSeeking_SetTimeFormat_Proxy(IMediaSeeking *This,const GUID *pFormat);
1903  void __RPC_STUB IMediaSeeking_SetTimeFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1904  HRESULT WINAPI IMediaSeeking_GetDuration_Proxy(IMediaSeeking *This,LONGLONG *pDuration);
1905  void __RPC_STUB IMediaSeeking_GetDuration_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1906  HRESULT WINAPI IMediaSeeking_GetStopPosition_Proxy(IMediaSeeking *This,LONGLONG *pStop);
1907  void __RPC_STUB IMediaSeeking_GetStopPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1908  HRESULT WINAPI IMediaSeeking_GetCurrentPosition_Proxy(IMediaSeeking *This,LONGLONG *pCurrent);
1909  void __RPC_STUB IMediaSeeking_GetCurrentPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1910  HRESULT WINAPI IMediaSeeking_ConvertTimeFormat_Proxy(IMediaSeeking *This,LONGLONG *pTarget,const GUID *pTargetFormat,LONGLONG Source,const GUID *pSourceFormat);
1911  void __RPC_STUB IMediaSeeking_ConvertTimeFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1912  HRESULT WINAPI IMediaSeeking_SetPositions_Proxy(IMediaSeeking *This,LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags);
1913  void __RPC_STUB IMediaSeeking_SetPositions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1914  HRESULT WINAPI IMediaSeeking_GetPositions_Proxy(IMediaSeeking *This,LONGLONG *pCurrent,LONGLONG *pStop);
1915  void __RPC_STUB IMediaSeeking_GetPositions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1916  HRESULT WINAPI IMediaSeeking_GetAvailable_Proxy(IMediaSeeking *This,LONGLONG *pEarliest,LONGLONG *pLatest);
1917  void __RPC_STUB IMediaSeeking_GetAvailable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1918  HRESULT WINAPI IMediaSeeking_SetRate_Proxy(IMediaSeeking *This,double dRate);
1919  void __RPC_STUB IMediaSeeking_SetRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1920  HRESULT WINAPI IMediaSeeking_GetRate_Proxy(IMediaSeeking *This,double *pdRate);
1921  void __RPC_STUB IMediaSeeking_GetRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1922  HRESULT WINAPI IMediaSeeking_GetPreroll_Proxy(IMediaSeeking *This,LONGLONG *pllPreroll);
1923  void __RPC_STUB IMediaSeeking_GetPreroll_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1924#endif
1925
1926  typedef IMediaSeeking *PMEDIASEEKING;
1927
1928  enum tagAM_MEDIAEVENT_FLAGS {
1929    AM_MEDIAEVENT_NONOTIFY = 0x01
1930  };
1931
1932  typedef struct __MIDL___MIDL_itf_strmif_0134_0001 {
1933    CLSID Clsid;
1934    LPWSTR Name;
1935  } REGFILTER;
1936
1937  extern RPC_IF_HANDLE __MIDL_itf_strmif_0134_v0_0_c_ifspec;
1938  extern RPC_IF_HANDLE __MIDL_itf_strmif_0134_v0_0_s_ifspec;
1939#ifndef __IEnumRegFilters_INTERFACE_DEFINED__
1940#define __IEnumRegFilters_INTERFACE_DEFINED__
1941  EXTERN_C const IID IID_IEnumRegFilters;
1942#if defined(__cplusplus) && !defined(CINTERFACE)
1943  struct IEnumRegFilters : public IUnknown {
1944  public:
1945    virtual HRESULT WINAPI Next(ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched) = 0;
1946    virtual HRESULT WINAPI Skip(ULONG cFilters) = 0;
1947    virtual HRESULT WINAPI Reset(void) = 0;
1948    virtual HRESULT WINAPI Clone(IEnumRegFilters **ppEnum) = 0;
1949  };
1950#else
1951  typedef struct IEnumRegFiltersVtbl {
1952    BEGIN_INTERFACE
1953      HRESULT (WINAPI *QueryInterface)(IEnumRegFilters *This,REFIID riid,void **ppvObject);
1954      ULONG (WINAPI *AddRef)(IEnumRegFilters *This);
1955      ULONG (WINAPI *Release)(IEnumRegFilters *This);
1956      HRESULT (WINAPI *Next)(IEnumRegFilters *This,ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched);
1957      HRESULT (WINAPI *Skip)(IEnumRegFilters *This,ULONG cFilters);
1958      HRESULT (WINAPI *Reset)(IEnumRegFilters *This);
1959      HRESULT (WINAPI *Clone)(IEnumRegFilters *This,IEnumRegFilters **ppEnum);
1960    END_INTERFACE
1961  } IEnumRegFiltersVtbl;
1962  struct IEnumRegFilters {
1963    CONST_VTBL struct IEnumRegFiltersVtbl *lpVtbl;
1964  };
1965#ifdef COBJMACROS
1966#define IEnumRegFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1967#define IEnumRegFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
1968#define IEnumRegFilters_Release(This) (This)->lpVtbl->Release(This)
1969#define IEnumRegFilters_Next(This,cFilters,apRegFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched)
1970#define IEnumRegFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
1971#define IEnumRegFilters_Reset(This) (This)->lpVtbl->Reset(This)
1972#define IEnumRegFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
1973#endif
1974#endif
1975  HRESULT WINAPI IEnumRegFilters_Next_Proxy(IEnumRegFilters *This,ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched);
1976  void __RPC_STUB IEnumRegFilters_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1977  HRESULT WINAPI IEnumRegFilters_Skip_Proxy(IEnumRegFilters *This,ULONG cFilters);
1978  void __RPC_STUB IEnumRegFilters_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1979  HRESULT WINAPI IEnumRegFilters_Reset_Proxy(IEnumRegFilters *This);
1980  void __RPC_STUB IEnumRegFilters_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1981  HRESULT WINAPI IEnumRegFilters_Clone_Proxy(IEnumRegFilters *This,IEnumRegFilters **ppEnum);
1982  void __RPC_STUB IEnumRegFilters_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1983#endif
1984
1985  typedef IEnumRegFilters *PENUMREGFILTERS;
1986
1987  extern RPC_IF_HANDLE __MIDL_itf_strmif_0136_v0_0_c_ifspec;
1988  extern RPC_IF_HANDLE __MIDL_itf_strmif_0136_v0_0_s_ifspec;
1989#ifndef __IFilterMapper_INTERFACE_DEFINED__
1990#define __IFilterMapper_INTERFACE_DEFINED__
1991  enum __MIDL_IFilterMapper_0001 {
1992    MERIT_PREFERRED = 0x800000,MERIT_NORMAL = 0x600000,MERIT_UNLIKELY = 0x400000,MERIT_DO_NOT_USE = 0x200000,MERIT_SW_COMPRESSOR = 0x100000,
1993    MERIT_HW_COMPRESSOR = 0x100050
1994  };
1995  EXTERN_C const IID IID_IFilterMapper;
1996#if defined(__cplusplus) && !defined(CINTERFACE)
1997  struct IFilterMapper : public IUnknown {
1998  public:
1999    virtual HRESULT WINAPI RegisterFilter(CLSID clsid,LPCWSTR Name,DWORD dwMerit) = 0;
2000    virtual HRESULT WINAPI RegisterFilterInstance(CLSID clsid,LPCWSTR Name,CLSID *MRId) = 0;
2001    virtual HRESULT WINAPI RegisterPin(CLSID Filter,LPCWSTR Name,WINBOOL bRendered,WINBOOL bOutput,WINBOOL bZero,WINBOOL bMany,CLSID ConnectsToFilter,LPCWSTR ConnectsToPin) = 0;
2002    virtual HRESULT WINAPI RegisterPinType(CLSID clsFilter,LPCWSTR strName,CLSID clsMajorType,CLSID clsSubType) = 0;
2003    virtual HRESULT WINAPI UnregisterFilter(CLSID Filter) = 0;
2004    virtual HRESULT WINAPI UnregisterFilterInstance(CLSID MRId) = 0;
2005    virtual HRESULT WINAPI UnregisterPin(CLSID Filter,LPCWSTR Name) = 0;
2006    virtual HRESULT WINAPI EnumMatchingFilters(IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOututNeeded,CLSID clsOutMaj,CLSID clsOutSub) = 0;
2007  };
2008#else
2009  typedef struct IFilterMapperVtbl {
2010    BEGIN_INTERFACE
2011      HRESULT (WINAPI *QueryInterface)(IFilterMapper *This,REFIID riid,void **ppvObject);
2012      ULONG (WINAPI *AddRef)(IFilterMapper *This);
2013      ULONG (WINAPI *Release)(IFilterMapper *This);
2014      HRESULT (WINAPI *RegisterFilter)(IFilterMapper *This,CLSID clsid,LPCWSTR Name,DWORD dwMerit);
2015      HRESULT (WINAPI *RegisterFilterInstance)(IFilterMapper *This,CLSID clsid,LPCWSTR Name,CLSID *MRId);
2016      HRESULT (WINAPI *RegisterPin)(IFilterMapper *This,CLSID Filter,LPCWSTR Name,WINBOOL bRendered,WINBOOL bOutput,WINBOOL bZero,WINBOOL bMany,CLSID ConnectsToFilter,LPCWSTR ConnectsToPin);
2017      HRESULT (WINAPI *RegisterPinType)(IFilterMapper *This,CLSID clsFilter,LPCWSTR strName,CLSID clsMajorType,CLSID clsSubType);
2018      HRESULT (WINAPI *UnregisterFilter)(IFilterMapper *This,CLSID Filter);
2019      HRESULT (WINAPI *UnregisterFilterInstance)(IFilterMapper *This,CLSID MRId);
2020      HRESULT (WINAPI *UnregisterPin)(IFilterMapper *This,CLSID Filter,LPCWSTR Name);
2021      HRESULT (WINAPI *EnumMatchingFilters)(IFilterMapper *This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOututNeeded,CLSID clsOutMaj,CLSID clsOutSub);
2022    END_INTERFACE
2023  } IFilterMapperVtbl;
2024  struct IFilterMapper {
2025    CONST_VTBL struct IFilterMapperVtbl *lpVtbl;
2026  };
2027#ifdef COBJMACROS
2028#define IFilterMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2029#define IFilterMapper_AddRef(This) (This)->lpVtbl->AddRef(This)
2030#define IFilterMapper_Release(This) (This)->lpVtbl->Release(This)
2031#define IFilterMapper_RegisterFilter(This,clsid,Name,dwMerit) (This)->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit)
2032#define IFilterMapper_RegisterFilterInstance(This,clsid,Name,MRId) (This)->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId)
2033#define IFilterMapper_RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin) (This)->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin)
2034#define IFilterMapper_RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType) (This)->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType)
2035#define IFilterMapper_UnregisterFilter(This,Filter) (This)->lpVtbl->UnregisterFilter(This,Filter)
2036#define IFilterMapper_UnregisterFilterInstance(This,MRId) (This)->lpVtbl->UnregisterFilterInstance(This,MRId)
2037#define IFilterMapper_UnregisterPin(This,Filter,Name) (This)->lpVtbl->UnregisterPin(This,Filter,Name)
2038#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)
2039#endif
2040#endif
2041  HRESULT WINAPI IFilterMapper_RegisterFilter_Proxy(IFilterMapper *This,CLSID clsid,LPCWSTR Name,DWORD dwMerit);
2042  void __RPC_STUB IFilterMapper_RegisterFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2043  HRESULT WINAPI IFilterMapper_RegisterFilterInstance_Proxy(IFilterMapper *This,CLSID clsid,LPCWSTR Name,CLSID *MRId);
2044  void __RPC_STUB IFilterMapper_RegisterFilterInstance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2045  HRESULT WINAPI IFilterMapper_RegisterPin_Proxy(IFilterMapper *This,CLSID Filter,LPCWSTR Name,WINBOOL bRendered,WINBOOL bOutput,WINBOOL bZero,WINBOOL bMany,CLSID ConnectsToFilter,LPCWSTR ConnectsToPin);
2046  void __RPC_STUB IFilterMapper_RegisterPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2047  HRESULT WINAPI IFilterMapper_RegisterPinType_Proxy(IFilterMapper *This,CLSID clsFilter,LPCWSTR strName,CLSID clsMajorType,CLSID clsSubType);
2048  void __RPC_STUB IFilterMapper_RegisterPinType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2049  HRESULT WINAPI IFilterMapper_UnregisterFilter_Proxy(IFilterMapper *This,CLSID Filter);
2050  void __RPC_STUB IFilterMapper_UnregisterFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2051  HRESULT WINAPI IFilterMapper_UnregisterFilterInstance_Proxy(IFilterMapper *This,CLSID MRId);
2052  void __RPC_STUB IFilterMapper_UnregisterFilterInstance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2053  HRESULT WINAPI IFilterMapper_UnregisterPin_Proxy(IFilterMapper *This,CLSID Filter,LPCWSTR Name);
2054  void __RPC_STUB IFilterMapper_UnregisterPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2055  HRESULT WINAPI IFilterMapper_EnumMatchingFilters_Proxy(IFilterMapper *This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOututNeeded,CLSID clsOutMaj,CLSID clsOutSub);
2056  void __RPC_STUB IFilterMapper_EnumMatchingFilters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2057#endif
2058
2059  typedef struct __MIDL___MIDL_itf_strmif_0138_0001 {
2060    const CLSID *clsMajorType;
2061    const CLSID *clsMinorType;
2062  } REGPINTYPES;
2063
2064  typedef struct __MIDL___MIDL_itf_strmif_0138_0002 {
2065    LPWSTR strName;
2066    WINBOOL bRendered;
2067    WINBOOL bOutput;
2068    WINBOOL bZero;
2069    WINBOOL bMany;
2070    const CLSID *clsConnectsToFilter;
2071    const WCHAR *strConnectsToPin;
2072    UINT nMediaTypes;
2073    const REGPINTYPES *lpMediaType;
2074  } REGFILTERPINS;
2075
2076  typedef struct __MIDL___MIDL_itf_strmif_0138_0003 {
2077    CLSID clsMedium;
2078    DWORD dw1;
2079    DWORD dw2;
2080  } REGPINMEDIUM;
2081
2082  enum __MIDL___MIDL_itf_strmif_0138_0004 {
2083    REG_PINFLAG_B_ZERO = 0x1,REG_PINFLAG_B_RENDERER = 0x2,REG_PINFLAG_B_MANY = 0x4,REG_PINFLAG_B_OUTPUT = 0x8
2084  };
2085  typedef struct __MIDL___MIDL_itf_strmif_0138_0005 {
2086    DWORD dwFlags;
2087    UINT cInstances;
2088    UINT nMediaTypes;
2089    const REGPINTYPES *lpMediaType;
2090    UINT nMediums;
2091    const REGPINMEDIUM *lpMedium;
2092    const CLSID *clsPinCategory;
2093  } REGFILTERPINS2;
2094
2095  typedef struct __MIDL___MIDL_itf_strmif_0138_0006 {
2096    DWORD dwVersion;
2097    DWORD dwMerit;
2098    union {
2099      struct {
2100    ULONG cPins;
2101    const REGFILTERPINS *rgPins;
2102      };
2103      struct {
2104    ULONG cPins2;
2105    const REGFILTERPINS2 *rgPins2;
2106      };
2107    };
2108  } REGFILTER2;
2109
2110  extern RPC_IF_HANDLE __MIDL_itf_strmif_0138_v0_0_c_ifspec;
2111  extern RPC_IF_HANDLE __MIDL_itf_strmif_0138_v0_0_s_ifspec;
2112#ifndef __IFilterMapper2_INTERFACE_DEFINED__
2113#define __IFilterMapper2_INTERFACE_DEFINED__
2114  EXTERN_C const IID IID_IFilterMapper2;
2115#if defined(__cplusplus) && !defined(CINTERFACE)
2116  struct IFilterMapper2 : public IUnknown {
2117  public:
2118    virtual HRESULT WINAPI CreateCategory(REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) = 0;
2119    virtual HRESULT WINAPI UnregisterFilter(const CLSID *pclsidCategory,const OLECHAR *szInstance,REFCLSID Filter) = 0;
2120    virtual HRESULT WINAPI RegisterFilter(REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,const OLECHAR *szInstance,const REGFILTER2 *prf2) = 0;
2121    virtual HRESULT WINAPI EnumMatchingFilters(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) = 0;
2122  };
2123#else
2124  typedef struct IFilterMapper2Vtbl {
2125    BEGIN_INTERFACE
2126      HRESULT (WINAPI *QueryInterface)(IFilterMapper2 *This,REFIID riid,void **ppvObject);
2127      ULONG (WINAPI *AddRef)(IFilterMapper2 *This);
2128      ULONG (WINAPI *Release)(IFilterMapper2 *This);
2129      HRESULT (WINAPI *CreateCategory)(IFilterMapper2 *This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description);
2130      HRESULT (WINAPI *UnregisterFilter)(IFilterMapper2 *This,const CLSID *pclsidCategory,const OLECHAR *szInstance,REFCLSID Filter);
2131      HRESULT (WINAPI *RegisterFilter)(IFilterMapper2 *This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,const OLECHAR *szInstance,const REGFILTER2 *prf2);
2132      HRESULT (WINAPI *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);
2133    END_INTERFACE
2134  } IFilterMapper2Vtbl;
2135  struct IFilterMapper2 {
2136    CONST_VTBL struct IFilterMapper2Vtbl *lpVtbl;
2137  };
2138#ifdef COBJMACROS
2139#define IFilterMapper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2140#define IFilterMapper2_AddRef(This) (This)->lpVtbl->AddRef(This)
2141#define IFilterMapper2_Release(This) (This)->lpVtbl->Release(This)
2142#define IFilterMapper2_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
2143#define IFilterMapper2_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
2144#define IFilterMapper2_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
2145#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)
2146#endif
2147#endif
2148  HRESULT WINAPI IFilterMapper2_CreateCategory_Proxy(IFilterMapper2 *This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description);
2149  void __RPC_STUB IFilterMapper2_CreateCategory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2150  HRESULT WINAPI IFilterMapper2_UnregisterFilter_Proxy(IFilterMapper2 *This,const CLSID *pclsidCategory,const OLECHAR *szInstance,REFCLSID Filter);
2151  void __RPC_STUB IFilterMapper2_UnregisterFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2152  HRESULT WINAPI IFilterMapper2_RegisterFilter_Proxy(IFilterMapper2 *This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,const OLECHAR *szInstance,const REGFILTER2 *prf2);
2153  void __RPC_STUB IFilterMapper2_RegisterFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2154  HRESULT WINAPI IFilterMapper2_EnumMatchingFilters_Proxy(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);
2155  void __RPC_STUB IFilterMapper2_EnumMatchingFilters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2156#endif
2157
2158#ifndef __IFilterMapper3_INTERFACE_DEFINED__
2159#define __IFilterMapper3_INTERFACE_DEFINED__
2160  EXTERN_C const IID IID_IFilterMapper3;
2161#if defined(__cplusplus) && !defined(CINTERFACE)
2162  struct IFilterMapper3 : public IFilterMapper2 {
2163  public:
2164    virtual HRESULT WINAPI GetICreateDevEnum(ICreateDevEnum **ppEnum) = 0;
2165  };
2166#else
2167  typedef struct IFilterMapper3Vtbl {
2168    BEGIN_INTERFACE
2169      HRESULT (WINAPI *QueryInterface)(IFilterMapper3 *This,REFIID riid,void **ppvObject);
2170      ULONG (WINAPI *AddRef)(IFilterMapper3 *This);
2171      ULONG (WINAPI *Release)(IFilterMapper3 *This);
2172      HRESULT (WINAPI *CreateCategory)(IFilterMapper3 *This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description);
2173      HRESULT (WINAPI *UnregisterFilter)(IFilterMapper3 *This,const CLSID *pclsidCategory,const OLECHAR *szInstance,REFCLSID Filter);
2174      HRESULT (WINAPI *RegisterFilter)(IFilterMapper3 *This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,const OLECHAR *szInstance,const REGFILTER2 *prf2);
2175      HRESULT (WINAPI *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);
2176      HRESULT (WINAPI *GetICreateDevEnum)(IFilterMapper3 *This,ICreateDevEnum **ppEnum);
2177    END_INTERFACE
2178  } IFilterMapper3Vtbl;
2179  struct IFilterMapper3 {
2180    CONST_VTBL struct IFilterMapper3Vtbl *lpVtbl;
2181  };
2182#ifdef COBJMACROS
2183#define IFilterMapper3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2184#define IFilterMapper3_AddRef(This) (This)->lpVtbl->AddRef(This)
2185#define IFilterMapper3_Release(This) (This)->lpVtbl->Release(This)
2186#define IFilterMapper3_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
2187#define IFilterMapper3_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
2188#define IFilterMapper3_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
2189#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)
2190#define IFilterMapper3_GetICreateDevEnum(This,ppEnum) (This)->lpVtbl->GetICreateDevEnum(This,ppEnum)
2191#endif
2192#endif
2193  HRESULT WINAPI IFilterMapper3_GetICreateDevEnum_Proxy(IFilterMapper3 *This,ICreateDevEnum **ppEnum);
2194  void __RPC_STUB IFilterMapper3_GetICreateDevEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2195#endif
2196
2197  typedef enum tagQualityMessageType {
2198    Famine = 0,Flood = Famine + 1
2199  } QualityMessageType;
2200
2201  typedef struct tagQuality {
2202    QualityMessageType Type;
2203    long Proportion;
2204    REFERENCE_TIME Late;
2205    REFERENCE_TIME TimeStamp;
2206  } Quality;
2207
2208  typedef IQualityControl *PQUALITYCONTROL;
2209
2210  extern RPC_IF_HANDLE __MIDL_itf_strmif_0141_v0_0_c_ifspec;
2211  extern RPC_IF_HANDLE __MIDL_itf_strmif_0141_v0_0_s_ifspec;
2212#ifndef __IQualityControl_INTERFACE_DEFINED__
2213#define __IQualityControl_INTERFACE_DEFINED__
2214  EXTERN_C const IID IID_IQualityControl;
2215#if defined(__cplusplus) && !defined(CINTERFACE)
2216  struct IQualityControl : public IUnknown {
2217  public:
2218    virtual HRESULT WINAPI Notify(IBaseFilter *pSelf,Quality q) = 0;
2219    virtual HRESULT WINAPI SetSink(IQualityControl *piqc) = 0;
2220  };
2221#else
2222  typedef struct IQualityControlVtbl {
2223    BEGIN_INTERFACE
2224      HRESULT (WINAPI *QueryInterface)(IQualityControl *This,REFIID riid,void **ppvObject);
2225      ULONG (WINAPI *AddRef)(IQualityControl *This);
2226      ULONG (WINAPI *Release)(IQualityControl *This);
2227      HRESULT (WINAPI *Notify)(IQualityControl *This,IBaseFilter *pSelf,Quality q);
2228      HRESULT (WINAPI *SetSink)(IQualityControl *This,IQualityControl *piqc);
2229    END_INTERFACE
2230  } IQualityControlVtbl;
2231  struct IQualityControl {
2232    CONST_VTBL struct IQualityControlVtbl *lpVtbl;
2233  };
2234#ifdef COBJMACROS
2235#define IQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2236#define IQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
2237#define IQualityControl_Release(This) (This)->lpVtbl->Release(This)
2238#define IQualityControl_Notify(This,pSelf,q) (This)->lpVtbl->Notify(This,pSelf,q)
2239#define IQualityControl_SetSink(This,piqc) (This)->lpVtbl->SetSink(This,piqc)
2240#endif
2241#endif
2242  HRESULT WINAPI IQualityControl_Notify_Proxy(IQualityControl *This,IBaseFilter *pSelf,Quality q);
2243  void __RPC_STUB IQualityControl_Notify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2244  HRESULT WINAPI IQualityControl_SetSink_Proxy(IQualityControl *This,IQualityControl *piqc);
2245  void __RPC_STUB IQualityControl_SetSink_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2246#endif
2247
2248  enum __MIDL___MIDL_itf_strmif_0142_0001 {
2249    CK_NOCOLORKEY = 0,CK_INDEX = 0x1,CK_RGB = 0x2
2250  };
2251  typedef struct tagCOLORKEY {
2252    DWORD KeyType;
2253    DWORD PaletteIndex;
2254    COLORREF LowColorValue;
2255    COLORREF HighColorValue;
2256  } COLORKEY;
2257
2258  enum __MIDL___MIDL_itf_strmif_0142_0002 {
2259    ADVISE_NONE = 0,ADVISE_CLIPPING = 0x1,ADVISE_PALETTE = 0x2,ADVISE_COLORKEY = 0x4,ADVISE_POSITION = 0x8,ADVISE_DISPLAY_CHANGE = 0x10
2260  };
2261#define ADVISE_ALL (ADVISE_CLIPPING | ADVISE_PALETTE | ADVISE_COLORKEY | ADVISE_POSITION)
2262#define ADVISE_ALL2 (ADVISE_ALL | ADVISE_DISPLAY_CHANGE)
2263
2264#ifndef _WINGDI_
2265  typedef struct _RGNDATAHEADER {
2266    DWORD dwSize;
2267    DWORD iType;
2268    DWORD nCount;
2269    DWORD nRgnSize;
2270    RECT rcBound;
2271  } RGNDATAHEADER;
2272
2273  typedef struct _RGNDATA {
2274    RGNDATAHEADER rdh;
2275    char Buffer[1];
2276  } RGNDATA;
2277#endif
2278
2279  extern RPC_IF_HANDLE __MIDL_itf_strmif_0142_v0_0_c_ifspec;
2280  extern RPC_IF_HANDLE __MIDL_itf_strmif_0142_v0_0_s_ifspec;
2281#ifndef __IOverlayNotify_INTERFACE_DEFINED__
2282#define __IOverlayNotify_INTERFACE_DEFINED__
2283  EXTERN_C const IID IID_IOverlayNotify;
2284#if defined(__cplusplus) && !defined(CINTERFACE)
2285  struct IOverlayNotify : public IUnknown {
2286  public:
2287    virtual HRESULT WINAPI OnPaletteChange(DWORD dwColors,const PALETTEENTRY *pPalette) = 0;
2288    virtual HRESULT WINAPI OnClipChange(const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) = 0;
2289    virtual HRESULT WINAPI OnColorKeyChange(const COLORKEY *pColorKey) = 0;
2290    virtual HRESULT WINAPI OnPositionChange(const RECT *pSourceRect,const RECT *pDestinationRect) = 0;
2291  };
2292#else
2293  typedef struct IOverlayNotifyVtbl {
2294    BEGIN_INTERFACE
2295      HRESULT (WINAPI *QueryInterface)(IOverlayNotify *This,REFIID riid,void **ppvObject);
2296      ULONG (WINAPI *AddRef)(IOverlayNotify *This);
2297      ULONG (WINAPI *Release)(IOverlayNotify *This);
2298      HRESULT (WINAPI *OnPaletteChange)(IOverlayNotify *This,DWORD dwColors,const PALETTEENTRY *pPalette);
2299      HRESULT (WINAPI *OnClipChange)(IOverlayNotify *This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData);
2300      HRESULT (WINAPI *OnColorKeyChange)(IOverlayNotify *This,const COLORKEY *pColorKey);
2301      HRESULT (WINAPI *OnPositionChange)(IOverlayNotify *This,const RECT *pSourceRect,const RECT *pDestinationRect);
2302    END_INTERFACE
2303  } IOverlayNotifyVtbl;
2304  struct IOverlayNotify {
2305    CONST_VTBL struct IOverlayNotifyVtbl *lpVtbl;
2306  };
2307#ifdef COBJMACROS
2308#define IOverlayNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2309#define IOverlayNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
2310#define IOverlayNotify_Release(This) (This)->lpVtbl->Release(This)
2311#define IOverlayNotify_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
2312#define IOverlayNotify_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
2313#define IOverlayNotify_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
2314#define IOverlayNotify_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
2315#endif
2316#endif
2317  HRESULT WINAPI IOverlayNotify_OnPaletteChange_Proxy(IOverlayNotify *This,DWORD dwColors,const PALETTEENTRY *pPalette);
2318  void __RPC_STUB IOverlayNotify_OnPaletteChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2319  HRESULT WINAPI IOverlayNotify_OnClipChange_Proxy(IOverlayNotify *This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData);
2320  void __RPC_STUB IOverlayNotify_OnClipChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2321  HRESULT WINAPI IOverlayNotify_OnColorKeyChange_Proxy(IOverlayNotify *This,const COLORKEY *pColorKey);
2322  void __RPC_STUB IOverlayNotify_OnColorKeyChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2323  HRESULT WINAPI IOverlayNotify_OnPositionChange_Proxy(IOverlayNotify *This,const RECT *pSourceRect,const RECT *pDestinationRect);
2324  void __RPC_STUB IOverlayNotify_OnPositionChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2325#endif
2326
2327  typedef IOverlayNotify *POVERLAYNOTIFY;
2328
2329  extern RPC_IF_HANDLE __MIDL_itf_strmif_0143_v0_0_c_ifspec;
2330  extern RPC_IF_HANDLE __MIDL_itf_strmif_0143_v0_0_s_ifspec;
2331#ifndef __IOverlayNotify2_INTERFACE_DEFINED__
2332#define __IOverlayNotify2_INTERFACE_DEFINED__
2333  EXTERN_C const IID IID_IOverlayNotify2;
2334#if defined(__cplusplus) && !defined(CINTERFACE)
2335  struct IOverlayNotify2 : public IOverlayNotify {
2336  public:
2337    virtual HRESULT WINAPI OnDisplayChange(HMONITOR hMonitor) = 0;
2338  };
2339#else
2340  typedef struct IOverlayNotify2Vtbl {
2341    BEGIN_INTERFACE
2342      HRESULT (WINAPI *QueryInterface)(IOverlayNotify2 *This,REFIID riid,void **ppvObject);
2343      ULONG (WINAPI *AddRef)(IOverlayNotify2 *This);
2344      ULONG (WINAPI *Release)(IOverlayNotify2 *This);
2345      HRESULT (WINAPI *OnPaletteChange)(IOverlayNotify2 *This,DWORD dwColors,const PALETTEENTRY *pPalette);
2346      HRESULT (WINAPI *OnClipChange)(IOverlayNotify2 *This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData);
2347      HRESULT (WINAPI *OnColorKeyChange)(IOverlayNotify2 *This,const COLORKEY *pColorKey);
2348      HRESULT (WINAPI *OnPositionChange)(IOverlayNotify2 *This,const RECT *pSourceRect,const RECT *pDestinationRect);
2349      HRESULT (WINAPI *OnDisplayChange)(IOverlayNotify2 *This,HMONITOR hMonitor);
2350    END_INTERFACE
2351  } IOverlayNotify2Vtbl;
2352  struct IOverlayNotify2 {
2353    CONST_VTBL struct IOverlayNotify2Vtbl *lpVtbl;
2354  };
2355#ifdef COBJMACROS
2356#define IOverlayNotify2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2357#define IOverlayNotify2_AddRef(This) (This)->lpVtbl->AddRef(This)
2358#define IOverlayNotify2_Release(This) (This)->lpVtbl->Release(This)
2359#define IOverlayNotify2_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
2360#define IOverlayNotify2_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
2361#define IOverlayNotify2_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
2362#define IOverlayNotify2_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
2363#define IOverlayNotify2_OnDisplayChange(This,hMonitor) (This)->lpVtbl->OnDisplayChange(This,hMonitor)
2364#endif
2365#endif
2366  HRESULT WINAPI IOverlayNotify2_OnDisplayChange_Proxy(IOverlayNotify2 *This,HMONITOR hMonitor);
2367  void __RPC_STUB IOverlayNotify2_OnDisplayChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2368#endif
2369
2370  typedef IOverlayNotify2 *POVERLAYNOTIFY2;
2371
2372  extern RPC_IF_HANDLE __MIDL_itf_strmif_0144_v0_0_c_ifspec;
2373  extern RPC_IF_HANDLE __MIDL_itf_strmif_0144_v0_0_s_ifspec;
2374#ifndef __IOverlay_INTERFACE_DEFINED__
2375#define __IOverlay_INTERFACE_DEFINED__
2376  EXTERN_C const IID IID_IOverlay;
2377#if defined(__cplusplus) && !defined(CINTERFACE)
2378  struct IOverlay : public IUnknown {
2379  public:
2380    virtual HRESULT WINAPI GetPalette(DWORD *pdwColors,PALETTEENTRY **ppPalette) = 0;
2381    virtual HRESULT WINAPI SetPalette(DWORD dwColors,PALETTEENTRY *pPalette) = 0;
2382    virtual HRESULT WINAPI GetDefaultColorKey(COLORKEY *pColorKey) = 0;
2383    virtual HRESULT WINAPI GetColorKey(COLORKEY *pColorKey) = 0;
2384    virtual HRESULT WINAPI SetColorKey(COLORKEY *pColorKey) = 0;
2385    virtual HRESULT WINAPI GetWindowHandle(HWND *pHwnd) = 0;
2386    virtual HRESULT WINAPI GetClipList(RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData) = 0;
2387    virtual HRESULT WINAPI GetVideoPosition(RECT *pSourceRect,RECT *pDestinationRect) = 0;
2388    virtual HRESULT WINAPI Advise(IOverlayNotify *pOverlayNotify,DWORD dwInterests) = 0;
2389    virtual HRESULT WINAPI Unadvise(void) = 0;
2390  };
2391#else
2392  typedef struct IOverlayVtbl {
2393    BEGIN_INTERFACE
2394      HRESULT (WINAPI *QueryInterface)(IOverlay *This,REFIID riid,void **ppvObject);
2395      ULONG (WINAPI *AddRef)(IOverlay *This);
2396      ULONG (WINAPI *Release)(IOverlay *This);
2397      HRESULT (WINAPI *GetPalette)(IOverlay *This,DWORD *pdwColors,PALETTEENTRY **ppPalette);
2398      HRESULT (WINAPI *SetPalette)(IOverlay *This,DWORD dwColors,PALETTEENTRY *pPalette);
2399      HRESULT (WINAPI *GetDefaultColorKey)(IOverlay *This,COLORKEY *pColorKey);
2400      HRESULT (WINAPI *GetColorKey)(IOverlay *This,COLORKEY *pColorKey);
2401      HRESULT (WINAPI *SetColorKey)(IOverlay *This,COLORKEY *pColorKey);
2402      HRESULT (WINAPI *GetWindowHandle)(IOverlay *This,HWND *pHwnd);
2403      HRESULT (WINAPI *GetClipList)(IOverlay *This,RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData);
2404      HRESULT (WINAPI *GetVideoPosition)(IOverlay *This,RECT *pSourceRect,RECT *pDestinationRect);
2405      HRESULT (WINAPI *Advise)(IOverlay *This,IOverlayNotify *pOverlayNotify,DWORD dwInterests);
2406      HRESULT (WINAPI *Unadvise)(IOverlay *This);
2407    END_INTERFACE
2408  } IOverlayVtbl;
2409  struct IOverlay {
2410    CONST_VTBL struct IOverlayVtbl *lpVtbl;
2411  };
2412#ifdef COBJMACROS
2413#define IOverlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2414#define IOverlay_AddRef(This) (This)->lpVtbl->AddRef(This)
2415#define IOverlay_Release(This) (This)->lpVtbl->Release(This)
2416#define IOverlay_GetPalette(This,pdwColors,ppPalette) (This)->lpVtbl->GetPalette(This,pdwColors,ppPalette)
2417#define IOverlay_SetPalette(This,dwColors,pPalette) (This)->lpVtbl->SetPalette(This,dwColors,pPalette)
2418#define IOverlay_GetDefaultColorKey(This,pColorKey) (This)->lpVtbl->GetDefaultColorKey(This,pColorKey)
2419#define IOverlay_GetColorKey(This,pColorKey) (This)->lpVtbl->GetColorKey(This,pColorKey)
2420#define IOverlay_SetColorKey(This,pColorKey) (This)->lpVtbl->SetColorKey(This,pColorKey)
2421#define IOverlay_GetWindowHandle(This,pHwnd) (This)->lpVtbl->GetWindowHandle(This,pHwnd)
2422#define IOverlay_GetClipList(This,pSourceRect,pDestinationRect,ppRgnData) (This)->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData)
2423#define IOverlay_GetVideoPosition(This,pSourceRect,pDestinationRect) (This)->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect)
2424#define IOverlay_Advise(This,pOverlayNotify,dwInterests) (This)->lpVtbl->Advise(This,pOverlayNotify,dwInterests)
2425#define IOverlay_Unadvise(This) (This)->lpVtbl->Unadvise(This)
2426#endif
2427#endif
2428  HRESULT WINAPI IOverlay_GetPalette_Proxy(IOverlay *This,DWORD *pdwColors,PALETTEENTRY **ppPalette);
2429  void __RPC_STUB IOverlay_GetPalette_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2430  HRESULT WINAPI IOverlay_SetPalette_Proxy(IOverlay *This,DWORD dwColors,PALETTEENTRY *pPalette);
2431  void __RPC_STUB IOverlay_SetPalette_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2432  HRESULT WINAPI IOverlay_GetDefaultColorKey_Proxy(IOverlay *This,COLORKEY *pColorKey);
2433  void __RPC_STUB IOverlay_GetDefaultColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2434  HRESULT WINAPI IOverlay_GetColorKey_Proxy(IOverlay *This,COLORKEY *pColorKey);
2435  void __RPC_STUB IOverlay_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2436  HRESULT WINAPI IOverlay_SetColorKey_Proxy(IOverlay *This,COLORKEY *pColorKey);
2437  void __RPC_STUB IOverlay_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2438  HRESULT WINAPI IOverlay_GetWindowHandle_Proxy(IOverlay *This,HWND *pHwnd);
2439  void __RPC_STUB IOverlay_GetWindowHandle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2440  HRESULT WINAPI IOverlay_GetClipList_Proxy(IOverlay *This,RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData);
2441  void __RPC_STUB IOverlay_GetClipList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2442  HRESULT WINAPI IOverlay_GetVideoPosition_Proxy(IOverlay *This,RECT *pSourceRect,RECT *pDestinationRect);
2443  void __RPC_STUB IOverlay_GetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2444  HRESULT WINAPI IOverlay_Advise_Proxy(IOverlay *This,IOverlayNotify *pOverlayNotify,DWORD dwInterests);
2445  void __RPC_STUB IOverlay_Advise_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2446  HRESULT WINAPI IOverlay_Unadvise_Proxy(IOverlay *This);
2447  void __RPC_STUB IOverlay_Unadvise_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2448#endif
2449
2450  typedef IOverlay *POVERLAY;
2451
2452  extern RPC_IF_HANDLE __MIDL_itf_strmif_0145_v0_0_c_ifspec;
2453  extern RPC_IF_HANDLE __MIDL_itf_strmif_0145_v0_0_s_ifspec;
2454#ifndef __IMediaEventSink_INTERFACE_DEFINED__
2455#define __IMediaEventSink_INTERFACE_DEFINED__
2456  EXTERN_C const IID IID_IMediaEventSink;
2457#if defined(__cplusplus) && !defined(CINTERFACE)
2458  struct IMediaEventSink : public IUnknown {
2459  public:
2460    virtual HRESULT WINAPI Notify(long EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2) = 0;
2461  };
2462#else
2463  typedef struct IMediaEventSinkVtbl {
2464    BEGIN_INTERFACE
2465      HRESULT (WINAPI *QueryInterface)(IMediaEventSink *This,REFIID riid,void **ppvObject);
2466      ULONG (WINAPI *AddRef)(IMediaEventSink *This);
2467      ULONG (WINAPI *Release)(IMediaEventSink *This);
2468      HRESULT (WINAPI *Notify)(IMediaEventSink *This,long EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2);
2469    END_INTERFACE
2470  } IMediaEventSinkVtbl;
2471  struct IMediaEventSink {
2472    CONST_VTBL struct IMediaEventSinkVtbl *lpVtbl;
2473  };
2474#ifdef COBJMACROS
2475#define IMediaEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2476#define IMediaEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
2477#define IMediaEventSink_Release(This) (This)->lpVtbl->Release(This)
2478#define IMediaEventSink_Notify(This,EventCode,EventParam1,EventParam2) (This)->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2)
2479#endif
2480#endif
2481  HRESULT WINAPI IMediaEventSink_Notify_Proxy(IMediaEventSink *This,long EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2);
2482  void __RPC_STUB IMediaEventSink_Notify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2483#endif
2484
2485  typedef IMediaEventSink *PMEDIAEVENTSINK;
2486
2487  extern RPC_IF_HANDLE __MIDL_itf_strmif_0146_v0_0_c_ifspec;
2488  extern RPC_IF_HANDLE __MIDL_itf_strmif_0146_v0_0_s_ifspec;
2489#ifndef __IFileSourceFilter_INTERFACE_DEFINED__
2490#define __IFileSourceFilter_INTERFACE_DEFINED__
2491  EXTERN_C const IID IID_IFileSourceFilter;
2492#if defined(__cplusplus) && !defined(CINTERFACE)
2493  struct IFileSourceFilter : public IUnknown {
2494  public:
2495    virtual HRESULT WINAPI Load(LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) = 0;
2496    virtual HRESULT WINAPI GetCurFile(LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) = 0;
2497  };
2498#else
2499  typedef struct IFileSourceFilterVtbl {
2500    BEGIN_INTERFACE
2501      HRESULT (WINAPI *QueryInterface)(IFileSourceFilter *This,REFIID riid,void **ppvObject);
2502      ULONG (WINAPI *AddRef)(IFileSourceFilter *This);
2503      ULONG (WINAPI *Release)(IFileSourceFilter *This);
2504      HRESULT (WINAPI *Load)(IFileSourceFilter *This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt);
2505      HRESULT (WINAPI *GetCurFile)(IFileSourceFilter *This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt);
2506    END_INTERFACE
2507  } IFileSourceFilterVtbl;
2508  struct IFileSourceFilter {
2509    CONST_VTBL struct IFileSourceFilterVtbl *lpVtbl;
2510  };
2511#ifdef COBJMACROS
2512#define IFileSourceFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2513#define IFileSourceFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
2514#define IFileSourceFilter_Release(This) (This)->lpVtbl->Release(This)
2515#define IFileSourceFilter_Load(This,pszFileName,pmt) (This)->lpVtbl->Load(This,pszFileName,pmt)
2516#define IFileSourceFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
2517#endif
2518#endif
2519  HRESULT WINAPI IFileSourceFilter_Load_Proxy(IFileSourceFilter *This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt);
2520  void __RPC_STUB IFileSourceFilter_Load_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2521  HRESULT WINAPI IFileSourceFilter_GetCurFile_Proxy(IFileSourceFilter *This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt);
2522  void __RPC_STUB IFileSourceFilter_GetCurFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2523#endif
2524
2525  typedef IFileSourceFilter *PFILTERFILESOURCE;
2526
2527  extern RPC_IF_HANDLE __MIDL_itf_strmif_0147_v0_0_c_ifspec;
2528  extern RPC_IF_HANDLE __MIDL_itf_strmif_0147_v0_0_s_ifspec;
2529#ifndef __IFileSinkFilter_INTERFACE_DEFINED__
2530#define __IFileSinkFilter_INTERFACE_DEFINED__
2531  EXTERN_C const IID IID_IFileSinkFilter;
2532#if defined(__cplusplus) && !defined(CINTERFACE)
2533  struct IFileSinkFilter : public IUnknown {
2534  public:
2535    virtual HRESULT WINAPI SetFileName(LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) = 0;
2536    virtual HRESULT WINAPI GetCurFile(LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) = 0;
2537  };
2538#else
2539  typedef struct IFileSinkFilterVtbl {
2540    BEGIN_INTERFACE
2541      HRESULT (WINAPI *QueryInterface)(IFileSinkFilter *This,REFIID riid,void **ppvObject);
2542      ULONG (WINAPI *AddRef)(IFileSinkFilter *This);
2543      ULONG (WINAPI *Release)(IFileSinkFilter *This);
2544      HRESULT (WINAPI *SetFileName)(IFileSinkFilter *This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt);
2545      HRESULT (WINAPI *GetCurFile)(IFileSinkFilter *This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt);
2546    END_INTERFACE
2547  } IFileSinkFilterVtbl;
2548  struct IFileSinkFilter {
2549    CONST_VTBL struct IFileSinkFilterVtbl *lpVtbl;
2550  };
2551#ifdef COBJMACROS
2552#define IFileSinkFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2553#define IFileSinkFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
2554#define IFileSinkFilter_Release(This) (This)->lpVtbl->Release(This)
2555#define IFileSinkFilter_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
2556#define IFileSinkFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
2557#endif
2558#endif
2559  HRESULT WINAPI IFileSinkFilter_SetFileName_Proxy(IFileSinkFilter *This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt);
2560  void __RPC_STUB IFileSinkFilter_SetFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2561  HRESULT WINAPI IFileSinkFilter_GetCurFile_Proxy(IFileSinkFilter *This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt);
2562  void __RPC_STUB IFileSinkFilter_GetCurFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2563#endif
2564
2565  typedef IFileSinkFilter *PFILTERFILESINK;
2566
2567  extern RPC_IF_HANDLE __MIDL_itf_strmif_0148_v0_0_c_ifspec;
2568  extern RPC_IF_HANDLE __MIDL_itf_strmif_0148_v0_0_s_ifspec;
2569#ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
2570#define __IFileSinkFilter2_INTERFACE_DEFINED__
2571  EXTERN_C const IID IID_IFileSinkFilter2;
2572#if defined(__cplusplus) && !defined(CINTERFACE)
2573  struct IFileSinkFilter2 : public IFileSinkFilter {
2574  public:
2575    virtual HRESULT WINAPI SetMode(DWORD dwFlags) = 0;
2576    virtual HRESULT WINAPI GetMode(DWORD *pdwFlags) = 0;
2577  };
2578#else
2579  typedef struct IFileSinkFilter2Vtbl {
2580    BEGIN_INTERFACE
2581      HRESULT (WINAPI *QueryInterface)(IFileSinkFilter2 *This,REFIID riid,void **ppvObject);
2582      ULONG (WINAPI *AddRef)(IFileSinkFilter2 *This);
2583      ULONG (WINAPI *Release)(IFileSinkFilter2 *This);
2584      HRESULT (WINAPI *SetFileName)(IFileSinkFilter2 *This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt);
2585      HRESULT (WINAPI *GetCurFile)(IFileSinkFilter2 *This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt);
2586      HRESULT (WINAPI *SetMode)(IFileSinkFilter2 *This,DWORD dwFlags);
2587      HRESULT (WINAPI *GetMode)(IFileSinkFilter2 *This,DWORD *pdwFlags);
2588    END_INTERFACE
2589  } IFileSinkFilter2Vtbl;
2590  struct IFileSinkFilter2 {
2591    CONST_VTBL struct IFileSinkFilter2Vtbl *lpVtbl;
2592  };
2593#ifdef COBJMACROS
2594#define IFileSinkFilter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2595#define IFileSinkFilter2_AddRef(This) (This)->lpVtbl->AddRef(This)
2596#define IFileSinkFilter2_Release(This) (This)->lpVtbl->Release(This)
2597#define IFileSinkFilter2_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
2598#define IFileSinkFilter2_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
2599#define IFileSinkFilter2_SetMode(This,dwFlags) (This)->lpVtbl->SetMode(This,dwFlags)
2600#define IFileSinkFilter2_GetMode(This,pdwFlags) (This)->lpVtbl->GetMode(This,pdwFlags)
2601#endif
2602#endif
2603  HRESULT WINAPI IFileSinkFilter2_SetMode_Proxy(IFileSinkFilter2 *This,DWORD dwFlags);
2604  void __RPC_STUB IFileSinkFilter2_SetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2605  HRESULT WINAPI IFileSinkFilter2_GetMode_Proxy(IFileSinkFilter2 *This,DWORD *pdwFlags);
2606  void __RPC_STUB IFileSinkFilter2_GetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2607#endif
2608
2609  typedef IFileSinkFilter2 *PFILESINKFILTER2;
2610
2611  typedef enum __MIDL___MIDL_itf_strmif_0149_0001 {
2612    AM_FILE_OVERWRITE = 0x1
2613  } AM_FILESINK_FLAGS;
2614
2615  extern RPC_IF_HANDLE __MIDL_itf_strmif_0149_v0_0_c_ifspec;
2616  extern RPC_IF_HANDLE __MIDL_itf_strmif_0149_v0_0_s_ifspec;
2617#ifndef __IGraphBuilder_INTERFACE_DEFINED__
2618#define __IGraphBuilder_INTERFACE_DEFINED__
2619  EXTERN_C const IID IID_IGraphBuilder;
2620#if defined(__cplusplus) && !defined(CINTERFACE)
2621  struct IGraphBuilder : public IFilterGraph {
2622  public:
2623    virtual HRESULT WINAPI Connect(IPin *ppinOut,IPin *ppinIn) = 0;
2624    virtual HRESULT WINAPI Render(IPin *ppinOut) = 0;
2625    virtual HRESULT WINAPI RenderFile(LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) = 0;
2626    virtual HRESULT WINAPI AddSourceFilter(LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) = 0;
2627    virtual HRESULT WINAPI SetLogFile(DWORD_PTR hFile) = 0;
2628    virtual HRESULT WINAPI Abort(void) = 0;
2629    virtual HRESULT WINAPI ShouldOperationContinue(void) = 0;
2630  };
2631#else
2632  typedef struct IGraphBuilderVtbl {
2633    BEGIN_INTERFACE
2634      HRESULT (WINAPI *QueryInterface)(IGraphBuilder *This,REFIID riid,void **ppvObject);
2635      ULONG (WINAPI *AddRef)(IGraphBuilder *This);
2636      ULONG (WINAPI *Release)(IGraphBuilder *This);
2637      HRESULT (WINAPI *AddFilter)(IGraphBuilder *This,IBaseFilter *pFilter,LPCWSTR pName);
2638      HRESULT (WINAPI *RemoveFilter)(IGraphBuilder *This,IBaseFilter *pFilter);
2639      HRESULT (WINAPI *EnumFilters)(IGraphBuilder *This,IEnumFilters **ppEnum);
2640      HRESULT (WINAPI *FindFilterByName)(IGraphBuilder *This,LPCWSTR pName,IBaseFilter **ppFilter);
2641      HRESULT (WINAPI *ConnectDirect)(IGraphBuilder *This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt);
2642      HRESULT (WINAPI *Reconnect)(IGraphBuilder *This,IPin *ppin);
2643      HRESULT (WINAPI *Disconnect)(IGraphBuilder *This,IPin *ppin);
2644      HRESULT (WINAPI *SetDefaultSyncSource)(IGraphBuilder *This);
2645      HRESULT (WINAPI *Connect)(IGraphBuilder *This,IPin *ppinOut,IPin *ppinIn);
2646      HRESULT (WINAPI *Render)(IGraphBuilder *This,IPin *ppinOut);
2647      HRESULT (WINAPI *RenderFile)(IGraphBuilder *This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList);
2648      HRESULT (WINAPI *AddSourceFilter)(IGraphBuilder *This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter);
2649      HRESULT (WINAPI *SetLogFile)(IGraphBuilder *This,DWORD_PTR hFile);
2650      HRESULT (WINAPI *Abort)(IGraphBuilder *This);
2651      HRESULT (WINAPI *ShouldOperationContinue)(IGraphBuilder *This);
2652    END_INTERFACE
2653  } IGraphBuilderVtbl;
2654  struct IGraphBuilder {
2655    CONST_VTBL struct IGraphBuilderVtbl *lpVtbl;
2656  };
2657#ifdef COBJMACROS
2658#define IGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2659#define IGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
2660#define IGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
2661#define IGraphBuilder_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
2662#define IGraphBuilder_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
2663#define IGraphBuilder_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
2664#define IGraphBuilder_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
2665#define IGraphBuilder_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
2666#define IGraphBuilder_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
2667#define IGraphBuilder_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
2668#define IGraphBuilder_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
2669#define IGraphBuilder_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
2670#define IGraphBuilder_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
2671#define IGraphBuilder_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
2672#define IGraphBuilder_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
2673#define IGraphBuilder_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
2674#define IGraphBuilder_Abort(This) (This)->lpVtbl->Abort(This)
2675#define IGraphBuilder_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
2676#endif
2677#endif
2678  HRESULT WINAPI IGraphBuilder_Connect_Proxy(IGraphBuilder *This,IPin *ppinOut,IPin *ppinIn);
2679  void __RPC_STUB IGraphBuilder_Connect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2680  HRESULT WINAPI IGraphBuilder_Render_Proxy(IGraphBuilder *This,IPin *ppinOut);
2681  void __RPC_STUB IGraphBuilder_Render_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2682  HRESULT WINAPI IGraphBuilder_RenderFile_Proxy(IGraphBuilder *This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList);
2683  void __RPC_STUB IGraphBuilder_RenderFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2684  HRESULT WINAPI IGraphBuilder_AddSourceFilter_Proxy(IGraphBuilder *This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter);
2685  void __RPC_STUB IGraphBuilder_AddSourceFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2686  HRESULT WINAPI IGraphBuilder_SetLogFile_Proxy(IGraphBuilder *This,DWORD_PTR hFile);
2687  void __RPC_STUB IGraphBuilder_SetLogFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2688  HRESULT WINAPI IGraphBuilder_Abort_Proxy(IGraphBuilder *This);
2689  void __RPC_STUB IGraphBuilder_Abort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2690  HRESULT WINAPI IGraphBuilder_ShouldOperationContinue_Proxy(IGraphBuilder *This);
2691  void __RPC_STUB IGraphBuilder_ShouldOperationContinue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2692#endif
2693
2694#ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__
2695#define __ICaptureGraphBuilder_INTERFACE_DEFINED__
2696  EXTERN_C const IID IID_ICaptureGraphBuilder;
2697#if defined(__cplusplus) && !defined(CINTERFACE)
2698  struct ICaptureGraphBuilder : public IUnknown {
2699  public:
2700    virtual HRESULT WINAPI SetFiltergraph(IGraphBuilder *pfg) = 0;
2701    virtual HRESULT WINAPI GetFiltergraph(IGraphBuilder **ppfg) = 0;
2702    virtual HRESULT WINAPI SetOutputFileName(const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) = 0;
2703    virtual HRESULT WINAPI FindInterface(const GUID *pCategory,IBaseFilter *pf,REFIID riid,void **ppint) = 0;
2704    virtual HRESULT WINAPI RenderStream(const GUID *pCategory,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) = 0;
2705    virtual HRESULT WINAPI ControlStream(const GUID *pCategory,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) = 0;
2706    virtual HRESULT WINAPI AllocCapFile(LPCOLESTR lpstr,DWORDLONG dwlSize) = 0;
2707    virtual HRESULT WINAPI CopyCaptureFile(LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) = 0;
2708  };
2709#else
2710  typedef struct ICaptureGraphBuilderVtbl {
2711    BEGIN_INTERFACE
2712      HRESULT (WINAPI *QueryInterface)(ICaptureGraphBuilder *This,REFIID riid,void **ppvObject);
2713      ULONG (WINAPI *AddRef)(ICaptureGraphBuilder *This);
2714      ULONG (WINAPI *Release)(ICaptureGraphBuilder *This);
2715      HRESULT (WINAPI *SetFiltergraph)(ICaptureGraphBuilder *This,IGraphBuilder *pfg);
2716      HRESULT (WINAPI *GetFiltergraph)(ICaptureGraphBuilder *This,IGraphBuilder **ppfg);
2717      HRESULT (WINAPI *SetOutputFileName)(ICaptureGraphBuilder *This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink);
2718      HRESULT (WINAPI *FindInterface)(ICaptureGraphBuilder *This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,void **ppint);
2719      HRESULT (WINAPI *RenderStream)(ICaptureGraphBuilder *This,const GUID *pCategory,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer);
2720      HRESULT (WINAPI *ControlStream)(ICaptureGraphBuilder *This,const GUID *pCategory,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie);
2721      HRESULT (WINAPI *AllocCapFile)(ICaptureGraphBuilder *This,LPCOLESTR lpstr,DWORDLONG dwlSize);
2722      HRESULT (WINAPI *CopyCaptureFile)(ICaptureGraphBuilder *This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback);
2723    END_INTERFACE
2724  } ICaptureGraphBuilderVtbl;
2725  struct ICaptureGraphBuilder {
2726    CONST_VTBL struct ICaptureGraphBuilderVtbl *lpVtbl;
2727  };
2728#ifdef COBJMACROS
2729#define ICaptureGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2730#define ICaptureGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
2731#define ICaptureGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
2732#define ICaptureGraphBuilder_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
2733#define ICaptureGraphBuilder_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
2734#define ICaptureGraphBuilder_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
2735#define ICaptureGraphBuilder_FindInterface(This,pCategory,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint)
2736#define ICaptureGraphBuilder_RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer)
2737#define ICaptureGraphBuilder_ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie)
2738#define ICaptureGraphBuilder_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
2739#define ICaptureGraphBuilder_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
2740#endif
2741#endif
2742  HRESULT WINAPI ICaptureGraphBuilder_SetFiltergraph_Proxy(ICaptureGraphBuilder *This,IGraphBuilder *pfg);
2743  void __RPC_STUB ICaptureGraphBuilder_SetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2744  HRESULT WINAPI ICaptureGraphBuilder_GetFiltergraph_Proxy(ICaptureGraphBuilder *This,IGraphBuilder **ppfg);
2745  void __RPC_STUB ICaptureGraphBuilder_GetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2746  HRESULT WINAPI ICaptureGraphBuilder_SetOutputFileName_Proxy(ICaptureGraphBuilder *This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink);
2747  void __RPC_STUB ICaptureGraphBuilder_SetOutputFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2748  HRESULT WINAPI ICaptureGraphBuilder_RemoteFindInterface_Proxy(ICaptureGraphBuilder *This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,IUnknown **ppint);
2749  void __RPC_STUB ICaptureGraphBuilder_RemoteFindInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2750  HRESULT WINAPI ICaptureGraphBuilder_RenderStream_Proxy(ICaptureGraphBuilder *This,const GUID *pCategory,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer);
2751  void __RPC_STUB ICaptureGraphBuilder_RenderStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2752  HRESULT WINAPI ICaptureGraphBuilder_ControlStream_Proxy(ICaptureGraphBuilder *This,const GUID *pCategory,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie);
2753  void __RPC_STUB ICaptureGraphBuilder_ControlStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2754  HRESULT WINAPI ICaptureGraphBuilder_AllocCapFile_Proxy(ICaptureGraphBuilder *This,LPCOLESTR lpstr,DWORDLONG dwlSize);
2755  void __RPC_STUB ICaptureGraphBuilder_AllocCapFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2756  HRESULT WINAPI ICaptureGraphBuilder_CopyCaptureFile_Proxy(ICaptureGraphBuilder *This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback);
2757  void __RPC_STUB ICaptureGraphBuilder_CopyCaptureFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2758#endif
2759
2760#ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
2761#define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
2762  EXTERN_C const IID IID_IAMCopyCaptureFileProgress;
2763#if defined(__cplusplus) && !defined(CINTERFACE)
2764  struct IAMCopyCaptureFileProgress : public IUnknown {
2765  public:
2766    virtual HRESULT WINAPI Progress(int iProgress) = 0;
2767  };
2768#else
2769  typedef struct IAMCopyCaptureFileProgressVtbl {
2770    BEGIN_INTERFACE
2771      HRESULT (WINAPI *QueryInterface)(IAMCopyCaptureFileProgress *This,REFIID riid,void **ppvObject);
2772      ULONG (WINAPI *AddRef)(IAMCopyCaptureFileProgress *This);
2773      ULONG (WINAPI *Release)(IAMCopyCaptureFileProgress *This);
2774      HRESULT (WINAPI *Progress)(IAMCopyCaptureFileProgress *This,int iProgress);
2775    END_INTERFACE
2776  } IAMCopyCaptureFileProgressVtbl;
2777  struct IAMCopyCaptureFileProgress {
2778    CONST_VTBL struct IAMCopyCaptureFileProgressVtbl *lpVtbl;
2779  };
2780#ifdef COBJMACROS
2781#define IAMCopyCaptureFileProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2782#define IAMCopyCaptureFileProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
2783#define IAMCopyCaptureFileProgress_Release(This) (This)->lpVtbl->Release(This)
2784#define IAMCopyCaptureFileProgress_Progress(This,iProgress) (This)->lpVtbl->Progress(This,iProgress)
2785#endif
2786#endif
2787  HRESULT WINAPI IAMCopyCaptureFileProgress_Progress_Proxy(IAMCopyCaptureFileProgress *This,int iProgress);
2788  void __RPC_STUB IAMCopyCaptureFileProgress_Progress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2789#endif
2790
2791#ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
2792#define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
2793  EXTERN_C const IID IID_ICaptureGraphBuilder2;
2794#if defined(__cplusplus) && !defined(CINTERFACE)
2795  struct ICaptureGraphBuilder2 : public IUnknown {
2796  public:
2797    virtual HRESULT WINAPI SetFiltergraph(IGraphBuilder *pfg) = 0;
2798    virtual HRESULT WINAPI GetFiltergraph(IGraphBuilder **ppfg) = 0;
2799    virtual HRESULT WINAPI SetOutputFileName(const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) = 0;
2800    virtual HRESULT WINAPI FindInterface(const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,void **ppint) = 0;
2801    virtual HRESULT WINAPI RenderStream(const GUID *pCategory,const GUID *pType,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) = 0;
2802    virtual HRESULT WINAPI ControlStream(const GUID *pCategory,const GUID *pType,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) = 0;
2803    virtual HRESULT WINAPI AllocCapFile(LPCOLESTR lpstr,DWORDLONG dwlSize) = 0;
2804    virtual HRESULT WINAPI CopyCaptureFile(LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) = 0;
2805    virtual HRESULT WINAPI FindPin(IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,WINBOOL fUnconnected,int num,IPin **ppPin) = 0;
2806  };
2807#else
2808  typedef struct ICaptureGraphBuilder2Vtbl {
2809    BEGIN_INTERFACE
2810      HRESULT (WINAPI *QueryInterface)(ICaptureGraphBuilder2 *This,REFIID riid,void **ppvObject);
2811      ULONG (WINAPI *AddRef)(ICaptureGraphBuilder2 *This);
2812      ULONG (WINAPI *Release)(ICaptureGraphBuilder2 *This);
2813      HRESULT (WINAPI *SetFiltergraph)(ICaptureGraphBuilder2 *This,IGraphBuilder *pfg);
2814      HRESULT (WINAPI *GetFiltergraph)(ICaptureGraphBuilder2 *This,IGraphBuilder **ppfg);
2815      HRESULT (WINAPI *SetOutputFileName)(ICaptureGraphBuilder2 *This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink);
2816      HRESULT (WINAPI *FindInterface)(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,void **ppint);
2817      HRESULT (WINAPI *RenderStream)(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer);
2818      HRESULT (WINAPI *ControlStream)(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie);
2819      HRESULT (WINAPI *AllocCapFile)(ICaptureGraphBuilder2 *This,LPCOLESTR lpstr,DWORDLONG dwlSize);
2820      HRESULT (WINAPI *CopyCaptureFile)(ICaptureGraphBuilder2 *This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback);
2821      HRESULT (WINAPI *FindPin)(ICaptureGraphBuilder2 *This,IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,WINBOOL fUnconnected,int num,IPin **ppPin);
2822    END_INTERFACE
2823  } ICaptureGraphBuilder2Vtbl;
2824  struct ICaptureGraphBuilder2 {
2825    CONST_VTBL struct ICaptureGraphBuilder2Vtbl *lpVtbl;
2826  };
2827#ifdef COBJMACROS
2828#define ICaptureGraphBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2829#define ICaptureGraphBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
2830#define ICaptureGraphBuilder2_Release(This) (This)->lpVtbl->Release(This)
2831#define ICaptureGraphBuilder2_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
2832#define ICaptureGraphBuilder2_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
2833#define ICaptureGraphBuilder2_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
2834#define ICaptureGraphBuilder2_FindInterface(This,pCategory,pType,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint)
2835#define ICaptureGraphBuilder2_RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer)
2836#define ICaptureGraphBuilder2_ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie)
2837#define ICaptureGraphBuilder2_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
2838#define ICaptureGraphBuilder2_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
2839#define ICaptureGraphBuilder2_FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin) (This)->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin)
2840#endif
2841#endif
2842  HRESULT WINAPI ICaptureGraphBuilder2_SetFiltergraph_Proxy(ICaptureGraphBuilder2 *This,IGraphBuilder *pfg);
2843  void __RPC_STUB ICaptureGraphBuilder2_SetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2844  HRESULT WINAPI ICaptureGraphBuilder2_GetFiltergraph_Proxy(ICaptureGraphBuilder2 *This,IGraphBuilder **ppfg);
2845  void __RPC_STUB ICaptureGraphBuilder2_GetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2846  HRESULT WINAPI ICaptureGraphBuilder2_SetOutputFileName_Proxy(ICaptureGraphBuilder2 *This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink);
2847  void __RPC_STUB ICaptureGraphBuilder2_SetOutputFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2848  HRESULT WINAPI ICaptureGraphBuilder2_RemoteFindInterface_Proxy(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,IUnknown **ppint);
2849  void __RPC_STUB ICaptureGraphBuilder2_RemoteFindInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2850  HRESULT WINAPI ICaptureGraphBuilder2_RenderStream_Proxy(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer);
2851  void __RPC_STUB ICaptureGraphBuilder2_RenderStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2852  HRESULT WINAPI ICaptureGraphBuilder2_ControlStream_Proxy(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie);
2853  void __RPC_STUB ICaptureGraphBuilder2_ControlStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2854  HRESULT WINAPI ICaptureGraphBuilder2_AllocCapFile_Proxy(ICaptureGraphBuilder2 *This,LPCOLESTR lpstr,DWORDLONG dwlSize);
2855  void __RPC_STUB ICaptureGraphBuilder2_AllocCapFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2856  HRESULT WINAPI ICaptureGraphBuilder2_CopyCaptureFile_Proxy(ICaptureGraphBuilder2 *This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback);
2857  void __RPC_STUB ICaptureGraphBuilder2_CopyCaptureFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2858  HRESULT WINAPI ICaptureGraphBuilder2_FindPin_Proxy(ICaptureGraphBuilder2 *This,IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,WINBOOL fUnconnected,int num,IPin **ppPin);
2859  void __RPC_STUB ICaptureGraphBuilder2_FindPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2860#endif
2861
2862  enum _AM_RENSDEREXFLAGS {
2863    AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1
2864  };
2865
2866  extern RPC_IF_HANDLE __MIDL_itf_strmif_0153_v0_0_c_ifspec;
2867  extern RPC_IF_HANDLE __MIDL_itf_strmif_0153_v0_0_s_ifspec;
2868#ifndef __IFilterGraph2_INTERFACE_DEFINED__
2869#define __IFilterGraph2_INTERFACE_DEFINED__
2870  EXTERN_C const IID IID_IFilterGraph2;
2871#if defined(__cplusplus) && !defined(CINTERFACE)
2872  struct IFilterGraph2 : public IGraphBuilder {
2873  public:
2874    virtual HRESULT WINAPI AddSourceFilterForMoniker(IMoniker *pMoniker,IBindCtx *pCtx,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) = 0;
2875    virtual HRESULT WINAPI ReconnectEx(IPin *ppin,const AM_MEDIA_TYPE *pmt) = 0;
2876    virtual HRESULT WINAPI RenderEx(IPin *pPinOut,DWORD dwFlags,DWORD *pvContext) = 0;
2877  };
2878#else
2879  typedef struct IFilterGraph2Vtbl {
2880    BEGIN_INTERFACE
2881      HRESULT (WINAPI *QueryInterface)(IFilterGraph2 *This,REFIID riid,void **ppvObject);
2882      ULONG (WINAPI *AddRef)(IFilterGraph2 *This);
2883      ULONG (WINAPI *Release)(IFilterGraph2 *This);
2884      HRESULT (WINAPI *AddFilter)(IFilterGraph2 *This,IBaseFilter *pFilter,LPCWSTR pName);
2885      HRESULT (WINAPI *RemoveFilter)(IFilterGraph2 *This,IBaseFilter *pFilter);
2886      HRESULT (WINAPI *EnumFilters)(IFilterGraph2 *This,IEnumFilters **ppEnum);
2887      HRESULT (WINAPI *FindFilterByName)(IFilterGraph2 *This,LPCWSTR pName,IBaseFilter **ppFilter);
2888      HRESULT (WINAPI *ConnectDirect)(IFilterGraph2 *This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt);
2889      HRESULT (WINAPI *Reconnect)(IFilterGraph2 *This,IPin *ppin);
2890      HRESULT (WINAPI *Disconnect)(IFilterGraph2 *This,IPin *ppin);
2891      HRESULT (WINAPI *SetDefaultSyncSource)(IFilterGraph2 *This);
2892      HRESULT (WINAPI *Connect)(IFilterGraph2 *This,IPin *ppinOut,IPin *ppinIn);
2893      HRESULT (WINAPI *Render)(IFilterGraph2 *This,IPin *ppinOut);
2894      HRESULT (WINAPI *RenderFile)(IFilterGraph2 *This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList);
2895      HRESULT (WINAPI *AddSourceFilter)(IFilterGraph2 *This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter);
2896      HRESULT (WINAPI *SetLogFile)(IFilterGraph2 *This,DWORD_PTR hFile);
2897      HRESULT (WINAPI *Abort)(IFilterGraph2 *This);
2898      HRESULT (WINAPI *ShouldOperationContinue)(IFilterGraph2 *This);
2899      HRESULT (WINAPI *AddSourceFilterForMoniker)(IFilterGraph2 *This,IMoniker *pMoniker,IBindCtx *pCtx,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter);
2900      HRESULT (WINAPI *ReconnectEx)(IFilterGraph2 *This,IPin *ppin,const AM_MEDIA_TYPE *pmt);
2901      HRESULT (WINAPI *RenderEx)(IFilterGraph2 *This,IPin *pPinOut,DWORD dwFlags,DWORD *pvContext);
2902    END_INTERFACE
2903  } IFilterGraph2Vtbl;
2904  struct IFilterGraph2 {
2905    CONST_VTBL struct IFilterGraph2Vtbl *lpVtbl;
2906  };
2907#ifdef COBJMACROS
2908#define IFilterGraph2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2909#define IFilterGraph2_AddRef(This) (This)->lpVtbl->AddRef(This)
2910#define IFilterGraph2_Release(This) (This)->lpVtbl->Release(This)
2911#define IFilterGraph2_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
2912#define IFilterGraph2_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
2913#define IFilterGraph2_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
2914#define IFilterGraph2_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
2915#define IFilterGraph2_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
2916#define IFilterGraph2_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
2917#define IFilterGraph2_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
2918#define IFilterGraph2_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
2919#define IFilterGraph2_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
2920#define IFilterGraph2_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
2921#define IFilterGraph2_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
2922#define IFilterGraph2_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
2923#define IFilterGraph2_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
2924#define IFilterGraph2_Abort(This) (This)->lpVtbl->Abort(This)
2925#define IFilterGraph2_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
2926#define IFilterGraph2_AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter)
2927#define IFilterGraph2_ReconnectEx(This,ppin,pmt) (This)->lpVtbl->ReconnectEx(This,ppin,pmt)
2928#define IFilterGraph2_RenderEx(This,pPinOut,dwFlags,pvContext) (This)->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext)
2929#endif
2930#endif
2931  HRESULT WINAPI IFilterGraph2_AddSourceFilterForMoniker_Proxy(IFilterGraph2 *This,IMoniker *pMoniker,IBindCtx *pCtx,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter);
2932  void __RPC_STUB IFilterGraph2_AddSourceFilterForMoniker_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2933  HRESULT WINAPI IFilterGraph2_ReconnectEx_Proxy(IFilterGraph2 *This,IPin *ppin,const AM_MEDIA_TYPE *pmt);
2934  void __RPC_STUB IFilterGraph2_ReconnectEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2935  HRESULT WINAPI IFilterGraph2_RenderEx_Proxy(IFilterGraph2 *This,IPin *pPinOut,DWORD dwFlags,DWORD *pvContext);
2936  void __RPC_STUB IFilterGraph2_RenderEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2937#endif
2938
2939#ifndef __IStreamBuilder_INTERFACE_DEFINED__
2940#define __IStreamBuilder_INTERFACE_DEFINED__
2941  EXTERN_C const IID IID_IStreamBuilder;
2942#if defined(__cplusplus) && !defined(CINTERFACE)
2943  struct IStreamBuilder : public IUnknown {
2944  public:
2945    virtual HRESULT WINAPI Render(IPin *ppinOut,IGraphBuilder *pGraph) = 0;
2946    virtual HRESULT WINAPI Backout(IPin *ppinOut,IGraphBuilder *pGraph) = 0;
2947  };
2948#else
2949  typedef struct IStreamBuilderVtbl {
2950    BEGIN_INTERFACE
2951      HRESULT (WINAPI *QueryInterface)(IStreamBuilder *This,REFIID riid,void **ppvObject);
2952      ULONG (WINAPI *AddRef)(IStreamBuilder *This);
2953      ULONG (WINAPI *Release)(IStreamBuilder *This);
2954      HRESULT (WINAPI *Render)(IStreamBuilder *This,IPin *ppinOut,IGraphBuilder *pGraph);
2955      HRESULT (WINAPI *Backout)(IStreamBuilder *This,IPin *ppinOut,IGraphBuilder *pGraph);
2956    END_INTERFACE
2957  } IStreamBuilderVtbl;
2958  struct IStreamBuilder {
2959    CONST_VTBL struct IStreamBuilderVtbl *lpVtbl;
2960  };
2961#ifdef COBJMACROS
2962#define IStreamBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2963#define IStreamBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
2964#define IStreamBuilder_Release(This) (This)->lpVtbl->Release(This)
2965#define IStreamBuilder_Render(This,ppinOut,pGraph) (This)->lpVtbl->Render(This,ppinOut,pGraph)
2966#define IStreamBuilder_Backout(This,ppinOut,pGraph) (This)->lpVtbl->Backout(This,ppinOut,pGraph)
2967#endif
2968#endif
2969  HRESULT WINAPI IStreamBuilder_Render_Proxy(IStreamBuilder *This,IPin *ppinOut,IGraphBuilder *pGraph);
2970  void __RPC_STUB IStreamBuilder_Render_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2971  HRESULT WINAPI IStreamBuilder_Backout_Proxy(IStreamBuilder *This,IPin *ppinOut,IGraphBuilder *pGraph);
2972  void __RPC_STUB IStreamBuilder_Backout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2973#endif
2974
2975#ifndef __IAsyncReader_INTERFACE_DEFINED__
2976#define __IAsyncReader_INTERFACE_DEFINED__
2977  EXTERN_C const IID IID_IAsyncReader;
2978#if defined(__cplusplus) && !defined(CINTERFACE)
2979  struct IAsyncReader : public IUnknown {
2980  public:
2981    virtual HRESULT WINAPI RequestAllocator(IMemAllocator *pPreferred,ALLOCATOR_PROPERTIES *pProps,IMemAllocator **ppActual) = 0;
2982    virtual HRESULT WINAPI Request(IMediaSample *pSample,DWORD_PTR dwUser) = 0;
2983    virtual HRESULT WINAPI WaitForNext(DWORD dwTimeout,IMediaSample **ppSample,DWORD_PTR *pdwUser) = 0;
2984    virtual HRESULT WINAPI SyncReadAligned(IMediaSample *pSample) = 0;
2985    virtual HRESULT WINAPI SyncRead(LONGLONG llPosition,LONG lLength,BYTE *pBuffer) = 0;
2986    virtual HRESULT WINAPI Length(LONGLONG *pTotal,LONGLONG *pAvailable) = 0;
2987    virtual HRESULT WINAPI BeginFlush(void) = 0;
2988    virtual HRESULT WINAPI EndFlush(void) = 0;
2989  };
2990#else
2991  typedef struct IAsyncReaderVtbl {
2992    BEGIN_INTERFACE
2993      HRESULT (WINAPI *QueryInterface)(IAsyncReader *This,REFIID riid,void **ppvObject);
2994      ULONG (WINAPI *AddRef)(IAsyncReader *This);
2995      ULONG (WINAPI *Release)(IAsyncReader *This);
2996      HRESULT (WINAPI *RequestAllocator)(IAsyncReader *This,IMemAllocator *pPreferred,ALLOCATOR_PROPERTIES *pProps,IMemAllocator **ppActual);
2997      HRESULT (WINAPI *Request)(IAsyncReader *This,IMediaSample *pSample,DWORD_PTR dwUser);
2998      HRESULT (WINAPI *WaitForNext)(IAsyncReader *This,DWORD dwTimeout,IMediaSample **ppSample,DWORD_PTR *pdwUser);
2999      HRESULT (WINAPI *SyncReadAligned)(IAsyncReader *This,IMediaSample *pSample);
3000      HRESULT (WINAPI *SyncRead)(IAsyncReader *This,LONGLONG llPosition,LONG lLength,BYTE *pBuffer);
3001      HRESULT (WINAPI *Length)(IAsyncReader *This,LONGLONG *pTotal,LONGLONG *pAvailable);
3002      HRESULT (WINAPI *BeginFlush)(IAsyncReader *This);
3003      HRESULT (WINAPI *EndFlush)(IAsyncReader *This);
3004    END_INTERFACE
3005  } IAsyncReaderVtbl;
3006  struct IAsyncReader {
3007    CONST_VTBL struct IAsyncReaderVtbl *lpVtbl;
3008  };
3009#ifdef COBJMACROS
3010#define IAsyncReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3011#define IAsyncReader_AddRef(This) (This)->lpVtbl->AddRef(This)
3012#define IAsyncReader_Release(This) (This)->lpVtbl->Release(This)
3013#define IAsyncReader_RequestAllocator(This,pPreferred,pProps,ppActual) (This)->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual)
3014#define IAsyncReader_Request(This,pSample,dwUser) (This)->lpVtbl->Request(This,pSample,dwUser)
3015#define IAsyncReader_WaitForNext(This,dwTimeout,ppSample,pdwUser) (This)->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser)
3016#define IAsyncReader_SyncReadAligned(This,pSample) (This)->lpVtbl->SyncReadAligned(This,pSample)
3017#define IAsyncReader_SyncRead(This,llPosition,lLength,pBuffer) (This)->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer)
3018#define IAsyncReader_Length(This,pTotal,pAvailable) (This)->lpVtbl->Length(This,pTotal,pAvailable)
3019#define IAsyncReader_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
3020#define IAsyncReader_EndFlush(This) (This)->lpVtbl->EndFlush(This)
3021#endif
3022#endif
3023  HRESULT WINAPI IAsyncReader_RequestAllocator_Proxy(IAsyncReader *This,IMemAllocator *pPreferred,ALLOCATOR_PROPERTIES *pProps,IMemAllocator **ppActual);
3024  void __RPC_STUB IAsyncReader_RequestAllocator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3025  HRESULT WINAPI IAsyncReader_Request_Proxy(IAsyncReader *This,IMediaSample *pSample,DWORD_PTR dwUser);
3026  void __RPC_STUB IAsyncReader_Request_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3027  HRESULT WINAPI IAsyncReader_WaitForNext_Proxy(IAsyncReader *This,DWORD dwTimeout,IMediaSample **ppSample,DWORD_PTR *pdwUser);
3028  void __RPC_STUB IAsyncReader_WaitForNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3029  HRESULT WINAPI IAsyncReader_SyncReadAligned_Proxy(IAsyncReader *This,IMediaSample *pSample);
3030  void __RPC_STUB IAsyncReader_SyncReadAligned_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3031  HRESULT WINAPI IAsyncReader_SyncRead_Proxy(IAsyncReader *This,LONGLONG llPosition,LONG lLength,BYTE *pBuffer);
3032  void __RPC_STUB IAsyncReader_SyncRead_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3033  HRESULT WINAPI IAsyncReader_Length_Proxy(IAsyncReader *This,LONGLONG *pTotal,LONGLONG *pAvailable);
3034  void __RPC_STUB IAsyncReader_Length_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3035  HRESULT WINAPI IAsyncReader_BeginFlush_Proxy(IAsyncReader *This);
3036  void __RPC_STUB IAsyncReader_BeginFlush_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3037  HRESULT WINAPI IAsyncReader_EndFlush_Proxy(IAsyncReader *This);
3038  void __RPC_STUB IAsyncReader_EndFlush_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3039#endif
3040
3041#ifndef __IGraphVersion_INTERFACE_DEFINED__
3042#define __IGraphVersion_INTERFACE_DEFINED__
3043  EXTERN_C const IID IID_IGraphVersion;
3044#if defined(__cplusplus) && !defined(CINTERFACE)
3045  struct IGraphVersion : public IUnknown {
3046  public:
3047    virtual HRESULT WINAPI QueryVersion(LONG *pVersion) = 0;
3048  };
3049#else
3050  typedef struct IGraphVersionVtbl {
3051    BEGIN_INTERFACE
3052      HRESULT (WINAPI *QueryInterface)(IGraphVersion *This,REFIID riid,void **ppvObject);
3053      ULONG (WINAPI *AddRef)(IGraphVersion *This);
3054      ULONG (WINAPI *Release)(IGraphVersion *This);
3055      HRESULT (WINAPI *QueryVersion)(IGraphVersion *This,LONG *pVersion);
3056    END_INTERFACE
3057  } IGraphVersionVtbl;
3058  struct IGraphVersion {
3059    CONST_VTBL struct IGraphVersionVtbl *lpVtbl;
3060  };
3061#ifdef COBJMACROS
3062#define IGraphVersion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3063#define IGraphVersion_AddRef(This) (This)->lpVtbl->AddRef(This)
3064#define IGraphVersion_Release(This) (This)->lpVtbl->Release(This)
3065#define IGraphVersion_QueryVersion(This,pVersion) (This)->lpVtbl->QueryVersion(This,pVersion)
3066#endif
3067#endif
3068  HRESULT WINAPI IGraphVersion_QueryVersion_Proxy(IGraphVersion *This,LONG *pVersion);
3069  void __RPC_STUB IGraphVersion_QueryVersion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3070#endif
3071
3072#ifndef __IResourceConsumer_INTERFACE_DEFINED__
3073#define __IResourceConsumer_INTERFACE_DEFINED__
3074  EXTERN_C const IID IID_IResourceConsumer;
3075#if defined(__cplusplus) && !defined(CINTERFACE)
3076  struct IResourceConsumer : public IUnknown {
3077  public:
3078    virtual HRESULT WINAPI AcquireResource(LONG idResource) = 0;
3079    virtual HRESULT WINAPI ReleaseResource(LONG idResource) = 0;
3080  };
3081#else
3082  typedef struct IResourceConsumerVtbl {
3083    BEGIN_INTERFACE
3084      HRESULT (WINAPI *QueryInterface)(IResourceConsumer *This,REFIID riid,void **ppvObject);
3085      ULONG (WINAPI *AddRef)(IResourceConsumer *This);
3086      ULONG (WINAPI *Release)(IResourceConsumer *This);
3087      HRESULT (WINAPI *AcquireResource)(IResourceConsumer *This,LONG idResource);
3088      HRESULT (WINAPI *ReleaseResource)(IResourceConsumer *This,LONG idResource);
3089    END_INTERFACE
3090  } IResourceConsumerVtbl;
3091  struct IResourceConsumer {
3092    CONST_VTBL struct IResourceConsumerVtbl *lpVtbl;
3093  };
3094#ifdef COBJMACROS
3095#define IResourceConsumer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3096#define IResourceConsumer_AddRef(This) (This)->lpVtbl->AddRef(This)
3097#define IResourceConsumer_Release(This) (This)->lpVtbl->Release(This)
3098#define IResourceConsumer_AcquireResource(This,idResource) (This)->lpVtbl->AcquireResource(This,idResource)
3099#define IResourceConsumer_ReleaseResource(This,idResource) (This)->lpVtbl->ReleaseResource(This,idResource)
3100#endif
3101#endif
3102  HRESULT WINAPI IResourceConsumer_AcquireResource_Proxy(IResourceConsumer *This,LONG idResource);
3103  void __RPC_STUB IResourceConsumer_AcquireResource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3104  HRESULT WINAPI IResourceConsumer_ReleaseResource_Proxy(IResourceConsumer *This,LONG idResource);
3105  void __RPC_STUB IResourceConsumer_ReleaseResource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3106#endif
3107
3108#ifndef __IResourceManager_INTERFACE_DEFINED__
3109#define __IResourceManager_INTERFACE_DEFINED__
3110  EXTERN_C const IID IID_IResourceManager;
3111#if defined(__cplusplus) && !defined(CINTERFACE)
3112  struct IResourceManager : public IUnknown {
3113  public:
3114    virtual HRESULT WINAPI Register(LPCWSTR pName,LONG cResource,LONG *plToken) = 0;
3115    virtual HRESULT WINAPI RegisterGroup(LPCWSTR pName,LONG cResource,LONG *palTokens,LONG *plToken) = 0;
3116    virtual HRESULT WINAPI RequestResource(LONG idResource,IUnknown *pFocusObject,IResourceConsumer *pConsumer) = 0;
3117    virtual HRESULT WINAPI NotifyAcquire(LONG idResource,IResourceConsumer *pConsumer,HRESULT hr) = 0;
3118    virtual HRESULT WINAPI NotifyRelease(LONG idResource,IResourceConsumer *pConsumer,WINBOOL bStillWant) = 0;
3119    virtual HRESULT WINAPI CancelRequest(LONG idResource,IResourceConsumer *pConsumer) = 0;
3120    virtual HRESULT WINAPI SetFocus(IUnknown *pFocusObject) = 0;
3121    virtual HRESULT WINAPI ReleaseFocus(IUnknown *pFocusObject) = 0;
3122  };
3123#else
3124  typedef struct IResourceManagerVtbl {
3125    BEGIN_INTERFACE
3126      HRESULT (WINAPI *QueryInterface)(IResourceManager *This,REFIID riid,void **ppvObject);
3127      ULONG (WINAPI *AddRef)(IResourceManager *This);
3128      ULONG (WINAPI *Release)(IResourceManager *This);
3129      HRESULT (WINAPI *Register)(IResourceManager *This,LPCWSTR pName,LONG cResource,LONG *plToken);
3130      HRESULT (WINAPI *RegisterGroup)(IResourceManager *This,LPCWSTR pName,LONG cResource,LONG *palTokens,LONG *plToken);
3131      HRESULT (WINAPI *RequestResource)(IResourceManager *This,LONG idResource,IUnknown *pFocusObject,IResourceConsumer *pConsumer);
3132      HRESULT (WINAPI *NotifyAcquire)(IResourceManager *This,LONG idResource,IResourceConsumer *pConsumer,HRESULT hr);
3133      HRESULT (WINAPI *NotifyRelease)(IResourceManager *This,LONG idResource,IResourceConsumer *pConsumer,WINBOOL bStillWant);
3134      HRESULT (WINAPI *CancelRequest)(IResourceManager *This,LONG idResource,IResourceConsumer *pConsumer);
3135      HRESULT (WINAPI *SetFocus)(IResourceManager *This,IUnknown *pFocusObject);
3136      HRESULT (WINAPI *ReleaseFocus)(IResourceManager *This,IUnknown *pFocusObject);
3137    END_INTERFACE
3138  } IResourceManagerVtbl;
3139  struct IResourceManager {
3140    CONST_VTBL struct IResourceManagerVtbl *lpVtbl;
3141  };
3142#ifdef COBJMACROS
3143#define IResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3144#define IResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
3145#define IResourceManager_Release(This) (This)->lpVtbl->Release(This)
3146#define IResourceManager_Register(This,pName,cResource,plToken) (This)->lpVtbl->Register(This,pName,cResource,plToken)
3147#define IResourceManager_RegisterGroup(This,pName,cResource,palTokens,plToken) (This)->lpVtbl->RegisterGroup(This,pName,cResource,palTokens,plToken)
3148#define IResourceManager_RequestResource(This,idResource,pFocusObject,pConsumer) (This)->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer)
3149#define IResourceManager_NotifyAcquire(This,idResource,pConsumer,hr) (This)->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr)
3150#define IResourceManager_NotifyRelease(This,idResource,pConsumer,bStillWant) (This)->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant)
3151#define IResourceManager_CancelRequest(This,idResource,pConsumer) (This)->lpVtbl->CancelRequest(This,idResource,pConsumer)
3152#define IResourceManager_SetFocus(This,pFocusObject) (This)->lpVtbl->SetFocus(This,pFocusObject)
3153#define IResourceManager_ReleaseFocus(This,pFocusObject) (This)->lpVtbl->ReleaseFocus(This,pFocusObject)
3154#endif
3155#endif
3156  HRESULT WINAPI IResourceManager_Register_Proxy(IResourceManager *This,LPCWSTR pName,LONG cResource,LONG *plToken);
3157  void __RPC_STUB IResourceManager_Register_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3158  HRESULT WINAPI IResourceManager_RegisterGroup_Proxy(IResourceManager *This,LPCWSTR pName,LONG cResource,LONG *palTokens,LONG *plToken);
3159  void __RPC_STUB IResourceManager_RegisterGroup_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3160  HRESULT WINAPI IResourceManager_RequestResource_Proxy(IResourceManager *This,LONG idResource,IUnknown *pFocusObject,IResourceConsumer *pConsumer);
3161  void __RPC_STUB IResourceManager_RequestResource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3162  HRESULT WINAPI IResourceManager_NotifyAcquire_Proxy(IResourceManager *This,LONG idResource,IResourceConsumer *pConsumer,HRESULT hr);
3163  void __RPC_STUB IResourceManager_NotifyAcquire_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3164  HRESULT WINAPI IResourceManager_NotifyRelease_Proxy(IResourceManager *This,LONG idResource,IResourceConsumer *pConsumer,WINBOOL bStillWant);
3165  void __RPC_STUB IResourceManager_NotifyRelease_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3166  HRESULT WINAPI IResourceManager_CancelRequest_Proxy(IResourceManager *This,LONG idResource,IResourceConsumer *pConsumer);
3167  void __RPC_STUB IResourceManager_CancelRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3168  HRESULT WINAPI IResourceManager_SetFocus_Proxy(IResourceManager *This,IUnknown *pFocusObject);
3169  void __RPC_STUB IResourceManager_SetFocus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3170  HRESULT WINAPI IResourceManager_ReleaseFocus_Proxy(IResourceManager *This,IUnknown *pFocusObject);
3171  void __RPC_STUB IResourceManager_ReleaseFocus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3172#endif
3173
3174#ifndef __IDistributorNotify_INTERFACE_DEFINED__
3175#define __IDistributorNotify_INTERFACE_DEFINED__
3176  EXTERN_C const IID IID_IDistributorNotify;
3177#if defined(__cplusplus) && !defined(CINTERFACE)
3178  struct IDistributorNotify : public IUnknown {
3179  public:
3180    virtual HRESULT WINAPI Stop(void) = 0;
3181    virtual HRESULT WINAPI Pause(void) = 0;
3182    virtual HRESULT WINAPI Run(REFERENCE_TIME tStart) = 0;
3183    virtual HRESULT WINAPI SetSyncSource(IReferenceClock *pClock) = 0;
3184    virtual HRESULT WINAPI NotifyGraphChange(void) = 0;
3185  };
3186#else
3187  typedef struct IDistributorNotifyVtbl {
3188    BEGIN_INTERFACE
3189      HRESULT (WINAPI *QueryInterface)(IDistributorNotify *This,REFIID riid,void **ppvObject);
3190      ULONG (WINAPI *AddRef)(IDistributorNotify *This);
3191      ULONG (WINAPI *Release)(IDistributorNotify *This);
3192      HRESULT (WINAPI *Stop)(IDistributorNotify *This);
3193      HRESULT (WINAPI *Pause)(IDistributorNotify *This);
3194      HRESULT (WINAPI *Run)(IDistributorNotify *This,REFERENCE_TIME tStart);
3195      HRESULT (WINAPI *SetSyncSource)(IDistributorNotify *This,IReferenceClock *pClock);
3196      HRESULT (WINAPI *NotifyGraphChange)(IDistributorNotify *This);
3197    END_INTERFACE
3198  } IDistributorNotifyVtbl;
3199  struct IDistributorNotify {
3200    CONST_VTBL struct IDistributorNotifyVtbl *lpVtbl;
3201  };
3202#ifdef COBJMACROS
3203#define IDistributorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3204#define IDistributorNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
3205#define IDistributorNotify_Release(This) (This)->lpVtbl->Release(This)
3206#define IDistributorNotify_Stop(This) (This)->lpVtbl->Stop(This)
3207#define IDistributorNotify_Pause(This) (This)->lpVtbl->Pause(This)
3208#define IDistributorNotify_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
3209#define IDistributorNotify_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
3210#define IDistributorNotify_NotifyGraphChange(This) (This)->lpVtbl->NotifyGraphChange(This)
3211#endif
3212#endif
3213  HRESULT WINAPI IDistributorNotify_Stop_Proxy(IDistributorNotify *This);
3214  void __RPC_STUB IDistributorNotify_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3215  HRESULT WINAPI IDistributorNotify_Pause_Proxy(IDistributorNotify *This);
3216  void __RPC_STUB IDistributorNotify_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3217  HRESULT WINAPI IDistributorNotify_Run_Proxy(IDistributorNotify *This,REFERENCE_TIME tStart);
3218  void __RPC_STUB IDistributorNotify_Run_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3219  HRESULT WINAPI IDistributorNotify_SetSyncSource_Proxy(IDistributorNotify *This,IReferenceClock *pClock);
3220  void __RPC_STUB IDistributorNotify_SetSyncSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3221  HRESULT WINAPI IDistributorNotify_NotifyGraphChange_Proxy(IDistributorNotify *This);
3222  void __RPC_STUB IDistributorNotify_NotifyGraphChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3223#endif
3224
3225  typedef enum __MIDL___MIDL_itf_strmif_0160_0001 {
3226    AM_STREAM_INFO_START_DEFINED = 0x1,AM_STREAM_INFO_STOP_DEFINED = 0x2,AM_STREAM_INFO_DISCARDING = 0x4,AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10
3227  } AM_STREAM_INFO_FLAGS;
3228
3229  typedef struct __MIDL___MIDL_itf_strmif_0160_0002 {
3230    REFERENCE_TIME tStart;
3231    REFERENCE_TIME tStop;
3232    DWORD dwStartCookie;
3233    DWORD dwStopCookie;
3234    DWORD dwFlags;
3235  } AM_STREAM_INFO;
3236
3237  extern RPC_IF_HANDLE __MIDL_itf_strmif_0160_v0_0_c_ifspec;
3238  extern RPC_IF_HANDLE __MIDL_itf_strmif_0160_v0_0_s_ifspec;
3239#ifndef __IAMStreamControl_INTERFACE_DEFINED__
3240#define __IAMStreamControl_INTERFACE_DEFINED__
3241  EXTERN_C const IID IID_IAMStreamControl;
3242#if defined(__cplusplus) && !defined(CINTERFACE)
3243  struct IAMStreamControl : public IUnknown {
3244  public:
3245    virtual HRESULT WINAPI StartAt(const REFERENCE_TIME *ptStart,DWORD dwCookie) = 0;
3246    virtual HRESULT WINAPI StopAt(const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie) = 0;
3247    virtual HRESULT WINAPI GetInfo(AM_STREAM_INFO *pInfo) = 0;
3248  };
3249#else
3250  typedef struct IAMStreamControlVtbl {
3251    BEGIN_INTERFACE
3252      HRESULT (WINAPI *QueryInterface)(IAMStreamControl *This,REFIID riid,void **ppvObject);
3253      ULONG (WINAPI *AddRef)(IAMStreamControl *This);
3254      ULONG (WINAPI *Release)(IAMStreamControl *This);
3255      HRESULT (WINAPI *StartAt)(IAMStreamControl *This,const REFERENCE_TIME *ptStart,DWORD dwCookie);
3256      HRESULT (WINAPI *StopAt)(IAMStreamControl *This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie);
3257      HRESULT (WINAPI *GetInfo)(IAMStreamControl *This,AM_STREAM_INFO *pInfo);
3258    END_INTERFACE
3259  } IAMStreamControlVtbl;
3260  struct IAMStreamControl {
3261    CONST_VTBL struct IAMStreamControlVtbl *lpVtbl;
3262  };
3263#ifdef COBJMACROS
3264#define IAMStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3265#define IAMStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
3266#define IAMStreamControl_Release(This) (This)->lpVtbl->Release(This)
3267#define IAMStreamControl_StartAt(This,ptStart,dwCookie) (This)->lpVtbl->StartAt(This,ptStart,dwCookie)
3268#define IAMStreamControl_StopAt(This,ptStop,bSendExtra,dwCookie) (This)->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie)
3269#define IAMStreamControl_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
3270#endif
3271#endif
3272  HRESULT WINAPI IAMStreamControl_StartAt_Proxy(IAMStreamControl *This,const REFERENCE_TIME *ptStart,DWORD dwCookie);
3273  void __RPC_STUB IAMStreamControl_StartAt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3274  HRESULT WINAPI IAMStreamControl_StopAt_Proxy(IAMStreamControl *This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie);
3275  void __RPC_STUB IAMStreamControl_StopAt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3276  HRESULT WINAPI IAMStreamControl_GetInfo_Proxy(IAMStreamControl *This,AM_STREAM_INFO *pInfo);
3277  void __RPC_STUB IAMStreamControl_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3278#endif
3279
3280#ifndef __ISeekingPassThru_INTERFACE_DEFINED__
3281#define __ISeekingPassThru_INTERFACE_DEFINED__
3282  EXTERN_C const IID IID_ISeekingPassThru;
3283#if defined(__cplusplus) && !defined(CINTERFACE)
3284  struct ISeekingPassThru : public IUnknown {
3285  public:
3286    virtual HRESULT WINAPI Init(WINBOOL bSupportRendering,IPin *pPin) = 0;
3287  };
3288#else
3289  typedef struct ISeekingPassThruVtbl {
3290    BEGIN_INTERFACE
3291      HRESULT (WINAPI *QueryInterface)(ISeekingPassThru *This,REFIID riid,void **ppvObject);
3292      ULONG (WINAPI *AddRef)(ISeekingPassThru *This);
3293      ULONG (WINAPI *Release)(ISeekingPassThru *This);
3294      HRESULT (WINAPI *Init)(ISeekingPassThru *This,WINBOOL bSupportRendering,IPin *pPin);
3295    END_INTERFACE
3296  } ISeekingPassThruVtbl;
3297  struct ISeekingPassThru {
3298    CONST_VTBL struct ISeekingPassThruVtbl *lpVtbl;
3299  };
3300#ifdef COBJMACROS
3301#define ISeekingPassThru_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3302#define ISeekingPassThru_AddRef(This) (This)->lpVtbl->AddRef(This)
3303#define ISeekingPassThru_Release(This) (This)->lpVtbl->Release(This)
3304#define ISeekingPassThru_Init(This,bSupportRendering,pPin) (This)->lpVtbl->Init(This,bSupportRendering,pPin)
3305#endif
3306#endif
3307  HRESULT WINAPI ISeekingPassThru_Init_Proxy(ISeekingPassThru *This,WINBOOL bSupportRendering,IPin *pPin);
3308  void __RPC_STUB ISeekingPassThru_Init_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3309#endif
3310
3311#ifndef __IAMStreamConfig_INTERFACE_DEFINED__
3312#define __IAMStreamConfig_INTERFACE_DEFINED__
3313  typedef struct _VIDEO_STREAM_CONFIG_CAPS {
3314    GUID guid;
3315    ULONG VideoStandard;
3316    SIZE InputSize;
3317    SIZE MinCroppingSize;
3318    SIZE MaxCroppingSize;
3319    int CropGranularityX;
3320    int CropGranularityY;
3321    int CropAlignX;
3322    int CropAlignY;
3323    SIZE MinOutputSize;
3324    SIZE MaxOutputSize;
3325    int OutputGranularityX;
3326    int OutputGranularityY;
3327    int StretchTapsX;
3328    int StretchTapsY;
3329    int ShrinkTapsX;
3330    int ShrinkTapsY;
3331    LONGLONG MinFrameInterval;
3332    LONGLONG MaxFrameInterval;
3333    LONG MinBitsPerSecond;
3334    LONG MaxBitsPerSecond;
3335  } VIDEO_STREAM_CONFIG_CAPS;
3336
3337  typedef struct _AUDIO_STREAM_CONFIG_CAPS {
3338    GUID guid;
3339    ULONG MinimumChannels;
3340    ULONG MaximumChannels;
3341    ULONG ChannelsGranularity;
3342    ULONG MinimumBitsPerSample;
3343    ULONG MaximumBitsPerSample;
3344    ULONG BitsPerSampleGranularity;
3345    ULONG MinimumSampleFrequency;
3346    ULONG MaximumSampleFrequency;
3347    ULONG SampleFrequencyGranularity;
3348  } AUDIO_STREAM_CONFIG_CAPS;
3349
3350  EXTERN_C const IID IID_IAMStreamConfig;
3351#if defined(__cplusplus) && !defined(CINTERFACE)
3352  struct IAMStreamConfig : public IUnknown {
3353  public:
3354    virtual HRESULT WINAPI SetFormat(AM_MEDIA_TYPE *pmt) = 0;
3355    virtual HRESULT WINAPI GetFormat(AM_MEDIA_TYPE **ppmt) = 0;
3356    virtual HRESULT WINAPI GetNumberOfCapabilities(int *piCount,int *piSize) = 0;
3357    virtual HRESULT WINAPI GetStreamCaps(int iIndex,AM_MEDIA_TYPE **ppmt,BYTE *pSCC) = 0;
3358  };
3359#else
3360  typedef struct IAMStreamConfigVtbl {
3361    BEGIN_INTERFACE
3362      HRESULT (WINAPI *QueryInterface)(IAMStreamConfig *This,REFIID riid,void **ppvObject);
3363      ULONG (WINAPI *AddRef)(IAMStreamConfig *This);
3364      ULONG (WINAPI *Release)(IAMStreamConfig *This);
3365      HRESULT (WINAPI *SetFormat)(IAMStreamConfig *This,AM_MEDIA_TYPE *pmt);
3366      HRESULT (WINAPI *GetFormat)(IAMStreamConfig *This,AM_MEDIA_TYPE **ppmt);
3367      HRESULT (WINAPI *GetNumberOfCapabilities)(IAMStreamConfig *This,int *piCount,int *piSize);
3368      HRESULT (WINAPI *GetStreamCaps)(IAMStreamConfig *This,int iIndex,AM_MEDIA_TYPE **ppmt,BYTE *pSCC);
3369    END_INTERFACE
3370  } IAMStreamConfigVtbl;
3371  struct IAMStreamConfig {
3372    CONST_VTBL struct IAMStreamConfigVtbl *lpVtbl;
3373  };
3374#ifdef COBJMACROS
3375#define IAMStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3376#define IAMStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
3377#define IAMStreamConfig_Release(This) (This)->lpVtbl->Release(This)
3378#define IAMStreamConfig_SetFormat(This,pmt) (This)->lpVtbl->SetFormat(This,pmt)
3379#define IAMStreamConfig_GetFormat(This,ppmt) (This)->lpVtbl->GetFormat(This,ppmt)
3380#define IAMStreamConfig_GetNumberOfCapabilities(This,piCount,piSize) (This)->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize)
3381#define IAMStreamConfig_GetStreamCaps(This,iIndex,ppmt,pSCC) (This)->lpVtbl->GetStreamCaps(This,iIndex,ppmt,pSCC)
3382#endif
3383#endif
3384  HRESULT WINAPI IAMStreamConfig_SetFormat_Proxy(IAMStreamConfig *This,AM_MEDIA_TYPE *pmt);
3385  void __RPC_STUB IAMStreamConfig_SetFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3386  HRESULT WINAPI IAMStreamConfig_GetFormat_Proxy(IAMStreamConfig *This,AM_MEDIA_TYPE **ppmt);
3387  void __RPC_STUB IAMStreamConfig_GetFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3388  HRESULT WINAPI IAMStreamConfig_GetNumberOfCapabilities_Proxy(IAMStreamConfig *This,int *piCount,int *piSize);
3389  void __RPC_STUB IAMStreamConfig_GetNumberOfCapabilities_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3390  HRESULT WINAPI IAMStreamConfig_GetStreamCaps_Proxy(IAMStreamConfig *This,int iIndex,AM_MEDIA_TYPE **ppmt,BYTE *pSCC);
3391  void __RPC_STUB IAMStreamConfig_GetStreamCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3392#endif
3393
3394#ifndef __IConfigInterleaving_INTERFACE_DEFINED__
3395#define __IConfigInterleaving_INTERFACE_DEFINED__
3396  typedef enum __MIDL_IConfigInterleaving_0001 {
3397    INTERLEAVE_NONE = 0,
3398    INTERLEAVE_CAPTURE,INTERLEAVE_FULL,INTERLEAVE_NONE_BUFFERED
3399  } InterleavingMode;
3400
3401  EXTERN_C const IID IID_IConfigInterleaving;
3402#if defined(__cplusplus) && !defined(CINTERFACE)
3403  struct IConfigInterleaving : public IUnknown {
3404  public:
3405    virtual HRESULT WINAPI put_Mode(InterleavingMode mode) = 0;
3406    virtual HRESULT WINAPI get_Mode(InterleavingMode *pMode) = 0;
3407    virtual HRESULT WINAPI put_Interleaving(const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll) = 0;
3408    virtual HRESULT WINAPI get_Interleaving(REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll) = 0;
3409  };
3410#else
3411  typedef struct IConfigInterleavingVtbl {
3412    BEGIN_INTERFACE
3413      HRESULT (WINAPI *QueryInterface)(IConfigInterleaving *This,REFIID riid,void **ppvObject);
3414      ULONG (WINAPI *AddRef)(IConfigInterleaving *This);
3415      ULONG (WINAPI *Release)(IConfigInterleaving *This);
3416      HRESULT (WINAPI *put_Mode)(IConfigInterleaving *This,InterleavingMode mode);
3417      HRESULT (WINAPI *get_Mode)(IConfigInterleaving *This,InterleavingMode *pMode);
3418      HRESULT (WINAPI *put_Interleaving)(IConfigInterleaving *This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll);
3419      HRESULT (WINAPI *get_Interleaving)(IConfigInterleaving *This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll);
3420    END_INTERFACE
3421  } IConfigInterleavingVtbl;
3422  struct IConfigInterleaving {
3423    CONST_VTBL struct IConfigInterleavingVtbl *lpVtbl;
3424  };
3425#ifdef COBJMACROS
3426#define IConfigInterleaving_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3427#define IConfigInterleaving_AddRef(This) (This)->lpVtbl->AddRef(This)
3428#define IConfigInterleaving_Release(This) (This)->lpVtbl->Release(This)
3429#define IConfigInterleaving_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
3430#define IConfigInterleaving_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
3431#define IConfigInterleaving_put_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll)
3432#define IConfigInterleaving_get_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll)
3433#endif
3434#endif
3435  HRESULT WINAPI IConfigInterleaving_put_Mode_Proxy(IConfigInterleaving *This,InterleavingMode mode);
3436  void __RPC_STUB IConfigInterleaving_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3437  HRESULT WINAPI IConfigInterleaving_get_Mode_Proxy(IConfigInterleaving *This,InterleavingMode *pMode);
3438  void __RPC_STUB IConfigInterleaving_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3439  HRESULT WINAPI IConfigInterleaving_put_Interleaving_Proxy(IConfigInterleaving *This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll);
3440  void __RPC_STUB IConfigInterleaving_put_Interleaving_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3441  HRESULT WINAPI IConfigInterleaving_get_Interleaving_Proxy(IConfigInterleaving *This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll);
3442  void __RPC_STUB IConfigInterleaving_get_Interleaving_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3443#endif
3444
3445#ifndef __IConfigAviMux_INTERFACE_DEFINED__
3446#define __IConfigAviMux_INTERFACE_DEFINED__
3447  EXTERN_C const IID IID_IConfigAviMux;
3448#if defined(__cplusplus) && !defined(CINTERFACE)
3449  struct IConfigAviMux : public IUnknown {
3450  public:
3451    virtual HRESULT WINAPI SetMasterStream(LONG iStream) = 0;
3452    virtual HRESULT WINAPI GetMasterStream(LONG *pStream) = 0;
3453    virtual HRESULT WINAPI SetOutputCompatibilityIndex(WINBOOL fOldIndex) = 0;
3454    virtual HRESULT WINAPI GetOutputCompatibilityIndex(WINBOOL *pfOldIndex) = 0;
3455  };
3456#else
3457  typedef struct IConfigAviMuxVtbl {
3458    BEGIN_INTERFACE
3459      HRESULT (WINAPI *QueryInterface)(IConfigAviMux *This,REFIID riid,void **ppvObject);
3460      ULONG (WINAPI *AddRef)(IConfigAviMux *This);
3461      ULONG (WINAPI *Release)(IConfigAviMux *This);
3462      HRESULT (WINAPI *SetMasterStream)(IConfigAviMux *This,LONG iStream);
3463      HRESULT (WINAPI *GetMasterStream)(IConfigAviMux *This,LONG *pStream);
3464      HRESULT (WINAPI *SetOutputCompatibilityIndex)(IConfigAviMux *This,WINBOOL fOldIndex);
3465      HRESULT (WINAPI *GetOutputCompatibilityIndex)(IConfigAviMux *This,WINBOOL *pfOldIndex);
3466    END_INTERFACE
3467  } IConfigAviMuxVtbl;
3468  struct IConfigAviMux {
3469    CONST_VTBL struct IConfigAviMuxVtbl *lpVtbl;
3470  };
3471#ifdef COBJMACROS
3472#define IConfigAviMux_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3473#define IConfigAviMux_AddRef(This) (This)->lpVtbl->AddRef(This)
3474#define IConfigAviMux_Release(This) (This)->lpVtbl->Release(This)
3475#define IConfigAviMux_SetMasterStream(This,iStream) (This)->lpVtbl->SetMasterStream(This,iStream)
3476#define IConfigAviMux_GetMasterStream(This,pStream) (This)->lpVtbl->GetMasterStream(This,pStream)
3477#define IConfigAviMux_SetOutputCompatibilityIndex(This,fOldIndex) (This)->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex)
3478#define IConfigAviMux_GetOutputCompatibilityIndex(This,pfOldIndex) (This)->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex)
3479#endif
3480#endif
3481  HRESULT WINAPI IConfigAviMux_SetMasterStream_Proxy(IConfigAviMux *This,LONG iStream);
3482  void __RPC_STUB IConfigAviMux_SetMasterStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3483  HRESULT WINAPI IConfigAviMux_GetMasterStream_Proxy(IConfigAviMux *This,LONG *pStream);
3484  void __RPC_STUB IConfigAviMux_GetMasterStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3485  HRESULT WINAPI IConfigAviMux_SetOutputCompatibilityIndex_Proxy(IConfigAviMux *This,WINBOOL fOldIndex);
3486  void __RPC_STUB IConfigAviMux_SetOutputCompatibilityIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3487  HRESULT WINAPI IConfigAviMux_GetOutputCompatibilityIndex_Proxy(IConfigAviMux *This,WINBOOL *pfOldIndex);
3488  void __RPC_STUB IConfigAviMux_GetOutputCompatibilityIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3489#endif
3490
3491  typedef enum __MIDL___MIDL_itf_strmif_0167_0001 {
3492    CompressionCaps_CanQuality = 0x1,CompressionCaps_CanCrunch = 0x2,CompressionCaps_CanKeyFrame = 0x4,CompressionCaps_CanBFrame = 0x8,
3493    CompressionCaps_CanWindow = 0x10
3494  } CompressionCaps;
3495
3496  extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_c_ifspec;
3497  extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_s_ifspec;
3498#ifndef __IAMVideoCompression_INTERFACE_DEFINED__
3499#define __IAMVideoCompression_INTERFACE_DEFINED__
3500  EXTERN_C const IID IID_IAMVideoCompression;
3501#if defined(__cplusplus) && !defined(CINTERFACE)
3502  struct IAMVideoCompression : public IUnknown {
3503  public:
3504    virtual HRESULT WINAPI put_KeyFrameRate(long KeyFrameRate) = 0;
3505    virtual HRESULT WINAPI get_KeyFrameRate(long *pKeyFrameRate) = 0;
3506    virtual HRESULT WINAPI put_PFramesPerKeyFrame(long PFramesPerKeyFrame) = 0;
3507    virtual HRESULT WINAPI get_PFramesPerKeyFrame(long *pPFramesPerKeyFrame) = 0;
3508    virtual HRESULT WINAPI put_Quality(double Quality) = 0;
3509    virtual HRESULT WINAPI get_Quality(double *pQuality) = 0;
3510    virtual HRESULT WINAPI put_WindowSize(DWORDLONG WindowSize) = 0;
3511    virtual HRESULT WINAPI get_WindowSize(DWORDLONG *pWindowSize) = 0;
3512    virtual HRESULT WINAPI GetInfo(WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,long *pDefaultKeyFrameRate,long *pDefaultPFramesPerKey,double *pDefaultQuality,long *pCapabilities) = 0;
3513    virtual HRESULT WINAPI OverrideKeyFrame(long FrameNumber) = 0;
3514    virtual HRESULT WINAPI OverrideFrameSize(long FrameNumber,long Size) = 0;
3515  };
3516#else
3517  typedef struct IAMVideoCompressionVtbl {
3518    BEGIN_INTERFACE
3519      HRESULT (WINAPI *QueryInterface)(IAMVideoCompression *This,REFIID riid,void **ppvObject);
3520      ULONG (WINAPI *AddRef)(IAMVideoCompression *This);
3521      ULONG (WINAPI *Release)(IAMVideoCompression *This);
3522      HRESULT (WINAPI *put_KeyFrameRate)(IAMVideoCompression *This,long KeyFrameRate);
3523      HRESULT (WINAPI *get_KeyFrameRate)(IAMVideoCompression *This,long *pKeyFrameRate);
3524      HRESULT (WINAPI *put_PFramesPerKeyFrame)(IAMVideoCompression *This,long PFramesPerKeyFrame);
3525      HRESULT (WINAPI *get_PFramesPerKeyFrame)(IAMVideoCompression *This,long *pPFramesPerKeyFrame);
3526      HRESULT (WINAPI *put_Quality)(IAMVideoCompression *This,double Quality);
3527      HRESULT (WINAPI *get_Quality)(IAMVideoCompression *This,double *pQuality);
3528      HRESULT (WINAPI *put_WindowSize)(IAMVideoCompression *This,DWORDLONG WindowSize);
3529      HRESULT (WINAPI *get_WindowSize)(IAMVideoCompression *This,DWORDLONG *pWindowSize);
3530      HRESULT (WINAPI *GetInfo)(IAMVideoCompression *This,WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,long *pDefaultKeyFrameRate,long *pDefaultPFramesPerKey,double *pDefaultQuality,long *pCapabilities);
3531      HRESULT (WINAPI *OverrideKeyFrame)(IAMVideoCompression *This,long FrameNumber);
3532      HRESULT (WINAPI *OverrideFrameSize)(IAMVideoCompression *This,long FrameNumber,long Size);
3533    END_INTERFACE
3534  } IAMVideoCompressionVtbl;
3535  struct IAMVideoCompression {
3536    CONST_VTBL struct IAMVideoCompressionVtbl *lpVtbl;
3537  };
3538#ifdef COBJMACROS
3539#define IAMVideoCompression_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3540#define IAMVideoCompression_AddRef(This) (This)->lpVtbl->AddRef(This)
3541#define IAMVideoCompression_Release(This) (This)->lpVtbl->Release(This)
3542#define IAMVideoCompression_put_KeyFrameRate(This,KeyFrameRate) (This)->lpVtbl->put_KeyFrameRate(This,KeyFrameRate)
3543#define IAMVideoCompression_get_KeyFrameRate(This,pKeyFrameRate) (This)->lpVtbl->get_KeyFrameRate(This,pKeyFrameRate)
3544#define IAMVideoCompression_put_PFramesPerKeyFrame(This,PFramesPerKeyFrame) (This)->lpVtbl->put_PFramesPerKeyFrame(This,PFramesPerKeyFrame)
3545#define IAMVideoCompression_get_PFramesPerKeyFrame(This,pPFramesPerKeyFrame) (This)->lpVtbl->get_PFramesPerKeyFrame(This,pPFramesPerKeyFrame)
3546#define IAMVideoCompression_put_Quality(This,Quality) (This)->lpVtbl->put_Quality(This,Quality)
3547#define IAMVideoCompression_get_Quality(This,pQuality) (This)->lpVtbl->get_Quality(This,pQuality)
3548#define IAMVideoCompression_put_WindowSize(This,WindowSize) (This)->lpVtbl->put_WindowSize(This,WindowSize)
3549#define IAMVideoCompression_get_WindowSize(This,pWindowSize) (This)->lpVtbl->get_WindowSize(This,pWindowSize)
3550#define IAMVideoCompression_GetInfo(This,pszVersion,pcbVersion,pszDescription,pcbDescription,pDefaultKeyFrameRate,pDefaultPFramesPerKey,pDefaultQuality,pCapabilities) (This)->lpVtbl->GetInfo(This,pszVersion,pcbVersion,pszDescription,pcbDescription,pDefaultKeyFrameRate,pDefaultPFramesPerKey,pDefaultQuality,pCapabilities)
3551#define IAMVideoCompression_OverrideKeyFrame(This,FrameNumber) (This)->lpVtbl->OverrideKeyFrame(This,FrameNumber)
3552#define IAMVideoCompression_OverrideFrameSize(This,FrameNumber,Size) (This)->lpVtbl->OverrideFrameSize(This,FrameNumber,Size)
3553#endif
3554#endif
3555  HRESULT WINAPI IAMVideoCompression_put_KeyFrameRate_Proxy(IAMVideoCompression *This,long KeyFrameRate);
3556  void __RPC_STUB IAMVideoCompression_put_KeyFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3557  HRESULT WINAPI IAMVideoCompression_get_KeyFrameRate_Proxy(IAMVideoCompression *This,long *pKeyFrameRate);
3558  void __RPC_STUB IAMVideoCompression_get_KeyFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3559  HRESULT WINAPI IAMVideoCompression_put_PFramesPerKeyFrame_Proxy(IAMVideoCompression *This,long PFramesPerKeyFrame);
3560  void __RPC_STUB IAMVideoCompression_put_PFramesPerKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3561  HRESULT WINAPI IAMVideoCompression_get_PFramesPerKeyFrame_Proxy(IAMVideoCompression *This,long *pPFramesPerKeyFrame);
3562  void __RPC_STUB IAMVideoCompression_get_PFramesPerKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3563  HRESULT WINAPI IAMVideoCompression_put_Quality_Proxy(IAMVideoCompression *This,double Quality);
3564  void __RPC_STUB IAMVideoCompression_put_Quality_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3565  HRESULT WINAPI IAMVideoCompression_get_Quality_Proxy(IAMVideoCompression *This,double *pQuality);
3566  void __RPC_STUB IAMVideoCompression_get_Quality_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3567  HRESULT WINAPI IAMVideoCompression_put_WindowSize_Proxy(IAMVideoCompression *This,DWORDLONG WindowSize);
3568  void __RPC_STUB IAMVideoCompression_put_WindowSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3569  HRESULT WINAPI IAMVideoCompression_get_WindowSize_Proxy(IAMVideoCompression *This,DWORDLONG *pWindowSize);
3570  void __RPC_STUB IAMVideoCompression_get_WindowSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3571  HRESULT WINAPI IAMVideoCompression_GetInfo_Proxy(IAMVideoCompression *This,WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,long *pDefaultKeyFrameRate,long *pDefaultPFramesPerKey,double *pDefaultQuality,long *pCapabilities);
3572  void __RPC_STUB IAMVideoCompression_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3573  HRESULT WINAPI IAMVideoCompression_OverrideKeyFrame_Proxy(IAMVideoCompression *This,long FrameNumber);
3574  void __RPC_STUB IAMVideoCompression_OverrideKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3575  HRESULT WINAPI IAMVideoCompression_OverrideFrameSize_Proxy(IAMVideoCompression *This,long FrameNumber,long Size);
3576  void __RPC_STUB IAMVideoCompression_OverrideFrameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3577#endif
3578
3579  typedef enum __MIDL___MIDL_itf_strmif_0168_0001 {
3580    VfwCaptureDialog_Source = 0x1,VfwCaptureDialog_Format = 0x2,VfwCaptureDialog_Display = 0x4
3581  } VfwCaptureDialogs;
3582
3583  typedef enum __MIDL___MIDL_itf_strmif_0168_0002 {
3584    VfwCompressDialog_Config = 0x1,VfwCompressDialog_About = 0x2,VfwCompressDialog_QueryConfig = 0x4,VfwCompressDialog_QueryAbout = 0x8
3585  } VfwCompressDialogs;
3586
3587  extern RPC_IF_HANDLE __MIDL_itf_strmif_0168_v0_0_c_ifspec;
3588  extern RPC_IF_HANDLE __MIDL_itf_strmif_0168_v0_0_s_ifspec;
3589#ifndef __IAMVfwCaptureDialogs_INTERFACE_DEFINED__
3590#define __IAMVfwCaptureDialogs_INTERFACE_DEFINED__
3591  EXTERN_C const IID IID_IAMVfwCaptureDialogs;
3592#if defined(__cplusplus) && !defined(CINTERFACE)
3593  struct IAMVfwCaptureDialogs : public IUnknown {
3594  public:
3595    virtual HRESULT WINAPI HasDialog(int iDialog) = 0;
3596    virtual HRESULT WINAPI ShowDialog(int iDialog,HWND hwnd) = 0;
3597    virtual HRESULT WINAPI SendDriverMessage(int iDialog,int uMsg,long dw1,long dw2) = 0;
3598  };
3599#else
3600  typedef struct IAMVfwCaptureDialogsVtbl {
3601    BEGIN_INTERFACE
3602      HRESULT (WINAPI *QueryInterface)(IAMVfwCaptureDialogs *This,REFIID riid,void **ppvObject);
3603      ULONG (WINAPI *AddRef)(IAMVfwCaptureDialogs *This);
3604      ULONG (WINAPI *Release)(IAMVfwCaptureDialogs *This);
3605      HRESULT (WINAPI *HasDialog)(IAMVfwCaptureDialogs *This,int iDialog);
3606      HRESULT (WINAPI *ShowDialog)(IAMVfwCaptureDialogs *This,int iDialog,HWND hwnd);
3607      HRESULT (WINAPI *SendDriverMessage)(IAMVfwCaptureDialogs *This,int iDialog,int uMsg,long dw1,long dw2);
3608    END_INTERFACE
3609  } IAMVfwCaptureDialogsVtbl;
3610  struct IAMVfwCaptureDialogs {
3611    CONST_VTBL struct IAMVfwCaptureDialogsVtbl *lpVtbl;
3612  };
3613#ifdef COBJMACROS
3614#define IAMVfwCaptureDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3615#define IAMVfwCaptureDialogs_AddRef(This) (This)->lpVtbl->AddRef(This)
3616#define IAMVfwCaptureDialogs_Release(This) (This)->lpVtbl->Release(This)
3617#define IAMVfwCaptureDialogs_HasDialog(This,iDialog) (This)->lpVtbl->HasDialog(This,iDialog)
3618#define IAMVfwCaptureDialogs_ShowDialog(This,iDialog,hwnd) (This)->lpVtbl->ShowDialog(This,iDialog,hwnd)
3619#define IAMVfwCaptureDialogs_SendDriverMessage(This,iDialog,uMsg,dw1,dw2) (This)->lpVtbl->SendDriverMessage(This,iDialog,uMsg,dw1,dw2)
3620#endif
3621#endif
3622  HRESULT WINAPI IAMVfwCaptureDialogs_HasDialog_Proxy(IAMVfwCaptureDialogs *This,int iDialog);
3623  void __RPC_STUB IAMVfwCaptureDialogs_HasDialog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3624  HRESULT WINAPI IAMVfwCaptureDialogs_ShowDialog_Proxy(IAMVfwCaptureDialogs *This,int iDialog,HWND hwnd);
3625  void __RPC_STUB IAMVfwCaptureDialogs_ShowDialog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3626  HRESULT WINAPI IAMVfwCaptureDialogs_SendDriverMessage_Proxy(IAMVfwCaptureDialogs *This,int iDialog,int uMsg,long dw1,long dw2);
3627  void __RPC_STUB IAMVfwCaptureDialogs_SendDriverMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3628#endif
3629
3630#ifndef __IAMVfwCompressDialogs_INTERFACE_DEFINED__
3631#define __IAMVfwCompressDialogs_INTERFACE_DEFINED__
3632  EXTERN_C const IID IID_IAMVfwCompressDialogs;
3633#if defined(__cplusplus) && !defined(CINTERFACE)
3634  struct IAMVfwCompressDialogs : public IUnknown {
3635  public:
3636    virtual HRESULT WINAPI ShowDialog(int iDialog,HWND hwnd) = 0;
3637    virtual HRESULT WINAPI GetState(LPVOID pState,int *pcbState) = 0;
3638    virtual HRESULT WINAPI SetState(LPVOID pState,int cbState) = 0;
3639    virtual HRESULT WINAPI SendDriverMessage(int uMsg,long dw1,long dw2) = 0;
3640  };
3641#else
3642  typedef struct IAMVfwCompressDialogsVtbl {
3643    BEGIN_INTERFACE
3644      HRESULT (WINAPI *QueryInterface)(IAMVfwCompressDialogs *This,REFIID riid,void **ppvObject);
3645      ULONG (WINAPI *AddRef)(IAMVfwCompressDialogs *This);
3646      ULONG (WINAPI *Release)(IAMVfwCompressDialogs *This);
3647      HRESULT (WINAPI *ShowDialog)(IAMVfwCompressDialogs *This,int iDialog,HWND hwnd);
3648      HRESULT (WINAPI *GetState)(IAMVfwCompressDialogs *This,LPVOID pState,int *pcbState);
3649      HRESULT (WINAPI *SetState)(IAMVfwCompressDialogs *This,LPVOID pState,int cbState);
3650      HRESULT (WINAPI *SendDriverMessage)(IAMVfwCompressDialogs *This,int uMsg,long dw1,long dw2);
3651    END_INTERFACE
3652  } IAMVfwCompressDialogsVtbl;
3653  struct IAMVfwCompressDialogs {
3654    CONST_VTBL struct IAMVfwCompressDialogsVtbl *lpVtbl;
3655  };
3656#ifdef COBJMACROS
3657#define IAMVfwCompressDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3658#define IAMVfwCompressDialogs_AddRef(This) (This)->lpVtbl->AddRef(This)
3659#define IAMVfwCompressDialogs_Release(This) (This)->lpVtbl->Release(This)
3660#define IAMVfwCompressDialogs_ShowDialog(This,iDialog,hwnd) (This)->lpVtbl->ShowDialog(This,iDialog,hwnd)
3661#define IAMVfwCompressDialogs_GetState(This,pState,pcbState) (This)->lpVtbl->GetState(This,pState,pcbState)
3662#define IAMVfwCompressDialogs_SetState(This,pState,cbState) (This)->lpVtbl->SetState(This,pState,cbState)
3663#define IAMVfwCompressDialogs_SendDriverMessage(This,uMsg,dw1,dw2) (This)->lpVtbl->SendDriverMessage(This,uMsg,dw1,dw2)
3664#endif
3665#endif
3666  HRESULT WINAPI IAMVfwCompressDialogs_ShowDialog_Proxy(IAMVfwCompressDialogs *This,int iDialog,HWND hwnd);
3667  void __RPC_STUB IAMVfwCompressDialogs_ShowDialog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3668  HRESULT WINAPI IAMVfwCompressDialogs_GetState_Proxy(IAMVfwCompressDialogs *This,LPVOID pState,int *pcbState);
3669  void __RPC_STUB IAMVfwCompressDialogs_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3670  HRESULT WINAPI IAMVfwCompressDialogs_SetState_Proxy(IAMVfwCompressDialogs *This,LPVOID pState,int cbState);
3671  void __RPC_STUB IAMVfwCompressDialogs_SetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3672  HRESULT WINAPI IAMVfwCompressDialogs_SendDriverMessage_Proxy(IAMVfwCompressDialogs *This,int uMsg,long dw1,long dw2);
3673  void __RPC_STUB IAMVfwCompressDialogs_SendDriverMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3674#endif
3675
3676#ifndef __IAMDroppedFrames_INTERFACE_DEFINED__
3677#define __IAMDroppedFrames_INTERFACE_DEFINED__
3678  EXTERN_C const IID IID_IAMDroppedFrames;
3679#if defined(__cplusplus) && !defined(CINTERFACE)
3680  struct IAMDroppedFrames : public IUnknown {
3681  public:
3682    virtual HRESULT WINAPI GetNumDropped(long *plDropped) = 0;
3683    virtual HRESULT WINAPI GetNumNotDropped(long *plNotDropped) = 0;
3684    virtual HRESULT WINAPI GetDroppedInfo(long lSize,long *plArray,long *plNumCopied) = 0;
3685    virtual HRESULT WINAPI GetAverageFrameSize(long *plAverageSize) = 0;
3686  };
3687#else
3688  typedef struct IAMDroppedFramesVtbl {
3689    BEGIN_INTERFACE
3690      HRESULT (WINAPI *QueryInterface)(IAMDroppedFrames *This,REFIID riid,void **ppvObject);
3691      ULONG (WINAPI *AddRef)(IAMDroppedFrames *This);
3692      ULONG (WINAPI *Release)(IAMDroppedFrames *This);
3693      HRESULT (WINAPI *GetNumDropped)(IAMDroppedFrames *This,long *plDropped);
3694      HRESULT (WINAPI *GetNumNotDropped)(IAMDroppedFrames *This,long *plNotDropped);
3695      HRESULT (WINAPI *GetDroppedInfo)(IAMDroppedFrames *This,long lSize,long *plArray,long *plNumCopied);
3696      HRESULT (WINAPI *GetAverageFrameSize)(IAMDroppedFrames *This,long *plAverageSize);
3697    END_INTERFACE
3698  } IAMDroppedFramesVtbl;
3699  struct IAMDroppedFrames {
3700    CONST_VTBL struct IAMDroppedFramesVtbl *lpVtbl;
3701  };
3702#ifdef COBJMACROS
3703#define IAMDroppedFrames_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3704#define IAMDroppedFrames_AddRef(This) (This)->lpVtbl->AddRef(This)
3705#define IAMDroppedFrames_Release(This) (This)->lpVtbl->Release(This)
3706#define IAMDroppedFrames_GetNumDropped(This,plDropped) (This)->lpVtbl->GetNumDropped(This,plDropped)
3707#define IAMDroppedFrames_GetNumNotDropped(This,plNotDropped) (This)->lpVtbl->GetNumNotDropped(This,plNotDropped)
3708#define IAMDroppedFrames_GetDroppedInfo(This,lSize,plArray,plNumCopied) (This)->lpVtbl->GetDroppedInfo(This,lSize,plArray,plNumCopied)
3709#define IAMDroppedFrames_GetAverageFrameSize(This,plAverageSize) (This)->lpVtbl->GetAverageFrameSize(This,plAverageSize)
3710#endif
3711#endif
3712  HRESULT WINAPI IAMDroppedFrames_GetNumDropped_Proxy(IAMDroppedFrames *This,long *plDropped);
3713  void __RPC_STUB IAMDroppedFrames_GetNumDropped_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3714  HRESULT WINAPI IAMDroppedFrames_GetNumNotDropped_Proxy(IAMDroppedFrames *This,long *plNotDropped);
3715  void __RPC_STUB IAMDroppedFrames_GetNumNotDropped_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3716  HRESULT WINAPI IAMDroppedFrames_GetDroppedInfo_Proxy(IAMDroppedFrames *This,long lSize,long *plArray,long *plNumCopied);
3717  void __RPC_STUB IAMDroppedFrames_GetDroppedInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3718  HRESULT WINAPI IAMDroppedFrames_GetAverageFrameSize_Proxy(IAMDroppedFrames *This,long *plAverageSize);
3719  void __RPC_STUB IAMDroppedFrames_GetAverageFrameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3720#endif
3721
3722#define AMF_AUTOMATICGAIN -1.0
3723
3724  extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_c_ifspec;
3725  extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_s_ifspec;
3726#ifndef __IAMAudioInputMixer_INTERFACE_DEFINED__
3727#define __IAMAudioInputMixer_INTERFACE_DEFINED__
3728  EXTERN_C const IID IID_IAMAudioInputMixer;
3729#if defined(__cplusplus) && !defined(CINTERFACE)
3730  struct IAMAudioInputMixer : public IUnknown {
3731  public:
3732    virtual HRESULT WINAPI put_Enable(WINBOOL fEnable) = 0;
3733    virtual HRESULT WINAPI get_Enable(WINBOOL *pfEnable) = 0;
3734    virtual HRESULT WINAPI put_Mono(WINBOOL fMono) = 0;
3735    virtual HRESULT WINAPI get_Mono(WINBOOL *pfMono) = 0;
3736    virtual HRESULT WINAPI put_MixLevel(double Level) = 0;
3737    virtual HRESULT WINAPI get_MixLevel(double *pLevel) = 0;
3738    virtual HRESULT WINAPI put_Pan(double Pan) = 0;
3739    virtual HRESULT WINAPI get_Pan(double *pPan) = 0;
3740    virtual HRESULT WINAPI put_Loudness(WINBOOL fLoudness) = 0;
3741    virtual HRESULT WINAPI get_Loudness(WINBOOL *pfLoudness) = 0;
3742    virtual HRESULT WINAPI put_Treble(double Treble) = 0;
3743    virtual HRESULT WINAPI get_Treble(double *pTreble) = 0;
3744    virtual HRESULT WINAPI get_TrebleRange(double *pRange) = 0;
3745    virtual HRESULT WINAPI put_Bass(double Bass) = 0;
3746    virtual HRESULT WINAPI get_Bass(double *pBass) = 0;
3747    virtual HRESULT WINAPI get_BassRange(double *pRange) = 0;
3748  };
3749#else
3750  typedef struct IAMAudioInputMixerVtbl {
3751    BEGIN_INTERFACE
3752      HRESULT (WINAPI *QueryInterface)(IAMAudioInputMixer *This,REFIID riid,void **ppvObject);
3753      ULONG (WINAPI *AddRef)(IAMAudioInputMixer *This);
3754      ULONG (WINAPI *Release)(IAMAudioInputMixer *This);
3755      HRESULT (WINAPI *put_Enable)(IAMAudioInputMixer *This,WINBOOL fEnable);
3756      HRESULT (WINAPI *get_Enable)(IAMAudioInputMixer *This,WINBOOL *pfEnable);
3757      HRESULT (WINAPI *put_Mono)(IAMAudioInputMixer *This,WINBOOL fMono);
3758      HRESULT (WINAPI *get_Mono)(IAMAudioInputMixer *This,WINBOOL *pfMono);
3759      HRESULT (WINAPI *put_MixLevel)(IAMAudioInputMixer *This,double Level);
3760      HRESULT (WINAPI *get_MixLevel)(IAMAudioInputMixer *This,double *pLevel);
3761      HRESULT (WINAPI *put_Pan)(IAMAudioInputMixer *This,double Pan);
3762      HRESULT (WINAPI *get_Pan)(IAMAudioInputMixer *This,double *pPan);
3763      HRESULT (WINAPI *put_Loudness)(IAMAudioInputMixer *This,WINBOOL fLoudness);
3764      HRESULT (WINAPI *get_Loudness)(IAMAudioInputMixer *This,WINBOOL *pfLoudness);
3765      HRESULT (WINAPI *put_Treble)(IAMAudioInputMixer *This,double Treble);
3766      HRESULT (WINAPI *get_Treble)(IAMAudioInputMixer *This,double *pTreble);
3767      HRESULT (WINAPI *get_TrebleRange)(IAMAudioInputMixer *This,double *pRange);
3768      HRESULT (WINAPI *put_Bass)(IAMAudioInputMixer *This,double Bass);
3769      HRESULT (WINAPI *get_Bass)(IAMAudioInputMixer *This,double *pBass);
3770      HRESULT (WINAPI *get_BassRange)(IAMAudioInputMixer *This,double *pRange);
3771    END_INTERFACE
3772  } IAMAudioInputMixerVtbl;
3773  struct IAMAudioInputMixer {
3774    CONST_VTBL struct IAMAudioInputMixerVtbl *lpVtbl;
3775  };
3776#ifdef COBJMACROS
3777#define IAMAudioInputMixer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3778#define IAMAudioInputMixer_AddRef(This) (This)->lpVtbl->AddRef(This)
3779#define IAMAudioInputMixer_Release(This) (This)->lpVtbl->Release(This)
3780#define IAMAudioInputMixer_put_Enable(This,fEnable) (This)->lpVtbl->put_Enable(This,fEnable)
3781#define IAMAudioInputMixer_get_Enable(This,pfEnable) (This)->lpVtbl->get_Enable(This,pfEnable)
3782#define IAMAudioInputMixer_put_Mono(This,fMono) (This)->lpVtbl->put_Mono(This,fMono)
3783#define IAMAudioInputMixer_get_Mono(This,pfMono) (This)->lpVtbl->get_Mono(This,pfMono)
3784#define IAMAudioInputMixer_put_MixLevel(This,Level) (This)->lpVtbl->put_MixLevel(This,Level)
3785#define IAMAudioInputMixer_get_MixLevel(This,pLevel) (This)->lpVtbl->get_MixLevel(This,pLevel)
3786#define IAMAudioInputMixer_put_Pan(This,Pan) (This)->lpVtbl->put_Pan(This,Pan)
3787#define IAMAudioInputMixer_get_Pan(This,pPan) (This)->lpVtbl->get_Pan(This,pPan)
3788#define IAMAudioInputMixer_put_Loudness(This,fLoudness) (This)->lpVtbl->put_Loudness(This,fLoudness)
3789#define IAMAudioInputMixer_get_Loudness(This,pfLoudness) (This)->lpVtbl->get_Loudness(This,pfLoudness)
3790#define IAMAudioInputMixer_put_Treble(This,Treble) (This)->lpVtbl->put_Treble(This,Treble)
3791#define IAMAudioInputMixer_get_Treble(This,pTreble) (This)->lpVtbl->get_Treble(This,pTreble)
3792#define IAMAudioInputMixer_get_TrebleRange(This,pRange) (This)->lpVtbl->get_TrebleRange(This,pRange)
3793#define IAMAudioInputMixer_put_Bass(This,Bass) (This)->lpVtbl->put_Bass(This,Bass)
3794#define IAMAudioInputMixer_get_Bass(This,pBass) (This)->lpVtbl->get_Bass(This,pBass)
3795#define IAMAudioInputMixer_get_BassRange(This,pRange) (This)->lpVtbl->get_BassRange(This,pRange)
3796#endif
3797#endif
3798  HRESULT WINAPI IAMAudioInputMixer_put_Enable_Proxy(IAMAudioInputMixer *This,WINBOOL fEnable);
3799  void __RPC_STUB IAMAudioInputMixer_put_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3800  HRESULT WINAPI IAMAudioInputMixer_get_Enable_Proxy(IAMAudioInputMixer *This,WINBOOL *pfEnable);
3801  void __RPC_STUB IAMAudioInputMixer_get_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3802  HRESULT WINAPI IAMAudioInputMixer_put_Mono_Proxy(IAMAudioInputMixer *This,WINBOOL fMono);
3803  void __RPC_STUB IAMAudioInputMixer_put_Mono_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3804  HRESULT WINAPI IAMAudioInputMixer_get_Mono_Proxy(IAMAudioInputMixer *This,WINBOOL *pfMono);
3805  void __RPC_STUB IAMAudioInputMixer_get_Mono_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3806  HRESULT WINAPI IAMAudioInputMixer_put_MixLevel_Proxy(IAMAudioInputMixer *This,double Level);
3807  void __RPC_STUB IAMAudioInputMixer_put_MixLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3808  HRESULT WINAPI IAMAudioInputMixer_get_MixLevel_Proxy(IAMAudioInputMixer *This,double *pLevel);
3809  void __RPC_STUB IAMAudioInputMixer_get_MixLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3810  HRESULT WINAPI IAMAudioInputMixer_put_Pan_Proxy(IAMAudioInputMixer *This,double Pan);
3811  void __RPC_STUB IAMAudioInputMixer_put_Pan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3812  HRESULT WINAPI IAMAudioInputMixer_get_Pan_Proxy(IAMAudioInputMixer *This,double *pPan);
3813  void __RPC_STUB IAMAudioInputMixer_get_Pan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3814  HRESULT WINAPI IAMAudioInputMixer_put_Loudness_Proxy(IAMAudioInputMixer *This,WINBOOL fLoudness);
3815  void __RPC_STUB IAMAudioInputMixer_put_Loudness_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3816  HRESULT WINAPI IAMAudioInputMixer_get_Loudness_Proxy(IAMAudioInputMixer *This,WINBOOL *pfLoudness);
3817  void __RPC_STUB IAMAudioInputMixer_get_Loudness_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3818  HRESULT WINAPI IAMAudioInputMixer_put_Treble_Proxy(IAMAudioInputMixer *This,double Treble);
3819  void __RPC_STUB IAMAudioInputMixer_put_Treble_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3820  HRESULT WINAPI IAMAudioInputMixer_get_Treble_Proxy(IAMAudioInputMixer *This,double *pTreble);
3821  void __RPC_STUB IAMAudioInputMixer_get_Treble_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3822  HRESULT WINAPI IAMAudioInputMixer_get_TrebleRange_Proxy(IAMAudioInputMixer *This,double *pRange);
3823  void __RPC_STUB IAMAudioInputMixer_get_TrebleRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3824  HRESULT WINAPI IAMAudioInputMixer_put_Bass_Proxy(IAMAudioInputMixer *This,double Bass);
3825  void __RPC_STUB IAMAudioInputMixer_put_Bass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3826  HRESULT WINAPI IAMAudioInputMixer_get_Bass_Proxy(IAMAudioInputMixer *This,double *pBass);
3827  void __RPC_STUB IAMAudioInputMixer_get_Bass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3828  HRESULT WINAPI IAMAudioInputMixer_get_BassRange_Proxy(IAMAudioInputMixer *This,double *pRange);
3829  void __RPC_STUB IAMAudioInputMixer_get_BassRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3830#endif
3831
3832#ifndef __IAMBufferNegotiation_INTERFACE_DEFINED__
3833#define __IAMBufferNegotiation_INTERFACE_DEFINED__
3834  EXTERN_C const IID IID_IAMBufferNegotiation;
3835#if defined(__cplusplus) && !defined(CINTERFACE)
3836  struct IAMBufferNegotiation : public IUnknown {
3837  public:
3838    virtual HRESULT WINAPI SuggestAllocatorProperties(const ALLOCATOR_PROPERTIES *pprop) = 0;
3839    virtual HRESULT WINAPI GetAllocatorProperties(ALLOCATOR_PROPERTIES *pprop) = 0;
3840  };
3841#else
3842  typedef struct IAMBufferNegotiationVtbl {
3843    BEGIN_INTERFACE
3844      HRESULT (WINAPI *QueryInterface)(IAMBufferNegotiation *This,REFIID riid,void **ppvObject);
3845      ULONG (WINAPI *AddRef)(IAMBufferNegotiation *This);
3846      ULONG (WINAPI *Release)(IAMBufferNegotiation *This);
3847      HRESULT (WINAPI *SuggestAllocatorProperties)(IAMBufferNegotiation *This,const ALLOCATOR_PROPERTIES *pprop);
3848      HRESULT (WINAPI *GetAllocatorProperties)(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
3849    END_INTERFACE
3850  } IAMBufferNegotiationVtbl;
3851  struct IAMBufferNegotiation {
3852    CONST_VTBL struct IAMBufferNegotiationVtbl *lpVtbl;
3853  };
3854#ifdef COBJMACROS
3855#define IAMBufferNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3856#define IAMBufferNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This)
3857#define IAMBufferNegotiation_Release(This) (This)->lpVtbl->Release(This)
3858#define IAMBufferNegotiation_SuggestAllocatorProperties(This,pprop) (This)->lpVtbl->SuggestAllocatorProperties(This,pprop)
3859#define IAMBufferNegotiation_GetAllocatorProperties(This,pprop) (This)->lpVtbl->GetAllocatorProperties(This,pprop)
3860#endif
3861#endif
3862  HRESULT WINAPI IAMBufferNegotiation_SuggestAllocatorProperties_Proxy(IAMBufferNegotiation *This,const ALLOCATOR_PROPERTIES *pprop);
3863  void __RPC_STUB IAMBufferNegotiation_SuggestAllocatorProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3864  HRESULT WINAPI IAMBufferNegotiation_GetAllocatorProperties_Proxy(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
3865  void __RPC_STUB IAMBufferNegotiation_GetAllocatorProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3866#endif
3867
3868  typedef enum tagAnalogVideoStandard {
3869    AnalogVideo_None = 0,AnalogVideo_NTSC_M = 0x1,AnalogVideo_NTSC_M_J = 0x2,AnalogVideo_NTSC_433 = 0x4,AnalogVideo_PAL_B = 0x10,
3870    AnalogVideo_PAL_D = 0x20,AnalogVideo_PAL_G = 0x40,AnalogVideo_PAL_H = 0x80,AnalogVideo_PAL_I = 0x100,AnalogVideo_PAL_M = 0x200,
3871    AnalogVideo_PAL_N = 0x400,AnalogVideo_PAL_60 = 0x800,AnalogVideo_SECAM_B = 0x1000,AnalogVideo_SECAM_D = 0x2000,AnalogVideo_SECAM_G = 0x4000,
3872    AnalogVideo_SECAM_H = 0x8000,AnalogVideo_SECAM_K = 0x10000,AnalogVideo_SECAM_K1 = 0x20000,AnalogVideo_SECAM_L = 0x40000,AnalogVideo_SECAM_L1 = 0x80000,
3873    AnalogVideo_PAL_N_COMBO = 0x100000,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,AnalogVideoMask_MCE_PAL = AnalogVideo_PAL_B | AnalogVideo_PAL_D | AnalogVideo_PAL_G | AnalogVideo_PAL_H | AnalogVideo_PAL_I,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
3874  } AnalogVideoStandard;
3875
3876  typedef enum tagTunerInputType {
3877    TunerInputCable = 0,TunerInputAntenna = TunerInputCable + 1
3878  } TunerInputType;
3879
3880#define AnalogVideo_NTSC_Mask 0x00000007
3881#define AnalogVideo_PAL_Mask 0x00100FF0
3882#define AnalogVideo_SECAM_Mask 0x000FF000
3883
3884  typedef enum __MIDL___MIDL_itf_strmif_0173_0001 {
3885    VideoCopyProtectionMacrovisionBasic = 0,VideoCopyProtectionMacrovisionCBI = VideoCopyProtectionMacrovisionBasic + 1
3886  } VideoCopyProtectionType;
3887
3888  typedef enum tagPhysicalConnectorType {
3889    PhysConn_Video_Tuner = 1,
3890    PhysConn_Video_Composite,PhysConn_Video_SVideo,PhysConn_Video_RGB,
3891    PhysConn_Video_YRYBY,PhysConn_Video_SerialDigital,PhysConn_Video_ParallelDigital,
3892    PhysConn_Video_SCSI,PhysConn_Video_AUX,PhysConn_Video_1394,PhysConn_Video_USB,
3893    PhysConn_Video_VideoDecoder,PhysConn_Video_VideoEncoder,PhysConn_Video_SCART,PhysConn_Video_Black,
3894    PhysConn_Audio_Tuner = 0x1000,PhysConn_Audio_Line = 0x1001,PhysConn_Audio_Mic = 0x1002,
3895    PhysConn_Audio_AESDigital = 0x1003,PhysConn_Audio_SPDIFDigital = 0x1004,
3896    PhysConn_Audio_SCSI = 0x1005,PhysConn_Audio_AUX = 0x1006,PhysConn_Audio_1394 = 0x1007,
3897    PhysConn_Audio_USB = 0x1008,PhysConn_Audio_AudioDecoder = 0x1009
3898  } PhysicalConnectorType;
3899
3900  extern RPC_IF_HANDLE __MIDL_itf_strmif_0173_v0_0_c_ifspec;
3901  extern RPC_IF_HANDLE __MIDL_itf_strmif_0173_v0_0_s_ifspec;
3902#ifndef __IAMAnalogVideoDecoder_INTERFACE_DEFINED__
3903#define __IAMAnalogVideoDecoder_INTERFACE_DEFINED__
3904  EXTERN_C const IID IID_IAMAnalogVideoDecoder;
3905#if defined(__cplusplus) && !defined(CINTERFACE)
3906  struct IAMAnalogVideoDecoder : public IUnknown {
3907  public:
3908    virtual HRESULT WINAPI get_AvailableTVFormats(long *lAnalogVideoStandard) = 0;
3909    virtual HRESULT WINAPI put_TVFormat(long lAnalogVideoStandard) = 0;
3910    virtual HRESULT WINAPI get_TVFormat(long *plAnalogVideoStandard) = 0;
3911    virtual HRESULT WINAPI get_HorizontalLocked(long *plLocked) = 0;
3912    virtual HRESULT WINAPI put_VCRHorizontalLocking(long lVCRHorizontalLocking) = 0;
3913    virtual HRESULT WINAPI get_VCRHorizontalLocking(long *plVCRHorizontalLocking) = 0;
3914    virtual HRESULT WINAPI get_NumberOfLines(long *plNumberOfLines) = 0;
3915    virtual HRESULT WINAPI put_OutputEnable(long lOutputEnable) = 0;
3916    virtual HRESULT WINAPI get_OutputEnable(long *plOutputEnable) = 0;
3917  };
3918#else
3919  typedef struct IAMAnalogVideoDecoderVtbl {
3920    BEGIN_INTERFACE
3921      HRESULT (WINAPI *QueryInterface)(IAMAnalogVideoDecoder *This,REFIID riid,void **ppvObject);
3922      ULONG (WINAPI *AddRef)(IAMAnalogVideoDecoder *This);
3923      ULONG (WINAPI *Release)(IAMAnalogVideoDecoder *This);
3924      HRESULT (WINAPI *get_AvailableTVFormats)(IAMAnalogVideoDecoder *This,long *lAnalogVideoStandard);
3925      HRESULT (WINAPI *put_TVFormat)(IAMAnalogVideoDecoder *This,long lAnalogVideoStandard);
3926      HRESULT (WINAPI *get_TVFormat)(IAMAnalogVideoDecoder *This,long *plAnalogVideoStandard);
3927      HRESULT (WINAPI *get_HorizontalLocked)(IAMAnalogVideoDecoder *This,long *plLocked);
3928      HRESULT (WINAPI *put_VCRHorizontalLocking)(IAMAnalogVideoDecoder *This,long lVCRHorizontalLocking);
3929      HRESULT (WINAPI *get_VCRHorizontalLocking)(IAMAnalogVideoDecoder *This,long *plVCRHorizontalLocking);
3930      HRESULT (WINAPI *get_NumberOfLines)(IAMAnalogVideoDecoder *This,long *plNumberOfLines);
3931      HRESULT (WINAPI *put_OutputEnable)(IAMAnalogVideoDecoder *This,long lOutputEnable);
3932      HRESULT (WINAPI *get_OutputEnable)(IAMAnalogVideoDecoder *This,long *plOutputEnable);
3933    END_INTERFACE
3934  } IAMAnalogVideoDecoderVtbl;
3935  struct IAMAnalogVideoDecoder {
3936    CONST_VTBL struct IAMAnalogVideoDecoderVtbl *lpVtbl;
3937  };
3938#ifdef COBJMACROS
3939#define IAMAnalogVideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3940#define IAMAnalogVideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
3941#define IAMAnalogVideoDecoder_Release(This) (This)->lpVtbl->Release(This)
3942#define IAMAnalogVideoDecoder_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
3943#define IAMAnalogVideoDecoder_put_TVFormat(This,lAnalogVideoStandard) (This)->lpVtbl->put_TVFormat(This,lAnalogVideoStandard)
3944#define IAMAnalogVideoDecoder_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
3945#define IAMAnalogVideoDecoder_get_HorizontalLocked(This,plLocked) (This)->lpVtbl->get_HorizontalLocked(This,plLocked)
3946#define IAMAnalogVideoDecoder_put_VCRHorizontalLocking(This,lVCRHorizontalLocking) (This)->lpVtbl->put_VCRHorizontalLocking(This,lVCRHorizontalLocking)
3947#define IAMAnalogVideoDecoder_get_VCRHorizontalLocking(This,plVCRHorizontalLocking) (This)->lpVtbl->get_VCRHorizontalLocking(This,plVCRHorizontalLocking)
3948#define IAMAnalogVideoDecoder_get_NumberOfLines(This,plNumberOfLines) (This)->lpVtbl->get_NumberOfLines(This,plNumberOfLines)
3949#define IAMAnalogVideoDecoder_put_OutputEnable(This,lOutputEnable) (This)->lpVtbl->put_OutputEnable(This,lOutputEnable)
3950#define IAMAnalogVideoDecoder_get_OutputEnable(This,plOutputEnable) (This)->lpVtbl->get_OutputEnable(This,plOutputEnable)
3951#endif
3952#endif
3953  HRESULT WINAPI IAMAnalogVideoDecoder_get_AvailableTVFormats_Proxy(IAMAnalogVideoDecoder *This,long *lAnalogVideoStandard);
3954  void __RPC_STUB IAMAnalogVideoDecoder_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3955  HRESULT WINAPI IAMAnalogVideoDecoder_put_TVFormat_Proxy(IAMAnalogVideoDecoder *This,long lAnalogVideoStandard);
3956  void __RPC_STUB IAMAnalogVideoDecoder_put_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3957  HRESULT WINAPI IAMAnalogVideoDecoder_get_TVFormat_Proxy(IAMAnalogVideoDecoder *This,long *plAnalogVideoStandard);
3958  void __RPC_STUB IAMAnalogVideoDecoder_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3959  HRESULT WINAPI IAMAnalogVideoDecoder_get_HorizontalLocked_Proxy(IAMAnalogVideoDecoder *This,long *plLocked);
3960  void __RPC_STUB IAMAnalogVideoDecoder_get_HorizontalLocked_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3961  HRESULT WINAPI IAMAnalogVideoDecoder_put_VCRHorizontalLocking_Proxy(IAMAnalogVideoDecoder *This,long lVCRHorizontalLocking);
3962  void __RPC_STUB IAMAnalogVideoDecoder_put_VCRHorizontalLocking_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3963  HRESULT WINAPI IAMAnalogVideoDecoder_get_VCRHorizontalLocking_Proxy(IAMAnalogVideoDecoder *This,long *plVCRHorizontalLocking);
3964  void __RPC_STUB IAMAnalogVideoDecoder_get_VCRHorizontalLocking_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3965  HRESULT WINAPI IAMAnalogVideoDecoder_get_NumberOfLines_Proxy(IAMAnalogVideoDecoder *This,long *plNumberOfLines);
3966  void __RPC_STUB IAMAnalogVideoDecoder_get_NumberOfLines_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3967  HRESULT WINAPI IAMAnalogVideoDecoder_put_OutputEnable_Proxy(IAMAnalogVideoDecoder *This,long lOutputEnable);
3968  void __RPC_STUB IAMAnalogVideoDecoder_put_OutputEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3969  HRESULT WINAPI IAMAnalogVideoDecoder_get_OutputEnable_Proxy(IAMAnalogVideoDecoder *This,long *plOutputEnable);
3970  void __RPC_STUB IAMAnalogVideoDecoder_get_OutputEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3971#endif
3972
3973  typedef enum tagVideoProcAmpProperty {
3974    VideoProcAmp_Brightness = 0,
3975    VideoProcAmp_Contrast,VideoProcAmp_Hue,VideoProcAmp_Saturation,VideoProcAmp_Sharpness,
3976    VideoProcAmp_Gamma,VideoProcAmp_ColorEnable,VideoProcAmp_WhiteBalance,
3977    VideoProcAmp_BacklightCompensation,VideoProcAmp_Gain
3978  } VideoProcAmpProperty;
3979
3980  typedef enum tagVideoProcAmpFlags {
3981    VideoProcAmp_Flags_Auto = 0x1,VideoProcAmp_Flags_Manual = 0x2
3982  } VideoProcAmpFlags;
3983
3984  extern RPC_IF_HANDLE __MIDL_itf_strmif_0174_v0_0_c_ifspec;
3985  extern RPC_IF_HANDLE __MIDL_itf_strmif_0174_v0_0_s_ifspec;
3986#ifndef __IAMVideoProcAmp_INTERFACE_DEFINED__
3987#define __IAMVideoProcAmp_INTERFACE_DEFINED__
3988  EXTERN_C const IID IID_IAMVideoProcAmp;
3989#if defined(__cplusplus) && !defined(CINTERFACE)
3990  struct IAMVideoProcAmp : public IUnknown {
3991  public:
3992    virtual HRESULT WINAPI GetRange(long Property,long *pMin,long *pMax,long *pSteppingDelta,long *pDefault,long *pCapsFlags) = 0;
3993    virtual HRESULT WINAPI Set(long Property,long lValue,long Flags) = 0;
3994    virtual HRESULT WINAPI Get(long Property,long *lValue,long *Flags) = 0;
3995  };
3996#else
3997  typedef struct IAMVideoProcAmpVtbl {
3998    BEGIN_INTERFACE
3999      HRESULT (WINAPI *QueryInterface)(IAMVideoProcAmp *This,REFIID riid,void **ppvObject);
4000      ULONG (WINAPI *AddRef)(IAMVideoProcAmp *This);
4001      ULONG (WINAPI *Release)(IAMVideoProcAmp *This);
4002      HRESULT (WINAPI *GetRange)(IAMVideoProcAmp *This,long Property,long *pMin,long *pMax,long *pSteppingDelta,long *pDefault,long *pCapsFlags);
4003      HRESULT (WINAPI *Set)(IAMVideoProcAmp *This,long Property,long lValue,long Flags);
4004      HRESULT (WINAPI *Get)(IAMVideoProcAmp *This,long Property,long *lValue,long *Flags);
4005    END_INTERFACE
4006  } IAMVideoProcAmpVtbl;
4007  struct IAMVideoProcAmp {
4008    CONST_VTBL struct IAMVideoProcAmpVtbl *lpVtbl;
4009  };
4010#ifdef COBJMACROS
4011#define IAMVideoProcAmp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4012#define IAMVideoProcAmp_AddRef(This) (This)->lpVtbl->AddRef(This)
4013#define IAMVideoProcAmp_Release(This) (This)->lpVtbl->Release(This)
4014#define IAMVideoProcAmp_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
4015#define IAMVideoProcAmp_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
4016#define IAMVideoProcAmp_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
4017#endif
4018#endif
4019  HRESULT WINAPI IAMVideoProcAmp_GetRange_Proxy(IAMVideoProcAmp *This,long Property,long *pMin,long *pMax,long *pSteppingDelta,long *pDefault,long *pCapsFlags);
4020  void __RPC_STUB IAMVideoProcAmp_GetRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4021  HRESULT WINAPI IAMVideoProcAmp_Set_Proxy(IAMVideoProcAmp *This,long Property,long lValue,long Flags);
4022  void __RPC_STUB IAMVideoProcAmp_Set_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4023  HRESULT WINAPI IAMVideoProcAmp_Get_Proxy(IAMVideoProcAmp *This,long Property,long *lValue,long *Flags);
4024  void __RPC_STUB IAMVideoProcAmp_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4025#endif
4026
4027  typedef enum tagCameraControlProperty {
4028    CameraControl_Pan = 0,
4029    CameraControl_Tilt,CameraControl_Roll,CameraControl_Zoom,CameraControl_Exposure,
4030    CameraControl_Iris,CameraControl_Focus
4031  } CameraControlProperty;
4032
4033  typedef enum tagCameraControlFlags {
4034    CameraControl_Flags_Auto = 0x1,CameraControl_Flags_Manual = 0x2
4035  } CameraControlFlags;
4036
4037  extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_c_ifspec;
4038  extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_s_ifspec;
4039#ifndef __IAMCameraControl_INTERFACE_DEFINED__
4040#define __IAMCameraControl_INTERFACE_DEFINED__
4041  EXTERN_C const IID IID_IAMCameraControl;
4042#if defined(__cplusplus) && !defined(CINTERFACE)
4043  struct IAMCameraControl : public IUnknown {
4044  public:
4045    virtual HRESULT WINAPI GetRange(long Property,long *pMin,long *pMax,long *pSteppingDelta,long *pDefault,long *pCapsFlags) = 0;
4046    virtual HRESULT WINAPI Set(long Property,long lValue,long Flags) = 0;
4047    virtual HRESULT WINAPI Get(long Property,long *lValue,long *Flags) = 0;
4048  };
4049#else
4050  typedef struct IAMCameraControlVtbl {
4051    BEGIN_INTERFACE
4052      HRESULT (WINAPI *QueryInterface)(IAMCameraControl *This,REFIID riid,void **ppvObject);
4053      ULONG (WINAPI *AddRef)(IAMCameraControl *This);
4054      ULONG (WINAPI *Release)(IAMCameraControl *This);
4055      HRESULT (WINAPI *GetRange)(IAMCameraControl *This,long Property,long *pMin,long *pMax,long *pSteppingDelta,long *pDefault,long *pCapsFlags);
4056      HRESULT (WINAPI *Set)(IAMCameraControl *This,long Property,long lValue,long Flags);
4057      HRESULT (WINAPI *Get)(IAMCameraControl *This,long Property,long *lValue,long *Flags);
4058    END_INTERFACE
4059  } IAMCameraControlVtbl;
4060  struct IAMCameraControl {
4061    CONST_VTBL struct IAMCameraControlVtbl *lpVtbl;
4062  };
4063#ifdef COBJMACROS
4064#define IAMCameraControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4065#define IAMCameraControl_AddRef(This) (This)->lpVtbl->AddRef(This)
4066#define IAMCameraControl_Release(This) (This)->lpVtbl->Release(This)
4067#define IAMCameraControl_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
4068#define IAMCameraControl_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
4069#define IAMCameraControl_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
4070#endif
4071#endif
4072  HRESULT WINAPI IAMCameraControl_GetRange_Proxy(IAMCameraControl *This,long Property,long *pMin,long *pMax,long *pSteppingDelta,long *pDefault,long *pCapsFlags);
4073  void __RPC_STUB IAMCameraControl_GetRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4074  HRESULT WINAPI IAMCameraControl_Set_Proxy(IAMCameraControl *This,long Property,long lValue,long Flags);
4075  void __RPC_STUB IAMCameraControl_Set_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4076  HRESULT WINAPI IAMCameraControl_Get_Proxy(IAMCameraControl *This,long Property,long *lValue,long *Flags);
4077  void __RPC_STUB IAMCameraControl_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4078#endif
4079
4080  typedef enum tagVideoControlFlags {
4081    VideoControlFlag_FlipHorizontal = 0x1,VideoControlFlag_FlipVertical = 0x2,VideoControlFlag_ExternalTriggerEnable = 0x4,VideoControlFlag_Trigger = 0x8
4082  } VideoControlFlags;
4083
4084  extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_c_ifspec;
4085  extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_s_ifspec;
4086#ifndef __IAMVideoControl_INTERFACE_DEFINED__
4087#define __IAMVideoControl_INTERFACE_DEFINED__
4088  EXTERN_C const IID IID_IAMVideoControl;
4089#if defined(__cplusplus) && !defined(CINTERFACE)
4090  struct IAMVideoControl : public IUnknown {
4091  public:
4092    virtual HRESULT WINAPI GetCaps(IPin *pPin,long *pCapsFlags) = 0;
4093    virtual HRESULT WINAPI SetMode(IPin *pPin,long Mode) = 0;
4094    virtual HRESULT WINAPI GetMode(IPin *pPin,long *Mode) = 0;
4095    virtual HRESULT WINAPI GetCurrentActualFrameRate(IPin *pPin,LONGLONG *ActualFrameRate) = 0;
4096    virtual HRESULT WINAPI GetMaxAvailableFrameRate(IPin *pPin,long iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate) = 0;
4097    virtual HRESULT WINAPI GetFrameRateList(IPin *pPin,long iIndex,SIZE Dimensions,long *ListSize,LONGLONG **FrameRates) = 0;
4098  };
4099#else
4100  typedef struct IAMVideoControlVtbl {
4101    BEGIN_INTERFACE
4102      HRESULT (WINAPI *QueryInterface)(IAMVideoControl *This,REFIID riid,void **ppvObject);
4103      ULONG (WINAPI *AddRef)(IAMVideoControl *This);
4104      ULONG (WINAPI *Release)(IAMVideoControl *This);
4105      HRESULT (WINAPI *GetCaps)(IAMVideoControl *This,IPin *pPin,long *pCapsFlags);
4106      HRESULT (WINAPI *SetMode)(IAMVideoControl *This,IPin *pPin,long Mode);
4107      HRESULT (WINAPI *GetMode)(IAMVideoControl *This,IPin *pPin,long *Mode);
4108      HRESULT (WINAPI *GetCurrentActualFrameRate)(IAMVideoControl *This,IPin *pPin,LONGLONG *ActualFrameRate);
4109      HRESULT (WINAPI *GetMaxAvailableFrameRate)(IAMVideoControl *This,IPin *pPin,long iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate);
4110      HRESULT (WINAPI *GetFrameRateList)(IAMVideoControl *This,IPin *pPin,long iIndex,SIZE Dimensions,long *ListSize,LONGLONG **FrameRates);
4111    END_INTERFACE
4112  } IAMVideoControlVtbl;
4113  struct IAMVideoControl {
4114    CONST_VTBL struct IAMVideoControlVtbl *lpVtbl;
4115  };
4116#ifdef COBJMACROS
4117#define IAMVideoControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4118#define IAMVideoControl_AddRef(This) (This)->lpVtbl->AddRef(This)
4119#define IAMVideoControl_Release(This) (This)->lpVtbl->Release(This)
4120#define IAMVideoControl_GetCaps(This,pPin,pCapsFlags) (This)->lpVtbl->GetCaps(This,pPin,pCapsFlags)
4121#define IAMVideoControl_SetMode(This,pPin,Mode) (This)->lpVtbl->SetMode(This,pPin,Mode)
4122#define IAMVideoControl_GetMode(This,pPin,Mode) (This)->lpVtbl->GetMode(This,pPin,Mode)
4123#define IAMVideoControl_GetCurrentActualFrameRate(This,pPin,ActualFrameRate) (This)->lpVtbl->GetCurrentActualFrameRate(This,pPin,ActualFrameRate)
4124#define IAMVideoControl_GetMaxAvailableFrameRate(This,pPin,iIndex,Dimensions,MaxAvailableFrameRate) (This)->lpVtbl->GetMaxAvailableFrameRate(This,pPin,iIndex,Dimensions,MaxAvailableFrameRate)
4125#define IAMVideoControl_GetFrameRateList(This,pPin,iIndex,Dimensions,ListSize,FrameRates) (This)->lpVtbl->GetFrameRateList(This,pPin,iIndex,Dimensions,ListSize,FrameRates)
4126#endif
4127#endif
4128  HRESULT WINAPI IAMVideoControl_GetCaps_Proxy(IAMVideoControl *This,IPin *pPin,long *pCapsFlags);
4129  void __RPC_STUB IAMVideoControl_GetCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4130  HRESULT WINAPI IAMVideoControl_SetMode_Proxy(IAMVideoControl *This,IPin *pPin,long Mode);
4131  void __RPC_STUB IAMVideoControl_SetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4132  HRESULT WINAPI IAMVideoControl_GetMode_Proxy(IAMVideoControl *This,IPin *pPin,long *Mode);
4133  void __RPC_STUB IAMVideoControl_GetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4134  HRESULT WINAPI IAMVideoControl_GetCurrentActualFrameRate_Proxy(IAMVideoControl *This,IPin *pPin,LONGLONG *ActualFrameRate);
4135  void __RPC_STUB IAMVideoControl_GetCurrentActualFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4136  HRESULT WINAPI IAMVideoControl_GetMaxAvailableFrameRate_Proxy(IAMVideoControl *This,IPin *pPin,long iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate);
4137  void __RPC_STUB IAMVideoControl_GetMaxAvailableFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4138  HRESULT WINAPI IAMVideoControl_GetFrameRateList_Proxy(IAMVideoControl *This,IPin *pPin,long iIndex,SIZE Dimensions,long *ListSize,LONGLONG **FrameRates);
4139  void __RPC_STUB IAMVideoControl_GetFrameRateList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4140#endif
4141
4142#ifndef __IAMCrossbar_INTERFACE_DEFINED__
4143#define __IAMCrossbar_INTERFACE_DEFINED__
4144  EXTERN_C const IID IID_IAMCrossbar;
4145#if defined(__cplusplus) && !defined(CINTERFACE)
4146  struct IAMCrossbar : public IUnknown {
4147  public:
4148    virtual HRESULT WINAPI get_PinCounts(long *OutputPinCount,long *InputPinCount) = 0;
4149    virtual HRESULT WINAPI CanRoute(long OutputPinIndex,long InputPinIndex) = 0;
4150    virtual HRESULT WINAPI Route(long OutputPinIndex,long InputPinIndex) = 0;
4151    virtual HRESULT WINAPI get_IsRoutedTo(long OutputPinIndex,long *InputPinIndex) = 0;
4152    virtual HRESULT WINAPI get_CrossbarPinInfo(WINBOOL IsInputPin,long PinIndex,long *PinIndexRelated,long *PhysicalType) = 0;
4153  };
4154#else
4155  typedef struct IAMCrossbarVtbl {
4156    BEGIN_INTERFACE
4157      HRESULT (WINAPI *QueryInterface)(IAMCrossbar *This,REFIID riid,void **ppvObject);
4158      ULONG (WINAPI *AddRef)(IAMCrossbar *This);
4159      ULONG (WINAPI *Release)(IAMCrossbar *This);
4160      HRESULT (WINAPI *get_PinCounts)(IAMCrossbar *This,long *OutputPinCount,long *InputPinCount);
4161      HRESULT (WINAPI *CanRoute)(IAMCrossbar *This,long OutputPinIndex,long InputPinIndex);
4162      HRESULT (WINAPI *Route)(IAMCrossbar *This,long OutputPinIndex,long InputPinIndex);
4163      HRESULT (WINAPI *get_IsRoutedTo)(IAMCrossbar *This,long OutputPinIndex,long *InputPinIndex);
4164      HRESULT (WINAPI *get_CrossbarPinInfo)(IAMCrossbar *This,WINBOOL IsInputPin,long PinIndex,long *PinIndexRelated,long *PhysicalType);
4165    END_INTERFACE
4166  } IAMCrossbarVtbl;
4167  struct IAMCrossbar {
4168    CONST_VTBL struct IAMCrossbarVtbl *lpVtbl;
4169  };
4170#ifdef COBJMACROS
4171#define IAMCrossbar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4172#define IAMCrossbar_AddRef(This) (This)->lpVtbl->AddRef(This)
4173#define IAMCrossbar_Release(This) (This)->lpVtbl->Release(This)
4174#define IAMCrossbar_get_PinCounts(This,OutputPinCount,InputPinCount) (This)->lpVtbl->get_PinCounts(This,OutputPinCount,InputPinCount)
4175#define IAMCrossbar_CanRoute(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->CanRoute(This,OutputPinIndex,InputPinIndex)
4176#define IAMCrossbar_Route(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->Route(This,OutputPinIndex,InputPinIndex)
4177#define IAMCrossbar_get_IsRoutedTo(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->get_IsRoutedTo(This,OutputPinIndex,InputPinIndex)
4178#define IAMCrossbar_get_CrossbarPinInfo(This,IsInputPin,PinIndex,PinIndexRelated,PhysicalType) (This)->lpVtbl->get_CrossbarPinInfo(This,IsInputPin,PinIndex,PinIndexRelated,PhysicalType)
4179#endif
4180#endif
4181  HRESULT WINAPI IAMCrossbar_get_PinCounts_Proxy(IAMCrossbar *This,long *OutputPinCount,long *InputPinCount);
4182  void __RPC_STUB IAMCrossbar_get_PinCounts_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4183  HRESULT WINAPI IAMCrossbar_CanRoute_Proxy(IAMCrossbar *This,long OutputPinIndex,long InputPinIndex);
4184  void __RPC_STUB IAMCrossbar_CanRoute_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4185  HRESULT WINAPI IAMCrossbar_Route_Proxy(IAMCrossbar *This,long OutputPinIndex,long InputPinIndex);
4186  void __RPC_STUB IAMCrossbar_Route_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4187  HRESULT WINAPI IAMCrossbar_get_IsRoutedTo_Proxy(IAMCrossbar *This,long OutputPinIndex,long *InputPinIndex);
4188  void __RPC_STUB IAMCrossbar_get_IsRoutedTo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4189  HRESULT WINAPI IAMCrossbar_get_CrossbarPinInfo_Proxy(IAMCrossbar *This,WINBOOL IsInputPin,long PinIndex,long *PinIndexRelated,long *PhysicalType);
4190  void __RPC_STUB IAMCrossbar_get_CrossbarPinInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4191#endif
4192
4193  typedef enum tagAMTunerSubChannel {
4194    AMTUNER_SUBCHAN_NO_TUNE = -2,AMTUNER_SUBCHAN_DEFAULT = -1
4195  } AMTunerSubChannel;
4196
4197  typedef enum tagAMTunerSignalStrength {
4198    AMTUNER_HASNOSIGNALSTRENGTH = -1,AMTUNER_NOSIGNAL = 0,AMTUNER_SIGNALPRESENT = 1
4199  } AMTunerSignalStrength;
4200
4201  typedef enum tagAMTunerModeType {
4202    AMTUNER_MODE_DEFAULT = 0,AMTUNER_MODE_TV = 0x1,AMTUNER_MODE_FM_RADIO = 0x2,AMTUNER_MODE_AM_RADIO = 0x4,AMTUNER_MODE_DSS = 0x8
4203  } AMTunerModeType;
4204
4205  typedef enum tagAMTunerEventType {
4206    AMTUNER_EVENT_CHANGED = 0x1
4207  } AMTunerEventType;
4208
4209  extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_c_ifspec;
4210  extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_s_ifspec;
4211#ifndef __IAMTuner_INTERFACE_DEFINED__
4212#define __IAMTuner_INTERFACE_DEFINED__
4213  EXTERN_C const IID IID_IAMTuner;
4214#if defined(__cplusplus) && !defined(CINTERFACE)
4215  struct IAMTuner : public IUnknown {
4216  public:
4217    virtual HRESULT WINAPI put_Channel(long lChannel,long lVideoSubChannel,long lAudioSubChannel) = 0;
4218    virtual HRESULT WINAPI get_Channel(long *plChannel,long *plVideoSubChannel,long *plAudioSubChannel) = 0;
4219    virtual HRESULT WINAPI ChannelMinMax(long *lChannelMin,long *lChannelMax) = 0;
4220    virtual HRESULT WINAPI put_CountryCode(long lCountryCode) = 0;
4221    virtual HRESULT WINAPI get_CountryCode(long *plCountryCode) = 0;
4222    virtual HRESULT WINAPI put_TuningSpace(long lTuningSpace) = 0;
4223    virtual HRESULT WINAPI get_TuningSpace(long *plTuningSpace) = 0;
4224    virtual HRESULT WINAPI Logon(HANDLE hCurrentUser) = 0;
4225    virtual HRESULT WINAPI Logout(void) = 0;
4226    virtual HRESULT WINAPI SignalPresent(long *plSignalStrength) = 0;
4227    virtual HRESULT WINAPI put_Mode(AMTunerModeType lMode) = 0;
4228    virtual HRESULT WINAPI get_Mode(AMTunerModeType *plMode) = 0;
4229    virtual HRESULT WINAPI GetAvailableModes(long *plModes) = 0;
4230    virtual HRESULT WINAPI RegisterNotificationCallBack(IAMTunerNotification *pNotify,long lEvents) = 0;
4231    virtual HRESULT WINAPI UnRegisterNotificationCallBack(IAMTunerNotification *pNotify) = 0;
4232  };
4233#else
4234  typedef struct IAMTunerVtbl {
4235    BEGIN_INTERFACE
4236      HRESULT (WINAPI *QueryInterface)(IAMTuner *This,REFIID riid,void **ppvObject);
4237      ULONG (WINAPI *AddRef)(IAMTuner *This);
4238      ULONG (WINAPI *Release)(IAMTuner *This);
4239      HRESULT (WINAPI *put_Channel)(IAMTuner *This,long lChannel,long lVideoSubChannel,long lAudioSubChannel);
4240      HRESULT (WINAPI *get_Channel)(IAMTuner *This,long *plChannel,long *plVideoSubChannel,long *plAudioSubChannel);
4241      HRESULT (WINAPI *ChannelMinMax)(IAMTuner *This,long *lChannelMin,long *lChannelMax);
4242      HRESULT (WINAPI *put_CountryCode)(IAMTuner *This,long lCountryCode);
4243      HRESULT (WINAPI *get_CountryCode)(IAMTuner *This,long *plCountryCode);
4244      HRESULT (WINAPI *put_TuningSpace)(IAMTuner *This,long lTuningSpace);
4245      HRESULT (WINAPI *get_TuningSpace)(IAMTuner *This,long *plTuningSpace);
4246      HRESULT (WINAPI *Logon)(IAMTuner *This,HANDLE hCurrentUser);
4247      HRESULT (WINAPI *Logout)(IAMTuner *This);
4248      HRESULT (WINAPI *SignalPresent)(IAMTuner *This,long *plSignalStrength);
4249      HRESULT (WINAPI *put_Mode)(IAMTuner *This,AMTunerModeType lMode);
4250      HRESULT (WINAPI *get_Mode)(IAMTuner *This,AMTunerModeType *plMode);
4251      HRESULT (WINAPI *GetAvailableModes)(IAMTuner *This,long *plModes);
4252      HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify,long lEvents);
4253      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify);
4254    END_INTERFACE
4255  } IAMTunerVtbl;
4256  struct IAMTuner {
4257    CONST_VTBL struct IAMTunerVtbl *lpVtbl;
4258  };
4259#ifdef COBJMACROS
4260#define IAMTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4261#define IAMTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
4262#define IAMTuner_Release(This) (This)->lpVtbl->Release(This)
4263#define IAMTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
4264#define IAMTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
4265#define IAMTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
4266#define IAMTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
4267#define IAMTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
4268#define IAMTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
4269#define IAMTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
4270#define IAMTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
4271#define IAMTuner_Logout(This) (This)->lpVtbl->Logout(This)
4272#define IAMTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
4273#define IAMTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
4274#define IAMTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
4275#define IAMTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
4276#define IAMTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
4277#define IAMTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
4278#endif
4279#endif
4280  HRESULT WINAPI IAMTuner_put_Channel_Proxy(IAMTuner *This,long lChannel,long lVideoSubChannel,long lAudioSubChannel);
4281  void __RPC_STUB IAMTuner_put_Channel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4282  HRESULT WINAPI IAMTuner_get_Channel_Proxy(IAMTuner *This,long *plChannel,long *plVideoSubChannel,long *plAudioSubChannel);
4283  void __RPC_STUB IAMTuner_get_Channel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4284  HRESULT WINAPI IAMTuner_ChannelMinMax_Proxy(IAMTuner *This,long *lChannelMin,long *lChannelMax);
4285  void __RPC_STUB IAMTuner_ChannelMinMax_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4286  HRESULT WINAPI IAMTuner_put_CountryCode_Proxy(IAMTuner *This,long lCountryCode);
4287  void __RPC_STUB IAMTuner_put_CountryCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4288  HRESULT WINAPI IAMTuner_get_CountryCode_Proxy(IAMTuner *This,long *plCountryCode);
4289  void __RPC_STUB IAMTuner_get_CountryCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4290  HRESULT WINAPI IAMTuner_put_TuningSpace_Proxy(IAMTuner *This,long lTuningSpace);
4291  void __RPC_STUB IAMTuner_put_TuningSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4292  HRESULT WINAPI IAMTuner_get_TuningSpace_Proxy(IAMTuner *This,long *plTuningSpace);
4293  void __RPC_STUB IAMTuner_get_TuningSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4294  HRESULT WINAPI IAMTuner_Logon_Proxy(IAMTuner *This,HANDLE hCurrentUser);
4295  void __RPC_STUB IAMTuner_Logon_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4296  HRESULT WINAPI IAMTuner_Logout_Proxy(IAMTuner *This);
4297  void __RPC_STUB IAMTuner_Logout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4298  HRESULT WINAPI IAMTuner_SignalPresent_Proxy(IAMTuner *This,long *plSignalStrength);
4299  void __RPC_STUB IAMTuner_SignalPresent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4300  HRESULT WINAPI IAMTuner_put_Mode_Proxy(IAMTuner *This,AMTunerModeType lMode);
4301  void __RPC_STUB IAMTuner_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4302  HRESULT WINAPI IAMTuner_get_Mode_Proxy(IAMTuner *This,AMTunerModeType *plMode);
4303  void __RPC_STUB IAMTuner_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4304  HRESULT WINAPI IAMTuner_GetAvailableModes_Proxy(IAMTuner *This,long *plModes);
4305  void __RPC_STUB IAMTuner_GetAvailableModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4306  HRESULT WINAPI IAMTuner_RegisterNotificationCallBack_Proxy(IAMTuner *This,IAMTunerNotification *pNotify,long lEvents);
4307  void __RPC_STUB IAMTuner_RegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4308  HRESULT WINAPI IAMTuner_UnRegisterNotificationCallBack_Proxy(IAMTuner *This,IAMTunerNotification *pNotify);
4309  void __RPC_STUB IAMTuner_UnRegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4310#endif
4311
4312#ifndef __IAMTunerNotification_INTERFACE_DEFINED__
4313#define __IAMTunerNotification_INTERFACE_DEFINED__
4314  EXTERN_C const IID IID_IAMTunerNotification;
4315#if defined(__cplusplus) && !defined(CINTERFACE)
4316  struct IAMTunerNotification : public IUnknown {
4317  public:
4318    virtual HRESULT WINAPI OnEvent(AMTunerEventType Event) = 0;
4319  };
4320#else
4321  typedef struct IAMTunerNotificationVtbl {
4322    BEGIN_INTERFACE
4323      HRESULT (WINAPI *QueryInterface)(IAMTunerNotification *This,REFIID riid,void **ppvObject);
4324      ULONG (WINAPI *AddRef)(IAMTunerNotification *This);
4325      ULONG (WINAPI *Release)(IAMTunerNotification *This);
4326      HRESULT (WINAPI *OnEvent)(IAMTunerNotification *This,AMTunerEventType Event);
4327    END_INTERFACE
4328  } IAMTunerNotificationVtbl;
4329  struct IAMTunerNotification {
4330    CONST_VTBL struct IAMTunerNotificationVtbl *lpVtbl;
4331  };
4332#ifdef COBJMACROS
4333#define IAMTunerNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4334#define IAMTunerNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
4335#define IAMTunerNotification_Release(This) (This)->lpVtbl->Release(This)
4336#define IAMTunerNotification_OnEvent(This,Event) (This)->lpVtbl->OnEvent(This,Event)
4337#endif
4338#endif
4339  HRESULT WINAPI IAMTunerNotification_OnEvent_Proxy(IAMTunerNotification *This,AMTunerEventType Event);
4340  void __RPC_STUB IAMTunerNotification_OnEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4341#endif
4342
4343#ifndef __IAMTVTuner_INTERFACE_DEFINED__
4344#define __IAMTVTuner_INTERFACE_DEFINED__
4345  EXTERN_C const IID IID_IAMTVTuner;
4346#if defined(__cplusplus) && !defined(CINTERFACE)
4347  struct IAMTVTuner : public IAMTuner {
4348  public:
4349    virtual HRESULT WINAPI get_AvailableTVFormats(long *lAnalogVideoStandard) = 0;
4350    virtual HRESULT WINAPI get_TVFormat(long *plAnalogVideoStandard) = 0;
4351    virtual HRESULT WINAPI AutoTune(long lChannel,long *plFoundSignal) = 0;
4352    virtual HRESULT WINAPI StoreAutoTune(void) = 0;
4353    virtual HRESULT WINAPI get_NumInputConnections(long *plNumInputConnections) = 0;
4354    virtual HRESULT WINAPI put_InputType(long lIndex,TunerInputType InputType) = 0;
4355    virtual HRESULT WINAPI get_InputType(long lIndex,TunerInputType *pInputType) = 0;
4356    virtual HRESULT WINAPI put_ConnectInput(long lIndex) = 0;
4357    virtual HRESULT WINAPI get_ConnectInput(long *plIndex) = 0;
4358    virtual HRESULT WINAPI get_VideoFrequency(long *lFreq) = 0;
4359    virtual HRESULT WINAPI get_AudioFrequency(long *lFreq) = 0;
4360  };
4361#else
4362  typedef struct IAMTVTunerVtbl {
4363    BEGIN_INTERFACE
4364      HRESULT (WINAPI *QueryInterface)(IAMTVTuner *This,REFIID riid,void **ppvObject);
4365      ULONG (WINAPI *AddRef)(IAMTVTuner *This);
4366      ULONG (WINAPI *Release)(IAMTVTuner *This);
4367      HRESULT (WINAPI *put_Channel)(IAMTVTuner *This,long lChannel,long lVideoSubChannel,long lAudioSubChannel);
4368      HRESULT (WINAPI *get_Channel)(IAMTVTuner *This,long *plChannel,long *plVideoSubChannel,long *plAudioSubChannel);
4369      HRESULT (WINAPI *ChannelMinMax)(IAMTVTuner *This,long *lChannelMin,long *lChannelMax);
4370      HRESULT (WINAPI *put_CountryCode)(IAMTVTuner *This,long lCountryCode);
4371      HRESULT (WINAPI *get_CountryCode)(IAMTVTuner *This,long *plCountryCode);
4372      HRESULT (WINAPI *put_TuningSpace)(IAMTVTuner *This,long lTuningSpace);
4373      HRESULT (WINAPI *get_TuningSpace)(IAMTVTuner *This,long *plTuningSpace);
4374      HRESULT (WINAPI *Logon)(IAMTVTuner *This,HANDLE hCurrentUser);
4375      HRESULT (WINAPI *Logout)(IAMTVTuner *This);
4376      HRESULT (WINAPI *SignalPresent)(IAMTVTuner *This,long *plSignalStrength);
4377      HRESULT (WINAPI *put_Mode)(IAMTVTuner *This,AMTunerModeType lMode);
4378      HRESULT (WINAPI *get_Mode)(IAMTVTuner *This,AMTunerModeType *plMode);
4379      HRESULT (WINAPI *GetAvailableModes)(IAMTVTuner *This,long *plModes);
4380      HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTVTuner *This,IAMTunerNotification *pNotify,long lEvents);
4381      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVTuner *This,IAMTunerNotification *pNotify);
4382      HRESULT (WINAPI *get_AvailableTVFormats)(IAMTVTuner *This,long *lAnalogVideoStandard);
4383      HRESULT (WINAPI *get_TVFormat)(IAMTVTuner *This,long *plAnalogVideoStandard);
4384      HRESULT (WINAPI *AutoTune)(IAMTVTuner *This,long lChannel,long *plFoundSignal);
4385      HRESULT (WINAPI *StoreAutoTune)(IAMTVTuner *This);
4386      HRESULT (WINAPI *get_NumInputConnections)(IAMTVTuner *This,long *plNumInputConnections);
4387      HRESULT (WINAPI *put_InputType)(IAMTVTuner *This,long lIndex,TunerInputType InputType);
4388      HRESULT (WINAPI *get_InputType)(IAMTVTuner *This,long lIndex,TunerInputType *pInputType);
4389      HRESULT (WINAPI *put_ConnectInput)(IAMTVTuner *This,long lIndex);
4390      HRESULT (WINAPI *get_ConnectInput)(IAMTVTuner *This,long *plIndex);
4391      HRESULT (WINAPI *get_VideoFrequency)(IAMTVTuner *This,long *lFreq);
4392      HRESULT (WINAPI *get_AudioFrequency)(IAMTVTuner *This,long *lFreq);
4393    END_INTERFACE
4394  } IAMTVTunerVtbl;
4395  struct IAMTVTuner {
4396    CONST_VTBL struct IAMTVTunerVtbl *lpVtbl;
4397  };
4398#ifdef COBJMACROS
4399#define IAMTVTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4400#define IAMTVTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
4401#define IAMTVTuner_Release(This) (This)->lpVtbl->Release(This)
4402#define IAMTVTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
4403#define IAMTVTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
4404#define IAMTVTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
4405#define IAMTVTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
4406#define IAMTVTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
4407#define IAMTVTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
4408#define IAMTVTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
4409#define IAMTVTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
4410#define IAMTVTuner_Logout(This) (This)->lpVtbl->Logout(This)
4411#define IAMTVTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
4412#define IAMTVTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
4413#define IAMTVTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
4414#define IAMTVTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
4415#define IAMTVTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
4416#define IAMTVTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
4417#define IAMTVTuner_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
4418#define IAMTVTuner_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
4419#define IAMTVTuner_AutoTune(This,lChannel,plFoundSignal) (This)->lpVtbl->AutoTune(This,lChannel,plFoundSignal)
4420#define IAMTVTuner_StoreAutoTune(This) (This)->lpVtbl->StoreAutoTune(This)
4421#define IAMTVTuner_get_NumInputConnections(This,plNumInputConnections) (This)->lpVtbl->get_NumInputConnections(This,plNumInputConnections)
4422#define IAMTVTuner_put_InputType(This,lIndex,InputType) (This)->lpVtbl->put_InputType(This,lIndex,InputType)
4423#define IAMTVTuner_get_InputType(This,lIndex,pInputType) (This)->lpVtbl->get_InputType(This,lIndex,pInputType)
4424#define IAMTVTuner_put_ConnectInput(This,lIndex) (This)->lpVtbl->put_ConnectInput(This,lIndex)
4425#define IAMTVTuner_get_ConnectInput(This,plIndex) (This)->lpVtbl->get_ConnectInput(This,plIndex)
4426#define IAMTVTuner_get_VideoFrequency(This,lFreq) (This)->lpVtbl->get_VideoFrequency(This,lFreq)
4427#define IAMTVTuner_get_AudioFrequency(This,lFreq) (This)->lpVtbl->get_AudioFrequency(This,lFreq)
4428#endif
4429#endif
4430  HRESULT WINAPI IAMTVTuner_get_AvailableTVFormats_Proxy(IAMTVTuner *This,long *lAnalogVideoStandard);
4431  void __RPC_STUB IAMTVTuner_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4432  HRESULT WINAPI IAMTVTuner_get_TVFormat_Proxy(IAMTVTuner *This,long *plAnalogVideoStandard);
4433  void __RPC_STUB IAMTVTuner_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4434  HRESULT WINAPI IAMTVTuner_AutoTune_Proxy(IAMTVTuner *This,long lChannel,long *plFoundSignal);
4435  void __RPC_STUB IAMTVTuner_AutoTune_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4436  HRESULT WINAPI IAMTVTuner_StoreAutoTune_Proxy(IAMTVTuner *This);
4437  void __RPC_STUB IAMTVTuner_StoreAutoTune_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4438  HRESULT WINAPI IAMTVTuner_get_NumInputConnections_Proxy(IAMTVTuner *This,long *plNumInputConnections);
4439  void __RPC_STUB IAMTVTuner_get_NumInputConnections_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4440  HRESULT WINAPI IAMTVTuner_put_InputType_Proxy(IAMTVTuner *This,long lIndex,TunerInputType InputType);
4441  void __RPC_STUB IAMTVTuner_put_InputType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4442  HRESULT WINAPI IAMTVTuner_get_InputType_Proxy(IAMTVTuner *This,long lIndex,TunerInputType *pInputType);
4443  void __RPC_STUB IAMTVTuner_get_InputType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4444  HRESULT WINAPI IAMTVTuner_put_ConnectInput_Proxy(IAMTVTuner *This,long lIndex);
4445  void __RPC_STUB IAMTVTuner_put_ConnectInput_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4446  HRESULT WINAPI IAMTVTuner_get_ConnectInput_Proxy(IAMTVTuner *This,long *plIndex);
4447  void __RPC_STUB IAMTVTuner_get_ConnectInput_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4448  HRESULT WINAPI IAMTVTuner_get_VideoFrequency_Proxy(IAMTVTuner *This,long *lFreq);
4449  void __RPC_STUB IAMTVTuner_get_VideoFrequency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4450  HRESULT WINAPI IAMTVTuner_get_AudioFrequency_Proxy(IAMTVTuner *This,long *lFreq);
4451  void __RPC_STUB IAMTVTuner_get_AudioFrequency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4452#endif
4453
4454#ifndef __IBPCSatelliteTuner_INTERFACE_DEFINED__
4455#define __IBPCSatelliteTuner_INTERFACE_DEFINED__
4456  EXTERN_C const IID IID_IBPCSatelliteTuner;
4457#if defined(__cplusplus) && !defined(CINTERFACE)
4458  struct IBPCSatelliteTuner : public IAMTuner {
4459  public:
4460    virtual HRESULT WINAPI get_DefaultSubChannelTypes(long *plDefaultVideoType,long *plDefaultAudioType) = 0;
4461    virtual HRESULT WINAPI put_DefaultSubChannelTypes(long lDefaultVideoType,long lDefaultAudioType) = 0;
4462    virtual HRESULT WINAPI IsTapingPermitted(void) = 0;
4463  };
4464#else
4465  typedef struct IBPCSatelliteTunerVtbl {
4466    BEGIN_INTERFACE
4467      HRESULT (WINAPI *QueryInterface)(IBPCSatelliteTuner *This,REFIID riid,void **ppvObject);
4468      ULONG (WINAPI *AddRef)(IBPCSatelliteTuner *This);
4469      ULONG (WINAPI *Release)(IBPCSatelliteTuner *This);
4470      HRESULT (WINAPI *put_Channel)(IBPCSatelliteTuner *This,long lChannel,long lVideoSubChannel,long lAudioSubChannel);
4471      HRESULT (WINAPI *get_Channel)(IBPCSatelliteTuner *This,long *plChannel,long *plVideoSubChannel,long *plAudioSubChannel);
4472      HRESULT (WINAPI *ChannelMinMax)(IBPCSatelliteTuner *This,long *lChannelMin,long *lChannelMax);
4473      HRESULT (WINAPI *put_CountryCode)(IBPCSatelliteTuner *This,long lCountryCode);
4474      HRESULT (WINAPI *get_CountryCode)(IBPCSatelliteTuner *This,long *plCountryCode);
4475      HRESULT (WINAPI *put_TuningSpace)(IBPCSatelliteTuner *This,long lTuningSpace);
4476      HRESULT (WINAPI *get_TuningSpace)(IBPCSatelliteTuner *This,long *plTuningSpace);
4477      HRESULT (WINAPI *Logon)(IBPCSatelliteTuner *This,HANDLE hCurrentUser);
4478      HRESULT (WINAPI *Logout)(IBPCSatelliteTuner *This);
4479      HRESULT (WINAPI *SignalPresent)(IBPCSatelliteTuner *This,long *plSignalStrength);
4480      HRESULT (WINAPI *put_Mode)(IBPCSatelliteTuner *This,AMTunerModeType lMode);
4481      HRESULT (WINAPI *get_Mode)(IBPCSatelliteTuner *This,AMTunerModeType *plMode);
4482      HRESULT (WINAPI *GetAvailableModes)(IBPCSatelliteTuner *This,long *plModes);
4483      HRESULT (WINAPI *RegisterNotificationCallBack)(IBPCSatelliteTuner *This,IAMTunerNotification *pNotify,long lEvents);
4484      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IBPCSatelliteTuner *This,IAMTunerNotification *pNotify);
4485      HRESULT (WINAPI *get_DefaultSubChannelTypes)(IBPCSatelliteTuner *This,long *plDefaultVideoType,long *plDefaultAudioType);
4486      HRESULT (WINAPI *put_DefaultSubChannelTypes)(IBPCSatelliteTuner *This,long lDefaultVideoType,long lDefaultAudioType);
4487      HRESULT (WINAPI *IsTapingPermitted)(IBPCSatelliteTuner *This);
4488    END_INTERFACE
4489  } IBPCSatelliteTunerVtbl;
4490  struct IBPCSatelliteTuner {
4491    CONST_VTBL struct IBPCSatelliteTunerVtbl *lpVtbl;
4492  };
4493#ifdef COBJMACROS
4494#define IBPCSatelliteTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4495#define IBPCSatelliteTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
4496#define IBPCSatelliteTuner_Release(This) (This)->lpVtbl->Release(This)
4497#define IBPCSatelliteTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
4498#define IBPCSatelliteTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
4499#define IBPCSatelliteTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
4500#define IBPCSatelliteTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
4501#define IBPCSatelliteTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
4502#define IBPCSatelliteTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
4503#define IBPCSatelliteTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
4504#define IBPCSatelliteTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
4505#define IBPCSatelliteTuner_Logout(This) (This)->lpVtbl->Logout(This)
4506#define IBPCSatelliteTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
4507#define IBPCSatelliteTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
4508#define IBPCSatelliteTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
4509#define IBPCSatelliteTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
4510#define IBPCSatelliteTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
4511#define IBPCSatelliteTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
4512#define IBPCSatelliteTuner_get_DefaultSubChannelTypes(This,plDefaultVideoType,plDefaultAudioType) (This)->lpVtbl->get_DefaultSubChannelTypes(This,plDefaultVideoType,plDefaultAudioType)
4513#define IBPCSatelliteTuner_put_DefaultSubChannelTypes(This,lDefaultVideoType,lDefaultAudioType) (This)->lpVtbl->put_DefaultSubChannelTypes(This,lDefaultVideoType,lDefaultAudioType)
4514#define IBPCSatelliteTuner_IsTapingPermitted(This) (This)->lpVtbl->IsTapingPermitted(This)
4515#endif
4516#endif
4517  HRESULT WINAPI IBPCSatelliteTuner_get_DefaultSubChannelTypes_Proxy(IBPCSatelliteTuner *This,long *plDefaultVideoType,long *plDefaultAudioType);
4518  void __RPC_STUB IBPCSatelliteTuner_get_DefaultSubChannelTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4519  HRESULT WINAPI IBPCSatelliteTuner_put_DefaultSubChannelTypes_Proxy(IBPCSatelliteTuner *This,long lDefaultVideoType,long lDefaultAudioType);
4520  void __RPC_STUB IBPCSatelliteTuner_put_DefaultSubChannelTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4521  HRESULT WINAPI IBPCSatelliteTuner_IsTapingPermitted_Proxy(IBPCSatelliteTuner *This);
4522  void __RPC_STUB IBPCSatelliteTuner_IsTapingPermitted_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4523#endif
4524
4525  typedef enum tagTVAudioMode {
4526    AMTVAUDIO_MODE_MONO = 0x1,AMTVAUDIO_MODE_STEREO = 0x2,AMTVAUDIO_MODE_LANG_A = 0x10,AMTVAUDIO_MODE_LANG_B = 0x20,AMTVAUDIO_MODE_LANG_C = 0x40
4527  } TVAudioMode;
4528
4529  typedef enum tagAMTVAudioEventType {
4530    AMTVAUDIO_EVENT_CHANGED = 0x1
4531  } AMTVAudioEventType;
4532
4533  extern RPC_IF_HANDLE __MIDL_itf_strmif_0182_v0_0_c_ifspec;
4534  extern RPC_IF_HANDLE __MIDL_itf_strmif_0182_v0_0_s_ifspec;
4535#ifndef __IAMTVAudio_INTERFACE_DEFINED__
4536#define __IAMTVAudio_INTERFACE_DEFINED__
4537  EXTERN_C const IID IID_IAMTVAudio;
4538#if defined(__cplusplus) && !defined(CINTERFACE)
4539  struct IAMTVAudio : public IUnknown {
4540  public:
4541    virtual HRESULT WINAPI GetHardwareSupportedTVAudioModes(long *plModes) = 0;
4542    virtual HRESULT WINAPI GetAvailableTVAudioModes(long *plModes) = 0;
4543    virtual HRESULT WINAPI get_TVAudioMode(long *plMode) = 0;
4544    virtual HRESULT WINAPI put_TVAudioMode(long lMode) = 0;
4545    virtual HRESULT WINAPI RegisterNotificationCallBack(IAMTunerNotification *pNotify,long lEvents) = 0;
4546    virtual HRESULT WINAPI UnRegisterNotificationCallBack(IAMTunerNotification *pNotify) = 0;
4547  };
4548#else
4549  typedef struct IAMTVAudioVtbl {
4550    BEGIN_INTERFACE
4551      HRESULT (WINAPI *QueryInterface)(IAMTVAudio *This,REFIID riid,void **ppvObject);
4552      ULONG (WINAPI *AddRef)(IAMTVAudio *This);
4553      ULONG (WINAPI *Release)(IAMTVAudio *This);
4554      HRESULT (WINAPI *GetHardwareSupportedTVAudioModes)(IAMTVAudio *This,long *plModes);
4555      HRESULT (WINAPI *GetAvailableTVAudioModes)(IAMTVAudio *This,long *plModes);
4556      HRESULT (WINAPI *get_TVAudioMode)(IAMTVAudio *This,long *plMode);
4557      HRESULT (WINAPI *put_TVAudioMode)(IAMTVAudio *This,long lMode);
4558      HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify,long lEvents);
4559      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify);
4560    END_INTERFACE
4561  } IAMTVAudioVtbl;
4562  struct IAMTVAudio {
4563    CONST_VTBL struct IAMTVAudioVtbl *lpVtbl;
4564  };
4565#ifdef COBJMACROS
4566#define IAMTVAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4567#define IAMTVAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
4568#define IAMTVAudio_Release(This) (This)->lpVtbl->Release(This)
4569#define IAMTVAudio_GetHardwareSupportedTVAudioModes(This,plModes) (This)->lpVtbl->GetHardwareSupportedTVAudioModes(This,plModes)
4570#define IAMTVAudio_GetAvailableTVAudioModes(This,plModes) (This)->lpVtbl->GetAvailableTVAudioModes(This,plModes)
4571#define IAMTVAudio_get_TVAudioMode(This,plMode) (This)->lpVtbl->get_TVAudioMode(This,plMode)
4572#define IAMTVAudio_put_TVAudioMode(This,lMode) (This)->lpVtbl->put_TVAudioMode(This,lMode)
4573#define IAMTVAudio_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
4574#define IAMTVAudio_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
4575#endif
4576#endif
4577  HRESULT WINAPI IAMTVAudio_GetHardwareSupportedTVAudioModes_Proxy(IAMTVAudio *This,long *plModes);
4578  void __RPC_STUB IAMTVAudio_GetHardwareSupportedTVAudioModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4579  HRESULT WINAPI IAMTVAudio_GetAvailableTVAudioModes_Proxy(IAMTVAudio *This,long *plModes);
4580  void __RPC_STUB IAMTVAudio_GetAvailableTVAudioModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4581  HRESULT WINAPI IAMTVAudio_get_TVAudioMode_Proxy(IAMTVAudio *This,long *plMode);
4582  void __RPC_STUB IAMTVAudio_get_TVAudioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4583  HRESULT WINAPI IAMTVAudio_put_TVAudioMode_Proxy(IAMTVAudio *This,long lMode);
4584  void __RPC_STUB IAMTVAudio_put_TVAudioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4585  HRESULT WINAPI IAMTVAudio_RegisterNotificationCallBack_Proxy(IAMTVAudio *This,IAMTunerNotification *pNotify,long lEvents);
4586  void __RPC_STUB IAMTVAudio_RegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4587  HRESULT WINAPI IAMTVAudio_UnRegisterNotificationCallBack_Proxy(IAMTVAudio *This,IAMTunerNotification *pNotify);
4588  void __RPC_STUB IAMTVAudio_UnRegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4589#endif
4590
4591#ifndef __IAMTVAudioNotification_INTERFACE_DEFINED__
4592#define __IAMTVAudioNotification_INTERFACE_DEFINED__
4593  EXTERN_C const IID IID_IAMTVAudioNotification;
4594#if defined(__cplusplus) && !defined(CINTERFACE)
4595  struct IAMTVAudioNotification : public IUnknown {
4596  public:
4597    virtual HRESULT WINAPI OnEvent(AMTVAudioEventType Event) = 0;
4598  };
4599#else
4600  typedef struct IAMTVAudioNotificationVtbl {
4601    BEGIN_INTERFACE
4602      HRESULT (WINAPI *QueryInterface)(IAMTVAudioNotification *This,REFIID riid,void **ppvObject);
4603      ULONG (WINAPI *AddRef)(IAMTVAudioNotification *This);
4604      ULONG (WINAPI *Release)(IAMTVAudioNotification *This);
4605      HRESULT (WINAPI *OnEvent)(IAMTVAudioNotification *This,AMTVAudioEventType Event);
4606    END_INTERFACE
4607  } IAMTVAudioNotificationVtbl;
4608  struct IAMTVAudioNotification {
4609    CONST_VTBL struct IAMTVAudioNotificationVtbl *lpVtbl;
4610  };
4611#ifdef COBJMACROS
4612#define IAMTVAudioNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4613#define IAMTVAudioNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
4614#define IAMTVAudioNotification_Release(This) (This)->lpVtbl->Release(This)
4615#define IAMTVAudioNotification_OnEvent(This,Event) (This)->lpVtbl->OnEvent(This,Event)
4616#endif
4617#endif
4618  HRESULT WINAPI IAMTVAudioNotification_OnEvent_Proxy(IAMTVAudioNotification *This,AMTVAudioEventType Event);
4619  void __RPC_STUB IAMTVAudioNotification_OnEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4620#endif
4621
4622#ifndef __IAMAnalogVideoEncoder_INTERFACE_DEFINED__
4623#define __IAMAnalogVideoEncoder_INTERFACE_DEFINED__
4624  EXTERN_C const IID IID_IAMAnalogVideoEncoder;
4625#if defined(__cplusplus) && !defined(CINTERFACE)
4626  struct IAMAnalogVideoEncoder : public IUnknown {
4627  public:
4628    virtual HRESULT WINAPI get_AvailableTVFormats(long *lAnalogVideoStandard) = 0;
4629    virtual HRESULT WINAPI put_TVFormat(long lAnalogVideoStandard) = 0;
4630    virtual HRESULT WINAPI get_TVFormat(long *plAnalogVideoStandard) = 0;
4631    virtual HRESULT WINAPI put_CopyProtection(long lVideoCopyProtection) = 0;
4632    virtual HRESULT WINAPI get_CopyProtection(long *lVideoCopyProtection) = 0;
4633    virtual HRESULT WINAPI put_CCEnable(long lCCEnable) = 0;
4634    virtual HRESULT WINAPI get_CCEnable(long *lCCEnable) = 0;
4635  };
4636#else
4637  typedef struct IAMAnalogVideoEncoderVtbl {
4638    BEGIN_INTERFACE
4639      HRESULT (WINAPI *QueryInterface)(IAMAnalogVideoEncoder *This,REFIID riid,void **ppvObject);
4640      ULONG (WINAPI *AddRef)(IAMAnalogVideoEncoder *This);
4641      ULONG (WINAPI *Release)(IAMAnalogVideoEncoder *This);
4642      HRESULT (WINAPI *get_AvailableTVFormats)(IAMAnalogVideoEncoder *This,long *lAnalogVideoStandard);
4643      HRESULT (WINAPI *put_TVFormat)(IAMAnalogVideoEncoder *This,long lAnalogVideoStandard);
4644      HRESULT (WINAPI *get_TVFormat)(IAMAnalogVideoEncoder *This,long *plAnalogVideoStandard);
4645      HRESULT (WINAPI *put_CopyProtection)(IAMAnalogVideoEncoder *This,long lVideoCopyProtection);
4646      HRESULT (WINAPI *get_CopyProtection)(IAMAnalogVideoEncoder *This,long *lVideoCopyProtection);
4647      HRESULT (WINAPI *put_CCEnable)(IAMAnalogVideoEncoder *This,long lCCEnable);
4648      HRESULT (WINAPI *get_CCEnable)(IAMAnalogVideoEncoder *This,long *lCCEnable);
4649    END_INTERFACE
4650  } IAMAnalogVideoEncoderVtbl;
4651  struct IAMAnalogVideoEncoder {
4652    CONST_VTBL struct IAMAnalogVideoEncoderVtbl *lpVtbl;
4653  };
4654#ifdef COBJMACROS
4655#define IAMAnalogVideoEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4656#define IAMAnalogVideoEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
4657#define IAMAnalogVideoEncoder_Release(This) (This)->lpVtbl->Release(This)
4658#define IAMAnalogVideoEncoder_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
4659#define IAMAnalogVideoEncoder_put_TVFormat(This,lAnalogVideoStandard) (This)->lpVtbl->put_TVFormat(This,lAnalogVideoStandard)
4660#define IAMAnalogVideoEncoder_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
4661#define IAMAnalogVideoEncoder_put_CopyProtection(This,lVideoCopyProtection) (This)->lpVtbl->put_CopyProtection(This,lVideoCopyProtection)
4662#define IAMAnalogVideoEncoder_get_CopyProtection(This,lVideoCopyProtection) (This)->lpVtbl->get_CopyProtection(This,lVideoCopyProtection)
4663#define IAMAnalogVideoEncoder_put_CCEnable(This,lCCEnable) (This)->lpVtbl->put_CCEnable(This,lCCEnable)
4664#define IAMAnalogVideoEncoder_get_CCEnable(This,lCCEnable) (This)->lpVtbl->get_CCEnable(This,lCCEnable)
4665#endif
4666#endif
4667  HRESULT WINAPI IAMAnalogVideoEncoder_get_AvailableTVFormats_Proxy(IAMAnalogVideoEncoder *This,long *lAnalogVideoStandard);
4668  void __RPC_STUB IAMAnalogVideoEncoder_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4669  HRESULT WINAPI IAMAnalogVideoEncoder_put_TVFormat_Proxy(IAMAnalogVideoEncoder *This,long lAnalogVideoStandard);
4670  void __RPC_STUB IAMAnalogVideoEncoder_put_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4671  HRESULT WINAPI IAMAnalogVideoEncoder_get_TVFormat_Proxy(IAMAnalogVideoEncoder *This,long *plAnalogVideoStandard);
4672  void __RPC_STUB IAMAnalogVideoEncoder_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4673  HRESULT WINAPI IAMAnalogVideoEncoder_put_CopyProtection_Proxy(IAMAnalogVideoEncoder *This,long lVideoCopyProtection);
4674  void __RPC_STUB IAMAnalogVideoEncoder_put_CopyProtection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4675  HRESULT WINAPI IAMAnalogVideoEncoder_get_CopyProtection_Proxy(IAMAnalogVideoEncoder *This,long *lVideoCopyProtection);
4676  void __RPC_STUB IAMAnalogVideoEncoder_get_CopyProtection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4677  HRESULT WINAPI IAMAnalogVideoEncoder_put_CCEnable_Proxy(IAMAnalogVideoEncoder *This,long lCCEnable);
4678  void __RPC_STUB IAMAnalogVideoEncoder_put_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4679  HRESULT WINAPI IAMAnalogVideoEncoder_get_CCEnable_Proxy(IAMAnalogVideoEncoder *This,long *lCCEnable);
4680  void __RPC_STUB IAMAnalogVideoEncoder_get_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4681#endif
4682
4683  typedef enum __MIDL___MIDL_itf_strmif_0185_0001 {
4684    AMPROPERTY_PIN_CATEGORY = 0,AMPROPERTY_PIN_MEDIUM = AMPROPERTY_PIN_CATEGORY + 1
4685  } AMPROPERTY_PIN;
4686
4687#ifndef _IKsPropertySet_
4688#define _IKsPropertySet_
4689#define KSPROPERTY_SUPPORT_GET 1
4690#define KSPROPERTY_SUPPORT_SET 2
4691
4692  extern RPC_IF_HANDLE __MIDL_itf_strmif_0185_v0_0_c_ifspec;
4693  extern RPC_IF_HANDLE __MIDL_itf_strmif_0185_v0_0_s_ifspec;
4694#ifndef __IKsPropertySet_INTERFACE_DEFINED__
4695#define __IKsPropertySet_INTERFACE_DEFINED__
4696  EXTERN_C const IID IID_IKsPropertySet;
4697#if defined(__cplusplus) && !defined(CINTERFACE)
4698  struct IKsPropertySet : public IUnknown {
4699  public:
4700    virtual HRESULT WINAPI Set(REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData) = 0;
4701    virtual HRESULT WINAPI Get(REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData,DWORD *pcbReturned) = 0;
4702    virtual HRESULT WINAPI QuerySupported(REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport) = 0;
4703  };
4704#else
4705  typedef struct IKsPropertySetVtbl {
4706    BEGIN_INTERFACE
4707      HRESULT (WINAPI *QueryInterface)(IKsPropertySet *This,REFIID riid,void **ppvObject);
4708      ULONG (WINAPI *AddRef)(IKsPropertySet *This);
4709      ULONG (WINAPI *Release)(IKsPropertySet *This);
4710      HRESULT (WINAPI *Set)(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData);
4711      HRESULT (WINAPI *Get)(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData,DWORD *pcbReturned);
4712      HRESULT (WINAPI *QuerySupported)(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport);
4713    END_INTERFACE
4714  } IKsPropertySetVtbl;
4715  struct IKsPropertySet {
4716    CONST_VTBL struct IKsPropertySetVtbl *lpVtbl;
4717  };
4718#ifdef COBJMACROS
4719#define IKsPropertySet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4720#define IKsPropertySet_AddRef(This) (This)->lpVtbl->AddRef(This)
4721#define IKsPropertySet_Release(This) (This)->lpVtbl->Release(This)
4722#define IKsPropertySet_Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData) (This)->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData)
4723#define IKsPropertySet_Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned) (This)->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned)
4724#define IKsPropertySet_QuerySupported(This,guidPropSet,dwPropID,pTypeSupport) (This)->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport)
4725#endif
4726#endif
4727  HRESULT WINAPI IKsPropertySet_RemoteSet_Proxy(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,byte *pInstanceData,DWORD cbInstanceData,byte *pPropData,DWORD cbPropData);
4728  void __RPC_STUB IKsPropertySet_RemoteSet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4729  HRESULT WINAPI IKsPropertySet_RemoteGet_Proxy(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,byte *pInstanceData,DWORD cbInstanceData,byte *pPropData,DWORD cbPropData,DWORD *pcbReturned);
4730  void __RPC_STUB IKsPropertySet_RemoteGet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4731  HRESULT WINAPI IKsPropertySet_QuerySupported_Proxy(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport);
4732  void __RPC_STUB IKsPropertySet_QuerySupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4733#endif
4734#endif
4735
4736  extern RPC_IF_HANDLE __MIDL_itf_strmif_0186_v0_0_c_ifspec;
4737  extern RPC_IF_HANDLE __MIDL_itf_strmif_0186_v0_0_s_ifspec;
4738#ifndef __IMediaPropertyBag_INTERFACE_DEFINED__
4739#define __IMediaPropertyBag_INTERFACE_DEFINED__
4740  typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
4741
4742  EXTERN_C const IID IID_IMediaPropertyBag;
4743#if defined(__cplusplus) && !defined(CINTERFACE)
4744  struct IMediaPropertyBag : public IPropertyBag {
4745  public:
4746    virtual HRESULT WINAPI EnumProperty(ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue) = 0;
4747  };
4748#else
4749  typedef struct IMediaPropertyBagVtbl {
4750    BEGIN_INTERFACE
4751      HRESULT (WINAPI *QueryInterface)(IMediaPropertyBag *This,REFIID riid,void **ppvObject);
4752      ULONG (WINAPI *AddRef)(IMediaPropertyBag *This);
4753      ULONG (WINAPI *Release)(IMediaPropertyBag *This);
4754      HRESULT (WINAPI *Read)(IMediaPropertyBag *This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog);
4755      HRESULT (WINAPI *Write)(IMediaPropertyBag *This,LPCOLESTR pszPropName,VARIANT *pVar);
4756      HRESULT (WINAPI *EnumProperty)(IMediaPropertyBag *This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue);
4757    END_INTERFACE
4758  } IMediaPropertyBagVtbl;
4759  struct IMediaPropertyBag {
4760    CONST_VTBL struct IMediaPropertyBagVtbl *lpVtbl;
4761  };
4762#ifdef COBJMACROS
4763#define IMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4764#define IMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
4765#define IMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
4766#define IMediaPropertyBag_Read(This,pszPropName,pVar,pErrorLog) (This)->lpVtbl->Read(This,pszPropName,pVar,pErrorLog)
4767#define IMediaPropertyBag_Write(This,pszPropName,pVar) (This)->lpVtbl->Write(This,pszPropName,pVar)
4768#define IMediaPropertyBag_EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue) (This)->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue)
4769#endif
4770#endif
4771  HRESULT WINAPI IMediaPropertyBag_EnumProperty_Proxy(IMediaPropertyBag *This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue);
4772  void __RPC_STUB IMediaPropertyBag_EnumProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4773#endif
4774
4775#ifndef __IPersistMediaPropertyBag_INTERFACE_DEFINED__
4776#define __IPersistMediaPropertyBag_INTERFACE_DEFINED__
4777  typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
4778
4779  EXTERN_C const IID IID_IPersistMediaPropertyBag;
4780#if defined(__cplusplus) && !defined(CINTERFACE)
4781  struct IPersistMediaPropertyBag : public IPersist {
4782  public:
4783    virtual HRESULT WINAPI InitNew(void) = 0;
4784    virtual HRESULT WINAPI Load(IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog) = 0;
4785    virtual HRESULT WINAPI Save(IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties) = 0;
4786  };
4787#else
4788  typedef struct IPersistMediaPropertyBagVtbl {
4789    BEGIN_INTERFACE
4790      HRESULT (WINAPI *QueryInterface)(IPersistMediaPropertyBag *This,REFIID riid,void **ppvObject);
4791      ULONG (WINAPI *AddRef)(IPersistMediaPropertyBag *This);
4792      ULONG (WINAPI *Release)(IPersistMediaPropertyBag *This);
4793      HRESULT (WINAPI *GetClassID)(IPersistMediaPropertyBag *This,CLSID *pClassID);
4794      HRESULT (WINAPI *InitNew)(IPersistMediaPropertyBag *This);
4795      HRESULT (WINAPI *Load)(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog);
4796      HRESULT (WINAPI *Save)(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties);
4797    END_INTERFACE
4798  } IPersistMediaPropertyBagVtbl;
4799  struct IPersistMediaPropertyBag {
4800    CONST_VTBL struct IPersistMediaPropertyBagVtbl *lpVtbl;
4801  };
4802#ifdef COBJMACROS
4803#define IPersistMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4804#define IPersistMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
4805#define IPersistMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
4806#define IPersistMediaPropertyBag_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
4807#define IPersistMediaPropertyBag_InitNew(This) (This)->lpVtbl->InitNew(This)
4808#define IPersistMediaPropertyBag_Load(This,pPropBag,pErrorLog) (This)->lpVtbl->Load(This,pPropBag,pErrorLog)
4809#define IPersistMediaPropertyBag_Save(This,pPropBag,fClearDirty,fSaveAllProperties) (This)->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties)
4810#endif
4811#endif
4812  HRESULT WINAPI IPersistMediaPropertyBag_InitNew_Proxy(IPersistMediaPropertyBag *This);
4813  void __RPC_STUB IPersistMediaPropertyBag_InitNew_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4814  HRESULT WINAPI IPersistMediaPropertyBag_Load_Proxy(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog);
4815  void __RPC_STUB IPersistMediaPropertyBag_Load_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4816  HRESULT WINAPI IPersistMediaPropertyBag_Save_Proxy(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties);
4817  void __RPC_STUB IPersistMediaPropertyBag_Save_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4818#endif
4819
4820#ifndef __IAMPhysicalPinInfo_INTERFACE_DEFINED__
4821#define __IAMPhysicalPinInfo_INTERFACE_DEFINED__
4822  EXTERN_C const IID IID_IAMPhysicalPinInfo;
4823#if defined(__cplusplus) && !defined(CINTERFACE)
4824  struct IAMPhysicalPinInfo : public IUnknown {
4825  public:
4826    virtual HRESULT WINAPI GetPhysicalType(long *pType,LPOLESTR *ppszType) = 0;
4827  };
4828#else
4829  typedef struct IAMPhysicalPinInfoVtbl {
4830    BEGIN_INTERFACE
4831      HRESULT (WINAPI *QueryInterface)(IAMPhysicalPinInfo *This,REFIID riid,void **ppvObject);
4832      ULONG (WINAPI *AddRef)(IAMPhysicalPinInfo *This);
4833      ULONG (WINAPI *Release)(IAMPhysicalPinInfo *This);
4834      HRESULT (WINAPI *GetPhysicalType)(IAMPhysicalPinInfo *This,long *pType,LPOLESTR *ppszType);
4835    END_INTERFACE
4836  } IAMPhysicalPinInfoVtbl;
4837  struct IAMPhysicalPinInfo {
4838    CONST_VTBL struct IAMPhysicalPinInfoVtbl *lpVtbl;
4839  };
4840#ifdef COBJMACROS
4841#define IAMPhysicalPinInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4842#define IAMPhysicalPinInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
4843#define IAMPhysicalPinInfo_Release(This) (This)->lpVtbl->Release(This)
4844#define IAMPhysicalPinInfo_GetPhysicalType(This,pType,ppszType) (This)->lpVtbl->GetPhysicalType(This,pType,ppszType)
4845#endif
4846#endif
4847  HRESULT WINAPI IAMPhysicalPinInfo_GetPhysicalType_Proxy(IAMPhysicalPinInfo *This,long *pType,LPOLESTR *ppszType);
4848  void __RPC_STUB IAMPhysicalPinInfo_GetPhysicalType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4849#endif
4850
4851  typedef IAMPhysicalPinInfo *PAMPHYSICALPININFO;
4852
4853  extern RPC_IF_HANDLE __MIDL_itf_strmif_0338_v0_0_c_ifspec;
4854  extern RPC_IF_HANDLE __MIDL_itf_strmif_0338_v0_0_s_ifspec;
4855#ifndef __IAMExtDevice_INTERFACE_DEFINED__
4856#define __IAMExtDevice_INTERFACE_DEFINED__
4857  EXTERN_C const IID IID_IAMExtDevice;
4858#if defined(__cplusplus) && !defined(CINTERFACE)
4859  struct IAMExtDevice : public IUnknown {
4860  public:
4861    virtual HRESULT WINAPI GetCapability(long Capability,long *pValue,double *pdblValue) = 0;
4862    virtual HRESULT WINAPI get_ExternalDeviceID(LPOLESTR *ppszData) = 0;
4863    virtual HRESULT WINAPI get_ExternalDeviceVersion(LPOLESTR *ppszData) = 0;
4864    virtual HRESULT WINAPI put_DevicePower(long PowerMode) = 0;
4865    virtual HRESULT WINAPI get_DevicePower(long *pPowerMode) = 0;
4866    virtual HRESULT WINAPI Calibrate(HEVENT hEvent,long Mode,long *pStatus) = 0;
4867    virtual HRESULT WINAPI put_DevicePort(long DevicePort) = 0;
4868    virtual HRESULT WINAPI get_DevicePort(long *pDevicePort) = 0;
4869  };
4870#else
4871  typedef struct IAMExtDeviceVtbl {
4872    BEGIN_INTERFACE
4873      HRESULT (WINAPI *QueryInterface)(IAMExtDevice *This,REFIID riid,void **ppvObject);
4874      ULONG (WINAPI *AddRef)(IAMExtDevice *This);
4875      ULONG (WINAPI *Release)(IAMExtDevice *This);
4876      HRESULT (WINAPI *GetCapability)(IAMExtDevice *This,long Capability,long *pValue,double *pdblValue);
4877      HRESULT (WINAPI *get_ExternalDeviceID)(IAMExtDevice *This,LPOLESTR *ppszData);
4878      HRESULT (WINAPI *get_ExternalDeviceVersion)(IAMExtDevice *This,LPOLESTR *ppszData);
4879      HRESULT (WINAPI *put_DevicePower)(IAMExtDevice *This,long PowerMode);
4880      HRESULT (WINAPI *get_DevicePower)(IAMExtDevice *This,long *pPowerMode);
4881      HRESULT (WINAPI *Calibrate)(IAMExtDevice *This,HEVENT hEvent,long Mode,long *pStatus);
4882      HRESULT (WINAPI *put_DevicePort)(IAMExtDevice *This,long DevicePort);
4883      HRESULT (WINAPI *get_DevicePort)(IAMExtDevice *This,long *pDevicePort);
4884    END_INTERFACE
4885  } IAMExtDeviceVtbl;
4886  struct IAMExtDevice {
4887    CONST_VTBL struct IAMExtDeviceVtbl *lpVtbl;
4888  };
4889#ifdef COBJMACROS
4890#define IAMExtDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4891#define IAMExtDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
4892#define IAMExtDevice_Release(This) (This)->lpVtbl->Release(This)
4893#define IAMExtDevice_GetCapability(This,Capability,pValue,pdblValue) (This)->lpVtbl->GetCapability(This,Capability,pValue,pdblValue)
4894#define IAMExtDevice_get_ExternalDeviceID(This,ppszData) (This)->lpVtbl->get_ExternalDeviceID(This,ppszData)
4895#define IAMExtDevice_get_ExternalDeviceVersion(This,ppszData) (This)->lpVtbl->get_ExternalDeviceVersion(This,ppszData)
4896#define IAMExtDevice_put_DevicePower(This,PowerMode) (This)->lpVtbl->put_DevicePower(This,PowerMode)
4897#define IAMExtDevice_get_DevicePower(This,pPowerMode) (This)->lpVtbl->get_DevicePower(This,pPowerMode)
4898#define IAMExtDevice_Calibrate(This,hEvent,Mode,pStatus) (This)->lpVtbl->Calibrate(This,hEvent,Mode,pStatus)
4899#define IAMExtDevice_put_DevicePort(This,DevicePort) (This)->lpVtbl->put_DevicePort(This,DevicePort)
4900#define IAMExtDevice_get_DevicePort(This,pDevicePort) (This)->lpVtbl->get_DevicePort(This,pDevicePort)
4901#endif
4902#endif
4903  HRESULT WINAPI IAMExtDevice_GetCapability_Proxy(IAMExtDevice *This,long Capability,long *pValue,double *pdblValue);
4904  void __RPC_STUB IAMExtDevice_GetCapability_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4905  HRESULT WINAPI IAMExtDevice_get_ExternalDeviceID_Proxy(IAMExtDevice *This,LPOLESTR *ppszData);
4906  void __RPC_STUB IAMExtDevice_get_ExternalDeviceID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4907  HRESULT WINAPI IAMExtDevice_get_ExternalDeviceVersion_Proxy(IAMExtDevice *This,LPOLESTR *ppszData);
4908  void __RPC_STUB IAMExtDevice_get_ExternalDeviceVersion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4909  HRESULT WINAPI IAMExtDevice_put_DevicePower_Proxy(IAMExtDevice *This,long PowerMode);
4910  void __RPC_STUB IAMExtDevice_put_DevicePower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4911  HRESULT WINAPI IAMExtDevice_get_DevicePower_Proxy(IAMExtDevice *This,long *pPowerMode);
4912  void __RPC_STUB IAMExtDevice_get_DevicePower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4913  HRESULT WINAPI IAMExtDevice_Calibrate_Proxy(IAMExtDevice *This,HEVENT hEvent,long Mode,long *pStatus);
4914  void __RPC_STUB IAMExtDevice_Calibrate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4915  HRESULT WINAPI IAMExtDevice_put_DevicePort_Proxy(IAMExtDevice *This,long DevicePort);
4916  void __RPC_STUB IAMExtDevice_put_DevicePort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4917  HRESULT WINAPI IAMExtDevice_get_DevicePort_Proxy(IAMExtDevice *This,long *pDevicePort);
4918  void __RPC_STUB IAMExtDevice_get_DevicePort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
4919#endif
4920
4921  typedef IAMExtDevice *PEXTDEVICE;
4922
4923  extern RPC_IF_HANDLE __MIDL_itf_strmif_0339_v0_0_c_ifspec;
4924  extern RPC_IF_HANDLE __MIDL_itf_strmif_0339_v0_0_s_ifspec;
4925#ifndef __IAMExtTransport_INTERFACE_DEFINED__
4926#define __IAMExtTransport_INTERFACE_DEFINED__
4927  EXTERN_C const IID IID_IAMExtTransport;
4928#if defined(__cplusplus) && !defined(CINTERFACE)
4929  struct IAMExtTransport : public IUnknown {
4930  public:
4931    virtual HRESULT WINAPI GetCapability(long Capability,long *pValue,double *pdblValue) = 0;
4932    virtual HRESULT WINAPI put_MediaState(long State) = 0;
4933    virtual HRESULT WINAPI get_MediaState(long *pState) = 0;
4934    virtual HRESULT WINAPI put_LocalControl(long State) = 0;
4935    virtual HRESULT WINAPI get_LocalControl(long *pState) = 0;
4936    virtual HRESULT WINAPI GetStatus(long StatusItem,long *pValue) = 0;
4937    virtual HRESULT WINAPI GetTransportBasicParameters(long Param,long *pValue,LPOLESTR *ppszData) = 0;
4938    virtual HRESULT WINAPI SetTransportBasicParameters(long Param,long Value,LPCOLESTR pszData) = 0;
4939    virtual HRESULT WINAPI GetTransportVideoParameters(long Param,long *pValue) = 0;
4940    virtual HRESULT WINAPI SetTransportVideoParameters(long Param,long Value) = 0;
4941    virtual HRESULT WINAPI GetTransportAudioParameters(long Param,long *pValue) = 0;
4942    virtual HRESULT WINAPI SetTransportAudioParameters(long Param,long Value) = 0;
4943    virtual HRESULT WINAPI put_Mode(long Mode) = 0;
4944    virtual HRESULT WINAPI get_Mode(long *pMode) = 0;
4945    virtual HRESULT WINAPI put_Rate(double dblRate) = 0;
4946    virtual HRESULT WINAPI get_Rate(double *pdblRate) = 0;
4947    virtual HRESULT WINAPI GetChase(long *pEnabled,long *pOffset,HEVENT *phEvent) = 0;
4948    virtual HRESULT WINAPI SetChase(long Enable,long Offset,HEVENT hEvent) = 0;
4949    virtual HRESULT WINAPI GetBump(long *pSpeed,long *pDuration) = 0;
4950    virtual HRESULT WINAPI SetBump(long Speed,long Duration) = 0;
4951    virtual HRESULT WINAPI get_AntiClogControl(long *pEnabled) = 0;
4952    virtual HRESULT WINAPI put_AntiClogControl(long Enable) = 0;
4953    virtual HRESULT WINAPI GetEditPropertySet(long EditID,long *pState) = 0;
4954    virtual HRESULT WINAPI SetEditPropertySet(long *pEditID,long State) = 0;
4955    virtual HRESULT WINAPI GetEditProperty(long EditID,long Param,long *pValue) = 0;
4956    virtual HRESULT WINAPI SetEditProperty(long EditID,long Param,long Value) = 0;
4957    virtual HRESULT WINAPI get_EditStart(long *pValue) = 0;
4958    virtual HRESULT WINAPI put_EditStart(long Value) = 0;
4959  };
4960#else
4961  typedef struct IAMExtTransportVtbl {
4962    BEGIN_INTERFACE
4963      HRESULT (WINAPI *QueryInterface)(IAMExtTransport *This,REFIID riid,void **ppvObject);
4964      ULONG (WINAPI *AddRef)(IAMExtTransport *This);
4965      ULONG (WINAPI *Release)(IAMExtTransport *This);
4966      HRESULT (WINAPI *GetCapability)(IAMExtTransport *This,long Capability,long *pValue,double *pdblValue);
4967      HRESULT (WINAPI *put_MediaState)(IAMExtTransport *This,long State);
4968      HRESULT (WINAPI *get_MediaState)(IAMExtTransport *This,long *pState);
4969      HRESULT (WINAPI *put_LocalControl)(IAMExtTransport *This,long State);
4970      HRESULT (WINAPI *get_LocalControl)(IAMExtTransport *This,long *pState);
4971      HRESULT (WINAPI *GetStatus)(IAMExtTransport *This,long StatusItem,long *pValue);
4972      HRESULT (WINAPI *GetTransportBasicParameters)(IAMExtTransport *This,long Param,long *pValue,LPOLESTR *ppszData);
4973      HRESULT (WINAPI *SetTransportBasicParameters)(IAMExtTransport *This,long Param,long Value,LPCOLESTR pszData);
4974      HRESULT (WINAPI *GetTransportVideoParameters)(IAMExtTransport *This,long Param,long *pValue);
4975      HRESULT (WINAPI *SetTransportVideoParameters)(IAMExtTransport *This,long Param,long Value);
4976      HRESULT (WINAPI *GetTransportAudioParameters)(IAMExtTransport *This,long Param,long *pValue);
4977      HRESULT (WINAPI *SetTransportAudioParameters)(IAMExtTransport *This,long Param,long Value);
4978      HRESULT (WINAPI *put_Mode)(IAMExtTransport *This,long Mode);
4979      HRESULT (WINAPI *get_Mode)(IAMExtTransport *This,long *pMode);
4980      HRESULT (WINAPI *put_Rate)(IAMExtTransport *This,double dblRate);
4981      HRESULT (WINAPI *get_Rate)(IAMExtTransport *This,double *pdblRate);
4982      HRESULT (WINAPI *GetChase)(IAMExtTransport *This,long *pEnabled,long *pOffset,HEVENT *phEvent);
4983      HRESULT (WINAPI *SetChase)(IAMExtTransport *This,long Enable,long Offset,HEVENT hEvent);
4984      HRESULT (WINAPI *GetBump)(IAMExtTransport *This,long *pSpeed,long *pDuration);
4985      HRESULT (WINAPI *SetBump)(IAMExtTransport *This,long Speed,long Duration);
4986      HRESULT (WINAPI *get_AntiClogControl)(IAMExtTransport *This,long *pEnabled);
4987      HRESULT (WINAPI *put_AntiClogControl)(IAMExtTransport *This,long Enable);
4988      HRESULT (WINAPI *GetEditPropertySet)(IAMExtTransport *This,long EditID,long *pState);
4989      HRESULT (WINAPI *SetEditPropertySet)(IAMExtTransport *This,long *pEditID,long State);
4990      HRESULT (WINAPI *GetEditProperty)(IAMExtTransport *This,long EditID,long Param,long *pValue);
4991      HRESULT (WINAPI *SetEditProperty)(IAMExtTransport *This,long EditID,long Param,long Value);
4992      HRESULT (WINAPI *get_EditStart)(IAMExtTransport *This,long *pValue);
4993      HRESULT (WINAPI *put_EditStart)(IAMExtTransport *This,long Value);
4994    END_INTERFACE
4995  } IAMExtTransportVtbl;
4996  struct IAMExtTransport {
4997    CONST_VTBL struct IAMExtTransportVtbl *lpVtbl;
4998  };
4999#ifdef COBJMACROS
5000#define IAMExtTransport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5001#define IAMExtTransport_AddRef(This) (This)->lpVtbl->AddRef(This)
5002#define IAMExtTransport_Release(This) (This)->lpVtbl->Release(This)
5003#define IAMExtTransport_GetCapability(This,Capability,pValue,pdblValue) (This)->lpVtbl->GetCapability(This,Capability,pValue,pdblValue)
5004#define IAMExtTransport_put_MediaState(This,State) (This)->lpVtbl->put_MediaState(This,State)
5005#define IAMExtTransport_get_MediaState(This,pState) (This)->lpVtbl->get_MediaState(This,pState)
5006#define IAMExtTransport_put_LocalControl(This,State) (This)->lpVtbl->put_LocalControl(This,State)
5007#define IAMExtTransport_get_LocalControl(This,pState) (This)->lpVtbl->get_LocalControl(This,pState)
5008#define IAMExtTransport_GetStatus(This,StatusItem,pValue) (This)->lpVtbl->GetStatus(This,StatusItem,pValue)
5009#define IAMExtTransport_GetTransportBasicParameters(This,Param,pValue,ppszData) (This)->lpVtbl->GetTransportBasicParameters(This,Param,pValue,ppszData)
5010#define IAMExtTransport_SetTransportBasicParameters(This,Param,Value,pszData) (This)->lpVtbl->SetTransportBasicParameters(This,Param,Value,pszData)
5011#define IAMExtTransport_GetTransportVideoParameters(This,Param,pValue) (This)->lpVtbl->GetTransportVideoParameters(This,Param,pValue)
5012#define IAMExtTransport_SetTransportVideoParameters(This,Param,Value) (This)->lpVtbl->SetTransportVideoParameters(This,Param,Value)
5013#define IAMExtTransport_GetTransportAudioParameters(This,Param,pValue) (This)->lpVtbl->GetTransportAudioParameters(This,Param,pValue)
5014#define IAMExtTransport_SetTransportAudioParameters(This,Param,Value) (This)->lpVtbl->SetTransportAudioParameters(This,Param,Value)
5015#define IAMExtTransport_put_Mode(This,Mode) (This)->lpVtbl->put_Mode(This,Mode)
5016#define IAMExtTransport_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
5017#define IAMExtTransport_put_Rate(This,dblRate) (This)->lpVtbl->put_Rate(This,dblRate)
5018#define IAMExtTransport_get_Rate(This,pdblRate) (This)->lpVtbl->get_Rate(This,pdblRate)
5019#define IAMExtTransport_GetChase(This,pEnabled,pOffset,phEvent) (This)->lpVtbl->GetChase(This,pEnabled,pOffset,phEvent)
5020#define IAMExtTransport_SetChase(This,Enable,Offset,hEvent) (This)->lpVtbl->SetChase(This,Enable,Offset,hEvent)
5021#define IAMExtTransport_GetBump(This,pSpeed,pDuration) (This)->lpVtbl->GetBump(This,pSpeed,pDuration)
5022#define IAMExtTransport_SetBump(This,Speed,Duration) (This)->lpVtbl->SetBump(This,Speed,Duration)
5023#define IAMExtTransport_get_AntiClogControl(This,pEnabled) (This)->lpVtbl->get_AntiClogControl(This,pEnabled)
5024#define IAMExtTransport_put_AntiClogControl(This,Enable) (This)->lpVtbl->put_AntiClogControl(This,Enable)
5025#define IAMExtTransport_GetEditPropertySet(This,EditID,pState) (This)->lpVtbl->GetEditPropertySet(This,EditID,pState)
5026#define IAMExtTransport_SetEditPropertySet(This,pEditID,State) (This)->lpVtbl->SetEditPropertySet(This,pEditID,State)
5027#define IAMExtTransport_GetEditProperty(This,EditID,Param,pValue) (This)->lpVtbl->GetEditProperty(This,EditID,Param,pValue)
5028#define IAMExtTransport_SetEditProperty(This,EditID,Param,Value) (This)->lpVtbl->SetEditProperty(This,EditID,Param,Value)
5029#define IAMExtTransport_get_EditStart(This,pValue) (This)->lpVtbl->get_EditStart(This,pValue)
5030#define IAMExtTransport_put_EditStart(This,Value) (This)->lpVtbl->put_EditStart(This,Value)
5031#endif
5032#endif
5033  HRESULT WINAPI IAMExtTransport_GetCapability_Proxy(IAMExtTransport *This,long Capability,long *pValue,double *pdblValue);
5034  void __RPC_STUB IAMExtTransport_GetCapability_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5035  HRESULT WINAPI IAMExtTransport_put_MediaState_Proxy(IAMExtTransport *This,long State);
5036  void __RPC_STUB IAMExtTransport_put_MediaState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5037  HRESULT WINAPI IAMExtTransport_get_MediaState_Proxy(IAMExtTransport *This,long *pState);
5038  void __RPC_STUB IAMExtTransport_get_MediaState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5039  HRESULT WINAPI IAMExtTransport_put_LocalControl_Proxy(IAMExtTransport *This,long State);
5040  void __RPC_STUB IAMExtTransport_put_LocalControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5041  HRESULT WINAPI IAMExtTransport_get_LocalControl_Proxy(IAMExtTransport *This,long *pState);
5042  void __RPC_STUB IAMExtTransport_get_LocalControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5043  HRESULT WINAPI IAMExtTransport_GetStatus_Proxy(IAMExtTransport *This,long StatusItem,long *pValue);
5044  void __RPC_STUB IAMExtTransport_GetStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5045  HRESULT WINAPI IAMExtTransport_GetTransportBasicParameters_Proxy(IAMExtTransport *This,long Param,long *pValue,LPOLESTR *ppszData);
5046  void __RPC_STUB IAMExtTransport_GetTransportBasicParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5047  HRESULT WINAPI IAMExtTransport_SetTransportBasicParameters_Proxy(IAMExtTransport *This,long Param,long Value,LPCOLESTR pszData);
5048  void __RPC_STUB IAMExtTransport_SetTransportBasicParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5049  HRESULT WINAPI IAMExtTransport_GetTransportVideoParameters_Proxy(IAMExtTransport *This,long Param,long *pValue);
5050  void __RPC_STUB IAMExtTransport_GetTransportVideoParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5051  HRESULT WINAPI IAMExtTransport_SetTransportVideoParameters_Proxy(IAMExtTransport *This,long Param,long Value);
5052  void __RPC_STUB IAMExtTransport_SetTransportVideoParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5053  HRESULT WINAPI IAMExtTransport_GetTransportAudioParameters_Proxy(IAMExtTransport *This,long Param,long *pValue);
5054  void __RPC_STUB IAMExtTransport_GetTransportAudioParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5055  HRESULT WINAPI IAMExtTransport_SetTransportAudioParameters_Proxy(IAMExtTransport *This,long Param,long Value);
5056  void __RPC_STUB IAMExtTransport_SetTransportAudioParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5057  HRESULT WINAPI IAMExtTransport_put_Mode_Proxy(IAMExtTransport *This,long Mode);
5058  void __RPC_STUB IAMExtTransport_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5059  HRESULT WINAPI IAMExtTransport_get_Mode_Proxy(IAMExtTransport *This,long *pMode);
5060  void __RPC_STUB IAMExtTransport_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5061  HRESULT WINAPI IAMExtTransport_put_Rate_Proxy(IAMExtTransport *This,double dblRate);
5062  void __RPC_STUB IAMExtTransport_put_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5063  HRESULT WINAPI IAMExtTransport_get_Rate_Proxy(IAMExtTransport *This,double *pdblRate);
5064  void __RPC_STUB IAMExtTransport_get_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5065  HRESULT WINAPI IAMExtTransport_GetChase_Proxy(IAMExtTransport *This,long *pEnabled,long *pOffset,HEVENT *phEvent);
5066  void __RPC_STUB IAMExtTransport_GetChase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5067  HRESULT WINAPI IAMExtTransport_SetChase_Proxy(IAMExtTransport *This,long Enable,long Offset,HEVENT hEvent);
5068  void __RPC_STUB IAMExtTransport_SetChase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5069  HRESULT WINAPI IAMExtTransport_GetBump_Proxy(IAMExtTransport *This,long *pSpeed,long *pDuration);
5070  void __RPC_STUB IAMExtTransport_GetBump_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5071  HRESULT WINAPI IAMExtTransport_SetBump_Proxy(IAMExtTransport *This,long Speed,long Duration);
5072  void __RPC_STUB IAMExtTransport_SetBump_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5073  HRESULT WINAPI IAMExtTransport_get_AntiClogControl_Proxy(IAMExtTransport *This,long *pEnabled);
5074  void __RPC_STUB IAMExtTransport_get_AntiClogControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5075  HRESULT WINAPI IAMExtTransport_put_AntiClogControl_Proxy(IAMExtTransport *This,long Enable);
5076  void __RPC_STUB IAMExtTransport_put_AntiClogControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5077  HRESULT WINAPI IAMExtTransport_GetEditPropertySet_Proxy(IAMExtTransport *This,long EditID,long *pState);
5078  void __RPC_STUB IAMExtTransport_GetEditPropertySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5079  HRESULT WINAPI IAMExtTransport_SetEditPropertySet_Proxy(IAMExtTransport *This,long *pEditID,long State);
5080  void __RPC_STUB IAMExtTransport_SetEditPropertySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5081  HRESULT WINAPI IAMExtTransport_GetEditProperty_Proxy(IAMExtTransport *This,long EditID,long Param,long *pValue);
5082  void __RPC_STUB IAMExtTransport_GetEditProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5083  HRESULT WINAPI IAMExtTransport_SetEditProperty_Proxy(IAMExtTransport *This,long EditID,long Param,long Value);
5084  void __RPC_STUB IAMExtTransport_SetEditProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5085  HRESULT WINAPI IAMExtTransport_get_EditStart_Proxy(IAMExtTransport *This,long *pValue);
5086  void __RPC_STUB IAMExtTransport_get_EditStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5087  HRESULT WINAPI IAMExtTransport_put_EditStart_Proxy(IAMExtTransport *This,long Value);
5088  void __RPC_STUB IAMExtTransport_put_EditStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5089#endif
5090
5091  typedef IAMExtTransport *PIAMEXTTRANSPORT;
5092
5093#ifndef TIMECODE_DEFINED
5094#define TIMECODE_DEFINED
5095  typedef union _timecode {
5096    struct {
5097      WORD wFrameRate;
5098      WORD wFrameFract;
5099      DWORD dwFrames;
5100    };
5101    DWORDLONG qw;
5102  } TIMECODE;
5103#endif
5104
5105  typedef TIMECODE *PTIMECODE;
5106
5107  typedef struct tagTIMECODE_SAMPLE {
5108    LONGLONG qwTick;
5109    TIMECODE timecode;
5110    DWORD dwUser;
5111    DWORD dwFlags;
5112  } TIMECODE_SAMPLE;
5113
5114  typedef TIMECODE_SAMPLE *PTIMECODE_SAMPLE;
5115
5116  extern RPC_IF_HANDLE __MIDL_itf_strmif_0340_v0_0_c_ifspec;
5117  extern RPC_IF_HANDLE __MIDL_itf_strmif_0340_v0_0_s_ifspec;
5118#ifndef __IAMTimecodeReader_INTERFACE_DEFINED__
5119#define __IAMTimecodeReader_INTERFACE_DEFINED__
5120  EXTERN_C const IID IID_IAMTimecodeReader;
5121#if defined(__cplusplus) && !defined(CINTERFACE)
5122  struct IAMTimecodeReader : public IUnknown {
5123  public:
5124    virtual HRESULT WINAPI GetTCRMode(long Param,long *pValue) = 0;
5125    virtual HRESULT WINAPI SetTCRMode(long Param,long Value) = 0;
5126    virtual HRESULT WINAPI put_VITCLine(long Line) = 0;
5127    virtual HRESULT WINAPI get_VITCLine(long *pLine) = 0;
5128    virtual HRESULT WINAPI GetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
5129  };
5130#else
5131  typedef struct IAMTimecodeReaderVtbl {
5132    BEGIN_INTERFACE
5133      HRESULT (WINAPI *QueryInterface)(IAMTimecodeReader *This,REFIID riid,void **ppvObject);
5134      ULONG (WINAPI *AddRef)(IAMTimecodeReader *This);
5135      ULONG (WINAPI *Release)(IAMTimecodeReader *This);
5136      HRESULT (WINAPI *GetTCRMode)(IAMTimecodeReader *This,long Param,long *pValue);
5137      HRESULT (WINAPI *SetTCRMode)(IAMTimecodeReader *This,long Param,long Value);
5138      HRESULT (WINAPI *put_VITCLine)(IAMTimecodeReader *This,long Line);
5139      HRESULT (WINAPI *get_VITCLine)(IAMTimecodeReader *This,long *pLine);
5140      HRESULT (WINAPI *GetTimecode)(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
5141    END_INTERFACE
5142  } IAMTimecodeReaderVtbl;
5143  struct IAMTimecodeReader {
5144    CONST_VTBL struct IAMTimecodeReaderVtbl *lpVtbl;
5145  };
5146#ifdef COBJMACROS
5147#define IAMTimecodeReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5148#define IAMTimecodeReader_AddRef(This) (This)->lpVtbl->AddRef(This)
5149#define IAMTimecodeReader_Release(This) (This)->lpVtbl->Release(This)
5150#define IAMTimecodeReader_GetTCRMode(This,Param,pValue) (This)->lpVtbl->GetTCRMode(This,Param,pValue)
5151#define IAMTimecodeReader_SetTCRMode(This,Param,Value) (This)->lpVtbl->SetTCRMode(This,Param,Value)
5152#define IAMTimecodeReader_put_VITCLine(This,Line) (This)->lpVtbl->put_VITCLine(This,Line)
5153#define IAMTimecodeReader_get_VITCLine(This,pLine) (This)->lpVtbl->get_VITCLine(This,pLine)
5154#define IAMTimecodeReader_GetTimecode(This,pTimecodeSample) (This)->lpVtbl->GetTimecode(This,pTimecodeSample)
5155#endif
5156#endif
5157  HRESULT WINAPI IAMTimecodeReader_GetTCRMode_Proxy(IAMTimecodeReader *This,long Param,long *pValue);
5158  void __RPC_STUB IAMTimecodeReader_GetTCRMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5159  HRESULT WINAPI IAMTimecodeReader_SetTCRMode_Proxy(IAMTimecodeReader *This,long Param,long Value);
5160  void __RPC_STUB IAMTimecodeReader_SetTCRMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5161  HRESULT WINAPI IAMTimecodeReader_put_VITCLine_Proxy(IAMTimecodeReader *This,long Line);
5162  void __RPC_STUB IAMTimecodeReader_put_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5163  HRESULT WINAPI IAMTimecodeReader_get_VITCLine_Proxy(IAMTimecodeReader *This,long *pLine);
5164  void __RPC_STUB IAMTimecodeReader_get_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5165  HRESULT WINAPI IAMTimecodeReader_GetTimecode_Proxy(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
5166  void __RPC_STUB IAMTimecodeReader_GetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5167#endif
5168
5169  typedef IAMTimecodeReader *PIAMTIMECODEREADER;
5170
5171  extern RPC_IF_HANDLE __MIDL_itf_strmif_0341_v0_0_c_ifspec;
5172  extern RPC_IF_HANDLE __MIDL_itf_strmif_0341_v0_0_s_ifspec;
5173#ifndef __IAMTimecodeGenerator_INTERFACE_DEFINED__
5174#define __IAMTimecodeGenerator_INTERFACE_DEFINED__
5175  EXTERN_C const IID IID_IAMTimecodeGenerator;
5176#if defined(__cplusplus) && !defined(CINTERFACE)
5177  struct IAMTimecodeGenerator : public IUnknown {
5178  public:
5179    virtual HRESULT WINAPI GetTCGMode(long Param,long *pValue) = 0;
5180    virtual HRESULT WINAPI SetTCGMode(long Param,long Value) = 0;
5181    virtual HRESULT WINAPI put_VITCLine(long Line) = 0;
5182    virtual HRESULT WINAPI get_VITCLine(long *pLine) = 0;
5183    virtual HRESULT WINAPI SetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
5184    virtual HRESULT WINAPI GetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
5185  };
5186#else
5187  typedef struct IAMTimecodeGeneratorVtbl {
5188    BEGIN_INTERFACE
5189      HRESULT (WINAPI *QueryInterface)(IAMTimecodeGenerator *This,REFIID riid,void **ppvObject);
5190      ULONG (WINAPI *AddRef)(IAMTimecodeGenerator *This);
5191      ULONG (WINAPI *Release)(IAMTimecodeGenerator *This);
5192      HRESULT (WINAPI *GetTCGMode)(IAMTimecodeGenerator *This,long Param,long *pValue);
5193      HRESULT (WINAPI *SetTCGMode)(IAMTimecodeGenerator *This,long Param,long Value);
5194      HRESULT (WINAPI *put_VITCLine)(IAMTimecodeGenerator *This,long Line);
5195      HRESULT (WINAPI *get_VITCLine)(IAMTimecodeGenerator *This,long *pLine);
5196      HRESULT (WINAPI *SetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
5197      HRESULT (WINAPI *GetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
5198    END_INTERFACE
5199  } IAMTimecodeGeneratorVtbl;
5200  struct IAMTimecodeGenerator {
5201    CONST_VTBL struct IAMTimecodeGeneratorVtbl *lpVtbl;
5202  };
5203#ifdef COBJMACROS
5204#define IAMTimecodeGenerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5205#define IAMTimecodeGenerator_AddRef(This) (This)->lpVtbl->AddRef(This)
5206#define IAMTimecodeGenerator_Release(This) (This)->lpVtbl->Release(This)
5207#define IAMTimecodeGenerator_GetTCGMode(This,Param,pValue) (This)->lpVtbl->GetTCGMode(This,Param,pValue)
5208#define IAMTimecodeGenerator_SetTCGMode(This,Param,Value) (This)->lpVtbl->SetTCGMode(This,Param,Value)
5209#define IAMTimecodeGenerator_put_VITCLine(This,Line) (This)->lpVtbl->put_VITCLine(This,Line)
5210#define IAMTimecodeGenerator_get_VITCLine(This,pLine) (This)->lpVtbl->get_VITCLine(This,pLine)
5211#define IAMTimecodeGenerator_SetTimecode(This,pTimecodeSample) (This)->lpVtbl->SetTimecode(This,pTimecodeSample)
5212#define IAMTimecodeGenerator_GetTimecode(This,pTimecodeSample) (This)->lpVtbl->GetTimecode(This,pTimecodeSample)
5213#endif
5214#endif
5215  HRESULT WINAPI IAMTimecodeGenerator_GetTCGMode_Proxy(IAMTimecodeGenerator *This,long Param,long *pValue);
5216  void __RPC_STUB IAMTimecodeGenerator_GetTCGMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5217  HRESULT WINAPI IAMTimecodeGenerator_SetTCGMode_Proxy(IAMTimecodeGenerator *This,long Param,long Value);
5218  void __RPC_STUB IAMTimecodeGenerator_SetTCGMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5219  HRESULT WINAPI IAMTimecodeGenerator_put_VITCLine_Proxy(IAMTimecodeGenerator *This,long Line);
5220  void __RPC_STUB IAMTimecodeGenerator_put_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5221  HRESULT WINAPI IAMTimecodeGenerator_get_VITCLine_Proxy(IAMTimecodeGenerator *This,long *pLine);
5222  void __RPC_STUB IAMTimecodeGenerator_get_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5223  HRESULT WINAPI IAMTimecodeGenerator_SetTimecode_Proxy(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
5224  void __RPC_STUB IAMTimecodeGenerator_SetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5225  HRESULT WINAPI IAMTimecodeGenerator_GetTimecode_Proxy(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
5226  void __RPC_STUB IAMTimecodeGenerator_GetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5227#endif
5228
5229  typedef IAMTimecodeGenerator *PIAMTIMECODEGENERATOR;
5230
5231  extern RPC_IF_HANDLE __MIDL_itf_strmif_0342_v0_0_c_ifspec;
5232  extern RPC_IF_HANDLE __MIDL_itf_strmif_0342_v0_0_s_ifspec;
5233#ifndef __IAMTimecodeDisplay_INTERFACE_DEFINED__
5234#define __IAMTimecodeDisplay_INTERFACE_DEFINED__
5235  EXTERN_C const IID IID_IAMTimecodeDisplay;
5236#if defined(__cplusplus) && !defined(CINTERFACE)
5237  struct IAMTimecodeDisplay : public IUnknown {
5238  public:
5239    virtual HRESULT WINAPI GetTCDisplayEnable(long *pState) = 0;
5240    virtual HRESULT WINAPI SetTCDisplayEnable(long State) = 0;
5241    virtual HRESULT WINAPI GetTCDisplay(long Param,long *pValue) = 0;
5242    virtual HRESULT WINAPI SetTCDisplay(long Param,long Value) = 0;
5243  };
5244#else
5245  typedef struct IAMTimecodeDisplayVtbl {
5246    BEGIN_INTERFACE
5247      HRESULT (WINAPI *QueryInterface)(IAMTimecodeDisplay *This,REFIID riid,void **ppvObject);
5248      ULONG (WINAPI *AddRef)(IAMTimecodeDisplay *This);
5249      ULONG (WINAPI *Release)(IAMTimecodeDisplay *This);
5250      HRESULT (WINAPI *GetTCDisplayEnable)(IAMTimecodeDisplay *This,long *pState);
5251      HRESULT (WINAPI *SetTCDisplayEnable)(IAMTimecodeDisplay *This,long State);
5252      HRESULT (WINAPI *GetTCDisplay)(IAMTimecodeDisplay *This,long Param,long *pValue);
5253      HRESULT (WINAPI *SetTCDisplay)(IAMTimecodeDisplay *This,long Param,long Value);
5254    END_INTERFACE
5255  } IAMTimecodeDisplayVtbl;
5256  struct IAMTimecodeDisplay {
5257    CONST_VTBL struct IAMTimecodeDisplayVtbl *lpVtbl;
5258  };
5259#ifdef COBJMACROS
5260#define IAMTimecodeDisplay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5261#define IAMTimecodeDisplay_AddRef(This) (This)->lpVtbl->AddRef(This)
5262#define IAMTimecodeDisplay_Release(This) (This)->lpVtbl->Release(This)
5263#define IAMTimecodeDisplay_GetTCDisplayEnable(This,pState) (This)->lpVtbl->GetTCDisplayEnable(This,pState)
5264#define IAMTimecodeDisplay_SetTCDisplayEnable(This,State) (This)->lpVtbl->SetTCDisplayEnable(This,State)
5265#define IAMTimecodeDisplay_GetTCDisplay(This,Param,pValue) (This)->lpVtbl->GetTCDisplay(This,Param,pValue)
5266#define IAMTimecodeDisplay_SetTCDisplay(This,Param,Value) (This)->lpVtbl->SetTCDisplay(This,Param,Value)
5267#endif
5268#endif
5269  HRESULT WINAPI IAMTimecodeDisplay_GetTCDisplayEnable_Proxy(IAMTimecodeDisplay *This,long *pState);
5270  void __RPC_STUB IAMTimecodeDisplay_GetTCDisplayEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5271  HRESULT WINAPI IAMTimecodeDisplay_SetTCDisplayEnable_Proxy(IAMTimecodeDisplay *This,long State);
5272  void __RPC_STUB IAMTimecodeDisplay_SetTCDisplayEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5273  HRESULT WINAPI IAMTimecodeDisplay_GetTCDisplay_Proxy(IAMTimecodeDisplay *This,long Param,long *pValue);
5274  void __RPC_STUB IAMTimecodeDisplay_GetTCDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5275  HRESULT WINAPI IAMTimecodeDisplay_SetTCDisplay_Proxy(IAMTimecodeDisplay *This,long Param,long Value);
5276  void __RPC_STUB IAMTimecodeDisplay_SetTCDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5277#endif
5278
5279  typedef IAMTimecodeDisplay *PIAMTIMECODEDISPLAY;
5280
5281  extern RPC_IF_HANDLE __MIDL_itf_strmif_0343_v0_0_c_ifspec;
5282  extern RPC_IF_HANDLE __MIDL_itf_strmif_0343_v0_0_s_ifspec;
5283#ifndef __IAMDevMemoryAllocator_INTERFACE_DEFINED__
5284#define __IAMDevMemoryAllocator_INTERFACE_DEFINED__
5285  EXTERN_C const IID IID_IAMDevMemoryAllocator;
5286#if defined(__cplusplus) && !defined(CINTERFACE)
5287  struct IAMDevMemoryAllocator : public IUnknown {
5288  public:
5289    virtual HRESULT WINAPI GetInfo(DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk) = 0;
5290    virtual HRESULT WINAPI CheckMemory(const BYTE *pBuffer) = 0;
5291    virtual HRESULT WINAPI Alloc(BYTE **ppBuffer,DWORD *pdwcbBuffer) = 0;
5292    virtual HRESULT WINAPI Free(BYTE *pBuffer) = 0;
5293    virtual HRESULT WINAPI GetDevMemoryObject(IUnknown **ppUnkInnner,IUnknown *pUnkOuter) = 0;
5294  };
5295#else
5296  typedef struct IAMDevMemoryAllocatorVtbl {
5297    BEGIN_INTERFACE
5298      HRESULT (WINAPI *QueryInterface)(IAMDevMemoryAllocator *This,REFIID riid,void **ppvObject);
5299      ULONG (WINAPI *AddRef)(IAMDevMemoryAllocator *This);
5300      ULONG (WINAPI *Release)(IAMDevMemoryAllocator *This);
5301      HRESULT (WINAPI *GetInfo)(IAMDevMemoryAllocator *This,DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk);
5302      HRESULT (WINAPI *CheckMemory)(IAMDevMemoryAllocator *This,const BYTE *pBuffer);
5303      HRESULT (WINAPI *Alloc)(IAMDevMemoryAllocator *This,BYTE **ppBuffer,DWORD *pdwcbBuffer);
5304      HRESULT (WINAPI *Free)(IAMDevMemoryAllocator *This,BYTE *pBuffer);
5305      HRESULT (WINAPI *GetDevMemoryObject)(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
5306    END_INTERFACE
5307  } IAMDevMemoryAllocatorVtbl;
5308  struct IAMDevMemoryAllocator {
5309    CONST_VTBL struct IAMDevMemoryAllocatorVtbl *lpVtbl;
5310  };
5311#ifdef COBJMACROS
5312#define IAMDevMemoryAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5313#define IAMDevMemoryAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
5314#define IAMDevMemoryAllocator_Release(This) (This)->lpVtbl->Release(This)
5315#define IAMDevMemoryAllocator_GetInfo(This,pdwcbTotalFree,pdwcbLargestFree,pdwcbTotalMemory,pdwcbMinimumChunk) (This)->lpVtbl->GetInfo(This,pdwcbTotalFree,pdwcbLargestFree,pdwcbTotalMemory,pdwcbMinimumChunk)
5316#define IAMDevMemoryAllocator_CheckMemory(This,pBuffer) (This)->lpVtbl->CheckMemory(This,pBuffer)
5317#define IAMDevMemoryAllocator_Alloc(This,ppBuffer,pdwcbBuffer) (This)->lpVtbl->Alloc(This,ppBuffer,pdwcbBuffer)
5318#define IAMDevMemoryAllocator_Free(This,pBuffer) (This)->lpVtbl->Free(This,pBuffer)
5319#define IAMDevMemoryAllocator_GetDevMemoryObject(This,ppUnkInnner,pUnkOuter) (This)->lpVtbl->GetDevMemoryObject(This,ppUnkInnner,pUnkOuter)
5320#endif
5321#endif
5322  HRESULT WINAPI IAMDevMemoryAllocator_GetInfo_Proxy(IAMDevMemoryAllocator *This,DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk);
5323  void __RPC_STUB IAMDevMemoryAllocator_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5324  HRESULT WINAPI IAMDevMemoryAllocator_CheckMemory_Proxy(IAMDevMemoryAllocator *This,const BYTE *pBuffer);
5325  void __RPC_STUB IAMDevMemoryAllocator_CheckMemory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5326  HRESULT WINAPI IAMDevMemoryAllocator_Alloc_Proxy(IAMDevMemoryAllocator *This,BYTE **ppBuffer,DWORD *pdwcbBuffer);
5327  void __RPC_STUB IAMDevMemoryAllocator_Alloc_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5328  HRESULT WINAPI IAMDevMemoryAllocator_Free_Proxy(IAMDevMemoryAllocator *This,BYTE *pBuffer);
5329  void __RPC_STUB IAMDevMemoryAllocator_Free_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5330  HRESULT WINAPI IAMDevMemoryAllocator_GetDevMemoryObject_Proxy(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
5331  void __RPC_STUB IAMDevMemoryAllocator_GetDevMemoryObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5332#endif
5333
5334  typedef IAMDevMemoryAllocator *PAMDEVMEMORYALLOCATOR;
5335
5336  extern RPC_IF_HANDLE __MIDL_itf_strmif_0344_v0_0_c_ifspec;
5337  extern RPC_IF_HANDLE __MIDL_itf_strmif_0344_v0_0_s_ifspec;
5338#ifndef __IAMDevMemoryControl_INTERFACE_DEFINED__
5339#define __IAMDevMemoryControl_INTERFACE_DEFINED__
5340  EXTERN_C const IID IID_IAMDevMemoryControl;
5341#if defined(__cplusplus) && !defined(CINTERFACE)
5342  struct IAMDevMemoryControl : public IUnknown {
5343  public:
5344    virtual HRESULT WINAPI QueryWriteSync(void) = 0;
5345    virtual HRESULT WINAPI WriteSync(void) = 0;
5346    virtual HRESULT WINAPI GetDevId(DWORD *pdwDevId) = 0;
5347  };
5348#else
5349  typedef struct IAMDevMemoryControlVtbl {
5350    BEGIN_INTERFACE
5351      HRESULT (WINAPI *QueryInterface)(IAMDevMemoryControl *This,REFIID riid,void **ppvObject);
5352      ULONG (WINAPI *AddRef)(IAMDevMemoryControl *This);
5353      ULONG (WINAPI *Release)(IAMDevMemoryControl *This);
5354      HRESULT (WINAPI *QueryWriteSync)(IAMDevMemoryControl *This);
5355      HRESULT (WINAPI *WriteSync)(IAMDevMemoryControl *This);
5356      HRESULT (WINAPI *GetDevId)(IAMDevMemoryControl *This,DWORD *pdwDevId);
5357    END_INTERFACE
5358  } IAMDevMemoryControlVtbl;
5359  struct IAMDevMemoryControl {
5360    CONST_VTBL struct IAMDevMemoryControlVtbl *lpVtbl;
5361  };
5362#ifdef COBJMACROS
5363#define IAMDevMemoryControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5364#define IAMDevMemoryControl_AddRef(This) (This)->lpVtbl->AddRef(This)
5365#define IAMDevMemoryControl_Release(This) (This)->lpVtbl->Release(This)
5366#define IAMDevMemoryControl_QueryWriteSync(This) (This)->lpVtbl->QueryWriteSync(This)
5367#define IAMDevMemoryControl_WriteSync(This) (This)->lpVtbl->WriteSync(This)
5368#define IAMDevMemoryControl_GetDevId(This,pdwDevId) (This)->lpVtbl->GetDevId(This,pdwDevId)
5369#endif
5370#endif
5371  HRESULT WINAPI IAMDevMemoryControl_QueryWriteSync_Proxy(IAMDevMemoryControl *This);
5372  void __RPC_STUB IAMDevMemoryControl_QueryWriteSync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5373  HRESULT WINAPI IAMDevMemoryControl_WriteSync_Proxy(IAMDevMemoryControl *This);
5374  void __RPC_STUB IAMDevMemoryControl_WriteSync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5375  HRESULT WINAPI IAMDevMemoryControl_GetDevId_Proxy(IAMDevMemoryControl *This,DWORD *pdwDevId);
5376  void __RPC_STUB IAMDevMemoryControl_GetDevId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5377#endif
5378
5379  typedef IAMDevMemoryControl *PAMDEVMEMORYCONTROL;
5380
5381  enum _AMSTREAMSELECTINFOFLAGS {
5382    AMSTREAMSELECTINFO_ENABLED = 0x1,AMSTREAMSELECTINFO_EXCLUSIVE = 0x2
5383  };
5384
5385  enum _AMSTREAMSELECTENABLEFLAGS {
5386    AMSTREAMSELECTENABLE_ENABLE = 0x1,AMSTREAMSELECTENABLE_ENABLEALL = 0x2
5387  };
5388
5389  extern RPC_IF_HANDLE __MIDL_itf_strmif_0345_v0_0_c_ifspec;
5390  extern RPC_IF_HANDLE __MIDL_itf_strmif_0345_v0_0_s_ifspec;
5391#ifndef __IAMStreamSelect_INTERFACE_DEFINED__
5392#define __IAMStreamSelect_INTERFACE_DEFINED__
5393  EXTERN_C const IID IID_IAMStreamSelect;
5394#if defined(__cplusplus) && !defined(CINTERFACE)
5395  struct IAMStreamSelect : public IUnknown {
5396  public:
5397    virtual HRESULT WINAPI Count(DWORD *pcStreams) = 0;
5398    virtual HRESULT WINAPI Info(long lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk) = 0;
5399    virtual HRESULT WINAPI Enable(long lIndex,DWORD dwFlags) = 0;
5400  };
5401#else
5402  typedef struct IAMStreamSelectVtbl {
5403    BEGIN_INTERFACE
5404      HRESULT (WINAPI *QueryInterface)(IAMStreamSelect *This,REFIID riid,void **ppvObject);
5405      ULONG (WINAPI *AddRef)(IAMStreamSelect *This);
5406      ULONG (WINAPI *Release)(IAMStreamSelect *This);
5407      HRESULT (WINAPI *Count)(IAMStreamSelect *This,DWORD *pcStreams);
5408      HRESULT (WINAPI *Info)(IAMStreamSelect *This,long lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk);
5409      HRESULT (WINAPI *Enable)(IAMStreamSelect *This,long lIndex,DWORD dwFlags);
5410    END_INTERFACE
5411  } IAMStreamSelectVtbl;
5412  struct IAMStreamSelect {
5413    CONST_VTBL struct IAMStreamSelectVtbl *lpVtbl;
5414  };
5415#ifdef COBJMACROS
5416#define IAMStreamSelect_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5417#define IAMStreamSelect_AddRef(This) (This)->lpVtbl->AddRef(This)
5418#define IAMStreamSelect_Release(This) (This)->lpVtbl->Release(This)
5419#define IAMStreamSelect_Count(This,pcStreams) (This)->lpVtbl->Count(This,pcStreams)
5420#define IAMStreamSelect_Info(This,lIndex,ppmt,pdwFlags,plcid,pdwGroup,ppszName,ppObject,ppUnk) (This)->lpVtbl->Info(This,lIndex,ppmt,pdwFlags,plcid,pdwGroup,ppszName,ppObject,ppUnk)
5421#define IAMStreamSelect_Enable(This,lIndex,dwFlags) (This)->lpVtbl->Enable(This,lIndex,dwFlags)
5422#endif
5423#endif
5424  HRESULT WINAPI IAMStreamSelect_Count_Proxy(IAMStreamSelect *This,DWORD *pcStreams);
5425  void __RPC_STUB IAMStreamSelect_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5426  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);
5427  void __RPC_STUB IAMStreamSelect_Info_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5428  HRESULT WINAPI IAMStreamSelect_Enable_Proxy(IAMStreamSelect *This,long lIndex,DWORD dwFlags);
5429  void __RPC_STUB IAMStreamSelect_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5430#endif
5431
5432  typedef IAMStreamSelect *PAMSTREAMSELECT;
5433
5434  enum _AMRESCTL_RESERVEFLAGS {
5435    AMRESCTL_RESERVEFLAGS_RESERVE = 0,AMRESCTL_RESERVEFLAGS_UNRESERVE = 0x1
5436  };
5437
5438  extern RPC_IF_HANDLE __MIDL_itf_strmif_0346_v0_0_c_ifspec;
5439  extern RPC_IF_HANDLE __MIDL_itf_strmif_0346_v0_0_s_ifspec;
5440#ifndef __IAMResourceControl_INTERFACE_DEFINED__
5441#define __IAMResourceControl_INTERFACE_DEFINED__
5442  EXTERN_C const IID IID_IAMResourceControl;
5443#if defined(__cplusplus) && !defined(CINTERFACE)
5444  struct IAMResourceControl : public IUnknown {
5445  public:
5446    virtual HRESULT WINAPI Reserve(DWORD dwFlags,PVOID pvReserved) = 0;
5447  };
5448#else
5449  typedef struct IAMResourceControlVtbl {
5450    BEGIN_INTERFACE
5451      HRESULT (WINAPI *QueryInterface)(IAMResourceControl *This,REFIID riid,void **ppvObject);
5452      ULONG (WINAPI *AddRef)(IAMResourceControl *This);
5453      ULONG (WINAPI *Release)(IAMResourceControl *This);
5454      HRESULT (WINAPI *Reserve)(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
5455    END_INTERFACE
5456  } IAMResourceControlVtbl;
5457  struct IAMResourceControl {
5458    CONST_VTBL struct IAMResourceControlVtbl *lpVtbl;
5459  };
5460#ifdef COBJMACROS
5461#define IAMResourceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5462#define IAMResourceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
5463#define IAMResourceControl_Release(This) (This)->lpVtbl->Release(This)
5464#define IAMResourceControl_Reserve(This,dwFlags,pvReserved) (This)->lpVtbl->Reserve(This,dwFlags,pvReserved)
5465#endif
5466#endif
5467  HRESULT WINAPI IAMResourceControl_Reserve_Proxy(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
5468  void __RPC_STUB IAMResourceControl_Reserve_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5469#endif
5470
5471#ifndef __IAMClockAdjust_INTERFACE_DEFINED__
5472#define __IAMClockAdjust_INTERFACE_DEFINED__
5473  EXTERN_C const IID IID_IAMClockAdjust;
5474#if defined(__cplusplus) && !defined(CINTERFACE)
5475  struct IAMClockAdjust : public IUnknown {
5476  public:
5477    virtual HRESULT WINAPI SetClockDelta(REFERENCE_TIME rtDelta) = 0;
5478  };
5479#else
5480  typedef struct IAMClockAdjustVtbl {
5481    BEGIN_INTERFACE
5482      HRESULT (WINAPI *QueryInterface)(IAMClockAdjust *This,REFIID riid,void **ppvObject);
5483      ULONG (WINAPI *AddRef)(IAMClockAdjust *This);
5484      ULONG (WINAPI *Release)(IAMClockAdjust *This);
5485      HRESULT (WINAPI *SetClockDelta)(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
5486    END_INTERFACE
5487  } IAMClockAdjustVtbl;
5488  struct IAMClockAdjust {
5489    CONST_VTBL struct IAMClockAdjustVtbl *lpVtbl;
5490  };
5491#ifdef COBJMACROS
5492#define IAMClockAdjust_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5493#define IAMClockAdjust_AddRef(This) (This)->lpVtbl->AddRef(This)
5494#define IAMClockAdjust_Release(This) (This)->lpVtbl->Release(This)
5495#define IAMClockAdjust_SetClockDelta(This,rtDelta) (This)->lpVtbl->SetClockDelta(This,rtDelta)
5496#endif
5497#endif
5498  HRESULT WINAPI IAMClockAdjust_SetClockDelta_Proxy(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
5499  void __RPC_STUB IAMClockAdjust_SetClockDelta_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5500#endif
5501
5502  enum _AM_FILTER_MISC_FLAGS {
5503    AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1,AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2
5504  };
5505
5506  extern RPC_IF_HANDLE __MIDL_itf_strmif_0348_v0_0_c_ifspec;
5507  extern RPC_IF_HANDLE __MIDL_itf_strmif_0348_v0_0_s_ifspec;
5508#ifndef __IAMFilterMiscFlags_INTERFACE_DEFINED__
5509#define __IAMFilterMiscFlags_INTERFACE_DEFINED__
5510  EXTERN_C const IID IID_IAMFilterMiscFlags;
5511#if defined(__cplusplus) && !defined(CINTERFACE)
5512  struct IAMFilterMiscFlags : public IUnknown {
5513  public:
5514    virtual ULONG WINAPI GetMiscFlags(void) = 0;
5515  };
5516#else
5517  typedef struct IAMFilterMiscFlagsVtbl {
5518    BEGIN_INTERFACE
5519      HRESULT (WINAPI *QueryInterface)(IAMFilterMiscFlags *This,REFIID riid,void **ppvObject);
5520      ULONG (WINAPI *AddRef)(IAMFilterMiscFlags *This);
5521      ULONG (WINAPI *Release)(IAMFilterMiscFlags *This);
5522      ULONG (WINAPI *GetMiscFlags)(IAMFilterMiscFlags *This);
5523    END_INTERFACE
5524  } IAMFilterMiscFlagsVtbl;
5525  struct IAMFilterMiscFlags {
5526    CONST_VTBL struct IAMFilterMiscFlagsVtbl *lpVtbl;
5527  };
5528#ifdef COBJMACROS
5529#define IAMFilterMiscFlags_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5530#define IAMFilterMiscFlags_AddRef(This) (This)->lpVtbl->AddRef(This)
5531#define IAMFilterMiscFlags_Release(This) (This)->lpVtbl->Release(This)
5532#define IAMFilterMiscFlags_GetMiscFlags(This) (This)->lpVtbl->GetMiscFlags(This)
5533#endif
5534#endif
5535  ULONG WINAPI IAMFilterMiscFlags_GetMiscFlags_Proxy(IAMFilterMiscFlags *This);
5536  void __RPC_STUB IAMFilterMiscFlags_GetMiscFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5537#endif
5538
5539#ifndef __IDrawVideoImage_INTERFACE_DEFINED__
5540#define __IDrawVideoImage_INTERFACE_DEFINED__
5541  EXTERN_C const IID IID_IDrawVideoImage;
5542#if defined(__cplusplus) && !defined(CINTERFACE)
5543  struct IDrawVideoImage : public IUnknown {
5544  public:
5545    virtual HRESULT WINAPI DrawVideoImageBegin(void) = 0;
5546    virtual HRESULT WINAPI DrawVideoImageEnd(void) = 0;
5547    virtual HRESULT WINAPI DrawVideoImageDraw(HDC hdc,LPRECT lprcSrc,LPRECT lprcDst) = 0;
5548  };
5549#else
5550  typedef struct IDrawVideoImageVtbl {
5551    BEGIN_INTERFACE
5552      HRESULT (WINAPI *QueryInterface)(IDrawVideoImage *This,REFIID riid,void **ppvObject);
5553      ULONG (WINAPI *AddRef)(IDrawVideoImage *This);
5554      ULONG (WINAPI *Release)(IDrawVideoImage *This);
5555      HRESULT (WINAPI *DrawVideoImageBegin)(IDrawVideoImage *This);
5556      HRESULT (WINAPI *DrawVideoImageEnd)(IDrawVideoImage *This);
5557      HRESULT (WINAPI *DrawVideoImageDraw)(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
5558    END_INTERFACE
5559  } IDrawVideoImageVtbl;
5560  struct IDrawVideoImage {
5561    CONST_VTBL struct IDrawVideoImageVtbl *lpVtbl;
5562  };
5563#ifdef COBJMACROS
5564#define IDrawVideoImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5565#define IDrawVideoImage_AddRef(This) (This)->lpVtbl->AddRef(This)
5566#define IDrawVideoImage_Release(This) (This)->lpVtbl->Release(This)
5567#define IDrawVideoImage_DrawVideoImageBegin(This) (This)->lpVtbl->DrawVideoImageBegin(This)
5568#define IDrawVideoImage_DrawVideoImageEnd(This) (This)->lpVtbl->DrawVideoImageEnd(This)
5569#define IDrawVideoImage_DrawVideoImageDraw(This,hdc,lprcSrc,lprcDst) (This)->lpVtbl->DrawVideoImageDraw(This,hdc,lprcSrc,lprcDst)
5570#endif
5571#endif
5572  HRESULT WINAPI IDrawVideoImage_DrawVideoImageBegin_Proxy(IDrawVideoImage *This);
5573  void __RPC_STUB IDrawVideoImage_DrawVideoImageBegin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5574  HRESULT WINAPI IDrawVideoImage_DrawVideoImageEnd_Proxy(IDrawVideoImage *This);
5575  void __RPC_STUB IDrawVideoImage_DrawVideoImageEnd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5576  HRESULT WINAPI IDrawVideoImage_DrawVideoImageDraw_Proxy(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
5577  void __RPC_STUB IDrawVideoImage_DrawVideoImageDraw_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5578#endif
5579
5580#ifndef __IDecimateVideoImage_INTERFACE_DEFINED__
5581#define __IDecimateVideoImage_INTERFACE_DEFINED__
5582  EXTERN_C const IID IID_IDecimateVideoImage;
5583#if defined(__cplusplus) && !defined(CINTERFACE)
5584  struct IDecimateVideoImage : public IUnknown {
5585  public:
5586    virtual HRESULT WINAPI SetDecimationImageSize(long lWidth,long lHeight) = 0;
5587    virtual HRESULT WINAPI ResetDecimationImageSize(void) = 0;
5588  };
5589#else
5590  typedef struct IDecimateVideoImageVtbl {
5591    BEGIN_INTERFACE
5592      HRESULT (WINAPI *QueryInterface)(IDecimateVideoImage *This,REFIID riid,void **ppvObject);
5593      ULONG (WINAPI *AddRef)(IDecimateVideoImage *This);
5594      ULONG (WINAPI *Release)(IDecimateVideoImage *This);
5595      HRESULT (WINAPI *SetDecimationImageSize)(IDecimateVideoImage *This,long lWidth,long lHeight);
5596      HRESULT (WINAPI *ResetDecimationImageSize)(IDecimateVideoImage *This);
5597    END_INTERFACE
5598  } IDecimateVideoImageVtbl;
5599  struct IDecimateVideoImage {
5600    CONST_VTBL struct IDecimateVideoImageVtbl *lpVtbl;
5601  };
5602#ifdef COBJMACROS
5603#define IDecimateVideoImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5604#define IDecimateVideoImage_AddRef(This) (This)->lpVtbl->AddRef(This)
5605#define IDecimateVideoImage_Release(This) (This)->lpVtbl->Release(This)
5606#define IDecimateVideoImage_SetDecimationImageSize(This,lWidth,lHeight) (This)->lpVtbl->SetDecimationImageSize(This,lWidth,lHeight)
5607#define IDecimateVideoImage_ResetDecimationImageSize(This) (This)->lpVtbl->ResetDecimationImageSize(This)
5608#endif
5609#endif
5610  HRESULT WINAPI IDecimateVideoImage_SetDecimationImageSize_Proxy(IDecimateVideoImage *This,long lWidth,long lHeight);
5611  void __RPC_STUB IDecimateVideoImage_SetDecimationImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5612  HRESULT WINAPI IDecimateVideoImage_ResetDecimationImageSize_Proxy(IDecimateVideoImage *This);
5613  void __RPC_STUB IDecimateVideoImage_ResetDecimationImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5614#endif
5615
5616  typedef enum _DECIMATION_USAGE {
5617    DECIMATION_LEGACY = 0,
5618    DECIMATION_USE_DECODER_ONLY,DECIMATION_USE_VIDEOPORT_ONLY,DECIMATION_USE_OVERLAY_ONLY,
5619    DECIMATION_DEFAULT
5620  } DECIMATION_USAGE;
5621
5622  extern RPC_IF_HANDLE __MIDL_itf_strmif_0351_v0_0_c_ifspec;
5623  extern RPC_IF_HANDLE __MIDL_itf_strmif_0351_v0_0_s_ifspec;
5624#ifndef __IAMVideoDecimationProperties_INTERFACE_DEFINED__
5625#define __IAMVideoDecimationProperties_INTERFACE_DEFINED__
5626  EXTERN_C const IID IID_IAMVideoDecimationProperties;
5627#if defined(__cplusplus) && !defined(CINTERFACE)
5628  struct IAMVideoDecimationProperties : public IUnknown {
5629  public:
5630    virtual HRESULT WINAPI QueryDecimationUsage(DECIMATION_USAGE *lpUsage) = 0;
5631    virtual HRESULT WINAPI SetDecimationUsage(DECIMATION_USAGE Usage) = 0;
5632  };
5633#else
5634  typedef struct IAMVideoDecimationPropertiesVtbl {
5635    BEGIN_INTERFACE
5636      HRESULT (WINAPI *QueryInterface)(IAMVideoDecimationProperties *This,REFIID riid,void **ppvObject);
5637      ULONG (WINAPI *AddRef)(IAMVideoDecimationProperties *This);
5638      ULONG (WINAPI *Release)(IAMVideoDecimationProperties *This);
5639      HRESULT (WINAPI *QueryDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE *lpUsage);
5640      HRESULT (WINAPI *SetDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
5641    END_INTERFACE
5642  } IAMVideoDecimationPropertiesVtbl;
5643  struct IAMVideoDecimationProperties {
5644    CONST_VTBL struct IAMVideoDecimationPropertiesVtbl *lpVtbl;
5645  };
5646#ifdef COBJMACROS
5647#define IAMVideoDecimationProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5648#define IAMVideoDecimationProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
5649#define IAMVideoDecimationProperties_Release(This) (This)->lpVtbl->Release(This)
5650#define IAMVideoDecimationProperties_QueryDecimationUsage(This,lpUsage) (This)->lpVtbl->QueryDecimationUsage(This,lpUsage)
5651#define IAMVideoDecimationProperties_SetDecimationUsage(This,Usage) (This)->lpVtbl->SetDecimationUsage(This,Usage)
5652#endif
5653#endif
5654  HRESULT WINAPI IAMVideoDecimationProperties_QueryDecimationUsage_Proxy(IAMVideoDecimationProperties *This,DECIMATION_USAGE *lpUsage);
5655  void __RPC_STUB IAMVideoDecimationProperties_QueryDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5656  HRESULT WINAPI IAMVideoDecimationProperties_SetDecimationUsage_Proxy(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
5657  void __RPC_STUB IAMVideoDecimationProperties_SetDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5658#endif
5659
5660#ifndef __IVideoFrameStep_INTERFACE_DEFINED__
5661#define __IVideoFrameStep_INTERFACE_DEFINED__
5662  EXTERN_C const IID IID_IVideoFrameStep;
5663#if defined(__cplusplus) && !defined(CINTERFACE)
5664  struct IVideoFrameStep : public IUnknown {
5665  public:
5666    virtual HRESULT WINAPI Step(DWORD dwFrames,IUnknown *pStepObject) = 0;
5667    virtual HRESULT WINAPI CanStep(long bMultiple,IUnknown *pStepObject) = 0;
5668    virtual HRESULT WINAPI CancelStep(void) = 0;
5669  };
5670#else
5671  typedef struct IVideoFrameStepVtbl {
5672    BEGIN_INTERFACE
5673      HRESULT (WINAPI *QueryInterface)(IVideoFrameStep *This,REFIID riid,void **ppvObject);
5674      ULONG (WINAPI *AddRef)(IVideoFrameStep *This);
5675      ULONG (WINAPI *Release)(IVideoFrameStep *This);
5676      HRESULT (WINAPI *Step)(IVideoFrameStep *This,DWORD dwFrames,IUnknown *pStepObject);
5677      HRESULT (WINAPI *CanStep)(IVideoFrameStep *This,long bMultiple,IUnknown *pStepObject);
5678      HRESULT (WINAPI *CancelStep)(IVideoFrameStep *This);
5679    END_INTERFACE
5680  } IVideoFrameStepVtbl;
5681  struct IVideoFrameStep {
5682    CONST_VTBL struct IVideoFrameStepVtbl *lpVtbl;
5683  };
5684#ifdef COBJMACROS
5685#define IVideoFrameStep_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5686#define IVideoFrameStep_AddRef(This) (This)->lpVtbl->AddRef(This)
5687#define IVideoFrameStep_Release(This) (This)->lpVtbl->Release(This)
5688#define IVideoFrameStep_Step(This,dwFrames,pStepObject) (This)->lpVtbl->Step(This,dwFrames,pStepObject)
5689#define IVideoFrameStep_CanStep(This,bMultiple,pStepObject) (This)->lpVtbl->CanStep(This,bMultiple,pStepObject)
5690#define IVideoFrameStep_CancelStep(This) (This)->lpVtbl->CancelStep(This)
5691#endif
5692#endif
5693  HRESULT WINAPI IVideoFrameStep_Step_Proxy(IVideoFrameStep *This,DWORD dwFrames,IUnknown *pStepObject);
5694  void __RPC_STUB IVideoFrameStep_Step_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5695  HRESULT WINAPI IVideoFrameStep_CanStep_Proxy(IVideoFrameStep *This,long bMultiple,IUnknown *pStepObject);
5696  void __RPC_STUB IVideoFrameStep_CanStep_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5697  HRESULT WINAPI IVideoFrameStep_CancelStep_Proxy(IVideoFrameStep *This);
5698  void __RPC_STUB IVideoFrameStep_CancelStep_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5699#endif
5700
5701  enum _AM_PUSHSOURCE_FLAGS {
5702    AM_PUSHSOURCECAPS_INTERNAL_RM = 0x1,AM_PUSHSOURCECAPS_NOT_LIVE = 0x2,AM_PUSHSOURCECAPS_PRIVATE_CLOCK = 0x4,
5703    AM_PUSHSOURCEREQS_USE_STREAM_CLOCK = 0x10000,AM_PUSHSOURCEREQS_USE_CLOCK_CHAIN = 0x20000
5704  };
5705
5706  extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_c_ifspec;
5707  extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_s_ifspec;
5708#ifndef __IAMLatency_INTERFACE_DEFINED__
5709#define __IAMLatency_INTERFACE_DEFINED__
5710  EXTERN_C const IID IID_IAMLatency;
5711#if defined(__cplusplus) && !defined(CINTERFACE)
5712  struct IAMLatency : public IUnknown {
5713  public:
5714    virtual HRESULT WINAPI GetLatency(REFERENCE_TIME *prtLatency) = 0;
5715  };
5716#else
5717  typedef struct IAMLatencyVtbl {
5718    BEGIN_INTERFACE
5719      HRESULT (WINAPI *QueryInterface)(IAMLatency *This,REFIID riid,void **ppvObject);
5720      ULONG (WINAPI *AddRef)(IAMLatency *This);
5721      ULONG (WINAPI *Release)(IAMLatency *This);
5722      HRESULT (WINAPI *GetLatency)(IAMLatency *This,REFERENCE_TIME *prtLatency);
5723    END_INTERFACE
5724  } IAMLatencyVtbl;
5725  struct IAMLatency {
5726    CONST_VTBL struct IAMLatencyVtbl *lpVtbl;
5727  };
5728#ifdef COBJMACROS
5729#define IAMLatency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5730#define IAMLatency_AddRef(This) (This)->lpVtbl->AddRef(This)
5731#define IAMLatency_Release(This) (This)->lpVtbl->Release(This)
5732#define IAMLatency_GetLatency(This,prtLatency) (This)->lpVtbl->GetLatency(This,prtLatency)
5733#endif
5734#endif
5735  HRESULT WINAPI IAMLatency_GetLatency_Proxy(IAMLatency *This,REFERENCE_TIME *prtLatency);
5736  void __RPC_STUB IAMLatency_GetLatency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5737#endif
5738
5739#ifndef __IAMPushSource_INTERFACE_DEFINED__
5740#define __IAMPushSource_INTERFACE_DEFINED__
5741  EXTERN_C const IID IID_IAMPushSource;
5742#if defined(__cplusplus) && !defined(CINTERFACE)
5743  struct IAMPushSource : public IAMLatency {
5744  public:
5745    virtual HRESULT WINAPI GetPushSourceFlags(ULONG *pFlags) = 0;
5746    virtual HRESULT WINAPI SetPushSourceFlags(ULONG Flags) = 0;
5747    virtual HRESULT WINAPI SetStreamOffset(REFERENCE_TIME rtOffset) = 0;
5748    virtual HRESULT WINAPI GetStreamOffset(REFERENCE_TIME *prtOffset) = 0;
5749    virtual HRESULT WINAPI GetMaxStreamOffset(REFERENCE_TIME *prtMaxOffset) = 0;
5750    virtual HRESULT WINAPI SetMaxStreamOffset(REFERENCE_TIME rtMaxOffset) = 0;
5751  };
5752#else
5753  typedef struct IAMPushSourceVtbl {
5754    BEGIN_INTERFACE
5755      HRESULT (WINAPI *QueryInterface)(IAMPushSource *This,REFIID riid,void **ppvObject);
5756      ULONG (WINAPI *AddRef)(IAMPushSource *This);
5757      ULONG (WINAPI *Release)(IAMPushSource *This);
5758      HRESULT (WINAPI *GetLatency)(IAMPushSource *This,REFERENCE_TIME *prtLatency);
5759      HRESULT (WINAPI *GetPushSourceFlags)(IAMPushSource *This,ULONG *pFlags);
5760      HRESULT (WINAPI *SetPushSourceFlags)(IAMPushSource *This,ULONG Flags);
5761      HRESULT (WINAPI *SetStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtOffset);
5762      HRESULT (WINAPI *GetStreamOffset)(IAMPushSource *This,REFERENCE_TIME *prtOffset);
5763      HRESULT (WINAPI *GetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME *prtMaxOffset);
5764      HRESULT (WINAPI *SetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
5765    END_INTERFACE
5766  } IAMPushSourceVtbl;
5767  struct IAMPushSource {
5768    CONST_VTBL struct IAMPushSourceVtbl *lpVtbl;
5769  };
5770#ifdef COBJMACROS
5771#define IAMPushSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5772#define IAMPushSource_AddRef(This) (This)->lpVtbl->AddRef(This)
5773#define IAMPushSource_Release(This) (This)->lpVtbl->Release(This)
5774#define IAMPushSource_GetLatency(This,prtLatency) (This)->lpVtbl->GetLatency(This,prtLatency)
5775#define IAMPushSource_GetPushSourceFlags(This,pFlags) (This)->lpVtbl->GetPushSourceFlags(This,pFlags)
5776#define IAMPushSource_SetPushSourceFlags(This,Flags) (This)->lpVtbl->SetPushSourceFlags(This,Flags)
5777#define IAMPushSource_SetStreamOffset(This,rtOffset) (This)->lpVtbl->SetStreamOffset(This,rtOffset)
5778#define IAMPushSource_GetStreamOffset(This,prtOffset) (This)->lpVtbl->GetStreamOffset(This,prtOffset)
5779#define IAMPushSource_GetMaxStreamOffset(This,prtMaxOffset) (This)->lpVtbl->GetMaxStreamOffset(This,prtMaxOffset)
5780#define IAMPushSource_SetMaxStreamOffset(This,rtMaxOffset) (This)->lpVtbl->SetMaxStreamOffset(This,rtMaxOffset)
5781#endif
5782#endif
5783  HRESULT WINAPI IAMPushSource_GetPushSourceFlags_Proxy(IAMPushSource *This,ULONG *pFlags);
5784  void __RPC_STUB IAMPushSource_GetPushSourceFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5785  HRESULT WINAPI IAMPushSource_SetPushSourceFlags_Proxy(IAMPushSource *This,ULONG Flags);
5786  void __RPC_STUB IAMPushSource_SetPushSourceFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5787  HRESULT WINAPI IAMPushSource_SetStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME rtOffset);
5788  void __RPC_STUB IAMPushSource_SetStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5789  HRESULT WINAPI IAMPushSource_GetStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME *prtOffset);
5790  void __RPC_STUB IAMPushSource_GetStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5791  HRESULT WINAPI IAMPushSource_GetMaxStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME *prtMaxOffset);
5792  void __RPC_STUB IAMPushSource_GetMaxStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5793  HRESULT WINAPI IAMPushSource_SetMaxStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
5794  void __RPC_STUB IAMPushSource_SetMaxStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5795#endif
5796
5797#ifndef __IAMDeviceRemoval_INTERFACE_DEFINED__
5798#define __IAMDeviceRemoval_INTERFACE_DEFINED__
5799  EXTERN_C const IID IID_IAMDeviceRemoval;
5800#if defined(__cplusplus) && !defined(CINTERFACE)
5801  struct IAMDeviceRemoval : public IUnknown {
5802  public:
5803    virtual HRESULT WINAPI DeviceInfo(CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink) = 0;
5804    virtual HRESULT WINAPI Reassociate(void) = 0;
5805    virtual HRESULT WINAPI Disassociate(void) = 0;
5806  };
5807#else
5808  typedef struct IAMDeviceRemovalVtbl {
5809    BEGIN_INTERFACE
5810      HRESULT (WINAPI *QueryInterface)(IAMDeviceRemoval *This,REFIID riid,void **ppvObject);
5811      ULONG (WINAPI *AddRef)(IAMDeviceRemoval *This);
5812      ULONG (WINAPI *Release)(IAMDeviceRemoval *This);
5813      HRESULT (WINAPI *DeviceInfo)(IAMDeviceRemoval *This,CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink);
5814      HRESULT (WINAPI *Reassociate)(IAMDeviceRemoval *This);
5815      HRESULT (WINAPI *Disassociate)(IAMDeviceRemoval *This);
5816    END_INTERFACE
5817  } IAMDeviceRemovalVtbl;
5818  struct IAMDeviceRemoval {
5819    CONST_VTBL struct IAMDeviceRemovalVtbl *lpVtbl;
5820  };
5821#ifdef COBJMACROS
5822#define IAMDeviceRemoval_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5823#define IAMDeviceRemoval_AddRef(This) (This)->lpVtbl->AddRef(This)
5824#define IAMDeviceRemoval_Release(This) (This)->lpVtbl->Release(This)
5825#define IAMDeviceRemoval_DeviceInfo(This,pclsidInterfaceClass,pwszSymbolicLink) (This)->lpVtbl->DeviceInfo(This,pclsidInterfaceClass,pwszSymbolicLink)
5826#define IAMDeviceRemoval_Reassociate(This) (This)->lpVtbl->Reassociate(This)
5827#define IAMDeviceRemoval_Disassociate(This) (This)->lpVtbl->Disassociate(This)
5828#endif
5829#endif
5830  HRESULT WINAPI IAMDeviceRemoval_DeviceInfo_Proxy(IAMDeviceRemoval *This,CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink);
5831  void __RPC_STUB IAMDeviceRemoval_DeviceInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5832  HRESULT WINAPI IAMDeviceRemoval_Reassociate_Proxy(IAMDeviceRemoval *This);
5833  void __RPC_STUB IAMDeviceRemoval_Reassociate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5834  HRESULT WINAPI IAMDeviceRemoval_Disassociate_Proxy(IAMDeviceRemoval *This);
5835  void __RPC_STUB IAMDeviceRemoval_Disassociate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5836#endif
5837
5838  typedef struct __MIDL___MIDL_itf_strmif_0355_0001 {
5839    DWORD dwDVAAuxSrc;
5840    DWORD dwDVAAuxCtl;
5841    DWORD dwDVAAuxSrc1;
5842    DWORD dwDVAAuxCtl1;
5843    DWORD dwDVVAuxSrc;
5844    DWORD dwDVVAuxCtl;
5845    DWORD dwDVReserved[2];
5846  } DVINFO;
5847
5848  typedef struct __MIDL___MIDL_itf_strmif_0355_0001 *PDVINFO;
5849
5850  enum _DVENCODERRESOLUTION {
5851    DVENCODERRESOLUTION_720x480 = 2012,DVENCODERRESOLUTION_360x240 = 2013,DVENCODERRESOLUTION_180x120 = 2014,DVENCODERRESOLUTION_88x60 = 2015
5852  };
5853
5854  enum _DVENCODERVIDEOFORMAT {
5855    DVENCODERVIDEOFORMAT_NTSC = 2000,DVENCODERVIDEOFORMAT_PAL = 2001
5856  };
5857
5858  enum _DVENCODERFORMAT {
5859    DVENCODERFORMAT_DVSD = 2007,DVENCODERFORMAT_DVHD = 2008,DVENCODERFORMAT_DVSL = 2009
5860  };
5861
5862  extern RPC_IF_HANDLE __MIDL_itf_strmif_0355_v0_0_c_ifspec;
5863  extern RPC_IF_HANDLE __MIDL_itf_strmif_0355_v0_0_s_ifspec;
5864#ifndef __IDVEnc_INTERFACE_DEFINED__
5865#define __IDVEnc_INTERFACE_DEFINED__
5866  EXTERN_C const IID IID_IDVEnc;
5867#if defined(__cplusplus) && !defined(CINTERFACE)
5868  struct IDVEnc : public IUnknown {
5869  public:
5870    virtual HRESULT WINAPI get_IFormatResolution(int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo) = 0;
5871    virtual HRESULT WINAPI put_IFormatResolution(int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo) = 0;
5872  };
5873#else
5874  typedef struct IDVEncVtbl {
5875    BEGIN_INTERFACE
5876      HRESULT (WINAPI *QueryInterface)(IDVEnc *This,REFIID riid,void **ppvObject);
5877      ULONG (WINAPI *AddRef)(IDVEnc *This);
5878      ULONG (WINAPI *Release)(IDVEnc *This);
5879      HRESULT (WINAPI *get_IFormatResolution)(IDVEnc *This,int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
5880      HRESULT (WINAPI *put_IFormatResolution)(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
5881    END_INTERFACE
5882  } IDVEncVtbl;
5883  struct IDVEnc {
5884    CONST_VTBL struct IDVEncVtbl *lpVtbl;
5885  };
5886#ifdef COBJMACROS
5887#define IDVEnc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5888#define IDVEnc_AddRef(This) (This)->lpVtbl->AddRef(This)
5889#define IDVEnc_Release(This) (This)->lpVtbl->Release(This)
5890#define IDVEnc_get_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo) (This)->lpVtbl->get_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo)
5891#define IDVEnc_put_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo) (This)->lpVtbl->put_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo)
5892#endif
5893#endif
5894  HRESULT WINAPI IDVEnc_get_IFormatResolution_Proxy(IDVEnc *This,int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
5895  void __RPC_STUB IDVEnc_get_IFormatResolution_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5896  HRESULT WINAPI IDVEnc_put_IFormatResolution_Proxy(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
5897  void __RPC_STUB IDVEnc_put_IFormatResolution_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5898#endif
5899
5900  enum _DVDECODERRESOLUTION {
5901    DVDECODERRESOLUTION_720x480 = 1000,DVDECODERRESOLUTION_360x240 = 1001,DVDECODERRESOLUTION_180x120 = 1002,DVDECODERRESOLUTION_88x60 = 1003
5902  };
5903
5904  enum _DVRESOLUTION {
5905    DVRESOLUTION_FULL = 1000,DVRESOLUTION_HALF = 1001,DVRESOLUTION_QUARTER = 1002,DVRESOLUTION_DC = 1003
5906  };
5907
5908  extern RPC_IF_HANDLE __MIDL_itf_strmif_0356_v0_0_c_ifspec;
5909  extern RPC_IF_HANDLE __MIDL_itf_strmif_0356_v0_0_s_ifspec;
5910#ifndef __IIPDVDec_INTERFACE_DEFINED__
5911#define __IIPDVDec_INTERFACE_DEFINED__
5912  EXTERN_C const IID IID_IIPDVDec;
5913#if defined(__cplusplus) && !defined(CINTERFACE)
5914  struct IIPDVDec : public IUnknown {
5915  public:
5916    virtual HRESULT WINAPI get_IPDisplay(int *displayPix) = 0;
5917    virtual HRESULT WINAPI put_IPDisplay(int displayPix) = 0;
5918  };
5919#else
5920  typedef struct IIPDVDecVtbl {
5921    BEGIN_INTERFACE
5922      HRESULT (WINAPI *QueryInterface)(IIPDVDec *This,REFIID riid,void **ppvObject);
5923      ULONG (WINAPI *AddRef)(IIPDVDec *This);
5924      ULONG (WINAPI *Release)(IIPDVDec *This);
5925      HRESULT (WINAPI *get_IPDisplay)(IIPDVDec *This,int *displayPix);
5926      HRESULT (WINAPI *put_IPDisplay)(IIPDVDec *This,int displayPix);
5927    END_INTERFACE
5928  } IIPDVDecVtbl;
5929  struct IIPDVDec {
5930    CONST_VTBL struct IIPDVDecVtbl *lpVtbl;
5931  };
5932#ifdef COBJMACROS
5933#define IIPDVDec_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5934#define IIPDVDec_AddRef(This) (This)->lpVtbl->AddRef(This)
5935#define IIPDVDec_Release(This) (This)->lpVtbl->Release(This)
5936#define IIPDVDec_get_IPDisplay(This,displayPix) (This)->lpVtbl->get_IPDisplay(This,displayPix)
5937#define IIPDVDec_put_IPDisplay(This,displayPix) (This)->lpVtbl->put_IPDisplay(This,displayPix)
5938#endif
5939#endif
5940  HRESULT WINAPI IIPDVDec_get_IPDisplay_Proxy(IIPDVDec *This,int *displayPix);
5941  void __RPC_STUB IIPDVDec_get_IPDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5942  HRESULT WINAPI IIPDVDec_put_IPDisplay_Proxy(IIPDVDec *This,int displayPix);
5943  void __RPC_STUB IIPDVDec_put_IPDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5944#endif
5945
5946#ifndef __IDVRGB219_INTERFACE_DEFINED__
5947#define __IDVRGB219_INTERFACE_DEFINED__
5948  EXTERN_C const IID IID_IDVRGB219;
5949#if defined(__cplusplus) && !defined(CINTERFACE)
5950  struct IDVRGB219 : public IUnknown {
5951  public:
5952    virtual HRESULT WINAPI SetRGB219(WINBOOL bState) = 0;
5953  };
5954#else
5955  typedef struct IDVRGB219Vtbl {
5956    BEGIN_INTERFACE
5957      HRESULT (WINAPI *QueryInterface)(IDVRGB219 *This,REFIID riid,void **ppvObject);
5958      ULONG (WINAPI *AddRef)(IDVRGB219 *This);
5959      ULONG (WINAPI *Release)(IDVRGB219 *This);
5960      HRESULT (WINAPI *SetRGB219)(IDVRGB219 *This,WINBOOL bState);
5961    END_INTERFACE
5962  } IDVRGB219Vtbl;
5963  struct IDVRGB219 {
5964    CONST_VTBL struct IDVRGB219Vtbl *lpVtbl;
5965  };
5966#ifdef COBJMACROS
5967#define IDVRGB219_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5968#define IDVRGB219_AddRef(This) (This)->lpVtbl->AddRef(This)
5969#define IDVRGB219_Release(This) (This)->lpVtbl->Release(This)
5970#define IDVRGB219_SetRGB219(This,bState) (This)->lpVtbl->SetRGB219(This,bState)
5971#endif
5972#endif
5973  HRESULT WINAPI IDVRGB219_SetRGB219_Proxy(IDVRGB219 *This,WINBOOL bState);
5974  void __RPC_STUB IDVRGB219_SetRGB219_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
5975#endif
5976
5977#ifndef __IDVSplitter_INTERFACE_DEFINED__
5978#define __IDVSplitter_INTERFACE_DEFINED__
5979  EXTERN_C const IID IID_IDVSplitter;
5980#if defined(__cplusplus) && !defined(CINTERFACE)
5981  struct IDVSplitter : public IUnknown {
5982  public:
5983    virtual HRESULT WINAPI DiscardAlternateVideoFrames(int nDiscard) = 0;
5984  };
5985#else
5986  typedef struct IDVSplitterVtbl {
5987    BEGIN_INTERFACE
5988      HRESULT (WINAPI *QueryInterface)(IDVSplitter *This,REFIID riid,void **ppvObject);
5989      ULONG (WINAPI *AddRef)(IDVSplitter *This);
5990      ULONG (WINAPI *Release)(IDVSplitter *This);
5991      HRESULT (WINAPI *DiscardAlternateVideoFrames)(IDVSplitter *This,int nDiscard);
5992    END_INTERFACE
5993  } IDVSplitterVtbl;
5994  struct IDVSplitter {
5995    CONST_VTBL struct IDVSplitterVtbl *lpVtbl;
5996  };
5997#ifdef COBJMACROS
5998#define IDVSplitter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5999#define IDVSplitter_AddRef(This) (This)->lpVtbl->AddRef(This)
6000#define IDVSplitter_Release(This) (This)->lpVtbl->Release(This)
6001#define IDVSplitter_DiscardAlternateVideoFrames(This,nDiscard) (This)->lpVtbl->DiscardAlternateVideoFrames(This,nDiscard)
6002#endif
6003#endif
6004  HRESULT WINAPI IDVSplitter_DiscardAlternateVideoFrames_Proxy(IDVSplitter *This,int nDiscard);
6005  void __RPC_STUB IDVSplitter_DiscardAlternateVideoFrames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6006#endif
6007
6008  enum _AM_AUDIO_RENDERER_STAT_PARAM {
6009    AM_AUDREND_STAT_PARAM_BREAK_COUNT = 1,
6010    AM_AUDREND_STAT_PARAM_SLAVE_MODE,AM_AUDREND_STAT_PARAM_SILENCE_DUR,
6011    AM_AUDREND_STAT_PARAM_LAST_BUFFER_DUR,AM_AUDREND_STAT_PARAM_DISCONTINUITIES,
6012    AM_AUDREND_STAT_PARAM_SLAVE_RATE,AM_AUDREND_STAT_PARAM_SLAVE_DROPWRITE_DUR,
6013    AM_AUDREND_STAT_PARAM_SLAVE_HIGHLOWERROR,AM_AUDREND_STAT_PARAM_SLAVE_LASTHIGHLOWERROR,
6014    AM_AUDREND_STAT_PARAM_SLAVE_ACCUMERROR,AM_AUDREND_STAT_PARAM_BUFFERFULLNESS,
6015    AM_AUDREND_STAT_PARAM_JITTER
6016  };
6017
6018  extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_c_ifspec;
6019  extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_s_ifspec;
6020#ifndef __IAMAudioRendererStats_INTERFACE_DEFINED__
6021#define __IAMAudioRendererStats_INTERFACE_DEFINED__
6022  EXTERN_C const IID IID_IAMAudioRendererStats;
6023#if defined(__cplusplus) && !defined(CINTERFACE)
6024  struct IAMAudioRendererStats : public IUnknown {
6025  public:
6026    virtual HRESULT WINAPI GetStatParam(DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2) = 0;
6027  };
6028#else
6029  typedef struct IAMAudioRendererStatsVtbl {
6030    BEGIN_INTERFACE
6031      HRESULT (WINAPI *QueryInterface)(IAMAudioRendererStats *This,REFIID riid,void **ppvObject);
6032      ULONG (WINAPI *AddRef)(IAMAudioRendererStats *This);
6033      ULONG (WINAPI *Release)(IAMAudioRendererStats *This);
6034      HRESULT (WINAPI *GetStatParam)(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
6035    END_INTERFACE
6036  } IAMAudioRendererStatsVtbl;
6037  struct IAMAudioRendererStats {
6038    CONST_VTBL struct IAMAudioRendererStatsVtbl *lpVtbl;
6039  };
6040#ifdef COBJMACROS
6041#define IAMAudioRendererStats_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6042#define IAMAudioRendererStats_AddRef(This) (This)->lpVtbl->AddRef(This)
6043#define IAMAudioRendererStats_Release(This) (This)->lpVtbl->Release(This)
6044#define IAMAudioRendererStats_GetStatParam(This,dwParam,pdwParam1,pdwParam2) (This)->lpVtbl->GetStatParam(This,dwParam,pdwParam1,pdwParam2)
6045#endif
6046#endif
6047  HRESULT WINAPI IAMAudioRendererStats_GetStatParam_Proxy(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
6048  void __RPC_STUB IAMAudioRendererStats_GetStatParam_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6049#endif
6050
6051  enum _AM_INTF_SEARCH_FLAGS {
6052    AM_INTF_SEARCH_INPUT_PIN = 0x1,AM_INTF_SEARCH_OUTPUT_PIN = 0x2,AM_INTF_SEARCH_FILTER = 0x4
6053  };
6054
6055  extern RPC_IF_HANDLE __MIDL_itf_strmif_0361_v0_0_c_ifspec;
6056  extern RPC_IF_HANDLE __MIDL_itf_strmif_0361_v0_0_s_ifspec;
6057#ifndef __IAMGraphStreams_INTERFACE_DEFINED__
6058#define __IAMGraphStreams_INTERFACE_DEFINED__
6059  EXTERN_C const IID IID_IAMGraphStreams;
6060#if defined(__cplusplus) && !defined(CINTERFACE)
6061  struct IAMGraphStreams : public IUnknown {
6062  public:
6063    virtual HRESULT WINAPI FindUpstreamInterface(IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags) = 0;
6064    virtual HRESULT WINAPI SyncUsingStreamOffset(WINBOOL bUseStreamOffset) = 0;
6065    virtual HRESULT WINAPI SetMaxGraphLatency(REFERENCE_TIME rtMaxGraphLatency) = 0;
6066  };
6067#else
6068  typedef struct IAMGraphStreamsVtbl {
6069    BEGIN_INTERFACE
6070      HRESULT (WINAPI *QueryInterface)(IAMGraphStreams *This,REFIID riid,void **ppvObject);
6071      ULONG (WINAPI *AddRef)(IAMGraphStreams *This);
6072      ULONG (WINAPI *Release)(IAMGraphStreams *This);
6073      HRESULT (WINAPI *FindUpstreamInterface)(IAMGraphStreams *This,IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags);
6074      HRESULT (WINAPI *SyncUsingStreamOffset)(IAMGraphStreams *This,WINBOOL bUseStreamOffset);
6075      HRESULT (WINAPI *SetMaxGraphLatency)(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
6076    END_INTERFACE
6077  } IAMGraphStreamsVtbl;
6078  struct IAMGraphStreams {
6079    CONST_VTBL struct IAMGraphStreamsVtbl *lpVtbl;
6080  };
6081#ifdef COBJMACROS
6082#define IAMGraphStreams_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6083#define IAMGraphStreams_AddRef(This) (This)->lpVtbl->AddRef(This)
6084#define IAMGraphStreams_Release(This) (This)->lpVtbl->Release(This)
6085#define IAMGraphStreams_FindUpstreamInterface(This,pPin,riid,ppvInterface,dwFlags) (This)->lpVtbl->FindUpstreamInterface(This,pPin,riid,ppvInterface,dwFlags)
6086#define IAMGraphStreams_SyncUsingStreamOffset(This,bUseStreamOffset) (This)->lpVtbl->SyncUsingStreamOffset(This,bUseStreamOffset)
6087#define IAMGraphStreams_SetMaxGraphLatency(This,rtMaxGraphLatency) (This)->lpVtbl->SetMaxGraphLatency(This,rtMaxGraphLatency)
6088#endif
6089#endif
6090  HRESULT WINAPI IAMGraphStreams_FindUpstreamInterface_Proxy(IAMGraphStreams *This,IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags);
6091  void __RPC_STUB IAMGraphStreams_FindUpstreamInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6092  HRESULT WINAPI IAMGraphStreams_SyncUsingStreamOffset_Proxy(IAMGraphStreams *This,WINBOOL bUseStreamOffset);
6093  void __RPC_STUB IAMGraphStreams_SyncUsingStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6094  HRESULT WINAPI IAMGraphStreams_SetMaxGraphLatency_Proxy(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
6095  void __RPC_STUB IAMGraphStreams_SetMaxGraphLatency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6096#endif
6097
6098  enum AMOVERLAYFX {
6099    AMOVERFX_NOFX = 0,AMOVERFX_MIRRORLEFTRIGHT = 0x2,AMOVERFX_MIRRORUPDOWN = 0x4,AMOVERFX_DEINTERLACE = 0x8
6100  };
6101
6102  extern RPC_IF_HANDLE __MIDL_itf_strmif_0362_v0_0_c_ifspec;
6103  extern RPC_IF_HANDLE __MIDL_itf_strmif_0362_v0_0_s_ifspec;
6104#ifndef __IAMOverlayFX_INTERFACE_DEFINED__
6105#define __IAMOverlayFX_INTERFACE_DEFINED__
6106  EXTERN_C const IID IID_IAMOverlayFX;
6107#if defined(__cplusplus) && !defined(CINTERFACE)
6108  struct IAMOverlayFX : public IUnknown {
6109  public:
6110    virtual HRESULT WINAPI QueryOverlayFXCaps(DWORD *lpdwOverlayFXCaps) = 0;
6111    virtual HRESULT WINAPI SetOverlayFX(DWORD dwOverlayFX) = 0;
6112    virtual HRESULT WINAPI GetOverlayFX(DWORD *lpdwOverlayFX) = 0;
6113  };
6114#else
6115  typedef struct IAMOverlayFXVtbl {
6116    BEGIN_INTERFACE
6117      HRESULT (WINAPI *QueryInterface)(IAMOverlayFX *This,REFIID riid,void **ppvObject);
6118      ULONG (WINAPI *AddRef)(IAMOverlayFX *This);
6119      ULONG (WINAPI *Release)(IAMOverlayFX *This);
6120      HRESULT (WINAPI *QueryOverlayFXCaps)(IAMOverlayFX *This,DWORD *lpdwOverlayFXCaps);
6121      HRESULT (WINAPI *SetOverlayFX)(IAMOverlayFX *This,DWORD dwOverlayFX);
6122      HRESULT (WINAPI *GetOverlayFX)(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
6123    END_INTERFACE
6124  } IAMOverlayFXVtbl;
6125  struct IAMOverlayFX {
6126    CONST_VTBL struct IAMOverlayFXVtbl *lpVtbl;
6127  };
6128#ifdef COBJMACROS
6129#define IAMOverlayFX_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6130#define IAMOverlayFX_AddRef(This) (This)->lpVtbl->AddRef(This)
6131#define IAMOverlayFX_Release(This) (This)->lpVtbl->Release(This)
6132#define IAMOverlayFX_QueryOverlayFXCaps(This,lpdwOverlayFXCaps) (This)->lpVtbl->QueryOverlayFXCaps(This,lpdwOverlayFXCaps)
6133#define IAMOverlayFX_SetOverlayFX(This,dwOverlayFX) (This)->lpVtbl->SetOverlayFX(This,dwOverlayFX)
6134#define IAMOverlayFX_GetOverlayFX(This,lpdwOverlayFX) (This)->lpVtbl->GetOverlayFX(This,lpdwOverlayFX)
6135#endif
6136#endif
6137  HRESULT WINAPI IAMOverlayFX_QueryOverlayFXCaps_Proxy(IAMOverlayFX *This,DWORD *lpdwOverlayFXCaps);
6138  void __RPC_STUB IAMOverlayFX_QueryOverlayFXCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6139  HRESULT WINAPI IAMOverlayFX_SetOverlayFX_Proxy(IAMOverlayFX *This,DWORD dwOverlayFX);
6140  void __RPC_STUB IAMOverlayFX_SetOverlayFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6141  HRESULT WINAPI IAMOverlayFX_GetOverlayFX_Proxy(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
6142  void __RPC_STUB IAMOverlayFX_GetOverlayFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6143#endif
6144
6145#ifndef __IAMOpenProgress_INTERFACE_DEFINED__
6146#define __IAMOpenProgress_INTERFACE_DEFINED__
6147  EXTERN_C const IID IID_IAMOpenProgress;
6148#if defined(__cplusplus) && !defined(CINTERFACE)
6149  struct IAMOpenProgress : public IUnknown {
6150  public:
6151    virtual HRESULT WINAPI QueryProgress(LONGLONG *pllTotal,LONGLONG *pllCurrent) = 0;
6152    virtual HRESULT WINAPI AbortOperation(void) = 0;
6153  };
6154#else
6155  typedef struct IAMOpenProgressVtbl {
6156    BEGIN_INTERFACE
6157      HRESULT (WINAPI *QueryInterface)(IAMOpenProgress *This,REFIID riid,void **ppvObject);
6158      ULONG (WINAPI *AddRef)(IAMOpenProgress *This);
6159      ULONG (WINAPI *Release)(IAMOpenProgress *This);
6160      HRESULT (WINAPI *QueryProgress)(IAMOpenProgress *This,LONGLONG *pllTotal,LONGLONG *pllCurrent);
6161      HRESULT (WINAPI *AbortOperation)(IAMOpenProgress *This);
6162    END_INTERFACE
6163  } IAMOpenProgressVtbl;
6164  struct IAMOpenProgress {
6165    CONST_VTBL struct IAMOpenProgressVtbl *lpVtbl;
6166  };
6167#ifdef COBJMACROS
6168#define IAMOpenProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6169#define IAMOpenProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
6170#define IAMOpenProgress_Release(This) (This)->lpVtbl->Release(This)
6171#define IAMOpenProgress_QueryProgress(This,pllTotal,pllCurrent) (This)->lpVtbl->QueryProgress(This,pllTotal,pllCurrent)
6172#define IAMOpenProgress_AbortOperation(This) (This)->lpVtbl->AbortOperation(This)
6173#endif
6174#endif
6175  HRESULT WINAPI IAMOpenProgress_QueryProgress_Proxy(IAMOpenProgress *This,LONGLONG *pllTotal,LONGLONG *pllCurrent);
6176  void __RPC_STUB IAMOpenProgress_QueryProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6177  HRESULT WINAPI IAMOpenProgress_AbortOperation_Proxy(IAMOpenProgress *This);
6178  void __RPC_STUB IAMOpenProgress_AbortOperation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6179#endif
6180
6181#ifndef __IMpeg2Demultiplexer_INTERFACE_DEFINED__
6182#define __IMpeg2Demultiplexer_INTERFACE_DEFINED__
6183  EXTERN_C const IID IID_IMpeg2Demultiplexer;
6184#if defined(__cplusplus) && !defined(CINTERFACE)
6185  struct IMpeg2Demultiplexer : public IUnknown {
6186  public:
6187    virtual HRESULT WINAPI CreateOutputPin(AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin) = 0;
6188    virtual HRESULT WINAPI SetOutputPinMediaType(LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType) = 0;
6189    virtual HRESULT WINAPI DeleteOutputPin(LPWSTR pszPinName) = 0;
6190  };
6191#else
6192  typedef struct IMpeg2DemultiplexerVtbl {
6193    BEGIN_INTERFACE
6194      HRESULT (WINAPI *QueryInterface)(IMpeg2Demultiplexer *This,REFIID riid,void **ppvObject);
6195      ULONG (WINAPI *AddRef)(IMpeg2Demultiplexer *This);
6196      ULONG (WINAPI *Release)(IMpeg2Demultiplexer *This);
6197      HRESULT (WINAPI *CreateOutputPin)(IMpeg2Demultiplexer *This,AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin);
6198      HRESULT (WINAPI *SetOutputPinMediaType)(IMpeg2Demultiplexer *This,LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType);
6199      HRESULT (WINAPI *DeleteOutputPin)(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
6200    END_INTERFACE
6201  } IMpeg2DemultiplexerVtbl;
6202  struct IMpeg2Demultiplexer {
6203    CONST_VTBL struct IMpeg2DemultiplexerVtbl *lpVtbl;
6204  };
6205#ifdef COBJMACROS
6206#define IMpeg2Demultiplexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6207#define IMpeg2Demultiplexer_AddRef(This) (This)->lpVtbl->AddRef(This)
6208#define IMpeg2Demultiplexer_Release(This) (This)->lpVtbl->Release(This)
6209#define IMpeg2Demultiplexer_CreateOutputPin(This,pMediaType,pszPinName,ppIPin) (This)->lpVtbl->CreateOutputPin(This,pMediaType,pszPinName,ppIPin)
6210#define IMpeg2Demultiplexer_SetOutputPinMediaType(This,pszPinName,pMediaType) (This)->lpVtbl->SetOutputPinMediaType(This,pszPinName,pMediaType)
6211#define IMpeg2Demultiplexer_DeleteOutputPin(This,pszPinName) (This)->lpVtbl->DeleteOutputPin(This,pszPinName)
6212#endif
6213#endif
6214  HRESULT WINAPI IMpeg2Demultiplexer_CreateOutputPin_Proxy(IMpeg2Demultiplexer *This,AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin);
6215  void __RPC_STUB IMpeg2Demultiplexer_CreateOutputPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6216  HRESULT WINAPI IMpeg2Demultiplexer_SetOutputPinMediaType_Proxy(IMpeg2Demultiplexer *This,LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType);
6217  void __RPC_STUB IMpeg2Demultiplexer_SetOutputPinMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6218  HRESULT WINAPI IMpeg2Demultiplexer_DeleteOutputPin_Proxy(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
6219  void __RPC_STUB IMpeg2Demultiplexer_DeleteOutputPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6220#endif
6221
6222#define MPEG2_PROGRAM_STREAM_MAP 0x00000000
6223#define MPEG2_PROGRAM_ELEMENTARY_STREAM 0x00000001
6224#define MPEG2_PROGRAM_DIRECTORY_PES_PACKET 0x00000002
6225#define MPEG2_PROGRAM_PACK_HEADER 0x00000003
6226#define MPEG2_PROGRAM_PES_STREAM 0x00000004
6227#define MPEG2_PROGRAM_SYSTEM_HEADER 0x00000005
6228#define SUBSTREAM_FILTER_VAL_NONE 0x10000000
6229
6230  typedef struct __MIDL___MIDL_itf_strmif_0365_0001 {
6231    ULONG stream_id;
6232    DWORD dwMediaSampleContent;
6233    ULONG ulSubstreamFilterValue;
6234    int iDataOffset;
6235  } STREAM_ID_MAP;
6236
6237  extern RPC_IF_HANDLE __MIDL_itf_strmif_0365_v0_0_c_ifspec;
6238  extern RPC_IF_HANDLE __MIDL_itf_strmif_0365_v0_0_s_ifspec;
6239#ifndef __IEnumStreamIdMap_INTERFACE_DEFINED__
6240#define __IEnumStreamIdMap_INTERFACE_DEFINED__
6241  EXTERN_C const IID IID_IEnumStreamIdMap;
6242#if defined(__cplusplus) && !defined(CINTERFACE)
6243  struct IEnumStreamIdMap : public IUnknown {
6244  public:
6245    virtual HRESULT WINAPI Next(ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived) = 0;
6246    virtual HRESULT WINAPI Skip(ULONG cRecords) = 0;
6247    virtual HRESULT WINAPI Reset(void) = 0;
6248    virtual HRESULT WINAPI Clone(IEnumStreamIdMap **ppIEnumStreamIdMap) = 0;
6249  };
6250#else
6251  typedef struct IEnumStreamIdMapVtbl {
6252    BEGIN_INTERFACE
6253      HRESULT (WINAPI *QueryInterface)(IEnumStreamIdMap *This,REFIID riid,void **ppvObject);
6254      ULONG (WINAPI *AddRef)(IEnumStreamIdMap *This);
6255      ULONG (WINAPI *Release)(IEnumStreamIdMap *This);
6256      HRESULT (WINAPI *Next)(IEnumStreamIdMap *This,ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived);
6257      HRESULT (WINAPI *Skip)(IEnumStreamIdMap *This,ULONG cRecords);
6258      HRESULT (WINAPI *Reset)(IEnumStreamIdMap *This);
6259      HRESULT (WINAPI *Clone)(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
6260    END_INTERFACE
6261  } IEnumStreamIdMapVtbl;
6262  struct IEnumStreamIdMap {
6263    CONST_VTBL struct IEnumStreamIdMapVtbl *lpVtbl;
6264  };
6265#ifdef COBJMACROS
6266#define IEnumStreamIdMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6267#define IEnumStreamIdMap_AddRef(This) (This)->lpVtbl->AddRef(This)
6268#define IEnumStreamIdMap_Release(This) (This)->lpVtbl->Release(This)
6269#define IEnumStreamIdMap_Next(This,cRequest,pStreamIdMap,pcReceived) (This)->lpVtbl->Next(This,cRequest,pStreamIdMap,pcReceived)
6270#define IEnumStreamIdMap_Skip(This,cRecords) (This)->lpVtbl->Skip(This,cRecords)
6271#define IEnumStreamIdMap_Reset(This) (This)->lpVtbl->Reset(This)
6272#define IEnumStreamIdMap_Clone(This,ppIEnumStreamIdMap) (This)->lpVtbl->Clone(This,ppIEnumStreamIdMap)
6273#endif
6274#endif
6275  HRESULT WINAPI IEnumStreamIdMap_Next_Proxy(IEnumStreamIdMap *This,ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived);
6276  void __RPC_STUB IEnumStreamIdMap_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6277  HRESULT WINAPI IEnumStreamIdMap_Skip_Proxy(IEnumStreamIdMap *This,ULONG cRecords);
6278  void __RPC_STUB IEnumStreamIdMap_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6279  HRESULT WINAPI IEnumStreamIdMap_Reset_Proxy(IEnumStreamIdMap *This);
6280  void __RPC_STUB IEnumStreamIdMap_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6281  HRESULT WINAPI IEnumStreamIdMap_Clone_Proxy(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
6282  void __RPC_STUB IEnumStreamIdMap_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6283#endif
6284
6285#ifndef __IMPEG2StreamIdMap_INTERFACE_DEFINED__
6286#define __IMPEG2StreamIdMap_INTERFACE_DEFINED__
6287  EXTERN_C const IID IID_IMPEG2StreamIdMap;
6288#if defined(__cplusplus) && !defined(CINTERFACE)
6289  struct IMPEG2StreamIdMap : public IUnknown {
6290  public:
6291    virtual HRESULT WINAPI MapStreamId(ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset) = 0;
6292    virtual HRESULT WINAPI UnmapStreamId(ULONG culStreamId,ULONG *pulStreamId) = 0;
6293    virtual HRESULT WINAPI EnumStreamIdMap(IEnumStreamIdMap **ppIEnumStreamIdMap) = 0;
6294  };
6295#else
6296  typedef struct IMPEG2StreamIdMapVtbl {
6297    BEGIN_INTERFACE
6298      HRESULT (WINAPI *QueryInterface)(IMPEG2StreamIdMap *This,REFIID riid,void **ppvObject);
6299      ULONG (WINAPI *AddRef)(IMPEG2StreamIdMap *This);
6300      ULONG (WINAPI *Release)(IMPEG2StreamIdMap *This);
6301      HRESULT (WINAPI *MapStreamId)(IMPEG2StreamIdMap *This,ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset);
6302      HRESULT (WINAPI *UnmapStreamId)(IMPEG2StreamIdMap *This,ULONG culStreamId,ULONG *pulStreamId);
6303      HRESULT (WINAPI *EnumStreamIdMap)(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
6304    END_INTERFACE
6305  } IMPEG2StreamIdMapVtbl;
6306  struct IMPEG2StreamIdMap {
6307    CONST_VTBL struct IMPEG2StreamIdMapVtbl *lpVtbl;
6308  };
6309#ifdef COBJMACROS
6310#define IMPEG2StreamIdMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6311#define IMPEG2StreamIdMap_AddRef(This) (This)->lpVtbl->AddRef(This)
6312#define IMPEG2StreamIdMap_Release(This) (This)->lpVtbl->Release(This)
6313#define IMPEG2StreamIdMap_MapStreamId(This,ulStreamId,MediaSampleContent,ulSubstreamFilterValue,iDataOffset) (This)->lpVtbl->MapStreamId(This,ulStreamId,MediaSampleContent,ulSubstreamFilterValue,iDataOffset)
6314#define IMPEG2StreamIdMap_UnmapStreamId(This,culStreamId,pulStreamId) (This)->lpVtbl->UnmapStreamId(This,culStreamId,pulStreamId)
6315#define IMPEG2StreamIdMap_EnumStreamIdMap(This,ppIEnumStreamIdMap) (This)->lpVtbl->EnumStreamIdMap(This,ppIEnumStreamIdMap)
6316#endif
6317#endif
6318  HRESULT WINAPI IMPEG2StreamIdMap_MapStreamId_Proxy(IMPEG2StreamIdMap *This,ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset);
6319  void __RPC_STUB IMPEG2StreamIdMap_MapStreamId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6320  HRESULT WINAPI IMPEG2StreamIdMap_UnmapStreamId_Proxy(IMPEG2StreamIdMap *This,ULONG culStreamId,ULONG *pulStreamId);
6321  void __RPC_STUB IMPEG2StreamIdMap_UnmapStreamId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6322  HRESULT WINAPI IMPEG2StreamIdMap_EnumStreamIdMap_Proxy(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
6323  void __RPC_STUB IMPEG2StreamIdMap_EnumStreamIdMap_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6324#endif
6325
6326#ifndef __IRegisterServiceProvider_INTERFACE_DEFINED__
6327#define __IRegisterServiceProvider_INTERFACE_DEFINED__
6328  EXTERN_C const IID IID_IRegisterServiceProvider;
6329#if defined(__cplusplus) && !defined(CINTERFACE)
6330  struct IRegisterServiceProvider : public IUnknown {
6331  public:
6332    virtual HRESULT WINAPI RegisterService(REFGUID guidService,IUnknown *pUnkObject) = 0;
6333  };
6334#else
6335  typedef struct IRegisterServiceProviderVtbl {
6336    BEGIN_INTERFACE
6337      HRESULT (WINAPI *QueryInterface)(IRegisterServiceProvider *This,REFIID riid,void **ppvObject);
6338      ULONG (WINAPI *AddRef)(IRegisterServiceProvider *This);
6339      ULONG (WINAPI *Release)(IRegisterServiceProvider *This);
6340      HRESULT (WINAPI *RegisterService)(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
6341    END_INTERFACE
6342  } IRegisterServiceProviderVtbl;
6343  struct IRegisterServiceProvider {
6344    CONST_VTBL struct IRegisterServiceProviderVtbl *lpVtbl;
6345  };
6346#ifdef COBJMACROS
6347#define IRegisterServiceProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6348#define IRegisterServiceProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
6349#define IRegisterServiceProvider_Release(This) (This)->lpVtbl->Release(This)
6350#define IRegisterServiceProvider_RegisterService(This,guidService,pUnkObject) (This)->lpVtbl->RegisterService(This,guidService,pUnkObject)
6351#endif
6352#endif
6353  HRESULT WINAPI IRegisterServiceProvider_RegisterService_Proxy(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
6354  void __RPC_STUB IRegisterServiceProvider_RegisterService_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6355#endif
6356
6357#ifndef __IAMClockSlave_INTERFACE_DEFINED__
6358#define __IAMClockSlave_INTERFACE_DEFINED__
6359  EXTERN_C const IID IID_IAMClockSlave;
6360#if defined(__cplusplus) && !defined(CINTERFACE)
6361  struct IAMClockSlave : public IUnknown {
6362  public:
6363    virtual HRESULT WINAPI SetErrorTolerance(DWORD dwTolerance) = 0;
6364    virtual HRESULT WINAPI GetErrorTolerance(DWORD *pdwTolerance) = 0;
6365  };
6366#else
6367  typedef struct IAMClockSlaveVtbl {
6368    BEGIN_INTERFACE
6369      HRESULT (WINAPI *QueryInterface)(IAMClockSlave *This,REFIID riid,void **ppvObject);
6370      ULONG (WINAPI *AddRef)(IAMClockSlave *This);
6371      ULONG (WINAPI *Release)(IAMClockSlave *This);
6372      HRESULT (WINAPI *SetErrorTolerance)(IAMClockSlave *This,DWORD dwTolerance);
6373      HRESULT (WINAPI *GetErrorTolerance)(IAMClockSlave *This,DWORD *pdwTolerance);
6374    END_INTERFACE
6375  } IAMClockSlaveVtbl;
6376  struct IAMClockSlave {
6377    CONST_VTBL struct IAMClockSlaveVtbl *lpVtbl;
6378  };
6379#ifdef COBJMACROS
6380#define IAMClockSlave_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6381#define IAMClockSlave_AddRef(This) (This)->lpVtbl->AddRef(This)
6382#define IAMClockSlave_Release(This) (This)->lpVtbl->Release(This)
6383#define IAMClockSlave_SetErrorTolerance(This,dwTolerance) (This)->lpVtbl->SetErrorTolerance(This,dwTolerance)
6384#define IAMClockSlave_GetErrorTolerance(This,pdwTolerance) (This)->lpVtbl->GetErrorTolerance(This,pdwTolerance)
6385#endif
6386#endif
6387  HRESULT WINAPI IAMClockSlave_SetErrorTolerance_Proxy(IAMClockSlave *This,DWORD dwTolerance);
6388  void __RPC_STUB IAMClockSlave_SetErrorTolerance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6389  HRESULT WINAPI IAMClockSlave_GetErrorTolerance_Proxy(IAMClockSlave *This,DWORD *pdwTolerance);
6390  void __RPC_STUB IAMClockSlave_GetErrorTolerance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6391#endif
6392
6393#ifndef __IAMGraphBuilderCallback_INTERFACE_DEFINED__
6394#define __IAMGraphBuilderCallback_INTERFACE_DEFINED__
6395  EXTERN_C const IID IID_IAMGraphBuilderCallback;
6396#if defined(__cplusplus) && !defined(CINTERFACE)
6397  struct IAMGraphBuilderCallback : public IUnknown {
6398  public:
6399    virtual HRESULT WINAPI SelectedFilter(IMoniker *pMon) = 0;
6400    virtual HRESULT WINAPI CreatedFilter(IBaseFilter *pFil) = 0;
6401  };
6402#else
6403  typedef struct IAMGraphBuilderCallbackVtbl {
6404    BEGIN_INTERFACE
6405      HRESULT (WINAPI *QueryInterface)(IAMGraphBuilderCallback *This,REFIID riid,void **ppvObject);
6406      ULONG (WINAPI *AddRef)(IAMGraphBuilderCallback *This);
6407      ULONG (WINAPI *Release)(IAMGraphBuilderCallback *This);
6408      HRESULT (WINAPI *SelectedFilter)(IAMGraphBuilderCallback *This,IMoniker *pMon);
6409      HRESULT (WINAPI *CreatedFilter)(IAMGraphBuilderCallback *This,IBaseFilter *pFil);
6410    END_INTERFACE
6411  } IAMGraphBuilderCallbackVtbl;
6412  struct IAMGraphBuilderCallback {
6413    CONST_VTBL struct IAMGraphBuilderCallbackVtbl *lpVtbl;
6414  };
6415#ifdef COBJMACROS
6416#define IAMGraphBuilderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6417#define IAMGraphBuilderCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
6418#define IAMGraphBuilderCallback_Release(This) (This)->lpVtbl->Release(This)
6419#define IAMGraphBuilderCallback_SelectedFilter(This,pMon) (This)->lpVtbl->SelectedFilter(This,pMon)
6420#define IAMGraphBuilderCallback_CreatedFilter(This,pFil) (This)->lpVtbl->CreatedFilter(This,pFil)
6421#endif
6422#endif
6423  HRESULT WINAPI IAMGraphBuilderCallback_SelectedFilter_Proxy(IAMGraphBuilderCallback *This,IMoniker *pMon);
6424  void __RPC_STUB IAMGraphBuilderCallback_SelectedFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6425  HRESULT WINAPI IAMGraphBuilderCallback_CreatedFilter_Proxy(IAMGraphBuilderCallback *This,IBaseFilter *pFil);
6426  void __RPC_STUB IAMGraphBuilderCallback_CreatedFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6427#endif
6428
6429#ifdef __cplusplus
6430#ifndef _IAMFilterGraphCallback_
6431#define _IAMFilterGraphCallback_
6432  //EXTERN_GUID(IID_IAMFilterGraphCallback,0x56a868fd,0x0ad4,0x11ce,0xb0,0xa3,0x0,0x20,0xaf,0x0b,0xa7,0x70);
6433  struct IAMFilterGraphCallback : public IUnknown {
6434    virtual HRESULT UnableToRender(IPin *pPin) = 0;
6435  };
6436#endif
6437#endif
6438  struct CodecAPIEventData {
6439    GUID guid;
6440    DWORD dataLength;
6441    DWORD reserved[3];
6442  };
6443
6444  extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_c_ifspec;
6445  extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_s_ifspec;
6446#ifndef __ICodecAPI_INTERFACE_DEFINED__
6447#define __ICodecAPI_INTERFACE_DEFINED__
6448  EXTERN_C const IID IID_ICodecAPI;
6449#if defined(__cplusplus) && !defined(CINTERFACE)
6450  struct ICodecAPI : public IUnknown {
6451  public:
6452    virtual HRESULT WINAPI IsSupported(const GUID *Api) = 0;
6453    virtual HRESULT WINAPI IsModifiable(const GUID *Api) = 0;
6454    virtual HRESULT WINAPI GetParameterRange(const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta) = 0;
6455    virtual HRESULT WINAPI GetParameterValues(const GUID *Api,VARIANT **Values,ULONG *ValuesCount) = 0;
6456    virtual HRESULT WINAPI GetDefaultValue(const GUID *Api,VARIANT *Value) = 0;
6457    virtual HRESULT WINAPI GetValue(const GUID *Api,VARIANT *Value) = 0;
6458    virtual HRESULT WINAPI SetValue(const GUID *Api,VARIANT *Value) = 0;
6459    virtual HRESULT WINAPI RegisterForEvent(const GUID *Api,LONG_PTR userData) = 0;
6460    virtual HRESULT WINAPI UnregisterForEvent(const GUID *Api) = 0;
6461    virtual HRESULT WINAPI SetAllDefaults(void) = 0;
6462    virtual HRESULT WINAPI SetValueWithNotify(const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
6463    virtual HRESULT WINAPI SetAllDefaultsWithNotify(GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
6464    virtual HRESULT WINAPI GetAllSettings(IStream *__MIDL_0016) = 0;
6465    virtual HRESULT WINAPI SetAllSettings(IStream *__MIDL_0017) = 0;
6466    virtual HRESULT WINAPI SetAllSettingsWithNotify(IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
6467  };
6468#else
6469  typedef struct ICodecAPIVtbl {
6470    BEGIN_INTERFACE
6471      HRESULT (WINAPI *QueryInterface)(ICodecAPI *This,REFIID riid,void **ppvObject);
6472      ULONG (WINAPI *AddRef)(ICodecAPI *This);
6473      ULONG (WINAPI *Release)(ICodecAPI *This);
6474      HRESULT (WINAPI *IsSupported)(ICodecAPI *This,const GUID *Api);
6475      HRESULT (WINAPI *IsModifiable)(ICodecAPI *This,const GUID *Api);
6476      HRESULT (WINAPI *GetParameterRange)(ICodecAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
6477      HRESULT (WINAPI *GetParameterValues)(ICodecAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
6478      HRESULT (WINAPI *GetDefaultValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
6479      HRESULT (WINAPI *GetValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
6480      HRESULT (WINAPI *SetValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
6481      HRESULT (WINAPI *RegisterForEvent)(ICodecAPI *This,const GUID *Api,LONG_PTR userData);
6482      HRESULT (WINAPI *UnregisterForEvent)(ICodecAPI *This,const GUID *Api);
6483      HRESULT (WINAPI *SetAllDefaults)(ICodecAPI *This);
6484      HRESULT (WINAPI *SetValueWithNotify)(ICodecAPI *This,const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount);
6485      HRESULT (WINAPI *SetAllDefaultsWithNotify)(ICodecAPI *This,GUID **ChangedParam,ULONG *ChangedParamCount);
6486      HRESULT (WINAPI *GetAllSettings)(ICodecAPI *This,IStream *__MIDL_0016);
6487      HRESULT (WINAPI *SetAllSettings)(ICodecAPI *This,IStream *__MIDL_0017);
6488      HRESULT (WINAPI *SetAllSettingsWithNotify)(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
6489    END_INTERFACE
6490  } ICodecAPIVtbl;
6491  struct ICodecAPI {
6492    CONST_VTBL struct ICodecAPIVtbl *lpVtbl;
6493  };
6494#ifdef COBJMACROS
6495#define ICodecAPI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6496#define ICodecAPI_AddRef(This) (This)->lpVtbl->AddRef(This)
6497#define ICodecAPI_Release(This) (This)->lpVtbl->Release(This)
6498#define ICodecAPI_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
6499#define ICodecAPI_IsModifiable(This,Api) (This)->lpVtbl->IsModifiable(This,Api)
6500#define ICodecAPI_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
6501#define ICodecAPI_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
6502#define ICodecAPI_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
6503#define ICodecAPI_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
6504#define ICodecAPI_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
6505#define ICodecAPI_RegisterForEvent(This,Api,userData) (This)->lpVtbl->RegisterForEvent(This,Api,userData)
6506#define ICodecAPI_UnregisterForEvent(This,Api) (This)->lpVtbl->UnregisterForEvent(This,Api)
6507#define ICodecAPI_SetAllDefaults(This) (This)->lpVtbl->SetAllDefaults(This)
6508#define ICodecAPI_SetValueWithNotify(This,Api,Value,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetValueWithNotify(This,Api,Value,ChangedParam,ChangedParamCount)
6509#define ICodecAPI_SetAllDefaultsWithNotify(This,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetAllDefaultsWithNotify(This,ChangedParam,ChangedParamCount)
6510#define ICodecAPI_GetAllSettings(This,__MIDL_0016) (This)->lpVtbl->GetAllSettings(This,__MIDL_0016)
6511#define ICodecAPI_SetAllSettings(This,__MIDL_0017) (This)->lpVtbl->SetAllSettings(This,__MIDL_0017)
6512#define ICodecAPI_SetAllSettingsWithNotify(This,__MIDL_0018,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetAllSettingsWithNotify(This,__MIDL_0018,ChangedParam,ChangedParamCount)
6513#endif
6514#endif
6515  HRESULT WINAPI ICodecAPI_IsSupported_Proxy(ICodecAPI *This,const GUID *Api);
6516  void __RPC_STUB ICodecAPI_IsSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6517  HRESULT WINAPI ICodecAPI_IsModifiable_Proxy(ICodecAPI *This,const GUID *Api);
6518  void __RPC_STUB ICodecAPI_IsModifiable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6519  HRESULT WINAPI ICodecAPI_GetParameterRange_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
6520  void __RPC_STUB ICodecAPI_GetParameterRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6521  HRESULT WINAPI ICodecAPI_GetParameterValues_Proxy(ICodecAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
6522  void __RPC_STUB ICodecAPI_GetParameterValues_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6523  HRESULT WINAPI ICodecAPI_GetDefaultValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
6524  void __RPC_STUB ICodecAPI_GetDefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6525  HRESULT WINAPI ICodecAPI_GetValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
6526  void __RPC_STUB ICodecAPI_GetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6527  HRESULT WINAPI ICodecAPI_SetValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
6528  void __RPC_STUB ICodecAPI_SetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6529  HRESULT WINAPI ICodecAPI_RegisterForEvent_Proxy(ICodecAPI *This,const GUID *Api,LONG_PTR userData);
6530  void __RPC_STUB ICodecAPI_RegisterForEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6531  HRESULT WINAPI ICodecAPI_UnregisterForEvent_Proxy(ICodecAPI *This,const GUID *Api);
6532  void __RPC_STUB ICodecAPI_UnregisterForEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6533  HRESULT WINAPI ICodecAPI_SetAllDefaults_Proxy(ICodecAPI *This);
6534  void __RPC_STUB ICodecAPI_SetAllDefaults_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6535  HRESULT WINAPI ICodecAPI_SetValueWithNotify_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount);
6536  void __RPC_STUB ICodecAPI_SetValueWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6537  HRESULT WINAPI ICodecAPI_SetAllDefaultsWithNotify_Proxy(ICodecAPI *This,GUID **ChangedParam,ULONG *ChangedParamCount);
6538  void __RPC_STUB ICodecAPI_SetAllDefaultsWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6539  HRESULT WINAPI ICodecAPI_GetAllSettings_Proxy(ICodecAPI *This,IStream *__MIDL_0016);
6540  void __RPC_STUB ICodecAPI_GetAllSettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6541  HRESULT WINAPI ICodecAPI_SetAllSettings_Proxy(ICodecAPI *This,IStream *__MIDL_0017);
6542  void __RPC_STUB ICodecAPI_SetAllSettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6543  HRESULT WINAPI ICodecAPI_SetAllSettingsWithNotify_Proxy(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
6544  void __RPC_STUB ICodecAPI_SetAllSettingsWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6545#endif
6546
6547#ifndef __IGetCapabilitiesKey_INTERFACE_DEFINED__
6548#define __IGetCapabilitiesKey_INTERFACE_DEFINED__
6549  EXTERN_C const IID IID_IGetCapabilitiesKey;
6550#if defined(__cplusplus) && !defined(CINTERFACE)
6551  struct IGetCapabilitiesKey : public IUnknown {
6552  public:
6553    virtual HRESULT WINAPI GetCapabilitiesKey(HKEY *pHKey) = 0;
6554  };
6555#else
6556  typedef struct IGetCapabilitiesKeyVtbl {
6557    BEGIN_INTERFACE
6558      HRESULT (WINAPI *QueryInterface)(IGetCapabilitiesKey *This,REFIID riid,void **ppvObject);
6559      ULONG (WINAPI *AddRef)(IGetCapabilitiesKey *This);
6560      ULONG (WINAPI *Release)(IGetCapabilitiesKey *This);
6561      HRESULT (WINAPI *GetCapabilitiesKey)(IGetCapabilitiesKey *This,HKEY *pHKey);
6562    END_INTERFACE
6563  } IGetCapabilitiesKeyVtbl;
6564  struct IGetCapabilitiesKey {
6565    CONST_VTBL struct IGetCapabilitiesKeyVtbl *lpVtbl;
6566  };
6567#ifdef COBJMACROS
6568#define IGetCapabilitiesKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6569#define IGetCapabilitiesKey_AddRef(This) (This)->lpVtbl->AddRef(This)
6570#define IGetCapabilitiesKey_Release(This) (This)->lpVtbl->Release(This)
6571#define IGetCapabilitiesKey_GetCapabilitiesKey(This,pHKey) (This)->lpVtbl->GetCapabilitiesKey(This,pHKey)
6572#endif
6573#endif
6574  HRESULT WINAPI IGetCapabilitiesKey_GetCapabilitiesKey_Proxy(IGetCapabilitiesKey *This,HKEY *pHKey);
6575  void __RPC_STUB IGetCapabilitiesKey_GetCapabilitiesKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6576#endif
6577
6578#ifndef __IEncoderAPI_INTERFACE_DEFINED__
6579#define __IEncoderAPI_INTERFACE_DEFINED__
6580  EXTERN_C const IID IID_IEncoderAPI;
6581#if defined(__cplusplus) && !defined(CINTERFACE)
6582  struct IEncoderAPI : public IUnknown {
6583  public:
6584    virtual HRESULT WINAPI IsSupported(const GUID *Api) = 0;
6585    virtual HRESULT WINAPI IsAvailable(const GUID *Api) = 0;
6586    virtual HRESULT WINAPI GetParameterRange(const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta) = 0;
6587    virtual HRESULT WINAPI GetParameterValues(const GUID *Api,VARIANT **Values,ULONG *ValuesCount) = 0;
6588    virtual HRESULT WINAPI GetDefaultValue(const GUID *Api,VARIANT *Value) = 0;
6589    virtual HRESULT WINAPI GetValue(const GUID *Api,VARIANT *Value) = 0;
6590    virtual HRESULT WINAPI SetValue(const GUID *Api,VARIANT *Value) = 0;
6591  };
6592#else
6593  typedef struct IEncoderAPIVtbl {
6594    BEGIN_INTERFACE
6595      HRESULT (WINAPI *QueryInterface)(IEncoderAPI *This,REFIID riid,void **ppvObject);
6596      ULONG (WINAPI *AddRef)(IEncoderAPI *This);
6597      ULONG (WINAPI *Release)(IEncoderAPI *This);
6598      HRESULT (WINAPI *IsSupported)(IEncoderAPI *This,const GUID *Api);
6599      HRESULT (WINAPI *IsAvailable)(IEncoderAPI *This,const GUID *Api);
6600      HRESULT (WINAPI *GetParameterRange)(IEncoderAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
6601      HRESULT (WINAPI *GetParameterValues)(IEncoderAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
6602      HRESULT (WINAPI *GetDefaultValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
6603      HRESULT (WINAPI *GetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
6604      HRESULT (WINAPI *SetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
6605    END_INTERFACE
6606  } IEncoderAPIVtbl;
6607  struct IEncoderAPI {
6608    CONST_VTBL struct IEncoderAPIVtbl *lpVtbl;
6609  };
6610#ifdef COBJMACROS
6611#define IEncoderAPI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6612#define IEncoderAPI_AddRef(This) (This)->lpVtbl->AddRef(This)
6613#define IEncoderAPI_Release(This) (This)->lpVtbl->Release(This)
6614#define IEncoderAPI_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
6615#define IEncoderAPI_IsAvailable(This,Api) (This)->lpVtbl->IsAvailable(This,Api)
6616#define IEncoderAPI_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
6617#define IEncoderAPI_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
6618#define IEncoderAPI_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
6619#define IEncoderAPI_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
6620#define IEncoderAPI_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
6621#endif
6622#endif
6623  HRESULT WINAPI IEncoderAPI_IsSupported_Proxy(IEncoderAPI *This,const GUID *Api);
6624  void __RPC_STUB IEncoderAPI_IsSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6625  HRESULT WINAPI IEncoderAPI_IsAvailable_Proxy(IEncoderAPI *This,const GUID *Api);
6626  void __RPC_STUB IEncoderAPI_IsAvailable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6627  HRESULT WINAPI IEncoderAPI_GetParameterRange_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
6628  void __RPC_STUB IEncoderAPI_GetParameterRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6629  HRESULT WINAPI IEncoderAPI_GetParameterValues_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
6630  void __RPC_STUB IEncoderAPI_GetParameterValues_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6631  HRESULT WINAPI IEncoderAPI_GetDefaultValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
6632  void __RPC_STUB IEncoderAPI_GetDefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6633  HRESULT WINAPI IEncoderAPI_GetValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
6634  void __RPC_STUB IEncoderAPI_GetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6635  HRESULT WINAPI IEncoderAPI_SetValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
6636  void __RPC_STUB IEncoderAPI_SetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6637#endif
6638
6639#ifndef __IVideoEncoder_INTERFACE_DEFINED__
6640#define __IVideoEncoder_INTERFACE_DEFINED__
6641  EXTERN_C const IID IID_IVideoEncoder;
6642#if defined(__cplusplus) && !defined(CINTERFACE)
6643  struct IVideoEncoder : public IEncoderAPI {
6644  public:
6645  };
6646#else
6647  typedef struct IVideoEncoderVtbl {
6648    BEGIN_INTERFACE
6649      HRESULT (WINAPI *QueryInterface)(IVideoEncoder *This,REFIID riid,void **ppvObject);
6650      ULONG (WINAPI *AddRef)(IVideoEncoder *This);
6651      ULONG (WINAPI *Release)(IVideoEncoder *This);
6652      HRESULT (WINAPI *IsSupported)(IVideoEncoder *This,const GUID *Api);
6653      HRESULT (WINAPI *IsAvailable)(IVideoEncoder *This,const GUID *Api);
6654      HRESULT (WINAPI *GetParameterRange)(IVideoEncoder *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
6655      HRESULT (WINAPI *GetParameterValues)(IVideoEncoder *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
6656      HRESULT (WINAPI *GetDefaultValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
6657      HRESULT (WINAPI *GetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
6658      HRESULT (WINAPI *SetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
6659    END_INTERFACE
6660  } IVideoEncoderVtbl;
6661  struct IVideoEncoder {
6662    CONST_VTBL struct IVideoEncoderVtbl *lpVtbl;
6663  };
6664#ifdef COBJMACROS
6665#define IVideoEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6666#define IVideoEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
6667#define IVideoEncoder_Release(This) (This)->lpVtbl->Release(This)
6668#define IVideoEncoder_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
6669#define IVideoEncoder_IsAvailable(This,Api) (This)->lpVtbl->IsAvailable(This,Api)
6670#define IVideoEncoder_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
6671#define IVideoEncoder_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
6672#define IVideoEncoder_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
6673#define IVideoEncoder_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
6674#define IVideoEncoder_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
6675#endif
6676#endif
6677#endif
6678
6679#ifndef __ENCODER_API_DEFINES__
6680#define __ENCODER_API_DEFINES__
6681  typedef enum __MIDL___MIDL_itf_strmif_0374_0001 {
6682    ConstantBitRate = 0,
6683    VariableBitRateAverage,VariableBitRatePeak
6684  } VIDEOENCODER_BITRATE_MODE;
6685#endif
6686#define AM_GETDECODERCAP_QUERY_VMR_SUPPORT 0x00000001
6687#define VMR_NOTSUPPORTED 0x00000000
6688#define VMR_SUPPORTED 0x00000001
6689#define AM_QUERY_DECODER_VMR_SUPPORT 0x00000001
6690#define AM_QUERY_DECODER_DXVA_1_SUPPORT 0x00000002
6691#define AM_QUERY_DECODER_DVD_SUPPORT 0x00000003
6692#define AM_QUERY_DECODER_ATSC_SD_SUPPORT 0x00000004
6693#define AM_QUERY_DECODER_ATSC_HD_SUPPORT 0x00000005
6694#define AM_GETDECODERCAP_QUERY_VMR9_SUPPORT 0x00000006
6695#define DECODER_CAP_NOTSUPPORTED 0x00000000
6696#define DECODER_CAP_SUPPORTED 0x00000001
6697
6698  extern RPC_IF_HANDLE __MIDL_itf_strmif_0374_v0_0_c_ifspec;
6699  extern RPC_IF_HANDLE __MIDL_itf_strmif_0374_v0_0_s_ifspec;
6700#ifndef __IAMDecoderCaps_INTERFACE_DEFINED__
6701#define __IAMDecoderCaps_INTERFACE_DEFINED__
6702  EXTERN_C const IID IID_IAMDecoderCaps;
6703#if defined(__cplusplus) && !defined(CINTERFACE)
6704  struct IAMDecoderCaps : public IUnknown {
6705  public:
6706    virtual HRESULT WINAPI GetDecoderCaps(DWORD dwCapIndex,DWORD *lpdwCap) = 0;
6707  };
6708#else
6709  typedef struct IAMDecoderCapsVtbl {
6710    BEGIN_INTERFACE
6711      HRESULT (WINAPI *QueryInterface)(IAMDecoderCaps *This,REFIID riid,void **ppvObject);
6712      ULONG (WINAPI *AddRef)(IAMDecoderCaps *This);
6713      ULONG (WINAPI *Release)(IAMDecoderCaps *This);
6714      HRESULT (WINAPI *GetDecoderCaps)(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
6715    END_INTERFACE
6716  } IAMDecoderCapsVtbl;
6717  struct IAMDecoderCaps {
6718    CONST_VTBL struct IAMDecoderCapsVtbl *lpVtbl;
6719  };
6720#ifdef COBJMACROS
6721#define IAMDecoderCaps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6722#define IAMDecoderCaps_AddRef(This) (This)->lpVtbl->AddRef(This)
6723#define IAMDecoderCaps_Release(This) (This)->lpVtbl->Release(This)
6724#define IAMDecoderCaps_GetDecoderCaps(This,dwCapIndex,lpdwCap) (This)->lpVtbl->GetDecoderCaps(This,dwCapIndex,lpdwCap)
6725#endif
6726#endif
6727  HRESULT WINAPI IAMDecoderCaps_GetDecoderCaps_Proxy(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
6728  void __RPC_STUB IAMDecoderCaps_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6729#endif
6730
6731  typedef struct _AMCOPPSignature {
6732    BYTE Signature[256];
6733  } AMCOPPSignature;
6734
6735  typedef struct _AMCOPPCommand {
6736    GUID macKDI;
6737    GUID guidCommandID;
6738    DWORD dwSequence;
6739    DWORD cbSizeData;
6740    BYTE CommandData[4056];
6741  } AMCOPPCommand;
6742
6743  typedef struct _AMCOPPCommand *LPAMCOPPCommand;
6744
6745  typedef struct _AMCOPPStatusInput {
6746    GUID rApp;
6747    GUID guidStatusRequestID;
6748    DWORD dwSequence;
6749    DWORD cbSizeData;
6750    BYTE StatusData[4056];
6751  } AMCOPPStatusInput;
6752
6753  typedef struct _AMCOPPStatusInput *LPAMCOPPStatusInput;
6754
6755  typedef struct _AMCOPPStatusOutput {
6756    GUID macKDI;
6757    DWORD cbSizeData;
6758    BYTE COPPStatus[4076];
6759  } AMCOPPStatusOutput;
6760
6761  typedef struct _AMCOPPStatusOutput *LPAMCOPPStatusOutput;
6762
6763  extern RPC_IF_HANDLE __MIDL_itf_strmif_0375_v0_0_c_ifspec;
6764  extern RPC_IF_HANDLE __MIDL_itf_strmif_0375_v0_0_s_ifspec;
6765#ifndef __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
6766#define __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
6767  EXTERN_C const IID IID_IAMCertifiedOutputProtection;
6768#if defined(__cplusplus) && !defined(CINTERFACE)
6769  struct IAMCertifiedOutputProtection : public IUnknown {
6770  public:
6771    virtual HRESULT WINAPI KeyExchange(GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH) = 0;
6772    virtual HRESULT WINAPI SessionSequenceStart(AMCOPPSignature *pSig) = 0;
6773    virtual HRESULT WINAPI ProtectionCommand(const AMCOPPCommand *cmd) = 0;
6774    virtual HRESULT WINAPI ProtectionStatus(const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput) = 0;
6775  };
6776#else
6777  typedef struct IAMCertifiedOutputProtectionVtbl {
6778    BEGIN_INTERFACE
6779      HRESULT (WINAPI *QueryInterface)(IAMCertifiedOutputProtection *This,REFIID riid,void **ppvObject);
6780      ULONG (WINAPI *AddRef)(IAMCertifiedOutputProtection *This);
6781      ULONG (WINAPI *Release)(IAMCertifiedOutputProtection *This);
6782      HRESULT (WINAPI *KeyExchange)(IAMCertifiedOutputProtection *This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH);
6783      HRESULT (WINAPI *SessionSequenceStart)(IAMCertifiedOutputProtection *This,AMCOPPSignature *pSig);
6784      HRESULT (WINAPI *ProtectionCommand)(IAMCertifiedOutputProtection *This,const AMCOPPCommand *cmd);
6785      HRESULT (WINAPI *ProtectionStatus)(IAMCertifiedOutputProtection *This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput);
6786    END_INTERFACE
6787  } IAMCertifiedOutputProtectionVtbl;
6788  struct IAMCertifiedOutputProtection {
6789    CONST_VTBL struct IAMCertifiedOutputProtectionVtbl *lpVtbl;
6790  };
6791#ifdef COBJMACROS
6792#define IAMCertifiedOutputProtection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6793#define IAMCertifiedOutputProtection_AddRef(This) (This)->lpVtbl->AddRef(This)
6794#define IAMCertifiedOutputProtection_Release(This) (This)->lpVtbl->Release(This)
6795#define IAMCertifiedOutputProtection_KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH) (This)->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH)
6796#define IAMCertifiedOutputProtection_SessionSequenceStart(This,pSig) (This)->lpVtbl->SessionSequenceStart(This,pSig)
6797#define IAMCertifiedOutputProtection_ProtectionCommand(This,cmd) (This)->lpVtbl->ProtectionCommand(This,cmd)
6798#define IAMCertifiedOutputProtection_ProtectionStatus(This,pStatusInput,pStatusOutput) (This)->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput)
6799#endif
6800#endif
6801  HRESULT WINAPI IAMCertifiedOutputProtection_KeyExchange_Proxy(IAMCertifiedOutputProtection *This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH);
6802  void __RPC_STUB IAMCertifiedOutputProtection_KeyExchange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6803  HRESULT WINAPI IAMCertifiedOutputProtection_SessionSequenceStart_Proxy(IAMCertifiedOutputProtection *This,AMCOPPSignature *pSig);
6804  void __RPC_STUB IAMCertifiedOutputProtection_SessionSequenceStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6805  HRESULT WINAPI IAMCertifiedOutputProtection_ProtectionCommand_Proxy(IAMCertifiedOutputProtection *This,const AMCOPPCommand *cmd);
6806  void __RPC_STUB IAMCertifiedOutputProtection_ProtectionCommand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6807  HRESULT WINAPI IAMCertifiedOutputProtection_ProtectionStatus_Proxy(IAMCertifiedOutputProtection *This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput);
6808  void __RPC_STUB IAMCertifiedOutputProtection_ProtectionStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
6809#endif
6810
6811#include <dshow/ddraw.h>
6812
6813  typedef enum tagDVD_DOMAIN {
6814    DVD_DOMAIN_FirstPlay = 1,
6815    DVD_DOMAIN_VideoManagerMenu,DVD_DOMAIN_VideoTitleSetMenu,DVD_DOMAIN_Title,
6816    DVD_DOMAIN_Stop
6817  } DVD_DOMAIN;
6818
6819  typedef enum tagDVD_MENU_ID {
6820    DVD_MENU_Title = 2,DVD_MENU_Root = 3,DVD_MENU_Subpicture = 4,DVD_MENU_Audio = 5,
6821    DVD_MENU_Angle = 6,DVD_MENU_Chapter = 7
6822  } DVD_MENU_ID;
6823
6824  typedef enum tagDVD_DISC_SIDE {
6825    DVD_SIDE_A = 1,DVD_SIDE_B = 2
6826  } DVD_DISC_SIDE;
6827
6828  typedef enum tagDVD_PREFERRED_DISPLAY_MODE {
6829    DISPLAY_CONTENT_DEFAULT = 0,DISPLAY_16x9 = 1,DISPLAY_4x3_PANSCAN_PREFERRED = 2,DISPLAY_4x3_LETTERBOX_PREFERRED = 3
6830  } DVD_PREFERRED_DISPLAY_MODE;
6831
6832  typedef WORD DVD_REGISTER;
6833  typedef DVD_REGISTER GPRMARRAY[16];
6834  typedef DVD_REGISTER SPRMARRAY[24];
6835
6836  typedef struct tagDVD_ATR {
6837    ULONG ulCAT;
6838    BYTE pbATRI[768];
6839  } DVD_ATR;
6840
6841  typedef BYTE DVD_VideoATR[2];
6842  typedef BYTE DVD_AudioATR[8];
6843  typedef BYTE DVD_SubpictureATR[6];
6844
6845  typedef enum tagDVD_FRAMERATE {
6846    DVD_FPS_25 = 1,DVD_FPS_30NonDrop = 3
6847  } DVD_FRAMERATE;
6848
6849  typedef struct tagDVD_TIMECODE {
6850    ULONG Hours1 :4;
6851    ULONG Hours10 :4;
6852    ULONG Minutes1 :4;
6853    ULONG Minutes10:4;
6854    ULONG Seconds1 :4;
6855    ULONG Seconds10:4;
6856    ULONG Frames1 :4;
6857    ULONG Frames10 :2;
6858    ULONG FrameRateCode: 2;
6859  } DVD_TIMECODE;
6860
6861  typedef enum tagDVD_TIMECODE_FLAGS {
6862    DVD_TC_FLAG_25fps = 0x1,DVD_TC_FLAG_30fps = 0x2,DVD_TC_FLAG_DropFrame = 0x4,DVD_TC_FLAG_Interpolated = 0x8
6863  } DVD_TIMECODE_FLAGS;
6864
6865  typedef struct tagDVD_HMSF_TIMECODE {
6866    BYTE bHours;
6867    BYTE bMinutes;
6868    BYTE bSeconds;
6869    BYTE bFrames;
6870  } DVD_HMSF_TIMECODE;
6871
6872  typedef struct tagDVD_PLAYBACK_LOCATION2 {
6873    ULONG TitleNum;
6874    ULONG ChapterNum;
6875    DVD_HMSF_TIMECODE TimeCode;
6876    ULONG TimeCodeFlags;
6877  } DVD_PLAYBACK_LOCATION2;
6878
6879  typedef struct tagDVD_PLAYBACK_LOCATION {
6880    ULONG TitleNum;
6881    ULONG ChapterNum;
6882    ULONG TimeCode;
6883  } DVD_PLAYBACK_LOCATION;
6884
6885  typedef DWORD VALID_UOP_SOMTHING_OR_OTHER;
6886
6887  typedef enum __MIDL___MIDL_itf_strmif_0376_0001 {
6888    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,
6889    UOP_FLAG_Play_Chapter_Or_AtTime = 0x20,UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x40,UOP_FLAG_PlayNext_Chapter = 0x80,UOP_FLAG_Play_Forwards = 0x100,
6890    UOP_FLAG_Play_Backwards = 0x200,UOP_FLAG_ShowMenu_Title = 0x400,UOP_FLAG_ShowMenu_Root = 0x800,UOP_FLAG_ShowMenu_SubPic = 0x1000,
6891    UOP_FLAG_ShowMenu_Audio = 0x2000,UOP_FLAG_ShowMenu_Angle = 0x4000,UOP_FLAG_ShowMenu_Chapter = 0x8000,UOP_FLAG_Resume = 0x10000,
6892    UOP_FLAG_Select_Or_Activate_Button = 0x20000,UOP_FLAG_Still_Off = 0x40000,UOP_FLAG_Pause_On = 0x80000,UOP_FLAG_Select_Audio_Stream = 0x100000,
6893    UOP_FLAG_Select_SubPic_Stream = 0x200000,UOP_FLAG_Select_Angle = 0x400000,UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x800000,
6894    UOP_FLAG_Select_Video_Mode_Preference = 0x1000000
6895  } VALID_UOP_FLAG;
6896
6897  typedef enum __MIDL___MIDL_itf_strmif_0376_0002 {
6898    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,
6899    DVD_CMD_FLAG_EndAfterRendered = 0x10
6900  } DVD_CMD_FLAGS;
6901
6902  typedef enum __MIDL___MIDL_itf_strmif_0376_0003 {
6903    DVD_ResetOnStop = 1,DVD_NotifyParentalLevelChange = 2,DVD_HMSF_TimeCodeEvents = 3,DVD_AudioDuringFFwdRew = 4
6904  } DVD_OPTION_FLAG;
6905
6906  typedef enum __MIDL___MIDL_itf_strmif_0376_0004 {
6907    DVD_Relative_Upper = 1,DVD_Relative_Lower = 2,DVD_Relative_Left = 3,DVD_Relative_Right = 4
6908  } DVD_RELATIVE_BUTTON;
6909
6910  typedef enum tagDVD_PARENTAL_LEVEL {
6911    DVD_PARENTAL_LEVEL_8 = 0x8000,DVD_PARENTAL_LEVEL_7 = 0x4000,DVD_PARENTAL_LEVEL_6 = 0x2000,DVD_PARENTAL_LEVEL_5 = 0x1000,
6912    DVD_PARENTAL_LEVEL_4 = 0x800,DVD_PARENTAL_LEVEL_3 = 0x400,DVD_PARENTAL_LEVEL_2 = 0x200,DVD_PARENTAL_LEVEL_1 = 0x100
6913  } DVD_PARENTAL_LEVEL;
6914
6915  typedef enum tagDVD_AUDIO_LANG_EXT {
6916    DVD_AUD_EXT_NotSpecified = 0,DVD_AUD_EXT_Captions = 1,DVD_AUD_EXT_VisuallyImpaired = 2,DVD_AUD_EXT_DirectorComments1 = 3,
6917    DVD_AUD_EXT_DirectorComments2 = 4
6918  } DVD_AUDIO_LANG_EXT;
6919
6920  typedef enum tagDVD_SUBPICTURE_LANG_EXT {
6921    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,
6922    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,
6923    DVD_SP_EXT_DirectorComments_Children = 15
6924  } DVD_SUBPICTURE_LANG_EXT;
6925
6926  typedef enum tagDVD_AUDIO_APPMODE {
6927    DVD_AudioMode_None = 0,DVD_AudioMode_Karaoke = 1,DVD_AudioMode_Surround = 2,DVD_AudioMode_Other = 3
6928  } DVD_AUDIO_APPMODE;
6929
6930  typedef enum tagDVD_AUDIO_FORMAT {
6931    DVD_AudioFormat_AC3 = 0,DVD_AudioFormat_MPEG1 = 1,DVD_AudioFormat_MPEG1_DRC = 2,DVD_AudioFormat_MPEG2 = 3,DVD_AudioFormat_MPEG2_DRC = 4,
6932    DVD_AudioFormat_LPCM = 5,DVD_AudioFormat_DTS = 6,DVD_AudioFormat_SDDS = 7,DVD_AudioFormat_Other = 8
6933  } DVD_AUDIO_FORMAT;
6934
6935  typedef enum tagDVD_KARAOKE_DOWNMIX {
6936    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,
6937    DVD_Mix_0to1 = 0x100,DVD_Mix_1to1 = 0x200,DVD_Mix_2to1 = 0x400,DVD_Mix_3to1 = 0x800,DVD_Mix_4to1 = 0x1000,DVD_Mix_Lto1 = 0x2000,
6938    DVD_Mix_Rto1 = 0x4000
6939  } DVD_KARAOKE_DOWNMIX;
6940
6941  typedef struct tagDVD_AudioAttributes {
6942    DVD_AUDIO_APPMODE AppMode;
6943    BYTE AppModeData;
6944    DVD_AUDIO_FORMAT AudioFormat;
6945    LCID Language;
6946    DVD_AUDIO_LANG_EXT LanguageExtension;
6947    WINBOOL fHasMultichannelInfo;
6948    DWORD dwFrequency;
6949    BYTE bQuantization;
6950    BYTE bNumberOfChannels;
6951    DWORD dwReserved[2];
6952  } DVD_AudioAttributes;
6953
6954  typedef struct tagDVD_MUA_MixingInfo {
6955    WINBOOL fMixTo0;
6956    WINBOOL fMixTo1;
6957    WINBOOL fMix0InPhase;
6958    WINBOOL fMix1InPhase;
6959    DWORD dwSpeakerPosition;
6960  } DVD_MUA_MixingInfo;
6961
6962  typedef struct tagDVD_MUA_Coeff {
6963    double log2_alpha;
6964    double log2_beta;
6965  } DVD_MUA_Coeff;
6966
6967  typedef struct tagDVD_MultichannelAudioAttributes {
6968    DVD_MUA_MixingInfo Info[8];
6969    DVD_MUA_Coeff Coeff[8];
6970  } DVD_MultichannelAudioAttributes;
6971
6972  typedef enum tagDVD_KARAOKE_CONTENTS {
6973    DVD_Karaoke_GuideVocal1 = 0x1,DVD_Karaoke_GuideVocal2 = 0x2,DVD_Karaoke_GuideMelody1 = 0x4,DVD_Karaoke_GuideMelody2 = 0x8,
6974    DVD_Karaoke_GuideMelodyA = 0x10,DVD_Karaoke_GuideMelodyB = 0x20,DVD_Karaoke_SoundEffectA = 0x40,DVD_Karaoke_SoundEffectB = 0x80
6975  } DVD_KARAOKE_CONTENTS;
6976
6977  typedef enum tagDVD_KARAOKE_ASSIGNMENT {
6978    DVD_Assignment_reserved0 = 0,DVD_Assignment_reserved1 = 1,DVD_Assignment_LR = 2,DVD_Assignment_LRM = 3,DVD_Assignment_LR1 = 4,
6979    DVD_Assignment_LRM1 = 5,DVD_Assignment_LR12 = 6,DVD_Assignment_LRM12 = 7
6980  } DVD_KARAOKE_ASSIGNMENT;
6981
6982  typedef struct tagDVD_KaraokeAttributes {
6983    BYTE bVersion;
6984    WINBOOL fMasterOfCeremoniesInGuideVocal1;
6985    WINBOOL fDuet;
6986    DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
6987    WORD wChannelContents[8];
6988  } DVD_KaraokeAttributes;
6989
6990  typedef enum tagDVD_VIDEO_COMPRESSION {
6991    DVD_VideoCompression_Other = 0,DVD_VideoCompression_MPEG1 = 1,DVD_VideoCompression_MPEG2 = 2
6992  } DVD_VIDEO_COMPRESSION;
6993
6994  typedef struct tagDVD_VideoAttributes {
6995    WINBOOL fPanscanPermitted;
6996    WINBOOL fLetterboxPermitted;
6997    ULONG ulAspectX;
6998    ULONG ulAspectY;
6999    ULONG ulFrameRate;
7000    ULONG ulFrameHeight;
7001    DVD_VIDEO_COMPRESSION Compression;
7002    WINBOOL fLine21Field1InGOP;
7003    WINBOOL fLine21Field2InGOP;
7004    ULONG ulSourceResolutionX;
7005    ULONG ulSourceResolutionY;
7006    WINBOOL fIsSourceLetterboxed;
7007    WINBOOL fIsFilmMode;
7008  } DVD_VideoAttributes;
7009
7010  typedef enum tagDVD_SUBPICTURE_TYPE {
7011    DVD_SPType_NotSpecified = 0,DVD_SPType_Language = 1,DVD_SPType_Other = 2
7012  } DVD_SUBPICTURE_TYPE;
7013
7014  typedef enum tagDVD_SUBPICTURE_CODING {
7015    DVD_SPCoding_RunLength = 0,DVD_SPCoding_Extended = 1,DVD_SPCoding_Other = 2
7016  } DVD_SUBPICTURE_CODING;
7017
7018  typedef struct tagDVD_SubpictureAttributes {
7019    DVD_SUBPICTURE_TYPE Type;
7020    DVD_SUBPICTURE_CODING CodingMode;
7021    LCID Language;
7022    DVD_SUBPICTURE_LANG_EXT LanguageExtension;
7023  } DVD_SubpictureAttributes;
7024
7025  typedef enum tagDVD_TITLE_APPMODE {
7026    DVD_AppMode_Not_Specified = 0,DVD_AppMode_Karaoke = 1,DVD_AppMode_Other = 3
7027  } DVD_TITLE_APPMODE;
7028
7029  typedef struct tagDVD_TitleMainAttributes {
7030    DVD_TITLE_APPMODE AppMode;
7031    DVD_VideoAttributes VideoAttributes;
7032    ULONG ulNumberOfAudioStreams;
7033    DVD_AudioAttributes AudioAttributes[8];
7034    DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8];
7035    ULONG ulNumberOfSubpictureStreams;
7036    DVD_SubpictureAttributes SubpictureAttributes[32];
7037  } DVD_TitleAttributes;
7038
7039  typedef struct tagDVD_MenuAttributes {
7040    WINBOOL fCompatibleRegion[8];
7041    DVD_VideoAttributes VideoAttributes;
7042    WINBOOL fAudioPresent;
7043    DVD_AudioAttributes AudioAttributes;
7044    WINBOOL fSubpicturePresent;
7045    DVD_SubpictureAttributes SubpictureAttributes;
7046  } DVD_MenuAttributes;
7047
7048  extern RPC_IF_HANDLE __MIDL_itf_strmif_0376_v0_0_c_ifspec;
7049  extern RPC_IF_HANDLE __MIDL_itf_strmif_0376_v0_0_s_ifspec;
7050#ifndef __IDvdControl_INTERFACE_DEFINED__
7051#define __IDvdControl_INTERFACE_DEFINED__
7052  EXTERN_C const IID IID_IDvdControl;
7053#if defined(__cplusplus) && !defined(CINTERFACE)
7054  struct IDvdControl : public IUnknown {
7055  public:
7056    virtual HRESULT WINAPI TitlePlay(ULONG ulTitle) = 0;
7057    virtual HRESULT WINAPI ChapterPlay(ULONG ulTitle,ULONG ulChapter) = 0;
7058    virtual HRESULT WINAPI TimePlay(ULONG ulTitle,ULONG bcdTime) = 0;
7059    virtual HRESULT WINAPI StopForResume(void) = 0;
7060    virtual HRESULT WINAPI GoUp(void) = 0;
7061    virtual HRESULT WINAPI TimeSearch(ULONG bcdTime) = 0;
7062    virtual HRESULT WINAPI ChapterSearch(ULONG ulChapter) = 0;
7063    virtual HRESULT WINAPI PrevPGSearch(void) = 0;
7064    virtual HRESULT WINAPI TopPGSearch(void) = 0;
7065    virtual HRESULT WINAPI NextPGSearch(void) = 0;
7066    virtual HRESULT WINAPI ForwardScan(double dwSpeed) = 0;
7067    virtual HRESULT WINAPI BackwardScan(double dwSpeed) = 0;
7068    virtual HRESULT WINAPI MenuCall(DVD_MENU_ID MenuID) = 0;
7069    virtual HRESULT WINAPI Resume(void) = 0;
7070    virtual HRESULT WINAPI UpperButtonSelect(void) = 0;
7071    virtual HRESULT WINAPI LowerButtonSelect(void) = 0;
7072    virtual HRESULT WINAPI LeftButtonSelect(void) = 0;
7073    virtual HRESULT WINAPI RightButtonSelect(void) = 0;
7074    virtual HRESULT WINAPI ButtonActivate(void) = 0;
7075    virtual HRESULT WINAPI ButtonSelectAndActivate(ULONG ulButton) = 0;
7076    virtual HRESULT WINAPI StillOff(void) = 0;
7077    virtual HRESULT WINAPI PauseOn(void) = 0;
7078    virtual HRESULT WINAPI PauseOff(void) = 0;
7079    virtual HRESULT WINAPI MenuLanguageSelect(LCID Language) = 0;
7080    virtual HRESULT WINAPI AudioStreamChange(ULONG ulAudio) = 0;
7081    virtual HRESULT WINAPI SubpictureStreamChange(ULONG ulSubPicture,WINBOOL bDisplay) = 0;
7082    virtual HRESULT WINAPI AngleChange(ULONG ulAngle) = 0;
7083    virtual HRESULT WINAPI ParentalLevelSelect(ULONG ulParentalLevel) = 0;
7084    virtual HRESULT WINAPI ParentalCountrySelect(WORD wCountry) = 0;
7085    virtual HRESULT WINAPI KaraokeAudioPresentationModeChange(ULONG ulMode) = 0;
7086    virtual HRESULT WINAPI VideoModePreferrence(ULONG ulPreferredDisplayMode) = 0;
7087    virtual HRESULT WINAPI SetRoot(LPCWSTR pszPath) = 0;
7088    virtual HRESULT WINAPI MouseActivate(POINT point) = 0;
7089    virtual HRESULT WINAPI MouseSelect(POINT point) = 0;
7090    virtual HRESULT WINAPI ChapterPlayAutoStop(ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay) = 0;
7091  };
7092#else
7093  typedef struct IDvdControlVtbl {
7094    BEGIN_INTERFACE
7095      HRESULT (WINAPI *QueryInterface)(IDvdControl *This,REFIID riid,void **ppvObject);
7096      ULONG (WINAPI *AddRef)(IDvdControl *This);
7097      ULONG (WINAPI *Release)(IDvdControl *This);
7098      HRESULT (WINAPI *TitlePlay)(IDvdControl *This,ULONG ulTitle);
7099      HRESULT (WINAPI *ChapterPlay)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter);
7100      HRESULT (WINAPI *TimePlay)(IDvdControl *This,ULONG ulTitle,ULONG bcdTime);
7101      HRESULT (WINAPI *StopForResume)(IDvdControl *This);
7102      HRESULT (WINAPI *GoUp)(IDvdControl *This);
7103      HRESULT (WINAPI *TimeSearch)(IDvdControl *This,ULONG bcdTime);
7104      HRESULT (WINAPI *ChapterSearch)(IDvdControl *This,ULONG ulChapter);
7105      HRESULT (WINAPI *PrevPGSearch)(IDvdControl *This);
7106      HRESULT (WINAPI *TopPGSearch)(IDvdControl *This);
7107      HRESULT (WINAPI *NextPGSearch)(IDvdControl *This);
7108      HRESULT (WINAPI *ForwardScan)(IDvdControl *This,double dwSpeed);
7109      HRESULT (WINAPI *BackwardScan)(IDvdControl *This,double dwSpeed);
7110      HRESULT (WINAPI *MenuCall)(IDvdControl *This,DVD_MENU_ID MenuID);
7111      HRESULT (WINAPI *Resume)(IDvdControl *This);
7112      HRESULT (WINAPI *UpperButtonSelect)(IDvdControl *This);
7113      HRESULT (WINAPI *LowerButtonSelect)(IDvdControl *This);
7114      HRESULT (WINAPI *LeftButtonSelect)(IDvdControl *This);
7115      HRESULT (WINAPI *RightButtonSelect)(IDvdControl *This);
7116      HRESULT (WINAPI *ButtonActivate)(IDvdControl *This);
7117      HRESULT (WINAPI *ButtonSelectAndActivate)(IDvdControl *This,ULONG ulButton);
7118      HRESULT (WINAPI *StillOff)(IDvdControl *This);
7119      HRESULT (WINAPI *PauseOn)(IDvdControl *This);
7120      HRESULT (WINAPI *PauseOff)(IDvdControl *This);
7121      HRESULT (WINAPI *MenuLanguageSelect)(IDvdControl *This,LCID Language);
7122      HRESULT (WINAPI *AudioStreamChange)(IDvdControl *This,ULONG ulAudio);
7123      HRESULT (WINAPI *SubpictureStreamChange)(IDvdControl *This,ULONG ulSubPicture,WINBOOL bDisplay);
7124      HRESULT (WINAPI *AngleChange)(IDvdControl *This,ULONG ulAngle);
7125      HRESULT (WINAPI *ParentalLevelSelect)(IDvdControl *This,ULONG ulParentalLevel);
7126      HRESULT (WINAPI *ParentalCountrySelect)(IDvdControl *This,WORD wCountry);
7127      HRESULT (WINAPI *KaraokeAudioPresentationModeChange)(IDvdControl *This,ULONG ulMode);
7128      HRESULT (WINAPI *VideoModePreferrence)(IDvdControl *This,ULONG ulPreferredDisplayMode);
7129      HRESULT (WINAPI *SetRoot)(IDvdControl *This,LPCWSTR pszPath);
7130      HRESULT (WINAPI *MouseActivate)(IDvdControl *This,POINT point);
7131      HRESULT (WINAPI *MouseSelect)(IDvdControl *This,POINT point);
7132      HRESULT (WINAPI *ChapterPlayAutoStop)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
7133    END_INTERFACE
7134  } IDvdControlVtbl;
7135  struct IDvdControl {
7136    CONST_VTBL struct IDvdControlVtbl *lpVtbl;
7137  };
7138#ifdef COBJMACROS
7139#define IDvdControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7140#define IDvdControl_AddRef(This) (This)->lpVtbl->AddRef(This)
7141#define IDvdControl_Release(This) (This)->lpVtbl->Release(This)
7142#define IDvdControl_TitlePlay(This,ulTitle) (This)->lpVtbl->TitlePlay(This,ulTitle)
7143#define IDvdControl_ChapterPlay(This,ulTitle,ulChapter) (This)->lpVtbl->ChapterPlay(This,ulTitle,ulChapter)
7144#define IDvdControl_TimePlay(This,ulTitle,bcdTime) (This)->lpVtbl->TimePlay(This,ulTitle,bcdTime)
7145#define IDvdControl_StopForResume(This) (This)->lpVtbl->StopForResume(This)
7146#define IDvdControl_GoUp(This) (This)->lpVtbl->GoUp(This)
7147#define IDvdControl_TimeSearch(This,bcdTime) (This)->lpVtbl->TimeSearch(This,bcdTime)
7148#define IDvdControl_ChapterSearch(This,ulChapter) (This)->lpVtbl->ChapterSearch(This,ulChapter)
7149#define IDvdControl_PrevPGSearch(This) (This)->lpVtbl->PrevPGSearch(This)
7150#define IDvdControl_TopPGSearch(This) (This)->lpVtbl->TopPGSearch(This)
7151#define IDvdControl_NextPGSearch(This) (This)->lpVtbl->NextPGSearch(This)
7152#define IDvdControl_ForwardScan(This,dwSpeed) (This)->lpVtbl->ForwardScan(This,dwSpeed)
7153#define IDvdControl_BackwardScan(This,dwSpeed) (This)->lpVtbl->BackwardScan(This,dwSpeed)
7154#define IDvdControl_MenuCall(This,MenuID) (This)->lpVtbl->MenuCall(This,MenuID)
7155#define IDvdControl_Resume(This) (This)->lpVtbl->Resume(This)
7156#define IDvdControl_UpperButtonSelect(This) (This)->lpVtbl->UpperButtonSelect(This)
7157#define IDvdControl_LowerButtonSelect(This) (This)->lpVtbl->LowerButtonSelect(This)
7158#define IDvdControl_LeftButtonSelect(This) (This)->lpVtbl->LeftButtonSelect(This)
7159#define IDvdControl_RightButtonSelect(This) (This)->lpVtbl->RightButtonSelect(This)
7160#define IDvdControl_ButtonActivate(This) (This)->lpVtbl->ButtonActivate(This)
7161#define IDvdControl_ButtonSelectAndActivate(This,ulButton) (This)->lpVtbl->ButtonSelectAndActivate(This,ulButton)
7162#define IDvdControl_StillOff(This) (This)->lpVtbl->StillOff(This)
7163#define IDvdControl_PauseOn(This) (This)->lpVtbl->PauseOn(This)
7164#define IDvdControl_PauseOff(This) (This)->lpVtbl->PauseOff(This)
7165#define IDvdControl_MenuLanguageSelect(This,Language) (This)->lpVtbl->MenuLanguageSelect(This,Language)
7166#define IDvdControl_AudioStreamChange(This,ulAudio) (This)->lpVtbl->AudioStreamChange(This,ulAudio)
7167#define IDvdControl_SubpictureStreamChange(This,ulSubPicture,bDisplay) (This)->lpVtbl->SubpictureStreamChange(This,ulSubPicture,bDisplay)
7168#define IDvdControl_AngleChange(This,ulAngle) (This)->lpVtbl->AngleChange(This,ulAngle)
7169#define IDvdControl_ParentalLevelSelect(This,ulParentalLevel) (This)->lpVtbl->ParentalLevelSelect(This,ulParentalLevel)
7170#define IDvdControl_ParentalCountrySelect(This,wCountry) (This)->lpVtbl->ParentalCountrySelect(This,wCountry)
7171#define IDvdControl_KaraokeAudioPresentationModeChange(This,ulMode) (This)->lpVtbl->KaraokeAudioPresentationModeChange(This,ulMode)
7172#define IDvdControl_VideoModePreferrence(This,ulPreferredDisplayMode) (This)->lpVtbl->VideoModePreferrence(This,ulPreferredDisplayMode)
7173#define IDvdControl_SetRoot(This,pszPath) (This)->lpVtbl->SetRoot(This,pszPath)
7174#define IDvdControl_MouseActivate(This,point) (This)->lpVtbl->MouseActivate(This,point)
7175#define IDvdControl_MouseSelect(This,point) (This)->lpVtbl->MouseSelect(This,point)
7176#define IDvdControl_ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay) (This)->lpVtbl->ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay)
7177#endif
7178#endif
7179  HRESULT WINAPI IDvdControl_TitlePlay_Proxy(IDvdControl *This,ULONG ulTitle);
7180  void __RPC_STUB IDvdControl_TitlePlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7181  HRESULT WINAPI IDvdControl_ChapterPlay_Proxy(IDvdControl *This,ULONG ulTitle,ULONG ulChapter);
7182  void __RPC_STUB IDvdControl_ChapterPlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7183  HRESULT WINAPI IDvdControl_TimePlay_Proxy(IDvdControl *This,ULONG ulTitle,ULONG bcdTime);
7184  void __RPC_STUB IDvdControl_TimePlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7185  HRESULT WINAPI IDvdControl_StopForResume_Proxy(IDvdControl *This);
7186  void __RPC_STUB IDvdControl_StopForResume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7187  HRESULT WINAPI IDvdControl_GoUp_Proxy(IDvdControl *This);
7188  void __RPC_STUB IDvdControl_GoUp_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7189  HRESULT WINAPI IDvdControl_TimeSearch_Proxy(IDvdControl *This,ULONG bcdTime);
7190  void __RPC_STUB IDvdControl_TimeSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7191  HRESULT WINAPI IDvdControl_ChapterSearch_Proxy(IDvdControl *This,ULONG ulChapter);
7192  void __RPC_STUB IDvdControl_ChapterSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7193  HRESULT WINAPI IDvdControl_PrevPGSearch_Proxy(IDvdControl *This);
7194  void __RPC_STUB IDvdControl_PrevPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7195  HRESULT WINAPI IDvdControl_TopPGSearch_Proxy(IDvdControl *This);
7196  void __RPC_STUB IDvdControl_TopPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7197  HRESULT WINAPI IDvdControl_NextPGSearch_Proxy(IDvdControl *This);
7198  void __RPC_STUB IDvdControl_NextPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7199  HRESULT WINAPI IDvdControl_ForwardScan_Proxy(IDvdControl *This,double dwSpeed);
7200  void __RPC_STUB IDvdControl_ForwardScan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7201  HRESULT WINAPI IDvdControl_BackwardScan_Proxy(IDvdControl *This,double dwSpeed);
7202  void __RPC_STUB IDvdControl_BackwardScan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7203  HRESULT WINAPI IDvdControl_MenuCall_Proxy(IDvdControl *This,DVD_MENU_ID MenuID);
7204  void __RPC_STUB IDvdControl_MenuCall_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7205  HRESULT WINAPI IDvdControl_Resume_Proxy(IDvdControl *This);
7206  void __RPC_STUB IDvdControl_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7207  HRESULT WINAPI IDvdControl_UpperButtonSelect_Proxy(IDvdControl *This);
7208  void __RPC_STUB IDvdControl_UpperButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7209  HRESULT WINAPI IDvdControl_LowerButtonSelect_Proxy(IDvdControl *This);
7210  void __RPC_STUB IDvdControl_LowerButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7211  HRESULT WINAPI IDvdControl_LeftButtonSelect_Proxy(IDvdControl *This);
7212  void __RPC_STUB IDvdControl_LeftButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7213  HRESULT WINAPI IDvdControl_RightButtonSelect_Proxy(IDvdControl *This);
7214  void __RPC_STUB IDvdControl_RightButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7215  HRESULT WINAPI IDvdControl_ButtonActivate_Proxy(IDvdControl *This);
7216  void __RPC_STUB IDvdControl_ButtonActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7217  HRESULT WINAPI IDvdControl_ButtonSelectAndActivate_Proxy(IDvdControl *This,ULONG ulButton);
7218  void __RPC_STUB IDvdControl_ButtonSelectAndActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7219  HRESULT WINAPI IDvdControl_StillOff_Proxy(IDvdControl *This);
7220  void __RPC_STUB IDvdControl_StillOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7221  HRESULT WINAPI IDvdControl_PauseOn_Proxy(IDvdControl *This);
7222  void __RPC_STUB IDvdControl_PauseOn_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7223  HRESULT WINAPI IDvdControl_PauseOff_Proxy(IDvdControl *This);
7224  void __RPC_STUB IDvdControl_PauseOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7225  HRESULT WINAPI IDvdControl_MenuLanguageSelect_Proxy(IDvdControl *This,LCID Language);
7226  void __RPC_STUB IDvdControl_MenuLanguageSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7227  HRESULT WINAPI IDvdControl_AudioStreamChange_Proxy(IDvdControl *This,ULONG ulAudio);
7228  void __RPC_STUB IDvdControl_AudioStreamChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7229  HRESULT WINAPI IDvdControl_SubpictureStreamChange_Proxy(IDvdControl *This,ULONG ulSubPicture,WINBOOL bDisplay);
7230  void __RPC_STUB IDvdControl_SubpictureStreamChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7231  HRESULT WINAPI IDvdControl_AngleChange_Proxy(IDvdControl *This,ULONG ulAngle);
7232  void __RPC_STUB IDvdControl_AngleChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7233  HRESULT WINAPI IDvdControl_ParentalLevelSelect_Proxy(IDvdControl *This,ULONG ulParentalLevel);
7234  void __RPC_STUB IDvdControl_ParentalLevelSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7235  HRESULT WINAPI IDvdControl_ParentalCountrySelect_Proxy(IDvdControl *This,WORD wCountry);
7236  void __RPC_STUB IDvdControl_ParentalCountrySelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7237  HRESULT WINAPI IDvdControl_KaraokeAudioPresentationModeChange_Proxy(IDvdControl *This,ULONG ulMode);
7238  void __RPC_STUB IDvdControl_KaraokeAudioPresentationModeChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7239  HRESULT WINAPI IDvdControl_VideoModePreferrence_Proxy(IDvdControl *This,ULONG ulPreferredDisplayMode);
7240  void __RPC_STUB IDvdControl_VideoModePreferrence_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7241  HRESULT WINAPI IDvdControl_SetRoot_Proxy(IDvdControl *This,LPCWSTR pszPath);
7242  void __RPC_STUB IDvdControl_SetRoot_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7243  HRESULT WINAPI IDvdControl_MouseActivate_Proxy(IDvdControl *This,POINT point);
7244  void __RPC_STUB IDvdControl_MouseActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7245  HRESULT WINAPI IDvdControl_MouseSelect_Proxy(IDvdControl *This,POINT point);
7246  void __RPC_STUB IDvdControl_MouseSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7247  HRESULT WINAPI IDvdControl_ChapterPlayAutoStop_Proxy(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
7248  void __RPC_STUB IDvdControl_ChapterPlayAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7249#endif
7250
7251#ifndef __IDvdInfo_INTERFACE_DEFINED__
7252#define __IDvdInfo_INTERFACE_DEFINED__
7253  EXTERN_C const IID IID_IDvdInfo;
7254#if defined(__cplusplus) && !defined(CINTERFACE)
7255  struct IDvdInfo : public IUnknown {
7256  public:
7257    virtual HRESULT WINAPI GetCurrentDomain(DVD_DOMAIN *pDomain) = 0;
7258    virtual HRESULT WINAPI GetCurrentLocation(DVD_PLAYBACK_LOCATION *pLocation) = 0;
7259    virtual HRESULT WINAPI GetTotalTitleTime(ULONG *pulTotalTime) = 0;
7260    virtual HRESULT WINAPI GetCurrentButton(ULONG *pulButtonsAvailable,ULONG *pulCurrentButton) = 0;
7261    virtual HRESULT WINAPI GetCurrentAngle(ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle) = 0;
7262    virtual HRESULT WINAPI GetCurrentAudio(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream) = 0;
7263    virtual HRESULT WINAPI GetCurrentSubpicture(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled) = 0;
7264    virtual HRESULT WINAPI GetCurrentUOPS(VALID_UOP_SOMTHING_OR_OTHER *pUOP) = 0;
7265    virtual HRESULT WINAPI GetAllSPRMs(SPRMARRAY *pRegisterArray) = 0;
7266    virtual HRESULT WINAPI GetAllGPRMs(GPRMARRAY *pRegisterArray) = 0;
7267    virtual HRESULT WINAPI GetAudioLanguage(ULONG ulStream,LCID *pLanguage) = 0;
7268    virtual HRESULT WINAPI GetSubpictureLanguage(ULONG ulStream,LCID *pLanguage) = 0;
7269    virtual HRESULT WINAPI GetTitleAttributes(ULONG ulTitle,DVD_ATR *pATR) = 0;
7270    virtual HRESULT WINAPI GetVMGAttributes(DVD_ATR *pATR) = 0;
7271    virtual HRESULT WINAPI GetCurrentVideoAttributes(DVD_VideoATR *pATR) = 0;
7272    virtual HRESULT WINAPI GetCurrentAudioAttributes(DVD_AudioATR *pATR) = 0;
7273    virtual HRESULT WINAPI GetCurrentSubpictureAttributes(DVD_SubpictureATR *pATR) = 0;
7274    virtual HRESULT WINAPI GetCurrentVolumeInfo(ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles) = 0;
7275    virtual HRESULT WINAPI GetDVDTextInfo(BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize) = 0;
7276    virtual HRESULT WINAPI GetPlayerParentalLevel(ULONG *pulParentalLevel,ULONG *pulCountryCode) = 0;
7277    virtual HRESULT WINAPI GetNumberOfChapters(ULONG ulTitle,ULONG *pulNumberOfChapters) = 0;
7278    virtual HRESULT WINAPI GetTitleParentalLevels(ULONG ulTitle,ULONG *pulParentalLevels) = 0;
7279    virtual HRESULT WINAPI GetRoot(LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize) = 0;
7280  };
7281#else
7282  typedef struct IDvdInfoVtbl {
7283    BEGIN_INTERFACE
7284      HRESULT (WINAPI *QueryInterface)(IDvdInfo *This,REFIID riid,void **ppvObject);
7285      ULONG (WINAPI *AddRef)(IDvdInfo *This);
7286      ULONG (WINAPI *Release)(IDvdInfo *This);
7287      HRESULT (WINAPI *GetCurrentDomain)(IDvdInfo *This,DVD_DOMAIN *pDomain);
7288      HRESULT (WINAPI *GetCurrentLocation)(IDvdInfo *This,DVD_PLAYBACK_LOCATION *pLocation);
7289      HRESULT (WINAPI *GetTotalTitleTime)(IDvdInfo *This,ULONG *pulTotalTime);
7290      HRESULT (WINAPI *GetCurrentButton)(IDvdInfo *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
7291      HRESULT (WINAPI *GetCurrentAngle)(IDvdInfo *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
7292      HRESULT (WINAPI *GetCurrentAudio)(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
7293      HRESULT (WINAPI *GetCurrentSubpicture)(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled);
7294      HRESULT (WINAPI *GetCurrentUOPS)(IDvdInfo *This,VALID_UOP_SOMTHING_OR_OTHER *pUOP);
7295      HRESULT (WINAPI *GetAllSPRMs)(IDvdInfo *This,SPRMARRAY *pRegisterArray);
7296      HRESULT (WINAPI *GetAllGPRMs)(IDvdInfo *This,GPRMARRAY *pRegisterArray);
7297      HRESULT (WINAPI *GetAudioLanguage)(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
7298      HRESULT (WINAPI *GetSubpictureLanguage)(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
7299      HRESULT (WINAPI *GetTitleAttributes)(IDvdInfo *This,ULONG ulTitle,DVD_ATR *pATR);
7300      HRESULT (WINAPI *GetVMGAttributes)(IDvdInfo *This,DVD_ATR *pATR);
7301      HRESULT (WINAPI *GetCurrentVideoAttributes)(IDvdInfo *This,DVD_VideoATR *pATR);
7302      HRESULT (WINAPI *GetCurrentAudioAttributes)(IDvdInfo *This,DVD_AudioATR *pATR);
7303      HRESULT (WINAPI *GetCurrentSubpictureAttributes)(IDvdInfo *This,DVD_SubpictureATR *pATR);
7304      HRESULT (WINAPI *GetCurrentVolumeInfo)(IDvdInfo *This,ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
7305      HRESULT (WINAPI *GetDVDTextInfo)(IDvdInfo *This,BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize);
7306      HRESULT (WINAPI *GetPlayerParentalLevel)(IDvdInfo *This,ULONG *pulParentalLevel,ULONG *pulCountryCode);
7307      HRESULT (WINAPI *GetNumberOfChapters)(IDvdInfo *This,ULONG ulTitle,ULONG *pulNumberOfChapters);
7308      HRESULT (WINAPI *GetTitleParentalLevels)(IDvdInfo *This,ULONG ulTitle,ULONG *pulParentalLevels);
7309      HRESULT (WINAPI *GetRoot)(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
7310    END_INTERFACE
7311  } IDvdInfoVtbl;
7312  struct IDvdInfo {
7313    CONST_VTBL struct IDvdInfoVtbl *lpVtbl;
7314  };
7315#ifdef COBJMACROS
7316#define IDvdInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7317#define IDvdInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
7318#define IDvdInfo_Release(This) (This)->lpVtbl->Release(This)
7319#define IDvdInfo_GetCurrentDomain(This,pDomain) (This)->lpVtbl->GetCurrentDomain(This,pDomain)
7320#define IDvdInfo_GetCurrentLocation(This,pLocation) (This)->lpVtbl->GetCurrentLocation(This,pLocation)
7321#define IDvdInfo_GetTotalTitleTime(This,pulTotalTime) (This)->lpVtbl->GetTotalTitleTime(This,pulTotalTime)
7322#define IDvdInfo_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton) (This)->lpVtbl->GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
7323#define IDvdInfo_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle) (This)->lpVtbl->GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
7324#define IDvdInfo_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream) (This)->lpVtbl->GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
7325#define IDvdInfo_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled) (This)->lpVtbl->GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled)
7326#define IDvdInfo_GetCurrentUOPS(This,pUOP) (This)->lpVtbl->GetCurrentUOPS(This,pUOP)
7327#define IDvdInfo_GetAllSPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllSPRMs(This,pRegisterArray)
7328#define IDvdInfo_GetAllGPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllGPRMs(This,pRegisterArray)
7329#define IDvdInfo_GetAudioLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetAudioLanguage(This,ulStream,pLanguage)
7330#define IDvdInfo_GetSubpictureLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetSubpictureLanguage(This,ulStream,pLanguage)
7331#define IDvdInfo_GetTitleAttributes(This,ulTitle,pATR) (This)->lpVtbl->GetTitleAttributes(This,ulTitle,pATR)
7332#define IDvdInfo_GetVMGAttributes(This,pATR) (This)->lpVtbl->GetVMGAttributes(This,pATR)
7333#define IDvdInfo_GetCurrentVideoAttributes(This,pATR) (This)->lpVtbl->GetCurrentVideoAttributes(This,pATR)
7334#define IDvdInfo_GetCurrentAudioAttributes(This,pATR) (This)->lpVtbl->GetCurrentAudioAttributes(This,pATR)
7335#define IDvdInfo_GetCurrentSubpictureAttributes(This,pATR) (This)->lpVtbl->GetCurrentSubpictureAttributes(This,pATR)
7336#define IDvdInfo_GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles) (This)->lpVtbl->GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles)
7337#define IDvdInfo_GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize) (This)->lpVtbl->GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize)
7338#define IDvdInfo_GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode) (This)->lpVtbl->GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode)
7339#define IDvdInfo_GetNumberOfChapters(This,ulTitle,pulNumberOfChapters) (This)->lpVtbl->GetNumberOfChapters(This,ulTitle,pulNumberOfChapters)
7340#define IDvdInfo_GetTitleParentalLevels(This,ulTitle,pulParentalLevels) (This)->lpVtbl->GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
7341#define IDvdInfo_GetRoot(This,pRoot,ulBufSize,pulActualSize) (This)->lpVtbl->GetRoot(This,pRoot,ulBufSize,pulActualSize)
7342#endif
7343#endif
7344  HRESULT WINAPI IDvdInfo_GetCurrentDomain_Proxy(IDvdInfo *This,DVD_DOMAIN *pDomain);
7345  void __RPC_STUB IDvdInfo_GetCurrentDomain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7346  HRESULT WINAPI IDvdInfo_GetCurrentLocation_Proxy(IDvdInfo *This,DVD_PLAYBACK_LOCATION *pLocation);
7347  void __RPC_STUB IDvdInfo_GetCurrentLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7348  HRESULT WINAPI IDvdInfo_GetTotalTitleTime_Proxy(IDvdInfo *This,ULONG *pulTotalTime);
7349  void __RPC_STUB IDvdInfo_GetTotalTitleTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7350  HRESULT WINAPI IDvdInfo_GetCurrentButton_Proxy(IDvdInfo *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
7351  void __RPC_STUB IDvdInfo_GetCurrentButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7352  HRESULT WINAPI IDvdInfo_GetCurrentAngle_Proxy(IDvdInfo *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
7353  void __RPC_STUB IDvdInfo_GetCurrentAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7354  HRESULT WINAPI IDvdInfo_GetCurrentAudio_Proxy(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
7355  void __RPC_STUB IDvdInfo_GetCurrentAudio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7356  HRESULT WINAPI IDvdInfo_GetCurrentSubpicture_Proxy(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled);
7357  void __RPC_STUB IDvdInfo_GetCurrentSubpicture_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7358  HRESULT WINAPI IDvdInfo_GetCurrentUOPS_Proxy(IDvdInfo *This,VALID_UOP_SOMTHING_OR_OTHER *pUOP);
7359  void __RPC_STUB IDvdInfo_GetCurrentUOPS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7360  HRESULT WINAPI IDvdInfo_GetAllSPRMs_Proxy(IDvdInfo *This,SPRMARRAY *pRegisterArray);
7361  void __RPC_STUB IDvdInfo_GetAllSPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7362  HRESULT WINAPI IDvdInfo_GetAllGPRMs_Proxy(IDvdInfo *This,GPRMARRAY *pRegisterArray);
7363  void __RPC_STUB IDvdInfo_GetAllGPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7364  HRESULT WINAPI IDvdInfo_GetAudioLanguage_Proxy(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
7365  void __RPC_STUB IDvdInfo_GetAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7366  HRESULT WINAPI IDvdInfo_GetSubpictureLanguage_Proxy(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
7367  void __RPC_STUB IDvdInfo_GetSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7368  HRESULT WINAPI IDvdInfo_GetTitleAttributes_Proxy(IDvdInfo *This,ULONG ulTitle,DVD_ATR *pATR);
7369  void __RPC_STUB IDvdInfo_GetTitleAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7370  HRESULT WINAPI IDvdInfo_GetVMGAttributes_Proxy(IDvdInfo *This,DVD_ATR *pATR);
7371  void __RPC_STUB IDvdInfo_GetVMGAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7372  HRESULT WINAPI IDvdInfo_GetCurrentVideoAttributes_Proxy(IDvdInfo *This,DVD_VideoATR *pATR);
7373  void __RPC_STUB IDvdInfo_GetCurrentVideoAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7374  HRESULT WINAPI IDvdInfo_GetCurrentAudioAttributes_Proxy(IDvdInfo *This,DVD_AudioATR *pATR);
7375  void __RPC_STUB IDvdInfo_GetCurrentAudioAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7376  HRESULT WINAPI IDvdInfo_GetCurrentSubpictureAttributes_Proxy(IDvdInfo *This,DVD_SubpictureATR *pATR);
7377  void __RPC_STUB IDvdInfo_GetCurrentSubpictureAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7378  HRESULT WINAPI IDvdInfo_GetCurrentVolumeInfo_Proxy(IDvdInfo *This,ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
7379  void __RPC_STUB IDvdInfo_GetCurrentVolumeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7380  HRESULT WINAPI IDvdInfo_GetDVDTextInfo_Proxy(IDvdInfo *This,BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize);
7381  void __RPC_STUB IDvdInfo_GetDVDTextInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7382  HRESULT WINAPI IDvdInfo_GetPlayerParentalLevel_Proxy(IDvdInfo *This,ULONG *pulParentalLevel,ULONG *pulCountryCode);
7383  void __RPC_STUB IDvdInfo_GetPlayerParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7384  HRESULT WINAPI IDvdInfo_GetNumberOfChapters_Proxy(IDvdInfo *This,ULONG ulTitle,ULONG *pulNumberOfChapters);
7385  void __RPC_STUB IDvdInfo_GetNumberOfChapters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7386  HRESULT WINAPI IDvdInfo_GetTitleParentalLevels_Proxy(IDvdInfo *This,ULONG ulTitle,ULONG *pulParentalLevels);
7387  void __RPC_STUB IDvdInfo_GetTitleParentalLevels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7388  HRESULT WINAPI IDvdInfo_GetRoot_Proxy(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
7389  void __RPC_STUB IDvdInfo_GetRoot_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7390#endif
7391
7392#ifndef __IDvdCmd_INTERFACE_DEFINED__
7393#define __IDvdCmd_INTERFACE_DEFINED__
7394  EXTERN_C const IID IID_IDvdCmd;
7395#if defined(__cplusplus) && !defined(CINTERFACE)
7396  struct IDvdCmd : public IUnknown {
7397  public:
7398    virtual HRESULT WINAPI WaitForStart(void) = 0;
7399    virtual HRESULT WINAPI WaitForEnd(void) = 0;
7400  };
7401#else
7402  typedef struct IDvdCmdVtbl {
7403    BEGIN_INTERFACE
7404      HRESULT (WINAPI *QueryInterface)(IDvdCmd *This,REFIID riid,void **ppvObject);
7405      ULONG (WINAPI *AddRef)(IDvdCmd *This);
7406      ULONG (WINAPI *Release)(IDvdCmd *This);
7407      HRESULT (WINAPI *WaitForStart)(IDvdCmd *This);
7408      HRESULT (WINAPI *WaitForEnd)(IDvdCmd *This);
7409    END_INTERFACE
7410  } IDvdCmdVtbl;
7411  struct IDvdCmd {
7412    CONST_VTBL struct IDvdCmdVtbl *lpVtbl;
7413  };
7414#ifdef COBJMACROS
7415#define IDvdCmd_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7416#define IDvdCmd_AddRef(This) (This)->lpVtbl->AddRef(This)
7417#define IDvdCmd_Release(This) (This)->lpVtbl->Release(This)
7418#define IDvdCmd_WaitForStart(This) (This)->lpVtbl->WaitForStart(This)
7419#define IDvdCmd_WaitForEnd(This) (This)->lpVtbl->WaitForEnd(This)
7420#endif
7421#endif
7422  HRESULT WINAPI IDvdCmd_WaitForStart_Proxy(IDvdCmd *This);
7423  void __RPC_STUB IDvdCmd_WaitForStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7424  HRESULT WINAPI IDvdCmd_WaitForEnd_Proxy(IDvdCmd *This);
7425  void __RPC_STUB IDvdCmd_WaitForEnd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7426#endif
7427
7428#ifndef __IDvdState_INTERFACE_DEFINED__
7429#define __IDvdState_INTERFACE_DEFINED__
7430  EXTERN_C const IID IID_IDvdState;
7431#if defined(__cplusplus) && !defined(CINTERFACE)
7432  struct IDvdState : public IUnknown {
7433  public:
7434    virtual HRESULT WINAPI GetDiscID(ULONGLONG *pullUniqueID) = 0;
7435    virtual HRESULT WINAPI GetParentalLevel(ULONG *pulParentalLevel) = 0;
7436  };
7437#else
7438  typedef struct IDvdStateVtbl {
7439    BEGIN_INTERFACE
7440      HRESULT (WINAPI *QueryInterface)(IDvdState *This,REFIID riid,void **ppvObject);
7441      ULONG (WINAPI *AddRef)(IDvdState *This);
7442      ULONG (WINAPI *Release)(IDvdState *This);
7443      HRESULT (WINAPI *GetDiscID)(IDvdState *This,ULONGLONG *pullUniqueID);
7444      HRESULT (WINAPI *GetParentalLevel)(IDvdState *This,ULONG *pulParentalLevel);
7445    END_INTERFACE
7446  } IDvdStateVtbl;
7447  struct IDvdState {
7448    CONST_VTBL struct IDvdStateVtbl *lpVtbl;
7449  };
7450#ifdef COBJMACROS
7451#define IDvdState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7452#define IDvdState_AddRef(This) (This)->lpVtbl->AddRef(This)
7453#define IDvdState_Release(This) (This)->lpVtbl->Release(This)
7454#define IDvdState_GetDiscID(This,pullUniqueID) (This)->lpVtbl->GetDiscID(This,pullUniqueID)
7455#define IDvdState_GetParentalLevel(This,pulParentalLevel) (This)->lpVtbl->GetParentalLevel(This,pulParentalLevel)
7456#endif
7457#endif
7458  HRESULT WINAPI IDvdState_GetDiscID_Proxy(IDvdState *This,ULONGLONG *pullUniqueID);
7459  void __RPC_STUB IDvdState_GetDiscID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7460  HRESULT WINAPI IDvdState_GetParentalLevel_Proxy(IDvdState *This,ULONG *pulParentalLevel);
7461  void __RPC_STUB IDvdState_GetParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7462#endif
7463
7464#ifndef __IDvdControl2_INTERFACE_DEFINED__
7465#define __IDvdControl2_INTERFACE_DEFINED__
7466  EXTERN_C const IID IID_IDvdControl2;
7467#if defined(__cplusplus) && !defined(CINTERFACE)
7468  struct IDvdControl2 : public IUnknown {
7469  public:
7470    virtual HRESULT WINAPI PlayTitle(ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7471    virtual HRESULT WINAPI PlayChapterInTitle(ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7472    virtual HRESULT WINAPI PlayAtTimeInTitle(ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7473    virtual HRESULT WINAPI Stop(void) = 0;
7474    virtual HRESULT WINAPI ReturnFromSubmenu(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7475    virtual HRESULT WINAPI PlayAtTime(DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7476    virtual HRESULT WINAPI PlayChapter(ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7477    virtual HRESULT WINAPI PlayPrevChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7478    virtual HRESULT WINAPI ReplayChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7479    virtual HRESULT WINAPI PlayNextChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7480    virtual HRESULT WINAPI PlayForwards(double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7481    virtual HRESULT WINAPI PlayBackwards(double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7482    virtual HRESULT WINAPI ShowMenu(DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7483    virtual HRESULT WINAPI Resume(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7484    virtual HRESULT WINAPI SelectRelativeButton(DVD_RELATIVE_BUTTON buttonDir) = 0;
7485    virtual HRESULT WINAPI ActivateButton(void) = 0;
7486    virtual HRESULT WINAPI SelectButton(ULONG ulButton) = 0;
7487    virtual HRESULT WINAPI SelectAndActivateButton(ULONG ulButton) = 0;
7488    virtual HRESULT WINAPI StillOff(void) = 0;
7489    virtual HRESULT WINAPI Pause(WINBOOL bState) = 0;
7490    virtual HRESULT WINAPI SelectAudioStream(ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7491    virtual HRESULT WINAPI SelectSubpictureStream(ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7492    virtual HRESULT WINAPI SetSubpictureState(WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7493    virtual HRESULT WINAPI SelectAngle(ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7494    virtual HRESULT WINAPI SelectParentalLevel(ULONG ulParentalLevel) = 0;
7495    virtual HRESULT WINAPI SelectParentalCountry(BYTE bCountry[2]) = 0;
7496    virtual HRESULT WINAPI SelectKaraokeAudioPresentationMode(ULONG ulMode) = 0;
7497    virtual HRESULT WINAPI SelectVideoModePreference(ULONG ulPreferredDisplayMode) = 0;
7498    virtual HRESULT WINAPI SetDVDDirectory(LPCWSTR pszwPath) = 0;
7499    virtual HRESULT WINAPI ActivateAtPosition(POINT point) = 0;
7500    virtual HRESULT WINAPI SelectAtPosition(POINT point) = 0;
7501    virtual HRESULT WINAPI PlayChaptersAutoStop(ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7502    virtual HRESULT WINAPI AcceptParentalLevelChange(WINBOOL bAccept) = 0;
7503    virtual HRESULT WINAPI SetOption(DVD_OPTION_FLAG flag,WINBOOL fState) = 0;
7504    virtual HRESULT WINAPI SetState(IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7505    virtual HRESULT WINAPI PlayPeriodInTitleAutoStop(ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7506    virtual HRESULT WINAPI SetGPRM(ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
7507    virtual HRESULT WINAPI SelectDefaultMenuLanguage(LCID Language) = 0;
7508    virtual HRESULT WINAPI SelectDefaultAudioLanguage(LCID Language,DVD_AUDIO_LANG_EXT audioExtension) = 0;
7509    virtual HRESULT WINAPI SelectDefaultSubpictureLanguage(LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension) = 0;
7510  };
7511#else
7512  typedef struct IDvdControl2Vtbl {
7513    BEGIN_INTERFACE
7514      HRESULT (WINAPI *QueryInterface)(IDvdControl2 *This,REFIID riid,void **ppvObject);
7515      ULONG (WINAPI *AddRef)(IDvdControl2 *This);
7516      ULONG (WINAPI *Release)(IDvdControl2 *This);
7517      HRESULT (WINAPI *PlayTitle)(IDvdControl2 *This,ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd);
7518      HRESULT (WINAPI *PlayChapterInTitle)(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
7519      HRESULT (WINAPI *PlayAtTimeInTitle)(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd);
7520      HRESULT (WINAPI *Stop)(IDvdControl2 *This);
7521      HRESULT (WINAPI *ReturnFromSubmenu)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
7522      HRESULT (WINAPI *PlayAtTime)(IDvdControl2 *This,DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd);
7523      HRESULT (WINAPI *PlayChapter)(IDvdControl2 *This,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
7524      HRESULT (WINAPI *PlayPrevChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
7525      HRESULT (WINAPI *ReplayChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
7526      HRESULT (WINAPI *PlayNextChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
7527      HRESULT (WINAPI *PlayForwards)(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
7528      HRESULT (WINAPI *PlayBackwards)(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
7529      HRESULT (WINAPI *ShowMenu)(IDvdControl2 *This,DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd);
7530      HRESULT (WINAPI *Resume)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
7531      HRESULT (WINAPI *SelectRelativeButton)(IDvdControl2 *This,DVD_RELATIVE_BUTTON buttonDir);
7532      HRESULT (WINAPI *ActivateButton)(IDvdControl2 *This);
7533      HRESULT (WINAPI *SelectButton)(IDvdControl2 *This,ULONG ulButton);
7534      HRESULT (WINAPI *SelectAndActivateButton)(IDvdControl2 *This,ULONG ulButton);
7535      HRESULT (WINAPI *StillOff)(IDvdControl2 *This);
7536      HRESULT (WINAPI *Pause)(IDvdControl2 *This,WINBOOL bState);
7537      HRESULT (WINAPI *SelectAudioStream)(IDvdControl2 *This,ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd);
7538      HRESULT (WINAPI *SelectSubpictureStream)(IDvdControl2 *This,ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd);
7539      HRESULT (WINAPI *SetSubpictureState)(IDvdControl2 *This,WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd);
7540      HRESULT (WINAPI *SelectAngle)(IDvdControl2 *This,ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd);
7541      HRESULT (WINAPI *SelectParentalLevel)(IDvdControl2 *This,ULONG ulParentalLevel);
7542      HRESULT (WINAPI *SelectParentalCountry)(IDvdControl2 *This,BYTE bCountry[2]);
7543      HRESULT (WINAPI *SelectKaraokeAudioPresentationMode)(IDvdControl2 *This,ULONG ulMode);
7544      HRESULT (WINAPI *SelectVideoModePreference)(IDvdControl2 *This,ULONG ulPreferredDisplayMode);
7545      HRESULT (WINAPI *SetDVDDirectory)(IDvdControl2 *This,LPCWSTR pszwPath);
7546      HRESULT (WINAPI *ActivateAtPosition)(IDvdControl2 *This,POINT point);
7547      HRESULT (WINAPI *SelectAtPosition)(IDvdControl2 *This,POINT point);
7548      HRESULT (WINAPI *PlayChaptersAutoStop)(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd);
7549      HRESULT (WINAPI *AcceptParentalLevelChange)(IDvdControl2 *This,WINBOOL bAccept);
7550      HRESULT (WINAPI *SetOption)(IDvdControl2 *This,DVD_OPTION_FLAG flag,WINBOOL fState);
7551      HRESULT (WINAPI *SetState)(IDvdControl2 *This,IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd);
7552      HRESULT (WINAPI *PlayPeriodInTitleAutoStop)(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd);
7553      HRESULT (WINAPI *SetGPRM)(IDvdControl2 *This,ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd);
7554      HRESULT (WINAPI *SelectDefaultMenuLanguage)(IDvdControl2 *This,LCID Language);
7555      HRESULT (WINAPI *SelectDefaultAudioLanguage)(IDvdControl2 *This,LCID Language,DVD_AUDIO_LANG_EXT audioExtension);
7556      HRESULT (WINAPI *SelectDefaultSubpictureLanguage)(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
7557    END_INTERFACE
7558  } IDvdControl2Vtbl;
7559  struct IDvdControl2 {
7560    CONST_VTBL struct IDvdControl2Vtbl *lpVtbl;
7561  };
7562#ifdef COBJMACROS
7563#define IDvdControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7564#define IDvdControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
7565#define IDvdControl2_Release(This) (This)->lpVtbl->Release(This)
7566#define IDvdControl2_PlayTitle(This,ulTitle,dwFlags,ppCmd) (This)->lpVtbl->PlayTitle(This,ulTitle,dwFlags,ppCmd)
7567#define IDvdControl2_PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd) (This)->lpVtbl->PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd)
7568#define IDvdControl2_PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd) (This)->lpVtbl->PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd)
7569#define IDvdControl2_Stop(This) (This)->lpVtbl->Stop(This)
7570#define IDvdControl2_ReturnFromSubmenu(This,dwFlags,ppCmd) (This)->lpVtbl->ReturnFromSubmenu(This,dwFlags,ppCmd)
7571#define IDvdControl2_PlayAtTime(This,pTime,dwFlags,ppCmd) (This)->lpVtbl->PlayAtTime(This,pTime,dwFlags,ppCmd)
7572#define IDvdControl2_PlayChapter(This,ulChapter,dwFlags,ppCmd) (This)->lpVtbl->PlayChapter(This,ulChapter,dwFlags,ppCmd)
7573#define IDvdControl2_PlayPrevChapter(This,dwFlags,ppCmd) (This)->lpVtbl->PlayPrevChapter(This,dwFlags,ppCmd)
7574#define IDvdControl2_ReplayChapter(This,dwFlags,ppCmd) (This)->lpVtbl->ReplayChapter(This,dwFlags,ppCmd)
7575#define IDvdControl2_PlayNextChapter(This,dwFlags,ppCmd) (This)->lpVtbl->PlayNextChapter(This,dwFlags,ppCmd)
7576#define IDvdControl2_PlayForwards(This,dSpeed,dwFlags,ppCmd) (This)->lpVtbl->PlayForwards(This,dSpeed,dwFlags,ppCmd)
7577#define IDvdControl2_PlayBackwards(This,dSpeed,dwFlags,ppCmd) (This)->lpVtbl->PlayBackwards(This,dSpeed,dwFlags,ppCmd)
7578#define IDvdControl2_ShowMenu(This,MenuID,dwFlags,ppCmd) (This)->lpVtbl->ShowMenu(This,MenuID,dwFlags,ppCmd)
7579#define IDvdControl2_Resume(This,dwFlags,ppCmd) (This)->lpVtbl->Resume(This,dwFlags,ppCmd)
7580#define IDvdControl2_SelectRelativeButton(This,buttonDir) (This)->lpVtbl->SelectRelativeButton(This,buttonDir)
7581#define IDvdControl2_ActivateButton(This) (This)->lpVtbl->ActivateButton(This)
7582#define IDvdControl2_SelectButton(This,ulButton) (This)->lpVtbl->SelectButton(This,ulButton)
7583#define IDvdControl2_SelectAndActivateButton(This,ulButton) (This)->lpVtbl->SelectAndActivateButton(This,ulButton)
7584#define IDvdControl2_StillOff(This) (This)->lpVtbl->StillOff(This)
7585#define IDvdControl2_Pause(This,bState) (This)->lpVtbl->Pause(This,bState)
7586#define IDvdControl2_SelectAudioStream(This,ulAudio,dwFlags,ppCmd) (This)->lpVtbl->SelectAudioStream(This,ulAudio,dwFlags,ppCmd)
7587#define IDvdControl2_SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd) (This)->lpVtbl->SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd)
7588#define IDvdControl2_SetSubpictureState(This,bState,dwFlags,ppCmd) (This)->lpVtbl->SetSubpictureState(This,bState,dwFlags,ppCmd)
7589#define IDvdControl2_SelectAngle(This,ulAngle,dwFlags,ppCmd) (This)->lpVtbl->SelectAngle(This,ulAngle,dwFlags,ppCmd)
7590#define IDvdControl2_SelectParentalLevel(This,ulParentalLevel) (This)->lpVtbl->SelectParentalLevel(This,ulParentalLevel)
7591#define IDvdControl2_SelectParentalCountry(This,bCountry) (This)->lpVtbl->SelectParentalCountry(This,bCountry)
7592#define IDvdControl2_SelectKaraokeAudioPresentationMode(This,ulMode) (This)->lpVtbl->SelectKaraokeAudioPresentationMode(This,ulMode)
7593#define IDvdControl2_SelectVideoModePreference(This,ulPreferredDisplayMode) (This)->lpVtbl->SelectVideoModePreference(This,ulPreferredDisplayMode)
7594#define IDvdControl2_SetDVDDirectory(This,pszwPath) (This)->lpVtbl->SetDVDDirectory(This,pszwPath)
7595#define IDvdControl2_ActivateAtPosition(This,point) (This)->lpVtbl->ActivateAtPosition(This,point)
7596#define IDvdControl2_SelectAtPosition(This,point) (This)->lpVtbl->SelectAtPosition(This,point)
7597#define IDvdControl2_PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd) (This)->lpVtbl->PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd)
7598#define IDvdControl2_AcceptParentalLevelChange(This,bAccept) (This)->lpVtbl->AcceptParentalLevelChange(This,bAccept)
7599#define IDvdControl2_SetOption(This,flag,fState) (This)->lpVtbl->SetOption(This,flag,fState)
7600#define IDvdControl2_SetState(This,pState,dwFlags,ppCmd) (This)->lpVtbl->SetState(This,pState,dwFlags,ppCmd)
7601#define IDvdControl2_PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd) (This)->lpVtbl->PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd)
7602#define IDvdControl2_SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd) (This)->lpVtbl->SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd)
7603#define IDvdControl2_SelectDefaultMenuLanguage(This,Language) (This)->lpVtbl->SelectDefaultMenuLanguage(This,Language)
7604#define IDvdControl2_SelectDefaultAudioLanguage(This,Language,audioExtension) (This)->lpVtbl->SelectDefaultAudioLanguage(This,Language,audioExtension)
7605#define IDvdControl2_SelectDefaultSubpictureLanguage(This,Language,subpictureExtension) (This)->lpVtbl->SelectDefaultSubpictureLanguage(This,Language,subpictureExtension)
7606#endif
7607#endif
7608  HRESULT WINAPI IDvdControl2_PlayTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd);
7609  void __RPC_STUB IDvdControl2_PlayTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7610  HRESULT WINAPI IDvdControl2_PlayChapterInTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
7611  void __RPC_STUB IDvdControl2_PlayChapterInTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7612  HRESULT WINAPI IDvdControl2_PlayAtTimeInTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd);
7613  void __RPC_STUB IDvdControl2_PlayAtTimeInTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7614  HRESULT WINAPI IDvdControl2_Stop_Proxy(IDvdControl2 *This);
7615  void __RPC_STUB IDvdControl2_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7616  HRESULT WINAPI IDvdControl2_ReturnFromSubmenu_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
7617  void __RPC_STUB IDvdControl2_ReturnFromSubmenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7618  HRESULT WINAPI IDvdControl2_PlayAtTime_Proxy(IDvdControl2 *This,DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd);
7619  void __RPC_STUB IDvdControl2_PlayAtTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7620  HRESULT WINAPI IDvdControl2_PlayChapter_Proxy(IDvdControl2 *This,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
7621  void __RPC_STUB IDvdControl2_PlayChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7622  HRESULT WINAPI IDvdControl2_PlayPrevChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
7623  void __RPC_STUB IDvdControl2_PlayPrevChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7624  HRESULT WINAPI IDvdControl2_ReplayChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
7625  void __RPC_STUB IDvdControl2_ReplayChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7626  HRESULT WINAPI IDvdControl2_PlayNextChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
7627  void __RPC_STUB IDvdControl2_PlayNextChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7628  HRESULT WINAPI IDvdControl2_PlayForwards_Proxy(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
7629  void __RPC_STUB IDvdControl2_PlayForwards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7630  HRESULT WINAPI IDvdControl2_PlayBackwards_Proxy(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
7631  void __RPC_STUB IDvdControl2_PlayBackwards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7632  HRESULT WINAPI IDvdControl2_ShowMenu_Proxy(IDvdControl2 *This,DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd);
7633  void __RPC_STUB IDvdControl2_ShowMenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7634  HRESULT WINAPI IDvdControl2_Resume_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
7635  void __RPC_STUB IDvdControl2_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7636  HRESULT WINAPI IDvdControl2_SelectRelativeButton_Proxy(IDvdControl2 *This,DVD_RELATIVE_BUTTON buttonDir);
7637  void __RPC_STUB IDvdControl2_SelectRelativeButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7638  HRESULT WINAPI IDvdControl2_ActivateButton_Proxy(IDvdControl2 *This);
7639  void __RPC_STUB IDvdControl2_ActivateButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7640  HRESULT WINAPI IDvdControl2_SelectButton_Proxy(IDvdControl2 *This,ULONG ulButton);
7641  void __RPC_STUB IDvdControl2_SelectButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7642  HRESULT WINAPI IDvdControl2_SelectAndActivateButton_Proxy(IDvdControl2 *This,ULONG ulButton);
7643  void __RPC_STUB IDvdControl2_SelectAndActivateButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7644  HRESULT WINAPI IDvdControl2_StillOff_Proxy(IDvdControl2 *This);
7645  void __RPC_STUB IDvdControl2_StillOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7646  HRESULT WINAPI IDvdControl2_Pause_Proxy(IDvdControl2 *This,WINBOOL bState);
7647  void __RPC_STUB IDvdControl2_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7648  HRESULT WINAPI IDvdControl2_SelectAudioStream_Proxy(IDvdControl2 *This,ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd);
7649  void __RPC_STUB IDvdControl2_SelectAudioStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7650  HRESULT WINAPI IDvdControl2_SelectSubpictureStream_Proxy(IDvdControl2 *This,ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd);
7651  void __RPC_STUB IDvdControl2_SelectSubpictureStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7652  HRESULT WINAPI IDvdControl2_SetSubpictureState_Proxy(IDvdControl2 *This,WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd);
7653  void __RPC_STUB IDvdControl2_SetSubpictureState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7654  HRESULT WINAPI IDvdControl2_SelectAngle_Proxy(IDvdControl2 *This,ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd);
7655  void __RPC_STUB IDvdControl2_SelectAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7656  HRESULT WINAPI IDvdControl2_SelectParentalLevel_Proxy(IDvdControl2 *This,ULONG ulParentalLevel);
7657  void __RPC_STUB IDvdControl2_SelectParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7658  HRESULT WINAPI IDvdControl2_SelectParentalCountry_Proxy(IDvdControl2 *This,BYTE bCountry[2]);
7659  void __RPC_STUB IDvdControl2_SelectParentalCountry_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7660  HRESULT WINAPI IDvdControl2_SelectKaraokeAudioPresentationMode_Proxy(IDvdControl2 *This,ULONG ulMode);
7661  void __RPC_STUB IDvdControl2_SelectKaraokeAudioPresentationMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7662  HRESULT WINAPI IDvdControl2_SelectVideoModePreference_Proxy(IDvdControl2 *This,ULONG ulPreferredDisplayMode);
7663  void __RPC_STUB IDvdControl2_SelectVideoModePreference_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7664  HRESULT WINAPI IDvdControl2_SetDVDDirectory_Proxy(IDvdControl2 *This,LPCWSTR pszwPath);
7665  void __RPC_STUB IDvdControl2_SetDVDDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7666  HRESULT WINAPI IDvdControl2_ActivateAtPosition_Proxy(IDvdControl2 *This,POINT point);
7667  void __RPC_STUB IDvdControl2_ActivateAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7668  HRESULT WINAPI IDvdControl2_SelectAtPosition_Proxy(IDvdControl2 *This,POINT point);
7669  void __RPC_STUB IDvdControl2_SelectAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7670  HRESULT WINAPI IDvdControl2_PlayChaptersAutoStop_Proxy(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd);
7671  void __RPC_STUB IDvdControl2_PlayChaptersAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7672  HRESULT WINAPI IDvdControl2_AcceptParentalLevelChange_Proxy(IDvdControl2 *This,WINBOOL bAccept);
7673  void __RPC_STUB IDvdControl2_AcceptParentalLevelChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7674  HRESULT WINAPI IDvdControl2_SetOption_Proxy(IDvdControl2 *This,DVD_OPTION_FLAG flag,WINBOOL fState);
7675  void __RPC_STUB IDvdControl2_SetOption_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7676  HRESULT WINAPI IDvdControl2_SetState_Proxy(IDvdControl2 *This,IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd);
7677  void __RPC_STUB IDvdControl2_SetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7678  HRESULT WINAPI IDvdControl2_PlayPeriodInTitleAutoStop_Proxy(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd);
7679  void __RPC_STUB IDvdControl2_PlayPeriodInTitleAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7680  HRESULT WINAPI IDvdControl2_SetGPRM_Proxy(IDvdControl2 *This,ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd);
7681  void __RPC_STUB IDvdControl2_SetGPRM_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7682  HRESULT WINAPI IDvdControl2_SelectDefaultMenuLanguage_Proxy(IDvdControl2 *This,LCID Language);
7683  void __RPC_STUB IDvdControl2_SelectDefaultMenuLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7684  HRESULT WINAPI IDvdControl2_SelectDefaultAudioLanguage_Proxy(IDvdControl2 *This,LCID Language,DVD_AUDIO_LANG_EXT audioExtension);
7685  void __RPC_STUB IDvdControl2_SelectDefaultAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7686  HRESULT WINAPI IDvdControl2_SelectDefaultSubpictureLanguage_Proxy(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
7687  void __RPC_STUB IDvdControl2_SelectDefaultSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7688#endif
7689
7690  enum DVD_TextStringType {
7691    DVD_Struct_Volume = 0x1,DVD_Struct_Title = 0x2,DVD_Struct_ParentalID = 0x3,DVD_Struct_PartOfTitle = 0x4,DVD_Struct_Cell = 0x5,
7692    DVD_Stream_Audio = 0x10,DVD_Stream_Subpicture = 0x11,DVD_Stream_Angle = 0x12,DVD_Channel_Audio = 0x20,DVD_General_Name = 0x30,
7693    DVD_General_Comments = 0x31,DVD_Title_Series = 0x38,DVD_Title_Movie = 0x39,DVD_Title_Video = 0x3a,DVD_Title_Album = 0x3b,DVD_Title_Song = 0x3c,
7694    DVD_Title_Other = 0x3f,DVD_Title_Sub_Series = 0x40,DVD_Title_Sub_Movie = 0x41,DVD_Title_Sub_Video = 0x42,DVD_Title_Sub_Album = 0x43,
7695    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,
7696    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
7697  };
7698
7699  enum DVD_TextCharSet {
7700    DVD_CharSet_Unicode = 0,DVD_CharSet_ISO646 = 1,DVD_CharSet_JIS_Roman_Kanji = 2,DVD_CharSet_ISO8859_1 = 3,
7701    DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
7702  };
7703#define DVD_TITLE_MENU 0x000
7704#define DVD_STREAM_DATA_CURRENT 0x800
7705#define DVD_STREAM_DATA_VMGM 0x400
7706#define DVD_STREAM_DATA_VTSM 0x401
7707#define DVD_DEFAULT_AUDIO_STREAM 0x0f
7708
7709  typedef struct tagDVD_DECODER_CAPS {
7710    DWORD dwSize;
7711    DWORD dwAudioCaps;
7712    double dFwdMaxRateVideo;
7713    double dFwdMaxRateAudio;
7714    double dFwdMaxRateSP;
7715    double dBwdMaxRateVideo;
7716    double dBwdMaxRateAudio;
7717    double dBwdMaxRateSP;
7718    DWORD dwRes1;
7719    DWORD dwRes2;
7720    DWORD dwRes3;
7721    DWORD dwRes4;
7722  } DVD_DECODER_CAPS;
7723
7724#define DVD_AUDIO_CAPS_AC3 0x00000001
7725#define DVD_AUDIO_CAPS_MPEG2 0x00000002
7726#define DVD_AUDIO_CAPS_LPCM 0x00000004
7727#define DVD_AUDIO_CAPS_DTS 0x00000008
7728#define DVD_AUDIO_CAPS_SDDS 0x00000010
7729
7730  extern RPC_IF_HANDLE __MIDL_itf_strmif_0387_v0_0_c_ifspec;
7731  extern RPC_IF_HANDLE __MIDL_itf_strmif_0387_v0_0_s_ifspec;
7732#ifndef __IDvdInfo2_INTERFACE_DEFINED__
7733#define __IDvdInfo2_INTERFACE_DEFINED__
7734  EXTERN_C const IID IID_IDvdInfo2;
7735#if defined(__cplusplus) && !defined(CINTERFACE)
7736  struct IDvdInfo2 : public IUnknown {
7737  public:
7738    virtual HRESULT WINAPI GetCurrentDomain(DVD_DOMAIN *pDomain) = 0;
7739    virtual HRESULT WINAPI GetCurrentLocation(DVD_PLAYBACK_LOCATION2 *pLocation) = 0;
7740    virtual HRESULT WINAPI GetTotalTitleTime(DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags) = 0;
7741    virtual HRESULT WINAPI GetCurrentButton(ULONG *pulButtonsAvailable,ULONG *pulCurrentButton) = 0;
7742    virtual HRESULT WINAPI GetCurrentAngle(ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle) = 0;
7743    virtual HRESULT WINAPI GetCurrentAudio(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream) = 0;
7744    virtual HRESULT WINAPI GetCurrentSubpicture(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled) = 0;
7745    virtual HRESULT WINAPI GetCurrentUOPS(ULONG *pulUOPs) = 0;
7746    virtual HRESULT WINAPI GetAllSPRMs(SPRMARRAY *pRegisterArray) = 0;
7747    virtual HRESULT WINAPI GetAllGPRMs(GPRMARRAY *pRegisterArray) = 0;
7748    virtual HRESULT WINAPI GetAudioLanguage(ULONG ulStream,LCID *pLanguage) = 0;
7749    virtual HRESULT WINAPI GetSubpictureLanguage(ULONG ulStream,LCID *pLanguage) = 0;
7750    virtual HRESULT WINAPI GetTitleAttributes(ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle) = 0;
7751    virtual HRESULT WINAPI GetVMGAttributes(DVD_MenuAttributes *pATR) = 0;
7752    virtual HRESULT WINAPI GetCurrentVideoAttributes(DVD_VideoAttributes *pATR) = 0;
7753    virtual HRESULT WINAPI GetAudioAttributes(ULONG ulStream,DVD_AudioAttributes *pATR) = 0;
7754    virtual HRESULT WINAPI GetKaraokeAttributes(ULONG ulStream,DVD_KaraokeAttributes *pAttributes) = 0;
7755    virtual HRESULT WINAPI GetSubpictureAttributes(ULONG ulStream,DVD_SubpictureAttributes *pATR) = 0;
7756    virtual HRESULT WINAPI GetDVDVolumeInfo(ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles) = 0;
7757    virtual HRESULT WINAPI GetDVDTextNumberOfLanguages(ULONG *pulNumOfLangs) = 0;
7758    virtual HRESULT WINAPI GetDVDTextLanguageInfo(ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet) = 0;
7759    virtual HRESULT WINAPI GetDVDTextStringAsNative(ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType) = 0;
7760    virtual HRESULT WINAPI GetDVDTextStringAsUnicode(ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType) = 0;
7761    virtual HRESULT WINAPI GetPlayerParentalLevel(ULONG *pulParentalLevel,BYTE pbCountryCode[2]) = 0;
7762    virtual HRESULT WINAPI GetNumberOfChapters(ULONG ulTitle,ULONG *pulNumOfChapters) = 0;
7763    virtual HRESULT WINAPI GetTitleParentalLevels(ULONG ulTitle,ULONG *pulParentalLevels) = 0;
7764    virtual HRESULT WINAPI GetDVDDirectory(LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize) = 0;
7765    virtual HRESULT WINAPI IsAudioStreamEnabled(ULONG ulStreamNum,WINBOOL *pbEnabled) = 0;
7766    virtual HRESULT WINAPI GetDiscID(LPCWSTR pszwPath,ULONGLONG *pullDiscID) = 0;
7767    virtual HRESULT WINAPI GetState(IDvdState **pStateData) = 0;
7768    virtual HRESULT WINAPI GetMenuLanguages(LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages) = 0;
7769    virtual HRESULT WINAPI GetButtonAtPosition(POINT point,ULONG *pulButtonIndex) = 0;
7770    virtual HRESULT WINAPI GetCmdFromEvent(LONG_PTR lParam1,IDvdCmd **pCmdObj) = 0;
7771    virtual HRESULT WINAPI GetDefaultMenuLanguage(LCID *pLanguage) = 0;
7772    virtual HRESULT WINAPI GetDefaultAudioLanguage(LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension) = 0;
7773    virtual HRESULT WINAPI GetDefaultSubpictureLanguage(LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension) = 0;
7774    virtual HRESULT WINAPI GetDecoderCaps(DVD_DECODER_CAPS *pCaps) = 0;
7775    virtual HRESULT WINAPI GetButtonRect(ULONG ulButton,RECT *pRect) = 0;
7776    virtual HRESULT WINAPI IsSubpictureStreamEnabled(ULONG ulStreamNum,WINBOOL *pbEnabled) = 0;
7777  };
7778#else
7779  typedef struct IDvdInfo2Vtbl {
7780    BEGIN_INTERFACE
7781      HRESULT (WINAPI *QueryInterface)(IDvdInfo2 *This,REFIID riid,void **ppvObject);
7782      ULONG (WINAPI *AddRef)(IDvdInfo2 *This);
7783      ULONG (WINAPI *Release)(IDvdInfo2 *This);
7784      HRESULT (WINAPI *GetCurrentDomain)(IDvdInfo2 *This,DVD_DOMAIN *pDomain);
7785      HRESULT (WINAPI *GetCurrentLocation)(IDvdInfo2 *This,DVD_PLAYBACK_LOCATION2 *pLocation);
7786      HRESULT (WINAPI *GetTotalTitleTime)(IDvdInfo2 *This,DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags);
7787      HRESULT (WINAPI *GetCurrentButton)(IDvdInfo2 *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
7788      HRESULT (WINAPI *GetCurrentAngle)(IDvdInfo2 *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
7789      HRESULT (WINAPI *GetCurrentAudio)(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
7790      HRESULT (WINAPI *GetCurrentSubpicture)(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled);
7791      HRESULT (WINAPI *GetCurrentUOPS)(IDvdInfo2 *This,ULONG *pulUOPs);
7792      HRESULT (WINAPI *GetAllSPRMs)(IDvdInfo2 *This,SPRMARRAY *pRegisterArray);
7793      HRESULT (WINAPI *GetAllGPRMs)(IDvdInfo2 *This,GPRMARRAY *pRegisterArray);
7794      HRESULT (WINAPI *GetAudioLanguage)(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
7795      HRESULT (WINAPI *GetSubpictureLanguage)(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
7796      HRESULT (WINAPI *GetTitleAttributes)(IDvdInfo2 *This,ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle);
7797      HRESULT (WINAPI *GetVMGAttributes)(IDvdInfo2 *This,DVD_MenuAttributes *pATR);
7798      HRESULT (WINAPI *GetCurrentVideoAttributes)(IDvdInfo2 *This,DVD_VideoAttributes *pATR);
7799      HRESULT (WINAPI *GetAudioAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_AudioAttributes *pATR);
7800      HRESULT (WINAPI *GetKaraokeAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_KaraokeAttributes *pAttributes);
7801      HRESULT (WINAPI *GetSubpictureAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_SubpictureAttributes *pATR);
7802      HRESULT (WINAPI *GetDVDVolumeInfo)(IDvdInfo2 *This,ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
7803      HRESULT (WINAPI *GetDVDTextNumberOfLanguages)(IDvdInfo2 *This,ULONG *pulNumOfLangs);
7804      HRESULT (WINAPI *GetDVDTextLanguageInfo)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet);
7805      HRESULT (WINAPI *GetDVDTextStringAsNative)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
7806      HRESULT (WINAPI *GetDVDTextStringAsUnicode)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
7807      HRESULT (WINAPI *GetPlayerParentalLevel)(IDvdInfo2 *This,ULONG *pulParentalLevel,BYTE pbCountryCode[2]);
7808      HRESULT (WINAPI *GetNumberOfChapters)(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulNumOfChapters);
7809      HRESULT (WINAPI *GetTitleParentalLevels)(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulParentalLevels);
7810      HRESULT (WINAPI *GetDVDDirectory)(IDvdInfo2 *This,LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize);
7811      HRESULT (WINAPI *IsAudioStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
7812      HRESULT (WINAPI *GetDiscID)(IDvdInfo2 *This,LPCWSTR pszwPath,ULONGLONG *pullDiscID);
7813      HRESULT (WINAPI *GetState)(IDvdInfo2 *This,IDvdState **pStateData);
7814      HRESULT (WINAPI *GetMenuLanguages)(IDvdInfo2 *This,LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages);
7815      HRESULT (WINAPI *GetButtonAtPosition)(IDvdInfo2 *This,POINT point,ULONG *pulButtonIndex);
7816      HRESULT (WINAPI *GetCmdFromEvent)(IDvdInfo2 *This,LONG_PTR lParam1,IDvdCmd **pCmdObj);
7817      HRESULT (WINAPI *GetDefaultMenuLanguage)(IDvdInfo2 *This,LCID *pLanguage);
7818      HRESULT (WINAPI *GetDefaultAudioLanguage)(IDvdInfo2 *This,LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension);
7819      HRESULT (WINAPI *GetDefaultSubpictureLanguage)(IDvdInfo2 *This,LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
7820      HRESULT (WINAPI *GetDecoderCaps)(IDvdInfo2 *This,DVD_DECODER_CAPS *pCaps);
7821      HRESULT (WINAPI *GetButtonRect)(IDvdInfo2 *This,ULONG ulButton,RECT *pRect);
7822      HRESULT (WINAPI *IsSubpictureStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
7823    END_INTERFACE
7824  } IDvdInfo2Vtbl;
7825  struct IDvdInfo2 {
7826    CONST_VTBL struct IDvdInfo2Vtbl *lpVtbl;
7827  };
7828#ifdef COBJMACROS
7829#define IDvdInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7830#define IDvdInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
7831#define IDvdInfo2_Release(This) (This)->lpVtbl->Release(This)
7832#define IDvdInfo2_GetCurrentDomain(This,pDomain) (This)->lpVtbl->GetCurrentDomain(This,pDomain)
7833#define IDvdInfo2_GetCurrentLocation(This,pLocation) (This)->lpVtbl->GetCurrentLocation(This,pLocation)
7834#define IDvdInfo2_GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags) (This)->lpVtbl->GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags)
7835#define IDvdInfo2_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton) (This)->lpVtbl->GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
7836#define IDvdInfo2_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle) (This)->lpVtbl->GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
7837#define IDvdInfo2_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream) (This)->lpVtbl->GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
7838#define IDvdInfo2_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled) (This)->lpVtbl->GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled)
7839#define IDvdInfo2_GetCurrentUOPS(This,pulUOPs) (This)->lpVtbl->GetCurrentUOPS(This,pulUOPs)
7840#define IDvdInfo2_GetAllSPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllSPRMs(This,pRegisterArray)
7841#define IDvdInfo2_GetAllGPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllGPRMs(This,pRegisterArray)
7842#define IDvdInfo2_GetAudioLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetAudioLanguage(This,ulStream,pLanguage)
7843#define IDvdInfo2_GetSubpictureLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetSubpictureLanguage(This,ulStream,pLanguage)
7844#define IDvdInfo2_GetTitleAttributes(This,ulTitle,pMenu,pTitle) (This)->lpVtbl->GetTitleAttributes(This,ulTitle,pMenu,pTitle)
7845#define IDvdInfo2_GetVMGAttributes(This,pATR) (This)->lpVtbl->GetVMGAttributes(This,pATR)
7846#define IDvdInfo2_GetCurrentVideoAttributes(This,pATR) (This)->lpVtbl->GetCurrentVideoAttributes(This,pATR)
7847#define IDvdInfo2_GetAudioAttributes(This,ulStream,pATR) (This)->lpVtbl->GetAudioAttributes(This,ulStream,pATR)
7848#define IDvdInfo2_GetKaraokeAttributes(This,ulStream,pAttributes) (This)->lpVtbl->GetKaraokeAttributes(This,ulStream,pAttributes)
7849#define IDvdInfo2_GetSubpictureAttributes(This,ulStream,pATR) (This)->lpVtbl->GetSubpictureAttributes(This,ulStream,pATR)
7850#define IDvdInfo2_GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles) (This)->lpVtbl->GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles)
7851#define IDvdInfo2_GetDVDTextNumberOfLanguages(This,pulNumOfLangs) (This)->lpVtbl->GetDVDTextNumberOfLanguages(This,pulNumOfLangs)
7852#define IDvdInfo2_GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet) (This)->lpVtbl->GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet)
7853#define IDvdInfo2_GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType) (This)->lpVtbl->GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType)
7854#define IDvdInfo2_GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType) (This)->lpVtbl->GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType)
7855#define IDvdInfo2_GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode) (This)->lpVtbl->GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode)
7856#define IDvdInfo2_GetNumberOfChapters(This,ulTitle,pulNumOfChapters) (This)->lpVtbl->GetNumberOfChapters(This,ulTitle,pulNumOfChapters)
7857#define IDvdInfo2_GetTitleParentalLevels(This,ulTitle,pulParentalLevels) (This)->lpVtbl->GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
7858#define IDvdInfo2_GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize) (This)->lpVtbl->GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize)
7859#define IDvdInfo2_IsAudioStreamEnabled(This,ulStreamNum,pbEnabled) (This)->lpVtbl->IsAudioStreamEnabled(This,ulStreamNum,pbEnabled)
7860#define IDvdInfo2_GetDiscID(This,pszwPath,pullDiscID) (This)->lpVtbl->GetDiscID(This,pszwPath,pullDiscID)
7861#define IDvdInfo2_GetState(This,pStateData) (This)->lpVtbl->GetState(This,pStateData)
7862#define IDvdInfo2_GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages) (This)->lpVtbl->GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages)
7863#define IDvdInfo2_GetButtonAtPosition(This,point,pulButtonIndex) (This)->lpVtbl->GetButtonAtPosition(This,point,pulButtonIndex)
7864#define IDvdInfo2_GetCmdFromEvent(This,lParam1,pCmdObj) (This)->lpVtbl->GetCmdFromEvent(This,lParam1,pCmdObj)
7865#define IDvdInfo2_GetDefaultMenuLanguage(This,pLanguage) (This)->lpVtbl->GetDefaultMenuLanguage(This,pLanguage)
7866#define IDvdInfo2_GetDefaultAudioLanguage(This,pLanguage,pAudioExtension) (This)->lpVtbl->GetDefaultAudioLanguage(This,pLanguage,pAudioExtension)
7867#define IDvdInfo2_GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension) (This)->lpVtbl->GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension)
7868#define IDvdInfo2_GetDecoderCaps(This,pCaps) (This)->lpVtbl->GetDecoderCaps(This,pCaps)
7869#define IDvdInfo2_GetButtonRect(This,ulButton,pRect) (This)->lpVtbl->GetButtonRect(This,ulButton,pRect)
7870#define IDvdInfo2_IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled) (This)->lpVtbl->IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled)
7871#endif
7872#endif
7873  HRESULT WINAPI IDvdInfo2_GetCurrentDomain_Proxy(IDvdInfo2 *This,DVD_DOMAIN *pDomain);
7874  void __RPC_STUB IDvdInfo2_GetCurrentDomain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7875  HRESULT WINAPI IDvdInfo2_GetCurrentLocation_Proxy(IDvdInfo2 *This,DVD_PLAYBACK_LOCATION2 *pLocation);
7876  void __RPC_STUB IDvdInfo2_GetCurrentLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7877  HRESULT WINAPI IDvdInfo2_GetTotalTitleTime_Proxy(IDvdInfo2 *This,DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags);
7878  void __RPC_STUB IDvdInfo2_GetTotalTitleTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7879  HRESULT WINAPI IDvdInfo2_GetCurrentButton_Proxy(IDvdInfo2 *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
7880  void __RPC_STUB IDvdInfo2_GetCurrentButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7881  HRESULT WINAPI IDvdInfo2_GetCurrentAngle_Proxy(IDvdInfo2 *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
7882  void __RPC_STUB IDvdInfo2_GetCurrentAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7883  HRESULT WINAPI IDvdInfo2_GetCurrentAudio_Proxy(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
7884  void __RPC_STUB IDvdInfo2_GetCurrentAudio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7885  HRESULT WINAPI IDvdInfo2_GetCurrentSubpicture_Proxy(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled);
7886  void __RPC_STUB IDvdInfo2_GetCurrentSubpicture_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7887  HRESULT WINAPI IDvdInfo2_GetCurrentUOPS_Proxy(IDvdInfo2 *This,ULONG *pulUOPs);
7888  void __RPC_STUB IDvdInfo2_GetCurrentUOPS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7889  HRESULT WINAPI IDvdInfo2_GetAllSPRMs_Proxy(IDvdInfo2 *This,SPRMARRAY *pRegisterArray);
7890  void __RPC_STUB IDvdInfo2_GetAllSPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7891  HRESULT WINAPI IDvdInfo2_GetAllGPRMs_Proxy(IDvdInfo2 *This,GPRMARRAY *pRegisterArray);
7892  void __RPC_STUB IDvdInfo2_GetAllGPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7893  HRESULT WINAPI IDvdInfo2_GetAudioLanguage_Proxy(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
7894  void __RPC_STUB IDvdInfo2_GetAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7895  HRESULT WINAPI IDvdInfo2_GetSubpictureLanguage_Proxy(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
7896  void __RPC_STUB IDvdInfo2_GetSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7897  HRESULT WINAPI IDvdInfo2_GetTitleAttributes_Proxy(IDvdInfo2 *This,ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle);
7898  void __RPC_STUB IDvdInfo2_GetTitleAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7899  HRESULT WINAPI IDvdInfo2_GetVMGAttributes_Proxy(IDvdInfo2 *This,DVD_MenuAttributes *pATR);
7900  void __RPC_STUB IDvdInfo2_GetVMGAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7901  HRESULT WINAPI IDvdInfo2_GetCurrentVideoAttributes_Proxy(IDvdInfo2 *This,DVD_VideoAttributes *pATR);
7902  void __RPC_STUB IDvdInfo2_GetCurrentVideoAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7903  HRESULT WINAPI IDvdInfo2_GetAudioAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_AudioAttributes *pATR);
7904  void __RPC_STUB IDvdInfo2_GetAudioAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7905  HRESULT WINAPI IDvdInfo2_GetKaraokeAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_KaraokeAttributes *pAttributes);
7906  void __RPC_STUB IDvdInfo2_GetKaraokeAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7907  HRESULT WINAPI IDvdInfo2_GetSubpictureAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_SubpictureAttributes *pATR);
7908  void __RPC_STUB IDvdInfo2_GetSubpictureAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7909  HRESULT WINAPI IDvdInfo2_GetDVDVolumeInfo_Proxy(IDvdInfo2 *This,ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
7910  void __RPC_STUB IDvdInfo2_GetDVDVolumeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7911  HRESULT WINAPI IDvdInfo2_GetDVDTextNumberOfLanguages_Proxy(IDvdInfo2 *This,ULONG *pulNumOfLangs);
7912  void __RPC_STUB IDvdInfo2_GetDVDTextNumberOfLanguages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7913  HRESULT WINAPI IDvdInfo2_GetDVDTextLanguageInfo_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet);
7914  void __RPC_STUB IDvdInfo2_GetDVDTextLanguageInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7915  HRESULT WINAPI IDvdInfo2_GetDVDTextStringAsNative_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
7916  void __RPC_STUB IDvdInfo2_GetDVDTextStringAsNative_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7917  HRESULT WINAPI IDvdInfo2_GetDVDTextStringAsUnicode_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
7918  void __RPC_STUB IDvdInfo2_GetDVDTextStringAsUnicode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7919  HRESULT WINAPI IDvdInfo2_GetPlayerParentalLevel_Proxy(IDvdInfo2 *This,ULONG *pulParentalLevel,BYTE pbCountryCode[2]);
7920  void __RPC_STUB IDvdInfo2_GetPlayerParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7921  HRESULT WINAPI IDvdInfo2_GetNumberOfChapters_Proxy(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulNumOfChapters);
7922  void __RPC_STUB IDvdInfo2_GetNumberOfChapters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7923  HRESULT WINAPI IDvdInfo2_GetTitleParentalLevels_Proxy(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulParentalLevels);
7924  void __RPC_STUB IDvdInfo2_GetTitleParentalLevels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7925  HRESULT WINAPI IDvdInfo2_GetDVDDirectory_Proxy(IDvdInfo2 *This,LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize);
7926  void __RPC_STUB IDvdInfo2_GetDVDDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7927  HRESULT WINAPI IDvdInfo2_IsAudioStreamEnabled_Proxy(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
7928  void __RPC_STUB IDvdInfo2_IsAudioStreamEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7929  HRESULT WINAPI IDvdInfo2_GetDiscID_Proxy(IDvdInfo2 *This,LPCWSTR pszwPath,ULONGLONG *pullDiscID);
7930  void __RPC_STUB IDvdInfo2_GetDiscID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7931  HRESULT WINAPI IDvdInfo2_GetState_Proxy(IDvdInfo2 *This,IDvdState **pStateData);
7932  void __RPC_STUB IDvdInfo2_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7933  HRESULT WINAPI IDvdInfo2_GetMenuLanguages_Proxy(IDvdInfo2 *This,LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages);
7934  void __RPC_STUB IDvdInfo2_GetMenuLanguages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7935  HRESULT WINAPI IDvdInfo2_GetButtonAtPosition_Proxy(IDvdInfo2 *This,POINT point,ULONG *pulButtonIndex);
7936  void __RPC_STUB IDvdInfo2_GetButtonAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7937  HRESULT WINAPI IDvdInfo2_GetCmdFromEvent_Proxy(IDvdInfo2 *This,LONG_PTR lParam1,IDvdCmd **pCmdObj);
7938  void __RPC_STUB IDvdInfo2_GetCmdFromEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7939  HRESULT WINAPI IDvdInfo2_GetDefaultMenuLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage);
7940  void __RPC_STUB IDvdInfo2_GetDefaultMenuLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7941  HRESULT WINAPI IDvdInfo2_GetDefaultAudioLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension);
7942  void __RPC_STUB IDvdInfo2_GetDefaultAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7943  HRESULT WINAPI IDvdInfo2_GetDefaultSubpictureLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
7944  void __RPC_STUB IDvdInfo2_GetDefaultSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7945  HRESULT WINAPI IDvdInfo2_GetDecoderCaps_Proxy(IDvdInfo2 *This,DVD_DECODER_CAPS *pCaps);
7946  void __RPC_STUB IDvdInfo2_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7947  HRESULT WINAPI IDvdInfo2_GetButtonRect_Proxy(IDvdInfo2 *This,ULONG ulButton,RECT *pRect);
7948  void __RPC_STUB IDvdInfo2_GetButtonRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7949  HRESULT WINAPI IDvdInfo2_IsSubpictureStreamEnabled_Proxy(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
7950  void __RPC_STUB IDvdInfo2_IsSubpictureStreamEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
7951#endif
7952
7953  typedef enum _AM_DVD_GRAPH_FLAGS {
7954    AM_DVD_HWDEC_PREFER = 0x1,AM_DVD_HWDEC_ONLY = 0x2,AM_DVD_SWDEC_PREFER = 0x4,AM_DVD_SWDEC_ONLY = 0x8,AM_DVD_NOVPE = 0x100,
7955    AM_DVD_VMR9_ONLY = 0x800
7956  } AM_DVD_GRAPH_FLAGS;
7957
7958  typedef enum _AM_DVD_STREAM_FLAGS {
7959    AM_DVD_STREAM_VIDEO = 0x1,AM_DVD_STREAM_AUDIO = 0x2,AM_DVD_STREAM_SUBPIC = 0x4
7960  } AM_DVD_STREAM_FLAGS;
7961
7962  typedef struct __MIDL___MIDL_itf_strmif_0389_0001 {
7963    HRESULT hrVPEStatus;
7964    WINBOOL bDvdVolInvalid;
7965    WINBOOL bDvdVolUnknown;
7966    WINBOOL bNoLine21In;
7967    WINBOOL bNoLine21Out;
7968    int iNumStreams;
7969    int iNumStreamsFailed;
7970    DWORD dwFailedStreamsFlag;
7971  } AM_DVD_RENDERSTATUS;
7972
7973  extern RPC_IF_HANDLE __MIDL_itf_strmif_0389_v0_0_c_ifspec;
7974  extern RPC_IF_HANDLE __MIDL_itf_strmif_0389_v0_0_s_ifspec;
7975#ifndef __IDvdGraphBuilder_INTERFACE_DEFINED__
7976#define __IDvdGraphBuilder_INTERFACE_DEFINED__
7977  EXTERN_C const IID IID_IDvdGraphBuilder;
7978#if defined(__cplusplus) && !defined(CINTERFACE)
7979  struct IDvdGraphBuilder : public IUnknown {
7980  public:
7981    virtual HRESULT WINAPI GetFiltergraph(IGraphBuilder **ppGB) = 0;
7982    virtual HRESULT WINAPI GetDvdInterface(REFIID riid,void **ppvIF) = 0;
7983    virtual HRESULT WINAPI RenderDvdVideoVolume(LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus) = 0;
7984  };
7985#else
7986  typedef struct IDvdGraphBuilderVtbl {
7987    BEGIN_INTERFACE
7988      HRESULT (WINAPI *QueryInterface)(IDvdGraphBuilder *This,REFIID riid,void **ppvObject);
7989      ULONG (WINAPI *AddRef)(IDvdGraphBuilder *This);
7990      ULONG (WINAPI *Release)(IDvdGraphBuilder *This);
7991      HRESULT (WINAPI *GetFiltergraph)(IDvdGraphBuilder *This,IGraphBuilder **ppGB);
7992      HRESULT (WINAPI *GetDvdInterface)(IDvdGraphBuilder *This,REFIID riid,void **ppvIF);
7993      HRESULT (WINAPI *RenderDvdVideoVolume)(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
7994    END_INTERFACE
7995  } IDvdGraphBuilderVtbl;
7996  struct IDvdGraphBuilder {
7997    CONST_VTBL struct IDvdGraphBuilderVtbl *lpVtbl;
7998  };
7999#ifdef COBJMACROS
8000#define IDvdGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8001#define IDvdGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
8002#define IDvdGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
8003#define IDvdGraphBuilder_GetFiltergraph(This,ppGB) (This)->lpVtbl->GetFiltergraph(This,ppGB)
8004#define IDvdGraphBuilder_GetDvdInterface(This,riid,ppvIF) (This)->lpVtbl->GetDvdInterface(This,riid,ppvIF)
8005#define IDvdGraphBuilder_RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus) (This)->lpVtbl->RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus)
8006#endif
8007#endif
8008  HRESULT WINAPI IDvdGraphBuilder_GetFiltergraph_Proxy(IDvdGraphBuilder *This,IGraphBuilder **ppGB);
8009  void __RPC_STUB IDvdGraphBuilder_GetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8010  HRESULT WINAPI IDvdGraphBuilder_GetDvdInterface_Proxy(IDvdGraphBuilder *This,REFIID riid,void **ppvIF);
8011  void __RPC_STUB IDvdGraphBuilder_GetDvdInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8012  HRESULT WINAPI IDvdGraphBuilder_RenderDvdVideoVolume_Proxy(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
8013  void __RPC_STUB IDvdGraphBuilder_RenderDvdVideoVolume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8014#endif
8015
8016#ifndef __IDDrawExclModeVideo_INTERFACE_DEFINED__
8017#define __IDDrawExclModeVideo_INTERFACE_DEFINED__
8018  EXTERN_C const IID IID_IDDrawExclModeVideo;
8019#if defined(__cplusplus) && !defined(CINTERFACE)
8020  struct IDDrawExclModeVideo : public IUnknown {
8021  public:
8022    virtual HRESULT WINAPI SetDDrawObject(IDirectDraw *pDDrawObject) = 0;
8023    virtual HRESULT WINAPI GetDDrawObject(IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal) = 0;
8024    virtual HRESULT WINAPI SetDDrawSurface(IDirectDrawSurface *pDDrawSurface) = 0;
8025    virtual HRESULT WINAPI GetDDrawSurface(IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal) = 0;
8026    virtual HRESULT WINAPI SetDrawParameters(const RECT *prcSource,const RECT *prcTarget) = 0;
8027    virtual HRESULT WINAPI GetNativeVideoProps(DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY) = 0;
8028    virtual HRESULT WINAPI SetCallbackInterface(IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags) = 0;
8029  };
8030#else
8031  typedef struct IDDrawExclModeVideoVtbl {
8032    BEGIN_INTERFACE
8033      HRESULT (WINAPI *QueryInterface)(IDDrawExclModeVideo *This,REFIID riid,void **ppvObject);
8034      ULONG (WINAPI *AddRef)(IDDrawExclModeVideo *This);
8035      ULONG (WINAPI *Release)(IDDrawExclModeVideo *This);
8036      HRESULT (WINAPI *SetDDrawObject)(IDDrawExclModeVideo *This,IDirectDraw *pDDrawObject);
8037      HRESULT (WINAPI *GetDDrawObject)(IDDrawExclModeVideo *This,IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal);
8038      HRESULT (WINAPI *SetDDrawSurface)(IDDrawExclModeVideo *This,IDirectDrawSurface *pDDrawSurface);
8039      HRESULT (WINAPI *GetDDrawSurface)(IDDrawExclModeVideo *This,IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal);
8040      HRESULT (WINAPI *SetDrawParameters)(IDDrawExclModeVideo *This,const RECT *prcSource,const RECT *prcTarget);
8041      HRESULT (WINAPI *GetNativeVideoProps)(IDDrawExclModeVideo *This,DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY);
8042      HRESULT (WINAPI *SetCallbackInterface)(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
8043    END_INTERFACE
8044  } IDDrawExclModeVideoVtbl;
8045  struct IDDrawExclModeVideo {
8046    CONST_VTBL struct IDDrawExclModeVideoVtbl *lpVtbl;
8047  };
8048#ifdef COBJMACROS
8049#define IDDrawExclModeVideo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8050#define IDDrawExclModeVideo_AddRef(This) (This)->lpVtbl->AddRef(This)
8051#define IDDrawExclModeVideo_Release(This) (This)->lpVtbl->Release(This)
8052#define IDDrawExclModeVideo_SetDDrawObject(This,pDDrawObject) (This)->lpVtbl->SetDDrawObject(This,pDDrawObject)
8053#define IDDrawExclModeVideo_GetDDrawObject(This,ppDDrawObject,pbUsingExternal) (This)->lpVtbl->GetDDrawObject(This,ppDDrawObject,pbUsingExternal)
8054#define IDDrawExclModeVideo_SetDDrawSurface(This,pDDrawSurface) (This)->lpVtbl->SetDDrawSurface(This,pDDrawSurface)
8055#define IDDrawExclModeVideo_GetDDrawSurface(This,ppDDrawSurface,pbUsingExternal) (This)->lpVtbl->GetDDrawSurface(This,ppDDrawSurface,pbUsingExternal)
8056#define IDDrawExclModeVideo_SetDrawParameters(This,prcSource,prcTarget) (This)->lpVtbl->SetDrawParameters(This,prcSource,prcTarget)
8057#define IDDrawExclModeVideo_GetNativeVideoProps(This,pdwVideoWidth,pdwVideoHeight,pdwPictAspectRatioX,pdwPictAspectRatioY) (This)->lpVtbl->GetNativeVideoProps(This,pdwVideoWidth,pdwVideoHeight,pdwPictAspectRatioX,pdwPictAspectRatioY)
8058#define IDDrawExclModeVideo_SetCallbackInterface(This,pCallback,dwFlags) (This)->lpVtbl->SetCallbackInterface(This,pCallback,dwFlags)
8059#endif
8060#endif
8061  HRESULT WINAPI IDDrawExclModeVideo_SetDDrawObject_Proxy(IDDrawExclModeVideo *This,IDirectDraw *pDDrawObject);
8062  void __RPC_STUB IDDrawExclModeVideo_SetDDrawObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8063  HRESULT WINAPI IDDrawExclModeVideo_GetDDrawObject_Proxy(IDDrawExclModeVideo *This,IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal);
8064  void __RPC_STUB IDDrawExclModeVideo_GetDDrawObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8065  HRESULT WINAPI IDDrawExclModeVideo_SetDDrawSurface_Proxy(IDDrawExclModeVideo *This,IDirectDrawSurface *pDDrawSurface);
8066  void __RPC_STUB IDDrawExclModeVideo_SetDDrawSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8067  HRESULT WINAPI IDDrawExclModeVideo_GetDDrawSurface_Proxy(IDDrawExclModeVideo *This,IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal);
8068  void __RPC_STUB IDDrawExclModeVideo_GetDDrawSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8069  HRESULT WINAPI IDDrawExclModeVideo_SetDrawParameters_Proxy(IDDrawExclModeVideo *This,const RECT *prcSource,const RECT *prcTarget);
8070  void __RPC_STUB IDDrawExclModeVideo_SetDrawParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8071  HRESULT WINAPI IDDrawExclModeVideo_GetNativeVideoProps_Proxy(IDDrawExclModeVideo *This,DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY);
8072  void __RPC_STUB IDDrawExclModeVideo_GetNativeVideoProps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8073  HRESULT WINAPI IDDrawExclModeVideo_SetCallbackInterface_Proxy(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
8074  void __RPC_STUB IDDrawExclModeVideo_SetCallbackInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8075#endif
8076
8077  enum _AM_OVERLAY_NOTIFY_FLAGS {
8078    AM_OVERLAY_NOTIFY_VISIBLE_CHANGE = 0x1,AM_OVERLAY_NOTIFY_SOURCE_CHANGE = 0x2,AM_OVERLAY_NOTIFY_DEST_CHANGE = 0x4
8079  };
8080
8081  extern RPC_IF_HANDLE __MIDL_itf_strmif_0391_v0_0_c_ifspec;
8082  extern RPC_IF_HANDLE __MIDL_itf_strmif_0391_v0_0_s_ifspec;
8083#ifndef __IDDrawExclModeVideoCallback_INTERFACE_DEFINED__
8084#define __IDDrawExclModeVideoCallback_INTERFACE_DEFINED__
8085  EXTERN_C const IID IID_IDDrawExclModeVideoCallback;
8086#if defined(__cplusplus) && !defined(CINTERFACE)
8087  struct IDDrawExclModeVideoCallback : public IUnknown {
8088  public:
8089    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;
8090    virtual HRESULT WINAPI OnUpdateColorKey(const COLORKEY *pKey,DWORD dwColor) = 0;
8091    virtual HRESULT WINAPI OnUpdateSize(DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight) = 0;
8092  };
8093#else
8094  typedef struct IDDrawExclModeVideoCallbackVtbl {
8095    BEGIN_INTERFACE
8096      HRESULT (WINAPI *QueryInterface)(IDDrawExclModeVideoCallback *This,REFIID riid,void **ppvObject);
8097      ULONG (WINAPI *AddRef)(IDDrawExclModeVideoCallback *This);
8098      ULONG (WINAPI *Release)(IDDrawExclModeVideoCallback *This);
8099      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);
8100      HRESULT (WINAPI *OnUpdateColorKey)(IDDrawExclModeVideoCallback *This,const COLORKEY *pKey,DWORD dwColor);
8101      HRESULT (WINAPI *OnUpdateSize)(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
8102    END_INTERFACE
8103  } IDDrawExclModeVideoCallbackVtbl;
8104  struct IDDrawExclModeVideoCallback {
8105    CONST_VTBL struct IDDrawExclModeVideoCallbackVtbl *lpVtbl;
8106  };
8107#ifdef COBJMACROS
8108#define IDDrawExclModeVideoCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8109#define IDDrawExclModeVideoCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
8110#define IDDrawExclModeVideoCallback_Release(This) (This)->lpVtbl->Release(This)
8111#define IDDrawExclModeVideoCallback_OnUpdateOverlay(This,bBefore,dwFlags,bOldVisible,prcOldSrc,prcOldDest,bNewVisible,prcNewSrc,prcNewDest) (This)->lpVtbl->OnUpdateOverlay(This,bBefore,dwFlags,bOldVisible,prcOldSrc,prcOldDest,bNewVisible,prcNewSrc,prcNewDest)
8112#define IDDrawExclModeVideoCallback_OnUpdateColorKey(This,pKey,dwColor) (This)->lpVtbl->OnUpdateColorKey(This,pKey,dwColor)
8113#define IDDrawExclModeVideoCallback_OnUpdateSize(This,dwWidth,dwHeight,dwARWidth,dwARHeight) (This)->lpVtbl->OnUpdateSize(This,dwWidth,dwHeight,dwARWidth,dwARHeight)
8114#endif
8115#endif
8116  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);
8117  void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateOverlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8118  HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateColorKey_Proxy(IDDrawExclModeVideoCallback *This,const COLORKEY *pKey,DWORD dwColor);
8119  void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8120  HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateSize_Proxy(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
8121  void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8122#endif
8123
8124  extern RPC_IF_HANDLE __MIDL_itf_strmif_0392_v0_0_c_ifspec;
8125  extern RPC_IF_HANDLE __MIDL_itf_strmif_0392_v0_0_s_ifspec;
8126#ifndef __IPinConnection_INTERFACE_DEFINED__
8127#define __IPinConnection_INTERFACE_DEFINED__
8128  EXTERN_C const IID IID_IPinConnection;
8129#if defined(__cplusplus) && !defined(CINTERFACE)
8130  struct IPinConnection : public IUnknown {
8131  public:
8132    virtual HRESULT WINAPI DynamicQueryAccept(const AM_MEDIA_TYPE *pmt) = 0;
8133    virtual HRESULT WINAPI NotifyEndOfStream(HANDLE hNotifyEvent) = 0;
8134    virtual HRESULT WINAPI IsEndPin(void) = 0;
8135    virtual HRESULT WINAPI DynamicDisconnect(void) = 0;
8136  };
8137#else
8138  typedef struct IPinConnectionVtbl {
8139    BEGIN_INTERFACE
8140      HRESULT (WINAPI *QueryInterface)(IPinConnection *This,REFIID riid,void **ppvObject);
8141      ULONG (WINAPI *AddRef)(IPinConnection *This);
8142      ULONG (WINAPI *Release)(IPinConnection *This);
8143      HRESULT (WINAPI *DynamicQueryAccept)(IPinConnection *This,const AM_MEDIA_TYPE *pmt);
8144      HRESULT (WINAPI *NotifyEndOfStream)(IPinConnection *This,HANDLE hNotifyEvent);
8145      HRESULT (WINAPI *IsEndPin)(IPinConnection *This);
8146      HRESULT (WINAPI *DynamicDisconnect)(IPinConnection *This);
8147    END_INTERFACE
8148  } IPinConnectionVtbl;
8149  struct IPinConnection {
8150    CONST_VTBL struct IPinConnectionVtbl *lpVtbl;
8151  };
8152#ifdef COBJMACROS
8153#define IPinConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8154#define IPinConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
8155#define IPinConnection_Release(This) (This)->lpVtbl->Release(This)
8156#define IPinConnection_DynamicQueryAccept(This,pmt) (This)->lpVtbl->DynamicQueryAccept(This,pmt)
8157#define IPinConnection_NotifyEndOfStream(This,hNotifyEvent) (This)->lpVtbl->NotifyEndOfStream(This,hNotifyEvent)
8158#define IPinConnection_IsEndPin(This) (This)->lpVtbl->IsEndPin(This)
8159#define IPinConnection_DynamicDisconnect(This) (This)->lpVtbl->DynamicDisconnect(This)
8160#endif
8161#endif
8162  HRESULT WINAPI IPinConnection_DynamicQueryAccept_Proxy(IPinConnection *This,const AM_MEDIA_TYPE *pmt);
8163  void __RPC_STUB IPinConnection_DynamicQueryAccept_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8164  HRESULT WINAPI IPinConnection_NotifyEndOfStream_Proxy(IPinConnection *This,HANDLE hNotifyEvent);
8165  void __RPC_STUB IPinConnection_NotifyEndOfStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8166  HRESULT WINAPI IPinConnection_IsEndPin_Proxy(IPinConnection *This);
8167  void __RPC_STUB IPinConnection_IsEndPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8168  HRESULT WINAPI IPinConnection_DynamicDisconnect_Proxy(IPinConnection *This);
8169  void __RPC_STUB IPinConnection_DynamicDisconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8170#endif
8171
8172#ifndef __IPinFlowControl_INTERFACE_DEFINED__
8173#define __IPinFlowControl_INTERFACE_DEFINED__
8174  EXTERN_C const IID IID_IPinFlowControl;
8175#if defined(__cplusplus) && !defined(CINTERFACE)
8176  struct IPinFlowControl : public IUnknown {
8177  public:
8178    virtual HRESULT WINAPI Block(DWORD dwBlockFlags,HANDLE hEvent) = 0;
8179  };
8180#else
8181  typedef struct IPinFlowControlVtbl {
8182    BEGIN_INTERFACE
8183      HRESULT (WINAPI *QueryInterface)(IPinFlowControl *This,REFIID riid,void **ppvObject);
8184      ULONG (WINAPI *AddRef)(IPinFlowControl *This);
8185      ULONG (WINAPI *Release)(IPinFlowControl *This);
8186      HRESULT (WINAPI *Block)(IPinFlowControl *This,DWORD dwBlockFlags,HANDLE hEvent);
8187    END_INTERFACE
8188  } IPinFlowControlVtbl;
8189  struct IPinFlowControl {
8190    CONST_VTBL struct IPinFlowControlVtbl *lpVtbl;
8191  };
8192#ifdef COBJMACROS
8193#define IPinFlowControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8194#define IPinFlowControl_AddRef(This) (This)->lpVtbl->AddRef(This)
8195#define IPinFlowControl_Release(This) (This)->lpVtbl->Release(This)
8196#define IPinFlowControl_Block(This,dwBlockFlags,hEvent) (This)->lpVtbl->Block(This,dwBlockFlags,hEvent)
8197#endif
8198#endif
8199  HRESULT WINAPI IPinFlowControl_Block_Proxy(IPinFlowControl *This,DWORD dwBlockFlags,HANDLE hEvent);
8200  void __RPC_STUB IPinFlowControl_Block_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8201#endif
8202
8203  enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS {
8204    AM_PIN_FLOW_CONTROL_BLOCK = 0x1
8205  };
8206  typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS {
8207    AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x1,AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x2,
8208    AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x4
8209  } AM_GRAPH_CONFIG_RECONNECT_FLAGS;
8210
8211  enum _REM_FILTER_FLAGS {
8212    REMFILTERF_LEAVECONNECTED = 0x1
8213  };
8214
8215  typedef enum _AM_FILTER_FLAGS {
8216    AM_FILTER_FLAGS_REMOVABLE = 0x1
8217  } AM_FILTER_FLAGS;
8218
8219  extern RPC_IF_HANDLE __MIDL_itf_strmif_0394_v0_0_c_ifspec;
8220  extern RPC_IF_HANDLE __MIDL_itf_strmif_0394_v0_0_s_ifspec;
8221#ifndef __IGraphConfig_INTERFACE_DEFINED__
8222#define __IGraphConfig_INTERFACE_DEFINED__
8223  EXTERN_C const IID IID_IGraphConfig;
8224#if defined(__cplusplus) && !defined(CINTERFACE)
8225  struct IGraphConfig : public IUnknown {
8226  public:
8227    virtual HRESULT WINAPI Reconnect(IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags) = 0;
8228    virtual HRESULT WINAPI Reconfigure(IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent) = 0;
8229    virtual HRESULT WINAPI AddFilterToCache(IBaseFilter *pFilter) = 0;
8230    virtual HRESULT WINAPI EnumCacheFilter(IEnumFilters **pEnum) = 0;
8231    virtual HRESULT WINAPI RemoveFilterFromCache(IBaseFilter *pFilter) = 0;
8232    virtual HRESULT WINAPI GetStartTime(REFERENCE_TIME *prtStart) = 0;
8233    virtual HRESULT WINAPI PushThroughData(IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort) = 0;
8234    virtual HRESULT WINAPI SetFilterFlags(IBaseFilter *pFilter,DWORD dwFlags) = 0;
8235    virtual HRESULT WINAPI GetFilterFlags(IBaseFilter *pFilter,DWORD *pdwFlags) = 0;
8236    virtual HRESULT WINAPI RemoveFilterEx(IBaseFilter *pFilter,DWORD Flags) = 0;
8237  };
8238#else
8239  typedef struct IGraphConfigVtbl {
8240    BEGIN_INTERFACE
8241      HRESULT (WINAPI *QueryInterface)(IGraphConfig *This,REFIID riid,void **ppvObject);
8242      ULONG (WINAPI *AddRef)(IGraphConfig *This);
8243      ULONG (WINAPI *Release)(IGraphConfig *This);
8244      HRESULT (WINAPI *Reconnect)(IGraphConfig *This,IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags);
8245      HRESULT (WINAPI *Reconfigure)(IGraphConfig *This,IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent);
8246      HRESULT (WINAPI *AddFilterToCache)(IGraphConfig *This,IBaseFilter *pFilter);
8247      HRESULT (WINAPI *EnumCacheFilter)(IGraphConfig *This,IEnumFilters **pEnum);
8248      HRESULT (WINAPI *RemoveFilterFromCache)(IGraphConfig *This,IBaseFilter *pFilter);
8249      HRESULT (WINAPI *GetStartTime)(IGraphConfig *This,REFERENCE_TIME *prtStart);
8250      HRESULT (WINAPI *PushThroughData)(IGraphConfig *This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort);
8251      HRESULT (WINAPI *SetFilterFlags)(IGraphConfig *This,IBaseFilter *pFilter,DWORD dwFlags);
8252      HRESULT (WINAPI *GetFilterFlags)(IGraphConfig *This,IBaseFilter *pFilter,DWORD *pdwFlags);
8253      HRESULT (WINAPI *RemoveFilterEx)(IGraphConfig *This,IBaseFilter *pFilter,DWORD Flags);
8254    END_INTERFACE
8255  } IGraphConfigVtbl;
8256  struct IGraphConfig {
8257    CONST_VTBL struct IGraphConfigVtbl *lpVtbl;
8258  };
8259#ifdef COBJMACROS
8260#define IGraphConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8261#define IGraphConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
8262#define IGraphConfig_Release(This) (This)->lpVtbl->Release(This)
8263#define IGraphConfig_Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags) (This)->lpVtbl->Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags)
8264#define IGraphConfig_Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent) (This)->lpVtbl->Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent)
8265#define IGraphConfig_AddFilterToCache(This,pFilter) (This)->lpVtbl->AddFilterToCache(This,pFilter)
8266#define IGraphConfig_EnumCacheFilter(This,pEnum) (This)->lpVtbl->EnumCacheFilter(This,pEnum)
8267#define IGraphConfig_RemoveFilterFromCache(This,pFilter) (This)->lpVtbl->RemoveFilterFromCache(This,pFilter)
8268#define IGraphConfig_GetStartTime(This,prtStart) (This)->lpVtbl->GetStartTime(This,prtStart)
8269#define IGraphConfig_PushThroughData(This,pOutputPin,pConnection,hEventAbort) (This)->lpVtbl->PushThroughData(This,pOutputPin,pConnection,hEventAbort)
8270#define IGraphConfig_SetFilterFlags(This,pFilter,dwFlags) (This)->lpVtbl->SetFilterFlags(This,pFilter,dwFlags)
8271#define IGraphConfig_GetFilterFlags(This,pFilter,pdwFlags) (This)->lpVtbl->GetFilterFlags(This,pFilter,pdwFlags)
8272#define IGraphConfig_RemoveFilterEx(This,pFilter,Flags) (This)->lpVtbl->RemoveFilterEx(This,pFilter,Flags)
8273#endif
8274#endif
8275  HRESULT WINAPI IGraphConfig_Reconnect_Proxy(IGraphConfig *This,IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags);
8276  void __RPC_STUB IGraphConfig_Reconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8277  HRESULT WINAPI IGraphConfig_Reconfigure_Proxy(IGraphConfig *This,IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent);
8278  void __RPC_STUB IGraphConfig_Reconfigure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8279  HRESULT WINAPI IGraphConfig_AddFilterToCache_Proxy(IGraphConfig *This,IBaseFilter *pFilter);
8280  void __RPC_STUB IGraphConfig_AddFilterToCache_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8281  HRESULT WINAPI IGraphConfig_EnumCacheFilter_Proxy(IGraphConfig *This,IEnumFilters **pEnum);
8282  void __RPC_STUB IGraphConfig_EnumCacheFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8283  HRESULT WINAPI IGraphConfig_RemoveFilterFromCache_Proxy(IGraphConfig *This,IBaseFilter *pFilter);
8284  void __RPC_STUB IGraphConfig_RemoveFilterFromCache_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8285  HRESULT WINAPI IGraphConfig_GetStartTime_Proxy(IGraphConfig *This,REFERENCE_TIME *prtStart);
8286  void __RPC_STUB IGraphConfig_GetStartTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8287  HRESULT WINAPI IGraphConfig_PushThroughData_Proxy(IGraphConfig *This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort);
8288  void __RPC_STUB IGraphConfig_PushThroughData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8289  HRESULT WINAPI IGraphConfig_SetFilterFlags_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD dwFlags);
8290  void __RPC_STUB IGraphConfig_SetFilterFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8291  HRESULT WINAPI IGraphConfig_GetFilterFlags_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD *pdwFlags);
8292  void __RPC_STUB IGraphConfig_GetFilterFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8293  HRESULT WINAPI IGraphConfig_RemoveFilterEx_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD Flags);
8294  void __RPC_STUB IGraphConfig_RemoveFilterEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8295#endif
8296
8297#ifndef __IGraphConfigCallback_INTERFACE_DEFINED__
8298#define __IGraphConfigCallback_INTERFACE_DEFINED__
8299  EXTERN_C const IID IID_IGraphConfigCallback;
8300#if defined(__cplusplus) && !defined(CINTERFACE)
8301  struct IGraphConfigCallback : public IUnknown {
8302  public:
8303    virtual HRESULT WINAPI Reconfigure(PVOID pvContext,DWORD dwFlags) = 0;
8304  };
8305#else
8306  typedef struct IGraphConfigCallbackVtbl {
8307    BEGIN_INTERFACE
8308      HRESULT (WINAPI *QueryInterface)(IGraphConfigCallback *This,REFIID riid,void **ppvObject);
8309      ULONG (WINAPI *AddRef)(IGraphConfigCallback *This);
8310      ULONG (WINAPI *Release)(IGraphConfigCallback *This);
8311      HRESULT (WINAPI *Reconfigure)(IGraphConfigCallback *This,PVOID pvContext,DWORD dwFlags);
8312    END_INTERFACE
8313  } IGraphConfigCallbackVtbl;
8314  struct IGraphConfigCallback {
8315    CONST_VTBL struct IGraphConfigCallbackVtbl *lpVtbl;
8316  };
8317#ifdef COBJMACROS
8318#define IGraphConfigCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8319#define IGraphConfigCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
8320#define IGraphConfigCallback_Release(This) (This)->lpVtbl->Release(This)
8321#define IGraphConfigCallback_Reconfigure(This,pvContext,dwFlags) (This)->lpVtbl->Reconfigure(This,pvContext,dwFlags)
8322#endif
8323#endif
8324  HRESULT WINAPI IGraphConfigCallback_Reconfigure_Proxy(IGraphConfigCallback *This,PVOID pvContext,DWORD dwFlags);
8325  void __RPC_STUB IGraphConfigCallback_Reconfigure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8326#endif
8327
8328#ifndef __IFilterChain_INTERFACE_DEFINED__
8329#define __IFilterChain_INTERFACE_DEFINED__
8330  EXTERN_C const IID IID_IFilterChain;
8331#if defined(__cplusplus) && !defined(CINTERFACE)
8332  struct IFilterChain : public IUnknown {
8333  public:
8334    virtual HRESULT WINAPI StartChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
8335    virtual HRESULT WINAPI PauseChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
8336    virtual HRESULT WINAPI StopChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
8337    virtual HRESULT WINAPI RemoveChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
8338  };
8339#else
8340  typedef struct IFilterChainVtbl {
8341    BEGIN_INTERFACE
8342      HRESULT (WINAPI *QueryInterface)(IFilterChain *This,REFIID riid,void **ppvObject);
8343      ULONG (WINAPI *AddRef)(IFilterChain *This);
8344      ULONG (WINAPI *Release)(IFilterChain *This);
8345      HRESULT (WINAPI *StartChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
8346      HRESULT (WINAPI *PauseChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
8347      HRESULT (WINAPI *StopChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
8348      HRESULT (WINAPI *RemoveChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
8349    END_INTERFACE
8350  } IFilterChainVtbl;
8351  struct IFilterChain {
8352    CONST_VTBL struct IFilterChainVtbl *lpVtbl;
8353  };
8354#ifdef COBJMACROS
8355#define IFilterChain_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8356#define IFilterChain_AddRef(This) (This)->lpVtbl->AddRef(This)
8357#define IFilterChain_Release(This) (This)->lpVtbl->Release(This)
8358#define IFilterChain_StartChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StartChain(This,pStartFilter,pEndFilter)
8359#define IFilterChain_PauseChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->PauseChain(This,pStartFilter,pEndFilter)
8360#define IFilterChain_StopChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StopChain(This,pStartFilter,pEndFilter)
8361#define IFilterChain_RemoveChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->RemoveChain(This,pStartFilter,pEndFilter)
8362#endif
8363#endif
8364  HRESULT WINAPI IFilterChain_StartChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
8365  void __RPC_STUB IFilterChain_StartChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8366  HRESULT WINAPI IFilterChain_PauseChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
8367  void __RPC_STUB IFilterChain_PauseChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8368  HRESULT WINAPI IFilterChain_StopChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
8369  void __RPC_STUB IFilterChain_StopChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8370  HRESULT WINAPI IFilterChain_RemoveChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
8371  void __RPC_STUB IFilterChain_RemoveChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8372#endif
8373
8374#ifdef MINGW_HAS_DDRAW_H
8375#include <dshow/ddraw.h>
8376#endif
8377
8378  typedef enum __MIDL___MIDL_itf_strmif_0397_0002 {
8379    VMRSample_SyncPoint = 0x1,VMRSample_Preroll = 0x2,VMRSample_Discontinuity = 0x4,VMRSample_TimeValid = 0x8,VMRSample_SrcDstRectsValid = 0x10
8380  } VMRPresentationFlags;
8381
8382  typedef struct tagVMRPRESENTATIONINFO {
8383    DWORD dwFlags;
8384    LPDIRECTDRAWSURFACE7 lpSurf;
8385    REFERENCE_TIME rtStart;
8386    REFERENCE_TIME rtEnd;
8387    SIZE szAspectRatio;
8388    RECT rcSrc;
8389    RECT rcDst;
8390    DWORD dwTypeSpecificFlags;
8391    DWORD dwInterlaceFlags;
8392  } VMRPRESENTATIONINFO;
8393
8394  extern RPC_IF_HANDLE __MIDL_itf_strmif_0397_v0_0_c_ifspec;
8395  extern RPC_IF_HANDLE __MIDL_itf_strmif_0397_v0_0_s_ifspec;
8396#ifndef __IVMRImagePresenter_INTERFACE_DEFINED__
8397#define __IVMRImagePresenter_INTERFACE_DEFINED__
8398  EXTERN_C const IID IID_IVMRImagePresenter;
8399#if defined(__cplusplus) && !defined(CINTERFACE)
8400  struct IVMRImagePresenter : public IUnknown {
8401  public:
8402    virtual HRESULT WINAPI StartPresenting(DWORD_PTR dwUserID) = 0;
8403    virtual HRESULT WINAPI StopPresenting(DWORD_PTR dwUserID) = 0;
8404    virtual HRESULT WINAPI PresentImage(DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo) = 0;
8405  };
8406#else
8407  typedef struct IVMRImagePresenterVtbl {
8408    BEGIN_INTERFACE
8409      HRESULT (WINAPI *QueryInterface)(IVMRImagePresenter *This,REFIID riid,void **ppvObject);
8410      ULONG (WINAPI *AddRef)(IVMRImagePresenter *This);
8411      ULONG (WINAPI *Release)(IVMRImagePresenter *This);
8412      HRESULT (WINAPI *StartPresenting)(IVMRImagePresenter *This,DWORD_PTR dwUserID);
8413      HRESULT (WINAPI *StopPresenting)(IVMRImagePresenter *This,DWORD_PTR dwUserID);
8414      HRESULT (WINAPI *PresentImage)(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
8415    END_INTERFACE
8416  } IVMRImagePresenterVtbl;
8417  struct IVMRImagePresenter {
8418    CONST_VTBL struct IVMRImagePresenterVtbl *lpVtbl;
8419  };
8420#ifdef COBJMACROS
8421#define IVMRImagePresenter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8422#define IVMRImagePresenter_AddRef(This) (This)->lpVtbl->AddRef(This)
8423#define IVMRImagePresenter_Release(This) (This)->lpVtbl->Release(This)
8424#define IVMRImagePresenter_StartPresenting(This,dwUserID) (This)->lpVtbl->StartPresenting(This,dwUserID)
8425#define IVMRImagePresenter_StopPresenting(This,dwUserID) (This)->lpVtbl->StopPresenting(This,dwUserID)
8426#define IVMRImagePresenter_PresentImage(This,dwUserID,lpPresInfo) (This)->lpVtbl->PresentImage(This,dwUserID,lpPresInfo)
8427#endif
8428#endif
8429  HRESULT WINAPI IVMRImagePresenter_StartPresenting_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID);
8430  void __RPC_STUB IVMRImagePresenter_StartPresenting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8431  HRESULT WINAPI IVMRImagePresenter_StopPresenting_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID);
8432  void __RPC_STUB IVMRImagePresenter_StopPresenting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8433  HRESULT WINAPI IVMRImagePresenter_PresentImage_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
8434  void __RPC_STUB IVMRImagePresenter_PresentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8435#endif
8436
8437  typedef enum __MIDL___MIDL_itf_strmif_0398_0001 {
8438    AMAP_PIXELFORMAT_VALID = 0x1,AMAP_3D_TARGET = 0x2,AMAP_ALLOW_SYSMEM = 0x4,AMAP_FORCE_SYSMEM = 0x8,AMAP_DIRECTED_FLIP = 0x10,AMAP_DXVA_TARGET = 0x20
8439  } VMRSurfaceAllocationFlags;
8440
8441  typedef struct tagVMRALLOCATIONINFO {
8442    DWORD dwFlags;
8443    LPBITMAPINFOHEADER lpHdr;
8444    LPDDPIXELFORMAT lpPixFmt;
8445    SIZE szAspectRatio;
8446    DWORD dwMinBuffers;
8447    DWORD dwMaxBuffers;
8448    DWORD dwInterlaceFlags;
8449    SIZE szNativeSize;
8450  } VMRALLOCATIONINFO;
8451
8452  extern RPC_IF_HANDLE __MIDL_itf_strmif_0398_v0_0_c_ifspec;
8453  extern RPC_IF_HANDLE __MIDL_itf_strmif_0398_v0_0_s_ifspec;
8454#ifndef __IVMRSurfaceAllocator_INTERFACE_DEFINED__
8455#define __IVMRSurfaceAllocator_INTERFACE_DEFINED__
8456  EXTERN_C const IID IID_IVMRSurfaceAllocator;
8457#if defined(__cplusplus) && !defined(CINTERFACE)
8458  struct IVMRSurfaceAllocator : public IUnknown {
8459  public:
8460    virtual HRESULT WINAPI AllocateSurface(DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface) = 0;
8461    virtual HRESULT WINAPI FreeSurface(DWORD_PTR dwID) = 0;
8462    virtual HRESULT WINAPI PrepareSurface(DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags) = 0;
8463    virtual HRESULT WINAPI AdviseNotify(IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify) = 0;
8464  };
8465#else
8466  typedef struct IVMRSurfaceAllocatorVtbl {
8467    BEGIN_INTERFACE
8468      HRESULT (WINAPI *QueryInterface)(IVMRSurfaceAllocator *This,REFIID riid,void **ppvObject);
8469      ULONG (WINAPI *AddRef)(IVMRSurfaceAllocator *This);
8470      ULONG (WINAPI *Release)(IVMRSurfaceAllocator *This);
8471      HRESULT (WINAPI *AllocateSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface);
8472      HRESULT (WINAPI *FreeSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwID);
8473      HRESULT (WINAPI *PrepareSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags);
8474      HRESULT (WINAPI *AdviseNotify)(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
8475    END_INTERFACE
8476  } IVMRSurfaceAllocatorVtbl;
8477  struct IVMRSurfaceAllocator {
8478    CONST_VTBL struct IVMRSurfaceAllocatorVtbl *lpVtbl;
8479  };
8480#ifdef COBJMACROS
8481#define IVMRSurfaceAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8482#define IVMRSurfaceAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
8483#define IVMRSurfaceAllocator_Release(This) (This)->lpVtbl->Release(This)
8484#define IVMRSurfaceAllocator_AllocateSurface(This,dwUserID,lpAllocInfo,lpdwActualBuffers,lplpSurface) (This)->lpVtbl->AllocateSurface(This,dwUserID,lpAllocInfo,lpdwActualBuffers,lplpSurface)
8485#define IVMRSurfaceAllocator_FreeSurface(This,dwID) (This)->lpVtbl->FreeSurface(This,dwID)
8486#define IVMRSurfaceAllocator_PrepareSurface(This,dwUserID,lpSurface,dwSurfaceFlags) (This)->lpVtbl->PrepareSurface(This,dwUserID,lpSurface,dwSurfaceFlags)
8487#define IVMRSurfaceAllocator_AdviseNotify(This,lpIVMRSurfAllocNotify) (This)->lpVtbl->AdviseNotify(This,lpIVMRSurfAllocNotify)
8488#endif
8489#endif
8490  HRESULT WINAPI IVMRSurfaceAllocator_AllocateSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface);
8491  void __RPC_STUB IVMRSurfaceAllocator_AllocateSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8492  HRESULT WINAPI IVMRSurfaceAllocator_FreeSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwID);
8493  void __RPC_STUB IVMRSurfaceAllocator_FreeSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8494  HRESULT WINAPI IVMRSurfaceAllocator_PrepareSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags);
8495  void __RPC_STUB IVMRSurfaceAllocator_PrepareSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8496  HRESULT WINAPI IVMRSurfaceAllocator_AdviseNotify_Proxy(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
8497  void __RPC_STUB IVMRSurfaceAllocator_AdviseNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8498#endif
8499
8500#ifndef __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__
8501#define __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__
8502  EXTERN_C const IID IID_IVMRSurfaceAllocatorNotify;
8503#if defined(__cplusplus) && !defined(CINTERFACE)
8504  struct IVMRSurfaceAllocatorNotify : public IUnknown {
8505  public:
8506    virtual HRESULT WINAPI AdviseSurfaceAllocator(DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator) = 0;
8507    virtual HRESULT WINAPI SetDDrawDevice(LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor) = 0;
8508    virtual HRESULT WINAPI ChangeDDrawDevice(LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor) = 0;
8509    virtual HRESULT WINAPI RestoreDDrawSurfaces(void) = 0;
8510    virtual HRESULT WINAPI NotifyEvent(LONG EventCode,LONG_PTR Param1,LONG_PTR Param2) = 0;
8511    virtual HRESULT WINAPI SetBorderColor(COLORREF clrBorder) = 0;
8512  };
8513#else
8514  typedef struct IVMRSurfaceAllocatorNotifyVtbl {
8515    BEGIN_INTERFACE
8516      HRESULT (WINAPI *QueryInterface)(IVMRSurfaceAllocatorNotify *This,REFIID riid,void **ppvObject);
8517      ULONG (WINAPI *AddRef)(IVMRSurfaceAllocatorNotify *This);
8518      ULONG (WINAPI *Release)(IVMRSurfaceAllocatorNotify *This);
8519      HRESULT (WINAPI *AdviseSurfaceAllocator)(IVMRSurfaceAllocatorNotify *This,DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator);
8520      HRESULT (WINAPI *SetDDrawDevice)(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
8521      HRESULT (WINAPI *ChangeDDrawDevice)(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
8522      HRESULT (WINAPI *RestoreDDrawSurfaces)(IVMRSurfaceAllocatorNotify *This);
8523      HRESULT (WINAPI *NotifyEvent)(IVMRSurfaceAllocatorNotify *This,LONG EventCode,LONG_PTR Param1,LONG_PTR Param2);
8524      HRESULT (WINAPI *SetBorderColor)(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
8525    END_INTERFACE
8526  } IVMRSurfaceAllocatorNotifyVtbl;
8527  struct IVMRSurfaceAllocatorNotify {
8528    CONST_VTBL struct IVMRSurfaceAllocatorNotifyVtbl *lpVtbl;
8529  };
8530#ifdef COBJMACROS
8531#define IVMRSurfaceAllocatorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8532#define IVMRSurfaceAllocatorNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
8533#define IVMRSurfaceAllocatorNotify_Release(This) (This)->lpVtbl->Release(This)
8534#define IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator) (This)->lpVtbl->AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator)
8535#define IVMRSurfaceAllocatorNotify_SetDDrawDevice(This,lpDDrawDevice,hMonitor) (This)->lpVtbl->SetDDrawDevice(This,lpDDrawDevice,hMonitor)
8536#define IVMRSurfaceAllocatorNotify_ChangeDDrawDevice(This,lpDDrawDevice,hMonitor) (This)->lpVtbl->ChangeDDrawDevice(This,lpDDrawDevice,hMonitor)
8537#define IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces(This) (This)->lpVtbl->RestoreDDrawSurfaces(This)
8538#define IVMRSurfaceAllocatorNotify_NotifyEvent(This,EventCode,Param1,Param2) (This)->lpVtbl->NotifyEvent(This,EventCode,Param1,Param2)
8539#define IVMRSurfaceAllocatorNotify_SetBorderColor(This,clrBorder) (This)->lpVtbl->SetBorderColor(This,clrBorder)
8540#endif
8541#endif
8542  HRESULT WINAPI IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator_Proxy(IVMRSurfaceAllocatorNotify *This,DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator);
8543  void __RPC_STUB IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8544  HRESULT WINAPI IVMRSurfaceAllocatorNotify_SetDDrawDevice_Proxy(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
8545  void __RPC_STUB IVMRSurfaceAllocatorNotify_SetDDrawDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8546  HRESULT WINAPI IVMRSurfaceAllocatorNotify_ChangeDDrawDevice_Proxy(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
8547  void __RPC_STUB IVMRSurfaceAllocatorNotify_ChangeDDrawDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8548  HRESULT WINAPI IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces_Proxy(IVMRSurfaceAllocatorNotify *This);
8549  void __RPC_STUB IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8550  HRESULT WINAPI IVMRSurfaceAllocatorNotify_NotifyEvent_Proxy(IVMRSurfaceAllocatorNotify *This,LONG EventCode,LONG_PTR Param1,LONG_PTR Param2);
8551  void __RPC_STUB IVMRSurfaceAllocatorNotify_NotifyEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8552  HRESULT WINAPI IVMRSurfaceAllocatorNotify_SetBorderColor_Proxy(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
8553  void __RPC_STUB IVMRSurfaceAllocatorNotify_SetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8554#endif
8555
8556  typedef enum __MIDL___MIDL_itf_strmif_0400_0001 {
8557    VMR_ARMODE_NONE = 0,VMR_ARMODE_LETTER_BOX = VMR_ARMODE_NONE + 1
8558  } VMR_ASPECT_RATIO_MODE;
8559
8560  extern RPC_IF_HANDLE __MIDL_itf_strmif_0400_v0_0_c_ifspec;
8561  extern RPC_IF_HANDLE __MIDL_itf_strmif_0400_v0_0_s_ifspec;
8562#ifndef __IVMRWindowlessControl_INTERFACE_DEFINED__
8563#define __IVMRWindowlessControl_INTERFACE_DEFINED__
8564  EXTERN_C const IID IID_IVMRWindowlessControl;
8565#if defined(__cplusplus) && !defined(CINTERFACE)
8566  struct IVMRWindowlessControl : public IUnknown {
8567  public:
8568    virtual HRESULT WINAPI GetNativeVideoSize(LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight) = 0;
8569    virtual HRESULT WINAPI GetMinIdealVideoSize(LONG *lpWidth,LONG *lpHeight) = 0;
8570    virtual HRESULT WINAPI GetMaxIdealVideoSize(LONG *lpWidth,LONG *lpHeight) = 0;
8571    virtual HRESULT WINAPI SetVideoPosition(const LPRECT lpSRCRect,const LPRECT lpDSTRect) = 0;
8572    virtual HRESULT WINAPI GetVideoPosition(LPRECT lpSRCRect,LPRECT lpDSTRect) = 0;
8573    virtual HRESULT WINAPI GetAspectRatioMode(DWORD *lpAspectRatioMode) = 0;
8574    virtual HRESULT WINAPI SetAspectRatioMode(DWORD AspectRatioMode) = 0;
8575    virtual HRESULT WINAPI SetVideoClippingWindow(HWND hwnd) = 0;
8576    virtual HRESULT WINAPI RepaintVideo(HWND hwnd,HDC hdc) = 0;
8577    virtual HRESULT WINAPI DisplayModeChanged(void) = 0;
8578    virtual HRESULT WINAPI GetCurrentImage(BYTE **lpDib) = 0;
8579    virtual HRESULT WINAPI SetBorderColor(COLORREF Clr) = 0;
8580    virtual HRESULT WINAPI GetBorderColor(COLORREF *lpClr) = 0;
8581    virtual HRESULT WINAPI SetColorKey(COLORREF Clr) = 0;
8582    virtual HRESULT WINAPI GetColorKey(COLORREF *lpClr) = 0;
8583  };
8584#else
8585  typedef struct IVMRWindowlessControlVtbl {
8586    BEGIN_INTERFACE
8587      HRESULT (WINAPI *QueryInterface)(IVMRWindowlessControl *This,REFIID riid,void **ppvObject);
8588      ULONG (WINAPI *AddRef)(IVMRWindowlessControl *This);
8589      ULONG (WINAPI *Release)(IVMRWindowlessControl *This);
8590      HRESULT (WINAPI *GetNativeVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight);
8591      HRESULT (WINAPI *GetMinIdealVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
8592      HRESULT (WINAPI *GetMaxIdealVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
8593      HRESULT (WINAPI *SetVideoPosition)(IVMRWindowlessControl *This,const LPRECT lpSRCRect,const LPRECT lpDSTRect);
8594      HRESULT (WINAPI *GetVideoPosition)(IVMRWindowlessControl *This,LPRECT lpSRCRect,LPRECT lpDSTRect);
8595      HRESULT (WINAPI *GetAspectRatioMode)(IVMRWindowlessControl *This,DWORD *lpAspectRatioMode);
8596      HRESULT (WINAPI *SetAspectRatioMode)(IVMRWindowlessControl *This,DWORD AspectRatioMode);
8597      HRESULT (WINAPI *SetVideoClippingWindow)(IVMRWindowlessControl *This,HWND hwnd);
8598      HRESULT (WINAPI *RepaintVideo)(IVMRWindowlessControl *This,HWND hwnd,HDC hdc);
8599      HRESULT (WINAPI *DisplayModeChanged)(IVMRWindowlessControl *This);
8600      HRESULT (WINAPI *GetCurrentImage)(IVMRWindowlessControl *This,BYTE **lpDib);
8601      HRESULT (WINAPI *SetBorderColor)(IVMRWindowlessControl *This,COLORREF Clr);
8602      HRESULT (WINAPI *GetBorderColor)(IVMRWindowlessControl *This,COLORREF *lpClr);
8603      HRESULT (WINAPI *SetColorKey)(IVMRWindowlessControl *This,COLORREF Clr);
8604      HRESULT (WINAPI *GetColorKey)(IVMRWindowlessControl *This,COLORREF *lpClr);
8605    END_INTERFACE
8606  } IVMRWindowlessControlVtbl;
8607  struct IVMRWindowlessControl {
8608    CONST_VTBL struct IVMRWindowlessControlVtbl *lpVtbl;
8609  };
8610#ifdef COBJMACROS
8611#define IVMRWindowlessControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8612#define IVMRWindowlessControl_AddRef(This) (This)->lpVtbl->AddRef(This)
8613#define IVMRWindowlessControl_Release(This) (This)->lpVtbl->Release(This)
8614#define IVMRWindowlessControl_GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight) (This)->lpVtbl->GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight)
8615#define IVMRWindowlessControl_GetMinIdealVideoSize(This,lpWidth,lpHeight) (This)->lpVtbl->GetMinIdealVideoSize(This,lpWidth,lpHeight)
8616#define IVMRWindowlessControl_GetMaxIdealVideoSize(This,lpWidth,lpHeight) (This)->lpVtbl->GetMaxIdealVideoSize(This,lpWidth,lpHeight)
8617#define IVMRWindowlessControl_SetVideoPosition(This,lpSRCRect,lpDSTRect) (This)->lpVtbl->SetVideoPosition(This,lpSRCRect,lpDSTRect)
8618#define IVMRWindowlessControl_GetVideoPosition(This,lpSRCRect,lpDSTRect) (This)->lpVtbl->GetVideoPosition(This,lpSRCRect,lpDSTRect)
8619#define IVMRWindowlessControl_GetAspectRatioMode(This,lpAspectRatioMode) (This)->lpVtbl->GetAspectRatioMode(This,lpAspectRatioMode)
8620#define IVMRWindowlessControl_SetAspectRatioMode(This,AspectRatioMode) (This)->lpVtbl->SetAspectRatioMode(This,AspectRatioMode)
8621#define IVMRWindowlessControl_SetVideoClippingWindow(This,hwnd) (This)->lpVtbl->SetVideoClippingWindow(This,hwnd)
8622#define IVMRWindowlessControl_RepaintVideo(This,hwnd,hdc) (This)->lpVtbl->RepaintVideo(This,hwnd,hdc)
8623#define IVMRWindowlessControl_DisplayModeChanged(This) (This)->lpVtbl->DisplayModeChanged(This)
8624#define IVMRWindowlessControl_GetCurrentImage(This,lpDib) (This)->lpVtbl->GetCurrentImage(This,lpDib)
8625#define IVMRWindowlessControl_SetBorderColor(This,Clr) (This)->lpVtbl->SetBorderColor(This,Clr)
8626#define IVMRWindowlessControl_GetBorderColor(This,lpClr) (This)->lpVtbl->GetBorderColor(This,lpClr)
8627#define IVMRWindowlessControl_SetColorKey(This,Clr) (This)->lpVtbl->SetColorKey(This,Clr)
8628#define IVMRWindowlessControl_GetColorKey(This,lpClr) (This)->lpVtbl->GetColorKey(This,lpClr)
8629#endif
8630#endif
8631  HRESULT WINAPI IVMRWindowlessControl_GetNativeVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight);
8632  void __RPC_STUB IVMRWindowlessControl_GetNativeVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8633  HRESULT WINAPI IVMRWindowlessControl_GetMinIdealVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
8634  void __RPC_STUB IVMRWindowlessControl_GetMinIdealVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8635  HRESULT WINAPI IVMRWindowlessControl_GetMaxIdealVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
8636  void __RPC_STUB IVMRWindowlessControl_GetMaxIdealVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8637  HRESULT WINAPI IVMRWindowlessControl_SetVideoPosition_Proxy(IVMRWindowlessControl *This,const LPRECT lpSRCRect,const LPRECT lpDSTRect);
8638  void __RPC_STUB IVMRWindowlessControl_SetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8639  HRESULT WINAPI IVMRWindowlessControl_GetVideoPosition_Proxy(IVMRWindowlessControl *This,LPRECT lpSRCRect,LPRECT lpDSTRect);
8640  void __RPC_STUB IVMRWindowlessControl_GetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8641  HRESULT WINAPI IVMRWindowlessControl_GetAspectRatioMode_Proxy(IVMRWindowlessControl *This,DWORD *lpAspectRatioMode);
8642  void __RPC_STUB IVMRWindowlessControl_GetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8643  HRESULT WINAPI IVMRWindowlessControl_SetAspectRatioMode_Proxy(IVMRWindowlessControl *This,DWORD AspectRatioMode);
8644  void __RPC_STUB IVMRWindowlessControl_SetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8645  HRESULT WINAPI IVMRWindowlessControl_SetVideoClippingWindow_Proxy(IVMRWindowlessControl *This,HWND hwnd);
8646  void __RPC_STUB IVMRWindowlessControl_SetVideoClippingWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8647  HRESULT WINAPI IVMRWindowlessControl_RepaintVideo_Proxy(IVMRWindowlessControl *This,HWND hwnd,HDC hdc);
8648  void __RPC_STUB IVMRWindowlessControl_RepaintVideo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8649  HRESULT WINAPI IVMRWindowlessControl_DisplayModeChanged_Proxy(IVMRWindowlessControl *This);
8650  void __RPC_STUB IVMRWindowlessControl_DisplayModeChanged_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8651  HRESULT WINAPI IVMRWindowlessControl_GetCurrentImage_Proxy(IVMRWindowlessControl *This,BYTE **lpDib);
8652  void __RPC_STUB IVMRWindowlessControl_GetCurrentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8653  HRESULT WINAPI IVMRWindowlessControl_SetBorderColor_Proxy(IVMRWindowlessControl *This,COLORREF Clr);
8654  void __RPC_STUB IVMRWindowlessControl_SetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8655  HRESULT WINAPI IVMRWindowlessControl_GetBorderColor_Proxy(IVMRWindowlessControl *This,COLORREF *lpClr);
8656  void __RPC_STUB IVMRWindowlessControl_GetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8657  HRESULT WINAPI IVMRWindowlessControl_SetColorKey_Proxy(IVMRWindowlessControl *This,COLORREF Clr);
8658  void __RPC_STUB IVMRWindowlessControl_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8659  HRESULT WINAPI IVMRWindowlessControl_GetColorKey_Proxy(IVMRWindowlessControl *This,COLORREF *lpClr);
8660  void __RPC_STUB IVMRWindowlessControl_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8661#endif
8662
8663  typedef enum __MIDL___MIDL_itf_strmif_0401_0001 {
8664    MixerPref_NoDecimation = 0x1,MixerPref_DecimateOutput = 0x2,MixerPref_ARAdjustXorY = 0x4,MixerPref_DecimationReserved = 0x8,
8665    MixerPref_DecimateMask = 0xf,MixerPref_BiLinearFiltering = 0x10,MixerPref_PointFiltering = 0x20,MixerPref_FilteringMask = 0xf0,
8666    MixerPref_RenderTargetRGB = 0x100,MixerPref_RenderTargetYUV = 0x1000,MixerPref_RenderTargetYUV420 = 0x200,MixerPref_RenderTargetYUV422 = 0x400,
8667    MixerPref_RenderTargetYUV444 = 0x800,MixerPref_RenderTargetReserved = 0xe000,MixerPref_RenderTargetMask = 0xff00,
8668    MixerPref_DynamicSwitchToBOB = 0x10000,MixerPref_DynamicDecimateBy2 = 0x20000,MixerPref_DynamicReserved = 0xc0000,
8669    MixerPref_DynamicMask = 0xf0000
8670  } VMRMixerPrefs;
8671
8672  typedef struct _NORMALIZEDRECT {
8673    float left;
8674    float top;
8675    float right;
8676    float bottom;
8677  } NORMALIZEDRECT;
8678
8679  typedef struct _NORMALIZEDRECT *PNORMALIZEDRECT;
8680
8681  extern RPC_IF_HANDLE __MIDL_itf_strmif_0401_v0_0_c_ifspec;
8682  extern RPC_IF_HANDLE __MIDL_itf_strmif_0401_v0_0_s_ifspec;
8683#ifndef __IVMRMixerControl_INTERFACE_DEFINED__
8684#define __IVMRMixerControl_INTERFACE_DEFINED__
8685  EXTERN_C const IID IID_IVMRMixerControl;
8686#if defined(__cplusplus) && !defined(CINTERFACE)
8687  struct IVMRMixerControl : public IUnknown {
8688  public:
8689    virtual HRESULT WINAPI SetAlpha(DWORD dwStreamID,float Alpha) = 0;
8690    virtual HRESULT WINAPI GetAlpha(DWORD dwStreamID,float *pAlpha) = 0;
8691    virtual HRESULT WINAPI SetZOrder(DWORD dwStreamID,DWORD dwZ) = 0;
8692    virtual HRESULT WINAPI GetZOrder(DWORD dwStreamID,DWORD *pZ) = 0;
8693    virtual HRESULT WINAPI SetOutputRect(DWORD dwStreamID,const NORMALIZEDRECT *pRect) = 0;
8694    virtual HRESULT WINAPI GetOutputRect(DWORD dwStreamID,NORMALIZEDRECT *pRect) = 0;
8695    virtual HRESULT WINAPI SetBackgroundClr(COLORREF ClrBkg) = 0;
8696    virtual HRESULT WINAPI GetBackgroundClr(COLORREF *lpClrBkg) = 0;
8697    virtual HRESULT WINAPI SetMixingPrefs(DWORD dwMixerPrefs) = 0;
8698    virtual HRESULT WINAPI GetMixingPrefs(DWORD *pdwMixerPrefs) = 0;
8699  };
8700#else
8701  typedef struct IVMRMixerControlVtbl {
8702    BEGIN_INTERFACE
8703      HRESULT (WINAPI *QueryInterface)(IVMRMixerControl *This,REFIID riid,void **ppvObject);
8704      ULONG (WINAPI *AddRef)(IVMRMixerControl *This);
8705      ULONG (WINAPI *Release)(IVMRMixerControl *This);
8706      HRESULT (WINAPI *SetAlpha)(IVMRMixerControl *This,DWORD dwStreamID,float Alpha);
8707      HRESULT (WINAPI *GetAlpha)(IVMRMixerControl *This,DWORD dwStreamID,float *pAlpha);
8708      HRESULT (WINAPI *SetZOrder)(IVMRMixerControl *This,DWORD dwStreamID,DWORD dwZ);
8709      HRESULT (WINAPI *GetZOrder)(IVMRMixerControl *This,DWORD dwStreamID,DWORD *pZ);
8710      HRESULT (WINAPI *SetOutputRect)(IVMRMixerControl *This,DWORD dwStreamID,const NORMALIZEDRECT *pRect);
8711      HRESULT (WINAPI *GetOutputRect)(IVMRMixerControl *This,DWORD dwStreamID,NORMALIZEDRECT *pRect);
8712      HRESULT (WINAPI *SetBackgroundClr)(IVMRMixerControl *This,COLORREF ClrBkg);
8713      HRESULT (WINAPI *GetBackgroundClr)(IVMRMixerControl *This,COLORREF *lpClrBkg);
8714      HRESULT (WINAPI *SetMixingPrefs)(IVMRMixerControl *This,DWORD dwMixerPrefs);
8715      HRESULT (WINAPI *GetMixingPrefs)(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
8716    END_INTERFACE
8717  } IVMRMixerControlVtbl;
8718  struct IVMRMixerControl {
8719    CONST_VTBL struct IVMRMixerControlVtbl *lpVtbl;
8720  };
8721#ifdef COBJMACROS
8722#define IVMRMixerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8723#define IVMRMixerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
8724#define IVMRMixerControl_Release(This) (This)->lpVtbl->Release(This)
8725#define IVMRMixerControl_SetAlpha(This,dwStreamID,Alpha) (This)->lpVtbl->SetAlpha(This,dwStreamID,Alpha)
8726#define IVMRMixerControl_GetAlpha(This,dwStreamID,pAlpha) (This)->lpVtbl->GetAlpha(This,dwStreamID,pAlpha)
8727#define IVMRMixerControl_SetZOrder(This,dwStreamID,dwZ) (This)->lpVtbl->SetZOrder(This,dwStreamID,dwZ)
8728#define IVMRMixerControl_GetZOrder(This,dwStreamID,pZ) (This)->lpVtbl->GetZOrder(This,dwStreamID,pZ)
8729#define IVMRMixerControl_SetOutputRect(This,dwStreamID,pRect) (This)->lpVtbl->SetOutputRect(This,dwStreamID,pRect)
8730#define IVMRMixerControl_GetOutputRect(This,dwStreamID,pRect) (This)->lpVtbl->GetOutputRect(This,dwStreamID,pRect)
8731#define IVMRMixerControl_SetBackgroundClr(This,ClrBkg) (This)->lpVtbl->SetBackgroundClr(This,ClrBkg)
8732#define IVMRMixerControl_GetBackgroundClr(This,lpClrBkg) (This)->lpVtbl->GetBackgroundClr(This,lpClrBkg)
8733#define IVMRMixerControl_SetMixingPrefs(This,dwMixerPrefs) (This)->lpVtbl->SetMixingPrefs(This,dwMixerPrefs)
8734#define IVMRMixerControl_GetMixingPrefs(This,pdwMixerPrefs) (This)->lpVtbl->GetMixingPrefs(This,pdwMixerPrefs)
8735#endif
8736#endif
8737  HRESULT WINAPI IVMRMixerControl_SetAlpha_Proxy(IVMRMixerControl *This,DWORD dwStreamID,float Alpha);
8738  void __RPC_STUB IVMRMixerControl_SetAlpha_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8739  HRESULT WINAPI IVMRMixerControl_GetAlpha_Proxy(IVMRMixerControl *This,DWORD dwStreamID,float *pAlpha);
8740  void __RPC_STUB IVMRMixerControl_GetAlpha_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8741  HRESULT WINAPI IVMRMixerControl_SetZOrder_Proxy(IVMRMixerControl *This,DWORD dwStreamID,DWORD dwZ);
8742  void __RPC_STUB IVMRMixerControl_SetZOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8743  HRESULT WINAPI IVMRMixerControl_GetZOrder_Proxy(IVMRMixerControl *This,DWORD dwStreamID,DWORD *pZ);
8744  void __RPC_STUB IVMRMixerControl_GetZOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8745  HRESULT WINAPI IVMRMixerControl_SetOutputRect_Proxy(IVMRMixerControl *This,DWORD dwStreamID,const NORMALIZEDRECT *pRect);
8746  void __RPC_STUB IVMRMixerControl_SetOutputRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8747  HRESULT WINAPI IVMRMixerControl_GetOutputRect_Proxy(IVMRMixerControl *This,DWORD dwStreamID,NORMALIZEDRECT *pRect);
8748  void __RPC_STUB IVMRMixerControl_GetOutputRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8749  HRESULT WINAPI IVMRMixerControl_SetBackgroundClr_Proxy(IVMRMixerControl *This,COLORREF ClrBkg);
8750  void __RPC_STUB IVMRMixerControl_SetBackgroundClr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8751  HRESULT WINAPI IVMRMixerControl_GetBackgroundClr_Proxy(IVMRMixerControl *This,COLORREF *lpClrBkg);
8752  void __RPC_STUB IVMRMixerControl_GetBackgroundClr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8753  HRESULT WINAPI IVMRMixerControl_SetMixingPrefs_Proxy(IVMRMixerControl *This,DWORD dwMixerPrefs);
8754  void __RPC_STUB IVMRMixerControl_SetMixingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8755  HRESULT WINAPI IVMRMixerControl_GetMixingPrefs_Proxy(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
8756
8757  void __RPC_STUB IVMRMixerControl_GetMixingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8758#endif
8759
8760#ifdef __cplusplus
8761  typedef struct tagVMRGUID {
8762    ::GUID *pGUID;
8763    ::GUID GUID;
8764  } VMRGUID;
8765#else
8766  typedef struct tagVMRGUID {
8767    GUID *pGUID;
8768    GUID GUID;
8769  } VMRGUID;
8770#endif
8771
8772  typedef struct tagVMRMONITORINFO {
8773    VMRGUID guid;
8774    RECT rcMonitor;
8775    HMONITOR hMon;
8776    DWORD dwFlags;
8777    wchar_t szDevice[32];
8778    wchar_t szDescription[256];
8779    LARGE_INTEGER liDriverVersion;
8780    DWORD dwVendorId;
8781    DWORD dwDeviceId;
8782    DWORD dwSubSysId;
8783    DWORD dwRevision;
8784  } VMRMONITORINFO;
8785
8786  extern RPC_IF_HANDLE __MIDL_itf_strmif_0402_v0_0_c_ifspec;
8787  extern RPC_IF_HANDLE __MIDL_itf_strmif_0402_v0_0_s_ifspec;
8788#ifndef __IVMRMonitorConfig_INTERFACE_DEFINED__
8789#define __IVMRMonitorConfig_INTERFACE_DEFINED__
8790  EXTERN_C const IID IID_IVMRMonitorConfig;
8791#if defined(__cplusplus) && !defined(CINTERFACE)
8792  struct IVMRMonitorConfig : public IUnknown {
8793  public:
8794    virtual HRESULT WINAPI SetMonitor(const VMRGUID *pGUID) = 0;
8795    virtual HRESULT WINAPI GetMonitor(VMRGUID *pGUID) = 0;
8796    virtual HRESULT WINAPI SetDefaultMonitor(const VMRGUID *pGUID) = 0;
8797    virtual HRESULT WINAPI GetDefaultMonitor(VMRGUID *pGUID) = 0;
8798    virtual HRESULT WINAPI GetAvailableMonitors(VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices) = 0;
8799  };
8800#else
8801  typedef struct IVMRMonitorConfigVtbl {
8802    BEGIN_INTERFACE
8803      HRESULT (WINAPI *QueryInterface)(IVMRMonitorConfig *This,REFIID riid,void **ppvObject);
8804      ULONG (WINAPI *AddRef)(IVMRMonitorConfig *This);
8805      ULONG (WINAPI *Release)(IVMRMonitorConfig *This);
8806      HRESULT (WINAPI *SetMonitor)(IVMRMonitorConfig *This,const VMRGUID *pGUID);
8807      HRESULT (WINAPI *GetMonitor)(IVMRMonitorConfig *This,VMRGUID *pGUID);
8808      HRESULT (WINAPI *SetDefaultMonitor)(IVMRMonitorConfig *This,const VMRGUID *pGUID);
8809      HRESULT (WINAPI *GetDefaultMonitor)(IVMRMonitorConfig *This,VMRGUID *pGUID);
8810      HRESULT (WINAPI *GetAvailableMonitors)(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
8811    END_INTERFACE
8812  } IVMRMonitorConfigVtbl;
8813  struct IVMRMonitorConfig {
8814    CONST_VTBL struct IVMRMonitorConfigVtbl *lpVtbl;
8815  };
8816#ifdef COBJMACROS
8817#define IVMRMonitorConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8818#define IVMRMonitorConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
8819#define IVMRMonitorConfig_Release(This) (This)->lpVtbl->Release(This)
8820#define IVMRMonitorConfig_SetMonitor(This,pGUID) (This)->lpVtbl->SetMonitor(This,pGUID)
8821#define IVMRMonitorConfig_GetMonitor(This,pGUID) (This)->lpVtbl->GetMonitor(This,pGUID)
8822#define IVMRMonitorConfig_SetDefaultMonitor(This,pGUID) (This)->lpVtbl->SetDefaultMonitor(This,pGUID)
8823#define IVMRMonitorConfig_GetDefaultMonitor(This,pGUID) (This)->lpVtbl->GetDefaultMonitor(This,pGUID)
8824#define IVMRMonitorConfig_GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices) (This)->lpVtbl->GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices)
8825#endif
8826#endif
8827  HRESULT WINAPI IVMRMonitorConfig_SetMonitor_Proxy(IVMRMonitorConfig *This,const VMRGUID *pGUID);
8828  void __RPC_STUB IVMRMonitorConfig_SetMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8829  HRESULT WINAPI IVMRMonitorConfig_GetMonitor_Proxy(IVMRMonitorConfig *This,VMRGUID *pGUID);
8830  void __RPC_STUB IVMRMonitorConfig_GetMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8831  HRESULT WINAPI IVMRMonitorConfig_SetDefaultMonitor_Proxy(IVMRMonitorConfig *This,const VMRGUID *pGUID);
8832  void __RPC_STUB IVMRMonitorConfig_SetDefaultMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8833  HRESULT WINAPI IVMRMonitorConfig_GetDefaultMonitor_Proxy(IVMRMonitorConfig *This,VMRGUID *pGUID);
8834  void __RPC_STUB IVMRMonitorConfig_GetDefaultMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8835  HRESULT WINAPI IVMRMonitorConfig_GetAvailableMonitors_Proxy(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
8836  void __RPC_STUB IVMRMonitorConfig_GetAvailableMonitors_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8837#endif
8838
8839  typedef enum __MIDL___MIDL_itf_strmif_0403_0001 {
8840    RenderPrefs_RestrictToInitialMonitor = 0,RenderPrefs_ForceOffscreen = 0x1,RenderPrefs_ForceOverlays = 0x2,RenderPrefs_AllowOverlays = 0,
8841    RenderPrefs_AllowOffscreen = 0,RenderPrefs_DoNotRenderColorKeyAndBorder = 0x8,RenderPrefs_Reserved = 0x10,RenderPrefs_PreferAGPMemWhenMixing = 0x20,
8842    RenderPrefs_Mask = 0x3f
8843  } VMRRenderPrefs;
8844
8845  typedef enum __MIDL___MIDL_itf_strmif_0403_0002 {
8846    VMRMode_Windowed = 0x1,VMRMode_Windowless = 0x2,VMRMode_Renderless = 0x4,VMRMode_Mask = 0x7
8847  } VMRMode;
8848
8849  enum __MIDL___MIDL_itf_strmif_0403_0003 {
8850    MAX_NUMBER_OF_STREAMS = 16
8851  };
8852
8853  extern RPC_IF_HANDLE __MIDL_itf_strmif_0403_v0_0_c_ifspec;
8854  extern RPC_IF_HANDLE __MIDL_itf_strmif_0403_v0_0_s_ifspec;
8855#ifndef __IVMRFilterConfig_INTERFACE_DEFINED__
8856#define __IVMRFilterConfig_INTERFACE_DEFINED__
8857  EXTERN_C const IID IID_IVMRFilterConfig;
8858#if defined(__cplusplus) && !defined(CINTERFACE)
8859  struct IVMRFilterConfig : public IUnknown {
8860  public:
8861    virtual HRESULT WINAPI SetImageCompositor(IVMRImageCompositor *lpVMRImgCompositor) = 0;
8862    virtual HRESULT WINAPI SetNumberOfStreams(DWORD dwMaxStreams) = 0;
8863    virtual HRESULT WINAPI GetNumberOfStreams(DWORD *pdwMaxStreams) = 0;
8864    virtual HRESULT WINAPI SetRenderingPrefs(DWORD dwRenderFlags) = 0;
8865    virtual HRESULT WINAPI GetRenderingPrefs(DWORD *pdwRenderFlags) = 0;
8866    virtual HRESULT WINAPI SetRenderingMode(DWORD Mode) = 0;
8867    virtual HRESULT WINAPI GetRenderingMode(DWORD *pMode) = 0;
8868  };
8869#else
8870  typedef struct IVMRFilterConfigVtbl {
8871    BEGIN_INTERFACE
8872      HRESULT (WINAPI *QueryInterface)(IVMRFilterConfig *This,REFIID riid,void **ppvObject);
8873      ULONG (WINAPI *AddRef)(IVMRFilterConfig *This);
8874      ULONG (WINAPI *Release)(IVMRFilterConfig *This);
8875      HRESULT (WINAPI *SetImageCompositor)(IVMRFilterConfig *This,IVMRImageCompositor *lpVMRImgCompositor);
8876      HRESULT (WINAPI *SetNumberOfStreams)(IVMRFilterConfig *This,DWORD dwMaxStreams);
8877      HRESULT (WINAPI *GetNumberOfStreams)(IVMRFilterConfig *This,DWORD *pdwMaxStreams);
8878      HRESULT (WINAPI *SetRenderingPrefs)(IVMRFilterConfig *This,DWORD dwRenderFlags);
8879      HRESULT (WINAPI *GetRenderingPrefs)(IVMRFilterConfig *This,DWORD *pdwRenderFlags);
8880      HRESULT (WINAPI *SetRenderingMode)(IVMRFilterConfig *This,DWORD Mode);
8881      HRESULT (WINAPI *GetRenderingMode)(IVMRFilterConfig *This,DWORD *pMode);
8882    END_INTERFACE
8883  } IVMRFilterConfigVtbl;
8884  struct IVMRFilterConfig {
8885    CONST_VTBL struct IVMRFilterConfigVtbl *lpVtbl;
8886  };
8887#ifdef COBJMACROS
8888#define IVMRFilterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8889#define IVMRFilterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
8890#define IVMRFilterConfig_Release(This) (This)->lpVtbl->Release(This)
8891#define IVMRFilterConfig_SetImageCompositor(This,lpVMRImgCompositor) (This)->lpVtbl->SetImageCompositor(This,lpVMRImgCompositor)
8892#define IVMRFilterConfig_SetNumberOfStreams(This,dwMaxStreams) (This)->lpVtbl->SetNumberOfStreams(This,dwMaxStreams)
8893#define IVMRFilterConfig_GetNumberOfStreams(This,pdwMaxStreams) (This)->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams)
8894#define IVMRFilterConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
8895#define IVMRFilterConfig_GetRenderingPrefs(This,pdwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags)
8896#define IVMRFilterConfig_SetRenderingMode(This,Mode) (This)->lpVtbl->SetRenderingMode(This,Mode)
8897#define IVMRFilterConfig_GetRenderingMode(This,pMode) (This)->lpVtbl->GetRenderingMode(This,pMode)
8898#endif
8899#endif
8900  HRESULT WINAPI IVMRFilterConfig_SetImageCompositor_Proxy(IVMRFilterConfig *This,IVMRImageCompositor *lpVMRImgCompositor);
8901  void __RPC_STUB IVMRFilterConfig_SetImageCompositor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8902  HRESULT WINAPI IVMRFilterConfig_SetNumberOfStreams_Proxy(IVMRFilterConfig *This,DWORD dwMaxStreams);
8903  void __RPC_STUB IVMRFilterConfig_SetNumberOfStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8904  HRESULT WINAPI IVMRFilterConfig_GetNumberOfStreams_Proxy(IVMRFilterConfig *This,DWORD *pdwMaxStreams);
8905  void __RPC_STUB IVMRFilterConfig_GetNumberOfStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8906  HRESULT WINAPI IVMRFilterConfig_SetRenderingPrefs_Proxy(IVMRFilterConfig *This,DWORD dwRenderFlags);
8907  void __RPC_STUB IVMRFilterConfig_SetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8908  HRESULT WINAPI IVMRFilterConfig_GetRenderingPrefs_Proxy(IVMRFilterConfig *This,DWORD *pdwRenderFlags);
8909  void __RPC_STUB IVMRFilterConfig_GetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8910  HRESULT WINAPI IVMRFilterConfig_SetRenderingMode_Proxy(IVMRFilterConfig *This,DWORD Mode);
8911  void __RPC_STUB IVMRFilterConfig_SetRenderingMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8912  HRESULT WINAPI IVMRFilterConfig_GetRenderingMode_Proxy(IVMRFilterConfig *This,DWORD *pMode);
8913  void __RPC_STUB IVMRFilterConfig_GetRenderingMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8914#endif
8915
8916#ifndef __IVMRAspectRatioControl_INTERFACE_DEFINED__
8917#define __IVMRAspectRatioControl_INTERFACE_DEFINED__
8918  EXTERN_C const IID IID_IVMRAspectRatioControl;
8919#if defined(__cplusplus) && !defined(CINTERFACE)
8920  struct IVMRAspectRatioControl : public IUnknown {
8921  public:
8922    virtual HRESULT WINAPI GetAspectRatioMode(LPDWORD lpdwARMode) = 0;
8923    virtual HRESULT WINAPI SetAspectRatioMode(DWORD dwARMode) = 0;
8924  };
8925#else
8926  typedef struct IVMRAspectRatioControlVtbl {
8927    BEGIN_INTERFACE
8928      HRESULT (WINAPI *QueryInterface)(IVMRAspectRatioControl *This,REFIID riid,void **ppvObject);
8929      ULONG (WINAPI *AddRef)(IVMRAspectRatioControl *This);
8930      ULONG (WINAPI *Release)(IVMRAspectRatioControl *This);
8931      HRESULT (WINAPI *GetAspectRatioMode)(IVMRAspectRatioControl *This,LPDWORD lpdwARMode);
8932      HRESULT (WINAPI *SetAspectRatioMode)(IVMRAspectRatioControl *This,DWORD dwARMode);
8933    END_INTERFACE
8934  } IVMRAspectRatioControlVtbl;
8935  struct IVMRAspectRatioControl {
8936    CONST_VTBL struct IVMRAspectRatioControlVtbl *lpVtbl;
8937  };
8938#ifdef COBJMACROS
8939#define IVMRAspectRatioControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8940#define IVMRAspectRatioControl_AddRef(This) (This)->lpVtbl->AddRef(This)
8941#define IVMRAspectRatioControl_Release(This) (This)->lpVtbl->Release(This)
8942#define IVMRAspectRatioControl_GetAspectRatioMode(This,lpdwARMode) (This)->lpVtbl->GetAspectRatioMode(This,lpdwARMode)
8943#define IVMRAspectRatioControl_SetAspectRatioMode(This,dwARMode) (This)->lpVtbl->SetAspectRatioMode(This,dwARMode)
8944#endif
8945#endif
8946  HRESULT WINAPI IVMRAspectRatioControl_GetAspectRatioMode_Proxy(IVMRAspectRatioControl *This,LPDWORD lpdwARMode);
8947  void __RPC_STUB IVMRAspectRatioControl_GetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8948  HRESULT WINAPI IVMRAspectRatioControl_SetAspectRatioMode_Proxy(IVMRAspectRatioControl *This,DWORD dwARMode);
8949  void __RPC_STUB IVMRAspectRatioControl_SetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
8950#endif
8951
8952  typedef enum __MIDL___MIDL_itf_strmif_0405_0001 {
8953    DeinterlacePref_NextBest = 0x1,DeinterlacePref_BOB = 0x2,DeinterlacePref_Weave = 0x4,DeinterlacePref_Mask = 0x7
8954  } VMRDeinterlacePrefs;
8955
8956  typedef enum __MIDL___MIDL_itf_strmif_0405_0002 {
8957    DeinterlaceTech_Unknown = 0,DeinterlaceTech_BOBLineReplicate = 0x1,DeinterlaceTech_BOBVerticalStretch = 0x2,DeinterlaceTech_MedianFiltering = 0x4,
8958    DeinterlaceTech_EdgeFiltering = 0x10,DeinterlaceTech_FieldAdaptive = 0x20,DeinterlaceTech_PixelAdaptive = 0x40,
8959    DeinterlaceTech_MotionVectorSteered = 0x80
8960  } VMRDeinterlaceTech;
8961
8962  typedef struct _VMRFrequency {
8963    DWORD dwNumerator;
8964    DWORD dwDenominator;
8965  } VMRFrequency;
8966
8967  typedef struct _VMRVideoDesc {
8968    DWORD dwSize;
8969    DWORD dwSampleWidth;
8970    DWORD dwSampleHeight;
8971    WINBOOL SingleFieldPerSample;
8972    DWORD dwFourCC;
8973    VMRFrequency InputSampleFreq;
8974    VMRFrequency OutputFrameFreq;
8975  } VMRVideoDesc;
8976
8977  typedef struct _VMRDeinterlaceCaps {
8978    DWORD dwSize;
8979    DWORD dwNumPreviousOutputFrames;
8980    DWORD dwNumForwardRefSamples;
8981    DWORD dwNumBackwardRefSamples;
8982    VMRDeinterlaceTech DeinterlaceTechnology;
8983  } VMRDeinterlaceCaps;
8984
8985  extern RPC_IF_HANDLE __MIDL_itf_strmif_0405_v0_0_c_ifspec;
8986  extern RPC_IF_HANDLE __MIDL_itf_strmif_0405_v0_0_s_ifspec;
8987#ifndef __IVMRDeinterlaceControl_INTERFACE_DEFINED__
8988#define __IVMRDeinterlaceControl_INTERFACE_DEFINED__
8989  EXTERN_C const IID IID_IVMRDeinterlaceControl;
8990#if defined(__cplusplus) && !defined(CINTERFACE)
8991  struct IVMRDeinterlaceControl : public IUnknown {
8992  public:
8993    virtual HRESULT WINAPI GetNumberOfDeinterlaceModes(VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes) = 0;
8994    virtual HRESULT WINAPI GetDeinterlaceModeCaps(LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps) = 0;
8995    virtual HRESULT WINAPI GetDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
8996    virtual HRESULT WINAPI SetDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
8997    virtual HRESULT WINAPI GetDeinterlacePrefs(LPDWORD lpdwDeinterlacePrefs) = 0;
8998    virtual HRESULT WINAPI SetDeinterlacePrefs(DWORD dwDeinterlacePrefs) = 0;
8999    virtual HRESULT WINAPI GetActualDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
9000  };
9001#else
9002  typedef struct IVMRDeinterlaceControlVtbl {
9003    BEGIN_INTERFACE
9004      HRESULT (WINAPI *QueryInterface)(IVMRDeinterlaceControl *This,REFIID riid,void **ppvObject);
9005      ULONG (WINAPI *AddRef)(IVMRDeinterlaceControl *This);
9006      ULONG (WINAPI *Release)(IVMRDeinterlaceControl *This);
9007      HRESULT (WINAPI *GetNumberOfDeinterlaceModes)(IVMRDeinterlaceControl *This,VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes);
9008      HRESULT (WINAPI *GetDeinterlaceModeCaps)(IVMRDeinterlaceControl *This,LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps);
9009      HRESULT (WINAPI *GetDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
9010      HRESULT (WINAPI *SetDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
9011      HRESULT (WINAPI *GetDeinterlacePrefs)(IVMRDeinterlaceControl *This,LPDWORD lpdwDeinterlacePrefs);
9012      HRESULT (WINAPI *SetDeinterlacePrefs)(IVMRDeinterlaceControl *This,DWORD dwDeinterlacePrefs);
9013      HRESULT (WINAPI *GetActualDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
9014    END_INTERFACE
9015  } IVMRDeinterlaceControlVtbl;
9016  struct IVMRDeinterlaceControl {
9017    CONST_VTBL struct IVMRDeinterlaceControlVtbl *lpVtbl;
9018  };
9019#ifdef COBJMACROS
9020#define IVMRDeinterlaceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9021#define IVMRDeinterlaceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
9022#define IVMRDeinterlaceControl_Release(This) (This)->lpVtbl->Release(This)
9023#define IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes) (This)->lpVtbl->GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes)
9024#define IVMRDeinterlaceControl_GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps) (This)->lpVtbl->GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps)
9025#define IVMRDeinterlaceControl_GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
9026#define IVMRDeinterlaceControl_SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
9027#define IVMRDeinterlaceControl_GetDeinterlacePrefs(This,lpdwDeinterlacePrefs) (This)->lpVtbl->GetDeinterlacePrefs(This,lpdwDeinterlacePrefs)
9028#define IVMRDeinterlaceControl_SetDeinterlacePrefs(This,dwDeinterlacePrefs) (This)->lpVtbl->SetDeinterlacePrefs(This,dwDeinterlacePrefs)
9029#define IVMRDeinterlaceControl_GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
9030#endif
9031#endif
9032  HRESULT WINAPI IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes_Proxy(IVMRDeinterlaceControl *This,VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes);
9033  void __RPC_STUB IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9034  HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlaceModeCaps_Proxy(IVMRDeinterlaceControl *This,LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps);
9035  void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlaceModeCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9036  HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
9037  void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9038  HRESULT WINAPI IVMRDeinterlaceControl_SetDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
9039  void __RPC_STUB IVMRDeinterlaceControl_SetDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9040  HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlacePrefs_Proxy(IVMRDeinterlaceControl *This,LPDWORD lpdwDeinterlacePrefs);
9041  void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlacePrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9042  HRESULT WINAPI IVMRDeinterlaceControl_SetDeinterlacePrefs_Proxy(IVMRDeinterlaceControl *This,DWORD dwDeinterlacePrefs);
9043  void __RPC_STUB IVMRDeinterlaceControl_SetDeinterlacePrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9044  HRESULT WINAPI IVMRDeinterlaceControl_GetActualDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
9045  void __RPC_STUB IVMRDeinterlaceControl_GetActualDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9046#endif
9047
9048  typedef struct _VMRALPHABITMAP {
9049    DWORD dwFlags;
9050    HDC hdc;
9051    LPDIRECTDRAWSURFACE7 pDDS;
9052    RECT rSrc;
9053    NORMALIZEDRECT rDest;
9054    FLOAT fAlpha;
9055    COLORREF clrSrcKey;
9056  } VMRALPHABITMAP;
9057
9058  typedef struct _VMRALPHABITMAP *PVMRALPHABITMAP;
9059
9060#define VMRBITMAP_DISABLE 0x00000001
9061#define VMRBITMAP_HDC 0x00000002
9062#define VMRBITMAP_ENTIREDDS 0x00000004
9063#define VMRBITMAP_SRCCOLORKEY 0x00000008
9064#define VMRBITMAP_SRCRECT 0x00000010
9065
9066  extern RPC_IF_HANDLE __MIDL_itf_strmif_0406_v0_0_c_ifspec;
9067  extern RPC_IF_HANDLE __MIDL_itf_strmif_0406_v0_0_s_ifspec;
9068#ifndef __IVMRMixerBitmap_INTERFACE_DEFINED__
9069#define __IVMRMixerBitmap_INTERFACE_DEFINED__
9070  EXTERN_C const IID IID_IVMRMixerBitmap;
9071#if defined(__cplusplus) && !defined(CINTERFACE)
9072  struct IVMRMixerBitmap : public IUnknown {
9073  public:
9074    virtual HRESULT WINAPI SetAlphaBitmap(const VMRALPHABITMAP *pBmpParms) = 0;
9075    virtual HRESULT WINAPI UpdateAlphaBitmapParameters(PVMRALPHABITMAP pBmpParms) = 0;
9076    virtual HRESULT WINAPI GetAlphaBitmapParameters(PVMRALPHABITMAP pBmpParms) = 0;
9077  };
9078#else
9079  typedef struct IVMRMixerBitmapVtbl {
9080    BEGIN_INTERFACE
9081      HRESULT (WINAPI *QueryInterface)(IVMRMixerBitmap *This,REFIID riid,void **ppvObject);
9082      ULONG (WINAPI *AddRef)(IVMRMixerBitmap *This);
9083      ULONG (WINAPI *Release)(IVMRMixerBitmap *This);
9084      HRESULT (WINAPI *SetAlphaBitmap)(IVMRMixerBitmap *This,const VMRALPHABITMAP *pBmpParms);
9085      HRESULT (WINAPI *UpdateAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
9086      HRESULT (WINAPI *GetAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
9087    END_INTERFACE
9088  } IVMRMixerBitmapVtbl;
9089  struct IVMRMixerBitmap {
9090    CONST_VTBL struct IVMRMixerBitmapVtbl *lpVtbl;
9091  };
9092#ifdef COBJMACROS
9093#define IVMRMixerBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9094#define IVMRMixerBitmap_AddRef(This) (This)->lpVtbl->AddRef(This)
9095#define IVMRMixerBitmap_Release(This) (This)->lpVtbl->Release(This)
9096#define IVMRMixerBitmap_SetAlphaBitmap(This,pBmpParms) (This)->lpVtbl->SetAlphaBitmap(This,pBmpParms)
9097#define IVMRMixerBitmap_UpdateAlphaBitmapParameters(This,pBmpParms) (This)->lpVtbl->UpdateAlphaBitmapParameters(This,pBmpParms)
9098#define IVMRMixerBitmap_GetAlphaBitmapParameters(This,pBmpParms) (This)->lpVtbl->GetAlphaBitmapParameters(This,pBmpParms)
9099#endif
9100#endif
9101  HRESULT WINAPI IVMRMixerBitmap_SetAlphaBitmap_Proxy(IVMRMixerBitmap *This,const VMRALPHABITMAP *pBmpParms);
9102  void __RPC_STUB IVMRMixerBitmap_SetAlphaBitmap_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9103  HRESULT WINAPI IVMRMixerBitmap_UpdateAlphaBitmapParameters_Proxy(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
9104  void __RPC_STUB IVMRMixerBitmap_UpdateAlphaBitmapParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9105  HRESULT WINAPI IVMRMixerBitmap_GetAlphaBitmapParameters_Proxy(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
9106  void __RPC_STUB IVMRMixerBitmap_GetAlphaBitmapParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9107#endif
9108
9109  typedef struct _VMRVIDEOSTREAMINFO {
9110    LPDIRECTDRAWSURFACE7 pddsVideoSurface;
9111    DWORD dwWidth;
9112    DWORD dwHeight;
9113    DWORD dwStrmID;
9114    FLOAT fAlpha;
9115    DDCOLORKEY ddClrKey;
9116    NORMALIZEDRECT rNormal;
9117  } VMRVIDEOSTREAMINFO;
9118
9119  extern RPC_IF_HANDLE __MIDL_itf_strmif_0407_v0_0_c_ifspec;
9120  extern RPC_IF_HANDLE __MIDL_itf_strmif_0407_v0_0_s_ifspec;
9121#ifndef __IVMRImageCompositor_INTERFACE_DEFINED__
9122#define __IVMRImageCompositor_INTERFACE_DEFINED__
9123  EXTERN_C const IID IID_IVMRImageCompositor;
9124#if defined(__cplusplus) && !defined(CINTERFACE)
9125  struct IVMRImageCompositor : public IUnknown {
9126  public:
9127    virtual HRESULT WINAPI InitCompositionTarget(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget) = 0;
9128    virtual HRESULT WINAPI TermCompositionTarget(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget) = 0;
9129    virtual HRESULT WINAPI SetStreamMediaType(DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture) = 0;
9130    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;
9131  };
9132#else
9133  typedef struct IVMRImageCompositorVtbl {
9134    BEGIN_INTERFACE
9135      HRESULT (WINAPI *QueryInterface)(IVMRImageCompositor *This,REFIID riid,void **ppvObject);
9136      ULONG (WINAPI *AddRef)(IVMRImageCompositor *This);
9137      ULONG (WINAPI *Release)(IVMRImageCompositor *This);
9138      HRESULT (WINAPI *InitCompositionTarget)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
9139      HRESULT (WINAPI *TermCompositionTarget)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
9140      HRESULT (WINAPI *SetStreamMediaType)(IVMRImageCompositor *This,DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture);
9141      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);
9142    END_INTERFACE
9143  } IVMRImageCompositorVtbl;
9144  struct IVMRImageCompositor {
9145    CONST_VTBL struct IVMRImageCompositorVtbl *lpVtbl;
9146  };
9147#ifdef COBJMACROS
9148#define IVMRImageCompositor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9149#define IVMRImageCompositor_AddRef(This) (This)->lpVtbl->AddRef(This)
9150#define IVMRImageCompositor_Release(This) (This)->lpVtbl->Release(This)
9151#define IVMRImageCompositor_InitCompositionTarget(This,pD3DDevice,pddsRenderTarget) (This)->lpVtbl->InitCompositionTarget(This,pD3DDevice,pddsRenderTarget)
9152#define IVMRImageCompositor_TermCompositionTarget(This,pD3DDevice,pddsRenderTarget) (This)->lpVtbl->TermCompositionTarget(This,pD3DDevice,pddsRenderTarget)
9153#define IVMRImageCompositor_SetStreamMediaType(This,dwStrmID,pmt,fTexture) (This)->lpVtbl->SetStreamMediaType(This,dwStrmID,pmt,fTexture)
9154#define IVMRImageCompositor_CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams) (This)->lpVtbl->CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams)
9155#endif
9156#endif
9157  HRESULT WINAPI IVMRImageCompositor_InitCompositionTarget_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
9158  void __RPC_STUB IVMRImageCompositor_InitCompositionTarget_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9159  HRESULT WINAPI IVMRImageCompositor_TermCompositionTarget_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
9160  void __RPC_STUB IVMRImageCompositor_TermCompositionTarget_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9161  HRESULT WINAPI IVMRImageCompositor_SetStreamMediaType_Proxy(IVMRImageCompositor *This,DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture);
9162  void __RPC_STUB IVMRImageCompositor_SetStreamMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9163  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);
9164  void __RPC_STUB IVMRImageCompositor_CompositeImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9165#endif
9166
9167#ifndef __IVMRVideoStreamControl_INTERFACE_DEFINED__
9168#define __IVMRVideoStreamControl_INTERFACE_DEFINED__
9169  EXTERN_C const IID IID_IVMRVideoStreamControl;
9170#if defined(__cplusplus) && !defined(CINTERFACE)
9171  struct IVMRVideoStreamControl : public IUnknown {
9172  public:
9173    virtual HRESULT WINAPI SetColorKey(LPDDCOLORKEY lpClrKey) = 0;
9174    virtual HRESULT WINAPI GetColorKey(LPDDCOLORKEY lpClrKey) = 0;
9175    virtual HRESULT WINAPI SetStreamActiveState(WINBOOL fActive) = 0;
9176    virtual HRESULT WINAPI GetStreamActiveState(WINBOOL *lpfActive) = 0;
9177  };
9178#else
9179  typedef struct IVMRVideoStreamControlVtbl {
9180    BEGIN_INTERFACE
9181      HRESULT (WINAPI *QueryInterface)(IVMRVideoStreamControl *This,REFIID riid,void **ppvObject);
9182      ULONG (WINAPI *AddRef)(IVMRVideoStreamControl *This);
9183      ULONG (WINAPI *Release)(IVMRVideoStreamControl *This);
9184      HRESULT (WINAPI *SetColorKey)(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
9185      HRESULT (WINAPI *GetColorKey)(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
9186      HRESULT (WINAPI *SetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL fActive);
9187      HRESULT (WINAPI *GetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
9188    END_INTERFACE
9189  } IVMRVideoStreamControlVtbl;
9190  struct IVMRVideoStreamControl {
9191    CONST_VTBL struct IVMRVideoStreamControlVtbl *lpVtbl;
9192  };
9193#ifdef COBJMACROS
9194#define IVMRVideoStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9195#define IVMRVideoStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
9196#define IVMRVideoStreamControl_Release(This) (This)->lpVtbl->Release(This)
9197#define IVMRVideoStreamControl_SetColorKey(This,lpClrKey) (This)->lpVtbl->SetColorKey(This,lpClrKey)
9198#define IVMRVideoStreamControl_GetColorKey(This,lpClrKey) (This)->lpVtbl->GetColorKey(This,lpClrKey)
9199#define IVMRVideoStreamControl_SetStreamActiveState(This,fActive) (This)->lpVtbl->SetStreamActiveState(This,fActive)
9200#define IVMRVideoStreamControl_GetStreamActiveState(This,lpfActive) (This)->lpVtbl->GetStreamActiveState(This,lpfActive)
9201#endif
9202#endif
9203  HRESULT WINAPI IVMRVideoStreamControl_SetColorKey_Proxy(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
9204  void __RPC_STUB IVMRVideoStreamControl_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9205  HRESULT WINAPI IVMRVideoStreamControl_GetColorKey_Proxy(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
9206  void __RPC_STUB IVMRVideoStreamControl_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9207  HRESULT WINAPI IVMRVideoStreamControl_SetStreamActiveState_Proxy(IVMRVideoStreamControl *This,WINBOOL fActive);
9208  void __RPC_STUB IVMRVideoStreamControl_SetStreamActiveState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9209  HRESULT WINAPI IVMRVideoStreamControl_GetStreamActiveState_Proxy(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
9210  void __RPC_STUB IVMRVideoStreamControl_GetStreamActiveState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9211#endif
9212
9213#ifndef __IVMRSurface_INTERFACE_DEFINED__
9214#define __IVMRSurface_INTERFACE_DEFINED__
9215  EXTERN_C const IID IID_IVMRSurface;
9216#if defined(__cplusplus) && !defined(CINTERFACE)
9217  struct IVMRSurface : public IUnknown {
9218  public:
9219    virtual HRESULT WINAPI IsSurfaceLocked(void) = 0;
9220    virtual HRESULT WINAPI LockSurface(BYTE **lpSurface) = 0;
9221    virtual HRESULT WINAPI UnlockSurface(void) = 0;
9222    virtual HRESULT WINAPI GetSurface(LPDIRECTDRAWSURFACE7 *lplpSurface) = 0;
9223  };
9224#else
9225  typedef struct IVMRSurfaceVtbl {
9226    BEGIN_INTERFACE
9227      HRESULT (WINAPI *QueryInterface)(IVMRSurface *This,REFIID riid,void **ppvObject);
9228      ULONG (WINAPI *AddRef)(IVMRSurface *This);
9229      ULONG (WINAPI *Release)(IVMRSurface *This);
9230      HRESULT (WINAPI *IsSurfaceLocked)(IVMRSurface *This);
9231      HRESULT (WINAPI *LockSurface)(IVMRSurface *This,BYTE **lpSurface);
9232      HRESULT (WINAPI *UnlockSurface)(IVMRSurface *This);
9233      HRESULT (WINAPI *GetSurface)(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
9234    END_INTERFACE
9235  } IVMRSurfaceVtbl;
9236  struct IVMRSurface {
9237    CONST_VTBL struct IVMRSurfaceVtbl *lpVtbl;
9238  };
9239#ifdef COBJMACROS
9240#define IVMRSurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9241#define IVMRSurface_AddRef(This) (This)->lpVtbl->AddRef(This)
9242#define IVMRSurface_Release(This) (This)->lpVtbl->Release(This)
9243#define IVMRSurface_IsSurfaceLocked(This) (This)->lpVtbl->IsSurfaceLocked(This)
9244#define IVMRSurface_LockSurface(This,lpSurface) (This)->lpVtbl->LockSurface(This,lpSurface)
9245#define IVMRSurface_UnlockSurface(This) (This)->lpVtbl->UnlockSurface(This)
9246#define IVMRSurface_GetSurface(This,lplpSurface) (This)->lpVtbl->GetSurface(This,lplpSurface)
9247#endif
9248#endif
9249  HRESULT WINAPI IVMRSurface_IsSurfaceLocked_Proxy(IVMRSurface *This);
9250  void __RPC_STUB IVMRSurface_IsSurfaceLocked_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9251  HRESULT WINAPI IVMRSurface_LockSurface_Proxy(IVMRSurface *This,BYTE **lpSurface);
9252  void __RPC_STUB IVMRSurface_LockSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9253  HRESULT WINAPI IVMRSurface_UnlockSurface_Proxy(IVMRSurface *This);
9254  void __RPC_STUB IVMRSurface_UnlockSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9255  HRESULT WINAPI IVMRSurface_GetSurface_Proxy(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
9256  void __RPC_STUB IVMRSurface_GetSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9257#endif
9258
9259#ifndef __IVMRImagePresenterConfig_INTERFACE_DEFINED__
9260#define __IVMRImagePresenterConfig_INTERFACE_DEFINED__
9261  EXTERN_C const IID IID_IVMRImagePresenterConfig;
9262
9263#if defined(__cplusplus) && !defined(CINTERFACE)
9264  struct IVMRImagePresenterConfig : public IUnknown {
9265  public:
9266    virtual HRESULT WINAPI SetRenderingPrefs(DWORD dwRenderFlags) = 0;
9267    virtual HRESULT WINAPI GetRenderingPrefs(DWORD *dwRenderFlags) = 0;
9268  };
9269#else
9270  typedef struct IVMRImagePresenterConfigVtbl {
9271    BEGIN_INTERFACE
9272      HRESULT (WINAPI *QueryInterface)(IVMRImagePresenterConfig *This,REFIID riid,void **ppvObject);
9273      ULONG (WINAPI *AddRef)(IVMRImagePresenterConfig *This);
9274      ULONG (WINAPI *Release)(IVMRImagePresenterConfig *This);
9275      HRESULT (WINAPI *SetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD dwRenderFlags);
9276      HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
9277    END_INTERFACE
9278  } IVMRImagePresenterConfigVtbl;
9279  struct IVMRImagePresenterConfig {
9280    CONST_VTBL struct IVMRImagePresenterConfigVtbl *lpVtbl;
9281  };
9282#ifdef COBJMACROS
9283#define IVMRImagePresenterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9284#define IVMRImagePresenterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
9285#define IVMRImagePresenterConfig_Release(This) (This)->lpVtbl->Release(This)
9286#define IVMRImagePresenterConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
9287#define IVMRImagePresenterConfig_GetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,dwRenderFlags)
9288#endif
9289#endif
9290  HRESULT WINAPI IVMRImagePresenterConfig_SetRenderingPrefs_Proxy(IVMRImagePresenterConfig *This,DWORD dwRenderFlags);
9291  void __RPC_STUB IVMRImagePresenterConfig_SetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9292  HRESULT WINAPI IVMRImagePresenterConfig_GetRenderingPrefs_Proxy(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
9293  void __RPC_STUB IVMRImagePresenterConfig_GetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9294#endif
9295
9296#ifndef __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__
9297#define __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__
9298  EXTERN_C const IID IID_IVMRImagePresenterExclModeConfig;
9299#if defined(__cplusplus) && !defined(CINTERFACE)
9300  struct IVMRImagePresenterExclModeConfig : public IVMRImagePresenterConfig {
9301  public:
9302    virtual HRESULT WINAPI SetXlcModeDDObjAndPrimarySurface(LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf) = 0;
9303    virtual HRESULT WINAPI GetXlcModeDDObjAndPrimarySurface(LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf) = 0;
9304  };
9305#else
9306  typedef struct IVMRImagePresenterExclModeConfigVtbl {
9307    BEGIN_INTERFACE
9308      HRESULT (WINAPI *QueryInterface)(IVMRImagePresenterExclModeConfig *This,REFIID riid,void **ppvObject);
9309      ULONG (WINAPI *AddRef)(IVMRImagePresenterExclModeConfig *This);
9310      ULONG (WINAPI *Release)(IVMRImagePresenterExclModeConfig *This);
9311      HRESULT (WINAPI *SetRenderingPrefs)(IVMRImagePresenterExclModeConfig *This,DWORD dwRenderFlags);
9312      HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterExclModeConfig *This,DWORD *dwRenderFlags);
9313      HRESULT (WINAPI *SetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf);
9314      HRESULT (WINAPI *GetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
9315    END_INTERFACE
9316  } IVMRImagePresenterExclModeConfigVtbl;
9317  struct IVMRImagePresenterExclModeConfig {
9318    CONST_VTBL struct IVMRImagePresenterExclModeConfigVtbl *lpVtbl;
9319  };
9320#ifdef COBJMACROS
9321#define IVMRImagePresenterExclModeConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9322#define IVMRImagePresenterExclModeConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
9323#define IVMRImagePresenterExclModeConfig_Release(This) (This)->lpVtbl->Release(This)
9324#define IVMRImagePresenterExclModeConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
9325#define IVMRImagePresenterExclModeConfig_GetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,dwRenderFlags)
9326#define IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf) (This)->lpVtbl->SetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf)
9327#define IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf) (This)->lpVtbl->GetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf)
9328#endif
9329#endif
9330  HRESULT WINAPI IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface_Proxy(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf);
9331  void __RPC_STUB IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9332  HRESULT WINAPI IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface_Proxy(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
9333  void __RPC_STUB IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9334#endif
9335
9336#ifndef __IVPManager_INTERFACE_DEFINED__
9337#define __IVPManager_INTERFACE_DEFINED__
9338  EXTERN_C const IID IID_IVPManager;
9339#if defined(__cplusplus) && !defined(CINTERFACE)
9340  struct IVPManager : public IUnknown {
9341  public:
9342    virtual HRESULT WINAPI SetVideoPortIndex(DWORD dwVideoPortIndex) = 0;
9343    virtual HRESULT WINAPI GetVideoPortIndex(DWORD *pdwVideoPortIndex) = 0;
9344  };
9345#else
9346  typedef struct IVPManagerVtbl {
9347    BEGIN_INTERFACE
9348      HRESULT (WINAPI *QueryInterface)(IVPManager *This,REFIID riid,void **ppvObject);
9349      ULONG (WINAPI *AddRef)(IVPManager *This);
9350      ULONG (WINAPI *Release)(IVPManager *This);
9351      HRESULT (WINAPI *SetVideoPortIndex)(IVPManager *This,DWORD dwVideoPortIndex);
9352      HRESULT (WINAPI *GetVideoPortIndex)(IVPManager *This,DWORD *pdwVideoPortIndex);
9353    END_INTERFACE
9354  } IVPManagerVtbl;
9355  struct IVPManager {
9356    CONST_VTBL struct IVPManagerVtbl *lpVtbl;
9357  };
9358#ifdef COBJMACROS
9359#define IVPManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9360#define IVPManager_AddRef(This) (This)->lpVtbl->AddRef(This)
9361#define IVPManager_Release(This) (This)->lpVtbl->Release(This)
9362#define IVPManager_SetVideoPortIndex(This,dwVideoPortIndex) (This)->lpVtbl->SetVideoPortIndex(This,dwVideoPortIndex)
9363#define IVPManager_GetVideoPortIndex(This,pdwVideoPortIndex) (This)->lpVtbl->GetVideoPortIndex(This,pdwVideoPortIndex)
9364#endif
9365#endif
9366  HRESULT WINAPI IVPManager_SetVideoPortIndex_Proxy(IVPManager *This,DWORD dwVideoPortIndex);
9367  void __RPC_STUB IVPManager_SetVideoPortIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9368  HRESULT WINAPI IVPManager_GetVideoPortIndex_Proxy(IVPManager *This,DWORD *pdwVideoPortIndex);
9369  void __RPC_STUB IVPManager_GetVideoPortIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
9370#endif
9371
9372  extern RPC_IF_HANDLE __MIDL_itf_strmif_0413_v0_0_c_ifspec;
9373  extern RPC_IF_HANDLE __MIDL_itf_strmif_0413_v0_0_s_ifspec;
9374
9375  unsigned long __RPC_API VARIANT_UserSize(unsigned long *,unsigned long,VARIANT *);
9376  unsigned char *__RPC_API VARIANT_UserMarshal(unsigned long *,unsigned char *,VARIANT *);
9377  unsigned char *__RPC_API VARIANT_UserUnmarshal(unsigned long *,unsigned char *,VARIANT *);
9378  void __RPC_API VARIANT_UserFree(unsigned long *,VARIANT *);
9379
9380  HRESULT WINAPI ICaptureGraphBuilder_FindInterface_Proxy(ICaptureGraphBuilder *This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,void **ppint);
9381  HRESULT WINAPI ICaptureGraphBuilder_FindInterface_Stub(ICaptureGraphBuilder *This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,IUnknown **ppint);
9382  HRESULT WINAPI ICaptureGraphBuilder2_FindInterface_Proxy(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,void **ppint);
9383  HRESULT WINAPI ICaptureGraphBuilder2_FindInterface_Stub(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,IUnknown **ppint);
9384  HRESULT WINAPI IKsPropertySet_Set_Proxy(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData);
9385  HRESULT WINAPI IKsPropertySet_Set_Stub(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,byte *pInstanceData,DWORD cbInstanceData,byte *pPropData,DWORD cbPropData);
9386  HRESULT WINAPI IKsPropertySet_Get_Proxy(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData,DWORD *pcbReturned);
9387  HRESULT WINAPI IKsPropertySet_Get_Stub(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,byte *pInstanceData,DWORD cbInstanceData,byte *pPropData,DWORD cbPropData,DWORD *pcbReturned);
9388
9389#ifdef __cplusplus
9390}
9391#endif
9392#endif
9393