1/*** Autogenerated by WIDL 1.6 from include/strmif.idl - Do not edit ***/
2
3#ifndef __REQUIRED_RPCNDR_H_VERSION__
4#define __REQUIRED_RPCNDR_H_VERSION__ 475
5#endif
6
7#include <rpc.h>
8#include <rpcndr.h>
9
10#ifndef COM_NO_WINDOWS_H
11#include <windows.h>
12#include <ole2.h>
13#endif
14
15#ifndef __strmif_h__
16#define __strmif_h__
17
18/* Forward declarations */
19
20#ifndef __ICreateDevEnum_FWD_DEFINED__
21#define __ICreateDevEnum_FWD_DEFINED__
22typedef interface ICreateDevEnum ICreateDevEnum;
23#endif
24
25#ifndef __IPin_FWD_DEFINED__
26#define __IPin_FWD_DEFINED__
27typedef interface IPin IPin;
28#endif
29
30#ifndef __IEnumPins_FWD_DEFINED__
31#define __IEnumPins_FWD_DEFINED__
32typedef interface IEnumPins IEnumPins;
33#endif
34
35#ifndef __IEnumMediaTypes_FWD_DEFINED__
36#define __IEnumMediaTypes_FWD_DEFINED__
37typedef interface IEnumMediaTypes IEnumMediaTypes;
38#endif
39
40#ifndef __IFilterGraph_FWD_DEFINED__
41#define __IFilterGraph_FWD_DEFINED__
42typedef interface IFilterGraph IFilterGraph;
43#endif
44
45#ifndef __IEnumFilters_FWD_DEFINED__
46#define __IEnumFilters_FWD_DEFINED__
47typedef interface IEnumFilters IEnumFilters;
48#endif
49
50#ifndef __IMediaFilter_FWD_DEFINED__
51#define __IMediaFilter_FWD_DEFINED__
52typedef interface IMediaFilter IMediaFilter;
53#endif
54
55#ifndef __IBaseFilter_FWD_DEFINED__
56#define __IBaseFilter_FWD_DEFINED__
57typedef interface IBaseFilter IBaseFilter;
58#endif
59
60#ifndef __IReferenceClock_FWD_DEFINED__
61#define __IReferenceClock_FWD_DEFINED__
62typedef interface IReferenceClock IReferenceClock;
63#endif
64
65#ifndef __IReferenceClockTimerControl_FWD_DEFINED__
66#define __IReferenceClockTimerControl_FWD_DEFINED__
67typedef interface IReferenceClockTimerControl IReferenceClockTimerControl;
68#endif
69
70#ifndef __IReferenceClock2_FWD_DEFINED__
71#define __IReferenceClock2_FWD_DEFINED__
72typedef interface IReferenceClock2 IReferenceClock2;
73#endif
74
75#ifndef __IMediaSample_FWD_DEFINED__
76#define __IMediaSample_FWD_DEFINED__
77typedef interface IMediaSample IMediaSample;
78#endif
79
80#ifndef __IMediaSample2_FWD_DEFINED__
81#define __IMediaSample2_FWD_DEFINED__
82typedef interface IMediaSample2 IMediaSample2;
83#endif
84
85#ifndef __IMediaSample2Config_FWD_DEFINED__
86#define __IMediaSample2Config_FWD_DEFINED__
87typedef interface IMediaSample2Config IMediaSample2Config;
88#endif
89
90#ifndef __IMemAllocator_FWD_DEFINED__
91#define __IMemAllocator_FWD_DEFINED__
92typedef interface IMemAllocator IMemAllocator;
93#endif
94
95#ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
96#define __IMemAllocatorCallbackTemp_FWD_DEFINED__
97typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
98#endif
99
100#ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
101#define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
102typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
103#endif
104
105#ifndef __IMemInputPin_FWD_DEFINED__
106#define __IMemInputPin_FWD_DEFINED__
107typedef interface IMemInputPin IMemInputPin;
108#endif
109
110#ifndef __IAMovieSetup_FWD_DEFINED__
111#define __IAMovieSetup_FWD_DEFINED__
112typedef interface IAMovieSetup IAMovieSetup;
113#endif
114
115#ifndef __IMediaSeeking_FWD_DEFINED__
116#define __IMediaSeeking_FWD_DEFINED__
117typedef interface IMediaSeeking IMediaSeeking;
118#endif
119
120#ifndef __IEnumRegFilters_FWD_DEFINED__
121#define __IEnumRegFilters_FWD_DEFINED__
122typedef interface IEnumRegFilters IEnumRegFilters;
123#endif
124
125#ifndef __IFilterMapper_FWD_DEFINED__
126#define __IFilterMapper_FWD_DEFINED__
127typedef interface IFilterMapper IFilterMapper;
128#endif
129
130#ifndef __IFilterMapper2_FWD_DEFINED__
131#define __IFilterMapper2_FWD_DEFINED__
132typedef interface IFilterMapper2 IFilterMapper2;
133#endif
134
135#ifndef __IFilterMapper3_FWD_DEFINED__
136#define __IFilterMapper3_FWD_DEFINED__
137typedef interface IFilterMapper3 IFilterMapper3;
138#endif
139
140#ifndef __IQualityControl_FWD_DEFINED__
141#define __IQualityControl_FWD_DEFINED__
142typedef interface IQualityControl IQualityControl;
143#endif
144
145#ifndef __IOverlayNotify_FWD_DEFINED__
146#define __IOverlayNotify_FWD_DEFINED__
147typedef interface IOverlayNotify IOverlayNotify;
148#endif
149
150#ifndef __IOverlayNotify2_FWD_DEFINED__
151#define __IOverlayNotify2_FWD_DEFINED__
152typedef interface IOverlayNotify2 IOverlayNotify2;
153#endif
154
155#ifndef __IOverlay_FWD_DEFINED__
156#define __IOverlay_FWD_DEFINED__
157typedef interface IOverlay IOverlay;
158#endif
159
160#ifndef __IMediaEventSink_FWD_DEFINED__
161#define __IMediaEventSink_FWD_DEFINED__
162typedef interface IMediaEventSink IMediaEventSink;
163#endif
164
165#ifndef __IFileSourceFilter_FWD_DEFINED__
166#define __IFileSourceFilter_FWD_DEFINED__
167typedef interface IFileSourceFilter IFileSourceFilter;
168#endif
169
170#ifndef __IFileSinkFilter_FWD_DEFINED__
171#define __IFileSinkFilter_FWD_DEFINED__
172typedef interface IFileSinkFilter IFileSinkFilter;
173#endif
174
175#ifndef __IFileSinkFilter2_FWD_DEFINED__
176#define __IFileSinkFilter2_FWD_DEFINED__
177typedef interface IFileSinkFilter2 IFileSinkFilter2;
178#endif
179
180#ifndef __IGraphBuilder_FWD_DEFINED__
181#define __IGraphBuilder_FWD_DEFINED__
182typedef interface IGraphBuilder IGraphBuilder;
183#endif
184
185#ifndef __ICaptureGraphBuilder_FWD_DEFINED__
186#define __ICaptureGraphBuilder_FWD_DEFINED__
187typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
188#endif
189
190#ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
191#define __IAMCopyCaptureFileProgress_FWD_DEFINED__
192typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
193#endif
194
195#ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
196#define __ICaptureGraphBuilder2_FWD_DEFINED__
197typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
198#endif
199
200#ifndef __IConfigAviMux_FWD_DEFINED__
201#define __IConfigAviMux_FWD_DEFINED__
202typedef interface IConfigAviMux IConfigAviMux;
203#endif
204
205#ifndef __IConfigInterleaving_FWD_DEFINED__
206#define __IConfigInterleaving_FWD_DEFINED__
207typedef interface IConfigInterleaving IConfigInterleaving;
208#endif
209
210#ifndef __IAMClockSlave_FWD_DEFINED__
211#define __IAMClockSlave_FWD_DEFINED__
212typedef interface IAMClockSlave IAMClockSlave;
213#endif
214
215#ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
216#define __IAMCertifiedOutputProtection_FWD_DEFINED__
217typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
218#endif
219
220#ifndef __IFilterGraph2_FWD_DEFINED__
221#define __IFilterGraph2_FWD_DEFINED__
222typedef interface IFilterGraph2 IFilterGraph2;
223#endif
224
225#ifndef __IStreamBuilder_FWD_DEFINED__
226#define __IStreamBuilder_FWD_DEFINED__
227typedef interface IStreamBuilder IStreamBuilder;
228#endif
229
230#ifndef __IAMStreamConfig_FWD_DEFINED__
231#define __IAMStreamConfig_FWD_DEFINED__
232typedef interface IAMStreamConfig IAMStreamConfig;
233#endif
234
235#ifndef __IAMVideoProcAmp_FWD_DEFINED__
236#define __IAMVideoProcAmp_FWD_DEFINED__
237typedef interface IAMVideoProcAmp IAMVideoProcAmp;
238#endif
239
240#ifndef __IAsyncReader_FWD_DEFINED__
241#define __IAsyncReader_FWD_DEFINED__
242typedef interface IAsyncReader IAsyncReader;
243#endif
244
245#ifndef __IGraphVersion_FWD_DEFINED__
246#define __IGraphVersion_FWD_DEFINED__
247typedef interface IGraphVersion IGraphVersion;
248#endif
249
250#ifndef __IResourceConsumer_FWD_DEFINED__
251#define __IResourceConsumer_FWD_DEFINED__
252typedef interface IResourceConsumer IResourceConsumer;
253#endif
254
255#ifndef __IResourceManager_FWD_DEFINED__
256#define __IResourceManager_FWD_DEFINED__
257typedef interface IResourceManager IResourceManager;
258#endif
259
260#ifndef __IAMStreamControl_FWD_DEFINED__
261#define __IAMStreamControl_FWD_DEFINED__
262typedef interface IAMStreamControl IAMStreamControl;
263#endif
264
265#ifndef __IKsPropertySet_FWD_DEFINED__
266#define __IKsPropertySet_FWD_DEFINED__
267typedef interface IKsPropertySet IKsPropertySet;
268#endif
269
270#ifndef __IMediaPropertyBag_FWD_DEFINED__
271#define __IMediaPropertyBag_FWD_DEFINED__
272typedef interface IMediaPropertyBag IMediaPropertyBag;
273#endif
274
275#ifndef __IPersistMediaPropertyBag_FWD_DEFINED__
276#define __IPersistMediaPropertyBag_FWD_DEFINED__
277typedef interface IPersistMediaPropertyBag IPersistMediaPropertyBag;
278#endif
279
280#ifndef __ISeekingPassThru_FWD_DEFINED__
281#define __ISeekingPassThru_FWD_DEFINED__
282typedef interface ISeekingPassThru ISeekingPassThru;
283#endif
284
285#ifndef __IAMFilterMiscFlags_FWD_DEFINED__
286#define __IAMFilterMiscFlags_FWD_DEFINED__
287typedef interface IAMFilterMiscFlags IAMFilterMiscFlags;
288#endif
289
290#ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
291#define __IAMGraphBuilderCallback_FWD_DEFINED__
292typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
293#endif
294
295#ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
296#define __IAMVfwCaptureDialogs_FWD_DEFINED__
297typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
298#endif
299
300/* Headers for imported files */
301
302#include <unknwn.h>
303#include <objidl.h>
304#include <oaidl.h>
305
306#ifdef __cplusplus
307extern "C" {
308#endif
309
310/**
311 * This file is part of the mingw-w64 runtime package.
312 * No warranty is given; refer to the file DISCLAIMER within this package.
313 */
314
315#include <winapifamily.h>
316
317#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
318
319#define CDEF_CLASS_DEFAULT 0x1
320#define CDEF_BYPASS_CLASS_MANAGER 0x2
321#define CDEF_MERIT_ABOVE_DO_NOT_USE 0x8
322#define CDEF_DEVMON_CMGR_DEVICE 0x10
323#define CDEF_DEVMON_DMO 0x20
324#define CDEF_DEVMON_PNP_DEVICE 0x40
325#define CDEF_DEVMON_FILTER 0x80
326
327#define CDEF_DEVMON_SELECTIVE_MASK 0xf0
328
329
330/*****************************************************************************
331 * ICreateDevEnum interface
332 */
333#ifndef __ICreateDevEnum_INTERFACE_DEFINED__
334#define __ICreateDevEnum_INTERFACE_DEFINED__
335
336DEFINE_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86);
337#if defined(__cplusplus) && !defined(CINTERFACE)
338MIDL_INTERFACE("29840822-5b84-11d0-bd3b-00a0c911ce86")
339ICreateDevEnum : public IUnknown
340{
341    virtual HRESULT STDMETHODCALLTYPE CreateClassEnumerator(
342        REFCLSID clsidDeviceClass,
343        IEnumMoniker **ppEnumMoniker,
344        DWORD dwFlags) = 0;
345
346};
347#ifdef __CRT_UUID_DECL
348__CRT_UUID_DECL(ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86)
349#endif
350#else
351typedef struct ICreateDevEnumVtbl {
352    BEGIN_INTERFACE
353
354    /*** IUnknown methods ***/
355    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
356        ICreateDevEnum* This,
357        REFIID riid,
358        void **ppvObject);
359
360    ULONG (STDMETHODCALLTYPE *AddRef)(
361        ICreateDevEnum* This);
362
363    ULONG (STDMETHODCALLTYPE *Release)(
364        ICreateDevEnum* This);
365
366    /*** ICreateDevEnum methods ***/
367    HRESULT (STDMETHODCALLTYPE *CreateClassEnumerator)(
368        ICreateDevEnum* This,
369        REFCLSID clsidDeviceClass,
370        IEnumMoniker **ppEnumMoniker,
371        DWORD dwFlags);
372
373    END_INTERFACE
374} ICreateDevEnumVtbl;
375interface ICreateDevEnum {
376    CONST_VTBL ICreateDevEnumVtbl* lpVtbl;
377};
378
379#ifdef COBJMACROS
380#ifndef WIDL_C_INLINE_WRAPPERS
381/*** IUnknown methods ***/
382#define ICreateDevEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
383#define ICreateDevEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
384#define ICreateDevEnum_Release(This) (This)->lpVtbl->Release(This)
385/*** ICreateDevEnum methods ***/
386#define ICreateDevEnum_CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags) (This)->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags)
387#else
388/*** IUnknown methods ***/
389static FORCEINLINE HRESULT ICreateDevEnum_QueryInterface(ICreateDevEnum* This,REFIID riid,void **ppvObject) {
390    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
391}
392static FORCEINLINE ULONG ICreateDevEnum_AddRef(ICreateDevEnum* This) {
393    return This->lpVtbl->AddRef(This);
394}
395static FORCEINLINE ULONG ICreateDevEnum_Release(ICreateDevEnum* This) {
396    return This->lpVtbl->Release(This);
397}
398/*** ICreateDevEnum methods ***/
399static FORCEINLINE HRESULT ICreateDevEnum_CreateClassEnumerator(ICreateDevEnum* This,REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags) {
400    return This->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags);
401}
402#endif
403#endif
404
405#endif
406
407HRESULT STDMETHODCALLTYPE ICreateDevEnum_CreateClassEnumerator_Proxy(
408    ICreateDevEnum* This,
409    REFCLSID clsidDeviceClass,
410    IEnumMoniker **ppEnumMoniker,
411    DWORD dwFlags);
412void __RPC_STUB ICreateDevEnum_CreateClassEnumerator_Stub(
413    IRpcStubBuffer* This,
414    IRpcChannelBuffer* pRpcChannelBuffer,
415    PRPC_MESSAGE pRpcMessage,
416    DWORD* pdwStubPhase);
417
418#endif  /* __ICreateDevEnum_INTERFACE_DEFINED__ */
419
420#endif
421/**
422 * This file is part of the mingw-w64 runtime package.
423 * No warranty is given; refer to the file DISCLAIMER within this package.
424 */
425
426#include <winapifamily.h>
427
428#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
429
430#define CHARS_IN_GUID 39
431
432#ifdef WINE_NO_UNICODE_MACROS
433#undef GetTimeFormat
434#endif
435
436typedef struct _AMMediaType {
437    GUID majortype;
438    GUID subtype;
439    WINBOOL bFixedSizeSamples;
440    WINBOOL bTemporalCompression;
441    ULONG lSampleSize;
442    GUID formattype;
443    IUnknown *pUnk;
444    ULONG cbFormat;
445    BYTE *pbFormat;
446} AM_MEDIA_TYPE;
447
448typedef enum _PinDirection {
449    PINDIR_INPUT = 0,
450    PINDIR_OUTPUT = 1
451} PIN_DIRECTION;
452
453#define MAX_PIN_NAME 128
454#define MAX_FILTER_NAME 128
455
456#ifndef REFERENCE_TIME_DEFINED
457#define REFERENCE_TIME_DEFINED
458typedef LONGLONG REFERENCE_TIME;
459#endif
460
461#ifndef REFTIME_DEFINED
462#define REFTIME_DEFINED
463typedef double REFTIME;
464#endif
465
466typedef DWORD_PTR HSEMAPHORE;
467typedef DWORD_PTR HEVENT;
468
469typedef struct _AllocatorProperties {
470    LONG cBuffers;
471    LONG cbBuffer;
472    LONG cbAlign;
473    LONG cbPrefix;
474} ALLOCATOR_PROPERTIES;
475
476#ifndef __IAMovieSetup_FWD_DEFINED__
477#define __IAMovieSetup_FWD_DEFINED__
478typedef interface IAMovieSetup IAMovieSetup;
479#endif
480
481#ifndef __IEnumFilters_FWD_DEFINED__
482#define __IEnumFilters_FWD_DEFINED__
483typedef interface IEnumFilters IEnumFilters;
484#endif
485
486#ifndef __IEnumMediaTypes_FWD_DEFINED__
487#define __IEnumMediaTypes_FWD_DEFINED__
488typedef interface IEnumMediaTypes IEnumMediaTypes;
489#endif
490
491#ifndef __IEnumPins_FWD_DEFINED__
492#define __IEnumPins_FWD_DEFINED__
493typedef interface IEnumPins IEnumPins;
494#endif
495
496#ifndef __IBaseFilter_FWD_DEFINED__
497#define __IBaseFilter_FWD_DEFINED__
498typedef interface IBaseFilter IBaseFilter;
499#endif
500
501#ifndef __IFilterGraph_FWD_DEFINED__
502#define __IFilterGraph_FWD_DEFINED__
503typedef interface IFilterGraph IFilterGraph;
504#endif
505
506#ifndef __IMediaFilter_FWD_DEFINED__
507#define __IMediaFilter_FWD_DEFINED__
508typedef interface IMediaFilter IMediaFilter;
509#endif
510
511#ifndef __IMediaSample_FWD_DEFINED__
512#define __IMediaSample_FWD_DEFINED__
513typedef interface IMediaSample IMediaSample;
514#endif
515
516#ifndef __IMemAllocator_FWD_DEFINED__
517#define __IMemAllocator_FWD_DEFINED__
518typedef interface IMemAllocator IMemAllocator;
519#endif
520
521#ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
522#define __IMemAllocatorCallbackTemp_FWD_DEFINED__
523typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
524#endif
525
526#ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
527#define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
528typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
529#endif
530
531#ifndef __IMemInputPin_FWD_DEFINED__
532#define __IMemInputPin_FWD_DEFINED__
533typedef interface IMemInputPin IMemInputPin;
534#endif
535
536#ifndef __IPin_FWD_DEFINED__
537#define __IPin_FWD_DEFINED__
538typedef interface IPin IPin;
539#endif
540
541#ifndef __IReferenceClock_FWD_DEFINED__
542#define __IReferenceClock_FWD_DEFINED__
543typedef interface IReferenceClock IReferenceClock;
544#endif
545
546
547/*****************************************************************************
548 * IPin interface
549 */
550#ifndef __IPin_INTERFACE_DEFINED__
551#define __IPin_INTERFACE_DEFINED__
552
553typedef struct _PinInfo {
554    IBaseFilter *pFilter;
555    PIN_DIRECTION dir;
556    WCHAR achName[128];
557} PIN_INFO;
558
559DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
560#if defined(__cplusplus) && !defined(CINTERFACE)
561MIDL_INTERFACE("56a86891-0ad4-11ce-b03a-0020af0ba770")
562IPin : public IUnknown
563{
564    virtual HRESULT STDMETHODCALLTYPE Connect(
565        IPin *pReceivePin,
566        const AM_MEDIA_TYPE *pmt) = 0;
567
568    virtual HRESULT STDMETHODCALLTYPE ReceiveConnection(
569        IPin *pConnector,
570        const AM_MEDIA_TYPE *pmt) = 0;
571
572    virtual HRESULT STDMETHODCALLTYPE Disconnect(
573        ) = 0;
574
575    virtual HRESULT STDMETHODCALLTYPE ConnectedTo(
576        IPin **pPin) = 0;
577
578    virtual HRESULT STDMETHODCALLTYPE ConnectionMediaType(
579        AM_MEDIA_TYPE *pmt) = 0;
580
581    virtual HRESULT STDMETHODCALLTYPE QueryPinInfo(
582        PIN_INFO *pInfo) = 0;
583
584    virtual HRESULT STDMETHODCALLTYPE QueryDirection(
585        PIN_DIRECTION *pPinDir) = 0;
586
587    virtual HRESULT STDMETHODCALLTYPE QueryId(
588        LPWSTR *Id) = 0;
589
590    virtual HRESULT STDMETHODCALLTYPE QueryAccept(
591        const AM_MEDIA_TYPE *pmt) = 0;
592
593    virtual HRESULT STDMETHODCALLTYPE EnumMediaTypes(
594        IEnumMediaTypes **ppEnum) = 0;
595
596    virtual HRESULT STDMETHODCALLTYPE QueryInternalConnections(
597        IPin **apPin,
598        ULONG *nPin) = 0;
599
600    virtual HRESULT STDMETHODCALLTYPE EndOfStream(
601        ) = 0;
602
603    virtual HRESULT STDMETHODCALLTYPE BeginFlush(
604        ) = 0;
605
606    virtual HRESULT STDMETHODCALLTYPE EndFlush(
607        ) = 0;
608
609    virtual HRESULT STDMETHODCALLTYPE NewSegment(
610        REFERENCE_TIME tStart,
611        REFERENCE_TIME tStop,
612        double dRate) = 0;
613
614};
615#ifdef __CRT_UUID_DECL
616__CRT_UUID_DECL(IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
617#endif
618#else
619typedef struct IPinVtbl {
620    BEGIN_INTERFACE
621
622    /*** IUnknown methods ***/
623    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
624        IPin* This,
625        REFIID riid,
626        void **ppvObject);
627
628    ULONG (STDMETHODCALLTYPE *AddRef)(
629        IPin* This);
630
631    ULONG (STDMETHODCALLTYPE *Release)(
632        IPin* This);
633
634    /*** IPin methods ***/
635    HRESULT (STDMETHODCALLTYPE *Connect)(
636        IPin* This,
637        IPin *pReceivePin,
638        const AM_MEDIA_TYPE *pmt);
639
640    HRESULT (STDMETHODCALLTYPE *ReceiveConnection)(
641        IPin* This,
642        IPin *pConnector,
643        const AM_MEDIA_TYPE *pmt);
644
645    HRESULT (STDMETHODCALLTYPE *Disconnect)(
646        IPin* This);
647
648    HRESULT (STDMETHODCALLTYPE *ConnectedTo)(
649        IPin* This,
650        IPin **pPin);
651
652    HRESULT (STDMETHODCALLTYPE *ConnectionMediaType)(
653        IPin* This,
654        AM_MEDIA_TYPE *pmt);
655
656    HRESULT (STDMETHODCALLTYPE *QueryPinInfo)(
657        IPin* This,
658        PIN_INFO *pInfo);
659
660    HRESULT (STDMETHODCALLTYPE *QueryDirection)(
661        IPin* This,
662        PIN_DIRECTION *pPinDir);
663
664    HRESULT (STDMETHODCALLTYPE *QueryId)(
665        IPin* This,
666        LPWSTR *Id);
667
668    HRESULT (STDMETHODCALLTYPE *QueryAccept)(
669        IPin* This,
670        const AM_MEDIA_TYPE *pmt);
671
672    HRESULT (STDMETHODCALLTYPE *EnumMediaTypes)(
673        IPin* This,
674        IEnumMediaTypes **ppEnum);
675
676    HRESULT (STDMETHODCALLTYPE *QueryInternalConnections)(
677        IPin* This,
678        IPin **apPin,
679        ULONG *nPin);
680
681    HRESULT (STDMETHODCALLTYPE *EndOfStream)(
682        IPin* This);
683
684    HRESULT (STDMETHODCALLTYPE *BeginFlush)(
685        IPin* This);
686
687    HRESULT (STDMETHODCALLTYPE *EndFlush)(
688        IPin* This);
689
690    HRESULT (STDMETHODCALLTYPE *NewSegment)(
691        IPin* This,
692        REFERENCE_TIME tStart,
693        REFERENCE_TIME tStop,
694        double dRate);
695
696    END_INTERFACE
697} IPinVtbl;
698interface IPin {
699    CONST_VTBL IPinVtbl* lpVtbl;
700};
701
702#ifdef COBJMACROS
703#ifndef WIDL_C_INLINE_WRAPPERS
704/*** IUnknown methods ***/
705#define IPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
706#define IPin_AddRef(This) (This)->lpVtbl->AddRef(This)
707#define IPin_Release(This) (This)->lpVtbl->Release(This)
708/*** IPin methods ***/
709#define IPin_Connect(This,pReceivePin,pmt) (This)->lpVtbl->Connect(This,pReceivePin,pmt)
710#define IPin_ReceiveConnection(This,pConnector,pmt) (This)->lpVtbl->ReceiveConnection(This,pConnector,pmt)
711#define IPin_Disconnect(This) (This)->lpVtbl->Disconnect(This)
712#define IPin_ConnectedTo(This,pPin) (This)->lpVtbl->ConnectedTo(This,pPin)
713#define IPin_ConnectionMediaType(This,pmt) (This)->lpVtbl->ConnectionMediaType(This,pmt)
714#define IPin_QueryPinInfo(This,pInfo) (This)->lpVtbl->QueryPinInfo(This,pInfo)
715#define IPin_QueryDirection(This,pPinDir) (This)->lpVtbl->QueryDirection(This,pPinDir)
716#define IPin_QueryId(This,Id) (This)->lpVtbl->QueryId(This,Id)
717#define IPin_QueryAccept(This,pmt) (This)->lpVtbl->QueryAccept(This,pmt)
718#define IPin_EnumMediaTypes(This,ppEnum) (This)->lpVtbl->EnumMediaTypes(This,ppEnum)
719#define IPin_QueryInternalConnections(This,apPin,nPin) (This)->lpVtbl->QueryInternalConnections(This,apPin,nPin)
720#define IPin_EndOfStream(This) (This)->lpVtbl->EndOfStream(This)
721#define IPin_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
722#define IPin_EndFlush(This) (This)->lpVtbl->EndFlush(This)
723#define IPin_NewSegment(This,tStart,tStop,dRate) (This)->lpVtbl->NewSegment(This,tStart,tStop,dRate)
724#else
725/*** IUnknown methods ***/
726static FORCEINLINE HRESULT IPin_QueryInterface(IPin* This,REFIID riid,void **ppvObject) {
727    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
728}
729static FORCEINLINE ULONG IPin_AddRef(IPin* This) {
730    return This->lpVtbl->AddRef(This);
731}
732static FORCEINLINE ULONG IPin_Release(IPin* This) {
733    return This->lpVtbl->Release(This);
734}
735/*** IPin methods ***/
736static FORCEINLINE HRESULT IPin_Connect(IPin* This,IPin *pReceivePin,const AM_MEDIA_TYPE *pmt) {
737    return This->lpVtbl->Connect(This,pReceivePin,pmt);
738}
739static FORCEINLINE HRESULT IPin_ReceiveConnection(IPin* This,IPin *pConnector,const AM_MEDIA_TYPE *pmt) {
740    return This->lpVtbl->ReceiveConnection(This,pConnector,pmt);
741}
742static FORCEINLINE HRESULT IPin_Disconnect(IPin* This) {
743    return This->lpVtbl->Disconnect(This);
744}
745static FORCEINLINE HRESULT IPin_ConnectedTo(IPin* This,IPin **pPin) {
746    return This->lpVtbl->ConnectedTo(This,pPin);
747}
748static FORCEINLINE HRESULT IPin_ConnectionMediaType(IPin* This,AM_MEDIA_TYPE *pmt) {
749    return This->lpVtbl->ConnectionMediaType(This,pmt);
750}
751static FORCEINLINE HRESULT IPin_QueryPinInfo(IPin* This,PIN_INFO *pInfo) {
752    return This->lpVtbl->QueryPinInfo(This,pInfo);
753}
754static FORCEINLINE HRESULT IPin_QueryDirection(IPin* This,PIN_DIRECTION *pPinDir) {
755    return This->lpVtbl->QueryDirection(This,pPinDir);
756}
757static FORCEINLINE HRESULT IPin_QueryId(IPin* This,LPWSTR *Id) {
758    return This->lpVtbl->QueryId(This,Id);
759}
760static FORCEINLINE HRESULT IPin_QueryAccept(IPin* This,const AM_MEDIA_TYPE *pmt) {
761    return This->lpVtbl->QueryAccept(This,pmt);
762}
763static FORCEINLINE HRESULT IPin_EnumMediaTypes(IPin* This,IEnumMediaTypes **ppEnum) {
764    return This->lpVtbl->EnumMediaTypes(This,ppEnum);
765}
766static FORCEINLINE HRESULT IPin_QueryInternalConnections(IPin* This,IPin **apPin,ULONG *nPin) {
767    return This->lpVtbl->QueryInternalConnections(This,apPin,nPin);
768}
769static FORCEINLINE HRESULT IPin_EndOfStream(IPin* This) {
770    return This->lpVtbl->EndOfStream(This);
771}
772static FORCEINLINE HRESULT IPin_BeginFlush(IPin* This) {
773    return This->lpVtbl->BeginFlush(This);
774}
775static FORCEINLINE HRESULT IPin_EndFlush(IPin* This) {
776    return This->lpVtbl->EndFlush(This);
777}
778static FORCEINLINE HRESULT IPin_NewSegment(IPin* This,REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate) {
779    return This->lpVtbl->NewSegment(This,tStart,tStop,dRate);
780}
781#endif
782#endif
783
784#endif
785
786HRESULT STDMETHODCALLTYPE IPin_Connect_Proxy(
787    IPin* This,
788    IPin *pReceivePin,
789    const AM_MEDIA_TYPE *pmt);
790void __RPC_STUB IPin_Connect_Stub(
791    IRpcStubBuffer* This,
792    IRpcChannelBuffer* pRpcChannelBuffer,
793    PRPC_MESSAGE pRpcMessage,
794    DWORD* pdwStubPhase);
795HRESULT STDMETHODCALLTYPE IPin_ReceiveConnection_Proxy(
796    IPin* This,
797    IPin *pConnector,
798    const AM_MEDIA_TYPE *pmt);
799void __RPC_STUB IPin_ReceiveConnection_Stub(
800    IRpcStubBuffer* This,
801    IRpcChannelBuffer* pRpcChannelBuffer,
802    PRPC_MESSAGE pRpcMessage,
803    DWORD* pdwStubPhase);
804HRESULT STDMETHODCALLTYPE IPin_Disconnect_Proxy(
805    IPin* This);
806void __RPC_STUB IPin_Disconnect_Stub(
807    IRpcStubBuffer* This,
808    IRpcChannelBuffer* pRpcChannelBuffer,
809    PRPC_MESSAGE pRpcMessage,
810    DWORD* pdwStubPhase);
811HRESULT STDMETHODCALLTYPE IPin_ConnectedTo_Proxy(
812    IPin* This,
813    IPin **pPin);
814void __RPC_STUB IPin_ConnectedTo_Stub(
815    IRpcStubBuffer* This,
816    IRpcChannelBuffer* pRpcChannelBuffer,
817    PRPC_MESSAGE pRpcMessage,
818    DWORD* pdwStubPhase);
819HRESULT STDMETHODCALLTYPE IPin_ConnectionMediaType_Proxy(
820    IPin* This,
821    AM_MEDIA_TYPE *pmt);
822void __RPC_STUB IPin_ConnectionMediaType_Stub(
823    IRpcStubBuffer* This,
824    IRpcChannelBuffer* pRpcChannelBuffer,
825    PRPC_MESSAGE pRpcMessage,
826    DWORD* pdwStubPhase);
827HRESULT STDMETHODCALLTYPE IPin_QueryPinInfo_Proxy(
828    IPin* This,
829    PIN_INFO *pInfo);
830void __RPC_STUB IPin_QueryPinInfo_Stub(
831    IRpcStubBuffer* This,
832    IRpcChannelBuffer* pRpcChannelBuffer,
833    PRPC_MESSAGE pRpcMessage,
834    DWORD* pdwStubPhase);
835HRESULT STDMETHODCALLTYPE IPin_QueryDirection_Proxy(
836    IPin* This,
837    PIN_DIRECTION *pPinDir);
838void __RPC_STUB IPin_QueryDirection_Stub(
839    IRpcStubBuffer* This,
840    IRpcChannelBuffer* pRpcChannelBuffer,
841    PRPC_MESSAGE pRpcMessage,
842    DWORD* pdwStubPhase);
843HRESULT STDMETHODCALLTYPE IPin_QueryId_Proxy(
844    IPin* This,
845    LPWSTR *Id);
846void __RPC_STUB IPin_QueryId_Stub(
847    IRpcStubBuffer* This,
848    IRpcChannelBuffer* pRpcChannelBuffer,
849    PRPC_MESSAGE pRpcMessage,
850    DWORD* pdwStubPhase);
851HRESULT STDMETHODCALLTYPE IPin_QueryAccept_Proxy(
852    IPin* This,
853    const AM_MEDIA_TYPE *pmt);
854void __RPC_STUB IPin_QueryAccept_Stub(
855    IRpcStubBuffer* This,
856    IRpcChannelBuffer* pRpcChannelBuffer,
857    PRPC_MESSAGE pRpcMessage,
858    DWORD* pdwStubPhase);
859HRESULT STDMETHODCALLTYPE IPin_EnumMediaTypes_Proxy(
860    IPin* This,
861    IEnumMediaTypes **ppEnum);
862void __RPC_STUB IPin_EnumMediaTypes_Stub(
863    IRpcStubBuffer* This,
864    IRpcChannelBuffer* pRpcChannelBuffer,
865    PRPC_MESSAGE pRpcMessage,
866    DWORD* pdwStubPhase);
867HRESULT STDMETHODCALLTYPE IPin_QueryInternalConnections_Proxy(
868    IPin* This,
869    IPin **apPin,
870    ULONG *nPin);
871void __RPC_STUB IPin_QueryInternalConnections_Stub(
872    IRpcStubBuffer* This,
873    IRpcChannelBuffer* pRpcChannelBuffer,
874    PRPC_MESSAGE pRpcMessage,
875    DWORD* pdwStubPhase);
876HRESULT STDMETHODCALLTYPE IPin_EndOfStream_Proxy(
877    IPin* This);
878void __RPC_STUB IPin_EndOfStream_Stub(
879    IRpcStubBuffer* This,
880    IRpcChannelBuffer* pRpcChannelBuffer,
881    PRPC_MESSAGE pRpcMessage,
882    DWORD* pdwStubPhase);
883HRESULT STDMETHODCALLTYPE IPin_BeginFlush_Proxy(
884    IPin* This);
885void __RPC_STUB IPin_BeginFlush_Stub(
886    IRpcStubBuffer* This,
887    IRpcChannelBuffer* pRpcChannelBuffer,
888    PRPC_MESSAGE pRpcMessage,
889    DWORD* pdwStubPhase);
890HRESULT STDMETHODCALLTYPE IPin_EndFlush_Proxy(
891    IPin* This);
892void __RPC_STUB IPin_EndFlush_Stub(
893    IRpcStubBuffer* This,
894    IRpcChannelBuffer* pRpcChannelBuffer,
895    PRPC_MESSAGE pRpcMessage,
896    DWORD* pdwStubPhase);
897HRESULT STDMETHODCALLTYPE IPin_NewSegment_Proxy(
898    IPin* This,
899    REFERENCE_TIME tStart,
900    REFERENCE_TIME tStop,
901    double dRate);
902void __RPC_STUB IPin_NewSegment_Stub(
903    IRpcStubBuffer* This,
904    IRpcChannelBuffer* pRpcChannelBuffer,
905    PRPC_MESSAGE pRpcMessage,
906    DWORD* pdwStubPhase);
907
908#endif  /* __IPin_INTERFACE_DEFINED__ */
909
910typedef IPin *PPIN;
911
912/*****************************************************************************
913 * IEnumPins interface
914 */
915#ifndef __IEnumPins_INTERFACE_DEFINED__
916#define __IEnumPins_INTERFACE_DEFINED__
917
918DEFINE_GUID(IID_IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
919#if defined(__cplusplus) && !defined(CINTERFACE)
920MIDL_INTERFACE("56a86892-0ad4-11ce-b03a-0020af0ba770")
921IEnumPins : public IUnknown
922{
923    virtual HRESULT STDMETHODCALLTYPE Next(
924        ULONG cPins,
925        IPin **ppPins,
926        ULONG *pcFetched) = 0;
927
928    virtual HRESULT STDMETHODCALLTYPE Skip(
929        ULONG cPins) = 0;
930
931    virtual HRESULT STDMETHODCALLTYPE Reset(
932        ) = 0;
933
934    virtual HRESULT STDMETHODCALLTYPE Clone(
935        IEnumPins **ppEnum) = 0;
936
937};
938#ifdef __CRT_UUID_DECL
939__CRT_UUID_DECL(IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
940#endif
941#else
942typedef struct IEnumPinsVtbl {
943    BEGIN_INTERFACE
944
945    /*** IUnknown methods ***/
946    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
947        IEnumPins* This,
948        REFIID riid,
949        void **ppvObject);
950
951    ULONG (STDMETHODCALLTYPE *AddRef)(
952        IEnumPins* This);
953
954    ULONG (STDMETHODCALLTYPE *Release)(
955        IEnumPins* This);
956
957    /*** IEnumPins methods ***/
958    HRESULT (STDMETHODCALLTYPE *Next)(
959        IEnumPins* This,
960        ULONG cPins,
961        IPin **ppPins,
962        ULONG *pcFetched);
963
964    HRESULT (STDMETHODCALLTYPE *Skip)(
965        IEnumPins* This,
966        ULONG cPins);
967
968    HRESULT (STDMETHODCALLTYPE *Reset)(
969        IEnumPins* This);
970
971    HRESULT (STDMETHODCALLTYPE *Clone)(
972        IEnumPins* This,
973        IEnumPins **ppEnum);
974
975    END_INTERFACE
976} IEnumPinsVtbl;
977interface IEnumPins {
978    CONST_VTBL IEnumPinsVtbl* lpVtbl;
979};
980
981#ifdef COBJMACROS
982#ifndef WIDL_C_INLINE_WRAPPERS
983/*** IUnknown methods ***/
984#define IEnumPins_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
985#define IEnumPins_AddRef(This) (This)->lpVtbl->AddRef(This)
986#define IEnumPins_Release(This) (This)->lpVtbl->Release(This)
987/*** IEnumPins methods ***/
988#define IEnumPins_Next(This,cPins,ppPins,pcFetched) (This)->lpVtbl->Next(This,cPins,ppPins,pcFetched)
989#define IEnumPins_Skip(This,cPins) (This)->lpVtbl->Skip(This,cPins)
990#define IEnumPins_Reset(This) (This)->lpVtbl->Reset(This)
991#define IEnumPins_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
992#else
993/*** IUnknown methods ***/
994static FORCEINLINE HRESULT IEnumPins_QueryInterface(IEnumPins* This,REFIID riid,void **ppvObject) {
995    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
996}
997static FORCEINLINE ULONG IEnumPins_AddRef(IEnumPins* This) {
998    return This->lpVtbl->AddRef(This);
999}
1000static FORCEINLINE ULONG IEnumPins_Release(IEnumPins* This) {
1001    return This->lpVtbl->Release(This);
1002}
1003/*** IEnumPins methods ***/
1004static FORCEINLINE HRESULT IEnumPins_Next(IEnumPins* This,ULONG cPins,IPin **ppPins,ULONG *pcFetched) {
1005    return This->lpVtbl->Next(This,cPins,ppPins,pcFetched);
1006}
1007static FORCEINLINE HRESULT IEnumPins_Skip(IEnumPins* This,ULONG cPins) {
1008    return This->lpVtbl->Skip(This,cPins);
1009}
1010static FORCEINLINE HRESULT IEnumPins_Reset(IEnumPins* This) {
1011    return This->lpVtbl->Reset(This);
1012}
1013static FORCEINLINE HRESULT IEnumPins_Clone(IEnumPins* This,IEnumPins **ppEnum) {
1014    return This->lpVtbl->Clone(This,ppEnum);
1015}
1016#endif
1017#endif
1018
1019#endif
1020
1021HRESULT STDMETHODCALLTYPE IEnumPins_Next_Proxy(
1022    IEnumPins* This,
1023    ULONG cPins,
1024    IPin **ppPins,
1025    ULONG *pcFetched);
1026void __RPC_STUB IEnumPins_Next_Stub(
1027    IRpcStubBuffer* This,
1028    IRpcChannelBuffer* pRpcChannelBuffer,
1029    PRPC_MESSAGE pRpcMessage,
1030    DWORD* pdwStubPhase);
1031HRESULT STDMETHODCALLTYPE IEnumPins_Skip_Proxy(
1032    IEnumPins* This,
1033    ULONG cPins);
1034void __RPC_STUB IEnumPins_Skip_Stub(
1035    IRpcStubBuffer* This,
1036    IRpcChannelBuffer* pRpcChannelBuffer,
1037    PRPC_MESSAGE pRpcMessage,
1038    DWORD* pdwStubPhase);
1039HRESULT STDMETHODCALLTYPE IEnumPins_Reset_Proxy(
1040    IEnumPins* This);
1041void __RPC_STUB IEnumPins_Reset_Stub(
1042    IRpcStubBuffer* This,
1043    IRpcChannelBuffer* pRpcChannelBuffer,
1044    PRPC_MESSAGE pRpcMessage,
1045    DWORD* pdwStubPhase);
1046HRESULT STDMETHODCALLTYPE IEnumPins_Clone_Proxy(
1047    IEnumPins* This,
1048    IEnumPins **ppEnum);
1049void __RPC_STUB IEnumPins_Clone_Stub(
1050    IRpcStubBuffer* This,
1051    IRpcChannelBuffer* pRpcChannelBuffer,
1052    PRPC_MESSAGE pRpcMessage,
1053    DWORD* pdwStubPhase);
1054
1055#endif  /* __IEnumPins_INTERFACE_DEFINED__ */
1056
1057typedef IEnumPins *PENUMPINS;
1058
1059/*****************************************************************************
1060 * IEnumMediaTypes interface
1061 */
1062#ifndef __IEnumMediaTypes_INTERFACE_DEFINED__
1063#define __IEnumMediaTypes_INTERFACE_DEFINED__
1064
1065DEFINE_GUID(IID_IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a);
1066#if defined(__cplusplus) && !defined(CINTERFACE)
1067MIDL_INTERFACE("89c31040-846b-11ce-97d3-00aa0055595a")
1068IEnumMediaTypes : public IUnknown
1069{
1070    virtual HRESULT STDMETHODCALLTYPE Next(
1071        ULONG cMediaTypes,
1072        AM_MEDIA_TYPE **ppMediaTypes,
1073        ULONG *pcFetched) = 0;
1074
1075    virtual HRESULT STDMETHODCALLTYPE Skip(
1076        ULONG cMediaTypes) = 0;
1077
1078    virtual HRESULT STDMETHODCALLTYPE Reset(
1079        ) = 0;
1080
1081    virtual HRESULT STDMETHODCALLTYPE Clone(
1082        IEnumMediaTypes **ppEnum) = 0;
1083
1084};
1085#ifdef __CRT_UUID_DECL
1086__CRT_UUID_DECL(IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a)
1087#endif
1088#else
1089typedef struct IEnumMediaTypesVtbl {
1090    BEGIN_INTERFACE
1091
1092    /*** IUnknown methods ***/
1093    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1094        IEnumMediaTypes* This,
1095        REFIID riid,
1096        void **ppvObject);
1097
1098    ULONG (STDMETHODCALLTYPE *AddRef)(
1099        IEnumMediaTypes* This);
1100
1101    ULONG (STDMETHODCALLTYPE *Release)(
1102        IEnumMediaTypes* This);
1103
1104    /*** IEnumMediaTypes methods ***/
1105    HRESULT (STDMETHODCALLTYPE *Next)(
1106        IEnumMediaTypes* This,
1107        ULONG cMediaTypes,
1108        AM_MEDIA_TYPE **ppMediaTypes,
1109        ULONG *pcFetched);
1110
1111    HRESULT (STDMETHODCALLTYPE *Skip)(
1112        IEnumMediaTypes* This,
1113        ULONG cMediaTypes);
1114
1115    HRESULT (STDMETHODCALLTYPE *Reset)(
1116        IEnumMediaTypes* This);
1117
1118    HRESULT (STDMETHODCALLTYPE *Clone)(
1119        IEnumMediaTypes* This,
1120        IEnumMediaTypes **ppEnum);
1121
1122    END_INTERFACE
1123} IEnumMediaTypesVtbl;
1124interface IEnumMediaTypes {
1125    CONST_VTBL IEnumMediaTypesVtbl* lpVtbl;
1126};
1127
1128#ifdef COBJMACROS
1129#ifndef WIDL_C_INLINE_WRAPPERS
1130/*** IUnknown methods ***/
1131#define IEnumMediaTypes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1132#define IEnumMediaTypes_AddRef(This) (This)->lpVtbl->AddRef(This)
1133#define IEnumMediaTypes_Release(This) (This)->lpVtbl->Release(This)
1134/*** IEnumMediaTypes methods ***/
1135#define IEnumMediaTypes_Next(This,cMediaTypes,ppMediaTypes,pcFetched) (This)->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched)
1136#define IEnumMediaTypes_Skip(This,cMediaTypes) (This)->lpVtbl->Skip(This,cMediaTypes)
1137#define IEnumMediaTypes_Reset(This) (This)->lpVtbl->Reset(This)
1138#define IEnumMediaTypes_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
1139#else
1140/*** IUnknown methods ***/
1141static FORCEINLINE HRESULT IEnumMediaTypes_QueryInterface(IEnumMediaTypes* This,REFIID riid,void **ppvObject) {
1142    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1143}
1144static FORCEINLINE ULONG IEnumMediaTypes_AddRef(IEnumMediaTypes* This) {
1145    return This->lpVtbl->AddRef(This);
1146}
1147static FORCEINLINE ULONG IEnumMediaTypes_Release(IEnumMediaTypes* This) {
1148    return This->lpVtbl->Release(This);
1149}
1150/*** IEnumMediaTypes methods ***/
1151static FORCEINLINE HRESULT IEnumMediaTypes_Next(IEnumMediaTypes* This,ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched) {
1152    return This->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched);
1153}
1154static FORCEINLINE HRESULT IEnumMediaTypes_Skip(IEnumMediaTypes* This,ULONG cMediaTypes) {
1155    return This->lpVtbl->Skip(This,cMediaTypes);
1156}
1157static FORCEINLINE HRESULT IEnumMediaTypes_Reset(IEnumMediaTypes* This) {
1158    return This->lpVtbl->Reset(This);
1159}
1160static FORCEINLINE HRESULT IEnumMediaTypes_Clone(IEnumMediaTypes* This,IEnumMediaTypes **ppEnum) {
1161    return This->lpVtbl->Clone(This,ppEnum);
1162}
1163#endif
1164#endif
1165
1166#endif
1167
1168HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Next_Proxy(
1169    IEnumMediaTypes* This,
1170    ULONG cMediaTypes,
1171    AM_MEDIA_TYPE **ppMediaTypes,
1172    ULONG *pcFetched);
1173void __RPC_STUB IEnumMediaTypes_Next_Stub(
1174    IRpcStubBuffer* This,
1175    IRpcChannelBuffer* pRpcChannelBuffer,
1176    PRPC_MESSAGE pRpcMessage,
1177    DWORD* pdwStubPhase);
1178HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Skip_Proxy(
1179    IEnumMediaTypes* This,
1180    ULONG cMediaTypes);
1181void __RPC_STUB IEnumMediaTypes_Skip_Stub(
1182    IRpcStubBuffer* This,
1183    IRpcChannelBuffer* pRpcChannelBuffer,
1184    PRPC_MESSAGE pRpcMessage,
1185    DWORD* pdwStubPhase);
1186HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Reset_Proxy(
1187    IEnumMediaTypes* This);
1188void __RPC_STUB IEnumMediaTypes_Reset_Stub(
1189    IRpcStubBuffer* This,
1190    IRpcChannelBuffer* pRpcChannelBuffer,
1191    PRPC_MESSAGE pRpcMessage,
1192    DWORD* pdwStubPhase);
1193HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Clone_Proxy(
1194    IEnumMediaTypes* This,
1195    IEnumMediaTypes **ppEnum);
1196void __RPC_STUB IEnumMediaTypes_Clone_Stub(
1197    IRpcStubBuffer* This,
1198    IRpcChannelBuffer* pRpcChannelBuffer,
1199    PRPC_MESSAGE pRpcMessage,
1200    DWORD* pdwStubPhase);
1201
1202#endif  /* __IEnumMediaTypes_INTERFACE_DEFINED__ */
1203
1204typedef IEnumMediaTypes *PENUMMEDIATYPES;
1205
1206/*****************************************************************************
1207 * IFilterGraph interface
1208 */
1209#ifndef __IFilterGraph_INTERFACE_DEFINED__
1210#define __IFilterGraph_INTERFACE_DEFINED__
1211
1212DEFINE_GUID(IID_IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1213#if defined(__cplusplus) && !defined(CINTERFACE)
1214MIDL_INTERFACE("56a8689f-0ad4-11ce-b03a-0020af0ba770")
1215IFilterGraph : public IUnknown
1216{
1217    virtual HRESULT STDMETHODCALLTYPE AddFilter(
1218        IBaseFilter *pFilter,
1219        LPCWSTR pName) = 0;
1220
1221    virtual HRESULT STDMETHODCALLTYPE RemoveFilter(
1222        IBaseFilter *pFilter) = 0;
1223
1224    virtual HRESULT STDMETHODCALLTYPE EnumFilters(
1225        IEnumFilters **ppEnum) = 0;
1226
1227    virtual HRESULT STDMETHODCALLTYPE FindFilterByName(
1228        LPCWSTR pName,
1229        IBaseFilter **ppFilter) = 0;
1230
1231    virtual HRESULT STDMETHODCALLTYPE ConnectDirect(
1232        IPin *ppinOut,
1233        IPin *ppinIn,
1234        const AM_MEDIA_TYPE *pmt) = 0;
1235
1236    virtual HRESULT STDMETHODCALLTYPE Reconnect(
1237        IPin *ppin) = 0;
1238
1239    virtual HRESULT STDMETHODCALLTYPE Disconnect(
1240        IPin *ppin) = 0;
1241
1242    virtual HRESULT STDMETHODCALLTYPE SetDefaultSyncSource(
1243        ) = 0;
1244
1245};
1246#ifdef __CRT_UUID_DECL
1247__CRT_UUID_DECL(IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1248#endif
1249#else
1250typedef struct IFilterGraphVtbl {
1251    BEGIN_INTERFACE
1252
1253    /*** IUnknown methods ***/
1254    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1255        IFilterGraph* This,
1256        REFIID riid,
1257        void **ppvObject);
1258
1259    ULONG (STDMETHODCALLTYPE *AddRef)(
1260        IFilterGraph* This);
1261
1262    ULONG (STDMETHODCALLTYPE *Release)(
1263        IFilterGraph* This);
1264
1265    /*** IFilterGraph methods ***/
1266    HRESULT (STDMETHODCALLTYPE *AddFilter)(
1267        IFilterGraph* This,
1268        IBaseFilter *pFilter,
1269        LPCWSTR pName);
1270
1271    HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
1272        IFilterGraph* This,
1273        IBaseFilter *pFilter);
1274
1275    HRESULT (STDMETHODCALLTYPE *EnumFilters)(
1276        IFilterGraph* This,
1277        IEnumFilters **ppEnum);
1278
1279    HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
1280        IFilterGraph* This,
1281        LPCWSTR pName,
1282        IBaseFilter **ppFilter);
1283
1284    HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
1285        IFilterGraph* This,
1286        IPin *ppinOut,
1287        IPin *ppinIn,
1288        const AM_MEDIA_TYPE *pmt);
1289
1290    HRESULT (STDMETHODCALLTYPE *Reconnect)(
1291        IFilterGraph* This,
1292        IPin *ppin);
1293
1294    HRESULT (STDMETHODCALLTYPE *Disconnect)(
1295        IFilterGraph* This,
1296        IPin *ppin);
1297
1298    HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
1299        IFilterGraph* This);
1300
1301    END_INTERFACE
1302} IFilterGraphVtbl;
1303interface IFilterGraph {
1304    CONST_VTBL IFilterGraphVtbl* lpVtbl;
1305};
1306
1307#ifdef COBJMACROS
1308#ifndef WIDL_C_INLINE_WRAPPERS
1309/*** IUnknown methods ***/
1310#define IFilterGraph_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1311#define IFilterGraph_AddRef(This) (This)->lpVtbl->AddRef(This)
1312#define IFilterGraph_Release(This) (This)->lpVtbl->Release(This)
1313/*** IFilterGraph methods ***/
1314#define IFilterGraph_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
1315#define IFilterGraph_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
1316#define IFilterGraph_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
1317#define IFilterGraph_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
1318#define IFilterGraph_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
1319#define IFilterGraph_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
1320#define IFilterGraph_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
1321#define IFilterGraph_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
1322#else
1323/*** IUnknown methods ***/
1324static FORCEINLINE HRESULT IFilterGraph_QueryInterface(IFilterGraph* This,REFIID riid,void **ppvObject) {
1325    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1326}
1327static FORCEINLINE ULONG IFilterGraph_AddRef(IFilterGraph* This) {
1328    return This->lpVtbl->AddRef(This);
1329}
1330static FORCEINLINE ULONG IFilterGraph_Release(IFilterGraph* This) {
1331    return This->lpVtbl->Release(This);
1332}
1333/*** IFilterGraph methods ***/
1334static FORCEINLINE HRESULT IFilterGraph_AddFilter(IFilterGraph* This,IBaseFilter *pFilter,LPCWSTR pName) {
1335    return This->lpVtbl->AddFilter(This,pFilter,pName);
1336}
1337static FORCEINLINE HRESULT IFilterGraph_RemoveFilter(IFilterGraph* This,IBaseFilter *pFilter) {
1338    return This->lpVtbl->RemoveFilter(This,pFilter);
1339}
1340static FORCEINLINE HRESULT IFilterGraph_EnumFilters(IFilterGraph* This,IEnumFilters **ppEnum) {
1341    return This->lpVtbl->EnumFilters(This,ppEnum);
1342}
1343static FORCEINLINE HRESULT IFilterGraph_FindFilterByName(IFilterGraph* This,LPCWSTR pName,IBaseFilter **ppFilter) {
1344    return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
1345}
1346static FORCEINLINE HRESULT IFilterGraph_ConnectDirect(IFilterGraph* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
1347    return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
1348}
1349static FORCEINLINE HRESULT IFilterGraph_Reconnect(IFilterGraph* This,IPin *ppin) {
1350    return This->lpVtbl->Reconnect(This,ppin);
1351}
1352static FORCEINLINE HRESULT IFilterGraph_Disconnect(IFilterGraph* This,IPin *ppin) {
1353    return This->lpVtbl->Disconnect(This,ppin);
1354}
1355static FORCEINLINE HRESULT IFilterGraph_SetDefaultSyncSource(IFilterGraph* This) {
1356    return This->lpVtbl->SetDefaultSyncSource(This);
1357}
1358#endif
1359#endif
1360
1361#endif
1362
1363HRESULT STDMETHODCALLTYPE IFilterGraph_AddFilter_Proxy(
1364    IFilterGraph* This,
1365    IBaseFilter *pFilter,
1366    LPCWSTR pName);
1367void __RPC_STUB IFilterGraph_AddFilter_Stub(
1368    IRpcStubBuffer* This,
1369    IRpcChannelBuffer* pRpcChannelBuffer,
1370    PRPC_MESSAGE pRpcMessage,
1371    DWORD* pdwStubPhase);
1372HRESULT STDMETHODCALLTYPE IFilterGraph_RemoveFilter_Proxy(
1373    IFilterGraph* This,
1374    IBaseFilter *pFilter);
1375void __RPC_STUB IFilterGraph_RemoveFilter_Stub(
1376    IRpcStubBuffer* This,
1377    IRpcChannelBuffer* pRpcChannelBuffer,
1378    PRPC_MESSAGE pRpcMessage,
1379    DWORD* pdwStubPhase);
1380HRESULT STDMETHODCALLTYPE IFilterGraph_EnumFilters_Proxy(
1381    IFilterGraph* This,
1382    IEnumFilters **ppEnum);
1383void __RPC_STUB IFilterGraph_EnumFilters_Stub(
1384    IRpcStubBuffer* This,
1385    IRpcChannelBuffer* pRpcChannelBuffer,
1386    PRPC_MESSAGE pRpcMessage,
1387    DWORD* pdwStubPhase);
1388HRESULT STDMETHODCALLTYPE IFilterGraph_FindFilterByName_Proxy(
1389    IFilterGraph* This,
1390    LPCWSTR pName,
1391    IBaseFilter **ppFilter);
1392void __RPC_STUB IFilterGraph_FindFilterByName_Stub(
1393    IRpcStubBuffer* This,
1394    IRpcChannelBuffer* pRpcChannelBuffer,
1395    PRPC_MESSAGE pRpcMessage,
1396    DWORD* pdwStubPhase);
1397HRESULT STDMETHODCALLTYPE IFilterGraph_ConnectDirect_Proxy(
1398    IFilterGraph* This,
1399    IPin *ppinOut,
1400    IPin *ppinIn,
1401    const AM_MEDIA_TYPE *pmt);
1402void __RPC_STUB IFilterGraph_ConnectDirect_Stub(
1403    IRpcStubBuffer* This,
1404    IRpcChannelBuffer* pRpcChannelBuffer,
1405    PRPC_MESSAGE pRpcMessage,
1406    DWORD* pdwStubPhase);
1407HRESULT STDMETHODCALLTYPE IFilterGraph_Reconnect_Proxy(
1408    IFilterGraph* This,
1409    IPin *ppin);
1410void __RPC_STUB IFilterGraph_Reconnect_Stub(
1411    IRpcStubBuffer* This,
1412    IRpcChannelBuffer* pRpcChannelBuffer,
1413    PRPC_MESSAGE pRpcMessage,
1414    DWORD* pdwStubPhase);
1415HRESULT STDMETHODCALLTYPE IFilterGraph_Disconnect_Proxy(
1416    IFilterGraph* This,
1417    IPin *ppin);
1418void __RPC_STUB IFilterGraph_Disconnect_Stub(
1419    IRpcStubBuffer* This,
1420    IRpcChannelBuffer* pRpcChannelBuffer,
1421    PRPC_MESSAGE pRpcMessage,
1422    DWORD* pdwStubPhase);
1423HRESULT STDMETHODCALLTYPE IFilterGraph_SetDefaultSyncSource_Proxy(
1424    IFilterGraph* This);
1425void __RPC_STUB IFilterGraph_SetDefaultSyncSource_Stub(
1426    IRpcStubBuffer* This,
1427    IRpcChannelBuffer* pRpcChannelBuffer,
1428    PRPC_MESSAGE pRpcMessage,
1429    DWORD* pdwStubPhase);
1430
1431#endif  /* __IFilterGraph_INTERFACE_DEFINED__ */
1432
1433typedef IFilterGraph *PFILTERGRAPH;
1434
1435/*****************************************************************************
1436 * IEnumFilters interface
1437 */
1438#ifndef __IEnumFilters_INTERFACE_DEFINED__
1439#define __IEnumFilters_INTERFACE_DEFINED__
1440
1441DEFINE_GUID(IID_IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1442#if defined(__cplusplus) && !defined(CINTERFACE)
1443MIDL_INTERFACE("56a86893-0ad4-11ce-b03a-0020af0ba770")
1444IEnumFilters : public IUnknown
1445{
1446    virtual HRESULT STDMETHODCALLTYPE Next(
1447        ULONG cFilters,
1448        IBaseFilter **ppFilter,
1449        ULONG *pcFetched) = 0;
1450
1451    virtual HRESULT STDMETHODCALLTYPE Skip(
1452        ULONG cFilters) = 0;
1453
1454    virtual HRESULT STDMETHODCALLTYPE Reset(
1455        ) = 0;
1456
1457    virtual HRESULT STDMETHODCALLTYPE Clone(
1458        IEnumFilters **ppEnum) = 0;
1459
1460};
1461#ifdef __CRT_UUID_DECL
1462__CRT_UUID_DECL(IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1463#endif
1464#else
1465typedef struct IEnumFiltersVtbl {
1466    BEGIN_INTERFACE
1467
1468    /*** IUnknown methods ***/
1469    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1470        IEnumFilters* This,
1471        REFIID riid,
1472        void **ppvObject);
1473
1474    ULONG (STDMETHODCALLTYPE *AddRef)(
1475        IEnumFilters* This);
1476
1477    ULONG (STDMETHODCALLTYPE *Release)(
1478        IEnumFilters* This);
1479
1480    /*** IEnumFilters methods ***/
1481    HRESULT (STDMETHODCALLTYPE *Next)(
1482        IEnumFilters* This,
1483        ULONG cFilters,
1484        IBaseFilter **ppFilter,
1485        ULONG *pcFetched);
1486
1487    HRESULT (STDMETHODCALLTYPE *Skip)(
1488        IEnumFilters* This,
1489        ULONG cFilters);
1490
1491    HRESULT (STDMETHODCALLTYPE *Reset)(
1492        IEnumFilters* This);
1493
1494    HRESULT (STDMETHODCALLTYPE *Clone)(
1495        IEnumFilters* This,
1496        IEnumFilters **ppEnum);
1497
1498    END_INTERFACE
1499} IEnumFiltersVtbl;
1500interface IEnumFilters {
1501    CONST_VTBL IEnumFiltersVtbl* lpVtbl;
1502};
1503
1504#ifdef COBJMACROS
1505#ifndef WIDL_C_INLINE_WRAPPERS
1506/*** IUnknown methods ***/
1507#define IEnumFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1508#define IEnumFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
1509#define IEnumFilters_Release(This) (This)->lpVtbl->Release(This)
1510/*** IEnumFilters methods ***/
1511#define IEnumFilters_Next(This,cFilters,ppFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,ppFilter,pcFetched)
1512#define IEnumFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
1513#define IEnumFilters_Reset(This) (This)->lpVtbl->Reset(This)
1514#define IEnumFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
1515#else
1516/*** IUnknown methods ***/
1517static FORCEINLINE HRESULT IEnumFilters_QueryInterface(IEnumFilters* This,REFIID riid,void **ppvObject) {
1518    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1519}
1520static FORCEINLINE ULONG IEnumFilters_AddRef(IEnumFilters* This) {
1521    return This->lpVtbl->AddRef(This);
1522}
1523static FORCEINLINE ULONG IEnumFilters_Release(IEnumFilters* This) {
1524    return This->lpVtbl->Release(This);
1525}
1526/*** IEnumFilters methods ***/
1527static FORCEINLINE HRESULT IEnumFilters_Next(IEnumFilters* This,ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched) {
1528    return This->lpVtbl->Next(This,cFilters,ppFilter,pcFetched);
1529}
1530static FORCEINLINE HRESULT IEnumFilters_Skip(IEnumFilters* This,ULONG cFilters) {
1531    return This->lpVtbl->Skip(This,cFilters);
1532}
1533static FORCEINLINE HRESULT IEnumFilters_Reset(IEnumFilters* This) {
1534    return This->lpVtbl->Reset(This);
1535}
1536static FORCEINLINE HRESULT IEnumFilters_Clone(IEnumFilters* This,IEnumFilters **ppEnum) {
1537    return This->lpVtbl->Clone(This,ppEnum);
1538}
1539#endif
1540#endif
1541
1542#endif
1543
1544HRESULT STDMETHODCALLTYPE IEnumFilters_Next_Proxy(
1545    IEnumFilters* This,
1546    ULONG cFilters,
1547    IBaseFilter **ppFilter,
1548    ULONG *pcFetched);
1549void __RPC_STUB IEnumFilters_Next_Stub(
1550    IRpcStubBuffer* This,
1551    IRpcChannelBuffer* pRpcChannelBuffer,
1552    PRPC_MESSAGE pRpcMessage,
1553    DWORD* pdwStubPhase);
1554HRESULT STDMETHODCALLTYPE IEnumFilters_Skip_Proxy(
1555    IEnumFilters* This,
1556    ULONG cFilters);
1557void __RPC_STUB IEnumFilters_Skip_Stub(
1558    IRpcStubBuffer* This,
1559    IRpcChannelBuffer* pRpcChannelBuffer,
1560    PRPC_MESSAGE pRpcMessage,
1561    DWORD* pdwStubPhase);
1562HRESULT STDMETHODCALLTYPE IEnumFilters_Reset_Proxy(
1563    IEnumFilters* This);
1564void __RPC_STUB IEnumFilters_Reset_Stub(
1565    IRpcStubBuffer* This,
1566    IRpcChannelBuffer* pRpcChannelBuffer,
1567    PRPC_MESSAGE pRpcMessage,
1568    DWORD* pdwStubPhase);
1569HRESULT STDMETHODCALLTYPE IEnumFilters_Clone_Proxy(
1570    IEnumFilters* This,
1571    IEnumFilters **ppEnum);
1572void __RPC_STUB IEnumFilters_Clone_Stub(
1573    IRpcStubBuffer* This,
1574    IRpcChannelBuffer* pRpcChannelBuffer,
1575    PRPC_MESSAGE pRpcMessage,
1576    DWORD* pdwStubPhase);
1577
1578#endif  /* __IEnumFilters_INTERFACE_DEFINED__ */
1579
1580typedef IEnumFilters *PENUMFILTERS;
1581
1582/*****************************************************************************
1583 * IMediaFilter interface
1584 */
1585#ifndef __IMediaFilter_INTERFACE_DEFINED__
1586#define __IMediaFilter_INTERFACE_DEFINED__
1587
1588typedef enum _FilterState {
1589    State_Stopped = 0,
1590    State_Paused = 1,
1591    State_Running = 2
1592} FILTER_STATE;
1593
1594DEFINE_GUID(IID_IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1595#if defined(__cplusplus) && !defined(CINTERFACE)
1596MIDL_INTERFACE("56a86899-0ad4-11ce-b03a-0020af0ba770")
1597IMediaFilter : public IPersist
1598{
1599    virtual HRESULT STDMETHODCALLTYPE Stop(
1600        ) = 0;
1601
1602    virtual HRESULT STDMETHODCALLTYPE Pause(
1603        ) = 0;
1604
1605    virtual HRESULT STDMETHODCALLTYPE Run(
1606        REFERENCE_TIME tStart) = 0;
1607
1608    virtual HRESULT STDMETHODCALLTYPE GetState(
1609        DWORD dwMilliSecsTimeout,
1610        FILTER_STATE *State) = 0;
1611
1612    virtual HRESULT STDMETHODCALLTYPE SetSyncSource(
1613        IReferenceClock *pClock) = 0;
1614
1615    virtual HRESULT STDMETHODCALLTYPE GetSyncSource(
1616        IReferenceClock **pClock) = 0;
1617
1618};
1619#ifdef __CRT_UUID_DECL
1620__CRT_UUID_DECL(IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1621#endif
1622#else
1623typedef struct IMediaFilterVtbl {
1624    BEGIN_INTERFACE
1625
1626    /*** IUnknown methods ***/
1627    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1628        IMediaFilter* This,
1629        REFIID riid,
1630        void **ppvObject);
1631
1632    ULONG (STDMETHODCALLTYPE *AddRef)(
1633        IMediaFilter* This);
1634
1635    ULONG (STDMETHODCALLTYPE *Release)(
1636        IMediaFilter* This);
1637
1638    /*** IPersist methods ***/
1639    HRESULT (STDMETHODCALLTYPE *GetClassID)(
1640        IMediaFilter* This,
1641        CLSID *pClassID);
1642
1643    /*** IMediaFilter methods ***/
1644    HRESULT (STDMETHODCALLTYPE *Stop)(
1645        IMediaFilter* This);
1646
1647    HRESULT (STDMETHODCALLTYPE *Pause)(
1648        IMediaFilter* This);
1649
1650    HRESULT (STDMETHODCALLTYPE *Run)(
1651        IMediaFilter* This,
1652        REFERENCE_TIME tStart);
1653
1654    HRESULT (STDMETHODCALLTYPE *GetState)(
1655        IMediaFilter* This,
1656        DWORD dwMilliSecsTimeout,
1657        FILTER_STATE *State);
1658
1659    HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
1660        IMediaFilter* This,
1661        IReferenceClock *pClock);
1662
1663    HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
1664        IMediaFilter* This,
1665        IReferenceClock **pClock);
1666
1667    END_INTERFACE
1668} IMediaFilterVtbl;
1669interface IMediaFilter {
1670    CONST_VTBL IMediaFilterVtbl* lpVtbl;
1671};
1672
1673#ifdef COBJMACROS
1674#ifndef WIDL_C_INLINE_WRAPPERS
1675/*** IUnknown methods ***/
1676#define IMediaFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1677#define IMediaFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
1678#define IMediaFilter_Release(This) (This)->lpVtbl->Release(This)
1679/*** IPersist methods ***/
1680#define IMediaFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
1681/*** IMediaFilter methods ***/
1682#define IMediaFilter_Stop(This) (This)->lpVtbl->Stop(This)
1683#define IMediaFilter_Pause(This) (This)->lpVtbl->Pause(This)
1684#define IMediaFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
1685#define IMediaFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
1686#define IMediaFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
1687#define IMediaFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
1688#else
1689/*** IUnknown methods ***/
1690static FORCEINLINE HRESULT IMediaFilter_QueryInterface(IMediaFilter* This,REFIID riid,void **ppvObject) {
1691    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1692}
1693static FORCEINLINE ULONG IMediaFilter_AddRef(IMediaFilter* This) {
1694    return This->lpVtbl->AddRef(This);
1695}
1696static FORCEINLINE ULONG IMediaFilter_Release(IMediaFilter* This) {
1697    return This->lpVtbl->Release(This);
1698}
1699/*** IPersist methods ***/
1700static FORCEINLINE HRESULT IMediaFilter_GetClassID(IMediaFilter* This,CLSID *pClassID) {
1701    return This->lpVtbl->GetClassID(This,pClassID);
1702}
1703/*** IMediaFilter methods ***/
1704static FORCEINLINE HRESULT IMediaFilter_Stop(IMediaFilter* This) {
1705    return This->lpVtbl->Stop(This);
1706}
1707static FORCEINLINE HRESULT IMediaFilter_Pause(IMediaFilter* This) {
1708    return This->lpVtbl->Pause(This);
1709}
1710static FORCEINLINE HRESULT IMediaFilter_Run(IMediaFilter* This,REFERENCE_TIME tStart) {
1711    return This->lpVtbl->Run(This,tStart);
1712}
1713static FORCEINLINE HRESULT IMediaFilter_GetState(IMediaFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
1714    return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
1715}
1716static FORCEINLINE HRESULT IMediaFilter_SetSyncSource(IMediaFilter* This,IReferenceClock *pClock) {
1717    return This->lpVtbl->SetSyncSource(This,pClock);
1718}
1719static FORCEINLINE HRESULT IMediaFilter_GetSyncSource(IMediaFilter* This,IReferenceClock **pClock) {
1720    return This->lpVtbl->GetSyncSource(This,pClock);
1721}
1722#endif
1723#endif
1724
1725#endif
1726
1727HRESULT STDMETHODCALLTYPE IMediaFilter_Stop_Proxy(
1728    IMediaFilter* This);
1729void __RPC_STUB IMediaFilter_Stop_Stub(
1730    IRpcStubBuffer* This,
1731    IRpcChannelBuffer* pRpcChannelBuffer,
1732    PRPC_MESSAGE pRpcMessage,
1733    DWORD* pdwStubPhase);
1734HRESULT STDMETHODCALLTYPE IMediaFilter_Pause_Proxy(
1735    IMediaFilter* This);
1736void __RPC_STUB IMediaFilter_Pause_Stub(
1737    IRpcStubBuffer* This,
1738    IRpcChannelBuffer* pRpcChannelBuffer,
1739    PRPC_MESSAGE pRpcMessage,
1740    DWORD* pdwStubPhase);
1741HRESULT STDMETHODCALLTYPE IMediaFilter_Run_Proxy(
1742    IMediaFilter* This,
1743    REFERENCE_TIME tStart);
1744void __RPC_STUB IMediaFilter_Run_Stub(
1745    IRpcStubBuffer* This,
1746    IRpcChannelBuffer* pRpcChannelBuffer,
1747    PRPC_MESSAGE pRpcMessage,
1748    DWORD* pdwStubPhase);
1749HRESULT STDMETHODCALLTYPE IMediaFilter_GetState_Proxy(
1750    IMediaFilter* This,
1751    DWORD dwMilliSecsTimeout,
1752    FILTER_STATE *State);
1753void __RPC_STUB IMediaFilter_GetState_Stub(
1754    IRpcStubBuffer* This,
1755    IRpcChannelBuffer* pRpcChannelBuffer,
1756    PRPC_MESSAGE pRpcMessage,
1757    DWORD* pdwStubPhase);
1758HRESULT STDMETHODCALLTYPE IMediaFilter_SetSyncSource_Proxy(
1759    IMediaFilter* This,
1760    IReferenceClock *pClock);
1761void __RPC_STUB IMediaFilter_SetSyncSource_Stub(
1762    IRpcStubBuffer* This,
1763    IRpcChannelBuffer* pRpcChannelBuffer,
1764    PRPC_MESSAGE pRpcMessage,
1765    DWORD* pdwStubPhase);
1766HRESULT STDMETHODCALLTYPE IMediaFilter_GetSyncSource_Proxy(
1767    IMediaFilter* This,
1768    IReferenceClock **pClock);
1769void __RPC_STUB IMediaFilter_GetSyncSource_Stub(
1770    IRpcStubBuffer* This,
1771    IRpcChannelBuffer* pRpcChannelBuffer,
1772    PRPC_MESSAGE pRpcMessage,
1773    DWORD* pdwStubPhase);
1774
1775#endif  /* __IMediaFilter_INTERFACE_DEFINED__ */
1776
1777typedef IMediaFilter *PMEDIAFILTER;
1778
1779/*****************************************************************************
1780 * IBaseFilter interface
1781 */
1782#ifndef __IBaseFilter_INTERFACE_DEFINED__
1783#define __IBaseFilter_INTERFACE_DEFINED__
1784
1785typedef struct _FilterInfo {
1786    WCHAR achName[128];
1787    IFilterGraph *pGraph;
1788} FILTER_INFO;
1789
1790DEFINE_GUID(IID_IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1791#if defined(__cplusplus) && !defined(CINTERFACE)
1792MIDL_INTERFACE("56a86895-0ad4-11ce-b03a-0020af0ba770")
1793IBaseFilter : public IMediaFilter
1794{
1795    virtual HRESULT STDMETHODCALLTYPE EnumPins(
1796        IEnumPins **ppEnum) = 0;
1797
1798    virtual HRESULT STDMETHODCALLTYPE FindPin(
1799        LPCWSTR Id,
1800        IPin **ppPin) = 0;
1801
1802    virtual HRESULT STDMETHODCALLTYPE QueryFilterInfo(
1803        FILTER_INFO *pInfo) = 0;
1804
1805    virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph(
1806        IFilterGraph *pGraph,
1807        LPCWSTR pName) = 0;
1808
1809    virtual HRESULT STDMETHODCALLTYPE QueryVendorInfo(
1810        LPWSTR *pVendorInfo) = 0;
1811
1812};
1813#ifdef __CRT_UUID_DECL
1814__CRT_UUID_DECL(IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
1815#endif
1816#else
1817typedef struct IBaseFilterVtbl {
1818    BEGIN_INTERFACE
1819
1820    /*** IUnknown methods ***/
1821    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1822        IBaseFilter* This,
1823        REFIID riid,
1824        void **ppvObject);
1825
1826    ULONG (STDMETHODCALLTYPE *AddRef)(
1827        IBaseFilter* This);
1828
1829    ULONG (STDMETHODCALLTYPE *Release)(
1830        IBaseFilter* This);
1831
1832    /*** IPersist methods ***/
1833    HRESULT (STDMETHODCALLTYPE *GetClassID)(
1834        IBaseFilter* This,
1835        CLSID *pClassID);
1836
1837    /*** IMediaFilter methods ***/
1838    HRESULT (STDMETHODCALLTYPE *Stop)(
1839        IBaseFilter* This);
1840
1841    HRESULT (STDMETHODCALLTYPE *Pause)(
1842        IBaseFilter* This);
1843
1844    HRESULT (STDMETHODCALLTYPE *Run)(
1845        IBaseFilter* This,
1846        REFERENCE_TIME tStart);
1847
1848    HRESULT (STDMETHODCALLTYPE *GetState)(
1849        IBaseFilter* This,
1850        DWORD dwMilliSecsTimeout,
1851        FILTER_STATE *State);
1852
1853    HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
1854        IBaseFilter* This,
1855        IReferenceClock *pClock);
1856
1857    HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
1858        IBaseFilter* This,
1859        IReferenceClock **pClock);
1860
1861    /*** IBaseFilter methods ***/
1862    HRESULT (STDMETHODCALLTYPE *EnumPins)(
1863        IBaseFilter* This,
1864        IEnumPins **ppEnum);
1865
1866    HRESULT (STDMETHODCALLTYPE *FindPin)(
1867        IBaseFilter* This,
1868        LPCWSTR Id,
1869        IPin **ppPin);
1870
1871    HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)(
1872        IBaseFilter* This,
1873        FILTER_INFO *pInfo);
1874
1875    HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
1876        IBaseFilter* This,
1877        IFilterGraph *pGraph,
1878        LPCWSTR pName);
1879
1880    HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)(
1881        IBaseFilter* This,
1882        LPWSTR *pVendorInfo);
1883
1884    END_INTERFACE
1885} IBaseFilterVtbl;
1886interface IBaseFilter {
1887    CONST_VTBL IBaseFilterVtbl* lpVtbl;
1888};
1889
1890#ifdef COBJMACROS
1891#ifndef WIDL_C_INLINE_WRAPPERS
1892/*** IUnknown methods ***/
1893#define IBaseFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1894#define IBaseFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
1895#define IBaseFilter_Release(This) (This)->lpVtbl->Release(This)
1896/*** IPersist methods ***/
1897#define IBaseFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
1898/*** IMediaFilter methods ***/
1899#define IBaseFilter_Stop(This) (This)->lpVtbl->Stop(This)
1900#define IBaseFilter_Pause(This) (This)->lpVtbl->Pause(This)
1901#define IBaseFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
1902#define IBaseFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
1903#define IBaseFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
1904#define IBaseFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
1905/*** IBaseFilter methods ***/
1906#define IBaseFilter_EnumPins(This,ppEnum) (This)->lpVtbl->EnumPins(This,ppEnum)
1907#define IBaseFilter_FindPin(This,Id,ppPin) (This)->lpVtbl->FindPin(This,Id,ppPin)
1908#define IBaseFilter_QueryFilterInfo(This,pInfo) (This)->lpVtbl->QueryFilterInfo(This,pInfo)
1909#define IBaseFilter_JoinFilterGraph(This,pGraph,pName) (This)->lpVtbl->JoinFilterGraph(This,pGraph,pName)
1910#define IBaseFilter_QueryVendorInfo(This,pVendorInfo) (This)->lpVtbl->QueryVendorInfo(This,pVendorInfo)
1911#else
1912/*** IUnknown methods ***/
1913static FORCEINLINE HRESULT IBaseFilter_QueryInterface(IBaseFilter* This,REFIID riid,void **ppvObject) {
1914    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1915}
1916static FORCEINLINE ULONG IBaseFilter_AddRef(IBaseFilter* This) {
1917    return This->lpVtbl->AddRef(This);
1918}
1919static FORCEINLINE ULONG IBaseFilter_Release(IBaseFilter* This) {
1920    return This->lpVtbl->Release(This);
1921}
1922/*** IPersist methods ***/
1923static FORCEINLINE HRESULT IBaseFilter_GetClassID(IBaseFilter* This,CLSID *pClassID) {
1924    return This->lpVtbl->GetClassID(This,pClassID);
1925}
1926/*** IMediaFilter methods ***/
1927static FORCEINLINE HRESULT IBaseFilter_Stop(IBaseFilter* This) {
1928    return This->lpVtbl->Stop(This);
1929}
1930static FORCEINLINE HRESULT IBaseFilter_Pause(IBaseFilter* This) {
1931    return This->lpVtbl->Pause(This);
1932}
1933static FORCEINLINE HRESULT IBaseFilter_Run(IBaseFilter* This,REFERENCE_TIME tStart) {
1934    return This->lpVtbl->Run(This,tStart);
1935}
1936static FORCEINLINE HRESULT IBaseFilter_GetState(IBaseFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
1937    return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
1938}
1939static FORCEINLINE HRESULT IBaseFilter_SetSyncSource(IBaseFilter* This,IReferenceClock *pClock) {
1940    return This->lpVtbl->SetSyncSource(This,pClock);
1941}
1942static FORCEINLINE HRESULT IBaseFilter_GetSyncSource(IBaseFilter* This,IReferenceClock **pClock) {
1943    return This->lpVtbl->GetSyncSource(This,pClock);
1944}
1945/*** IBaseFilter methods ***/
1946static FORCEINLINE HRESULT IBaseFilter_EnumPins(IBaseFilter* This,IEnumPins **ppEnum) {
1947    return This->lpVtbl->EnumPins(This,ppEnum);
1948}
1949static FORCEINLINE HRESULT IBaseFilter_FindPin(IBaseFilter* This,LPCWSTR Id,IPin **ppPin) {
1950    return This->lpVtbl->FindPin(This,Id,ppPin);
1951}
1952static FORCEINLINE HRESULT IBaseFilter_QueryFilterInfo(IBaseFilter* This,FILTER_INFO *pInfo) {
1953    return This->lpVtbl->QueryFilterInfo(This,pInfo);
1954}
1955static FORCEINLINE HRESULT IBaseFilter_JoinFilterGraph(IBaseFilter* This,IFilterGraph *pGraph,LPCWSTR pName) {
1956    return This->lpVtbl->JoinFilterGraph(This,pGraph,pName);
1957}
1958static FORCEINLINE HRESULT IBaseFilter_QueryVendorInfo(IBaseFilter* This,LPWSTR *pVendorInfo) {
1959    return This->lpVtbl->QueryVendorInfo(This,pVendorInfo);
1960}
1961#endif
1962#endif
1963
1964#endif
1965
1966HRESULT STDMETHODCALLTYPE IBaseFilter_EnumPins_Proxy(
1967    IBaseFilter* This,
1968    IEnumPins **ppEnum);
1969void __RPC_STUB IBaseFilter_EnumPins_Stub(
1970    IRpcStubBuffer* This,
1971    IRpcChannelBuffer* pRpcChannelBuffer,
1972    PRPC_MESSAGE pRpcMessage,
1973    DWORD* pdwStubPhase);
1974HRESULT STDMETHODCALLTYPE IBaseFilter_FindPin_Proxy(
1975    IBaseFilter* This,
1976    LPCWSTR Id,
1977    IPin **ppPin);
1978void __RPC_STUB IBaseFilter_FindPin_Stub(
1979    IRpcStubBuffer* This,
1980    IRpcChannelBuffer* pRpcChannelBuffer,
1981    PRPC_MESSAGE pRpcMessage,
1982    DWORD* pdwStubPhase);
1983HRESULT STDMETHODCALLTYPE IBaseFilter_QueryFilterInfo_Proxy(
1984    IBaseFilter* This,
1985    FILTER_INFO *pInfo);
1986void __RPC_STUB IBaseFilter_QueryFilterInfo_Stub(
1987    IRpcStubBuffer* This,
1988    IRpcChannelBuffer* pRpcChannelBuffer,
1989    PRPC_MESSAGE pRpcMessage,
1990    DWORD* pdwStubPhase);
1991HRESULT STDMETHODCALLTYPE IBaseFilter_JoinFilterGraph_Proxy(
1992    IBaseFilter* This,
1993    IFilterGraph *pGraph,
1994    LPCWSTR pName);
1995void __RPC_STUB IBaseFilter_JoinFilterGraph_Stub(
1996    IRpcStubBuffer* This,
1997    IRpcChannelBuffer* pRpcChannelBuffer,
1998    PRPC_MESSAGE pRpcMessage,
1999    DWORD* pdwStubPhase);
2000HRESULT STDMETHODCALLTYPE IBaseFilter_QueryVendorInfo_Proxy(
2001    IBaseFilter* This,
2002    LPWSTR *pVendorInfo);
2003void __RPC_STUB IBaseFilter_QueryVendorInfo_Stub(
2004    IRpcStubBuffer* This,
2005    IRpcChannelBuffer* pRpcChannelBuffer,
2006    PRPC_MESSAGE pRpcMessage,
2007    DWORD* pdwStubPhase);
2008
2009#endif  /* __IBaseFilter_INTERFACE_DEFINED__ */
2010
2011typedef IBaseFilter *PFILTER;
2012
2013/*****************************************************************************
2014 * IReferenceClock interface
2015 */
2016#ifndef __IReferenceClock_INTERFACE_DEFINED__
2017#define __IReferenceClock_INTERFACE_DEFINED__
2018
2019DEFINE_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
2020#if defined(__cplusplus) && !defined(CINTERFACE)
2021MIDL_INTERFACE("56a86897-0ad4-11ce-b03a-0020af0ba770")
2022IReferenceClock : public IUnknown
2023{
2024    virtual HRESULT STDMETHODCALLTYPE GetTime(
2025        REFERENCE_TIME *pTime) = 0;
2026
2027    virtual HRESULT STDMETHODCALLTYPE AdviseTime(
2028        REFERENCE_TIME baseTime,
2029        REFERENCE_TIME streamTime,
2030        HEVENT hEvent,
2031        DWORD_PTR *pdwAdviseCookie) = 0;
2032
2033    virtual HRESULT STDMETHODCALLTYPE AdvisePeriodic(
2034        REFERENCE_TIME startTime,
2035        REFERENCE_TIME periodTime,
2036        HSEMAPHORE hSemaphore,
2037        DWORD_PTR *pdwAdviseCookie) = 0;
2038
2039    virtual HRESULT STDMETHODCALLTYPE Unadvise(
2040        DWORD_PTR dwAdviseCookie) = 0;
2041
2042};
2043#ifdef __CRT_UUID_DECL
2044__CRT_UUID_DECL(IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
2045#endif
2046#else
2047typedef struct IReferenceClockVtbl {
2048    BEGIN_INTERFACE
2049
2050    /*** IUnknown methods ***/
2051    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2052        IReferenceClock* This,
2053        REFIID riid,
2054        void **ppvObject);
2055
2056    ULONG (STDMETHODCALLTYPE *AddRef)(
2057        IReferenceClock* This);
2058
2059    ULONG (STDMETHODCALLTYPE *Release)(
2060        IReferenceClock* This);
2061
2062    /*** IReferenceClock methods ***/
2063    HRESULT (STDMETHODCALLTYPE *GetTime)(
2064        IReferenceClock* This,
2065        REFERENCE_TIME *pTime);
2066
2067    HRESULT (STDMETHODCALLTYPE *AdviseTime)(
2068        IReferenceClock* This,
2069        REFERENCE_TIME baseTime,
2070        REFERENCE_TIME streamTime,
2071        HEVENT hEvent,
2072        DWORD_PTR *pdwAdviseCookie);
2073
2074    HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
2075        IReferenceClock* This,
2076        REFERENCE_TIME startTime,
2077        REFERENCE_TIME periodTime,
2078        HSEMAPHORE hSemaphore,
2079        DWORD_PTR *pdwAdviseCookie);
2080
2081    HRESULT (STDMETHODCALLTYPE *Unadvise)(
2082        IReferenceClock* This,
2083        DWORD_PTR dwAdviseCookie);
2084
2085    END_INTERFACE
2086} IReferenceClockVtbl;
2087interface IReferenceClock {
2088    CONST_VTBL IReferenceClockVtbl* lpVtbl;
2089};
2090
2091#ifdef COBJMACROS
2092#ifndef WIDL_C_INLINE_WRAPPERS
2093/*** IUnknown methods ***/
2094#define IReferenceClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2095#define IReferenceClock_AddRef(This) (This)->lpVtbl->AddRef(This)
2096#define IReferenceClock_Release(This) (This)->lpVtbl->Release(This)
2097/*** IReferenceClock methods ***/
2098#define IReferenceClock_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
2099#define IReferenceClock_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
2100#define IReferenceClock_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
2101#define IReferenceClock_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
2102#else
2103/*** IUnknown methods ***/
2104static FORCEINLINE HRESULT IReferenceClock_QueryInterface(IReferenceClock* This,REFIID riid,void **ppvObject) {
2105    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2106}
2107static FORCEINLINE ULONG IReferenceClock_AddRef(IReferenceClock* This) {
2108    return This->lpVtbl->AddRef(This);
2109}
2110static FORCEINLINE ULONG IReferenceClock_Release(IReferenceClock* This) {
2111    return This->lpVtbl->Release(This);
2112}
2113/*** IReferenceClock methods ***/
2114static FORCEINLINE HRESULT IReferenceClock_GetTime(IReferenceClock* This,REFERENCE_TIME *pTime) {
2115    return This->lpVtbl->GetTime(This,pTime);
2116}
2117static FORCEINLINE HRESULT IReferenceClock_AdviseTime(IReferenceClock* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
2118    return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
2119}
2120static FORCEINLINE HRESULT IReferenceClock_AdvisePeriodic(IReferenceClock* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
2121    return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
2122}
2123static FORCEINLINE HRESULT IReferenceClock_Unadvise(IReferenceClock* This,DWORD_PTR dwAdviseCookie) {
2124    return This->lpVtbl->Unadvise(This,dwAdviseCookie);
2125}
2126#endif
2127#endif
2128
2129#endif
2130
2131HRESULT STDMETHODCALLTYPE IReferenceClock_GetTime_Proxy(
2132    IReferenceClock* This,
2133    REFERENCE_TIME *pTime);
2134void __RPC_STUB IReferenceClock_GetTime_Stub(
2135    IRpcStubBuffer* This,
2136    IRpcChannelBuffer* pRpcChannelBuffer,
2137    PRPC_MESSAGE pRpcMessage,
2138    DWORD* pdwStubPhase);
2139HRESULT STDMETHODCALLTYPE IReferenceClock_AdviseTime_Proxy(
2140    IReferenceClock* This,
2141    REFERENCE_TIME baseTime,
2142    REFERENCE_TIME streamTime,
2143    HEVENT hEvent,
2144    DWORD_PTR *pdwAdviseCookie);
2145void __RPC_STUB IReferenceClock_AdviseTime_Stub(
2146    IRpcStubBuffer* This,
2147    IRpcChannelBuffer* pRpcChannelBuffer,
2148    PRPC_MESSAGE pRpcMessage,
2149    DWORD* pdwStubPhase);
2150HRESULT STDMETHODCALLTYPE IReferenceClock_AdvisePeriodic_Proxy(
2151    IReferenceClock* This,
2152    REFERENCE_TIME startTime,
2153    REFERENCE_TIME periodTime,
2154    HSEMAPHORE hSemaphore,
2155    DWORD_PTR *pdwAdviseCookie);
2156void __RPC_STUB IReferenceClock_AdvisePeriodic_Stub(
2157    IRpcStubBuffer* This,
2158    IRpcChannelBuffer* pRpcChannelBuffer,
2159    PRPC_MESSAGE pRpcMessage,
2160    DWORD* pdwStubPhase);
2161HRESULT STDMETHODCALLTYPE IReferenceClock_Unadvise_Proxy(
2162    IReferenceClock* This,
2163    DWORD_PTR dwAdviseCookie);
2164void __RPC_STUB IReferenceClock_Unadvise_Stub(
2165    IRpcStubBuffer* This,
2166    IRpcChannelBuffer* pRpcChannelBuffer,
2167    PRPC_MESSAGE pRpcMessage,
2168    DWORD* pdwStubPhase);
2169
2170#endif  /* __IReferenceClock_INTERFACE_DEFINED__ */
2171
2172typedef IReferenceClock *PREFERENCECLOCK;
2173
2174/*****************************************************************************
2175 * IReferenceClockTimerControl interface
2176 */
2177#ifndef __IReferenceClockTimerControl_INTERFACE_DEFINED__
2178#define __IReferenceClockTimerControl_INTERFACE_DEFINED__
2179
2180DEFINE_GUID(IID_IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8);
2181#if defined(__cplusplus) && !defined(CINTERFACE)
2182MIDL_INTERFACE("ebec459c-2eca-4d42-a8af-30df557614b8")
2183IReferenceClockTimerControl : public IUnknown
2184{
2185    virtual HRESULT STDMETHODCALLTYPE SetDefaultTimerResolution(
2186        REFERENCE_TIME timerResolution) = 0;
2187
2188    virtual HRESULT STDMETHODCALLTYPE GetDefaultTimerResolution(
2189        REFERENCE_TIME *pTimerResolution) = 0;
2190
2191};
2192#ifdef __CRT_UUID_DECL
2193__CRT_UUID_DECL(IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8)
2194#endif
2195#else
2196typedef struct IReferenceClockTimerControlVtbl {
2197    BEGIN_INTERFACE
2198
2199    /*** IUnknown methods ***/
2200    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2201        IReferenceClockTimerControl* This,
2202        REFIID riid,
2203        void **ppvObject);
2204
2205    ULONG (STDMETHODCALLTYPE *AddRef)(
2206        IReferenceClockTimerControl* This);
2207
2208    ULONG (STDMETHODCALLTYPE *Release)(
2209        IReferenceClockTimerControl* This);
2210
2211    /*** IReferenceClockTimerControl methods ***/
2212    HRESULT (STDMETHODCALLTYPE *SetDefaultTimerResolution)(
2213        IReferenceClockTimerControl* This,
2214        REFERENCE_TIME timerResolution);
2215
2216    HRESULT (STDMETHODCALLTYPE *GetDefaultTimerResolution)(
2217        IReferenceClockTimerControl* This,
2218        REFERENCE_TIME *pTimerResolution);
2219
2220    END_INTERFACE
2221} IReferenceClockTimerControlVtbl;
2222interface IReferenceClockTimerControl {
2223    CONST_VTBL IReferenceClockTimerControlVtbl* lpVtbl;
2224};
2225
2226#ifdef COBJMACROS
2227#ifndef WIDL_C_INLINE_WRAPPERS
2228/*** IUnknown methods ***/
2229#define IReferenceClockTimerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2230#define IReferenceClockTimerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
2231#define IReferenceClockTimerControl_Release(This) (This)->lpVtbl->Release(This)
2232/*** IReferenceClockTimerControl methods ***/
2233#define IReferenceClockTimerControl_SetDefaultTimerResolution(This,timerResolution) (This)->lpVtbl->SetDefaultTimerResolution(This,timerResolution)
2234#define IReferenceClockTimerControl_GetDefaultTimerResolution(This,pTimerResolution) (This)->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution)
2235#else
2236/*** IUnknown methods ***/
2237static FORCEINLINE HRESULT IReferenceClockTimerControl_QueryInterface(IReferenceClockTimerControl* This,REFIID riid,void **ppvObject) {
2238    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2239}
2240static FORCEINLINE ULONG IReferenceClockTimerControl_AddRef(IReferenceClockTimerControl* This) {
2241    return This->lpVtbl->AddRef(This);
2242}
2243static FORCEINLINE ULONG IReferenceClockTimerControl_Release(IReferenceClockTimerControl* This) {
2244    return This->lpVtbl->Release(This);
2245}
2246/*** IReferenceClockTimerControl methods ***/
2247static FORCEINLINE HRESULT IReferenceClockTimerControl_SetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME timerResolution) {
2248    return This->lpVtbl->SetDefaultTimerResolution(This,timerResolution);
2249}
2250static FORCEINLINE HRESULT IReferenceClockTimerControl_GetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME *pTimerResolution) {
2251    return This->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution);
2252}
2253#endif
2254#endif
2255
2256#endif
2257
2258HRESULT STDMETHODCALLTYPE IReferenceClockTimerControl_SetDefaultTimerResolution_Proxy(
2259    IReferenceClockTimerControl* This,
2260    REFERENCE_TIME timerResolution);
2261void __RPC_STUB IReferenceClockTimerControl_SetDefaultTimerResolution_Stub(
2262    IRpcStubBuffer* This,
2263    IRpcChannelBuffer* pRpcChannelBuffer,
2264    PRPC_MESSAGE pRpcMessage,
2265    DWORD* pdwStubPhase);
2266HRESULT STDMETHODCALLTYPE IReferenceClockTimerControl_GetDefaultTimerResolution_Proxy(
2267    IReferenceClockTimerControl* This,
2268    REFERENCE_TIME *pTimerResolution);
2269void __RPC_STUB IReferenceClockTimerControl_GetDefaultTimerResolution_Stub(
2270    IRpcStubBuffer* This,
2271    IRpcChannelBuffer* pRpcChannelBuffer,
2272    PRPC_MESSAGE pRpcMessage,
2273    DWORD* pdwStubPhase);
2274
2275#endif  /* __IReferenceClockTimerControl_INTERFACE_DEFINED__ */
2276
2277
2278/*****************************************************************************
2279 * IReferenceClock2 interface
2280 */
2281#ifndef __IReferenceClock2_INTERFACE_DEFINED__
2282#define __IReferenceClock2_INTERFACE_DEFINED__
2283
2284DEFINE_GUID(IID_IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
2285#if defined(__cplusplus) && !defined(CINTERFACE)
2286MIDL_INTERFACE("36b73885-c2c8-11cf-8b46-00805f6cef60")
2287IReferenceClock2 : public IReferenceClock
2288{
2289};
2290#ifdef __CRT_UUID_DECL
2291__CRT_UUID_DECL(IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
2292#endif
2293#else
2294typedef struct IReferenceClock2Vtbl {
2295    BEGIN_INTERFACE
2296
2297    /*** IUnknown methods ***/
2298    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2299        IReferenceClock2* This,
2300        REFIID riid,
2301        void **ppvObject);
2302
2303    ULONG (STDMETHODCALLTYPE *AddRef)(
2304        IReferenceClock2* This);
2305
2306    ULONG (STDMETHODCALLTYPE *Release)(
2307        IReferenceClock2* This);
2308
2309    /*** IReferenceClock methods ***/
2310    HRESULT (STDMETHODCALLTYPE *GetTime)(
2311        IReferenceClock2* This,
2312        REFERENCE_TIME *pTime);
2313
2314    HRESULT (STDMETHODCALLTYPE *AdviseTime)(
2315        IReferenceClock2* This,
2316        REFERENCE_TIME baseTime,
2317        REFERENCE_TIME streamTime,
2318        HEVENT hEvent,
2319        DWORD_PTR *pdwAdviseCookie);
2320
2321    HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
2322        IReferenceClock2* This,
2323        REFERENCE_TIME startTime,
2324        REFERENCE_TIME periodTime,
2325        HSEMAPHORE hSemaphore,
2326        DWORD_PTR *pdwAdviseCookie);
2327
2328    HRESULT (STDMETHODCALLTYPE *Unadvise)(
2329        IReferenceClock2* This,
2330        DWORD_PTR dwAdviseCookie);
2331
2332    END_INTERFACE
2333} IReferenceClock2Vtbl;
2334interface IReferenceClock2 {
2335    CONST_VTBL IReferenceClock2Vtbl* lpVtbl;
2336};
2337
2338#ifdef COBJMACROS
2339#ifndef WIDL_C_INLINE_WRAPPERS
2340/*** IUnknown methods ***/
2341#define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2342#define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
2343#define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
2344/*** IReferenceClock methods ***/
2345#define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
2346#define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
2347#define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
2348#define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
2349#else
2350/*** IUnknown methods ***/
2351static FORCEINLINE HRESULT IReferenceClock2_QueryInterface(IReferenceClock2* This,REFIID riid,void **ppvObject) {
2352    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2353}
2354static FORCEINLINE ULONG IReferenceClock2_AddRef(IReferenceClock2* This) {
2355    return This->lpVtbl->AddRef(This);
2356}
2357static FORCEINLINE ULONG IReferenceClock2_Release(IReferenceClock2* This) {
2358    return This->lpVtbl->Release(This);
2359}
2360/*** IReferenceClock methods ***/
2361static FORCEINLINE HRESULT IReferenceClock2_GetTime(IReferenceClock2* This,REFERENCE_TIME *pTime) {
2362    return This->lpVtbl->GetTime(This,pTime);
2363}
2364static FORCEINLINE HRESULT IReferenceClock2_AdviseTime(IReferenceClock2* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
2365    return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
2366}
2367static FORCEINLINE HRESULT IReferenceClock2_AdvisePeriodic(IReferenceClock2* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
2368    return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
2369}
2370static FORCEINLINE HRESULT IReferenceClock2_Unadvise(IReferenceClock2* This,DWORD_PTR dwAdviseCookie) {
2371    return This->lpVtbl->Unadvise(This,dwAdviseCookie);
2372}
2373#endif
2374#endif
2375
2376#endif
2377
2378
2379#endif  /* __IReferenceClock2_INTERFACE_DEFINED__ */
2380
2381typedef IReferenceClock2 *PREFERENCECLOCK2;
2382
2383/*****************************************************************************
2384 * IMediaSample interface
2385 */
2386#ifndef __IMediaSample_INTERFACE_DEFINED__
2387#define __IMediaSample_INTERFACE_DEFINED__
2388
2389DEFINE_GUID(IID_IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
2390#if defined(__cplusplus) && !defined(CINTERFACE)
2391MIDL_INTERFACE("56a8689a-0ad4-11ce-b03a-0020af0ba770")
2392IMediaSample : public IUnknown
2393{
2394    virtual HRESULT STDMETHODCALLTYPE GetPointer(
2395        BYTE **ppBuffer) = 0;
2396
2397    virtual LONG STDMETHODCALLTYPE GetSize(
2398        ) = 0;
2399
2400    virtual HRESULT STDMETHODCALLTYPE GetTime(
2401        REFERENCE_TIME *pTimeStart,
2402        REFERENCE_TIME *pTimeEnd) = 0;
2403
2404    virtual HRESULT STDMETHODCALLTYPE SetTime(
2405        REFERENCE_TIME *pTimeStart,
2406        REFERENCE_TIME *pTimeEnd) = 0;
2407
2408    virtual HRESULT STDMETHODCALLTYPE IsSyncPoint(
2409        ) = 0;
2410
2411    virtual HRESULT STDMETHODCALLTYPE SetSyncPoint(
2412        WINBOOL bIsSyncPoint) = 0;
2413
2414    virtual HRESULT STDMETHODCALLTYPE IsPreroll(
2415        ) = 0;
2416
2417    virtual HRESULT STDMETHODCALLTYPE SetPreroll(
2418        WINBOOL bIsPreroll) = 0;
2419
2420    virtual LONG STDMETHODCALLTYPE GetActualDataLength(
2421        ) = 0;
2422
2423    virtual HRESULT STDMETHODCALLTYPE SetActualDataLength(
2424        LONG a) = 0;
2425
2426    virtual HRESULT STDMETHODCALLTYPE GetMediaType(
2427        AM_MEDIA_TYPE **ppMediaType) = 0;
2428
2429    virtual HRESULT STDMETHODCALLTYPE SetMediaType(
2430        AM_MEDIA_TYPE *pMediaType) = 0;
2431
2432    virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity(
2433        ) = 0;
2434
2435    virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity(
2436        WINBOOL bDiscontinuity) = 0;
2437
2438    virtual HRESULT STDMETHODCALLTYPE GetMediaTime(
2439        LONGLONG *pTimeStart,
2440        LONGLONG *pTimeEnd) = 0;
2441
2442    virtual HRESULT STDMETHODCALLTYPE SetMediaTime(
2443        LONGLONG *pTimeStart,
2444        LONGLONG *pTimeEnd) = 0;
2445
2446};
2447#ifdef __CRT_UUID_DECL
2448__CRT_UUID_DECL(IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
2449#endif
2450#else
2451typedef struct IMediaSampleVtbl {
2452    BEGIN_INTERFACE
2453
2454    /*** IUnknown methods ***/
2455    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2456        IMediaSample* This,
2457        REFIID riid,
2458        void **ppvObject);
2459
2460    ULONG (STDMETHODCALLTYPE *AddRef)(
2461        IMediaSample* This);
2462
2463    ULONG (STDMETHODCALLTYPE *Release)(
2464        IMediaSample* This);
2465
2466    /*** IMediaSample methods ***/
2467    HRESULT (STDMETHODCALLTYPE *GetPointer)(
2468        IMediaSample* This,
2469        BYTE **ppBuffer);
2470
2471    LONG (STDMETHODCALLTYPE *GetSize)(
2472        IMediaSample* This);
2473
2474    HRESULT (STDMETHODCALLTYPE *GetTime)(
2475        IMediaSample* This,
2476        REFERENCE_TIME *pTimeStart,
2477        REFERENCE_TIME *pTimeEnd);
2478
2479    HRESULT (STDMETHODCALLTYPE *SetTime)(
2480        IMediaSample* This,
2481        REFERENCE_TIME *pTimeStart,
2482        REFERENCE_TIME *pTimeEnd);
2483
2484    HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
2485        IMediaSample* This);
2486
2487    HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
2488        IMediaSample* This,
2489        WINBOOL bIsSyncPoint);
2490
2491    HRESULT (STDMETHODCALLTYPE *IsPreroll)(
2492        IMediaSample* This);
2493
2494    HRESULT (STDMETHODCALLTYPE *SetPreroll)(
2495        IMediaSample* This,
2496        WINBOOL bIsPreroll);
2497
2498    LONG (STDMETHODCALLTYPE *GetActualDataLength)(
2499        IMediaSample* This);
2500
2501    HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
2502        IMediaSample* This,
2503        LONG a);
2504
2505    HRESULT (STDMETHODCALLTYPE *GetMediaType)(
2506        IMediaSample* This,
2507        AM_MEDIA_TYPE **ppMediaType);
2508
2509    HRESULT (STDMETHODCALLTYPE *SetMediaType)(
2510        IMediaSample* This,
2511        AM_MEDIA_TYPE *pMediaType);
2512
2513    HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
2514        IMediaSample* This);
2515
2516    HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
2517        IMediaSample* This,
2518        WINBOOL bDiscontinuity);
2519
2520    HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
2521        IMediaSample* This,
2522        LONGLONG *pTimeStart,
2523        LONGLONG *pTimeEnd);
2524
2525    HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
2526        IMediaSample* This,
2527        LONGLONG *pTimeStart,
2528        LONGLONG *pTimeEnd);
2529
2530    END_INTERFACE
2531} IMediaSampleVtbl;
2532interface IMediaSample {
2533    CONST_VTBL IMediaSampleVtbl* lpVtbl;
2534};
2535
2536#ifdef COBJMACROS
2537#ifndef WIDL_C_INLINE_WRAPPERS
2538/*** IUnknown methods ***/
2539#define IMediaSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2540#define IMediaSample_AddRef(This) (This)->lpVtbl->AddRef(This)
2541#define IMediaSample_Release(This) (This)->lpVtbl->Release(This)
2542/*** IMediaSample methods ***/
2543#define IMediaSample_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
2544#define IMediaSample_GetSize(This) (This)->lpVtbl->GetSize(This)
2545#define IMediaSample_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
2546#define IMediaSample_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
2547#define IMediaSample_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
2548#define IMediaSample_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
2549#define IMediaSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
2550#define IMediaSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
2551#define IMediaSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
2552#define IMediaSample_SetActualDataLength(This,a) (This)->lpVtbl->SetActualDataLength(This,a)
2553#define IMediaSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
2554#define IMediaSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
2555#define IMediaSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
2556#define IMediaSample_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
2557#define IMediaSample_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
2558#define IMediaSample_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
2559#else
2560/*** IUnknown methods ***/
2561static FORCEINLINE HRESULT IMediaSample_QueryInterface(IMediaSample* This,REFIID riid,void **ppvObject) {
2562    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2563}
2564static FORCEINLINE ULONG IMediaSample_AddRef(IMediaSample* This) {
2565    return This->lpVtbl->AddRef(This);
2566}
2567static FORCEINLINE ULONG IMediaSample_Release(IMediaSample* This) {
2568    return This->lpVtbl->Release(This);
2569}
2570/*** IMediaSample methods ***/
2571static FORCEINLINE HRESULT IMediaSample_GetPointer(IMediaSample* This,BYTE **ppBuffer) {
2572    return This->lpVtbl->GetPointer(This,ppBuffer);
2573}
2574static FORCEINLINE LONG IMediaSample_GetSize(IMediaSample* This) {
2575    return This->lpVtbl->GetSize(This);
2576}
2577static FORCEINLINE HRESULT IMediaSample_GetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2578    return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
2579}
2580static FORCEINLINE HRESULT IMediaSample_SetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2581    return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
2582}
2583static FORCEINLINE HRESULT IMediaSample_IsSyncPoint(IMediaSample* This) {
2584    return This->lpVtbl->IsSyncPoint(This);
2585}
2586static FORCEINLINE HRESULT IMediaSample_SetSyncPoint(IMediaSample* This,WINBOOL bIsSyncPoint) {
2587    return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
2588}
2589static FORCEINLINE HRESULT IMediaSample_IsPreroll(IMediaSample* This) {
2590    return This->lpVtbl->IsPreroll(This);
2591}
2592static FORCEINLINE HRESULT IMediaSample_SetPreroll(IMediaSample* This,WINBOOL bIsPreroll) {
2593    return This->lpVtbl->SetPreroll(This,bIsPreroll);
2594}
2595static FORCEINLINE LONG IMediaSample_GetActualDataLength(IMediaSample* This) {
2596    return This->lpVtbl->GetActualDataLength(This);
2597}
2598static FORCEINLINE HRESULT IMediaSample_SetActualDataLength(IMediaSample* This,LONG a) {
2599    return This->lpVtbl->SetActualDataLength(This,a);
2600}
2601static FORCEINLINE HRESULT IMediaSample_GetMediaType(IMediaSample* This,AM_MEDIA_TYPE **ppMediaType) {
2602    return This->lpVtbl->GetMediaType(This,ppMediaType);
2603}
2604static FORCEINLINE HRESULT IMediaSample_SetMediaType(IMediaSample* This,AM_MEDIA_TYPE *pMediaType) {
2605    return This->lpVtbl->SetMediaType(This,pMediaType);
2606}
2607static FORCEINLINE HRESULT IMediaSample_IsDiscontinuity(IMediaSample* This) {
2608    return This->lpVtbl->IsDiscontinuity(This);
2609}
2610static FORCEINLINE HRESULT IMediaSample_SetDiscontinuity(IMediaSample* This,WINBOOL bDiscontinuity) {
2611    return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
2612}
2613static FORCEINLINE HRESULT IMediaSample_GetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2614    return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
2615}
2616static FORCEINLINE HRESULT IMediaSample_SetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2617    return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
2618}
2619#endif
2620#endif
2621
2622#endif
2623
2624HRESULT STDMETHODCALLTYPE IMediaSample_GetPointer_Proxy(
2625    IMediaSample* This,
2626    BYTE **ppBuffer);
2627void __RPC_STUB IMediaSample_GetPointer_Stub(
2628    IRpcStubBuffer* This,
2629    IRpcChannelBuffer* pRpcChannelBuffer,
2630    PRPC_MESSAGE pRpcMessage,
2631    DWORD* pdwStubPhase);
2632LONG STDMETHODCALLTYPE IMediaSample_GetSize_Proxy(
2633    IMediaSample* This);
2634void __RPC_STUB IMediaSample_GetSize_Stub(
2635    IRpcStubBuffer* This,
2636    IRpcChannelBuffer* pRpcChannelBuffer,
2637    PRPC_MESSAGE pRpcMessage,
2638    DWORD* pdwStubPhase);
2639HRESULT STDMETHODCALLTYPE IMediaSample_GetTime_Proxy(
2640    IMediaSample* This,
2641    REFERENCE_TIME *pTimeStart,
2642    REFERENCE_TIME *pTimeEnd);
2643void __RPC_STUB IMediaSample_GetTime_Stub(
2644    IRpcStubBuffer* This,
2645    IRpcChannelBuffer* pRpcChannelBuffer,
2646    PRPC_MESSAGE pRpcMessage,
2647    DWORD* pdwStubPhase);
2648HRESULT STDMETHODCALLTYPE IMediaSample_SetTime_Proxy(
2649    IMediaSample* This,
2650    REFERENCE_TIME *pTimeStart,
2651    REFERENCE_TIME *pTimeEnd);
2652void __RPC_STUB IMediaSample_SetTime_Stub(
2653    IRpcStubBuffer* This,
2654    IRpcChannelBuffer* pRpcChannelBuffer,
2655    PRPC_MESSAGE pRpcMessage,
2656    DWORD* pdwStubPhase);
2657HRESULT STDMETHODCALLTYPE IMediaSample_IsSyncPoint_Proxy(
2658    IMediaSample* This);
2659void __RPC_STUB IMediaSample_IsSyncPoint_Stub(
2660    IRpcStubBuffer* This,
2661    IRpcChannelBuffer* pRpcChannelBuffer,
2662    PRPC_MESSAGE pRpcMessage,
2663    DWORD* pdwStubPhase);
2664HRESULT STDMETHODCALLTYPE IMediaSample_SetSyncPoint_Proxy(
2665    IMediaSample* This,
2666    WINBOOL bIsSyncPoint);
2667void __RPC_STUB IMediaSample_SetSyncPoint_Stub(
2668    IRpcStubBuffer* This,
2669    IRpcChannelBuffer* pRpcChannelBuffer,
2670    PRPC_MESSAGE pRpcMessage,
2671    DWORD* pdwStubPhase);
2672HRESULT STDMETHODCALLTYPE IMediaSample_IsPreroll_Proxy(
2673    IMediaSample* This);
2674void __RPC_STUB IMediaSample_IsPreroll_Stub(
2675    IRpcStubBuffer* This,
2676    IRpcChannelBuffer* pRpcChannelBuffer,
2677    PRPC_MESSAGE pRpcMessage,
2678    DWORD* pdwStubPhase);
2679HRESULT STDMETHODCALLTYPE IMediaSample_SetPreroll_Proxy(
2680    IMediaSample* This,
2681    WINBOOL bIsPreroll);
2682void __RPC_STUB IMediaSample_SetPreroll_Stub(
2683    IRpcStubBuffer* This,
2684    IRpcChannelBuffer* pRpcChannelBuffer,
2685    PRPC_MESSAGE pRpcMessage,
2686    DWORD* pdwStubPhase);
2687LONG STDMETHODCALLTYPE IMediaSample_GetActualDataLength_Proxy(
2688    IMediaSample* This);
2689void __RPC_STUB IMediaSample_GetActualDataLength_Stub(
2690    IRpcStubBuffer* This,
2691    IRpcChannelBuffer* pRpcChannelBuffer,
2692    PRPC_MESSAGE pRpcMessage,
2693    DWORD* pdwStubPhase);
2694HRESULT STDMETHODCALLTYPE IMediaSample_SetActualDataLength_Proxy(
2695    IMediaSample* This,
2696    LONG a);
2697void __RPC_STUB IMediaSample_SetActualDataLength_Stub(
2698    IRpcStubBuffer* This,
2699    IRpcChannelBuffer* pRpcChannelBuffer,
2700    PRPC_MESSAGE pRpcMessage,
2701    DWORD* pdwStubPhase);
2702HRESULT STDMETHODCALLTYPE IMediaSample_GetMediaType_Proxy(
2703    IMediaSample* This,
2704    AM_MEDIA_TYPE **ppMediaType);
2705void __RPC_STUB IMediaSample_GetMediaType_Stub(
2706    IRpcStubBuffer* This,
2707    IRpcChannelBuffer* pRpcChannelBuffer,
2708    PRPC_MESSAGE pRpcMessage,
2709    DWORD* pdwStubPhase);
2710HRESULT STDMETHODCALLTYPE IMediaSample_SetMediaType_Proxy(
2711    IMediaSample* This,
2712    AM_MEDIA_TYPE *pMediaType);
2713void __RPC_STUB IMediaSample_SetMediaType_Stub(
2714    IRpcStubBuffer* This,
2715    IRpcChannelBuffer* pRpcChannelBuffer,
2716    PRPC_MESSAGE pRpcMessage,
2717    DWORD* pdwStubPhase);
2718HRESULT STDMETHODCALLTYPE IMediaSample_IsDiscontinuity_Proxy(
2719    IMediaSample* This);
2720void __RPC_STUB IMediaSample_IsDiscontinuity_Stub(
2721    IRpcStubBuffer* This,
2722    IRpcChannelBuffer* pRpcChannelBuffer,
2723    PRPC_MESSAGE pRpcMessage,
2724    DWORD* pdwStubPhase);
2725HRESULT STDMETHODCALLTYPE IMediaSample_SetDiscontinuity_Proxy(
2726    IMediaSample* This,
2727    WINBOOL bDiscontinuity);
2728void __RPC_STUB IMediaSample_SetDiscontinuity_Stub(
2729    IRpcStubBuffer* This,
2730    IRpcChannelBuffer* pRpcChannelBuffer,
2731    PRPC_MESSAGE pRpcMessage,
2732    DWORD* pdwStubPhase);
2733HRESULT STDMETHODCALLTYPE IMediaSample_GetMediaTime_Proxy(
2734    IMediaSample* This,
2735    LONGLONG *pTimeStart,
2736    LONGLONG *pTimeEnd);
2737void __RPC_STUB IMediaSample_GetMediaTime_Stub(
2738    IRpcStubBuffer* This,
2739    IRpcChannelBuffer* pRpcChannelBuffer,
2740    PRPC_MESSAGE pRpcMessage,
2741    DWORD* pdwStubPhase);
2742HRESULT STDMETHODCALLTYPE IMediaSample_SetMediaTime_Proxy(
2743    IMediaSample* This,
2744    LONGLONG *pTimeStart,
2745    LONGLONG *pTimeEnd);
2746void __RPC_STUB IMediaSample_SetMediaTime_Stub(
2747    IRpcStubBuffer* This,
2748    IRpcChannelBuffer* pRpcChannelBuffer,
2749    PRPC_MESSAGE pRpcMessage,
2750    DWORD* pdwStubPhase);
2751
2752#endif  /* __IMediaSample_INTERFACE_DEFINED__ */
2753
2754typedef IMediaSample *PMEDIASAMPLE;
2755
2756enum tagAM_SAMPLE_PROPERTY_FLAGS {
2757    AM_SAMPLE_SPLICEPOINT = 0x1,
2758    AM_SAMPLE_PREROLL = 0x2,
2759    AM_SAMPLE_DATADISCONTINUITY = 0x4,
2760    AM_SAMPLE_TYPECHANGED = 0x8,
2761    AM_SAMPLE_TIMEVALID = 0x10,
2762    AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
2763    AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
2764    AM_SAMPLE_STOPVALID = 0x100,
2765    AM_SAMPLE_ENDOFSTREAM = 0x200,
2766    AM_STREAM_MEDIA = 0,
2767    AM_STREAM_CONTROL = 1
2768};
2769
2770
2771typedef struct tagAM_SAMPLE2_PROPERTIES {
2772    DWORD cbData;
2773    DWORD dwTypeSpecificFlags;
2774    DWORD dwSampleFlags;
2775    LONG lActual;
2776    REFERENCE_TIME tStart;
2777    REFERENCE_TIME tStop;
2778    DWORD dwStreamId;
2779    AM_MEDIA_TYPE *pMediaType;
2780    BYTE *pbBuffer;
2781    LONG cbBuffer;
2782} AM_SAMPLE2_PROPERTIES;
2783
2784/*****************************************************************************
2785 * IMediaSample2 interface
2786 */
2787#ifndef __IMediaSample2_INTERFACE_DEFINED__
2788#define __IMediaSample2_INTERFACE_DEFINED__
2789
2790DEFINE_GUID(IID_IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
2791#if defined(__cplusplus) && !defined(CINTERFACE)
2792MIDL_INTERFACE("36b73884-c2c8-11cf-8b46-00805f6cef60")
2793IMediaSample2 : public IMediaSample
2794{
2795    virtual HRESULT STDMETHODCALLTYPE GetProperties(
2796        DWORD cbProperties,
2797        BYTE *pbProperties) = 0;
2798
2799    virtual HRESULT STDMETHODCALLTYPE SetProperties(
2800        DWORD cbProperties,
2801        const BYTE *pbProperties) = 0;
2802
2803};
2804#ifdef __CRT_UUID_DECL
2805__CRT_UUID_DECL(IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
2806#endif
2807#else
2808typedef struct IMediaSample2Vtbl {
2809    BEGIN_INTERFACE
2810
2811    /*** IUnknown methods ***/
2812    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2813        IMediaSample2* This,
2814        REFIID riid,
2815        void **ppvObject);
2816
2817    ULONG (STDMETHODCALLTYPE *AddRef)(
2818        IMediaSample2* This);
2819
2820    ULONG (STDMETHODCALLTYPE *Release)(
2821        IMediaSample2* This);
2822
2823    /*** IMediaSample methods ***/
2824    HRESULT (STDMETHODCALLTYPE *GetPointer)(
2825        IMediaSample2* This,
2826        BYTE **ppBuffer);
2827
2828    LONG (STDMETHODCALLTYPE *GetSize)(
2829        IMediaSample2* This);
2830
2831    HRESULT (STDMETHODCALLTYPE *GetTime)(
2832        IMediaSample2* This,
2833        REFERENCE_TIME *pTimeStart,
2834        REFERENCE_TIME *pTimeEnd);
2835
2836    HRESULT (STDMETHODCALLTYPE *SetTime)(
2837        IMediaSample2* This,
2838        REFERENCE_TIME *pTimeStart,
2839        REFERENCE_TIME *pTimeEnd);
2840
2841    HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
2842        IMediaSample2* This);
2843
2844    HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
2845        IMediaSample2* This,
2846        WINBOOL bIsSyncPoint);
2847
2848    HRESULT (STDMETHODCALLTYPE *IsPreroll)(
2849        IMediaSample2* This);
2850
2851    HRESULT (STDMETHODCALLTYPE *SetPreroll)(
2852        IMediaSample2* This,
2853        WINBOOL bIsPreroll);
2854
2855    LONG (STDMETHODCALLTYPE *GetActualDataLength)(
2856        IMediaSample2* This);
2857
2858    HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
2859        IMediaSample2* This,
2860        LONG a);
2861
2862    HRESULT (STDMETHODCALLTYPE *GetMediaType)(
2863        IMediaSample2* This,
2864        AM_MEDIA_TYPE **ppMediaType);
2865
2866    HRESULT (STDMETHODCALLTYPE *SetMediaType)(
2867        IMediaSample2* This,
2868        AM_MEDIA_TYPE *pMediaType);
2869
2870    HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
2871        IMediaSample2* This);
2872
2873    HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
2874        IMediaSample2* This,
2875        WINBOOL bDiscontinuity);
2876
2877    HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
2878        IMediaSample2* This,
2879        LONGLONG *pTimeStart,
2880        LONGLONG *pTimeEnd);
2881
2882    HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
2883        IMediaSample2* This,
2884        LONGLONG *pTimeStart,
2885        LONGLONG *pTimeEnd);
2886
2887    /*** IMediaSample2 methods ***/
2888    HRESULT (STDMETHODCALLTYPE *GetProperties)(
2889        IMediaSample2* This,
2890        DWORD cbProperties,
2891        BYTE *pbProperties);
2892
2893    HRESULT (STDMETHODCALLTYPE *SetProperties)(
2894        IMediaSample2* This,
2895        DWORD cbProperties,
2896        const BYTE *pbProperties);
2897
2898    END_INTERFACE
2899} IMediaSample2Vtbl;
2900interface IMediaSample2 {
2901    CONST_VTBL IMediaSample2Vtbl* lpVtbl;
2902};
2903
2904#ifdef COBJMACROS
2905#ifndef WIDL_C_INLINE_WRAPPERS
2906/*** IUnknown methods ***/
2907#define IMediaSample2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2908#define IMediaSample2_AddRef(This) (This)->lpVtbl->AddRef(This)
2909#define IMediaSample2_Release(This) (This)->lpVtbl->Release(This)
2910/*** IMediaSample methods ***/
2911#define IMediaSample2_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
2912#define IMediaSample2_GetSize(This) (This)->lpVtbl->GetSize(This)
2913#define IMediaSample2_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
2914#define IMediaSample2_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
2915#define IMediaSample2_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
2916#define IMediaSample2_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
2917#define IMediaSample2_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
2918#define IMediaSample2_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
2919#define IMediaSample2_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
2920#define IMediaSample2_SetActualDataLength(This,a) (This)->lpVtbl->SetActualDataLength(This,a)
2921#define IMediaSample2_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
2922#define IMediaSample2_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
2923#define IMediaSample2_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
2924#define IMediaSample2_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
2925#define IMediaSample2_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
2926#define IMediaSample2_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
2927/*** IMediaSample2 methods ***/
2928#define IMediaSample2_GetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->GetProperties(This,cbProperties,pbProperties)
2929#define IMediaSample2_SetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->SetProperties(This,cbProperties,pbProperties)
2930#else
2931/*** IUnknown methods ***/
2932static FORCEINLINE HRESULT IMediaSample2_QueryInterface(IMediaSample2* This,REFIID riid,void **ppvObject) {
2933    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2934}
2935static FORCEINLINE ULONG IMediaSample2_AddRef(IMediaSample2* This) {
2936    return This->lpVtbl->AddRef(This);
2937}
2938static FORCEINLINE ULONG IMediaSample2_Release(IMediaSample2* This) {
2939    return This->lpVtbl->Release(This);
2940}
2941/*** IMediaSample methods ***/
2942static FORCEINLINE HRESULT IMediaSample2_GetPointer(IMediaSample2* This,BYTE **ppBuffer) {
2943    return This->lpVtbl->GetPointer(This,ppBuffer);
2944}
2945static FORCEINLINE LONG IMediaSample2_GetSize(IMediaSample2* This) {
2946    return This->lpVtbl->GetSize(This);
2947}
2948static FORCEINLINE HRESULT IMediaSample2_GetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2949    return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
2950}
2951static FORCEINLINE HRESULT IMediaSample2_SetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
2952    return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
2953}
2954static FORCEINLINE HRESULT IMediaSample2_IsSyncPoint(IMediaSample2* This) {
2955    return This->lpVtbl->IsSyncPoint(This);
2956}
2957static FORCEINLINE HRESULT IMediaSample2_SetSyncPoint(IMediaSample2* This,WINBOOL bIsSyncPoint) {
2958    return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
2959}
2960static FORCEINLINE HRESULT IMediaSample2_IsPreroll(IMediaSample2* This) {
2961    return This->lpVtbl->IsPreroll(This);
2962}
2963static FORCEINLINE HRESULT IMediaSample2_SetPreroll(IMediaSample2* This,WINBOOL bIsPreroll) {
2964    return This->lpVtbl->SetPreroll(This,bIsPreroll);
2965}
2966static FORCEINLINE LONG IMediaSample2_GetActualDataLength(IMediaSample2* This) {
2967    return This->lpVtbl->GetActualDataLength(This);
2968}
2969static FORCEINLINE HRESULT IMediaSample2_SetActualDataLength(IMediaSample2* This,LONG a) {
2970    return This->lpVtbl->SetActualDataLength(This,a);
2971}
2972static FORCEINLINE HRESULT IMediaSample2_GetMediaType(IMediaSample2* This,AM_MEDIA_TYPE **ppMediaType) {
2973    return This->lpVtbl->GetMediaType(This,ppMediaType);
2974}
2975static FORCEINLINE HRESULT IMediaSample2_SetMediaType(IMediaSample2* This,AM_MEDIA_TYPE *pMediaType) {
2976    return This->lpVtbl->SetMediaType(This,pMediaType);
2977}
2978static FORCEINLINE HRESULT IMediaSample2_IsDiscontinuity(IMediaSample2* This) {
2979    return This->lpVtbl->IsDiscontinuity(This);
2980}
2981static FORCEINLINE HRESULT IMediaSample2_SetDiscontinuity(IMediaSample2* This,WINBOOL bDiscontinuity) {
2982    return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
2983}
2984static FORCEINLINE HRESULT IMediaSample2_GetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2985    return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
2986}
2987static FORCEINLINE HRESULT IMediaSample2_SetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
2988    return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
2989}
2990/*** IMediaSample2 methods ***/
2991static FORCEINLINE HRESULT IMediaSample2_GetProperties(IMediaSample2* This,DWORD cbProperties,BYTE *pbProperties) {
2992    return This->lpVtbl->GetProperties(This,cbProperties,pbProperties);
2993}
2994static FORCEINLINE HRESULT IMediaSample2_SetProperties(IMediaSample2* This,DWORD cbProperties,const BYTE *pbProperties) {
2995    return This->lpVtbl->SetProperties(This,cbProperties,pbProperties);
2996}
2997#endif
2998#endif
2999
3000#endif
3001
3002HRESULT STDMETHODCALLTYPE IMediaSample2_GetProperties_Proxy(
3003    IMediaSample2* This,
3004    DWORD cbProperties,
3005    BYTE *pbProperties);
3006void __RPC_STUB IMediaSample2_GetProperties_Stub(
3007    IRpcStubBuffer* This,
3008    IRpcChannelBuffer* pRpcChannelBuffer,
3009    PRPC_MESSAGE pRpcMessage,
3010    DWORD* pdwStubPhase);
3011HRESULT STDMETHODCALLTYPE IMediaSample2_SetProperties_Proxy(
3012    IMediaSample2* This,
3013    DWORD cbProperties,
3014    const BYTE *pbProperties);
3015void __RPC_STUB IMediaSample2_SetProperties_Stub(
3016    IRpcStubBuffer* This,
3017    IRpcChannelBuffer* pRpcChannelBuffer,
3018    PRPC_MESSAGE pRpcMessage,
3019    DWORD* pdwStubPhase);
3020
3021#endif  /* __IMediaSample2_INTERFACE_DEFINED__ */
3022
3023typedef IMediaSample2 *PMEDIASAMPLE2;
3024
3025/*****************************************************************************
3026 * IMediaSample2Config interface
3027 */
3028#ifndef __IMediaSample2Config_INTERFACE_DEFINED__
3029#define __IMediaSample2Config_INTERFACE_DEFINED__
3030
3031DEFINE_GUID(IID_IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3);
3032#if defined(__cplusplus) && !defined(CINTERFACE)
3033MIDL_INTERFACE("68961e68-832b-41ea-bc91-63593f3e70e3")
3034IMediaSample2Config : public IUnknown
3035{
3036    virtual HRESULT STDMETHODCALLTYPE GetSurface(
3037        IUnknown **ppDirect3DSurface9) = 0;
3038
3039};
3040#ifdef __CRT_UUID_DECL
3041__CRT_UUID_DECL(IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3)
3042#endif
3043#else
3044typedef struct IMediaSample2ConfigVtbl {
3045    BEGIN_INTERFACE
3046
3047    /*** IUnknown methods ***/
3048    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3049        IMediaSample2Config* This,
3050        REFIID riid,
3051        void **ppvObject);
3052
3053    ULONG (STDMETHODCALLTYPE *AddRef)(
3054        IMediaSample2Config* This);
3055
3056    ULONG (STDMETHODCALLTYPE *Release)(
3057        IMediaSample2Config* This);
3058
3059    /*** IMediaSample2Config methods ***/
3060    HRESULT (STDMETHODCALLTYPE *GetSurface)(
3061        IMediaSample2Config* This,
3062        IUnknown **ppDirect3DSurface9);
3063
3064    END_INTERFACE
3065} IMediaSample2ConfigVtbl;
3066interface IMediaSample2Config {
3067    CONST_VTBL IMediaSample2ConfigVtbl* lpVtbl;
3068};
3069
3070#ifdef COBJMACROS
3071#ifndef WIDL_C_INLINE_WRAPPERS
3072/*** IUnknown methods ***/
3073#define IMediaSample2Config_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3074#define IMediaSample2Config_AddRef(This) (This)->lpVtbl->AddRef(This)
3075#define IMediaSample2Config_Release(This) (This)->lpVtbl->Release(This)
3076/*** IMediaSample2Config methods ***/
3077#define IMediaSample2Config_GetSurface(This,ppDirect3DSurface9) (This)->lpVtbl->GetSurface(This,ppDirect3DSurface9)
3078#else
3079/*** IUnknown methods ***/
3080static FORCEINLINE HRESULT IMediaSample2Config_QueryInterface(IMediaSample2Config* This,REFIID riid,void **ppvObject) {
3081    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3082}
3083static FORCEINLINE ULONG IMediaSample2Config_AddRef(IMediaSample2Config* This) {
3084    return This->lpVtbl->AddRef(This);
3085}
3086static FORCEINLINE ULONG IMediaSample2Config_Release(IMediaSample2Config* This) {
3087    return This->lpVtbl->Release(This);
3088}
3089/*** IMediaSample2Config methods ***/
3090static FORCEINLINE HRESULT IMediaSample2Config_GetSurface(IMediaSample2Config* This,IUnknown **ppDirect3DSurface9) {
3091    return This->lpVtbl->GetSurface(This,ppDirect3DSurface9);
3092}
3093#endif
3094#endif
3095
3096#endif
3097
3098HRESULT STDMETHODCALLTYPE IMediaSample2Config_GetSurface_Proxy(
3099    IMediaSample2Config* This,
3100    IUnknown **ppDirect3DSurface9);
3101void __RPC_STUB IMediaSample2Config_GetSurface_Stub(
3102    IRpcStubBuffer* This,
3103    IRpcChannelBuffer* pRpcChannelBuffer,
3104    PRPC_MESSAGE pRpcMessage,
3105    DWORD* pdwStubPhase);
3106
3107#endif  /* __IMediaSample2Config_INTERFACE_DEFINED__ */
3108
3109
3110#define AM_GBF_PREVFRAMESKIPPED 1
3111#define AM_GBF_NOTASYNCPOINT 2
3112#define AM_GBF_NOWAIT 4
3113#define AM_GBF_NODDSURFACELOCK 8
3114
3115/*****************************************************************************
3116 * IMemAllocator interface
3117 */
3118#ifndef __IMemAllocator_INTERFACE_DEFINED__
3119#define __IMemAllocator_INTERFACE_DEFINED__
3120
3121DEFINE_GUID(IID_IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
3122#if defined(__cplusplus) && !defined(CINTERFACE)
3123MIDL_INTERFACE("56a8689c-0ad4-11ce-b03a-0020af0ba770")
3124IMemAllocator : public IUnknown
3125{
3126    virtual HRESULT STDMETHODCALLTYPE SetProperties(
3127        ALLOCATOR_PROPERTIES *pRequest,
3128        ALLOCATOR_PROPERTIES *pActual) = 0;
3129
3130    virtual HRESULT STDMETHODCALLTYPE GetProperties(
3131        ALLOCATOR_PROPERTIES *pProps) = 0;
3132
3133    virtual HRESULT STDMETHODCALLTYPE Commit(
3134        ) = 0;
3135
3136    virtual HRESULT STDMETHODCALLTYPE Decommit(
3137        ) = 0;
3138
3139    virtual HRESULT STDMETHODCALLTYPE GetBuffer(
3140        IMediaSample **ppBuffer,
3141        REFERENCE_TIME *pStartTime,
3142        REFERENCE_TIME *pEndTime,
3143        DWORD dwFlags) = 0;
3144
3145    virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
3146        IMediaSample *pBuffer) = 0;
3147
3148};
3149#ifdef __CRT_UUID_DECL
3150__CRT_UUID_DECL(IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
3151#endif
3152#else
3153typedef struct IMemAllocatorVtbl {
3154    BEGIN_INTERFACE
3155
3156    /*** IUnknown methods ***/
3157    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3158        IMemAllocator* This,
3159        REFIID riid,
3160        void **ppvObject);
3161
3162    ULONG (STDMETHODCALLTYPE *AddRef)(
3163        IMemAllocator* This);
3164
3165    ULONG (STDMETHODCALLTYPE *Release)(
3166        IMemAllocator* This);
3167
3168    /*** IMemAllocator methods ***/
3169    HRESULT (STDMETHODCALLTYPE *SetProperties)(
3170        IMemAllocator* This,
3171        ALLOCATOR_PROPERTIES *pRequest,
3172        ALLOCATOR_PROPERTIES *pActual);
3173
3174    HRESULT (STDMETHODCALLTYPE *GetProperties)(
3175        IMemAllocator* This,
3176        ALLOCATOR_PROPERTIES *pProps);
3177
3178    HRESULT (STDMETHODCALLTYPE *Commit)(
3179        IMemAllocator* This);
3180
3181    HRESULT (STDMETHODCALLTYPE *Decommit)(
3182        IMemAllocator* This);
3183
3184    HRESULT (STDMETHODCALLTYPE *GetBuffer)(
3185        IMemAllocator* This,
3186        IMediaSample **ppBuffer,
3187        REFERENCE_TIME *pStartTime,
3188        REFERENCE_TIME *pEndTime,
3189        DWORD dwFlags);
3190
3191    HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
3192        IMemAllocator* This,
3193        IMediaSample *pBuffer);
3194
3195    END_INTERFACE
3196} IMemAllocatorVtbl;
3197interface IMemAllocator {
3198    CONST_VTBL IMemAllocatorVtbl* lpVtbl;
3199};
3200
3201#ifdef COBJMACROS
3202#ifndef WIDL_C_INLINE_WRAPPERS
3203/*** IUnknown methods ***/
3204#define IMemAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3205#define IMemAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
3206#define IMemAllocator_Release(This) (This)->lpVtbl->Release(This)
3207/*** IMemAllocator methods ***/
3208#define IMemAllocator_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
3209#define IMemAllocator_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
3210#define IMemAllocator_Commit(This) (This)->lpVtbl->Commit(This)
3211#define IMemAllocator_Decommit(This) (This)->lpVtbl->Decommit(This)
3212#define IMemAllocator_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
3213#define IMemAllocator_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
3214#else
3215/*** IUnknown methods ***/
3216static FORCEINLINE HRESULT IMemAllocator_QueryInterface(IMemAllocator* This,REFIID riid,void **ppvObject) {
3217    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3218}
3219static FORCEINLINE ULONG IMemAllocator_AddRef(IMemAllocator* This) {
3220    return This->lpVtbl->AddRef(This);
3221}
3222static FORCEINLINE ULONG IMemAllocator_Release(IMemAllocator* This) {
3223    return This->lpVtbl->Release(This);
3224}
3225/*** IMemAllocator methods ***/
3226static FORCEINLINE HRESULT IMemAllocator_SetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
3227    return This->lpVtbl->SetProperties(This,pRequest,pActual);
3228}
3229static FORCEINLINE HRESULT IMemAllocator_GetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pProps) {
3230    return This->lpVtbl->GetProperties(This,pProps);
3231}
3232static FORCEINLINE HRESULT IMemAllocator_Commit(IMemAllocator* This) {
3233    return This->lpVtbl->Commit(This);
3234}
3235static FORCEINLINE HRESULT IMemAllocator_Decommit(IMemAllocator* This) {
3236    return This->lpVtbl->Decommit(This);
3237}
3238static FORCEINLINE HRESULT IMemAllocator_GetBuffer(IMemAllocator* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) {
3239    return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags);
3240}
3241static FORCEINLINE HRESULT IMemAllocator_ReleaseBuffer(IMemAllocator* This,IMediaSample *pBuffer) {
3242    return This->lpVtbl->ReleaseBuffer(This,pBuffer);
3243}
3244#endif
3245#endif
3246
3247#endif
3248
3249HRESULT STDMETHODCALLTYPE IMemAllocator_SetProperties_Proxy(
3250    IMemAllocator* This,
3251    ALLOCATOR_PROPERTIES *pRequest,
3252    ALLOCATOR_PROPERTIES *pActual);
3253void __RPC_STUB IMemAllocator_SetProperties_Stub(
3254    IRpcStubBuffer* This,
3255    IRpcChannelBuffer* pRpcChannelBuffer,
3256    PRPC_MESSAGE pRpcMessage,
3257    DWORD* pdwStubPhase);
3258HRESULT STDMETHODCALLTYPE IMemAllocator_GetProperties_Proxy(
3259    IMemAllocator* This,
3260    ALLOCATOR_PROPERTIES *pProps);
3261void __RPC_STUB IMemAllocator_GetProperties_Stub(
3262    IRpcStubBuffer* This,
3263    IRpcChannelBuffer* pRpcChannelBuffer,
3264    PRPC_MESSAGE pRpcMessage,
3265    DWORD* pdwStubPhase);
3266HRESULT STDMETHODCALLTYPE IMemAllocator_Commit_Proxy(
3267    IMemAllocator* This);
3268void __RPC_STUB IMemAllocator_Commit_Stub(
3269    IRpcStubBuffer* This,
3270    IRpcChannelBuffer* pRpcChannelBuffer,
3271    PRPC_MESSAGE pRpcMessage,
3272    DWORD* pdwStubPhase);
3273HRESULT STDMETHODCALLTYPE IMemAllocator_Decommit_Proxy(
3274    IMemAllocator* This);
3275void __RPC_STUB IMemAllocator_Decommit_Stub(
3276    IRpcStubBuffer* This,
3277    IRpcChannelBuffer* pRpcChannelBuffer,
3278    PRPC_MESSAGE pRpcMessage,
3279    DWORD* pdwStubPhase);
3280HRESULT STDMETHODCALLTYPE IMemAllocator_GetBuffer_Proxy(
3281    IMemAllocator* This,
3282    IMediaSample **ppBuffer,
3283    REFERENCE_TIME *pStartTime,
3284    REFERENCE_TIME *pEndTime,
3285    DWORD dwFlags);
3286void __RPC_STUB IMemAllocator_GetBuffer_Stub(
3287    IRpcStubBuffer* This,
3288    IRpcChannelBuffer* pRpcChannelBuffer,
3289    PRPC_MESSAGE pRpcMessage,
3290    DWORD* pdwStubPhase);
3291HRESULT STDMETHODCALLTYPE IMemAllocator_ReleaseBuffer_Proxy(
3292    IMemAllocator* This,
3293    IMediaSample *pBuffer);
3294void __RPC_STUB IMemAllocator_ReleaseBuffer_Stub(
3295    IRpcStubBuffer* This,
3296    IRpcChannelBuffer* pRpcChannelBuffer,
3297    PRPC_MESSAGE pRpcMessage,
3298    DWORD* pdwStubPhase);
3299
3300#endif  /* __IMemAllocator_INTERFACE_DEFINED__ */
3301
3302typedef IMemAllocator *PMEMALLOCATOR;
3303
3304/*****************************************************************************
3305 * IMemAllocatorCallbackTemp interface
3306 */
3307#ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
3308#define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
3309
3310DEFINE_GUID(IID_IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
3311#if defined(__cplusplus) && !defined(CINTERFACE)
3312MIDL_INTERFACE("379a0cf0-c1de-11d2-abf5-00a0c905f375")
3313IMemAllocatorCallbackTemp : public IMemAllocator
3314{
3315    virtual HRESULT STDMETHODCALLTYPE SetNotify(
3316        IMemAllocatorNotifyCallbackTemp *pNotify) = 0;
3317
3318    virtual HRESULT STDMETHODCALLTYPE GetFreeCount(
3319        LONG *plBuffersFree) = 0;
3320
3321};
3322#ifdef __CRT_UUID_DECL
3323__CRT_UUID_DECL(IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
3324#endif
3325#else
3326typedef struct IMemAllocatorCallbackTempVtbl {
3327    BEGIN_INTERFACE
3328
3329    /*** IUnknown methods ***/
3330    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3331        IMemAllocatorCallbackTemp* This,
3332        REFIID riid,
3333        void **ppvObject);
3334
3335    ULONG (STDMETHODCALLTYPE *AddRef)(
3336        IMemAllocatorCallbackTemp* This);
3337
3338    ULONG (STDMETHODCALLTYPE *Release)(
3339        IMemAllocatorCallbackTemp* This);
3340
3341    /*** IMemAllocator methods ***/
3342    HRESULT (STDMETHODCALLTYPE *SetProperties)(
3343        IMemAllocatorCallbackTemp* This,
3344        ALLOCATOR_PROPERTIES *pRequest,
3345        ALLOCATOR_PROPERTIES *pActual);
3346
3347    HRESULT (STDMETHODCALLTYPE *GetProperties)(
3348        IMemAllocatorCallbackTemp* This,
3349        ALLOCATOR_PROPERTIES *pProps);
3350
3351    HRESULT (STDMETHODCALLTYPE *Commit)(
3352        IMemAllocatorCallbackTemp* This);
3353
3354    HRESULT (STDMETHODCALLTYPE *Decommit)(
3355        IMemAllocatorCallbackTemp* This);
3356
3357    HRESULT (STDMETHODCALLTYPE *GetBuffer)(
3358        IMemAllocatorCallbackTemp* This,
3359        IMediaSample **ppBuffer,
3360        REFERENCE_TIME *pStartTime,
3361        REFERENCE_TIME *pEndTime,
3362        DWORD dwFlags);
3363
3364    HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
3365        IMemAllocatorCallbackTemp* This,
3366        IMediaSample *pBuffer);
3367
3368    /*** IMemAllocatorCallbackTemp methods ***/
3369    HRESULT (STDMETHODCALLTYPE *SetNotify)(
3370        IMemAllocatorCallbackTemp* This,
3371        IMemAllocatorNotifyCallbackTemp *pNotify);
3372
3373    HRESULT (STDMETHODCALLTYPE *GetFreeCount)(
3374        IMemAllocatorCallbackTemp* This,
3375        LONG *plBuffersFree);
3376
3377    END_INTERFACE
3378} IMemAllocatorCallbackTempVtbl;
3379interface IMemAllocatorCallbackTemp {
3380    CONST_VTBL IMemAllocatorCallbackTempVtbl* lpVtbl;
3381};
3382
3383#ifdef COBJMACROS
3384#ifndef WIDL_C_INLINE_WRAPPERS
3385/*** IUnknown methods ***/
3386#define IMemAllocatorCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3387#define IMemAllocatorCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
3388#define IMemAllocatorCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
3389/*** IMemAllocator methods ***/
3390#define IMemAllocatorCallbackTemp_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
3391#define IMemAllocatorCallbackTemp_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
3392#define IMemAllocatorCallbackTemp_Commit(This) (This)->lpVtbl->Commit(This)
3393#define IMemAllocatorCallbackTemp_Decommit(This) (This)->lpVtbl->Decommit(This)
3394#define IMemAllocatorCallbackTemp_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
3395#define IMemAllocatorCallbackTemp_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
3396/*** IMemAllocatorCallbackTemp methods ***/
3397#define IMemAllocatorCallbackTemp_SetNotify(This,pNotify) (This)->lpVtbl->SetNotify(This,pNotify)
3398#define IMemAllocatorCallbackTemp_GetFreeCount(This,plBuffersFree) (This)->lpVtbl->GetFreeCount(This,plBuffersFree)
3399#else
3400/*** IUnknown methods ***/
3401static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_QueryInterface(IMemAllocatorCallbackTemp* This,REFIID riid,void **ppvObject) {
3402    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3403}
3404static FORCEINLINE ULONG IMemAllocatorCallbackTemp_AddRef(IMemAllocatorCallbackTemp* This) {
3405    return This->lpVtbl->AddRef(This);
3406}
3407static FORCEINLINE ULONG IMemAllocatorCallbackTemp_Release(IMemAllocatorCallbackTemp* This) {
3408    return This->lpVtbl->Release(This);
3409}
3410/*** IMemAllocator methods ***/
3411static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_SetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
3412    return This->lpVtbl->SetProperties(This,pRequest,pActual);
3413}
3414static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pProps) {
3415    return This->lpVtbl->GetProperties(This,pProps);
3416}
3417static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_Commit(IMemAllocatorCallbackTemp* This) {
3418    return This->lpVtbl->Commit(This);
3419}
3420static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_Decommit(IMemAllocatorCallbackTemp* This) {
3421    return This->lpVtbl->Decommit(This);
3422}
3423static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetBuffer(IMemAllocatorCallbackTemp* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) {
3424    return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags);
3425}
3426static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_ReleaseBuffer(IMemAllocatorCallbackTemp* This,IMediaSample *pBuffer) {
3427    return This->lpVtbl->ReleaseBuffer(This,pBuffer);
3428}
3429/*** IMemAllocatorCallbackTemp methods ***/
3430static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_SetNotify(IMemAllocatorCallbackTemp* This,IMemAllocatorNotifyCallbackTemp *pNotify) {
3431    return This->lpVtbl->SetNotify(This,pNotify);
3432}
3433static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetFreeCount(IMemAllocatorCallbackTemp* This,LONG *plBuffersFree) {
3434    return This->lpVtbl->GetFreeCount(This,plBuffersFree);
3435}
3436#endif
3437#endif
3438
3439#endif
3440
3441HRESULT STDMETHODCALLTYPE IMemAllocatorCallbackTemp_SetNotify_Proxy(
3442    IMemAllocatorCallbackTemp* This,
3443    IMemAllocatorNotifyCallbackTemp *pNotify);
3444void __RPC_STUB IMemAllocatorCallbackTemp_SetNotify_Stub(
3445    IRpcStubBuffer* This,
3446    IRpcChannelBuffer* pRpcChannelBuffer,
3447    PRPC_MESSAGE pRpcMessage,
3448    DWORD* pdwStubPhase);
3449HRESULT STDMETHODCALLTYPE IMemAllocatorCallbackTemp_GetFreeCount_Proxy(
3450    IMemAllocatorCallbackTemp* This,
3451    LONG *plBuffersFree);
3452void __RPC_STUB IMemAllocatorCallbackTemp_GetFreeCount_Stub(
3453    IRpcStubBuffer* This,
3454    IRpcChannelBuffer* pRpcChannelBuffer,
3455    PRPC_MESSAGE pRpcMessage,
3456    DWORD* pdwStubPhase);
3457
3458#endif  /* __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ */
3459
3460
3461/*****************************************************************************
3462 * IMemAllocatorNotifyCallbackTemp interface
3463 */
3464#ifndef __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
3465#define __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
3466
3467DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
3468#if defined(__cplusplus) && !defined(CINTERFACE)
3469MIDL_INTERFACE("92980b30-c1de-11d2-abf5-00a0c905f375")
3470IMemAllocatorNotifyCallbackTemp : public IUnknown
3471{
3472    virtual HRESULT STDMETHODCALLTYPE NotifyRelease(
3473        ) = 0;
3474
3475};
3476#ifdef __CRT_UUID_DECL
3477__CRT_UUID_DECL(IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
3478#endif
3479#else
3480typedef struct IMemAllocatorNotifyCallbackTempVtbl {
3481    BEGIN_INTERFACE
3482
3483    /*** IUnknown methods ***/
3484    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3485        IMemAllocatorNotifyCallbackTemp* This,
3486        REFIID riid,
3487        void **ppvObject);
3488
3489    ULONG (STDMETHODCALLTYPE *AddRef)(
3490        IMemAllocatorNotifyCallbackTemp* This);
3491
3492    ULONG (STDMETHODCALLTYPE *Release)(
3493        IMemAllocatorNotifyCallbackTemp* This);
3494
3495    /*** IMemAllocatorNotifyCallbackTemp methods ***/
3496    HRESULT (STDMETHODCALLTYPE *NotifyRelease)(
3497        IMemAllocatorNotifyCallbackTemp* This);
3498
3499    END_INTERFACE
3500} IMemAllocatorNotifyCallbackTempVtbl;
3501interface IMemAllocatorNotifyCallbackTemp {
3502    CONST_VTBL IMemAllocatorNotifyCallbackTempVtbl* lpVtbl;
3503};
3504
3505#ifdef COBJMACROS
3506#ifndef WIDL_C_INLINE_WRAPPERS
3507/*** IUnknown methods ***/
3508#define IMemAllocatorNotifyCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3509#define IMemAllocatorNotifyCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
3510#define IMemAllocatorNotifyCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
3511/*** IMemAllocatorNotifyCallbackTemp methods ***/
3512#define IMemAllocatorNotifyCallbackTemp_NotifyRelease(This) (This)->lpVtbl->NotifyRelease(This)
3513#else
3514/*** IUnknown methods ***/
3515static FORCEINLINE HRESULT IMemAllocatorNotifyCallbackTemp_QueryInterface(IMemAllocatorNotifyCallbackTemp* This,REFIID riid,void **ppvObject) {
3516    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3517}
3518static FORCEINLINE ULONG IMemAllocatorNotifyCallbackTemp_AddRef(IMemAllocatorNotifyCallbackTemp* This) {
3519    return This->lpVtbl->AddRef(This);
3520}
3521static FORCEINLINE ULONG IMemAllocatorNotifyCallbackTemp_Release(IMemAllocatorNotifyCallbackTemp* This) {
3522    return This->lpVtbl->Release(This);
3523}
3524/*** IMemAllocatorNotifyCallbackTemp methods ***/
3525static FORCEINLINE HRESULT IMemAllocatorNotifyCallbackTemp_NotifyRelease(IMemAllocatorNotifyCallbackTemp* This) {
3526    return This->lpVtbl->NotifyRelease(This);
3527}
3528#endif
3529#endif
3530
3531#endif
3532
3533HRESULT STDMETHODCALLTYPE IMemAllocatorNotifyCallbackTemp_NotifyRelease_Proxy(
3534    IMemAllocatorNotifyCallbackTemp* This);
3535void __RPC_STUB IMemAllocatorNotifyCallbackTemp_NotifyRelease_Stub(
3536    IRpcStubBuffer* This,
3537    IRpcChannelBuffer* pRpcChannelBuffer,
3538    PRPC_MESSAGE pRpcMessage,
3539    DWORD* pdwStubPhase);
3540
3541#endif  /* __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ */
3542
3543
3544/*****************************************************************************
3545 * IMemInputPin interface
3546 */
3547#ifndef __IMemInputPin_INTERFACE_DEFINED__
3548#define __IMemInputPin_INTERFACE_DEFINED__
3549
3550DEFINE_GUID(IID_IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
3551#if defined(__cplusplus) && !defined(CINTERFACE)
3552MIDL_INTERFACE("56a8689d-0ad4-11ce-b03a-0020af0ba770")
3553IMemInputPin : public IUnknown
3554{
3555    virtual HRESULT STDMETHODCALLTYPE GetAllocator(
3556        IMemAllocator **ppAllocator) = 0;
3557
3558    virtual HRESULT STDMETHODCALLTYPE NotifyAllocator(
3559        IMemAllocator *pAllocator,
3560        WINBOOL bReadOnly) = 0;
3561
3562    virtual HRESULT STDMETHODCALLTYPE GetAllocatorRequirements(
3563        ALLOCATOR_PROPERTIES *pProps) = 0;
3564
3565    virtual HRESULT STDMETHODCALLTYPE Receive(
3566        IMediaSample *pSample) = 0;
3567
3568    virtual HRESULT STDMETHODCALLTYPE ReceiveMultiple(
3569        IMediaSample **pSamples,
3570        LONG nSamples,
3571        LONG *nSamplesProcessed) = 0;
3572
3573    virtual HRESULT STDMETHODCALLTYPE ReceiveCanBlock(
3574        ) = 0;
3575
3576};
3577#ifdef __CRT_UUID_DECL
3578__CRT_UUID_DECL(IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
3579#endif
3580#else
3581typedef struct IMemInputPinVtbl {
3582    BEGIN_INTERFACE
3583
3584    /*** IUnknown methods ***/
3585    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3586        IMemInputPin* This,
3587        REFIID riid,
3588        void **ppvObject);
3589
3590    ULONG (STDMETHODCALLTYPE *AddRef)(
3591        IMemInputPin* This);
3592
3593    ULONG (STDMETHODCALLTYPE *Release)(
3594        IMemInputPin* This);
3595
3596    /*** IMemInputPin methods ***/
3597    HRESULT (STDMETHODCALLTYPE *GetAllocator)(
3598        IMemInputPin* This,
3599        IMemAllocator **ppAllocator);
3600
3601    HRESULT (STDMETHODCALLTYPE *NotifyAllocator)(
3602        IMemInputPin* This,
3603        IMemAllocator *pAllocator,
3604        WINBOOL bReadOnly);
3605
3606    HRESULT (STDMETHODCALLTYPE *GetAllocatorRequirements)(
3607        IMemInputPin* This,
3608        ALLOCATOR_PROPERTIES *pProps);
3609
3610    HRESULT (STDMETHODCALLTYPE *Receive)(
3611        IMemInputPin* This,
3612        IMediaSample *pSample);
3613
3614    HRESULT (STDMETHODCALLTYPE *ReceiveMultiple)(
3615        IMemInputPin* This,
3616        IMediaSample **pSamples,
3617        LONG nSamples,
3618        LONG *nSamplesProcessed);
3619
3620    HRESULT (STDMETHODCALLTYPE *ReceiveCanBlock)(
3621        IMemInputPin* This);
3622
3623    END_INTERFACE
3624} IMemInputPinVtbl;
3625interface IMemInputPin {
3626    CONST_VTBL IMemInputPinVtbl* lpVtbl;
3627};
3628
3629#ifdef COBJMACROS
3630#ifndef WIDL_C_INLINE_WRAPPERS
3631/*** IUnknown methods ***/
3632#define IMemInputPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3633#define IMemInputPin_AddRef(This) (This)->lpVtbl->AddRef(This)
3634#define IMemInputPin_Release(This) (This)->lpVtbl->Release(This)
3635/*** IMemInputPin methods ***/
3636#define IMemInputPin_GetAllocator(This,ppAllocator) (This)->lpVtbl->GetAllocator(This,ppAllocator)
3637#define IMemInputPin_NotifyAllocator(This,pAllocator,bReadOnly) (This)->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly)
3638#define IMemInputPin_GetAllocatorRequirements(This,pProps) (This)->lpVtbl->GetAllocatorRequirements(This,pProps)
3639#define IMemInputPin_Receive(This,pSample) (This)->lpVtbl->Receive(This,pSample)
3640#define IMemInputPin_ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed) (This)->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed)
3641#define IMemInputPin_ReceiveCanBlock(This) (This)->lpVtbl->ReceiveCanBlock(This)
3642#else
3643/*** IUnknown methods ***/
3644static FORCEINLINE HRESULT IMemInputPin_QueryInterface(IMemInputPin* This,REFIID riid,void **ppvObject) {
3645    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3646}
3647static FORCEINLINE ULONG IMemInputPin_AddRef(IMemInputPin* This) {
3648    return This->lpVtbl->AddRef(This);
3649}
3650static FORCEINLINE ULONG IMemInputPin_Release(IMemInputPin* This) {
3651    return This->lpVtbl->Release(This);
3652}
3653/*** IMemInputPin methods ***/
3654static FORCEINLINE HRESULT IMemInputPin_GetAllocator(IMemInputPin* This,IMemAllocator **ppAllocator) {
3655    return This->lpVtbl->GetAllocator(This,ppAllocator);
3656}
3657static FORCEINLINE HRESULT IMemInputPin_NotifyAllocator(IMemInputPin* This,IMemAllocator *pAllocator,WINBOOL bReadOnly) {
3658    return This->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly);
3659}
3660static FORCEINLINE HRESULT IMemInputPin_GetAllocatorRequirements(IMemInputPin* This,ALLOCATOR_PROPERTIES *pProps) {
3661    return This->lpVtbl->GetAllocatorRequirements(This,pProps);
3662}
3663static FORCEINLINE HRESULT IMemInputPin_Receive(IMemInputPin* This,IMediaSample *pSample) {
3664    return This->lpVtbl->Receive(This,pSample);
3665}
3666static FORCEINLINE HRESULT IMemInputPin_ReceiveMultiple(IMemInputPin* This,IMediaSample **pSamples,LONG nSamples,LONG *nSamplesProcessed) {
3667    return This->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed);
3668}
3669static FORCEINLINE HRESULT IMemInputPin_ReceiveCanBlock(IMemInputPin* This) {
3670    return This->lpVtbl->ReceiveCanBlock(This);
3671}
3672#endif
3673#endif
3674
3675#endif
3676
3677HRESULT STDMETHODCALLTYPE IMemInputPin_GetAllocator_Proxy(
3678    IMemInputPin* This,
3679    IMemAllocator **ppAllocator);
3680void __RPC_STUB IMemInputPin_GetAllocator_Stub(
3681    IRpcStubBuffer* This,
3682    IRpcChannelBuffer* pRpcChannelBuffer,
3683    PRPC_MESSAGE pRpcMessage,
3684    DWORD* pdwStubPhase);
3685HRESULT STDMETHODCALLTYPE IMemInputPin_NotifyAllocator_Proxy(
3686    IMemInputPin* This,
3687    IMemAllocator *pAllocator,
3688    WINBOOL bReadOnly);
3689void __RPC_STUB IMemInputPin_NotifyAllocator_Stub(
3690    IRpcStubBuffer* This,
3691    IRpcChannelBuffer* pRpcChannelBuffer,
3692    PRPC_MESSAGE pRpcMessage,
3693    DWORD* pdwStubPhase);
3694HRESULT STDMETHODCALLTYPE IMemInputPin_GetAllocatorRequirements_Proxy(
3695    IMemInputPin* This,
3696    ALLOCATOR_PROPERTIES *pProps);
3697void __RPC_STUB IMemInputPin_GetAllocatorRequirements_Stub(
3698    IRpcStubBuffer* This,
3699    IRpcChannelBuffer* pRpcChannelBuffer,
3700    PRPC_MESSAGE pRpcMessage,
3701    DWORD* pdwStubPhase);
3702HRESULT STDMETHODCALLTYPE IMemInputPin_Receive_Proxy(
3703    IMemInputPin* This,
3704    IMediaSample *pSample);
3705void __RPC_STUB IMemInputPin_Receive_Stub(
3706    IRpcStubBuffer* This,
3707    IRpcChannelBuffer* pRpcChannelBuffer,
3708    PRPC_MESSAGE pRpcMessage,
3709    DWORD* pdwStubPhase);
3710HRESULT STDMETHODCALLTYPE IMemInputPin_ReceiveMultiple_Proxy(
3711    IMemInputPin* This,
3712    IMediaSample **pSamples,
3713    LONG nSamples,
3714    LONG *nSamplesProcessed);
3715void __RPC_STUB IMemInputPin_ReceiveMultiple_Stub(
3716    IRpcStubBuffer* This,
3717    IRpcChannelBuffer* pRpcChannelBuffer,
3718    PRPC_MESSAGE pRpcMessage,
3719    DWORD* pdwStubPhase);
3720HRESULT STDMETHODCALLTYPE IMemInputPin_ReceiveCanBlock_Proxy(
3721    IMemInputPin* This);
3722void __RPC_STUB IMemInputPin_ReceiveCanBlock_Stub(
3723    IRpcStubBuffer* This,
3724    IRpcChannelBuffer* pRpcChannelBuffer,
3725    PRPC_MESSAGE pRpcMessage,
3726    DWORD* pdwStubPhase);
3727
3728#endif  /* __IMemInputPin_INTERFACE_DEFINED__ */
3729
3730typedef IMemInputPin *PMEMINPUTPIN;
3731
3732/*****************************************************************************
3733 * IAMovieSetup interface
3734 */
3735#ifndef __IAMovieSetup_INTERFACE_DEFINED__
3736#define __IAMovieSetup_INTERFACE_DEFINED__
3737
3738DEFINE_GUID(IID_IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20);
3739#if defined(__cplusplus) && !defined(CINTERFACE)
3740MIDL_INTERFACE("a3d8cec0-7e5a-11cf-bbc5-00805f6cef20")
3741IAMovieSetup : public IUnknown
3742{
3743    virtual HRESULT STDMETHODCALLTYPE Register(
3744        ) = 0;
3745
3746    virtual HRESULT STDMETHODCALLTYPE Unregister(
3747        ) = 0;
3748
3749};
3750#ifdef __CRT_UUID_DECL
3751__CRT_UUID_DECL(IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20)
3752#endif
3753#else
3754typedef struct IAMovieSetupVtbl {
3755    BEGIN_INTERFACE
3756
3757    /*** IUnknown methods ***/
3758    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3759        IAMovieSetup* This,
3760        REFIID riid,
3761        void **ppvObject);
3762
3763    ULONG (STDMETHODCALLTYPE *AddRef)(
3764        IAMovieSetup* This);
3765
3766    ULONG (STDMETHODCALLTYPE *Release)(
3767        IAMovieSetup* This);
3768
3769    /*** IAMovieSetup methods ***/
3770    HRESULT (STDMETHODCALLTYPE *Register)(
3771        IAMovieSetup* This);
3772
3773    HRESULT (STDMETHODCALLTYPE *Unregister)(
3774        IAMovieSetup* This);
3775
3776    END_INTERFACE
3777} IAMovieSetupVtbl;
3778interface IAMovieSetup {
3779    CONST_VTBL IAMovieSetupVtbl* lpVtbl;
3780};
3781
3782#ifdef COBJMACROS
3783#ifndef WIDL_C_INLINE_WRAPPERS
3784/*** IUnknown methods ***/
3785#define IAMovieSetup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3786#define IAMovieSetup_AddRef(This) (This)->lpVtbl->AddRef(This)
3787#define IAMovieSetup_Release(This) (This)->lpVtbl->Release(This)
3788/*** IAMovieSetup methods ***/
3789#define IAMovieSetup_Register(This) (This)->lpVtbl->Register(This)
3790#define IAMovieSetup_Unregister(This) (This)->lpVtbl->Unregister(This)
3791#else
3792/*** IUnknown methods ***/
3793static FORCEINLINE HRESULT IAMovieSetup_QueryInterface(IAMovieSetup* This,REFIID riid,void **ppvObject) {
3794    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3795}
3796static FORCEINLINE ULONG IAMovieSetup_AddRef(IAMovieSetup* This) {
3797    return This->lpVtbl->AddRef(This);
3798}
3799static FORCEINLINE ULONG IAMovieSetup_Release(IAMovieSetup* This) {
3800    return This->lpVtbl->Release(This);
3801}
3802/*** IAMovieSetup methods ***/
3803static FORCEINLINE HRESULT IAMovieSetup_Register(IAMovieSetup* This) {
3804    return This->lpVtbl->Register(This);
3805}
3806static FORCEINLINE HRESULT IAMovieSetup_Unregister(IAMovieSetup* This) {
3807    return This->lpVtbl->Unregister(This);
3808}
3809#endif
3810#endif
3811
3812#endif
3813
3814HRESULT STDMETHODCALLTYPE IAMovieSetup_Register_Proxy(
3815    IAMovieSetup* This);
3816void __RPC_STUB IAMovieSetup_Register_Stub(
3817    IRpcStubBuffer* This,
3818    IRpcChannelBuffer* pRpcChannelBuffer,
3819    PRPC_MESSAGE pRpcMessage,
3820    DWORD* pdwStubPhase);
3821HRESULT STDMETHODCALLTYPE IAMovieSetup_Unregister_Proxy(
3822    IAMovieSetup* This);
3823void __RPC_STUB IAMovieSetup_Unregister_Stub(
3824    IRpcStubBuffer* This,
3825    IRpcChannelBuffer* pRpcChannelBuffer,
3826    PRPC_MESSAGE pRpcMessage,
3827    DWORD* pdwStubPhase);
3828
3829#endif  /* __IAMovieSetup_INTERFACE_DEFINED__ */
3830
3831typedef IAMovieSetup *PAMOVIESETUP;
3832
3833typedef enum AM_SEEKING_SeekingFlags {
3834    AM_SEEKING_NoPositioning = 0x0,
3835    AM_SEEKING_AbsolutePositioning = 0x1,
3836    AM_SEEKING_RelativePositioning = 0x2,
3837    AM_SEEKING_IncrementalPositioning = 0x3,
3838    AM_SEEKING_PositioningBitsMask = 0x3,
3839    AM_SEEKING_SeekToKeyFrame = 0x4,
3840    AM_SEEKING_ReturnTime = 0x8,
3841    AM_SEEKING_Segment = 0x10,
3842    AM_SEEKING_NoFlush = 0x20
3843} AM_SEEKING_SEEKING_FLAGS;
3844
3845typedef enum AM_SEEKING_SeekingCapabilities {
3846    AM_SEEKING_CanSeekAbsolute = 0x1,
3847    AM_SEEKING_CanSeekForwards = 0x2,
3848    AM_SEEKING_CanSeekBackwards = 0x4,
3849    AM_SEEKING_CanGetCurrentPos = 0x8,
3850    AM_SEEKING_CanGetStopPos = 0x10,
3851    AM_SEEKING_CanGetDuration = 0x20,
3852    AM_SEEKING_CanPlayBackwards = 0x40,
3853    AM_SEEKING_CanDoSegments = 0x80,
3854    AM_SEEKING_Source = 0x100
3855} AM_SEEKING_SEEKING_CAPABILITIES;
3856
3857/*****************************************************************************
3858 * IMediaSeeking interface
3859 */
3860#ifndef __IMediaSeeking_INTERFACE_DEFINED__
3861#define __IMediaSeeking_INTERFACE_DEFINED__
3862
3863DEFINE_GUID(IID_IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
3864#if defined(__cplusplus) && !defined(CINTERFACE)
3865MIDL_INTERFACE("36b73880-c2c8-11cf-8b46-00805f6cef60")
3866IMediaSeeking : public IUnknown
3867{
3868    virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
3869        DWORD *pCapabilities) = 0;
3870
3871    virtual HRESULT STDMETHODCALLTYPE CheckCapabilities(
3872        DWORD *pCapabilities) = 0;
3873
3874    virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
3875        const GUID *pFormat) = 0;
3876
3877    virtual HRESULT STDMETHODCALLTYPE QueryPreferredFormat(
3878        GUID *pFormat) = 0;
3879
3880    virtual HRESULT STDMETHODCALLTYPE GetTimeFormat(
3881        GUID *pFormat) = 0;
3882
3883    virtual HRESULT STDMETHODCALLTYPE IsUsingTimeFormat(
3884        const GUID *pFormat) = 0;
3885
3886    virtual HRESULT STDMETHODCALLTYPE SetTimeFormat(
3887        const GUID *pFormat) = 0;
3888
3889    virtual HRESULT STDMETHODCALLTYPE GetDuration(
3890        LONGLONG *pDuration) = 0;
3891
3892    virtual HRESULT STDMETHODCALLTYPE GetStopPosition(
3893        LONGLONG *pStop) = 0;
3894
3895    virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(
3896        LONGLONG *pCurrent) = 0;
3897
3898    virtual HRESULT STDMETHODCALLTYPE ConvertTimeFormat(
3899        LONGLONG *pTarget,
3900        const GUID *pTargetFormat,
3901        LONGLONG Source,
3902        const GUID *pSourceFormat) = 0;
3903
3904    virtual HRESULT STDMETHODCALLTYPE SetPositions(
3905        LONGLONG *pCurrent,
3906        DWORD dwCurrentFlags,
3907        LONGLONG *pStop,
3908        DWORD dwStopFlags) = 0;
3909
3910    virtual HRESULT STDMETHODCALLTYPE GetPositions(
3911        LONGLONG *pCurrent,
3912        LONGLONG *pStop) = 0;
3913
3914    virtual HRESULT STDMETHODCALLTYPE GetAvailable(
3915        LONGLONG *pEarliest,
3916        LONGLONG *pLatest) = 0;
3917
3918    virtual HRESULT STDMETHODCALLTYPE SetRate(
3919        double dRate) = 0;
3920
3921    virtual HRESULT STDMETHODCALLTYPE GetRate(
3922        double *pdRate) = 0;
3923
3924    virtual HRESULT STDMETHODCALLTYPE GetPreroll(
3925        LONGLONG *pllPreroll) = 0;
3926
3927};
3928#ifdef __CRT_UUID_DECL
3929__CRT_UUID_DECL(IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
3930#endif
3931#else
3932typedef struct IMediaSeekingVtbl {
3933    BEGIN_INTERFACE
3934
3935    /*** IUnknown methods ***/
3936    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3937        IMediaSeeking* This,
3938        REFIID riid,
3939        void **ppvObject);
3940
3941    ULONG (STDMETHODCALLTYPE *AddRef)(
3942        IMediaSeeking* This);
3943
3944    ULONG (STDMETHODCALLTYPE *Release)(
3945        IMediaSeeking* This);
3946
3947    /*** IMediaSeeking methods ***/
3948    HRESULT (STDMETHODCALLTYPE *GetCapabilities)(
3949        IMediaSeeking* This,
3950        DWORD *pCapabilities);
3951
3952    HRESULT (STDMETHODCALLTYPE *CheckCapabilities)(
3953        IMediaSeeking* This,
3954        DWORD *pCapabilities);
3955
3956    HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
3957        IMediaSeeking* This,
3958        const GUID *pFormat);
3959
3960    HRESULT (STDMETHODCALLTYPE *QueryPreferredFormat)(
3961        IMediaSeeking* This,
3962        GUID *pFormat);
3963
3964    HRESULT (STDMETHODCALLTYPE *GetTimeFormat)(
3965        IMediaSeeking* This,
3966        GUID *pFormat);
3967
3968    HRESULT (STDMETHODCALLTYPE *IsUsingTimeFormat)(
3969        IMediaSeeking* This,
3970        const GUID *pFormat);
3971
3972    HRESULT (STDMETHODCALLTYPE *SetTimeFormat)(
3973        IMediaSeeking* This,
3974        const GUID *pFormat);
3975
3976    HRESULT (STDMETHODCALLTYPE *GetDuration)(
3977        IMediaSeeking* This,
3978        LONGLONG *pDuration);
3979
3980    HRESULT (STDMETHODCALLTYPE *GetStopPosition)(
3981        IMediaSeeking* This,
3982        LONGLONG *pStop);
3983
3984    HRESULT (STDMETHODCALLTYPE *GetCurrentPosition)(
3985        IMediaSeeking* This,
3986        LONGLONG *pCurrent);
3987
3988    HRESULT (STDMETHODCALLTYPE *ConvertTimeFormat)(
3989        IMediaSeeking* This,
3990        LONGLONG *pTarget,
3991        const GUID *pTargetFormat,
3992        LONGLONG Source,
3993        const GUID *pSourceFormat);
3994
3995    HRESULT (STDMETHODCALLTYPE *SetPositions)(
3996        IMediaSeeking* This,
3997        LONGLONG *pCurrent,
3998        DWORD dwCurrentFlags,
3999        LONGLONG *pStop,
4000        DWORD dwStopFlags);
4001
4002    HRESULT (STDMETHODCALLTYPE *GetPositions)(
4003        IMediaSeeking* This,
4004        LONGLONG *pCurrent,
4005        LONGLONG *pStop);
4006
4007    HRESULT (STDMETHODCALLTYPE *GetAvailable)(
4008        IMediaSeeking* This,
4009        LONGLONG *pEarliest,
4010        LONGLONG *pLatest);
4011
4012    HRESULT (STDMETHODCALLTYPE *SetRate)(
4013        IMediaSeeking* This,
4014        double dRate);
4015
4016    HRESULT (STDMETHODCALLTYPE *GetRate)(
4017        IMediaSeeking* This,
4018        double *pdRate);
4019
4020    HRESULT (STDMETHODCALLTYPE *GetPreroll)(
4021        IMediaSeeking* This,
4022        LONGLONG *pllPreroll);
4023
4024    END_INTERFACE
4025} IMediaSeekingVtbl;
4026interface IMediaSeeking {
4027    CONST_VTBL IMediaSeekingVtbl* lpVtbl;
4028};
4029
4030#ifdef COBJMACROS
4031#ifndef WIDL_C_INLINE_WRAPPERS
4032/*** IUnknown methods ***/
4033#define IMediaSeeking_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4034#define IMediaSeeking_AddRef(This) (This)->lpVtbl->AddRef(This)
4035#define IMediaSeeking_Release(This) (This)->lpVtbl->Release(This)
4036/*** IMediaSeeking methods ***/
4037#define IMediaSeeking_GetCapabilities(This,pCapabilities) (This)->lpVtbl->GetCapabilities(This,pCapabilities)
4038#define IMediaSeeking_CheckCapabilities(This,pCapabilities) (This)->lpVtbl->CheckCapabilities(This,pCapabilities)
4039#define IMediaSeeking_IsFormatSupported(This,pFormat) (This)->lpVtbl->IsFormatSupported(This,pFormat)
4040#define IMediaSeeking_QueryPreferredFormat(This,pFormat) (This)->lpVtbl->QueryPreferredFormat(This,pFormat)
4041#define IMediaSeeking_GetTimeFormat(This,pFormat) (This)->lpVtbl->GetTimeFormat(This,pFormat)
4042#define IMediaSeeking_IsUsingTimeFormat(This,pFormat) (This)->lpVtbl->IsUsingTimeFormat(This,pFormat)
4043#define IMediaSeeking_SetTimeFormat(This,pFormat) (This)->lpVtbl->SetTimeFormat(This,pFormat)
4044#define IMediaSeeking_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration)
4045#define IMediaSeeking_GetStopPosition(This,pStop) (This)->lpVtbl->GetStopPosition(This,pStop)
4046#define IMediaSeeking_GetCurrentPosition(This,pCurrent) (This)->lpVtbl->GetCurrentPosition(This,pCurrent)
4047#define IMediaSeeking_ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat) (This)->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat)
4048#define IMediaSeeking_SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags) (This)->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags)
4049#define IMediaSeeking_GetPositions(This,pCurrent,pStop) (This)->lpVtbl->GetPositions(This,pCurrent,pStop)
4050#define IMediaSeeking_GetAvailable(This,pEarliest,pLatest) (This)->lpVtbl->GetAvailable(This,pEarliest,pLatest)
4051#define IMediaSeeking_SetRate(This,dRate) (This)->lpVtbl->SetRate(This,dRate)
4052#define IMediaSeeking_GetRate(This,pdRate) (This)->lpVtbl->GetRate(This,pdRate)
4053#define IMediaSeeking_GetPreroll(This,pllPreroll) (This)->lpVtbl->GetPreroll(This,pllPreroll)
4054#else
4055/*** IUnknown methods ***/
4056static FORCEINLINE HRESULT IMediaSeeking_QueryInterface(IMediaSeeking* This,REFIID riid,void **ppvObject) {
4057    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4058}
4059static FORCEINLINE ULONG IMediaSeeking_AddRef(IMediaSeeking* This) {
4060    return This->lpVtbl->AddRef(This);
4061}
4062static FORCEINLINE ULONG IMediaSeeking_Release(IMediaSeeking* This) {
4063    return This->lpVtbl->Release(This);
4064}
4065/*** IMediaSeeking methods ***/
4066static FORCEINLINE HRESULT IMediaSeeking_GetCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
4067    return This->lpVtbl->GetCapabilities(This,pCapabilities);
4068}
4069static FORCEINLINE HRESULT IMediaSeeking_CheckCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
4070    return This->lpVtbl->CheckCapabilities(This,pCapabilities);
4071}
4072static FORCEINLINE HRESULT IMediaSeeking_IsFormatSupported(IMediaSeeking* This,const GUID *pFormat) {
4073    return This->lpVtbl->IsFormatSupported(This,pFormat);
4074}
4075static FORCEINLINE HRESULT IMediaSeeking_QueryPreferredFormat(IMediaSeeking* This,GUID *pFormat) {
4076    return This->lpVtbl->QueryPreferredFormat(This,pFormat);
4077}
4078static FORCEINLINE HRESULT IMediaSeeking_GetTimeFormat(IMediaSeeking* This,GUID *pFormat) {
4079    return This->lpVtbl->GetTimeFormat(This,pFormat);
4080}
4081static FORCEINLINE HRESULT IMediaSeeking_IsUsingTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
4082    return This->lpVtbl->IsUsingTimeFormat(This,pFormat);
4083}
4084static FORCEINLINE HRESULT IMediaSeeking_SetTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
4085    return This->lpVtbl->SetTimeFormat(This,pFormat);
4086}
4087static FORCEINLINE HRESULT IMediaSeeking_GetDuration(IMediaSeeking* This,LONGLONG *pDuration) {
4088    return This->lpVtbl->GetDuration(This,pDuration);
4089}
4090static FORCEINLINE HRESULT IMediaSeeking_GetStopPosition(IMediaSeeking* This,LONGLONG *pStop) {
4091    return This->lpVtbl->GetStopPosition(This,pStop);
4092}
4093static FORCEINLINE HRESULT IMediaSeeking_GetCurrentPosition(IMediaSeeking* This,LONGLONG *pCurrent) {
4094    return This->lpVtbl->GetCurrentPosition(This,pCurrent);
4095}
4096static FORCEINLINE HRESULT IMediaSeeking_ConvertTimeFormat(IMediaSeeking* This,LONGLONG *pTarget,const GUID *pTargetFormat,LONGLONG Source,const GUID *pSourceFormat) {
4097    return This->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat);
4098}
4099static FORCEINLINE HRESULT IMediaSeeking_SetPositions(IMediaSeeking* This,LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags) {
4100    return This->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags);
4101}
4102static FORCEINLINE HRESULT IMediaSeeking_GetPositions(IMediaSeeking* This,LONGLONG *pCurrent,LONGLONG *pStop) {
4103    return This->lpVtbl->GetPositions(This,pCurrent,pStop);
4104}
4105static FORCEINLINE HRESULT IMediaSeeking_GetAvailable(IMediaSeeking* This,LONGLONG *pEarliest,LONGLONG *pLatest) {
4106    return This->lpVtbl->GetAvailable(This,pEarliest,pLatest);
4107}
4108static FORCEINLINE HRESULT IMediaSeeking_SetRate(IMediaSeeking* This,double dRate) {
4109    return This->lpVtbl->SetRate(This,dRate);
4110}
4111static FORCEINLINE HRESULT IMediaSeeking_GetRate(IMediaSeeking* This,double *pdRate) {
4112    return This->lpVtbl->GetRate(This,pdRate);
4113}
4114static FORCEINLINE HRESULT IMediaSeeking_GetPreroll(IMediaSeeking* This,LONGLONG *pllPreroll) {
4115    return This->lpVtbl->GetPreroll(This,pllPreroll);
4116}
4117#endif
4118#endif
4119
4120#endif
4121
4122HRESULT STDMETHODCALLTYPE IMediaSeeking_GetCapabilities_Proxy(
4123    IMediaSeeking* This,
4124    DWORD *pCapabilities);
4125void __RPC_STUB IMediaSeeking_GetCapabilities_Stub(
4126    IRpcStubBuffer* This,
4127    IRpcChannelBuffer* pRpcChannelBuffer,
4128    PRPC_MESSAGE pRpcMessage,
4129    DWORD* pdwStubPhase);
4130HRESULT STDMETHODCALLTYPE IMediaSeeking_CheckCapabilities_Proxy(
4131    IMediaSeeking* This,
4132    DWORD *pCapabilities);
4133void __RPC_STUB IMediaSeeking_CheckCapabilities_Stub(
4134    IRpcStubBuffer* This,
4135    IRpcChannelBuffer* pRpcChannelBuffer,
4136    PRPC_MESSAGE pRpcMessage,
4137    DWORD* pdwStubPhase);
4138HRESULT STDMETHODCALLTYPE IMediaSeeking_IsFormatSupported_Proxy(
4139    IMediaSeeking* This,
4140    const GUID *pFormat);
4141void __RPC_STUB IMediaSeeking_IsFormatSupported_Stub(
4142    IRpcStubBuffer* This,
4143    IRpcChannelBuffer* pRpcChannelBuffer,
4144    PRPC_MESSAGE pRpcMessage,
4145    DWORD* pdwStubPhase);
4146HRESULT STDMETHODCALLTYPE IMediaSeeking_QueryPreferredFormat_Proxy(
4147    IMediaSeeking* This,
4148    GUID *pFormat);
4149void __RPC_STUB IMediaSeeking_QueryPreferredFormat_Stub(
4150    IRpcStubBuffer* This,
4151    IRpcChannelBuffer* pRpcChannelBuffer,
4152    PRPC_MESSAGE pRpcMessage,
4153    DWORD* pdwStubPhase);
4154HRESULT STDMETHODCALLTYPE IMediaSeeking_GetTimeFormat_Proxy(
4155    IMediaSeeking* This,
4156    GUID *pFormat);
4157void __RPC_STUB IMediaSeeking_GetTimeFormat_Stub(
4158    IRpcStubBuffer* This,
4159    IRpcChannelBuffer* pRpcChannelBuffer,
4160    PRPC_MESSAGE pRpcMessage,
4161    DWORD* pdwStubPhase);
4162HRESULT STDMETHODCALLTYPE IMediaSeeking_IsUsingTimeFormat_Proxy(
4163    IMediaSeeking* This,
4164    const GUID *pFormat);
4165void __RPC_STUB IMediaSeeking_IsUsingTimeFormat_Stub(
4166    IRpcStubBuffer* This,
4167    IRpcChannelBuffer* pRpcChannelBuffer,
4168    PRPC_MESSAGE pRpcMessage,
4169    DWORD* pdwStubPhase);
4170HRESULT STDMETHODCALLTYPE IMediaSeeking_SetTimeFormat_Proxy(
4171    IMediaSeeking* This,
4172    const GUID *pFormat);
4173void __RPC_STUB IMediaSeeking_SetTimeFormat_Stub(
4174    IRpcStubBuffer* This,
4175    IRpcChannelBuffer* pRpcChannelBuffer,
4176    PRPC_MESSAGE pRpcMessage,
4177    DWORD* pdwStubPhase);
4178HRESULT STDMETHODCALLTYPE IMediaSeeking_GetDuration_Proxy(
4179    IMediaSeeking* This,
4180    LONGLONG *pDuration);
4181void __RPC_STUB IMediaSeeking_GetDuration_Stub(
4182    IRpcStubBuffer* This,
4183    IRpcChannelBuffer* pRpcChannelBuffer,
4184    PRPC_MESSAGE pRpcMessage,
4185    DWORD* pdwStubPhase);
4186HRESULT STDMETHODCALLTYPE IMediaSeeking_GetStopPosition_Proxy(
4187    IMediaSeeking* This,
4188    LONGLONG *pStop);
4189void __RPC_STUB IMediaSeeking_GetStopPosition_Stub(
4190    IRpcStubBuffer* This,
4191    IRpcChannelBuffer* pRpcChannelBuffer,
4192    PRPC_MESSAGE pRpcMessage,
4193    DWORD* pdwStubPhase);
4194HRESULT STDMETHODCALLTYPE IMediaSeeking_GetCurrentPosition_Proxy(
4195    IMediaSeeking* This,
4196    LONGLONG *pCurrent);
4197void __RPC_STUB IMediaSeeking_GetCurrentPosition_Stub(
4198    IRpcStubBuffer* This,
4199    IRpcChannelBuffer* pRpcChannelBuffer,
4200    PRPC_MESSAGE pRpcMessage,
4201    DWORD* pdwStubPhase);
4202HRESULT STDMETHODCALLTYPE IMediaSeeking_ConvertTimeFormat_Proxy(
4203    IMediaSeeking* This,
4204    LONGLONG *pTarget,
4205    const GUID *pTargetFormat,
4206    LONGLONG Source,
4207    const GUID *pSourceFormat);
4208void __RPC_STUB IMediaSeeking_ConvertTimeFormat_Stub(
4209    IRpcStubBuffer* This,
4210    IRpcChannelBuffer* pRpcChannelBuffer,
4211    PRPC_MESSAGE pRpcMessage,
4212    DWORD* pdwStubPhase);
4213HRESULT STDMETHODCALLTYPE IMediaSeeking_SetPositions_Proxy(
4214    IMediaSeeking* This,
4215    LONGLONG *pCurrent,
4216    DWORD dwCurrentFlags,
4217    LONGLONG *pStop,
4218    DWORD dwStopFlags);
4219void __RPC_STUB IMediaSeeking_SetPositions_Stub(
4220    IRpcStubBuffer* This,
4221    IRpcChannelBuffer* pRpcChannelBuffer,
4222    PRPC_MESSAGE pRpcMessage,
4223    DWORD* pdwStubPhase);
4224HRESULT STDMETHODCALLTYPE IMediaSeeking_GetPositions_Proxy(
4225    IMediaSeeking* This,
4226    LONGLONG *pCurrent,
4227    LONGLONG *pStop);
4228void __RPC_STUB IMediaSeeking_GetPositions_Stub(
4229    IRpcStubBuffer* This,
4230    IRpcChannelBuffer* pRpcChannelBuffer,
4231    PRPC_MESSAGE pRpcMessage,
4232    DWORD* pdwStubPhase);
4233HRESULT STDMETHODCALLTYPE IMediaSeeking_GetAvailable_Proxy(
4234    IMediaSeeking* This,
4235    LONGLONG *pEarliest,
4236    LONGLONG *pLatest);
4237void __RPC_STUB IMediaSeeking_GetAvailable_Stub(
4238    IRpcStubBuffer* This,
4239    IRpcChannelBuffer* pRpcChannelBuffer,
4240    PRPC_MESSAGE pRpcMessage,
4241    DWORD* pdwStubPhase);
4242HRESULT STDMETHODCALLTYPE IMediaSeeking_SetRate_Proxy(
4243    IMediaSeeking* This,
4244    double dRate);
4245void __RPC_STUB IMediaSeeking_SetRate_Stub(
4246    IRpcStubBuffer* This,
4247    IRpcChannelBuffer* pRpcChannelBuffer,
4248    PRPC_MESSAGE pRpcMessage,
4249    DWORD* pdwStubPhase);
4250HRESULT STDMETHODCALLTYPE IMediaSeeking_GetRate_Proxy(
4251    IMediaSeeking* This,
4252    double *pdRate);
4253void __RPC_STUB IMediaSeeking_GetRate_Stub(
4254    IRpcStubBuffer* This,
4255    IRpcChannelBuffer* pRpcChannelBuffer,
4256    PRPC_MESSAGE pRpcMessage,
4257    DWORD* pdwStubPhase);
4258HRESULT STDMETHODCALLTYPE IMediaSeeking_GetPreroll_Proxy(
4259    IMediaSeeking* This,
4260    LONGLONG *pllPreroll);
4261void __RPC_STUB IMediaSeeking_GetPreroll_Stub(
4262    IRpcStubBuffer* This,
4263    IRpcChannelBuffer* pRpcChannelBuffer,
4264    PRPC_MESSAGE pRpcMessage,
4265    DWORD* pdwStubPhase);
4266
4267#endif  /* __IMediaSeeking_INTERFACE_DEFINED__ */
4268
4269typedef IMediaSeeking *PMEDIASEEKING;
4270
4271enum tagAM_MEDIAEVENT_FLAGS {
4272  AM_MEDIAEVENT_NONOTIFY = 0x1
4273};
4274
4275#endif
4276#ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
4277#define __IAMAnalogVideoDecoder_FWD_DEFINED__
4278typedef interface IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
4279#endif
4280
4281#ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
4282#define __IAMAnalogVideoEncoder_FWD_DEFINED__
4283typedef interface IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
4284#endif
4285
4286#ifndef __IAMAudioInputMixer_FWD_DEFINED__
4287#define __IAMAudioInputMixer_FWD_DEFINED__
4288typedef interface IAMAudioInputMixer IAMAudioInputMixer;
4289#endif
4290
4291#ifndef __IAMAudioRendererStats_FWD_DEFINED__
4292#define __IAMAudioRendererStats_FWD_DEFINED__
4293typedef interface IAMAudioRendererStats IAMAudioRendererStats;
4294#endif
4295
4296#ifndef __IAMBufferNegotiation_FWD_DEFINED__
4297#define __IAMBufferNegotiation_FWD_DEFINED__
4298typedef interface IAMBufferNegotiation IAMBufferNegotiation;
4299#endif
4300
4301#ifndef __IAMCameraControl_FWD_DEFINED__
4302#define __IAMCameraControl_FWD_DEFINED__
4303typedef interface IAMCameraControl IAMCameraControl;
4304#endif
4305
4306#ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
4307#define __IAMCertifiedOutputProtection_FWD_DEFINED__
4308typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
4309#endif
4310
4311#ifndef __IAMClockSlave_FWD_DEFINED__
4312#define __IAMClockSlave_FWD_DEFINED__
4313typedef interface IAMClockSlave IAMClockSlave;
4314#endif
4315
4316#ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
4317#define __IAMCopyCaptureFileProgress_FWD_DEFINED__
4318typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
4319#endif
4320
4321#ifndef __IAMCrossbar_FWD_DEFINED__
4322#define __IAMCrossbar_FWD_DEFINED__
4323typedef interface IAMCrossbar IAMCrossbar;
4324#endif
4325
4326#ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
4327#define __IAMDevMemoryAllocator_FWD_DEFINED__
4328typedef interface IAMDevMemoryAllocator IAMDevMemoryAllocator;
4329#endif
4330
4331#ifndef __IAMDevMemoryControl_FWD_DEFINED__
4332#define __IAMDevMemoryControl_FWD_DEFINED__
4333typedef interface IAMDevMemoryControl IAMDevMemoryControl;
4334#endif
4335
4336#ifndef __IAMDroppedFrames_FWD_DEFINED__
4337#define __IAMDroppedFrames_FWD_DEFINED__
4338typedef interface IAMDroppedFrames IAMDroppedFrames;
4339#endif
4340
4341#ifndef __IAMExtDevice_FWD_DEFINED__
4342#define __IAMExtDevice_FWD_DEFINED__
4343typedef interface IAMExtDevice IAMExtDevice;
4344#endif
4345
4346#ifndef __IAMExtTransport_FWD_DEFINED__
4347#define __IAMExtTransport_FWD_DEFINED__
4348typedef interface IAMExtTransport IAMExtTransport;
4349#endif
4350
4351#ifndef __IAMGraphStreams_FWD_DEFINED__
4352#define __IAMGraphStreams_FWD_DEFINED__
4353typedef interface IAMGraphStreams IAMGraphStreams;
4354#endif
4355
4356#ifndef __IAMLatency_FWD_DEFINED__
4357#define __IAMLatency_FWD_DEFINED__
4358typedef interface IAMLatency IAMLatency;
4359#endif
4360
4361#ifndef __IAMOpenProgress_FWD_DEFINED__
4362#define __IAMOpenProgress_FWD_DEFINED__
4363typedef interface IAMOpenProgress IAMOpenProgress;
4364#endif
4365
4366#ifndef __IAMOverlayFX_FWD_DEFINED__
4367#define __IAMOverlayFX_FWD_DEFINED__
4368typedef interface IAMOverlayFX IAMOverlayFX;
4369#endif
4370
4371#ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
4372#define __IAMPhysicalPinInfo_FWD_DEFINED__
4373typedef interface IAMPhysicalPinInfo IAMPhysicalPinInfo;
4374#endif
4375
4376#ifndef __IAMPushSource_FWD_DEFINED__
4377#define __IAMPushSource_FWD_DEFINED__
4378typedef interface IAMPushSource IAMPushSource;
4379#endif
4380
4381#ifndef __IAMStreamConfig_FWD_DEFINED__
4382#define __IAMStreamConfig_FWD_DEFINED__
4383typedef interface IAMStreamConfig IAMStreamConfig;
4384#endif
4385
4386#ifndef __IAMTimecodeDisplay_FWD_DEFINED__
4387#define __IAMTimecodeDisplay_FWD_DEFINED__
4388typedef interface IAMTimecodeDisplay IAMTimecodeDisplay;
4389#endif
4390
4391#ifndef __IAMTimecodeGenerator_FWD_DEFINED__
4392#define __IAMTimecodeGenerator_FWD_DEFINED__
4393typedef interface IAMTimecodeGenerator IAMTimecodeGenerator;
4394#endif
4395
4396#ifndef __IAMTimecodeReader_FWD_DEFINED__
4397#define __IAMTimecodeReader_FWD_DEFINED__
4398typedef interface IAMTimecodeReader IAMTimecodeReader;
4399#endif
4400
4401#ifndef __IAMTVTuner_FWD_DEFINED__
4402#define __IAMTVTuner_FWD_DEFINED__
4403typedef interface IAMTVTuner IAMTVTuner;
4404#endif
4405
4406#ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
4407#define __IAMVfwCaptureDialogs_FWD_DEFINED__
4408typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
4409#endif
4410
4411#ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
4412#define __IAMVfwCompressDialogs_FWD_DEFINED__
4413typedef interface IAMVfwCompressDialogs IAMVfwCompressDialogs;
4414#endif
4415
4416#ifndef __IAMVideoCompression_FWD_DEFINED__
4417#define __IAMVideoCompression_FWD_DEFINED__
4418typedef interface IAMVideoCompression IAMVideoCompression;
4419#endif
4420
4421#ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
4422#define __IAMVideoDecimationProperties_FWD_DEFINED__
4423typedef interface IAMVideoDecimationProperties IAMVideoDecimationProperties;
4424#endif
4425
4426#ifndef __IAMVideoProcAmp_FWD_DEFINED__
4427#define __IAMVideoProcAmp_FWD_DEFINED__
4428typedef interface IAMVideoProcAmp IAMVideoProcAmp;
4429#endif
4430
4431#ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
4432#define __IAMGraphBuilderCallback_FWD_DEFINED__
4433typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
4434#endif
4435
4436#ifndef __ICaptureGraphBuilder_FWD_DEFINED__
4437#define __ICaptureGraphBuilder_FWD_DEFINED__
4438typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
4439#endif
4440
4441#ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
4442#define __ICaptureGraphBuilder2_FWD_DEFINED__
4443typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
4444#endif
4445
4446#ifndef __IConfigAviMux_FWD_DEFINED__
4447#define __IConfigAviMux_FWD_DEFINED__
4448typedef interface IConfigAviMux IConfigAviMux;
4449#endif
4450
4451#ifndef __IConfigInterleaving_FWD_DEFINED__
4452#define __IConfigInterleaving_FWD_DEFINED__
4453typedef interface IConfigInterleaving IConfigInterleaving;
4454#endif
4455
4456#ifndef __IDecimateVideoImage_FWD_DEFINED__
4457#define __IDecimateVideoImage_FWD_DEFINED__
4458typedef interface IDecimateVideoImage IDecimateVideoImage;
4459#endif
4460
4461#ifndef __IDrawVideoImage_FWD_DEFINED__
4462#define __IDrawVideoImage_FWD_DEFINED__
4463typedef interface IDrawVideoImage IDrawVideoImage;
4464#endif
4465
4466#ifndef __IEnumRegFilters_FWD_DEFINED__
4467#define __IEnumRegFilters_FWD_DEFINED__
4468typedef interface IEnumRegFilters IEnumRegFilters;
4469#endif
4470
4471#ifndef __IEnumStreamIdMap_FWD_DEFINED__
4472#define __IEnumStreamIdMap_FWD_DEFINED__
4473typedef interface IEnumStreamIdMap IEnumStreamIdMap;
4474#endif
4475
4476#ifndef __IFileSourceFilter_FWD_DEFINED__
4477#define __IFileSourceFilter_FWD_DEFINED__
4478typedef interface IFileSourceFilter IFileSourceFilter;
4479#endif
4480
4481#ifndef __IFileSinkFilter_FWD_DEFINED__
4482#define __IFileSinkFilter_FWD_DEFINED__
4483typedef interface IFileSinkFilter IFileSinkFilter;
4484#endif
4485
4486#ifndef __IFileSinkFilter2_FWD_DEFINED__
4487#define __IFileSinkFilter2_FWD_DEFINED__
4488typedef interface IFileSinkFilter2 IFileSinkFilter2;
4489#endif
4490
4491#ifndef __IFilterMapper_FWD_DEFINED__
4492#define __IFilterMapper_FWD_DEFINED__
4493typedef interface IFilterMapper IFilterMapper;
4494#endif
4495
4496#ifndef __IFilterMapper2_FWD_DEFINED__
4497#define __IFilterMapper2_FWD_DEFINED__
4498typedef interface IFilterMapper2 IFilterMapper2;
4499#endif
4500
4501#ifndef __IGraphBuilder_FWD_DEFINED__
4502#define __IGraphBuilder_FWD_DEFINED__
4503typedef interface IGraphBuilder IGraphBuilder;
4504#endif
4505
4506#ifndef __IKsPropertySet_FWD_DEFINED__
4507#define __IKsPropertySet_FWD_DEFINED__
4508typedef interface IKsPropertySet IKsPropertySet;
4509#endif
4510
4511#ifndef __IMediaEventSink_FWD_DEFINED__
4512#define __IMediaEventSink_FWD_DEFINED__
4513typedef interface IMediaEventSink IMediaEventSink;
4514#endif
4515
4516#ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
4517#define __IMpeg2Demultiplexer_FWD_DEFINED__
4518typedef interface IMpeg2Demultiplexer IMpeg2Demultiplexer;
4519#endif
4520
4521#ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
4522#define __IMPEG2StreamIdMap_FWD_DEFINED__
4523typedef interface IMPEG2StreamIdMap IMPEG2StreamIdMap;
4524#endif
4525
4526#ifndef __IOverlay_FWD_DEFINED__
4527#define __IOverlay_FWD_DEFINED__
4528typedef interface IOverlay IOverlay;
4529#endif
4530
4531#ifndef __IOverlayNotify_FWD_DEFINED__
4532#define __IOverlayNotify_FWD_DEFINED__
4533typedef interface IOverlayNotify IOverlayNotify;
4534#endif
4535
4536#ifndef __IOverlayNotify2_FWD_DEFINED__
4537#define __IOverlayNotify2_FWD_DEFINED__
4538typedef interface IOverlayNotify2 IOverlayNotify2;
4539#endif
4540
4541#ifndef __IQualityControl_FWD_DEFINED__
4542#define __IQualityControl_FWD_DEFINED__
4543typedef interface IQualityControl IQualityControl;
4544#endif
4545
4546#ifndef __ISeekingPassThru_FWD_DEFINED__
4547#define __ISeekingPassThru_FWD_DEFINED__
4548typedef interface ISeekingPassThru ISeekingPassThru;
4549#endif
4550
4551typedef enum tagAnalogVideoStandard {
4552    AnalogVideo_None = 0x0,
4553    AnalogVideo_NTSC_M = 0x1,
4554    AnalogVideo_NTSC_M_J = 0x2,
4555    AnalogVideo_NTSC_433 = 0x4,
4556    AnalogVideo_PAL_B = 0x10,
4557    AnalogVideo_PAL_D = 0x20,
4558    AnalogVideo_PAL_G = 0x40,
4559    AnalogVideo_PAL_H = 0x80,
4560    AnalogVideo_PAL_I = 0x100,
4561    AnalogVideo_PAL_M = 0x200,
4562    AnalogVideo_PAL_N = 0x400,
4563    AnalogVideo_PAL_60 = 0x800,
4564    AnalogVideo_SECAM_B = 0x1000,
4565    AnalogVideo_SECAM_D = 0x2000,
4566    AnalogVideo_SECAM_G = 0x4000,
4567    AnalogVideo_SECAM_H = 0x8000,
4568    AnalogVideo_SECAM_K = 0x10000,
4569    AnalogVideo_SECAM_K1 = 0x20000,
4570    AnalogVideo_SECAM_L = 0x40000,
4571    AnalogVideo_SECAM_L1 = 0x80000,
4572    AnalogVideo_PAL_N_COMBO = 0x100000,
4573    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,
4574    AnalogVideoMask_MCE_PAL = (((AnalogVideo_PAL_B | AnalogVideo_PAL_D) | AnalogVideo_PAL_G) | AnalogVideo_PAL_H) | AnalogVideo_PAL_I,
4575    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
4576} AnalogVideoStandard;
4577typedef enum tagTunerInputType {
4578    TunerInputCable = 0,
4579    TunerInputAntenna = 1
4580} TunerInputType;
4581typedef struct __WIDL_strmif_generated_name_00000002 {
4582    CLSID Clsid;
4583    LPWSTR Name;
4584} REGFILTER;
4585typedef enum tagTVAudioMode {
4586    AMTVAUDIO_MODE_MONO = 0x1,
4587    AMTVAUDIO_MODE_STEREO = 0x2,
4588    AMTVAUDIO_MODE_LANG_A = 0x10,
4589    AMTVAUDIO_MODE_LANG_B = 0x20,
4590    AMTVAUDIO_MODE_LANG_C = 0x40,
4591    AMTVAUDIO_PRESET_STEREO = 0x200,
4592    AMTVAUDIO_PRESET_LANG_A = 0x1000,
4593    AMTVAUDIO_PRESET_LANG_B = 0x2000,
4594    AMTVAUDIO_PRESET_LANG_C = 0x4000
4595} TVAudioMode;
4596/*****************************************************************************
4597 * IEnumRegFilters interface
4598 */
4599#ifndef __IEnumRegFilters_INTERFACE_DEFINED__
4600#define __IEnumRegFilters_INTERFACE_DEFINED__
4601
4602DEFINE_GUID(IID_IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4603#if defined(__cplusplus) && !defined(CINTERFACE)
4604MIDL_INTERFACE("56a868a4-0ad4-11ce-b03a-0020af0ba770")
4605IEnumRegFilters : public IUnknown
4606{
4607    virtual HRESULT STDMETHODCALLTYPE Next(
4608        ULONG cFilters,
4609        REGFILTER **apRegFilter,
4610        ULONG *pcFetched) = 0;
4611
4612    virtual HRESULT STDMETHODCALLTYPE Skip(
4613        ULONG cFilters) = 0;
4614
4615    virtual HRESULT STDMETHODCALLTYPE Reset(
4616        ) = 0;
4617
4618    virtual HRESULT STDMETHODCALLTYPE Clone(
4619        IEnumRegFilters **ppEnum) = 0;
4620
4621};
4622#ifdef __CRT_UUID_DECL
4623__CRT_UUID_DECL(IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
4624#endif
4625#else
4626typedef struct IEnumRegFiltersVtbl {
4627    BEGIN_INTERFACE
4628
4629    /*** IUnknown methods ***/
4630    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4631        IEnumRegFilters* This,
4632        REFIID riid,
4633        void **ppvObject);
4634
4635    ULONG (STDMETHODCALLTYPE *AddRef)(
4636        IEnumRegFilters* This);
4637
4638    ULONG (STDMETHODCALLTYPE *Release)(
4639        IEnumRegFilters* This);
4640
4641    /*** IEnumRegFilters methods ***/
4642    HRESULT (STDMETHODCALLTYPE *Next)(
4643        IEnumRegFilters* This,
4644        ULONG cFilters,
4645        REGFILTER **apRegFilter,
4646        ULONG *pcFetched);
4647
4648    HRESULT (STDMETHODCALLTYPE *Skip)(
4649        IEnumRegFilters* This,
4650        ULONG cFilters);
4651
4652    HRESULT (STDMETHODCALLTYPE *Reset)(
4653        IEnumRegFilters* This);
4654
4655    HRESULT (STDMETHODCALLTYPE *Clone)(
4656        IEnumRegFilters* This,
4657        IEnumRegFilters **ppEnum);
4658
4659    END_INTERFACE
4660} IEnumRegFiltersVtbl;
4661interface IEnumRegFilters {
4662    CONST_VTBL IEnumRegFiltersVtbl* lpVtbl;
4663};
4664
4665#ifdef COBJMACROS
4666#ifndef WIDL_C_INLINE_WRAPPERS
4667/*** IUnknown methods ***/
4668#define IEnumRegFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4669#define IEnumRegFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
4670#define IEnumRegFilters_Release(This) (This)->lpVtbl->Release(This)
4671/*** IEnumRegFilters methods ***/
4672#define IEnumRegFilters_Next(This,cFilters,apRegFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched)
4673#define IEnumRegFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
4674#define IEnumRegFilters_Reset(This) (This)->lpVtbl->Reset(This)
4675#define IEnumRegFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
4676#else
4677/*** IUnknown methods ***/
4678static FORCEINLINE HRESULT IEnumRegFilters_QueryInterface(IEnumRegFilters* This,REFIID riid,void **ppvObject) {
4679    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4680}
4681static FORCEINLINE ULONG IEnumRegFilters_AddRef(IEnumRegFilters* This) {
4682    return This->lpVtbl->AddRef(This);
4683}
4684static FORCEINLINE ULONG IEnumRegFilters_Release(IEnumRegFilters* This) {
4685    return This->lpVtbl->Release(This);
4686}
4687/*** IEnumRegFilters methods ***/
4688static FORCEINLINE HRESULT IEnumRegFilters_Next(IEnumRegFilters* This,ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched) {
4689    return This->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched);
4690}
4691static FORCEINLINE HRESULT IEnumRegFilters_Skip(IEnumRegFilters* This,ULONG cFilters) {
4692    return This->lpVtbl->Skip(This,cFilters);
4693}
4694static FORCEINLINE HRESULT IEnumRegFilters_Reset(IEnumRegFilters* This) {
4695    return This->lpVtbl->Reset(This);
4696}
4697static FORCEINLINE HRESULT IEnumRegFilters_Clone(IEnumRegFilters* This,IEnumRegFilters **ppEnum) {
4698    return This->lpVtbl->Clone(This,ppEnum);
4699}
4700#endif
4701#endif
4702
4703#endif
4704
4705HRESULT STDMETHODCALLTYPE IEnumRegFilters_Next_Proxy(
4706    IEnumRegFilters* This,
4707    ULONG cFilters,
4708    REGFILTER **apRegFilter,
4709    ULONG *pcFetched);
4710void __RPC_STUB IEnumRegFilters_Next_Stub(
4711    IRpcStubBuffer* This,
4712    IRpcChannelBuffer* pRpcChannelBuffer,
4713    PRPC_MESSAGE pRpcMessage,
4714    DWORD* pdwStubPhase);
4715HRESULT STDMETHODCALLTYPE IEnumRegFilters_Skip_Proxy(
4716    IEnumRegFilters* This,
4717    ULONG cFilters);
4718void __RPC_STUB IEnumRegFilters_Skip_Stub(
4719    IRpcStubBuffer* This,
4720    IRpcChannelBuffer* pRpcChannelBuffer,
4721    PRPC_MESSAGE pRpcMessage,
4722    DWORD* pdwStubPhase);
4723HRESULT STDMETHODCALLTYPE IEnumRegFilters_Reset_Proxy(
4724    IEnumRegFilters* This);
4725void __RPC_STUB IEnumRegFilters_Reset_Stub(
4726    IRpcStubBuffer* This,
4727    IRpcChannelBuffer* pRpcChannelBuffer,
4728    PRPC_MESSAGE pRpcMessage,
4729    DWORD* pdwStubPhase);
4730HRESULT STDMETHODCALLTYPE IEnumRegFilters_Clone_Proxy(
4731    IEnumRegFilters* This,
4732    IEnumRegFilters **ppEnum);
4733void __RPC_STUB IEnumRegFilters_Clone_Stub(
4734    IRpcStubBuffer* This,
4735    IRpcChannelBuffer* pRpcChannelBuffer,
4736    PRPC_MESSAGE pRpcMessage,
4737    DWORD* pdwStubPhase);
4738
4739#endif  /* __IEnumRegFilters_INTERFACE_DEFINED__ */
4740
4741typedef IEnumRegFilters *PENUMREGFILTERS;
4742/*****************************************************************************
4743 * IFilterMapper interface
4744 */
4745#ifndef __IFilterMapper_INTERFACE_DEFINED__
4746#define __IFilterMapper_INTERFACE_DEFINED__
4747
4748enum {
4749    MERIT_PREFERRED = 0x800000,
4750    MERIT_NORMAL = 0x600000,
4751    MERIT_UNLIKELY = 0x400000,
4752    MERIT_DO_NOT_USE = 0x200000,
4753    MERIT_SW_COMPRESSOR = 0x100000,
4754    MERIT_HW_COMPRESSOR = 0x100050
4755};
4756
4757DEFINE_GUID(IID_IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4758#if defined(__cplusplus) && !defined(CINTERFACE)
4759MIDL_INTERFACE("56a868a3-0ad4-11ce-b03a-0020af0ba770")
4760IFilterMapper : public IUnknown
4761{
4762    virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
4763        CLSID clsid,
4764        LPCWSTR Name,
4765        DWORD dwMerit) = 0;
4766
4767    virtual HRESULT STDMETHODCALLTYPE RegisterFilterInstance(
4768        CLSID clsid,
4769        LPCWSTR Name,
4770        CLSID *MRId) = 0;
4771
4772    virtual HRESULT STDMETHODCALLTYPE RegisterPin(
4773        CLSID Filter,
4774        LPCWSTR Name,
4775        WINBOOL bRendered,
4776        WINBOOL bOutput,
4777        WINBOOL bZero,
4778        WINBOOL bMany,
4779        CLSID ConnectsToFilter,
4780        LPCWSTR ConnectsToPin) = 0;
4781
4782    virtual HRESULT STDMETHODCALLTYPE RegisterPinType(
4783        CLSID clsFilter,
4784        LPCWSTR strName,
4785        CLSID clsMajorType,
4786        CLSID clsSubType) = 0;
4787
4788    virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
4789        CLSID Filter) = 0;
4790
4791    virtual HRESULT STDMETHODCALLTYPE UnregisterFilterInstance(
4792        CLSID MRId) = 0;
4793
4794    virtual HRESULT STDMETHODCALLTYPE UnregisterPin(
4795        CLSID Filter,
4796        LPCWSTR Name) = 0;
4797
4798    virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
4799        IEnumRegFilters **ppEnum,
4800        DWORD dwMerit,
4801        WINBOOL bInputNeeded,
4802        CLSID clsInMaj,
4803        CLSID clsInSub,
4804        WINBOOL bRender,
4805        WINBOOL bOututNeeded,
4806        CLSID clsOutMaj,
4807        CLSID clsOutSub) = 0;
4808
4809};
4810#ifdef __CRT_UUID_DECL
4811__CRT_UUID_DECL(IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
4812#endif
4813#else
4814typedef struct IFilterMapperVtbl {
4815    BEGIN_INTERFACE
4816
4817    /*** IUnknown methods ***/
4818    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4819        IFilterMapper* This,
4820        REFIID riid,
4821        void **ppvObject);
4822
4823    ULONG (STDMETHODCALLTYPE *AddRef)(
4824        IFilterMapper* This);
4825
4826    ULONG (STDMETHODCALLTYPE *Release)(
4827        IFilterMapper* This);
4828
4829    /*** IFilterMapper methods ***/
4830    HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
4831        IFilterMapper* This,
4832        CLSID clsid,
4833        LPCWSTR Name,
4834        DWORD dwMerit);
4835
4836    HRESULT (STDMETHODCALLTYPE *RegisterFilterInstance)(
4837        IFilterMapper* This,
4838        CLSID clsid,
4839        LPCWSTR Name,
4840        CLSID *MRId);
4841
4842    HRESULT (STDMETHODCALLTYPE *RegisterPin)(
4843        IFilterMapper* This,
4844        CLSID Filter,
4845        LPCWSTR Name,
4846        WINBOOL bRendered,
4847        WINBOOL bOutput,
4848        WINBOOL bZero,
4849        WINBOOL bMany,
4850        CLSID ConnectsToFilter,
4851        LPCWSTR ConnectsToPin);
4852
4853    HRESULT (STDMETHODCALLTYPE *RegisterPinType)(
4854        IFilterMapper* This,
4855        CLSID clsFilter,
4856        LPCWSTR strName,
4857        CLSID clsMajorType,
4858        CLSID clsSubType);
4859
4860    HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
4861        IFilterMapper* This,
4862        CLSID Filter);
4863
4864    HRESULT (STDMETHODCALLTYPE *UnregisterFilterInstance)(
4865        IFilterMapper* This,
4866        CLSID MRId);
4867
4868    HRESULT (STDMETHODCALLTYPE *UnregisterPin)(
4869        IFilterMapper* This,
4870        CLSID Filter,
4871        LPCWSTR Name);
4872
4873    HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
4874        IFilterMapper* This,
4875        IEnumRegFilters **ppEnum,
4876        DWORD dwMerit,
4877        WINBOOL bInputNeeded,
4878        CLSID clsInMaj,
4879        CLSID clsInSub,
4880        WINBOOL bRender,
4881        WINBOOL bOututNeeded,
4882        CLSID clsOutMaj,
4883        CLSID clsOutSub);
4884
4885    END_INTERFACE
4886} IFilterMapperVtbl;
4887interface IFilterMapper {
4888    CONST_VTBL IFilterMapperVtbl* lpVtbl;
4889};
4890
4891#ifdef COBJMACROS
4892#ifndef WIDL_C_INLINE_WRAPPERS
4893/*** IUnknown methods ***/
4894#define IFilterMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4895#define IFilterMapper_AddRef(This) (This)->lpVtbl->AddRef(This)
4896#define IFilterMapper_Release(This) (This)->lpVtbl->Release(This)
4897/*** IFilterMapper methods ***/
4898#define IFilterMapper_RegisterFilter(This,clsid,Name,dwMerit) (This)->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit)
4899#define IFilterMapper_RegisterFilterInstance(This,clsid,Name,MRId) (This)->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId)
4900#define IFilterMapper_RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin) (This)->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin)
4901#define IFilterMapper_RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType) (This)->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType)
4902#define IFilterMapper_UnregisterFilter(This,Filter) (This)->lpVtbl->UnregisterFilter(This,Filter)
4903#define IFilterMapper_UnregisterFilterInstance(This,MRId) (This)->lpVtbl->UnregisterFilterInstance(This,MRId)
4904#define IFilterMapper_UnregisterPin(This,Filter,Name) (This)->lpVtbl->UnregisterPin(This,Filter,Name)
4905#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)
4906#else
4907/*** IUnknown methods ***/
4908static FORCEINLINE HRESULT IFilterMapper_QueryInterface(IFilterMapper* This,REFIID riid,void **ppvObject) {
4909    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4910}
4911static FORCEINLINE ULONG IFilterMapper_AddRef(IFilterMapper* This) {
4912    return This->lpVtbl->AddRef(This);
4913}
4914static FORCEINLINE ULONG IFilterMapper_Release(IFilterMapper* This) {
4915    return This->lpVtbl->Release(This);
4916}
4917/*** IFilterMapper methods ***/
4918static FORCEINLINE HRESULT IFilterMapper_RegisterFilter(IFilterMapper* This,CLSID clsid,LPCWSTR Name,DWORD dwMerit) {
4919    return This->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit);
4920}
4921static FORCEINLINE HRESULT IFilterMapper_RegisterFilterInstance(IFilterMapper* This,CLSID clsid,LPCWSTR Name,CLSID *MRId) {
4922    return This->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId);
4923}
4924static FORCEINLINE HRESULT IFilterMapper_RegisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name,WINBOOL bRendered,WINBOOL bOutput,WINBOOL bZero,WINBOOL bMany,CLSID ConnectsToFilter,LPCWSTR ConnectsToPin) {
4925    return This->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin);
4926}
4927static FORCEINLINE HRESULT IFilterMapper_RegisterPinType(IFilterMapper* This,CLSID clsFilter,LPCWSTR strName,CLSID clsMajorType,CLSID clsSubType) {
4928    return This->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType);
4929}
4930static FORCEINLINE HRESULT IFilterMapper_UnregisterFilter(IFilterMapper* This,CLSID Filter) {
4931    return This->lpVtbl->UnregisterFilter(This,Filter);
4932}
4933static FORCEINLINE HRESULT IFilterMapper_UnregisterFilterInstance(IFilterMapper* This,CLSID MRId) {
4934    return This->lpVtbl->UnregisterFilterInstance(This,MRId);
4935}
4936static FORCEINLINE HRESULT IFilterMapper_UnregisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name) {
4937    return This->lpVtbl->UnregisterPin(This,Filter,Name);
4938}
4939static FORCEINLINE HRESULT IFilterMapper_EnumMatchingFilters(IFilterMapper* This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOututNeeded,CLSID clsOutMaj,CLSID clsOutSub) {
4940    return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub);
4941}
4942#endif
4943#endif
4944
4945#endif
4946
4947HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterFilter_Proxy(
4948    IFilterMapper* This,
4949    CLSID clsid,
4950    LPCWSTR Name,
4951    DWORD dwMerit);
4952void __RPC_STUB IFilterMapper_RegisterFilter_Stub(
4953    IRpcStubBuffer* This,
4954    IRpcChannelBuffer* pRpcChannelBuffer,
4955    PRPC_MESSAGE pRpcMessage,
4956    DWORD* pdwStubPhase);
4957HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterFilterInstance_Proxy(
4958    IFilterMapper* This,
4959    CLSID clsid,
4960    LPCWSTR Name,
4961    CLSID *MRId);
4962void __RPC_STUB IFilterMapper_RegisterFilterInstance_Stub(
4963    IRpcStubBuffer* This,
4964    IRpcChannelBuffer* pRpcChannelBuffer,
4965    PRPC_MESSAGE pRpcMessage,
4966    DWORD* pdwStubPhase);
4967HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterPin_Proxy(
4968    IFilterMapper* This,
4969    CLSID Filter,
4970    LPCWSTR Name,
4971    WINBOOL bRendered,
4972    WINBOOL bOutput,
4973    WINBOOL bZero,
4974    WINBOOL bMany,
4975    CLSID ConnectsToFilter,
4976    LPCWSTR ConnectsToPin);
4977void __RPC_STUB IFilterMapper_RegisterPin_Stub(
4978    IRpcStubBuffer* This,
4979    IRpcChannelBuffer* pRpcChannelBuffer,
4980    PRPC_MESSAGE pRpcMessage,
4981    DWORD* pdwStubPhase);
4982HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterPinType_Proxy(
4983    IFilterMapper* This,
4984    CLSID clsFilter,
4985    LPCWSTR strName,
4986    CLSID clsMajorType,
4987    CLSID clsSubType);
4988void __RPC_STUB IFilterMapper_RegisterPinType_Stub(
4989    IRpcStubBuffer* This,
4990    IRpcChannelBuffer* pRpcChannelBuffer,
4991    PRPC_MESSAGE pRpcMessage,
4992    DWORD* pdwStubPhase);
4993HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterFilter_Proxy(
4994    IFilterMapper* This,
4995    CLSID Filter);
4996void __RPC_STUB IFilterMapper_UnregisterFilter_Stub(
4997    IRpcStubBuffer* This,
4998    IRpcChannelBuffer* pRpcChannelBuffer,
4999    PRPC_MESSAGE pRpcMessage,
5000    DWORD* pdwStubPhase);
5001HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterFilterInstance_Proxy(
5002    IFilterMapper* This,
5003    CLSID MRId);
5004void __RPC_STUB IFilterMapper_UnregisterFilterInstance_Stub(
5005    IRpcStubBuffer* This,
5006    IRpcChannelBuffer* pRpcChannelBuffer,
5007    PRPC_MESSAGE pRpcMessage,
5008    DWORD* pdwStubPhase);
5009HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterPin_Proxy(
5010    IFilterMapper* This,
5011    CLSID Filter,
5012    LPCWSTR Name);
5013void __RPC_STUB IFilterMapper_UnregisterPin_Stub(
5014    IRpcStubBuffer* This,
5015    IRpcChannelBuffer* pRpcChannelBuffer,
5016    PRPC_MESSAGE pRpcMessage,
5017    DWORD* pdwStubPhase);
5018HRESULT STDMETHODCALLTYPE IFilterMapper_EnumMatchingFilters_Proxy(
5019    IFilterMapper* This,
5020    IEnumRegFilters **ppEnum,
5021    DWORD dwMerit,
5022    WINBOOL bInputNeeded,
5023    CLSID clsInMaj,
5024    CLSID clsInSub,
5025    WINBOOL bRender,
5026    WINBOOL bOututNeeded,
5027    CLSID clsOutMaj,
5028    CLSID clsOutSub);
5029void __RPC_STUB IFilterMapper_EnumMatchingFilters_Stub(
5030    IRpcStubBuffer* This,
5031    IRpcChannelBuffer* pRpcChannelBuffer,
5032    PRPC_MESSAGE pRpcMessage,
5033    DWORD* pdwStubPhase);
5034
5035#endif  /* __IFilterMapper_INTERFACE_DEFINED__ */
5036
5037typedef struct __WIDL_strmif_generated_name_00000003 {
5038    const CLSID *clsMajorType;
5039    const CLSID *clsMinorType;
5040} REGPINTYPES;
5041typedef struct __WIDL_strmif_generated_name_00000004 {
5042    LPWSTR strName;
5043    WINBOOL bRendered;
5044    WINBOOL bOutput;
5045    WINBOOL bZero;
5046    WINBOOL bMany;
5047    const CLSID *clsConnectsToFilter;
5048    const WCHAR *strConnectsToPin;
5049    UINT nMediaTypes;
5050    const REGPINTYPES *lpMediaType;
5051} REGFILTERPINS;
5052typedef struct __WIDL_strmif_generated_name_00000005 {
5053    CLSID clsMedium;
5054    DWORD dw1;
5055    DWORD dw2;
5056} REGPINMEDIUM;
5057enum {
5058    REG_PINFLAG_B_ZERO = 0x1,
5059    REG_PINFLAG_B_RENDERER = 0x2,
5060    REG_PINFLAG_B_MANY = 0x4,
5061    REG_PINFLAG_B_OUTPUT = 0x8
5062};
5063
5064typedef struct __WIDL_strmif_generated_name_00000006 {
5065    DWORD dwFlags;
5066    UINT cInstances;
5067    UINT nMediaTypes;
5068    const REGPINTYPES *lpMediaType;
5069    UINT nMediums;
5070    const REGPINMEDIUM *lpMedium;
5071    const CLSID *clsPinCategory;
5072} REGFILTERPINS2;
5073typedef struct __WIDL_strmif_generated_name_00000007 {
5074    DWORD dwVersion;
5075    DWORD dwMerit;
5076    __C89_NAMELESS union {
5077        __C89_NAMELESS struct {
5078            ULONG cPins;
5079            const REGFILTERPINS *rgPins;
5080        } __C89_NAMELESSSTRUCTNAME1;
5081        __C89_NAMELESS struct {
5082            ULONG cPins2;
5083            const REGFILTERPINS2 *rgPins2;
5084        } __C89_NAMELESSSTRUCTNAME2;
5085    } __C89_NAMELESSUNIONNAME;
5086} REGFILTER2;
5087/*****************************************************************************
5088 * IFilterMapper2 interface
5089 */
5090#ifndef __IFilterMapper2_INTERFACE_DEFINED__
5091#define __IFilterMapper2_INTERFACE_DEFINED__
5092
5093DEFINE_GUID(IID_IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
5094#if defined(__cplusplus) && !defined(CINTERFACE)
5095MIDL_INTERFACE("b79bb0b0-33c1-11d1-abe1-00a0c905f375")
5096IFilterMapper2 : public IUnknown
5097{
5098    virtual HRESULT STDMETHODCALLTYPE CreateCategory(
5099        REFCLSID clsidCategory,
5100        DWORD dwCategoryMerit,
5101        LPCWSTR Description) = 0;
5102
5103    virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
5104        const CLSID *pclsidCategory,
5105        LPCOLESTR szInstance,
5106        REFCLSID Filter) = 0;
5107
5108    virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
5109        REFCLSID clsidFilter,
5110        LPCWSTR Name,
5111        IMoniker **ppMoniker,
5112        const CLSID *pclsidCategory,
5113        LPCOLESTR szInstance,
5114        const REGFILTER2 *prf2) = 0;
5115
5116    virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
5117        IEnumMoniker **ppEnum,
5118        DWORD dwFlags,
5119        WINBOOL bExactMatch,
5120        DWORD dwMerit,
5121        WINBOOL bInputNeeded,
5122        DWORD cInputTypes,
5123        const GUID *pInputTypes,
5124        const REGPINMEDIUM *pMedIn,
5125        const CLSID *pPinCategoryIn,
5126        WINBOOL bRender,
5127        WINBOOL bOutputNeeded,
5128        DWORD cOutputTypes,
5129        const GUID *pOutputTypes,
5130        const REGPINMEDIUM *pMedOut,
5131        const CLSID *pPinCategoryOut) = 0;
5132
5133};
5134#ifdef __CRT_UUID_DECL
5135__CRT_UUID_DECL(IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
5136#endif
5137#else
5138typedef struct IFilterMapper2Vtbl {
5139    BEGIN_INTERFACE
5140
5141    /*** IUnknown methods ***/
5142    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5143        IFilterMapper2* This,
5144        REFIID riid,
5145        void **ppvObject);
5146
5147    ULONG (STDMETHODCALLTYPE *AddRef)(
5148        IFilterMapper2* This);
5149
5150    ULONG (STDMETHODCALLTYPE *Release)(
5151        IFilterMapper2* This);
5152
5153    /*** IFilterMapper2 methods ***/
5154    HRESULT (STDMETHODCALLTYPE *CreateCategory)(
5155        IFilterMapper2* This,
5156        REFCLSID clsidCategory,
5157        DWORD dwCategoryMerit,
5158        LPCWSTR Description);
5159
5160    HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
5161        IFilterMapper2* This,
5162        const CLSID *pclsidCategory,
5163        LPCOLESTR szInstance,
5164        REFCLSID Filter);
5165
5166    HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
5167        IFilterMapper2* This,
5168        REFCLSID clsidFilter,
5169        LPCWSTR Name,
5170        IMoniker **ppMoniker,
5171        const CLSID *pclsidCategory,
5172        LPCOLESTR szInstance,
5173        const REGFILTER2 *prf2);
5174
5175    HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
5176        IFilterMapper2* This,
5177        IEnumMoniker **ppEnum,
5178        DWORD dwFlags,
5179        WINBOOL bExactMatch,
5180        DWORD dwMerit,
5181        WINBOOL bInputNeeded,
5182        DWORD cInputTypes,
5183        const GUID *pInputTypes,
5184        const REGPINMEDIUM *pMedIn,
5185        const CLSID *pPinCategoryIn,
5186        WINBOOL bRender,
5187        WINBOOL bOutputNeeded,
5188        DWORD cOutputTypes,
5189        const GUID *pOutputTypes,
5190        const REGPINMEDIUM *pMedOut,
5191        const CLSID *pPinCategoryOut);
5192
5193    END_INTERFACE
5194} IFilterMapper2Vtbl;
5195interface IFilterMapper2 {
5196    CONST_VTBL IFilterMapper2Vtbl* lpVtbl;
5197};
5198
5199#ifdef COBJMACROS
5200#ifndef WIDL_C_INLINE_WRAPPERS
5201/*** IUnknown methods ***/
5202#define IFilterMapper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5203#define IFilterMapper2_AddRef(This) (This)->lpVtbl->AddRef(This)
5204#define IFilterMapper2_Release(This) (This)->lpVtbl->Release(This)
5205/*** IFilterMapper2 methods ***/
5206#define IFilterMapper2_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
5207#define IFilterMapper2_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
5208#define IFilterMapper2_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
5209#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)
5210#else
5211/*** IUnknown methods ***/
5212static FORCEINLINE HRESULT IFilterMapper2_QueryInterface(IFilterMapper2* This,REFIID riid,void **ppvObject) {
5213    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5214}
5215static FORCEINLINE ULONG IFilterMapper2_AddRef(IFilterMapper2* This) {
5216    return This->lpVtbl->AddRef(This);
5217}
5218static FORCEINLINE ULONG IFilterMapper2_Release(IFilterMapper2* This) {
5219    return This->lpVtbl->Release(This);
5220}
5221/*** IFilterMapper2 methods ***/
5222static FORCEINLINE HRESULT IFilterMapper2_CreateCategory(IFilterMapper2* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
5223    return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
5224}
5225static FORCEINLINE HRESULT IFilterMapper2_UnregisterFilter(IFilterMapper2* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
5226    return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
5227}
5228static FORCEINLINE HRESULT IFilterMapper2_RegisterFilter(IFilterMapper2* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) {
5229    return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2);
5230}
5231static FORCEINLINE HRESULT IFilterMapper2_EnumMatchingFilters(IFilterMapper2* This,IEnumMoniker **ppEnum,DWORD dwFlags,WINBOOL bExactMatch,DWORD dwMerit,WINBOOL bInputNeeded,DWORD cInputTypes,const GUID *pInputTypes,const REGPINMEDIUM *pMedIn,const CLSID *pPinCategoryIn,WINBOOL bRender,WINBOOL bOutputNeeded,DWORD cOutputTypes,const GUID *pOutputTypes,const REGPINMEDIUM *pMedOut,const CLSID *pPinCategoryOut) {
5232    return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut);
5233}
5234#endif
5235#endif
5236
5237#endif
5238
5239HRESULT STDMETHODCALLTYPE IFilterMapper2_CreateCategory_Proxy(
5240    IFilterMapper2* This,
5241    REFCLSID clsidCategory,
5242    DWORD dwCategoryMerit,
5243    LPCWSTR Description);
5244void __RPC_STUB IFilterMapper2_CreateCategory_Stub(
5245    IRpcStubBuffer* This,
5246    IRpcChannelBuffer* pRpcChannelBuffer,
5247    PRPC_MESSAGE pRpcMessage,
5248    DWORD* pdwStubPhase);
5249HRESULT STDMETHODCALLTYPE IFilterMapper2_UnregisterFilter_Proxy(
5250    IFilterMapper2* This,
5251    const CLSID *pclsidCategory,
5252    LPCOLESTR szInstance,
5253    REFCLSID Filter);
5254void __RPC_STUB IFilterMapper2_UnregisterFilter_Stub(
5255    IRpcStubBuffer* This,
5256    IRpcChannelBuffer* pRpcChannelBuffer,
5257    PRPC_MESSAGE pRpcMessage,
5258    DWORD* pdwStubPhase);
5259HRESULT STDMETHODCALLTYPE IFilterMapper2_RegisterFilter_Proxy(
5260    IFilterMapper2* This,
5261    REFCLSID clsidFilter,
5262    LPCWSTR Name,
5263    IMoniker **ppMoniker,
5264    const CLSID *pclsidCategory,
5265    LPCOLESTR szInstance,
5266    const REGFILTER2 *prf2);
5267void __RPC_STUB IFilterMapper2_RegisterFilter_Stub(
5268    IRpcStubBuffer* This,
5269    IRpcChannelBuffer* pRpcChannelBuffer,
5270    PRPC_MESSAGE pRpcMessage,
5271    DWORD* pdwStubPhase);
5272HRESULT STDMETHODCALLTYPE IFilterMapper2_EnumMatchingFilters_Proxy(
5273    IFilterMapper2* This,
5274    IEnumMoniker **ppEnum,
5275    DWORD dwFlags,
5276    WINBOOL bExactMatch,
5277    DWORD dwMerit,
5278    WINBOOL bInputNeeded,
5279    DWORD cInputTypes,
5280    const GUID *pInputTypes,
5281    const REGPINMEDIUM *pMedIn,
5282    const CLSID *pPinCategoryIn,
5283    WINBOOL bRender,
5284    WINBOOL bOutputNeeded,
5285    DWORD cOutputTypes,
5286    const GUID *pOutputTypes,
5287    const REGPINMEDIUM *pMedOut,
5288    const CLSID *pPinCategoryOut);
5289void __RPC_STUB IFilterMapper2_EnumMatchingFilters_Stub(
5290    IRpcStubBuffer* This,
5291    IRpcChannelBuffer* pRpcChannelBuffer,
5292    PRPC_MESSAGE pRpcMessage,
5293    DWORD* pdwStubPhase);
5294
5295#endif  /* __IFilterMapper2_INTERFACE_DEFINED__ */
5296
5297/*****************************************************************************
5298 * IFilterMapper3 interface
5299 */
5300#ifndef __IFilterMapper3_INTERFACE_DEFINED__
5301#define __IFilterMapper3_INTERFACE_DEFINED__
5302
5303DEFINE_GUID(IID_IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
5304#if defined(__cplusplus) && !defined(CINTERFACE)
5305MIDL_INTERFACE("b79bb0b1-33c1-11d1-abe1-00a0c905f375")
5306IFilterMapper3 : public IFilterMapper2
5307{
5308    virtual HRESULT STDMETHODCALLTYPE GetICreateDevEnum(
5309        ICreateDevEnum **ppEnum) = 0;
5310
5311};
5312#ifdef __CRT_UUID_DECL
5313__CRT_UUID_DECL(IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
5314#endif
5315#else
5316typedef struct IFilterMapper3Vtbl {
5317    BEGIN_INTERFACE
5318
5319    /*** IUnknown methods ***/
5320    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5321        IFilterMapper3* This,
5322        REFIID riid,
5323        void **ppvObject);
5324
5325    ULONG (STDMETHODCALLTYPE *AddRef)(
5326        IFilterMapper3* This);
5327
5328    ULONG (STDMETHODCALLTYPE *Release)(
5329        IFilterMapper3* This);
5330
5331    /*** IFilterMapper2 methods ***/
5332    HRESULT (STDMETHODCALLTYPE *CreateCategory)(
5333        IFilterMapper3* This,
5334        REFCLSID clsidCategory,
5335        DWORD dwCategoryMerit,
5336        LPCWSTR Description);
5337
5338    HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
5339        IFilterMapper3* This,
5340        const CLSID *pclsidCategory,
5341        LPCOLESTR szInstance,
5342        REFCLSID Filter);
5343
5344    HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
5345        IFilterMapper3* This,
5346        REFCLSID clsidFilter,
5347        LPCWSTR Name,
5348        IMoniker **ppMoniker,
5349        const CLSID *pclsidCategory,
5350        LPCOLESTR szInstance,
5351        const REGFILTER2 *prf2);
5352
5353    HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
5354        IFilterMapper3* This,
5355        IEnumMoniker **ppEnum,
5356        DWORD dwFlags,
5357        WINBOOL bExactMatch,
5358        DWORD dwMerit,
5359        WINBOOL bInputNeeded,
5360        DWORD cInputTypes,
5361        const GUID *pInputTypes,
5362        const REGPINMEDIUM *pMedIn,
5363        const CLSID *pPinCategoryIn,
5364        WINBOOL bRender,
5365        WINBOOL bOutputNeeded,
5366        DWORD cOutputTypes,
5367        const GUID *pOutputTypes,
5368        const REGPINMEDIUM *pMedOut,
5369        const CLSID *pPinCategoryOut);
5370
5371    /*** IFilterMapper3 methods ***/
5372    HRESULT (STDMETHODCALLTYPE *GetICreateDevEnum)(
5373        IFilterMapper3* This,
5374        ICreateDevEnum **ppEnum);
5375
5376    END_INTERFACE
5377} IFilterMapper3Vtbl;
5378interface IFilterMapper3 {
5379    CONST_VTBL IFilterMapper3Vtbl* lpVtbl;
5380};
5381
5382#ifdef COBJMACROS
5383#ifndef WIDL_C_INLINE_WRAPPERS
5384/*** IUnknown methods ***/
5385#define IFilterMapper3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5386#define IFilterMapper3_AddRef(This) (This)->lpVtbl->AddRef(This)
5387#define IFilterMapper3_Release(This) (This)->lpVtbl->Release(This)
5388/*** IFilterMapper2 methods ***/
5389#define IFilterMapper3_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
5390#define IFilterMapper3_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
5391#define IFilterMapper3_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
5392#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)
5393/*** IFilterMapper3 methods ***/
5394#define IFilterMapper3_GetICreateDevEnum(This,ppEnum) (This)->lpVtbl->GetICreateDevEnum(This,ppEnum)
5395#else
5396/*** IUnknown methods ***/
5397static FORCEINLINE HRESULT IFilterMapper3_QueryInterface(IFilterMapper3* This,REFIID riid,void **ppvObject) {
5398    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5399}
5400static FORCEINLINE ULONG IFilterMapper3_AddRef(IFilterMapper3* This) {
5401    return This->lpVtbl->AddRef(This);
5402}
5403static FORCEINLINE ULONG IFilterMapper3_Release(IFilterMapper3* This) {
5404    return This->lpVtbl->Release(This);
5405}
5406/*** IFilterMapper2 methods ***/
5407static FORCEINLINE HRESULT IFilterMapper3_CreateCategory(IFilterMapper3* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
5408    return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
5409}
5410static FORCEINLINE HRESULT IFilterMapper3_UnregisterFilter(IFilterMapper3* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
5411    return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
5412}
5413static FORCEINLINE HRESULT IFilterMapper3_RegisterFilter(IFilterMapper3* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) {
5414    return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2);
5415}
5416static FORCEINLINE HRESULT IFilterMapper3_EnumMatchingFilters(IFilterMapper3* This,IEnumMoniker **ppEnum,DWORD dwFlags,WINBOOL bExactMatch,DWORD dwMerit,WINBOOL bInputNeeded,DWORD cInputTypes,const GUID *pInputTypes,const REGPINMEDIUM *pMedIn,const CLSID *pPinCategoryIn,WINBOOL bRender,WINBOOL bOutputNeeded,DWORD cOutputTypes,const GUID *pOutputTypes,const REGPINMEDIUM *pMedOut,const CLSID *pPinCategoryOut) {
5417    return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut);
5418}
5419/*** IFilterMapper3 methods ***/
5420static FORCEINLINE HRESULT IFilterMapper3_GetICreateDevEnum(IFilterMapper3* This,ICreateDevEnum **ppEnum) {
5421    return This->lpVtbl->GetICreateDevEnum(This,ppEnum);
5422}
5423#endif
5424#endif
5425
5426#endif
5427
5428HRESULT STDMETHODCALLTYPE IFilterMapper3_GetICreateDevEnum_Proxy(
5429    IFilterMapper3* This,
5430    ICreateDevEnum **ppEnum);
5431void __RPC_STUB IFilterMapper3_GetICreateDevEnum_Stub(
5432    IRpcStubBuffer* This,
5433    IRpcChannelBuffer* pRpcChannelBuffer,
5434    PRPC_MESSAGE pRpcMessage,
5435    DWORD* pdwStubPhase);
5436
5437#endif  /* __IFilterMapper3_INTERFACE_DEFINED__ */
5438
5439typedef enum tagQualityMessageType {
5440    Famine = 0,
5441    Flood = 1
5442} QualityMessageType;
5443typedef struct tagQuality {
5444    QualityMessageType Type;
5445    LONG Proportion;
5446    REFERENCE_TIME Late;
5447    REFERENCE_TIME TimeStamp;
5448} Quality;
5449typedef IQualityControl *PQUALITYCONTROL;
5450/*****************************************************************************
5451 * IQualityControl interface
5452 */
5453#ifndef __IQualityControl_INTERFACE_DEFINED__
5454#define __IQualityControl_INTERFACE_DEFINED__
5455
5456DEFINE_GUID(IID_IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5457#if defined(__cplusplus) && !defined(CINTERFACE)
5458MIDL_INTERFACE("56a868a5-0ad4-11ce-b03a-0020af0ba770")
5459IQualityControl : public IUnknown
5460{
5461    virtual HRESULT STDMETHODCALLTYPE Notify(
5462        IBaseFilter *pSelf,
5463        Quality q) = 0;
5464
5465    virtual HRESULT STDMETHODCALLTYPE SetSink(
5466        IQualityControl *piqc) = 0;
5467
5468};
5469#ifdef __CRT_UUID_DECL
5470__CRT_UUID_DECL(IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5471#endif
5472#else
5473typedef struct IQualityControlVtbl {
5474    BEGIN_INTERFACE
5475
5476    /*** IUnknown methods ***/
5477    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5478        IQualityControl* This,
5479        REFIID riid,
5480        void **ppvObject);
5481
5482    ULONG (STDMETHODCALLTYPE *AddRef)(
5483        IQualityControl* This);
5484
5485    ULONG (STDMETHODCALLTYPE *Release)(
5486        IQualityControl* This);
5487
5488    /*** IQualityControl methods ***/
5489    HRESULT (STDMETHODCALLTYPE *Notify)(
5490        IQualityControl* This,
5491        IBaseFilter *pSelf,
5492        Quality q);
5493
5494    HRESULT (STDMETHODCALLTYPE *SetSink)(
5495        IQualityControl* This,
5496        IQualityControl *piqc);
5497
5498    END_INTERFACE
5499} IQualityControlVtbl;
5500interface IQualityControl {
5501    CONST_VTBL IQualityControlVtbl* lpVtbl;
5502};
5503
5504#ifdef COBJMACROS
5505#ifndef WIDL_C_INLINE_WRAPPERS
5506/*** IUnknown methods ***/
5507#define IQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5508#define IQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
5509#define IQualityControl_Release(This) (This)->lpVtbl->Release(This)
5510/*** IQualityControl methods ***/
5511#define IQualityControl_Notify(This,pSelf,q) (This)->lpVtbl->Notify(This,pSelf,q)
5512#define IQualityControl_SetSink(This,piqc) (This)->lpVtbl->SetSink(This,piqc)
5513#else
5514/*** IUnknown methods ***/
5515static FORCEINLINE HRESULT IQualityControl_QueryInterface(IQualityControl* This,REFIID riid,void **ppvObject) {
5516    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5517}
5518static FORCEINLINE ULONG IQualityControl_AddRef(IQualityControl* This) {
5519    return This->lpVtbl->AddRef(This);
5520}
5521static FORCEINLINE ULONG IQualityControl_Release(IQualityControl* This) {
5522    return This->lpVtbl->Release(This);
5523}
5524/*** IQualityControl methods ***/
5525static FORCEINLINE HRESULT IQualityControl_Notify(IQualityControl* This,IBaseFilter *pSelf,Quality q) {
5526    return This->lpVtbl->Notify(This,pSelf,q);
5527}
5528static FORCEINLINE HRESULT IQualityControl_SetSink(IQualityControl* This,IQualityControl *piqc) {
5529    return This->lpVtbl->SetSink(This,piqc);
5530}
5531#endif
5532#endif
5533
5534#endif
5535
5536HRESULT STDMETHODCALLTYPE IQualityControl_Notify_Proxy(
5537    IQualityControl* This,
5538    IBaseFilter *pSelf,
5539    Quality q);
5540void __RPC_STUB IQualityControl_Notify_Stub(
5541    IRpcStubBuffer* This,
5542    IRpcChannelBuffer* pRpcChannelBuffer,
5543    PRPC_MESSAGE pRpcMessage,
5544    DWORD* pdwStubPhase);
5545HRESULT STDMETHODCALLTYPE IQualityControl_SetSink_Proxy(
5546    IQualityControl* This,
5547    IQualityControl *piqc);
5548void __RPC_STUB IQualityControl_SetSink_Stub(
5549    IRpcStubBuffer* This,
5550    IRpcChannelBuffer* pRpcChannelBuffer,
5551    PRPC_MESSAGE pRpcMessage,
5552    DWORD* pdwStubPhase);
5553
5554#endif  /* __IQualityControl_INTERFACE_DEFINED__ */
5555
5556enum {
5557    CK_NOCOLORKEY = 0x0,
5558    CK_INDEX = 0x1,
5559    CK_RGB = 0x2
5560};
5561
5562typedef struct tagCOLORKEY {
5563    DWORD KeyType;
5564    DWORD PaletteIndex;
5565    COLORREF LowColorValue;
5566    COLORREF HighColorValue;
5567} COLORKEY;
5568enum {
5569    ADVISE_NONE = 0x0,
5570    ADVISE_CLIPPING = 0x1,
5571    ADVISE_PALETTE = 0x2,
5572    ADVISE_COLORKEY = 0x4,
5573    ADVISE_POSITION = 0x8,
5574    ADVISE_DISPLAY_CHANGE = 0x10
5575};
5576
5577#define ADVISE_ALL (((ADVISE_CLIPPING | ADVISE_PALETTE) | ADVISE_COLORKEY) | ADVISE_POSITION)
5578
5579#define ADVISE_ALL2 (ADVISE_ALL | ADVISE_DISPLAY_CHANGE)
5580
5581#ifndef _WINGDI_
5582typedef struct _RGNDATAHEADER {
5583    DWORD dwSize;
5584    DWORD iType;
5585    DWORD nCount;
5586    DWORD nRgnSize;
5587    RECT rcBound;
5588} RGNDATAHEADER;
5589typedef struct _RGNDATA {
5590    RGNDATAHEADER rdh;
5591    char Buffer[1];
5592} RGNDATA;
5593#endif /* _WINGDI_ */
5594/*****************************************************************************
5595 * IOverlayNotify interface
5596 */
5597#ifndef __IOverlayNotify_INTERFACE_DEFINED__
5598#define __IOverlayNotify_INTERFACE_DEFINED__
5599
5600DEFINE_GUID(IID_IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5601#if defined(__cplusplus) && !defined(CINTERFACE)
5602MIDL_INTERFACE("56a868a0-0ad4-11ce-b03a-0020af0ba770")
5603IOverlayNotify : public IUnknown
5604{
5605    virtual HRESULT STDMETHODCALLTYPE OnPaletteChange(
5606        DWORD dwColors,
5607        const PALETTEENTRY *pPalette) = 0;
5608
5609    virtual HRESULT STDMETHODCALLTYPE OnClipChange(
5610        const RECT *pSourceRect,
5611        const RECT *pDestinationRect,
5612        const RGNDATA *pRgnData) = 0;
5613
5614    virtual HRESULT STDMETHODCALLTYPE OnColorKeyChange(
5615        const COLORKEY *pColorKey) = 0;
5616
5617    virtual HRESULT STDMETHODCALLTYPE OnPositionChange(
5618        const RECT *pSourceRect,
5619        const RECT *pDestinationRect) = 0;
5620
5621};
5622#ifdef __CRT_UUID_DECL
5623__CRT_UUID_DECL(IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5624#endif
5625#else
5626typedef struct IOverlayNotifyVtbl {
5627    BEGIN_INTERFACE
5628
5629    /*** IUnknown methods ***/
5630    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5631        IOverlayNotify* This,
5632        REFIID riid,
5633        void **ppvObject);
5634
5635    ULONG (STDMETHODCALLTYPE *AddRef)(
5636        IOverlayNotify* This);
5637
5638    ULONG (STDMETHODCALLTYPE *Release)(
5639        IOverlayNotify* This);
5640
5641    /*** IOverlayNotify methods ***/
5642    HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
5643        IOverlayNotify* This,
5644        DWORD dwColors,
5645        const PALETTEENTRY *pPalette);
5646
5647    HRESULT (STDMETHODCALLTYPE *OnClipChange)(
5648        IOverlayNotify* This,
5649        const RECT *pSourceRect,
5650        const RECT *pDestinationRect,
5651        const RGNDATA *pRgnData);
5652
5653    HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
5654        IOverlayNotify* This,
5655        const COLORKEY *pColorKey);
5656
5657    HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
5658        IOverlayNotify* This,
5659        const RECT *pSourceRect,
5660        const RECT *pDestinationRect);
5661
5662    END_INTERFACE
5663} IOverlayNotifyVtbl;
5664interface IOverlayNotify {
5665    CONST_VTBL IOverlayNotifyVtbl* lpVtbl;
5666};
5667
5668#ifdef COBJMACROS
5669#ifndef WIDL_C_INLINE_WRAPPERS
5670/*** IUnknown methods ***/
5671#define IOverlayNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5672#define IOverlayNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
5673#define IOverlayNotify_Release(This) (This)->lpVtbl->Release(This)
5674/*** IOverlayNotify methods ***/
5675#define IOverlayNotify_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
5676#define IOverlayNotify_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
5677#define IOverlayNotify_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
5678#define IOverlayNotify_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
5679#else
5680/*** IUnknown methods ***/
5681static FORCEINLINE HRESULT IOverlayNotify_QueryInterface(IOverlayNotify* This,REFIID riid,void **ppvObject) {
5682    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5683}
5684static FORCEINLINE ULONG IOverlayNotify_AddRef(IOverlayNotify* This) {
5685    return This->lpVtbl->AddRef(This);
5686}
5687static FORCEINLINE ULONG IOverlayNotify_Release(IOverlayNotify* This) {
5688    return This->lpVtbl->Release(This);
5689}
5690/*** IOverlayNotify methods ***/
5691static FORCEINLINE HRESULT IOverlayNotify_OnPaletteChange(IOverlayNotify* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
5692    return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
5693}
5694static FORCEINLINE HRESULT IOverlayNotify_OnClipChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) {
5695    return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData);
5696}
5697static FORCEINLINE HRESULT IOverlayNotify_OnColorKeyChange(IOverlayNotify* This,const COLORKEY *pColorKey) {
5698    return This->lpVtbl->OnColorKeyChange(This,pColorKey);
5699}
5700static FORCEINLINE HRESULT IOverlayNotify_OnPositionChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
5701    return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
5702}
5703#endif
5704#endif
5705
5706#endif
5707
5708HRESULT STDMETHODCALLTYPE IOverlayNotify_OnPaletteChange_Proxy(
5709    IOverlayNotify* This,
5710    DWORD dwColors,
5711    const PALETTEENTRY *pPalette);
5712void __RPC_STUB IOverlayNotify_OnPaletteChange_Stub(
5713    IRpcStubBuffer* This,
5714    IRpcChannelBuffer* pRpcChannelBuffer,
5715    PRPC_MESSAGE pRpcMessage,
5716    DWORD* pdwStubPhase);
5717HRESULT STDMETHODCALLTYPE IOverlayNotify_OnClipChange_Proxy(
5718    IOverlayNotify* This,
5719    const RECT *pSourceRect,
5720    const RECT *pDestinationRect,
5721    const RGNDATA *pRgnData);
5722void __RPC_STUB IOverlayNotify_OnClipChange_Stub(
5723    IRpcStubBuffer* This,
5724    IRpcChannelBuffer* pRpcChannelBuffer,
5725    PRPC_MESSAGE pRpcMessage,
5726    DWORD* pdwStubPhase);
5727HRESULT STDMETHODCALLTYPE IOverlayNotify_OnColorKeyChange_Proxy(
5728    IOverlayNotify* This,
5729    const COLORKEY *pColorKey);
5730void __RPC_STUB IOverlayNotify_OnColorKeyChange_Stub(
5731    IRpcStubBuffer* This,
5732    IRpcChannelBuffer* pRpcChannelBuffer,
5733    PRPC_MESSAGE pRpcMessage,
5734    DWORD* pdwStubPhase);
5735HRESULT STDMETHODCALLTYPE IOverlayNotify_OnPositionChange_Proxy(
5736    IOverlayNotify* This,
5737    const RECT *pSourceRect,
5738    const RECT *pDestinationRect);
5739void __RPC_STUB IOverlayNotify_OnPositionChange_Stub(
5740    IRpcStubBuffer* This,
5741    IRpcChannelBuffer* pRpcChannelBuffer,
5742    PRPC_MESSAGE pRpcMessage,
5743    DWORD* pdwStubPhase);
5744
5745#endif  /* __IOverlayNotify_INTERFACE_DEFINED__ */
5746
5747typedef IOverlayNotify *POVERLAYNOTIFY;
5748#if 0
5749typedef HANDLE HMONITOR;
5750#endif /* 0 */
5751/*****************************************************************************
5752 * IOverlayNotify2 interface
5753 */
5754#ifndef __IOverlayNotify2_INTERFACE_DEFINED__
5755#define __IOverlayNotify2_INTERFACE_DEFINED__
5756
5757DEFINE_GUID(IID_IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96);
5758#if defined(__cplusplus) && !defined(CINTERFACE)
5759MIDL_INTERFACE("680efa10-d535-11d1-87c8-00a0c9223196")
5760IOverlayNotify2 : public IOverlayNotify
5761{
5762    virtual HRESULT STDMETHODCALLTYPE OnDisplayChange(
5763        HMONITOR hMonitor) = 0;
5764
5765};
5766#ifdef __CRT_UUID_DECL
5767__CRT_UUID_DECL(IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96)
5768#endif
5769#else
5770typedef struct IOverlayNotify2Vtbl {
5771    BEGIN_INTERFACE
5772
5773    /*** IUnknown methods ***/
5774    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5775        IOverlayNotify2* This,
5776        REFIID riid,
5777        void **ppvObject);
5778
5779    ULONG (STDMETHODCALLTYPE *AddRef)(
5780        IOverlayNotify2* This);
5781
5782    ULONG (STDMETHODCALLTYPE *Release)(
5783        IOverlayNotify2* This);
5784
5785    /*** IOverlayNotify methods ***/
5786    HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
5787        IOverlayNotify2* This,
5788        DWORD dwColors,
5789        const PALETTEENTRY *pPalette);
5790
5791    HRESULT (STDMETHODCALLTYPE *OnClipChange)(
5792        IOverlayNotify2* This,
5793        const RECT *pSourceRect,
5794        const RECT *pDestinationRect,
5795        const RGNDATA *pRgnData);
5796
5797    HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
5798        IOverlayNotify2* This,
5799        const COLORKEY *pColorKey);
5800
5801    HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
5802        IOverlayNotify2* This,
5803        const RECT *pSourceRect,
5804        const RECT *pDestinationRect);
5805
5806    /*** IOverlayNotify2 methods ***/
5807    HRESULT (STDMETHODCALLTYPE *OnDisplayChange)(
5808        IOverlayNotify2* This,
5809        HMONITOR hMonitor);
5810
5811    END_INTERFACE
5812} IOverlayNotify2Vtbl;
5813interface IOverlayNotify2 {
5814    CONST_VTBL IOverlayNotify2Vtbl* lpVtbl;
5815};
5816
5817#ifdef COBJMACROS
5818#ifndef WIDL_C_INLINE_WRAPPERS
5819/*** IUnknown methods ***/
5820#define IOverlayNotify2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5821#define IOverlayNotify2_AddRef(This) (This)->lpVtbl->AddRef(This)
5822#define IOverlayNotify2_Release(This) (This)->lpVtbl->Release(This)
5823/*** IOverlayNotify methods ***/
5824#define IOverlayNotify2_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
5825#define IOverlayNotify2_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
5826#define IOverlayNotify2_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
5827#define IOverlayNotify2_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
5828/*** IOverlayNotify2 methods ***/
5829#define IOverlayNotify2_OnDisplayChange(This,hMonitor) (This)->lpVtbl->OnDisplayChange(This,hMonitor)
5830#else
5831/*** IUnknown methods ***/
5832static FORCEINLINE HRESULT IOverlayNotify2_QueryInterface(IOverlayNotify2* This,REFIID riid,void **ppvObject) {
5833    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5834}
5835static FORCEINLINE ULONG IOverlayNotify2_AddRef(IOverlayNotify2* This) {
5836    return This->lpVtbl->AddRef(This);
5837}
5838static FORCEINLINE ULONG IOverlayNotify2_Release(IOverlayNotify2* This) {
5839    return This->lpVtbl->Release(This);
5840}
5841/*** IOverlayNotify methods ***/
5842static FORCEINLINE HRESULT IOverlayNotify2_OnPaletteChange(IOverlayNotify2* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
5843    return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
5844}
5845static FORCEINLINE HRESULT IOverlayNotify2_OnClipChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) {
5846    return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData);
5847}
5848static FORCEINLINE HRESULT IOverlayNotify2_OnColorKeyChange(IOverlayNotify2* This,const COLORKEY *pColorKey) {
5849    return This->lpVtbl->OnColorKeyChange(This,pColorKey);
5850}
5851static FORCEINLINE HRESULT IOverlayNotify2_OnPositionChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
5852    return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
5853}
5854/*** IOverlayNotify2 methods ***/
5855static FORCEINLINE HRESULT IOverlayNotify2_OnDisplayChange(IOverlayNotify2* This,HMONITOR hMonitor) {
5856    return This->lpVtbl->OnDisplayChange(This,hMonitor);
5857}
5858#endif
5859#endif
5860
5861#endif
5862
5863HRESULT STDMETHODCALLTYPE IOverlayNotify2_OnDisplayChange_Proxy(
5864    IOverlayNotify2* This,
5865    HMONITOR hMonitor);
5866void __RPC_STUB IOverlayNotify2_OnDisplayChange_Stub(
5867    IRpcStubBuffer* This,
5868    IRpcChannelBuffer* pRpcChannelBuffer,
5869    PRPC_MESSAGE pRpcMessage,
5870    DWORD* pdwStubPhase);
5871
5872#endif  /* __IOverlayNotify2_INTERFACE_DEFINED__ */
5873
5874typedef IOverlayNotify2 *POVERLAYNOTIFY2;
5875/*****************************************************************************
5876 * IOverlay interface
5877 */
5878#ifndef __IOverlay_INTERFACE_DEFINED__
5879#define __IOverlay_INTERFACE_DEFINED__
5880
5881DEFINE_GUID(IID_IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5882#if defined(__cplusplus) && !defined(CINTERFACE)
5883MIDL_INTERFACE("56a868a1-0ad4-11ce-b03a-0020af0ba770")
5884IOverlay : public IUnknown
5885{
5886    virtual HRESULT STDMETHODCALLTYPE GetPalette(
5887        DWORD *pdwColors,
5888        PALETTEENTRY **ppPalette) = 0;
5889
5890    virtual HRESULT STDMETHODCALLTYPE SetPalette(
5891        DWORD dwColors,
5892        PALETTEENTRY *pPalette) = 0;
5893
5894    virtual HRESULT STDMETHODCALLTYPE GetDefaultColorKey(
5895        COLORKEY *pColorKey) = 0;
5896
5897    virtual HRESULT STDMETHODCALLTYPE GetColorKey(
5898        COLORKEY *pColorKey) = 0;
5899
5900    virtual HRESULT STDMETHODCALLTYPE SetColorKey(
5901        COLORKEY *pColorKey) = 0;
5902
5903    virtual HRESULT STDMETHODCALLTYPE GetWindowHandle(
5904        HWND *pHwnd) = 0;
5905
5906    virtual HRESULT STDMETHODCALLTYPE GetClipList(
5907        RECT *pSourceRect,
5908        RECT *pDestinationRect,
5909        RGNDATA **ppRgnData) = 0;
5910
5911    virtual HRESULT STDMETHODCALLTYPE GetVideoPosition(
5912        RECT *pSourceRect,
5913        RECT *pDestinationRect) = 0;
5914
5915    virtual HRESULT STDMETHODCALLTYPE Advise(
5916        IOverlayNotify *pOverlayNotify,
5917        DWORD dwInterests) = 0;
5918
5919    virtual HRESULT STDMETHODCALLTYPE Unadvise(
5920        ) = 0;
5921
5922};
5923#ifdef __CRT_UUID_DECL
5924__CRT_UUID_DECL(IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
5925#endif
5926#else
5927typedef struct IOverlayVtbl {
5928    BEGIN_INTERFACE
5929
5930    /*** IUnknown methods ***/
5931    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5932        IOverlay* This,
5933        REFIID riid,
5934        void **ppvObject);
5935
5936    ULONG (STDMETHODCALLTYPE *AddRef)(
5937        IOverlay* This);
5938
5939    ULONG (STDMETHODCALLTYPE *Release)(
5940        IOverlay* This);
5941
5942    /*** IOverlay methods ***/
5943    HRESULT (STDMETHODCALLTYPE *GetPalette)(
5944        IOverlay* This,
5945        DWORD *pdwColors,
5946        PALETTEENTRY **ppPalette);
5947
5948    HRESULT (STDMETHODCALLTYPE *SetPalette)(
5949        IOverlay* This,
5950        DWORD dwColors,
5951        PALETTEENTRY *pPalette);
5952
5953    HRESULT (STDMETHODCALLTYPE *GetDefaultColorKey)(
5954        IOverlay* This,
5955        COLORKEY *pColorKey);
5956
5957    HRESULT (STDMETHODCALLTYPE *GetColorKey)(
5958        IOverlay* This,
5959        COLORKEY *pColorKey);
5960
5961    HRESULT (STDMETHODCALLTYPE *SetColorKey)(
5962        IOverlay* This,
5963        COLORKEY *pColorKey);
5964
5965    HRESULT (STDMETHODCALLTYPE *GetWindowHandle)(
5966        IOverlay* This,
5967        HWND *pHwnd);
5968
5969    HRESULT (STDMETHODCALLTYPE *GetClipList)(
5970        IOverlay* This,
5971        RECT *pSourceRect,
5972        RECT *pDestinationRect,
5973        RGNDATA **ppRgnData);
5974
5975    HRESULT (STDMETHODCALLTYPE *GetVideoPosition)(
5976        IOverlay* This,
5977        RECT *pSourceRect,
5978        RECT *pDestinationRect);
5979
5980    HRESULT (STDMETHODCALLTYPE *Advise)(
5981        IOverlay* This,
5982        IOverlayNotify *pOverlayNotify,
5983        DWORD dwInterests);
5984
5985    HRESULT (STDMETHODCALLTYPE *Unadvise)(
5986        IOverlay* This);
5987
5988    END_INTERFACE
5989} IOverlayVtbl;
5990interface IOverlay {
5991    CONST_VTBL IOverlayVtbl* lpVtbl;
5992};
5993
5994#ifdef COBJMACROS
5995#ifndef WIDL_C_INLINE_WRAPPERS
5996/*** IUnknown methods ***/
5997#define IOverlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5998#define IOverlay_AddRef(This) (This)->lpVtbl->AddRef(This)
5999#define IOverlay_Release(This) (This)->lpVtbl->Release(This)
6000/*** IOverlay methods ***/
6001#define IOverlay_GetPalette(This,pdwColors,ppPalette) (This)->lpVtbl->GetPalette(This,pdwColors,ppPalette)
6002#define IOverlay_SetPalette(This,dwColors,pPalette) (This)->lpVtbl->SetPalette(This,dwColors,pPalette)
6003#define IOverlay_GetDefaultColorKey(This,pColorKey) (This)->lpVtbl->GetDefaultColorKey(This,pColorKey)
6004#define IOverlay_GetColorKey(This,pColorKey) (This)->lpVtbl->GetColorKey(This,pColorKey)
6005#define IOverlay_SetColorKey(This,pColorKey) (This)->lpVtbl->SetColorKey(This,pColorKey)
6006#define IOverlay_GetWindowHandle(This,pHwnd) (This)->lpVtbl->GetWindowHandle(This,pHwnd)
6007#define IOverlay_GetClipList(This,pSourceRect,pDestinationRect,ppRgnData) (This)->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData)
6008#define IOverlay_GetVideoPosition(This,pSourceRect,pDestinationRect) (This)->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect)
6009#define IOverlay_Advise(This,pOverlayNotify,dwInterests) (This)->lpVtbl->Advise(This,pOverlayNotify,dwInterests)
6010#define IOverlay_Unadvise(This) (This)->lpVtbl->Unadvise(This)
6011#else
6012/*** IUnknown methods ***/
6013static FORCEINLINE HRESULT IOverlay_QueryInterface(IOverlay* This,REFIID riid,void **ppvObject) {
6014    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6015}
6016static FORCEINLINE ULONG IOverlay_AddRef(IOverlay* This) {
6017    return This->lpVtbl->AddRef(This);
6018}
6019static FORCEINLINE ULONG IOverlay_Release(IOverlay* This) {
6020    return This->lpVtbl->Release(This);
6021}
6022/*** IOverlay methods ***/
6023static FORCEINLINE HRESULT IOverlay_GetPalette(IOverlay* This,DWORD *pdwColors,PALETTEENTRY **ppPalette) {
6024    return This->lpVtbl->GetPalette(This,pdwColors,ppPalette);
6025}
6026static FORCEINLINE HRESULT IOverlay_SetPalette(IOverlay* This,DWORD dwColors,PALETTEENTRY *pPalette) {
6027    return This->lpVtbl->SetPalette(This,dwColors,pPalette);
6028}
6029static FORCEINLINE HRESULT IOverlay_GetDefaultColorKey(IOverlay* This,COLORKEY *pColorKey) {
6030    return This->lpVtbl->GetDefaultColorKey(This,pColorKey);
6031}
6032static FORCEINLINE HRESULT IOverlay_GetColorKey(IOverlay* This,COLORKEY *pColorKey) {
6033    return This->lpVtbl->GetColorKey(This,pColorKey);
6034}
6035static FORCEINLINE HRESULT IOverlay_SetColorKey(IOverlay* This,COLORKEY *pColorKey) {
6036    return This->lpVtbl->SetColorKey(This,pColorKey);
6037}
6038static FORCEINLINE HRESULT IOverlay_GetWindowHandle(IOverlay* This,HWND *pHwnd) {
6039    return This->lpVtbl->GetWindowHandle(This,pHwnd);
6040}
6041static FORCEINLINE HRESULT IOverlay_GetClipList(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData) {
6042    return This->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData);
6043}
6044static FORCEINLINE HRESULT IOverlay_GetVideoPosition(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect) {
6045    return This->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect);
6046}
6047static FORCEINLINE HRESULT IOverlay_Advise(IOverlay* This,IOverlayNotify *pOverlayNotify,DWORD dwInterests) {
6048    return This->lpVtbl->Advise(This,pOverlayNotify,dwInterests);
6049}
6050static FORCEINLINE HRESULT IOverlay_Unadvise(IOverlay* This) {
6051    return This->lpVtbl->Unadvise(This);
6052}
6053#endif
6054#endif
6055
6056#endif
6057
6058HRESULT STDMETHODCALLTYPE IOverlay_GetPalette_Proxy(
6059    IOverlay* This,
6060    DWORD *pdwColors,
6061    PALETTEENTRY **ppPalette);
6062void __RPC_STUB IOverlay_GetPalette_Stub(
6063    IRpcStubBuffer* This,
6064    IRpcChannelBuffer* pRpcChannelBuffer,
6065    PRPC_MESSAGE pRpcMessage,
6066    DWORD* pdwStubPhase);
6067HRESULT STDMETHODCALLTYPE IOverlay_SetPalette_Proxy(
6068    IOverlay* This,
6069    DWORD dwColors,
6070    PALETTEENTRY *pPalette);
6071void __RPC_STUB IOverlay_SetPalette_Stub(
6072    IRpcStubBuffer* This,
6073    IRpcChannelBuffer* pRpcChannelBuffer,
6074    PRPC_MESSAGE pRpcMessage,
6075    DWORD* pdwStubPhase);
6076HRESULT STDMETHODCALLTYPE IOverlay_GetDefaultColorKey_Proxy(
6077    IOverlay* This,
6078    COLORKEY *pColorKey);
6079void __RPC_STUB IOverlay_GetDefaultColorKey_Stub(
6080    IRpcStubBuffer* This,
6081    IRpcChannelBuffer* pRpcChannelBuffer,
6082    PRPC_MESSAGE pRpcMessage,
6083    DWORD* pdwStubPhase);
6084HRESULT STDMETHODCALLTYPE IOverlay_GetColorKey_Proxy(
6085    IOverlay* This,
6086    COLORKEY *pColorKey);
6087void __RPC_STUB IOverlay_GetColorKey_Stub(
6088    IRpcStubBuffer* This,
6089    IRpcChannelBuffer* pRpcChannelBuffer,
6090    PRPC_MESSAGE pRpcMessage,
6091    DWORD* pdwStubPhase);
6092HRESULT STDMETHODCALLTYPE IOverlay_SetColorKey_Proxy(
6093    IOverlay* This,
6094    COLORKEY *pColorKey);
6095void __RPC_STUB IOverlay_SetColorKey_Stub(
6096    IRpcStubBuffer* This,
6097    IRpcChannelBuffer* pRpcChannelBuffer,
6098    PRPC_MESSAGE pRpcMessage,
6099    DWORD* pdwStubPhase);
6100HRESULT STDMETHODCALLTYPE IOverlay_GetWindowHandle_Proxy(
6101    IOverlay* This,
6102    HWND *pHwnd);
6103void __RPC_STUB IOverlay_GetWindowHandle_Stub(
6104    IRpcStubBuffer* This,
6105    IRpcChannelBuffer* pRpcChannelBuffer,
6106    PRPC_MESSAGE pRpcMessage,
6107    DWORD* pdwStubPhase);
6108HRESULT STDMETHODCALLTYPE IOverlay_GetClipList_Proxy(
6109    IOverlay* This,
6110    RECT *pSourceRect,
6111    RECT *pDestinationRect,
6112    RGNDATA **ppRgnData);
6113void __RPC_STUB IOverlay_GetClipList_Stub(
6114    IRpcStubBuffer* This,
6115    IRpcChannelBuffer* pRpcChannelBuffer,
6116    PRPC_MESSAGE pRpcMessage,
6117    DWORD* pdwStubPhase);
6118HRESULT STDMETHODCALLTYPE IOverlay_GetVideoPosition_Proxy(
6119    IOverlay* This,
6120    RECT *pSourceRect,
6121    RECT *pDestinationRect);
6122void __RPC_STUB IOverlay_GetVideoPosition_Stub(
6123    IRpcStubBuffer* This,
6124    IRpcChannelBuffer* pRpcChannelBuffer,
6125    PRPC_MESSAGE pRpcMessage,
6126    DWORD* pdwStubPhase);
6127HRESULT STDMETHODCALLTYPE IOverlay_Advise_Proxy(
6128    IOverlay* This,
6129    IOverlayNotify *pOverlayNotify,
6130    DWORD dwInterests);
6131void __RPC_STUB IOverlay_Advise_Stub(
6132    IRpcStubBuffer* This,
6133    IRpcChannelBuffer* pRpcChannelBuffer,
6134    PRPC_MESSAGE pRpcMessage,
6135    DWORD* pdwStubPhase);
6136HRESULT STDMETHODCALLTYPE IOverlay_Unadvise_Proxy(
6137    IOverlay* This);
6138void __RPC_STUB IOverlay_Unadvise_Stub(
6139    IRpcStubBuffer* This,
6140    IRpcChannelBuffer* pRpcChannelBuffer,
6141    PRPC_MESSAGE pRpcMessage,
6142    DWORD* pdwStubPhase);
6143
6144#endif  /* __IOverlay_INTERFACE_DEFINED__ */
6145
6146typedef IOverlay *POVERLAY;
6147/*****************************************************************************
6148 * IMediaEventSink interface
6149 */
6150#ifndef __IMediaEventSink_INTERFACE_DEFINED__
6151#define __IMediaEventSink_INTERFACE_DEFINED__
6152
6153DEFINE_GUID(IID_IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6154#if defined(__cplusplus) && !defined(CINTERFACE)
6155MIDL_INTERFACE("56a868a2-0ad4-11ce-b03a-0020af0ba770")
6156IMediaEventSink : public IUnknown
6157{
6158    virtual HRESULT STDMETHODCALLTYPE Notify(
6159        LONG EventCode,
6160        LONG_PTR EventParam1,
6161        LONG_PTR EventParam2) = 0;
6162
6163};
6164#ifdef __CRT_UUID_DECL
6165__CRT_UUID_DECL(IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
6166#endif
6167#else
6168typedef struct IMediaEventSinkVtbl {
6169    BEGIN_INTERFACE
6170
6171    /*** IUnknown methods ***/
6172    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6173        IMediaEventSink* This,
6174        REFIID riid,
6175        void **ppvObject);
6176
6177    ULONG (STDMETHODCALLTYPE *AddRef)(
6178        IMediaEventSink* This);
6179
6180    ULONG (STDMETHODCALLTYPE *Release)(
6181        IMediaEventSink* This);
6182
6183    /*** IMediaEventSink methods ***/
6184    HRESULT (STDMETHODCALLTYPE *Notify)(
6185        IMediaEventSink* This,
6186        LONG EventCode,
6187        LONG_PTR EventParam1,
6188        LONG_PTR EventParam2);
6189
6190    END_INTERFACE
6191} IMediaEventSinkVtbl;
6192interface IMediaEventSink {
6193    CONST_VTBL IMediaEventSinkVtbl* lpVtbl;
6194};
6195
6196#ifdef COBJMACROS
6197#ifndef WIDL_C_INLINE_WRAPPERS
6198/*** IUnknown methods ***/
6199#define IMediaEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6200#define IMediaEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
6201#define IMediaEventSink_Release(This) (This)->lpVtbl->Release(This)
6202/*** IMediaEventSink methods ***/
6203#define IMediaEventSink_Notify(This,EventCode,EventParam1,EventParam2) (This)->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2)
6204#else
6205/*** IUnknown methods ***/
6206static FORCEINLINE HRESULT IMediaEventSink_QueryInterface(IMediaEventSink* This,REFIID riid,void **ppvObject) {
6207    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6208}
6209static FORCEINLINE ULONG IMediaEventSink_AddRef(IMediaEventSink* This) {
6210    return This->lpVtbl->AddRef(This);
6211}
6212static FORCEINLINE ULONG IMediaEventSink_Release(IMediaEventSink* This) {
6213    return This->lpVtbl->Release(This);
6214}
6215/*** IMediaEventSink methods ***/
6216static FORCEINLINE HRESULT IMediaEventSink_Notify(IMediaEventSink* This,LONG EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2) {
6217    return This->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2);
6218}
6219#endif
6220#endif
6221
6222#endif
6223
6224HRESULT STDMETHODCALLTYPE IMediaEventSink_Notify_Proxy(
6225    IMediaEventSink* This,
6226    LONG EventCode,
6227    LONG_PTR EventParam1,
6228    LONG_PTR EventParam2);
6229void __RPC_STUB IMediaEventSink_Notify_Stub(
6230    IRpcStubBuffer* This,
6231    IRpcChannelBuffer* pRpcChannelBuffer,
6232    PRPC_MESSAGE pRpcMessage,
6233    DWORD* pdwStubPhase);
6234
6235#endif  /* __IMediaEventSink_INTERFACE_DEFINED__ */
6236
6237typedef IMediaEventSink *PMEDIAEVENTSINK;
6238/*****************************************************************************
6239 * IFileSourceFilter interface
6240 */
6241#ifndef __IFileSourceFilter_INTERFACE_DEFINED__
6242#define __IFileSourceFilter_INTERFACE_DEFINED__
6243
6244DEFINE_GUID(IID_IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6245#if defined(__cplusplus) && !defined(CINTERFACE)
6246MIDL_INTERFACE("56a868a6-0ad4-11ce-b03a-0020af0ba770")
6247IFileSourceFilter : public IUnknown
6248{
6249    virtual HRESULT STDMETHODCALLTYPE Load(
6250        LPCOLESTR pszFileName,
6251        const AM_MEDIA_TYPE *pmt) = 0;
6252
6253    virtual HRESULT STDMETHODCALLTYPE GetCurFile(
6254        LPOLESTR *ppszFileName,
6255        AM_MEDIA_TYPE *pmt) = 0;
6256
6257};
6258#ifdef __CRT_UUID_DECL
6259__CRT_UUID_DECL(IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
6260#endif
6261#else
6262typedef struct IFileSourceFilterVtbl {
6263    BEGIN_INTERFACE
6264
6265    /*** IUnknown methods ***/
6266    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6267        IFileSourceFilter* This,
6268        REFIID riid,
6269        void **ppvObject);
6270
6271    ULONG (STDMETHODCALLTYPE *AddRef)(
6272        IFileSourceFilter* This);
6273
6274    ULONG (STDMETHODCALLTYPE *Release)(
6275        IFileSourceFilter* This);
6276
6277    /*** IFileSourceFilter methods ***/
6278    HRESULT (STDMETHODCALLTYPE *Load)(
6279        IFileSourceFilter* This,
6280        LPCOLESTR pszFileName,
6281        const AM_MEDIA_TYPE *pmt);
6282
6283    HRESULT (STDMETHODCALLTYPE *GetCurFile)(
6284        IFileSourceFilter* This,
6285        LPOLESTR *ppszFileName,
6286        AM_MEDIA_TYPE *pmt);
6287
6288    END_INTERFACE
6289} IFileSourceFilterVtbl;
6290interface IFileSourceFilter {
6291    CONST_VTBL IFileSourceFilterVtbl* lpVtbl;
6292};
6293
6294#ifdef COBJMACROS
6295#ifndef WIDL_C_INLINE_WRAPPERS
6296/*** IUnknown methods ***/
6297#define IFileSourceFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6298#define IFileSourceFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
6299#define IFileSourceFilter_Release(This) (This)->lpVtbl->Release(This)
6300/*** IFileSourceFilter methods ***/
6301#define IFileSourceFilter_Load(This,pszFileName,pmt) (This)->lpVtbl->Load(This,pszFileName,pmt)
6302#define IFileSourceFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
6303#else
6304/*** IUnknown methods ***/
6305static FORCEINLINE HRESULT IFileSourceFilter_QueryInterface(IFileSourceFilter* This,REFIID riid,void **ppvObject) {
6306    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6307}
6308static FORCEINLINE ULONG IFileSourceFilter_AddRef(IFileSourceFilter* This) {
6309    return This->lpVtbl->AddRef(This);
6310}
6311static FORCEINLINE ULONG IFileSourceFilter_Release(IFileSourceFilter* This) {
6312    return This->lpVtbl->Release(This);
6313}
6314/*** IFileSourceFilter methods ***/
6315static FORCEINLINE HRESULT IFileSourceFilter_Load(IFileSourceFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
6316    return This->lpVtbl->Load(This,pszFileName,pmt);
6317}
6318static FORCEINLINE HRESULT IFileSourceFilter_GetCurFile(IFileSourceFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
6319    return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
6320}
6321#endif
6322#endif
6323
6324#endif
6325
6326HRESULT STDMETHODCALLTYPE IFileSourceFilter_Load_Proxy(
6327    IFileSourceFilter* This,
6328    LPCOLESTR pszFileName,
6329    const AM_MEDIA_TYPE *pmt);
6330void __RPC_STUB IFileSourceFilter_Load_Stub(
6331    IRpcStubBuffer* This,
6332    IRpcChannelBuffer* pRpcChannelBuffer,
6333    PRPC_MESSAGE pRpcMessage,
6334    DWORD* pdwStubPhase);
6335HRESULT STDMETHODCALLTYPE IFileSourceFilter_GetCurFile_Proxy(
6336    IFileSourceFilter* This,
6337    LPOLESTR *ppszFileName,
6338    AM_MEDIA_TYPE *pmt);
6339void __RPC_STUB IFileSourceFilter_GetCurFile_Stub(
6340    IRpcStubBuffer* This,
6341    IRpcChannelBuffer* pRpcChannelBuffer,
6342    PRPC_MESSAGE pRpcMessage,
6343    DWORD* pdwStubPhase);
6344
6345#endif  /* __IFileSourceFilter_INTERFACE_DEFINED__ */
6346
6347typedef IFileSourceFilter *PFILTERFILESOURCE;
6348/*****************************************************************************
6349 * IFileSinkFilter interface
6350 */
6351#ifndef __IFileSinkFilter_INTERFACE_DEFINED__
6352#define __IFileSinkFilter_INTERFACE_DEFINED__
6353
6354DEFINE_GUID(IID_IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
6355#if defined(__cplusplus) && !defined(CINTERFACE)
6356MIDL_INTERFACE("a2104830-7c70-11cf-8bce-00aa00a3f1a6")
6357IFileSinkFilter : public IUnknown
6358{
6359    virtual HRESULT STDMETHODCALLTYPE SetFileName(
6360        LPCOLESTR pszFileName,
6361        const AM_MEDIA_TYPE *pmt) = 0;
6362
6363    virtual HRESULT STDMETHODCALLTYPE GetCurFile(
6364        LPOLESTR *ppszFileName,
6365        AM_MEDIA_TYPE *pmt) = 0;
6366
6367};
6368#ifdef __CRT_UUID_DECL
6369__CRT_UUID_DECL(IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6)
6370#endif
6371#else
6372typedef struct IFileSinkFilterVtbl {
6373    BEGIN_INTERFACE
6374
6375    /*** IUnknown methods ***/
6376    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6377        IFileSinkFilter* This,
6378        REFIID riid,
6379        void **ppvObject);
6380
6381    ULONG (STDMETHODCALLTYPE *AddRef)(
6382        IFileSinkFilter* This);
6383
6384    ULONG (STDMETHODCALLTYPE *Release)(
6385        IFileSinkFilter* This);
6386
6387    /*** IFileSinkFilter methods ***/
6388    HRESULT (STDMETHODCALLTYPE *SetFileName)(
6389        IFileSinkFilter* This,
6390        LPCOLESTR pszFileName,
6391        const AM_MEDIA_TYPE *pmt);
6392
6393    HRESULT (STDMETHODCALLTYPE *GetCurFile)(
6394        IFileSinkFilter* This,
6395        LPOLESTR *ppszFileName,
6396        AM_MEDIA_TYPE *pmt);
6397
6398    END_INTERFACE
6399} IFileSinkFilterVtbl;
6400interface IFileSinkFilter {
6401    CONST_VTBL IFileSinkFilterVtbl* lpVtbl;
6402};
6403
6404#ifdef COBJMACROS
6405#ifndef WIDL_C_INLINE_WRAPPERS
6406/*** IUnknown methods ***/
6407#define IFileSinkFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6408#define IFileSinkFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
6409#define IFileSinkFilter_Release(This) (This)->lpVtbl->Release(This)
6410/*** IFileSinkFilter methods ***/
6411#define IFileSinkFilter_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
6412#define IFileSinkFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
6413#else
6414/*** IUnknown methods ***/
6415static FORCEINLINE HRESULT IFileSinkFilter_QueryInterface(IFileSinkFilter* This,REFIID riid,void **ppvObject) {
6416    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6417}
6418static FORCEINLINE ULONG IFileSinkFilter_AddRef(IFileSinkFilter* This) {
6419    return This->lpVtbl->AddRef(This);
6420}
6421static FORCEINLINE ULONG IFileSinkFilter_Release(IFileSinkFilter* This) {
6422    return This->lpVtbl->Release(This);
6423}
6424/*** IFileSinkFilter methods ***/
6425static FORCEINLINE HRESULT IFileSinkFilter_SetFileName(IFileSinkFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
6426    return This->lpVtbl->SetFileName(This,pszFileName,pmt);
6427}
6428static FORCEINLINE HRESULT IFileSinkFilter_GetCurFile(IFileSinkFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
6429    return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
6430}
6431#endif
6432#endif
6433
6434#endif
6435
6436HRESULT STDMETHODCALLTYPE IFileSinkFilter_SetFileName_Proxy(
6437    IFileSinkFilter* This,
6438    LPCOLESTR pszFileName,
6439    const AM_MEDIA_TYPE *pmt);
6440void __RPC_STUB IFileSinkFilter_SetFileName_Stub(
6441    IRpcStubBuffer* This,
6442    IRpcChannelBuffer* pRpcChannelBuffer,
6443    PRPC_MESSAGE pRpcMessage,
6444    DWORD* pdwStubPhase);
6445HRESULT STDMETHODCALLTYPE IFileSinkFilter_GetCurFile_Proxy(
6446    IFileSinkFilter* This,
6447    LPOLESTR *ppszFileName,
6448    AM_MEDIA_TYPE *pmt);
6449void __RPC_STUB IFileSinkFilter_GetCurFile_Stub(
6450    IRpcStubBuffer* This,
6451    IRpcChannelBuffer* pRpcChannelBuffer,
6452    PRPC_MESSAGE pRpcMessage,
6453    DWORD* pdwStubPhase);
6454
6455#endif  /* __IFileSinkFilter_INTERFACE_DEFINED__ */
6456
6457typedef IFileSinkFilter *PFILTERFILESINK;
6458/*****************************************************************************
6459 * IFileSinkFilter2 interface
6460 */
6461#ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
6462#define __IFileSinkFilter2_INTERFACE_DEFINED__
6463
6464DEFINE_GUID(IID_IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86);
6465#if defined(__cplusplus) && !defined(CINTERFACE)
6466MIDL_INTERFACE("00855b90-ce1b-11d0-bd4f-00a0c911ce86")
6467IFileSinkFilter2 : public IFileSinkFilter
6468{
6469    virtual HRESULT STDMETHODCALLTYPE SetMode(
6470        DWORD dwFlags) = 0;
6471
6472    virtual HRESULT STDMETHODCALLTYPE GetMode(
6473        DWORD *pdwFlags) = 0;
6474
6475};
6476#ifdef __CRT_UUID_DECL
6477__CRT_UUID_DECL(IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86)
6478#endif
6479#else
6480typedef struct IFileSinkFilter2Vtbl {
6481    BEGIN_INTERFACE
6482
6483    /*** IUnknown methods ***/
6484    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6485        IFileSinkFilter2* This,
6486        REFIID riid,
6487        void **ppvObject);
6488
6489    ULONG (STDMETHODCALLTYPE *AddRef)(
6490        IFileSinkFilter2* This);
6491
6492    ULONG (STDMETHODCALLTYPE *Release)(
6493        IFileSinkFilter2* This);
6494
6495    /*** IFileSinkFilter methods ***/
6496    HRESULT (STDMETHODCALLTYPE *SetFileName)(
6497        IFileSinkFilter2* This,
6498        LPCOLESTR pszFileName,
6499        const AM_MEDIA_TYPE *pmt);
6500
6501    HRESULT (STDMETHODCALLTYPE *GetCurFile)(
6502        IFileSinkFilter2* This,
6503        LPOLESTR *ppszFileName,
6504        AM_MEDIA_TYPE *pmt);
6505
6506    /*** IFileSinkFilter2 methods ***/
6507    HRESULT (STDMETHODCALLTYPE *SetMode)(
6508        IFileSinkFilter2* This,
6509        DWORD dwFlags);
6510
6511    HRESULT (STDMETHODCALLTYPE *GetMode)(
6512        IFileSinkFilter2* This,
6513        DWORD *pdwFlags);
6514
6515    END_INTERFACE
6516} IFileSinkFilter2Vtbl;
6517interface IFileSinkFilter2 {
6518    CONST_VTBL IFileSinkFilter2Vtbl* lpVtbl;
6519};
6520
6521#ifdef COBJMACROS
6522#ifndef WIDL_C_INLINE_WRAPPERS
6523/*** IUnknown methods ***/
6524#define IFileSinkFilter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6525#define IFileSinkFilter2_AddRef(This) (This)->lpVtbl->AddRef(This)
6526#define IFileSinkFilter2_Release(This) (This)->lpVtbl->Release(This)
6527/*** IFileSinkFilter methods ***/
6528#define IFileSinkFilter2_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
6529#define IFileSinkFilter2_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
6530/*** IFileSinkFilter2 methods ***/
6531#define IFileSinkFilter2_SetMode(This,dwFlags) (This)->lpVtbl->SetMode(This,dwFlags)
6532#define IFileSinkFilter2_GetMode(This,pdwFlags) (This)->lpVtbl->GetMode(This,pdwFlags)
6533#else
6534/*** IUnknown methods ***/
6535static FORCEINLINE HRESULT IFileSinkFilter2_QueryInterface(IFileSinkFilter2* This,REFIID riid,void **ppvObject) {
6536    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6537}
6538static FORCEINLINE ULONG IFileSinkFilter2_AddRef(IFileSinkFilter2* This) {
6539    return This->lpVtbl->AddRef(This);
6540}
6541static FORCEINLINE ULONG IFileSinkFilter2_Release(IFileSinkFilter2* This) {
6542    return This->lpVtbl->Release(This);
6543}
6544/*** IFileSinkFilter methods ***/
6545static FORCEINLINE HRESULT IFileSinkFilter2_SetFileName(IFileSinkFilter2* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
6546    return This->lpVtbl->SetFileName(This,pszFileName,pmt);
6547}
6548static FORCEINLINE HRESULT IFileSinkFilter2_GetCurFile(IFileSinkFilter2* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
6549    return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
6550}
6551/*** IFileSinkFilter2 methods ***/
6552static FORCEINLINE HRESULT IFileSinkFilter2_SetMode(IFileSinkFilter2* This,DWORD dwFlags) {
6553    return This->lpVtbl->SetMode(This,dwFlags);
6554}
6555static FORCEINLINE HRESULT IFileSinkFilter2_GetMode(IFileSinkFilter2* This,DWORD *pdwFlags) {
6556    return This->lpVtbl->GetMode(This,pdwFlags);
6557}
6558#endif
6559#endif
6560
6561#endif
6562
6563HRESULT STDMETHODCALLTYPE IFileSinkFilter2_SetMode_Proxy(
6564    IFileSinkFilter2* This,
6565    DWORD dwFlags);
6566void __RPC_STUB IFileSinkFilter2_SetMode_Stub(
6567    IRpcStubBuffer* This,
6568    IRpcChannelBuffer* pRpcChannelBuffer,
6569    PRPC_MESSAGE pRpcMessage,
6570    DWORD* pdwStubPhase);
6571HRESULT STDMETHODCALLTYPE IFileSinkFilter2_GetMode_Proxy(
6572    IFileSinkFilter2* This,
6573    DWORD *pdwFlags);
6574void __RPC_STUB IFileSinkFilter2_GetMode_Stub(
6575    IRpcStubBuffer* This,
6576    IRpcChannelBuffer* pRpcChannelBuffer,
6577    PRPC_MESSAGE pRpcMessage,
6578    DWORD* pdwStubPhase);
6579
6580#endif  /* __IFileSinkFilter2_INTERFACE_DEFINED__ */
6581
6582typedef IFileSinkFilter2 *PFILESINKFILTER2;
6583typedef enum __WIDL_strmif_generated_name_00000008 {
6584    AM_FILE_OVERWRITE = 0x1
6585} AM_FILESINK_FLAGS;
6586/*****************************************************************************
6587 * IGraphBuilder interface
6588 */
6589#ifndef __IGraphBuilder_INTERFACE_DEFINED__
6590#define __IGraphBuilder_INTERFACE_DEFINED__
6591
6592DEFINE_GUID(IID_IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6593#if defined(__cplusplus) && !defined(CINTERFACE)
6594MIDL_INTERFACE("56a868a9-0ad4-11ce-b03a-0020af0ba770")
6595IGraphBuilder : public IFilterGraph
6596{
6597    virtual HRESULT STDMETHODCALLTYPE Connect(
6598        IPin *ppinOut,
6599        IPin *ppinIn) = 0;
6600
6601    virtual HRESULT STDMETHODCALLTYPE Render(
6602        IPin *ppinOut) = 0;
6603
6604    virtual HRESULT STDMETHODCALLTYPE RenderFile(
6605        LPCWSTR lpcwstrFile,
6606        LPCWSTR lpcwstrPlayList) = 0;
6607
6608    virtual HRESULT STDMETHODCALLTYPE AddSourceFilter(
6609        LPCWSTR lpcwstrFileName,
6610        LPCWSTR lpcwstrFilterName,
6611        IBaseFilter **ppFilter) = 0;
6612
6613    virtual HRESULT STDMETHODCALLTYPE SetLogFile(
6614        DWORD_PTR hFile) = 0;
6615
6616    virtual HRESULT STDMETHODCALLTYPE Abort(
6617        ) = 0;
6618
6619    virtual HRESULT STDMETHODCALLTYPE ShouldOperationContinue(
6620        ) = 0;
6621
6622};
6623#ifdef __CRT_UUID_DECL
6624__CRT_UUID_DECL(IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
6625#endif
6626#else
6627typedef struct IGraphBuilderVtbl {
6628    BEGIN_INTERFACE
6629
6630    /*** IUnknown methods ***/
6631    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6632        IGraphBuilder* This,
6633        REFIID riid,
6634        void **ppvObject);
6635
6636    ULONG (STDMETHODCALLTYPE *AddRef)(
6637        IGraphBuilder* This);
6638
6639    ULONG (STDMETHODCALLTYPE *Release)(
6640        IGraphBuilder* This);
6641
6642    /*** IFilterGraph methods ***/
6643    HRESULT (STDMETHODCALLTYPE *AddFilter)(
6644        IGraphBuilder* This,
6645        IBaseFilter *pFilter,
6646        LPCWSTR pName);
6647
6648    HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
6649        IGraphBuilder* This,
6650        IBaseFilter *pFilter);
6651
6652    HRESULT (STDMETHODCALLTYPE *EnumFilters)(
6653        IGraphBuilder* This,
6654        IEnumFilters **ppEnum);
6655
6656    HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
6657        IGraphBuilder* This,
6658        LPCWSTR pName,
6659        IBaseFilter **ppFilter);
6660
6661    HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
6662        IGraphBuilder* This,
6663        IPin *ppinOut,
6664        IPin *ppinIn,
6665        const AM_MEDIA_TYPE *pmt);
6666
6667    HRESULT (STDMETHODCALLTYPE *Reconnect)(
6668        IGraphBuilder* This,
6669        IPin *ppin);
6670
6671    HRESULT (STDMETHODCALLTYPE *Disconnect)(
6672        IGraphBuilder* This,
6673        IPin *ppin);
6674
6675    HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
6676        IGraphBuilder* This);
6677
6678    /*** IGraphBuilder methods ***/
6679    HRESULT (STDMETHODCALLTYPE *Connect)(
6680        IGraphBuilder* This,
6681        IPin *ppinOut,
6682        IPin *ppinIn);
6683
6684    HRESULT (STDMETHODCALLTYPE *Render)(
6685        IGraphBuilder* This,
6686        IPin *ppinOut);
6687
6688    HRESULT (STDMETHODCALLTYPE *RenderFile)(
6689        IGraphBuilder* This,
6690        LPCWSTR lpcwstrFile,
6691        LPCWSTR lpcwstrPlayList);
6692
6693    HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
6694        IGraphBuilder* This,
6695        LPCWSTR lpcwstrFileName,
6696        LPCWSTR lpcwstrFilterName,
6697        IBaseFilter **ppFilter);
6698
6699    HRESULT (STDMETHODCALLTYPE *SetLogFile)(
6700        IGraphBuilder* This,
6701        DWORD_PTR hFile);
6702
6703    HRESULT (STDMETHODCALLTYPE *Abort)(
6704        IGraphBuilder* This);
6705
6706    HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
6707        IGraphBuilder* This);
6708
6709    END_INTERFACE
6710} IGraphBuilderVtbl;
6711interface IGraphBuilder {
6712    CONST_VTBL IGraphBuilderVtbl* lpVtbl;
6713};
6714
6715#ifdef COBJMACROS
6716#ifndef WIDL_C_INLINE_WRAPPERS
6717/*** IUnknown methods ***/
6718#define IGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6719#define IGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
6720#define IGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
6721/*** IFilterGraph methods ***/
6722#define IGraphBuilder_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
6723#define IGraphBuilder_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
6724#define IGraphBuilder_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
6725#define IGraphBuilder_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
6726#define IGraphBuilder_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
6727#define IGraphBuilder_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
6728#define IGraphBuilder_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
6729#define IGraphBuilder_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
6730/*** IGraphBuilder methods ***/
6731#define IGraphBuilder_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
6732#define IGraphBuilder_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
6733#define IGraphBuilder_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
6734#define IGraphBuilder_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
6735#define IGraphBuilder_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
6736#define IGraphBuilder_Abort(This) (This)->lpVtbl->Abort(This)
6737#define IGraphBuilder_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
6738#else
6739/*** IUnknown methods ***/
6740static FORCEINLINE HRESULT IGraphBuilder_QueryInterface(IGraphBuilder* This,REFIID riid,void **ppvObject) {
6741    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6742}
6743static FORCEINLINE ULONG IGraphBuilder_AddRef(IGraphBuilder* This) {
6744    return This->lpVtbl->AddRef(This);
6745}
6746static FORCEINLINE ULONG IGraphBuilder_Release(IGraphBuilder* This) {
6747    return This->lpVtbl->Release(This);
6748}
6749/*** IFilterGraph methods ***/
6750static FORCEINLINE HRESULT IGraphBuilder_AddFilter(IGraphBuilder* This,IBaseFilter *pFilter,LPCWSTR pName) {
6751    return This->lpVtbl->AddFilter(This,pFilter,pName);
6752}
6753static FORCEINLINE HRESULT IGraphBuilder_RemoveFilter(IGraphBuilder* This,IBaseFilter *pFilter) {
6754    return This->lpVtbl->RemoveFilter(This,pFilter);
6755}
6756static FORCEINLINE HRESULT IGraphBuilder_EnumFilters(IGraphBuilder* This,IEnumFilters **ppEnum) {
6757    return This->lpVtbl->EnumFilters(This,ppEnum);
6758}
6759static FORCEINLINE HRESULT IGraphBuilder_FindFilterByName(IGraphBuilder* This,LPCWSTR pName,IBaseFilter **ppFilter) {
6760    return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
6761}
6762static FORCEINLINE HRESULT IGraphBuilder_ConnectDirect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
6763    return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
6764}
6765static FORCEINLINE HRESULT IGraphBuilder_Reconnect(IGraphBuilder* This,IPin *ppin) {
6766    return This->lpVtbl->Reconnect(This,ppin);
6767}
6768static FORCEINLINE HRESULT IGraphBuilder_Disconnect(IGraphBuilder* This,IPin *ppin) {
6769    return This->lpVtbl->Disconnect(This,ppin);
6770}
6771static FORCEINLINE HRESULT IGraphBuilder_SetDefaultSyncSource(IGraphBuilder* This) {
6772    return This->lpVtbl->SetDefaultSyncSource(This);
6773}
6774/*** IGraphBuilder methods ***/
6775static FORCEINLINE HRESULT IGraphBuilder_Connect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn) {
6776    return This->lpVtbl->Connect(This,ppinOut,ppinIn);
6777}
6778static FORCEINLINE HRESULT IGraphBuilder_Render(IGraphBuilder* This,IPin *ppinOut) {
6779    return This->lpVtbl->Render(This,ppinOut);
6780}
6781static FORCEINLINE HRESULT IGraphBuilder_RenderFile(IGraphBuilder* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
6782    return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
6783}
6784static FORCEINLINE HRESULT IGraphBuilder_AddSourceFilter(IGraphBuilder* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
6785    return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
6786}
6787static FORCEINLINE HRESULT IGraphBuilder_SetLogFile(IGraphBuilder* This,DWORD_PTR hFile) {
6788    return This->lpVtbl->SetLogFile(This,hFile);
6789}
6790static FORCEINLINE HRESULT IGraphBuilder_Abort(IGraphBuilder* This) {
6791    return This->lpVtbl->Abort(This);
6792}
6793static FORCEINLINE HRESULT IGraphBuilder_ShouldOperationContinue(IGraphBuilder* This) {
6794    return This->lpVtbl->ShouldOperationContinue(This);
6795}
6796#endif
6797#endif
6798
6799#endif
6800
6801HRESULT STDMETHODCALLTYPE IGraphBuilder_Connect_Proxy(
6802    IGraphBuilder* This,
6803    IPin *ppinOut,
6804    IPin *ppinIn);
6805void __RPC_STUB IGraphBuilder_Connect_Stub(
6806    IRpcStubBuffer* This,
6807    IRpcChannelBuffer* pRpcChannelBuffer,
6808    PRPC_MESSAGE pRpcMessage,
6809    DWORD* pdwStubPhase);
6810HRESULT STDMETHODCALLTYPE IGraphBuilder_Render_Proxy(
6811    IGraphBuilder* This,
6812    IPin *ppinOut);
6813void __RPC_STUB IGraphBuilder_Render_Stub(
6814    IRpcStubBuffer* This,
6815    IRpcChannelBuffer* pRpcChannelBuffer,
6816    PRPC_MESSAGE pRpcMessage,
6817    DWORD* pdwStubPhase);
6818HRESULT STDMETHODCALLTYPE IGraphBuilder_RenderFile_Proxy(
6819    IGraphBuilder* This,
6820    LPCWSTR lpcwstrFile,
6821    LPCWSTR lpcwstrPlayList);
6822void __RPC_STUB IGraphBuilder_RenderFile_Stub(
6823    IRpcStubBuffer* This,
6824    IRpcChannelBuffer* pRpcChannelBuffer,
6825    PRPC_MESSAGE pRpcMessage,
6826    DWORD* pdwStubPhase);
6827HRESULT STDMETHODCALLTYPE IGraphBuilder_AddSourceFilter_Proxy(
6828    IGraphBuilder* This,
6829    LPCWSTR lpcwstrFileName,
6830    LPCWSTR lpcwstrFilterName,
6831    IBaseFilter **ppFilter);
6832void __RPC_STUB IGraphBuilder_AddSourceFilter_Stub(
6833    IRpcStubBuffer* This,
6834    IRpcChannelBuffer* pRpcChannelBuffer,
6835    PRPC_MESSAGE pRpcMessage,
6836    DWORD* pdwStubPhase);
6837HRESULT STDMETHODCALLTYPE IGraphBuilder_SetLogFile_Proxy(
6838    IGraphBuilder* This,
6839    DWORD_PTR hFile);
6840void __RPC_STUB IGraphBuilder_SetLogFile_Stub(
6841    IRpcStubBuffer* This,
6842    IRpcChannelBuffer* pRpcChannelBuffer,
6843    PRPC_MESSAGE pRpcMessage,
6844    DWORD* pdwStubPhase);
6845HRESULT STDMETHODCALLTYPE IGraphBuilder_Abort_Proxy(
6846    IGraphBuilder* This);
6847void __RPC_STUB IGraphBuilder_Abort_Stub(
6848    IRpcStubBuffer* This,
6849    IRpcChannelBuffer* pRpcChannelBuffer,
6850    PRPC_MESSAGE pRpcMessage,
6851    DWORD* pdwStubPhase);
6852HRESULT STDMETHODCALLTYPE IGraphBuilder_ShouldOperationContinue_Proxy(
6853    IGraphBuilder* This);
6854void __RPC_STUB IGraphBuilder_ShouldOperationContinue_Stub(
6855    IRpcStubBuffer* This,
6856    IRpcChannelBuffer* pRpcChannelBuffer,
6857    PRPC_MESSAGE pRpcMessage,
6858    DWORD* pdwStubPhase);
6859
6860#endif  /* __IGraphBuilder_INTERFACE_DEFINED__ */
6861
6862/*****************************************************************************
6863 * ICaptureGraphBuilder interface
6864 */
6865#ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__
6866#define __ICaptureGraphBuilder_INTERFACE_DEFINED__
6867
6868DEFINE_GUID(IID_ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
6869#if defined(__cplusplus) && !defined(CINTERFACE)
6870MIDL_INTERFACE("bf87b6e0-8c27-11d0-b3f0-00aa003761c5")
6871ICaptureGraphBuilder : public IUnknown
6872{
6873    virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
6874        IGraphBuilder *pfg) = 0;
6875
6876    virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
6877        IGraphBuilder **ppfg) = 0;
6878
6879    virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
6880        const GUID *pType,
6881        LPCOLESTR lpstrFile,
6882        IBaseFilter **ppf,
6883        IFileSinkFilter **ppSink) = 0;
6884
6885    virtual HRESULT STDMETHODCALLTYPE FindInterface(
6886        const GUID *pCategory,
6887        IBaseFilter *pf,
6888        REFIID riid,
6889        void **ppint) = 0;
6890
6891    virtual HRESULT STDMETHODCALLTYPE RenderStream(
6892        const GUID *pCategory,
6893        IUnknown *pSource,
6894        IBaseFilter *pfCompressor,
6895        IBaseFilter *pfRenderer) = 0;
6896
6897    virtual HRESULT STDMETHODCALLTYPE ControlStream(
6898        const GUID *pCategory,
6899        IBaseFilter *pFilter,
6900        REFERENCE_TIME *pstart,
6901        REFERENCE_TIME *pstop,
6902        WORD wStartCookie,
6903        WORD wStopCookie) = 0;
6904
6905    virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
6906        LPCOLESTR lpstr,
6907        DWORDLONG dwlSize) = 0;
6908
6909    virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
6910        LPOLESTR lpwstrOld,
6911        LPOLESTR lpwstrNew,
6912        int fAllowEscAbort,
6913        IAMCopyCaptureFileProgress *pCallback) = 0;
6914
6915};
6916#ifdef __CRT_UUID_DECL
6917__CRT_UUID_DECL(ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
6918#endif
6919#else
6920typedef struct ICaptureGraphBuilderVtbl {
6921    BEGIN_INTERFACE
6922
6923    /*** IUnknown methods ***/
6924    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6925        ICaptureGraphBuilder* This,
6926        REFIID riid,
6927        void **ppvObject);
6928
6929    ULONG (STDMETHODCALLTYPE *AddRef)(
6930        ICaptureGraphBuilder* This);
6931
6932    ULONG (STDMETHODCALLTYPE *Release)(
6933        ICaptureGraphBuilder* This);
6934
6935    /*** ICaptureGraphBuilder methods ***/
6936    HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
6937        ICaptureGraphBuilder* This,
6938        IGraphBuilder *pfg);
6939
6940    HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
6941        ICaptureGraphBuilder* This,
6942        IGraphBuilder **ppfg);
6943
6944    HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
6945        ICaptureGraphBuilder* This,
6946        const GUID *pType,
6947        LPCOLESTR lpstrFile,
6948        IBaseFilter **ppf,
6949        IFileSinkFilter **ppSink);
6950
6951    HRESULT (STDMETHODCALLTYPE *FindInterface)(
6952        ICaptureGraphBuilder* This,
6953        const GUID *pCategory,
6954        IBaseFilter *pf,
6955        REFIID riid,
6956        void **ppint);
6957
6958    HRESULT (STDMETHODCALLTYPE *RenderStream)(
6959        ICaptureGraphBuilder* This,
6960        const GUID *pCategory,
6961        IUnknown *pSource,
6962        IBaseFilter *pfCompressor,
6963        IBaseFilter *pfRenderer);
6964
6965    HRESULT (STDMETHODCALLTYPE *ControlStream)(
6966        ICaptureGraphBuilder* This,
6967        const GUID *pCategory,
6968        IBaseFilter *pFilter,
6969        REFERENCE_TIME *pstart,
6970        REFERENCE_TIME *pstop,
6971        WORD wStartCookie,
6972        WORD wStopCookie);
6973
6974    HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
6975        ICaptureGraphBuilder* This,
6976        LPCOLESTR lpstr,
6977        DWORDLONG dwlSize);
6978
6979    HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
6980        ICaptureGraphBuilder* This,
6981        LPOLESTR lpwstrOld,
6982        LPOLESTR lpwstrNew,
6983        int fAllowEscAbort,
6984        IAMCopyCaptureFileProgress *pCallback);
6985
6986    END_INTERFACE
6987} ICaptureGraphBuilderVtbl;
6988interface ICaptureGraphBuilder {
6989    CONST_VTBL ICaptureGraphBuilderVtbl* lpVtbl;
6990};
6991
6992#ifdef COBJMACROS
6993#ifndef WIDL_C_INLINE_WRAPPERS
6994/*** IUnknown methods ***/
6995#define ICaptureGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6996#define ICaptureGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
6997#define ICaptureGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
6998/*** ICaptureGraphBuilder methods ***/
6999#define ICaptureGraphBuilder_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
7000#define ICaptureGraphBuilder_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
7001#define ICaptureGraphBuilder_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
7002#define ICaptureGraphBuilder_FindInterface(This,pCategory,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint)
7003#define ICaptureGraphBuilder_RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer)
7004#define ICaptureGraphBuilder_ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie)
7005#define ICaptureGraphBuilder_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
7006#define ICaptureGraphBuilder_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
7007#else
7008/*** IUnknown methods ***/
7009static FORCEINLINE HRESULT ICaptureGraphBuilder_QueryInterface(ICaptureGraphBuilder* This,REFIID riid,void **ppvObject) {
7010    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7011}
7012static FORCEINLINE ULONG ICaptureGraphBuilder_AddRef(ICaptureGraphBuilder* This) {
7013    return This->lpVtbl->AddRef(This);
7014}
7015static FORCEINLINE ULONG ICaptureGraphBuilder_Release(ICaptureGraphBuilder* This) {
7016    return This->lpVtbl->Release(This);
7017}
7018/*** ICaptureGraphBuilder methods ***/
7019static FORCEINLINE HRESULT ICaptureGraphBuilder_SetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder *pfg) {
7020    return This->lpVtbl->SetFiltergraph(This,pfg);
7021}
7022static FORCEINLINE HRESULT ICaptureGraphBuilder_GetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder **ppfg) {
7023    return This->lpVtbl->GetFiltergraph(This,ppfg);
7024}
7025static FORCEINLINE HRESULT ICaptureGraphBuilder_SetOutputFileName(ICaptureGraphBuilder* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) {
7026    return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink);
7027}
7028static FORCEINLINE HRESULT ICaptureGraphBuilder_FindInterface(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,void **ppint) {
7029    return This->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint);
7030}
7031static FORCEINLINE HRESULT ICaptureGraphBuilder_RenderStream(ICaptureGraphBuilder* This,const GUID *pCategory,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) {
7032    return This->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer);
7033}
7034static FORCEINLINE HRESULT ICaptureGraphBuilder_ControlStream(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) {
7035    return This->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie);
7036}
7037static FORCEINLINE HRESULT ICaptureGraphBuilder_AllocCapFile(ICaptureGraphBuilder* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
7038    return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
7039}
7040static FORCEINLINE HRESULT ICaptureGraphBuilder_CopyCaptureFile(ICaptureGraphBuilder* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) {
7041    return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback);
7042}
7043#endif
7044#endif
7045
7046#endif
7047
7048HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_SetFiltergraph_Proxy(
7049    ICaptureGraphBuilder* This,
7050    IGraphBuilder *pfg);
7051void __RPC_STUB ICaptureGraphBuilder_SetFiltergraph_Stub(
7052    IRpcStubBuffer* This,
7053    IRpcChannelBuffer* pRpcChannelBuffer,
7054    PRPC_MESSAGE pRpcMessage,
7055    DWORD* pdwStubPhase);
7056HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_GetFiltergraph_Proxy(
7057    ICaptureGraphBuilder* This,
7058    IGraphBuilder **ppfg);
7059void __RPC_STUB ICaptureGraphBuilder_GetFiltergraph_Stub(
7060    IRpcStubBuffer* This,
7061    IRpcChannelBuffer* pRpcChannelBuffer,
7062    PRPC_MESSAGE pRpcMessage,
7063    DWORD* pdwStubPhase);
7064HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_SetOutputFileName_Proxy(
7065    ICaptureGraphBuilder* This,
7066    const GUID *pType,
7067    LPCOLESTR lpstrFile,
7068    IBaseFilter **ppf,
7069    IFileSinkFilter **ppSink);
7070void __RPC_STUB ICaptureGraphBuilder_SetOutputFileName_Stub(
7071    IRpcStubBuffer* This,
7072    IRpcChannelBuffer* pRpcChannelBuffer,
7073    PRPC_MESSAGE pRpcMessage,
7074    DWORD* pdwStubPhase);
7075HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RemoteFindInterface_Proxy(
7076    ICaptureGraphBuilder* This,
7077    const GUID *pCategory,
7078    IBaseFilter *pf,
7079    REFIID riid,
7080    IUnknown **ppint);
7081void __RPC_STUB ICaptureGraphBuilder_RemoteFindInterface_Stub(
7082    IRpcStubBuffer* This,
7083    IRpcChannelBuffer* pRpcChannelBuffer,
7084    PRPC_MESSAGE pRpcMessage,
7085    DWORD* pdwStubPhase);
7086HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RenderStream_Proxy(
7087    ICaptureGraphBuilder* This,
7088    const GUID *pCategory,
7089    IUnknown *pSource,
7090    IBaseFilter *pfCompressor,
7091    IBaseFilter *pfRenderer);
7092void __RPC_STUB ICaptureGraphBuilder_RenderStream_Stub(
7093    IRpcStubBuffer* This,
7094    IRpcChannelBuffer* pRpcChannelBuffer,
7095    PRPC_MESSAGE pRpcMessage,
7096    DWORD* pdwStubPhase);
7097HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_ControlStream_Proxy(
7098    ICaptureGraphBuilder* This,
7099    const GUID *pCategory,
7100    IBaseFilter *pFilter,
7101    REFERENCE_TIME *pstart,
7102    REFERENCE_TIME *pstop,
7103    WORD wStartCookie,
7104    WORD wStopCookie);
7105void __RPC_STUB ICaptureGraphBuilder_ControlStream_Stub(
7106    IRpcStubBuffer* This,
7107    IRpcChannelBuffer* pRpcChannelBuffer,
7108    PRPC_MESSAGE pRpcMessage,
7109    DWORD* pdwStubPhase);
7110HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_AllocCapFile_Proxy(
7111    ICaptureGraphBuilder* This,
7112    LPCOLESTR lpstr,
7113    DWORDLONG dwlSize);
7114void __RPC_STUB ICaptureGraphBuilder_AllocCapFile_Stub(
7115    IRpcStubBuffer* This,
7116    IRpcChannelBuffer* pRpcChannelBuffer,
7117    PRPC_MESSAGE pRpcMessage,
7118    DWORD* pdwStubPhase);
7119HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_CopyCaptureFile_Proxy(
7120    ICaptureGraphBuilder* This,
7121    LPOLESTR lpwstrOld,
7122    LPOLESTR lpwstrNew,
7123    int fAllowEscAbort,
7124    IAMCopyCaptureFileProgress *pCallback);
7125void __RPC_STUB ICaptureGraphBuilder_CopyCaptureFile_Stub(
7126    IRpcStubBuffer* This,
7127    IRpcChannelBuffer* pRpcChannelBuffer,
7128    PRPC_MESSAGE pRpcMessage,
7129    DWORD* pdwStubPhase);
7130HRESULT CALLBACK ICaptureGraphBuilder_FindInterface_Proxy(
7131    ICaptureGraphBuilder* This,
7132    const GUID *pCategory,
7133    IBaseFilter *pf,
7134    REFIID riid,
7135    void **ppint);
7136HRESULT __RPC_STUB ICaptureGraphBuilder_FindInterface_Stub(
7137    ICaptureGraphBuilder* This,
7138    const GUID *pCategory,
7139    IBaseFilter *pf,
7140    REFIID riid,
7141    IUnknown **ppint);
7142
7143#endif  /* __ICaptureGraphBuilder_INTERFACE_DEFINED__ */
7144
7145/*****************************************************************************
7146 * IAMCopyCaptureFileProgress interface
7147 */
7148#ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
7149#define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
7150
7151DEFINE_GUID(IID_IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
7152#if defined(__cplusplus) && !defined(CINTERFACE)
7153MIDL_INTERFACE("670d1d20-a068-11d0-b3f0-00aa003761c5")
7154IAMCopyCaptureFileProgress : public IUnknown
7155{
7156    virtual HRESULT STDMETHODCALLTYPE Progress(
7157        int iProgress) = 0;
7158
7159};
7160#ifdef __CRT_UUID_DECL
7161__CRT_UUID_DECL(IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
7162#endif
7163#else
7164typedef struct IAMCopyCaptureFileProgressVtbl {
7165    BEGIN_INTERFACE
7166
7167    /*** IUnknown methods ***/
7168    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7169        IAMCopyCaptureFileProgress* This,
7170        REFIID riid,
7171        void **ppvObject);
7172
7173    ULONG (STDMETHODCALLTYPE *AddRef)(
7174        IAMCopyCaptureFileProgress* This);
7175
7176    ULONG (STDMETHODCALLTYPE *Release)(
7177        IAMCopyCaptureFileProgress* This);
7178
7179    /*** IAMCopyCaptureFileProgress methods ***/
7180    HRESULT (STDMETHODCALLTYPE *Progress)(
7181        IAMCopyCaptureFileProgress* This,
7182        int iProgress);
7183
7184    END_INTERFACE
7185} IAMCopyCaptureFileProgressVtbl;
7186interface IAMCopyCaptureFileProgress {
7187    CONST_VTBL IAMCopyCaptureFileProgressVtbl* lpVtbl;
7188};
7189
7190#ifdef COBJMACROS
7191#ifndef WIDL_C_INLINE_WRAPPERS
7192/*** IUnknown methods ***/
7193#define IAMCopyCaptureFileProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7194#define IAMCopyCaptureFileProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
7195#define IAMCopyCaptureFileProgress_Release(This) (This)->lpVtbl->Release(This)
7196/*** IAMCopyCaptureFileProgress methods ***/
7197#define IAMCopyCaptureFileProgress_Progress(This,iProgress) (This)->lpVtbl->Progress(This,iProgress)
7198#else
7199/*** IUnknown methods ***/
7200static FORCEINLINE HRESULT IAMCopyCaptureFileProgress_QueryInterface(IAMCopyCaptureFileProgress* This,REFIID riid,void **ppvObject) {
7201    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7202}
7203static FORCEINLINE ULONG IAMCopyCaptureFileProgress_AddRef(IAMCopyCaptureFileProgress* This) {
7204    return This->lpVtbl->AddRef(This);
7205}
7206static FORCEINLINE ULONG IAMCopyCaptureFileProgress_Release(IAMCopyCaptureFileProgress* This) {
7207    return This->lpVtbl->Release(This);
7208}
7209/*** IAMCopyCaptureFileProgress methods ***/
7210static FORCEINLINE HRESULT IAMCopyCaptureFileProgress_Progress(IAMCopyCaptureFileProgress* This,int iProgress) {
7211    return This->lpVtbl->Progress(This,iProgress);
7212}
7213#endif
7214#endif
7215
7216#endif
7217
7218HRESULT STDMETHODCALLTYPE IAMCopyCaptureFileProgress_Progress_Proxy(
7219    IAMCopyCaptureFileProgress* This,
7220    int iProgress);
7221void __RPC_STUB IAMCopyCaptureFileProgress_Progress_Stub(
7222    IRpcStubBuffer* This,
7223    IRpcChannelBuffer* pRpcChannelBuffer,
7224    PRPC_MESSAGE pRpcMessage,
7225    DWORD* pdwStubPhase);
7226
7227#endif  /* __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ */
7228
7229/*****************************************************************************
7230 * ICaptureGraphBuilder2 interface
7231 */
7232#ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
7233#define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
7234
7235DEFINE_GUID(IID_ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d);
7236#if defined(__cplusplus) && !defined(CINTERFACE)
7237MIDL_INTERFACE("93e5a4e0-2d50-11d2-abfa-00a0c9c6e38d")
7238ICaptureGraphBuilder2 : public IUnknown
7239{
7240    virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
7241        IGraphBuilder *pfg) = 0;
7242
7243    virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
7244        IGraphBuilder **ppfg) = 0;
7245
7246    virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
7247        const GUID *pType,
7248        LPCOLESTR lpstrFile,
7249        IBaseFilter **ppf,
7250        IFileSinkFilter **ppSink) = 0;
7251
7252    virtual HRESULT STDMETHODCALLTYPE FindInterface(
7253        const GUID *pCategory,
7254        const GUID *pType,
7255        IBaseFilter *pf,
7256        REFIID riid,
7257        void **ppint) = 0;
7258
7259    virtual HRESULT STDMETHODCALLTYPE RenderStream(
7260        const GUID *pCategory,
7261        const GUID *pType,
7262        IUnknown *pSource,
7263        IBaseFilter *pfCompressor,
7264        IBaseFilter *pfRenderer) = 0;
7265
7266    virtual HRESULT STDMETHODCALLTYPE ControlStream(
7267        const GUID *pCategory,
7268        const GUID *pType,
7269        IBaseFilter *pFilter,
7270        REFERENCE_TIME *pstart,
7271        REFERENCE_TIME *pstop,
7272        WORD wStartCookie,
7273        WORD wStopCookie) = 0;
7274
7275    virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
7276        LPCOLESTR lpstr,
7277        DWORDLONG dwlSize) = 0;
7278
7279    virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
7280        LPOLESTR lpwstrOld,
7281        LPOLESTR lpwstrNew,
7282        int fAllowEscAbort,
7283        IAMCopyCaptureFileProgress *pCallback) = 0;
7284
7285    virtual HRESULT STDMETHODCALLTYPE FindPin(
7286        IUnknown *pSource,
7287        PIN_DIRECTION pindir,
7288        const GUID *pCategory,
7289        const GUID *pType,
7290        WINBOOL fUnconnected,
7291        int num,
7292        IPin **ppPin) = 0;
7293
7294};
7295#ifdef __CRT_UUID_DECL
7296__CRT_UUID_DECL(ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d)
7297#endif
7298#else
7299typedef struct ICaptureGraphBuilder2Vtbl {
7300    BEGIN_INTERFACE
7301
7302    /*** IUnknown methods ***/
7303    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7304        ICaptureGraphBuilder2* This,
7305        REFIID riid,
7306        void **ppvObject);
7307
7308    ULONG (STDMETHODCALLTYPE *AddRef)(
7309        ICaptureGraphBuilder2* This);
7310
7311    ULONG (STDMETHODCALLTYPE *Release)(
7312        ICaptureGraphBuilder2* This);
7313
7314    /*** ICaptureGraphBuilder2 methods ***/
7315    HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
7316        ICaptureGraphBuilder2* This,
7317        IGraphBuilder *pfg);
7318
7319    HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
7320        ICaptureGraphBuilder2* This,
7321        IGraphBuilder **ppfg);
7322
7323    HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
7324        ICaptureGraphBuilder2* This,
7325        const GUID *pType,
7326        LPCOLESTR lpstrFile,
7327        IBaseFilter **ppf,
7328        IFileSinkFilter **ppSink);
7329
7330    HRESULT (STDMETHODCALLTYPE *FindInterface)(
7331        ICaptureGraphBuilder2* This,
7332        const GUID *pCategory,
7333        const GUID *pType,
7334        IBaseFilter *pf,
7335        REFIID riid,
7336        void **ppint);
7337
7338    HRESULT (STDMETHODCALLTYPE *RenderStream)(
7339        ICaptureGraphBuilder2* This,
7340        const GUID *pCategory,
7341        const GUID *pType,
7342        IUnknown *pSource,
7343        IBaseFilter *pfCompressor,
7344        IBaseFilter *pfRenderer);
7345
7346    HRESULT (STDMETHODCALLTYPE *ControlStream)(
7347        ICaptureGraphBuilder2* This,
7348        const GUID *pCategory,
7349        const GUID *pType,
7350        IBaseFilter *pFilter,
7351        REFERENCE_TIME *pstart,
7352        REFERENCE_TIME *pstop,
7353        WORD wStartCookie,
7354        WORD wStopCookie);
7355
7356    HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
7357        ICaptureGraphBuilder2* This,
7358        LPCOLESTR lpstr,
7359        DWORDLONG dwlSize);
7360
7361    HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
7362        ICaptureGraphBuilder2* This,
7363        LPOLESTR lpwstrOld,
7364        LPOLESTR lpwstrNew,
7365        int fAllowEscAbort,
7366        IAMCopyCaptureFileProgress *pCallback);
7367
7368    HRESULT (STDMETHODCALLTYPE *FindPin)(
7369        ICaptureGraphBuilder2* This,
7370        IUnknown *pSource,
7371        PIN_DIRECTION pindir,
7372        const GUID *pCategory,
7373        const GUID *pType,
7374        WINBOOL fUnconnected,
7375        int num,
7376        IPin **ppPin);
7377
7378    END_INTERFACE
7379} ICaptureGraphBuilder2Vtbl;
7380interface ICaptureGraphBuilder2 {
7381    CONST_VTBL ICaptureGraphBuilder2Vtbl* lpVtbl;
7382};
7383
7384#ifdef COBJMACROS
7385#ifndef WIDL_C_INLINE_WRAPPERS
7386/*** IUnknown methods ***/
7387#define ICaptureGraphBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7388#define ICaptureGraphBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
7389#define ICaptureGraphBuilder2_Release(This) (This)->lpVtbl->Release(This)
7390/*** ICaptureGraphBuilder2 methods ***/
7391#define ICaptureGraphBuilder2_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
7392#define ICaptureGraphBuilder2_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
7393#define ICaptureGraphBuilder2_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
7394#define ICaptureGraphBuilder2_FindInterface(This,pCategory,pType,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint)
7395#define ICaptureGraphBuilder2_RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer)
7396#define ICaptureGraphBuilder2_ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie)
7397#define ICaptureGraphBuilder2_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
7398#define ICaptureGraphBuilder2_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
7399#define ICaptureGraphBuilder2_FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin) (This)->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin)
7400#else
7401/*** IUnknown methods ***/
7402static FORCEINLINE HRESULT ICaptureGraphBuilder2_QueryInterface(ICaptureGraphBuilder2* This,REFIID riid,void **ppvObject) {
7403    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7404}
7405static FORCEINLINE ULONG ICaptureGraphBuilder2_AddRef(ICaptureGraphBuilder2* This) {
7406    return This->lpVtbl->AddRef(This);
7407}
7408static FORCEINLINE ULONG ICaptureGraphBuilder2_Release(ICaptureGraphBuilder2* This) {
7409    return This->lpVtbl->Release(This);
7410}
7411/*** ICaptureGraphBuilder2 methods ***/
7412static FORCEINLINE HRESULT ICaptureGraphBuilder2_SetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder *pfg) {
7413    return This->lpVtbl->SetFiltergraph(This,pfg);
7414}
7415static FORCEINLINE HRESULT ICaptureGraphBuilder2_GetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder **ppfg) {
7416    return This->lpVtbl->GetFiltergraph(This,ppfg);
7417}
7418static FORCEINLINE HRESULT ICaptureGraphBuilder2_SetOutputFileName(ICaptureGraphBuilder2* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) {
7419    return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink);
7420}
7421static FORCEINLINE HRESULT ICaptureGraphBuilder2_FindInterface(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,void **ppint) {
7422    return This->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint);
7423}
7424static FORCEINLINE HRESULT ICaptureGraphBuilder2_RenderStream(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) {
7425    return This->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer);
7426}
7427static FORCEINLINE HRESULT ICaptureGraphBuilder2_ControlStream(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) {
7428    return This->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie);
7429}
7430static FORCEINLINE HRESULT ICaptureGraphBuilder2_AllocCapFile(ICaptureGraphBuilder2* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
7431    return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
7432}
7433static FORCEINLINE HRESULT ICaptureGraphBuilder2_CopyCaptureFile(ICaptureGraphBuilder2* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) {
7434    return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback);
7435}
7436static FORCEINLINE HRESULT ICaptureGraphBuilder2_FindPin(ICaptureGraphBuilder2* This,IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,WINBOOL fUnconnected,int num,IPin **ppPin) {
7437    return This->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin);
7438}
7439#endif
7440#endif
7441
7442#endif
7443
7444HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_SetFiltergraph_Proxy(
7445    ICaptureGraphBuilder2* This,
7446    IGraphBuilder *pfg);
7447void __RPC_STUB ICaptureGraphBuilder2_SetFiltergraph_Stub(
7448    IRpcStubBuffer* This,
7449    IRpcChannelBuffer* pRpcChannelBuffer,
7450    PRPC_MESSAGE pRpcMessage,
7451    DWORD* pdwStubPhase);
7452HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_GetFiltergraph_Proxy(
7453    ICaptureGraphBuilder2* This,
7454    IGraphBuilder **ppfg);
7455void __RPC_STUB ICaptureGraphBuilder2_GetFiltergraph_Stub(
7456    IRpcStubBuffer* This,
7457    IRpcChannelBuffer* pRpcChannelBuffer,
7458    PRPC_MESSAGE pRpcMessage,
7459    DWORD* pdwStubPhase);
7460HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_SetOutputFileName_Proxy(
7461    ICaptureGraphBuilder2* This,
7462    const GUID *pType,
7463    LPCOLESTR lpstrFile,
7464    IBaseFilter **ppf,
7465    IFileSinkFilter **ppSink);
7466void __RPC_STUB ICaptureGraphBuilder2_SetOutputFileName_Stub(
7467    IRpcStubBuffer* This,
7468    IRpcChannelBuffer* pRpcChannelBuffer,
7469    PRPC_MESSAGE pRpcMessage,
7470    DWORD* pdwStubPhase);
7471HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RemoteFindInterface_Proxy(
7472    ICaptureGraphBuilder2* This,
7473    const GUID *pCategory,
7474    const GUID *pType,
7475    IBaseFilter *pf,
7476    REFIID riid,
7477    IUnknown **ppint);
7478void __RPC_STUB ICaptureGraphBuilder2_RemoteFindInterface_Stub(
7479    IRpcStubBuffer* This,
7480    IRpcChannelBuffer* pRpcChannelBuffer,
7481    PRPC_MESSAGE pRpcMessage,
7482    DWORD* pdwStubPhase);
7483HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RenderStream_Proxy(
7484    ICaptureGraphBuilder2* This,
7485    const GUID *pCategory,
7486    const GUID *pType,
7487    IUnknown *pSource,
7488    IBaseFilter *pfCompressor,
7489    IBaseFilter *pfRenderer);
7490void __RPC_STUB ICaptureGraphBuilder2_RenderStream_Stub(
7491    IRpcStubBuffer* This,
7492    IRpcChannelBuffer* pRpcChannelBuffer,
7493    PRPC_MESSAGE pRpcMessage,
7494    DWORD* pdwStubPhase);
7495HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_ControlStream_Proxy(
7496    ICaptureGraphBuilder2* This,
7497    const GUID *pCategory,
7498    const GUID *pType,
7499    IBaseFilter *pFilter,
7500    REFERENCE_TIME *pstart,
7501    REFERENCE_TIME *pstop,
7502    WORD wStartCookie,
7503    WORD wStopCookie);
7504void __RPC_STUB ICaptureGraphBuilder2_ControlStream_Stub(
7505    IRpcStubBuffer* This,
7506    IRpcChannelBuffer* pRpcChannelBuffer,
7507    PRPC_MESSAGE pRpcMessage,
7508    DWORD* pdwStubPhase);
7509HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_AllocCapFile_Proxy(
7510    ICaptureGraphBuilder2* This,
7511    LPCOLESTR lpstr,
7512    DWORDLONG dwlSize);
7513void __RPC_STUB ICaptureGraphBuilder2_AllocCapFile_Stub(
7514    IRpcStubBuffer* This,
7515    IRpcChannelBuffer* pRpcChannelBuffer,
7516    PRPC_MESSAGE pRpcMessage,
7517    DWORD* pdwStubPhase);
7518HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_CopyCaptureFile_Proxy(
7519    ICaptureGraphBuilder2* This,
7520    LPOLESTR lpwstrOld,
7521    LPOLESTR lpwstrNew,
7522    int fAllowEscAbort,
7523    IAMCopyCaptureFileProgress *pCallback);
7524void __RPC_STUB ICaptureGraphBuilder2_CopyCaptureFile_Stub(
7525    IRpcStubBuffer* This,
7526    IRpcChannelBuffer* pRpcChannelBuffer,
7527    PRPC_MESSAGE pRpcMessage,
7528    DWORD* pdwStubPhase);
7529HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_FindPin_Proxy(
7530    ICaptureGraphBuilder2* This,
7531    IUnknown *pSource,
7532    PIN_DIRECTION pindir,
7533    const GUID *pCategory,
7534    const GUID *pType,
7535    WINBOOL fUnconnected,
7536    int num,
7537    IPin **ppPin);
7538void __RPC_STUB ICaptureGraphBuilder2_FindPin_Stub(
7539    IRpcStubBuffer* This,
7540    IRpcChannelBuffer* pRpcChannelBuffer,
7541    PRPC_MESSAGE pRpcMessage,
7542    DWORD* pdwStubPhase);
7543HRESULT CALLBACK ICaptureGraphBuilder2_FindInterface_Proxy(
7544    ICaptureGraphBuilder2* This,
7545    const GUID *pCategory,
7546    const GUID *pType,
7547    IBaseFilter *pf,
7548    REFIID riid,
7549    void **ppint);
7550HRESULT __RPC_STUB ICaptureGraphBuilder2_FindInterface_Stub(
7551    ICaptureGraphBuilder2* This,
7552    const GUID *pCategory,
7553    const GUID *pType,
7554    IBaseFilter *pf,
7555    REFIID riid,
7556    IUnknown **ppint);
7557
7558#endif  /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */
7559
7560/*****************************************************************************
7561 * IConfigAviMux interface
7562 */
7563#ifndef __IConfigAviMux_INTERFACE_DEFINED__
7564#define __IConfigAviMux_INTERFACE_DEFINED__
7565
7566DEFINE_GUID(IID_IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
7567#if defined(__cplusplus) && !defined(CINTERFACE)
7568MIDL_INTERFACE("5acd6aa0-f482-11ce-8b67-00aa00a3f1a6")
7569IConfigAviMux : public IUnknown
7570{
7571    virtual HRESULT STDMETHODCALLTYPE SetMasterStream(
7572        LONG iStream) = 0;
7573
7574    virtual HRESULT STDMETHODCALLTYPE GetMasterStream(
7575        LONG *pStream) = 0;
7576
7577    virtual HRESULT STDMETHODCALLTYPE SetOutputCompatibilityIndex(
7578        WINBOOL fOldIndex) = 0;
7579
7580    virtual HRESULT STDMETHODCALLTYPE GetOutputCompatibilityIndex(
7581        WINBOOL *pfOldIndex) = 0;
7582
7583};
7584#ifdef __CRT_UUID_DECL
7585__CRT_UUID_DECL(IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6)
7586#endif
7587#else
7588typedef struct IConfigAviMuxVtbl {
7589    BEGIN_INTERFACE
7590
7591    /*** IUnknown methods ***/
7592    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7593        IConfigAviMux* This,
7594        REFIID riid,
7595        void **ppvObject);
7596
7597    ULONG (STDMETHODCALLTYPE *AddRef)(
7598        IConfigAviMux* This);
7599
7600    ULONG (STDMETHODCALLTYPE *Release)(
7601        IConfigAviMux* This);
7602
7603    /*** IConfigAviMux methods ***/
7604    HRESULT (STDMETHODCALLTYPE *SetMasterStream)(
7605        IConfigAviMux* This,
7606        LONG iStream);
7607
7608    HRESULT (STDMETHODCALLTYPE *GetMasterStream)(
7609        IConfigAviMux* This,
7610        LONG *pStream);
7611
7612    HRESULT (STDMETHODCALLTYPE *SetOutputCompatibilityIndex)(
7613        IConfigAviMux* This,
7614        WINBOOL fOldIndex);
7615
7616    HRESULT (STDMETHODCALLTYPE *GetOutputCompatibilityIndex)(
7617        IConfigAviMux* This,
7618        WINBOOL *pfOldIndex);
7619
7620    END_INTERFACE
7621} IConfigAviMuxVtbl;
7622interface IConfigAviMux {
7623    CONST_VTBL IConfigAviMuxVtbl* lpVtbl;
7624};
7625
7626#ifdef COBJMACROS
7627#ifndef WIDL_C_INLINE_WRAPPERS
7628/*** IUnknown methods ***/
7629#define IConfigAviMux_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7630#define IConfigAviMux_AddRef(This) (This)->lpVtbl->AddRef(This)
7631#define IConfigAviMux_Release(This) (This)->lpVtbl->Release(This)
7632/*** IConfigAviMux methods ***/
7633#define IConfigAviMux_SetMasterStream(This,iStream) (This)->lpVtbl->SetMasterStream(This,iStream)
7634#define IConfigAviMux_GetMasterStream(This,pStream) (This)->lpVtbl->GetMasterStream(This,pStream)
7635#define IConfigAviMux_SetOutputCompatibilityIndex(This,fOldIndex) (This)->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex)
7636#define IConfigAviMux_GetOutputCompatibilityIndex(This,pfOldIndex) (This)->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex)
7637#else
7638/*** IUnknown methods ***/
7639static FORCEINLINE HRESULT IConfigAviMux_QueryInterface(IConfigAviMux* This,REFIID riid,void **ppvObject) {
7640    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7641}
7642static FORCEINLINE ULONG IConfigAviMux_AddRef(IConfigAviMux* This) {
7643    return This->lpVtbl->AddRef(This);
7644}
7645static FORCEINLINE ULONG IConfigAviMux_Release(IConfigAviMux* This) {
7646    return This->lpVtbl->Release(This);
7647}
7648/*** IConfigAviMux methods ***/
7649static FORCEINLINE HRESULT IConfigAviMux_SetMasterStream(IConfigAviMux* This,LONG iStream) {
7650    return This->lpVtbl->SetMasterStream(This,iStream);
7651}
7652static FORCEINLINE HRESULT IConfigAviMux_GetMasterStream(IConfigAviMux* This,LONG *pStream) {
7653    return This->lpVtbl->GetMasterStream(This,pStream);
7654}
7655static FORCEINLINE HRESULT IConfigAviMux_SetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL fOldIndex) {
7656    return This->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex);
7657}
7658static FORCEINLINE HRESULT IConfigAviMux_GetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL *pfOldIndex) {
7659    return This->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex);
7660}
7661#endif
7662#endif
7663
7664#endif
7665
7666HRESULT STDMETHODCALLTYPE IConfigAviMux_SetMasterStream_Proxy(
7667    IConfigAviMux* This,
7668    LONG iStream);
7669void __RPC_STUB IConfigAviMux_SetMasterStream_Stub(
7670    IRpcStubBuffer* This,
7671    IRpcChannelBuffer* pRpcChannelBuffer,
7672    PRPC_MESSAGE pRpcMessage,
7673    DWORD* pdwStubPhase);
7674HRESULT STDMETHODCALLTYPE IConfigAviMux_GetMasterStream_Proxy(
7675    IConfigAviMux* This,
7676    LONG *pStream);
7677void __RPC_STUB IConfigAviMux_GetMasterStream_Stub(
7678    IRpcStubBuffer* This,
7679    IRpcChannelBuffer* pRpcChannelBuffer,
7680    PRPC_MESSAGE pRpcMessage,
7681    DWORD* pdwStubPhase);
7682HRESULT STDMETHODCALLTYPE IConfigAviMux_SetOutputCompatibilityIndex_Proxy(
7683    IConfigAviMux* This,
7684    WINBOOL fOldIndex);
7685void __RPC_STUB IConfigAviMux_SetOutputCompatibilityIndex_Stub(
7686    IRpcStubBuffer* This,
7687    IRpcChannelBuffer* pRpcChannelBuffer,
7688    PRPC_MESSAGE pRpcMessage,
7689    DWORD* pdwStubPhase);
7690HRESULT STDMETHODCALLTYPE IConfigAviMux_GetOutputCompatibilityIndex_Proxy(
7691    IConfigAviMux* This,
7692    WINBOOL *pfOldIndex);
7693void __RPC_STUB IConfigAviMux_GetOutputCompatibilityIndex_Stub(
7694    IRpcStubBuffer* This,
7695    IRpcChannelBuffer* pRpcChannelBuffer,
7696    PRPC_MESSAGE pRpcMessage,
7697    DWORD* pdwStubPhase);
7698
7699#endif  /* __IConfigAviMux_INTERFACE_DEFINED__ */
7700
7701/*****************************************************************************
7702 * IConfigInterleaving interface
7703 */
7704#ifndef __IConfigInterleaving_INTERFACE_DEFINED__
7705#define __IConfigInterleaving_INTERFACE_DEFINED__
7706
7707typedef enum InterleavingMode {
7708    INTERLEAVE_NONE = 0,
7709    INTERLEAVE_CAPTURE = 1,
7710    INTERLEAVE_FULL = 2,
7711    INTERLEAVE_NONE_BUFFERED = 3
7712} InterleavingMode;
7713DEFINE_GUID(IID_IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86);
7714#if defined(__cplusplus) && !defined(CINTERFACE)
7715MIDL_INTERFACE("bee3d220-157b-11d0-bd23-00a0c911ce86")
7716IConfigInterleaving : public IUnknown
7717{
7718    virtual HRESULT STDMETHODCALLTYPE put_Mode(
7719        InterleavingMode mode) = 0;
7720
7721    virtual HRESULT STDMETHODCALLTYPE get_Mode(
7722        InterleavingMode *pMode) = 0;
7723
7724    virtual HRESULT STDMETHODCALLTYPE put_Interleaving(
7725        const REFERENCE_TIME *prtInterleave,
7726        const REFERENCE_TIME *prtPreroll) = 0;
7727
7728    virtual HRESULT STDMETHODCALLTYPE get_Interleaving(
7729        REFERENCE_TIME *prtInterleave,
7730        REFERENCE_TIME *prtPreroll) = 0;
7731
7732};
7733#ifdef __CRT_UUID_DECL
7734__CRT_UUID_DECL(IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86)
7735#endif
7736#else
7737typedef struct IConfigInterleavingVtbl {
7738    BEGIN_INTERFACE
7739
7740    /*** IUnknown methods ***/
7741    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7742        IConfigInterleaving* This,
7743        REFIID riid,
7744        void **ppvObject);
7745
7746    ULONG (STDMETHODCALLTYPE *AddRef)(
7747        IConfigInterleaving* This);
7748
7749    ULONG (STDMETHODCALLTYPE *Release)(
7750        IConfigInterleaving* This);
7751
7752    /*** IConfigInterleaving methods ***/
7753    HRESULT (STDMETHODCALLTYPE *put_Mode)(
7754        IConfigInterleaving* This,
7755        InterleavingMode mode);
7756
7757    HRESULT (STDMETHODCALLTYPE *get_Mode)(
7758        IConfigInterleaving* This,
7759        InterleavingMode *pMode);
7760
7761    HRESULT (STDMETHODCALLTYPE *put_Interleaving)(
7762        IConfigInterleaving* This,
7763        const REFERENCE_TIME *prtInterleave,
7764        const REFERENCE_TIME *prtPreroll);
7765
7766    HRESULT (STDMETHODCALLTYPE *get_Interleaving)(
7767        IConfigInterleaving* This,
7768        REFERENCE_TIME *prtInterleave,
7769        REFERENCE_TIME *prtPreroll);
7770
7771    END_INTERFACE
7772} IConfigInterleavingVtbl;
7773interface IConfigInterleaving {
7774    CONST_VTBL IConfigInterleavingVtbl* lpVtbl;
7775};
7776
7777#ifdef COBJMACROS
7778#ifndef WIDL_C_INLINE_WRAPPERS
7779/*** IUnknown methods ***/
7780#define IConfigInterleaving_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7781#define IConfigInterleaving_AddRef(This) (This)->lpVtbl->AddRef(This)
7782#define IConfigInterleaving_Release(This) (This)->lpVtbl->Release(This)
7783/*** IConfigInterleaving methods ***/
7784#define IConfigInterleaving_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
7785#define IConfigInterleaving_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
7786#define IConfigInterleaving_put_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll)
7787#define IConfigInterleaving_get_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll)
7788#else
7789/*** IUnknown methods ***/
7790static FORCEINLINE HRESULT IConfigInterleaving_QueryInterface(IConfigInterleaving* This,REFIID riid,void **ppvObject) {
7791    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7792}
7793static FORCEINLINE ULONG IConfigInterleaving_AddRef(IConfigInterleaving* This) {
7794    return This->lpVtbl->AddRef(This);
7795}
7796static FORCEINLINE ULONG IConfigInterleaving_Release(IConfigInterleaving* This) {
7797    return This->lpVtbl->Release(This);
7798}
7799/*** IConfigInterleaving methods ***/
7800static FORCEINLINE HRESULT IConfigInterleaving_put_Mode(IConfigInterleaving* This,InterleavingMode mode) {
7801    return This->lpVtbl->put_Mode(This,mode);
7802}
7803static FORCEINLINE HRESULT IConfigInterleaving_get_Mode(IConfigInterleaving* This,InterleavingMode *pMode) {
7804    return This->lpVtbl->get_Mode(This,pMode);
7805}
7806static FORCEINLINE HRESULT IConfigInterleaving_put_Interleaving(IConfigInterleaving* This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll) {
7807    return This->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll);
7808}
7809static FORCEINLINE HRESULT IConfigInterleaving_get_Interleaving(IConfigInterleaving* This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll) {
7810    return This->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll);
7811}
7812#endif
7813#endif
7814
7815#endif
7816
7817HRESULT STDMETHODCALLTYPE IConfigInterleaving_put_Mode_Proxy(
7818    IConfigInterleaving* This,
7819    InterleavingMode mode);
7820void __RPC_STUB IConfigInterleaving_put_Mode_Stub(
7821    IRpcStubBuffer* This,
7822    IRpcChannelBuffer* pRpcChannelBuffer,
7823    PRPC_MESSAGE pRpcMessage,
7824    DWORD* pdwStubPhase);
7825HRESULT STDMETHODCALLTYPE IConfigInterleaving_get_Mode_Proxy(
7826    IConfigInterleaving* This,
7827    InterleavingMode *pMode);
7828void __RPC_STUB IConfigInterleaving_get_Mode_Stub(
7829    IRpcStubBuffer* This,
7830    IRpcChannelBuffer* pRpcChannelBuffer,
7831    PRPC_MESSAGE pRpcMessage,
7832    DWORD* pdwStubPhase);
7833HRESULT STDMETHODCALLTYPE IConfigInterleaving_put_Interleaving_Proxy(
7834    IConfigInterleaving* This,
7835    const REFERENCE_TIME *prtInterleave,
7836    const REFERENCE_TIME *prtPreroll);
7837void __RPC_STUB IConfigInterleaving_put_Interleaving_Stub(
7838    IRpcStubBuffer* This,
7839    IRpcChannelBuffer* pRpcChannelBuffer,
7840    PRPC_MESSAGE pRpcMessage,
7841    DWORD* pdwStubPhase);
7842HRESULT STDMETHODCALLTYPE IConfigInterleaving_get_Interleaving_Proxy(
7843    IConfigInterleaving* This,
7844    REFERENCE_TIME *prtInterleave,
7845    REFERENCE_TIME *prtPreroll);
7846void __RPC_STUB IConfigInterleaving_get_Interleaving_Stub(
7847    IRpcStubBuffer* This,
7848    IRpcChannelBuffer* pRpcChannelBuffer,
7849    PRPC_MESSAGE pRpcMessage,
7850    DWORD* pdwStubPhase);
7851
7852#endif  /* __IConfigInterleaving_INTERFACE_DEFINED__ */
7853
7854/*****************************************************************************
7855 * IAMClockSlave interface
7856 */
7857#ifndef __IAMClockSlave_INTERFACE_DEFINED__
7858#define __IAMClockSlave_INTERFACE_DEFINED__
7859
7860DEFINE_GUID(IID_IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe);
7861#if defined(__cplusplus) && !defined(CINTERFACE)
7862MIDL_INTERFACE("9fd52741-176d-4b36-8f51-ca8f933223be")
7863IAMClockSlave : public IUnknown
7864{
7865    virtual HRESULT STDMETHODCALLTYPE SetErrorTolerance(
7866        DWORD dwTolerance) = 0;
7867
7868    virtual HRESULT STDMETHODCALLTYPE GetErrorTolerance(
7869        DWORD *pdwTolerance) = 0;
7870
7871};
7872#ifdef __CRT_UUID_DECL
7873__CRT_UUID_DECL(IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe)
7874#endif
7875#else
7876typedef struct IAMClockSlaveVtbl {
7877    BEGIN_INTERFACE
7878
7879    /*** IUnknown methods ***/
7880    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7881        IAMClockSlave* This,
7882        REFIID riid,
7883        void **ppvObject);
7884
7885    ULONG (STDMETHODCALLTYPE *AddRef)(
7886        IAMClockSlave* This);
7887
7888    ULONG (STDMETHODCALLTYPE *Release)(
7889        IAMClockSlave* This);
7890
7891    /*** IAMClockSlave methods ***/
7892    HRESULT (STDMETHODCALLTYPE *SetErrorTolerance)(
7893        IAMClockSlave* This,
7894        DWORD dwTolerance);
7895
7896    HRESULT (STDMETHODCALLTYPE *GetErrorTolerance)(
7897        IAMClockSlave* This,
7898        DWORD *pdwTolerance);
7899
7900    END_INTERFACE
7901} IAMClockSlaveVtbl;
7902interface IAMClockSlave {
7903    CONST_VTBL IAMClockSlaveVtbl* lpVtbl;
7904};
7905
7906#ifdef COBJMACROS
7907#ifndef WIDL_C_INLINE_WRAPPERS
7908/*** IUnknown methods ***/
7909#define IAMClockSlave_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7910#define IAMClockSlave_AddRef(This) (This)->lpVtbl->AddRef(This)
7911#define IAMClockSlave_Release(This) (This)->lpVtbl->Release(This)
7912/*** IAMClockSlave methods ***/
7913#define IAMClockSlave_SetErrorTolerance(This,dwTolerance) (This)->lpVtbl->SetErrorTolerance(This,dwTolerance)
7914#define IAMClockSlave_GetErrorTolerance(This,pdwTolerance) (This)->lpVtbl->GetErrorTolerance(This,pdwTolerance)
7915#else
7916/*** IUnknown methods ***/
7917static FORCEINLINE HRESULT IAMClockSlave_QueryInterface(IAMClockSlave* This,REFIID riid,void **ppvObject) {
7918    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7919}
7920static FORCEINLINE ULONG IAMClockSlave_AddRef(IAMClockSlave* This) {
7921    return This->lpVtbl->AddRef(This);
7922}
7923static FORCEINLINE ULONG IAMClockSlave_Release(IAMClockSlave* This) {
7924    return This->lpVtbl->Release(This);
7925}
7926/*** IAMClockSlave methods ***/
7927static FORCEINLINE HRESULT IAMClockSlave_SetErrorTolerance(IAMClockSlave* This,DWORD dwTolerance) {
7928    return This->lpVtbl->SetErrorTolerance(This,dwTolerance);
7929}
7930static FORCEINLINE HRESULT IAMClockSlave_GetErrorTolerance(IAMClockSlave* This,DWORD *pdwTolerance) {
7931    return This->lpVtbl->GetErrorTolerance(This,pdwTolerance);
7932}
7933#endif
7934#endif
7935
7936#endif
7937
7938HRESULT STDMETHODCALLTYPE IAMClockSlave_SetErrorTolerance_Proxy(
7939    IAMClockSlave* This,
7940    DWORD dwTolerance);
7941void __RPC_STUB IAMClockSlave_SetErrorTolerance_Stub(
7942    IRpcStubBuffer* This,
7943    IRpcChannelBuffer* pRpcChannelBuffer,
7944    PRPC_MESSAGE pRpcMessage,
7945    DWORD* pdwStubPhase);
7946HRESULT STDMETHODCALLTYPE IAMClockSlave_GetErrorTolerance_Proxy(
7947    IAMClockSlave* This,
7948    DWORD *pdwTolerance);
7949void __RPC_STUB IAMClockSlave_GetErrorTolerance_Stub(
7950    IRpcStubBuffer* This,
7951    IRpcChannelBuffer* pRpcChannelBuffer,
7952    PRPC_MESSAGE pRpcMessage,
7953    DWORD* pdwStubPhase);
7954
7955#endif  /* __IAMClockSlave_INTERFACE_DEFINED__ */
7956
7957typedef struct _AMCOPPSignature {
7958    BYTE Signature[256];
7959} AMCOPPSignature;
7960typedef struct _AMCOPPCommand {
7961    GUID macKDI;
7962    GUID guidCommandID;
7963    DWORD dwSequence;
7964    DWORD bSizeData;
7965    BYTE CommandData[4056];
7966} AMCOPPCommand;
7967typedef struct _AMCOPPCommand *LPAMCOPPCommand;
7968typedef struct _AMCOPPStatusInput {
7969    GUID rApp;
7970    GUID guidStatusRequestID;
7971    DWORD dwSequence;
7972    DWORD cbSizeData;
7973    BYTE StatusData[4056];
7974} AMCOPPStatusInput;
7975typedef struct _AMCOPPStatusInput *LPAMCOPPStatusInput;
7976typedef struct _AMCOPPStatusOutput {
7977    GUID macKDI;
7978    DWORD cbSizeData;
7979    BYTE COPPStatus[4076];
7980} AMCOPPStatusOutput;
7981typedef struct _AMCOPPStatusOutput *LPAMCOPPStatusOutput;
7982/*****************************************************************************
7983 * IAMCertifiedOutputProtection interface
7984 */
7985#ifndef __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
7986#define __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
7987
7988DEFINE_GUID(IID_IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15);
7989#if defined(__cplusplus) && !defined(CINTERFACE)
7990MIDL_INTERFACE("6feded3e-0ff1-4901-a2f1-43f7012c8515")
7991IAMCertifiedOutputProtection : public IUnknown
7992{
7993    virtual HRESULT STDMETHODCALLTYPE KeyExchange(
7994        GUID *pRandom,
7995        BYTE **VarLenCertGH,
7996        DWORD *pdwLengthCertGH) = 0;
7997
7998    virtual HRESULT STDMETHODCALLTYPE SessionSequenceStart(
7999        AMCOPPSignature *pSig) = 0;
8000
8001    virtual HRESULT STDMETHODCALLTYPE ProtectionCommand(
8002        const AMCOPPCommand *cmd) = 0;
8003
8004    virtual HRESULT STDMETHODCALLTYPE ProtectionStatus(
8005        const AMCOPPStatusInput *pStatusInput,
8006        AMCOPPStatusOutput *pStatusOutput) = 0;
8007
8008};
8009#ifdef __CRT_UUID_DECL
8010__CRT_UUID_DECL(IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15)
8011#endif
8012#else
8013typedef struct IAMCertifiedOutputProtectionVtbl {
8014    BEGIN_INTERFACE
8015
8016    /*** IUnknown methods ***/
8017    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8018        IAMCertifiedOutputProtection* This,
8019        REFIID riid,
8020        void **ppvObject);
8021
8022    ULONG (STDMETHODCALLTYPE *AddRef)(
8023        IAMCertifiedOutputProtection* This);
8024
8025    ULONG (STDMETHODCALLTYPE *Release)(
8026        IAMCertifiedOutputProtection* This);
8027
8028    /*** IAMCertifiedOutputProtection methods ***/
8029    HRESULT (STDMETHODCALLTYPE *KeyExchange)(
8030        IAMCertifiedOutputProtection* This,
8031        GUID *pRandom,
8032        BYTE **VarLenCertGH,
8033        DWORD *pdwLengthCertGH);
8034
8035    HRESULT (STDMETHODCALLTYPE *SessionSequenceStart)(
8036        IAMCertifiedOutputProtection* This,
8037        AMCOPPSignature *pSig);
8038
8039    HRESULT (STDMETHODCALLTYPE *ProtectionCommand)(
8040        IAMCertifiedOutputProtection* This,
8041        const AMCOPPCommand *cmd);
8042
8043    HRESULT (STDMETHODCALLTYPE *ProtectionStatus)(
8044        IAMCertifiedOutputProtection* This,
8045        const AMCOPPStatusInput *pStatusInput,
8046        AMCOPPStatusOutput *pStatusOutput);
8047
8048    END_INTERFACE
8049} IAMCertifiedOutputProtectionVtbl;
8050interface IAMCertifiedOutputProtection {
8051    CONST_VTBL IAMCertifiedOutputProtectionVtbl* lpVtbl;
8052};
8053
8054#ifdef COBJMACROS
8055#ifndef WIDL_C_INLINE_WRAPPERS
8056/*** IUnknown methods ***/
8057#define IAMCertifiedOutputProtection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8058#define IAMCertifiedOutputProtection_AddRef(This) (This)->lpVtbl->AddRef(This)
8059#define IAMCertifiedOutputProtection_Release(This) (This)->lpVtbl->Release(This)
8060/*** IAMCertifiedOutputProtection methods ***/
8061#define IAMCertifiedOutputProtection_KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH) (This)->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH)
8062#define IAMCertifiedOutputProtection_SessionSequenceStart(This,pSig) (This)->lpVtbl->SessionSequenceStart(This,pSig)
8063#define IAMCertifiedOutputProtection_ProtectionCommand(This,cmd) (This)->lpVtbl->ProtectionCommand(This,cmd)
8064#define IAMCertifiedOutputProtection_ProtectionStatus(This,pStatusInput,pStatusOutput) (This)->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput)
8065#else
8066/*** IUnknown methods ***/
8067static FORCEINLINE HRESULT IAMCertifiedOutputProtection_QueryInterface(IAMCertifiedOutputProtection* This,REFIID riid,void **ppvObject) {
8068    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8069}
8070static FORCEINLINE ULONG IAMCertifiedOutputProtection_AddRef(IAMCertifiedOutputProtection* This) {
8071    return This->lpVtbl->AddRef(This);
8072}
8073static FORCEINLINE ULONG IAMCertifiedOutputProtection_Release(IAMCertifiedOutputProtection* This) {
8074    return This->lpVtbl->Release(This);
8075}
8076/*** IAMCertifiedOutputProtection methods ***/
8077static FORCEINLINE HRESULT IAMCertifiedOutputProtection_KeyExchange(IAMCertifiedOutputProtection* This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH) {
8078    return This->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH);
8079}
8080static FORCEINLINE HRESULT IAMCertifiedOutputProtection_SessionSequenceStart(IAMCertifiedOutputProtection* This,AMCOPPSignature *pSig) {
8081    return This->lpVtbl->SessionSequenceStart(This,pSig);
8082}
8083static FORCEINLINE HRESULT IAMCertifiedOutputProtection_ProtectionCommand(IAMCertifiedOutputProtection* This,const AMCOPPCommand *cmd) {
8084    return This->lpVtbl->ProtectionCommand(This,cmd);
8085}
8086static FORCEINLINE HRESULT IAMCertifiedOutputProtection_ProtectionStatus(IAMCertifiedOutputProtection* This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput) {
8087    return This->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput);
8088}
8089#endif
8090#endif
8091
8092#endif
8093
8094HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_KeyExchange_Proxy(
8095    IAMCertifiedOutputProtection* This,
8096    GUID *pRandom,
8097    BYTE **VarLenCertGH,
8098    DWORD *pdwLengthCertGH);
8099void __RPC_STUB IAMCertifiedOutputProtection_KeyExchange_Stub(
8100    IRpcStubBuffer* This,
8101    IRpcChannelBuffer* pRpcChannelBuffer,
8102    PRPC_MESSAGE pRpcMessage,
8103    DWORD* pdwStubPhase);
8104HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_SessionSequenceStart_Proxy(
8105    IAMCertifiedOutputProtection* This,
8106    AMCOPPSignature *pSig);
8107void __RPC_STUB IAMCertifiedOutputProtection_SessionSequenceStart_Stub(
8108    IRpcStubBuffer* This,
8109    IRpcChannelBuffer* pRpcChannelBuffer,
8110    PRPC_MESSAGE pRpcMessage,
8111    DWORD* pdwStubPhase);
8112HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_ProtectionCommand_Proxy(
8113    IAMCertifiedOutputProtection* This,
8114    const AMCOPPCommand *cmd);
8115void __RPC_STUB IAMCertifiedOutputProtection_ProtectionCommand_Stub(
8116    IRpcStubBuffer* This,
8117    IRpcChannelBuffer* pRpcChannelBuffer,
8118    PRPC_MESSAGE pRpcMessage,
8119    DWORD* pdwStubPhase);
8120HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_ProtectionStatus_Proxy(
8121    IAMCertifiedOutputProtection* This,
8122    const AMCOPPStatusInput *pStatusInput,
8123    AMCOPPStatusOutput *pStatusOutput);
8124void __RPC_STUB IAMCertifiedOutputProtection_ProtectionStatus_Stub(
8125    IRpcStubBuffer* This,
8126    IRpcChannelBuffer* pRpcChannelBuffer,
8127    PRPC_MESSAGE pRpcMessage,
8128    DWORD* pdwStubPhase);
8129
8130#endif  /* __IAMCertifiedOutputProtection_INTERFACE_DEFINED__ */
8131
8132enum _AM_RENSDEREXFLAGS {
8133    AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1
8134};
8135
8136/*****************************************************************************
8137 * IFilterGraph2 interface
8138 */
8139#ifndef __IFilterGraph2_INTERFACE_DEFINED__
8140#define __IFilterGraph2_INTERFACE_DEFINED__
8141
8142DEFINE_GUID(IID_IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
8143#if defined(__cplusplus) && !defined(CINTERFACE)
8144MIDL_INTERFACE("36b73882-c2c8-11cf-8b46-00805f6cef60")
8145IFilterGraph2 : public IGraphBuilder
8146{
8147    virtual HRESULT STDMETHODCALLTYPE AddSourceFilterForMoniker(
8148        IMoniker *pMoniker,
8149        IBindCtx *pCtx,
8150        LPCWSTR lpcwstrFilterName,
8151        IBaseFilter **ppFilter) = 0;
8152
8153    virtual HRESULT STDMETHODCALLTYPE ReconnectEx(
8154        IPin *ppin,
8155        const AM_MEDIA_TYPE *pmt) = 0;
8156
8157    virtual HRESULT STDMETHODCALLTYPE RenderEx(
8158        IPin *pPinOut,
8159        DWORD dwFlags,
8160        DWORD *pvContext) = 0;
8161
8162};
8163#ifdef __CRT_UUID_DECL
8164__CRT_UUID_DECL(IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
8165#endif
8166#else
8167typedef struct IFilterGraph2Vtbl {
8168    BEGIN_INTERFACE
8169
8170    /*** IUnknown methods ***/
8171    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8172        IFilterGraph2* This,
8173        REFIID riid,
8174        void **ppvObject);
8175
8176    ULONG (STDMETHODCALLTYPE *AddRef)(
8177        IFilterGraph2* This);
8178
8179    ULONG (STDMETHODCALLTYPE *Release)(
8180        IFilterGraph2* This);
8181
8182    /*** IFilterGraph methods ***/
8183    HRESULT (STDMETHODCALLTYPE *AddFilter)(
8184        IFilterGraph2* This,
8185        IBaseFilter *pFilter,
8186        LPCWSTR pName);
8187
8188    HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
8189        IFilterGraph2* This,
8190        IBaseFilter *pFilter);
8191
8192    HRESULT (STDMETHODCALLTYPE *EnumFilters)(
8193        IFilterGraph2* This,
8194        IEnumFilters **ppEnum);
8195
8196    HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
8197        IFilterGraph2* This,
8198        LPCWSTR pName,
8199        IBaseFilter **ppFilter);
8200
8201    HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
8202        IFilterGraph2* This,
8203        IPin *ppinOut,
8204        IPin *ppinIn,
8205        const AM_MEDIA_TYPE *pmt);
8206
8207    HRESULT (STDMETHODCALLTYPE *Reconnect)(
8208        IFilterGraph2* This,
8209        IPin *ppin);
8210
8211    HRESULT (STDMETHODCALLTYPE *Disconnect)(
8212        IFilterGraph2* This,
8213        IPin *ppin);
8214
8215    HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
8216        IFilterGraph2* This);
8217
8218    /*** IGraphBuilder methods ***/
8219    HRESULT (STDMETHODCALLTYPE *Connect)(
8220        IFilterGraph2* This,
8221        IPin *ppinOut,
8222        IPin *ppinIn);
8223
8224    HRESULT (STDMETHODCALLTYPE *Render)(
8225        IFilterGraph2* This,
8226        IPin *ppinOut);
8227
8228    HRESULT (STDMETHODCALLTYPE *RenderFile)(
8229        IFilterGraph2* This,
8230        LPCWSTR lpcwstrFile,
8231        LPCWSTR lpcwstrPlayList);
8232
8233    HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
8234        IFilterGraph2* This,
8235        LPCWSTR lpcwstrFileName,
8236        LPCWSTR lpcwstrFilterName,
8237        IBaseFilter **ppFilter);
8238
8239    HRESULT (STDMETHODCALLTYPE *SetLogFile)(
8240        IFilterGraph2* This,
8241        DWORD_PTR hFile);
8242
8243    HRESULT (STDMETHODCALLTYPE *Abort)(
8244        IFilterGraph2* This);
8245
8246    HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
8247        IFilterGraph2* This);
8248
8249    /*** IFilterGraph2 methods ***/
8250    HRESULT (STDMETHODCALLTYPE *AddSourceFilterForMoniker)(
8251        IFilterGraph2* This,
8252        IMoniker *pMoniker,
8253        IBindCtx *pCtx,
8254        LPCWSTR lpcwstrFilterName,
8255        IBaseFilter **ppFilter);
8256
8257    HRESULT (STDMETHODCALLTYPE *ReconnectEx)(
8258        IFilterGraph2* This,
8259        IPin *ppin,
8260        const AM_MEDIA_TYPE *pmt);
8261
8262    HRESULT (STDMETHODCALLTYPE *RenderEx)(
8263        IFilterGraph2* This,
8264        IPin *pPinOut,
8265        DWORD dwFlags,
8266        DWORD *pvContext);
8267
8268    END_INTERFACE
8269} IFilterGraph2Vtbl;
8270interface IFilterGraph2 {
8271    CONST_VTBL IFilterGraph2Vtbl* lpVtbl;
8272};
8273
8274#ifdef COBJMACROS
8275#ifndef WIDL_C_INLINE_WRAPPERS
8276/*** IUnknown methods ***/
8277#define IFilterGraph2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8278#define IFilterGraph2_AddRef(This) (This)->lpVtbl->AddRef(This)
8279#define IFilterGraph2_Release(This) (This)->lpVtbl->Release(This)
8280/*** IFilterGraph methods ***/
8281#define IFilterGraph2_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
8282#define IFilterGraph2_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
8283#define IFilterGraph2_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
8284#define IFilterGraph2_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
8285#define IFilterGraph2_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
8286#define IFilterGraph2_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
8287#define IFilterGraph2_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
8288#define IFilterGraph2_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
8289/*** IGraphBuilder methods ***/
8290#define IFilterGraph2_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
8291#define IFilterGraph2_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
8292#define IFilterGraph2_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
8293#define IFilterGraph2_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
8294#define IFilterGraph2_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
8295#define IFilterGraph2_Abort(This) (This)->lpVtbl->Abort(This)
8296#define IFilterGraph2_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
8297/*** IFilterGraph2 methods ***/
8298#define IFilterGraph2_AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter)
8299#define IFilterGraph2_ReconnectEx(This,ppin,pmt) (This)->lpVtbl->ReconnectEx(This,ppin,pmt)
8300#define IFilterGraph2_RenderEx(This,pPinOut,dwFlags,pvContext) (This)->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext)
8301#else
8302/*** IUnknown methods ***/
8303static FORCEINLINE HRESULT IFilterGraph2_QueryInterface(IFilterGraph2* This,REFIID riid,void **ppvObject) {
8304    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8305}
8306static FORCEINLINE ULONG IFilterGraph2_AddRef(IFilterGraph2* This) {
8307    return This->lpVtbl->AddRef(This);
8308}
8309static FORCEINLINE ULONG IFilterGraph2_Release(IFilterGraph2* This) {
8310    return This->lpVtbl->Release(This);
8311}
8312/*** IFilterGraph methods ***/
8313static FORCEINLINE HRESULT IFilterGraph2_AddFilter(IFilterGraph2* This,IBaseFilter *pFilter,LPCWSTR pName) {
8314    return This->lpVtbl->AddFilter(This,pFilter,pName);
8315}
8316static FORCEINLINE HRESULT IFilterGraph2_RemoveFilter(IFilterGraph2* This,IBaseFilter *pFilter) {
8317    return This->lpVtbl->RemoveFilter(This,pFilter);
8318}
8319static FORCEINLINE HRESULT IFilterGraph2_EnumFilters(IFilterGraph2* This,IEnumFilters **ppEnum) {
8320    return This->lpVtbl->EnumFilters(This,ppEnum);
8321}
8322static FORCEINLINE HRESULT IFilterGraph2_FindFilterByName(IFilterGraph2* This,LPCWSTR pName,IBaseFilter **ppFilter) {
8323    return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
8324}
8325static FORCEINLINE HRESULT IFilterGraph2_ConnectDirect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
8326    return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
8327}
8328static FORCEINLINE HRESULT IFilterGraph2_Reconnect(IFilterGraph2* This,IPin *ppin) {
8329    return This->lpVtbl->Reconnect(This,ppin);
8330}
8331static FORCEINLINE HRESULT IFilterGraph2_Disconnect(IFilterGraph2* This,IPin *ppin) {
8332    return This->lpVtbl->Disconnect(This,ppin);
8333}
8334static FORCEINLINE HRESULT IFilterGraph2_SetDefaultSyncSource(IFilterGraph2* This) {
8335    return This->lpVtbl->SetDefaultSyncSource(This);
8336}
8337/*** IGraphBuilder methods ***/
8338static FORCEINLINE HRESULT IFilterGraph2_Connect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn) {
8339    return This->lpVtbl->Connect(This,ppinOut,ppinIn);
8340}
8341static FORCEINLINE HRESULT IFilterGraph2_Render(IFilterGraph2* This,IPin *ppinOut) {
8342    return This->lpVtbl->Render(This,ppinOut);
8343}
8344static FORCEINLINE HRESULT IFilterGraph2_RenderFile(IFilterGraph2* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
8345    return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
8346}
8347static FORCEINLINE HRESULT IFilterGraph2_AddSourceFilter(IFilterGraph2* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
8348    return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
8349}
8350static FORCEINLINE HRESULT IFilterGraph2_SetLogFile(IFilterGraph2* This,DWORD_PTR hFile) {
8351    return This->lpVtbl->SetLogFile(This,hFile);
8352}
8353static FORCEINLINE HRESULT IFilterGraph2_Abort(IFilterGraph2* This) {
8354    return This->lpVtbl->Abort(This);
8355}
8356static FORCEINLINE HRESULT IFilterGraph2_ShouldOperationContinue(IFilterGraph2* This) {
8357    return This->lpVtbl->ShouldOperationContinue(This);
8358}
8359/*** IFilterGraph2 methods ***/
8360static FORCEINLINE HRESULT IFilterGraph2_AddSourceFilterForMoniker(IFilterGraph2* This,IMoniker *pMoniker,IBindCtx *pCtx,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
8361    return This->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter);
8362}
8363static FORCEINLINE HRESULT IFilterGraph2_ReconnectEx(IFilterGraph2* This,IPin *ppin,const AM_MEDIA_TYPE *pmt) {
8364    return This->lpVtbl->ReconnectEx(This,ppin,pmt);
8365}
8366static FORCEINLINE HRESULT IFilterGraph2_RenderEx(IFilterGraph2* This,IPin *pPinOut,DWORD dwFlags,DWORD *pvContext) {
8367    return This->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext);
8368}
8369#endif
8370#endif
8371
8372#endif
8373
8374HRESULT STDMETHODCALLTYPE IFilterGraph2_AddSourceFilterForMoniker_Proxy(
8375    IFilterGraph2* This,
8376    IMoniker *pMoniker,
8377    IBindCtx *pCtx,
8378    LPCWSTR lpcwstrFilterName,
8379    IBaseFilter **ppFilter);
8380void __RPC_STUB IFilterGraph2_AddSourceFilterForMoniker_Stub(
8381    IRpcStubBuffer* This,
8382    IRpcChannelBuffer* pRpcChannelBuffer,
8383    PRPC_MESSAGE pRpcMessage,
8384    DWORD* pdwStubPhase);
8385HRESULT STDMETHODCALLTYPE IFilterGraph2_ReconnectEx_Proxy(
8386    IFilterGraph2* This,
8387    IPin *ppin,
8388    const AM_MEDIA_TYPE *pmt);
8389void __RPC_STUB IFilterGraph2_ReconnectEx_Stub(
8390    IRpcStubBuffer* This,
8391    IRpcChannelBuffer* pRpcChannelBuffer,
8392    PRPC_MESSAGE pRpcMessage,
8393    DWORD* pdwStubPhase);
8394HRESULT STDMETHODCALLTYPE IFilterGraph2_RenderEx_Proxy(
8395    IFilterGraph2* This,
8396    IPin *pPinOut,
8397    DWORD dwFlags,
8398    DWORD *pvContext);
8399void __RPC_STUB IFilterGraph2_RenderEx_Stub(
8400    IRpcStubBuffer* This,
8401    IRpcChannelBuffer* pRpcChannelBuffer,
8402    PRPC_MESSAGE pRpcMessage,
8403    DWORD* pdwStubPhase);
8404
8405#endif  /* __IFilterGraph2_INTERFACE_DEFINED__ */
8406
8407/*****************************************************************************
8408 * IStreamBuilder interface
8409 */
8410#ifndef __IStreamBuilder_INTERFACE_DEFINED__
8411#define __IStreamBuilder_INTERFACE_DEFINED__
8412
8413DEFINE_GUID(IID_IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
8414#if defined(__cplusplus) && !defined(CINTERFACE)
8415MIDL_INTERFACE("56a868bf-0ad4-11ce-b03a-0020af0ba770")
8416IStreamBuilder : public IUnknown
8417{
8418    virtual HRESULT STDMETHODCALLTYPE Render(
8419        IPin *ppinOut,
8420        IGraphBuilder *pGraph) = 0;
8421
8422    virtual HRESULT STDMETHODCALLTYPE Backout(
8423        IPin *ppinOut,
8424        IGraphBuilder *pGraph) = 0;
8425
8426};
8427#ifdef __CRT_UUID_DECL
8428__CRT_UUID_DECL(IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
8429#endif
8430#else
8431typedef struct IStreamBuilderVtbl {
8432    BEGIN_INTERFACE
8433
8434    /*** IUnknown methods ***/
8435    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8436        IStreamBuilder* This,
8437        REFIID riid,
8438        void **ppvObject);
8439
8440    ULONG (STDMETHODCALLTYPE *AddRef)(
8441        IStreamBuilder* This);
8442
8443    ULONG (STDMETHODCALLTYPE *Release)(
8444        IStreamBuilder* This);
8445
8446    /*** IStreamBuilder methods ***/
8447    HRESULT (STDMETHODCALLTYPE *Render)(
8448        IStreamBuilder* This,
8449        IPin *ppinOut,
8450        IGraphBuilder *pGraph);
8451
8452    HRESULT (STDMETHODCALLTYPE *Backout)(
8453        IStreamBuilder* This,
8454        IPin *ppinOut,
8455        IGraphBuilder *pGraph);
8456
8457    END_INTERFACE
8458} IStreamBuilderVtbl;
8459interface IStreamBuilder {
8460    CONST_VTBL IStreamBuilderVtbl* lpVtbl;
8461};
8462
8463#ifdef COBJMACROS
8464#ifndef WIDL_C_INLINE_WRAPPERS
8465/*** IUnknown methods ***/
8466#define IStreamBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8467#define IStreamBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
8468#define IStreamBuilder_Release(This) (This)->lpVtbl->Release(This)
8469/*** IStreamBuilder methods ***/
8470#define IStreamBuilder_Render(This,ppinOut,pGraph) (This)->lpVtbl->Render(This,ppinOut,pGraph)
8471#define IStreamBuilder_Backout(This,ppinOut,pGraph) (This)->lpVtbl->Backout(This,ppinOut,pGraph)
8472#else
8473/*** IUnknown methods ***/
8474static FORCEINLINE HRESULT IStreamBuilder_QueryInterface(IStreamBuilder* This,REFIID riid,void **ppvObject) {
8475    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8476}
8477static FORCEINLINE ULONG IStreamBuilder_AddRef(IStreamBuilder* This) {
8478    return This->lpVtbl->AddRef(This);
8479}
8480static FORCEINLINE ULONG IStreamBuilder_Release(IStreamBuilder* This) {
8481    return This->lpVtbl->Release(This);
8482}
8483/*** IStreamBuilder methods ***/
8484static FORCEINLINE HRESULT IStreamBuilder_Render(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) {
8485    return This->lpVtbl->Render(This,ppinOut,pGraph);
8486}
8487static FORCEINLINE HRESULT IStreamBuilder_Backout(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) {
8488    return This->lpVtbl->Backout(This,ppinOut,pGraph);
8489}
8490#endif
8491#endif
8492
8493#endif
8494
8495HRESULT STDMETHODCALLTYPE IStreamBuilder_Render_Proxy(
8496    IStreamBuilder* This,
8497    IPin *ppinOut,
8498    IGraphBuilder *pGraph);
8499void __RPC_STUB IStreamBuilder_Render_Stub(
8500    IRpcStubBuffer* This,
8501    IRpcChannelBuffer* pRpcChannelBuffer,
8502    PRPC_MESSAGE pRpcMessage,
8503    DWORD* pdwStubPhase);
8504HRESULT STDMETHODCALLTYPE IStreamBuilder_Backout_Proxy(
8505    IStreamBuilder* This,
8506    IPin *ppinOut,
8507    IGraphBuilder *pGraph);
8508void __RPC_STUB IStreamBuilder_Backout_Stub(
8509    IRpcStubBuffer* This,
8510    IRpcChannelBuffer* pRpcChannelBuffer,
8511    PRPC_MESSAGE pRpcMessage,
8512    DWORD* pdwStubPhase);
8513
8514#endif  /* __IStreamBuilder_INTERFACE_DEFINED__ */
8515
8516/*****************************************************************************
8517 * IAMStreamConfig interface
8518 */
8519#ifndef __IAMStreamConfig_INTERFACE_DEFINED__
8520#define __IAMStreamConfig_INTERFACE_DEFINED__
8521
8522typedef struct _VIDEO_STREAM_CONFIG_CAPS {
8523    GUID guid;
8524    ULONG VideoStandard;
8525    SIZE InputSize;
8526    SIZE MinCroppingSize;
8527    SIZE MaxCroppingSize;
8528    int CropGranularityX;
8529    int CropGranularityY;
8530    int CropAlignX;
8531    int CropAlignY;
8532    SIZE MinOutputSize;
8533    SIZE MaxOutputSize;
8534    int OutputGranularityX;
8535    int OutputGranularityY;
8536    int StretchTapsX;
8537    int StretchTapsY;
8538    int ShrinkTapsX;
8539    int ShrinkTapsY;
8540    LONGLONG MinFrameInterval;
8541    LONGLONG MaxFrameInterval;
8542    LONG MinBitsPerSecond;
8543    LONG MaxBitsPerSecond;
8544} VIDEO_STREAM_CONFIG_CAPS;
8545typedef struct _AUDIO_STREAM_CONFIG_CAPS {
8546    GUID guid;
8547    ULONG MinimumChannels;
8548    ULONG MaximumChannels;
8549    ULONG ChannelsGranularity;
8550    ULONG MinimumBitsPerSample;
8551    ULONG MaximumBitsPerSample;
8552    ULONG BitsPerSampleGranularity;
8553    ULONG MinimumSampleFrequency;
8554    ULONG MaximumSampleFrequency;
8555    ULONG SampleFrequencyGranularity;
8556} AUDIO_STREAM_CONFIG_CAPS;
8557DEFINE_GUID(IID_IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
8558#if defined(__cplusplus) && !defined(CINTERFACE)
8559MIDL_INTERFACE("c6e13340-30ac-11d0-a18c-00a0c9118956")
8560IAMStreamConfig : public IUnknown
8561{
8562    virtual HRESULT STDMETHODCALLTYPE SetFormat(
8563        AM_MEDIA_TYPE *pmt) = 0;
8564
8565    virtual HRESULT STDMETHODCALLTYPE GetFormat(
8566        AM_MEDIA_TYPE **pmt) = 0;
8567
8568    virtual HRESULT STDMETHODCALLTYPE GetNumberOfCapabilities(
8569        int *piCount,
8570        int *piSize) = 0;
8571
8572    virtual HRESULT STDMETHODCALLTYPE GetStreamCaps(
8573        int iIndex,
8574        AM_MEDIA_TYPE **pmt,
8575        BYTE *pSCC) = 0;
8576
8577};
8578#ifdef __CRT_UUID_DECL
8579__CRT_UUID_DECL(IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
8580#endif
8581#else
8582typedef struct IAMStreamConfigVtbl {
8583    BEGIN_INTERFACE
8584
8585    /*** IUnknown methods ***/
8586    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8587        IAMStreamConfig* This,
8588        REFIID riid,
8589        void **ppvObject);
8590
8591    ULONG (STDMETHODCALLTYPE *AddRef)(
8592        IAMStreamConfig* This);
8593
8594    ULONG (STDMETHODCALLTYPE *Release)(
8595        IAMStreamConfig* This);
8596
8597    /*** IAMStreamConfig methods ***/
8598    HRESULT (STDMETHODCALLTYPE *SetFormat)(
8599        IAMStreamConfig* This,
8600        AM_MEDIA_TYPE *pmt);
8601
8602    HRESULT (STDMETHODCALLTYPE *GetFormat)(
8603        IAMStreamConfig* This,
8604        AM_MEDIA_TYPE **pmt);
8605
8606    HRESULT (STDMETHODCALLTYPE *GetNumberOfCapabilities)(
8607        IAMStreamConfig* This,
8608        int *piCount,
8609        int *piSize);
8610
8611    HRESULT (STDMETHODCALLTYPE *GetStreamCaps)(
8612        IAMStreamConfig* This,
8613        int iIndex,
8614        AM_MEDIA_TYPE **pmt,
8615        BYTE *pSCC);
8616
8617    END_INTERFACE
8618} IAMStreamConfigVtbl;
8619interface IAMStreamConfig {
8620    CONST_VTBL IAMStreamConfigVtbl* lpVtbl;
8621};
8622
8623#ifdef COBJMACROS
8624#ifndef WIDL_C_INLINE_WRAPPERS
8625/*** IUnknown methods ***/
8626#define IAMStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8627#define IAMStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
8628#define IAMStreamConfig_Release(This) (This)->lpVtbl->Release(This)
8629/*** IAMStreamConfig methods ***/
8630#define IAMStreamConfig_SetFormat(This,pmt) (This)->lpVtbl->SetFormat(This,pmt)
8631#define IAMStreamConfig_GetFormat(This,pmt) (This)->lpVtbl->GetFormat(This,pmt)
8632#define IAMStreamConfig_GetNumberOfCapabilities(This,piCount,piSize) (This)->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize)
8633#define IAMStreamConfig_GetStreamCaps(This,iIndex,pmt,pSCC) (This)->lpVtbl->GetStreamCaps(This,iIndex,pmt,pSCC)
8634#else
8635/*** IUnknown methods ***/
8636static FORCEINLINE HRESULT IAMStreamConfig_QueryInterface(IAMStreamConfig* This,REFIID riid,void **ppvObject) {
8637    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8638}
8639static FORCEINLINE ULONG IAMStreamConfig_AddRef(IAMStreamConfig* This) {
8640    return This->lpVtbl->AddRef(This);
8641}
8642static FORCEINLINE ULONG IAMStreamConfig_Release(IAMStreamConfig* This) {
8643    return This->lpVtbl->Release(This);
8644}
8645/*** IAMStreamConfig methods ***/
8646static FORCEINLINE HRESULT IAMStreamConfig_SetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE *pmt) {
8647    return This->lpVtbl->SetFormat(This,pmt);
8648}
8649static FORCEINLINE HRESULT IAMStreamConfig_GetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE **pmt) {
8650    return This->lpVtbl->GetFormat(This,pmt);
8651}
8652static FORCEINLINE HRESULT IAMStreamConfig_GetNumberOfCapabilities(IAMStreamConfig* This,int *piCount,int *piSize) {
8653    return This->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize);
8654}
8655static FORCEINLINE HRESULT IAMStreamConfig_GetStreamCaps(IAMStreamConfig* This,int iIndex,AM_MEDIA_TYPE **pmt,BYTE *pSCC) {
8656    return This->lpVtbl->GetStreamCaps(This,iIndex,pmt,pSCC);
8657}
8658#endif
8659#endif
8660
8661#endif
8662
8663HRESULT STDMETHODCALLTYPE IAMStreamConfig_SetFormat_Proxy(
8664    IAMStreamConfig* This,
8665    AM_MEDIA_TYPE *pmt);
8666void __RPC_STUB IAMStreamConfig_SetFormat_Stub(
8667    IRpcStubBuffer* This,
8668    IRpcChannelBuffer* pRpcChannelBuffer,
8669    PRPC_MESSAGE pRpcMessage,
8670    DWORD* pdwStubPhase);
8671HRESULT STDMETHODCALLTYPE IAMStreamConfig_GetFormat_Proxy(
8672    IAMStreamConfig* This,
8673    AM_MEDIA_TYPE **pmt);
8674void __RPC_STUB IAMStreamConfig_GetFormat_Stub(
8675    IRpcStubBuffer* This,
8676    IRpcChannelBuffer* pRpcChannelBuffer,
8677    PRPC_MESSAGE pRpcMessage,
8678    DWORD* pdwStubPhase);
8679HRESULT STDMETHODCALLTYPE IAMStreamConfig_GetNumberOfCapabilities_Proxy(
8680    IAMStreamConfig* This,
8681    int *piCount,
8682    int *piSize);
8683void __RPC_STUB IAMStreamConfig_GetNumberOfCapabilities_Stub(
8684    IRpcStubBuffer* This,
8685    IRpcChannelBuffer* pRpcChannelBuffer,
8686    PRPC_MESSAGE pRpcMessage,
8687    DWORD* pdwStubPhase);
8688HRESULT STDMETHODCALLTYPE IAMStreamConfig_GetStreamCaps_Proxy(
8689    IAMStreamConfig* This,
8690    int iIndex,
8691    AM_MEDIA_TYPE **pmt,
8692    BYTE *pSCC);
8693void __RPC_STUB IAMStreamConfig_GetStreamCaps_Stub(
8694    IRpcStubBuffer* This,
8695    IRpcChannelBuffer* pRpcChannelBuffer,
8696    PRPC_MESSAGE pRpcMessage,
8697    DWORD* pdwStubPhase);
8698
8699#endif  /* __IAMStreamConfig_INTERFACE_DEFINED__ */
8700
8701typedef enum tagVideoProcAmpProperty {
8702    VideoProcAmp_Brightness = 0,
8703    VideoProcAmp_Contrast = 1,
8704    VideoProcAmp_Hue = 2,
8705    VideoProcAmp_Saturation = 3,
8706    VideoProcAmp_Sharpness = 4,
8707    VideoProcAmp_Gamma = 5,
8708    VideoProcAmp_ColorEnable = 6,
8709    VideoProcAmp_WhiteBalance = 7,
8710    VideoProcAmp_BacklightCompensation = 8,
8711    VideoProcAmp_Gain = 9
8712} VideoProcAmpProperty;
8713typedef enum tagVideoProcAmpFlags {
8714    VideoProcAmp_Flags_Auto = 0x1,
8715    VideoProcAmp_Flags_Manual = 0x2
8716} VideoProcAmpFlags;
8717/*****************************************************************************
8718 * IAMVideoProcAmp interface
8719 */
8720#ifndef __IAMVideoProcAmp_INTERFACE_DEFINED__
8721#define __IAMVideoProcAmp_INTERFACE_DEFINED__
8722
8723DEFINE_GUID(IID_IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
8724#if defined(__cplusplus) && !defined(CINTERFACE)
8725MIDL_INTERFACE("c6e13360-30ac-11d0-a18c-00a0c9118956")
8726IAMVideoProcAmp : public IUnknown
8727{
8728    virtual HRESULT STDMETHODCALLTYPE GetRange(
8729        LONG Property,
8730        LONG *pMin,
8731        LONG *pMax,
8732        LONG *pSteppingDelta,
8733        LONG *pDefault,
8734        LONG *pCapsFlags) = 0;
8735
8736    virtual HRESULT STDMETHODCALLTYPE Set(
8737        LONG Property,
8738        LONG lValue,
8739        LONG Flags) = 0;
8740
8741    virtual HRESULT STDMETHODCALLTYPE Get(
8742        LONG Property,
8743        LONG *lValue,
8744        LONG *Flags) = 0;
8745
8746};
8747#ifdef __CRT_UUID_DECL
8748__CRT_UUID_DECL(IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
8749#endif
8750#else
8751typedef struct IAMVideoProcAmpVtbl {
8752    BEGIN_INTERFACE
8753
8754    /*** IUnknown methods ***/
8755    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8756        IAMVideoProcAmp* This,
8757        REFIID riid,
8758        void **ppvObject);
8759
8760    ULONG (STDMETHODCALLTYPE *AddRef)(
8761        IAMVideoProcAmp* This);
8762
8763    ULONG (STDMETHODCALLTYPE *Release)(
8764        IAMVideoProcAmp* This);
8765
8766    /*** IAMVideoProcAmp methods ***/
8767    HRESULT (STDMETHODCALLTYPE *GetRange)(
8768        IAMVideoProcAmp* This,
8769        LONG Property,
8770        LONG *pMin,
8771        LONG *pMax,
8772        LONG *pSteppingDelta,
8773        LONG *pDefault,
8774        LONG *pCapsFlags);
8775
8776    HRESULT (STDMETHODCALLTYPE *Set)(
8777        IAMVideoProcAmp* This,
8778        LONG Property,
8779        LONG lValue,
8780        LONG Flags);
8781
8782    HRESULT (STDMETHODCALLTYPE *Get)(
8783        IAMVideoProcAmp* This,
8784        LONG Property,
8785        LONG *lValue,
8786        LONG *Flags);
8787
8788    END_INTERFACE
8789} IAMVideoProcAmpVtbl;
8790interface IAMVideoProcAmp {
8791    CONST_VTBL IAMVideoProcAmpVtbl* lpVtbl;
8792};
8793
8794#ifdef COBJMACROS
8795#ifndef WIDL_C_INLINE_WRAPPERS
8796/*** IUnknown methods ***/
8797#define IAMVideoProcAmp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8798#define IAMVideoProcAmp_AddRef(This) (This)->lpVtbl->AddRef(This)
8799#define IAMVideoProcAmp_Release(This) (This)->lpVtbl->Release(This)
8800/*** IAMVideoProcAmp methods ***/
8801#define IAMVideoProcAmp_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
8802#define IAMVideoProcAmp_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
8803#define IAMVideoProcAmp_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
8804#else
8805/*** IUnknown methods ***/
8806static FORCEINLINE HRESULT IAMVideoProcAmp_QueryInterface(IAMVideoProcAmp* This,REFIID riid,void **ppvObject) {
8807    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8808}
8809static FORCEINLINE ULONG IAMVideoProcAmp_AddRef(IAMVideoProcAmp* This) {
8810    return This->lpVtbl->AddRef(This);
8811}
8812static FORCEINLINE ULONG IAMVideoProcAmp_Release(IAMVideoProcAmp* This) {
8813    return This->lpVtbl->Release(This);
8814}
8815/*** IAMVideoProcAmp methods ***/
8816static FORCEINLINE HRESULT IAMVideoProcAmp_GetRange(IAMVideoProcAmp* This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags) {
8817    return This->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags);
8818}
8819static FORCEINLINE HRESULT IAMVideoProcAmp_Set(IAMVideoProcAmp* This,LONG Property,LONG lValue,LONG Flags) {
8820    return This->lpVtbl->Set(This,Property,lValue,Flags);
8821}
8822static FORCEINLINE HRESULT IAMVideoProcAmp_Get(IAMVideoProcAmp* This,LONG Property,LONG *lValue,LONG *Flags) {
8823    return This->lpVtbl->Get(This,Property,lValue,Flags);
8824}
8825#endif
8826#endif
8827
8828#endif
8829
8830HRESULT STDMETHODCALLTYPE IAMVideoProcAmp_GetRange_Proxy(
8831    IAMVideoProcAmp* This,
8832    LONG Property,
8833    LONG *pMin,
8834    LONG *pMax,
8835    LONG *pSteppingDelta,
8836    LONG *pDefault,
8837    LONG *pCapsFlags);
8838void __RPC_STUB IAMVideoProcAmp_GetRange_Stub(
8839    IRpcStubBuffer* This,
8840    IRpcChannelBuffer* pRpcChannelBuffer,
8841    PRPC_MESSAGE pRpcMessage,
8842    DWORD* pdwStubPhase);
8843HRESULT STDMETHODCALLTYPE IAMVideoProcAmp_Set_Proxy(
8844    IAMVideoProcAmp* This,
8845    LONG Property,
8846    LONG lValue,
8847    LONG Flags);
8848void __RPC_STUB IAMVideoProcAmp_Set_Stub(
8849    IRpcStubBuffer* This,
8850    IRpcChannelBuffer* pRpcChannelBuffer,
8851    PRPC_MESSAGE pRpcMessage,
8852    DWORD* pdwStubPhase);
8853HRESULT STDMETHODCALLTYPE IAMVideoProcAmp_Get_Proxy(
8854    IAMVideoProcAmp* This,
8855    LONG Property,
8856    LONG *lValue,
8857    LONG *Flags);
8858void __RPC_STUB IAMVideoProcAmp_Get_Stub(
8859    IRpcStubBuffer* This,
8860    IRpcChannelBuffer* pRpcChannelBuffer,
8861    PRPC_MESSAGE pRpcMessage,
8862    DWORD* pdwStubPhase);
8863
8864#endif  /* __IAMVideoProcAmp_INTERFACE_DEFINED__ */
8865
8866/*****************************************************************************
8867 * IAsyncReader interface
8868 */
8869#ifndef __IAsyncReader_INTERFACE_DEFINED__
8870#define __IAsyncReader_INTERFACE_DEFINED__
8871
8872DEFINE_GUID(IID_IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
8873#if defined(__cplusplus) && !defined(CINTERFACE)
8874MIDL_INTERFACE("56a868aa-0ad4-11ce-b03a-0020af0ba770")
8875IAsyncReader : public IUnknown
8876{
8877    virtual HRESULT STDMETHODCALLTYPE RequestAllocator(
8878        IMemAllocator *pPreferred,
8879        ALLOCATOR_PROPERTIES *pProps,
8880        IMemAllocator **ppActual) = 0;
8881
8882    virtual HRESULT STDMETHODCALLTYPE Request(
8883        IMediaSample *pSample,
8884        DWORD_PTR dwUser) = 0;
8885
8886    virtual HRESULT STDMETHODCALLTYPE WaitForNext(
8887        DWORD dwTimeout,
8888        IMediaSample **ppSample,
8889        DWORD_PTR *pdwUser) = 0;
8890
8891    virtual HRESULT STDMETHODCALLTYPE SyncReadAligned(
8892        IMediaSample *pSample) = 0;
8893
8894    virtual HRESULT STDMETHODCALLTYPE SyncRead(
8895        LONGLONG llPosition,
8896        LONG lLength,
8897        BYTE *pBuffer) = 0;
8898
8899    virtual HRESULT STDMETHODCALLTYPE Length(
8900        LONGLONG *pTotal,
8901        LONGLONG *pAvailable) = 0;
8902
8903    virtual HRESULT STDMETHODCALLTYPE BeginFlush(
8904        ) = 0;
8905
8906    virtual HRESULT STDMETHODCALLTYPE EndFlush(
8907        ) = 0;
8908
8909};
8910#ifdef __CRT_UUID_DECL
8911__CRT_UUID_DECL(IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
8912#endif
8913#else
8914typedef struct IAsyncReaderVtbl {
8915    BEGIN_INTERFACE
8916
8917    /*** IUnknown methods ***/
8918    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8919        IAsyncReader* This,
8920        REFIID riid,
8921        void **ppvObject);
8922
8923    ULONG (STDMETHODCALLTYPE *AddRef)(
8924        IAsyncReader* This);
8925
8926    ULONG (STDMETHODCALLTYPE *Release)(
8927        IAsyncReader* This);
8928
8929    /*** IAsyncReader methods ***/
8930    HRESULT (STDMETHODCALLTYPE *RequestAllocator)(
8931        IAsyncReader* This,
8932        IMemAllocator *pPreferred,
8933        ALLOCATOR_PROPERTIES *pProps,
8934        IMemAllocator **ppActual);
8935
8936    HRESULT (STDMETHODCALLTYPE *Request)(
8937        IAsyncReader* This,
8938        IMediaSample *pSample,
8939        DWORD_PTR dwUser);
8940
8941    HRESULT (STDMETHODCALLTYPE *WaitForNext)(
8942        IAsyncReader* This,
8943        DWORD dwTimeout,
8944        IMediaSample **ppSample,
8945        DWORD_PTR *pdwUser);
8946
8947    HRESULT (STDMETHODCALLTYPE *SyncReadAligned)(
8948        IAsyncReader* This,
8949        IMediaSample *pSample);
8950
8951    HRESULT (STDMETHODCALLTYPE *SyncRead)(
8952        IAsyncReader* This,
8953        LONGLONG llPosition,
8954        LONG lLength,
8955        BYTE *pBuffer);
8956
8957    HRESULT (STDMETHODCALLTYPE *Length)(
8958        IAsyncReader* This,
8959        LONGLONG *pTotal,
8960        LONGLONG *pAvailable);
8961
8962    HRESULT (STDMETHODCALLTYPE *BeginFlush)(
8963        IAsyncReader* This);
8964
8965    HRESULT (STDMETHODCALLTYPE *EndFlush)(
8966        IAsyncReader* This);
8967
8968    END_INTERFACE
8969} IAsyncReaderVtbl;
8970interface IAsyncReader {
8971    CONST_VTBL IAsyncReaderVtbl* lpVtbl;
8972};
8973
8974#ifdef COBJMACROS
8975#ifndef WIDL_C_INLINE_WRAPPERS
8976/*** IUnknown methods ***/
8977#define IAsyncReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8978#define IAsyncReader_AddRef(This) (This)->lpVtbl->AddRef(This)
8979#define IAsyncReader_Release(This) (This)->lpVtbl->Release(This)
8980/*** IAsyncReader methods ***/
8981#define IAsyncReader_RequestAllocator(This,pPreferred,pProps,ppActual) (This)->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual)
8982#define IAsyncReader_Request(This,pSample,dwUser) (This)->lpVtbl->Request(This,pSample,dwUser)
8983#define IAsyncReader_WaitForNext(This,dwTimeout,ppSample,pdwUser) (This)->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser)
8984#define IAsyncReader_SyncReadAligned(This,pSample) (This)->lpVtbl->SyncReadAligned(This,pSample)
8985#define IAsyncReader_SyncRead(This,llPosition,lLength,pBuffer) (This)->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer)
8986#define IAsyncReader_Length(This,pTotal,pAvailable) (This)->lpVtbl->Length(This,pTotal,pAvailable)
8987#define IAsyncReader_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
8988#define IAsyncReader_EndFlush(This) (This)->lpVtbl->EndFlush(This)
8989#else
8990/*** IUnknown methods ***/
8991static FORCEINLINE HRESULT IAsyncReader_QueryInterface(IAsyncReader* This,REFIID riid,void **ppvObject) {
8992    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8993}
8994static FORCEINLINE ULONG IAsyncReader_AddRef(IAsyncReader* This) {
8995    return This->lpVtbl->AddRef(This);
8996}
8997static FORCEINLINE ULONG IAsyncReader_Release(IAsyncReader* This) {
8998    return This->lpVtbl->Release(This);
8999}
9000/*** IAsyncReader methods ***/
9001static FORCEINLINE HRESULT IAsyncReader_RequestAllocator(IAsyncReader* This,IMemAllocator *pPreferred,ALLOCATOR_PROPERTIES *pProps,IMemAllocator **ppActual) {
9002    return This->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual);
9003}
9004static FORCEINLINE HRESULT IAsyncReader_Request(IAsyncReader* This,IMediaSample *pSample,DWORD_PTR dwUser) {
9005    return This->lpVtbl->Request(This,pSample,dwUser);
9006}
9007static FORCEINLINE HRESULT IAsyncReader_WaitForNext(IAsyncReader* This,DWORD dwTimeout,IMediaSample **ppSample,DWORD_PTR *pdwUser) {
9008    return This->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser);
9009}
9010static FORCEINLINE HRESULT IAsyncReader_SyncReadAligned(IAsyncReader* This,IMediaSample *pSample) {
9011    return This->lpVtbl->SyncReadAligned(This,pSample);
9012}
9013static FORCEINLINE HRESULT IAsyncReader_SyncRead(IAsyncReader* This,LONGLONG llPosition,LONG lLength,BYTE *pBuffer) {
9014    return This->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer);
9015}
9016static FORCEINLINE HRESULT IAsyncReader_Length(IAsyncReader* This,LONGLONG *pTotal,LONGLONG *pAvailable) {
9017    return This->lpVtbl->Length(This,pTotal,pAvailable);
9018}
9019static FORCEINLINE HRESULT IAsyncReader_BeginFlush(IAsyncReader* This) {
9020    return This->lpVtbl->BeginFlush(This);
9021}
9022static FORCEINLINE HRESULT IAsyncReader_EndFlush(IAsyncReader* This) {
9023    return This->lpVtbl->EndFlush(This);
9024}
9025#endif
9026#endif
9027
9028#endif
9029
9030HRESULT STDMETHODCALLTYPE IAsyncReader_RequestAllocator_Proxy(
9031    IAsyncReader* This,
9032    IMemAllocator *pPreferred,
9033    ALLOCATOR_PROPERTIES *pProps,
9034    IMemAllocator **ppActual);
9035void __RPC_STUB IAsyncReader_RequestAllocator_Stub(
9036    IRpcStubBuffer* This,
9037    IRpcChannelBuffer* pRpcChannelBuffer,
9038    PRPC_MESSAGE pRpcMessage,
9039    DWORD* pdwStubPhase);
9040HRESULT STDMETHODCALLTYPE IAsyncReader_Request_Proxy(
9041    IAsyncReader* This,
9042    IMediaSample *pSample,
9043    DWORD_PTR dwUser);
9044void __RPC_STUB IAsyncReader_Request_Stub(
9045    IRpcStubBuffer* This,
9046    IRpcChannelBuffer* pRpcChannelBuffer,
9047    PRPC_MESSAGE pRpcMessage,
9048    DWORD* pdwStubPhase);
9049HRESULT STDMETHODCALLTYPE IAsyncReader_WaitForNext_Proxy(
9050    IAsyncReader* This,
9051    DWORD dwTimeout,
9052    IMediaSample **ppSample,
9053    DWORD_PTR *pdwUser);
9054void __RPC_STUB IAsyncReader_WaitForNext_Stub(
9055    IRpcStubBuffer* This,
9056    IRpcChannelBuffer* pRpcChannelBuffer,
9057    PRPC_MESSAGE pRpcMessage,
9058    DWORD* pdwStubPhase);
9059HRESULT STDMETHODCALLTYPE IAsyncReader_SyncReadAligned_Proxy(
9060    IAsyncReader* This,
9061    IMediaSample *pSample);
9062void __RPC_STUB IAsyncReader_SyncReadAligned_Stub(
9063    IRpcStubBuffer* This,
9064    IRpcChannelBuffer* pRpcChannelBuffer,
9065    PRPC_MESSAGE pRpcMessage,
9066    DWORD* pdwStubPhase);
9067HRESULT STDMETHODCALLTYPE IAsyncReader_SyncRead_Proxy(
9068    IAsyncReader* This,
9069    LONGLONG llPosition,
9070    LONG lLength,
9071    BYTE *pBuffer);
9072void __RPC_STUB IAsyncReader_SyncRead_Stub(
9073    IRpcStubBuffer* This,
9074    IRpcChannelBuffer* pRpcChannelBuffer,
9075    PRPC_MESSAGE pRpcMessage,
9076    DWORD* pdwStubPhase);
9077HRESULT STDMETHODCALLTYPE IAsyncReader_Length_Proxy(
9078    IAsyncReader* This,
9079    LONGLONG *pTotal,
9080    LONGLONG *pAvailable);
9081void __RPC_STUB IAsyncReader_Length_Stub(
9082    IRpcStubBuffer* This,
9083    IRpcChannelBuffer* pRpcChannelBuffer,
9084    PRPC_MESSAGE pRpcMessage,
9085    DWORD* pdwStubPhase);
9086HRESULT STDMETHODCALLTYPE IAsyncReader_BeginFlush_Proxy(
9087    IAsyncReader* This);
9088void __RPC_STUB IAsyncReader_BeginFlush_Stub(
9089    IRpcStubBuffer* This,
9090    IRpcChannelBuffer* pRpcChannelBuffer,
9091    PRPC_MESSAGE pRpcMessage,
9092    DWORD* pdwStubPhase);
9093HRESULT STDMETHODCALLTYPE IAsyncReader_EndFlush_Proxy(
9094    IAsyncReader* This);
9095void __RPC_STUB IAsyncReader_EndFlush_Stub(
9096    IRpcStubBuffer* This,
9097    IRpcChannelBuffer* pRpcChannelBuffer,
9098    PRPC_MESSAGE pRpcMessage,
9099    DWORD* pdwStubPhase);
9100
9101#endif  /* __IAsyncReader_INTERFACE_DEFINED__ */
9102
9103/*****************************************************************************
9104 * IGraphVersion interface
9105 */
9106#ifndef __IGraphVersion_INTERFACE_DEFINED__
9107#define __IGraphVersion_INTERFACE_DEFINED__
9108
9109DEFINE_GUID(IID_IGraphVersion, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
9110#if defined(__cplusplus) && !defined(CINTERFACE)
9111MIDL_INTERFACE("56a868ab-0ad4-11ce-b03a-0020af0ba770")
9112IGraphVersion : public IUnknown
9113{
9114    virtual HRESULT STDMETHODCALLTYPE QueryVersion(
9115        LONG *pVersion) = 0;
9116
9117};
9118#ifdef __CRT_UUID_DECL
9119__CRT_UUID_DECL(IGraphVersion, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
9120#endif
9121#else
9122typedef struct IGraphVersionVtbl {
9123    BEGIN_INTERFACE
9124
9125    /*** IUnknown methods ***/
9126    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9127        IGraphVersion* This,
9128        REFIID riid,
9129        void **ppvObject);
9130
9131    ULONG (STDMETHODCALLTYPE *AddRef)(
9132        IGraphVersion* This);
9133
9134    ULONG (STDMETHODCALLTYPE *Release)(
9135        IGraphVersion* This);
9136
9137    /*** IGraphVersion methods ***/
9138    HRESULT (STDMETHODCALLTYPE *QueryVersion)(
9139        IGraphVersion* This,
9140        LONG *pVersion);
9141
9142    END_INTERFACE
9143} IGraphVersionVtbl;
9144interface IGraphVersion {
9145    CONST_VTBL IGraphVersionVtbl* lpVtbl;
9146};
9147
9148#ifdef COBJMACROS
9149#ifndef WIDL_C_INLINE_WRAPPERS
9150/*** IUnknown methods ***/
9151#define IGraphVersion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9152#define IGraphVersion_AddRef(This) (This)->lpVtbl->AddRef(This)
9153#define IGraphVersion_Release(This) (This)->lpVtbl->Release(This)
9154/*** IGraphVersion methods ***/
9155#define IGraphVersion_QueryVersion(This,pVersion) (This)->lpVtbl->QueryVersion(This,pVersion)
9156#else
9157/*** IUnknown methods ***/
9158static FORCEINLINE HRESULT IGraphVersion_QueryInterface(IGraphVersion* This,REFIID riid,void **ppvObject) {
9159    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9160}
9161static FORCEINLINE ULONG IGraphVersion_AddRef(IGraphVersion* This) {
9162    return This->lpVtbl->AddRef(This);
9163}
9164static FORCEINLINE ULONG IGraphVersion_Release(IGraphVersion* This) {
9165    return This->lpVtbl->Release(This);
9166}
9167/*** IGraphVersion methods ***/
9168static FORCEINLINE HRESULT IGraphVersion_QueryVersion(IGraphVersion* This,LONG *pVersion) {
9169    return This->lpVtbl->QueryVersion(This,pVersion);
9170}
9171#endif
9172#endif
9173
9174#endif
9175
9176HRESULT STDMETHODCALLTYPE IGraphVersion_QueryVersion_Proxy(
9177    IGraphVersion* This,
9178    LONG *pVersion);
9179void __RPC_STUB IGraphVersion_QueryVersion_Stub(
9180    IRpcStubBuffer* This,
9181    IRpcChannelBuffer* pRpcChannelBuffer,
9182    PRPC_MESSAGE pRpcMessage,
9183    DWORD* pdwStubPhase);
9184
9185#endif  /* __IGraphVersion_INTERFACE_DEFINED__ */
9186
9187/*****************************************************************************
9188 * IResourceConsumer interface
9189 */
9190#ifndef __IResourceConsumer_INTERFACE_DEFINED__
9191#define __IResourceConsumer_INTERFACE_DEFINED__
9192
9193DEFINE_GUID(IID_IResourceConsumer, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
9194#if defined(__cplusplus) && !defined(CINTERFACE)
9195MIDL_INTERFACE("56a868ad-0ad4-11ce-b03a-0020af0ba770")
9196IResourceConsumer : public IUnknown
9197{
9198    virtual HRESULT STDMETHODCALLTYPE AcquireResource(
9199        LONG idResource) = 0;
9200
9201    virtual HRESULT STDMETHODCALLTYPE ReleaseResource(
9202        LONG idResource) = 0;
9203
9204};
9205#ifdef __CRT_UUID_DECL
9206__CRT_UUID_DECL(IResourceConsumer, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
9207#endif
9208#else
9209typedef struct IResourceConsumerVtbl {
9210    BEGIN_INTERFACE
9211
9212    /*** IUnknown methods ***/
9213    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9214        IResourceConsumer* This,
9215        REFIID riid,
9216        void **ppvObject);
9217
9218    ULONG (STDMETHODCALLTYPE *AddRef)(
9219        IResourceConsumer* This);
9220
9221    ULONG (STDMETHODCALLTYPE *Release)(
9222        IResourceConsumer* This);
9223
9224    /*** IResourceConsumer methods ***/
9225    HRESULT (STDMETHODCALLTYPE *AcquireResource)(
9226        IResourceConsumer* This,
9227        LONG idResource);
9228
9229    HRESULT (STDMETHODCALLTYPE *ReleaseResource)(
9230        IResourceConsumer* This,
9231        LONG idResource);
9232
9233    END_INTERFACE
9234} IResourceConsumerVtbl;
9235interface IResourceConsumer {
9236    CONST_VTBL IResourceConsumerVtbl* lpVtbl;
9237};
9238
9239#ifdef COBJMACROS
9240#ifndef WIDL_C_INLINE_WRAPPERS
9241/*** IUnknown methods ***/
9242#define IResourceConsumer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9243#define IResourceConsumer_AddRef(This) (This)->lpVtbl->AddRef(This)
9244#define IResourceConsumer_Release(This) (This)->lpVtbl->Release(This)
9245/*** IResourceConsumer methods ***/
9246#define IResourceConsumer_AcquireResource(This,idResource) (This)->lpVtbl->AcquireResource(This,idResource)
9247#define IResourceConsumer_ReleaseResource(This,idResource) (This)->lpVtbl->ReleaseResource(This,idResource)
9248#else
9249/*** IUnknown methods ***/
9250static FORCEINLINE HRESULT IResourceConsumer_QueryInterface(IResourceConsumer* This,REFIID riid,void **ppvObject) {
9251    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9252}
9253static FORCEINLINE ULONG IResourceConsumer_AddRef(IResourceConsumer* This) {
9254    return This->lpVtbl->AddRef(This);
9255}
9256static FORCEINLINE ULONG IResourceConsumer_Release(IResourceConsumer* This) {
9257    return This->lpVtbl->Release(This);
9258}
9259/*** IResourceConsumer methods ***/
9260static FORCEINLINE HRESULT IResourceConsumer_AcquireResource(IResourceConsumer* This,LONG idResource) {
9261    return This->lpVtbl->AcquireResource(This,idResource);
9262}
9263static FORCEINLINE HRESULT IResourceConsumer_ReleaseResource(IResourceConsumer* This,LONG idResource) {
9264    return This->lpVtbl->ReleaseResource(This,idResource);
9265}
9266#endif
9267#endif
9268
9269#endif
9270
9271HRESULT STDMETHODCALLTYPE IResourceConsumer_AcquireResource_Proxy(
9272    IResourceConsumer* This,
9273    LONG idResource);
9274void __RPC_STUB IResourceConsumer_AcquireResource_Stub(
9275    IRpcStubBuffer* This,
9276    IRpcChannelBuffer* pRpcChannelBuffer,
9277    PRPC_MESSAGE pRpcMessage,
9278    DWORD* pdwStubPhase);
9279HRESULT STDMETHODCALLTYPE IResourceConsumer_ReleaseResource_Proxy(
9280    IResourceConsumer* This,
9281    LONG idResource);
9282void __RPC_STUB IResourceConsumer_ReleaseResource_Stub(
9283    IRpcStubBuffer* This,
9284    IRpcChannelBuffer* pRpcChannelBuffer,
9285    PRPC_MESSAGE pRpcMessage,
9286    DWORD* pdwStubPhase);
9287
9288#endif  /* __IResourceConsumer_INTERFACE_DEFINED__ */
9289
9290/*****************************************************************************
9291 * IResourceManager interface
9292 */
9293#ifndef __IResourceManager_INTERFACE_DEFINED__
9294#define __IResourceManager_INTERFACE_DEFINED__
9295
9296DEFINE_GUID(IID_IResourceManager, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
9297#if defined(__cplusplus) && !defined(CINTERFACE)
9298MIDL_INTERFACE("56a868ac-0ad4-11ce-b03a-0020af0ba770")
9299IResourceManager : public IUnknown
9300{
9301    virtual HRESULT STDMETHODCALLTYPE Register(
9302        LPCWSTR pName,
9303        LONG cResource,
9304        LONG *plToken) = 0;
9305
9306    virtual HRESULT STDMETHODCALLTYPE RegisterGroup(
9307        LPCWSTR pName,
9308        LONG cResource,
9309        LONG *palTokens,
9310        LONG *plToken) = 0;
9311
9312    virtual HRESULT STDMETHODCALLTYPE RequestResource(
9313        LONG idResource,
9314        IUnknown *pFocusObject,
9315        IResourceConsumer *pConsumer) = 0;
9316
9317    virtual HRESULT STDMETHODCALLTYPE NotifyAcquire(
9318        LONG idResource,
9319        IResourceConsumer *pConsumer,
9320        HRESULT hr) = 0;
9321
9322    virtual HRESULT STDMETHODCALLTYPE NotifyRelease(
9323        LONG idResource,
9324        IResourceConsumer *pConsumer,
9325        WINBOOL bStillWant) = 0;
9326
9327    virtual HRESULT STDMETHODCALLTYPE CancelRequest(
9328        LONG idResource,
9329        IResourceConsumer *pConsumer) = 0;
9330
9331    virtual HRESULT STDMETHODCALLTYPE SetFocus(
9332        IUnknown *pFocusObject) = 0;
9333
9334    virtual HRESULT STDMETHODCALLTYPE ReleaseFocus(
9335        IUnknown *pFocusObject) = 0;
9336
9337};
9338#ifdef __CRT_UUID_DECL
9339__CRT_UUID_DECL(IResourceManager, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
9340#endif
9341#else
9342typedef struct IResourceManagerVtbl {
9343    BEGIN_INTERFACE
9344
9345    /*** IUnknown methods ***/
9346    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9347        IResourceManager* This,
9348        REFIID riid,
9349        void **ppvObject);
9350
9351    ULONG (STDMETHODCALLTYPE *AddRef)(
9352        IResourceManager* This);
9353
9354    ULONG (STDMETHODCALLTYPE *Release)(
9355        IResourceManager* This);
9356
9357    /*** IResourceManager methods ***/
9358    HRESULT (STDMETHODCALLTYPE *Register)(
9359        IResourceManager* This,
9360        LPCWSTR pName,
9361        LONG cResource,
9362        LONG *plToken);
9363
9364    HRESULT (STDMETHODCALLTYPE *RegisterGroup)(
9365        IResourceManager* This,
9366        LPCWSTR pName,
9367        LONG cResource,
9368        LONG *palTokens,
9369        LONG *plToken);
9370
9371    HRESULT (STDMETHODCALLTYPE *RequestResource)(
9372        IResourceManager* This,
9373        LONG idResource,
9374        IUnknown *pFocusObject,
9375        IResourceConsumer *pConsumer);
9376
9377    HRESULT (STDMETHODCALLTYPE *NotifyAcquire)(
9378        IResourceManager* This,
9379        LONG idResource,
9380        IResourceConsumer *pConsumer,
9381        HRESULT hr);
9382
9383    HRESULT (STDMETHODCALLTYPE *NotifyRelease)(
9384        IResourceManager* This,
9385        LONG idResource,
9386        IResourceConsumer *pConsumer,
9387        WINBOOL bStillWant);
9388
9389    HRESULT (STDMETHODCALLTYPE *CancelRequest)(
9390        IResourceManager* This,
9391        LONG idResource,
9392        IResourceConsumer *pConsumer);
9393
9394    HRESULT (STDMETHODCALLTYPE *SetFocus)(
9395        IResourceManager* This,
9396        IUnknown *pFocusObject);
9397
9398    HRESULT (STDMETHODCALLTYPE *ReleaseFocus)(
9399        IResourceManager* This,
9400        IUnknown *pFocusObject);
9401
9402    END_INTERFACE
9403} IResourceManagerVtbl;
9404interface IResourceManager {
9405    CONST_VTBL IResourceManagerVtbl* lpVtbl;
9406};
9407
9408#ifdef COBJMACROS
9409#ifndef WIDL_C_INLINE_WRAPPERS
9410/*** IUnknown methods ***/
9411#define IResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9412#define IResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
9413#define IResourceManager_Release(This) (This)->lpVtbl->Release(This)
9414/*** IResourceManager methods ***/
9415#define IResourceManager_Register(This,pName,cResource,plToken) (This)->lpVtbl->Register(This,pName,cResource,plToken)
9416#define IResourceManager_RegisterGroup(This,pName,cResource,palTokens,plToken) (This)->lpVtbl->RegisterGroup(This,pName,cResource,palTokens,plToken)
9417#define IResourceManager_RequestResource(This,idResource,pFocusObject,pConsumer) (This)->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer)
9418#define IResourceManager_NotifyAcquire(This,idResource,pConsumer,hr) (This)->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr)
9419#define IResourceManager_NotifyRelease(This,idResource,pConsumer,bStillWant) (This)->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant)
9420#define IResourceManager_CancelRequest(This,idResource,pConsumer) (This)->lpVtbl->CancelRequest(This,idResource,pConsumer)
9421#define IResourceManager_SetFocus(This,pFocusObject) (This)->lpVtbl->SetFocus(This,pFocusObject)
9422#define IResourceManager_ReleaseFocus(This,pFocusObject) (This)->lpVtbl->ReleaseFocus(This,pFocusObject)
9423#else
9424/*** IUnknown methods ***/
9425static FORCEINLINE HRESULT IResourceManager_QueryInterface(IResourceManager* This,REFIID riid,void **ppvObject) {
9426    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9427}
9428static FORCEINLINE ULONG IResourceManager_AddRef(IResourceManager* This) {
9429    return This->lpVtbl->AddRef(This);
9430}
9431static FORCEINLINE ULONG IResourceManager_Release(IResourceManager* This) {
9432    return This->lpVtbl->Release(This);
9433}
9434/*** IResourceManager methods ***/
9435static FORCEINLINE HRESULT IResourceManager_Register(IResourceManager* This,LPCWSTR pName,LONG cResource,LONG *plToken) {
9436    return This->lpVtbl->Register(This,pName,cResource,plToken);
9437}
9438static FORCEINLINE HRESULT IResourceManager_RegisterGroup(IResourceManager* This,LPCWSTR pName,LONG cResource,LONG *palTokens,LONG *plToken) {
9439    return This->lpVtbl->RegisterGroup(This,pName,cResource,palTokens,plToken);
9440}
9441static FORCEINLINE HRESULT IResourceManager_RequestResource(IResourceManager* This,LONG idResource,IUnknown *pFocusObject,IResourceConsumer *pConsumer) {
9442    return This->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer);
9443}
9444static FORCEINLINE HRESULT IResourceManager_NotifyAcquire(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer,HRESULT hr) {
9445    return This->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr);
9446}
9447static FORCEINLINE HRESULT IResourceManager_NotifyRelease(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer,WINBOOL bStillWant) {
9448    return This->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant);
9449}
9450static FORCEINLINE HRESULT IResourceManager_CancelRequest(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer) {
9451    return This->lpVtbl->CancelRequest(This,idResource,pConsumer);
9452}
9453static FORCEINLINE HRESULT IResourceManager_SetFocus(IResourceManager* This,IUnknown *pFocusObject) {
9454    return This->lpVtbl->SetFocus(This,pFocusObject);
9455}
9456static FORCEINLINE HRESULT IResourceManager_ReleaseFocus(IResourceManager* This,IUnknown *pFocusObject) {
9457    return This->lpVtbl->ReleaseFocus(This,pFocusObject);
9458}
9459#endif
9460#endif
9461
9462#endif
9463
9464HRESULT STDMETHODCALLTYPE IResourceManager_Register_Proxy(
9465    IResourceManager* This,
9466    LPCWSTR pName,
9467    LONG cResource,
9468    LONG *plToken);
9469void __RPC_STUB IResourceManager_Register_Stub(
9470    IRpcStubBuffer* This,
9471    IRpcChannelBuffer* pRpcChannelBuffer,
9472    PRPC_MESSAGE pRpcMessage,
9473    DWORD* pdwStubPhase);
9474HRESULT STDMETHODCALLTYPE IResourceManager_RegisterGroup_Proxy(
9475    IResourceManager* This,
9476    LPCWSTR pName,
9477    LONG cResource,
9478    LONG *palTokens,
9479    LONG *plToken);
9480void __RPC_STUB IResourceManager_RegisterGroup_Stub(
9481    IRpcStubBuffer* This,
9482    IRpcChannelBuffer* pRpcChannelBuffer,
9483    PRPC_MESSAGE pRpcMessage,
9484    DWORD* pdwStubPhase);
9485HRESULT STDMETHODCALLTYPE IResourceManager_RequestResource_Proxy(
9486    IResourceManager* This,
9487    LONG idResource,
9488    IUnknown *pFocusObject,
9489    IResourceConsumer *pConsumer);
9490void __RPC_STUB IResourceManager_RequestResource_Stub(
9491    IRpcStubBuffer* This,
9492    IRpcChannelBuffer* pRpcChannelBuffer,
9493    PRPC_MESSAGE pRpcMessage,
9494    DWORD* pdwStubPhase);
9495HRESULT STDMETHODCALLTYPE IResourceManager_NotifyAcquire_Proxy(
9496    IResourceManager* This,
9497    LONG idResource,
9498    IResourceConsumer *pConsumer,
9499    HRESULT hr);
9500void __RPC_STUB IResourceManager_NotifyAcquire_Stub(
9501    IRpcStubBuffer* This,
9502    IRpcChannelBuffer* pRpcChannelBuffer,
9503    PRPC_MESSAGE pRpcMessage,
9504    DWORD* pdwStubPhase);
9505HRESULT STDMETHODCALLTYPE IResourceManager_NotifyRelease_Proxy(
9506    IResourceManager* This,
9507    LONG idResource,
9508    IResourceConsumer *pConsumer,
9509    WINBOOL bStillWant);
9510void __RPC_STUB IResourceManager_NotifyRelease_Stub(
9511    IRpcStubBuffer* This,
9512    IRpcChannelBuffer* pRpcChannelBuffer,
9513    PRPC_MESSAGE pRpcMessage,
9514    DWORD* pdwStubPhase);
9515HRESULT STDMETHODCALLTYPE IResourceManager_CancelRequest_Proxy(
9516    IResourceManager* This,
9517    LONG idResource,
9518    IResourceConsumer *pConsumer);
9519void __RPC_STUB IResourceManager_CancelRequest_Stub(
9520    IRpcStubBuffer* This,
9521    IRpcChannelBuffer* pRpcChannelBuffer,
9522    PRPC_MESSAGE pRpcMessage,
9523    DWORD* pdwStubPhase);
9524HRESULT STDMETHODCALLTYPE IResourceManager_SetFocus_Proxy(
9525    IResourceManager* This,
9526    IUnknown *pFocusObject);
9527void __RPC_STUB IResourceManager_SetFocus_Stub(
9528    IRpcStubBuffer* This,
9529    IRpcChannelBuffer* pRpcChannelBuffer,
9530    PRPC_MESSAGE pRpcMessage,
9531    DWORD* pdwStubPhase);
9532HRESULT STDMETHODCALLTYPE IResourceManager_ReleaseFocus_Proxy(
9533    IResourceManager* This,
9534    IUnknown *pFocusObject);
9535void __RPC_STUB IResourceManager_ReleaseFocus_Stub(
9536    IRpcStubBuffer* This,
9537    IRpcChannelBuffer* pRpcChannelBuffer,
9538    PRPC_MESSAGE pRpcMessage,
9539    DWORD* pdwStubPhase);
9540
9541#endif  /* __IResourceManager_INTERFACE_DEFINED__ */
9542
9543typedef enum AM_STREAM_INFO_FLAGS {
9544    AM_STREAM_INFO_START_DEFINED = 0x1,
9545    AM_STREAM_INFO_STOP_DEFINED = 0x2,
9546    AM_STREAM_INFO_DISCARDING = 0x4,
9547    AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10
9548} AM_STREAM_INFO_FLAGS;
9549typedef struct AM_STREAM_INFO {
9550    REFERENCE_TIME tStart;
9551    REFERENCE_TIME tStop;
9552    DWORD dwStartCookie;
9553    DWORD dwStopCookie;
9554    DWORD dwFlags;
9555} AM_STREAM_INFO;
9556/*****************************************************************************
9557 * IAMStreamControl interface
9558 */
9559#ifndef __IAMStreamControl_INTERFACE_DEFINED__
9560#define __IAMStreamControl_INTERFACE_DEFINED__
9561
9562DEFINE_GUID(IID_IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
9563#if defined(__cplusplus) && !defined(CINTERFACE)
9564MIDL_INTERFACE("36b73881-c2c8-11cf-8b46-00805f6cef60")
9565IAMStreamControl : public IUnknown
9566{
9567    virtual HRESULT STDMETHODCALLTYPE StartAt(
9568        const REFERENCE_TIME *ptStart,
9569        DWORD dwCookie) = 0;
9570
9571    virtual HRESULT STDMETHODCALLTYPE StopAt(
9572        const REFERENCE_TIME *ptStop,
9573        WINBOOL bSendExtra,
9574        DWORD dwCookie) = 0;
9575
9576    virtual HRESULT STDMETHODCALLTYPE GetInfo(
9577        AM_STREAM_INFO *pInfo) = 0;
9578
9579};
9580#ifdef __CRT_UUID_DECL
9581__CRT_UUID_DECL(IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
9582#endif
9583#else
9584typedef struct IAMStreamControlVtbl {
9585    BEGIN_INTERFACE
9586
9587    /*** IUnknown methods ***/
9588    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9589        IAMStreamControl* This,
9590        REFIID riid,
9591        void **ppvObject);
9592
9593    ULONG (STDMETHODCALLTYPE *AddRef)(
9594        IAMStreamControl* This);
9595
9596    ULONG (STDMETHODCALLTYPE *Release)(
9597        IAMStreamControl* This);
9598
9599    /*** IAMStreamControl methods ***/
9600    HRESULT (STDMETHODCALLTYPE *StartAt)(
9601        IAMStreamControl* This,
9602        const REFERENCE_TIME *ptStart,
9603        DWORD dwCookie);
9604
9605    HRESULT (STDMETHODCALLTYPE *StopAt)(
9606        IAMStreamControl* This,
9607        const REFERENCE_TIME *ptStop,
9608        WINBOOL bSendExtra,
9609        DWORD dwCookie);
9610
9611    HRESULT (STDMETHODCALLTYPE *GetInfo)(
9612        IAMStreamControl* This,
9613        AM_STREAM_INFO *pInfo);
9614
9615    END_INTERFACE
9616} IAMStreamControlVtbl;
9617interface IAMStreamControl {
9618    CONST_VTBL IAMStreamControlVtbl* lpVtbl;
9619};
9620
9621#ifdef COBJMACROS
9622#ifndef WIDL_C_INLINE_WRAPPERS
9623/*** IUnknown methods ***/
9624#define IAMStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9625#define IAMStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
9626#define IAMStreamControl_Release(This) (This)->lpVtbl->Release(This)
9627/*** IAMStreamControl methods ***/
9628#define IAMStreamControl_StartAt(This,ptStart,dwCookie) (This)->lpVtbl->StartAt(This,ptStart,dwCookie)
9629#define IAMStreamControl_StopAt(This,ptStop,bSendExtra,dwCookie) (This)->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie)
9630#define IAMStreamControl_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
9631#else
9632/*** IUnknown methods ***/
9633static FORCEINLINE HRESULT IAMStreamControl_QueryInterface(IAMStreamControl* This,REFIID riid,void **ppvObject) {
9634    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9635}
9636static FORCEINLINE ULONG IAMStreamControl_AddRef(IAMStreamControl* This) {
9637    return This->lpVtbl->AddRef(This);
9638}
9639static FORCEINLINE ULONG IAMStreamControl_Release(IAMStreamControl* This) {
9640    return This->lpVtbl->Release(This);
9641}
9642/*** IAMStreamControl methods ***/
9643static FORCEINLINE HRESULT IAMStreamControl_StartAt(IAMStreamControl* This,const REFERENCE_TIME *ptStart,DWORD dwCookie) {
9644    return This->lpVtbl->StartAt(This,ptStart,dwCookie);
9645}
9646static FORCEINLINE HRESULT IAMStreamControl_StopAt(IAMStreamControl* This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie) {
9647    return This->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie);
9648}
9649static FORCEINLINE HRESULT IAMStreamControl_GetInfo(IAMStreamControl* This,AM_STREAM_INFO *pInfo) {
9650    return This->lpVtbl->GetInfo(This,pInfo);
9651}
9652#endif
9653#endif
9654
9655#endif
9656
9657HRESULT STDMETHODCALLTYPE IAMStreamControl_StartAt_Proxy(
9658    IAMStreamControl* This,
9659    const REFERENCE_TIME *ptStart,
9660    DWORD dwCookie);
9661void __RPC_STUB IAMStreamControl_StartAt_Stub(
9662    IRpcStubBuffer* This,
9663    IRpcChannelBuffer* pRpcChannelBuffer,
9664    PRPC_MESSAGE pRpcMessage,
9665    DWORD* pdwStubPhase);
9666HRESULT STDMETHODCALLTYPE IAMStreamControl_StopAt_Proxy(
9667    IAMStreamControl* This,
9668    const REFERENCE_TIME *ptStop,
9669    WINBOOL bSendExtra,
9670    DWORD dwCookie);
9671void __RPC_STUB IAMStreamControl_StopAt_Stub(
9672    IRpcStubBuffer* This,
9673    IRpcChannelBuffer* pRpcChannelBuffer,
9674    PRPC_MESSAGE pRpcMessage,
9675    DWORD* pdwStubPhase);
9676HRESULT STDMETHODCALLTYPE IAMStreamControl_GetInfo_Proxy(
9677    IAMStreamControl* This,
9678    AM_STREAM_INFO *pInfo);
9679void __RPC_STUB IAMStreamControl_GetInfo_Stub(
9680    IRpcStubBuffer* This,
9681    IRpcChannelBuffer* pRpcChannelBuffer,
9682    PRPC_MESSAGE pRpcMessage,
9683    DWORD* pdwStubPhase);
9684
9685#endif  /* __IAMStreamControl_INTERFACE_DEFINED__ */
9686
9687#ifndef _IKsPropertySet_
9688#define _IKsPropertySet_
9689#define KSPROPERTY_SUPPORT_GET  1
9690#define KSPROPERTY_SUPPORT_SET  2
9691/*****************************************************************************
9692 * IKsPropertySet interface
9693 */
9694#ifndef __IKsPropertySet_INTERFACE_DEFINED__
9695#define __IKsPropertySet_INTERFACE_DEFINED__
9696
9697DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93);
9698#if defined(__cplusplus) && !defined(CINTERFACE)
9699MIDL_INTERFACE("31efac30-515c-11d0-a9aa-00aa0061be93")
9700IKsPropertySet : public IUnknown
9701{
9702    virtual HRESULT STDMETHODCALLTYPE Set(
9703        REFGUID guidPropSet,
9704        DWORD dwPropID,
9705        LPVOID pInstanceData,
9706        DWORD cbInstanceData,
9707        LPVOID pPropData,
9708        DWORD cbPropData) = 0;
9709
9710    virtual HRESULT STDMETHODCALLTYPE Get(
9711        REFGUID guidPropSet,
9712        DWORD dwPropID,
9713        LPVOID pInstanceData,
9714        DWORD cbInstanceData,
9715        LPVOID pPropData,
9716        DWORD cbPropData,
9717        DWORD *pcbReturned) = 0;
9718
9719    virtual HRESULT STDMETHODCALLTYPE QuerySupported(
9720        REFGUID guidPropSet,
9721        DWORD dwPropID,
9722        DWORD *pTypeSupport) = 0;
9723
9724};
9725#ifdef __CRT_UUID_DECL
9726__CRT_UUID_DECL(IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93)
9727#endif
9728#else
9729typedef struct IKsPropertySetVtbl {
9730    BEGIN_INTERFACE
9731
9732    /*** IUnknown methods ***/
9733    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9734        IKsPropertySet* This,
9735        REFIID riid,
9736        void **ppvObject);
9737
9738    ULONG (STDMETHODCALLTYPE *AddRef)(
9739        IKsPropertySet* This);
9740
9741    ULONG (STDMETHODCALLTYPE *Release)(
9742        IKsPropertySet* This);
9743
9744    /*** IKsPropertySet methods ***/
9745    HRESULT (STDMETHODCALLTYPE *Set)(
9746        IKsPropertySet* This,
9747        REFGUID guidPropSet,
9748        DWORD dwPropID,
9749        LPVOID pInstanceData,
9750        DWORD cbInstanceData,
9751        LPVOID pPropData,
9752        DWORD cbPropData);
9753
9754    HRESULT (STDMETHODCALLTYPE *Get)(
9755        IKsPropertySet* This,
9756        REFGUID guidPropSet,
9757        DWORD dwPropID,
9758        LPVOID pInstanceData,
9759        DWORD cbInstanceData,
9760        LPVOID pPropData,
9761        DWORD cbPropData,
9762        DWORD *pcbReturned);
9763
9764    HRESULT (STDMETHODCALLTYPE *QuerySupported)(
9765        IKsPropertySet* This,
9766        REFGUID guidPropSet,
9767        DWORD dwPropID,
9768        DWORD *pTypeSupport);
9769
9770    END_INTERFACE
9771} IKsPropertySetVtbl;
9772interface IKsPropertySet {
9773    CONST_VTBL IKsPropertySetVtbl* lpVtbl;
9774};
9775
9776#ifdef COBJMACROS
9777#ifndef WIDL_C_INLINE_WRAPPERS
9778/*** IUnknown methods ***/
9779#define IKsPropertySet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9780#define IKsPropertySet_AddRef(This) (This)->lpVtbl->AddRef(This)
9781#define IKsPropertySet_Release(This) (This)->lpVtbl->Release(This)
9782/*** IKsPropertySet methods ***/
9783#define IKsPropertySet_Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData) (This)->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData)
9784#define IKsPropertySet_Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned) (This)->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned)
9785#define IKsPropertySet_QuerySupported(This,guidPropSet,dwPropID,pTypeSupport) (This)->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport)
9786#else
9787/*** IUnknown methods ***/
9788static FORCEINLINE HRESULT IKsPropertySet_QueryInterface(IKsPropertySet* This,REFIID riid,void **ppvObject) {
9789    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9790}
9791static FORCEINLINE ULONG IKsPropertySet_AddRef(IKsPropertySet* This) {
9792    return This->lpVtbl->AddRef(This);
9793}
9794static FORCEINLINE ULONG IKsPropertySet_Release(IKsPropertySet* This) {
9795    return This->lpVtbl->Release(This);
9796}
9797/*** IKsPropertySet methods ***/
9798static FORCEINLINE HRESULT IKsPropertySet_Set(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData) {
9799    return This->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData);
9800}
9801static FORCEINLINE HRESULT IKsPropertySet_Get(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData,DWORD *pcbReturned) {
9802    return This->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned);
9803}
9804static FORCEINLINE HRESULT IKsPropertySet_QuerySupported(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport) {
9805    return This->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport);
9806}
9807#endif
9808#endif
9809
9810#endif
9811
9812HRESULT STDMETHODCALLTYPE IKsPropertySet_Set_Proxy(
9813    IKsPropertySet* This,
9814    REFGUID guidPropSet,
9815    DWORD dwPropID,
9816    LPVOID pInstanceData,
9817    DWORD cbInstanceData,
9818    LPVOID pPropData,
9819    DWORD cbPropData);
9820void __RPC_STUB IKsPropertySet_Set_Stub(
9821    IRpcStubBuffer* This,
9822    IRpcChannelBuffer* pRpcChannelBuffer,
9823    PRPC_MESSAGE pRpcMessage,
9824    DWORD* pdwStubPhase);
9825HRESULT STDMETHODCALLTYPE IKsPropertySet_Get_Proxy(
9826    IKsPropertySet* This,
9827    REFGUID guidPropSet,
9828    DWORD dwPropID,
9829    LPVOID pInstanceData,
9830    DWORD cbInstanceData,
9831    LPVOID pPropData,
9832    DWORD cbPropData,
9833    DWORD *pcbReturned);
9834void __RPC_STUB IKsPropertySet_Get_Stub(
9835    IRpcStubBuffer* This,
9836    IRpcChannelBuffer* pRpcChannelBuffer,
9837    PRPC_MESSAGE pRpcMessage,
9838    DWORD* pdwStubPhase);
9839HRESULT STDMETHODCALLTYPE IKsPropertySet_QuerySupported_Proxy(
9840    IKsPropertySet* This,
9841    REFGUID guidPropSet,
9842    DWORD dwPropID,
9843    DWORD *pTypeSupport);
9844void __RPC_STUB IKsPropertySet_QuerySupported_Stub(
9845    IRpcStubBuffer* This,
9846    IRpcChannelBuffer* pRpcChannelBuffer,
9847    PRPC_MESSAGE pRpcMessage,
9848    DWORD* pdwStubPhase);
9849
9850#endif  /* __IKsPropertySet_INTERFACE_DEFINED__ */
9851
9852#endif /* _IKsPropertySet_ */
9853/*****************************************************************************
9854 * IMediaPropertyBag interface
9855 */
9856#ifndef __IMediaPropertyBag_INTERFACE_DEFINED__
9857#define __IMediaPropertyBag_INTERFACE_DEFINED__
9858
9859typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
9860DEFINE_GUID(IID_IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86);
9861#if defined(__cplusplus) && !defined(CINTERFACE)
9862MIDL_INTERFACE("6025a880-c0d5-11d0-bd4e-00a0c911ce86")
9863IMediaPropertyBag : public IPropertyBag
9864{
9865    virtual HRESULT STDMETHODCALLTYPE EnumProperty(
9866        ULONG iProperty,
9867        VARIANT *pvarPropertyName,
9868        VARIANT *pvarPropertyValue) = 0;
9869
9870};
9871#ifdef __CRT_UUID_DECL
9872__CRT_UUID_DECL(IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86)
9873#endif
9874#else
9875typedef struct IMediaPropertyBagVtbl {
9876    BEGIN_INTERFACE
9877
9878    /*** IUnknown methods ***/
9879    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9880        IMediaPropertyBag* This,
9881        REFIID riid,
9882        void **ppvObject);
9883
9884    ULONG (STDMETHODCALLTYPE *AddRef)(
9885        IMediaPropertyBag* This);
9886
9887    ULONG (STDMETHODCALLTYPE *Release)(
9888        IMediaPropertyBag* This);
9889
9890    /*** IPropertyBag methods ***/
9891    HRESULT (STDMETHODCALLTYPE *Read)(
9892        IMediaPropertyBag* This,
9893        LPCOLESTR pszPropName,
9894        VARIANT *pVar,
9895        IErrorLog *pErrorLog);
9896
9897    HRESULT (STDMETHODCALLTYPE *Write)(
9898        IMediaPropertyBag* This,
9899        LPCOLESTR pszPropName,
9900        VARIANT *pVar);
9901
9902    /*** IMediaPropertyBag methods ***/
9903    HRESULT (STDMETHODCALLTYPE *EnumProperty)(
9904        IMediaPropertyBag* This,
9905        ULONG iProperty,
9906        VARIANT *pvarPropertyName,
9907        VARIANT *pvarPropertyValue);
9908
9909    END_INTERFACE
9910} IMediaPropertyBagVtbl;
9911interface IMediaPropertyBag {
9912    CONST_VTBL IMediaPropertyBagVtbl* lpVtbl;
9913};
9914
9915#ifdef COBJMACROS
9916#ifndef WIDL_C_INLINE_WRAPPERS
9917/*** IUnknown methods ***/
9918#define IMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9919#define IMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
9920#define IMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
9921/*** IPropertyBag methods ***/
9922#define IMediaPropertyBag_Read(This,pszPropName,pVar,pErrorLog) (This)->lpVtbl->Read(This,pszPropName,pVar,pErrorLog)
9923#define IMediaPropertyBag_Write(This,pszPropName,pVar) (This)->lpVtbl->Write(This,pszPropName,pVar)
9924/*** IMediaPropertyBag methods ***/
9925#define IMediaPropertyBag_EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue) (This)->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue)
9926#else
9927/*** IUnknown methods ***/
9928static FORCEINLINE HRESULT IMediaPropertyBag_QueryInterface(IMediaPropertyBag* This,REFIID riid,void **ppvObject) {
9929    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9930}
9931static FORCEINLINE ULONG IMediaPropertyBag_AddRef(IMediaPropertyBag* This) {
9932    return This->lpVtbl->AddRef(This);
9933}
9934static FORCEINLINE ULONG IMediaPropertyBag_Release(IMediaPropertyBag* This) {
9935    return This->lpVtbl->Release(This);
9936}
9937/*** IPropertyBag methods ***/
9938static FORCEINLINE HRESULT IMediaPropertyBag_Read(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog) {
9939    return This->lpVtbl->Read(This,pszPropName,pVar,pErrorLog);
9940}
9941static FORCEINLINE HRESULT IMediaPropertyBag_Write(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar) {
9942    return This->lpVtbl->Write(This,pszPropName,pVar);
9943}
9944/*** IMediaPropertyBag methods ***/
9945static FORCEINLINE HRESULT IMediaPropertyBag_EnumProperty(IMediaPropertyBag* This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue) {
9946    return This->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue);
9947}
9948#endif
9949#endif
9950
9951#endif
9952
9953HRESULT STDMETHODCALLTYPE IMediaPropertyBag_EnumProperty_Proxy(
9954    IMediaPropertyBag* This,
9955    ULONG iProperty,
9956    VARIANT *pvarPropertyName,
9957    VARIANT *pvarPropertyValue);
9958void __RPC_STUB IMediaPropertyBag_EnumProperty_Stub(
9959    IRpcStubBuffer* This,
9960    IRpcChannelBuffer* pRpcChannelBuffer,
9961    PRPC_MESSAGE pRpcMessage,
9962    DWORD* pdwStubPhase);
9963
9964#endif  /* __IMediaPropertyBag_INTERFACE_DEFINED__ */
9965
9966/*****************************************************************************
9967 * IPersistMediaPropertyBag interface
9968 */
9969#ifndef __IPersistMediaPropertyBag_INTERFACE_DEFINED__
9970#define __IPersistMediaPropertyBag_INTERFACE_DEFINED__
9971
9972typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
9973DEFINE_GUID(IID_IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86);
9974#if defined(__cplusplus) && !defined(CINTERFACE)
9975MIDL_INTERFACE("5738e040-b67f-11d0-bd4d-00a0c911ce86")
9976IPersistMediaPropertyBag : public IPersist
9977{
9978    virtual HRESULT STDMETHODCALLTYPE InitNew(
9979        ) = 0;
9980
9981    virtual HRESULT STDMETHODCALLTYPE Load(
9982        IMediaPropertyBag *pPropBag,
9983        IErrorLog *pErrorLog) = 0;
9984
9985    virtual HRESULT STDMETHODCALLTYPE Save(
9986        IMediaPropertyBag *pPropBag,
9987        WINBOOL fClearDirty,
9988        WINBOOL fSaveAllProperties) = 0;
9989
9990};
9991#ifdef __CRT_UUID_DECL
9992__CRT_UUID_DECL(IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86)
9993#endif
9994#else
9995typedef struct IPersistMediaPropertyBagVtbl {
9996    BEGIN_INTERFACE
9997
9998    /*** IUnknown methods ***/
9999    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10000        IPersistMediaPropertyBag* This,
10001        REFIID riid,
10002        void **ppvObject);
10003
10004    ULONG (STDMETHODCALLTYPE *AddRef)(
10005        IPersistMediaPropertyBag* This);
10006
10007    ULONG (STDMETHODCALLTYPE *Release)(
10008        IPersistMediaPropertyBag* This);
10009
10010    /*** IPersist methods ***/
10011    HRESULT (STDMETHODCALLTYPE *GetClassID)(
10012        IPersistMediaPropertyBag* This,
10013        CLSID *pClassID);
10014
10015    /*** IPersistMediaPropertyBag methods ***/
10016    HRESULT (STDMETHODCALLTYPE *InitNew)(
10017        IPersistMediaPropertyBag* This);
10018
10019    HRESULT (STDMETHODCALLTYPE *Load)(
10020        IPersistMediaPropertyBag* This,
10021        IMediaPropertyBag *pPropBag,
10022        IErrorLog *pErrorLog);
10023
10024    HRESULT (STDMETHODCALLTYPE *Save)(
10025        IPersistMediaPropertyBag* This,
10026        IMediaPropertyBag *pPropBag,
10027        WINBOOL fClearDirty,
10028        WINBOOL fSaveAllProperties);
10029
10030    END_INTERFACE
10031} IPersistMediaPropertyBagVtbl;
10032interface IPersistMediaPropertyBag {
10033    CONST_VTBL IPersistMediaPropertyBagVtbl* lpVtbl;
10034};
10035
10036#ifdef COBJMACROS
10037#ifndef WIDL_C_INLINE_WRAPPERS
10038/*** IUnknown methods ***/
10039#define IPersistMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10040#define IPersistMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
10041#define IPersistMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
10042/*** IPersist methods ***/
10043#define IPersistMediaPropertyBag_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
10044/*** IPersistMediaPropertyBag methods ***/
10045#define IPersistMediaPropertyBag_InitNew(This) (This)->lpVtbl->InitNew(This)
10046#define IPersistMediaPropertyBag_Load(This,pPropBag,pErrorLog) (This)->lpVtbl->Load(This,pPropBag,pErrorLog)
10047#define IPersistMediaPropertyBag_Save(This,pPropBag,fClearDirty,fSaveAllProperties) (This)->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties)
10048#else
10049/*** IUnknown methods ***/
10050static FORCEINLINE HRESULT IPersistMediaPropertyBag_QueryInterface(IPersistMediaPropertyBag* This,REFIID riid,void **ppvObject) {
10051    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10052}
10053static FORCEINLINE ULONG IPersistMediaPropertyBag_AddRef(IPersistMediaPropertyBag* This) {
10054    return This->lpVtbl->AddRef(This);
10055}
10056static FORCEINLINE ULONG IPersistMediaPropertyBag_Release(IPersistMediaPropertyBag* This) {
10057    return This->lpVtbl->Release(This);
10058}
10059/*** IPersist methods ***/
10060static FORCEINLINE HRESULT IPersistMediaPropertyBag_GetClassID(IPersistMediaPropertyBag* This,CLSID *pClassID) {
10061    return This->lpVtbl->GetClassID(This,pClassID);
10062}
10063/*** IPersistMediaPropertyBag methods ***/
10064static FORCEINLINE HRESULT IPersistMediaPropertyBag_InitNew(IPersistMediaPropertyBag* This) {
10065    return This->lpVtbl->InitNew(This);
10066}
10067static FORCEINLINE HRESULT IPersistMediaPropertyBag_Load(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog) {
10068    return This->lpVtbl->Load(This,pPropBag,pErrorLog);
10069}
10070static FORCEINLINE HRESULT IPersistMediaPropertyBag_Save(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties) {
10071    return This->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties);
10072}
10073#endif
10074#endif
10075
10076#endif
10077
10078HRESULT STDMETHODCALLTYPE IPersistMediaPropertyBag_InitNew_Proxy(
10079    IPersistMediaPropertyBag* This);
10080void __RPC_STUB IPersistMediaPropertyBag_InitNew_Stub(
10081    IRpcStubBuffer* This,
10082    IRpcChannelBuffer* pRpcChannelBuffer,
10083    PRPC_MESSAGE pRpcMessage,
10084    DWORD* pdwStubPhase);
10085HRESULT STDMETHODCALLTYPE IPersistMediaPropertyBag_Load_Proxy(
10086    IPersistMediaPropertyBag* This,
10087    IMediaPropertyBag *pPropBag,
10088    IErrorLog *pErrorLog);
10089void __RPC_STUB IPersistMediaPropertyBag_Load_Stub(
10090    IRpcStubBuffer* This,
10091    IRpcChannelBuffer* pRpcChannelBuffer,
10092    PRPC_MESSAGE pRpcMessage,
10093    DWORD* pdwStubPhase);
10094HRESULT STDMETHODCALLTYPE IPersistMediaPropertyBag_Save_Proxy(
10095    IPersistMediaPropertyBag* This,
10096    IMediaPropertyBag *pPropBag,
10097    WINBOOL fClearDirty,
10098    WINBOOL fSaveAllProperties);
10099void __RPC_STUB IPersistMediaPropertyBag_Save_Stub(
10100    IRpcStubBuffer* This,
10101    IRpcChannelBuffer* pRpcChannelBuffer,
10102    PRPC_MESSAGE pRpcMessage,
10103    DWORD* pdwStubPhase);
10104
10105#endif  /* __IPersistMediaPropertyBag_INTERFACE_DEFINED__ */
10106
10107/*****************************************************************************
10108 * ISeekingPassThru interface
10109 */
10110#ifndef __ISeekingPassThru_INTERFACE_DEFINED__
10111#define __ISeekingPassThru_INTERFACE_DEFINED__
10112
10113DEFINE_GUID(IID_ISeekingPassThru, 0x36b73883, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
10114#if defined(__cplusplus) && !defined(CINTERFACE)
10115MIDL_INTERFACE("36b73883-c2c8-11cf-8b46-00805f6cef60")
10116ISeekingPassThru : public IUnknown
10117{
10118    virtual HRESULT STDMETHODCALLTYPE Init(
10119        WINBOOL bSupportRendering,
10120        IPin *pPin) = 0;
10121
10122};
10123#ifdef __CRT_UUID_DECL
10124__CRT_UUID_DECL(ISeekingPassThru, 0x36b73883, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
10125#endif
10126#else
10127typedef struct ISeekingPassThruVtbl {
10128    BEGIN_INTERFACE
10129
10130    /*** IUnknown methods ***/
10131    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10132        ISeekingPassThru* This,
10133        REFIID riid,
10134        void **ppvObject);
10135
10136    ULONG (STDMETHODCALLTYPE *AddRef)(
10137        ISeekingPassThru* This);
10138
10139    ULONG (STDMETHODCALLTYPE *Release)(
10140        ISeekingPassThru* This);
10141
10142    /*** ISeekingPassThru methods ***/
10143    HRESULT (STDMETHODCALLTYPE *Init)(
10144        ISeekingPassThru* This,
10145        WINBOOL bSupportRendering,
10146        IPin *pPin);
10147
10148    END_INTERFACE
10149} ISeekingPassThruVtbl;
10150interface ISeekingPassThru {
10151    CONST_VTBL ISeekingPassThruVtbl* lpVtbl;
10152};
10153
10154#ifdef COBJMACROS
10155#ifndef WIDL_C_INLINE_WRAPPERS
10156/*** IUnknown methods ***/
10157#define ISeekingPassThru_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10158#define ISeekingPassThru_AddRef(This) (This)->lpVtbl->AddRef(This)
10159#define ISeekingPassThru_Release(This) (This)->lpVtbl->Release(This)
10160/*** ISeekingPassThru methods ***/
10161#define ISeekingPassThru_Init(This,bSupportRendering,pPin) (This)->lpVtbl->Init(This,bSupportRendering,pPin)
10162#else
10163/*** IUnknown methods ***/
10164static FORCEINLINE HRESULT ISeekingPassThru_QueryInterface(ISeekingPassThru* This,REFIID riid,void **ppvObject) {
10165    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10166}
10167static FORCEINLINE ULONG ISeekingPassThru_AddRef(ISeekingPassThru* This) {
10168    return This->lpVtbl->AddRef(This);
10169}
10170static FORCEINLINE ULONG ISeekingPassThru_Release(ISeekingPassThru* This) {
10171    return This->lpVtbl->Release(This);
10172}
10173/*** ISeekingPassThru methods ***/
10174static FORCEINLINE HRESULT ISeekingPassThru_Init(ISeekingPassThru* This,WINBOOL bSupportRendering,IPin *pPin) {
10175    return This->lpVtbl->Init(This,bSupportRendering,pPin);
10176}
10177#endif
10178#endif
10179
10180#endif
10181
10182HRESULT STDMETHODCALLTYPE ISeekingPassThru_Init_Proxy(
10183    ISeekingPassThru* This,
10184    WINBOOL bSupportRendering,
10185    IPin *pPin);
10186void __RPC_STUB ISeekingPassThru_Init_Stub(
10187    IRpcStubBuffer* This,
10188    IRpcChannelBuffer* pRpcChannelBuffer,
10189    PRPC_MESSAGE pRpcMessage,
10190    DWORD* pdwStubPhase);
10191
10192#endif  /* __ISeekingPassThru_INTERFACE_DEFINED__ */
10193
10194enum _AM_FILTER_MISC_FLAGS {
10195    AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1,
10196    AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2
10197};
10198
10199/*****************************************************************************
10200 * IAMFilterMiscFlags interface
10201 */
10202#ifndef __IAMFilterMiscFlags_INTERFACE_DEFINED__
10203#define __IAMFilterMiscFlags_INTERFACE_DEFINED__
10204
10205DEFINE_GUID(IID_IAMFilterMiscFlags, 0x2dd74950, 0xa890, 0x11d1, 0xab,0xe8, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
10206#if defined(__cplusplus) && !defined(CINTERFACE)
10207MIDL_INTERFACE("2dd74950-a890-11d1-abe8-00a0c905f375")
10208IAMFilterMiscFlags : public IUnknown
10209{
10210    virtual ULONG STDMETHODCALLTYPE GetMiscFlags(
10211        ) = 0;
10212
10213};
10214#ifdef __CRT_UUID_DECL
10215__CRT_UUID_DECL(IAMFilterMiscFlags, 0x2dd74950, 0xa890, 0x11d1, 0xab,0xe8, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
10216#endif
10217#else
10218typedef struct IAMFilterMiscFlagsVtbl {
10219    BEGIN_INTERFACE
10220
10221    /*** IUnknown methods ***/
10222    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10223        IAMFilterMiscFlags* This,
10224        REFIID riid,
10225        void **ppvObject);
10226
10227    ULONG (STDMETHODCALLTYPE *AddRef)(
10228        IAMFilterMiscFlags* This);
10229
10230    ULONG (STDMETHODCALLTYPE *Release)(
10231        IAMFilterMiscFlags* This);
10232
10233    /*** IAMFilterMiscFlags methods ***/
10234    ULONG (STDMETHODCALLTYPE *GetMiscFlags)(
10235        IAMFilterMiscFlags* This);
10236
10237    END_INTERFACE
10238} IAMFilterMiscFlagsVtbl;
10239interface IAMFilterMiscFlags {
10240    CONST_VTBL IAMFilterMiscFlagsVtbl* lpVtbl;
10241};
10242
10243#ifdef COBJMACROS
10244#ifndef WIDL_C_INLINE_WRAPPERS
10245/*** IUnknown methods ***/
10246#define IAMFilterMiscFlags_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10247#define IAMFilterMiscFlags_AddRef(This) (This)->lpVtbl->AddRef(This)
10248#define IAMFilterMiscFlags_Release(This) (This)->lpVtbl->Release(This)
10249/*** IAMFilterMiscFlags methods ***/
10250#define IAMFilterMiscFlags_GetMiscFlags(This) (This)->lpVtbl->GetMiscFlags(This)
10251#else
10252/*** IUnknown methods ***/
10253static FORCEINLINE HRESULT IAMFilterMiscFlags_QueryInterface(IAMFilterMiscFlags* This,REFIID riid,void **ppvObject) {
10254    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10255}
10256static FORCEINLINE ULONG IAMFilterMiscFlags_AddRef(IAMFilterMiscFlags* This) {
10257    return This->lpVtbl->AddRef(This);
10258}
10259static FORCEINLINE ULONG IAMFilterMiscFlags_Release(IAMFilterMiscFlags* This) {
10260    return This->lpVtbl->Release(This);
10261}
10262/*** IAMFilterMiscFlags methods ***/
10263static FORCEINLINE ULONG IAMFilterMiscFlags_GetMiscFlags(IAMFilterMiscFlags* This) {
10264    return This->lpVtbl->GetMiscFlags(This);
10265}
10266#endif
10267#endif
10268
10269#endif
10270
10271ULONG STDMETHODCALLTYPE IAMFilterMiscFlags_GetMiscFlags_Proxy(
10272    IAMFilterMiscFlags* This);
10273void __RPC_STUB IAMFilterMiscFlags_GetMiscFlags_Stub(
10274    IRpcStubBuffer* This,
10275    IRpcChannelBuffer* pRpcChannelBuffer,
10276    PRPC_MESSAGE pRpcMessage,
10277    DWORD* pdwStubPhase);
10278
10279#endif  /* __IAMFilterMiscFlags_INTERFACE_DEFINED__ */
10280
10281/*****************************************************************************
10282 * IAMGraphBuilderCallback interface
10283 */
10284#ifndef __IAMGraphBuilderCallback_INTERFACE_DEFINED__
10285#define __IAMGraphBuilderCallback_INTERFACE_DEFINED__
10286
10287DEFINE_GUID(IID_IAMGraphBuilderCallback, 0x4995f511, 0x9ddb, 0x4f12, 0xbd,0x3b, 0xf0,0x46,0x11,0x80,0x7b,0x79);
10288#if defined(__cplusplus) && !defined(CINTERFACE)
10289MIDL_INTERFACE("4995f511-9ddb-4f12-bd3b-f04611807b79")
10290IAMGraphBuilderCallback : public IUnknown
10291{
10292    virtual HRESULT STDMETHODCALLTYPE SelectedFilter(
10293        IMoniker *pMon) = 0;
10294
10295    virtual HRESULT STDMETHODCALLTYPE CreatedFilter(
10296        IBaseFilter *pFil) = 0;
10297
10298};
10299#ifdef __CRT_UUID_DECL
10300__CRT_UUID_DECL(IAMGraphBuilderCallback, 0x4995f511, 0x9ddb, 0x4f12, 0xbd,0x3b, 0xf0,0x46,0x11,0x80,0x7b,0x79)
10301#endif
10302#else
10303typedef struct IAMGraphBuilderCallbackVtbl {
10304    BEGIN_INTERFACE
10305
10306    /*** IUnknown methods ***/
10307    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10308        IAMGraphBuilderCallback* This,
10309        REFIID riid,
10310        void **ppvObject);
10311
10312    ULONG (STDMETHODCALLTYPE *AddRef)(
10313        IAMGraphBuilderCallback* This);
10314
10315    ULONG (STDMETHODCALLTYPE *Release)(
10316        IAMGraphBuilderCallback* This);
10317
10318    /*** IAMGraphBuilderCallback methods ***/
10319    HRESULT (STDMETHODCALLTYPE *SelectedFilter)(
10320        IAMGraphBuilderCallback* This,
10321        IMoniker *pMon);
10322
10323    HRESULT (STDMETHODCALLTYPE *CreatedFilter)(
10324        IAMGraphBuilderCallback* This,
10325        IBaseFilter *pFil);
10326
10327    END_INTERFACE
10328} IAMGraphBuilderCallbackVtbl;
10329interface IAMGraphBuilderCallback {
10330    CONST_VTBL IAMGraphBuilderCallbackVtbl* lpVtbl;
10331};
10332
10333#ifdef COBJMACROS
10334#ifndef WIDL_C_INLINE_WRAPPERS
10335/*** IUnknown methods ***/
10336#define IAMGraphBuilderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10337#define IAMGraphBuilderCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
10338#define IAMGraphBuilderCallback_Release(This) (This)->lpVtbl->Release(This)
10339/*** IAMGraphBuilderCallback methods ***/
10340#define IAMGraphBuilderCallback_SelectedFilter(This,pMon) (This)->lpVtbl->SelectedFilter(This,pMon)
10341#define IAMGraphBuilderCallback_CreatedFilter(This,pFil) (This)->lpVtbl->CreatedFilter(This,pFil)
10342#else
10343/*** IUnknown methods ***/
10344static FORCEINLINE HRESULT IAMGraphBuilderCallback_QueryInterface(IAMGraphBuilderCallback* This,REFIID riid,void **ppvObject) {
10345    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10346}
10347static FORCEINLINE ULONG IAMGraphBuilderCallback_AddRef(IAMGraphBuilderCallback* This) {
10348    return This->lpVtbl->AddRef(This);
10349}
10350static FORCEINLINE ULONG IAMGraphBuilderCallback_Release(IAMGraphBuilderCallback* This) {
10351    return This->lpVtbl->Release(This);
10352}
10353/*** IAMGraphBuilderCallback methods ***/
10354static FORCEINLINE HRESULT IAMGraphBuilderCallback_SelectedFilter(IAMGraphBuilderCallback* This,IMoniker *pMon) {
10355    return This->lpVtbl->SelectedFilter(This,pMon);
10356}
10357static FORCEINLINE HRESULT IAMGraphBuilderCallback_CreatedFilter(IAMGraphBuilderCallback* This,IBaseFilter *pFil) {
10358    return This->lpVtbl->CreatedFilter(This,pFil);
10359}
10360#endif
10361#endif
10362
10363#endif
10364
10365HRESULT STDMETHODCALLTYPE IAMGraphBuilderCallback_SelectedFilter_Proxy(
10366    IAMGraphBuilderCallback* This,
10367    IMoniker *pMon);
10368void __RPC_STUB IAMGraphBuilderCallback_SelectedFilter_Stub(
10369    IRpcStubBuffer* This,
10370    IRpcChannelBuffer* pRpcChannelBuffer,
10371    PRPC_MESSAGE pRpcMessage,
10372    DWORD* pdwStubPhase);
10373HRESULT STDMETHODCALLTYPE IAMGraphBuilderCallback_CreatedFilter_Proxy(
10374    IAMGraphBuilderCallback* This,
10375    IBaseFilter *pFil);
10376void __RPC_STUB IAMGraphBuilderCallback_CreatedFilter_Stub(
10377    IRpcStubBuffer* This,
10378    IRpcChannelBuffer* pRpcChannelBuffer,
10379    PRPC_MESSAGE pRpcMessage,
10380    DWORD* pdwStubPhase);
10381
10382#endif  /* __IAMGraphBuilderCallback_INTERFACE_DEFINED__ */
10383
10384/*****************************************************************************
10385 * IAMVfwCaptureDialogs interface
10386 */
10387#ifndef __IAMVfwCaptureDialogs_INTERFACE_DEFINED__
10388#define __IAMVfwCaptureDialogs_INTERFACE_DEFINED__
10389
10390DEFINE_GUID(IID_IAMVfwCaptureDialogs, 0xd8d715a0, 0x6e5e, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
10391#if defined(__cplusplus) && !defined(CINTERFACE)
10392MIDL_INTERFACE("d8d715a0-6e5e-11d0-b3f0-00aa003761c5")
10393IAMVfwCaptureDialogs : public IUnknown
10394{
10395    virtual HRESULT STDMETHODCALLTYPE HasDialog(
10396        int dialog) = 0;
10397
10398    virtual HRESULT STDMETHODCALLTYPE ShowDialog(
10399        int dialog,
10400        HWND hwnd) = 0;
10401
10402    virtual HRESULT STDMETHODCALLTYPE SendDriverMessage(
10403        int dialog,
10404        int msg,
10405        LONG data1,
10406        LONG data2) = 0;
10407
10408};
10409#ifdef __CRT_UUID_DECL
10410__CRT_UUID_DECL(IAMVfwCaptureDialogs, 0xd8d715a0, 0x6e5e, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
10411#endif
10412#else
10413typedef struct IAMVfwCaptureDialogsVtbl {
10414    BEGIN_INTERFACE
10415
10416    /*** IUnknown methods ***/
10417    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10418        IAMVfwCaptureDialogs* This,
10419        REFIID riid,
10420        void **ppvObject);
10421
10422    ULONG (STDMETHODCALLTYPE *AddRef)(
10423        IAMVfwCaptureDialogs* This);
10424
10425    ULONG (STDMETHODCALLTYPE *Release)(
10426        IAMVfwCaptureDialogs* This);
10427
10428    /*** IAMVfwCaptureDialogs methods ***/
10429    HRESULT (STDMETHODCALLTYPE *HasDialog)(
10430        IAMVfwCaptureDialogs* This,
10431        int dialog);
10432
10433    HRESULT (STDMETHODCALLTYPE *ShowDialog)(
10434        IAMVfwCaptureDialogs* This,
10435        int dialog,
10436        HWND hwnd);
10437
10438    HRESULT (STDMETHODCALLTYPE *SendDriverMessage)(
10439        IAMVfwCaptureDialogs* This,
10440        int dialog,
10441        int msg,
10442        LONG data1,
10443        LONG data2);
10444
10445    END_INTERFACE
10446} IAMVfwCaptureDialogsVtbl;
10447interface IAMVfwCaptureDialogs {
10448    CONST_VTBL IAMVfwCaptureDialogsVtbl* lpVtbl;
10449};
10450
10451#ifdef COBJMACROS
10452#ifndef WIDL_C_INLINE_WRAPPERS
10453/*** IUnknown methods ***/
10454#define IAMVfwCaptureDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10455#define IAMVfwCaptureDialogs_AddRef(This) (This)->lpVtbl->AddRef(This)
10456#define IAMVfwCaptureDialogs_Release(This) (This)->lpVtbl->Release(This)
10457/*** IAMVfwCaptureDialogs methods ***/
10458#define IAMVfwCaptureDialogs_HasDialog(This,dialog) (This)->lpVtbl->HasDialog(This,dialog)
10459#define IAMVfwCaptureDialogs_ShowDialog(This,dialog,hwnd) (This)->lpVtbl->ShowDialog(This,dialog,hwnd)
10460#define IAMVfwCaptureDialogs_SendDriverMessage(This,dialog,msg,data1,data2) (This)->lpVtbl->SendDriverMessage(This,dialog,msg,data1,data2)
10461#else
10462/*** IUnknown methods ***/
10463static FORCEINLINE HRESULT IAMVfwCaptureDialogs_QueryInterface(IAMVfwCaptureDialogs* This,REFIID riid,void **ppvObject) {
10464    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10465}
10466static FORCEINLINE ULONG IAMVfwCaptureDialogs_AddRef(IAMVfwCaptureDialogs* This) {
10467    return This->lpVtbl->AddRef(This);
10468}
10469static FORCEINLINE ULONG IAMVfwCaptureDialogs_Release(IAMVfwCaptureDialogs* This) {
10470    return This->lpVtbl->Release(This);
10471}
10472/*** IAMVfwCaptureDialogs methods ***/
10473static FORCEINLINE HRESULT IAMVfwCaptureDialogs_HasDialog(IAMVfwCaptureDialogs* This,int dialog) {
10474    return This->lpVtbl->HasDialog(This,dialog);
10475}
10476static FORCEINLINE HRESULT IAMVfwCaptureDialogs_ShowDialog(IAMVfwCaptureDialogs* This,int dialog,HWND hwnd) {
10477    return This->lpVtbl->ShowDialog(This,dialog,hwnd);
10478}
10479static FORCEINLINE HRESULT IAMVfwCaptureDialogs_SendDriverMessage(IAMVfwCaptureDialogs* This,int dialog,int msg,LONG data1,LONG data2) {
10480    return This->lpVtbl->SendDriverMessage(This,dialog,msg,data1,data2);
10481}
10482#endif
10483#endif
10484
10485#endif
10486
10487HRESULT STDMETHODCALLTYPE IAMVfwCaptureDialogs_HasDialog_Proxy(
10488    IAMVfwCaptureDialogs* This,
10489    int dialog);
10490void __RPC_STUB IAMVfwCaptureDialogs_HasDialog_Stub(
10491    IRpcStubBuffer* This,
10492    IRpcChannelBuffer* pRpcChannelBuffer,
10493    PRPC_MESSAGE pRpcMessage,
10494    DWORD* pdwStubPhase);
10495HRESULT STDMETHODCALLTYPE IAMVfwCaptureDialogs_ShowDialog_Proxy(
10496    IAMVfwCaptureDialogs* This,
10497    int dialog,
10498    HWND hwnd);
10499void __RPC_STUB IAMVfwCaptureDialogs_ShowDialog_Stub(
10500    IRpcStubBuffer* This,
10501    IRpcChannelBuffer* pRpcChannelBuffer,
10502    PRPC_MESSAGE pRpcMessage,
10503    DWORD* pdwStubPhase);
10504HRESULT STDMETHODCALLTYPE IAMVfwCaptureDialogs_SendDriverMessage_Proxy(
10505    IAMVfwCaptureDialogs* This,
10506    int dialog,
10507    int msg,
10508    LONG data1,
10509    LONG data2);
10510void __RPC_STUB IAMVfwCaptureDialogs_SendDriverMessage_Stub(
10511    IRpcStubBuffer* This,
10512    IRpcChannelBuffer* pRpcChannelBuffer,
10513    PRPC_MESSAGE pRpcMessage,
10514    DWORD* pdwStubPhase);
10515
10516#endif  /* __IAMVfwCaptureDialogs_INTERFACE_DEFINED__ */
10517
10518#ifndef __IReferenceClock2_FWD_DEFINED__
10519#define __IReferenceClock2_FWD_DEFINED__
10520typedef struct IReferenceClock2 IReferenceClock2;
10521#endif
10522#ifndef __IDistributorNotify_FWD_DEFINED__
10523#define __IDistributorNotify_FWD_DEFINED__
10524typedef struct IDistributorNotify IDistributorNotify;
10525#endif
10526
10527#ifndef __IAMVideoCompression_FWD_DEFINED__
10528#define __IAMVideoCompression_FWD_DEFINED__
10529typedef struct IAMVideoCompression IAMVideoCompression;
10530#endif
10531
10532#ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
10533#define __IAMVfwCompressDialogs_FWD_DEFINED__
10534typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs;
10535#endif
10536
10537#ifndef __IAMDroppedFrames_FWD_DEFINED__
10538#define __IAMDroppedFrames_FWD_DEFINED__
10539typedef struct IAMDroppedFrames IAMDroppedFrames;
10540#endif
10541
10542#ifndef __IAMAudioInputMixer_FWD_DEFINED__
10543#define __IAMAudioInputMixer_FWD_DEFINED__
10544typedef struct IAMAudioInputMixer IAMAudioInputMixer;
10545#endif
10546
10547#ifndef __IAMBufferNegotiation_FWD_DEFINED__
10548#define __IAMBufferNegotiation_FWD_DEFINED__
10549typedef struct IAMBufferNegotiation IAMBufferNegotiation;
10550#endif
10551
10552#ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
10553#define __IAMAnalogVideoDecoder_FWD_DEFINED__
10554typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
10555#endif
10556
10557#ifndef __IAMCameraControl_FWD_DEFINED__
10558#define __IAMCameraControl_FWD_DEFINED__
10559typedef struct IAMCameraControl IAMCameraControl;
10560#endif
10561
10562#ifndef __IAMVideoControl_FWD_DEFINED__
10563#define __IAMVideoControl_FWD_DEFINED__
10564typedef struct IAMVideoControl IAMVideoControl;
10565#endif
10566
10567#ifndef __IAMCrossbar_FWD_DEFINED__
10568#define __IAMCrossbar_FWD_DEFINED__
10569typedef struct IAMCrossbar IAMCrossbar;
10570#endif
10571
10572#ifndef __IAMTuner_FWD_DEFINED__
10573#define __IAMTuner_FWD_DEFINED__
10574typedef struct IAMTuner IAMTuner;
10575#endif
10576
10577#ifndef __IAMTunerNotification_FWD_DEFINED__
10578#define __IAMTunerNotification_FWD_DEFINED__
10579typedef struct IAMTunerNotification IAMTunerNotification;
10580#endif
10581
10582#ifndef __IAMTVTuner_FWD_DEFINED__
10583#define __IAMTVTuner_FWD_DEFINED__
10584typedef struct IAMTVTuner IAMTVTuner;
10585#endif
10586
10587#ifndef __IBPCSatelliteTuner_FWD_DEFINED__
10588#define __IBPCSatelliteTuner_FWD_DEFINED__
10589typedef struct IBPCSatelliteTuner IBPCSatelliteTuner;
10590#endif
10591
10592#ifndef __IAMTVAudio_FWD_DEFINED__
10593#define __IAMTVAudio_FWD_DEFINED__
10594typedef struct IAMTVAudio IAMTVAudio;
10595#endif
10596
10597#ifndef __IAMTVAudioNotification_FWD_DEFINED__
10598#define __IAMTVAudioNotification_FWD_DEFINED__
10599typedef struct IAMTVAudioNotification IAMTVAudioNotification;
10600#endif
10601
10602#ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
10603#define __IAMAnalogVideoEncoder_FWD_DEFINED__
10604typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
10605#endif
10606
10607#ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
10608#define __IAMPhysicalPinInfo_FWD_DEFINED__
10609typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo;
10610#endif
10611
10612#ifndef __IAMExtDevice_FWD_DEFINED__
10613#define __IAMExtDevice_FWD_DEFINED__
10614typedef struct IAMExtDevice IAMExtDevice;
10615#endif
10616
10617#ifndef __IAMExtTransport_FWD_DEFINED__
10618#define __IAMExtTransport_FWD_DEFINED__
10619typedef struct IAMExtTransport IAMExtTransport;
10620#endif
10621
10622#ifndef __IAMTimecodeReader_FWD_DEFINED__
10623#define __IAMTimecodeReader_FWD_DEFINED__
10624typedef struct IAMTimecodeReader IAMTimecodeReader;
10625#endif
10626
10627#ifndef __IAMTimecodeGenerator_FWD_DEFINED__
10628#define __IAMTimecodeGenerator_FWD_DEFINED__
10629typedef struct IAMTimecodeGenerator IAMTimecodeGenerator;
10630#endif
10631
10632#ifndef __IAMTimecodeDisplay_FWD_DEFINED__
10633#define __IAMTimecodeDisplay_FWD_DEFINED__
10634typedef struct IAMTimecodeDisplay IAMTimecodeDisplay;
10635#endif
10636
10637#ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
10638#define __IAMDevMemoryAllocator_FWD_DEFINED__
10639typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator;
10640#endif
10641
10642#ifndef __IAMDevMemoryControl_FWD_DEFINED__
10643#define __IAMDevMemoryControl_FWD_DEFINED__
10644typedef struct IAMDevMemoryControl IAMDevMemoryControl;
10645#endif
10646
10647#ifndef __IAMStreamSelect_FWD_DEFINED__
10648#define __IAMStreamSelect_FWD_DEFINED__
10649typedef struct IAMStreamSelect IAMStreamSelect;
10650#endif
10651
10652#ifndef __IAMResourceControl_FWD_DEFINED__
10653#define __IAMResourceControl_FWD_DEFINED__
10654typedef struct IAMResourceControl IAMResourceControl;
10655#endif
10656
10657#ifndef __IAMClockAdjust_FWD_DEFINED__
10658#define __IAMClockAdjust_FWD_DEFINED__
10659typedef struct IAMClockAdjust IAMClockAdjust;
10660#endif
10661
10662#ifndef __IDrawVideoImage_FWD_DEFINED__
10663#define __IDrawVideoImage_FWD_DEFINED__
10664typedef struct IDrawVideoImage IDrawVideoImage;
10665#endif
10666
10667#ifndef __IDecimateVideoImage_FWD_DEFINED__
10668#define __IDecimateVideoImage_FWD_DEFINED__
10669typedef struct IDecimateVideoImage IDecimateVideoImage;
10670#endif
10671
10672#ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
10673#define __IAMVideoDecimationProperties_FWD_DEFINED__
10674typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties;
10675#endif
10676
10677#ifndef __IVideoFrameStep_FWD_DEFINED__
10678#define __IVideoFrameStep_FWD_DEFINED__
10679typedef struct IVideoFrameStep IVideoFrameStep;
10680#endif
10681
10682#ifndef __IAMLatency_FWD_DEFINED__
10683#define __IAMLatency_FWD_DEFINED__
10684typedef struct IAMLatency IAMLatency;
10685#endif
10686
10687#ifndef __IAMPushSource_FWD_DEFINED__
10688#define __IAMPushSource_FWD_DEFINED__
10689typedef struct IAMPushSource IAMPushSource;
10690#endif
10691
10692#ifndef __IAMDeviceRemoval_FWD_DEFINED__
10693#define __IAMDeviceRemoval_FWD_DEFINED__
10694typedef struct IAMDeviceRemoval IAMDeviceRemoval;
10695#endif
10696
10697#ifndef __IDVEnc_FWD_DEFINED__
10698#define __IDVEnc_FWD_DEFINED__
10699typedef struct IDVEnc IDVEnc;
10700#endif
10701
10702#ifndef __IIPDVDec_FWD_DEFINED__
10703#define __IIPDVDec_FWD_DEFINED__
10704typedef struct IIPDVDec IIPDVDec;
10705#endif
10706
10707#ifndef __IDVRGB219_FWD_DEFINED__
10708#define __IDVRGB219_FWD_DEFINED__
10709typedef struct IDVRGB219 IDVRGB219;
10710#endif
10711
10712#ifndef __IDVSplitter_FWD_DEFINED__
10713#define __IDVSplitter_FWD_DEFINED__
10714typedef struct IDVSplitter IDVSplitter;
10715#endif
10716
10717#ifndef __IAMAudioRendererStats_FWD_DEFINED__
10718#define __IAMAudioRendererStats_FWD_DEFINED__
10719typedef struct IAMAudioRendererStats IAMAudioRendererStats;
10720#endif
10721
10722#ifndef __IAMGraphStreams_FWD_DEFINED__
10723#define __IAMGraphStreams_FWD_DEFINED__
10724typedef struct IAMGraphStreams IAMGraphStreams;
10725#endif
10726
10727#ifndef __IAMOverlayFX_FWD_DEFINED__
10728#define __IAMOverlayFX_FWD_DEFINED__
10729typedef struct IAMOverlayFX IAMOverlayFX;
10730#endif
10731
10732#ifndef __IAMOpenProgress_FWD_DEFINED__
10733#define __IAMOpenProgress_FWD_DEFINED__
10734typedef struct IAMOpenProgress IAMOpenProgress;
10735#endif
10736
10737#ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
10738#define __IMpeg2Demultiplexer_FWD_DEFINED__
10739typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer;
10740#endif
10741
10742#ifndef __IEnumStreamIdMap_FWD_DEFINED__
10743#define __IEnumStreamIdMap_FWD_DEFINED__
10744typedef struct IEnumStreamIdMap IEnumStreamIdMap;
10745#endif
10746
10747#ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
10748#define __IMPEG2StreamIdMap_FWD_DEFINED__
10749typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap;
10750#endif
10751
10752#ifndef __IRegisterServiceProvider_FWD_DEFINED__
10753#define __IRegisterServiceProvider_FWD_DEFINED__
10754typedef struct IRegisterServiceProvider IRegisterServiceProvider;
10755#endif
10756
10757#ifndef __ICodecAPI_FWD_DEFINED__
10758#define __ICodecAPI_FWD_DEFINED__
10759typedef struct ICodecAPI ICodecAPI;
10760#endif
10761
10762#ifndef __IGetCapabilitiesKey_FWD_DEFINED__
10763#define __IGetCapabilitiesKey_FWD_DEFINED__
10764typedef struct IGetCapabilitiesKey IGetCapabilitiesKey;
10765#endif
10766
10767#ifndef __IEncoderAPI_FWD_DEFINED__
10768#define __IEncoderAPI_FWD_DEFINED__
10769typedef struct IEncoderAPI IEncoderAPI;
10770#endif
10771
10772#ifndef __IVideoEncoder_FWD_DEFINED__
10773#define __IVideoEncoder_FWD_DEFINED__
10774typedef struct IVideoEncoder IVideoEncoder;
10775#endif
10776
10777#ifndef __IAMDecoderCaps_FWD_DEFINED__
10778#define __IAMDecoderCaps_FWD_DEFINED__
10779typedef struct IAMDecoderCaps IAMDecoderCaps;
10780#endif
10781
10782#ifndef __IDvdControl_FWD_DEFINED__
10783#define __IDvdControl_FWD_DEFINED__
10784typedef struct IDvdControl IDvdControl;
10785#endif
10786
10787#ifndef __IDvdInfo_FWD_DEFINED__
10788#define __IDvdInfo_FWD_DEFINED__
10789typedef struct IDvdInfo IDvdInfo;
10790#endif
10791
10792#ifndef __IDvdCmd_FWD_DEFINED__
10793#define __IDvdCmd_FWD_DEFINED__
10794typedef struct IDvdCmd IDvdCmd;
10795#endif
10796
10797#ifndef __IDvdState_FWD_DEFINED__
10798#define __IDvdState_FWD_DEFINED__
10799typedef struct IDvdState IDvdState;
10800#endif
10801
10802#ifndef __IDvdControl2_FWD_DEFINED__
10803#define __IDvdControl2_FWD_DEFINED__
10804typedef struct IDvdControl2 IDvdControl2;
10805#endif
10806
10807#ifndef __IDvdInfo2_FWD_DEFINED__
10808#define __IDvdInfo2_FWD_DEFINED__
10809typedef struct IDvdInfo2 IDvdInfo2;
10810#endif
10811
10812#ifndef __IDvdGraphBuilder_FWD_DEFINED__
10813#define __IDvdGraphBuilder_FWD_DEFINED__
10814typedef struct IDvdGraphBuilder IDvdGraphBuilder;
10815#endif
10816
10817#ifndef __IDDrawExclModeVideo_FWD_DEFINED__
10818#define __IDDrawExclModeVideo_FWD_DEFINED__
10819typedef struct IDDrawExclModeVideo IDDrawExclModeVideo;
10820#endif
10821
10822#ifndef __IDDrawExclModeVideoCallback_FWD_DEFINED__
10823#define __IDDrawExclModeVideoCallback_FWD_DEFINED__
10824typedef struct IDDrawExclModeVideoCallback IDDrawExclModeVideoCallback;
10825#endif
10826
10827#ifndef __IPinConnection_FWD_DEFINED__
10828#define __IPinConnection_FWD_DEFINED__
10829typedef struct IPinConnection IPinConnection;
10830#endif
10831
10832#ifndef __IPinFlowControl_FWD_DEFINED__
10833#define __IPinFlowControl_FWD_DEFINED__
10834typedef struct IPinFlowControl IPinFlowControl;
10835#endif
10836
10837#ifndef __IGraphConfig_FWD_DEFINED__
10838#define __IGraphConfig_FWD_DEFINED__
10839typedef struct IGraphConfig IGraphConfig;
10840#endif
10841
10842#ifndef __IGraphConfigCallback_FWD_DEFINED__
10843#define __IGraphConfigCallback_FWD_DEFINED__
10844typedef struct IGraphConfigCallback IGraphConfigCallback;
10845#endif
10846
10847#ifndef __IFilterChain_FWD_DEFINED__
10848#define __IFilterChain_FWD_DEFINED__
10849typedef struct IFilterChain IFilterChain;
10850#endif
10851
10852#ifndef __IVMRImagePresenter_FWD_DEFINED__
10853#define __IVMRImagePresenter_FWD_DEFINED__
10854typedef struct IVMRImagePresenter IVMRImagePresenter;
10855#endif
10856
10857#ifndef __IVMRSurfaceAllocator_FWD_DEFINED__
10858#define __IVMRSurfaceAllocator_FWD_DEFINED__
10859typedef struct IVMRSurfaceAllocator IVMRSurfaceAllocator;
10860#endif
10861
10862#ifndef __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
10863#define __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
10864typedef struct IVMRSurfaceAllocatorNotify IVMRSurfaceAllocatorNotify;
10865#endif
10866
10867#ifndef __IVMRWindowlessControl_FWD_DEFINED__
10868#define __IVMRWindowlessControl_FWD_DEFINED__
10869typedef struct IVMRWindowlessControl IVMRWindowlessControl;
10870#endif
10871
10872#ifndef __IVMRMixerControl_FWD_DEFINED__
10873#define __IVMRMixerControl_FWD_DEFINED__
10874typedef struct IVMRMixerControl IVMRMixerControl;
10875#endif
10876
10877#ifndef __IVMRMonitorConfig_FWD_DEFINED__
10878#define __IVMRMonitorConfig_FWD_DEFINED__
10879typedef struct IVMRMonitorConfig IVMRMonitorConfig;
10880#endif
10881
10882#ifndef __IVMRFilterConfig_FWD_DEFINED__
10883#define __IVMRFilterConfig_FWD_DEFINED__
10884typedef struct IVMRFilterConfig IVMRFilterConfig;
10885#endif
10886
10887#ifndef __IVMRAspectRatioControl_FWD_DEFINED__
10888#define __IVMRAspectRatioControl_FWD_DEFINED__
10889typedef struct IVMRAspectRatioControl IVMRAspectRatioControl;
10890#endif
10891
10892#ifndef __IVMRDeinterlaceControl_FWD_DEFINED__
10893#define __IVMRDeinterlaceControl_FWD_DEFINED__
10894typedef struct IVMRDeinterlaceControl IVMRDeinterlaceControl;
10895#endif
10896
10897#ifndef __IVMRMixerBitmap_FWD_DEFINED__
10898#define __IVMRMixerBitmap_FWD_DEFINED__
10899typedef struct IVMRMixerBitmap IVMRMixerBitmap;
10900#endif
10901
10902#ifndef __IVMRImageCompositor_FWD_DEFINED__
10903#define __IVMRImageCompositor_FWD_DEFINED__
10904typedef struct IVMRImageCompositor IVMRImageCompositor;
10905#endif
10906
10907#ifndef __IVMRVideoStreamControl_FWD_DEFINED__
10908#define __IVMRVideoStreamControl_FWD_DEFINED__
10909typedef struct IVMRVideoStreamControl IVMRVideoStreamControl;
10910#endif
10911
10912#ifndef __IVMRSurface_FWD_DEFINED__
10913#define __IVMRSurface_FWD_DEFINED__
10914typedef struct IVMRSurface IVMRSurface;
10915#endif
10916
10917#ifndef __IVMRImagePresenterConfig_FWD_DEFINED__
10918#define __IVMRImagePresenterConfig_FWD_DEFINED__
10919typedef struct IVMRImagePresenterConfig IVMRImagePresenterConfig;
10920#endif
10921
10922#ifndef __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
10923#define __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
10924typedef struct IVMRImagePresenterExclModeConfig IVMRImagePresenterExclModeConfig;
10925#endif
10926
10927#ifndef __IVPManager_FWD_DEFINED__
10928#define __IVPManager_FWD_DEFINED__
10929typedef struct IVPManager IVPManager;
10930#endif
10931
10932#ifndef __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
10933#define __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
10934typedef struct IAMAsyncReaderTimestampScaling IAMAsyncReaderTimestampScaling;
10935#endif
10936
10937#ifndef __IAMPluginControl_FWD_DEFINED__
10938#define __IAMPluginControl_FWD_DEFINED__
10939typedef struct IAMPluginControl IAMPluginControl;
10940#endif
10941
10942#include "ocidl.h"
10943
10944  extern RPC_IF_HANDLE __MIDL_itf_strmif_0125_v0_0_c_ifspec;
10945  extern RPC_IF_HANDLE __MIDL_itf_strmif_0125_v0_0_s_ifspec;
10946#ifndef __IReferenceClock2_INTERFACE_DEFINED__
10947#define __IReferenceClock2_INTERFACE_DEFINED__
10948  EXTERN_C const IID IID_IReferenceClock2;
10949#if defined(__cplusplus) && !defined(CINTERFACE)
10950  struct IReferenceClock2 : public IReferenceClock {
10951  };
10952#else
10953  typedef struct IReferenceClock2Vtbl {
10954    BEGIN_INTERFACE
10955      HRESULT (WINAPI *QueryInterface)(IReferenceClock2 *This,REFIID riid,void **ppvObject);
10956      ULONG (WINAPI *AddRef)(IReferenceClock2 *This);
10957      ULONG (WINAPI *Release)(IReferenceClock2 *This);
10958      HRESULT (WINAPI *GetTime)(IReferenceClock2 *This,REFERENCE_TIME *pTime);
10959      HRESULT (WINAPI *AdviseTime)(IReferenceClock2 *This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie);
10960      HRESULT (WINAPI *AdvisePeriodic)(IReferenceClock2 *This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie);
10961      HRESULT (WINAPI *Unadvise)(IReferenceClock2 *This,DWORD_PTR dwAdviseCookie);
10962    END_INTERFACE
10963  } IReferenceClock2Vtbl;
10964  struct IReferenceClock2 {
10965    CONST_VTBL struct IReferenceClock2Vtbl *lpVtbl;
10966  };
10967#ifdef COBJMACROS
10968#define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10969#define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
10970#define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
10971#define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
10972#define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
10973#define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
10974#define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
10975#endif
10976#endif
10977#endif
10978
10979  typedef IReferenceClock2 *PREFERENCECLOCK2;
10980
10981#ifndef __IDistributorNotify_INTERFACE_DEFINED__
10982#define __IDistributorNotify_INTERFACE_DEFINED__
10983  EXTERN_C const IID IID_IDistributorNotify;
10984#if defined(__cplusplus) && !defined(CINTERFACE)
10985  struct IDistributorNotify : public IUnknown {
10986  public:
10987    virtual HRESULT WINAPI Stop(void) = 0;
10988    virtual HRESULT WINAPI Pause(void) = 0;
10989    virtual HRESULT WINAPI Run(REFERENCE_TIME tStart) = 0;
10990    virtual HRESULT WINAPI SetSyncSource(IReferenceClock *pClock) = 0;
10991    virtual HRESULT WINAPI NotifyGraphChange(void) = 0;
10992  };
10993#else
10994  typedef struct IDistributorNotifyVtbl {
10995    BEGIN_INTERFACE
10996      HRESULT (WINAPI *QueryInterface)(IDistributorNotify *This,REFIID riid,void **ppvObject);
10997      ULONG (WINAPI *AddRef)(IDistributorNotify *This);
10998      ULONG (WINAPI *Release)(IDistributorNotify *This);
10999      HRESULT (WINAPI *Stop)(IDistributorNotify *This);
11000      HRESULT (WINAPI *Pause)(IDistributorNotify *This);
11001      HRESULT (WINAPI *Run)(IDistributorNotify *This,REFERENCE_TIME tStart);
11002      HRESULT (WINAPI *SetSyncSource)(IDistributorNotify *This,IReferenceClock *pClock);
11003      HRESULT (WINAPI *NotifyGraphChange)(IDistributorNotify *This);
11004    END_INTERFACE
11005  } IDistributorNotifyVtbl;
11006  struct IDistributorNotify {
11007    CONST_VTBL struct IDistributorNotifyVtbl *lpVtbl;
11008  };
11009#ifdef COBJMACROS
11010#define IDistributorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11011#define IDistributorNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
11012#define IDistributorNotify_Release(This) (This)->lpVtbl->Release(This)
11013#define IDistributorNotify_Stop(This) (This)->lpVtbl->Stop(This)
11014#define IDistributorNotify_Pause(This) (This)->lpVtbl->Pause(This)
11015#define IDistributorNotify_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
11016#define IDistributorNotify_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
11017#define IDistributorNotify_NotifyGraphChange(This) (This)->lpVtbl->NotifyGraphChange(This)
11018#endif
11019#endif
11020  HRESULT WINAPI IDistributorNotify_Stop_Proxy(IDistributorNotify *This);
11021  void __RPC_STUB IDistributorNotify_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11022  HRESULT WINAPI IDistributorNotify_Pause_Proxy(IDistributorNotify *This);
11023  void __RPC_STUB IDistributorNotify_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11024  HRESULT WINAPI IDistributorNotify_Run_Proxy(IDistributorNotify *This,REFERENCE_TIME tStart);
11025  void __RPC_STUB IDistributorNotify_Run_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11026  HRESULT WINAPI IDistributorNotify_SetSyncSource_Proxy(IDistributorNotify *This,IReferenceClock *pClock);
11027  void __RPC_STUB IDistributorNotify_SetSyncSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11028  HRESULT WINAPI IDistributorNotify_NotifyGraphChange_Proxy(IDistributorNotify *This);
11029  void __RPC_STUB IDistributorNotify_NotifyGraphChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11030#endif
11031
11032  typedef enum __MIDL___MIDL_itf_strmif_0167_0001 {
11033    CompressionCaps_CanQuality = 0x1,CompressionCaps_CanCrunch = 0x2,CompressionCaps_CanKeyFrame = 0x4,CompressionCaps_CanBFrame = 0x8,
11034    CompressionCaps_CanWindow = 0x10
11035  } CompressionCaps;
11036
11037  extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_c_ifspec;
11038  extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_s_ifspec;
11039#ifndef __IAMVideoCompression_INTERFACE_DEFINED__
11040#define __IAMVideoCompression_INTERFACE_DEFINED__
11041  EXTERN_C const IID IID_IAMVideoCompression;
11042#if defined(__cplusplus) && !defined(CINTERFACE)
11043  struct IAMVideoCompression : public IUnknown {
11044  public:
11045    virtual HRESULT WINAPI put_KeyFrameRate(LONG KeyFrameRate) = 0;
11046    virtual HRESULT WINAPI get_KeyFrameRate(LONG *pKeyFrameRate) = 0;
11047    virtual HRESULT WINAPI put_PFramesPerKeyFrame(LONG PFramesPerKeyFrame) = 0;
11048    virtual HRESULT WINAPI get_PFramesPerKeyFrame(LONG *pPFramesPerKeyFrame) = 0;
11049    virtual HRESULT WINAPI put_Quality(double Quality) = 0;
11050    virtual HRESULT WINAPI get_Quality(double *pQuality) = 0;
11051    virtual HRESULT WINAPI put_WindowSize(DWORDLONG WindowSize) = 0;
11052    virtual HRESULT WINAPI get_WindowSize(DWORDLONG *pWindowSize) = 0;
11053    virtual HRESULT WINAPI GetInfo(WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities) = 0;
11054    virtual HRESULT WINAPI OverrideKeyFrame(LONG FrameNumber) = 0;
11055    virtual HRESULT WINAPI OverrideFrameSize(LONG FrameNumber,LONG Size) = 0;
11056  };
11057#else
11058  typedef struct IAMVideoCompressionVtbl {
11059    BEGIN_INTERFACE
11060      HRESULT (WINAPI *QueryInterface)(IAMVideoCompression *This,REFIID riid,void **ppvObject);
11061      ULONG (WINAPI *AddRef)(IAMVideoCompression *This);
11062      ULONG (WINAPI *Release)(IAMVideoCompression *This);
11063      HRESULT (WINAPI *put_KeyFrameRate)(IAMVideoCompression *This,LONG KeyFrameRate);
11064      HRESULT (WINAPI *get_KeyFrameRate)(IAMVideoCompression *This,LONG *pKeyFrameRate);
11065      HRESULT (WINAPI *put_PFramesPerKeyFrame)(IAMVideoCompression *This,LONG PFramesPerKeyFrame);
11066      HRESULT (WINAPI *get_PFramesPerKeyFrame)(IAMVideoCompression *This,LONG *pPFramesPerKeyFrame);
11067      HRESULT (WINAPI *put_Quality)(IAMVideoCompression *This,double Quality);
11068      HRESULT (WINAPI *get_Quality)(IAMVideoCompression *This,double *pQuality);
11069      HRESULT (WINAPI *put_WindowSize)(IAMVideoCompression *This,DWORDLONG WindowSize);
11070      HRESULT (WINAPI *get_WindowSize)(IAMVideoCompression *This,DWORDLONG *pWindowSize);
11071      HRESULT (WINAPI *GetInfo)(IAMVideoCompression *This,WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities);
11072      HRESULT (WINAPI *OverrideKeyFrame)(IAMVideoCompression *This,LONG FrameNumber);
11073      HRESULT (WINAPI *OverrideFrameSize)(IAMVideoCompression *This,LONG FrameNumber,LONG Size);
11074    END_INTERFACE
11075  } IAMVideoCompressionVtbl;
11076  struct IAMVideoCompression {
11077    CONST_VTBL struct IAMVideoCompressionVtbl *lpVtbl;
11078  };
11079#ifdef COBJMACROS
11080#define IAMVideoCompression_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11081#define IAMVideoCompression_AddRef(This) (This)->lpVtbl->AddRef(This)
11082#define IAMVideoCompression_Release(This) (This)->lpVtbl->Release(This)
11083#define IAMVideoCompression_put_KeyFrameRate(This,KeyFrameRate) (This)->lpVtbl->put_KeyFrameRate(This,KeyFrameRate)
11084#define IAMVideoCompression_get_KeyFrameRate(This,pKeyFrameRate) (This)->lpVtbl->get_KeyFrameRate(This,pKeyFrameRate)
11085#define IAMVideoCompression_put_PFramesPerKeyFrame(This,PFramesPerKeyFrame) (This)->lpVtbl->put_PFramesPerKeyFrame(This,PFramesPerKeyFrame)
11086#define IAMVideoCompression_get_PFramesPerKeyFrame(This,pPFramesPerKeyFrame) (This)->lpVtbl->get_PFramesPerKeyFrame(This,pPFramesPerKeyFrame)
11087#define IAMVideoCompression_put_Quality(This,Quality) (This)->lpVtbl->put_Quality(This,Quality)
11088#define IAMVideoCompression_get_Quality(This,pQuality) (This)->lpVtbl->get_Quality(This,pQuality)
11089#define IAMVideoCompression_put_WindowSize(This,WindowSize) (This)->lpVtbl->put_WindowSize(This,WindowSize)
11090#define IAMVideoCompression_get_WindowSize(This,pWindowSize) (This)->lpVtbl->get_WindowSize(This,pWindowSize)
11091#define IAMVideoCompression_GetInfo(This,pszVersion,pcbVersion,pszDescription,pcbDescription,pDefaultKeyFrameRate,pDefaultPFramesPerKey,pDefaultQuality,pCapabilities) (This)->lpVtbl->GetInfo(This,pszVersion,pcbVersion,pszDescription,pcbDescription,pDefaultKeyFrameRate,pDefaultPFramesPerKey,pDefaultQuality,pCapabilities)
11092#define IAMVideoCompression_OverrideKeyFrame(This,FrameNumber) (This)->lpVtbl->OverrideKeyFrame(This,FrameNumber)
11093#define IAMVideoCompression_OverrideFrameSize(This,FrameNumber,Size) (This)->lpVtbl->OverrideFrameSize(This,FrameNumber,Size)
11094#endif
11095#endif
11096  HRESULT WINAPI IAMVideoCompression_put_KeyFrameRate_Proxy(IAMVideoCompression *This,LONG KeyFrameRate);
11097  void __RPC_STUB IAMVideoCompression_put_KeyFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11098  HRESULT WINAPI IAMVideoCompression_get_KeyFrameRate_Proxy(IAMVideoCompression *This,LONG *pKeyFrameRate);
11099  void __RPC_STUB IAMVideoCompression_get_KeyFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11100  HRESULT WINAPI IAMVideoCompression_put_PFramesPerKeyFrame_Proxy(IAMVideoCompression *This,LONG PFramesPerKeyFrame);
11101  void __RPC_STUB IAMVideoCompression_put_PFramesPerKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11102  HRESULT WINAPI IAMVideoCompression_get_PFramesPerKeyFrame_Proxy(IAMVideoCompression *This,LONG *pPFramesPerKeyFrame);
11103  void __RPC_STUB IAMVideoCompression_get_PFramesPerKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11104  HRESULT WINAPI IAMVideoCompression_put_Quality_Proxy(IAMVideoCompression *This,double Quality);
11105  void __RPC_STUB IAMVideoCompression_put_Quality_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11106  HRESULT WINAPI IAMVideoCompression_get_Quality_Proxy(IAMVideoCompression *This,double *pQuality);
11107  void __RPC_STUB IAMVideoCompression_get_Quality_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11108  HRESULT WINAPI IAMVideoCompression_put_WindowSize_Proxy(IAMVideoCompression *This,DWORDLONG WindowSize);
11109  void __RPC_STUB IAMVideoCompression_put_WindowSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11110  HRESULT WINAPI IAMVideoCompression_get_WindowSize_Proxy(IAMVideoCompression *This,DWORDLONG *pWindowSize);
11111  void __RPC_STUB IAMVideoCompression_get_WindowSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11112  HRESULT WINAPI IAMVideoCompression_GetInfo_Proxy(IAMVideoCompression *This,WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities);
11113  void __RPC_STUB IAMVideoCompression_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11114  HRESULT WINAPI IAMVideoCompression_OverrideKeyFrame_Proxy(IAMVideoCompression *This,LONG FrameNumber);
11115  void __RPC_STUB IAMVideoCompression_OverrideKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11116  HRESULT WINAPI IAMVideoCompression_OverrideFrameSize_Proxy(IAMVideoCompression *This,LONG FrameNumber,LONG Size);
11117  void __RPC_STUB IAMVideoCompression_OverrideFrameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11118#endif
11119
11120  typedef enum __MIDL___MIDL_itf_strmif_0168_0001 {
11121    VfwCaptureDialog_Source = 0x1,VfwCaptureDialog_Format = 0x2,VfwCaptureDialog_Display = 0x4
11122  } VfwCaptureDialogs;
11123
11124  typedef enum __MIDL___MIDL_itf_strmif_0168_0002 {
11125    VfwCompressDialog_Config = 0x1,VfwCompressDialog_About = 0x2,VfwCompressDialog_QueryConfig = 0x4,VfwCompressDialog_QueryAbout = 0x8
11126  } VfwCompressDialogs;
11127
11128#ifndef __IAMVfwCompressDialogs_INTERFACE_DEFINED__
11129#define __IAMVfwCompressDialogs_INTERFACE_DEFINED__
11130  EXTERN_C const IID IID_IAMVfwCompressDialogs;
11131#if defined(__cplusplus) && !defined(CINTERFACE)
11132  struct IAMVfwCompressDialogs : public IUnknown {
11133  public:
11134    virtual HRESULT WINAPI ShowDialog(int iDialog,HWND hwnd) = 0;
11135    virtual HRESULT WINAPI GetState(LPVOID pState,int *pcbState) = 0;
11136    virtual HRESULT WINAPI SetState(LPVOID pState,int cbState) = 0;
11137    virtual HRESULT WINAPI SendDriverMessage(int uMsg,LONG dw1,LONG dw2) = 0;
11138  };
11139#else
11140  typedef struct IAMVfwCompressDialogsVtbl {
11141    BEGIN_INTERFACE
11142      HRESULT (WINAPI *QueryInterface)(IAMVfwCompressDialogs *This,REFIID riid,void **ppvObject);
11143      ULONG (WINAPI *AddRef)(IAMVfwCompressDialogs *This);
11144      ULONG (WINAPI *Release)(IAMVfwCompressDialogs *This);
11145      HRESULT (WINAPI *ShowDialog)(IAMVfwCompressDialogs *This,int iDialog,HWND hwnd);
11146      HRESULT (WINAPI *GetState)(IAMVfwCompressDialogs *This,LPVOID pState,int *pcbState);
11147      HRESULT (WINAPI *SetState)(IAMVfwCompressDialogs *This,LPVOID pState,int cbState);
11148      HRESULT (WINAPI *SendDriverMessage)(IAMVfwCompressDialogs *This,int uMsg,LONG dw1,LONG dw2);
11149    END_INTERFACE
11150  } IAMVfwCompressDialogsVtbl;
11151  struct IAMVfwCompressDialogs {
11152    CONST_VTBL struct IAMVfwCompressDialogsVtbl *lpVtbl;
11153  };
11154#ifdef COBJMACROS
11155#define IAMVfwCompressDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11156#define IAMVfwCompressDialogs_AddRef(This) (This)->lpVtbl->AddRef(This)
11157#define IAMVfwCompressDialogs_Release(This) (This)->lpVtbl->Release(This)
11158#define IAMVfwCompressDialogs_ShowDialog(This,iDialog,hwnd) (This)->lpVtbl->ShowDialog(This,iDialog,hwnd)
11159#define IAMVfwCompressDialogs_GetState(This,pState,pcbState) (This)->lpVtbl->GetState(This,pState,pcbState)
11160#define IAMVfwCompressDialogs_SetState(This,pState,cbState) (This)->lpVtbl->SetState(This,pState,cbState)
11161#define IAMVfwCompressDialogs_SendDriverMessage(This,uMsg,dw1,dw2) (This)->lpVtbl->SendDriverMessage(This,uMsg,dw1,dw2)
11162#endif
11163#endif
11164  HRESULT WINAPI IAMVfwCompressDialogs_ShowDialog_Proxy(IAMVfwCompressDialogs *This,int iDialog,HWND hwnd);
11165  void __RPC_STUB IAMVfwCompressDialogs_ShowDialog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11166  HRESULT WINAPI IAMVfwCompressDialogs_GetState_Proxy(IAMVfwCompressDialogs *This,LPVOID pState,int *pcbState);
11167  void __RPC_STUB IAMVfwCompressDialogs_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11168  HRESULT WINAPI IAMVfwCompressDialogs_SetState_Proxy(IAMVfwCompressDialogs *This,LPVOID pState,int cbState);
11169  void __RPC_STUB IAMVfwCompressDialogs_SetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11170  HRESULT WINAPI IAMVfwCompressDialogs_SendDriverMessage_Proxy(IAMVfwCompressDialogs *This,int uMsg,LONG dw1,LONG dw2);
11171  void __RPC_STUB IAMVfwCompressDialogs_SendDriverMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11172#endif
11173
11174#ifndef __IAMDroppedFrames_INTERFACE_DEFINED__
11175#define __IAMDroppedFrames_INTERFACE_DEFINED__
11176  EXTERN_C const IID IID_IAMDroppedFrames;
11177#if defined(__cplusplus) && !defined(CINTERFACE)
11178  struct IAMDroppedFrames : public IUnknown {
11179  public:
11180    virtual HRESULT WINAPI GetNumDropped(LONG *plDropped) = 0;
11181    virtual HRESULT WINAPI GetNumNotDropped(LONG *plNotDropped) = 0;
11182    virtual HRESULT WINAPI GetDroppedInfo(LONG lSize,LONG *plArray,LONG *plNumCopied) = 0;
11183    virtual HRESULT WINAPI GetAverageFrameSize(LONG *plAverageSize) = 0;
11184  };
11185#else
11186  typedef struct IAMDroppedFramesVtbl {
11187    BEGIN_INTERFACE
11188      HRESULT (WINAPI *QueryInterface)(IAMDroppedFrames *This,REFIID riid,void **ppvObject);
11189      ULONG (WINAPI *AddRef)(IAMDroppedFrames *This);
11190      ULONG (WINAPI *Release)(IAMDroppedFrames *This);
11191      HRESULT (WINAPI *GetNumDropped)(IAMDroppedFrames *This,LONG *plDropped);
11192      HRESULT (WINAPI *GetNumNotDropped)(IAMDroppedFrames *This,LONG *plNotDropped);
11193      HRESULT (WINAPI *GetDroppedInfo)(IAMDroppedFrames *This,LONG lSize,LONG *plArray,LONG *plNumCopied);
11194      HRESULT (WINAPI *GetAverageFrameSize)(IAMDroppedFrames *This,LONG *plAverageSize);
11195    END_INTERFACE
11196  } IAMDroppedFramesVtbl;
11197  struct IAMDroppedFrames {
11198    CONST_VTBL struct IAMDroppedFramesVtbl *lpVtbl;
11199  };
11200#ifdef COBJMACROS
11201#define IAMDroppedFrames_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11202#define IAMDroppedFrames_AddRef(This) (This)->lpVtbl->AddRef(This)
11203#define IAMDroppedFrames_Release(This) (This)->lpVtbl->Release(This)
11204#define IAMDroppedFrames_GetNumDropped(This,plDropped) (This)->lpVtbl->GetNumDropped(This,plDropped)
11205#define IAMDroppedFrames_GetNumNotDropped(This,plNotDropped) (This)->lpVtbl->GetNumNotDropped(This,plNotDropped)
11206#define IAMDroppedFrames_GetDroppedInfo(This,lSize,plArray,plNumCopied) (This)->lpVtbl->GetDroppedInfo(This,lSize,plArray,plNumCopied)
11207#define IAMDroppedFrames_GetAverageFrameSize(This,plAverageSize) (This)->lpVtbl->GetAverageFrameSize(This,plAverageSize)
11208#endif
11209#endif
11210  HRESULT WINAPI IAMDroppedFrames_GetNumDropped_Proxy(IAMDroppedFrames *This,LONG *plDropped);
11211  void __RPC_STUB IAMDroppedFrames_GetNumDropped_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11212  HRESULT WINAPI IAMDroppedFrames_GetNumNotDropped_Proxy(IAMDroppedFrames *This,LONG *plNotDropped);
11213  void __RPC_STUB IAMDroppedFrames_GetNumNotDropped_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11214  HRESULT WINAPI IAMDroppedFrames_GetDroppedInfo_Proxy(IAMDroppedFrames *This,LONG lSize,LONG *plArray,LONG *plNumCopied);
11215  void __RPC_STUB IAMDroppedFrames_GetDroppedInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11216  HRESULT WINAPI IAMDroppedFrames_GetAverageFrameSize_Proxy(IAMDroppedFrames *This,LONG *plAverageSize);
11217  void __RPC_STUB IAMDroppedFrames_GetAverageFrameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11218#endif
11219
11220#define AMF_AUTOMATICGAIN -1.0
11221
11222  extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_c_ifspec;
11223  extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_s_ifspec;
11224#ifndef __IAMAudioInputMixer_INTERFACE_DEFINED__
11225#define __IAMAudioInputMixer_INTERFACE_DEFINED__
11226  EXTERN_C const IID IID_IAMAudioInputMixer;
11227#if defined(__cplusplus) && !defined(CINTERFACE)
11228  struct IAMAudioInputMixer : public IUnknown {
11229  public:
11230    virtual HRESULT WINAPI put_Enable(WINBOOL fEnable) = 0;
11231    virtual HRESULT WINAPI get_Enable(WINBOOL *pfEnable) = 0;
11232    virtual HRESULT WINAPI put_Mono(WINBOOL fMono) = 0;
11233    virtual HRESULT WINAPI get_Mono(WINBOOL *pfMono) = 0;
11234    virtual HRESULT WINAPI put_MixLevel(double Level) = 0;
11235    virtual HRESULT WINAPI get_MixLevel(double *pLevel) = 0;
11236    virtual HRESULT WINAPI put_Pan(double Pan) = 0;
11237    virtual HRESULT WINAPI get_Pan(double *pPan) = 0;
11238    virtual HRESULT WINAPI put_Loudness(WINBOOL fLoudness) = 0;
11239    virtual HRESULT WINAPI get_Loudness(WINBOOL *pfLoudness) = 0;
11240    virtual HRESULT WINAPI put_Treble(double Treble) = 0;
11241    virtual HRESULT WINAPI get_Treble(double *pTreble) = 0;
11242    virtual HRESULT WINAPI get_TrebleRange(double *pRange) = 0;
11243    virtual HRESULT WINAPI put_Bass(double Bass) = 0;
11244    virtual HRESULT WINAPI get_Bass(double *pBass) = 0;
11245    virtual HRESULT WINAPI get_BassRange(double *pRange) = 0;
11246  };
11247#else
11248  typedef struct IAMAudioInputMixerVtbl {
11249    BEGIN_INTERFACE
11250      HRESULT (WINAPI *QueryInterface)(IAMAudioInputMixer *This,REFIID riid,void **ppvObject);
11251      ULONG (WINAPI *AddRef)(IAMAudioInputMixer *This);
11252      ULONG (WINAPI *Release)(IAMAudioInputMixer *This);
11253      HRESULT (WINAPI *put_Enable)(IAMAudioInputMixer *This,WINBOOL fEnable);
11254      HRESULT (WINAPI *get_Enable)(IAMAudioInputMixer *This,WINBOOL *pfEnable);
11255      HRESULT (WINAPI *put_Mono)(IAMAudioInputMixer *This,WINBOOL fMono);
11256      HRESULT (WINAPI *get_Mono)(IAMAudioInputMixer *This,WINBOOL *pfMono);
11257      HRESULT (WINAPI *put_MixLevel)(IAMAudioInputMixer *This,double Level);
11258      HRESULT (WINAPI *get_MixLevel)(IAMAudioInputMixer *This,double *pLevel);
11259      HRESULT (WINAPI *put_Pan)(IAMAudioInputMixer *This,double Pan);
11260      HRESULT (WINAPI *get_Pan)(IAMAudioInputMixer *This,double *pPan);
11261      HRESULT (WINAPI *put_Loudness)(IAMAudioInputMixer *This,WINBOOL fLoudness);
11262      HRESULT (WINAPI *get_Loudness)(IAMAudioInputMixer *This,WINBOOL *pfLoudness);
11263      HRESULT (WINAPI *put_Treble)(IAMAudioInputMixer *This,double Treble);
11264      HRESULT (WINAPI *get_Treble)(IAMAudioInputMixer *This,double *pTreble);
11265      HRESULT (WINAPI *get_TrebleRange)(IAMAudioInputMixer *This,double *pRange);
11266      HRESULT (WINAPI *put_Bass)(IAMAudioInputMixer *This,double Bass);
11267      HRESULT (WINAPI *get_Bass)(IAMAudioInputMixer *This,double *pBass);
11268      HRESULT (WINAPI *get_BassRange)(IAMAudioInputMixer *This,double *pRange);
11269    END_INTERFACE
11270  } IAMAudioInputMixerVtbl;
11271  struct IAMAudioInputMixer {
11272    CONST_VTBL struct IAMAudioInputMixerVtbl *lpVtbl;
11273  };
11274#ifdef COBJMACROS
11275#define IAMAudioInputMixer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11276#define IAMAudioInputMixer_AddRef(This) (This)->lpVtbl->AddRef(This)
11277#define IAMAudioInputMixer_Release(This) (This)->lpVtbl->Release(This)
11278#define IAMAudioInputMixer_put_Enable(This,fEnable) (This)->lpVtbl->put_Enable(This,fEnable)
11279#define IAMAudioInputMixer_get_Enable(This,pfEnable) (This)->lpVtbl->get_Enable(This,pfEnable)
11280#define IAMAudioInputMixer_put_Mono(This,fMono) (This)->lpVtbl->put_Mono(This,fMono)
11281#define IAMAudioInputMixer_get_Mono(This,pfMono) (This)->lpVtbl->get_Mono(This,pfMono)
11282#define IAMAudioInputMixer_put_MixLevel(This,Level) (This)->lpVtbl->put_MixLevel(This,Level)
11283#define IAMAudioInputMixer_get_MixLevel(This,pLevel) (This)->lpVtbl->get_MixLevel(This,pLevel)
11284#define IAMAudioInputMixer_put_Pan(This,Pan) (This)->lpVtbl->put_Pan(This,Pan)
11285#define IAMAudioInputMixer_get_Pan(This,pPan) (This)->lpVtbl->get_Pan(This,pPan)
11286#define IAMAudioInputMixer_put_Loudness(This,fLoudness) (This)->lpVtbl->put_Loudness(This,fLoudness)
11287#define IAMAudioInputMixer_get_Loudness(This,pfLoudness) (This)->lpVtbl->get_Loudness(This,pfLoudness)
11288#define IAMAudioInputMixer_put_Treble(This,Treble) (This)->lpVtbl->put_Treble(This,Treble)
11289#define IAMAudioInputMixer_get_Treble(This,pTreble) (This)->lpVtbl->get_Treble(This,pTreble)
11290#define IAMAudioInputMixer_get_TrebleRange(This,pRange) (This)->lpVtbl->get_TrebleRange(This,pRange)
11291#define IAMAudioInputMixer_put_Bass(This,Bass) (This)->lpVtbl->put_Bass(This,Bass)
11292#define IAMAudioInputMixer_get_Bass(This,pBass) (This)->lpVtbl->get_Bass(This,pBass)
11293#define IAMAudioInputMixer_get_BassRange(This,pRange) (This)->lpVtbl->get_BassRange(This,pRange)
11294#endif
11295#endif
11296  HRESULT WINAPI IAMAudioInputMixer_put_Enable_Proxy(IAMAudioInputMixer *This,WINBOOL fEnable);
11297  void __RPC_STUB IAMAudioInputMixer_put_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11298  HRESULT WINAPI IAMAudioInputMixer_get_Enable_Proxy(IAMAudioInputMixer *This,WINBOOL *pfEnable);
11299  void __RPC_STUB IAMAudioInputMixer_get_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11300  HRESULT WINAPI IAMAudioInputMixer_put_Mono_Proxy(IAMAudioInputMixer *This,WINBOOL fMono);
11301  void __RPC_STUB IAMAudioInputMixer_put_Mono_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11302  HRESULT WINAPI IAMAudioInputMixer_get_Mono_Proxy(IAMAudioInputMixer *This,WINBOOL *pfMono);
11303  void __RPC_STUB IAMAudioInputMixer_get_Mono_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11304  HRESULT WINAPI IAMAudioInputMixer_put_MixLevel_Proxy(IAMAudioInputMixer *This,double Level);
11305  void __RPC_STUB IAMAudioInputMixer_put_MixLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11306  HRESULT WINAPI IAMAudioInputMixer_get_MixLevel_Proxy(IAMAudioInputMixer *This,double *pLevel);
11307  void __RPC_STUB IAMAudioInputMixer_get_MixLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11308  HRESULT WINAPI IAMAudioInputMixer_put_Pan_Proxy(IAMAudioInputMixer *This,double Pan);
11309  void __RPC_STUB IAMAudioInputMixer_put_Pan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11310  HRESULT WINAPI IAMAudioInputMixer_get_Pan_Proxy(IAMAudioInputMixer *This,double *pPan);
11311  void __RPC_STUB IAMAudioInputMixer_get_Pan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11312  HRESULT WINAPI IAMAudioInputMixer_put_Loudness_Proxy(IAMAudioInputMixer *This,WINBOOL fLoudness);
11313  void __RPC_STUB IAMAudioInputMixer_put_Loudness_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11314  HRESULT WINAPI IAMAudioInputMixer_get_Loudness_Proxy(IAMAudioInputMixer *This,WINBOOL *pfLoudness);
11315  void __RPC_STUB IAMAudioInputMixer_get_Loudness_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11316  HRESULT WINAPI IAMAudioInputMixer_put_Treble_Proxy(IAMAudioInputMixer *This,double Treble);
11317  void __RPC_STUB IAMAudioInputMixer_put_Treble_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11318  HRESULT WINAPI IAMAudioInputMixer_get_Treble_Proxy(IAMAudioInputMixer *This,double *pTreble);
11319  void __RPC_STUB IAMAudioInputMixer_get_Treble_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11320  HRESULT WINAPI IAMAudioInputMixer_get_TrebleRange_Proxy(IAMAudioInputMixer *This,double *pRange);
11321  void __RPC_STUB IAMAudioInputMixer_get_TrebleRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11322  HRESULT WINAPI IAMAudioInputMixer_put_Bass_Proxy(IAMAudioInputMixer *This,double Bass);
11323  void __RPC_STUB IAMAudioInputMixer_put_Bass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11324  HRESULT WINAPI IAMAudioInputMixer_get_Bass_Proxy(IAMAudioInputMixer *This,double *pBass);
11325  void __RPC_STUB IAMAudioInputMixer_get_Bass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11326  HRESULT WINAPI IAMAudioInputMixer_get_BassRange_Proxy(IAMAudioInputMixer *This,double *pRange);
11327  void __RPC_STUB IAMAudioInputMixer_get_BassRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11328#endif
11329
11330#ifndef __IAMBufferNegotiation_INTERFACE_DEFINED__
11331#define __IAMBufferNegotiation_INTERFACE_DEFINED__
11332  EXTERN_C const IID IID_IAMBufferNegotiation;
11333#if defined(__cplusplus) && !defined(CINTERFACE)
11334  struct IAMBufferNegotiation : public IUnknown {
11335  public:
11336    virtual HRESULT WINAPI SuggestAllocatorProperties(const ALLOCATOR_PROPERTIES *pprop) = 0;
11337    virtual HRESULT WINAPI GetAllocatorProperties(ALLOCATOR_PROPERTIES *pprop) = 0;
11338  };
11339#else
11340  typedef struct IAMBufferNegotiationVtbl {
11341    BEGIN_INTERFACE
11342      HRESULT (WINAPI *QueryInterface)(IAMBufferNegotiation *This,REFIID riid,void **ppvObject);
11343      ULONG (WINAPI *AddRef)(IAMBufferNegotiation *This);
11344      ULONG (WINAPI *Release)(IAMBufferNegotiation *This);
11345      HRESULT (WINAPI *SuggestAllocatorProperties)(IAMBufferNegotiation *This,const ALLOCATOR_PROPERTIES *pprop);
11346      HRESULT (WINAPI *GetAllocatorProperties)(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
11347    END_INTERFACE
11348  } IAMBufferNegotiationVtbl;
11349  struct IAMBufferNegotiation {
11350    CONST_VTBL struct IAMBufferNegotiationVtbl *lpVtbl;
11351  };
11352#ifdef COBJMACROS
11353#define IAMBufferNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11354#define IAMBufferNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This)
11355#define IAMBufferNegotiation_Release(This) (This)->lpVtbl->Release(This)
11356#define IAMBufferNegotiation_SuggestAllocatorProperties(This,pprop) (This)->lpVtbl->SuggestAllocatorProperties(This,pprop)
11357#define IAMBufferNegotiation_GetAllocatorProperties(This,pprop) (This)->lpVtbl->GetAllocatorProperties(This,pprop)
11358#endif
11359#endif
11360  HRESULT WINAPI IAMBufferNegotiation_SuggestAllocatorProperties_Proxy(IAMBufferNegotiation *This,const ALLOCATOR_PROPERTIES *pprop);
11361  void __RPC_STUB IAMBufferNegotiation_SuggestAllocatorProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11362  HRESULT WINAPI IAMBufferNegotiation_GetAllocatorProperties_Proxy(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
11363  void __RPC_STUB IAMBufferNegotiation_GetAllocatorProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11364#endif
11365
11366#define AnalogVideo_NTSC_Mask 0x00000007
11367#define AnalogVideo_PAL_Mask 0x00100FF0
11368#define AnalogVideo_SECAM_Mask 0x000FF000
11369
11370  typedef enum __MIDL___MIDL_itf_strmif_0173_0001 {
11371    VideoCopyProtectionMacrovisionBasic = 0,VideoCopyProtectionMacrovisionCBI = VideoCopyProtectionMacrovisionBasic + 1
11372  } VideoCopyProtectionType;
11373
11374  typedef enum tagPhysicalConnectorType {
11375    PhysConn_Video_Tuner = 1,
11376    PhysConn_Video_Composite,PhysConn_Video_SVideo,PhysConn_Video_RGB,
11377    PhysConn_Video_YRYBY,PhysConn_Video_SerialDigital,PhysConn_Video_ParallelDigital,
11378    PhysConn_Video_SCSI,PhysConn_Video_AUX,PhysConn_Video_1394,PhysConn_Video_USB,
11379    PhysConn_Video_VideoDecoder,PhysConn_Video_VideoEncoder,PhysConn_Video_SCART,PhysConn_Video_Black,
11380    PhysConn_Audio_Tuner = 0x1000,PhysConn_Audio_Line = 0x1001,PhysConn_Audio_Mic = 0x1002,
11381    PhysConn_Audio_AESDigital = 0x1003,PhysConn_Audio_SPDIFDigital = 0x1004,
11382    PhysConn_Audio_SCSI = 0x1005,PhysConn_Audio_AUX = 0x1006,PhysConn_Audio_1394 = 0x1007,
11383    PhysConn_Audio_USB = 0x1008,PhysConn_Audio_AudioDecoder = 0x1009
11384  } PhysicalConnectorType;
11385
11386  extern RPC_IF_HANDLE __MIDL_itf_strmif_0173_v0_0_c_ifspec;
11387  extern RPC_IF_HANDLE __MIDL_itf_strmif_0173_v0_0_s_ifspec;
11388#ifndef __IAMAnalogVideoDecoder_INTERFACE_DEFINED__
11389#define __IAMAnalogVideoDecoder_INTERFACE_DEFINED__
11390  EXTERN_C const IID IID_IAMAnalogVideoDecoder;
11391#if defined(__cplusplus) && !defined(CINTERFACE)
11392  struct IAMAnalogVideoDecoder : public IUnknown {
11393  public:
11394    virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
11395    virtual HRESULT WINAPI put_TVFormat(LONG lAnalogVideoStandard) = 0;
11396    virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
11397    virtual HRESULT WINAPI get_HorizontalLocked(LONG *plLocked) = 0;
11398    virtual HRESULT WINAPI put_VCRHorizontalLocking(LONG lVCRHorizontalLocking) = 0;
11399    virtual HRESULT WINAPI get_VCRHorizontalLocking(LONG *plVCRHorizontalLocking) = 0;
11400    virtual HRESULT WINAPI get_NumberOfLines(LONG *plNumberOfLines) = 0;
11401    virtual HRESULT WINAPI put_OutputEnable(LONG lOutputEnable) = 0;
11402    virtual HRESULT WINAPI get_OutputEnable(LONG *plOutputEnable) = 0;
11403  };
11404#else
11405  typedef struct IAMAnalogVideoDecoderVtbl {
11406    BEGIN_INTERFACE
11407      HRESULT (WINAPI *QueryInterface)(IAMAnalogVideoDecoder *This,REFIID riid,void **ppvObject);
11408      ULONG (WINAPI *AddRef)(IAMAnalogVideoDecoder *This);
11409      ULONG (WINAPI *Release)(IAMAnalogVideoDecoder *This);
11410      HRESULT (WINAPI *get_AvailableTVFormats)(IAMAnalogVideoDecoder *This,LONG *lAnalogVideoStandard);
11411      HRESULT (WINAPI *put_TVFormat)(IAMAnalogVideoDecoder *This,LONG lAnalogVideoStandard);
11412      HRESULT (WINAPI *get_TVFormat)(IAMAnalogVideoDecoder *This,LONG *plAnalogVideoStandard);
11413      HRESULT (WINAPI *get_HorizontalLocked)(IAMAnalogVideoDecoder *This,LONG *plLocked);
11414      HRESULT (WINAPI *put_VCRHorizontalLocking)(IAMAnalogVideoDecoder *This,LONG lVCRHorizontalLocking);
11415      HRESULT (WINAPI *get_VCRHorizontalLocking)(IAMAnalogVideoDecoder *This,LONG *plVCRHorizontalLocking);
11416      HRESULT (WINAPI *get_NumberOfLines)(IAMAnalogVideoDecoder *This,LONG *plNumberOfLines);
11417      HRESULT (WINAPI *put_OutputEnable)(IAMAnalogVideoDecoder *This,LONG lOutputEnable);
11418      HRESULT (WINAPI *get_OutputEnable)(IAMAnalogVideoDecoder *This,LONG *plOutputEnable);
11419    END_INTERFACE
11420  } IAMAnalogVideoDecoderVtbl;
11421  struct IAMAnalogVideoDecoder {
11422    CONST_VTBL struct IAMAnalogVideoDecoderVtbl *lpVtbl;
11423  };
11424#ifdef COBJMACROS
11425#define IAMAnalogVideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11426#define IAMAnalogVideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
11427#define IAMAnalogVideoDecoder_Release(This) (This)->lpVtbl->Release(This)
11428#define IAMAnalogVideoDecoder_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
11429#define IAMAnalogVideoDecoder_put_TVFormat(This,lAnalogVideoStandard) (This)->lpVtbl->put_TVFormat(This,lAnalogVideoStandard)
11430#define IAMAnalogVideoDecoder_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
11431#define IAMAnalogVideoDecoder_get_HorizontalLocked(This,plLocked) (This)->lpVtbl->get_HorizontalLocked(This,plLocked)
11432#define IAMAnalogVideoDecoder_put_VCRHorizontalLocking(This,lVCRHorizontalLocking) (This)->lpVtbl->put_VCRHorizontalLocking(This,lVCRHorizontalLocking)
11433#define IAMAnalogVideoDecoder_get_VCRHorizontalLocking(This,plVCRHorizontalLocking) (This)->lpVtbl->get_VCRHorizontalLocking(This,plVCRHorizontalLocking)
11434#define IAMAnalogVideoDecoder_get_NumberOfLines(This,plNumberOfLines) (This)->lpVtbl->get_NumberOfLines(This,plNumberOfLines)
11435#define IAMAnalogVideoDecoder_put_OutputEnable(This,lOutputEnable) (This)->lpVtbl->put_OutputEnable(This,lOutputEnable)
11436#define IAMAnalogVideoDecoder_get_OutputEnable(This,plOutputEnable) (This)->lpVtbl->get_OutputEnable(This,plOutputEnable)
11437#endif
11438#endif
11439  HRESULT WINAPI IAMAnalogVideoDecoder_get_AvailableTVFormats_Proxy(IAMAnalogVideoDecoder *This,LONG *lAnalogVideoStandard);
11440  void __RPC_STUB IAMAnalogVideoDecoder_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11441  HRESULT WINAPI IAMAnalogVideoDecoder_put_TVFormat_Proxy(IAMAnalogVideoDecoder *This,LONG lAnalogVideoStandard);
11442  void __RPC_STUB IAMAnalogVideoDecoder_put_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11443  HRESULT WINAPI IAMAnalogVideoDecoder_get_TVFormat_Proxy(IAMAnalogVideoDecoder *This,LONG *plAnalogVideoStandard);
11444  void __RPC_STUB IAMAnalogVideoDecoder_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11445  HRESULT WINAPI IAMAnalogVideoDecoder_get_HorizontalLocked_Proxy(IAMAnalogVideoDecoder *This,LONG *plLocked);
11446  void __RPC_STUB IAMAnalogVideoDecoder_get_HorizontalLocked_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11447  HRESULT WINAPI IAMAnalogVideoDecoder_put_VCRHorizontalLocking_Proxy(IAMAnalogVideoDecoder *This,LONG lVCRHorizontalLocking);
11448  void __RPC_STUB IAMAnalogVideoDecoder_put_VCRHorizontalLocking_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11449  HRESULT WINAPI IAMAnalogVideoDecoder_get_VCRHorizontalLocking_Proxy(IAMAnalogVideoDecoder *This,LONG *plVCRHorizontalLocking);
11450  void __RPC_STUB IAMAnalogVideoDecoder_get_VCRHorizontalLocking_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11451  HRESULT WINAPI IAMAnalogVideoDecoder_get_NumberOfLines_Proxy(IAMAnalogVideoDecoder *This,LONG *plNumberOfLines);
11452  void __RPC_STUB IAMAnalogVideoDecoder_get_NumberOfLines_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11453  HRESULT WINAPI IAMAnalogVideoDecoder_put_OutputEnable_Proxy(IAMAnalogVideoDecoder *This,LONG lOutputEnable);
11454  void __RPC_STUB IAMAnalogVideoDecoder_put_OutputEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11455  HRESULT WINAPI IAMAnalogVideoDecoder_get_OutputEnable_Proxy(IAMAnalogVideoDecoder *This,LONG *plOutputEnable);
11456  void __RPC_STUB IAMAnalogVideoDecoder_get_OutputEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11457#endif
11458
11459  typedef enum tagCameraControlProperty {
11460    CameraControl_Pan = 0,
11461    CameraControl_Tilt,CameraControl_Roll,CameraControl_Zoom,CameraControl_Exposure,
11462    CameraControl_Iris,CameraControl_Focus
11463  } CameraControlProperty;
11464
11465  typedef enum tagCameraControlFlags {
11466    CameraControl_Flags_Auto = 0x1,CameraControl_Flags_Manual = 0x2
11467  } CameraControlFlags;
11468
11469  extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_c_ifspec;
11470  extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_s_ifspec;
11471#ifndef __IAMCameraControl_INTERFACE_DEFINED__
11472#define __IAMCameraControl_INTERFACE_DEFINED__
11473  EXTERN_C const IID IID_IAMCameraControl;
11474#if defined(__cplusplus) && !defined(CINTERFACE)
11475  struct IAMCameraControl : public IUnknown {
11476  public:
11477    virtual HRESULT WINAPI GetRange(LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags) = 0;
11478    virtual HRESULT WINAPI Set(LONG Property,LONG lValue,LONG Flags) = 0;
11479    virtual HRESULT WINAPI Get(LONG Property,LONG *lValue,LONG *Flags) = 0;
11480  };
11481#else
11482  typedef struct IAMCameraControlVtbl {
11483    BEGIN_INTERFACE
11484      HRESULT (WINAPI *QueryInterface)(IAMCameraControl *This,REFIID riid,void **ppvObject);
11485      ULONG (WINAPI *AddRef)(IAMCameraControl *This);
11486      ULONG (WINAPI *Release)(IAMCameraControl *This);
11487      HRESULT (WINAPI *GetRange)(IAMCameraControl *This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags);
11488      HRESULT (WINAPI *Set)(IAMCameraControl *This,LONG Property,LONG lValue,LONG Flags);
11489      HRESULT (WINAPI *Get)(IAMCameraControl *This,LONG Property,LONG *lValue,LONG *Flags);
11490    END_INTERFACE
11491  } IAMCameraControlVtbl;
11492  struct IAMCameraControl {
11493    CONST_VTBL struct IAMCameraControlVtbl *lpVtbl;
11494  };
11495#ifdef COBJMACROS
11496#define IAMCameraControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11497#define IAMCameraControl_AddRef(This) (This)->lpVtbl->AddRef(This)
11498#define IAMCameraControl_Release(This) (This)->lpVtbl->Release(This)
11499#define IAMCameraControl_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
11500#define IAMCameraControl_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
11501#define IAMCameraControl_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
11502#endif
11503#endif
11504  HRESULT WINAPI IAMCameraControl_GetRange_Proxy(IAMCameraControl *This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags);
11505  void __RPC_STUB IAMCameraControl_GetRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11506  HRESULT WINAPI IAMCameraControl_Set_Proxy(IAMCameraControl *This,LONG Property,LONG lValue,LONG Flags);
11507  void __RPC_STUB IAMCameraControl_Set_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11508  HRESULT WINAPI IAMCameraControl_Get_Proxy(IAMCameraControl *This,LONG Property,LONG *lValue,LONG *Flags);
11509  void __RPC_STUB IAMCameraControl_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11510#endif
11511
11512  typedef enum tagVideoControlFlags {
11513    VideoControlFlag_FlipHorizontal = 0x1,VideoControlFlag_FlipVertical = 0x2,VideoControlFlag_ExternalTriggerEnable = 0x4,VideoControlFlag_Trigger = 0x8
11514  } VideoControlFlags;
11515
11516  extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_c_ifspec;
11517  extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_s_ifspec;
11518#ifndef __IAMVideoControl_INTERFACE_DEFINED__
11519#define __IAMVideoControl_INTERFACE_DEFINED__
11520  EXTERN_C const IID IID_IAMVideoControl;
11521#if defined(__cplusplus) && !defined(CINTERFACE)
11522  struct IAMVideoControl : public IUnknown {
11523  public:
11524    virtual HRESULT WINAPI GetCaps(IPin *pPin,LONG *pCapsFlags) = 0;
11525    virtual HRESULT WINAPI SetMode(IPin *pPin,LONG Mode) = 0;
11526    virtual HRESULT WINAPI GetMode(IPin *pPin,LONG *Mode) = 0;
11527    virtual HRESULT WINAPI GetCurrentActualFrameRate(IPin *pPin,LONGLONG *ActualFrameRate) = 0;
11528    virtual HRESULT WINAPI GetMaxAvailableFrameRate(IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate) = 0;
11529    virtual HRESULT WINAPI GetFrameRateList(IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates) = 0;
11530  };
11531#else
11532  typedef struct IAMVideoControlVtbl {
11533    BEGIN_INTERFACE
11534      HRESULT (WINAPI *QueryInterface)(IAMVideoControl *This,REFIID riid,void **ppvObject);
11535      ULONG (WINAPI *AddRef)(IAMVideoControl *This);
11536      ULONG (WINAPI *Release)(IAMVideoControl *This);
11537      HRESULT (WINAPI *GetCaps)(IAMVideoControl *This,IPin *pPin,LONG *pCapsFlags);
11538      HRESULT (WINAPI *SetMode)(IAMVideoControl *This,IPin *pPin,LONG Mode);
11539      HRESULT (WINAPI *GetMode)(IAMVideoControl *This,IPin *pPin,LONG *Mode);
11540      HRESULT (WINAPI *GetCurrentActualFrameRate)(IAMVideoControl *This,IPin *pPin,LONGLONG *ActualFrameRate);
11541      HRESULT (WINAPI *GetMaxAvailableFrameRate)(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate);
11542      HRESULT (WINAPI *GetFrameRateList)(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates);
11543    END_INTERFACE
11544  } IAMVideoControlVtbl;
11545  struct IAMVideoControl {
11546    CONST_VTBL struct IAMVideoControlVtbl *lpVtbl;
11547  };
11548#ifdef COBJMACROS
11549#define IAMVideoControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11550#define IAMVideoControl_AddRef(This) (This)->lpVtbl->AddRef(This)
11551#define IAMVideoControl_Release(This) (This)->lpVtbl->Release(This)
11552#define IAMVideoControl_GetCaps(This,pPin,pCapsFlags) (This)->lpVtbl->GetCaps(This,pPin,pCapsFlags)
11553#define IAMVideoControl_SetMode(This,pPin,Mode) (This)->lpVtbl->SetMode(This,pPin,Mode)
11554#define IAMVideoControl_GetMode(This,pPin,Mode) (This)->lpVtbl->GetMode(This,pPin,Mode)
11555#define IAMVideoControl_GetCurrentActualFrameRate(This,pPin,ActualFrameRate) (This)->lpVtbl->GetCurrentActualFrameRate(This,pPin,ActualFrameRate)
11556#define IAMVideoControl_GetMaxAvailableFrameRate(This,pPin,iIndex,Dimensions,MaxAvailableFrameRate) (This)->lpVtbl->GetMaxAvailableFrameRate(This,pPin,iIndex,Dimensions,MaxAvailableFrameRate)
11557#define IAMVideoControl_GetFrameRateList(This,pPin,iIndex,Dimensions,ListSize,FrameRates) (This)->lpVtbl->GetFrameRateList(This,pPin,iIndex,Dimensions,ListSize,FrameRates)
11558#endif
11559#endif
11560  HRESULT WINAPI IAMVideoControl_GetCaps_Proxy(IAMVideoControl *This,IPin *pPin,LONG *pCapsFlags);
11561  void __RPC_STUB IAMVideoControl_GetCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11562  HRESULT WINAPI IAMVideoControl_SetMode_Proxy(IAMVideoControl *This,IPin *pPin,LONG Mode);
11563  void __RPC_STUB IAMVideoControl_SetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11564  HRESULT WINAPI IAMVideoControl_GetMode_Proxy(IAMVideoControl *This,IPin *pPin,LONG *Mode);
11565  void __RPC_STUB IAMVideoControl_GetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11566  HRESULT WINAPI IAMVideoControl_GetCurrentActualFrameRate_Proxy(IAMVideoControl *This,IPin *pPin,LONGLONG *ActualFrameRate);
11567  void __RPC_STUB IAMVideoControl_GetCurrentActualFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11568  HRESULT WINAPI IAMVideoControl_GetMaxAvailableFrameRate_Proxy(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate);
11569  void __RPC_STUB IAMVideoControl_GetMaxAvailableFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11570  HRESULT WINAPI IAMVideoControl_GetFrameRateList_Proxy(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates);
11571  void __RPC_STUB IAMVideoControl_GetFrameRateList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11572#endif
11573
11574#ifdef __CRT_UUID_DECL
11575__CRT_UUID_DECL(IAMCrossbar,0xc6e13380,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56);
11576#endif
11577
11578#ifndef __IAMCrossbar_INTERFACE_DEFINED__
11579#define __IAMCrossbar_INTERFACE_DEFINED__
11580  EXTERN_C const IID IID_IAMCrossbar;
11581#if defined(__cplusplus) && !defined(CINTERFACE)
11582  struct IAMCrossbar : public IUnknown {
11583  public:
11584    virtual HRESULT WINAPI get_PinCounts(LONG *OutputPinCount,LONG *InputPinCount) = 0;
11585    virtual HRESULT WINAPI CanRoute(LONG OutputPinIndex,LONG InputPinIndex) = 0;
11586    virtual HRESULT WINAPI Route(LONG OutputPinIndex,LONG InputPinIndex) = 0;
11587    virtual HRESULT WINAPI get_IsRoutedTo(LONG OutputPinIndex,LONG *InputPinIndex) = 0;
11588    virtual HRESULT WINAPI get_CrossbarPinInfo(WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType) = 0;
11589  };
11590#else
11591  typedef struct IAMCrossbarVtbl {
11592    BEGIN_INTERFACE
11593      HRESULT (WINAPI *QueryInterface)(IAMCrossbar *This,REFIID riid,void **ppvObject);
11594      ULONG (WINAPI *AddRef)(IAMCrossbar *This);
11595      ULONG (WINAPI *Release)(IAMCrossbar *This);
11596      HRESULT (WINAPI *get_PinCounts)(IAMCrossbar *This,LONG *OutputPinCount,LONG *InputPinCount);
11597      HRESULT (WINAPI *CanRoute)(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
11598      HRESULT (WINAPI *Route)(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
11599      HRESULT (WINAPI *get_IsRoutedTo)(IAMCrossbar *This,LONG OutputPinIndex,LONG *InputPinIndex);
11600      HRESULT (WINAPI *get_CrossbarPinInfo)(IAMCrossbar *This,WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType);
11601    END_INTERFACE
11602  } IAMCrossbarVtbl;
11603  struct IAMCrossbar {
11604    CONST_VTBL struct IAMCrossbarVtbl *lpVtbl;
11605  };
11606#ifdef COBJMACROS
11607#define IAMCrossbar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11608#define IAMCrossbar_AddRef(This) (This)->lpVtbl->AddRef(This)
11609#define IAMCrossbar_Release(This) (This)->lpVtbl->Release(This)
11610#define IAMCrossbar_get_PinCounts(This,OutputPinCount,InputPinCount) (This)->lpVtbl->get_PinCounts(This,OutputPinCount,InputPinCount)
11611#define IAMCrossbar_CanRoute(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->CanRoute(This,OutputPinIndex,InputPinIndex)
11612#define IAMCrossbar_Route(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->Route(This,OutputPinIndex,InputPinIndex)
11613#define IAMCrossbar_get_IsRoutedTo(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->get_IsRoutedTo(This,OutputPinIndex,InputPinIndex)
11614#define IAMCrossbar_get_CrossbarPinInfo(This,IsInputPin,PinIndex,PinIndexRelated,PhysicalType) (This)->lpVtbl->get_CrossbarPinInfo(This,IsInputPin,PinIndex,PinIndexRelated,PhysicalType)
11615#endif
11616#endif
11617  HRESULT WINAPI IAMCrossbar_get_PinCounts_Proxy(IAMCrossbar *This,LONG *OutputPinCount,LONG *InputPinCount);
11618  void __RPC_STUB IAMCrossbar_get_PinCounts_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11619  HRESULT WINAPI IAMCrossbar_CanRoute_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
11620  void __RPC_STUB IAMCrossbar_CanRoute_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11621  HRESULT WINAPI IAMCrossbar_Route_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
11622  void __RPC_STUB IAMCrossbar_Route_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11623  HRESULT WINAPI IAMCrossbar_get_IsRoutedTo_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG *InputPinIndex);
11624  void __RPC_STUB IAMCrossbar_get_IsRoutedTo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11625  HRESULT WINAPI IAMCrossbar_get_CrossbarPinInfo_Proxy(IAMCrossbar *This,WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType);
11626  void __RPC_STUB IAMCrossbar_get_CrossbarPinInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11627#endif
11628
11629  typedef enum tagAMTunerSubChannel {
11630    AMTUNER_SUBCHAN_NO_TUNE = -2,AMTUNER_SUBCHAN_DEFAULT = -1
11631  } AMTunerSubChannel;
11632
11633  typedef enum tagAMTunerSignalStrength {
11634    AMTUNER_HASNOSIGNALSTRENGTH = -1,AMTUNER_NOSIGNAL = 0,AMTUNER_SIGNALPRESENT = 1
11635  } AMTunerSignalStrength;
11636
11637  typedef enum tagAMTunerModeType {
11638    AMTUNER_MODE_DEFAULT = 0,AMTUNER_MODE_TV = 0x1,AMTUNER_MODE_FM_RADIO = 0x2,AMTUNER_MODE_AM_RADIO = 0x4,AMTUNER_MODE_DSS = 0x8
11639  } AMTunerModeType;
11640
11641  typedef enum tagAMTunerEventType {
11642    AMTUNER_EVENT_CHANGED = 0x1
11643  } AMTunerEventType;
11644
11645  extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_c_ifspec;
11646  extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_s_ifspec;
11647#ifndef __IAMTuner_INTERFACE_DEFINED__
11648#define __IAMTuner_INTERFACE_DEFINED__
11649  EXTERN_C const IID IID_IAMTuner;
11650#if defined(__cplusplus) && !defined(CINTERFACE)
11651  struct IAMTuner : public IUnknown {
11652  public:
11653    virtual HRESULT WINAPI put_Channel(LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel) = 0;
11654    virtual HRESULT WINAPI get_Channel(LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel) = 0;
11655    virtual HRESULT WINAPI ChannelMinMax(LONG *lChannelMin,LONG *lChannelMax) = 0;
11656    virtual HRESULT WINAPI put_CountryCode(LONG lCountryCode) = 0;
11657    virtual HRESULT WINAPI get_CountryCode(LONG *plCountryCode) = 0;
11658    virtual HRESULT WINAPI put_TuningSpace(LONG lTuningSpace) = 0;
11659    virtual HRESULT WINAPI get_TuningSpace(LONG *plTuningSpace) = 0;
11660    virtual HRESULT WINAPI Logon(HANDLE hCurrentUser) = 0;
11661    virtual HRESULT WINAPI Logout(void) = 0;
11662    virtual HRESULT WINAPI SignalPresent(LONG *plSignalStrength) = 0;
11663    virtual HRESULT WINAPI put_Mode(AMTunerModeType lMode) = 0;
11664    virtual HRESULT WINAPI get_Mode(AMTunerModeType *plMode) = 0;
11665    virtual HRESULT WINAPI GetAvailableModes(LONG *plModes) = 0;
11666    virtual HRESULT WINAPI RegisterNotificationCallBack(IAMTunerNotification *pNotify,LONG lEvents) = 0;
11667    virtual HRESULT WINAPI UnRegisterNotificationCallBack(IAMTunerNotification *pNotify) = 0;
11668  };
11669#else
11670  typedef struct IAMTunerVtbl {
11671    BEGIN_INTERFACE
11672      HRESULT (WINAPI *QueryInterface)(IAMTuner *This,REFIID riid,void **ppvObject);
11673      ULONG (WINAPI *AddRef)(IAMTuner *This);
11674      ULONG (WINAPI *Release)(IAMTuner *This);
11675      HRESULT (WINAPI *put_Channel)(IAMTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
11676      HRESULT (WINAPI *get_Channel)(IAMTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
11677      HRESULT (WINAPI *ChannelMinMax)(IAMTuner *This,LONG *lChannelMin,LONG *lChannelMax);
11678      HRESULT (WINAPI *put_CountryCode)(IAMTuner *This,LONG lCountryCode);
11679      HRESULT (WINAPI *get_CountryCode)(IAMTuner *This,LONG *plCountryCode);
11680      HRESULT (WINAPI *put_TuningSpace)(IAMTuner *This,LONG lTuningSpace);
11681      HRESULT (WINAPI *get_TuningSpace)(IAMTuner *This,LONG *plTuningSpace);
11682      HRESULT (WINAPI *Logon)(IAMTuner *This,HANDLE hCurrentUser);
11683      HRESULT (WINAPI *Logout)(IAMTuner *This);
11684      HRESULT (WINAPI *SignalPresent)(IAMTuner *This,LONG *plSignalStrength);
11685      HRESULT (WINAPI *put_Mode)(IAMTuner *This,AMTunerModeType lMode);
11686      HRESULT (WINAPI *get_Mode)(IAMTuner *This,AMTunerModeType *plMode);
11687      HRESULT (WINAPI *GetAvailableModes)(IAMTuner *This,LONG *plModes);
11688      HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
11689      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify);
11690    END_INTERFACE
11691  } IAMTunerVtbl;
11692  struct IAMTuner {
11693    CONST_VTBL struct IAMTunerVtbl *lpVtbl;
11694  };
11695#ifdef COBJMACROS
11696#define IAMTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11697#define IAMTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
11698#define IAMTuner_Release(This) (This)->lpVtbl->Release(This)
11699#define IAMTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
11700#define IAMTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
11701#define IAMTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
11702#define IAMTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
11703#define IAMTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
11704#define IAMTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
11705#define IAMTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
11706#define IAMTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
11707#define IAMTuner_Logout(This) (This)->lpVtbl->Logout(This)
11708#define IAMTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
11709#define IAMTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
11710#define IAMTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
11711#define IAMTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
11712#define IAMTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
11713#define IAMTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
11714#endif
11715#endif
11716  HRESULT WINAPI IAMTuner_put_Channel_Proxy(IAMTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
11717  void __RPC_STUB IAMTuner_put_Channel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11718  HRESULT WINAPI IAMTuner_get_Channel_Proxy(IAMTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
11719  void __RPC_STUB IAMTuner_get_Channel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11720  HRESULT WINAPI IAMTuner_ChannelMinMax_Proxy(IAMTuner *This,LONG *lChannelMin,LONG *lChannelMax);
11721  void __RPC_STUB IAMTuner_ChannelMinMax_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11722  HRESULT WINAPI IAMTuner_put_CountryCode_Proxy(IAMTuner *This,LONG lCountryCode);
11723  void __RPC_STUB IAMTuner_put_CountryCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11724  HRESULT WINAPI IAMTuner_get_CountryCode_Proxy(IAMTuner *This,LONG *plCountryCode);
11725  void __RPC_STUB IAMTuner_get_CountryCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11726  HRESULT WINAPI IAMTuner_put_TuningSpace_Proxy(IAMTuner *This,LONG lTuningSpace);
11727  void __RPC_STUB IAMTuner_put_TuningSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11728  HRESULT WINAPI IAMTuner_get_TuningSpace_Proxy(IAMTuner *This,LONG *plTuningSpace);
11729  void __RPC_STUB IAMTuner_get_TuningSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11730  HRESULT WINAPI IAMTuner_Logon_Proxy(IAMTuner *This,HANDLE hCurrentUser);
11731  void __RPC_STUB IAMTuner_Logon_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11732  HRESULT WINAPI IAMTuner_Logout_Proxy(IAMTuner *This);
11733  void __RPC_STUB IAMTuner_Logout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11734  HRESULT WINAPI IAMTuner_SignalPresent_Proxy(IAMTuner *This,LONG *plSignalStrength);
11735  void __RPC_STUB IAMTuner_SignalPresent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11736  HRESULT WINAPI IAMTuner_put_Mode_Proxy(IAMTuner *This,AMTunerModeType lMode);
11737  void __RPC_STUB IAMTuner_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11738  HRESULT WINAPI IAMTuner_get_Mode_Proxy(IAMTuner *This,AMTunerModeType *plMode);
11739  void __RPC_STUB IAMTuner_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11740  HRESULT WINAPI IAMTuner_GetAvailableModes_Proxy(IAMTuner *This,LONG *plModes);
11741  void __RPC_STUB IAMTuner_GetAvailableModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11742  HRESULT WINAPI IAMTuner_RegisterNotificationCallBack_Proxy(IAMTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
11743  void __RPC_STUB IAMTuner_RegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11744  HRESULT WINAPI IAMTuner_UnRegisterNotificationCallBack_Proxy(IAMTuner *This,IAMTunerNotification *pNotify);
11745  void __RPC_STUB IAMTuner_UnRegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11746#endif
11747
11748#ifndef __IAMTunerNotification_INTERFACE_DEFINED__
11749#define __IAMTunerNotification_INTERFACE_DEFINED__
11750  EXTERN_C const IID IID_IAMTunerNotification;
11751#if defined(__cplusplus) && !defined(CINTERFACE)
11752  struct IAMTunerNotification : public IUnknown {
11753  public:
11754    virtual HRESULT WINAPI OnEvent(AMTunerEventType Event) = 0;
11755  };
11756#else
11757  typedef struct IAMTunerNotificationVtbl {
11758    BEGIN_INTERFACE
11759      HRESULT (WINAPI *QueryInterface)(IAMTunerNotification *This,REFIID riid,void **ppvObject);
11760      ULONG (WINAPI *AddRef)(IAMTunerNotification *This);
11761      ULONG (WINAPI *Release)(IAMTunerNotification *This);
11762      HRESULT (WINAPI *OnEvent)(IAMTunerNotification *This,AMTunerEventType Event);
11763    END_INTERFACE
11764  } IAMTunerNotificationVtbl;
11765  struct IAMTunerNotification {
11766    CONST_VTBL struct IAMTunerNotificationVtbl *lpVtbl;
11767  };
11768#ifdef COBJMACROS
11769#define IAMTunerNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11770#define IAMTunerNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
11771#define IAMTunerNotification_Release(This) (This)->lpVtbl->Release(This)
11772#define IAMTunerNotification_OnEvent(This,Event) (This)->lpVtbl->OnEvent(This,Event)
11773#endif
11774#endif
11775  HRESULT WINAPI IAMTunerNotification_OnEvent_Proxy(IAMTunerNotification *This,AMTunerEventType Event);
11776  void __RPC_STUB IAMTunerNotification_OnEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11777#endif
11778
11779#ifndef __IAMTVTuner_INTERFACE_DEFINED__
11780#define __IAMTVTuner_INTERFACE_DEFINED__
11781  EXTERN_C const IID IID_IAMTVTuner;
11782#if defined(__cplusplus) && !defined(CINTERFACE)
11783  struct IAMTVTuner : public IAMTuner {
11784  public:
11785    virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
11786    virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
11787    virtual HRESULT WINAPI AutoTune(LONG lChannel,LONG *plFoundSignal) = 0;
11788    virtual HRESULT WINAPI StoreAutoTune(void) = 0;
11789    virtual HRESULT WINAPI get_NumInputConnections(LONG *plNumInputConnections) = 0;
11790    virtual HRESULT WINAPI put_InputType(LONG lIndex,TunerInputType InputType) = 0;
11791    virtual HRESULT WINAPI get_InputType(LONG lIndex,TunerInputType *pInputType) = 0;
11792    virtual HRESULT WINAPI put_ConnectInput(LONG lIndex) = 0;
11793    virtual HRESULT WINAPI get_ConnectInput(LONG *plIndex) = 0;
11794    virtual HRESULT WINAPI get_VideoFrequency(LONG *lFreq) = 0;
11795    virtual HRESULT WINAPI get_AudioFrequency(LONG *lFreq) = 0;
11796  };
11797#else
11798  typedef struct IAMTVTunerVtbl {
11799    BEGIN_INTERFACE
11800      HRESULT (WINAPI *QueryInterface)(IAMTVTuner *This,REFIID riid,void **ppvObject);
11801      ULONG (WINAPI *AddRef)(IAMTVTuner *This);
11802      ULONG (WINAPI *Release)(IAMTVTuner *This);
11803      HRESULT (WINAPI *put_Channel)(IAMTVTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
11804      HRESULT (WINAPI *get_Channel)(IAMTVTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
11805      HRESULT (WINAPI *ChannelMinMax)(IAMTVTuner *This,LONG *lChannelMin,LONG *lChannelMax);
11806      HRESULT (WINAPI *put_CountryCode)(IAMTVTuner *This,LONG lCountryCode);
11807      HRESULT (WINAPI *get_CountryCode)(IAMTVTuner *This,LONG *plCountryCode);
11808      HRESULT (WINAPI *put_TuningSpace)(IAMTVTuner *This,LONG lTuningSpace);
11809      HRESULT (WINAPI *get_TuningSpace)(IAMTVTuner *This,LONG *plTuningSpace);
11810      HRESULT (WINAPI *Logon)(IAMTVTuner *This,HANDLE hCurrentUser);
11811      HRESULT (WINAPI *Logout)(IAMTVTuner *This);
11812      HRESULT (WINAPI *SignalPresent)(IAMTVTuner *This,LONG *plSignalStrength);
11813      HRESULT (WINAPI *put_Mode)(IAMTVTuner *This,AMTunerModeType lMode);
11814      HRESULT (WINAPI *get_Mode)(IAMTVTuner *This,AMTunerModeType *plMode);
11815      HRESULT (WINAPI *GetAvailableModes)(IAMTVTuner *This,LONG *plModes);
11816      HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTVTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
11817      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVTuner *This,IAMTunerNotification *pNotify);
11818      HRESULT (WINAPI *get_AvailableTVFormats)(IAMTVTuner *This,LONG *lAnalogVideoStandard);
11819      HRESULT (WINAPI *get_TVFormat)(IAMTVTuner *This,LONG *plAnalogVideoStandard);
11820      HRESULT (WINAPI *AutoTune)(IAMTVTuner *This,LONG lChannel,LONG *plFoundSignal);
11821      HRESULT (WINAPI *StoreAutoTune)(IAMTVTuner *This);
11822      HRESULT (WINAPI *get_NumInputConnections)(IAMTVTuner *This,LONG *plNumInputConnections);
11823      HRESULT (WINAPI *put_InputType)(IAMTVTuner *This,LONG lIndex,TunerInputType InputType);
11824      HRESULT (WINAPI *get_InputType)(IAMTVTuner *This,LONG lIndex,TunerInputType *pInputType);
11825      HRESULT (WINAPI *put_ConnectInput)(IAMTVTuner *This,LONG lIndex);
11826      HRESULT (WINAPI *get_ConnectInput)(IAMTVTuner *This,LONG *plIndex);
11827      HRESULT (WINAPI *get_VideoFrequency)(IAMTVTuner *This,LONG *lFreq);
11828      HRESULT (WINAPI *get_AudioFrequency)(IAMTVTuner *This,LONG *lFreq);
11829    END_INTERFACE
11830  } IAMTVTunerVtbl;
11831  struct IAMTVTuner {
11832    CONST_VTBL struct IAMTVTunerVtbl *lpVtbl;
11833  };
11834#ifdef COBJMACROS
11835#define IAMTVTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11836#define IAMTVTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
11837#define IAMTVTuner_Release(This) (This)->lpVtbl->Release(This)
11838#define IAMTVTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
11839#define IAMTVTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
11840#define IAMTVTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
11841#define IAMTVTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
11842#define IAMTVTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
11843#define IAMTVTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
11844#define IAMTVTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
11845#define IAMTVTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
11846#define IAMTVTuner_Logout(This) (This)->lpVtbl->Logout(This)
11847#define IAMTVTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
11848#define IAMTVTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
11849#define IAMTVTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
11850#define IAMTVTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
11851#define IAMTVTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
11852#define IAMTVTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
11853#define IAMTVTuner_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
11854#define IAMTVTuner_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
11855#define IAMTVTuner_AutoTune(This,lChannel,plFoundSignal) (This)->lpVtbl->AutoTune(This,lChannel,plFoundSignal)
11856#define IAMTVTuner_StoreAutoTune(This) (This)->lpVtbl->StoreAutoTune(This)
11857#define IAMTVTuner_get_NumInputConnections(This,plNumInputConnections) (This)->lpVtbl->get_NumInputConnections(This,plNumInputConnections)
11858#define IAMTVTuner_put_InputType(This,lIndex,InputType) (This)->lpVtbl->put_InputType(This,lIndex,InputType)
11859#define IAMTVTuner_get_InputType(This,lIndex,pInputType) (This)->lpVtbl->get_InputType(This,lIndex,pInputType)
11860#define IAMTVTuner_put_ConnectInput(This,lIndex) (This)->lpVtbl->put_ConnectInput(This,lIndex)
11861#define IAMTVTuner_get_ConnectInput(This,plIndex) (This)->lpVtbl->get_ConnectInput(This,plIndex)
11862#define IAMTVTuner_get_VideoFrequency(This,lFreq) (This)->lpVtbl->get_VideoFrequency(This,lFreq)
11863#define IAMTVTuner_get_AudioFrequency(This,lFreq) (This)->lpVtbl->get_AudioFrequency(This,lFreq)
11864#endif
11865#endif
11866  HRESULT WINAPI IAMTVTuner_get_AvailableTVFormats_Proxy(IAMTVTuner *This,LONG *lAnalogVideoStandard);
11867  void __RPC_STUB IAMTVTuner_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11868  HRESULT WINAPI IAMTVTuner_get_TVFormat_Proxy(IAMTVTuner *This,LONG *plAnalogVideoStandard);
11869  void __RPC_STUB IAMTVTuner_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11870  HRESULT WINAPI IAMTVTuner_AutoTune_Proxy(IAMTVTuner *This,LONG lChannel,LONG *plFoundSignal);
11871  void __RPC_STUB IAMTVTuner_AutoTune_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11872  HRESULT WINAPI IAMTVTuner_StoreAutoTune_Proxy(IAMTVTuner *This);
11873  void __RPC_STUB IAMTVTuner_StoreAutoTune_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11874  HRESULT WINAPI IAMTVTuner_get_NumInputConnections_Proxy(IAMTVTuner *This,LONG *plNumInputConnections);
11875  void __RPC_STUB IAMTVTuner_get_NumInputConnections_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11876  HRESULT WINAPI IAMTVTuner_put_InputType_Proxy(IAMTVTuner *This,LONG lIndex,TunerInputType InputType);
11877  void __RPC_STUB IAMTVTuner_put_InputType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11878  HRESULT WINAPI IAMTVTuner_get_InputType_Proxy(IAMTVTuner *This,LONG lIndex,TunerInputType *pInputType);
11879  void __RPC_STUB IAMTVTuner_get_InputType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11880  HRESULT WINAPI IAMTVTuner_put_ConnectInput_Proxy(IAMTVTuner *This,LONG lIndex);
11881  void __RPC_STUB IAMTVTuner_put_ConnectInput_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11882  HRESULT WINAPI IAMTVTuner_get_ConnectInput_Proxy(IAMTVTuner *This,LONG *plIndex);
11883  void __RPC_STUB IAMTVTuner_get_ConnectInput_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11884  HRESULT WINAPI IAMTVTuner_get_VideoFrequency_Proxy(IAMTVTuner *This,LONG *lFreq);
11885  void __RPC_STUB IAMTVTuner_get_VideoFrequency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11886  HRESULT WINAPI IAMTVTuner_get_AudioFrequency_Proxy(IAMTVTuner *This,LONG *lFreq);
11887  void __RPC_STUB IAMTVTuner_get_AudioFrequency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11888#endif
11889
11890#ifndef __IBPCSatelliteTuner_INTERFACE_DEFINED__
11891#define __IBPCSatelliteTuner_INTERFACE_DEFINED__
11892  EXTERN_C const IID IID_IBPCSatelliteTuner;
11893#if defined(__cplusplus) && !defined(CINTERFACE)
11894  struct IBPCSatelliteTuner : public IAMTuner {
11895  public:
11896    virtual HRESULT WINAPI get_DefaultSubChannelTypes(LONG *plDefaultVideoType,LONG *plDefaultAudioType) = 0;
11897    virtual HRESULT WINAPI put_DefaultSubChannelTypes(LONG lDefaultVideoType,LONG lDefaultAudioType) = 0;
11898    virtual HRESULT WINAPI IsTapingPermitted(void) = 0;
11899  };
11900#else
11901  typedef struct IBPCSatelliteTunerVtbl {
11902    BEGIN_INTERFACE
11903      HRESULT (WINAPI *QueryInterface)(IBPCSatelliteTuner *This,REFIID riid,void **ppvObject);
11904      ULONG (WINAPI *AddRef)(IBPCSatelliteTuner *This);
11905      ULONG (WINAPI *Release)(IBPCSatelliteTuner *This);
11906      HRESULT (WINAPI *put_Channel)(IBPCSatelliteTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
11907      HRESULT (WINAPI *get_Channel)(IBPCSatelliteTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
11908      HRESULT (WINAPI *ChannelMinMax)(IBPCSatelliteTuner *This,LONG *lChannelMin,LONG *lChannelMax);
11909      HRESULT (WINAPI *put_CountryCode)(IBPCSatelliteTuner *This,LONG lCountryCode);
11910      HRESULT (WINAPI *get_CountryCode)(IBPCSatelliteTuner *This,LONG *plCountryCode);
11911      HRESULT (WINAPI *put_TuningSpace)(IBPCSatelliteTuner *This,LONG lTuningSpace);
11912      HRESULT (WINAPI *get_TuningSpace)(IBPCSatelliteTuner *This,LONG *plTuningSpace);
11913      HRESULT (WINAPI *Logon)(IBPCSatelliteTuner *This,HANDLE hCurrentUser);
11914      HRESULT (WINAPI *Logout)(IBPCSatelliteTuner *This);
11915      HRESULT (WINAPI *SignalPresent)(IBPCSatelliteTuner *This,LONG *plSignalStrength);
11916      HRESULT (WINAPI *put_Mode)(IBPCSatelliteTuner *This,AMTunerModeType lMode);
11917      HRESULT (WINAPI *get_Mode)(IBPCSatelliteTuner *This,AMTunerModeType *plMode);
11918      HRESULT (WINAPI *GetAvailableModes)(IBPCSatelliteTuner *This,LONG *plModes);
11919      HRESULT (WINAPI *RegisterNotificationCallBack)(IBPCSatelliteTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
11920      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IBPCSatelliteTuner *This,IAMTunerNotification *pNotify);
11921      HRESULT (WINAPI *get_DefaultSubChannelTypes)(IBPCSatelliteTuner *This,LONG *plDefaultVideoType,LONG *plDefaultAudioType);
11922      HRESULT (WINAPI *put_DefaultSubChannelTypes)(IBPCSatelliteTuner *This,LONG lDefaultVideoType,LONG lDefaultAudioType);
11923      HRESULT (WINAPI *IsTapingPermitted)(IBPCSatelliteTuner *This);
11924    END_INTERFACE
11925  } IBPCSatelliteTunerVtbl;
11926  struct IBPCSatelliteTuner {
11927    CONST_VTBL struct IBPCSatelliteTunerVtbl *lpVtbl;
11928  };
11929#ifdef COBJMACROS
11930#define IBPCSatelliteTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11931#define IBPCSatelliteTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
11932#define IBPCSatelliteTuner_Release(This) (This)->lpVtbl->Release(This)
11933#define IBPCSatelliteTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
11934#define IBPCSatelliteTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
11935#define IBPCSatelliteTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
11936#define IBPCSatelliteTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
11937#define IBPCSatelliteTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
11938#define IBPCSatelliteTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
11939#define IBPCSatelliteTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
11940#define IBPCSatelliteTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
11941#define IBPCSatelliteTuner_Logout(This) (This)->lpVtbl->Logout(This)
11942#define IBPCSatelliteTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
11943#define IBPCSatelliteTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
11944#define IBPCSatelliteTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
11945#define IBPCSatelliteTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
11946#define IBPCSatelliteTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
11947#define IBPCSatelliteTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
11948#define IBPCSatelliteTuner_get_DefaultSubChannelTypes(This,plDefaultVideoType,plDefaultAudioType) (This)->lpVtbl->get_DefaultSubChannelTypes(This,plDefaultVideoType,plDefaultAudioType)
11949#define IBPCSatelliteTuner_put_DefaultSubChannelTypes(This,lDefaultVideoType,lDefaultAudioType) (This)->lpVtbl->put_DefaultSubChannelTypes(This,lDefaultVideoType,lDefaultAudioType)
11950#define IBPCSatelliteTuner_IsTapingPermitted(This) (This)->lpVtbl->IsTapingPermitted(This)
11951#endif
11952#endif
11953  HRESULT WINAPI IBPCSatelliteTuner_get_DefaultSubChannelTypes_Proxy(IBPCSatelliteTuner *This,LONG *plDefaultVideoType,LONG *plDefaultAudioType);
11954  void __RPC_STUB IBPCSatelliteTuner_get_DefaultSubChannelTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11955  HRESULT WINAPI IBPCSatelliteTuner_put_DefaultSubChannelTypes_Proxy(IBPCSatelliteTuner *This,LONG lDefaultVideoType,LONG lDefaultAudioType);
11956  void __RPC_STUB IBPCSatelliteTuner_put_DefaultSubChannelTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11957  HRESULT WINAPI IBPCSatelliteTuner_IsTapingPermitted_Proxy(IBPCSatelliteTuner *This);
11958  void __RPC_STUB IBPCSatelliteTuner_IsTapingPermitted_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
11959#endif
11960
11961  typedef enum tagAMTVAudioEventType {
11962    AMTVAUDIO_EVENT_CHANGED = 0x1
11963  } AMTVAudioEventType;
11964
11965  extern RPC_IF_HANDLE __MIDL_itf_strmif_0182_v0_0_c_ifspec;
11966  extern RPC_IF_HANDLE __MIDL_itf_strmif_0182_v0_0_s_ifspec;
11967#ifndef __IAMTVAudio_INTERFACE_DEFINED__
11968#define __IAMTVAudio_INTERFACE_DEFINED__
11969  EXTERN_C const IID IID_IAMTVAudio;
11970#if defined(__cplusplus) && !defined(CINTERFACE)
11971  struct IAMTVAudio : public IUnknown {
11972  public:
11973    virtual HRESULT WINAPI GetHardwareSupportedTVAudioModes(LONG *plModes) = 0;
11974    virtual HRESULT WINAPI GetAvailableTVAudioModes(LONG *plModes) = 0;
11975    virtual HRESULT WINAPI get_TVAudioMode(LONG *plMode) = 0;
11976    virtual HRESULT WINAPI put_TVAudioMode(LONG lMode) = 0;
11977    virtual HRESULT WINAPI RegisterNotificationCallBack(IAMTunerNotification *pNotify,LONG lEvents) = 0;
11978    virtual HRESULT WINAPI UnRegisterNotificationCallBack(IAMTunerNotification *pNotify) = 0;
11979  };
11980#else
11981  typedef struct IAMTVAudioVtbl {
11982    BEGIN_INTERFACE
11983      HRESULT (WINAPI *QueryInterface)(IAMTVAudio *This,REFIID riid,void **ppvObject);
11984      ULONG (WINAPI *AddRef)(IAMTVAudio *This);
11985      ULONG (WINAPI *Release)(IAMTVAudio *This);
11986      HRESULT (WINAPI *GetHardwareSupportedTVAudioModes)(IAMTVAudio *This,LONG *plModes);
11987      HRESULT (WINAPI *GetAvailableTVAudioModes)(IAMTVAudio *This,LONG *plModes);
11988      HRESULT (WINAPI *get_TVAudioMode)(IAMTVAudio *This,LONG *plMode);
11989      HRESULT (WINAPI *put_TVAudioMode)(IAMTVAudio *This,LONG lMode);
11990      HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify,LONG lEvents);
11991      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify);
11992    END_INTERFACE
11993  } IAMTVAudioVtbl;
11994  struct IAMTVAudio {
11995    CONST_VTBL struct IAMTVAudioVtbl *lpVtbl;
11996  };
11997#ifdef COBJMACROS
11998#define IAMTVAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11999#define IAMTVAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
12000#define IAMTVAudio_Release(This) (This)->lpVtbl->Release(This)
12001#define IAMTVAudio_GetHardwareSupportedTVAudioModes(This,plModes) (This)->lpVtbl->GetHardwareSupportedTVAudioModes(This,plModes)
12002#define IAMTVAudio_GetAvailableTVAudioModes(This,plModes) (This)->lpVtbl->GetAvailableTVAudioModes(This,plModes)
12003#define IAMTVAudio_get_TVAudioMode(This,plMode) (This)->lpVtbl->get_TVAudioMode(This,plMode)
12004#define IAMTVAudio_put_TVAudioMode(This,lMode) (This)->lpVtbl->put_TVAudioMode(This,lMode)
12005#define IAMTVAudio_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
12006#define IAMTVAudio_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
12007#endif
12008#endif
12009  HRESULT WINAPI IAMTVAudio_GetHardwareSupportedTVAudioModes_Proxy(IAMTVAudio *This,LONG *plModes);
12010  void __RPC_STUB IAMTVAudio_GetHardwareSupportedTVAudioModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12011  HRESULT WINAPI IAMTVAudio_GetAvailableTVAudioModes_Proxy(IAMTVAudio *This,LONG *plModes);
12012  void __RPC_STUB IAMTVAudio_GetAvailableTVAudioModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12013  HRESULT WINAPI IAMTVAudio_get_TVAudioMode_Proxy(IAMTVAudio *This,LONG *plMode);
12014  void __RPC_STUB IAMTVAudio_get_TVAudioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12015  HRESULT WINAPI IAMTVAudio_put_TVAudioMode_Proxy(IAMTVAudio *This,LONG lMode);
12016  void __RPC_STUB IAMTVAudio_put_TVAudioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12017  HRESULT WINAPI IAMTVAudio_RegisterNotificationCallBack_Proxy(IAMTVAudio *This,IAMTunerNotification *pNotify,LONG lEvents);
12018  void __RPC_STUB IAMTVAudio_RegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12019  HRESULT WINAPI IAMTVAudio_UnRegisterNotificationCallBack_Proxy(IAMTVAudio *This,IAMTunerNotification *pNotify);
12020  void __RPC_STUB IAMTVAudio_UnRegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12021#endif
12022
12023#ifndef __IAMTVAudioNotification_INTERFACE_DEFINED__
12024#define __IAMTVAudioNotification_INTERFACE_DEFINED__
12025  EXTERN_C const IID IID_IAMTVAudioNotification;
12026#if defined(__cplusplus) && !defined(CINTERFACE)
12027  struct IAMTVAudioNotification : public IUnknown {
12028  public:
12029    virtual HRESULT WINAPI OnEvent(AMTVAudioEventType Event) = 0;
12030  };
12031#else
12032  typedef struct IAMTVAudioNotificationVtbl {
12033    BEGIN_INTERFACE
12034      HRESULT (WINAPI *QueryInterface)(IAMTVAudioNotification *This,REFIID riid,void **ppvObject);
12035      ULONG (WINAPI *AddRef)(IAMTVAudioNotification *This);
12036      ULONG (WINAPI *Release)(IAMTVAudioNotification *This);
12037      HRESULT (WINAPI *OnEvent)(IAMTVAudioNotification *This,AMTVAudioEventType Event);
12038    END_INTERFACE
12039  } IAMTVAudioNotificationVtbl;
12040  struct IAMTVAudioNotification {
12041    CONST_VTBL struct IAMTVAudioNotificationVtbl *lpVtbl;
12042  };
12043#ifdef COBJMACROS
12044#define IAMTVAudioNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12045#define IAMTVAudioNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
12046#define IAMTVAudioNotification_Release(This) (This)->lpVtbl->Release(This)
12047#define IAMTVAudioNotification_OnEvent(This,Event) (This)->lpVtbl->OnEvent(This,Event)
12048#endif
12049#endif
12050  HRESULT WINAPI IAMTVAudioNotification_OnEvent_Proxy(IAMTVAudioNotification *This,AMTVAudioEventType Event);
12051  void __RPC_STUB IAMTVAudioNotification_OnEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12052#endif
12053
12054#ifndef __IAMAnalogVideoEncoder_INTERFACE_DEFINED__
12055#define __IAMAnalogVideoEncoder_INTERFACE_DEFINED__
12056  EXTERN_C const IID IID_IAMAnalogVideoEncoder;
12057#if defined(__cplusplus) && !defined(CINTERFACE)
12058  struct IAMAnalogVideoEncoder : public IUnknown {
12059  public:
12060    virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
12061    virtual HRESULT WINAPI put_TVFormat(LONG lAnalogVideoStandard) = 0;
12062    virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
12063    virtual HRESULT WINAPI put_CopyProtection(LONG lVideoCopyProtection) = 0;
12064    virtual HRESULT WINAPI get_CopyProtection(LONG *lVideoCopyProtection) = 0;
12065    virtual HRESULT WINAPI put_CCEnable(LONG lCCEnable) = 0;
12066    virtual HRESULT WINAPI get_CCEnable(LONG *lCCEnable) = 0;
12067  };
12068#else
12069  typedef struct IAMAnalogVideoEncoderVtbl {
12070    BEGIN_INTERFACE
12071      HRESULT (WINAPI *QueryInterface)(IAMAnalogVideoEncoder *This,REFIID riid,void **ppvObject);
12072      ULONG (WINAPI *AddRef)(IAMAnalogVideoEncoder *This);
12073      ULONG (WINAPI *Release)(IAMAnalogVideoEncoder *This);
12074      HRESULT (WINAPI *get_AvailableTVFormats)(IAMAnalogVideoEncoder *This,LONG *lAnalogVideoStandard);
12075      HRESULT (WINAPI *put_TVFormat)(IAMAnalogVideoEncoder *This,LONG lAnalogVideoStandard);
12076      HRESULT (WINAPI *get_TVFormat)(IAMAnalogVideoEncoder *This,LONG *plAnalogVideoStandard);
12077      HRESULT (WINAPI *put_CopyProtection)(IAMAnalogVideoEncoder *This,LONG lVideoCopyProtection);
12078      HRESULT (WINAPI *get_CopyProtection)(IAMAnalogVideoEncoder *This,LONG *lVideoCopyProtection);
12079      HRESULT (WINAPI *put_CCEnable)(IAMAnalogVideoEncoder *This,LONG lCCEnable);
12080      HRESULT (WINAPI *get_CCEnable)(IAMAnalogVideoEncoder *This,LONG *lCCEnable);
12081    END_INTERFACE
12082  } IAMAnalogVideoEncoderVtbl;
12083  struct IAMAnalogVideoEncoder {
12084    CONST_VTBL struct IAMAnalogVideoEncoderVtbl *lpVtbl;
12085  };
12086#ifdef COBJMACROS
12087#define IAMAnalogVideoEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12088#define IAMAnalogVideoEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
12089#define IAMAnalogVideoEncoder_Release(This) (This)->lpVtbl->Release(This)
12090#define IAMAnalogVideoEncoder_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
12091#define IAMAnalogVideoEncoder_put_TVFormat(This,lAnalogVideoStandard) (This)->lpVtbl->put_TVFormat(This,lAnalogVideoStandard)
12092#define IAMAnalogVideoEncoder_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
12093#define IAMAnalogVideoEncoder_put_CopyProtection(This,lVideoCopyProtection) (This)->lpVtbl->put_CopyProtection(This,lVideoCopyProtection)
12094#define IAMAnalogVideoEncoder_get_CopyProtection(This,lVideoCopyProtection) (This)->lpVtbl->get_CopyProtection(This,lVideoCopyProtection)
12095#define IAMAnalogVideoEncoder_put_CCEnable(This,lCCEnable) (This)->lpVtbl->put_CCEnable(This,lCCEnable)
12096#define IAMAnalogVideoEncoder_get_CCEnable(This,lCCEnable) (This)->lpVtbl->get_CCEnable(This,lCCEnable)
12097#endif
12098#endif
12099  HRESULT WINAPI IAMAnalogVideoEncoder_get_AvailableTVFormats_Proxy(IAMAnalogVideoEncoder *This,LONG *lAnalogVideoStandard);
12100  void __RPC_STUB IAMAnalogVideoEncoder_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12101  HRESULT WINAPI IAMAnalogVideoEncoder_put_TVFormat_Proxy(IAMAnalogVideoEncoder *This,LONG lAnalogVideoStandard);
12102  void __RPC_STUB IAMAnalogVideoEncoder_put_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12103  HRESULT WINAPI IAMAnalogVideoEncoder_get_TVFormat_Proxy(IAMAnalogVideoEncoder *This,LONG *plAnalogVideoStandard);
12104  void __RPC_STUB IAMAnalogVideoEncoder_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12105  HRESULT WINAPI IAMAnalogVideoEncoder_put_CopyProtection_Proxy(IAMAnalogVideoEncoder *This,LONG lVideoCopyProtection);
12106  void __RPC_STUB IAMAnalogVideoEncoder_put_CopyProtection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12107  HRESULT WINAPI IAMAnalogVideoEncoder_get_CopyProtection_Proxy(IAMAnalogVideoEncoder *This,LONG *lVideoCopyProtection);
12108  void __RPC_STUB IAMAnalogVideoEncoder_get_CopyProtection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12109  HRESULT WINAPI IAMAnalogVideoEncoder_put_CCEnable_Proxy(IAMAnalogVideoEncoder *This,LONG lCCEnable);
12110  void __RPC_STUB IAMAnalogVideoEncoder_put_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12111  HRESULT WINAPI IAMAnalogVideoEncoder_get_CCEnable_Proxy(IAMAnalogVideoEncoder *This,LONG *lCCEnable);
12112  void __RPC_STUB IAMAnalogVideoEncoder_get_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12113#endif
12114
12115  typedef enum __MIDL___MIDL_itf_strmif_0185_0001 {
12116    AMPROPERTY_PIN_CATEGORY = 0,AMPROPERTY_PIN_MEDIUM = AMPROPERTY_PIN_CATEGORY + 1
12117  } AMPROPERTY_PIN;
12118
12119#ifndef __IAMPhysicalPinInfo_INTERFACE_DEFINED__
12120#define __IAMPhysicalPinInfo_INTERFACE_DEFINED__
12121  EXTERN_C const IID IID_IAMPhysicalPinInfo;
12122#if defined(__cplusplus) && !defined(CINTERFACE)
12123  struct IAMPhysicalPinInfo : public IUnknown {
12124  public:
12125    virtual HRESULT WINAPI GetPhysicalType(LONG *pType,LPOLESTR *ppszType) = 0;
12126  };
12127#else
12128  typedef struct IAMPhysicalPinInfoVtbl {
12129    BEGIN_INTERFACE
12130      HRESULT (WINAPI *QueryInterface)(IAMPhysicalPinInfo *This,REFIID riid,void **ppvObject);
12131      ULONG (WINAPI *AddRef)(IAMPhysicalPinInfo *This);
12132      ULONG (WINAPI *Release)(IAMPhysicalPinInfo *This);
12133      HRESULT (WINAPI *GetPhysicalType)(IAMPhysicalPinInfo *This,LONG *pType,LPOLESTR *ppszType);
12134    END_INTERFACE
12135  } IAMPhysicalPinInfoVtbl;
12136  struct IAMPhysicalPinInfo {
12137    CONST_VTBL struct IAMPhysicalPinInfoVtbl *lpVtbl;
12138  };
12139#ifdef COBJMACROS
12140#define IAMPhysicalPinInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12141#define IAMPhysicalPinInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
12142#define IAMPhysicalPinInfo_Release(This) (This)->lpVtbl->Release(This)
12143#define IAMPhysicalPinInfo_GetPhysicalType(This,pType,ppszType) (This)->lpVtbl->GetPhysicalType(This,pType,ppszType)
12144#endif
12145#endif
12146  HRESULT WINAPI IAMPhysicalPinInfo_GetPhysicalType_Proxy(IAMPhysicalPinInfo *This,LONG *pType,LPOLESTR *ppszType);
12147  void __RPC_STUB IAMPhysicalPinInfo_GetPhysicalType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12148#endif
12149
12150  typedef IAMPhysicalPinInfo *PAMPHYSICALPININFO;
12151
12152  extern RPC_IF_HANDLE __MIDL_itf_strmif_0338_v0_0_c_ifspec;
12153  extern RPC_IF_HANDLE __MIDL_itf_strmif_0338_v0_0_s_ifspec;
12154#ifndef __IAMExtDevice_INTERFACE_DEFINED__
12155#define __IAMExtDevice_INTERFACE_DEFINED__
12156  EXTERN_C const IID IID_IAMExtDevice;
12157#if defined(__cplusplus) && !defined(CINTERFACE)
12158  struct IAMExtDevice : public IUnknown {
12159  public:
12160    virtual HRESULT WINAPI GetCapability(LONG Capability,LONG *pValue,double *pdblValue) = 0;
12161    virtual HRESULT WINAPI get_ExternalDeviceID(LPOLESTR *ppszData) = 0;
12162    virtual HRESULT WINAPI get_ExternalDeviceVersion(LPOLESTR *ppszData) = 0;
12163    virtual HRESULT WINAPI put_DevicePower(LONG PowerMode) = 0;
12164    virtual HRESULT WINAPI get_DevicePower(LONG *pPowerMode) = 0;
12165    virtual HRESULT WINAPI Calibrate(HEVENT hEvent,LONG Mode,LONG *pStatus) = 0;
12166    virtual HRESULT WINAPI put_DevicePort(LONG DevicePort) = 0;
12167    virtual HRESULT WINAPI get_DevicePort(LONG *pDevicePort) = 0;
12168  };
12169#else
12170  typedef struct IAMExtDeviceVtbl {
12171    BEGIN_INTERFACE
12172      HRESULT (WINAPI *QueryInterface)(IAMExtDevice *This,REFIID riid,void **ppvObject);
12173      ULONG (WINAPI *AddRef)(IAMExtDevice *This);
12174      ULONG (WINAPI *Release)(IAMExtDevice *This);
12175      HRESULT (WINAPI *GetCapability)(IAMExtDevice *This,LONG Capability,LONG *pValue,double *pdblValue);
12176      HRESULT (WINAPI *get_ExternalDeviceID)(IAMExtDevice *This,LPOLESTR *ppszData);
12177      HRESULT (WINAPI *get_ExternalDeviceVersion)(IAMExtDevice *This,LPOLESTR *ppszData);
12178      HRESULT (WINAPI *put_DevicePower)(IAMExtDevice *This,LONG PowerMode);
12179      HRESULT (WINAPI *get_DevicePower)(IAMExtDevice *This,LONG *pPowerMode);
12180      HRESULT (WINAPI *Calibrate)(IAMExtDevice *This,HEVENT hEvent,LONG Mode,LONG *pStatus);
12181      HRESULT (WINAPI *put_DevicePort)(IAMExtDevice *This,LONG DevicePort);
12182      HRESULT (WINAPI *get_DevicePort)(IAMExtDevice *This,LONG *pDevicePort);
12183    END_INTERFACE
12184  } IAMExtDeviceVtbl;
12185  struct IAMExtDevice {
12186    CONST_VTBL struct IAMExtDeviceVtbl *lpVtbl;
12187  };
12188#ifdef COBJMACROS
12189#define IAMExtDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12190#define IAMExtDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
12191#define IAMExtDevice_Release(This) (This)->lpVtbl->Release(This)
12192#define IAMExtDevice_GetCapability(This,Capability,pValue,pdblValue) (This)->lpVtbl->GetCapability(This,Capability,pValue,pdblValue)
12193#define IAMExtDevice_get_ExternalDeviceID(This,ppszData) (This)->lpVtbl->get_ExternalDeviceID(This,ppszData)
12194#define IAMExtDevice_get_ExternalDeviceVersion(This,ppszData) (This)->lpVtbl->get_ExternalDeviceVersion(This,ppszData)
12195#define IAMExtDevice_put_DevicePower(This,PowerMode) (This)->lpVtbl->put_DevicePower(This,PowerMode)
12196#define IAMExtDevice_get_DevicePower(This,pPowerMode) (This)->lpVtbl->get_DevicePower(This,pPowerMode)
12197#define IAMExtDevice_Calibrate(This,hEvent,Mode,pStatus) (This)->lpVtbl->Calibrate(This,hEvent,Mode,pStatus)
12198#define IAMExtDevice_put_DevicePort(This,DevicePort) (This)->lpVtbl->put_DevicePort(This,DevicePort)
12199#define IAMExtDevice_get_DevicePort(This,pDevicePort) (This)->lpVtbl->get_DevicePort(This,pDevicePort)
12200#endif
12201#endif
12202  HRESULT WINAPI IAMExtDevice_GetCapability_Proxy(IAMExtDevice *This,LONG Capability,LONG *pValue,double *pdblValue);
12203  void __RPC_STUB IAMExtDevice_GetCapability_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12204  HRESULT WINAPI IAMExtDevice_get_ExternalDeviceID_Proxy(IAMExtDevice *This,LPOLESTR *ppszData);
12205  void __RPC_STUB IAMExtDevice_get_ExternalDeviceID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12206  HRESULT WINAPI IAMExtDevice_get_ExternalDeviceVersion_Proxy(IAMExtDevice *This,LPOLESTR *ppszData);
12207  void __RPC_STUB IAMExtDevice_get_ExternalDeviceVersion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12208  HRESULT WINAPI IAMExtDevice_put_DevicePower_Proxy(IAMExtDevice *This,LONG PowerMode);
12209  void __RPC_STUB IAMExtDevice_put_DevicePower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12210  HRESULT WINAPI IAMExtDevice_get_DevicePower_Proxy(IAMExtDevice *This,LONG *pPowerMode);
12211  void __RPC_STUB IAMExtDevice_get_DevicePower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12212  HRESULT WINAPI IAMExtDevice_Calibrate_Proxy(IAMExtDevice *This,HEVENT hEvent,LONG Mode,LONG *pStatus);
12213  void __RPC_STUB IAMExtDevice_Calibrate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12214  HRESULT WINAPI IAMExtDevice_put_DevicePort_Proxy(IAMExtDevice *This,LONG DevicePort);
12215  void __RPC_STUB IAMExtDevice_put_DevicePort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12216  HRESULT WINAPI IAMExtDevice_get_DevicePort_Proxy(IAMExtDevice *This,LONG *pDevicePort);
12217  void __RPC_STUB IAMExtDevice_get_DevicePort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12218#endif
12219
12220  typedef IAMExtDevice *PEXTDEVICE;
12221
12222  extern RPC_IF_HANDLE __MIDL_itf_strmif_0339_v0_0_c_ifspec;
12223  extern RPC_IF_HANDLE __MIDL_itf_strmif_0339_v0_0_s_ifspec;
12224#ifndef __IAMExtTransport_INTERFACE_DEFINED__
12225#define __IAMExtTransport_INTERFACE_DEFINED__
12226  EXTERN_C const IID IID_IAMExtTransport;
12227#if defined(__cplusplus) && !defined(CINTERFACE)
12228  struct IAMExtTransport : public IUnknown {
12229  public:
12230    virtual HRESULT WINAPI GetCapability(LONG Capability,LONG *pValue,double *pdblValue) = 0;
12231    virtual HRESULT WINAPI put_MediaState(LONG State) = 0;
12232    virtual HRESULT WINAPI get_MediaState(LONG *pState) = 0;
12233    virtual HRESULT WINAPI put_LocalControl(LONG State) = 0;
12234    virtual HRESULT WINAPI get_LocalControl(LONG *pState) = 0;
12235    virtual HRESULT WINAPI GetStatus(LONG StatusItem,LONG *pValue) = 0;
12236    virtual HRESULT WINAPI GetTransportBasicParameters(LONG Param,LONG *pValue,LPOLESTR *ppszData) = 0;
12237    virtual HRESULT WINAPI SetTransportBasicParameters(LONG Param,LONG Value,LPCOLESTR pszData) = 0;
12238    virtual HRESULT WINAPI GetTransportVideoParameters(LONG Param,LONG *pValue) = 0;
12239    virtual HRESULT WINAPI SetTransportVideoParameters(LONG Param,LONG Value) = 0;
12240    virtual HRESULT WINAPI GetTransportAudioParameters(LONG Param,LONG *pValue) = 0;
12241    virtual HRESULT WINAPI SetTransportAudioParameters(LONG Param,LONG Value) = 0;
12242    virtual HRESULT WINAPI put_Mode(LONG Mode) = 0;
12243    virtual HRESULT WINAPI get_Mode(LONG *pMode) = 0;
12244    virtual HRESULT WINAPI put_Rate(double dblRate) = 0;
12245    virtual HRESULT WINAPI get_Rate(double *pdblRate) = 0;
12246    virtual HRESULT WINAPI GetChase(LONG *pEnabled,LONG *pOffset,HEVENT *phEvent) = 0;
12247    virtual HRESULT WINAPI SetChase(LONG Enable,LONG Offset,HEVENT hEvent) = 0;
12248    virtual HRESULT WINAPI GetBump(LONG *pSpeed,LONG *pDuration) = 0;
12249    virtual HRESULT WINAPI SetBump(LONG Speed,LONG Duration) = 0;
12250    virtual HRESULT WINAPI get_AntiClogControl(LONG *pEnabled) = 0;
12251    virtual HRESULT WINAPI put_AntiClogControl(LONG Enable) = 0;
12252    virtual HRESULT WINAPI GetEditPropertySet(LONG EditID,LONG *pState) = 0;
12253    virtual HRESULT WINAPI SetEditPropertySet(LONG *pEditID,LONG State) = 0;
12254    virtual HRESULT WINAPI GetEditProperty(LONG EditID,LONG Param,LONG *pValue) = 0;
12255    virtual HRESULT WINAPI SetEditProperty(LONG EditID,LONG Param,LONG Value) = 0;
12256    virtual HRESULT WINAPI get_EditStart(LONG *pValue) = 0;
12257    virtual HRESULT WINAPI put_EditStart(LONG Value) = 0;
12258  };
12259#else
12260  typedef struct IAMExtTransportVtbl {
12261    BEGIN_INTERFACE
12262      HRESULT (WINAPI *QueryInterface)(IAMExtTransport *This,REFIID riid,void **ppvObject);
12263      ULONG (WINAPI *AddRef)(IAMExtTransport *This);
12264      ULONG (WINAPI *Release)(IAMExtTransport *This);
12265      HRESULT (WINAPI *GetCapability)(IAMExtTransport *This,LONG Capability,LONG *pValue,double *pdblValue);
12266      HRESULT (WINAPI *put_MediaState)(IAMExtTransport *This,LONG State);
12267      HRESULT (WINAPI *get_MediaState)(IAMExtTransport *This,LONG *pState);
12268      HRESULT (WINAPI *put_LocalControl)(IAMExtTransport *This,LONG State);
12269      HRESULT (WINAPI *get_LocalControl)(IAMExtTransport *This,LONG *pState);
12270      HRESULT (WINAPI *GetStatus)(IAMExtTransport *This,LONG StatusItem,LONG *pValue);
12271      HRESULT (WINAPI *GetTransportBasicParameters)(IAMExtTransport *This,LONG Param,LONG *pValue,LPOLESTR *ppszData);
12272      HRESULT (WINAPI *SetTransportBasicParameters)(IAMExtTransport *This,LONG Param,LONG Value,LPCOLESTR pszData);
12273      HRESULT (WINAPI *GetTransportVideoParameters)(IAMExtTransport *This,LONG Param,LONG *pValue);
12274      HRESULT (WINAPI *SetTransportVideoParameters)(IAMExtTransport *This,LONG Param,LONG Value);
12275      HRESULT (WINAPI *GetTransportAudioParameters)(IAMExtTransport *This,LONG Param,LONG *pValue);
12276      HRESULT (WINAPI *SetTransportAudioParameters)(IAMExtTransport *This,LONG Param,LONG Value);
12277      HRESULT (WINAPI *put_Mode)(IAMExtTransport *This,LONG Mode);
12278      HRESULT (WINAPI *get_Mode)(IAMExtTransport *This,LONG *pMode);
12279      HRESULT (WINAPI *put_Rate)(IAMExtTransport *This,double dblRate);
12280      HRESULT (WINAPI *get_Rate)(IAMExtTransport *This,double *pdblRate);
12281      HRESULT (WINAPI *GetChase)(IAMExtTransport *This,LONG *pEnabled,LONG *pOffset,HEVENT *phEvent);
12282      HRESULT (WINAPI *SetChase)(IAMExtTransport *This,LONG Enable,LONG Offset,HEVENT hEvent);
12283      HRESULT (WINAPI *GetBump)(IAMExtTransport *This,LONG *pSpeed,LONG *pDuration);
12284      HRESULT (WINAPI *SetBump)(IAMExtTransport *This,LONG Speed,LONG Duration);
12285      HRESULT (WINAPI *get_AntiClogControl)(IAMExtTransport *This,LONG *pEnabled);
12286      HRESULT (WINAPI *put_AntiClogControl)(IAMExtTransport *This,LONG Enable);
12287      HRESULT (WINAPI *GetEditPropertySet)(IAMExtTransport *This,LONG EditID,LONG *pState);
12288      HRESULT (WINAPI *SetEditPropertySet)(IAMExtTransport *This,LONG *pEditID,LONG State);
12289      HRESULT (WINAPI *GetEditProperty)(IAMExtTransport *This,LONG EditID,LONG Param,LONG *pValue);
12290      HRESULT (WINAPI *SetEditProperty)(IAMExtTransport *This,LONG EditID,LONG Param,LONG Value);
12291      HRESULT (WINAPI *get_EditStart)(IAMExtTransport *This,LONG *pValue);
12292      HRESULT (WINAPI *put_EditStart)(IAMExtTransport *This,LONG Value);
12293    END_INTERFACE
12294  } IAMExtTransportVtbl;
12295  struct IAMExtTransport {
12296    CONST_VTBL struct IAMExtTransportVtbl *lpVtbl;
12297  };
12298#ifdef COBJMACROS
12299#define IAMExtTransport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12300#define IAMExtTransport_AddRef(This) (This)->lpVtbl->AddRef(This)
12301#define IAMExtTransport_Release(This) (This)->lpVtbl->Release(This)
12302#define IAMExtTransport_GetCapability(This,Capability,pValue,pdblValue) (This)->lpVtbl->GetCapability(This,Capability,pValue,pdblValue)
12303#define IAMExtTransport_put_MediaState(This,State) (This)->lpVtbl->put_MediaState(This,State)
12304#define IAMExtTransport_get_MediaState(This,pState) (This)->lpVtbl->get_MediaState(This,pState)
12305#define IAMExtTransport_put_LocalControl(This,State) (This)->lpVtbl->put_LocalControl(This,State)
12306#define IAMExtTransport_get_LocalControl(This,pState) (This)->lpVtbl->get_LocalControl(This,pState)
12307#define IAMExtTransport_GetStatus(This,StatusItem,pValue) (This)->lpVtbl->GetStatus(This,StatusItem,pValue)
12308#define IAMExtTransport_GetTransportBasicParameters(This,Param,pValue,ppszData) (This)->lpVtbl->GetTransportBasicParameters(This,Param,pValue,ppszData)
12309#define IAMExtTransport_SetTransportBasicParameters(This,Param,Value,pszData) (This)->lpVtbl->SetTransportBasicParameters(This,Param,Value,pszData)
12310#define IAMExtTransport_GetTransportVideoParameters(This,Param,pValue) (This)->lpVtbl->GetTransportVideoParameters(This,Param,pValue)
12311#define IAMExtTransport_SetTransportVideoParameters(This,Param,Value) (This)->lpVtbl->SetTransportVideoParameters(This,Param,Value)
12312#define IAMExtTransport_GetTransportAudioParameters(This,Param,pValue) (This)->lpVtbl->GetTransportAudioParameters(This,Param,pValue)
12313#define IAMExtTransport_SetTransportAudioParameters(This,Param,Value) (This)->lpVtbl->SetTransportAudioParameters(This,Param,Value)
12314#define IAMExtTransport_put_Mode(This,Mode) (This)->lpVtbl->put_Mode(This,Mode)
12315#define IAMExtTransport_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
12316#define IAMExtTransport_put_Rate(This,dblRate) (This)->lpVtbl->put_Rate(This,dblRate)
12317#define IAMExtTransport_get_Rate(This,pdblRate) (This)->lpVtbl->get_Rate(This,pdblRate)
12318#define IAMExtTransport_GetChase(This,pEnabled,pOffset,phEvent) (This)->lpVtbl->GetChase(This,pEnabled,pOffset,phEvent)
12319#define IAMExtTransport_SetChase(This,Enable,Offset,hEvent) (This)->lpVtbl->SetChase(This,Enable,Offset,hEvent)
12320#define IAMExtTransport_GetBump(This,pSpeed,pDuration) (This)->lpVtbl->GetBump(This,pSpeed,pDuration)
12321#define IAMExtTransport_SetBump(This,Speed,Duration) (This)->lpVtbl->SetBump(This,Speed,Duration)
12322#define IAMExtTransport_get_AntiClogControl(This,pEnabled) (This)->lpVtbl->get_AntiClogControl(This,pEnabled)
12323#define IAMExtTransport_put_AntiClogControl(This,Enable) (This)->lpVtbl->put_AntiClogControl(This,Enable)
12324#define IAMExtTransport_GetEditPropertySet(This,EditID,pState) (This)->lpVtbl->GetEditPropertySet(This,EditID,pState)
12325#define IAMExtTransport_SetEditPropertySet(This,pEditID,State) (This)->lpVtbl->SetEditPropertySet(This,pEditID,State)
12326#define IAMExtTransport_GetEditProperty(This,EditID,Param,pValue) (This)->lpVtbl->GetEditProperty(This,EditID,Param,pValue)
12327#define IAMExtTransport_SetEditProperty(This,EditID,Param,Value) (This)->lpVtbl->SetEditProperty(This,EditID,Param,Value)
12328#define IAMExtTransport_get_EditStart(This,pValue) (This)->lpVtbl->get_EditStart(This,pValue)
12329#define IAMExtTransport_put_EditStart(This,Value) (This)->lpVtbl->put_EditStart(This,Value)
12330#endif
12331#endif
12332  HRESULT WINAPI IAMExtTransport_GetCapability_Proxy(IAMExtTransport *This,LONG Capability,LONG *pValue,double *pdblValue);
12333  void __RPC_STUB IAMExtTransport_GetCapability_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12334  HRESULT WINAPI IAMExtTransport_put_MediaState_Proxy(IAMExtTransport *This,LONG State);
12335  void __RPC_STUB IAMExtTransport_put_MediaState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12336  HRESULT WINAPI IAMExtTransport_get_MediaState_Proxy(IAMExtTransport *This,LONG *pState);
12337  void __RPC_STUB IAMExtTransport_get_MediaState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12338  HRESULT WINAPI IAMExtTransport_put_LocalControl_Proxy(IAMExtTransport *This,LONG State);
12339  void __RPC_STUB IAMExtTransport_put_LocalControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12340  HRESULT WINAPI IAMExtTransport_get_LocalControl_Proxy(IAMExtTransport *This,LONG *pState);
12341  void __RPC_STUB IAMExtTransport_get_LocalControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12342  HRESULT WINAPI IAMExtTransport_GetStatus_Proxy(IAMExtTransport *This,LONG StatusItem,LONG *pValue);
12343  void __RPC_STUB IAMExtTransport_GetStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12344  HRESULT WINAPI IAMExtTransport_GetTransportBasicParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue,LPOLESTR *ppszData);
12345  void __RPC_STUB IAMExtTransport_GetTransportBasicParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12346  HRESULT WINAPI IAMExtTransport_SetTransportBasicParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value,LPCOLESTR pszData);
12347  void __RPC_STUB IAMExtTransport_SetTransportBasicParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12348  HRESULT WINAPI IAMExtTransport_GetTransportVideoParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue);
12349  void __RPC_STUB IAMExtTransport_GetTransportVideoParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12350  HRESULT WINAPI IAMExtTransport_SetTransportVideoParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value);
12351  void __RPC_STUB IAMExtTransport_SetTransportVideoParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12352  HRESULT WINAPI IAMExtTransport_GetTransportAudioParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue);
12353  void __RPC_STUB IAMExtTransport_GetTransportAudioParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12354  HRESULT WINAPI IAMExtTransport_SetTransportAudioParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value);
12355  void __RPC_STUB IAMExtTransport_SetTransportAudioParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12356  HRESULT WINAPI IAMExtTransport_put_Mode_Proxy(IAMExtTransport *This,LONG Mode);
12357  void __RPC_STUB IAMExtTransport_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12358  HRESULT WINAPI IAMExtTransport_get_Mode_Proxy(IAMExtTransport *This,LONG *pMode);
12359  void __RPC_STUB IAMExtTransport_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12360  HRESULT WINAPI IAMExtTransport_put_Rate_Proxy(IAMExtTransport *This,double dblRate);
12361  void __RPC_STUB IAMExtTransport_put_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12362  HRESULT WINAPI IAMExtTransport_get_Rate_Proxy(IAMExtTransport *This,double *pdblRate);
12363  void __RPC_STUB IAMExtTransport_get_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12364  HRESULT WINAPI IAMExtTransport_GetChase_Proxy(IAMExtTransport *This,LONG *pEnabled,LONG *pOffset,HEVENT *phEvent);
12365  void __RPC_STUB IAMExtTransport_GetChase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12366  HRESULT WINAPI IAMExtTransport_SetChase_Proxy(IAMExtTransport *This,LONG Enable,LONG Offset,HEVENT hEvent);
12367  void __RPC_STUB IAMExtTransport_SetChase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12368  HRESULT WINAPI IAMExtTransport_GetBump_Proxy(IAMExtTransport *This,LONG *pSpeed,LONG *pDuration);
12369  void __RPC_STUB IAMExtTransport_GetBump_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12370  HRESULT WINAPI IAMExtTransport_SetBump_Proxy(IAMExtTransport *This,LONG Speed,LONG Duration);
12371  void __RPC_STUB IAMExtTransport_SetBump_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12372  HRESULT WINAPI IAMExtTransport_get_AntiClogControl_Proxy(IAMExtTransport *This,LONG *pEnabled);
12373  void __RPC_STUB IAMExtTransport_get_AntiClogControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12374  HRESULT WINAPI IAMExtTransport_put_AntiClogControl_Proxy(IAMExtTransport *This,LONG Enable);
12375  void __RPC_STUB IAMExtTransport_put_AntiClogControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12376  HRESULT WINAPI IAMExtTransport_GetEditPropertySet_Proxy(IAMExtTransport *This,LONG EditID,LONG *pState);
12377  void __RPC_STUB IAMExtTransport_GetEditPropertySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12378  HRESULT WINAPI IAMExtTransport_SetEditPropertySet_Proxy(IAMExtTransport *This,LONG *pEditID,LONG State);
12379  void __RPC_STUB IAMExtTransport_SetEditPropertySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12380  HRESULT WINAPI IAMExtTransport_GetEditProperty_Proxy(IAMExtTransport *This,LONG EditID,LONG Param,LONG *pValue);
12381  void __RPC_STUB IAMExtTransport_GetEditProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12382  HRESULT WINAPI IAMExtTransport_SetEditProperty_Proxy(IAMExtTransport *This,LONG EditID,LONG Param,LONG Value);
12383  void __RPC_STUB IAMExtTransport_SetEditProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12384  HRESULT WINAPI IAMExtTransport_get_EditStart_Proxy(IAMExtTransport *This,LONG *pValue);
12385  void __RPC_STUB IAMExtTransport_get_EditStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12386  HRESULT WINAPI IAMExtTransport_put_EditStart_Proxy(IAMExtTransport *This,LONG Value);
12387  void __RPC_STUB IAMExtTransport_put_EditStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12388#endif
12389
12390  typedef IAMExtTransport *PIAMEXTTRANSPORT;
12391
12392#ifndef TIMECODE_DEFINED
12393#define TIMECODE_DEFINED
12394  typedef union _timecode {
12395    __C89_NAMELESS struct {
12396      WORD wFrameRate;
12397      WORD wFrameFract;
12398      DWORD dwFrames;
12399    };
12400    DWORDLONG qw;
12401  } TIMECODE;
12402#endif
12403
12404  typedef TIMECODE *PTIMECODE;
12405
12406  typedef struct tagTIMECODE_SAMPLE {
12407    LONGLONG qwTick;
12408    TIMECODE timecode;
12409    DWORD dwUser;
12410    DWORD dwFlags;
12411  } TIMECODE_SAMPLE;
12412
12413  typedef TIMECODE_SAMPLE *PTIMECODE_SAMPLE;
12414
12415  extern RPC_IF_HANDLE __MIDL_itf_strmif_0340_v0_0_c_ifspec;
12416  extern RPC_IF_HANDLE __MIDL_itf_strmif_0340_v0_0_s_ifspec;
12417#ifndef __IAMTimecodeReader_INTERFACE_DEFINED__
12418#define __IAMTimecodeReader_INTERFACE_DEFINED__
12419  EXTERN_C const IID IID_IAMTimecodeReader;
12420#if defined(__cplusplus) && !defined(CINTERFACE)
12421  struct IAMTimecodeReader : public IUnknown {
12422  public:
12423    virtual HRESULT WINAPI GetTCRMode(LONG Param,LONG *pValue) = 0;
12424    virtual HRESULT WINAPI SetTCRMode(LONG Param,LONG Value) = 0;
12425    virtual HRESULT WINAPI put_VITCLine(LONG Line) = 0;
12426    virtual HRESULT WINAPI get_VITCLine(LONG *pLine) = 0;
12427    virtual HRESULT WINAPI GetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
12428  };
12429#else
12430  typedef struct IAMTimecodeReaderVtbl {
12431    BEGIN_INTERFACE
12432      HRESULT (WINAPI *QueryInterface)(IAMTimecodeReader *This,REFIID riid,void **ppvObject);
12433      ULONG (WINAPI *AddRef)(IAMTimecodeReader *This);
12434      ULONG (WINAPI *Release)(IAMTimecodeReader *This);
12435      HRESULT (WINAPI *GetTCRMode)(IAMTimecodeReader *This,LONG Param,LONG *pValue);
12436      HRESULT (WINAPI *SetTCRMode)(IAMTimecodeReader *This,LONG Param,LONG Value);
12437      HRESULT (WINAPI *put_VITCLine)(IAMTimecodeReader *This,LONG Line);
12438      HRESULT (WINAPI *get_VITCLine)(IAMTimecodeReader *This,LONG *pLine);
12439      HRESULT (WINAPI *GetTimecode)(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
12440    END_INTERFACE
12441  } IAMTimecodeReaderVtbl;
12442  struct IAMTimecodeReader {
12443    CONST_VTBL struct IAMTimecodeReaderVtbl *lpVtbl;
12444  };
12445#ifdef COBJMACROS
12446#define IAMTimecodeReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12447#define IAMTimecodeReader_AddRef(This) (This)->lpVtbl->AddRef(This)
12448#define IAMTimecodeReader_Release(This) (This)->lpVtbl->Release(This)
12449#define IAMTimecodeReader_GetTCRMode(This,Param,pValue) (This)->lpVtbl->GetTCRMode(This,Param,pValue)
12450#define IAMTimecodeReader_SetTCRMode(This,Param,Value) (This)->lpVtbl->SetTCRMode(This,Param,Value)
12451#define IAMTimecodeReader_put_VITCLine(This,Line) (This)->lpVtbl->put_VITCLine(This,Line)
12452#define IAMTimecodeReader_get_VITCLine(This,pLine) (This)->lpVtbl->get_VITCLine(This,pLine)
12453#define IAMTimecodeReader_GetTimecode(This,pTimecodeSample) (This)->lpVtbl->GetTimecode(This,pTimecodeSample)
12454#endif
12455#endif
12456  HRESULT WINAPI IAMTimecodeReader_GetTCRMode_Proxy(IAMTimecodeReader *This,LONG Param,LONG *pValue);
12457  void __RPC_STUB IAMTimecodeReader_GetTCRMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12458  HRESULT WINAPI IAMTimecodeReader_SetTCRMode_Proxy(IAMTimecodeReader *This,LONG Param,LONG Value);
12459  void __RPC_STUB IAMTimecodeReader_SetTCRMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12460  HRESULT WINAPI IAMTimecodeReader_put_VITCLine_Proxy(IAMTimecodeReader *This,LONG Line);
12461  void __RPC_STUB IAMTimecodeReader_put_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12462  HRESULT WINAPI IAMTimecodeReader_get_VITCLine_Proxy(IAMTimecodeReader *This,LONG *pLine);
12463  void __RPC_STUB IAMTimecodeReader_get_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12464  HRESULT WINAPI IAMTimecodeReader_GetTimecode_Proxy(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
12465  void __RPC_STUB IAMTimecodeReader_GetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12466#endif
12467
12468  typedef IAMTimecodeReader *PIAMTIMECODEREADER;
12469
12470  extern RPC_IF_HANDLE __MIDL_itf_strmif_0341_v0_0_c_ifspec;
12471  extern RPC_IF_HANDLE __MIDL_itf_strmif_0341_v0_0_s_ifspec;
12472#ifndef __IAMTimecodeGenerator_INTERFACE_DEFINED__
12473#define __IAMTimecodeGenerator_INTERFACE_DEFINED__
12474  EXTERN_C const IID IID_IAMTimecodeGenerator;
12475#if defined(__cplusplus) && !defined(CINTERFACE)
12476  struct IAMTimecodeGenerator : public IUnknown {
12477  public:
12478    virtual HRESULT WINAPI GetTCGMode(LONG Param,LONG *pValue) = 0;
12479    virtual HRESULT WINAPI SetTCGMode(LONG Param,LONG Value) = 0;
12480    virtual HRESULT WINAPI put_VITCLine(LONG Line) = 0;
12481    virtual HRESULT WINAPI get_VITCLine(LONG *pLine) = 0;
12482    virtual HRESULT WINAPI SetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
12483    virtual HRESULT WINAPI GetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
12484  };
12485#else
12486  typedef struct IAMTimecodeGeneratorVtbl {
12487    BEGIN_INTERFACE
12488      HRESULT (WINAPI *QueryInterface)(IAMTimecodeGenerator *This,REFIID riid,void **ppvObject);
12489      ULONG (WINAPI *AddRef)(IAMTimecodeGenerator *This);
12490      ULONG (WINAPI *Release)(IAMTimecodeGenerator *This);
12491      HRESULT (WINAPI *GetTCGMode)(IAMTimecodeGenerator *This,LONG Param,LONG *pValue);
12492      HRESULT (WINAPI *SetTCGMode)(IAMTimecodeGenerator *This,LONG Param,LONG Value);
12493      HRESULT (WINAPI *put_VITCLine)(IAMTimecodeGenerator *This,LONG Line);
12494      HRESULT (WINAPI *get_VITCLine)(IAMTimecodeGenerator *This,LONG *pLine);
12495      HRESULT (WINAPI *SetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
12496      HRESULT (WINAPI *GetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
12497    END_INTERFACE
12498  } IAMTimecodeGeneratorVtbl;
12499  struct IAMTimecodeGenerator {
12500    CONST_VTBL struct IAMTimecodeGeneratorVtbl *lpVtbl;
12501  };
12502#ifdef COBJMACROS
12503#define IAMTimecodeGenerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12504#define IAMTimecodeGenerator_AddRef(This) (This)->lpVtbl->AddRef(This)
12505#define IAMTimecodeGenerator_Release(This) (This)->lpVtbl->Release(This)
12506#define IAMTimecodeGenerator_GetTCGMode(This,Param,pValue) (This)->lpVtbl->GetTCGMode(This,Param,pValue)
12507#define IAMTimecodeGenerator_SetTCGMode(This,Param,Value) (This)->lpVtbl->SetTCGMode(This,Param,Value)
12508#define IAMTimecodeGenerator_put_VITCLine(This,Line) (This)->lpVtbl->put_VITCLine(This,Line)
12509#define IAMTimecodeGenerator_get_VITCLine(This,pLine) (This)->lpVtbl->get_VITCLine(This,pLine)
12510#define IAMTimecodeGenerator_SetTimecode(This,pTimecodeSample) (This)->lpVtbl->SetTimecode(This,pTimecodeSample)
12511#define IAMTimecodeGenerator_GetTimecode(This,pTimecodeSample) (This)->lpVtbl->GetTimecode(This,pTimecodeSample)
12512#endif
12513#endif
12514  HRESULT WINAPI IAMTimecodeGenerator_GetTCGMode_Proxy(IAMTimecodeGenerator *This,LONG Param,LONG *pValue);
12515  void __RPC_STUB IAMTimecodeGenerator_GetTCGMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12516  HRESULT WINAPI IAMTimecodeGenerator_SetTCGMode_Proxy(IAMTimecodeGenerator *This,LONG Param,LONG Value);
12517  void __RPC_STUB IAMTimecodeGenerator_SetTCGMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12518  HRESULT WINAPI IAMTimecodeGenerator_put_VITCLine_Proxy(IAMTimecodeGenerator *This,LONG Line);
12519  void __RPC_STUB IAMTimecodeGenerator_put_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12520  HRESULT WINAPI IAMTimecodeGenerator_get_VITCLine_Proxy(IAMTimecodeGenerator *This,LONG *pLine);
12521  void __RPC_STUB IAMTimecodeGenerator_get_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12522  HRESULT WINAPI IAMTimecodeGenerator_SetTimecode_Proxy(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
12523  void __RPC_STUB IAMTimecodeGenerator_SetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12524  HRESULT WINAPI IAMTimecodeGenerator_GetTimecode_Proxy(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
12525  void __RPC_STUB IAMTimecodeGenerator_GetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12526#endif
12527
12528  typedef IAMTimecodeGenerator *PIAMTIMECODEGENERATOR;
12529
12530  extern RPC_IF_HANDLE __MIDL_itf_strmif_0342_v0_0_c_ifspec;
12531  extern RPC_IF_HANDLE __MIDL_itf_strmif_0342_v0_0_s_ifspec;
12532#ifndef __IAMTimecodeDisplay_INTERFACE_DEFINED__
12533#define __IAMTimecodeDisplay_INTERFACE_DEFINED__
12534  EXTERN_C const IID IID_IAMTimecodeDisplay;
12535#if defined(__cplusplus) && !defined(CINTERFACE)
12536  struct IAMTimecodeDisplay : public IUnknown {
12537  public:
12538    virtual HRESULT WINAPI GetTCDisplayEnable(LONG *pState) = 0;
12539    virtual HRESULT WINAPI SetTCDisplayEnable(LONG State) = 0;
12540    virtual HRESULT WINAPI GetTCDisplay(LONG Param,LONG *pValue) = 0;
12541    virtual HRESULT WINAPI SetTCDisplay(LONG Param,LONG Value) = 0;
12542  };
12543#else
12544  typedef struct IAMTimecodeDisplayVtbl {
12545    BEGIN_INTERFACE
12546      HRESULT (WINAPI *QueryInterface)(IAMTimecodeDisplay *This,REFIID riid,void **ppvObject);
12547      ULONG (WINAPI *AddRef)(IAMTimecodeDisplay *This);
12548      ULONG (WINAPI *Release)(IAMTimecodeDisplay *This);
12549      HRESULT (WINAPI *GetTCDisplayEnable)(IAMTimecodeDisplay *This,LONG *pState);
12550      HRESULT (WINAPI *SetTCDisplayEnable)(IAMTimecodeDisplay *This,LONG State);
12551      HRESULT (WINAPI *GetTCDisplay)(IAMTimecodeDisplay *This,LONG Param,LONG *pValue);
12552      HRESULT (WINAPI *SetTCDisplay)(IAMTimecodeDisplay *This,LONG Param,LONG Value);
12553    END_INTERFACE
12554  } IAMTimecodeDisplayVtbl;
12555  struct IAMTimecodeDisplay {
12556    CONST_VTBL struct IAMTimecodeDisplayVtbl *lpVtbl;
12557  };
12558#ifdef COBJMACROS
12559#define IAMTimecodeDisplay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12560#define IAMTimecodeDisplay_AddRef(This) (This)->lpVtbl->AddRef(This)
12561#define IAMTimecodeDisplay_Release(This) (This)->lpVtbl->Release(This)
12562#define IAMTimecodeDisplay_GetTCDisplayEnable(This,pState) (This)->lpVtbl->GetTCDisplayEnable(This,pState)
12563#define IAMTimecodeDisplay_SetTCDisplayEnable(This,State) (This)->lpVtbl->SetTCDisplayEnable(This,State)
12564#define IAMTimecodeDisplay_GetTCDisplay(This,Param,pValue) (This)->lpVtbl->GetTCDisplay(This,Param,pValue)
12565#define IAMTimecodeDisplay_SetTCDisplay(This,Param,Value) (This)->lpVtbl->SetTCDisplay(This,Param,Value)
12566#endif
12567#endif
12568  HRESULT WINAPI IAMTimecodeDisplay_GetTCDisplayEnable_Proxy(IAMTimecodeDisplay *This,LONG *pState);
12569  void __RPC_STUB IAMTimecodeDisplay_GetTCDisplayEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12570  HRESULT WINAPI IAMTimecodeDisplay_SetTCDisplayEnable_Proxy(IAMTimecodeDisplay *This,LONG State);
12571  void __RPC_STUB IAMTimecodeDisplay_SetTCDisplayEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12572  HRESULT WINAPI IAMTimecodeDisplay_GetTCDisplay_Proxy(IAMTimecodeDisplay *This,LONG Param,LONG *pValue);
12573  void __RPC_STUB IAMTimecodeDisplay_GetTCDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12574  HRESULT WINAPI IAMTimecodeDisplay_SetTCDisplay_Proxy(IAMTimecodeDisplay *This,LONG Param,LONG Value);
12575  void __RPC_STUB IAMTimecodeDisplay_SetTCDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12576#endif
12577
12578  typedef IAMTimecodeDisplay *PIAMTIMECODEDISPLAY;
12579
12580  extern RPC_IF_HANDLE __MIDL_itf_strmif_0343_v0_0_c_ifspec;
12581  extern RPC_IF_HANDLE __MIDL_itf_strmif_0343_v0_0_s_ifspec;
12582#ifndef __IAMDevMemoryAllocator_INTERFACE_DEFINED__
12583#define __IAMDevMemoryAllocator_INTERFACE_DEFINED__
12584  EXTERN_C const IID IID_IAMDevMemoryAllocator;
12585#if defined(__cplusplus) && !defined(CINTERFACE)
12586  struct IAMDevMemoryAllocator : public IUnknown {
12587  public:
12588    virtual HRESULT WINAPI GetInfo(DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk) = 0;
12589    virtual HRESULT WINAPI CheckMemory(const BYTE *pBuffer) = 0;
12590    virtual HRESULT WINAPI Alloc(BYTE **ppBuffer,DWORD *pdwcbBuffer) = 0;
12591    virtual HRESULT WINAPI Free(BYTE *pBuffer) = 0;
12592    virtual HRESULT WINAPI GetDevMemoryObject(IUnknown **ppUnkInnner,IUnknown *pUnkOuter) = 0;
12593  };
12594#else
12595  typedef struct IAMDevMemoryAllocatorVtbl {
12596    BEGIN_INTERFACE
12597      HRESULT (WINAPI *QueryInterface)(IAMDevMemoryAllocator *This,REFIID riid,void **ppvObject);
12598      ULONG (WINAPI *AddRef)(IAMDevMemoryAllocator *This);
12599      ULONG (WINAPI *Release)(IAMDevMemoryAllocator *This);
12600      HRESULT (WINAPI *GetInfo)(IAMDevMemoryAllocator *This,DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk);
12601      HRESULT (WINAPI *CheckMemory)(IAMDevMemoryAllocator *This,const BYTE *pBuffer);
12602      HRESULT (WINAPI *Alloc)(IAMDevMemoryAllocator *This,BYTE **ppBuffer,DWORD *pdwcbBuffer);
12603      HRESULT (WINAPI *Free)(IAMDevMemoryAllocator *This,BYTE *pBuffer);
12604      HRESULT (WINAPI *GetDevMemoryObject)(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
12605    END_INTERFACE
12606  } IAMDevMemoryAllocatorVtbl;
12607  struct IAMDevMemoryAllocator {
12608    CONST_VTBL struct IAMDevMemoryAllocatorVtbl *lpVtbl;
12609  };
12610#ifdef COBJMACROS
12611#define IAMDevMemoryAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12612#define IAMDevMemoryAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
12613#define IAMDevMemoryAllocator_Release(This) (This)->lpVtbl->Release(This)
12614#define IAMDevMemoryAllocator_GetInfo(This,pdwcbTotalFree,pdwcbLargestFree,pdwcbTotalMemory,pdwcbMinimumChunk) (This)->lpVtbl->GetInfo(This,pdwcbTotalFree,pdwcbLargestFree,pdwcbTotalMemory,pdwcbMinimumChunk)
12615#define IAMDevMemoryAllocator_CheckMemory(This,pBuffer) (This)->lpVtbl->CheckMemory(This,pBuffer)
12616#define IAMDevMemoryAllocator_Alloc(This,ppBuffer,pdwcbBuffer) (This)->lpVtbl->Alloc(This,ppBuffer,pdwcbBuffer)
12617#define IAMDevMemoryAllocator_Free(This,pBuffer) (This)->lpVtbl->Free(This,pBuffer)
12618#define IAMDevMemoryAllocator_GetDevMemoryObject(This,ppUnkInnner,pUnkOuter) (This)->lpVtbl->GetDevMemoryObject(This,ppUnkInnner,pUnkOuter)
12619#endif
12620#endif
12621  HRESULT WINAPI IAMDevMemoryAllocator_GetInfo_Proxy(IAMDevMemoryAllocator *This,DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk);
12622  void __RPC_STUB IAMDevMemoryAllocator_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12623  HRESULT WINAPI IAMDevMemoryAllocator_CheckMemory_Proxy(IAMDevMemoryAllocator *This,const BYTE *pBuffer);
12624  void __RPC_STUB IAMDevMemoryAllocator_CheckMemory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12625  HRESULT WINAPI IAMDevMemoryAllocator_Alloc_Proxy(IAMDevMemoryAllocator *This,BYTE **ppBuffer,DWORD *pdwcbBuffer);
12626  void __RPC_STUB IAMDevMemoryAllocator_Alloc_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12627  HRESULT WINAPI IAMDevMemoryAllocator_Free_Proxy(IAMDevMemoryAllocator *This,BYTE *pBuffer);
12628  void __RPC_STUB IAMDevMemoryAllocator_Free_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12629  HRESULT WINAPI IAMDevMemoryAllocator_GetDevMemoryObject_Proxy(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
12630  void __RPC_STUB IAMDevMemoryAllocator_GetDevMemoryObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12631#endif
12632
12633  typedef IAMDevMemoryAllocator *PAMDEVMEMORYALLOCATOR;
12634
12635  extern RPC_IF_HANDLE __MIDL_itf_strmif_0344_v0_0_c_ifspec;
12636  extern RPC_IF_HANDLE __MIDL_itf_strmif_0344_v0_0_s_ifspec;
12637#ifndef __IAMDevMemoryControl_INTERFACE_DEFINED__
12638#define __IAMDevMemoryControl_INTERFACE_DEFINED__
12639  EXTERN_C const IID IID_IAMDevMemoryControl;
12640#if defined(__cplusplus) && !defined(CINTERFACE)
12641  struct IAMDevMemoryControl : public IUnknown {
12642  public:
12643    virtual HRESULT WINAPI QueryWriteSync(void) = 0;
12644    virtual HRESULT WINAPI WriteSync(void) = 0;
12645    virtual HRESULT WINAPI GetDevId(DWORD *pdwDevId) = 0;
12646  };
12647#else
12648  typedef struct IAMDevMemoryControlVtbl {
12649    BEGIN_INTERFACE
12650      HRESULT (WINAPI *QueryInterface)(IAMDevMemoryControl *This,REFIID riid,void **ppvObject);
12651      ULONG (WINAPI *AddRef)(IAMDevMemoryControl *This);
12652      ULONG (WINAPI *Release)(IAMDevMemoryControl *This);
12653      HRESULT (WINAPI *QueryWriteSync)(IAMDevMemoryControl *This);
12654      HRESULT (WINAPI *WriteSync)(IAMDevMemoryControl *This);
12655      HRESULT (WINAPI *GetDevId)(IAMDevMemoryControl *This,DWORD *pdwDevId);
12656    END_INTERFACE
12657  } IAMDevMemoryControlVtbl;
12658  struct IAMDevMemoryControl {
12659    CONST_VTBL struct IAMDevMemoryControlVtbl *lpVtbl;
12660  };
12661#ifdef COBJMACROS
12662#define IAMDevMemoryControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12663#define IAMDevMemoryControl_AddRef(This) (This)->lpVtbl->AddRef(This)
12664#define IAMDevMemoryControl_Release(This) (This)->lpVtbl->Release(This)
12665#define IAMDevMemoryControl_QueryWriteSync(This) (This)->lpVtbl->QueryWriteSync(This)
12666#define IAMDevMemoryControl_WriteSync(This) (This)->lpVtbl->WriteSync(This)
12667#define IAMDevMemoryControl_GetDevId(This,pdwDevId) (This)->lpVtbl->GetDevId(This,pdwDevId)
12668#endif
12669#endif
12670  HRESULT WINAPI IAMDevMemoryControl_QueryWriteSync_Proxy(IAMDevMemoryControl *This);
12671  void __RPC_STUB IAMDevMemoryControl_QueryWriteSync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12672  HRESULT WINAPI IAMDevMemoryControl_WriteSync_Proxy(IAMDevMemoryControl *This);
12673  void __RPC_STUB IAMDevMemoryControl_WriteSync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12674  HRESULT WINAPI IAMDevMemoryControl_GetDevId_Proxy(IAMDevMemoryControl *This,DWORD *pdwDevId);
12675  void __RPC_STUB IAMDevMemoryControl_GetDevId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12676#endif
12677
12678  typedef IAMDevMemoryControl *PAMDEVMEMORYCONTROL;
12679
12680  enum _AMSTREAMSELECTINFOFLAGS {
12681    AMSTREAMSELECTINFO_ENABLED = 0x1,AMSTREAMSELECTINFO_EXCLUSIVE = 0x2
12682  };
12683
12684  enum _AMSTREAMSELECTENABLEFLAGS {
12685    AMSTREAMSELECTENABLE_ENABLE = 0x1,AMSTREAMSELECTENABLE_ENABLEALL = 0x2
12686  };
12687
12688  extern RPC_IF_HANDLE __MIDL_itf_strmif_0345_v0_0_c_ifspec;
12689  extern RPC_IF_HANDLE __MIDL_itf_strmif_0345_v0_0_s_ifspec;
12690#ifndef __IAMStreamSelect_INTERFACE_DEFINED__
12691#define __IAMStreamSelect_INTERFACE_DEFINED__
12692  EXTERN_C const IID IID_IAMStreamSelect;
12693#if defined(__cplusplus) && !defined(CINTERFACE)
12694  struct IAMStreamSelect : public IUnknown {
12695  public:
12696    virtual HRESULT WINAPI Count(DWORD *pcStreams) = 0;
12697    virtual HRESULT WINAPI Info(LONG lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk) = 0;
12698    virtual HRESULT WINAPI Enable(LONG lIndex,DWORD dwFlags) = 0;
12699  };
12700#else
12701  typedef struct IAMStreamSelectVtbl {
12702    BEGIN_INTERFACE
12703      HRESULT (WINAPI *QueryInterface)(IAMStreamSelect *This,REFIID riid,void **ppvObject);
12704      ULONG (WINAPI *AddRef)(IAMStreamSelect *This);
12705      ULONG (WINAPI *Release)(IAMStreamSelect *This);
12706      HRESULT (WINAPI *Count)(IAMStreamSelect *This,DWORD *pcStreams);
12707      HRESULT (WINAPI *Info)(IAMStreamSelect *This,LONG lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk);
12708      HRESULT (WINAPI *Enable)(IAMStreamSelect *This,LONG lIndex,DWORD dwFlags);
12709    END_INTERFACE
12710  } IAMStreamSelectVtbl;
12711  struct IAMStreamSelect {
12712    CONST_VTBL struct IAMStreamSelectVtbl *lpVtbl;
12713  };
12714#ifdef COBJMACROS
12715#define IAMStreamSelect_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12716#define IAMStreamSelect_AddRef(This) (This)->lpVtbl->AddRef(This)
12717#define IAMStreamSelect_Release(This) (This)->lpVtbl->Release(This)
12718#define IAMStreamSelect_Count(This,pcStreams) (This)->lpVtbl->Count(This,pcStreams)
12719#define IAMStreamSelect_Info(This,lIndex,ppmt,pdwFlags,plcid,pdwGroup,ppszName,ppObject,ppUnk) (This)->lpVtbl->Info(This,lIndex,ppmt,pdwFlags,plcid,pdwGroup,ppszName,ppObject,ppUnk)
12720#define IAMStreamSelect_Enable(This,lIndex,dwFlags) (This)->lpVtbl->Enable(This,lIndex,dwFlags)
12721#endif
12722#endif
12723  HRESULT WINAPI IAMStreamSelect_Count_Proxy(IAMStreamSelect *This,DWORD *pcStreams);
12724  void __RPC_STUB IAMStreamSelect_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12725  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);
12726  void __RPC_STUB IAMStreamSelect_Info_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12727  HRESULT WINAPI IAMStreamSelect_Enable_Proxy(IAMStreamSelect *This,LONG lIndex,DWORD dwFlags);
12728  void __RPC_STUB IAMStreamSelect_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12729#endif
12730
12731  typedef IAMStreamSelect *PAMSTREAMSELECT;
12732
12733  enum _AMRESCTL_RESERVEFLAGS {
12734    AMRESCTL_RESERVEFLAGS_RESERVE = 0,AMRESCTL_RESERVEFLAGS_UNRESERVE = 0x1
12735  };
12736
12737  extern RPC_IF_HANDLE __MIDL_itf_strmif_0346_v0_0_c_ifspec;
12738  extern RPC_IF_HANDLE __MIDL_itf_strmif_0346_v0_0_s_ifspec;
12739#ifndef __IAMResourceControl_INTERFACE_DEFINED__
12740#define __IAMResourceControl_INTERFACE_DEFINED__
12741  EXTERN_C const IID IID_IAMResourceControl;
12742#if defined(__cplusplus) && !defined(CINTERFACE)
12743  struct IAMResourceControl : public IUnknown {
12744  public:
12745    virtual HRESULT WINAPI Reserve(DWORD dwFlags,PVOID pvReserved) = 0;
12746  };
12747#else
12748  typedef struct IAMResourceControlVtbl {
12749    BEGIN_INTERFACE
12750      HRESULT (WINAPI *QueryInterface)(IAMResourceControl *This,REFIID riid,void **ppvObject);
12751      ULONG (WINAPI *AddRef)(IAMResourceControl *This);
12752      ULONG (WINAPI *Release)(IAMResourceControl *This);
12753      HRESULT (WINAPI *Reserve)(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
12754    END_INTERFACE
12755  } IAMResourceControlVtbl;
12756  struct IAMResourceControl {
12757    CONST_VTBL struct IAMResourceControlVtbl *lpVtbl;
12758  };
12759#ifdef COBJMACROS
12760#define IAMResourceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12761#define IAMResourceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
12762#define IAMResourceControl_Release(This) (This)->lpVtbl->Release(This)
12763#define IAMResourceControl_Reserve(This,dwFlags,pvReserved) (This)->lpVtbl->Reserve(This,dwFlags,pvReserved)
12764#endif
12765#endif
12766  HRESULT WINAPI IAMResourceControl_Reserve_Proxy(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
12767  void __RPC_STUB IAMResourceControl_Reserve_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12768#endif
12769
12770#ifndef __IAMClockAdjust_INTERFACE_DEFINED__
12771#define __IAMClockAdjust_INTERFACE_DEFINED__
12772  EXTERN_C const IID IID_IAMClockAdjust;
12773#if defined(__cplusplus) && !defined(CINTERFACE)
12774  struct IAMClockAdjust : public IUnknown {
12775  public:
12776    virtual HRESULT WINAPI SetClockDelta(REFERENCE_TIME rtDelta) = 0;
12777  };
12778#else
12779  typedef struct IAMClockAdjustVtbl {
12780    BEGIN_INTERFACE
12781      HRESULT (WINAPI *QueryInterface)(IAMClockAdjust *This,REFIID riid,void **ppvObject);
12782      ULONG (WINAPI *AddRef)(IAMClockAdjust *This);
12783      ULONG (WINAPI *Release)(IAMClockAdjust *This);
12784      HRESULT (WINAPI *SetClockDelta)(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
12785    END_INTERFACE
12786  } IAMClockAdjustVtbl;
12787  struct IAMClockAdjust {
12788    CONST_VTBL struct IAMClockAdjustVtbl *lpVtbl;
12789  };
12790#ifdef COBJMACROS
12791#define IAMClockAdjust_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12792#define IAMClockAdjust_AddRef(This) (This)->lpVtbl->AddRef(This)
12793#define IAMClockAdjust_Release(This) (This)->lpVtbl->Release(This)
12794#define IAMClockAdjust_SetClockDelta(This,rtDelta) (This)->lpVtbl->SetClockDelta(This,rtDelta)
12795#endif
12796#endif
12797  HRESULT WINAPI IAMClockAdjust_SetClockDelta_Proxy(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
12798  void __RPC_STUB IAMClockAdjust_SetClockDelta_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12799#endif
12800
12801#ifndef __IDrawVideoImage_INTERFACE_DEFINED__
12802#define __IDrawVideoImage_INTERFACE_DEFINED__
12803  EXTERN_C const IID IID_IDrawVideoImage;
12804#if defined(__cplusplus) && !defined(CINTERFACE)
12805  struct IDrawVideoImage : public IUnknown {
12806  public:
12807    virtual HRESULT WINAPI DrawVideoImageBegin(void) = 0;
12808    virtual HRESULT WINAPI DrawVideoImageEnd(void) = 0;
12809    virtual HRESULT WINAPI DrawVideoImageDraw(HDC hdc,LPRECT lprcSrc,LPRECT lprcDst) = 0;
12810  };
12811#else
12812  typedef struct IDrawVideoImageVtbl {
12813    BEGIN_INTERFACE
12814      HRESULT (WINAPI *QueryInterface)(IDrawVideoImage *This,REFIID riid,void **ppvObject);
12815      ULONG (WINAPI *AddRef)(IDrawVideoImage *This);
12816      ULONG (WINAPI *Release)(IDrawVideoImage *This);
12817      HRESULT (WINAPI *DrawVideoImageBegin)(IDrawVideoImage *This);
12818      HRESULT (WINAPI *DrawVideoImageEnd)(IDrawVideoImage *This);
12819      HRESULT (WINAPI *DrawVideoImageDraw)(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
12820    END_INTERFACE
12821  } IDrawVideoImageVtbl;
12822  struct IDrawVideoImage {
12823    CONST_VTBL struct IDrawVideoImageVtbl *lpVtbl;
12824  };
12825#ifdef COBJMACROS
12826#define IDrawVideoImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12827#define IDrawVideoImage_AddRef(This) (This)->lpVtbl->AddRef(This)
12828#define IDrawVideoImage_Release(This) (This)->lpVtbl->Release(This)
12829#define IDrawVideoImage_DrawVideoImageBegin(This) (This)->lpVtbl->DrawVideoImageBegin(This)
12830#define IDrawVideoImage_DrawVideoImageEnd(This) (This)->lpVtbl->DrawVideoImageEnd(This)
12831#define IDrawVideoImage_DrawVideoImageDraw(This,hdc,lprcSrc,lprcDst) (This)->lpVtbl->DrawVideoImageDraw(This,hdc,lprcSrc,lprcDst)
12832#endif
12833#endif
12834  HRESULT WINAPI IDrawVideoImage_DrawVideoImageBegin_Proxy(IDrawVideoImage *This);
12835  void __RPC_STUB IDrawVideoImage_DrawVideoImageBegin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12836  HRESULT WINAPI IDrawVideoImage_DrawVideoImageEnd_Proxy(IDrawVideoImage *This);
12837  void __RPC_STUB IDrawVideoImage_DrawVideoImageEnd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12838  HRESULT WINAPI IDrawVideoImage_DrawVideoImageDraw_Proxy(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
12839  void __RPC_STUB IDrawVideoImage_DrawVideoImageDraw_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12840#endif
12841
12842#ifndef __IDecimateVideoImage_INTERFACE_DEFINED__
12843#define __IDecimateVideoImage_INTERFACE_DEFINED__
12844  EXTERN_C const IID IID_IDecimateVideoImage;
12845#if defined(__cplusplus) && !defined(CINTERFACE)
12846  struct IDecimateVideoImage : public IUnknown {
12847  public:
12848    virtual HRESULT WINAPI SetDecimationImageSize(LONG lWidth,LONG lHeight) = 0;
12849    virtual HRESULT WINAPI ResetDecimationImageSize(void) = 0;
12850  };
12851#else
12852  typedef struct IDecimateVideoImageVtbl {
12853    BEGIN_INTERFACE
12854      HRESULT (WINAPI *QueryInterface)(IDecimateVideoImage *This,REFIID riid,void **ppvObject);
12855      ULONG (WINAPI *AddRef)(IDecimateVideoImage *This);
12856      ULONG (WINAPI *Release)(IDecimateVideoImage *This);
12857      HRESULT (WINAPI *SetDecimationImageSize)(IDecimateVideoImage *This,LONG lWidth,LONG lHeight);
12858      HRESULT (WINAPI *ResetDecimationImageSize)(IDecimateVideoImage *This);
12859    END_INTERFACE
12860  } IDecimateVideoImageVtbl;
12861  struct IDecimateVideoImage {
12862    CONST_VTBL struct IDecimateVideoImageVtbl *lpVtbl;
12863  };
12864#ifdef COBJMACROS
12865#define IDecimateVideoImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12866#define IDecimateVideoImage_AddRef(This) (This)->lpVtbl->AddRef(This)
12867#define IDecimateVideoImage_Release(This) (This)->lpVtbl->Release(This)
12868#define IDecimateVideoImage_SetDecimationImageSize(This,lWidth,lHeight) (This)->lpVtbl->SetDecimationImageSize(This,lWidth,lHeight)
12869#define IDecimateVideoImage_ResetDecimationImageSize(This) (This)->lpVtbl->ResetDecimationImageSize(This)
12870#endif
12871#endif
12872  HRESULT WINAPI IDecimateVideoImage_SetDecimationImageSize_Proxy(IDecimateVideoImage *This,LONG lWidth,LONG lHeight);
12873  void __RPC_STUB IDecimateVideoImage_SetDecimationImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12874  HRESULT WINAPI IDecimateVideoImage_ResetDecimationImageSize_Proxy(IDecimateVideoImage *This);
12875  void __RPC_STUB IDecimateVideoImage_ResetDecimationImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12876#endif
12877
12878  typedef enum _DECIMATION_USAGE {
12879    DECIMATION_LEGACY = 0,
12880    DECIMATION_USE_DECODER_ONLY,DECIMATION_USE_VIDEOPORT_ONLY,DECIMATION_USE_OVERLAY_ONLY,
12881    DECIMATION_DEFAULT
12882  } DECIMATION_USAGE;
12883
12884  extern RPC_IF_HANDLE __MIDL_itf_strmif_0351_v0_0_c_ifspec;
12885  extern RPC_IF_HANDLE __MIDL_itf_strmif_0351_v0_0_s_ifspec;
12886#ifndef __IAMVideoDecimationProperties_INTERFACE_DEFINED__
12887#define __IAMVideoDecimationProperties_INTERFACE_DEFINED__
12888  EXTERN_C const IID IID_IAMVideoDecimationProperties;
12889#if defined(__cplusplus) && !defined(CINTERFACE)
12890  struct IAMVideoDecimationProperties : public IUnknown {
12891  public:
12892    virtual HRESULT WINAPI QueryDecimationUsage(DECIMATION_USAGE *lpUsage) = 0;
12893    virtual HRESULT WINAPI SetDecimationUsage(DECIMATION_USAGE Usage) = 0;
12894  };
12895#else
12896  typedef struct IAMVideoDecimationPropertiesVtbl {
12897    BEGIN_INTERFACE
12898      HRESULT (WINAPI *QueryInterface)(IAMVideoDecimationProperties *This,REFIID riid,void **ppvObject);
12899      ULONG (WINAPI *AddRef)(IAMVideoDecimationProperties *This);
12900      ULONG (WINAPI *Release)(IAMVideoDecimationProperties *This);
12901      HRESULT (WINAPI *QueryDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE *lpUsage);
12902      HRESULT (WINAPI *SetDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
12903    END_INTERFACE
12904  } IAMVideoDecimationPropertiesVtbl;
12905  struct IAMVideoDecimationProperties {
12906    CONST_VTBL struct IAMVideoDecimationPropertiesVtbl *lpVtbl;
12907  };
12908#ifdef COBJMACROS
12909#define IAMVideoDecimationProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12910#define IAMVideoDecimationProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
12911#define IAMVideoDecimationProperties_Release(This) (This)->lpVtbl->Release(This)
12912#define IAMVideoDecimationProperties_QueryDecimationUsage(This,lpUsage) (This)->lpVtbl->QueryDecimationUsage(This,lpUsage)
12913#define IAMVideoDecimationProperties_SetDecimationUsage(This,Usage) (This)->lpVtbl->SetDecimationUsage(This,Usage)
12914#endif
12915#endif
12916  HRESULT WINAPI IAMVideoDecimationProperties_QueryDecimationUsage_Proxy(IAMVideoDecimationProperties *This,DECIMATION_USAGE *lpUsage);
12917  void __RPC_STUB IAMVideoDecimationProperties_QueryDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12918  HRESULT WINAPI IAMVideoDecimationProperties_SetDecimationUsage_Proxy(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
12919  void __RPC_STUB IAMVideoDecimationProperties_SetDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12920#endif
12921
12922#ifndef __IVideoFrameStep_INTERFACE_DEFINED__
12923#define __IVideoFrameStep_INTERFACE_DEFINED__
12924  EXTERN_C const IID IID_IVideoFrameStep;
12925#if defined(__cplusplus) && !defined(CINTERFACE)
12926  struct IVideoFrameStep : public IUnknown {
12927  public:
12928    virtual HRESULT WINAPI Step(DWORD dwFrames,IUnknown *pStepObject) = 0;
12929    virtual HRESULT WINAPI CanStep(LONG bMultiple,IUnknown *pStepObject) = 0;
12930    virtual HRESULT WINAPI CancelStep(void) = 0;
12931  };
12932#else
12933  typedef struct IVideoFrameStepVtbl {
12934    BEGIN_INTERFACE
12935      HRESULT (WINAPI *QueryInterface)(IVideoFrameStep *This,REFIID riid,void **ppvObject);
12936      ULONG (WINAPI *AddRef)(IVideoFrameStep *This);
12937      ULONG (WINAPI *Release)(IVideoFrameStep *This);
12938      HRESULT (WINAPI *Step)(IVideoFrameStep *This,DWORD dwFrames,IUnknown *pStepObject);
12939      HRESULT (WINAPI *CanStep)(IVideoFrameStep *This,LONG bMultiple,IUnknown *pStepObject);
12940      HRESULT (WINAPI *CancelStep)(IVideoFrameStep *This);
12941    END_INTERFACE
12942  } IVideoFrameStepVtbl;
12943  struct IVideoFrameStep {
12944    CONST_VTBL struct IVideoFrameStepVtbl *lpVtbl;
12945  };
12946#ifdef COBJMACROS
12947#define IVideoFrameStep_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12948#define IVideoFrameStep_AddRef(This) (This)->lpVtbl->AddRef(This)
12949#define IVideoFrameStep_Release(This) (This)->lpVtbl->Release(This)
12950#define IVideoFrameStep_Step(This,dwFrames,pStepObject) (This)->lpVtbl->Step(This,dwFrames,pStepObject)
12951#define IVideoFrameStep_CanStep(This,bMultiple,pStepObject) (This)->lpVtbl->CanStep(This,bMultiple,pStepObject)
12952#define IVideoFrameStep_CancelStep(This) (This)->lpVtbl->CancelStep(This)
12953#endif
12954#endif
12955  HRESULT WINAPI IVideoFrameStep_Step_Proxy(IVideoFrameStep *This,DWORD dwFrames,IUnknown *pStepObject);
12956  void __RPC_STUB IVideoFrameStep_Step_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12957  HRESULT WINAPI IVideoFrameStep_CanStep_Proxy(IVideoFrameStep *This,LONG bMultiple,IUnknown *pStepObject);
12958  void __RPC_STUB IVideoFrameStep_CanStep_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12959  HRESULT WINAPI IVideoFrameStep_CancelStep_Proxy(IVideoFrameStep *This);
12960  void __RPC_STUB IVideoFrameStep_CancelStep_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12961#endif
12962
12963  enum _AM_PUSHSOURCE_FLAGS {
12964    AM_PUSHSOURCECAPS_INTERNAL_RM = 0x1,AM_PUSHSOURCECAPS_NOT_LIVE = 0x2,AM_PUSHSOURCECAPS_PRIVATE_CLOCK = 0x4,
12965    AM_PUSHSOURCEREQS_USE_STREAM_CLOCK = 0x10000,AM_PUSHSOURCEREQS_USE_CLOCK_CHAIN = 0x20000
12966  };
12967
12968  extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_c_ifspec;
12969  extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_s_ifspec;
12970#ifndef __IAMLatency_INTERFACE_DEFINED__
12971#define __IAMLatency_INTERFACE_DEFINED__
12972  EXTERN_C const IID IID_IAMLatency;
12973#if defined(__cplusplus) && !defined(CINTERFACE)
12974  struct IAMLatency : public IUnknown {
12975  public:
12976    virtual HRESULT WINAPI GetLatency(REFERENCE_TIME *prtLatency) = 0;
12977  };
12978#else
12979  typedef struct IAMLatencyVtbl {
12980    BEGIN_INTERFACE
12981      HRESULT (WINAPI *QueryInterface)(IAMLatency *This,REFIID riid,void **ppvObject);
12982      ULONG (WINAPI *AddRef)(IAMLatency *This);
12983      ULONG (WINAPI *Release)(IAMLatency *This);
12984      HRESULT (WINAPI *GetLatency)(IAMLatency *This,REFERENCE_TIME *prtLatency);
12985    END_INTERFACE
12986  } IAMLatencyVtbl;
12987  struct IAMLatency {
12988    CONST_VTBL struct IAMLatencyVtbl *lpVtbl;
12989  };
12990#ifdef COBJMACROS
12991#define IAMLatency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12992#define IAMLatency_AddRef(This) (This)->lpVtbl->AddRef(This)
12993#define IAMLatency_Release(This) (This)->lpVtbl->Release(This)
12994#define IAMLatency_GetLatency(This,prtLatency) (This)->lpVtbl->GetLatency(This,prtLatency)
12995#endif
12996#endif
12997  HRESULT WINAPI IAMLatency_GetLatency_Proxy(IAMLatency *This,REFERENCE_TIME *prtLatency);
12998  void __RPC_STUB IAMLatency_GetLatency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
12999#endif
13000
13001#ifndef __IAMPushSource_INTERFACE_DEFINED__
13002#define __IAMPushSource_INTERFACE_DEFINED__
13003  EXTERN_C const IID IID_IAMPushSource;
13004#if defined(__cplusplus) && !defined(CINTERFACE)
13005  struct IAMPushSource : public IAMLatency {
13006  public:
13007    virtual HRESULT WINAPI GetPushSourceFlags(ULONG *pFlags) = 0;
13008    virtual HRESULT WINAPI SetPushSourceFlags(ULONG Flags) = 0;
13009    virtual HRESULT WINAPI SetStreamOffset(REFERENCE_TIME rtOffset) = 0;
13010    virtual HRESULT WINAPI GetStreamOffset(REFERENCE_TIME *prtOffset) = 0;
13011    virtual HRESULT WINAPI GetMaxStreamOffset(REFERENCE_TIME *prtMaxOffset) = 0;
13012    virtual HRESULT WINAPI SetMaxStreamOffset(REFERENCE_TIME rtMaxOffset) = 0;
13013  };
13014#else
13015  typedef struct IAMPushSourceVtbl {
13016    BEGIN_INTERFACE
13017      HRESULT (WINAPI *QueryInterface)(IAMPushSource *This,REFIID riid,void **ppvObject);
13018      ULONG (WINAPI *AddRef)(IAMPushSource *This);
13019      ULONG (WINAPI *Release)(IAMPushSource *This);
13020      HRESULT (WINAPI *GetLatency)(IAMPushSource *This,REFERENCE_TIME *prtLatency);
13021      HRESULT (WINAPI *GetPushSourceFlags)(IAMPushSource *This,ULONG *pFlags);
13022      HRESULT (WINAPI *SetPushSourceFlags)(IAMPushSource *This,ULONG Flags);
13023      HRESULT (WINAPI *SetStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtOffset);
13024      HRESULT (WINAPI *GetStreamOffset)(IAMPushSource *This,REFERENCE_TIME *prtOffset);
13025      HRESULT (WINAPI *GetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME *prtMaxOffset);
13026      HRESULT (WINAPI *SetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
13027    END_INTERFACE
13028  } IAMPushSourceVtbl;
13029  struct IAMPushSource {
13030    CONST_VTBL struct IAMPushSourceVtbl *lpVtbl;
13031  };
13032#ifdef COBJMACROS
13033#define IAMPushSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13034#define IAMPushSource_AddRef(This) (This)->lpVtbl->AddRef(This)
13035#define IAMPushSource_Release(This) (This)->lpVtbl->Release(This)
13036#define IAMPushSource_GetLatency(This,prtLatency) (This)->lpVtbl->GetLatency(This,prtLatency)
13037#define IAMPushSource_GetPushSourceFlags(This,pFlags) (This)->lpVtbl->GetPushSourceFlags(This,pFlags)
13038#define IAMPushSource_SetPushSourceFlags(This,Flags) (This)->lpVtbl->SetPushSourceFlags(This,Flags)
13039#define IAMPushSource_SetStreamOffset(This,rtOffset) (This)->lpVtbl->SetStreamOffset(This,rtOffset)
13040#define IAMPushSource_GetStreamOffset(This,prtOffset) (This)->lpVtbl->GetStreamOffset(This,prtOffset)
13041#define IAMPushSource_GetMaxStreamOffset(This,prtMaxOffset) (This)->lpVtbl->GetMaxStreamOffset(This,prtMaxOffset)
13042#define IAMPushSource_SetMaxStreamOffset(This,rtMaxOffset) (This)->lpVtbl->SetMaxStreamOffset(This,rtMaxOffset)
13043#endif
13044#endif
13045  HRESULT WINAPI IAMPushSource_GetPushSourceFlags_Proxy(IAMPushSource *This,ULONG *pFlags);
13046  void __RPC_STUB IAMPushSource_GetPushSourceFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13047  HRESULT WINAPI IAMPushSource_SetPushSourceFlags_Proxy(IAMPushSource *This,ULONG Flags);
13048  void __RPC_STUB IAMPushSource_SetPushSourceFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13049  HRESULT WINAPI IAMPushSource_SetStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME rtOffset);
13050  void __RPC_STUB IAMPushSource_SetStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13051  HRESULT WINAPI IAMPushSource_GetStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME *prtOffset);
13052  void __RPC_STUB IAMPushSource_GetStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13053  HRESULT WINAPI IAMPushSource_GetMaxStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME *prtMaxOffset);
13054  void __RPC_STUB IAMPushSource_GetMaxStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13055  HRESULT WINAPI IAMPushSource_SetMaxStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
13056  void __RPC_STUB IAMPushSource_SetMaxStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13057#endif
13058
13059#ifndef __IAMDeviceRemoval_INTERFACE_DEFINED__
13060#define __IAMDeviceRemoval_INTERFACE_DEFINED__
13061  EXTERN_C const IID IID_IAMDeviceRemoval;
13062#if defined(__cplusplus) && !defined(CINTERFACE)
13063  struct IAMDeviceRemoval : public IUnknown {
13064  public:
13065    virtual HRESULT WINAPI DeviceInfo(CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink) = 0;
13066    virtual HRESULT WINAPI Reassociate(void) = 0;
13067    virtual HRESULT WINAPI Disassociate(void) = 0;
13068  };
13069#else
13070  typedef struct IAMDeviceRemovalVtbl {
13071    BEGIN_INTERFACE
13072      HRESULT (WINAPI *QueryInterface)(IAMDeviceRemoval *This,REFIID riid,void **ppvObject);
13073      ULONG (WINAPI *AddRef)(IAMDeviceRemoval *This);
13074      ULONG (WINAPI *Release)(IAMDeviceRemoval *This);
13075      HRESULT (WINAPI *DeviceInfo)(IAMDeviceRemoval *This,CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink);
13076      HRESULT (WINAPI *Reassociate)(IAMDeviceRemoval *This);
13077      HRESULT (WINAPI *Disassociate)(IAMDeviceRemoval *This);
13078    END_INTERFACE
13079  } IAMDeviceRemovalVtbl;
13080  struct IAMDeviceRemoval {
13081    CONST_VTBL struct IAMDeviceRemovalVtbl *lpVtbl;
13082  };
13083#ifdef COBJMACROS
13084#define IAMDeviceRemoval_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13085#define IAMDeviceRemoval_AddRef(This) (This)->lpVtbl->AddRef(This)
13086#define IAMDeviceRemoval_Release(This) (This)->lpVtbl->Release(This)
13087#define IAMDeviceRemoval_DeviceInfo(This,pclsidInterfaceClass,pwszSymbolicLink) (This)->lpVtbl->DeviceInfo(This,pclsidInterfaceClass,pwszSymbolicLink)
13088#define IAMDeviceRemoval_Reassociate(This) (This)->lpVtbl->Reassociate(This)
13089#define IAMDeviceRemoval_Disassociate(This) (This)->lpVtbl->Disassociate(This)
13090#endif
13091#endif
13092  HRESULT WINAPI IAMDeviceRemoval_DeviceInfo_Proxy(IAMDeviceRemoval *This,CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink);
13093  void __RPC_STUB IAMDeviceRemoval_DeviceInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13094  HRESULT WINAPI IAMDeviceRemoval_Reassociate_Proxy(IAMDeviceRemoval *This);
13095  void __RPC_STUB IAMDeviceRemoval_Reassociate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13096  HRESULT WINAPI IAMDeviceRemoval_Disassociate_Proxy(IAMDeviceRemoval *This);
13097  void __RPC_STUB IAMDeviceRemoval_Disassociate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13098#endif
13099
13100  typedef struct __MIDL___MIDL_itf_strmif_0355_0001 {
13101    DWORD dwDVAAuxSrc;
13102    DWORD dwDVAAuxCtl;
13103    DWORD dwDVAAuxSrc1;
13104    DWORD dwDVAAuxCtl1;
13105    DWORD dwDVVAuxSrc;
13106    DWORD dwDVVAuxCtl;
13107    DWORD dwDVReserved[2];
13108  } DVINFO;
13109
13110  typedef struct __MIDL___MIDL_itf_strmif_0355_0001 *PDVINFO;
13111
13112  enum _DVENCODERRESOLUTION {
13113    DVENCODERRESOLUTION_720x480 = 2012,DVENCODERRESOLUTION_360x240 = 2013,DVENCODERRESOLUTION_180x120 = 2014,DVENCODERRESOLUTION_88x60 = 2015
13114  };
13115
13116  enum _DVENCODERVIDEOFORMAT {
13117    DVENCODERVIDEOFORMAT_NTSC = 2000,DVENCODERVIDEOFORMAT_PAL = 2001
13118  };
13119
13120  enum _DVENCODERFORMAT {
13121    DVENCODERFORMAT_DVSD = 2007,DVENCODERFORMAT_DVHD = 2008,DVENCODERFORMAT_DVSL = 2009
13122  };
13123
13124  extern RPC_IF_HANDLE __MIDL_itf_strmif_0355_v0_0_c_ifspec;
13125  extern RPC_IF_HANDLE __MIDL_itf_strmif_0355_v0_0_s_ifspec;
13126#ifndef __IDVEnc_INTERFACE_DEFINED__
13127#define __IDVEnc_INTERFACE_DEFINED__
13128  EXTERN_C const IID IID_IDVEnc;
13129#if defined(__cplusplus) && !defined(CINTERFACE)
13130  struct IDVEnc : public IUnknown {
13131  public:
13132    virtual HRESULT WINAPI get_IFormatResolution(int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo) = 0;
13133    virtual HRESULT WINAPI put_IFormatResolution(int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo) = 0;
13134  };
13135#else
13136  typedef struct IDVEncVtbl {
13137    BEGIN_INTERFACE
13138      HRESULT (WINAPI *QueryInterface)(IDVEnc *This,REFIID riid,void **ppvObject);
13139      ULONG (WINAPI *AddRef)(IDVEnc *This);
13140      ULONG (WINAPI *Release)(IDVEnc *This);
13141      HRESULT (WINAPI *get_IFormatResolution)(IDVEnc *This,int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
13142      HRESULT (WINAPI *put_IFormatResolution)(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
13143    END_INTERFACE
13144  } IDVEncVtbl;
13145  struct IDVEnc {
13146    CONST_VTBL struct IDVEncVtbl *lpVtbl;
13147  };
13148#ifdef COBJMACROS
13149#define IDVEnc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13150#define IDVEnc_AddRef(This) (This)->lpVtbl->AddRef(This)
13151#define IDVEnc_Release(This) (This)->lpVtbl->Release(This)
13152#define IDVEnc_get_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo) (This)->lpVtbl->get_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo)
13153#define IDVEnc_put_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo) (This)->lpVtbl->put_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo)
13154#endif
13155#endif
13156  HRESULT WINAPI IDVEnc_get_IFormatResolution_Proxy(IDVEnc *This,int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
13157  void __RPC_STUB IDVEnc_get_IFormatResolution_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13158  HRESULT WINAPI IDVEnc_put_IFormatResolution_Proxy(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
13159  void __RPC_STUB IDVEnc_put_IFormatResolution_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13160#endif
13161
13162  enum _DVDECODERRESOLUTION {
13163    DVDECODERRESOLUTION_720x480 = 1000,DVDECODERRESOLUTION_360x240 = 1001,DVDECODERRESOLUTION_180x120 = 1002,DVDECODERRESOLUTION_88x60 = 1003
13164  };
13165
13166  enum _DVRESOLUTION {
13167    DVRESOLUTION_FULL = 1000,DVRESOLUTION_HALF = 1001,DVRESOLUTION_QUARTER = 1002,DVRESOLUTION_DC = 1003
13168  };
13169
13170  extern RPC_IF_HANDLE __MIDL_itf_strmif_0356_v0_0_c_ifspec;
13171  extern RPC_IF_HANDLE __MIDL_itf_strmif_0356_v0_0_s_ifspec;
13172#ifndef __IIPDVDec_INTERFACE_DEFINED__
13173#define __IIPDVDec_INTERFACE_DEFINED__
13174  EXTERN_C const IID IID_IIPDVDec;
13175#if defined(__cplusplus) && !defined(CINTERFACE)
13176  struct IIPDVDec : public IUnknown {
13177  public:
13178    virtual HRESULT WINAPI get_IPDisplay(int *displayPix) = 0;
13179    virtual HRESULT WINAPI put_IPDisplay(int displayPix) = 0;
13180  };
13181#else
13182  typedef struct IIPDVDecVtbl {
13183    BEGIN_INTERFACE
13184      HRESULT (WINAPI *QueryInterface)(IIPDVDec *This,REFIID riid,void **ppvObject);
13185      ULONG (WINAPI *AddRef)(IIPDVDec *This);
13186      ULONG (WINAPI *Release)(IIPDVDec *This);
13187      HRESULT (WINAPI *get_IPDisplay)(IIPDVDec *This,int *displayPix);
13188      HRESULT (WINAPI *put_IPDisplay)(IIPDVDec *This,int displayPix);
13189    END_INTERFACE
13190  } IIPDVDecVtbl;
13191  struct IIPDVDec {
13192    CONST_VTBL struct IIPDVDecVtbl *lpVtbl;
13193  };
13194#ifdef COBJMACROS
13195#define IIPDVDec_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13196#define IIPDVDec_AddRef(This) (This)->lpVtbl->AddRef(This)
13197#define IIPDVDec_Release(This) (This)->lpVtbl->Release(This)
13198#define IIPDVDec_get_IPDisplay(This,displayPix) (This)->lpVtbl->get_IPDisplay(This,displayPix)
13199#define IIPDVDec_put_IPDisplay(This,displayPix) (This)->lpVtbl->put_IPDisplay(This,displayPix)
13200#endif
13201#endif
13202  HRESULT WINAPI IIPDVDec_get_IPDisplay_Proxy(IIPDVDec *This,int *displayPix);
13203  void __RPC_STUB IIPDVDec_get_IPDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13204  HRESULT WINAPI IIPDVDec_put_IPDisplay_Proxy(IIPDVDec *This,int displayPix);
13205  void __RPC_STUB IIPDVDec_put_IPDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13206#endif
13207
13208#ifndef __IDVRGB219_INTERFACE_DEFINED__
13209#define __IDVRGB219_INTERFACE_DEFINED__
13210  EXTERN_C const IID IID_IDVRGB219;
13211#if defined(__cplusplus) && !defined(CINTERFACE)
13212  struct IDVRGB219 : public IUnknown {
13213  public:
13214    virtual HRESULT WINAPI SetRGB219(WINBOOL bState) = 0;
13215  };
13216#else
13217  typedef struct IDVRGB219Vtbl {
13218    BEGIN_INTERFACE
13219      HRESULT (WINAPI *QueryInterface)(IDVRGB219 *This,REFIID riid,void **ppvObject);
13220      ULONG (WINAPI *AddRef)(IDVRGB219 *This);
13221      ULONG (WINAPI *Release)(IDVRGB219 *This);
13222      HRESULT (WINAPI *SetRGB219)(IDVRGB219 *This,WINBOOL bState);
13223    END_INTERFACE
13224  } IDVRGB219Vtbl;
13225  struct IDVRGB219 {
13226    CONST_VTBL struct IDVRGB219Vtbl *lpVtbl;
13227  };
13228#ifdef COBJMACROS
13229#define IDVRGB219_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13230#define IDVRGB219_AddRef(This) (This)->lpVtbl->AddRef(This)
13231#define IDVRGB219_Release(This) (This)->lpVtbl->Release(This)
13232#define IDVRGB219_SetRGB219(This,bState) (This)->lpVtbl->SetRGB219(This,bState)
13233#endif
13234#endif
13235  HRESULT WINAPI IDVRGB219_SetRGB219_Proxy(IDVRGB219 *This,WINBOOL bState);
13236  void __RPC_STUB IDVRGB219_SetRGB219_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13237#endif
13238
13239#ifndef __IDVSplitter_INTERFACE_DEFINED__
13240#define __IDVSplitter_INTERFACE_DEFINED__
13241  EXTERN_C const IID IID_IDVSplitter;
13242#if defined(__cplusplus) && !defined(CINTERFACE)
13243  struct IDVSplitter : public IUnknown {
13244  public:
13245    virtual HRESULT WINAPI DiscardAlternateVideoFrames(int nDiscard) = 0;
13246  };
13247#else
13248  typedef struct IDVSplitterVtbl {
13249    BEGIN_INTERFACE
13250      HRESULT (WINAPI *QueryInterface)(IDVSplitter *This,REFIID riid,void **ppvObject);
13251      ULONG (WINAPI *AddRef)(IDVSplitter *This);
13252      ULONG (WINAPI *Release)(IDVSplitter *This);
13253      HRESULT (WINAPI *DiscardAlternateVideoFrames)(IDVSplitter *This,int nDiscard);
13254    END_INTERFACE
13255  } IDVSplitterVtbl;
13256  struct IDVSplitter {
13257    CONST_VTBL struct IDVSplitterVtbl *lpVtbl;
13258  };
13259#ifdef COBJMACROS
13260#define IDVSplitter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13261#define IDVSplitter_AddRef(This) (This)->lpVtbl->AddRef(This)
13262#define IDVSplitter_Release(This) (This)->lpVtbl->Release(This)
13263#define IDVSplitter_DiscardAlternateVideoFrames(This,nDiscard) (This)->lpVtbl->DiscardAlternateVideoFrames(This,nDiscard)
13264#endif
13265#endif
13266  HRESULT WINAPI IDVSplitter_DiscardAlternateVideoFrames_Proxy(IDVSplitter *This,int nDiscard);
13267  void __RPC_STUB IDVSplitter_DiscardAlternateVideoFrames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13268#endif
13269
13270  enum _AM_AUDIO_RENDERER_STAT_PARAM {
13271    AM_AUDREND_STAT_PARAM_BREAK_COUNT = 1,
13272    AM_AUDREND_STAT_PARAM_SLAVE_MODE,AM_AUDREND_STAT_PARAM_SILENCE_DUR,
13273    AM_AUDREND_STAT_PARAM_LAST_BUFFER_DUR,AM_AUDREND_STAT_PARAM_DISCONTINUITIES,
13274    AM_AUDREND_STAT_PARAM_SLAVE_RATE,AM_AUDREND_STAT_PARAM_SLAVE_DROPWRITE_DUR,
13275    AM_AUDREND_STAT_PARAM_SLAVE_HIGHLOWERROR,AM_AUDREND_STAT_PARAM_SLAVE_LASTHIGHLOWERROR,
13276    AM_AUDREND_STAT_PARAM_SLAVE_ACCUMERROR,AM_AUDREND_STAT_PARAM_BUFFERFULLNESS,
13277    AM_AUDREND_STAT_PARAM_JITTER
13278  };
13279
13280  extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_c_ifspec;
13281  extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_s_ifspec;
13282#ifndef __IAMAudioRendererStats_INTERFACE_DEFINED__
13283#define __IAMAudioRendererStats_INTERFACE_DEFINED__
13284  EXTERN_C const IID IID_IAMAudioRendererStats;
13285#if defined(__cplusplus) && !defined(CINTERFACE)
13286  struct IAMAudioRendererStats : public IUnknown {
13287  public:
13288    virtual HRESULT WINAPI GetStatParam(DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2) = 0;
13289  };
13290#else
13291  typedef struct IAMAudioRendererStatsVtbl {
13292    BEGIN_INTERFACE
13293      HRESULT (WINAPI *QueryInterface)(IAMAudioRendererStats *This,REFIID riid,void **ppvObject);
13294      ULONG (WINAPI *AddRef)(IAMAudioRendererStats *This);
13295      ULONG (WINAPI *Release)(IAMAudioRendererStats *This);
13296      HRESULT (WINAPI *GetStatParam)(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
13297    END_INTERFACE
13298  } IAMAudioRendererStatsVtbl;
13299  struct IAMAudioRendererStats {
13300    CONST_VTBL struct IAMAudioRendererStatsVtbl *lpVtbl;
13301  };
13302#ifdef COBJMACROS
13303#define IAMAudioRendererStats_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13304#define IAMAudioRendererStats_AddRef(This) (This)->lpVtbl->AddRef(This)
13305#define IAMAudioRendererStats_Release(This) (This)->lpVtbl->Release(This)
13306#define IAMAudioRendererStats_GetStatParam(This,dwParam,pdwParam1,pdwParam2) (This)->lpVtbl->GetStatParam(This,dwParam,pdwParam1,pdwParam2)
13307#endif
13308#endif
13309  HRESULT WINAPI IAMAudioRendererStats_GetStatParam_Proxy(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
13310  void __RPC_STUB IAMAudioRendererStats_GetStatParam_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13311#endif
13312
13313  enum _AM_INTF_SEARCH_FLAGS {
13314    AM_INTF_SEARCH_INPUT_PIN = 0x1,AM_INTF_SEARCH_OUTPUT_PIN = 0x2,AM_INTF_SEARCH_FILTER = 0x4
13315  };
13316
13317  extern RPC_IF_HANDLE __MIDL_itf_strmif_0361_v0_0_c_ifspec;
13318  extern RPC_IF_HANDLE __MIDL_itf_strmif_0361_v0_0_s_ifspec;
13319#ifndef __IAMGraphStreams_INTERFACE_DEFINED__
13320#define __IAMGraphStreams_INTERFACE_DEFINED__
13321  EXTERN_C const IID IID_IAMGraphStreams;
13322#if defined(__cplusplus) && !defined(CINTERFACE)
13323  struct IAMGraphStreams : public IUnknown {
13324  public:
13325    virtual HRESULT WINAPI FindUpstreamInterface(IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags) = 0;
13326    virtual HRESULT WINAPI SyncUsingStreamOffset(WINBOOL bUseStreamOffset) = 0;
13327    virtual HRESULT WINAPI SetMaxGraphLatency(REFERENCE_TIME rtMaxGraphLatency) = 0;
13328  };
13329#else
13330  typedef struct IAMGraphStreamsVtbl {
13331    BEGIN_INTERFACE
13332      HRESULT (WINAPI *QueryInterface)(IAMGraphStreams *This,REFIID riid,void **ppvObject);
13333      ULONG (WINAPI *AddRef)(IAMGraphStreams *This);
13334      ULONG (WINAPI *Release)(IAMGraphStreams *This);
13335      HRESULT (WINAPI *FindUpstreamInterface)(IAMGraphStreams *This,IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags);
13336      HRESULT (WINAPI *SyncUsingStreamOffset)(IAMGraphStreams *This,WINBOOL bUseStreamOffset);
13337      HRESULT (WINAPI *SetMaxGraphLatency)(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
13338    END_INTERFACE
13339  } IAMGraphStreamsVtbl;
13340  struct IAMGraphStreams {
13341    CONST_VTBL struct IAMGraphStreamsVtbl *lpVtbl;
13342  };
13343#ifdef COBJMACROS
13344#define IAMGraphStreams_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13345#define IAMGraphStreams_AddRef(This) (This)->lpVtbl->AddRef(This)
13346#define IAMGraphStreams_Release(This) (This)->lpVtbl->Release(This)
13347#define IAMGraphStreams_FindUpstreamInterface(This,pPin,riid,ppvInterface,dwFlags) (This)->lpVtbl->FindUpstreamInterface(This,pPin,riid,ppvInterface,dwFlags)
13348#define IAMGraphStreams_SyncUsingStreamOffset(This,bUseStreamOffset) (This)->lpVtbl->SyncUsingStreamOffset(This,bUseStreamOffset)
13349#define IAMGraphStreams_SetMaxGraphLatency(This,rtMaxGraphLatency) (This)->lpVtbl->SetMaxGraphLatency(This,rtMaxGraphLatency)
13350#endif
13351#endif
13352  HRESULT WINAPI IAMGraphStreams_FindUpstreamInterface_Proxy(IAMGraphStreams *This,IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags);
13353  void __RPC_STUB IAMGraphStreams_FindUpstreamInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13354  HRESULT WINAPI IAMGraphStreams_SyncUsingStreamOffset_Proxy(IAMGraphStreams *This,WINBOOL bUseStreamOffset);
13355  void __RPC_STUB IAMGraphStreams_SyncUsingStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13356  HRESULT WINAPI IAMGraphStreams_SetMaxGraphLatency_Proxy(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
13357  void __RPC_STUB IAMGraphStreams_SetMaxGraphLatency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13358#endif
13359
13360  enum AMOVERLAYFX {
13361    AMOVERFX_NOFX = 0,AMOVERFX_MIRRORLEFTRIGHT = 0x2,AMOVERFX_MIRRORUPDOWN = 0x4,AMOVERFX_DEINTERLACE = 0x8
13362  };
13363
13364  extern RPC_IF_HANDLE __MIDL_itf_strmif_0362_v0_0_c_ifspec;
13365  extern RPC_IF_HANDLE __MIDL_itf_strmif_0362_v0_0_s_ifspec;
13366#ifndef __IAMOverlayFX_INTERFACE_DEFINED__
13367#define __IAMOverlayFX_INTERFACE_DEFINED__
13368  EXTERN_C const IID IID_IAMOverlayFX;
13369#if defined(__cplusplus) && !defined(CINTERFACE)
13370  struct IAMOverlayFX : public IUnknown {
13371  public:
13372    virtual HRESULT WINAPI QueryOverlayFXCaps(DWORD *lpdwOverlayFXCaps) = 0;
13373    virtual HRESULT WINAPI SetOverlayFX(DWORD dwOverlayFX) = 0;
13374    virtual HRESULT WINAPI GetOverlayFX(DWORD *lpdwOverlayFX) = 0;
13375  };
13376#else
13377  typedef struct IAMOverlayFXVtbl {
13378    BEGIN_INTERFACE
13379      HRESULT (WINAPI *QueryInterface)(IAMOverlayFX *This,REFIID riid,void **ppvObject);
13380      ULONG (WINAPI *AddRef)(IAMOverlayFX *This);
13381      ULONG (WINAPI *Release)(IAMOverlayFX *This);
13382      HRESULT (WINAPI *QueryOverlayFXCaps)(IAMOverlayFX *This,DWORD *lpdwOverlayFXCaps);
13383      HRESULT (WINAPI *SetOverlayFX)(IAMOverlayFX *This,DWORD dwOverlayFX);
13384      HRESULT (WINAPI *GetOverlayFX)(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
13385    END_INTERFACE
13386  } IAMOverlayFXVtbl;
13387  struct IAMOverlayFX {
13388    CONST_VTBL struct IAMOverlayFXVtbl *lpVtbl;
13389  };
13390#ifdef COBJMACROS
13391#define IAMOverlayFX_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13392#define IAMOverlayFX_AddRef(This) (This)->lpVtbl->AddRef(This)
13393#define IAMOverlayFX_Release(This) (This)->lpVtbl->Release(This)
13394#define IAMOverlayFX_QueryOverlayFXCaps(This,lpdwOverlayFXCaps) (This)->lpVtbl->QueryOverlayFXCaps(This,lpdwOverlayFXCaps)
13395#define IAMOverlayFX_SetOverlayFX(This,dwOverlayFX) (This)->lpVtbl->SetOverlayFX(This,dwOverlayFX)
13396#define IAMOverlayFX_GetOverlayFX(This,lpdwOverlayFX) (This)->lpVtbl->GetOverlayFX(This,lpdwOverlayFX)
13397#endif
13398#endif
13399  HRESULT WINAPI IAMOverlayFX_QueryOverlayFXCaps_Proxy(IAMOverlayFX *This,DWORD *lpdwOverlayFXCaps);
13400  void __RPC_STUB IAMOverlayFX_QueryOverlayFXCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13401  HRESULT WINAPI IAMOverlayFX_SetOverlayFX_Proxy(IAMOverlayFX *This,DWORD dwOverlayFX);
13402  void __RPC_STUB IAMOverlayFX_SetOverlayFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13403  HRESULT WINAPI IAMOverlayFX_GetOverlayFX_Proxy(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
13404  void __RPC_STUB IAMOverlayFX_GetOverlayFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13405#endif
13406
13407#ifndef __IAMOpenProgress_INTERFACE_DEFINED__
13408#define __IAMOpenProgress_INTERFACE_DEFINED__
13409  EXTERN_C const IID IID_IAMOpenProgress;
13410#if defined(__cplusplus) && !defined(CINTERFACE)
13411  struct IAMOpenProgress : public IUnknown {
13412  public:
13413    virtual HRESULT WINAPI QueryProgress(LONGLONG *pllTotal,LONGLONG *pllCurrent) = 0;
13414    virtual HRESULT WINAPI AbortOperation(void) = 0;
13415  };
13416#else
13417  typedef struct IAMOpenProgressVtbl {
13418    BEGIN_INTERFACE
13419      HRESULT (WINAPI *QueryInterface)(IAMOpenProgress *This,REFIID riid,void **ppvObject);
13420      ULONG (WINAPI *AddRef)(IAMOpenProgress *This);
13421      ULONG (WINAPI *Release)(IAMOpenProgress *This);
13422      HRESULT (WINAPI *QueryProgress)(IAMOpenProgress *This,LONGLONG *pllTotal,LONGLONG *pllCurrent);
13423      HRESULT (WINAPI *AbortOperation)(IAMOpenProgress *This);
13424    END_INTERFACE
13425  } IAMOpenProgressVtbl;
13426  struct IAMOpenProgress {
13427    CONST_VTBL struct IAMOpenProgressVtbl *lpVtbl;
13428  };
13429#ifdef COBJMACROS
13430#define IAMOpenProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13431#define IAMOpenProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
13432#define IAMOpenProgress_Release(This) (This)->lpVtbl->Release(This)
13433#define IAMOpenProgress_QueryProgress(This,pllTotal,pllCurrent) (This)->lpVtbl->QueryProgress(This,pllTotal,pllCurrent)
13434#define IAMOpenProgress_AbortOperation(This) (This)->lpVtbl->AbortOperation(This)
13435#endif
13436#endif
13437  HRESULT WINAPI IAMOpenProgress_QueryProgress_Proxy(IAMOpenProgress *This,LONGLONG *pllTotal,LONGLONG *pllCurrent);
13438  void __RPC_STUB IAMOpenProgress_QueryProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13439  HRESULT WINAPI IAMOpenProgress_AbortOperation_Proxy(IAMOpenProgress *This);
13440  void __RPC_STUB IAMOpenProgress_AbortOperation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13441#endif
13442
13443#ifdef __CRT_UUID_DECL
13444__CRT_UUID_DECL(IMpeg2Demultiplexer,0x436eee9c,0x264f,0x4242,0x90,0xe1,0x4e,0x33,0x0c,0x10,0x75,0x12);
13445#endif
13446
13447#ifndef __IMpeg2Demultiplexer_INTERFACE_DEFINED__
13448#define __IMpeg2Demultiplexer_INTERFACE_DEFINED__
13449  EXTERN_C const IID IID_IMpeg2Demultiplexer;
13450#if defined(__cplusplus) && !defined(CINTERFACE)
13451  struct IMpeg2Demultiplexer : public IUnknown {
13452  public:
13453    virtual HRESULT WINAPI CreateOutputPin(AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin) = 0;
13454    virtual HRESULT WINAPI SetOutputPinMediaType(LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType) = 0;
13455    virtual HRESULT WINAPI DeleteOutputPin(LPWSTR pszPinName) = 0;
13456  };
13457#else
13458  typedef struct IMpeg2DemultiplexerVtbl {
13459    BEGIN_INTERFACE
13460      HRESULT (WINAPI *QueryInterface)(IMpeg2Demultiplexer *This,REFIID riid,void **ppvObject);
13461      ULONG (WINAPI *AddRef)(IMpeg2Demultiplexer *This);
13462      ULONG (WINAPI *Release)(IMpeg2Demultiplexer *This);
13463      HRESULT (WINAPI *CreateOutputPin)(IMpeg2Demultiplexer *This,AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin);
13464      HRESULT (WINAPI *SetOutputPinMediaType)(IMpeg2Demultiplexer *This,LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType);
13465      HRESULT (WINAPI *DeleteOutputPin)(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
13466    END_INTERFACE
13467  } IMpeg2DemultiplexerVtbl;
13468  struct IMpeg2Demultiplexer {
13469    CONST_VTBL struct IMpeg2DemultiplexerVtbl *lpVtbl;
13470  };
13471#ifdef COBJMACROS
13472#define IMpeg2Demultiplexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13473#define IMpeg2Demultiplexer_AddRef(This) (This)->lpVtbl->AddRef(This)
13474#define IMpeg2Demultiplexer_Release(This) (This)->lpVtbl->Release(This)
13475#define IMpeg2Demultiplexer_CreateOutputPin(This,pMediaType,pszPinName,ppIPin) (This)->lpVtbl->CreateOutputPin(This,pMediaType,pszPinName,ppIPin)
13476#define IMpeg2Demultiplexer_SetOutputPinMediaType(This,pszPinName,pMediaType) (This)->lpVtbl->SetOutputPinMediaType(This,pszPinName,pMediaType)
13477#define IMpeg2Demultiplexer_DeleteOutputPin(This,pszPinName) (This)->lpVtbl->DeleteOutputPin(This,pszPinName)
13478#endif
13479#endif
13480  HRESULT WINAPI IMpeg2Demultiplexer_CreateOutputPin_Proxy(IMpeg2Demultiplexer *This,AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin);
13481  void __RPC_STUB IMpeg2Demultiplexer_CreateOutputPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13482  HRESULT WINAPI IMpeg2Demultiplexer_SetOutputPinMediaType_Proxy(IMpeg2Demultiplexer *This,LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType);
13483  void __RPC_STUB IMpeg2Demultiplexer_SetOutputPinMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13484  HRESULT WINAPI IMpeg2Demultiplexer_DeleteOutputPin_Proxy(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
13485  void __RPC_STUB IMpeg2Demultiplexer_DeleteOutputPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13486#endif
13487
13488#define MPEG2_PROGRAM_STREAM_MAP 0x00000000
13489#define MPEG2_PROGRAM_ELEMENTARY_STREAM 0x00000001
13490#define MPEG2_PROGRAM_DIRECTORY_PES_PACKET 0x00000002
13491#define MPEG2_PROGRAM_PACK_HEADER 0x00000003
13492#define MPEG2_PROGRAM_PES_STREAM 0x00000004
13493#define MPEG2_PROGRAM_SYSTEM_HEADER 0x00000005
13494#define SUBSTREAM_FILTER_VAL_NONE 0x10000000
13495
13496  typedef struct __MIDL___MIDL_itf_strmif_0365_0001 {
13497    ULONG stream_id;
13498    DWORD dwMediaSampleContent;
13499    ULONG ulSubstreamFilterValue;
13500    int iDataOffset;
13501  } STREAM_ID_MAP;
13502
13503  extern RPC_IF_HANDLE __MIDL_itf_strmif_0365_v0_0_c_ifspec;
13504  extern RPC_IF_HANDLE __MIDL_itf_strmif_0365_v0_0_s_ifspec;
13505#ifndef __IEnumStreamIdMap_INTERFACE_DEFINED__
13506#define __IEnumStreamIdMap_INTERFACE_DEFINED__
13507  EXTERN_C const IID IID_IEnumStreamIdMap;
13508#if defined(__cplusplus) && !defined(CINTERFACE)
13509  struct IEnumStreamIdMap : public IUnknown {
13510  public:
13511    virtual HRESULT WINAPI Next(ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived) = 0;
13512    virtual HRESULT WINAPI Skip(ULONG cRecords) = 0;
13513    virtual HRESULT WINAPI Reset(void) = 0;
13514    virtual HRESULT WINAPI Clone(IEnumStreamIdMap **ppIEnumStreamIdMap) = 0;
13515  };
13516#else
13517  typedef struct IEnumStreamIdMapVtbl {
13518    BEGIN_INTERFACE
13519      HRESULT (WINAPI *QueryInterface)(IEnumStreamIdMap *This,REFIID riid,void **ppvObject);
13520      ULONG (WINAPI *AddRef)(IEnumStreamIdMap *This);
13521      ULONG (WINAPI *Release)(IEnumStreamIdMap *This);
13522      HRESULT (WINAPI *Next)(IEnumStreamIdMap *This,ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived);
13523      HRESULT (WINAPI *Skip)(IEnumStreamIdMap *This,ULONG cRecords);
13524      HRESULT (WINAPI *Reset)(IEnumStreamIdMap *This);
13525      HRESULT (WINAPI *Clone)(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
13526    END_INTERFACE
13527  } IEnumStreamIdMapVtbl;
13528  struct IEnumStreamIdMap {
13529    CONST_VTBL struct IEnumStreamIdMapVtbl *lpVtbl;
13530  };
13531#ifdef COBJMACROS
13532#define IEnumStreamIdMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13533#define IEnumStreamIdMap_AddRef(This) (This)->lpVtbl->AddRef(This)
13534#define IEnumStreamIdMap_Release(This) (This)->lpVtbl->Release(This)
13535#define IEnumStreamIdMap_Next(This,cRequest,pStreamIdMap,pcReceived) (This)->lpVtbl->Next(This,cRequest,pStreamIdMap,pcReceived)
13536#define IEnumStreamIdMap_Skip(This,cRecords) (This)->lpVtbl->Skip(This,cRecords)
13537#define IEnumStreamIdMap_Reset(This) (This)->lpVtbl->Reset(This)
13538#define IEnumStreamIdMap_Clone(This,ppIEnumStreamIdMap) (This)->lpVtbl->Clone(This,ppIEnumStreamIdMap)
13539#endif
13540#endif
13541  HRESULT WINAPI IEnumStreamIdMap_Next_Proxy(IEnumStreamIdMap *This,ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived);
13542  void __RPC_STUB IEnumStreamIdMap_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13543  HRESULT WINAPI IEnumStreamIdMap_Skip_Proxy(IEnumStreamIdMap *This,ULONG cRecords);
13544  void __RPC_STUB IEnumStreamIdMap_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13545  HRESULT WINAPI IEnumStreamIdMap_Reset_Proxy(IEnumStreamIdMap *This);
13546  void __RPC_STUB IEnumStreamIdMap_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13547  HRESULT WINAPI IEnumStreamIdMap_Clone_Proxy(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
13548  void __RPC_STUB IEnumStreamIdMap_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13549#endif
13550
13551#ifndef __IMPEG2StreamIdMap_INTERFACE_DEFINED__
13552#define __IMPEG2StreamIdMap_INTERFACE_DEFINED__
13553  EXTERN_C const IID IID_IMPEG2StreamIdMap;
13554#if defined(__cplusplus) && !defined(CINTERFACE)
13555  struct IMPEG2StreamIdMap : public IUnknown {
13556  public:
13557    virtual HRESULT WINAPI MapStreamId(ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset) = 0;
13558    virtual HRESULT WINAPI UnmapStreamId(ULONG culStreamId,ULONG *pulStreamId) = 0;
13559    virtual HRESULT WINAPI EnumStreamIdMap(IEnumStreamIdMap **ppIEnumStreamIdMap) = 0;
13560  };
13561#else
13562  typedef struct IMPEG2StreamIdMapVtbl {
13563    BEGIN_INTERFACE
13564      HRESULT (WINAPI *QueryInterface)(IMPEG2StreamIdMap *This,REFIID riid,void **ppvObject);
13565      ULONG (WINAPI *AddRef)(IMPEG2StreamIdMap *This);
13566      ULONG (WINAPI *Release)(IMPEG2StreamIdMap *This);
13567      HRESULT (WINAPI *MapStreamId)(IMPEG2StreamIdMap *This,ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset);
13568      HRESULT (WINAPI *UnmapStreamId)(IMPEG2StreamIdMap *This,ULONG culStreamId,ULONG *pulStreamId);
13569      HRESULT (WINAPI *EnumStreamIdMap)(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
13570    END_INTERFACE
13571  } IMPEG2StreamIdMapVtbl;
13572  struct IMPEG2StreamIdMap {
13573    CONST_VTBL struct IMPEG2StreamIdMapVtbl *lpVtbl;
13574  };
13575#ifdef COBJMACROS
13576#define IMPEG2StreamIdMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13577#define IMPEG2StreamIdMap_AddRef(This) (This)->lpVtbl->AddRef(This)
13578#define IMPEG2StreamIdMap_Release(This) (This)->lpVtbl->Release(This)
13579#define IMPEG2StreamIdMap_MapStreamId(This,ulStreamId,MediaSampleContent,ulSubstreamFilterValue,iDataOffset) (This)->lpVtbl->MapStreamId(This,ulStreamId,MediaSampleContent,ulSubstreamFilterValue,iDataOffset)
13580#define IMPEG2StreamIdMap_UnmapStreamId(This,culStreamId,pulStreamId) (This)->lpVtbl->UnmapStreamId(This,culStreamId,pulStreamId)
13581#define IMPEG2StreamIdMap_EnumStreamIdMap(This,ppIEnumStreamIdMap) (This)->lpVtbl->EnumStreamIdMap(This,ppIEnumStreamIdMap)
13582#endif
13583#endif
13584  HRESULT WINAPI IMPEG2StreamIdMap_MapStreamId_Proxy(IMPEG2StreamIdMap *This,ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset);
13585  void __RPC_STUB IMPEG2StreamIdMap_MapStreamId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13586  HRESULT WINAPI IMPEG2StreamIdMap_UnmapStreamId_Proxy(IMPEG2StreamIdMap *This,ULONG culStreamId,ULONG *pulStreamId);
13587  void __RPC_STUB IMPEG2StreamIdMap_UnmapStreamId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13588  HRESULT WINAPI IMPEG2StreamIdMap_EnumStreamIdMap_Proxy(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
13589  void __RPC_STUB IMPEG2StreamIdMap_EnumStreamIdMap_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13590#endif
13591
13592#ifndef __IRegisterServiceProvider_INTERFACE_DEFINED__
13593#define __IRegisterServiceProvider_INTERFACE_DEFINED__
13594  EXTERN_C const IID IID_IRegisterServiceProvider;
13595#if defined(__cplusplus) && !defined(CINTERFACE)
13596  struct IRegisterServiceProvider : public IUnknown {
13597  public:
13598    virtual HRESULT WINAPI RegisterService(REFGUID guidService,IUnknown *pUnkObject) = 0;
13599  };
13600#else
13601  typedef struct IRegisterServiceProviderVtbl {
13602    BEGIN_INTERFACE
13603      HRESULT (WINAPI *QueryInterface)(IRegisterServiceProvider *This,REFIID riid,void **ppvObject);
13604      ULONG (WINAPI *AddRef)(IRegisterServiceProvider *This);
13605      ULONG (WINAPI *Release)(IRegisterServiceProvider *This);
13606      HRESULT (WINAPI *RegisterService)(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
13607    END_INTERFACE
13608  } IRegisterServiceProviderVtbl;
13609  struct IRegisterServiceProvider {
13610    CONST_VTBL struct IRegisterServiceProviderVtbl *lpVtbl;
13611  };
13612#ifdef COBJMACROS
13613#define IRegisterServiceProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13614#define IRegisterServiceProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
13615#define IRegisterServiceProvider_Release(This) (This)->lpVtbl->Release(This)
13616#define IRegisterServiceProvider_RegisterService(This,guidService,pUnkObject) (This)->lpVtbl->RegisterService(This,guidService,pUnkObject)
13617#endif
13618#endif
13619  HRESULT WINAPI IRegisterServiceProvider_RegisterService_Proxy(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
13620  void __RPC_STUB IRegisterServiceProvider_RegisterService_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13621#endif
13622
13623#ifdef __cplusplus
13624#ifndef _IAMFilterGraphCallback_
13625#define _IAMFilterGraphCallback_
13626  EXTERN_GUID(IID_IAMFilterGraphCallback,0x56a868fd,0x0ad4,0x11ce,0xb0,0xa3,0x0,0x20,0xaf,0x0b,0xa7,0x70);
13627  struct IAMFilterGraphCallback : public IUnknown {
13628    virtual HRESULT UnableToRender(IPin *pPin) = 0;
13629  };
13630#endif
13631#endif
13632  struct CodecAPIEventData {
13633    GUID guid;
13634    DWORD dataLength;
13635    DWORD reserved[3];
13636  };
13637
13638  extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_c_ifspec;
13639  extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_s_ifspec;
13640#ifndef __ICodecAPI_INTERFACE_DEFINED__
13641#define __ICodecAPI_INTERFACE_DEFINED__
13642  EXTERN_C const IID IID_ICodecAPI;
13643#if defined(__cplusplus) && !defined(CINTERFACE)
13644  struct ICodecAPI : public IUnknown {
13645  public:
13646    virtual HRESULT WINAPI IsSupported(const GUID *Api) = 0;
13647    virtual HRESULT WINAPI IsModifiable(const GUID *Api) = 0;
13648    virtual HRESULT WINAPI GetParameterRange(const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta) = 0;
13649    virtual HRESULT WINAPI GetParameterValues(const GUID *Api,VARIANT **Values,ULONG *ValuesCount) = 0;
13650    virtual HRESULT WINAPI GetDefaultValue(const GUID *Api,VARIANT *Value) = 0;
13651    virtual HRESULT WINAPI GetValue(const GUID *Api,VARIANT *Value) = 0;
13652    virtual HRESULT WINAPI SetValue(const GUID *Api,VARIANT *Value) = 0;
13653    virtual HRESULT WINAPI RegisterForEvent(const GUID *Api,LONG_PTR userData) = 0;
13654    virtual HRESULT WINAPI UnregisterForEvent(const GUID *Api) = 0;
13655    virtual HRESULT WINAPI SetAllDefaults(void) = 0;
13656    virtual HRESULT WINAPI SetValueWithNotify(const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
13657    virtual HRESULT WINAPI SetAllDefaultsWithNotify(GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
13658    virtual HRESULT WINAPI GetAllSettings(IStream *__MIDL_0016) = 0;
13659    virtual HRESULT WINAPI SetAllSettings(IStream *__MIDL_0017) = 0;
13660    virtual HRESULT WINAPI SetAllSettingsWithNotify(IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
13661  };
13662#else
13663  typedef struct ICodecAPIVtbl {
13664    BEGIN_INTERFACE
13665      HRESULT (WINAPI *QueryInterface)(ICodecAPI *This,REFIID riid,void **ppvObject);
13666      ULONG (WINAPI *AddRef)(ICodecAPI *This);
13667      ULONG (WINAPI *Release)(ICodecAPI *This);
13668      HRESULT (WINAPI *IsSupported)(ICodecAPI *This,const GUID *Api);
13669      HRESULT (WINAPI *IsModifiable)(ICodecAPI *This,const GUID *Api);
13670      HRESULT (WINAPI *GetParameterRange)(ICodecAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
13671      HRESULT (WINAPI *GetParameterValues)(ICodecAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
13672      HRESULT (WINAPI *GetDefaultValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
13673      HRESULT (WINAPI *GetValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
13674      HRESULT (WINAPI *SetValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
13675      HRESULT (WINAPI *RegisterForEvent)(ICodecAPI *This,const GUID *Api,LONG_PTR userData);
13676      HRESULT (WINAPI *UnregisterForEvent)(ICodecAPI *This,const GUID *Api);
13677      HRESULT (WINAPI *SetAllDefaults)(ICodecAPI *This);
13678      HRESULT (WINAPI *SetValueWithNotify)(ICodecAPI *This,const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount);
13679      HRESULT (WINAPI *SetAllDefaultsWithNotify)(ICodecAPI *This,GUID **ChangedParam,ULONG *ChangedParamCount);
13680      HRESULT (WINAPI *GetAllSettings)(ICodecAPI *This,IStream *__MIDL_0016);
13681      HRESULT (WINAPI *SetAllSettings)(ICodecAPI *This,IStream *__MIDL_0017);
13682      HRESULT (WINAPI *SetAllSettingsWithNotify)(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
13683    END_INTERFACE
13684  } ICodecAPIVtbl;
13685  struct ICodecAPI {
13686    CONST_VTBL struct ICodecAPIVtbl *lpVtbl;
13687  };
13688#ifdef COBJMACROS
13689#define ICodecAPI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13690#define ICodecAPI_AddRef(This) (This)->lpVtbl->AddRef(This)
13691#define ICodecAPI_Release(This) (This)->lpVtbl->Release(This)
13692#define ICodecAPI_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
13693#define ICodecAPI_IsModifiable(This,Api) (This)->lpVtbl->IsModifiable(This,Api)
13694#define ICodecAPI_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
13695#define ICodecAPI_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
13696#define ICodecAPI_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
13697#define ICodecAPI_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
13698#define ICodecAPI_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
13699#define ICodecAPI_RegisterForEvent(This,Api,userData) (This)->lpVtbl->RegisterForEvent(This,Api,userData)
13700#define ICodecAPI_UnregisterForEvent(This,Api) (This)->lpVtbl->UnregisterForEvent(This,Api)
13701#define ICodecAPI_SetAllDefaults(This) (This)->lpVtbl->SetAllDefaults(This)
13702#define ICodecAPI_SetValueWithNotify(This,Api,Value,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetValueWithNotify(This,Api,Value,ChangedParam,ChangedParamCount)
13703#define ICodecAPI_SetAllDefaultsWithNotify(This,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetAllDefaultsWithNotify(This,ChangedParam,ChangedParamCount)
13704#define ICodecAPI_GetAllSettings(This,__MIDL_0016) (This)->lpVtbl->GetAllSettings(This,__MIDL_0016)
13705#define ICodecAPI_SetAllSettings(This,__MIDL_0017) (This)->lpVtbl->SetAllSettings(This,__MIDL_0017)
13706#define ICodecAPI_SetAllSettingsWithNotify(This,__MIDL_0018,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetAllSettingsWithNotify(This,__MIDL_0018,ChangedParam,ChangedParamCount)
13707#endif
13708#endif
13709  HRESULT WINAPI ICodecAPI_IsSupported_Proxy(ICodecAPI *This,const GUID *Api);
13710  void __RPC_STUB ICodecAPI_IsSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13711  HRESULT WINAPI ICodecAPI_IsModifiable_Proxy(ICodecAPI *This,const GUID *Api);
13712  void __RPC_STUB ICodecAPI_IsModifiable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13713  HRESULT WINAPI ICodecAPI_GetParameterRange_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
13714  void __RPC_STUB ICodecAPI_GetParameterRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13715  HRESULT WINAPI ICodecAPI_GetParameterValues_Proxy(ICodecAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
13716  void __RPC_STUB ICodecAPI_GetParameterValues_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13717  HRESULT WINAPI ICodecAPI_GetDefaultValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
13718  void __RPC_STUB ICodecAPI_GetDefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13719  HRESULT WINAPI ICodecAPI_GetValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
13720  void __RPC_STUB ICodecAPI_GetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13721  HRESULT WINAPI ICodecAPI_SetValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
13722  void __RPC_STUB ICodecAPI_SetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13723  HRESULT WINAPI ICodecAPI_RegisterForEvent_Proxy(ICodecAPI *This,const GUID *Api,LONG_PTR userData);
13724  void __RPC_STUB ICodecAPI_RegisterForEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13725  HRESULT WINAPI ICodecAPI_UnregisterForEvent_Proxy(ICodecAPI *This,const GUID *Api);
13726  void __RPC_STUB ICodecAPI_UnregisterForEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13727  HRESULT WINAPI ICodecAPI_SetAllDefaults_Proxy(ICodecAPI *This);
13728  void __RPC_STUB ICodecAPI_SetAllDefaults_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13729  HRESULT WINAPI ICodecAPI_SetValueWithNotify_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount);
13730  void __RPC_STUB ICodecAPI_SetValueWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13731  HRESULT WINAPI ICodecAPI_SetAllDefaultsWithNotify_Proxy(ICodecAPI *This,GUID **ChangedParam,ULONG *ChangedParamCount);
13732  void __RPC_STUB ICodecAPI_SetAllDefaultsWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13733  HRESULT WINAPI ICodecAPI_GetAllSettings_Proxy(ICodecAPI *This,IStream *__MIDL_0016);
13734  void __RPC_STUB ICodecAPI_GetAllSettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13735  HRESULT WINAPI ICodecAPI_SetAllSettings_Proxy(ICodecAPI *This,IStream *__MIDL_0017);
13736  void __RPC_STUB ICodecAPI_SetAllSettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13737  HRESULT WINAPI ICodecAPI_SetAllSettingsWithNotify_Proxy(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
13738  void __RPC_STUB ICodecAPI_SetAllSettingsWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13739#endif
13740
13741#ifndef __IGetCapabilitiesKey_INTERFACE_DEFINED__
13742#define __IGetCapabilitiesKey_INTERFACE_DEFINED__
13743  EXTERN_C const IID IID_IGetCapabilitiesKey;
13744#if defined(__cplusplus) && !defined(CINTERFACE)
13745  struct IGetCapabilitiesKey : public IUnknown {
13746  public:
13747    virtual HRESULT WINAPI GetCapabilitiesKey(HKEY *pHKey) = 0;
13748  };
13749#else
13750  typedef struct IGetCapabilitiesKeyVtbl {
13751    BEGIN_INTERFACE
13752      HRESULT (WINAPI *QueryInterface)(IGetCapabilitiesKey *This,REFIID riid,void **ppvObject);
13753      ULONG (WINAPI *AddRef)(IGetCapabilitiesKey *This);
13754      ULONG (WINAPI *Release)(IGetCapabilitiesKey *This);
13755      HRESULT (WINAPI *GetCapabilitiesKey)(IGetCapabilitiesKey *This,HKEY *pHKey);
13756    END_INTERFACE
13757  } IGetCapabilitiesKeyVtbl;
13758  struct IGetCapabilitiesKey {
13759    CONST_VTBL struct IGetCapabilitiesKeyVtbl *lpVtbl;
13760  };
13761#ifdef COBJMACROS
13762#define IGetCapabilitiesKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13763#define IGetCapabilitiesKey_AddRef(This) (This)->lpVtbl->AddRef(This)
13764#define IGetCapabilitiesKey_Release(This) (This)->lpVtbl->Release(This)
13765#define IGetCapabilitiesKey_GetCapabilitiesKey(This,pHKey) (This)->lpVtbl->GetCapabilitiesKey(This,pHKey)
13766#endif
13767#endif
13768  HRESULT WINAPI IGetCapabilitiesKey_GetCapabilitiesKey_Proxy(IGetCapabilitiesKey *This,HKEY *pHKey);
13769  void __RPC_STUB IGetCapabilitiesKey_GetCapabilitiesKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13770#endif
13771
13772#ifndef __IEncoderAPI_INTERFACE_DEFINED__
13773#define __IEncoderAPI_INTERFACE_DEFINED__
13774  EXTERN_C const IID IID_IEncoderAPI;
13775#if defined(__cplusplus) && !defined(CINTERFACE)
13776  struct IEncoderAPI : public IUnknown {
13777  public:
13778    virtual HRESULT WINAPI IsSupported(const GUID *Api) = 0;
13779    virtual HRESULT WINAPI IsAvailable(const GUID *Api) = 0;
13780    virtual HRESULT WINAPI GetParameterRange(const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta) = 0;
13781    virtual HRESULT WINAPI GetParameterValues(const GUID *Api,VARIANT **Values,ULONG *ValuesCount) = 0;
13782    virtual HRESULT WINAPI GetDefaultValue(const GUID *Api,VARIANT *Value) = 0;
13783    virtual HRESULT WINAPI GetValue(const GUID *Api,VARIANT *Value) = 0;
13784    virtual HRESULT WINAPI SetValue(const GUID *Api,VARIANT *Value) = 0;
13785  };
13786#else
13787  typedef struct IEncoderAPIVtbl {
13788    BEGIN_INTERFACE
13789      HRESULT (WINAPI *QueryInterface)(IEncoderAPI *This,REFIID riid,void **ppvObject);
13790      ULONG (WINAPI *AddRef)(IEncoderAPI *This);
13791      ULONG (WINAPI *Release)(IEncoderAPI *This);
13792      HRESULT (WINAPI *IsSupported)(IEncoderAPI *This,const GUID *Api);
13793      HRESULT (WINAPI *IsAvailable)(IEncoderAPI *This,const GUID *Api);
13794      HRESULT (WINAPI *GetParameterRange)(IEncoderAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
13795      HRESULT (WINAPI *GetParameterValues)(IEncoderAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
13796      HRESULT (WINAPI *GetDefaultValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
13797      HRESULT (WINAPI *GetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
13798      HRESULT (WINAPI *SetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
13799    END_INTERFACE
13800  } IEncoderAPIVtbl;
13801  struct IEncoderAPI {
13802    CONST_VTBL struct IEncoderAPIVtbl *lpVtbl;
13803  };
13804#ifdef COBJMACROS
13805#define IEncoderAPI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13806#define IEncoderAPI_AddRef(This) (This)->lpVtbl->AddRef(This)
13807#define IEncoderAPI_Release(This) (This)->lpVtbl->Release(This)
13808#define IEncoderAPI_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
13809#define IEncoderAPI_IsAvailable(This,Api) (This)->lpVtbl->IsAvailable(This,Api)
13810#define IEncoderAPI_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
13811#define IEncoderAPI_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
13812#define IEncoderAPI_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
13813#define IEncoderAPI_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
13814#define IEncoderAPI_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
13815#endif
13816#endif
13817  HRESULT WINAPI IEncoderAPI_IsSupported_Proxy(IEncoderAPI *This,const GUID *Api);
13818  void __RPC_STUB IEncoderAPI_IsSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13819  HRESULT WINAPI IEncoderAPI_IsAvailable_Proxy(IEncoderAPI *This,const GUID *Api);
13820  void __RPC_STUB IEncoderAPI_IsAvailable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13821  HRESULT WINAPI IEncoderAPI_GetParameterRange_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
13822  void __RPC_STUB IEncoderAPI_GetParameterRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13823  HRESULT WINAPI IEncoderAPI_GetParameterValues_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
13824  void __RPC_STUB IEncoderAPI_GetParameterValues_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13825  HRESULT WINAPI IEncoderAPI_GetDefaultValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
13826  void __RPC_STUB IEncoderAPI_GetDefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13827  HRESULT WINAPI IEncoderAPI_GetValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
13828  void __RPC_STUB IEncoderAPI_GetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13829  HRESULT WINAPI IEncoderAPI_SetValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
13830  void __RPC_STUB IEncoderAPI_SetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13831#endif
13832
13833#ifndef __IVideoEncoder_INTERFACE_DEFINED__
13834#define __IVideoEncoder_INTERFACE_DEFINED__
13835  EXTERN_C const IID IID_IVideoEncoder;
13836#if defined(__cplusplus) && !defined(CINTERFACE)
13837  struct IVideoEncoder : public IEncoderAPI {
13838  public:
13839  };
13840#else
13841  typedef struct IVideoEncoderVtbl {
13842    BEGIN_INTERFACE
13843      HRESULT (WINAPI *QueryInterface)(IVideoEncoder *This,REFIID riid,void **ppvObject);
13844      ULONG (WINAPI *AddRef)(IVideoEncoder *This);
13845      ULONG (WINAPI *Release)(IVideoEncoder *This);
13846      HRESULT (WINAPI *IsSupported)(IVideoEncoder *This,const GUID *Api);
13847      HRESULT (WINAPI *IsAvailable)(IVideoEncoder *This,const GUID *Api);
13848      HRESULT (WINAPI *GetParameterRange)(IVideoEncoder *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
13849      HRESULT (WINAPI *GetParameterValues)(IVideoEncoder *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
13850      HRESULT (WINAPI *GetDefaultValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
13851      HRESULT (WINAPI *GetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
13852      HRESULT (WINAPI *SetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
13853    END_INTERFACE
13854  } IVideoEncoderVtbl;
13855  struct IVideoEncoder {
13856    CONST_VTBL struct IVideoEncoderVtbl *lpVtbl;
13857  };
13858#ifdef COBJMACROS
13859#define IVideoEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13860#define IVideoEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
13861#define IVideoEncoder_Release(This) (This)->lpVtbl->Release(This)
13862#define IVideoEncoder_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
13863#define IVideoEncoder_IsAvailable(This,Api) (This)->lpVtbl->IsAvailable(This,Api)
13864#define IVideoEncoder_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
13865#define IVideoEncoder_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
13866#define IVideoEncoder_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
13867#define IVideoEncoder_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
13868#define IVideoEncoder_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
13869#endif
13870#endif
13871#endif
13872
13873#ifndef __ENCODER_API_DEFINES__
13874#define __ENCODER_API_DEFINES__
13875  typedef enum __MIDL___MIDL_itf_strmif_0374_0001 {
13876    ConstantBitRate = 0,
13877    VariableBitRateAverage,VariableBitRatePeak
13878  } VIDEOENCODER_BITRATE_MODE;
13879#endif
13880#define AM_GETDECODERCAP_QUERY_VMR_SUPPORT 0x00000001
13881#define VMR_NOTSUPPORTED 0x00000000
13882#define VMR_SUPPORTED 0x00000001
13883#define AM_QUERY_DECODER_VMR_SUPPORT 0x00000001
13884#define AM_QUERY_DECODER_DXVA_1_SUPPORT 0x00000002
13885#define AM_QUERY_DECODER_DVD_SUPPORT 0x00000003
13886#define AM_QUERY_DECODER_ATSC_SD_SUPPORT 0x00000004
13887#define AM_QUERY_DECODER_ATSC_HD_SUPPORT 0x00000005
13888#define AM_GETDECODERCAP_QUERY_VMR9_SUPPORT 0x00000006
13889#define DECODER_CAP_NOTSUPPORTED 0x00000000
13890#define DECODER_CAP_SUPPORTED 0x00000001
13891
13892  extern RPC_IF_HANDLE __MIDL_itf_strmif_0374_v0_0_c_ifspec;
13893  extern RPC_IF_HANDLE __MIDL_itf_strmif_0374_v0_0_s_ifspec;
13894#ifndef __IAMDecoderCaps_INTERFACE_DEFINED__
13895#define __IAMDecoderCaps_INTERFACE_DEFINED__
13896  EXTERN_C const IID IID_IAMDecoderCaps;
13897#if defined(__cplusplus) && !defined(CINTERFACE)
13898  struct IAMDecoderCaps : public IUnknown {
13899  public:
13900    virtual HRESULT WINAPI GetDecoderCaps(DWORD dwCapIndex,DWORD *lpdwCap) = 0;
13901  };
13902#else
13903  typedef struct IAMDecoderCapsVtbl {
13904    BEGIN_INTERFACE
13905      HRESULT (WINAPI *QueryInterface)(IAMDecoderCaps *This,REFIID riid,void **ppvObject);
13906      ULONG (WINAPI *AddRef)(IAMDecoderCaps *This);
13907      ULONG (WINAPI *Release)(IAMDecoderCaps *This);
13908      HRESULT (WINAPI *GetDecoderCaps)(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
13909    END_INTERFACE
13910  } IAMDecoderCapsVtbl;
13911  struct IAMDecoderCaps {
13912    CONST_VTBL struct IAMDecoderCapsVtbl *lpVtbl;
13913  };
13914#ifdef COBJMACROS
13915#define IAMDecoderCaps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13916#define IAMDecoderCaps_AddRef(This) (This)->lpVtbl->AddRef(This)
13917#define IAMDecoderCaps_Release(This) (This)->lpVtbl->Release(This)
13918#define IAMDecoderCaps_GetDecoderCaps(This,dwCapIndex,lpdwCap) (This)->lpVtbl->GetDecoderCaps(This,dwCapIndex,lpdwCap)
13919#endif
13920#endif
13921  HRESULT WINAPI IAMDecoderCaps_GetDecoderCaps_Proxy(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
13922  void __RPC_STUB IAMDecoderCaps_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
13923#endif
13924
13925#ifdef MINGW_HAS_DDRAW_H
13926#include <ddraw.h>
13927#else
13928  typedef void *IDirectDraw;
13929  typedef void *IDirectDrawSurface;
13930  typedef void *LPDIRECTDRAWSURFACE7;
13931  typedef void *LPDIRECTDRAW7;
13932  typedef void *LPDDPIXELFORMAT;
13933  typedef struct DDCOLORKEY {
13934    DWORD dw1;
13935    DWORD dw2;
13936  } DDCOLORKEY;
13937  typedef DDCOLORKEY *LPDDCOLORKEY;
13938#endif
13939
13940  typedef enum tagDVD_DOMAIN {
13941    DVD_DOMAIN_FirstPlay = 1,
13942    DVD_DOMAIN_VideoManagerMenu,DVD_DOMAIN_VideoTitleSetMenu,DVD_DOMAIN_Title,
13943    DVD_DOMAIN_Stop
13944  } DVD_DOMAIN;
13945
13946  typedef enum tagDVD_MENU_ID {
13947    DVD_MENU_Title = 2,DVD_MENU_Root = 3,DVD_MENU_Subpicture = 4,DVD_MENU_Audio = 5,
13948    DVD_MENU_Angle = 6,DVD_MENU_Chapter = 7
13949  } DVD_MENU_ID;
13950
13951  typedef enum tagDVD_DISC_SIDE {
13952    DVD_SIDE_A = 1,DVD_SIDE_B = 2
13953  } DVD_DISC_SIDE;
13954
13955  typedef enum tagDVD_PREFERRED_DISPLAY_MODE {
13956    DISPLAY_CONTENT_DEFAULT = 0,DISPLAY_16x9 = 1,DISPLAY_4x3_PANSCAN_PREFERRED = 2,DISPLAY_4x3_LETTERBOX_PREFERRED = 3
13957  } DVD_PREFERRED_DISPLAY_MODE;
13958
13959  typedef WORD DVD_REGISTER;
13960  typedef DVD_REGISTER GPRMARRAY[16];
13961  typedef DVD_REGISTER SPRMARRAY[24];
13962
13963  typedef struct tagDVD_ATR {
13964    ULONG ulCAT;
13965    BYTE pbATRI[768];
13966  } DVD_ATR;
13967
13968  typedef BYTE DVD_VideoATR[2];
13969  typedef BYTE DVD_AudioATR[8];
13970  typedef BYTE DVD_SubpictureATR[6];
13971
13972  typedef enum tagDVD_FRAMERATE {
13973    DVD_FPS_25 = 1,DVD_FPS_30NonDrop = 3
13974  } DVD_FRAMERATE;
13975
13976  typedef struct tagDVD_TIMECODE {
13977    ULONG Hours1 :4;
13978    ULONG Hours10 :4;
13979    ULONG Minutes1 :4;
13980    ULONG Minutes10:4;
13981    ULONG Seconds1 :4;
13982    ULONG Seconds10:4;
13983    ULONG Frames1 :4;
13984    ULONG Frames10 :2;
13985    ULONG FrameRateCode: 2;
13986  } DVD_TIMECODE;
13987
13988  typedef enum tagDVD_TIMECODE_FLAGS {
13989    DVD_TC_FLAG_25fps = 0x1,DVD_TC_FLAG_30fps = 0x2,DVD_TC_FLAG_DropFrame = 0x4,DVD_TC_FLAG_Interpolated = 0x8
13990  } DVD_TIMECODE_FLAGS;
13991
13992  typedef struct tagDVD_HMSF_TIMECODE {
13993    BYTE bHours;
13994    BYTE bMinutes;
13995    BYTE bSeconds;
13996    BYTE bFrames;
13997  } DVD_HMSF_TIMECODE;
13998
13999  typedef struct tagDVD_PLAYBACK_LOCATION2 {
14000    ULONG TitleNum;
14001    ULONG ChapterNum;
14002    DVD_HMSF_TIMECODE TimeCode;
14003    ULONG TimeCodeFlags;
14004  } DVD_PLAYBACK_LOCATION2;
14005
14006  typedef struct tagDVD_PLAYBACK_LOCATION {
14007    ULONG TitleNum;
14008    ULONG ChapterNum;
14009    ULONG TimeCode;
14010  } DVD_PLAYBACK_LOCATION;
14011
14012  typedef DWORD VALID_UOP_SOMTHING_OR_OTHER;
14013
14014  typedef enum __MIDL___MIDL_itf_strmif_0376_0001 {
14015    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,
14016    UOP_FLAG_Play_Chapter_Or_AtTime = 0x20,UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x40,UOP_FLAG_PlayNext_Chapter = 0x80,UOP_FLAG_Play_Forwards = 0x100,
14017    UOP_FLAG_Play_Backwards = 0x200,UOP_FLAG_ShowMenu_Title = 0x400,UOP_FLAG_ShowMenu_Root = 0x800,UOP_FLAG_ShowMenu_SubPic = 0x1000,
14018    UOP_FLAG_ShowMenu_Audio = 0x2000,UOP_FLAG_ShowMenu_Angle = 0x4000,UOP_FLAG_ShowMenu_Chapter = 0x8000,UOP_FLAG_Resume = 0x10000,
14019    UOP_FLAG_Select_Or_Activate_Button = 0x20000,UOP_FLAG_Still_Off = 0x40000,UOP_FLAG_Pause_On = 0x80000,UOP_FLAG_Select_Audio_Stream = 0x100000,
14020    UOP_FLAG_Select_SubPic_Stream = 0x200000,UOP_FLAG_Select_Angle = 0x400000,UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x800000,
14021    UOP_FLAG_Select_Video_Mode_Preference = 0x1000000
14022  } VALID_UOP_FLAG;
14023
14024  typedef enum __MIDL___MIDL_itf_strmif_0376_0002 {
14025    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,
14026    DVD_CMD_FLAG_EndAfterRendered = 0x10
14027  } DVD_CMD_FLAGS;
14028
14029  typedef enum __MIDL___MIDL_itf_strmif_0376_0003 {
14030    DVD_ResetOnStop = 1,DVD_NotifyParentalLevelChange = 2,DVD_HMSF_TimeCodeEvents = 3,DVD_AudioDuringFFwdRew = 4
14031  } DVD_OPTION_FLAG;
14032
14033  typedef enum __MIDL___MIDL_itf_strmif_0376_0004 {
14034    DVD_Relative_Upper = 1,DVD_Relative_Lower = 2,DVD_Relative_Left = 3,DVD_Relative_Right = 4
14035  } DVD_RELATIVE_BUTTON;
14036
14037  typedef enum tagDVD_PARENTAL_LEVEL {
14038    DVD_PARENTAL_LEVEL_8 = 0x8000,DVD_PARENTAL_LEVEL_7 = 0x4000,DVD_PARENTAL_LEVEL_6 = 0x2000,DVD_PARENTAL_LEVEL_5 = 0x1000,
14039    DVD_PARENTAL_LEVEL_4 = 0x800,DVD_PARENTAL_LEVEL_3 = 0x400,DVD_PARENTAL_LEVEL_2 = 0x200,DVD_PARENTAL_LEVEL_1 = 0x100
14040  } DVD_PARENTAL_LEVEL;
14041
14042  typedef enum tagDVD_AUDIO_LANG_EXT {
14043    DVD_AUD_EXT_NotSpecified = 0,DVD_AUD_EXT_Captions = 1,DVD_AUD_EXT_VisuallyImpaired = 2,DVD_AUD_EXT_DirectorComments1 = 3,
14044    DVD_AUD_EXT_DirectorComments2 = 4
14045  } DVD_AUDIO_LANG_EXT;
14046
14047  typedef enum tagDVD_SUBPICTURE_LANG_EXT {
14048    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,
14049    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,
14050    DVD_SP_EXT_DirectorComments_Children = 15
14051  } DVD_SUBPICTURE_LANG_EXT;
14052
14053  typedef enum tagDVD_AUDIO_APPMODE {
14054    DVD_AudioMode_None = 0,DVD_AudioMode_Karaoke = 1,DVD_AudioMode_Surround = 2,DVD_AudioMode_Other = 3
14055  } DVD_AUDIO_APPMODE;
14056
14057  typedef enum tagDVD_AUDIO_FORMAT {
14058    DVD_AudioFormat_AC3 = 0,DVD_AudioFormat_MPEG1 = 1,DVD_AudioFormat_MPEG1_DRC = 2,DVD_AudioFormat_MPEG2 = 3,DVD_AudioFormat_MPEG2_DRC = 4,
14059    DVD_AudioFormat_LPCM = 5,DVD_AudioFormat_DTS = 6,DVD_AudioFormat_SDDS = 7,DVD_AudioFormat_Other = 8
14060  } DVD_AUDIO_FORMAT;
14061
14062  typedef enum tagDVD_KARAOKE_DOWNMIX {
14063    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,
14064    DVD_Mix_0to1 = 0x100,DVD_Mix_1to1 = 0x200,DVD_Mix_2to1 = 0x400,DVD_Mix_3to1 = 0x800,DVD_Mix_4to1 = 0x1000,DVD_Mix_Lto1 = 0x2000,
14065    DVD_Mix_Rto1 = 0x4000
14066  } DVD_KARAOKE_DOWNMIX;
14067
14068  typedef struct tagDVD_AudioAttributes {
14069    DVD_AUDIO_APPMODE AppMode;
14070    BYTE AppModeData;
14071    DVD_AUDIO_FORMAT AudioFormat;
14072    LCID Language;
14073    DVD_AUDIO_LANG_EXT LanguageExtension;
14074    WINBOOL fHasMultichannelInfo;
14075    DWORD dwFrequency;
14076    BYTE bQuantization;
14077    BYTE bNumberOfChannels;
14078    DWORD dwReserved[2];
14079  } DVD_AudioAttributes;
14080
14081  typedef struct tagDVD_MUA_MixingInfo {
14082    WINBOOL fMixTo0;
14083    WINBOOL fMixTo1;
14084    WINBOOL fMix0InPhase;
14085    WINBOOL fMix1InPhase;
14086    DWORD dwSpeakerPosition;
14087  } DVD_MUA_MixingInfo;
14088
14089  typedef struct tagDVD_MUA_Coeff {
14090    double log2_alpha;
14091    double log2_beta;
14092  } DVD_MUA_Coeff;
14093
14094  typedef struct tagDVD_MultichannelAudioAttributes {
14095    DVD_MUA_MixingInfo Info[8];
14096    DVD_MUA_Coeff Coeff[8];
14097  } DVD_MultichannelAudioAttributes;
14098
14099  typedef enum tagDVD_KARAOKE_CONTENTS {
14100    DVD_Karaoke_GuideVocal1 = 0x1,DVD_Karaoke_GuideVocal2 = 0x2,DVD_Karaoke_GuideMelody1 = 0x4,DVD_Karaoke_GuideMelody2 = 0x8,
14101    DVD_Karaoke_GuideMelodyA = 0x10,DVD_Karaoke_GuideMelodyB = 0x20,DVD_Karaoke_SoundEffectA = 0x40,DVD_Karaoke_SoundEffectB = 0x80
14102  } DVD_KARAOKE_CONTENTS;
14103
14104  typedef enum tagDVD_KARAOKE_ASSIGNMENT {
14105    DVD_Assignment_reserved0 = 0,DVD_Assignment_reserved1 = 1,DVD_Assignment_LR = 2,DVD_Assignment_LRM = 3,DVD_Assignment_LR1 = 4,
14106    DVD_Assignment_LRM1 = 5,DVD_Assignment_LR12 = 6,DVD_Assignment_LRM12 = 7
14107  } DVD_KARAOKE_ASSIGNMENT;
14108
14109  typedef struct tagDVD_KaraokeAttributes {
14110    BYTE bVersion;
14111    WINBOOL fMasterOfCeremoniesInGuideVocal1;
14112    WINBOOL fDuet;
14113    DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
14114    WORD wChannelContents[8];
14115  } DVD_KaraokeAttributes;
14116
14117  typedef enum tagDVD_VIDEO_COMPRESSION {
14118    DVD_VideoCompression_Other = 0,DVD_VideoCompression_MPEG1 = 1,DVD_VideoCompression_MPEG2 = 2
14119  } DVD_VIDEO_COMPRESSION;
14120
14121  typedef struct tagDVD_VideoAttributes {
14122    WINBOOL fPanscanPermitted;
14123    WINBOOL fLetterboxPermitted;
14124    ULONG ulAspectX;
14125    ULONG ulAspectY;
14126    ULONG ulFrameRate;
14127    ULONG ulFrameHeight;
14128    DVD_VIDEO_COMPRESSION Compression;
14129    WINBOOL fLine21Field1InGOP;
14130    WINBOOL fLine21Field2InGOP;
14131    ULONG ulSourceResolutionX;
14132    ULONG ulSourceResolutionY;
14133    WINBOOL fIsSourceLetterboxed;
14134    WINBOOL fIsFilmMode;
14135  } DVD_VideoAttributes;
14136
14137  typedef enum tagDVD_SUBPICTURE_TYPE {
14138    DVD_SPType_NotSpecified = 0,DVD_SPType_Language = 1,DVD_SPType_Other = 2
14139  } DVD_SUBPICTURE_TYPE;
14140
14141  typedef enum tagDVD_SUBPICTURE_CODING {
14142    DVD_SPCoding_RunLength = 0,DVD_SPCoding_Extended = 1,DVD_SPCoding_Other = 2
14143  } DVD_SUBPICTURE_CODING;
14144
14145  typedef struct tagDVD_SubpictureAttributes {
14146    DVD_SUBPICTURE_TYPE Type;
14147    DVD_SUBPICTURE_CODING CodingMode;
14148    LCID Language;
14149    DVD_SUBPICTURE_LANG_EXT LanguageExtension;
14150  } DVD_SubpictureAttributes;
14151
14152  typedef enum tagDVD_TITLE_APPMODE {
14153    DVD_AppMode_Not_Specified = 0,DVD_AppMode_Karaoke = 1,DVD_AppMode_Other = 3
14154  } DVD_TITLE_APPMODE;
14155
14156  typedef struct tagDVD_TitleMainAttributes {
14157    DVD_TITLE_APPMODE AppMode;
14158    DVD_VideoAttributes VideoAttributes;
14159    ULONG ulNumberOfAudioStreams;
14160    DVD_AudioAttributes AudioAttributes[8];
14161    DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8];
14162    ULONG ulNumberOfSubpictureStreams;
14163    DVD_SubpictureAttributes SubpictureAttributes[32];
14164  } DVD_TitleAttributes;
14165
14166  typedef struct tagDVD_MenuAttributes {
14167    WINBOOL fCompatibleRegion[8];
14168    DVD_VideoAttributes VideoAttributes;
14169    WINBOOL fAudioPresent;
14170    DVD_AudioAttributes AudioAttributes;
14171    WINBOOL fSubpicturePresent;
14172    DVD_SubpictureAttributes SubpictureAttributes;
14173  } DVD_MenuAttributes;
14174
14175  extern RPC_IF_HANDLE __MIDL_itf_strmif_0376_v0_0_c_ifspec;
14176  extern RPC_IF_HANDLE __MIDL_itf_strmif_0376_v0_0_s_ifspec;
14177#ifndef __IDvdControl_INTERFACE_DEFINED__
14178#define __IDvdControl_INTERFACE_DEFINED__
14179  EXTERN_C const IID IID_IDvdControl;
14180#if defined(__cplusplus) && !defined(CINTERFACE)
14181  struct IDvdControl : public IUnknown {
14182  public:
14183    virtual HRESULT WINAPI TitlePlay(ULONG ulTitle) = 0;
14184    virtual HRESULT WINAPI ChapterPlay(ULONG ulTitle,ULONG ulChapter) = 0;
14185    virtual HRESULT WINAPI TimePlay(ULONG ulTitle,ULONG bcdTime) = 0;
14186    virtual HRESULT WINAPI StopForResume(void) = 0;
14187    virtual HRESULT WINAPI GoUp(void) = 0;
14188    virtual HRESULT WINAPI TimeSearch(ULONG bcdTime) = 0;
14189    virtual HRESULT WINAPI ChapterSearch(ULONG ulChapter) = 0;
14190    virtual HRESULT WINAPI PrevPGSearch(void) = 0;
14191    virtual HRESULT WINAPI TopPGSearch(void) = 0;
14192    virtual HRESULT WINAPI NextPGSearch(void) = 0;
14193    virtual HRESULT WINAPI ForwardScan(double dwSpeed) = 0;
14194    virtual HRESULT WINAPI BackwardScan(double dwSpeed) = 0;
14195    virtual HRESULT WINAPI MenuCall(DVD_MENU_ID MenuID) = 0;
14196    virtual HRESULT WINAPI Resume(void) = 0;
14197    virtual HRESULT WINAPI UpperButtonSelect(void) = 0;
14198    virtual HRESULT WINAPI LowerButtonSelect(void) = 0;
14199    virtual HRESULT WINAPI LeftButtonSelect(void) = 0;
14200    virtual HRESULT WINAPI RightButtonSelect(void) = 0;
14201    virtual HRESULT WINAPI ButtonActivate(void) = 0;
14202    virtual HRESULT WINAPI ButtonSelectAndActivate(ULONG ulButton) = 0;
14203    virtual HRESULT WINAPI StillOff(void) = 0;
14204    virtual HRESULT WINAPI PauseOn(void) = 0;
14205    virtual HRESULT WINAPI PauseOff(void) = 0;
14206    virtual HRESULT WINAPI MenuLanguageSelect(LCID Language) = 0;
14207    virtual HRESULT WINAPI AudioStreamChange(ULONG ulAudio) = 0;
14208    virtual HRESULT WINAPI SubpictureStreamChange(ULONG ulSubPicture,WINBOOL bDisplay) = 0;
14209    virtual HRESULT WINAPI AngleChange(ULONG ulAngle) = 0;
14210    virtual HRESULT WINAPI ParentalLevelSelect(ULONG ulParentalLevel) = 0;
14211    virtual HRESULT WINAPI ParentalCountrySelect(WORD wCountry) = 0;
14212    virtual HRESULT WINAPI KaraokeAudioPresentationModeChange(ULONG ulMode) = 0;
14213    virtual HRESULT WINAPI VideoModePreferrence(ULONG ulPreferredDisplayMode) = 0;
14214    virtual HRESULT WINAPI SetRoot(LPCWSTR pszPath) = 0;
14215    virtual HRESULT WINAPI MouseActivate(POINT point) = 0;
14216    virtual HRESULT WINAPI MouseSelect(POINT point) = 0;
14217    virtual HRESULT WINAPI ChapterPlayAutoStop(ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay) = 0;
14218  };
14219#else
14220  typedef struct IDvdControlVtbl {
14221    BEGIN_INTERFACE
14222      HRESULT (WINAPI *QueryInterface)(IDvdControl *This,REFIID riid,void **ppvObject);
14223      ULONG (WINAPI *AddRef)(IDvdControl *This);
14224      ULONG (WINAPI *Release)(IDvdControl *This);
14225      HRESULT (WINAPI *TitlePlay)(IDvdControl *This,ULONG ulTitle);
14226      HRESULT (WINAPI *ChapterPlay)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter);
14227      HRESULT (WINAPI *TimePlay)(IDvdControl *This,ULONG ulTitle,ULONG bcdTime);
14228      HRESULT (WINAPI *StopForResume)(IDvdControl *This);
14229      HRESULT (WINAPI *GoUp)(IDvdControl *This);
14230      HRESULT (WINAPI *TimeSearch)(IDvdControl *This,ULONG bcdTime);
14231      HRESULT (WINAPI *ChapterSearch)(IDvdControl *This,ULONG ulChapter);
14232      HRESULT (WINAPI *PrevPGSearch)(IDvdControl *This);
14233      HRESULT (WINAPI *TopPGSearch)(IDvdControl *This);
14234      HRESULT (WINAPI *NextPGSearch)(IDvdControl *This);
14235      HRESULT (WINAPI *ForwardScan)(IDvdControl *This,double dwSpeed);
14236      HRESULT (WINAPI *BackwardScan)(IDvdControl *This,double dwSpeed);
14237      HRESULT (WINAPI *MenuCall)(IDvdControl *This,DVD_MENU_ID MenuID);
14238      HRESULT (WINAPI *Resume)(IDvdControl *This);
14239      HRESULT (WINAPI *UpperButtonSelect)(IDvdControl *This);
14240      HRESULT (WINAPI *LowerButtonSelect)(IDvdControl *This);
14241      HRESULT (WINAPI *LeftButtonSelect)(IDvdControl *This);
14242      HRESULT (WINAPI *RightButtonSelect)(IDvdControl *This);
14243      HRESULT (WINAPI *ButtonActivate)(IDvdControl *This);
14244      HRESULT (WINAPI *ButtonSelectAndActivate)(IDvdControl *This,ULONG ulButton);
14245      HRESULT (WINAPI *StillOff)(IDvdControl *This);
14246      HRESULT (WINAPI *PauseOn)(IDvdControl *This);
14247      HRESULT (WINAPI *PauseOff)(IDvdControl *This);
14248      HRESULT (WINAPI *MenuLanguageSelect)(IDvdControl *This,LCID Language);
14249      HRESULT (WINAPI *AudioStreamChange)(IDvdControl *This,ULONG ulAudio);
14250      HRESULT (WINAPI *SubpictureStreamChange)(IDvdControl *This,ULONG ulSubPicture,WINBOOL bDisplay);
14251      HRESULT (WINAPI *AngleChange)(IDvdControl *This,ULONG ulAngle);
14252      HRESULT (WINAPI *ParentalLevelSelect)(IDvdControl *This,ULONG ulParentalLevel);
14253      HRESULT (WINAPI *ParentalCountrySelect)(IDvdControl *This,WORD wCountry);
14254      HRESULT (WINAPI *KaraokeAudioPresentationModeChange)(IDvdControl *This,ULONG ulMode);
14255      HRESULT (WINAPI *VideoModePreferrence)(IDvdControl *This,ULONG ulPreferredDisplayMode);
14256      HRESULT (WINAPI *SetRoot)(IDvdControl *This,LPCWSTR pszPath);
14257      HRESULT (WINAPI *MouseActivate)(IDvdControl *This,POINT point);
14258      HRESULT (WINAPI *MouseSelect)(IDvdControl *This,POINT point);
14259      HRESULT (WINAPI *ChapterPlayAutoStop)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
14260    END_INTERFACE
14261  } IDvdControlVtbl;
14262  struct IDvdControl {
14263    CONST_VTBL struct IDvdControlVtbl *lpVtbl;
14264  };
14265#ifdef COBJMACROS
14266#define IDvdControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14267#define IDvdControl_AddRef(This) (This)->lpVtbl->AddRef(This)
14268#define IDvdControl_Release(This) (This)->lpVtbl->Release(This)
14269#define IDvdControl_TitlePlay(This,ulTitle) (This)->lpVtbl->TitlePlay(This,ulTitle)
14270#define IDvdControl_ChapterPlay(This,ulTitle,ulChapter) (This)->lpVtbl->ChapterPlay(This,ulTitle,ulChapter)
14271#define IDvdControl_TimePlay(This,ulTitle,bcdTime) (This)->lpVtbl->TimePlay(This,ulTitle,bcdTime)
14272#define IDvdControl_StopForResume(This) (This)->lpVtbl->StopForResume(This)
14273#define IDvdControl_GoUp(This) (This)->lpVtbl->GoUp(This)
14274#define IDvdControl_TimeSearch(This,bcdTime) (This)->lpVtbl->TimeSearch(This,bcdTime)
14275#define IDvdControl_ChapterSearch(This,ulChapter) (This)->lpVtbl->ChapterSearch(This,ulChapter)
14276#define IDvdControl_PrevPGSearch(This) (This)->lpVtbl->PrevPGSearch(This)
14277#define IDvdControl_TopPGSearch(This) (This)->lpVtbl->TopPGSearch(This)
14278#define IDvdControl_NextPGSearch(This) (This)->lpVtbl->NextPGSearch(This)
14279#define IDvdControl_ForwardScan(This,dwSpeed) (This)->lpVtbl->ForwardScan(This,dwSpeed)
14280#define IDvdControl_BackwardScan(This,dwSpeed) (This)->lpVtbl->BackwardScan(This,dwSpeed)
14281#define IDvdControl_MenuCall(This,MenuID) (This)->lpVtbl->MenuCall(This,MenuID)
14282#define IDvdControl_Resume(This) (This)->lpVtbl->Resume(This)
14283#define IDvdControl_UpperButtonSelect(This) (This)->lpVtbl->UpperButtonSelect(This)
14284#define IDvdControl_LowerButtonSelect(This) (This)->lpVtbl->LowerButtonSelect(This)
14285#define IDvdControl_LeftButtonSelect(This) (This)->lpVtbl->LeftButtonSelect(This)
14286#define IDvdControl_RightButtonSelect(This) (This)->lpVtbl->RightButtonSelect(This)
14287#define IDvdControl_ButtonActivate(This) (This)->lpVtbl->ButtonActivate(This)
14288#define IDvdControl_ButtonSelectAndActivate(This,ulButton) (This)->lpVtbl->ButtonSelectAndActivate(This,ulButton)
14289#define IDvdControl_StillOff(This) (This)->lpVtbl->StillOff(This)
14290#define IDvdControl_PauseOn(This) (This)->lpVtbl->PauseOn(This)
14291#define IDvdControl_PauseOff(This) (This)->lpVtbl->PauseOff(This)
14292#define IDvdControl_MenuLanguageSelect(This,Language) (This)->lpVtbl->MenuLanguageSelect(This,Language)
14293#define IDvdControl_AudioStreamChange(This,ulAudio) (This)->lpVtbl->AudioStreamChange(This,ulAudio)
14294#define IDvdControl_SubpictureStreamChange(This,ulSubPicture,bDisplay) (This)->lpVtbl->SubpictureStreamChange(This,ulSubPicture,bDisplay)
14295#define IDvdControl_AngleChange(This,ulAngle) (This)->lpVtbl->AngleChange(This,ulAngle)
14296#define IDvdControl_ParentalLevelSelect(This,ulParentalLevel) (This)->lpVtbl->ParentalLevelSelect(This,ulParentalLevel)
14297#define IDvdControl_ParentalCountrySelect(This,wCountry) (This)->lpVtbl->ParentalCountrySelect(This,wCountry)
14298#define IDvdControl_KaraokeAudioPresentationModeChange(This,ulMode) (This)->lpVtbl->KaraokeAudioPresentationModeChange(This,ulMode)
14299#define IDvdControl_VideoModePreferrence(This,ulPreferredDisplayMode) (This)->lpVtbl->VideoModePreferrence(This,ulPreferredDisplayMode)
14300#define IDvdControl_SetRoot(This,pszPath) (This)->lpVtbl->SetRoot(This,pszPath)
14301#define IDvdControl_MouseActivate(This,point) (This)->lpVtbl->MouseActivate(This,point)
14302#define IDvdControl_MouseSelect(This,point) (This)->lpVtbl->MouseSelect(This,point)
14303#define IDvdControl_ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay) (This)->lpVtbl->ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay)
14304#endif
14305#endif
14306  HRESULT WINAPI IDvdControl_TitlePlay_Proxy(IDvdControl *This,ULONG ulTitle);
14307  void __RPC_STUB IDvdControl_TitlePlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14308  HRESULT WINAPI IDvdControl_ChapterPlay_Proxy(IDvdControl *This,ULONG ulTitle,ULONG ulChapter);
14309  void __RPC_STUB IDvdControl_ChapterPlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14310  HRESULT WINAPI IDvdControl_TimePlay_Proxy(IDvdControl *This,ULONG ulTitle,ULONG bcdTime);
14311  void __RPC_STUB IDvdControl_TimePlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14312  HRESULT WINAPI IDvdControl_StopForResume_Proxy(IDvdControl *This);
14313  void __RPC_STUB IDvdControl_StopForResume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14314  HRESULT WINAPI IDvdControl_GoUp_Proxy(IDvdControl *This);
14315  void __RPC_STUB IDvdControl_GoUp_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14316  HRESULT WINAPI IDvdControl_TimeSearch_Proxy(IDvdControl *This,ULONG bcdTime);
14317  void __RPC_STUB IDvdControl_TimeSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14318  HRESULT WINAPI IDvdControl_ChapterSearch_Proxy(IDvdControl *This,ULONG ulChapter);
14319  void __RPC_STUB IDvdControl_ChapterSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14320  HRESULT WINAPI IDvdControl_PrevPGSearch_Proxy(IDvdControl *This);
14321  void __RPC_STUB IDvdControl_PrevPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14322  HRESULT WINAPI IDvdControl_TopPGSearch_Proxy(IDvdControl *This);
14323  void __RPC_STUB IDvdControl_TopPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14324  HRESULT WINAPI IDvdControl_NextPGSearch_Proxy(IDvdControl *This);
14325  void __RPC_STUB IDvdControl_NextPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14326  HRESULT WINAPI IDvdControl_ForwardScan_Proxy(IDvdControl *This,double dwSpeed);
14327  void __RPC_STUB IDvdControl_ForwardScan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14328  HRESULT WINAPI IDvdControl_BackwardScan_Proxy(IDvdControl *This,double dwSpeed);
14329  void __RPC_STUB IDvdControl_BackwardScan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14330  HRESULT WINAPI IDvdControl_MenuCall_Proxy(IDvdControl *This,DVD_MENU_ID MenuID);
14331  void __RPC_STUB IDvdControl_MenuCall_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14332  HRESULT WINAPI IDvdControl_Resume_Proxy(IDvdControl *This);
14333  void __RPC_STUB IDvdControl_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14334  HRESULT WINAPI IDvdControl_UpperButtonSelect_Proxy(IDvdControl *This);
14335  void __RPC_STUB IDvdControl_UpperButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14336  HRESULT WINAPI IDvdControl_LowerButtonSelect_Proxy(IDvdControl *This);
14337  void __RPC_STUB IDvdControl_LowerButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14338  HRESULT WINAPI IDvdControl_LeftButtonSelect_Proxy(IDvdControl *This);
14339  void __RPC_STUB IDvdControl_LeftButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14340  HRESULT WINAPI IDvdControl_RightButtonSelect_Proxy(IDvdControl *This);
14341  void __RPC_STUB IDvdControl_RightButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14342  HRESULT WINAPI IDvdControl_ButtonActivate_Proxy(IDvdControl *This);
14343  void __RPC_STUB IDvdControl_ButtonActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14344  HRESULT WINAPI IDvdControl_ButtonSelectAndActivate_Proxy(IDvdControl *This,ULONG ulButton);
14345  void __RPC_STUB IDvdControl_ButtonSelectAndActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14346  HRESULT WINAPI IDvdControl_StillOff_Proxy(IDvdControl *This);
14347  void __RPC_STUB IDvdControl_StillOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14348  HRESULT WINAPI IDvdControl_PauseOn_Proxy(IDvdControl *This);
14349  void __RPC_STUB IDvdControl_PauseOn_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14350  HRESULT WINAPI IDvdControl_PauseOff_Proxy(IDvdControl *This);
14351  void __RPC_STUB IDvdControl_PauseOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14352  HRESULT WINAPI IDvdControl_MenuLanguageSelect_Proxy(IDvdControl *This,LCID Language);
14353  void __RPC_STUB IDvdControl_MenuLanguageSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14354  HRESULT WINAPI IDvdControl_AudioStreamChange_Proxy(IDvdControl *This,ULONG ulAudio);
14355  void __RPC_STUB IDvdControl_AudioStreamChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14356  HRESULT WINAPI IDvdControl_SubpictureStreamChange_Proxy(IDvdControl *This,ULONG ulSubPicture,WINBOOL bDisplay);
14357  void __RPC_STUB IDvdControl_SubpictureStreamChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14358  HRESULT WINAPI IDvdControl_AngleChange_Proxy(IDvdControl *This,ULONG ulAngle);
14359  void __RPC_STUB IDvdControl_AngleChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14360  HRESULT WINAPI IDvdControl_ParentalLevelSelect_Proxy(IDvdControl *This,ULONG ulParentalLevel);
14361  void __RPC_STUB IDvdControl_ParentalLevelSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14362  HRESULT WINAPI IDvdControl_ParentalCountrySelect_Proxy(IDvdControl *This,WORD wCountry);
14363  void __RPC_STUB IDvdControl_ParentalCountrySelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14364  HRESULT WINAPI IDvdControl_KaraokeAudioPresentationModeChange_Proxy(IDvdControl *This,ULONG ulMode);
14365  void __RPC_STUB IDvdControl_KaraokeAudioPresentationModeChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14366  HRESULT WINAPI IDvdControl_VideoModePreferrence_Proxy(IDvdControl *This,ULONG ulPreferredDisplayMode);
14367  void __RPC_STUB IDvdControl_VideoModePreferrence_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14368  HRESULT WINAPI IDvdControl_SetRoot_Proxy(IDvdControl *This,LPCWSTR pszPath);
14369  void __RPC_STUB IDvdControl_SetRoot_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14370  HRESULT WINAPI IDvdControl_MouseActivate_Proxy(IDvdControl *This,POINT point);
14371  void __RPC_STUB IDvdControl_MouseActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14372  HRESULT WINAPI IDvdControl_MouseSelect_Proxy(IDvdControl *This,POINT point);
14373  void __RPC_STUB IDvdControl_MouseSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14374  HRESULT WINAPI IDvdControl_ChapterPlayAutoStop_Proxy(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
14375  void __RPC_STUB IDvdControl_ChapterPlayAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14376#endif
14377
14378#ifndef __IDvdInfo_INTERFACE_DEFINED__
14379#define __IDvdInfo_INTERFACE_DEFINED__
14380  EXTERN_C const IID IID_IDvdInfo;
14381#if defined(__cplusplus) && !defined(CINTERFACE)
14382  struct IDvdInfo : public IUnknown {
14383  public:
14384    virtual HRESULT WINAPI GetCurrentDomain(DVD_DOMAIN *pDomain) = 0;
14385    virtual HRESULT WINAPI GetCurrentLocation(DVD_PLAYBACK_LOCATION *pLocation) = 0;
14386    virtual HRESULT WINAPI GetTotalTitleTime(ULONG *pulTotalTime) = 0;
14387    virtual HRESULT WINAPI GetCurrentButton(ULONG *pulButtonsAvailable,ULONG *pulCurrentButton) = 0;
14388    virtual HRESULT WINAPI GetCurrentAngle(ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle) = 0;
14389    virtual HRESULT WINAPI GetCurrentAudio(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream) = 0;
14390    virtual HRESULT WINAPI GetCurrentSubpicture(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled) = 0;
14391    virtual HRESULT WINAPI GetCurrentUOPS(VALID_UOP_SOMTHING_OR_OTHER *pUOP) = 0;
14392    virtual HRESULT WINAPI GetAllSPRMs(SPRMARRAY *pRegisterArray) = 0;
14393    virtual HRESULT WINAPI GetAllGPRMs(GPRMARRAY *pRegisterArray) = 0;
14394    virtual HRESULT WINAPI GetAudioLanguage(ULONG ulStream,LCID *pLanguage) = 0;
14395    virtual HRESULT WINAPI GetSubpictureLanguage(ULONG ulStream,LCID *pLanguage) = 0;
14396    virtual HRESULT WINAPI GetTitleAttributes(ULONG ulTitle,DVD_ATR *pATR) = 0;
14397    virtual HRESULT WINAPI GetVMGAttributes(DVD_ATR *pATR) = 0;
14398    virtual HRESULT WINAPI GetCurrentVideoAttributes(DVD_VideoATR *pATR) = 0;
14399    virtual HRESULT WINAPI GetCurrentAudioAttributes(DVD_AudioATR *pATR) = 0;
14400    virtual HRESULT WINAPI GetCurrentSubpictureAttributes(DVD_SubpictureATR *pATR) = 0;
14401    virtual HRESULT WINAPI GetCurrentVolumeInfo(ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles) = 0;
14402    virtual HRESULT WINAPI GetDVDTextInfo(BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize) = 0;
14403    virtual HRESULT WINAPI GetPlayerParentalLevel(ULONG *pulParentalLevel,ULONG *pulCountryCode) = 0;
14404    virtual HRESULT WINAPI GetNumberOfChapters(ULONG ulTitle,ULONG *pulNumberOfChapters) = 0;
14405    virtual HRESULT WINAPI GetTitleParentalLevels(ULONG ulTitle,ULONG *pulParentalLevels) = 0;
14406    virtual HRESULT WINAPI GetRoot(LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize) = 0;
14407  };
14408#else
14409  typedef struct IDvdInfoVtbl {
14410    BEGIN_INTERFACE
14411      HRESULT (WINAPI *QueryInterface)(IDvdInfo *This,REFIID riid,void **ppvObject);
14412      ULONG (WINAPI *AddRef)(IDvdInfo *This);
14413      ULONG (WINAPI *Release)(IDvdInfo *This);
14414      HRESULT (WINAPI *GetCurrentDomain)(IDvdInfo *This,DVD_DOMAIN *pDomain);
14415      HRESULT (WINAPI *GetCurrentLocation)(IDvdInfo *This,DVD_PLAYBACK_LOCATION *pLocation);
14416      HRESULT (WINAPI *GetTotalTitleTime)(IDvdInfo *This,ULONG *pulTotalTime);
14417      HRESULT (WINAPI *GetCurrentButton)(IDvdInfo *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
14418      HRESULT (WINAPI *GetCurrentAngle)(IDvdInfo *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
14419      HRESULT (WINAPI *GetCurrentAudio)(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
14420      HRESULT (WINAPI *GetCurrentSubpicture)(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled);
14421      HRESULT (WINAPI *GetCurrentUOPS)(IDvdInfo *This,VALID_UOP_SOMTHING_OR_OTHER *pUOP);
14422      HRESULT (WINAPI *GetAllSPRMs)(IDvdInfo *This,SPRMARRAY *pRegisterArray);
14423      HRESULT (WINAPI *GetAllGPRMs)(IDvdInfo *This,GPRMARRAY *pRegisterArray);
14424      HRESULT (WINAPI *GetAudioLanguage)(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
14425      HRESULT (WINAPI *GetSubpictureLanguage)(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
14426      HRESULT (WINAPI *GetTitleAttributes)(IDvdInfo *This,ULONG ulTitle,DVD_ATR *pATR);
14427      HRESULT (WINAPI *GetVMGAttributes)(IDvdInfo *This,DVD_ATR *pATR);
14428      HRESULT (WINAPI *GetCurrentVideoAttributes)(IDvdInfo *This,DVD_VideoATR *pATR);
14429      HRESULT (WINAPI *GetCurrentAudioAttributes)(IDvdInfo *This,DVD_AudioATR *pATR);
14430      HRESULT (WINAPI *GetCurrentSubpictureAttributes)(IDvdInfo *This,DVD_SubpictureATR *pATR);
14431      HRESULT (WINAPI *GetCurrentVolumeInfo)(IDvdInfo *This,ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
14432      HRESULT (WINAPI *GetDVDTextInfo)(IDvdInfo *This,BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize);
14433      HRESULT (WINAPI *GetPlayerParentalLevel)(IDvdInfo *This,ULONG *pulParentalLevel,ULONG *pulCountryCode);
14434      HRESULT (WINAPI *GetNumberOfChapters)(IDvdInfo *This,ULONG ulTitle,ULONG *pulNumberOfChapters);
14435      HRESULT (WINAPI *GetTitleParentalLevels)(IDvdInfo *This,ULONG ulTitle,ULONG *pulParentalLevels);
14436      HRESULT (WINAPI *GetRoot)(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
14437    END_INTERFACE
14438  } IDvdInfoVtbl;
14439  struct IDvdInfo {
14440    CONST_VTBL struct IDvdInfoVtbl *lpVtbl;
14441  };
14442#ifdef COBJMACROS
14443#define IDvdInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14444#define IDvdInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
14445#define IDvdInfo_Release(This) (This)->lpVtbl->Release(This)
14446#define IDvdInfo_GetCurrentDomain(This,pDomain) (This)->lpVtbl->GetCurrentDomain(This,pDomain)
14447#define IDvdInfo_GetCurrentLocation(This,pLocation) (This)->lpVtbl->GetCurrentLocation(This,pLocation)
14448#define IDvdInfo_GetTotalTitleTime(This,pulTotalTime) (This)->lpVtbl->GetTotalTitleTime(This,pulTotalTime)
14449#define IDvdInfo_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton) (This)->lpVtbl->GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
14450#define IDvdInfo_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle) (This)->lpVtbl->GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
14451#define IDvdInfo_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream) (This)->lpVtbl->GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
14452#define IDvdInfo_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled) (This)->lpVtbl->GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled)
14453#define IDvdInfo_GetCurrentUOPS(This,pUOP) (This)->lpVtbl->GetCurrentUOPS(This,pUOP)
14454#define IDvdInfo_GetAllSPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllSPRMs(This,pRegisterArray)
14455#define IDvdInfo_GetAllGPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllGPRMs(This,pRegisterArray)
14456#define IDvdInfo_GetAudioLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetAudioLanguage(This,ulStream,pLanguage)
14457#define IDvdInfo_GetSubpictureLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetSubpictureLanguage(This,ulStream,pLanguage)
14458#define IDvdInfo_GetTitleAttributes(This,ulTitle,pATR) (This)->lpVtbl->GetTitleAttributes(This,ulTitle,pATR)
14459#define IDvdInfo_GetVMGAttributes(This,pATR) (This)->lpVtbl->GetVMGAttributes(This,pATR)
14460#define IDvdInfo_GetCurrentVideoAttributes(This,pATR) (This)->lpVtbl->GetCurrentVideoAttributes(This,pATR)
14461#define IDvdInfo_GetCurrentAudioAttributes(This,pATR) (This)->lpVtbl->GetCurrentAudioAttributes(This,pATR)
14462#define IDvdInfo_GetCurrentSubpictureAttributes(This,pATR) (This)->lpVtbl->GetCurrentSubpictureAttributes(This,pATR)
14463#define IDvdInfo_GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles) (This)->lpVtbl->GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles)
14464#define IDvdInfo_GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize) (This)->lpVtbl->GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize)
14465#define IDvdInfo_GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode) (This)->lpVtbl->GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode)
14466#define IDvdInfo_GetNumberOfChapters(This,ulTitle,pulNumberOfChapters) (This)->lpVtbl->GetNumberOfChapters(This,ulTitle,pulNumberOfChapters)
14467#define IDvdInfo_GetTitleParentalLevels(This,ulTitle,pulParentalLevels) (This)->lpVtbl->GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
14468#define IDvdInfo_GetRoot(This,pRoot,ulBufSize,pulActualSize) (This)->lpVtbl->GetRoot(This,pRoot,ulBufSize,pulActualSize)
14469#endif
14470#endif
14471  HRESULT WINAPI IDvdInfo_GetCurrentDomain_Proxy(IDvdInfo *This,DVD_DOMAIN *pDomain);
14472  void __RPC_STUB IDvdInfo_GetCurrentDomain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14473  HRESULT WINAPI IDvdInfo_GetCurrentLocation_Proxy(IDvdInfo *This,DVD_PLAYBACK_LOCATION *pLocation);
14474  void __RPC_STUB IDvdInfo_GetCurrentLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14475  HRESULT WINAPI IDvdInfo_GetTotalTitleTime_Proxy(IDvdInfo *This,ULONG *pulTotalTime);
14476  void __RPC_STUB IDvdInfo_GetTotalTitleTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14477  HRESULT WINAPI IDvdInfo_GetCurrentButton_Proxy(IDvdInfo *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
14478  void __RPC_STUB IDvdInfo_GetCurrentButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14479  HRESULT WINAPI IDvdInfo_GetCurrentAngle_Proxy(IDvdInfo *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
14480  void __RPC_STUB IDvdInfo_GetCurrentAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14481  HRESULT WINAPI IDvdInfo_GetCurrentAudio_Proxy(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
14482  void __RPC_STUB IDvdInfo_GetCurrentAudio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14483  HRESULT WINAPI IDvdInfo_GetCurrentSubpicture_Proxy(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled);
14484  void __RPC_STUB IDvdInfo_GetCurrentSubpicture_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14485  HRESULT WINAPI IDvdInfo_GetCurrentUOPS_Proxy(IDvdInfo *This,VALID_UOP_SOMTHING_OR_OTHER *pUOP);
14486  void __RPC_STUB IDvdInfo_GetCurrentUOPS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14487  HRESULT WINAPI IDvdInfo_GetAllSPRMs_Proxy(IDvdInfo *This,SPRMARRAY *pRegisterArray);
14488  void __RPC_STUB IDvdInfo_GetAllSPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14489  HRESULT WINAPI IDvdInfo_GetAllGPRMs_Proxy(IDvdInfo *This,GPRMARRAY *pRegisterArray);
14490  void __RPC_STUB IDvdInfo_GetAllGPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14491  HRESULT WINAPI IDvdInfo_GetAudioLanguage_Proxy(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
14492  void __RPC_STUB IDvdInfo_GetAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14493  HRESULT WINAPI IDvdInfo_GetSubpictureLanguage_Proxy(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
14494  void __RPC_STUB IDvdInfo_GetSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14495  HRESULT WINAPI IDvdInfo_GetTitleAttributes_Proxy(IDvdInfo *This,ULONG ulTitle,DVD_ATR *pATR);
14496  void __RPC_STUB IDvdInfo_GetTitleAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14497  HRESULT WINAPI IDvdInfo_GetVMGAttributes_Proxy(IDvdInfo *This,DVD_ATR *pATR);
14498  void __RPC_STUB IDvdInfo_GetVMGAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14499  HRESULT WINAPI IDvdInfo_GetCurrentVideoAttributes_Proxy(IDvdInfo *This,DVD_VideoATR *pATR);
14500  void __RPC_STUB IDvdInfo_GetCurrentVideoAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14501  HRESULT WINAPI IDvdInfo_GetCurrentAudioAttributes_Proxy(IDvdInfo *This,DVD_AudioATR *pATR);
14502  void __RPC_STUB IDvdInfo_GetCurrentAudioAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14503  HRESULT WINAPI IDvdInfo_GetCurrentSubpictureAttributes_Proxy(IDvdInfo *This,DVD_SubpictureATR *pATR);
14504  void __RPC_STUB IDvdInfo_GetCurrentSubpictureAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14505  HRESULT WINAPI IDvdInfo_GetCurrentVolumeInfo_Proxy(IDvdInfo *This,ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
14506  void __RPC_STUB IDvdInfo_GetCurrentVolumeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14507  HRESULT WINAPI IDvdInfo_GetDVDTextInfo_Proxy(IDvdInfo *This,BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize);
14508  void __RPC_STUB IDvdInfo_GetDVDTextInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14509  HRESULT WINAPI IDvdInfo_GetPlayerParentalLevel_Proxy(IDvdInfo *This,ULONG *pulParentalLevel,ULONG *pulCountryCode);
14510  void __RPC_STUB IDvdInfo_GetPlayerParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14511  HRESULT WINAPI IDvdInfo_GetNumberOfChapters_Proxy(IDvdInfo *This,ULONG ulTitle,ULONG *pulNumberOfChapters);
14512  void __RPC_STUB IDvdInfo_GetNumberOfChapters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14513  HRESULT WINAPI IDvdInfo_GetTitleParentalLevels_Proxy(IDvdInfo *This,ULONG ulTitle,ULONG *pulParentalLevels);
14514  void __RPC_STUB IDvdInfo_GetTitleParentalLevels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14515  HRESULT WINAPI IDvdInfo_GetRoot_Proxy(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
14516  void __RPC_STUB IDvdInfo_GetRoot_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14517#endif
14518
14519#ifndef __IDvdCmd_INTERFACE_DEFINED__
14520#define __IDvdCmd_INTERFACE_DEFINED__
14521  EXTERN_C const IID IID_IDvdCmd;
14522#if defined(__cplusplus) && !defined(CINTERFACE)
14523  struct IDvdCmd : public IUnknown {
14524  public:
14525    virtual HRESULT WINAPI WaitForStart(void) = 0;
14526    virtual HRESULT WINAPI WaitForEnd(void) = 0;
14527  };
14528#else
14529  typedef struct IDvdCmdVtbl {
14530    BEGIN_INTERFACE
14531      HRESULT (WINAPI *QueryInterface)(IDvdCmd *This,REFIID riid,void **ppvObject);
14532      ULONG (WINAPI *AddRef)(IDvdCmd *This);
14533      ULONG (WINAPI *Release)(IDvdCmd *This);
14534      HRESULT (WINAPI *WaitForStart)(IDvdCmd *This);
14535      HRESULT (WINAPI *WaitForEnd)(IDvdCmd *This);
14536    END_INTERFACE
14537  } IDvdCmdVtbl;
14538  struct IDvdCmd {
14539    CONST_VTBL struct IDvdCmdVtbl *lpVtbl;
14540  };
14541#ifdef COBJMACROS
14542#define IDvdCmd_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14543#define IDvdCmd_AddRef(This) (This)->lpVtbl->AddRef(This)
14544#define IDvdCmd_Release(This) (This)->lpVtbl->Release(This)
14545#define IDvdCmd_WaitForStart(This) (This)->lpVtbl->WaitForStart(This)
14546#define IDvdCmd_WaitForEnd(This) (This)->lpVtbl->WaitForEnd(This)
14547#endif
14548#endif
14549  HRESULT WINAPI IDvdCmd_WaitForStart_Proxy(IDvdCmd *This);
14550  void __RPC_STUB IDvdCmd_WaitForStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14551  HRESULT WINAPI IDvdCmd_WaitForEnd_Proxy(IDvdCmd *This);
14552  void __RPC_STUB IDvdCmd_WaitForEnd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14553#endif
14554
14555#ifndef __IDvdState_INTERFACE_DEFINED__
14556#define __IDvdState_INTERFACE_DEFINED__
14557  EXTERN_C const IID IID_IDvdState;
14558#if defined(__cplusplus) && !defined(CINTERFACE)
14559  struct IDvdState : public IUnknown {
14560  public:
14561    virtual HRESULT WINAPI GetDiscID(ULONGLONG *pullUniqueID) = 0;
14562    virtual HRESULT WINAPI GetParentalLevel(ULONG *pulParentalLevel) = 0;
14563  };
14564#else
14565  typedef struct IDvdStateVtbl {
14566    BEGIN_INTERFACE
14567      HRESULT (WINAPI *QueryInterface)(IDvdState *This,REFIID riid,void **ppvObject);
14568      ULONG (WINAPI *AddRef)(IDvdState *This);
14569      ULONG (WINAPI *Release)(IDvdState *This);
14570      HRESULT (WINAPI *GetDiscID)(IDvdState *This,ULONGLONG *pullUniqueID);
14571      HRESULT (WINAPI *GetParentalLevel)(IDvdState *This,ULONG *pulParentalLevel);
14572    END_INTERFACE
14573  } IDvdStateVtbl;
14574  struct IDvdState {
14575    CONST_VTBL struct IDvdStateVtbl *lpVtbl;
14576  };
14577#ifdef COBJMACROS
14578#define IDvdState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14579#define IDvdState_AddRef(This) (This)->lpVtbl->AddRef(This)
14580#define IDvdState_Release(This) (This)->lpVtbl->Release(This)
14581#define IDvdState_GetDiscID(This,pullUniqueID) (This)->lpVtbl->GetDiscID(This,pullUniqueID)
14582#define IDvdState_GetParentalLevel(This,pulParentalLevel) (This)->lpVtbl->GetParentalLevel(This,pulParentalLevel)
14583#endif
14584#endif
14585  HRESULT WINAPI IDvdState_GetDiscID_Proxy(IDvdState *This,ULONGLONG *pullUniqueID);
14586  void __RPC_STUB IDvdState_GetDiscID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14587  HRESULT WINAPI IDvdState_GetParentalLevel_Proxy(IDvdState *This,ULONG *pulParentalLevel);
14588  void __RPC_STUB IDvdState_GetParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14589#endif
14590
14591#ifndef __IDvdControl2_INTERFACE_DEFINED__
14592#define __IDvdControl2_INTERFACE_DEFINED__
14593  EXTERN_C const IID IID_IDvdControl2;
14594#if defined(__cplusplus) && !defined(CINTERFACE)
14595  struct IDvdControl2 : public IUnknown {
14596  public:
14597    virtual HRESULT WINAPI PlayTitle(ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14598    virtual HRESULT WINAPI PlayChapterInTitle(ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14599    virtual HRESULT WINAPI PlayAtTimeInTitle(ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14600    virtual HRESULT WINAPI Stop(void) = 0;
14601    virtual HRESULT WINAPI ReturnFromSubmenu(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14602    virtual HRESULT WINAPI PlayAtTime(DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14603    virtual HRESULT WINAPI PlayChapter(ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14604    virtual HRESULT WINAPI PlayPrevChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14605    virtual HRESULT WINAPI ReplayChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14606    virtual HRESULT WINAPI PlayNextChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14607    virtual HRESULT WINAPI PlayForwards(double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14608    virtual HRESULT WINAPI PlayBackwards(double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14609    virtual HRESULT WINAPI ShowMenu(DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14610    virtual HRESULT WINAPI Resume(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14611    virtual HRESULT WINAPI SelectRelativeButton(DVD_RELATIVE_BUTTON buttonDir) = 0;
14612    virtual HRESULT WINAPI ActivateButton(void) = 0;
14613    virtual HRESULT WINAPI SelectButton(ULONG ulButton) = 0;
14614    virtual HRESULT WINAPI SelectAndActivateButton(ULONG ulButton) = 0;
14615    virtual HRESULT WINAPI StillOff(void) = 0;
14616    virtual HRESULT WINAPI Pause(WINBOOL bState) = 0;
14617    virtual HRESULT WINAPI SelectAudioStream(ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14618    virtual HRESULT WINAPI SelectSubpictureStream(ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14619    virtual HRESULT WINAPI SetSubpictureState(WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14620    virtual HRESULT WINAPI SelectAngle(ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14621    virtual HRESULT WINAPI SelectParentalLevel(ULONG ulParentalLevel) = 0;
14622    virtual HRESULT WINAPI SelectParentalCountry(BYTE bCountry[2]) = 0;
14623    virtual HRESULT WINAPI SelectKaraokeAudioPresentationMode(ULONG ulMode) = 0;
14624    virtual HRESULT WINAPI SelectVideoModePreference(ULONG ulPreferredDisplayMode) = 0;
14625    virtual HRESULT WINAPI SetDVDDirectory(LPCWSTR pszwPath) = 0;
14626    virtual HRESULT WINAPI ActivateAtPosition(POINT point) = 0;
14627    virtual HRESULT WINAPI SelectAtPosition(POINT point) = 0;
14628    virtual HRESULT WINAPI PlayChaptersAutoStop(ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14629    virtual HRESULT WINAPI AcceptParentalLevelChange(WINBOOL bAccept) = 0;
14630    virtual HRESULT WINAPI SetOption(DVD_OPTION_FLAG flag,WINBOOL fState) = 0;
14631    virtual HRESULT WINAPI SetState(IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14632    virtual HRESULT WINAPI PlayPeriodInTitleAutoStop(ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14633    virtual HRESULT WINAPI SetGPRM(ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
14634    virtual HRESULT WINAPI SelectDefaultMenuLanguage(LCID Language) = 0;
14635    virtual HRESULT WINAPI SelectDefaultAudioLanguage(LCID Language,DVD_AUDIO_LANG_EXT audioExtension) = 0;
14636    virtual HRESULT WINAPI SelectDefaultSubpictureLanguage(LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension) = 0;
14637  };
14638#else
14639  typedef struct IDvdControl2Vtbl {
14640    BEGIN_INTERFACE
14641      HRESULT (WINAPI *QueryInterface)(IDvdControl2 *This,REFIID riid,void **ppvObject);
14642      ULONG (WINAPI *AddRef)(IDvdControl2 *This);
14643      ULONG (WINAPI *Release)(IDvdControl2 *This);
14644      HRESULT (WINAPI *PlayTitle)(IDvdControl2 *This,ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd);
14645      HRESULT (WINAPI *PlayChapterInTitle)(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
14646      HRESULT (WINAPI *PlayAtTimeInTitle)(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd);
14647      HRESULT (WINAPI *Stop)(IDvdControl2 *This);
14648      HRESULT (WINAPI *ReturnFromSubmenu)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14649      HRESULT (WINAPI *PlayAtTime)(IDvdControl2 *This,DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd);
14650      HRESULT (WINAPI *PlayChapter)(IDvdControl2 *This,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
14651      HRESULT (WINAPI *PlayPrevChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14652      HRESULT (WINAPI *ReplayChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14653      HRESULT (WINAPI *PlayNextChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14654      HRESULT (WINAPI *PlayForwards)(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
14655      HRESULT (WINAPI *PlayBackwards)(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
14656      HRESULT (WINAPI *ShowMenu)(IDvdControl2 *This,DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd);
14657      HRESULT (WINAPI *Resume)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14658      HRESULT (WINAPI *SelectRelativeButton)(IDvdControl2 *This,DVD_RELATIVE_BUTTON buttonDir);
14659      HRESULT (WINAPI *ActivateButton)(IDvdControl2 *This);
14660      HRESULT (WINAPI *SelectButton)(IDvdControl2 *This,ULONG ulButton);
14661      HRESULT (WINAPI *SelectAndActivateButton)(IDvdControl2 *This,ULONG ulButton);
14662      HRESULT (WINAPI *StillOff)(IDvdControl2 *This);
14663      HRESULT (WINAPI *Pause)(IDvdControl2 *This,WINBOOL bState);
14664      HRESULT (WINAPI *SelectAudioStream)(IDvdControl2 *This,ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd);
14665      HRESULT (WINAPI *SelectSubpictureStream)(IDvdControl2 *This,ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd);
14666      HRESULT (WINAPI *SetSubpictureState)(IDvdControl2 *This,WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd);
14667      HRESULT (WINAPI *SelectAngle)(IDvdControl2 *This,ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd);
14668      HRESULT (WINAPI *SelectParentalLevel)(IDvdControl2 *This,ULONG ulParentalLevel);
14669      HRESULT (WINAPI *SelectParentalCountry)(IDvdControl2 *This,BYTE bCountry[2]);
14670      HRESULT (WINAPI *SelectKaraokeAudioPresentationMode)(IDvdControl2 *This,ULONG ulMode);
14671      HRESULT (WINAPI *SelectVideoModePreference)(IDvdControl2 *This,ULONG ulPreferredDisplayMode);
14672      HRESULT (WINAPI *SetDVDDirectory)(IDvdControl2 *This,LPCWSTR pszwPath);
14673      HRESULT (WINAPI *ActivateAtPosition)(IDvdControl2 *This,POINT point);
14674      HRESULT (WINAPI *SelectAtPosition)(IDvdControl2 *This,POINT point);
14675      HRESULT (WINAPI *PlayChaptersAutoStop)(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd);
14676      HRESULT (WINAPI *AcceptParentalLevelChange)(IDvdControl2 *This,WINBOOL bAccept);
14677      HRESULT (WINAPI *SetOption)(IDvdControl2 *This,DVD_OPTION_FLAG flag,WINBOOL fState);
14678      HRESULT (WINAPI *SetState)(IDvdControl2 *This,IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd);
14679      HRESULT (WINAPI *PlayPeriodInTitleAutoStop)(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd);
14680      HRESULT (WINAPI *SetGPRM)(IDvdControl2 *This,ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd);
14681      HRESULT (WINAPI *SelectDefaultMenuLanguage)(IDvdControl2 *This,LCID Language);
14682      HRESULT (WINAPI *SelectDefaultAudioLanguage)(IDvdControl2 *This,LCID Language,DVD_AUDIO_LANG_EXT audioExtension);
14683      HRESULT (WINAPI *SelectDefaultSubpictureLanguage)(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
14684    END_INTERFACE
14685  } IDvdControl2Vtbl;
14686  struct IDvdControl2 {
14687    CONST_VTBL struct IDvdControl2Vtbl *lpVtbl;
14688  };
14689#ifdef COBJMACROS
14690#define IDvdControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14691#define IDvdControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
14692#define IDvdControl2_Release(This) (This)->lpVtbl->Release(This)
14693#define IDvdControl2_PlayTitle(This,ulTitle,dwFlags,ppCmd) (This)->lpVtbl->PlayTitle(This,ulTitle,dwFlags,ppCmd)
14694#define IDvdControl2_PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd) (This)->lpVtbl->PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd)
14695#define IDvdControl2_PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd) (This)->lpVtbl->PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd)
14696#define IDvdControl2_Stop(This) (This)->lpVtbl->Stop(This)
14697#define IDvdControl2_ReturnFromSubmenu(This,dwFlags,ppCmd) (This)->lpVtbl->ReturnFromSubmenu(This,dwFlags,ppCmd)
14698#define IDvdControl2_PlayAtTime(This,pTime,dwFlags,ppCmd) (This)->lpVtbl->PlayAtTime(This,pTime,dwFlags,ppCmd)
14699#define IDvdControl2_PlayChapter(This,ulChapter,dwFlags,ppCmd) (This)->lpVtbl->PlayChapter(This,ulChapter,dwFlags,ppCmd)
14700#define IDvdControl2_PlayPrevChapter(This,dwFlags,ppCmd) (This)->lpVtbl->PlayPrevChapter(This,dwFlags,ppCmd)
14701#define IDvdControl2_ReplayChapter(This,dwFlags,ppCmd) (This)->lpVtbl->ReplayChapter(This,dwFlags,ppCmd)
14702#define IDvdControl2_PlayNextChapter(This,dwFlags,ppCmd) (This)->lpVtbl->PlayNextChapter(This,dwFlags,ppCmd)
14703#define IDvdControl2_PlayForwards(This,dSpeed,dwFlags,ppCmd) (This)->lpVtbl->PlayForwards(This,dSpeed,dwFlags,ppCmd)
14704#define IDvdControl2_PlayBackwards(This,dSpeed,dwFlags,ppCmd) (This)->lpVtbl->PlayBackwards(This,dSpeed,dwFlags,ppCmd)
14705#define IDvdControl2_ShowMenu(This,MenuID,dwFlags,ppCmd) (This)->lpVtbl->ShowMenu(This,MenuID,dwFlags,ppCmd)
14706#define IDvdControl2_Resume(This,dwFlags,ppCmd) (This)->lpVtbl->Resume(This,dwFlags,ppCmd)
14707#define IDvdControl2_SelectRelativeButton(This,buttonDir) (This)->lpVtbl->SelectRelativeButton(This,buttonDir)
14708#define IDvdControl2_ActivateButton(This) (This)->lpVtbl->ActivateButton(This)
14709#define IDvdControl2_SelectButton(This,ulButton) (This)->lpVtbl->SelectButton(This,ulButton)
14710#define IDvdControl2_SelectAndActivateButton(This,ulButton) (This)->lpVtbl->SelectAndActivateButton(This,ulButton)
14711#define IDvdControl2_StillOff(This) (This)->lpVtbl->StillOff(This)
14712#define IDvdControl2_Pause(This,bState) (This)->lpVtbl->Pause(This,bState)
14713#define IDvdControl2_SelectAudioStream(This,ulAudio,dwFlags,ppCmd) (This)->lpVtbl->SelectAudioStream(This,ulAudio,dwFlags,ppCmd)
14714#define IDvdControl2_SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd) (This)->lpVtbl->SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd)
14715#define IDvdControl2_SetSubpictureState(This,bState,dwFlags,ppCmd) (This)->lpVtbl->SetSubpictureState(This,bState,dwFlags,ppCmd)
14716#define IDvdControl2_SelectAngle(This,ulAngle,dwFlags,ppCmd) (This)->lpVtbl->SelectAngle(This,ulAngle,dwFlags,ppCmd)
14717#define IDvdControl2_SelectParentalLevel(This,ulParentalLevel) (This)->lpVtbl->SelectParentalLevel(This,ulParentalLevel)
14718#define IDvdControl2_SelectParentalCountry(This,bCountry) (This)->lpVtbl->SelectParentalCountry(This,bCountry)
14719#define IDvdControl2_SelectKaraokeAudioPresentationMode(This,ulMode) (This)->lpVtbl->SelectKaraokeAudioPresentationMode(This,ulMode)
14720#define IDvdControl2_SelectVideoModePreference(This,ulPreferredDisplayMode) (This)->lpVtbl->SelectVideoModePreference(This,ulPreferredDisplayMode)
14721#define IDvdControl2_SetDVDDirectory(This,pszwPath) (This)->lpVtbl->SetDVDDirectory(This,pszwPath)
14722#define IDvdControl2_ActivateAtPosition(This,point) (This)->lpVtbl->ActivateAtPosition(This,point)
14723#define IDvdControl2_SelectAtPosition(This,point) (This)->lpVtbl->SelectAtPosition(This,point)
14724#define IDvdControl2_PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd) (This)->lpVtbl->PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd)
14725#define IDvdControl2_AcceptParentalLevelChange(This,bAccept) (This)->lpVtbl->AcceptParentalLevelChange(This,bAccept)
14726#define IDvdControl2_SetOption(This,flag,fState) (This)->lpVtbl->SetOption(This,flag,fState)
14727#define IDvdControl2_SetState(This,pState,dwFlags,ppCmd) (This)->lpVtbl->SetState(This,pState,dwFlags,ppCmd)
14728#define IDvdControl2_PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd) (This)->lpVtbl->PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd)
14729#define IDvdControl2_SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd) (This)->lpVtbl->SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd)
14730#define IDvdControl2_SelectDefaultMenuLanguage(This,Language) (This)->lpVtbl->SelectDefaultMenuLanguage(This,Language)
14731#define IDvdControl2_SelectDefaultAudioLanguage(This,Language,audioExtension) (This)->lpVtbl->SelectDefaultAudioLanguage(This,Language,audioExtension)
14732#define IDvdControl2_SelectDefaultSubpictureLanguage(This,Language,subpictureExtension) (This)->lpVtbl->SelectDefaultSubpictureLanguage(This,Language,subpictureExtension)
14733#endif
14734#endif
14735  HRESULT WINAPI IDvdControl2_PlayTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd);
14736  void __RPC_STUB IDvdControl2_PlayTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14737  HRESULT WINAPI IDvdControl2_PlayChapterInTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
14738  void __RPC_STUB IDvdControl2_PlayChapterInTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14739  HRESULT WINAPI IDvdControl2_PlayAtTimeInTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd);
14740  void __RPC_STUB IDvdControl2_PlayAtTimeInTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14741  HRESULT WINAPI IDvdControl2_Stop_Proxy(IDvdControl2 *This);
14742  void __RPC_STUB IDvdControl2_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14743  HRESULT WINAPI IDvdControl2_ReturnFromSubmenu_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14744  void __RPC_STUB IDvdControl2_ReturnFromSubmenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14745  HRESULT WINAPI IDvdControl2_PlayAtTime_Proxy(IDvdControl2 *This,DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd);
14746  void __RPC_STUB IDvdControl2_PlayAtTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14747  HRESULT WINAPI IDvdControl2_PlayChapter_Proxy(IDvdControl2 *This,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
14748  void __RPC_STUB IDvdControl2_PlayChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14749  HRESULT WINAPI IDvdControl2_PlayPrevChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14750  void __RPC_STUB IDvdControl2_PlayPrevChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14751  HRESULT WINAPI IDvdControl2_ReplayChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14752  void __RPC_STUB IDvdControl2_ReplayChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14753  HRESULT WINAPI IDvdControl2_PlayNextChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14754  void __RPC_STUB IDvdControl2_PlayNextChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14755  HRESULT WINAPI IDvdControl2_PlayForwards_Proxy(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
14756  void __RPC_STUB IDvdControl2_PlayForwards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14757  HRESULT WINAPI IDvdControl2_PlayBackwards_Proxy(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
14758  void __RPC_STUB IDvdControl2_PlayBackwards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14759  HRESULT WINAPI IDvdControl2_ShowMenu_Proxy(IDvdControl2 *This,DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd);
14760  void __RPC_STUB IDvdControl2_ShowMenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14761  HRESULT WINAPI IDvdControl2_Resume_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
14762  void __RPC_STUB IDvdControl2_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14763  HRESULT WINAPI IDvdControl2_SelectRelativeButton_Proxy(IDvdControl2 *This,DVD_RELATIVE_BUTTON buttonDir);
14764  void __RPC_STUB IDvdControl2_SelectRelativeButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14765  HRESULT WINAPI IDvdControl2_ActivateButton_Proxy(IDvdControl2 *This);
14766  void __RPC_STUB IDvdControl2_ActivateButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14767  HRESULT WINAPI IDvdControl2_SelectButton_Proxy(IDvdControl2 *This,ULONG ulButton);
14768  void __RPC_STUB IDvdControl2_SelectButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14769  HRESULT WINAPI IDvdControl2_SelectAndActivateButton_Proxy(IDvdControl2 *This,ULONG ulButton);
14770  void __RPC_STUB IDvdControl2_SelectAndActivateButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14771  HRESULT WINAPI IDvdControl2_StillOff_Proxy(IDvdControl2 *This);
14772  void __RPC_STUB IDvdControl2_StillOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14773  HRESULT WINAPI IDvdControl2_Pause_Proxy(IDvdControl2 *This,WINBOOL bState);
14774  void __RPC_STUB IDvdControl2_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14775  HRESULT WINAPI IDvdControl2_SelectAudioStream_Proxy(IDvdControl2 *This,ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd);
14776  void __RPC_STUB IDvdControl2_SelectAudioStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14777  HRESULT WINAPI IDvdControl2_SelectSubpictureStream_Proxy(IDvdControl2 *This,ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd);
14778  void __RPC_STUB IDvdControl2_SelectSubpictureStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14779  HRESULT WINAPI IDvdControl2_SetSubpictureState_Proxy(IDvdControl2 *This,WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd);
14780  void __RPC_STUB IDvdControl2_SetSubpictureState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14781  HRESULT WINAPI IDvdControl2_SelectAngle_Proxy(IDvdControl2 *This,ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd);
14782  void __RPC_STUB IDvdControl2_SelectAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14783  HRESULT WINAPI IDvdControl2_SelectParentalLevel_Proxy(IDvdControl2 *This,ULONG ulParentalLevel);
14784  void __RPC_STUB IDvdControl2_SelectParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14785  HRESULT WINAPI IDvdControl2_SelectParentalCountry_Proxy(IDvdControl2 *This,BYTE bCountry[2]);
14786  void __RPC_STUB IDvdControl2_SelectParentalCountry_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14787  HRESULT WINAPI IDvdControl2_SelectKaraokeAudioPresentationMode_Proxy(IDvdControl2 *This,ULONG ulMode);
14788  void __RPC_STUB IDvdControl2_SelectKaraokeAudioPresentationMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14789  HRESULT WINAPI IDvdControl2_SelectVideoModePreference_Proxy(IDvdControl2 *This,ULONG ulPreferredDisplayMode);
14790  void __RPC_STUB IDvdControl2_SelectVideoModePreference_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14791  HRESULT WINAPI IDvdControl2_SetDVDDirectory_Proxy(IDvdControl2 *This,LPCWSTR pszwPath);
14792  void __RPC_STUB IDvdControl2_SetDVDDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14793  HRESULT WINAPI IDvdControl2_ActivateAtPosition_Proxy(IDvdControl2 *This,POINT point);
14794  void __RPC_STUB IDvdControl2_ActivateAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14795  HRESULT WINAPI IDvdControl2_SelectAtPosition_Proxy(IDvdControl2 *This,POINT point);
14796  void __RPC_STUB IDvdControl2_SelectAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14797  HRESULT WINAPI IDvdControl2_PlayChaptersAutoStop_Proxy(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd);
14798  void __RPC_STUB IDvdControl2_PlayChaptersAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14799  HRESULT WINAPI IDvdControl2_AcceptParentalLevelChange_Proxy(IDvdControl2 *This,WINBOOL bAccept);
14800  void __RPC_STUB IDvdControl2_AcceptParentalLevelChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14801  HRESULT WINAPI IDvdControl2_SetOption_Proxy(IDvdControl2 *This,DVD_OPTION_FLAG flag,WINBOOL fState);
14802  void __RPC_STUB IDvdControl2_SetOption_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14803  HRESULT WINAPI IDvdControl2_SetState_Proxy(IDvdControl2 *This,IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd);
14804  void __RPC_STUB IDvdControl2_SetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14805  HRESULT WINAPI IDvdControl2_PlayPeriodInTitleAutoStop_Proxy(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd);
14806  void __RPC_STUB IDvdControl2_PlayPeriodInTitleAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14807  HRESULT WINAPI IDvdControl2_SetGPRM_Proxy(IDvdControl2 *This,ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd);
14808  void __RPC_STUB IDvdControl2_SetGPRM_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14809  HRESULT WINAPI IDvdControl2_SelectDefaultMenuLanguage_Proxy(IDvdControl2 *This,LCID Language);
14810  void __RPC_STUB IDvdControl2_SelectDefaultMenuLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14811  HRESULT WINAPI IDvdControl2_SelectDefaultAudioLanguage_Proxy(IDvdControl2 *This,LCID Language,DVD_AUDIO_LANG_EXT audioExtension);
14812  void __RPC_STUB IDvdControl2_SelectDefaultAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14813  HRESULT WINAPI IDvdControl2_SelectDefaultSubpictureLanguage_Proxy(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
14814  void __RPC_STUB IDvdControl2_SelectDefaultSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
14815#endif
14816
14817  enum DVD_TextStringType {
14818    DVD_Struct_Volume = 0x1,DVD_Struct_Title = 0x2,DVD_Struct_ParentalID = 0x3,DVD_Struct_PartOfTitle = 0x4,DVD_Struct_Cell = 0x5,
14819    DVD_Stream_Audio = 0x10,DVD_Stream_Subpicture = 0x11,DVD_Stream_Angle = 0x12,DVD_Channel_Audio = 0x20,DVD_General_Name = 0x30,
14820    DVD_General_Comments = 0x31,DVD_Title_Series = 0x38,DVD_Title_Movie = 0x39,DVD_Title_Video = 0x3a,DVD_Title_Album = 0x3b,DVD_Title_Song = 0x3c,
14821    DVD_Title_Other = 0x3f,DVD_Title_Sub_Series = 0x40,DVD_Title_Sub_Movie = 0x41,DVD_Title_Sub_Video = 0x42,DVD_Title_Sub_Album = 0x43,
14822    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,
14823    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
14824  };
14825
14826  enum DVD_TextCharSet {
14827    DVD_CharSet_Unicode = 0,DVD_CharSet_ISO646 = 1,DVD_CharSet_JIS_Roman_Kanji = 2,DVD_CharSet_ISO8859_1 = 3,
14828    DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
14829  };
14830#define DVD_TITLE_MENU 0x000
14831#define DVD_STREAM_DATA_CURRENT 0x800
14832#define DVD_STREAM_DATA_VMGM 0x400
14833#define DVD_STREAM_DATA_VTSM 0x401
14834#define DVD_DEFAULT_AUDIO_STREAM 0x0f
14835
14836  typedef struct tagDVD_DECODER_CAPS {
14837    DWORD dwSize;
14838    DWORD dwAudioCaps;
14839    double dFwdMaxRateVideo;
14840    double dFwdMaxRateAudio;
14841    double dFwdMaxRateSP;
14842    double dBwdMaxRateVideo;
14843    double dBwdMaxRateAudio;
14844    double dBwdMaxRateSP;
14845    DWORD dwRes1;
14846    DWORD dwRes2;
14847    DWORD dwRes3;
14848    DWORD dwRes4;
14849  } DVD_DECODER_CAPS;
14850
14851#define DVD_AUDIO_CAPS_AC3 0x00000001
14852#define DVD_AUDIO_CAPS_MPEG2 0x00000002
14853#define DVD_AUDIO_CAPS_LPCM 0x00000004
14854#define DVD_AUDIO_CAPS_DTS 0x00000008
14855#define DVD_AUDIO_CAPS_SDDS 0x00000010
14856
14857  extern RPC_IF_HANDLE __MIDL_itf_strmif_0387_v0_0_c_ifspec;
14858  extern RPC_IF_HANDLE __MIDL_itf_strmif_0387_v0_0_s_ifspec;
14859#ifndef __IDvdInfo2_INTERFACE_DEFINED__
14860#define __IDvdInfo2_INTERFACE_DEFINED__
14861  EXTERN_C const IID IID_IDvdInfo2;
14862#if defined(__cplusplus) && !defined(CINTERFACE)
14863  struct IDvdInfo2 : public IUnknown {
14864  public:
14865    virtual HRESULT WINAPI GetCurrentDomain(DVD_DOMAIN *pDomain) = 0;
14866    virtual HRESULT WINAPI GetCurrentLocation(DVD_PLAYBACK_LOCATION2 *pLocation) = 0;
14867    virtual HRESULT WINAPI GetTotalTitleTime(DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags) = 0;
14868    virtual HRESULT WINAPI GetCurrentButton(ULONG *pulButtonsAvailable,ULONG *pulCurrentButton) = 0;
14869    virtual HRESULT WINAPI GetCurrentAngle(ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle) = 0;
14870    virtual HRESULT WINAPI GetCurrentAudio(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream) = 0;
14871    virtual HRESULT WINAPI GetCurrentSubpicture(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled) = 0;
14872    virtual HRESULT WINAPI GetCurrentUOPS(ULONG *pulUOPs) = 0;
14873    virtual HRESULT WINAPI GetAllSPRMs(SPRMARRAY *pRegisterArray) = 0;
14874    virtual HRESULT WINAPI GetAllGPRMs(GPRMARRAY *pRegisterArray) = 0;
14875    virtual HRESULT WINAPI GetAudioLanguage(ULONG ulStream,LCID *pLanguage) = 0;
14876    virtual HRESULT WINAPI GetSubpictureLanguage(ULONG ulStream,LCID *pLanguage) = 0;
14877    virtual HRESULT WINAPI GetTitleAttributes(ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle) = 0;
14878    virtual HRESULT WINAPI GetVMGAttributes(DVD_MenuAttributes *pATR) = 0;
14879    virtual HRESULT WINAPI GetCurrentVideoAttributes(DVD_VideoAttributes *pATR) = 0;
14880    virtual HRESULT WINAPI GetAudioAttributes(ULONG ulStream,DVD_AudioAttributes *pATR) = 0;
14881    virtual HRESULT WINAPI GetKaraokeAttributes(ULONG ulStream,DVD_KaraokeAttributes *pAttributes) = 0;
14882    virtual HRESULT WINAPI GetSubpictureAttributes(ULONG ulStream,DVD_SubpictureAttributes *pATR) = 0;
14883    virtual HRESULT WINAPI GetDVDVolumeInfo(ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles) = 0;
14884    virtual HRESULT WINAPI GetDVDTextNumberOfLanguages(ULONG *pulNumOfLangs) = 0;
14885    virtual HRESULT WINAPI GetDVDTextLanguageInfo(ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet) = 0;
14886    virtual HRESULT WINAPI GetDVDTextStringAsNative(ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType) = 0;
14887    virtual HRESULT WINAPI GetDVDTextStringAsUnicode(ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType) = 0;
14888    virtual HRESULT WINAPI GetPlayerParentalLevel(ULONG *pulParentalLevel,BYTE pbCountryCode[2]) = 0;
14889    virtual HRESULT WINAPI GetNumberOfChapters(ULONG ulTitle,ULONG *pulNumOfChapters) = 0;
14890    virtual HRESULT WINAPI GetTitleParentalLevels(ULONG ulTitle,ULONG *pulParentalLevels) = 0;
14891    virtual HRESULT WINAPI GetDVDDirectory(LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize) = 0;
14892    virtual HRESULT WINAPI IsAudioStreamEnabled(ULONG ulStreamNum,WINBOOL *pbEnabled) = 0;
14893    virtual HRESULT WINAPI GetDiscID(LPCWSTR pszwPath,ULONGLONG *pullDiscID) = 0;
14894    virtual HRESULT WINAPI GetState(IDvdState **pStateData) = 0;
14895    virtual HRESULT WINAPI GetMenuLanguages(LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages) = 0;
14896    virtual HRESULT WINAPI GetButtonAtPosition(POINT point,ULONG *pulButtonIndex) = 0;
14897    virtual HRESULT WINAPI GetCmdFromEvent(LONG_PTR lParam1,IDvdCmd **pCmdObj) = 0;
14898    virtual HRESULT WINAPI GetDefaultMenuLanguage(LCID *pLanguage) = 0;
14899    virtual HRESULT WINAPI GetDefaultAudioLanguage(LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension) = 0;
14900    virtual HRESULT WINAPI GetDefaultSubpictureLanguage(LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension) = 0;
14901    virtual HRESULT WINAPI GetDecoderCaps(DVD_DECODER_CAPS *pCaps) = 0;
14902    virtual HRESULT WINAPI GetButtonRect(ULONG ulButton,RECT *pRect) = 0;
14903    virtual HRESULT WINAPI IsSubpictureStreamEnabled(ULONG ulStreamNum,WINBOOL *pbEnabled) = 0;
14904  };
14905#else
14906  typedef struct IDvdInfo2Vtbl {
14907    BEGIN_INTERFACE
14908      HRESULT (WINAPI *QueryInterface)(IDvdInfo2 *This,REFIID riid,void **ppvObject);
14909      ULONG (WINAPI *AddRef)(IDvdInfo2 *This);
14910      ULONG (WINAPI *Release)(IDvdInfo2 *This);
14911      HRESULT (WINAPI *GetCurrentDomain)(IDvdInfo2 *This,DVD_DOMAIN *pDomain);
14912      HRESULT (WINAPI *GetCurrentLocation)(IDvdInfo2 *This,DVD_PLAYBACK_LOCATION2 *pLocation);
14913      HRESULT (WINAPI *GetTotalTitleTime)(IDvdInfo2 *This,DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags);
14914      HRESULT (WINAPI *GetCurrentButton)(IDvdInfo2 *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
14915      HRESULT (WINAPI *GetCurrentAngle)(IDvdInfo2 *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
14916      HRESULT (WINAPI *GetCurrentAudio)(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
14917      HRESULT (WINAPI *GetCurrentSubpicture)(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled);
14918      HRESULT (WINAPI *GetCurrentUOPS)(IDvdInfo2 *This,ULONG *pulUOPs);
14919      HRESULT (WINAPI *GetAllSPRMs)(IDvdInfo2 *This,SPRMARRAY *pRegisterArray);
14920      HRESULT (WINAPI *GetAllGPRMs)(IDvdInfo2 *This,GPRMARRAY *pRegisterArray);
14921      HRESULT (WINAPI *GetAudioLanguage)(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
14922      HRESULT (WINAPI *GetSubpictureLanguage)(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
14923      HRESULT (WINAPI *GetTitleAttributes)(IDvdInfo2 *This,ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle);
14924      HRESULT (WINAPI *GetVMGAttributes)(IDvdInfo2 *This,DVD_MenuAttributes *pATR);
14925      HRESULT (WINAPI *GetCurrentVideoAttributes)(IDvdInfo2 *This,DVD_VideoAttributes *pATR);
14926      HRESULT (WINAPI *GetAudioAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_AudioAttributes *pATR);
14927      HRESULT (WINAPI *GetKaraokeAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_KaraokeAttributes *pAttributes);
14928      HRESULT (WINAPI *GetSubpictureAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_SubpictureAttributes *pATR);
14929      HRESULT (WINAPI *GetDVDVolumeInfo)(IDvdInfo2 *This,ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
14930      HRESULT (WINAPI *GetDVDTextNumberOfLanguages)(IDvdInfo2 *This,ULONG *pulNumOfLangs);
14931      HRESULT (WINAPI *GetDVDTextLanguageInfo)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet);
14932      HRESULT (WINAPI *GetDVDTextStringAsNative)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
14933      HRESULT (WINAPI *GetDVDTextStringAsUnicode)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
14934      HRESULT (WINAPI *GetPlayerParentalLevel)(IDvdInfo2 *This,ULONG *pulParentalLevel,BYTE pbCountryCode[2]);
14935      HRESULT (WINAPI *GetNumberOfChapters)(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulNumOfChapters);
14936      HRESULT (WINAPI *GetTitleParentalLevels)(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulParentalLevels);
14937      HRESULT (WINAPI *GetDVDDirectory)(IDvdInfo2 *This,LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize);
14938      HRESULT (WINAPI *IsAudioStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
14939      HRESULT (WINAPI *GetDiscID)(IDvdInfo2 *This,LPCWSTR pszwPath,ULONGLONG *pullDiscID);
14940      HRESULT (WINAPI *GetState)(IDvdInfo2 *This,IDvdState **pStateData);
14941      HRESULT (WINAPI *GetMenuLanguages)(IDvdInfo2 *This,LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages);
14942      HRESULT (WINAPI *GetButtonAtPosition)(IDvdInfo2 *This,POINT point,ULONG *pulButtonIndex);
14943      HRESULT (WINAPI *GetCmdFromEvent)(IDvdInfo2 *This,LONG_PTR lParam1,IDvdCmd **pCmdObj);
14944      HRESULT (WINAPI *GetDefaultMenuLanguage)(IDvdInfo2 *This,LCID *pLanguage);
14945      HRESULT (WINAPI *GetDefaultAudioLanguage)(IDvdInfo2 *This,LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension);
14946      HRESULT (WINAPI *GetDefaultSubpictureLanguage)(IDvdInfo2 *This,LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
14947      HRESULT (WINAPI *GetDecoderCaps)(IDvdInfo2 *This,DVD_DECODER_CAPS *pCaps);
14948      HRESULT (WINAPI *GetButtonRect)(IDvdInfo2 *This,ULONG ulButton,RECT *pRect);
14949      HRESULT (WINAPI *IsSubpictureStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
14950    END_INTERFACE
14951  } IDvdInfo2Vtbl;
14952  struct IDvdInfo2 {
14953    CONST_VTBL struct IDvdInfo2Vtbl *lpVtbl;
14954  };
14955#ifdef COBJMACROS
14956#define IDvdInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14957#define IDvdInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
14958#define IDvdInfo2_Release(This) (This)->lpVtbl->Release(This)
14959#define IDvdInfo2_GetCurrentDomain(This,pDomain) (This)->lpVtbl->GetCurrentDomain(This,pDomain)
14960#define IDvdInfo2_GetCurrentLocation(This,pLocation) (This)->lpVtbl->GetCurrentLocation(This,pLocation)
14961#define IDvdInfo2_GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags) (This)->lpVtbl->GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags)
14962#define IDvdInfo2_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton) (This)->lpVtbl->GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
14963#define IDvdInfo2_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle) (This)->lpVtbl->GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
14964#define IDvdInfo2_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream) (This)->lpVtbl->GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
14965#define IDvdInfo2_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled) (This)->lpVtbl->GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled)
14966#define IDvdInfo2_GetCurrentUOPS(This,pulUOPs) (This)->lpVtbl->GetCurrentUOPS(This,pulUOPs)
14967#define IDvdInfo2_GetAllSPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllSPRMs(This,pRegisterArray)
14968#define IDvdInfo2_GetAllGPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllGPRMs(This,pRegisterArray)
14969#define IDvdInfo2_GetAudioLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetAudioLanguage(This,ulStream,pLanguage)
14970#define IDvdInfo2_GetSubpictureLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetSubpictureLanguage(This,ulStream,pLanguage)
14971#define IDvdInfo2_GetTitleAttributes(This,ulTitle,pMenu,pTitle) (This)->lpVtbl->GetTitleAttributes(This,ulTitle,pMenu,pTitle)
14972#define IDvdInfo2_GetVMGAttributes(This,pATR) (This)->lpVtbl->GetVMGAttributes(This,pATR)
14973#define IDvdInfo2_GetCurrentVideoAttributes(This,pATR) (This)->lpVtbl->GetCurrentVideoAttributes(This,pATR)
14974#define IDvdInfo2_GetAudioAttributes(This,ulStream,pATR) (This)->lpVtbl->GetAudioAttributes(This,ulStream,pATR)
14975#define IDvdInfo2_GetKaraokeAttributes(This,ulStream,pAttributes) (This)->lpVtbl->GetKaraokeAttributes(This,ulStream,pAttributes)
14976#define IDvdInfo2_GetSubpictureAttributes(This,ulStream,pATR) (This)->lpVtbl->GetSubpictureAttributes(This,ulStream,pATR)
14977#define IDvdInfo2_GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles) (This)->lpVtbl->GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles)
14978#define IDvdInfo2_GetDVDTextNumberOfLanguages(This,pulNumOfLangs) (This)->lpVtbl->GetDVDTextNumberOfLanguages(This,pulNumOfLangs)
14979#define IDvdInfo2_GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet) (This)->lpVtbl->GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet)
14980#define IDvdInfo2_GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType) (This)->lpVtbl->GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType)
14981#define IDvdInfo2_GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType) (This)->lpVtbl->GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType)
14982#define IDvdInfo2_GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode) (This)->lpVtbl->GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode)
14983#define IDvdInfo2_GetNumberOfChapters(This,ulTitle,pulNumOfChapters) (This)->lpVtbl->GetNumberOfChapters(This,ulTitle,pulNumOfChapters)
14984#define IDvdInfo2_GetTitleParentalLevels(This,ulTitle,pulParentalLevels) (This)->lpVtbl->GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
14985#define IDvdInfo2_GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize) (This)->lpVtbl->GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize)
14986#define IDvdInfo2_IsAudioStreamEnabled(This,ulStreamNum,pbEnabled) (This)->lpVtbl->IsAudioStreamEnabled(This,ulStreamNum,pbEnabled)
14987#define IDvdInfo2_GetDiscID(This,pszwPath,pullDiscID) (This)->lpVtbl->GetDiscID(This,pszwPath,pullDiscID)
14988#define IDvdInfo2_GetState(This,pStateData) (This)->lpVtbl->GetState(This,pStateData)
14989#define IDvdInfo2_GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages) (This)->lpVtbl->GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages)
14990#define IDvdInfo2_GetButtonAtPosition(This,point,pulButtonIndex) (This)->lpVtbl->GetButtonAtPosition(This,point,pulButtonIndex)
14991#define IDvdInfo2_GetCmdFromEvent(This,lParam1,pCmdObj) (This)->lpVtbl->GetCmdFromEvent(This,lParam1,pCmdObj)
14992#define IDvdInfo2_GetDefaultMenuLanguage(This,pLanguage) (This)->lpVtbl->GetDefaultMenuLanguage(This,pLanguage)
14993#define IDvdInfo2_GetDefaultAudioLanguage(This,pLanguage,pAudioExtension) (This)->lpVtbl->GetDefaultAudioLanguage(This,pLanguage,pAudioExtension)
14994#define IDvdInfo2_GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension) (This)->lpVtbl->GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension)
14995#define IDvdInfo2_GetDecoderCaps(This,pCaps) (This)->lpVtbl->GetDecoderCaps(This,pCaps)
14996#define IDvdInfo2_GetButtonRect(This,ulButton,pRect) (This)->lpVtbl->GetButtonRect(This,ulButton,pRect)
14997#define IDvdInfo2_IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled) (This)->lpVtbl->IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled)
14998#endif
14999#endif
15000  HRESULT WINAPI IDvdInfo2_GetCurrentDomain_Proxy(IDvdInfo2 *This,DVD_DOMAIN *pDomain);
15001  void __RPC_STUB IDvdInfo2_GetCurrentDomain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15002  HRESULT WINAPI IDvdInfo2_GetCurrentLocation_Proxy(IDvdInfo2 *This,DVD_PLAYBACK_LOCATION2 *pLocation);
15003  void __RPC_STUB IDvdInfo2_GetCurrentLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15004  HRESULT WINAPI IDvdInfo2_GetTotalTitleTime_Proxy(IDvdInfo2 *This,DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags);
15005  void __RPC_STUB IDvdInfo2_GetTotalTitleTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15006  HRESULT WINAPI IDvdInfo2_GetCurrentButton_Proxy(IDvdInfo2 *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
15007  void __RPC_STUB IDvdInfo2_GetCurrentButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15008  HRESULT WINAPI IDvdInfo2_GetCurrentAngle_Proxy(IDvdInfo2 *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
15009  void __RPC_STUB IDvdInfo2_GetCurrentAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15010  HRESULT WINAPI IDvdInfo2_GetCurrentAudio_Proxy(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
15011  void __RPC_STUB IDvdInfo2_GetCurrentAudio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15012  HRESULT WINAPI IDvdInfo2_GetCurrentSubpicture_Proxy(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled);
15013  void __RPC_STUB IDvdInfo2_GetCurrentSubpicture_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15014  HRESULT WINAPI IDvdInfo2_GetCurrentUOPS_Proxy(IDvdInfo2 *This,ULONG *pulUOPs);
15015  void __RPC_STUB IDvdInfo2_GetCurrentUOPS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15016  HRESULT WINAPI IDvdInfo2_GetAllSPRMs_Proxy(IDvdInfo2 *This,SPRMARRAY *pRegisterArray);
15017  void __RPC_STUB IDvdInfo2_GetAllSPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15018  HRESULT WINAPI IDvdInfo2_GetAllGPRMs_Proxy(IDvdInfo2 *This,GPRMARRAY *pRegisterArray);
15019  void __RPC_STUB IDvdInfo2_GetAllGPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15020  HRESULT WINAPI IDvdInfo2_GetAudioLanguage_Proxy(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
15021  void __RPC_STUB IDvdInfo2_GetAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15022  HRESULT WINAPI IDvdInfo2_GetSubpictureLanguage_Proxy(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
15023  void __RPC_STUB IDvdInfo2_GetSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15024  HRESULT WINAPI IDvdInfo2_GetTitleAttributes_Proxy(IDvdInfo2 *This,ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle);
15025  void __RPC_STUB IDvdInfo2_GetTitleAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15026  HRESULT WINAPI IDvdInfo2_GetVMGAttributes_Proxy(IDvdInfo2 *This,DVD_MenuAttributes *pATR);
15027  void __RPC_STUB IDvdInfo2_GetVMGAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15028  HRESULT WINAPI IDvdInfo2_GetCurrentVideoAttributes_Proxy(IDvdInfo2 *This,DVD_VideoAttributes *pATR);
15029  void __RPC_STUB IDvdInfo2_GetCurrentVideoAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15030  HRESULT WINAPI IDvdInfo2_GetAudioAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_AudioAttributes *pATR);
15031  void __RPC_STUB IDvdInfo2_GetAudioAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15032  HRESULT WINAPI IDvdInfo2_GetKaraokeAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_KaraokeAttributes *pAttributes);
15033  void __RPC_STUB IDvdInfo2_GetKaraokeAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15034  HRESULT WINAPI IDvdInfo2_GetSubpictureAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_SubpictureAttributes *pATR);
15035  void __RPC_STUB IDvdInfo2_GetSubpictureAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15036  HRESULT WINAPI IDvdInfo2_GetDVDVolumeInfo_Proxy(IDvdInfo2 *This,ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
15037  void __RPC_STUB IDvdInfo2_GetDVDVolumeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15038  HRESULT WINAPI IDvdInfo2_GetDVDTextNumberOfLanguages_Proxy(IDvdInfo2 *This,ULONG *pulNumOfLangs);
15039  void __RPC_STUB IDvdInfo2_GetDVDTextNumberOfLanguages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15040  HRESULT WINAPI IDvdInfo2_GetDVDTextLanguageInfo_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet);
15041  void __RPC_STUB IDvdInfo2_GetDVDTextLanguageInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15042  HRESULT WINAPI IDvdInfo2_GetDVDTextStringAsNative_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
15043  void __RPC_STUB IDvdInfo2_GetDVDTextStringAsNative_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15044  HRESULT WINAPI IDvdInfo2_GetDVDTextStringAsUnicode_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
15045  void __RPC_STUB IDvdInfo2_GetDVDTextStringAsUnicode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15046  HRESULT WINAPI IDvdInfo2_GetPlayerParentalLevel_Proxy(IDvdInfo2 *This,ULONG *pulParentalLevel,BYTE pbCountryCode[2]);
15047  void __RPC_STUB IDvdInfo2_GetPlayerParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15048  HRESULT WINAPI IDvdInfo2_GetNumberOfChapters_Proxy(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulNumOfChapters);
15049  void __RPC_STUB IDvdInfo2_GetNumberOfChapters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15050  HRESULT WINAPI IDvdInfo2_GetTitleParentalLevels_Proxy(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulParentalLevels);
15051  void __RPC_STUB IDvdInfo2_GetTitleParentalLevels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15052  HRESULT WINAPI IDvdInfo2_GetDVDDirectory_Proxy(IDvdInfo2 *This,LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize);
15053  void __RPC_STUB IDvdInfo2_GetDVDDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15054  HRESULT WINAPI IDvdInfo2_IsAudioStreamEnabled_Proxy(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
15055  void __RPC_STUB IDvdInfo2_IsAudioStreamEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15056  HRESULT WINAPI IDvdInfo2_GetDiscID_Proxy(IDvdInfo2 *This,LPCWSTR pszwPath,ULONGLONG *pullDiscID);
15057  void __RPC_STUB IDvdInfo2_GetDiscID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15058  HRESULT WINAPI IDvdInfo2_GetState_Proxy(IDvdInfo2 *This,IDvdState **pStateData);
15059  void __RPC_STUB IDvdInfo2_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15060  HRESULT WINAPI IDvdInfo2_GetMenuLanguages_Proxy(IDvdInfo2 *This,LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages);
15061  void __RPC_STUB IDvdInfo2_GetMenuLanguages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15062  HRESULT WINAPI IDvdInfo2_GetButtonAtPosition_Proxy(IDvdInfo2 *This,POINT point,ULONG *pulButtonIndex);
15063  void __RPC_STUB IDvdInfo2_GetButtonAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15064  HRESULT WINAPI IDvdInfo2_GetCmdFromEvent_Proxy(IDvdInfo2 *This,LONG_PTR lParam1,IDvdCmd **pCmdObj);
15065  void __RPC_STUB IDvdInfo2_GetCmdFromEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15066  HRESULT WINAPI IDvdInfo2_GetDefaultMenuLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage);
15067  void __RPC_STUB IDvdInfo2_GetDefaultMenuLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15068  HRESULT WINAPI IDvdInfo2_GetDefaultAudioLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension);
15069  void __RPC_STUB IDvdInfo2_GetDefaultAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15070  HRESULT WINAPI IDvdInfo2_GetDefaultSubpictureLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
15071  void __RPC_STUB IDvdInfo2_GetDefaultSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15072  HRESULT WINAPI IDvdInfo2_GetDecoderCaps_Proxy(IDvdInfo2 *This,DVD_DECODER_CAPS *pCaps);
15073  void __RPC_STUB IDvdInfo2_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15074  HRESULT WINAPI IDvdInfo2_GetButtonRect_Proxy(IDvdInfo2 *This,ULONG ulButton,RECT *pRect);
15075  void __RPC_STUB IDvdInfo2_GetButtonRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15076  HRESULT WINAPI IDvdInfo2_IsSubpictureStreamEnabled_Proxy(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
15077  void __RPC_STUB IDvdInfo2_IsSubpictureStreamEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15078#endif
15079
15080  typedef enum _AM_DVD_GRAPH_FLAGS {
15081    AM_DVD_HWDEC_PREFER = 0x1,AM_DVD_HWDEC_ONLY = 0x2,AM_DVD_SWDEC_PREFER = 0x4,AM_DVD_SWDEC_ONLY = 0x8,AM_DVD_NOVPE = 0x100,
15082    AM_DVD_VMR9_ONLY = 0x800
15083  } AM_DVD_GRAPH_FLAGS;
15084
15085  typedef enum _AM_DVD_STREAM_FLAGS {
15086    AM_DVD_STREAM_VIDEO = 0x1,AM_DVD_STREAM_AUDIO = 0x2,AM_DVD_STREAM_SUBPIC = 0x4
15087  } AM_DVD_STREAM_FLAGS;
15088
15089  typedef struct __MIDL___MIDL_itf_strmif_0389_0001 {
15090    HRESULT hrVPEStatus;
15091    WINBOOL bDvdVolInvalid;
15092    WINBOOL bDvdVolUnknown;
15093    WINBOOL bNoLine21In;
15094    WINBOOL bNoLine21Out;
15095    int iNumStreams;
15096    int iNumStreamsFailed;
15097    DWORD dwFailedStreamsFlag;
15098  } AM_DVD_RENDERSTATUS;
15099
15100  extern RPC_IF_HANDLE __MIDL_itf_strmif_0389_v0_0_c_ifspec;
15101  extern RPC_IF_HANDLE __MIDL_itf_strmif_0389_v0_0_s_ifspec;
15102#ifndef __IDvdGraphBuilder_INTERFACE_DEFINED__
15103#define __IDvdGraphBuilder_INTERFACE_DEFINED__
15104  EXTERN_C const IID IID_IDvdGraphBuilder;
15105#if defined(__cplusplus) && !defined(CINTERFACE)
15106  struct IDvdGraphBuilder : public IUnknown {
15107  public:
15108    virtual HRESULT WINAPI GetFiltergraph(IGraphBuilder **ppGB) = 0;
15109    virtual HRESULT WINAPI GetDvdInterface(REFIID riid,void **ppvIF) = 0;
15110    virtual HRESULT WINAPI RenderDvdVideoVolume(LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus) = 0;
15111  };
15112#else
15113  typedef struct IDvdGraphBuilderVtbl {
15114    BEGIN_INTERFACE
15115      HRESULT (WINAPI *QueryInterface)(IDvdGraphBuilder *This,REFIID riid,void **ppvObject);
15116      ULONG (WINAPI *AddRef)(IDvdGraphBuilder *This);
15117      ULONG (WINAPI *Release)(IDvdGraphBuilder *This);
15118      HRESULT (WINAPI *GetFiltergraph)(IDvdGraphBuilder *This,IGraphBuilder **ppGB);
15119      HRESULT (WINAPI *GetDvdInterface)(IDvdGraphBuilder *This,REFIID riid,void **ppvIF);
15120      HRESULT (WINAPI *RenderDvdVideoVolume)(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
15121    END_INTERFACE
15122  } IDvdGraphBuilderVtbl;
15123  struct IDvdGraphBuilder {
15124    CONST_VTBL struct IDvdGraphBuilderVtbl *lpVtbl;
15125  };
15126#ifdef COBJMACROS
15127#define IDvdGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15128#define IDvdGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
15129#define IDvdGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
15130#define IDvdGraphBuilder_GetFiltergraph(This,ppGB) (This)->lpVtbl->GetFiltergraph(This,ppGB)
15131#define IDvdGraphBuilder_GetDvdInterface(This,riid,ppvIF) (This)->lpVtbl->GetDvdInterface(This,riid,ppvIF)
15132#define IDvdGraphBuilder_RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus) (This)->lpVtbl->RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus)
15133#endif
15134#endif
15135  HRESULT WINAPI IDvdGraphBuilder_GetFiltergraph_Proxy(IDvdGraphBuilder *This,IGraphBuilder **ppGB);
15136  void __RPC_STUB IDvdGraphBuilder_GetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15137  HRESULT WINAPI IDvdGraphBuilder_GetDvdInterface_Proxy(IDvdGraphBuilder *This,REFIID riid,void **ppvIF);
15138  void __RPC_STUB IDvdGraphBuilder_GetDvdInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15139  HRESULT WINAPI IDvdGraphBuilder_RenderDvdVideoVolume_Proxy(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
15140  void __RPC_STUB IDvdGraphBuilder_RenderDvdVideoVolume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15141#endif
15142
15143#ifndef __IDDrawExclModeVideo_INTERFACE_DEFINED__
15144#define __IDDrawExclModeVideo_INTERFACE_DEFINED__
15145  EXTERN_C const IID IID_IDDrawExclModeVideo;
15146#if defined(__cplusplus) && !defined(CINTERFACE)
15147  struct IDDrawExclModeVideo : public IUnknown {
15148  public:
15149    virtual HRESULT WINAPI SetDDrawObject(IDirectDraw *pDDrawObject) = 0;
15150    virtual HRESULT WINAPI GetDDrawObject(IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal) = 0;
15151    virtual HRESULT WINAPI SetDDrawSurface(IDirectDrawSurface *pDDrawSurface) = 0;
15152    virtual HRESULT WINAPI GetDDrawSurface(IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal) = 0;
15153    virtual HRESULT WINAPI SetDrawParameters(const RECT *prcSource,const RECT *prcTarget) = 0;
15154    virtual HRESULT WINAPI GetNativeVideoProps(DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY) = 0;
15155    virtual HRESULT WINAPI SetCallbackInterface(IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags) = 0;
15156  };
15157#else
15158  typedef struct IDDrawExclModeVideoVtbl {
15159    BEGIN_INTERFACE
15160      HRESULT (WINAPI *QueryInterface)(IDDrawExclModeVideo *This,REFIID riid,void **ppvObject);
15161      ULONG (WINAPI *AddRef)(IDDrawExclModeVideo *This);
15162      ULONG (WINAPI *Release)(IDDrawExclModeVideo *This);
15163      HRESULT (WINAPI *SetDDrawObject)(IDDrawExclModeVideo *This,IDirectDraw *pDDrawObject);
15164      HRESULT (WINAPI *GetDDrawObject)(IDDrawExclModeVideo *This,IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal);
15165      HRESULT (WINAPI *SetDDrawSurface)(IDDrawExclModeVideo *This,IDirectDrawSurface *pDDrawSurface);
15166      HRESULT (WINAPI *GetDDrawSurface)(IDDrawExclModeVideo *This,IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal);
15167      HRESULT (WINAPI *SetDrawParameters)(IDDrawExclModeVideo *This,const RECT *prcSource,const RECT *prcTarget);
15168      HRESULT (WINAPI *GetNativeVideoProps)(IDDrawExclModeVideo *This,DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY);
15169      HRESULT (WINAPI *SetCallbackInterface)(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
15170    END_INTERFACE
15171  } IDDrawExclModeVideoVtbl;
15172  struct IDDrawExclModeVideo {
15173    CONST_VTBL struct IDDrawExclModeVideoVtbl *lpVtbl;
15174  };
15175#ifdef COBJMACROS
15176#define IDDrawExclModeVideo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15177#define IDDrawExclModeVideo_AddRef(This) (This)->lpVtbl->AddRef(This)
15178#define IDDrawExclModeVideo_Release(This) (This)->lpVtbl->Release(This)
15179#define IDDrawExclModeVideo_SetDDrawObject(This,pDDrawObject) (This)->lpVtbl->SetDDrawObject(This,pDDrawObject)
15180#define IDDrawExclModeVideo_GetDDrawObject(This,ppDDrawObject,pbUsingExternal) (This)->lpVtbl->GetDDrawObject(This,ppDDrawObject,pbUsingExternal)
15181#define IDDrawExclModeVideo_SetDDrawSurface(This,pDDrawSurface) (This)->lpVtbl->SetDDrawSurface(This,pDDrawSurface)
15182#define IDDrawExclModeVideo_GetDDrawSurface(This,ppDDrawSurface,pbUsingExternal) (This)->lpVtbl->GetDDrawSurface(This,ppDDrawSurface,pbUsingExternal)
15183#define IDDrawExclModeVideo_SetDrawParameters(This,prcSource,prcTarget) (This)->lpVtbl->SetDrawParameters(This,prcSource,prcTarget)
15184#define IDDrawExclModeVideo_GetNativeVideoProps(This,pdwVideoWidth,pdwVideoHeight,pdwPictAspectRatioX,pdwPictAspectRatioY) (This)->lpVtbl->GetNativeVideoProps(This,pdwVideoWidth,pdwVideoHeight,pdwPictAspectRatioX,pdwPictAspectRatioY)
15185#define IDDrawExclModeVideo_SetCallbackInterface(This,pCallback,dwFlags) (This)->lpVtbl->SetCallbackInterface(This,pCallback,dwFlags)
15186#endif
15187#endif
15188  HRESULT WINAPI IDDrawExclModeVideo_SetDDrawObject_Proxy(IDDrawExclModeVideo *This,IDirectDraw *pDDrawObject);
15189  void __RPC_STUB IDDrawExclModeVideo_SetDDrawObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15190  HRESULT WINAPI IDDrawExclModeVideo_GetDDrawObject_Proxy(IDDrawExclModeVideo *This,IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal);
15191  void __RPC_STUB IDDrawExclModeVideo_GetDDrawObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15192  HRESULT WINAPI IDDrawExclModeVideo_SetDDrawSurface_Proxy(IDDrawExclModeVideo *This,IDirectDrawSurface *pDDrawSurface);
15193  void __RPC_STUB IDDrawExclModeVideo_SetDDrawSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15194  HRESULT WINAPI IDDrawExclModeVideo_GetDDrawSurface_Proxy(IDDrawExclModeVideo *This,IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal);
15195  void __RPC_STUB IDDrawExclModeVideo_GetDDrawSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15196  HRESULT WINAPI IDDrawExclModeVideo_SetDrawParameters_Proxy(IDDrawExclModeVideo *This,const RECT *prcSource,const RECT *prcTarget);
15197  void __RPC_STUB IDDrawExclModeVideo_SetDrawParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15198  HRESULT WINAPI IDDrawExclModeVideo_GetNativeVideoProps_Proxy(IDDrawExclModeVideo *This,DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY);
15199  void __RPC_STUB IDDrawExclModeVideo_GetNativeVideoProps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15200  HRESULT WINAPI IDDrawExclModeVideo_SetCallbackInterface_Proxy(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
15201  void __RPC_STUB IDDrawExclModeVideo_SetCallbackInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15202#endif
15203
15204  enum _AM_OVERLAY_NOTIFY_FLAGS {
15205    AM_OVERLAY_NOTIFY_VISIBLE_CHANGE = 0x1,AM_OVERLAY_NOTIFY_SOURCE_CHANGE = 0x2,AM_OVERLAY_NOTIFY_DEST_CHANGE = 0x4
15206  };
15207
15208  extern RPC_IF_HANDLE __MIDL_itf_strmif_0391_v0_0_c_ifspec;
15209  extern RPC_IF_HANDLE __MIDL_itf_strmif_0391_v0_0_s_ifspec;
15210#ifndef __IDDrawExclModeVideoCallback_INTERFACE_DEFINED__
15211#define __IDDrawExclModeVideoCallback_INTERFACE_DEFINED__
15212  EXTERN_C const IID IID_IDDrawExclModeVideoCallback;
15213#if defined(__cplusplus) && !defined(CINTERFACE)
15214  struct IDDrawExclModeVideoCallback : public IUnknown {
15215  public:
15216    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;
15217    virtual HRESULT WINAPI OnUpdateColorKey(const COLORKEY *pKey,DWORD dwColor) = 0;
15218    virtual HRESULT WINAPI OnUpdateSize(DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight) = 0;
15219  };
15220#else
15221  typedef struct IDDrawExclModeVideoCallbackVtbl {
15222    BEGIN_INTERFACE
15223      HRESULT (WINAPI *QueryInterface)(IDDrawExclModeVideoCallback *This,REFIID riid,void **ppvObject);
15224      ULONG (WINAPI *AddRef)(IDDrawExclModeVideoCallback *This);
15225      ULONG (WINAPI *Release)(IDDrawExclModeVideoCallback *This);
15226      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);
15227      HRESULT (WINAPI *OnUpdateColorKey)(IDDrawExclModeVideoCallback *This,const COLORKEY *pKey,DWORD dwColor);
15228      HRESULT (WINAPI *OnUpdateSize)(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
15229    END_INTERFACE
15230  } IDDrawExclModeVideoCallbackVtbl;
15231  struct IDDrawExclModeVideoCallback {
15232    CONST_VTBL struct IDDrawExclModeVideoCallbackVtbl *lpVtbl;
15233  };
15234#ifdef COBJMACROS
15235#define IDDrawExclModeVideoCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15236#define IDDrawExclModeVideoCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
15237#define IDDrawExclModeVideoCallback_Release(This) (This)->lpVtbl->Release(This)
15238#define IDDrawExclModeVideoCallback_OnUpdateOverlay(This,bBefore,dwFlags,bOldVisible,prcOldSrc,prcOldDest,bNewVisible,prcNewSrc,prcNewDest) (This)->lpVtbl->OnUpdateOverlay(This,bBefore,dwFlags,bOldVisible,prcOldSrc,prcOldDest,bNewVisible,prcNewSrc,prcNewDest)
15239#define IDDrawExclModeVideoCallback_OnUpdateColorKey(This,pKey,dwColor) (This)->lpVtbl->OnUpdateColorKey(This,pKey,dwColor)
15240#define IDDrawExclModeVideoCallback_OnUpdateSize(This,dwWidth,dwHeight,dwARWidth,dwARHeight) (This)->lpVtbl->OnUpdateSize(This,dwWidth,dwHeight,dwARWidth,dwARHeight)
15241#endif
15242#endif
15243  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);
15244  void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateOverlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15245  HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateColorKey_Proxy(IDDrawExclModeVideoCallback *This,const COLORKEY *pKey,DWORD dwColor);
15246  void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15247  HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateSize_Proxy(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
15248  void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15249#endif
15250
15251  extern RPC_IF_HANDLE __MIDL_itf_strmif_0392_v0_0_c_ifspec;
15252  extern RPC_IF_HANDLE __MIDL_itf_strmif_0392_v0_0_s_ifspec;
15253#ifndef __IPinConnection_INTERFACE_DEFINED__
15254#define __IPinConnection_INTERFACE_DEFINED__
15255  EXTERN_C const IID IID_IPinConnection;
15256#if defined(__cplusplus) && !defined(CINTERFACE)
15257  struct IPinConnection : public IUnknown {
15258  public:
15259    virtual HRESULT WINAPI DynamicQueryAccept(const AM_MEDIA_TYPE *pmt) = 0;
15260    virtual HRESULT WINAPI NotifyEndOfStream(HANDLE hNotifyEvent) = 0;
15261    virtual HRESULT WINAPI IsEndPin(void) = 0;
15262    virtual HRESULT WINAPI DynamicDisconnect(void) = 0;
15263  };
15264#else
15265  typedef struct IPinConnectionVtbl {
15266    BEGIN_INTERFACE
15267      HRESULT (WINAPI *QueryInterface)(IPinConnection *This,REFIID riid,void **ppvObject);
15268      ULONG (WINAPI *AddRef)(IPinConnection *This);
15269      ULONG (WINAPI *Release)(IPinConnection *This);
15270      HRESULT (WINAPI *DynamicQueryAccept)(IPinConnection *This,const AM_MEDIA_TYPE *pmt);
15271      HRESULT (WINAPI *NotifyEndOfStream)(IPinConnection *This,HANDLE hNotifyEvent);
15272      HRESULT (WINAPI *IsEndPin)(IPinConnection *This);
15273      HRESULT (WINAPI *DynamicDisconnect)(IPinConnection *This);
15274    END_INTERFACE
15275  } IPinConnectionVtbl;
15276  struct IPinConnection {
15277    CONST_VTBL struct IPinConnectionVtbl *lpVtbl;
15278  };
15279#ifdef COBJMACROS
15280#define IPinConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15281#define IPinConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
15282#define IPinConnection_Release(This) (This)->lpVtbl->Release(This)
15283#define IPinConnection_DynamicQueryAccept(This,pmt) (This)->lpVtbl->DynamicQueryAccept(This,pmt)
15284#define IPinConnection_NotifyEndOfStream(This,hNotifyEvent) (This)->lpVtbl->NotifyEndOfStream(This,hNotifyEvent)
15285#define IPinConnection_IsEndPin(This) (This)->lpVtbl->IsEndPin(This)
15286#define IPinConnection_DynamicDisconnect(This) (This)->lpVtbl->DynamicDisconnect(This)
15287#endif
15288#endif
15289  HRESULT WINAPI IPinConnection_DynamicQueryAccept_Proxy(IPinConnection *This,const AM_MEDIA_TYPE *pmt);
15290  void __RPC_STUB IPinConnection_DynamicQueryAccept_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15291  HRESULT WINAPI IPinConnection_NotifyEndOfStream_Proxy(IPinConnection *This,HANDLE hNotifyEvent);
15292  void __RPC_STUB IPinConnection_NotifyEndOfStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15293  HRESULT WINAPI IPinConnection_IsEndPin_Proxy(IPinConnection *This);
15294  void __RPC_STUB IPinConnection_IsEndPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15295  HRESULT WINAPI IPinConnection_DynamicDisconnect_Proxy(IPinConnection *This);
15296  void __RPC_STUB IPinConnection_DynamicDisconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15297#endif
15298
15299#ifndef __IPinFlowControl_INTERFACE_DEFINED__
15300#define __IPinFlowControl_INTERFACE_DEFINED__
15301  EXTERN_C const IID IID_IPinFlowControl;
15302#if defined(__cplusplus) && !defined(CINTERFACE)
15303  struct IPinFlowControl : public IUnknown {
15304  public:
15305    virtual HRESULT WINAPI Block(DWORD dwBlockFlags,HANDLE hEvent) = 0;
15306  };
15307#else
15308  typedef struct IPinFlowControlVtbl {
15309    BEGIN_INTERFACE
15310      HRESULT (WINAPI *QueryInterface)(IPinFlowControl *This,REFIID riid,void **ppvObject);
15311      ULONG (WINAPI *AddRef)(IPinFlowControl *This);
15312      ULONG (WINAPI *Release)(IPinFlowControl *This);
15313      HRESULT (WINAPI *Block)(IPinFlowControl *This,DWORD dwBlockFlags,HANDLE hEvent);
15314    END_INTERFACE
15315  } IPinFlowControlVtbl;
15316  struct IPinFlowControl {
15317    CONST_VTBL struct IPinFlowControlVtbl *lpVtbl;
15318  };
15319#ifdef COBJMACROS
15320#define IPinFlowControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15321#define IPinFlowControl_AddRef(This) (This)->lpVtbl->AddRef(This)
15322#define IPinFlowControl_Release(This) (This)->lpVtbl->Release(This)
15323#define IPinFlowControl_Block(This,dwBlockFlags,hEvent) (This)->lpVtbl->Block(This,dwBlockFlags,hEvent)
15324#endif
15325#endif
15326  HRESULT WINAPI IPinFlowControl_Block_Proxy(IPinFlowControl *This,DWORD dwBlockFlags,HANDLE hEvent);
15327  void __RPC_STUB IPinFlowControl_Block_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15328#endif
15329
15330  enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS {
15331    AM_PIN_FLOW_CONTROL_BLOCK = 0x1
15332  };
15333  typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS {
15334    AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x1,AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x2,
15335    AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x4
15336  } AM_GRAPH_CONFIG_RECONNECT_FLAGS;
15337
15338  enum _REM_FILTER_FLAGS {
15339    REMFILTERF_LEAVECONNECTED = 0x1
15340  };
15341
15342  typedef enum _AM_FILTER_FLAGS {
15343    AM_FILTER_FLAGS_REMOVABLE = 0x1
15344  } AM_FILTER_FLAGS;
15345
15346  extern RPC_IF_HANDLE __MIDL_itf_strmif_0394_v0_0_c_ifspec;
15347  extern RPC_IF_HANDLE __MIDL_itf_strmif_0394_v0_0_s_ifspec;
15348#ifndef __IGraphConfig_INTERFACE_DEFINED__
15349#define __IGraphConfig_INTERFACE_DEFINED__
15350  EXTERN_C const IID IID_IGraphConfig;
15351#if defined(__cplusplus) && !defined(CINTERFACE)
15352  struct IGraphConfig : public IUnknown {
15353  public:
15354    virtual HRESULT WINAPI Reconnect(IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags) = 0;
15355    virtual HRESULT WINAPI Reconfigure(IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent) = 0;
15356    virtual HRESULT WINAPI AddFilterToCache(IBaseFilter *pFilter) = 0;
15357    virtual HRESULT WINAPI EnumCacheFilter(IEnumFilters **pEnum) = 0;
15358    virtual HRESULT WINAPI RemoveFilterFromCache(IBaseFilter *pFilter) = 0;
15359    virtual HRESULT WINAPI GetStartTime(REFERENCE_TIME *prtStart) = 0;
15360    virtual HRESULT WINAPI PushThroughData(IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort) = 0;
15361    virtual HRESULT WINAPI SetFilterFlags(IBaseFilter *pFilter,DWORD dwFlags) = 0;
15362    virtual HRESULT WINAPI GetFilterFlags(IBaseFilter *pFilter,DWORD *pdwFlags) = 0;
15363    virtual HRESULT WINAPI RemoveFilterEx(IBaseFilter *pFilter,DWORD Flags) = 0;
15364  };
15365#else
15366  typedef struct IGraphConfigVtbl {
15367    BEGIN_INTERFACE
15368      HRESULT (WINAPI *QueryInterface)(IGraphConfig *This,REFIID riid,void **ppvObject);
15369      ULONG (WINAPI *AddRef)(IGraphConfig *This);
15370      ULONG (WINAPI *Release)(IGraphConfig *This);
15371      HRESULT (WINAPI *Reconnect)(IGraphConfig *This,IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags);
15372      HRESULT (WINAPI *Reconfigure)(IGraphConfig *This,IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent);
15373      HRESULT (WINAPI *AddFilterToCache)(IGraphConfig *This,IBaseFilter *pFilter);
15374      HRESULT (WINAPI *EnumCacheFilter)(IGraphConfig *This,IEnumFilters **pEnum);
15375      HRESULT (WINAPI *RemoveFilterFromCache)(IGraphConfig *This,IBaseFilter *pFilter);
15376      HRESULT (WINAPI *GetStartTime)(IGraphConfig *This,REFERENCE_TIME *prtStart);
15377      HRESULT (WINAPI *PushThroughData)(IGraphConfig *This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort);
15378      HRESULT (WINAPI *SetFilterFlags)(IGraphConfig *This,IBaseFilter *pFilter,DWORD dwFlags);
15379      HRESULT (WINAPI *GetFilterFlags)(IGraphConfig *This,IBaseFilter *pFilter,DWORD *pdwFlags);
15380      HRESULT (WINAPI *RemoveFilterEx)(IGraphConfig *This,IBaseFilter *pFilter,DWORD Flags);
15381    END_INTERFACE
15382  } IGraphConfigVtbl;
15383  struct IGraphConfig {
15384    CONST_VTBL struct IGraphConfigVtbl *lpVtbl;
15385  };
15386#ifdef COBJMACROS
15387#define IGraphConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15388#define IGraphConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
15389#define IGraphConfig_Release(This) (This)->lpVtbl->Release(This)
15390#define IGraphConfig_Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags) (This)->lpVtbl->Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags)
15391#define IGraphConfig_Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent) (This)->lpVtbl->Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent)
15392#define IGraphConfig_AddFilterToCache(This,pFilter) (This)->lpVtbl->AddFilterToCache(This,pFilter)
15393#define IGraphConfig_EnumCacheFilter(This,pEnum) (This)->lpVtbl->EnumCacheFilter(This,pEnum)
15394#define IGraphConfig_RemoveFilterFromCache(This,pFilter) (This)->lpVtbl->RemoveFilterFromCache(This,pFilter)
15395#define IGraphConfig_GetStartTime(This,prtStart) (This)->lpVtbl->GetStartTime(This,prtStart)
15396#define IGraphConfig_PushThroughData(This,pOutputPin,pConnection,hEventAbort) (This)->lpVtbl->PushThroughData(This,pOutputPin,pConnection,hEventAbort)
15397#define IGraphConfig_SetFilterFlags(This,pFilter,dwFlags) (This)->lpVtbl->SetFilterFlags(This,pFilter,dwFlags)
15398#define IGraphConfig_GetFilterFlags(This,pFilter,pdwFlags) (This)->lpVtbl->GetFilterFlags(This,pFilter,pdwFlags)
15399#define IGraphConfig_RemoveFilterEx(This,pFilter,Flags) (This)->lpVtbl->RemoveFilterEx(This,pFilter,Flags)
15400#endif
15401#endif
15402  HRESULT WINAPI IGraphConfig_Reconnect_Proxy(IGraphConfig *This,IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags);
15403  void __RPC_STUB IGraphConfig_Reconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15404  HRESULT WINAPI IGraphConfig_Reconfigure_Proxy(IGraphConfig *This,IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent);
15405  void __RPC_STUB IGraphConfig_Reconfigure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15406  HRESULT WINAPI IGraphConfig_AddFilterToCache_Proxy(IGraphConfig *This,IBaseFilter *pFilter);
15407  void __RPC_STUB IGraphConfig_AddFilterToCache_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15408  HRESULT WINAPI IGraphConfig_EnumCacheFilter_Proxy(IGraphConfig *This,IEnumFilters **pEnum);
15409  void __RPC_STUB IGraphConfig_EnumCacheFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15410  HRESULT WINAPI IGraphConfig_RemoveFilterFromCache_Proxy(IGraphConfig *This,IBaseFilter *pFilter);
15411  void __RPC_STUB IGraphConfig_RemoveFilterFromCache_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15412  HRESULT WINAPI IGraphConfig_GetStartTime_Proxy(IGraphConfig *This,REFERENCE_TIME *prtStart);
15413  void __RPC_STUB IGraphConfig_GetStartTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15414  HRESULT WINAPI IGraphConfig_PushThroughData_Proxy(IGraphConfig *This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort);
15415  void __RPC_STUB IGraphConfig_PushThroughData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15416  HRESULT WINAPI IGraphConfig_SetFilterFlags_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD dwFlags);
15417  void __RPC_STUB IGraphConfig_SetFilterFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15418  HRESULT WINAPI IGraphConfig_GetFilterFlags_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD *pdwFlags);
15419  void __RPC_STUB IGraphConfig_GetFilterFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15420  HRESULT WINAPI IGraphConfig_RemoveFilterEx_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD Flags);
15421  void __RPC_STUB IGraphConfig_RemoveFilterEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15422#endif
15423
15424#ifndef __IGraphConfigCallback_INTERFACE_DEFINED__
15425#define __IGraphConfigCallback_INTERFACE_DEFINED__
15426  EXTERN_C const IID IID_IGraphConfigCallback;
15427#if defined(__cplusplus) && !defined(CINTERFACE)
15428  struct IGraphConfigCallback : public IUnknown {
15429  public:
15430    virtual HRESULT WINAPI Reconfigure(PVOID pvContext,DWORD dwFlags) = 0;
15431  };
15432#else
15433  typedef struct IGraphConfigCallbackVtbl {
15434    BEGIN_INTERFACE
15435      HRESULT (WINAPI *QueryInterface)(IGraphConfigCallback *This,REFIID riid,void **ppvObject);
15436      ULONG (WINAPI *AddRef)(IGraphConfigCallback *This);
15437      ULONG (WINAPI *Release)(IGraphConfigCallback *This);
15438      HRESULT (WINAPI *Reconfigure)(IGraphConfigCallback *This,PVOID pvContext,DWORD dwFlags);
15439    END_INTERFACE
15440  } IGraphConfigCallbackVtbl;
15441  struct IGraphConfigCallback {
15442    CONST_VTBL struct IGraphConfigCallbackVtbl *lpVtbl;
15443  };
15444#ifdef COBJMACROS
15445#define IGraphConfigCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15446#define IGraphConfigCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
15447#define IGraphConfigCallback_Release(This) (This)->lpVtbl->Release(This)
15448#define IGraphConfigCallback_Reconfigure(This,pvContext,dwFlags) (This)->lpVtbl->Reconfigure(This,pvContext,dwFlags)
15449#endif
15450#endif
15451  HRESULT WINAPI IGraphConfigCallback_Reconfigure_Proxy(IGraphConfigCallback *This,PVOID pvContext,DWORD dwFlags);
15452  void __RPC_STUB IGraphConfigCallback_Reconfigure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15453#endif
15454
15455#ifndef __IFilterChain_INTERFACE_DEFINED__
15456#define __IFilterChain_INTERFACE_DEFINED__
15457  EXTERN_C const IID IID_IFilterChain;
15458#if defined(__cplusplus) && !defined(CINTERFACE)
15459  struct IFilterChain : public IUnknown {
15460  public:
15461    virtual HRESULT WINAPI StartChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
15462    virtual HRESULT WINAPI PauseChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
15463    virtual HRESULT WINAPI StopChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
15464    virtual HRESULT WINAPI RemoveChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
15465  };
15466#else
15467  typedef struct IFilterChainVtbl {
15468    BEGIN_INTERFACE
15469      HRESULT (WINAPI *QueryInterface)(IFilterChain *This,REFIID riid,void **ppvObject);
15470      ULONG (WINAPI *AddRef)(IFilterChain *This);
15471      ULONG (WINAPI *Release)(IFilterChain *This);
15472      HRESULT (WINAPI *StartChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15473      HRESULT (WINAPI *PauseChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15474      HRESULT (WINAPI *StopChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15475      HRESULT (WINAPI *RemoveChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15476    END_INTERFACE
15477  } IFilterChainVtbl;
15478  struct IFilterChain {
15479    CONST_VTBL struct IFilterChainVtbl *lpVtbl;
15480  };
15481#ifdef COBJMACROS
15482#define IFilterChain_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15483#define IFilterChain_AddRef(This) (This)->lpVtbl->AddRef(This)
15484#define IFilterChain_Release(This) (This)->lpVtbl->Release(This)
15485#define IFilterChain_StartChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StartChain(This,pStartFilter,pEndFilter)
15486#define IFilterChain_PauseChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->PauseChain(This,pStartFilter,pEndFilter)
15487#define IFilterChain_StopChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StopChain(This,pStartFilter,pEndFilter)
15488#define IFilterChain_RemoveChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->RemoveChain(This,pStartFilter,pEndFilter)
15489#endif
15490#endif
15491  HRESULT WINAPI IFilterChain_StartChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15492  void __RPC_STUB IFilterChain_StartChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15493  HRESULT WINAPI IFilterChain_PauseChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15494  void __RPC_STUB IFilterChain_PauseChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15495  HRESULT WINAPI IFilterChain_StopChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15496  void __RPC_STUB IFilterChain_StopChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15497  HRESULT WINAPI IFilterChain_RemoveChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
15498  void __RPC_STUB IFilterChain_RemoveChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15499#endif
15500
15501#ifdef MINGW_HAS_DDRAW_H
15502#include <ddraw.h>
15503#endif
15504
15505  typedef enum __MIDL___MIDL_itf_strmif_0397_0002 {
15506    VMRSample_SyncPoint = 0x1,VMRSample_Preroll = 0x2,VMRSample_Discontinuity = 0x4,VMRSample_TimeValid = 0x8,VMRSample_SrcDstRectsValid = 0x10
15507  } VMRPresentationFlags;
15508
15509  typedef struct tagVMRPRESENTATIONINFO {
15510    DWORD dwFlags;
15511    LPDIRECTDRAWSURFACE7 lpSurf;
15512    REFERENCE_TIME rtStart;
15513    REFERENCE_TIME rtEnd;
15514    SIZE szAspectRatio;
15515    RECT rcSrc;
15516    RECT rcDst;
15517    DWORD dwTypeSpecificFlags;
15518    DWORD dwInterlaceFlags;
15519  } VMRPRESENTATIONINFO;
15520
15521  extern RPC_IF_HANDLE __MIDL_itf_strmif_0397_v0_0_c_ifspec;
15522  extern RPC_IF_HANDLE __MIDL_itf_strmif_0397_v0_0_s_ifspec;
15523#ifndef __IVMRImagePresenter_INTERFACE_DEFINED__
15524#define __IVMRImagePresenter_INTERFACE_DEFINED__
15525  EXTERN_C const IID IID_IVMRImagePresenter;
15526#if defined(__cplusplus) && !defined(CINTERFACE)
15527  struct IVMRImagePresenter : public IUnknown {
15528  public:
15529    virtual HRESULT WINAPI StartPresenting(DWORD_PTR dwUserID) = 0;
15530    virtual HRESULT WINAPI StopPresenting(DWORD_PTR dwUserID) = 0;
15531    virtual HRESULT WINAPI PresentImage(DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo) = 0;
15532  };
15533#else
15534  typedef struct IVMRImagePresenterVtbl {
15535    BEGIN_INTERFACE
15536      HRESULT (WINAPI *QueryInterface)(IVMRImagePresenter *This,REFIID riid,void **ppvObject);
15537      ULONG (WINAPI *AddRef)(IVMRImagePresenter *This);
15538      ULONG (WINAPI *Release)(IVMRImagePresenter *This);
15539      HRESULT (WINAPI *StartPresenting)(IVMRImagePresenter *This,DWORD_PTR dwUserID);
15540      HRESULT (WINAPI *StopPresenting)(IVMRImagePresenter *This,DWORD_PTR dwUserID);
15541      HRESULT (WINAPI *PresentImage)(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
15542    END_INTERFACE
15543  } IVMRImagePresenterVtbl;
15544  struct IVMRImagePresenter {
15545    CONST_VTBL struct IVMRImagePresenterVtbl *lpVtbl;
15546  };
15547#ifdef COBJMACROS
15548#define IVMRImagePresenter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15549#define IVMRImagePresenter_AddRef(This) (This)->lpVtbl->AddRef(This)
15550#define IVMRImagePresenter_Release(This) (This)->lpVtbl->Release(This)
15551#define IVMRImagePresenter_StartPresenting(This,dwUserID) (This)->lpVtbl->StartPresenting(This,dwUserID)
15552#define IVMRImagePresenter_StopPresenting(This,dwUserID) (This)->lpVtbl->StopPresenting(This,dwUserID)
15553#define IVMRImagePresenter_PresentImage(This,dwUserID,lpPresInfo) (This)->lpVtbl->PresentImage(This,dwUserID,lpPresInfo)
15554#endif
15555#endif
15556  HRESULT WINAPI IVMRImagePresenter_StartPresenting_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID);
15557  void __RPC_STUB IVMRImagePresenter_StartPresenting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15558  HRESULT WINAPI IVMRImagePresenter_StopPresenting_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID);
15559  void __RPC_STUB IVMRImagePresenter_StopPresenting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15560  HRESULT WINAPI IVMRImagePresenter_PresentImage_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
15561  void __RPC_STUB IVMRImagePresenter_PresentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15562#endif
15563
15564  typedef enum __MIDL___MIDL_itf_strmif_0398_0001 {
15565    AMAP_PIXELFORMAT_VALID = 0x1,AMAP_3D_TARGET = 0x2,AMAP_ALLOW_SYSMEM = 0x4,AMAP_FORCE_SYSMEM = 0x8,AMAP_DIRECTED_FLIP = 0x10,AMAP_DXVA_TARGET = 0x20
15566  } VMRSurfaceAllocationFlags;
15567
15568  typedef struct tagVMRALLOCATIONINFO {
15569    DWORD dwFlags;
15570    LPBITMAPINFOHEADER lpHdr;
15571    LPDDPIXELFORMAT lpPixFmt;
15572    SIZE szAspectRatio;
15573    DWORD dwMinBuffers;
15574    DWORD dwMaxBuffers;
15575    DWORD dwInterlaceFlags;
15576    SIZE szNativeSize;
15577  } VMRALLOCATIONINFO;
15578
15579  extern RPC_IF_HANDLE __MIDL_itf_strmif_0398_v0_0_c_ifspec;
15580  extern RPC_IF_HANDLE __MIDL_itf_strmif_0398_v0_0_s_ifspec;
15581#ifndef __IVMRSurfaceAllocator_INTERFACE_DEFINED__
15582#define __IVMRSurfaceAllocator_INTERFACE_DEFINED__
15583  EXTERN_C const IID IID_IVMRSurfaceAllocator;
15584#if defined(__cplusplus) && !defined(CINTERFACE)
15585  struct IVMRSurfaceAllocator : public IUnknown {
15586  public:
15587    virtual HRESULT WINAPI AllocateSurface(DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface) = 0;
15588    virtual HRESULT WINAPI FreeSurface(DWORD_PTR dwID) = 0;
15589    virtual HRESULT WINAPI PrepareSurface(DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags) = 0;
15590    virtual HRESULT WINAPI AdviseNotify(IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify) = 0;
15591  };
15592#else
15593  typedef struct IVMRSurfaceAllocatorVtbl {
15594    BEGIN_INTERFACE
15595      HRESULT (WINAPI *QueryInterface)(IVMRSurfaceAllocator *This,REFIID riid,void **ppvObject);
15596      ULONG (WINAPI *AddRef)(IVMRSurfaceAllocator *This);
15597      ULONG (WINAPI *Release)(IVMRSurfaceAllocator *This);
15598      HRESULT (WINAPI *AllocateSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface);
15599      HRESULT (WINAPI *FreeSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwID);
15600      HRESULT (WINAPI *PrepareSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags);
15601      HRESULT (WINAPI *AdviseNotify)(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
15602    END_INTERFACE
15603  } IVMRSurfaceAllocatorVtbl;
15604  struct IVMRSurfaceAllocator {
15605    CONST_VTBL struct IVMRSurfaceAllocatorVtbl *lpVtbl;
15606  };
15607#ifdef COBJMACROS
15608#define IVMRSurfaceAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15609#define IVMRSurfaceAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
15610#define IVMRSurfaceAllocator_Release(This) (This)->lpVtbl->Release(This)
15611#define IVMRSurfaceAllocator_AllocateSurface(This,dwUserID,lpAllocInfo,lpdwActualBuffers,lplpSurface) (This)->lpVtbl->AllocateSurface(This,dwUserID,lpAllocInfo,lpdwActualBuffers,lplpSurface)
15612#define IVMRSurfaceAllocator_FreeSurface(This,dwID) (This)->lpVtbl->FreeSurface(This,dwID)
15613#define IVMRSurfaceAllocator_PrepareSurface(This,dwUserID,lpSurface,dwSurfaceFlags) (This)->lpVtbl->PrepareSurface(This,dwUserID,lpSurface,dwSurfaceFlags)
15614#define IVMRSurfaceAllocator_AdviseNotify(This,lpIVMRSurfAllocNotify) (This)->lpVtbl->AdviseNotify(This,lpIVMRSurfAllocNotify)
15615#endif
15616#endif
15617  HRESULT WINAPI IVMRSurfaceAllocator_AllocateSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface);
15618  void __RPC_STUB IVMRSurfaceAllocator_AllocateSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15619  HRESULT WINAPI IVMRSurfaceAllocator_FreeSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwID);
15620  void __RPC_STUB IVMRSurfaceAllocator_FreeSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15621  HRESULT WINAPI IVMRSurfaceAllocator_PrepareSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags);
15622  void __RPC_STUB IVMRSurfaceAllocator_PrepareSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15623  HRESULT WINAPI IVMRSurfaceAllocator_AdviseNotify_Proxy(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
15624  void __RPC_STUB IVMRSurfaceAllocator_AdviseNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15625#endif
15626
15627#ifndef __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__
15628#define __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__
15629  EXTERN_C const IID IID_IVMRSurfaceAllocatorNotify;
15630#if defined(__cplusplus) && !defined(CINTERFACE)
15631  struct IVMRSurfaceAllocatorNotify : public IUnknown {
15632  public:
15633    virtual HRESULT WINAPI AdviseSurfaceAllocator(DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator) = 0;
15634    virtual HRESULT WINAPI SetDDrawDevice(LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor) = 0;
15635    virtual HRESULT WINAPI ChangeDDrawDevice(LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor) = 0;
15636    virtual HRESULT WINAPI RestoreDDrawSurfaces(void) = 0;
15637    virtual HRESULT WINAPI NotifyEvent(LONG EventCode,LONG_PTR Param1,LONG_PTR Param2) = 0;
15638    virtual HRESULT WINAPI SetBorderColor(COLORREF clrBorder) = 0;
15639  };
15640#else
15641  typedef struct IVMRSurfaceAllocatorNotifyVtbl {
15642    BEGIN_INTERFACE
15643      HRESULT (WINAPI *QueryInterface)(IVMRSurfaceAllocatorNotify *This,REFIID riid,void **ppvObject);
15644      ULONG (WINAPI *AddRef)(IVMRSurfaceAllocatorNotify *This);
15645      ULONG (WINAPI *Release)(IVMRSurfaceAllocatorNotify *This);
15646      HRESULT (WINAPI *AdviseSurfaceAllocator)(IVMRSurfaceAllocatorNotify *This,DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator);
15647      HRESULT (WINAPI *SetDDrawDevice)(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
15648      HRESULT (WINAPI *ChangeDDrawDevice)(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
15649      HRESULT (WINAPI *RestoreDDrawSurfaces)(IVMRSurfaceAllocatorNotify *This);
15650      HRESULT (WINAPI *NotifyEvent)(IVMRSurfaceAllocatorNotify *This,LONG EventCode,LONG_PTR Param1,LONG_PTR Param2);
15651      HRESULT (WINAPI *SetBorderColor)(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
15652    END_INTERFACE
15653  } IVMRSurfaceAllocatorNotifyVtbl;
15654  struct IVMRSurfaceAllocatorNotify {
15655    CONST_VTBL struct IVMRSurfaceAllocatorNotifyVtbl *lpVtbl;
15656  };
15657#ifdef COBJMACROS
15658#define IVMRSurfaceAllocatorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15659#define IVMRSurfaceAllocatorNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
15660#define IVMRSurfaceAllocatorNotify_Release(This) (This)->lpVtbl->Release(This)
15661#define IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator) (This)->lpVtbl->AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator)
15662#define IVMRSurfaceAllocatorNotify_SetDDrawDevice(This,lpDDrawDevice,hMonitor) (This)->lpVtbl->SetDDrawDevice(This,lpDDrawDevice,hMonitor)
15663#define IVMRSurfaceAllocatorNotify_ChangeDDrawDevice(This,lpDDrawDevice,hMonitor) (This)->lpVtbl->ChangeDDrawDevice(This,lpDDrawDevice,hMonitor)
15664#define IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces(This) (This)->lpVtbl->RestoreDDrawSurfaces(This)
15665#define IVMRSurfaceAllocatorNotify_NotifyEvent(This,EventCode,Param1,Param2) (This)->lpVtbl->NotifyEvent(This,EventCode,Param1,Param2)
15666#define IVMRSurfaceAllocatorNotify_SetBorderColor(This,clrBorder) (This)->lpVtbl->SetBorderColor(This,clrBorder)
15667#endif
15668#endif
15669  HRESULT WINAPI IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator_Proxy(IVMRSurfaceAllocatorNotify *This,DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator);
15670  void __RPC_STUB IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15671  HRESULT WINAPI IVMRSurfaceAllocatorNotify_SetDDrawDevice_Proxy(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
15672  void __RPC_STUB IVMRSurfaceAllocatorNotify_SetDDrawDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15673  HRESULT WINAPI IVMRSurfaceAllocatorNotify_ChangeDDrawDevice_Proxy(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
15674  void __RPC_STUB IVMRSurfaceAllocatorNotify_ChangeDDrawDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15675  HRESULT WINAPI IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces_Proxy(IVMRSurfaceAllocatorNotify *This);
15676  void __RPC_STUB IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15677  HRESULT WINAPI IVMRSurfaceAllocatorNotify_NotifyEvent_Proxy(IVMRSurfaceAllocatorNotify *This,LONG EventCode,LONG_PTR Param1,LONG_PTR Param2);
15678  void __RPC_STUB IVMRSurfaceAllocatorNotify_NotifyEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15679  HRESULT WINAPI IVMRSurfaceAllocatorNotify_SetBorderColor_Proxy(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
15680  void __RPC_STUB IVMRSurfaceAllocatorNotify_SetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15681#endif
15682
15683  typedef enum __MIDL___MIDL_itf_strmif_0400_0001 {
15684    VMR_ARMODE_NONE = 0,VMR_ARMODE_LETTER_BOX = VMR_ARMODE_NONE + 1
15685  } VMR_ASPECT_RATIO_MODE;
15686
15687  extern RPC_IF_HANDLE __MIDL_itf_strmif_0400_v0_0_c_ifspec;
15688  extern RPC_IF_HANDLE __MIDL_itf_strmif_0400_v0_0_s_ifspec;
15689#ifndef __IVMRWindowlessControl_INTERFACE_DEFINED__
15690#define __IVMRWindowlessControl_INTERFACE_DEFINED__
15691  EXTERN_C const IID IID_IVMRWindowlessControl;
15692#if defined(__cplusplus) && !defined(CINTERFACE)
15693  struct IVMRWindowlessControl : public IUnknown {
15694  public:
15695    virtual HRESULT WINAPI GetNativeVideoSize(LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight) = 0;
15696    virtual HRESULT WINAPI GetMinIdealVideoSize(LONG *lpWidth,LONG *lpHeight) = 0;
15697    virtual HRESULT WINAPI GetMaxIdealVideoSize(LONG *lpWidth,LONG *lpHeight) = 0;
15698    virtual HRESULT WINAPI SetVideoPosition(const LPRECT lpSRCRect,const LPRECT lpDSTRect) = 0;
15699    virtual HRESULT WINAPI GetVideoPosition(LPRECT lpSRCRect,LPRECT lpDSTRect) = 0;
15700    virtual HRESULT WINAPI GetAspectRatioMode(DWORD *lpAspectRatioMode) = 0;
15701    virtual HRESULT WINAPI SetAspectRatioMode(DWORD AspectRatioMode) = 0;
15702    virtual HRESULT WINAPI SetVideoClippingWindow(HWND hwnd) = 0;
15703    virtual HRESULT WINAPI RepaintVideo(HWND hwnd,HDC hdc) = 0;
15704    virtual HRESULT WINAPI DisplayModeChanged(void) = 0;
15705    virtual HRESULT WINAPI GetCurrentImage(BYTE **lpDib) = 0;
15706    virtual HRESULT WINAPI SetBorderColor(COLORREF Clr) = 0;
15707    virtual HRESULT WINAPI GetBorderColor(COLORREF *lpClr) = 0;
15708    virtual HRESULT WINAPI SetColorKey(COLORREF Clr) = 0;
15709    virtual HRESULT WINAPI GetColorKey(COLORREF *lpClr) = 0;
15710  };
15711#else
15712  typedef struct IVMRWindowlessControlVtbl {
15713    BEGIN_INTERFACE
15714      HRESULT (WINAPI *QueryInterface)(IVMRWindowlessControl *This,REFIID riid,void **ppvObject);
15715      ULONG (WINAPI *AddRef)(IVMRWindowlessControl *This);
15716      ULONG (WINAPI *Release)(IVMRWindowlessControl *This);
15717      HRESULT (WINAPI *GetNativeVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight);
15718      HRESULT (WINAPI *GetMinIdealVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
15719      HRESULT (WINAPI *GetMaxIdealVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
15720      HRESULT (WINAPI *SetVideoPosition)(IVMRWindowlessControl *This,const LPRECT lpSRCRect,const LPRECT lpDSTRect);
15721      HRESULT (WINAPI *GetVideoPosition)(IVMRWindowlessControl *This,LPRECT lpSRCRect,LPRECT lpDSTRect);
15722      HRESULT (WINAPI *GetAspectRatioMode)(IVMRWindowlessControl *This,DWORD *lpAspectRatioMode);
15723      HRESULT (WINAPI *SetAspectRatioMode)(IVMRWindowlessControl *This,DWORD AspectRatioMode);
15724      HRESULT (WINAPI *SetVideoClippingWindow)(IVMRWindowlessControl *This,HWND hwnd);
15725      HRESULT (WINAPI *RepaintVideo)(IVMRWindowlessControl *This,HWND hwnd,HDC hdc);
15726      HRESULT (WINAPI *DisplayModeChanged)(IVMRWindowlessControl *This);
15727      HRESULT (WINAPI *GetCurrentImage)(IVMRWindowlessControl *This,BYTE **lpDib);
15728      HRESULT (WINAPI *SetBorderColor)(IVMRWindowlessControl *This,COLORREF Clr);
15729      HRESULT (WINAPI *GetBorderColor)(IVMRWindowlessControl *This,COLORREF *lpClr);
15730      HRESULT (WINAPI *SetColorKey)(IVMRWindowlessControl *This,COLORREF Clr);
15731      HRESULT (WINAPI *GetColorKey)(IVMRWindowlessControl *This,COLORREF *lpClr);
15732    END_INTERFACE
15733  } IVMRWindowlessControlVtbl;
15734  struct IVMRWindowlessControl {
15735    CONST_VTBL struct IVMRWindowlessControlVtbl *lpVtbl;
15736  };
15737#ifdef COBJMACROS
15738#define IVMRWindowlessControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15739#define IVMRWindowlessControl_AddRef(This) (This)->lpVtbl->AddRef(This)
15740#define IVMRWindowlessControl_Release(This) (This)->lpVtbl->Release(This)
15741#define IVMRWindowlessControl_GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight) (This)->lpVtbl->GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight)
15742#define IVMRWindowlessControl_GetMinIdealVideoSize(This,lpWidth,lpHeight) (This)->lpVtbl->GetMinIdealVideoSize(This,lpWidth,lpHeight)
15743#define IVMRWindowlessControl_GetMaxIdealVideoSize(This,lpWidth,lpHeight) (This)->lpVtbl->GetMaxIdealVideoSize(This,lpWidth,lpHeight)
15744#define IVMRWindowlessControl_SetVideoPosition(This,lpSRCRect,lpDSTRect) (This)->lpVtbl->SetVideoPosition(This,lpSRCRect,lpDSTRect)
15745#define IVMRWindowlessControl_GetVideoPosition(This,lpSRCRect,lpDSTRect) (This)->lpVtbl->GetVideoPosition(This,lpSRCRect,lpDSTRect)
15746#define IVMRWindowlessControl_GetAspectRatioMode(This,lpAspectRatioMode) (This)->lpVtbl->GetAspectRatioMode(This,lpAspectRatioMode)
15747#define IVMRWindowlessControl_SetAspectRatioMode(This,AspectRatioMode) (This)->lpVtbl->SetAspectRatioMode(This,AspectRatioMode)
15748#define IVMRWindowlessControl_SetVideoClippingWindow(This,hwnd) (This)->lpVtbl->SetVideoClippingWindow(This,hwnd)
15749#define IVMRWindowlessControl_RepaintVideo(This,hwnd,hdc) (This)->lpVtbl->RepaintVideo(This,hwnd,hdc)
15750#define IVMRWindowlessControl_DisplayModeChanged(This) (This)->lpVtbl->DisplayModeChanged(This)
15751#define IVMRWindowlessControl_GetCurrentImage(This,lpDib) (This)->lpVtbl->GetCurrentImage(This,lpDib)
15752#define IVMRWindowlessControl_SetBorderColor(This,Clr) (This)->lpVtbl->SetBorderColor(This,Clr)
15753#define IVMRWindowlessControl_GetBorderColor(This,lpClr) (This)->lpVtbl->GetBorderColor(This,lpClr)
15754#define IVMRWindowlessControl_SetColorKey(This,Clr) (This)->lpVtbl->SetColorKey(This,Clr)
15755#define IVMRWindowlessControl_GetColorKey(This,lpClr) (This)->lpVtbl->GetColorKey(This,lpClr)
15756#endif
15757#endif
15758  HRESULT WINAPI IVMRWindowlessControl_GetNativeVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight);
15759  void __RPC_STUB IVMRWindowlessControl_GetNativeVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15760  HRESULT WINAPI IVMRWindowlessControl_GetMinIdealVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
15761  void __RPC_STUB IVMRWindowlessControl_GetMinIdealVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15762  HRESULT WINAPI IVMRWindowlessControl_GetMaxIdealVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
15763  void __RPC_STUB IVMRWindowlessControl_GetMaxIdealVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15764  HRESULT WINAPI IVMRWindowlessControl_SetVideoPosition_Proxy(IVMRWindowlessControl *This,const LPRECT lpSRCRect,const LPRECT lpDSTRect);
15765  void __RPC_STUB IVMRWindowlessControl_SetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15766  HRESULT WINAPI IVMRWindowlessControl_GetVideoPosition_Proxy(IVMRWindowlessControl *This,LPRECT lpSRCRect,LPRECT lpDSTRect);
15767  void __RPC_STUB IVMRWindowlessControl_GetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15768  HRESULT WINAPI IVMRWindowlessControl_GetAspectRatioMode_Proxy(IVMRWindowlessControl *This,DWORD *lpAspectRatioMode);
15769  void __RPC_STUB IVMRWindowlessControl_GetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15770  HRESULT WINAPI IVMRWindowlessControl_SetAspectRatioMode_Proxy(IVMRWindowlessControl *This,DWORD AspectRatioMode);
15771  void __RPC_STUB IVMRWindowlessControl_SetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15772  HRESULT WINAPI IVMRWindowlessControl_SetVideoClippingWindow_Proxy(IVMRWindowlessControl *This,HWND hwnd);
15773  void __RPC_STUB IVMRWindowlessControl_SetVideoClippingWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15774  HRESULT WINAPI IVMRWindowlessControl_RepaintVideo_Proxy(IVMRWindowlessControl *This,HWND hwnd,HDC hdc);
15775  void __RPC_STUB IVMRWindowlessControl_RepaintVideo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15776  HRESULT WINAPI IVMRWindowlessControl_DisplayModeChanged_Proxy(IVMRWindowlessControl *This);
15777  void __RPC_STUB IVMRWindowlessControl_DisplayModeChanged_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15778  HRESULT WINAPI IVMRWindowlessControl_GetCurrentImage_Proxy(IVMRWindowlessControl *This,BYTE **lpDib);
15779  void __RPC_STUB IVMRWindowlessControl_GetCurrentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15780  HRESULT WINAPI IVMRWindowlessControl_SetBorderColor_Proxy(IVMRWindowlessControl *This,COLORREF Clr);
15781  void __RPC_STUB IVMRWindowlessControl_SetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15782  HRESULT WINAPI IVMRWindowlessControl_GetBorderColor_Proxy(IVMRWindowlessControl *This,COLORREF *lpClr);
15783  void __RPC_STUB IVMRWindowlessControl_GetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15784  HRESULT WINAPI IVMRWindowlessControl_SetColorKey_Proxy(IVMRWindowlessControl *This,COLORREF Clr);
15785  void __RPC_STUB IVMRWindowlessControl_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15786  HRESULT WINAPI IVMRWindowlessControl_GetColorKey_Proxy(IVMRWindowlessControl *This,COLORREF *lpClr);
15787  void __RPC_STUB IVMRWindowlessControl_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15788#endif
15789
15790  typedef enum __MIDL___MIDL_itf_strmif_0401_0001 {
15791    MixerPref_NoDecimation = 0x1,MixerPref_DecimateOutput = 0x2,MixerPref_ARAdjustXorY = 0x4,MixerPref_DecimationReserved = 0x8,
15792    MixerPref_DecimateMask = 0xf,MixerPref_BiLinearFiltering = 0x10,MixerPref_PointFiltering = 0x20,MixerPref_FilteringMask = 0xf0,
15793    MixerPref_RenderTargetRGB = 0x100,MixerPref_RenderTargetYUV = 0x1000,MixerPref_RenderTargetYUV420 = 0x200,MixerPref_RenderTargetYUV422 = 0x400,
15794    MixerPref_RenderTargetYUV444 = 0x800,MixerPref_RenderTargetReserved = 0xe000,MixerPref_RenderTargetMask = 0xff00,
15795    MixerPref_DynamicSwitchToBOB = 0x10000,MixerPref_DynamicDecimateBy2 = 0x20000,MixerPref_DynamicReserved = 0xc0000,
15796    MixerPref_DynamicMask = 0xf0000
15797  } VMRMixerPrefs;
15798
15799  typedef struct _NORMALIZEDRECT {
15800    float left;
15801    float top;
15802    float right;
15803    float bottom;
15804  } NORMALIZEDRECT;
15805
15806  typedef struct _NORMALIZEDRECT *PNORMALIZEDRECT;
15807
15808  extern RPC_IF_HANDLE __MIDL_itf_strmif_0401_v0_0_c_ifspec;
15809  extern RPC_IF_HANDLE __MIDL_itf_strmif_0401_v0_0_s_ifspec;
15810#ifndef __IVMRMixerControl_INTERFACE_DEFINED__
15811#define __IVMRMixerControl_INTERFACE_DEFINED__
15812  EXTERN_C const IID IID_IVMRMixerControl;
15813#if defined(__cplusplus) && !defined(CINTERFACE)
15814  struct IVMRMixerControl : public IUnknown {
15815  public:
15816    virtual HRESULT WINAPI SetAlpha(DWORD dwStreamID,float Alpha) = 0;
15817    virtual HRESULT WINAPI GetAlpha(DWORD dwStreamID,float *pAlpha) = 0;
15818    virtual HRESULT WINAPI SetZOrder(DWORD dwStreamID,DWORD dwZ) = 0;
15819    virtual HRESULT WINAPI GetZOrder(DWORD dwStreamID,DWORD *pZ) = 0;
15820    virtual HRESULT WINAPI SetOutputRect(DWORD dwStreamID,const NORMALIZEDRECT *pRect) = 0;
15821    virtual HRESULT WINAPI GetOutputRect(DWORD dwStreamID,NORMALIZEDRECT *pRect) = 0;
15822    virtual HRESULT WINAPI SetBackgroundClr(COLORREF ClrBkg) = 0;
15823    virtual HRESULT WINAPI GetBackgroundClr(COLORREF *lpClrBkg) = 0;
15824    virtual HRESULT WINAPI SetMixingPrefs(DWORD dwMixerPrefs) = 0;
15825    virtual HRESULT WINAPI GetMixingPrefs(DWORD *pdwMixerPrefs) = 0;
15826  };
15827#else
15828  typedef struct IVMRMixerControlVtbl {
15829    BEGIN_INTERFACE
15830      HRESULT (WINAPI *QueryInterface)(IVMRMixerControl *This,REFIID riid,void **ppvObject);
15831      ULONG (WINAPI *AddRef)(IVMRMixerControl *This);
15832      ULONG (WINAPI *Release)(IVMRMixerControl *This);
15833      HRESULT (WINAPI *SetAlpha)(IVMRMixerControl *This,DWORD dwStreamID,float Alpha);
15834      HRESULT (WINAPI *GetAlpha)(IVMRMixerControl *This,DWORD dwStreamID,float *pAlpha);
15835      HRESULT (WINAPI *SetZOrder)(IVMRMixerControl *This,DWORD dwStreamID,DWORD dwZ);
15836      HRESULT (WINAPI *GetZOrder)(IVMRMixerControl *This,DWORD dwStreamID,DWORD *pZ);
15837      HRESULT (WINAPI *SetOutputRect)(IVMRMixerControl *This,DWORD dwStreamID,const NORMALIZEDRECT *pRect);
15838      HRESULT (WINAPI *GetOutputRect)(IVMRMixerControl *This,DWORD dwStreamID,NORMALIZEDRECT *pRect);
15839      HRESULT (WINAPI *SetBackgroundClr)(IVMRMixerControl *This,COLORREF ClrBkg);
15840      HRESULT (WINAPI *GetBackgroundClr)(IVMRMixerControl *This,COLORREF *lpClrBkg);
15841      HRESULT (WINAPI *SetMixingPrefs)(IVMRMixerControl *This,DWORD dwMixerPrefs);
15842      HRESULT (WINAPI *GetMixingPrefs)(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
15843    END_INTERFACE
15844  } IVMRMixerControlVtbl;
15845  struct IVMRMixerControl {
15846    CONST_VTBL struct IVMRMixerControlVtbl *lpVtbl;
15847  };
15848#ifdef COBJMACROS
15849#define IVMRMixerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15850#define IVMRMixerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
15851#define IVMRMixerControl_Release(This) (This)->lpVtbl->Release(This)
15852#define IVMRMixerControl_SetAlpha(This,dwStreamID,Alpha) (This)->lpVtbl->SetAlpha(This,dwStreamID,Alpha)
15853#define IVMRMixerControl_GetAlpha(This,dwStreamID,pAlpha) (This)->lpVtbl->GetAlpha(This,dwStreamID,pAlpha)
15854#define IVMRMixerControl_SetZOrder(This,dwStreamID,dwZ) (This)->lpVtbl->SetZOrder(This,dwStreamID,dwZ)
15855#define IVMRMixerControl_GetZOrder(This,dwStreamID,pZ) (This)->lpVtbl->GetZOrder(This,dwStreamID,pZ)
15856#define IVMRMixerControl_SetOutputRect(This,dwStreamID,pRect) (This)->lpVtbl->SetOutputRect(This,dwStreamID,pRect)
15857#define IVMRMixerControl_GetOutputRect(This,dwStreamID,pRect) (This)->lpVtbl->GetOutputRect(This,dwStreamID,pRect)
15858#define IVMRMixerControl_SetBackgroundClr(This,ClrBkg) (This)->lpVtbl->SetBackgroundClr(This,ClrBkg)
15859#define IVMRMixerControl_GetBackgroundClr(This,lpClrBkg) (This)->lpVtbl->GetBackgroundClr(This,lpClrBkg)
15860#define IVMRMixerControl_SetMixingPrefs(This,dwMixerPrefs) (This)->lpVtbl->SetMixingPrefs(This,dwMixerPrefs)
15861#define IVMRMixerControl_GetMixingPrefs(This,pdwMixerPrefs) (This)->lpVtbl->GetMixingPrefs(This,pdwMixerPrefs)
15862#endif
15863#endif
15864  HRESULT WINAPI IVMRMixerControl_SetAlpha_Proxy(IVMRMixerControl *This,DWORD dwStreamID,float Alpha);
15865  void __RPC_STUB IVMRMixerControl_SetAlpha_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15866  HRESULT WINAPI IVMRMixerControl_GetAlpha_Proxy(IVMRMixerControl *This,DWORD dwStreamID,float *pAlpha);
15867  void __RPC_STUB IVMRMixerControl_GetAlpha_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15868  HRESULT WINAPI IVMRMixerControl_SetZOrder_Proxy(IVMRMixerControl *This,DWORD dwStreamID,DWORD dwZ);
15869  void __RPC_STUB IVMRMixerControl_SetZOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15870  HRESULT WINAPI IVMRMixerControl_GetZOrder_Proxy(IVMRMixerControl *This,DWORD dwStreamID,DWORD *pZ);
15871  void __RPC_STUB IVMRMixerControl_GetZOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15872  HRESULT WINAPI IVMRMixerControl_SetOutputRect_Proxy(IVMRMixerControl *This,DWORD dwStreamID,const NORMALIZEDRECT *pRect);
15873  void __RPC_STUB IVMRMixerControl_SetOutputRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15874  HRESULT WINAPI IVMRMixerControl_GetOutputRect_Proxy(IVMRMixerControl *This,DWORD dwStreamID,NORMALIZEDRECT *pRect);
15875  void __RPC_STUB IVMRMixerControl_GetOutputRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15876  HRESULT WINAPI IVMRMixerControl_SetBackgroundClr_Proxy(IVMRMixerControl *This,COLORREF ClrBkg);
15877  void __RPC_STUB IVMRMixerControl_SetBackgroundClr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15878  HRESULT WINAPI IVMRMixerControl_GetBackgroundClr_Proxy(IVMRMixerControl *This,COLORREF *lpClrBkg);
15879  void __RPC_STUB IVMRMixerControl_GetBackgroundClr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15880  HRESULT WINAPI IVMRMixerControl_SetMixingPrefs_Proxy(IVMRMixerControl *This,DWORD dwMixerPrefs);
15881  void __RPC_STUB IVMRMixerControl_SetMixingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15882  HRESULT WINAPI IVMRMixerControl_GetMixingPrefs_Proxy(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
15883
15884  void __RPC_STUB IVMRMixerControl_GetMixingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15885#endif
15886
15887#ifdef __cplusplus
15888  typedef struct tagVMRGUID {
15889    ::GUID *pGUID;
15890    ::GUID GUID;
15891  } VMRGUID;
15892#else
15893  typedef struct tagVMRGUID {
15894    GUID *pGUID;
15895    GUID GUID;
15896  } VMRGUID;
15897#endif
15898
15899  typedef struct tagVMRMONITORINFO {
15900    VMRGUID guid;
15901    RECT rcMonitor;
15902    HMONITOR hMon;
15903    DWORD dwFlags;
15904    wchar_t szDevice[32];
15905    wchar_t szDescription[256];
15906    LARGE_INTEGER liDriverVersion;
15907    DWORD dwVendorId;
15908    DWORD dwDeviceId;
15909    DWORD dwSubSysId;
15910    DWORD dwRevision;
15911  } VMRMONITORINFO;
15912
15913  extern RPC_IF_HANDLE __MIDL_itf_strmif_0402_v0_0_c_ifspec;
15914  extern RPC_IF_HANDLE __MIDL_itf_strmif_0402_v0_0_s_ifspec;
15915#ifndef __IVMRMonitorConfig_INTERFACE_DEFINED__
15916#define __IVMRMonitorConfig_INTERFACE_DEFINED__
15917  EXTERN_C const IID IID_IVMRMonitorConfig;
15918#if defined(__cplusplus) && !defined(CINTERFACE)
15919  struct IVMRMonitorConfig : public IUnknown {
15920  public:
15921    virtual HRESULT WINAPI SetMonitor(const VMRGUID *pGUID) = 0;
15922    virtual HRESULT WINAPI GetMonitor(VMRGUID *pGUID) = 0;
15923    virtual HRESULT WINAPI SetDefaultMonitor(const VMRGUID *pGUID) = 0;
15924    virtual HRESULT WINAPI GetDefaultMonitor(VMRGUID *pGUID) = 0;
15925    virtual HRESULT WINAPI GetAvailableMonitors(VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices) = 0;
15926  };
15927#else
15928  typedef struct IVMRMonitorConfigVtbl {
15929    BEGIN_INTERFACE
15930      HRESULT (WINAPI *QueryInterface)(IVMRMonitorConfig *This,REFIID riid,void **ppvObject);
15931      ULONG (WINAPI *AddRef)(IVMRMonitorConfig *This);
15932      ULONG (WINAPI *Release)(IVMRMonitorConfig *This);
15933      HRESULT (WINAPI *SetMonitor)(IVMRMonitorConfig *This,const VMRGUID *pGUID);
15934      HRESULT (WINAPI *GetMonitor)(IVMRMonitorConfig *This,VMRGUID *pGUID);
15935      HRESULT (WINAPI *SetDefaultMonitor)(IVMRMonitorConfig *This,const VMRGUID *pGUID);
15936      HRESULT (WINAPI *GetDefaultMonitor)(IVMRMonitorConfig *This,VMRGUID *pGUID);
15937      HRESULT (WINAPI *GetAvailableMonitors)(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
15938    END_INTERFACE
15939  } IVMRMonitorConfigVtbl;
15940  struct IVMRMonitorConfig {
15941    CONST_VTBL struct IVMRMonitorConfigVtbl *lpVtbl;
15942  };
15943#ifdef COBJMACROS
15944#define IVMRMonitorConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15945#define IVMRMonitorConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
15946#define IVMRMonitorConfig_Release(This) (This)->lpVtbl->Release(This)
15947#define IVMRMonitorConfig_SetMonitor(This,pGUID) (This)->lpVtbl->SetMonitor(This,pGUID)
15948#define IVMRMonitorConfig_GetMonitor(This,pGUID) (This)->lpVtbl->GetMonitor(This,pGUID)
15949#define IVMRMonitorConfig_SetDefaultMonitor(This,pGUID) (This)->lpVtbl->SetDefaultMonitor(This,pGUID)
15950#define IVMRMonitorConfig_GetDefaultMonitor(This,pGUID) (This)->lpVtbl->GetDefaultMonitor(This,pGUID)
15951#define IVMRMonitorConfig_GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices) (This)->lpVtbl->GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices)
15952#endif
15953#endif
15954  HRESULT WINAPI IVMRMonitorConfig_SetMonitor_Proxy(IVMRMonitorConfig *This,const VMRGUID *pGUID);
15955  void __RPC_STUB IVMRMonitorConfig_SetMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15956  HRESULT WINAPI IVMRMonitorConfig_GetMonitor_Proxy(IVMRMonitorConfig *This,VMRGUID *pGUID);
15957  void __RPC_STUB IVMRMonitorConfig_GetMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15958  HRESULT WINAPI IVMRMonitorConfig_SetDefaultMonitor_Proxy(IVMRMonitorConfig *This,const VMRGUID *pGUID);
15959  void __RPC_STUB IVMRMonitorConfig_SetDefaultMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15960  HRESULT WINAPI IVMRMonitorConfig_GetDefaultMonitor_Proxy(IVMRMonitorConfig *This,VMRGUID *pGUID);
15961  void __RPC_STUB IVMRMonitorConfig_GetDefaultMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15962  HRESULT WINAPI IVMRMonitorConfig_GetAvailableMonitors_Proxy(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
15963  void __RPC_STUB IVMRMonitorConfig_GetAvailableMonitors_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
15964#endif
15965
15966  typedef enum __MIDL___MIDL_itf_strmif_0403_0001 {
15967    RenderPrefs_RestrictToInitialMonitor = 0,RenderPrefs_ForceOffscreen = 0x1,RenderPrefs_ForceOverlays = 0x2,RenderPrefs_AllowOverlays = 0,
15968    RenderPrefs_AllowOffscreen = 0,RenderPrefs_DoNotRenderColorKeyAndBorder = 0x8,RenderPrefs_Reserved = 0x10,RenderPrefs_PreferAGPMemWhenMixing = 0x20,
15969    RenderPrefs_Mask = 0x3f
15970  } VMRRenderPrefs;
15971
15972  typedef enum __MIDL___MIDL_itf_strmif_0403_0002 {
15973    VMRMode_Windowed = 0x1,VMRMode_Windowless = 0x2,VMRMode_Renderless = 0x4,VMRMode_Mask = 0x7
15974  } VMRMode;
15975
15976  enum __MIDL___MIDL_itf_strmif_0403_0003 {
15977    MAX_NUMBER_OF_STREAMS = 16
15978  };
15979
15980  extern RPC_IF_HANDLE __MIDL_itf_strmif_0403_v0_0_c_ifspec;
15981  extern RPC_IF_HANDLE __MIDL_itf_strmif_0403_v0_0_s_ifspec;
15982#ifndef __IVMRFilterConfig_INTERFACE_DEFINED__
15983#define __IVMRFilterConfig_INTERFACE_DEFINED__
15984  EXTERN_C const IID IID_IVMRFilterConfig;
15985#if defined(__cplusplus) && !defined(CINTERFACE)
15986  struct IVMRFilterConfig : public IUnknown {
15987  public:
15988    virtual HRESULT WINAPI SetImageCompositor(IVMRImageCompositor *lpVMRImgCompositor) = 0;
15989    virtual HRESULT WINAPI SetNumberOfStreams(DWORD dwMaxStreams) = 0;
15990    virtual HRESULT WINAPI GetNumberOfStreams(DWORD *pdwMaxStreams) = 0;
15991    virtual HRESULT WINAPI SetRenderingPrefs(DWORD dwRenderFlags) = 0;
15992    virtual HRESULT WINAPI GetRenderingPrefs(DWORD *pdwRenderFlags) = 0;
15993    virtual HRESULT WINAPI SetRenderingMode(DWORD Mode) = 0;
15994    virtual HRESULT WINAPI GetRenderingMode(DWORD *pMode) = 0;
15995  };
15996#else
15997  typedef struct IVMRFilterConfigVtbl {
15998    BEGIN_INTERFACE
15999      HRESULT (WINAPI *QueryInterface)(IVMRFilterConfig *This,REFIID riid,void **ppvObject);
16000      ULONG (WINAPI *AddRef)(IVMRFilterConfig *This);
16001      ULONG (WINAPI *Release)(IVMRFilterConfig *This);
16002      HRESULT (WINAPI *SetImageCompositor)(IVMRFilterConfig *This,IVMRImageCompositor *lpVMRImgCompositor);
16003      HRESULT (WINAPI *SetNumberOfStreams)(IVMRFilterConfig *This,DWORD dwMaxStreams);
16004      HRESULT (WINAPI *GetNumberOfStreams)(IVMRFilterConfig *This,DWORD *pdwMaxStreams);
16005      HRESULT (WINAPI *SetRenderingPrefs)(IVMRFilterConfig *This,DWORD dwRenderFlags);
16006      HRESULT (WINAPI *GetRenderingPrefs)(IVMRFilterConfig *This,DWORD *pdwRenderFlags);
16007      HRESULT (WINAPI *SetRenderingMode)(IVMRFilterConfig *This,DWORD Mode);
16008      HRESULT (WINAPI *GetRenderingMode)(IVMRFilterConfig *This,DWORD *pMode);
16009    END_INTERFACE
16010  } IVMRFilterConfigVtbl;
16011  struct IVMRFilterConfig {
16012    CONST_VTBL struct IVMRFilterConfigVtbl *lpVtbl;
16013  };
16014#ifdef COBJMACROS
16015#define IVMRFilterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16016#define IVMRFilterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
16017#define IVMRFilterConfig_Release(This) (This)->lpVtbl->Release(This)
16018#define IVMRFilterConfig_SetImageCompositor(This,lpVMRImgCompositor) (This)->lpVtbl->SetImageCompositor(This,lpVMRImgCompositor)
16019#define IVMRFilterConfig_SetNumberOfStreams(This,dwMaxStreams) (This)->lpVtbl->SetNumberOfStreams(This,dwMaxStreams)
16020#define IVMRFilterConfig_GetNumberOfStreams(This,pdwMaxStreams) (This)->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams)
16021#define IVMRFilterConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
16022#define IVMRFilterConfig_GetRenderingPrefs(This,pdwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags)
16023#define IVMRFilterConfig_SetRenderingMode(This,Mode) (This)->lpVtbl->SetRenderingMode(This,Mode)
16024#define IVMRFilterConfig_GetRenderingMode(This,pMode) (This)->lpVtbl->GetRenderingMode(This,pMode)
16025#endif
16026#endif
16027  HRESULT WINAPI IVMRFilterConfig_SetImageCompositor_Proxy(IVMRFilterConfig *This,IVMRImageCompositor *lpVMRImgCompositor);
16028  void __RPC_STUB IVMRFilterConfig_SetImageCompositor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16029  HRESULT WINAPI IVMRFilterConfig_SetNumberOfStreams_Proxy(IVMRFilterConfig *This,DWORD dwMaxStreams);
16030  void __RPC_STUB IVMRFilterConfig_SetNumberOfStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16031  HRESULT WINAPI IVMRFilterConfig_GetNumberOfStreams_Proxy(IVMRFilterConfig *This,DWORD *pdwMaxStreams);
16032  void __RPC_STUB IVMRFilterConfig_GetNumberOfStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16033  HRESULT WINAPI IVMRFilterConfig_SetRenderingPrefs_Proxy(IVMRFilterConfig *This,DWORD dwRenderFlags);
16034  void __RPC_STUB IVMRFilterConfig_SetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16035  HRESULT WINAPI IVMRFilterConfig_GetRenderingPrefs_Proxy(IVMRFilterConfig *This,DWORD *pdwRenderFlags);
16036  void __RPC_STUB IVMRFilterConfig_GetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16037  HRESULT WINAPI IVMRFilterConfig_SetRenderingMode_Proxy(IVMRFilterConfig *This,DWORD Mode);
16038  void __RPC_STUB IVMRFilterConfig_SetRenderingMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16039  HRESULT WINAPI IVMRFilterConfig_GetRenderingMode_Proxy(IVMRFilterConfig *This,DWORD *pMode);
16040  void __RPC_STUB IVMRFilterConfig_GetRenderingMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16041#endif
16042
16043#ifndef __IVMRAspectRatioControl_INTERFACE_DEFINED__
16044#define __IVMRAspectRatioControl_INTERFACE_DEFINED__
16045  EXTERN_C const IID IID_IVMRAspectRatioControl;
16046#if defined(__cplusplus) && !defined(CINTERFACE)
16047  struct IVMRAspectRatioControl : public IUnknown {
16048  public:
16049    virtual HRESULT WINAPI GetAspectRatioMode(LPDWORD lpdwARMode) = 0;
16050    virtual HRESULT WINAPI SetAspectRatioMode(DWORD dwARMode) = 0;
16051  };
16052#else
16053  typedef struct IVMRAspectRatioControlVtbl {
16054    BEGIN_INTERFACE
16055      HRESULT (WINAPI *QueryInterface)(IVMRAspectRatioControl *This,REFIID riid,void **ppvObject);
16056      ULONG (WINAPI *AddRef)(IVMRAspectRatioControl *This);
16057      ULONG (WINAPI *Release)(IVMRAspectRatioControl *This);
16058      HRESULT (WINAPI *GetAspectRatioMode)(IVMRAspectRatioControl *This,LPDWORD lpdwARMode);
16059      HRESULT (WINAPI *SetAspectRatioMode)(IVMRAspectRatioControl *This,DWORD dwARMode);
16060    END_INTERFACE
16061  } IVMRAspectRatioControlVtbl;
16062  struct IVMRAspectRatioControl {
16063    CONST_VTBL struct IVMRAspectRatioControlVtbl *lpVtbl;
16064  };
16065#ifdef COBJMACROS
16066#define IVMRAspectRatioControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16067#define IVMRAspectRatioControl_AddRef(This) (This)->lpVtbl->AddRef(This)
16068#define IVMRAspectRatioControl_Release(This) (This)->lpVtbl->Release(This)
16069#define IVMRAspectRatioControl_GetAspectRatioMode(This,lpdwARMode) (This)->lpVtbl->GetAspectRatioMode(This,lpdwARMode)
16070#define IVMRAspectRatioControl_SetAspectRatioMode(This,dwARMode) (This)->lpVtbl->SetAspectRatioMode(This,dwARMode)
16071#endif
16072#endif
16073  HRESULT WINAPI IVMRAspectRatioControl_GetAspectRatioMode_Proxy(IVMRAspectRatioControl *This,LPDWORD lpdwARMode);
16074  void __RPC_STUB IVMRAspectRatioControl_GetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16075  HRESULT WINAPI IVMRAspectRatioControl_SetAspectRatioMode_Proxy(IVMRAspectRatioControl *This,DWORD dwARMode);
16076  void __RPC_STUB IVMRAspectRatioControl_SetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16077#endif
16078
16079  typedef enum __MIDL___MIDL_itf_strmif_0405_0001 {
16080    DeinterlacePref_NextBest = 0x1,DeinterlacePref_BOB = 0x2,DeinterlacePref_Weave = 0x4,DeinterlacePref_Mask = 0x7
16081  } VMRDeinterlacePrefs;
16082
16083  typedef enum __MIDL___MIDL_itf_strmif_0405_0002 {
16084    DeinterlaceTech_Unknown = 0,DeinterlaceTech_BOBLineReplicate = 0x1,DeinterlaceTech_BOBVerticalStretch = 0x2,DeinterlaceTech_MedianFiltering = 0x4,
16085    DeinterlaceTech_EdgeFiltering = 0x10,DeinterlaceTech_FieldAdaptive = 0x20,DeinterlaceTech_PixelAdaptive = 0x40,
16086    DeinterlaceTech_MotionVectorSteered = 0x80
16087  } VMRDeinterlaceTech;
16088
16089  typedef struct _VMRFrequency {
16090    DWORD dwNumerator;
16091    DWORD dwDenominator;
16092  } VMRFrequency;
16093
16094  typedef struct _VMRVideoDesc {
16095    DWORD dwSize;
16096    DWORD dwSampleWidth;
16097    DWORD dwSampleHeight;
16098    WINBOOL SingleFieldPerSample;
16099    DWORD dwFourCC;
16100    VMRFrequency InputSampleFreq;
16101    VMRFrequency OutputFrameFreq;
16102  } VMRVideoDesc;
16103
16104  typedef struct _VMRDeinterlaceCaps {
16105    DWORD dwSize;
16106    DWORD dwNumPreviousOutputFrames;
16107    DWORD dwNumForwardRefSamples;
16108    DWORD dwNumBackwardRefSamples;
16109    VMRDeinterlaceTech DeinterlaceTechnology;
16110  } VMRDeinterlaceCaps;
16111
16112  extern RPC_IF_HANDLE __MIDL_itf_strmif_0405_v0_0_c_ifspec;
16113  extern RPC_IF_HANDLE __MIDL_itf_strmif_0405_v0_0_s_ifspec;
16114#ifndef __IVMRDeinterlaceControl_INTERFACE_DEFINED__
16115#define __IVMRDeinterlaceControl_INTERFACE_DEFINED__
16116  EXTERN_C const IID IID_IVMRDeinterlaceControl;
16117#if defined(__cplusplus) && !defined(CINTERFACE)
16118  struct IVMRDeinterlaceControl : public IUnknown {
16119  public:
16120    virtual HRESULT WINAPI GetNumberOfDeinterlaceModes(VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes) = 0;
16121    virtual HRESULT WINAPI GetDeinterlaceModeCaps(LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps) = 0;
16122    virtual HRESULT WINAPI GetDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
16123    virtual HRESULT WINAPI SetDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
16124    virtual HRESULT WINAPI GetDeinterlacePrefs(LPDWORD lpdwDeinterlacePrefs) = 0;
16125    virtual HRESULT WINAPI SetDeinterlacePrefs(DWORD dwDeinterlacePrefs) = 0;
16126    virtual HRESULT WINAPI GetActualDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
16127  };
16128#else
16129  typedef struct IVMRDeinterlaceControlVtbl {
16130    BEGIN_INTERFACE
16131      HRESULT (WINAPI *QueryInterface)(IVMRDeinterlaceControl *This,REFIID riid,void **ppvObject);
16132      ULONG (WINAPI *AddRef)(IVMRDeinterlaceControl *This);
16133      ULONG (WINAPI *Release)(IVMRDeinterlaceControl *This);
16134      HRESULT (WINAPI *GetNumberOfDeinterlaceModes)(IVMRDeinterlaceControl *This,VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes);
16135      HRESULT (WINAPI *GetDeinterlaceModeCaps)(IVMRDeinterlaceControl *This,LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps);
16136      HRESULT (WINAPI *GetDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
16137      HRESULT (WINAPI *SetDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
16138      HRESULT (WINAPI *GetDeinterlacePrefs)(IVMRDeinterlaceControl *This,LPDWORD lpdwDeinterlacePrefs);
16139      HRESULT (WINAPI *SetDeinterlacePrefs)(IVMRDeinterlaceControl *This,DWORD dwDeinterlacePrefs);
16140      HRESULT (WINAPI *GetActualDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
16141    END_INTERFACE
16142  } IVMRDeinterlaceControlVtbl;
16143  struct IVMRDeinterlaceControl {
16144    CONST_VTBL struct IVMRDeinterlaceControlVtbl *lpVtbl;
16145  };
16146#ifdef COBJMACROS
16147#define IVMRDeinterlaceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16148#define IVMRDeinterlaceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
16149#define IVMRDeinterlaceControl_Release(This) (This)->lpVtbl->Release(This)
16150#define IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes) (This)->lpVtbl->GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes)
16151#define IVMRDeinterlaceControl_GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps) (This)->lpVtbl->GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps)
16152#define IVMRDeinterlaceControl_GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
16153#define IVMRDeinterlaceControl_SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
16154#define IVMRDeinterlaceControl_GetDeinterlacePrefs(This,lpdwDeinterlacePrefs) (This)->lpVtbl->GetDeinterlacePrefs(This,lpdwDeinterlacePrefs)
16155#define IVMRDeinterlaceControl_SetDeinterlacePrefs(This,dwDeinterlacePrefs) (This)->lpVtbl->SetDeinterlacePrefs(This,dwDeinterlacePrefs)
16156#define IVMRDeinterlaceControl_GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
16157#endif
16158#endif
16159  HRESULT WINAPI IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes_Proxy(IVMRDeinterlaceControl *This,VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes);
16160  void __RPC_STUB IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16161  HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlaceModeCaps_Proxy(IVMRDeinterlaceControl *This,LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps);
16162  void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlaceModeCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16163  HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
16164  void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16165  HRESULT WINAPI IVMRDeinterlaceControl_SetDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
16166  void __RPC_STUB IVMRDeinterlaceControl_SetDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16167  HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlacePrefs_Proxy(IVMRDeinterlaceControl *This,LPDWORD lpdwDeinterlacePrefs);
16168  void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlacePrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16169  HRESULT WINAPI IVMRDeinterlaceControl_SetDeinterlacePrefs_Proxy(IVMRDeinterlaceControl *This,DWORD dwDeinterlacePrefs);
16170  void __RPC_STUB IVMRDeinterlaceControl_SetDeinterlacePrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16171  HRESULT WINAPI IVMRDeinterlaceControl_GetActualDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
16172  void __RPC_STUB IVMRDeinterlaceControl_GetActualDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16173#endif
16174
16175  typedef struct _VMRALPHABITMAP {
16176    DWORD dwFlags;
16177    HDC hdc;
16178    LPDIRECTDRAWSURFACE7 pDDS;
16179    RECT rSrc;
16180    NORMALIZEDRECT rDest;
16181    FLOAT fAlpha;
16182    COLORREF clrSrcKey;
16183  } VMRALPHABITMAP;
16184
16185  typedef struct _VMRALPHABITMAP *PVMRALPHABITMAP;
16186
16187#define VMRBITMAP_DISABLE 0x00000001
16188#define VMRBITMAP_HDC 0x00000002
16189#define VMRBITMAP_ENTIREDDS 0x00000004
16190#define VMRBITMAP_SRCCOLORKEY 0x00000008
16191#define VMRBITMAP_SRCRECT 0x00000010
16192
16193  extern RPC_IF_HANDLE __MIDL_itf_strmif_0406_v0_0_c_ifspec;
16194  extern RPC_IF_HANDLE __MIDL_itf_strmif_0406_v0_0_s_ifspec;
16195#ifndef __IVMRMixerBitmap_INTERFACE_DEFINED__
16196#define __IVMRMixerBitmap_INTERFACE_DEFINED__
16197  EXTERN_C const IID IID_IVMRMixerBitmap;
16198#if defined(__cplusplus) && !defined(CINTERFACE)
16199  struct IVMRMixerBitmap : public IUnknown {
16200  public:
16201    virtual HRESULT WINAPI SetAlphaBitmap(const VMRALPHABITMAP *pBmpParms) = 0;
16202    virtual HRESULT WINAPI UpdateAlphaBitmapParameters(PVMRALPHABITMAP pBmpParms) = 0;
16203    virtual HRESULT WINAPI GetAlphaBitmapParameters(PVMRALPHABITMAP pBmpParms) = 0;
16204  };
16205#else
16206  typedef struct IVMRMixerBitmapVtbl {
16207    BEGIN_INTERFACE
16208      HRESULT (WINAPI *QueryInterface)(IVMRMixerBitmap *This,REFIID riid,void **ppvObject);
16209      ULONG (WINAPI *AddRef)(IVMRMixerBitmap *This);
16210      ULONG (WINAPI *Release)(IVMRMixerBitmap *This);
16211      HRESULT (WINAPI *SetAlphaBitmap)(IVMRMixerBitmap *This,const VMRALPHABITMAP *pBmpParms);
16212      HRESULT (WINAPI *UpdateAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
16213      HRESULT (WINAPI *GetAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
16214    END_INTERFACE
16215  } IVMRMixerBitmapVtbl;
16216  struct IVMRMixerBitmap {
16217    CONST_VTBL struct IVMRMixerBitmapVtbl *lpVtbl;
16218  };
16219#ifdef COBJMACROS
16220#define IVMRMixerBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16221#define IVMRMixerBitmap_AddRef(This) (This)->lpVtbl->AddRef(This)
16222#define IVMRMixerBitmap_Release(This) (This)->lpVtbl->Release(This)
16223#define IVMRMixerBitmap_SetAlphaBitmap(This,pBmpParms) (This)->lpVtbl->SetAlphaBitmap(This,pBmpParms)
16224#define IVMRMixerBitmap_UpdateAlphaBitmapParameters(This,pBmpParms) (This)->lpVtbl->UpdateAlphaBitmapParameters(This,pBmpParms)
16225#define IVMRMixerBitmap_GetAlphaBitmapParameters(This,pBmpParms) (This)->lpVtbl->GetAlphaBitmapParameters(This,pBmpParms)
16226#endif
16227#endif
16228  HRESULT WINAPI IVMRMixerBitmap_SetAlphaBitmap_Proxy(IVMRMixerBitmap *This,const VMRALPHABITMAP *pBmpParms);
16229  void __RPC_STUB IVMRMixerBitmap_SetAlphaBitmap_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16230  HRESULT WINAPI IVMRMixerBitmap_UpdateAlphaBitmapParameters_Proxy(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
16231  void __RPC_STUB IVMRMixerBitmap_UpdateAlphaBitmapParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16232  HRESULT WINAPI IVMRMixerBitmap_GetAlphaBitmapParameters_Proxy(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
16233  void __RPC_STUB IVMRMixerBitmap_GetAlphaBitmapParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16234#endif
16235
16236  typedef struct _VMRVIDEOSTREAMINFO {
16237    LPDIRECTDRAWSURFACE7 pddsVideoSurface;
16238    DWORD dwWidth;
16239    DWORD dwHeight;
16240    DWORD dwStrmID;
16241    FLOAT fAlpha;
16242    DDCOLORKEY ddClrKey;
16243    NORMALIZEDRECT rNormal;
16244  } VMRVIDEOSTREAMINFO;
16245
16246  extern RPC_IF_HANDLE __MIDL_itf_strmif_0407_v0_0_c_ifspec;
16247  extern RPC_IF_HANDLE __MIDL_itf_strmif_0407_v0_0_s_ifspec;
16248#ifndef __IVMRImageCompositor_INTERFACE_DEFINED__
16249#define __IVMRImageCompositor_INTERFACE_DEFINED__
16250  EXTERN_C const IID IID_IVMRImageCompositor;
16251#if defined(__cplusplus) && !defined(CINTERFACE)
16252  struct IVMRImageCompositor : public IUnknown {
16253  public:
16254    virtual HRESULT WINAPI InitCompositionTarget(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget) = 0;
16255    virtual HRESULT WINAPI TermCompositionTarget(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget) = 0;
16256    virtual HRESULT WINAPI SetStreamMediaType(DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture) = 0;
16257    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;
16258  };
16259#else
16260  typedef struct IVMRImageCompositorVtbl {
16261    BEGIN_INTERFACE
16262      HRESULT (WINAPI *QueryInterface)(IVMRImageCompositor *This,REFIID riid,void **ppvObject);
16263      ULONG (WINAPI *AddRef)(IVMRImageCompositor *This);
16264      ULONG (WINAPI *Release)(IVMRImageCompositor *This);
16265      HRESULT (WINAPI *InitCompositionTarget)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
16266      HRESULT (WINAPI *TermCompositionTarget)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
16267      HRESULT (WINAPI *SetStreamMediaType)(IVMRImageCompositor *This,DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture);
16268      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);
16269    END_INTERFACE
16270  } IVMRImageCompositorVtbl;
16271  struct IVMRImageCompositor {
16272    CONST_VTBL struct IVMRImageCompositorVtbl *lpVtbl;
16273  };
16274#ifdef COBJMACROS
16275#define IVMRImageCompositor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16276#define IVMRImageCompositor_AddRef(This) (This)->lpVtbl->AddRef(This)
16277#define IVMRImageCompositor_Release(This) (This)->lpVtbl->Release(This)
16278#define IVMRImageCompositor_InitCompositionTarget(This,pD3DDevice,pddsRenderTarget) (This)->lpVtbl->InitCompositionTarget(This,pD3DDevice,pddsRenderTarget)
16279#define IVMRImageCompositor_TermCompositionTarget(This,pD3DDevice,pddsRenderTarget) (This)->lpVtbl->TermCompositionTarget(This,pD3DDevice,pddsRenderTarget)
16280#define IVMRImageCompositor_SetStreamMediaType(This,dwStrmID,pmt,fTexture) (This)->lpVtbl->SetStreamMediaType(This,dwStrmID,pmt,fTexture)
16281#define IVMRImageCompositor_CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams) (This)->lpVtbl->CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams)
16282#endif
16283#endif
16284  HRESULT WINAPI IVMRImageCompositor_InitCompositionTarget_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
16285  void __RPC_STUB IVMRImageCompositor_InitCompositionTarget_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16286  HRESULT WINAPI IVMRImageCompositor_TermCompositionTarget_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
16287  void __RPC_STUB IVMRImageCompositor_TermCompositionTarget_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16288  HRESULT WINAPI IVMRImageCompositor_SetStreamMediaType_Proxy(IVMRImageCompositor *This,DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture);
16289  void __RPC_STUB IVMRImageCompositor_SetStreamMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16290  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);
16291  void __RPC_STUB IVMRImageCompositor_CompositeImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16292#endif
16293
16294#ifndef __IVMRVideoStreamControl_INTERFACE_DEFINED__
16295#define __IVMRVideoStreamControl_INTERFACE_DEFINED__
16296  EXTERN_C const IID IID_IVMRVideoStreamControl;
16297#if defined(__cplusplus) && !defined(CINTERFACE)
16298  struct IVMRVideoStreamControl : public IUnknown {
16299  public:
16300    virtual HRESULT WINAPI SetColorKey(LPDDCOLORKEY lpClrKey) = 0;
16301    virtual HRESULT WINAPI GetColorKey(LPDDCOLORKEY lpClrKey) = 0;
16302    virtual HRESULT WINAPI SetStreamActiveState(WINBOOL fActive) = 0;
16303    virtual HRESULT WINAPI GetStreamActiveState(WINBOOL *lpfActive) = 0;
16304  };
16305#else
16306  typedef struct IVMRVideoStreamControlVtbl {
16307    BEGIN_INTERFACE
16308      HRESULT (WINAPI *QueryInterface)(IVMRVideoStreamControl *This,REFIID riid,void **ppvObject);
16309      ULONG (WINAPI *AddRef)(IVMRVideoStreamControl *This);
16310      ULONG (WINAPI *Release)(IVMRVideoStreamControl *This);
16311      HRESULT (WINAPI *SetColorKey)(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
16312      HRESULT (WINAPI *GetColorKey)(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
16313      HRESULT (WINAPI *SetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL fActive);
16314      HRESULT (WINAPI *GetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
16315    END_INTERFACE
16316  } IVMRVideoStreamControlVtbl;
16317  struct IVMRVideoStreamControl {
16318    CONST_VTBL struct IVMRVideoStreamControlVtbl *lpVtbl;
16319  };
16320#ifdef COBJMACROS
16321#define IVMRVideoStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16322#define IVMRVideoStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
16323#define IVMRVideoStreamControl_Release(This) (This)->lpVtbl->Release(This)
16324#define IVMRVideoStreamControl_SetColorKey(This,lpClrKey) (This)->lpVtbl->SetColorKey(This,lpClrKey)
16325#define IVMRVideoStreamControl_GetColorKey(This,lpClrKey) (This)->lpVtbl->GetColorKey(This,lpClrKey)
16326#define IVMRVideoStreamControl_SetStreamActiveState(This,fActive) (This)->lpVtbl->SetStreamActiveState(This,fActive)
16327#define IVMRVideoStreamControl_GetStreamActiveState(This,lpfActive) (This)->lpVtbl->GetStreamActiveState(This,lpfActive)
16328#endif
16329#endif
16330  HRESULT WINAPI IVMRVideoStreamControl_SetColorKey_Proxy(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
16331  void __RPC_STUB IVMRVideoStreamControl_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16332  HRESULT WINAPI IVMRVideoStreamControl_GetColorKey_Proxy(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
16333  void __RPC_STUB IVMRVideoStreamControl_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16334  HRESULT WINAPI IVMRVideoStreamControl_SetStreamActiveState_Proxy(IVMRVideoStreamControl *This,WINBOOL fActive);
16335  void __RPC_STUB IVMRVideoStreamControl_SetStreamActiveState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16336  HRESULT WINAPI IVMRVideoStreamControl_GetStreamActiveState_Proxy(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
16337  void __RPC_STUB IVMRVideoStreamControl_GetStreamActiveState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16338#endif
16339
16340#ifndef __IVMRSurface_INTERFACE_DEFINED__
16341#define __IVMRSurface_INTERFACE_DEFINED__
16342  EXTERN_C const IID IID_IVMRSurface;
16343#if defined(__cplusplus) && !defined(CINTERFACE)
16344  struct IVMRSurface : public IUnknown {
16345  public:
16346    virtual HRESULT WINAPI IsSurfaceLocked(void) = 0;
16347    virtual HRESULT WINAPI LockSurface(BYTE **lpSurface) = 0;
16348    virtual HRESULT WINAPI UnlockSurface(void) = 0;
16349    virtual HRESULT WINAPI GetSurface(LPDIRECTDRAWSURFACE7 *lplpSurface) = 0;
16350  };
16351#else
16352  typedef struct IVMRSurfaceVtbl {
16353    BEGIN_INTERFACE
16354      HRESULT (WINAPI *QueryInterface)(IVMRSurface *This,REFIID riid,void **ppvObject);
16355      ULONG (WINAPI *AddRef)(IVMRSurface *This);
16356      ULONG (WINAPI *Release)(IVMRSurface *This);
16357      HRESULT (WINAPI *IsSurfaceLocked)(IVMRSurface *This);
16358      HRESULT (WINAPI *LockSurface)(IVMRSurface *This,BYTE **lpSurface);
16359      HRESULT (WINAPI *UnlockSurface)(IVMRSurface *This);
16360      HRESULT (WINAPI *GetSurface)(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
16361    END_INTERFACE
16362  } IVMRSurfaceVtbl;
16363  struct IVMRSurface {
16364    CONST_VTBL struct IVMRSurfaceVtbl *lpVtbl;
16365  };
16366#ifdef COBJMACROS
16367#define IVMRSurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16368#define IVMRSurface_AddRef(This) (This)->lpVtbl->AddRef(This)
16369#define IVMRSurface_Release(This) (This)->lpVtbl->Release(This)
16370#define IVMRSurface_IsSurfaceLocked(This) (This)->lpVtbl->IsSurfaceLocked(This)
16371#define IVMRSurface_LockSurface(This,lpSurface) (This)->lpVtbl->LockSurface(This,lpSurface)
16372#define IVMRSurface_UnlockSurface(This) (This)->lpVtbl->UnlockSurface(This)
16373#define IVMRSurface_GetSurface(This,lplpSurface) (This)->lpVtbl->GetSurface(This,lplpSurface)
16374#endif
16375#endif
16376  HRESULT WINAPI IVMRSurface_IsSurfaceLocked_Proxy(IVMRSurface *This);
16377  void __RPC_STUB IVMRSurface_IsSurfaceLocked_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16378  HRESULT WINAPI IVMRSurface_LockSurface_Proxy(IVMRSurface *This,BYTE **lpSurface);
16379  void __RPC_STUB IVMRSurface_LockSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16380  HRESULT WINAPI IVMRSurface_UnlockSurface_Proxy(IVMRSurface *This);
16381  void __RPC_STUB IVMRSurface_UnlockSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16382  HRESULT WINAPI IVMRSurface_GetSurface_Proxy(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
16383  void __RPC_STUB IVMRSurface_GetSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16384#endif
16385
16386#ifndef __IVMRImagePresenterConfig_INTERFACE_DEFINED__
16387#define __IVMRImagePresenterConfig_INTERFACE_DEFINED__
16388  EXTERN_C const IID IID_IVMRImagePresenterConfig;
16389
16390#if defined(__cplusplus) && !defined(CINTERFACE)
16391  struct IVMRImagePresenterConfig : public IUnknown {
16392  public:
16393    virtual HRESULT WINAPI SetRenderingPrefs(DWORD dwRenderFlags) = 0;
16394    virtual HRESULT WINAPI GetRenderingPrefs(DWORD *dwRenderFlags) = 0;
16395  };
16396#else
16397  typedef struct IVMRImagePresenterConfigVtbl {
16398    BEGIN_INTERFACE
16399      HRESULT (WINAPI *QueryInterface)(IVMRImagePresenterConfig *This,REFIID riid,void **ppvObject);
16400      ULONG (WINAPI *AddRef)(IVMRImagePresenterConfig *This);
16401      ULONG (WINAPI *Release)(IVMRImagePresenterConfig *This);
16402      HRESULT (WINAPI *SetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD dwRenderFlags);
16403      HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
16404    END_INTERFACE
16405  } IVMRImagePresenterConfigVtbl;
16406  struct IVMRImagePresenterConfig {
16407    CONST_VTBL struct IVMRImagePresenterConfigVtbl *lpVtbl;
16408  };
16409#ifdef COBJMACROS
16410#define IVMRImagePresenterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16411#define IVMRImagePresenterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
16412#define IVMRImagePresenterConfig_Release(This) (This)->lpVtbl->Release(This)
16413#define IVMRImagePresenterConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
16414#define IVMRImagePresenterConfig_GetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,dwRenderFlags)
16415#endif
16416#endif
16417  HRESULT WINAPI IVMRImagePresenterConfig_SetRenderingPrefs_Proxy(IVMRImagePresenterConfig *This,DWORD dwRenderFlags);
16418  void __RPC_STUB IVMRImagePresenterConfig_SetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16419  HRESULT WINAPI IVMRImagePresenterConfig_GetRenderingPrefs_Proxy(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
16420  void __RPC_STUB IVMRImagePresenterConfig_GetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16421#endif
16422
16423#ifndef __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__
16424#define __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__
16425  EXTERN_C const IID IID_IVMRImagePresenterExclModeConfig;
16426#if defined(__cplusplus) && !defined(CINTERFACE)
16427  struct IVMRImagePresenterExclModeConfig : public IVMRImagePresenterConfig {
16428  public:
16429    virtual HRESULT WINAPI SetXlcModeDDObjAndPrimarySurface(LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf) = 0;
16430    virtual HRESULT WINAPI GetXlcModeDDObjAndPrimarySurface(LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf) = 0;
16431  };
16432#else
16433  typedef struct IVMRImagePresenterExclModeConfigVtbl {
16434    BEGIN_INTERFACE
16435      HRESULT (WINAPI *QueryInterface)(IVMRImagePresenterExclModeConfig *This,REFIID riid,void **ppvObject);
16436      ULONG (WINAPI *AddRef)(IVMRImagePresenterExclModeConfig *This);
16437      ULONG (WINAPI *Release)(IVMRImagePresenterExclModeConfig *This);
16438      HRESULT (WINAPI *SetRenderingPrefs)(IVMRImagePresenterExclModeConfig *This,DWORD dwRenderFlags);
16439      HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterExclModeConfig *This,DWORD *dwRenderFlags);
16440      HRESULT (WINAPI *SetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf);
16441      HRESULT (WINAPI *GetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
16442    END_INTERFACE
16443  } IVMRImagePresenterExclModeConfigVtbl;
16444  struct IVMRImagePresenterExclModeConfig {
16445    CONST_VTBL struct IVMRImagePresenterExclModeConfigVtbl *lpVtbl;
16446  };
16447#ifdef COBJMACROS
16448#define IVMRImagePresenterExclModeConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16449#define IVMRImagePresenterExclModeConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
16450#define IVMRImagePresenterExclModeConfig_Release(This) (This)->lpVtbl->Release(This)
16451#define IVMRImagePresenterExclModeConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
16452#define IVMRImagePresenterExclModeConfig_GetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,dwRenderFlags)
16453#define IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf) (This)->lpVtbl->SetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf)
16454#define IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf) (This)->lpVtbl->GetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf)
16455#endif
16456#endif
16457  HRESULT WINAPI IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface_Proxy(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf);
16458  void __RPC_STUB IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16459  HRESULT WINAPI IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface_Proxy(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
16460  void __RPC_STUB IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16461#endif
16462
16463#ifndef __IVPManager_INTERFACE_DEFINED__
16464#define __IVPManager_INTERFACE_DEFINED__
16465  EXTERN_C const IID IID_IVPManager;
16466#if defined(__cplusplus) && !defined(CINTERFACE)
16467  struct IVPManager : public IUnknown {
16468  public:
16469    virtual HRESULT WINAPI SetVideoPortIndex(DWORD dwVideoPortIndex) = 0;
16470    virtual HRESULT WINAPI GetVideoPortIndex(DWORD *pdwVideoPortIndex) = 0;
16471  };
16472#else
16473  typedef struct IVPManagerVtbl {
16474    BEGIN_INTERFACE
16475      HRESULT (WINAPI *QueryInterface)(IVPManager *This,REFIID riid,void **ppvObject);
16476      ULONG (WINAPI *AddRef)(IVPManager *This);
16477      ULONG (WINAPI *Release)(IVPManager *This);
16478      HRESULT (WINAPI *SetVideoPortIndex)(IVPManager *This,DWORD dwVideoPortIndex);
16479      HRESULT (WINAPI *GetVideoPortIndex)(IVPManager *This,DWORD *pdwVideoPortIndex);
16480    END_INTERFACE
16481  } IVPManagerVtbl;
16482  struct IVPManager {
16483    CONST_VTBL struct IVPManagerVtbl *lpVtbl;
16484  };
16485#ifdef COBJMACROS
16486#define IVPManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16487#define IVPManager_AddRef(This) (This)->lpVtbl->AddRef(This)
16488#define IVPManager_Release(This) (This)->lpVtbl->Release(This)
16489#define IVPManager_SetVideoPortIndex(This,dwVideoPortIndex) (This)->lpVtbl->SetVideoPortIndex(This,dwVideoPortIndex)
16490#define IVPManager_GetVideoPortIndex(This,pdwVideoPortIndex) (This)->lpVtbl->GetVideoPortIndex(This,pdwVideoPortIndex)
16491#endif
16492#endif
16493  HRESULT WINAPI IVPManager_SetVideoPortIndex_Proxy(IVPManager *This,DWORD dwVideoPortIndex);
16494  void __RPC_STUB IVPManager_SetVideoPortIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16495  HRESULT WINAPI IVPManager_GetVideoPortIndex_Proxy(IVPManager *This,DWORD *pdwVideoPortIndex);
16496  void __RPC_STUB IVPManager_GetVideoPortIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
16497#endif
16498
16499#if (_WIN32_WINNT >= 0x0601)
16500#undef  INTERFACE
16501#define INTERFACE IAMAsyncReaderTimestampScaling
16502#ifdef __GNUC__
16503#warning COM interfaces layout in this header has not been verified.
16504#warning COM interfaces with incorrect layout may not work at all.
16505__MINGW_BROKEN_INTERFACE(INTERFACE)
16506#endif
16507DECLARE_INTERFACE_(IAMAsyncReaderTimestampScaling,IUnknown)
16508{
16509    BEGIN_INTERFACE
16510
16511    /* IUnknown methods */
16512    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
16513    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
16514    STDMETHOD_(ULONG, Release)(THIS) PURE;
16515
16516    /* IAMAsyncReaderTimestampScaling methods */
16517    STDMETHOD_(HRESULT,GetTimestampMode)(THIS_ WINBOOL *pfRaw) PURE;
16518    STDMETHOD_(HRESULT,SetTimestampMode)(THIS_ WINBOOL fRaw) PURE;
16519
16520    END_INTERFACE
16521};
16522#ifdef COBJMACROS
16523#define IAMAsyncReaderTimestampScaling_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16524#define IAMAsyncReaderTimestampScaling_AddRef(This) (This)->lpVtbl->AddRef(This)
16525#define IAMAsyncReaderTimestampScaling_Release(This) (This)->lpVtbl->Release(This)
16526#define IAMAsyncReaderTimestampScaling_GetTimestampMode(This,pfRaw) (This)->lpVtbl->GetTimestampMode(This,pfRaw)
16527#define IAMAsyncReaderTimestampScaling_SetTimestampMode(This,fRaw) (This)->lpVtbl->SetTimestampMode(This,fRaw)
16528#endif /*COBJMACROS*/
16529
16530#undef  INTERFACE
16531#define INTERFACE IAMPluginControl
16532#ifdef __GNUC__
16533#warning COM interfaces layout in this header has not been verified.
16534#warning COM interfaces with incorrect layout may not work at all.
16535__MINGW_BROKEN_INTERFACE(INTERFACE)
16536#endif
16537DECLARE_INTERFACE_(IAMPluginControl,IUnknown)
16538{
16539    BEGIN_INTERFACE
16540
16541    /* IUnknown methods */
16542    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
16543    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
16544    STDMETHOD_(ULONG, Release)(THIS) PURE;
16545
16546    /* IAMPluginControl methods */
16547    STDMETHOD_(HRESULT,GetDisabledByIndex)(THIS_ DWORD index,CLSID *clsid) PURE;
16548    STDMETHOD_(HRESULT,GetPreferredClsid)(THIS_ REFGUID subType,CLSID *clsid) PURE;
16549    STDMETHOD_(HRESULT,GetPreferredClsidByIndex)(THIS_ DWORD index,GUID *subType,CLSID *clsid) PURE;
16550    STDMETHOD_(HRESULT,IsDisabled)(THIS_ REFCLSID clsid) PURE;
16551    STDMETHOD_(HRESULT,IsLegacyDisabled)(THIS_ LPCWSTR dllName) PURE;
16552    STDMETHOD_(HRESULT,SetDisabled)(THIS_ REFCLSID clsid,BOOL disabled) PURE;
16553    STDMETHOD_(HRESULT,SetPreferredClsid)(THIS_ REFGUID subType,const CLSID *clsid) PURE;
16554
16555    END_INTERFACE
16556};
16557#ifdef COBJMACROS
16558#define IAMPluginControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16559#define IAMPluginControl_AddRef(This) (This)->lpVtbl->AddRef(This)
16560#define IAMPluginControl_Release(This) (This)->lpVtbl->Release(This)
16561#define IAMPluginControl_GetDisabledByIndex(This,index,clsid) (This)->lpVtbl->GetDisabledByIndex(This,index,clsid)
16562#define IAMPluginControl_GetPreferredClsid(This,subType,clsid) (This)->lpVtbl->GetPreferredClsid(This,subType,clsid)
16563#define IAMPluginControl_GetPreferredClsidByIndex(This,index,subType,clsid) (This)->lpVtbl->GetPreferredClsidByIndex(This,index,subType,clsid)
16564#define IAMPluginControl_IsDisabled(This,clsid) (This)->lpVtbl->IsDisabled(This,clsid)
16565#define IAMPluginControl_IsLegacyDisabled(This,dllName) (This)->lpVtbl->IsLegacyDisabled(This,dllName)
16566#define IAMPluginControl_SetDisabled(This,clsid,disabled) (This)->lpVtbl->SetDisabled(This,clsid,disabled)
16567#define IAMPluginControl_SetPreferredClsid(This,subType,clsid) (This)->lpVtbl->SetPreferredClsid(This,subType,clsid)
16568#endif /*COBJMACROS*/
16569
16570#endif /*(_WIN32_WINNT >= 0x0601)*/
16571
16572  extern RPC_IF_HANDLE __MIDL_itf_strmif_0413_v0_0_c_ifspec;
16573  extern RPC_IF_HANDLE __MIDL_itf_strmif_0413_v0_0_s_ifspec;
16574/* Begin additional prototypes for all interfaces */
16575
16576
16577/* End additional prototypes */
16578
16579#ifdef __cplusplus
16580}
16581#endif
16582
16583#endif /* __strmif_h__ */
16584